Antlr IDE в Eclipse не работает - PullRequest
       45

Antlr IDE в Eclipse не работает

8 голосов
/ 01 декабря 2011

Я использую Antlr v3 и java для проекта, и все идет хорошо в AntlrWorks, но когда я переключаюсь на Antlr IDE, плагин для eclipse, интерпретатор не может совпасть с предложенным мною предложением, что говорит о несоответствии. И мне кажется, что он не может распознать список пропущенных слов, который я указал на лексере. Однако это то же самое, что отлично работает в AntlrWorks.

Есть предложения?

Я установил antlr buider в eclipse: Antlr Parser Generator v3.4

1 Ответ

20 голосов
/ 04 июня 2012

Это может быть проблема конфигурации. У меня было несколько трудностей с тем, чтобы заставить все работать, поэтому, не найдя единого места для этого, я написал свой собственный документ. Надеюсь это поможет.

Как установить ANTLR IDE в Eclipse Indigo

Протестировано с Indigo R2 и IDE 2.1.2

  1. Установить Eclipse.
  2. Скачать ANTLR полный двоичный файл jar, включающий ANTLR v2. Извлечь во временный каталог. Скопируйте antlr-n.n папку в соответствующее постоянное место, например, тот же папка, в которой установлено Eclipse.
  3. Добавить сайт обновлений ANTLR IDE в Затмение.
    • В Eclipse нажмите «Справка» и выберите «Установить новое программное обеспечение».
    • Нажмите кнопку Добавить….
    • В окне «Добавить репозиторий» в поле «Местоположение» введите http://antlrv3ide.sourceforge.net/updates и введите что-то вроде ANTLR IDE в качестве имени и нажмите «ОК», чтобы вернуться в окно «Доступное программное обеспечение».
    • Установите флажок для IDE ANTLR vn.n.n и нажимайте до тех пор, пока он не будет установлен. Затмение, вероятно, перезапустится.
  4. Настройка ANTLR IDE.
    • В главном окне Eclipse нажмите «Окно», затем «Настройки».
    • На левой панели разверните ANTLR и выберите Builder.
    • На правой панели нажмите кнопку Добавить….
    • В окне «Добавить пакет ANTLR» нажмите «Каталог» и перейдите к папке с antlr-n.n и нажмите «ОК».
    • Нажмите кнопку ОК, чтобы закрыть окно Добавить пакет ANTLR.
    • Выберите Генератор кода на левой панели и нажмите на соответствующую папку проекта на правой панели. Введите имя папки. Примеры: antlr-java или сформированный antlr.
    • Выберите любые другие параметры конфигурации, но НЕ проверяйте –nfa или –dfa в разделе «Общие» в окне «Здание». Если этот флажок установлен, это приведет к ошибкам ANTLR, препятствующим созданию файлов java в выходной папке.
    • Нажмите OK, чтобы закрыть окно настроек.
  5. Создайте новый проект Java и включите поддержку ANTLR.
    • Из главного окна Eclipse перейдите в File, New, Java Project. Нажмите Далее, введите имя проекта и нажмите Готово.
    • Чтобы включить поддержку 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. Сохраните грамматику.
    • При сохранении в 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';
...