2013-05-07 4 views
2

У нас есть грамматика, написанная для antlr V3, и я хотел бы перейти на antlr v4. Есть ли руководство по миграции. а также я хотел бы знать изменения существующей грамматики V3, так что мы хорошо используем функции v4.Миграция ANTLR v3 грамматики в ANTLR v4

ответ

3

Самый большой удар будет, если вы использовали AST Construction и Tree Parsing в версии 3 или более ранней версии. Huge разница есть. У вас больше нет поколения АСТ (теперь он генерирует деревья синтаксического анализа) или Tree Walkers (теперь вы используете Parser Listeners или Parse Tree).

Я еще не видел путеводитель по миграции, но если вы просматриваете документы v4 и в настоящее время используете AST или Tree Walkers, посмотрите разделы v4 на деревьях, прослушивателях и посетителях.

Большинство других изменений - это то, что облегчает запись парсеров, хотя некоторые из них могут вызвать у вас небольшую проблему, если вы не будете осторожны. Например, теперь вы можете писать леворекурсивные правила, но если вы зависите от определенного приоритета (например, в грамматике выражений), вам нужно тщательно сопоставить несколько шаблонов для компилятора ANTLR4, чтобы понять правильный приоритет.

Я бы настоятельно предложил получить книгу Тер, The Definitive ANTLR4 Reference и просто прочитать ее. Он дает большую часть деталей, которые вам понадобятся, хотя вы все равно захотите немного поиграть.

Я только что сделал первый взнос при написании очень простого плагина ANTLR4 для Eclipse, и я надеюсь опубликовать его в ближайшее время. Это требует немного больше тестирования, но пока это базовый строитель. Следующим шагом является создание редактора ...

Смежные вопросы