DIFF adds expressions that can contain other expressions. That one change makes the grammar, AST, parser, and evaluator recursive, gives us a useful reason to look at Parser.lazy, and leads to a reusable symbol lexeme parser for handling symbols and trailing whitespace.
2 Likes