pyvm: split op handlers into ops_core/ops_box/ops_ctrl; add ops_flow + intrinsic; delegate vm.py without behavior change
net-plugin: modularize constants (consts.rs) and sockets (sockets.rs); remove legacy commented socket code; fix unused imports mir: move instruction unit tests to tests/mir_instruction_unit.rs (file lean-up); no semantic changes runner/pyvm: ensure using pre-strip; misc docs updates Build: cargo build ok; legacy cfg warnings remain as before
This commit is contained in:
4
apps/tests/llvm_const_ret.nyash
Normal file
4
apps/tests/llvm_const_ret.nyash
Normal file
@ -0,0 +1,4 @@
|
||||
function main(args) {
|
||||
return 0
|
||||
}
|
||||
|
||||
11
apps/tests/llvm_if_phi_ret.nyash
Normal file
11
apps/tests/llvm_if_phi_ret.nyash
Normal file
@ -0,0 +1,11 @@
|
||||
function main(args) {
|
||||
local c = 1
|
||||
local x
|
||||
if c == 1 {
|
||||
x = 10
|
||||
} else {
|
||||
x = 20
|
||||
}
|
||||
return x
|
||||
}
|
||||
|
||||
10
apps/tests/llvm_phi_if_min.nyash
Normal file
10
apps/tests/llvm_phi_if_min.nyash
Normal file
@ -0,0 +1,10 @@
|
||||
function main(args) {
|
||||
local x
|
||||
x = 1
|
||||
if x == 1 {
|
||||
return 10
|
||||
} else {
|
||||
return 20
|
||||
}
|
||||
}
|
||||
|
||||
12
apps/tests/macro/exception/expr_postfix_direct.nyash
Normal file
12
apps/tests/macro/exception/expr_postfix_direct.nyash
Normal file
@ -0,0 +1,12 @@
|
||||
function f(x) {
|
||||
return x
|
||||
}
|
||||
|
||||
function main(args) {
|
||||
local i = 0
|
||||
loop(i < 2) {
|
||||
f(i) catch(e) { print(e) } cleanup { print("cleanup") }
|
||||
i = i + 1
|
||||
}
|
||||
}
|
||||
|
||||
16
apps/tests/macro/exception/loop_if_join_postfix.nyash
Normal file
16
apps/tests/macro/exception/loop_if_join_postfix.nyash
Normal file
@ -0,0 +1,16 @@
|
||||
function f(x) {
|
||||
return x
|
||||
}
|
||||
|
||||
function main(args) {
|
||||
local i = 0
|
||||
local a = 0
|
||||
loop(i < 2) {
|
||||
// both branches assign to the same variable -> JoinResult(a)
|
||||
if i % 2 == 0 { a = 1 } else { a = 2 }
|
||||
// include postfix sugar to exercise TryCatch normalization in the same scope
|
||||
with_cleanup(postfix_catch(f(i), "Error", fn(e){ print(e) }), fn(){ })
|
||||
i = i + 1
|
||||
}
|
||||
}
|
||||
|
||||
15
apps/tests/macro/exception/loop_postfix_sugar.nyash
Normal file
15
apps/tests/macro/exception/loop_postfix_sugar.nyash
Normal file
@ -0,0 +1,15 @@
|
||||
function f(x) {
|
||||
return x
|
||||
}
|
||||
|
||||
function main(args) {
|
||||
local i = 0
|
||||
loop(i < 2) {
|
||||
with_cleanup(
|
||||
postfix_catch(f(i), "Error", fn(e){ print(e) }),
|
||||
fn(){ print("cleanup") }
|
||||
)
|
||||
i = i + 1
|
||||
}
|
||||
}
|
||||
|
||||
9
apps/tests/macro/exception/postfix_catch.nyash
Normal file
9
apps/tests/macro/exception/postfix_catch.nyash
Normal file
@ -0,0 +1,9 @@
|
||||
// Phase 1 sugar: postfix_catch(expr, "Error", fn(e){ body })
|
||||
function do_work(args) {
|
||||
return 0
|
||||
}
|
||||
|
||||
function main(args) {
|
||||
postfix_catch(do_work(args), "Error", fn(e){ print(e) })
|
||||
}
|
||||
|
||||
12
apps/tests/macro/exception/postfix_catch_method.nyash
Normal file
12
apps/tests/macro/exception/postfix_catch_method.nyash
Normal file
@ -0,0 +1,12 @@
|
||||
// Phase 1 sugar: method call wrapped by postfix_catch
|
||||
box Worker {
|
||||
run() {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
function main(args) {
|
||||
local w = new Worker()
|
||||
postfix_catch(w.run(), "Error", fn(e){ print(e) })
|
||||
}
|
||||
|
||||
9
apps/tests/macro/exception/with_cleanup.nyash
Normal file
9
apps/tests/macro/exception/with_cleanup.nyash
Normal file
@ -0,0 +1,9 @@
|
||||
// Phase 1 sugar: with_cleanup(expr, fn(){ body })
|
||||
function cleanup_target(args) {
|
||||
return 1
|
||||
}
|
||||
|
||||
function main(args) {
|
||||
with_cleanup(cleanup_target(args), fn(){ print("done") })
|
||||
}
|
||||
|
||||
5
apps/tests/macro/if/assign_join_basic.nyash
Normal file
5
apps/tests/macro/if/assign_join_basic.nyash
Normal file
@ -0,0 +1,5 @@
|
||||
function main(args) {
|
||||
local a = 0
|
||||
if 1 { a = 1 } else { a = 2 }
|
||||
}
|
||||
|
||||
17
apps/tests/macro/if/assign_three_vars.nyash
Normal file
17
apps/tests/macro/if/assign_three_vars.nyash
Normal file
@ -0,0 +1,17 @@
|
||||
function main(args) {
|
||||
local a, b, c
|
||||
local d = 1
|
||||
if d == 1 {
|
||||
a = 1
|
||||
b = 2
|
||||
c = 3
|
||||
} else {
|
||||
a = 10
|
||||
b = 20
|
||||
c = 30
|
||||
}
|
||||
print(a)
|
||||
print(b)
|
||||
print(c)
|
||||
}
|
||||
|
||||
15
apps/tests/macro/if/assign_two_vars.nyash
Normal file
15
apps/tests/macro/if/assign_two_vars.nyash
Normal file
@ -0,0 +1,15 @@
|
||||
function main(args) {
|
||||
local x, y
|
||||
local c = 1
|
||||
if c == 1 {
|
||||
x = 10
|
||||
y = 20
|
||||
} else {
|
||||
x = 30
|
||||
y = 40
|
||||
}
|
||||
// ensure use
|
||||
print(x)
|
||||
print(y)
|
||||
}
|
||||
|
||||
8
apps/tests/macro/if/then_only.nyash
Normal file
8
apps/tests/macro/if/then_only.nyash
Normal file
@ -0,0 +1,8 @@
|
||||
function main(args) {
|
||||
local x = 0
|
||||
if 1 {
|
||||
x = 42
|
||||
print(x)
|
||||
}
|
||||
}
|
||||
|
||||
11
apps/tests/macro/if/with_else.nyash
Normal file
11
apps/tests/macro/if/with_else.nyash
Normal file
@ -0,0 +1,11 @@
|
||||
function main(args) {
|
||||
local x
|
||||
local c = 0
|
||||
if c == 1 {
|
||||
x = 10
|
||||
} else {
|
||||
x = 20
|
||||
}
|
||||
print(x)
|
||||
}
|
||||
|
||||
4
apps/tests/macro/loopform/for_step2.nyash
Normal file
4
apps/tests/macro/loopform/for_step2.nyash
Normal file
@ -0,0 +1,4 @@
|
||||
for(fn(){ local i = 0 }, i <= 4, fn(){ i = i + 2 }, fn(){
|
||||
print(i)
|
||||
})
|
||||
|
||||
5
apps/tests/macro/loopform/foreach_empty.nyash
Normal file
5
apps/tests/macro/loopform/foreach_empty.nyash
Normal file
@ -0,0 +1,5 @@
|
||||
local arr = []
|
||||
foreach(arr, "x", fn() {
|
||||
print(x)
|
||||
})
|
||||
|
||||
9
apps/tests/macro/loopform/nested_block_break.nyash
Normal file
9
apps/tests/macro/loopform/nested_block_break.nyash
Normal file
@ -0,0 +1,9 @@
|
||||
// Nested bare block containing break; should terminate loop when i==3
|
||||
local i = 0
|
||||
loop (i < 10) {
|
||||
{ if i == 3 { break } }
|
||||
print(i)
|
||||
i = i + 1
|
||||
}
|
||||
return 0
|
||||
|
||||
11
apps/tests/macro/loopform/nested_if_break.nyash
Normal file
11
apps/tests/macro/loopform/nested_if_break.nyash
Normal file
@ -0,0 +1,11 @@
|
||||
local i = 0
|
||||
loop(1) {
|
||||
if (i < 10) {
|
||||
if (i == 3) {
|
||||
break
|
||||
}
|
||||
}
|
||||
print(i)
|
||||
i = i + 1
|
||||
}
|
||||
|
||||
14
apps/tests/macro/loopform/nested_if_continue.nyash
Normal file
14
apps/tests/macro/loopform/nested_if_continue.nyash
Normal file
@ -0,0 +1,14 @@
|
||||
local i = 0
|
||||
loop(i < 6) {
|
||||
if (i % 2 == 0) {
|
||||
if (i == 4) {
|
||||
i = i + 1
|
||||
continue
|
||||
}
|
||||
i = i + 1
|
||||
continue
|
||||
}
|
||||
print(i)
|
||||
i = i + 1
|
||||
}
|
||||
|
||||
2
apps/tests/macro/strings/env_tag_demo.nyash
Normal file
2
apps/tests/macro/strings/env_tag_demo.nyash
Normal file
@ -0,0 +1,2 @@
|
||||
print("hello")
|
||||
|
||||
4
apps/tests/macro/strings/index_of_demo.nyash
Normal file
4
apps/tests/macro/strings/index_of_demo.nyash
Normal file
@ -0,0 +1,4 @@
|
||||
local s = "hello world"
|
||||
local i = s.indexOf("world")
|
||||
print(i)
|
||||
|
||||
3
apps/tests/parser/semicolon_basic.nyash
Normal file
3
apps/tests/parser/semicolon_basic.nyash
Normal file
@ -0,0 +1,3 @@
|
||||
print("A"); print("B")
|
||||
return 0
|
||||
|
||||
8
apps/tests/parser/semicolon_else_edge.nyash
Normal file
8
apps/tests/parser/semicolon_else_edge.nyash
Normal file
@ -0,0 +1,8 @@
|
||||
function main(args) {
|
||||
if 1 {
|
||||
print("x")
|
||||
} ; else {
|
||||
print("y")
|
||||
}
|
||||
}
|
||||
|
||||
8
apps/tests/pyvm/argv_echo.nyash
Normal file
8
apps/tests/pyvm/argv_echo.nyash
Normal file
@ -0,0 +1,8 @@
|
||||
static box Main {
|
||||
main(args) {
|
||||
if args { if args.size() > 0 { print(args.get(0)) return 0 } }
|
||||
print("")
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
5
apps/tests/strings/byte_ascii_demo.nyash
Normal file
5
apps/tests/strings/byte_ascii_demo.nyash
Normal file
@ -0,0 +1,5 @@
|
||||
// Byte-ASCII demo: ASCII-only so CP==Byte semantics
|
||||
local s = "hello_world_123"
|
||||
print(s.length()) // 15
|
||||
print(s.indexOf("_")) // 5
|
||||
print(s.substring(6, 11)) // world
|
||||
8
apps/tests/strings/utf8_cp_demo.nyash
Normal file
8
apps/tests/strings/utf8_cp_demo.nyash
Normal file
@ -0,0 +1,8 @@
|
||||
// UTF-8 CP semantics demo: expect CP-based results under PyVM
|
||||
// String: a + é (U+00E9) + 𝄞 (U+1D11E)
|
||||
|
||||
local s = "aé𝄞"
|
||||
print(s.length()) // expect 3 (code points)
|
||||
print(s.indexOf("é")) // expect 1
|
||||
print(s.lastIndexOf("é")) // expect 1
|
||||
print(s.substring(1, 3)) // expect "é𝄞"
|
||||
2
apps/tests/sugar/not_basic.nyash
Normal file
2
apps/tests/sugar/not_basic.nyash
Normal file
@ -0,0 +1,2 @@
|
||||
print(!0)
|
||||
print(!1)
|
||||
Reference in New Issue
Block a user