This would be a 5 star review, but the code examples get harder and harder to follow in later chapters, since the code listings are not complete in the text. Still, it gives excellent instruction on how to write a lexer, parser, interpreter, and compiler in Java.