├── .github └── workflows │ ├── rust-wasm-deploy.yml │ └── rust-wasm.yml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── examples ├── 00-match.rs ├── 01-tokenize.rs ├── 02-paren.rs ├── 03-tree.rs ├── 04-expr.rs ├── 05-nom.rs ├── 05a-pest.rs ├── 06-eval.rs ├── 07-mul.rs ├── 08-fn.rs ├── 09-fn-stdin.rs ├── 10-var.rs ├── 11-var-assign.rs ├── 12-if.rs ├── 13-for.rs ├── 14-fn-def.rs ├── 15-return.rs ├── 16-break-continue.rs ├── 17-type.rs ├── 19-type-decl.rs ├── 20-type-check.rs ├── 21-type-check-builtin-fn.rs ├── 22-nom-locate.rs ├── 23-bytecode.rs ├── 24-serialize-code.rs ├── 25-literal-table.rs ├── 26-bytecode-expr.rs ├── 27-full-expr.rs ├── 28-bytecode-cond.rs ├── 29-full-stmt.rs ├── 30-fn-def.rs ├── 31-type-check.rs ├── 32-state-machine.rs ├── 33-coroutine.rs └── expr.pest ├── images └── ruscal.png ├── rustfmt.toml ├── scripts ├── 14-fn-def.rscl ├── 16-break.rscl ├── 16-continue.rscl ├── 17-mandel.rscl ├── 19-type-decl.rscl ├── 20-type-check-fn.rscl ├── 21-type-check-builtin-fn.rscl ├── 28-if-expr.rscl ├── 29-break-err.rscl ├── 29-circle.rscl ├── 29-for-break.rscl ├── 29-for-reassign.rscl ├── 29-for.rscl ├── 29-nested-break.rscl ├── 29-nested-for.rscl ├── 29-reassign.rscl ├── 30-fn_def.rscl ├── 30-recurse.rscl ├── 31-break.rscl ├── 31-continue.rscl ├── 31-fn_return_typed.rscl ├── 31-mandel.rscl ├── 31-type_check_builtin_fn.rscl ├── 31-type_check_err.rscl ├── 31-type_check_fn.rscl ├── 31-type_decl.rscl ├── 32-debug.rscl ├── 32-yield.rscl ├── 33-coroutine.rscl ├── 33-generator.rscl ├── 34-optim_branch.rscl ├── 34-optim_loop.rscl ├── 34-optim_num.rscl ├── 34-optim_propagate.rscl ├── 34-optim_str.rscl ├── cmp.rscl ├── example.rscl ├── fn_return.rscl ├── for.rscl ├── gen_def.rscl ├── if.rscl ├── mandel.rscl ├── mandel_highres.js ├── mandel_highres.py ├── mandel_highres.rscl ├── nested_fn_def.rscl ├── nested_for.rscl ├── nocall.rscl ├── print.rscl ├── printdensity.rscl ├── type.rscl ├── var_assign.rscl ├── var_assign_error.rscl └── var_def.rscl ├── src ├── ast.rs ├── bytecode.rs ├── compiler.rs ├── file_io.rs ├── instructions.rs ├── lib.rs ├── main.rs ├── optimizer.rs ├── parser.rs ├── type_checker.rs ├── value.rs └── vm.rs └── wasm ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── index.html ├── js ├── index.js └── main.js ├── package-lock.json ├── package.json ├── scripts ├── canvas.rscl ├── coroutine.rscl ├── fact.rscl ├── fibonacci.rscl ├── for.rscl ├── nested_for.rscl └── type.rscl ├── src └── lib.rs ├── wasm_api.js └── webpack.config.js /.github/workflows/rust-wasm-deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/.github/workflows/rust-wasm-deploy.yml -------------------------------------------------------------------------------- /.github/workflows/rust-wasm.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/.github/workflows/rust-wasm.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/README.md -------------------------------------------------------------------------------- /examples/00-match.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/00-match.rs -------------------------------------------------------------------------------- /examples/01-tokenize.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/01-tokenize.rs -------------------------------------------------------------------------------- /examples/02-paren.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/02-paren.rs -------------------------------------------------------------------------------- /examples/03-tree.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/03-tree.rs -------------------------------------------------------------------------------- /examples/04-expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/04-expr.rs -------------------------------------------------------------------------------- /examples/05-nom.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/05-nom.rs -------------------------------------------------------------------------------- /examples/05a-pest.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/05a-pest.rs -------------------------------------------------------------------------------- /examples/06-eval.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/06-eval.rs -------------------------------------------------------------------------------- /examples/07-mul.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/07-mul.rs -------------------------------------------------------------------------------- /examples/08-fn.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/08-fn.rs -------------------------------------------------------------------------------- /examples/09-fn-stdin.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/09-fn-stdin.rs -------------------------------------------------------------------------------- /examples/10-var.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/10-var.rs -------------------------------------------------------------------------------- /examples/11-var-assign.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/11-var-assign.rs -------------------------------------------------------------------------------- /examples/12-if.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/12-if.rs -------------------------------------------------------------------------------- /examples/13-for.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/13-for.rs -------------------------------------------------------------------------------- /examples/14-fn-def.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/14-fn-def.rs -------------------------------------------------------------------------------- /examples/15-return.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/15-return.rs -------------------------------------------------------------------------------- /examples/16-break-continue.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/16-break-continue.rs -------------------------------------------------------------------------------- /examples/17-type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/17-type.rs -------------------------------------------------------------------------------- /examples/19-type-decl.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/19-type-decl.rs -------------------------------------------------------------------------------- /examples/20-type-check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/20-type-check.rs -------------------------------------------------------------------------------- /examples/21-type-check-builtin-fn.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/21-type-check-builtin-fn.rs -------------------------------------------------------------------------------- /examples/22-nom-locate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/22-nom-locate.rs -------------------------------------------------------------------------------- /examples/23-bytecode.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/23-bytecode.rs -------------------------------------------------------------------------------- /examples/24-serialize-code.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/24-serialize-code.rs -------------------------------------------------------------------------------- /examples/25-literal-table.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/25-literal-table.rs -------------------------------------------------------------------------------- /examples/26-bytecode-expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/26-bytecode-expr.rs -------------------------------------------------------------------------------- /examples/27-full-expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/27-full-expr.rs -------------------------------------------------------------------------------- /examples/28-bytecode-cond.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/28-bytecode-cond.rs -------------------------------------------------------------------------------- /examples/29-full-stmt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/29-full-stmt.rs -------------------------------------------------------------------------------- /examples/30-fn-def.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/30-fn-def.rs -------------------------------------------------------------------------------- /examples/31-type-check.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/31-type-check.rs -------------------------------------------------------------------------------- /examples/32-state-machine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/32-state-machine.rs -------------------------------------------------------------------------------- /examples/33-coroutine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/33-coroutine.rs -------------------------------------------------------------------------------- /examples/expr.pest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/examples/expr.pest -------------------------------------------------------------------------------- /images/ruscal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/images/ruscal.png -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- 1 | max_width = 64 2 | tab_spaces = 2 -------------------------------------------------------------------------------- /scripts/14-fn-def.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/14-fn-def.rscl -------------------------------------------------------------------------------- /scripts/16-break.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/16-break.rscl -------------------------------------------------------------------------------- /scripts/16-continue.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/16-continue.rscl -------------------------------------------------------------------------------- /scripts/17-mandel.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/17-mandel.rscl -------------------------------------------------------------------------------- /scripts/19-type-decl.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/19-type-decl.rscl -------------------------------------------------------------------------------- /scripts/20-type-check-fn.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/20-type-check-fn.rscl -------------------------------------------------------------------------------- /scripts/21-type-check-builtin-fn.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/21-type-check-builtin-fn.rscl -------------------------------------------------------------------------------- /scripts/28-if-expr.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/28-if-expr.rscl -------------------------------------------------------------------------------- /scripts/29-break-err.rscl: -------------------------------------------------------------------------------- 1 | 2 | break; 3 | -------------------------------------------------------------------------------- /scripts/29-circle.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/29-circle.rscl -------------------------------------------------------------------------------- /scripts/29-for-break.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/29-for-break.rscl -------------------------------------------------------------------------------- /scripts/29-for-reassign.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/29-for-reassign.rscl -------------------------------------------------------------------------------- /scripts/29-for.rscl: -------------------------------------------------------------------------------- 1 | var a = 10; 2 | 3 | for i in 0 to 3 { 4 | print(a + i); 5 | } 6 | -------------------------------------------------------------------------------- /scripts/29-nested-break.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/29-nested-break.rscl -------------------------------------------------------------------------------- /scripts/29-nested-for.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/29-nested-for.rscl -------------------------------------------------------------------------------- /scripts/29-reassign.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/29-reassign.rscl -------------------------------------------------------------------------------- /scripts/30-fn_def.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/30-fn_def.rscl -------------------------------------------------------------------------------- /scripts/30-recurse.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/30-recurse.rscl -------------------------------------------------------------------------------- /scripts/31-break.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-break.rscl -------------------------------------------------------------------------------- /scripts/31-continue.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-continue.rscl -------------------------------------------------------------------------------- /scripts/31-fn_return_typed.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-fn_return_typed.rscl -------------------------------------------------------------------------------- /scripts/31-mandel.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-mandel.rscl -------------------------------------------------------------------------------- /scripts/31-type_check_builtin_fn.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-type_check_builtin_fn.rscl -------------------------------------------------------------------------------- /scripts/31-type_check_err.rscl: -------------------------------------------------------------------------------- 1 | var i: i32 = i64(123); -------------------------------------------------------------------------------- /scripts/31-type_check_fn.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-type_check_fn.rscl -------------------------------------------------------------------------------- /scripts/31-type_decl.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/31-type_decl.rscl -------------------------------------------------------------------------------- /scripts/32-debug.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/32-debug.rscl -------------------------------------------------------------------------------- /scripts/32-yield.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/32-yield.rscl -------------------------------------------------------------------------------- /scripts/33-coroutine.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/33-coroutine.rscl -------------------------------------------------------------------------------- /scripts/33-generator.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/33-generator.rscl -------------------------------------------------------------------------------- /scripts/34-optim_branch.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/34-optim_branch.rscl -------------------------------------------------------------------------------- /scripts/34-optim_loop.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/34-optim_loop.rscl -------------------------------------------------------------------------------- /scripts/34-optim_num.rscl: -------------------------------------------------------------------------------- 1 | print((1 + 2) * 3 - 4); 2 | -------------------------------------------------------------------------------- /scripts/34-optim_propagate.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/34-optim_propagate.rscl -------------------------------------------------------------------------------- /scripts/34-optim_str.rscl: -------------------------------------------------------------------------------- 1 | print("1" + "2"); 2 | -------------------------------------------------------------------------------- /scripts/cmp.rscl: -------------------------------------------------------------------------------- 1 | 1 < 2; 2 | 3 | -------------------------------------------------------------------------------- /scripts/example.rscl: -------------------------------------------------------------------------------- 1 | 1; 2 | 2+3; 3 | 4*5; 4 | sin(pi/2); 5 | -------------------------------------------------------------------------------- /scripts/fn_return.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/fn_return.rscl -------------------------------------------------------------------------------- /scripts/for.rscl: -------------------------------------------------------------------------------- 1 | var a = 1; 2 | 3 | for i in 0 to 3 { 4 | a + i; 5 | } 6 | -------------------------------------------------------------------------------- /scripts/gen_def.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/gen_def.rscl -------------------------------------------------------------------------------- /scripts/if.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/if.rscl -------------------------------------------------------------------------------- /scripts/mandel.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/mandel.rscl -------------------------------------------------------------------------------- /scripts/mandel_highres.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/mandel_highres.js -------------------------------------------------------------------------------- /scripts/mandel_highres.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/mandel_highres.py -------------------------------------------------------------------------------- /scripts/mandel_highres.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/mandel_highres.rscl -------------------------------------------------------------------------------- /scripts/nested_fn_def.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/nested_fn_def.rscl -------------------------------------------------------------------------------- /scripts/nested_for.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/nested_for.rscl -------------------------------------------------------------------------------- /scripts/nocall.rscl: -------------------------------------------------------------------------------- 1 | 2 | "nocall"; 3 | 4 | -------------------------------------------------------------------------------- /scripts/print.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/print.rscl -------------------------------------------------------------------------------- /scripts/printdensity.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/printdensity.rscl -------------------------------------------------------------------------------- /scripts/type.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/type.rscl -------------------------------------------------------------------------------- /scripts/var_assign.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/var_assign.rscl -------------------------------------------------------------------------------- /scripts/var_assign_error.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/scripts/var_assign_error.rscl -------------------------------------------------------------------------------- /scripts/var_def.rscl: -------------------------------------------------------------------------------- 1 | 2 | var a = 1; 3 | 4 | a + 2; 5 | -------------------------------------------------------------------------------- /src/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/ast.rs -------------------------------------------------------------------------------- /src/bytecode.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/bytecode.rs -------------------------------------------------------------------------------- /src/compiler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/compiler.rs -------------------------------------------------------------------------------- /src/file_io.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/file_io.rs -------------------------------------------------------------------------------- /src/instructions.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/instructions.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/optimizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/optimizer.rs -------------------------------------------------------------------------------- /src/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/parser.rs -------------------------------------------------------------------------------- /src/type_checker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/type_checker.rs -------------------------------------------------------------------------------- /src/value.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/value.rs -------------------------------------------------------------------------------- /src/vm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/src/vm.rs -------------------------------------------------------------------------------- /wasm/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | target/ 4 | -------------------------------------------------------------------------------- /wasm/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/Cargo.lock -------------------------------------------------------------------------------- /wasm/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/Cargo.toml -------------------------------------------------------------------------------- /wasm/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/index.html -------------------------------------------------------------------------------- /wasm/js/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/js/index.js -------------------------------------------------------------------------------- /wasm/js/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/js/main.js -------------------------------------------------------------------------------- /wasm/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/package-lock.json -------------------------------------------------------------------------------- /wasm/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/package.json -------------------------------------------------------------------------------- /wasm/scripts/canvas.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/scripts/canvas.rscl -------------------------------------------------------------------------------- /wasm/scripts/coroutine.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/scripts/coroutine.rscl -------------------------------------------------------------------------------- /wasm/scripts/fact.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/scripts/fact.rscl -------------------------------------------------------------------------------- /wasm/scripts/fibonacci.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/scripts/fibonacci.rscl -------------------------------------------------------------------------------- /wasm/scripts/for.rscl: -------------------------------------------------------------------------------- 1 | var a: i64 = 1; 2 | 3 | for i in 0 to 3 { 4 | print(a + i); 5 | } 6 | -------------------------------------------------------------------------------- /wasm/scripts/nested_for.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/scripts/nested_for.rscl -------------------------------------------------------------------------------- /wasm/scripts/type.rscl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/scripts/type.rscl -------------------------------------------------------------------------------- /wasm/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/src/lib.rs -------------------------------------------------------------------------------- /wasm/wasm_api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/wasm_api.js -------------------------------------------------------------------------------- /wasm/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msakuta/ruscal/HEAD/wasm/webpack.config.js --------------------------------------------------------------------------------