├── .gitignore ├── Cargo.toml ├── codegen ├── Cargo.toml ├── lib.s └── src │ ├── brute_alloc.rs │ ├── graph_alloc.rs │ ├── lib.rs │ ├── mips.rs │ └── mips_gen.rs ├── common ├── Cargo.toml └── src │ ├── errors.rs │ ├── ignore_result.rs │ ├── indent_printer.rs │ ├── lib.rs │ ├── loc.rs │ ├── op.rs │ └── ref.rs ├── driver ├── Cargo.toml └── src │ ├── cli.rs │ ├── lib.rs │ ├── test.rs │ └── test_util.rs ├── print ├── Cargo.toml └── src │ ├── ast.rs │ ├── lib.rs │ ├── mips.rs │ ├── scope.rs │ └── tac.rs ├── readme.md ├── syntax ├── Cargo.toml └── src │ ├── ast.rs │ ├── lib.rs │ ├── parser.rs │ ├── parser_ll.rs │ ├── symbol.rs │ └── ty.rs ├── tac ├── Cargo.toml └── src │ ├── iter.rs │ └── lib.rs ├── tacgen ├── Cargo.toml └── src │ ├── info.rs │ └── lib.rs ├── tacopt ├── Cargo.toml └── src │ ├── aliveness.rs │ ├── bb.rs │ ├── common_expr.rs │ ├── const_prop.rs │ ├── copy_prop.rs │ ├── flow.rs │ └── lib.rs └── typeck ├── Cargo.toml └── src ├── lib.rs ├── scope_stack.rs ├── symbol_pass.rs └── type_pass.rs /.gitignore: -------------------------------------------------------------------------------- 1 | Cargo.lock 2 | .idea 3 | target 4 | testcase -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/Cargo.toml -------------------------------------------------------------------------------- /codegen/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/Cargo.toml -------------------------------------------------------------------------------- /codegen/lib.s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/lib.s -------------------------------------------------------------------------------- /codegen/src/brute_alloc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/src/brute_alloc.rs -------------------------------------------------------------------------------- /codegen/src/graph_alloc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/src/graph_alloc.rs -------------------------------------------------------------------------------- /codegen/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/src/lib.rs -------------------------------------------------------------------------------- /codegen/src/mips.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/src/mips.rs -------------------------------------------------------------------------------- /codegen/src/mips_gen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/codegen/src/mips_gen.rs -------------------------------------------------------------------------------- /common/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/Cargo.toml -------------------------------------------------------------------------------- /common/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/errors.rs -------------------------------------------------------------------------------- /common/src/ignore_result.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/ignore_result.rs -------------------------------------------------------------------------------- /common/src/indent_printer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/indent_printer.rs -------------------------------------------------------------------------------- /common/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/lib.rs -------------------------------------------------------------------------------- /common/src/loc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/loc.rs -------------------------------------------------------------------------------- /common/src/op.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/op.rs -------------------------------------------------------------------------------- /common/src/ref.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/common/src/ref.rs -------------------------------------------------------------------------------- /driver/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/driver/Cargo.toml -------------------------------------------------------------------------------- /driver/src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/driver/src/cli.rs -------------------------------------------------------------------------------- /driver/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/driver/src/lib.rs -------------------------------------------------------------------------------- /driver/src/test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/driver/src/test.rs -------------------------------------------------------------------------------- /driver/src/test_util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/driver/src/test_util.rs -------------------------------------------------------------------------------- /print/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/print/Cargo.toml -------------------------------------------------------------------------------- /print/src/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/print/src/ast.rs -------------------------------------------------------------------------------- /print/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/print/src/lib.rs -------------------------------------------------------------------------------- /print/src/mips.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/print/src/mips.rs -------------------------------------------------------------------------------- /print/src/scope.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/print/src/scope.rs -------------------------------------------------------------------------------- /print/src/tac.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/print/src/tac.rs -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/readme.md -------------------------------------------------------------------------------- /syntax/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/Cargo.toml -------------------------------------------------------------------------------- /syntax/src/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/src/ast.rs -------------------------------------------------------------------------------- /syntax/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/src/lib.rs -------------------------------------------------------------------------------- /syntax/src/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/src/parser.rs -------------------------------------------------------------------------------- /syntax/src/parser_ll.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/src/parser_ll.rs -------------------------------------------------------------------------------- /syntax/src/symbol.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/src/symbol.rs -------------------------------------------------------------------------------- /syntax/src/ty.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/syntax/src/ty.rs -------------------------------------------------------------------------------- /tac/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tac/Cargo.toml -------------------------------------------------------------------------------- /tac/src/iter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tac/src/iter.rs -------------------------------------------------------------------------------- /tac/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tac/src/lib.rs -------------------------------------------------------------------------------- /tacgen/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacgen/Cargo.toml -------------------------------------------------------------------------------- /tacgen/src/info.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacgen/src/info.rs -------------------------------------------------------------------------------- /tacgen/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacgen/src/lib.rs -------------------------------------------------------------------------------- /tacopt/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/Cargo.toml -------------------------------------------------------------------------------- /tacopt/src/aliveness.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/aliveness.rs -------------------------------------------------------------------------------- /tacopt/src/bb.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/bb.rs -------------------------------------------------------------------------------- /tacopt/src/common_expr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/common_expr.rs -------------------------------------------------------------------------------- /tacopt/src/const_prop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/const_prop.rs -------------------------------------------------------------------------------- /tacopt/src/copy_prop.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/copy_prop.rs -------------------------------------------------------------------------------- /tacopt/src/flow.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/flow.rs -------------------------------------------------------------------------------- /tacopt/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/tacopt/src/lib.rs -------------------------------------------------------------------------------- /typeck/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/typeck/Cargo.toml -------------------------------------------------------------------------------- /typeck/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/typeck/src/lib.rs -------------------------------------------------------------------------------- /typeck/src/scope_stack.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/typeck/src/scope_stack.rs -------------------------------------------------------------------------------- /typeck/src/symbol_pass.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/typeck/src/symbol_pass.rs -------------------------------------------------------------------------------- /typeck/src/type_pass.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decaf-lang/decaf-rs/HEAD/typeck/src/type_pass.rs --------------------------------------------------------------------------------