ANTLR
Введение в ANTLR v3
Поиск…
Установка и настройка
Как установить ANTLR в Eclipse
(Последнее тестирование на Indigo и ANTLR IDE 2.1.2)
- Установите Eclipse.
- Загрузите ANTLR полную бинарную банку, которая включает ANTLR v2. Извлечение в каталог temp. Скопируйте папку antlr-nn в соответствующее постоянное место, например, в ту же папку, в которую установлен Eclipse.
- Добавьте сайт обновления ANTLR IDE в Eclipse.
- В Eclipse нажмите «Справка» и выберите «Установить новое программное обеспечение».
- Нажмите кнопку «Добавить ...».
- В окне «Добавить репозиторий» введите «Тип местоположения» http://antlrv3ide.sourceforge.net/updates и введите что-то вроде ANTLR IDE для имени и нажмите «ОК», чтобы вернуться в окно «Доступное программное обеспечение».
- Установите флажок ANTLR IDE vn.nn и щелкните по нему до тех пор, пока он не будет установлен. Eclipse, вероятно, перезапустится.
- Настройте IDE ANTLR.
- В главном окне Eclipse нажмите «Окно», затем «Настройки».
- В левой панели разверните ANTLR и выберите «Builder».
- На правой панели нажмите кнопку «Добавить ...».
- В окне «Добавить ANTLR Package» выберите «Directory ...» и перейдите к папке antlr-nn и нажмите «ОК».
- Нажмите «ОК», чтобы закрыть окно «Добавить пакет ANTLR».
- Выберите «Генератор кода» в левой панели и нажмите «Отредактировать папку проекта» в правой панели. Введите имя папки. Примеры: antlr-java или antlr-generated.
- Выберите любые другие параметры конфигурации, но НЕ проверяйте -nfa или -dfa в окне «Общие» в окне «Строительство». Если флажок установлен, это приведет к ошибкам ANTLR, предотвращающим создание Java-файлов в выходной папке.
- Нажмите «ОК», чтобы закрыть окно «Настройки».
- Создайте новый проект Java и включите поддержку ANTLR.
- В главном окне Eclipse перейдите в File, New, Java Project. Нажмите «Далее», введите название проекта и нажмите «Готово».
- Чтобы включить поддержку ANTLR для проекта, в окне «Проводник пакетов» (левая панель) щелкните правой кнопкой мыши только что созданный проект и выберите «Настроить», «Преобразовать в проект ANTLR».
- Добавьте в проект полный файл jar ANTLR: щелкните правой кнопкой мыши проект и выберите «Свойства», «Путь сборки Java», «Добавить внешние JAR ...», перейдите к файлу jar ANTLR, выберите его и нажмите «ОК». Нажмите «ОК», чтобы закрыть окно «Свойства проекта».
- Создайте грамматику ANTLR.
- Создайте новую грамматику ANTLR: щелкните правой кнопкой мыши папку src проекта, затем File, New, Other, разверните ANTLR и выберите Комбинированную грамматику. Нажмите «Далее», введите имя грамматики, выберите «Язык» и нажмите «Готово».
- Файл «.g» создается с выбранными опциями и пустым правилом. Добавьте язык options = Java, @header, @lexer :: header и @members в верхней части (см. Пример). Автоматическое завершение - это самый простой способ добавить их (нажмите CTRL-пространство, чтобы открыть список автозавершения).
- Сохраните грамматику.
- При сохранении в Project Explorer должна появиться папка, содержащая сгенерированный Java-код для грамматики. Если это не так, убедитесь, что параметры -nfa или -dfa не отмечены в настройках ANTLR в разделе «Общие» в окне «Строительство» (шаг 4g). [Подтвердите, если это необходимо: проверьте, что переменная окружения CLASSPATH указывает на Java7, которая соответствует вашей установке Eclipse (32 или 64 бита), а переменная среды Windows Path имеет Java7 SDK.]
- Чтобы избежать «не может быть разрешено для типа» ошибок Java, щелкните правой кнопкой мыши папку, содержащую сгенерированный код Java, а затем «Путь сборки», «Использовать в качестве исходной папки».
ОБРАЗЦОВЫЙ КОМБИНИРОВАННЫЙ ГРАММАТ
grammar test; //must match filename.g
options {
language = Java;
}
@header { //parser
package pkgName; //optional
import java.<whatever you need>.*;
}
@members { //parser
// java code here
}
@lexer::header { //lexer
package pkgName; //optional
import java.<whatever you need>.*;
}
@lexer::members {
// java code here
}
/*------------------------------------------------------------------
* PARSER RULES (convention is all lowercase)
*------------------------------------------------------------------*/
parserule: LEXRULE;
/*------------------------------------------------------------------
* LEXER RULES (convention is all uppercase)
*------------------------------------------------------------------*/
LEXRULE: 'a'..'z';
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow