Новое в ANTLR: в чем разница между ANTLR и JavaParser - PullRequest
1 голос
/ 05 декабря 2011

Я ищу синтаксический анализатор исходного кода Java и наткнулся на JavaParser, однако я заметил, что не хватает документации, так что я не могу по-настоящему изучить все варианты библиотеки.

В то же время я столкнулся с другой такой библиотекой - ANTLR. Могу ли я узнать, есть ли у кого-нибудь опыт работы с ANTLR, будь то ANTLR == JavaParser?

JavaParser ANTLR

Ответы [ 2 ]

3 голосов
/ 05 декабря 2011

Я бы порекомендовал прочитать книгу Теренса Парра: Шаблоны языковой реализации .

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

Также ANTLR также лицензируется под BSD, в то время как JavaParser подпадает под GNU Lesser GPL лицензия .

Я бы предпочел ANTLR.

2 голосов
/ 05 декабря 2011

ANTLR вырос из старого проекта PCCTS , и с 1988 или около того постоянно растет.Java была «недавним» дополнением в масштабе жизни ANTLR.

JavaParser вырос из JavaCC , который всегда жил на земле Java.

...