Consolidating interpreter tests into base class
Refactoring reference to ensure encapsulated expression doesn't escape
Removing reduce/evaluate duality, unused classes and methods, redundant throws
Consolidating frequently used symbols
Consolidating interpreter tests into base class
Adding metadata to expressions
Exposing code location in metadata
Creating meta meta expressions
Paradigm shift: removing memoization in favor of more imperative-style programming
Adding block expressions
Using non-regex input scanning
Adding sequence expression translation and runtime structure
Reserving '=' for assignment/declaration only, removing additional 'is'/'is not' aliases
Removing dependence on regex and java.lang.Character for identifiers
Refactoring input reader to operate on positions on lines rather than buffering "input references"
Using 0, 0 as empty input position rather than -1, 0
Exchanging regex for keywords in boolean scanner
Working to establish difference between equality and identity
Removing 'isNothing' method in favor of identity 'is Nothing'
Replacing integer and double regex's with hand-written scanners
Supporting single-assignment in blocks