A WLP4 (subset of C) compiler written in C++ that compiles to MIPS assembly.
WLP4 is a language developed by the CS241 staff at uWaterloo, standing for "Waterloo Language Plus Pointers Plus Procedures". Here is a tutorial and here is the formal language specification. This compiler implements a scanner (simplified maximal munch scanning algorithm), parser (SLR(1) algorithm), type checker and code generator.
Since this was a compiler written for a course, I can provide it privately if contacted at twilkhoo@uwaterloo.ca.