ANTLR
Введение в ANTLR v4
Поиск…
замечания
ANTLR v4 - мощный инструмент, используемый для создания новых языков программирования и обработки / перевода структурированных текстовых или двоичных файлов. ANTLR использует созданную вами грамматику для генерации парсера, который может создавать и перемещать дерево разбора (или абстрактное синтаксическое дерево, AST). Парсер состоит из выходных файлов на указанном вами целевом языке. ANTLR v4 поддерживает несколько целей, включая: Java, C #, JavaScript, Python2 и Python3. Работа над C ++ работает. Для работы с IDE в GUI существуют плагины для Visual Studio, Intellij, NetBeans и Eclipse.
Для получения общей информации посетите веб-сайт ANTLR . Чтобы серьезно относиться к ANTLR, ознакомьтесь с очень рекомендуемой книгой, написанной Терренсом Парром (парнем, создавшим ANTLR) . Окончательный ANTLR 4 Reference .
Значительная информация о версии
- 4.5: 01/22/15 - Добавлен целевой объект JavaScript и обновлена цель C #. 4.5 Примечания к выпуску
- 4.4: 07/16/14 - Добавлены Python2 и Python3 в качестве целей. 4.4 Примечания к выпуску
- 4.3: 06/18/14 - исправлены основные ошибки; подготовленный для добавления новых целей. 4.3 Примечания к выпуску
- 4.2: 02/04/14 - Улучшен синтаксис для выбора / соответствия деревьев разбора. 4.2 Примечания к выпуску
- 4.1: 06/30/13 - улучшенная производительность синтаксического анализа; экспортировать АСТ в PNG. 4.1 Примечания к выпуску
- 4.0: 01/21/13 - Первоначальный выпуск.
Установка для использования в командной строке
ANTLR распространяется как файл Java Jar. Его можно скачать здесь . Поскольку ANTLR скомпилирован как файл jar, он впоследствии требует, чтобы среда выполнения Java работала, если у вас ее нет. Ее можно скачать здесь .
После загрузки файла ANTLR JAR вы можете запустить ANTLR из командной строки так же, как и любой другой JAR-файл:
Java -jar antlr-4.5.3-complete.jar
(Предположим, что вы работаете в том же каталоге, что и файл antlr-4.5.3-complete.jar).
Это должно вывести что-то похожее на это:
ANTLR Parser Generator Version 4.5.3
-o ___ specify output directory where all output is generated
-lib ___ specify location of grammars, tokens files
-atn generate rule augmented transition network diagrams
-encoding ___ specify grammar file encoding; e.g., euc-jp
-message-format ___ specify output style for messages in antlr, gnu, vs2005
-long-messages show exception details when available for errors and warnings
-listener generate parse tree listener (default)
-no-listener don't generate parse tree listener
-visitor generate parse tree visitor
-no-visitor don't generate parse tree visitor (default)
-package ___ specify a package/namespace for the generated code
-depend generate file dependencies
-D<option>=value set/override a grammar-level option
-Werror treat warnings as errors
-XdbgST launch StringTemplate visualizer on generated code
-XdbgSTWait wait for STViz to close before continuing
-Xforce-atn use the ATN simulator for all predictions
-Xlog dump lots of logging info to antlr-timestamp.log
другие рекомендуемые действия для настройки:
1. Add antlr4-complete.jar to CLASSPATH, either: Permanently:
Using System Properties dialog > Environment variables > Create or append to CLASSPATH variable Temporarily, at command line: SET CLASSPATH=.;C:\Javalib\antlr4-complete.jar;%CLASSPATH%
3.Create batch commands for ANTLR Tool, TestRig in dir in PATH
antlr4.bat: java org.antlr.v4.Tool %*
grun.bat: java org.antlr.v4.gui.TestRig %*
После настройки вы можете создать приложение, используя ваш грамматический файл .g4:
Java -jar antlr-4.5.3-complete.jar yourGrammar.g4
Вы также можете создать приложение на других языках с параметром -Dlanguage. Например, чтобы сгенерировать файлы C #, вы должны сделать что-то вроде этого:
java -jar antlr-4.5.3-complete.jar yourGrammar.g4 -Dlanguage=CSharp
См. Здесь полный список подготовленных грамматик для общих языков программирования.
Установка с использованием средств автоматизации сборки
Загрузите последнюю версию ANTLR и извлеките ее в папку.
Вы можете использовать также Maven, Gradle или другой инструмент построения, чтобы зависеть от его среды выполнения (классы, которые используют сгенерированные грамматики): org.antlr:antlr4-runtime
.
Чтобы автоматически - часть процесса сборки - генерировать парсер в проекте maven, используйте плагин Maven : org.antlr:antlr4
.
Установить в Eclipse и создать Hello World
(Протестировано с ANTLR 4.5.3, Eclipse Neon, ANTLR 4 IDE 0.3.5 и Java 1.8)
- Загрузите последний ANTLR . Удостоверьтесь, что вы получили полную версию бинарных файлов ANTLR Java. Сохраните в любом подходящем месте, например папку, в которой хранятся другие библиотеки Java. Неважно, где, просто помните место.
Установите ANTLR IDE в Eclipse.
- В меню Eclipse нажмите «Справка» и выберите «Затмение».
- В поле «Найти» введите antlr и нажмите «Перейти».
- Нажмите «Установить» для IDE ANTLR 4.
- Нажмите «Готово» в окне «Подтвердить выбранные функции».
- Если появится окно предупреждения безопасности, нажмите «ОК».
- Перезапустить Eclipse.
Работайте над ошибкой «Не удалось создать инжектор ...».
- При доступе к ANTLR 4 Preferences в Eclipse или когда не задана переменная HOME HOME, возникает следующая ошибка: Не удалось создать инжектор для com.github.jknack.antlr-4ide.Antlr4 для com.github.jknack.antlr-4ide.Antlr4 ,
- Убедитесь, что установлен параметр HOME. Если нет, установите его в соответствии с вашей системой.
- Загрузите Xtext 2.7.3 в том же месте, что и antlr-nnn-complete.jar.
- В Eclipse нажмите «Справка» и выберите «Установить новое программное обеспечение».
- Нажмите «Добавить ...», чтобы перейти в окно «Добавить репозиторий».
- Введите имя, xtext 2.7.3, а затем нажмите «Архив ...», перейдите к файлу Xtext 2.7.3 и выберите его, затем нажмите «ОК».
- В окне «Установка» нажмите кнопку «Выбрать все», затем нажмите «Далее»> дважды, примите лицензионное соглашение. и нажмите «Готово».
- Перезапустить Eclipse.
Скажите Eclipse / Java, где ANTLR.
- В Eclipse нажмите «Окно» и выберите «Настройки».
- На левой панели разверните узел Java и Build Path, затем выберите переменные класса.
- В правой панели нажмите «Создать ...», введите имя и нажмите «Файл ...» и перейдите к своему местоположению antlr-nnn-complete.jar. Нажмите «ОК», чтобы вернуться в окно «Переменные переменных класса».
- Нажмите «ОК», чтобы выйти из «Настройки».
(Необязательно) Настройте каталог сгенерированных источников ANTLR IDE.
- В главном окне Eclipse нажмите «Окно», затем «Настройки».
- На левой панели разверните ANTLR 4 и выберите «Инструмент».
- В разделе «Параметры» при необходимости измените каталог. Например, java - это мой целевой язык, поэтому я использую ./antlr-java.
- Нажмите «ОК», чтобы закрыть окно «Настройки».
Создайте проект ANTLR 4.
- В главном окне Eclipse откройте «Файл», «Создать», «Проект».
- В окне «Новый проект» разверните «Общие» и выберите «Проект ANTLR 4».
- Нажмите «Далее», введите название проекта и нажмите «Готово».
- Новый проект по умолчанию содержит файл Hello.g4 и автоматически создаст стандартную программу Hello World.
- В Проводнике пакетов разверните новую папку проекта, чтобы увидеть файл g4 и папку с именем target (или имя, которое вы дали на шаге 5), содержащее целевые исходные файлы.
Установка ANTLR в Visual Studio 2015 (с использованием Nuget)
- Откройте Visual Studio 2015, перейдите в Инструменты → Расширения → Онлайн и найдите Antlr. Загрузите расширение ANTLR Language Support (Создано Sam Harwell) и перезапустите Visual Studio.
- Создайте новый проект консольного приложения. Щелкните правой кнопкой мыши на Solution → Manage Nuget Packages for Solution → Browse (Tab) и найдите Antlr4 и установите его.
- Добавьте новый элемент в свой проект, щелкнув его правой кнопкой мыши. Ищите шаблоны ANTLR4.
- Из файла ANTLR (окончание .g4) перейдите в меню «Файл → Предварительное сохранение параметров» и выполните поиск Unicode (UTF-8 без подписи ) - Codepage 65001 и нажмите «ОК». Это оно.
Если все работает
- Создайте элемент комбинированной грамматики ANTLR 4 и назовите его Calculator.g4
- Скопируйте и вставьте исходный код калькулятора из этого проекта Github здесь: Калькулятор от Tom Everett
- Сменить грамматический калькулятор на грамматический калькулятор
- В обозревателе решений → Нажмите Показать все файлы.
- Сохранить и запустить (запустить) проект
- В обозревателе решений в папке obj вы должны увидеть классы cs, созданные как посетитель и слушатель. Если это так, вам это удалось. Теперь вы можете начать работу с ANTLR в Visual Studio 2015.