Ответ 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
- Загрузите его из https://www.eclipse.org/downloads/
- Установить 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