Add a code generator to your compiler. It should take an abstract syntax tree and the symbol tables from your semantic checker as input and produce a MIPS assembly language program that can be loaded into SPIM and run. It should be able to handle any program written in C2008 as input. The code generator should follow the visitor pattern. If an input program causes errors in the scanner, parser, or semantic checker, you should include a check so that it is not run through the code generator. So in the generator, you can assume that the tree represents a correct program. A separate handout will give you more information about how to generate code. See Appendix A in the Machine Organization book or http://www.cs.wisc.edu/~larus/spim.html if you need a refresher on MIPS. We will also discuss MIPS in class. You also need to relearn how to use SPIM (on cerebro -- xspim).
Use good style (including meaningful variable names and appropriate indentation) in your coding and be liberal with comments.
You should test your code generator on test cases and make corrections as necessary. As always, you will also be graded on the quality of your test cases. Include comments in your test cases indicating what is being tested in each.