├── .gitignore ├── .travis.yml ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── Makefile ├── README.md ├── examples ├── lambda_example ├── list_example ├── run_tests.py ├── runtime.c ├── src ├── anf.rs ├── ast.rs ├── emit.rs ├── lexer.rs ├── main.rs ├── parser.rs ├── util.rs └── x86.rs └── tests ├── add.input ├── add.output ├── add2.input ├── add2.output ├── fibo.input ├── fibo.output ├── func.input ├── func.output ├── if.input ├── if.output ├── lambda.input ├── lambda.output ├── neg.input ├── neg.output ├── tuple1.input └── tuple1.output /.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/.travis.yml -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/README.md -------------------------------------------------------------------------------- /examples: -------------------------------------------------------------------------------- 1 | (if (> 4 3) 12 42) 2 | -------------------------------------------------------------------------------- /lambda_example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/lambda_example -------------------------------------------------------------------------------- /list_example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/list_example -------------------------------------------------------------------------------- /run_tests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/run_tests.py -------------------------------------------------------------------------------- /runtime.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/runtime.c -------------------------------------------------------------------------------- /src/anf.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/anf.rs -------------------------------------------------------------------------------- /src/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/ast.rs -------------------------------------------------------------------------------- /src/emit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/emit.rs -------------------------------------------------------------------------------- /src/lexer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/lexer.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/parser.rs -------------------------------------------------------------------------------- /src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/util.rs -------------------------------------------------------------------------------- /src/x86.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/src/x86.rs -------------------------------------------------------------------------------- /tests/add.input: -------------------------------------------------------------------------------- 1 | (+ 2 3) 2 | -------------------------------------------------------------------------------- /tests/add.output: -------------------------------------------------------------------------------- 1 | 5 2 | -------------------------------------------------------------------------------- /tests/add2.input: -------------------------------------------------------------------------------- 1 | (+ 3 (- 1)) 2 | -------------------------------------------------------------------------------- /tests/add2.output: -------------------------------------------------------------------------------- 1 | 2 2 | -------------------------------------------------------------------------------- /tests/fibo.input: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/tests/fibo.input -------------------------------------------------------------------------------- /tests/fibo.output: -------------------------------------------------------------------------------- 1 | 13 2 | -------------------------------------------------------------------------------- /tests/func.input: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/tests/func.input -------------------------------------------------------------------------------- /tests/func.output: -------------------------------------------------------------------------------- 1 | 3 2 | -------------------------------------------------------------------------------- /tests/if.input: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/tests/if.input -------------------------------------------------------------------------------- /tests/if.output: -------------------------------------------------------------------------------- 1 | 12 2 | -------------------------------------------------------------------------------- /tests/lambda.input: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/tests/lambda.input -------------------------------------------------------------------------------- /tests/lambda.output: -------------------------------------------------------------------------------- 1 | 41 2 | -------------------------------------------------------------------------------- /tests/neg.input: -------------------------------------------------------------------------------- 1 | (- 1) 2 | -------------------------------------------------------------------------------- /tests/neg.output: -------------------------------------------------------------------------------- 1 | -1 2 | -------------------------------------------------------------------------------- /tests/tuple1.input: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/samrat/rusl/HEAD/tests/tuple1.input -------------------------------------------------------------------------------- /tests/tuple1.output: -------------------------------------------------------------------------------- 1 | 2 2 | --------------------------------------------------------------------------------