Каковы недостатки использования ANTLR по сравнению с Flex/бизоном?

Я рекомендовал бы тратить некоторые наличные деньги и добраться инструмент SQL Compare Красного Логического элемента, который делает превосходное задание и может даже сравнить базы данных с проектами базы данных Visual Studio генерировать сценарии обновления. Это быстро и просто в использовании, и работает хорошо. Сценарии обновления также имеют достойное качество.

Дело не в этом дорогой. Вероятно, менее дорогой, чем Ваше время. Просто думайте о том, сколько Ваша почасовая ставка, и сколько часов могло бы потребоваться, чтобы исследовать инструмент с открытым исходным кодом и получить его работа (и сколько Вы уже потратили), затем умножьте их вместе. Это - то, какого количества 'свободный' инструмент действительно стоит Вам, который часто является значительно больше, чем коммерческий инструмент.

9
задан rds 13 September 2018 в 16:46
поделиться

3 ответа

ANTLRv3 - это LL (k), и его можно настроен как LL (*). Последний, в частности, смехотворно легко писать синтаксические анализаторы, поскольку вы можете использовать EBNF как есть.

Кроме того, ANTLR генерирует код, который очень похож на синтаксический анализатор рекурсивного спуска, который вы бы написали с нуля. Его очень легко читать и легко отлаживать, чтобы понять, почему анализ не работает или работает неправильно.

Преимущество Flex / Bison (или любого другого анализатора LALR) в том, что он быстрее.

10
ответ дан 4 December 2019 в 19:34
поделиться

Мы решили использовать ANTLR для некоторых наших требований к обработке информации - синтаксического анализа устаревших файлов и естественного языка. Кривая обучения очень крутая, но мы уже находимся на вершине, и я чувствую, что это более современный и универсальный подход к тому, что нам нужно делать. Недостатки - как вы спросите - в основном связаны с кривой обучения, которая кажется неизбежной.

0
ответ дан 4 December 2019 в 19:34
поделиться

ANTLR имеет JAR библиотеки времени выполнения, который вы должны включить в свой проект.

Синтаксические анализаторы с рекурсивным спуском в ANTLR легче отлаживать, чем «восходящие» синтаксические анализаторы, созданные Flex / Bison, но правила грамматики немного другие.

Если вам нужен генератор синтаксического анализатора в стиле Flex / Bison (LALR) для Java, посмотрите JavaCC .

2
ответ дан 4 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: