refactor(smoke): Wrap -c inline scripts in main() (Phase 287 P4 Box 2)

File mode SSOT requires all code in declarations (static box/function).
Top-level execution statements will be prohibited in future.

Changed all run_nyash_vm -c scripts to:
- static box Main { main() { ... return 0 } }

Affected tests:
- string_concat.sh (3 test functions)
  - test_variable_concat: wrapped in main()
  - test_number_string_concat: wrapped + explicit .toString()
- multi_branch_phi.sh: wrapped in main()
- vm_loop_phi_multi_carriers.sh: wrapped in main()
- vm_loop_phi_multi_continue.sh: wrapped in main()
- vm_nested_mixed_break_continue.sh: wrapped in main()

This fixes top-level parse errors while maintaining test coverage.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-25 12:23:30 +09:00
parent a706893bfe
commit bb3cae054f
5 changed files with 42 additions and 27 deletions

View File

@ -9,20 +9,25 @@ preflight_plugins || exit 2
test_multi_branch_phi() {
local script='
local n, s
n = 3
if n == 1 {
s = "one"
} else if n == 2 {
s = "two"
} else if n == 3 {
s = "three"
} else if n == 4 {
s = "four"
} else {
s = "many"
static box Main {
main() {
local n, s
n = 3
if n == 1 {
s = "one"
} else if n == 2 {
s = "two"
} else if n == 3 {
s = "three"
} else if n == 4 {
s = "four"
} else {
s = "many"
}
print(s)
return 0
}
}
print(s)
'
local output
output=$(run_nyash_vm -c "$script" 2>&1)

View File

@ -21,11 +21,16 @@ test_simple_concat() {
test_variable_concat() {
local script='
local greeting, name, message
greeting = "Hello"
name = "Nyash"
message = greeting + ", " + name + "!"
print(message)
static box Main {
main() {
local greeting, name, message
greeting = "Hello"
name = "Nyash"
message = greeting + ", " + name + "!"
print(message)
return 0
}
}
'
local output
output=$(run_nyash_vm -c "$script" 2>&1)
@ -34,10 +39,15 @@ print(message)
test_number_string_concat() {
local script='
local num, text
num = 42
text = "The answer is " + num
print(text)
static box Main {
main() {
local num, text
num = 42
text = "The answer is " + num.toString()
print(text)
return 0
}
}
'
local output
output=$(run_nyash_vm -c "$script" 2>&1)

View File

@ -7,7 +7,7 @@ preflight_plugins || exit 2
test_multi_carriers_fib6() {
# Fibonacci with 6 steps starting a=0,b=1 => b ends at 13
local code='i=0; a=0; b=1; loop(i<6) { t=a+b; a=b; b=t; i=i+1 }; print(b)'
local code='static box Main { main() { local i, a, b, t; i=0; a=0; b=1; loop(i<6) { t=a+b; a=b; b=t; i=i+1 }; print(b); return 0 } }'
local out
out=$(run_nyash_vm -c "$code")
[ "$out" = "13" ]

View File

@ -7,11 +7,11 @@ preflight_plugins || exit 2
test_multi_continue_sum() {
# Expect: sum of odd numbers 1..9 except 7 -> 1+3+5+9 = 18
local code='i=0; sum=0; loop(i<10) {
local code='static box Main { main() { local i, sum; i=0; sum=0; loop(i<10) {
if i%2==0 { i=i+1; continue }
if i==7 { i=i+1; continue }
sum=sum+i; i=i+1
}; print(sum)'
}; print(sum); return 0 } }'
local out
out=$(run_nyash_vm -c "$code")
[ "$out" = "18" ]

View File

@ -8,13 +8,13 @@ preflight_plugins || exit 2
test_nested_mixed() {
# Outer i=0..4, inner j=0..4, skip j==2 (continue), break inner entirely when i==3.
# Counts per i: 0->4, 1->4, 2->4, 3->0 (break), 4->4 => total 16
local code='i=0; sum=0; loop(i<5) {
local code='static box Main { main() { local i, j, sum; i=0; sum=0; loop(i<5) {
j=0; loop(j<5) {
if j==2 { j=j+1; continue }
if i==3 { break }
sum=sum+1; j=j+1
}; i=i+1
}; print(sum)'
}; print(sum); return 0 } }'
local out
out=$(run_nyash_vm -c "$code")
[ "$out" = "16" ]