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

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