Build a Compiler in Five Projects