Compiler Construction Using Java, JavaCC, and Yacc - Dos Reis (IEEE, 2012)