This project follows Bob Nystrom's excellent book, Crafting Interpreters which takes you through the process of writing a virtual machine for a language called Lox. This VM is ported from the C to C++.
- Chunks of Bytecode.
- A Virtual Machine.
- Scanning on Demand.
- Compiling Expressions.
- Types of Values.
- Strings.
- Hash Tables. (no code, using
std
containers) - Globals Variables.
- Local Variables.
- Jumping Back and Forth.
- Calls and Functions.
- Closures.
- Garbage Collection. (not implemented, using
shared_ptr
instead for ref counting) - Classes and Instances.
- Methods and Initializers.
- Superclasses.