У нас есть грамматика, написанная для antlr V3, и я хотел бы перейти на antlr v4. Есть ли руководство по миграции. а также я хотел бы знать изменения существующей грамматики V3, так что мы хорошо используем функции v4.Миграция ANTLR v3 грамматики в ANTLR v4
ответ
Самый большой удар будет, если вы использовали AST Construction и Tree Parsing в версии 3 или более ранней версии. Huge разница есть. У вас больше нет поколения АСТ (теперь он генерирует деревья синтаксического анализа) или Tree Walkers (теперь вы используете Parser Listeners или Parse Tree).
Я еще не видел путеводитель по миграции, но если вы просматриваете документы v4 и в настоящее время используете AST или Tree Walkers, посмотрите разделы v4 на деревьях, прослушивателях и посетителях.
Большинство других изменений - это то, что облегчает запись парсеров, хотя некоторые из них могут вызвать у вас небольшую проблему, если вы не будете осторожны. Например, теперь вы можете писать леворекурсивные правила, но если вы зависите от определенного приоритета (например, в грамматике выражений), вам нужно тщательно сопоставить несколько шаблонов для компилятора ANTLR4, чтобы понять правильный приоритет.
Я бы настоятельно предложил получить книгу Тер, The Definitive ANTLR4 Reference и просто прочитать ее. Он дает большую часть деталей, которые вам понадобятся, хотя вы все равно захотите немного поиграть.
Я только что сделал первый взнос при написании очень простого плагина ANTLR4 для Eclipse, и я надеюсь опубликовать его в ближайшее время. Это требует немного больше тестирования, но пока это базовый строитель. Следующим шагом является создание редактора ...
- 1. Antlr v4: «несоответствующий вход»
- 2. ANTLR версия2 синтаксис грамматики?
- 3. Ошибка связывания грамматики ANTLR
- 4. ANTLR грамматики неясность
- 5. Ошибка грамматики ANTLR
- 6. Неожиданное поведение грамматики ANTLR
- 7. Weird ANTLR правило грамматики
- 8. Разбор грамматики DECAF в ANTLR
- 9. ANTLR v3 C# пространства имен
- 10. Исключение, объявленное в правиле грамматики ANTLR, игнорируется
- 11. сопоставление значений в Antlr v4
- 12. Проблемы с Antlr грамматики (лексической)
- 13. ANTLR грамматики для цикла While
- 14. antlr "java.lang.NoSuchFieldError" о действии грамматики
- 15. Создание AST из ANTLR грамматики
- 16. ANTLR Идентификатор грамматики для COBOL
- 17. ANTLR код для данной грамматики
- 18. ANTLR грамматики для SMT формул
- 19. Antlr 4 C# файлы грамматики
- 20. Добавить исключение Обработка грамматики ANTLR
- 21. целевой Python для Java грамматики в ANTLR
- 22. Доступен Antlr V4 C#/java grammars?
- 23. Хорошая грамматика CSS в Antlr v4
- 24. Обнаружение отсутствующих символов в ANTLR v4 parser
- 25. ANTLR (v4) Правило не прилагая
- 26. ANTLR V4 lexer lookahead regex
- 27. ANTLR v4 + Xcode/objC/iOS?
- 28. Создание пользовательских деревьев синтаксиса в ANTLR v4
- 29. C грамматика для ANTLR v4
- 30. Можно ли использовать Xtext с Antlr v4?