Tutorial on code generation

Step 1: Preparation
Step 2: Extend the symbol table
Step 3: Change the semantic type of expressions
Step 4: Generate code for expressions
Step 5: Generate code for instructions
Step 6: Generate code for variable declarations
Step 7: Completion