application/octet-stream
•
1.42 KB
•
38 lines
#!/usr/bin/env nujel
;[disassemble/test '[[$nop] [$push/int 5] [$push/int 2] [$add/int] [$ret]]]
;[disassemble/test '[[$nop] [$push/int 26] [$push/lval #t] [$jt :asd] [$push/int 99] [:label :asd] [$ret]]]
;[disassemble/test '[[$jmp :start] [:label :func] [$push/int 2] [$add/int] [$ret] [:label :start] [$push/int 3] [$call :func] [$ret]]]
;[disassemble/test '[[$jmp :start] [:label :ret] [$push/int 3] [$ret] [:label :start] [$push/int 2] [$jmp :ret] [$ret]]]
;[println [str/write [compile ''[1 . 2]]]]
;[println [str/write [byterun '[do [== :bool [type-of #f]]]]]]
[def expr '[let [[code [assemble [$push/lval [list 'test 'list]] [$ret]]]] [garbage-collect] [bytecode-eval code]]]
[println [str/write [bytecompile [compile expr]]]]
[def a [assemble [bytecompile [compile expr]]]]
[disassemble/raw a]
[println [ansi-rainbow "Done!!!! => " [bytecode-eval a]]]
;[disassemble/test '[bytecompile [compile '[- 7 1]]]]
[exit]
[println [str/write [compile '[cond [[odd? 2] #f] [even? 2] #t]]]]
[println [ansi-blue "--------------------"]]
[println [str/write [bytecompile [compile '[cond [[odd? 2] #f] [even? 2] #t]]]]]
[println [ansi-blue "--------------------"]]
[println [str/write [byterun [cond [[odd? 2] #f] [even? 2] #t]]]]
#;[println [str/write [asmrun
[$jmp :start]
[:label :handle]
[$ret]
[:label :start]
[$try :handle]
[$let]
[$push/lval '[:asd "Test"]]
[$throw]
]]]