Я бы порекомендовал прочитать книгу Теренса Парра: Шаблоны языковой реализации .
Я не буду перефразировать книгу и содержание его / ANTLR здесь, но мое понимание, или, если хотите, «забрать», это то, что JavaParser, построенный на JavaCC , считается отличным инструментом, но он не такой надежный и не имеет сообщества пользователей и инструментов (ANTLRWorks), которые есть у ANTLR. ANTLR также является очень мощным инструментом, позволяющим создавать генераторы синтаксических анализаторов, в частности рекурсивные порядковые синтаксические анализаторы LL (*) и другие.
Также ANTLR также лицензируется под BSD, в то время как JavaParser подпадает под GNU Lesser GPL лицензия .
Я бы предпочел ANTLR.