If you have a need for a parser generator for your applications say a SQL parser or an expression parser to plugin somewhere in your application, your obvious choices are ANTLR or JavaCC. ANTLR (ANother Tool for Language Recognition) is a parser generator developed by Terence Parr, it is extremely versatile and is capable of generating parsers in multiple programming languages, but requires a run time library. The Definitive ANTLR 4 Reference is an excellent book to get into ANTLR. JavaCC (Java Compiler Compiler) was written originally by Dr. Sriram Sankar and Sreenivasa Viswanadha. It is only capable of generating parsers in Java but doesn’t require a runtime library and the parsers it generates are very performant for an LL(k) parsers. Useful References: 1. https://dzone.com/articles/antlr-and-javacc-parser-generators 2. Work on JavaCC