Writing a compiler following the tutorial on Writing Compilers and Interpreters: a Software Engineering Approach (Mak Ronald)