Usage: rust_compiler_construction.exe [OPTIONS] [INPUT]
Arguments:
[INPUT] Specifies the path to an input .jj file. If None, it means stdin is used for input
Options:
-o, --output <OUTPUT> Specifies the path to an output file. If None, it uses the input filename. If that's also None, it defaults to "output"
-h, --help Print help
-V, --version Print version
These examples demonstrate how to build and run the compiler using Cargo.
Run with input from stdin:
echo "fn main() { print(42); }" | cargo run && ./output
Run with specified input path, without specifying an output path:
cargo run -- example.jj && ./example
Run with specified input path and specified output path:
cargo run -- input.jj -o output && ./output
- Literals
- Var
- BinaryOp
- UnaryOp
- Let
- If
- Functions
- Return
- Loop
- Break
- Continue
- While
- Sequences
- Structs
- Fixing that not very nice bug.
- Pass raw strings for testing (allows testing AoC problems).
- Compile + run
- Updated README, with 3 new colors!
- Add documentation where necessary.
- Improve error handling for parsing pass.
- Improve error handling for type checking pass.
- Make errors prettier.
- Improve algorithm for colouring the interference graph.
- Add read and write functionality to the bencher to update locally.
- Lots, and lots, of refactoring!
- Write test input in comments.
- Type inference.
- Implement comments in code.
- Algebraic Data Types.
- Structs.
- Enums.
- First-class functions.
- Constants.
- Dead code.
- Constant folding.
- Improve prologue and epilogue.
- Tail calls.
- And probably more...
- Make the compiler suggest hints.
- Nested definitions.
- Match statements.
- LSP.