zorLang: An AST Tree-Walk Interpreter & Domain-Specific Language
zorLang was my project for understanding interpreters from first principles, in Java. I wrote a hand-built recursive descent parser that scans, tokenizes, and parses source into a strongly typed Abstract Syntax Tree, then walk that tree with a hierarchical environment scoping model supporting nested blocks, dynamic typing, and lexical closures. Execution runs through the Visitor design pattern, keeping tree traversal cleanly separated from evaluation logic across control flow constructs like if/else, while, and for. On top of that sits an object-oriented runtime with initializer methods, instance properties, and dynamic method binding, backed by comprehensive lexical and runtime error reporting.
Learning how languages work by writing one from the ground up.