tvl-depot/users/tazjin/rlox
Vincent Ambo 29b2a54705 feat(tazjin/rlox): Implement global variable definition
identifier_str might look a bit overengineered, but we want to reuse
this bit of code and it needs a reference to the token from which to
pick the identifier.

The problem with this is that the token would be owned by self, but
the function needs to mutate (the interner), so this implementation is
the most straightforward way of acquiring and working with an
immutable reference to the token before interning the identifier.

Change-Id: I618ce8f789cb59b3a9c5b79a13111ea6d00b2424
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2592
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-03-06 11:52:00 +00:00
..
src feat(tazjin/rlox): Implement global variable definition 2021-03-06 11:52:00 +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.