Introduce a new code generator for expressions that visits the AST.
Make the new static code generator pass all the tests.
Get rid of most of the old parser dependencies from the code generator.
Clean up code to avoid using static state.