Go to file
2025-05-30 12:37:09 +02:00
.vscode wip 2025-05-28 09:05:18 +02:00
bf finish bf interpreter 2025-05-28 21:28:25 +02:00
lox set empty prompt for bf interpreter, gol uses its own 2025-05-30 12:37:09 +02:00
src update to rust 1.87 2025-05-30 12:34:52 +02:00
.envrc remove java implementation, was merely a book copy 2025-05-26 10:30:31 +02:00
.gitignore rust skeleton 2025-02-06 11:34:46 +01:00
Cargo.lock update all packages 2025-05-26 10:33:34 +02:00
Cargo.toml update to rust 1.87 2025-05-30 12:34:52 +02:00
COPYING add license text because why not 2025-05-26 10:35:22 +02:00
flake.lock remove java implementation, was merely a book copy 2025-05-26 10:30:31 +02:00
flake.nix update to rust 1.87 2025-05-30 12:34:52 +02:00
README.md add link to source file in readme 2025-05-28 22:02:52 +02:00
rust-toolchain.toml update to rust 1.87 2025-05-30 12:34:52 +02:00

Crafting Interpreters

Using rust to implement the first part of Crafting interpreters for the 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.

Use cargo run -- <ARGS> to run the interpreter directly from the source code. Specify needed arguments in place of <ARGS>.

Usage: rox <COMMAND>

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 implemented in brainfuck (read the source file 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.