Подтвердить что ты не робот

Проблемы с настройкой IDE ANTLR 4 на Eclipse Luna (4.4)

Я пытаюсь установить ANTLR 4 IDE на Eclipse Luna (4.4). Я установил его из Marketplace, но я понятия не имею, как создать проект, в котором есть ANTLR 4 Lexer/Parser.

Когда я иду, чтобы создать новый проект, я не вижу никаких параметров для ANTLR 4. Я попытался создать файл .g4, и он открывается в редакторе, но когда я его сохраняю, ничего не делает.

4b9b3361

Ответ 1

Я огляделся по всему Интернету и нашел несколько ресурсов, которые я собрал вместе, и нашел решение путем проб и ошибок. Ниже приведено руководство, которое я использовал на нескольких моих машинах для установки ANTLR 4 IDE в Eclipse. Я решил, что я должен поделиться им здесь и спасти других от поиска Google в течение нескольких часов (надеюсь)

Предпосылки

  • Eclipse 4.4 Luna Xtext Complete SDK (требуется версия 2.7.3)
  • Eclipse Faceted Framework проекта (протестировано с 3.4.0) Eclipse Faceted
  • Рамка проекта JDT (протестирована с 3.4.0) ANTLR 4 SDK A
  • Копия файла antlr-4.x-complete.jar(4.5 на момент написания)

Настройка

  • Установить Eclipse
  • Установить XText 2.7.3
    • Перейдите к Help > Install New Software...
    • Введите http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/ в текстовое поле Work With
    • Нажмите Enter и дождитесь загрузки списка (это займет несколько секунд).
    • Разверните Xtext node и проверьте Xtext Complete SDK (убедитесь, что версия 2.7.3x)
    • Нажмите Next, соглашайтесь с EULA и нажмите "Готово"
    • Пусть установщик завершит и перезапустит Eclipse
  • Установка грантовой структуры проекта
    • Перейдите к Help > Install New Software...
    • Введите http://download.eclipse.org/releases/luna в текстовое поле Work With
    • Нажмите Enter и дождитесь загрузки списка (это займет несколько секунд).
    • В текстовом поле фильтра введите Facet
    • Выберите Eclipse Faceted Project Framework и Eclipse Faceted Project Framework JDT Enablement
    • Нажмите Next, соглашайтесь с EULA и нажмите "Готово"
    • Пусть установщик завершит и перезапустит Eclipse
  • Установите ANTLR 4 IDE
    • Перейдите к Help > Eclipse Marketplace...
    • Искать antlr
    • Выберите ANTLR 4 IDE (убедитесь, что ANTLR 4 IDE не ANTLR IDE)
    • Нажмите "Установить"
    • Пусть установщик закончит щелкнуть ok, если он запрашивает и перезапускает Eclipse
  • Получить копию antlr-4.x-complete.jar
    • Загрузите файл здесь
    • Сохраните его где-нибудь, вы запомните

Создание проекта ANTRL 4

Я нашел большую часть этой информации здесь, остальные читали ошибки и гадали

  • Перейдите к File > New Project > Project
  • Разверните General Tab и выберите ANTLR 4 Project (если вы не видите это, см. шаг 4 настройки)
  • Нажмите Next, дайте проекту имя и нажмите Finish
  • После завершения проекта щелкните правой кнопкой мыши проект и нажмите Properties
  • Перейдите в Project Facets и нажмите Convert to faceted form... (если вы не видите это, см. шаг 3 настройки)
  • Проверьте грань проекта Java и нажмите Apply (если вы не видите это, см. шаг 3 настройки)
  • Нажмите OK, отпустите решение, снова откройте свойства.
  • Перейдите на Java Build Path, перейдите на вкладку Source
  • Нажмите Add Folder... и отметьте Project > target > generated-sources > antlr4, нажмите OK
  • Перейдите на вкладку Libraries
  • Add External JARs..., найдите свою копию antlr-4.x-complete.jar, нажмите Open
  • Перейдите к ANTLR 4 > Tool, нажмите Apply, если появится всплывающее окно
  • Проверить Enable project specific settings
  • Нажмите Add, найдите свою копию antlr-4.x-complete.jar, нажмите Open
  • Отметьте 4.x
  • Нажмите Apply, нажмите Yes, чтобы перестроить, нажмите OK, чтобы закрыть свойства.

Test

Создайте новый класс со следующим кодом и попробуйте запустить. В консоли напишите Hello there и Ctrl + z, чтобы отправить EOF во входной поток

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class HelloRunner 
{
    public static void main( String[] args) throws Exception 
    {

        ANTLRInputStream input = new ANTLRInputStream( System.in);

        HelloLexer lexer = new HelloLexer(input);

        CommonTokenStream tokens = new CommonTokenStream(lexer);

        HelloParser parser = new HelloParser(tokens);
        ParseTree tree = parser.r(); // begin parsing at rule 'r'
        System.out.println(tree.toStringTree(parser)); // print LISP-style tree
    }
}

Примечания

  • Если вы видите ошибку при попытке войти в ANTLR 4 > Tool проверить свою версию Xtext, 2.8.0 вызывает ошибку в окне инструмента
  • На шаге 8, если вы изменили каталог, который ANTLR генерирует, источники используют этот каталог
  • Если вы заметили, что версия ANTLR, добавленная в ANTLR 4 > Tool > Distributions, исчезает, это выглядит нормально

    • Проверьте свой вывод сборки, чтобы увидеть, какой инструмент он использует, он все равно должен использовать добавленный JAR, даже если он исчезнет. Это выглядит так:

    ANTLR Tool v4.5 (C:\JavaLib\antlr-4.5-complete.jar) Hello.g4 -o C:\Users\username\workspace\project\target\generated-sources\antlr4 -listener -no-visitor -encoding UTF-8