# Crafting Interpreters Implementing [Crafting interpreters](https://craftinginterpreters.com) for the [FHNW](https://www.fhnw.ch) [PL-Circle](https://github.com/fhnw-pl-circle). All dependencies for running the respective implementations are specified in the `flake.nix` files within the project folders (look for the key `buildInputs`). Though my recommendation is to use the provided [nix flakes](https://nixos.wiki/wiki/Flakes). ## [Java Implementation](./java/lox-interpreter/) Implementation of the tree-walk interpreter in java after the book. Run `mvn package` to create an executable jar file in the `target` directory and `mvn exec:java@jlox` to get a repl. Run `mvn exec:java@generate-ast` to generate the expression class. ## [Rust implementation](./rust/rox/) Implementation of the tree-walk interpreter in rust. Use `cargo run -- ` to run the interpreter directly from the source code. Specify needed arguments in place of ``. ``` Usage: rox Commands: compile Compile a Lox source file repl Run a Lox REPL help Print this message or the help of the given subcommand(s) Options: -h, --help Print help -V, --version Print version ```