tvl-depot/users/tazjin/rlox
Vincent Ambo ee974b3edd feat(tazjin/rlox): Bootstrap rough shape of bytecode compiler
This one necessarily has to diverge more from the book than the
treewalk interpreter did, so some of this is expected to change, but
I'm happy with the rough shape.

Since we're reusing the old scanner, the compiler/parser struct owns
an iterator over all tokens with which the pull-scanner from the
bytecode chapters is simulated.

Change-Id: Icfa0bd4729d9df786e08f7e49a25cba1b9989a91
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2556
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-02-27 13:05:18 +00:00
..
src feat(tazjin/rlox): Bootstrap rough shape of bytecode compiler 2021-02-27 13:05:18 +00:00
.gitignore feat(tazjin/rlox): Bootstrap program 2020-11-23 01:15:57 +00:00
Cargo.lock feat(tazjin/rlox): Bootstrap program 2020-11-23 01:15:57 +00:00
Cargo.toml feat(tazjin/rlox): Bootstrap VM for Lox bytecode 2021-01-17 21:17:54 +00:00
default.nix feat(tazjin/rlox): Add basic program structure 2020-11-23 01:15:57 +00:00
README.md feat(tazjin/rlox): Bootstrap program 2020-11-23 01:15:57 +00:00
rustfmt.toml style(tazjin/rlox): Set max_width=80 2021-02-27 13:05:18 +00:00

This is an interpreter for the Lox language, based on the book "Crafting Interpreters".

The book's original code uses Java, but I don't want to use Java, so I've decided to take on the extra complexity of porting it to Rust.

Note: This implements the first of two Lox interpreters.