# Crafting Interpreters Using rust to implement the first part of [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](./flake.nix) file within the project folder (look for the key `buildInputs`, though [rustup](https://rustup.rs/) might just work with the provided toolchain file). My recommendation is to use the provided [nix flake](https://nixos.wiki/wiki/Flakes) directly, as it sets up everything automatically. Use `cargo run -- ` to run the interpreter directly from the source code. Specify needed arguments in place of ``. ``` Usage: rox Commands: run Run 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 ``` For example running the [Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) implemented in [brainfuck](https://en.wikipedia.org/wiki/Brainfuck) (read the [source file](bf/game_of_life.bf) to figure out how to use it): ``` RUST_LOG=info cargo run --release -- run -s ./lox/bf.lox -- bf/game_of_life.bf ``` Please note that some parts of the implementation have not been given enough thought.