What it is
A compiler for the course language in CSE 340 Principles of Programming Languages, built in three phases in C++.
How it works
- Lexer (project 2): hand-written, streams tokens to the parser and supports pushing a token back when the parser needs to look ahead.
- Parser: recursive descent, one function per grammar rule, producing an abstract syntax tree.
- Executor (project 3): walks the tree and carries out the language’s runtime semantics.
Result
Tested against the course-provided test suite.