Antlr IDE в Eclipse не работает
Я использую Antlr v3 и java для проекта, и все идет хорошо в AntlrWorks, но когда я переключаюсь на Antlr IDE, плагин для eclipse, интерпретатор не может совпасть с предложенным мною предложением, сообщая мне о несоответствии. И мне кажется, что он не может распознать список пропущенных слов, который я указал на лексере. Однако это то же самое, что отлично работает в AntlrWorks.
Какие-либо предложения?
Я установил Antlr Buider в Eclipse: Antlr Parser Generator v3.4
1 ответ
Решение
Это может быть проблемой конфигурации. У меня было несколько трудностей с тем, чтобы заставить все работать, поэтому, не найдя единого места для этого, я написал свой собственный документ. Надеюсь это поможет.
Как установить ANTLR IDE в Eclipse Indigo
Протестировано с Indigo R2 и IDE 2.1.2
- Установите Eclipse.
- Загрузите полную версию ANAR-файла, включающего ANTLR v2. Извлечь во временный каталог. Скопируйте папку antlr-nn в соответствующее постоянное местоположение, например, в ту же папку, в которой установлена Eclipse.
- Добавьте сайт обновления ANTLR IDE в Eclipse.
- В Eclipse нажмите "Справка" и выберите "Установить новое программное обеспечение".
- Нажмите кнопку Добавить...
- В окне "Добавить репозиторий" в поле "Местоположение" введите http://antlrv3ide.sourceforge.net/updates и введите что-то вроде ANTLR IDE в качестве имени и нажмите кнопку "ОК", чтобы вернуться в окно "Доступное программное обеспечение".
- Установите флажок для ANTLR IDE vn.nn и нажимайте до тех пор, пока он не будет установлен. Затмение, вероятно, перезагрузится.
- Настройте ANTLR IDE.
- В главном окне Eclipse нажмите "Окно", затем "Настройки".
- На левой панели разверните ANTLR и выберите Builder.
- На правой панели нажмите кнопку Добавить….
- В окне "Добавить пакет ANTLR" нажмите "Каталог…", перейдите к папке с antlr-nn и нажмите "ОК".
- Нажмите кнопку ОК, чтобы закрыть окно Добавить пакет ANTLR.
- Выберите "Генератор кода" на левой панели и нажмите "Относительная папка проекта" на правой панели. Введите имя папки. Примеры: antlr-java или сгенерированный antlr.
- Выберите любые другие параметры конфигурации, но НЕ проверяйте –nfa или –dfa в разделе "Общие" в окне "Строительство". Если установлен этот флажок, это приведет к ошибкам ANTLR, которые не позволят генерировать файлы Java в выходной папке.
- Нажмите кнопку ОК, чтобы закрыть окно настроек.
- Создайте новый проект Java и включите поддержку ANTLR.
- В главном окне Eclipse выберите Файл, Новый, Проект Java. Нажмите Далее, введите имя проекта и нажмите Готово.
- Чтобы включить поддержку ANTLR для проекта, в окне Package Explorer (левая панель) щелкните правой кнопкой мыши только что созданный проект и выберите Configure, Convert to ANTLR project.
- Добавьте полный файл JAR ANTLR в проект: щелкните правой кнопкой мыши проект и выберите "Свойства", "Путь сборки Java", нажмите "Добавить внешние JAR-файлы…", найдите файл JT ANTLR, выберите его и нажмите "ОК". Нажмите кнопку ОК, чтобы закрыть окно свойств проекта.
- Создайте грамматику ANTLR.
- Создайте новую грамматику ANTLR: щелкните правой кнопкой мыши папку src проекта, затем "Файл", "Новый", "Другой", разверните "ANTLR" и выберите "Объединенная грамматика". Нажмите "Далее", введите имя грамматики, выберите опцию "Язык" и нажмите "Готово".
- Файл ".g" создается с выбранными параметрами и пустым правилом. Добавьте параметры language=Java, @header, @lexer::header и @members в начало (см. Пример). Автозаполнение - это самый простой способ добавить их (нажмите CTRL-пробел, чтобы вызвать список автозаполнения).
- Сохраните грамматику.
- После сохранения папка, содержащая сгенерированный код Java для грамматики, должна появиться в Project Explorer. Если это не так, убедитесь, что опции -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';