An imperative, expression-based language built in C++. Features a tokenizer, recursive-descent parser, and a tree-walking interpreter with an interactive REPL.
- REPL for live code execution
- Arithmetic expressions with operator precedence
- Variable bindings with lexical scoping
- AST-based execution via tree-walk evaluation
mkdir build && cd build
cmake .. && makeThe executable will be testy in the build/ directory.
./testy>>> let x = 10;
10
>>> x * 3 + 2;
32
>>> let y = x - 4;
6
>>> y + x;
16
>>> exit 0;Built a simple interpreter from scratch, covering lexical analysis, AST construction, and runtime evaluation. Gained hands-on experience with smart pointers, RAII, and recursive parsing in C++.