A good book to practice multi topics in the same project compiler, oop principles, design pattern, and teach you how debugger and IDE created, But the problem is in some chapters the code is not complete and I recommend to start with Crafting Interpreter or Modern Compiler Implementation
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.