Move first bit of code generation code into the AST.
Move map generation code to AST.
Move block and statement generation code to AST.
Move expression and variable access code into the AST and symbol table.