A Cheat Sheet
How do I separate parsing logic from semantic logic (from code generation logic)?
How do I hold symbols to cross-reference between different parts of the parse?
=> Symbol Table
How do I keep hierarchic context during the parse?
As much as possible, I keep it on the stack and use parameters and return values.
If I can’t => Context Variable
How do I gradually build up an immutable object?
How do I collect and return multiple errors back to the caller of the parse?
How do I break up text into a parsing structure?
My structure is very simple => Delimiter-Directed ...