Build notes
I built this interpreter end to end in OCaml to follow source code through every stage of a small language implementation. Input is tokenized by a lexer, transformed by a parser, represented as an abstract syntax tree, and then evaluated.
The language supports variables, recursive behavior, and stack operations. Error handling is part of the implementation rather than an afterthought, so malformed programs produce useful feedback instead of failing silently.