在 Eclipse Luna (4.4) 上设置 ANTLR 4 IDE 时遇到问题

Trouble Setting Up ANTLR 4 IDE on Eclipse Luna (4.4)

我正在尝试在 Eclipse Luna (4.4) 上安装 ANTLR 4 IDE。我已经从 Marketplace 安装了它,但我不知道如何创建一个包含 ANTLR 4 Lexer/Parser 的项目。

当我去创建一个新项目时,我没有看到 ANTLR 4 的任何选项。我尝试创建一个 .g4 文件并在编辑器中打开它但是当我保存它时它没有做任何事情。

我在互联网上四处寻找,找到了一些我拼凑的资源,并通过反复试验找到了解决方案。 下面是我在我的几台机器上使用的指南,用于在 Eclipse 中设置 ANTLR 4 IDE。我想我应该在这里分享它并为其他人省去 Google 搜索时间(希望如此)

的麻烦

先决条件

  • Eclipse 4.4 Luna Xtext Complete SDK(需要2.7.3版本)
  • Eclipse Faceted 项目框架(使用 3.4.0 测试)Eclipse Faceted
  • 项目框架 JDT 启用(使用 3.4.0 测试)ANTLR 4 SDK A
  • antlr 的副本-4.x-complete.jar(撰写本文时为 4.5)

设置

  1. 安装 Eclipse
    1. https://www.eclipse.org/downloads/
    2. 下载
  2. 安装 XText 2.7.3
    1. 转到Help > Install New Software...
    2. Work With 文本框中输入 http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
    3. 按 Enter 键并等待列表加载(这需要一些时间)
    4. 展开Xtext节点并勾选Xtext Complete SDK(确保版本为2.7.3x)
    5. 单击 Next,同意 EULA,然后单击完成
    6. 让安装程序完成并重新启动 Eclipse
  3. 安装分面项目框架
    1. 转到Help > Install New Software...
    2. Work With 文本框中输入 http://download.eclipse.org/releases/luna
    3. 按 Enter 键并等待列表加载(这需要一些时间)
    4. 在过滤器文本框中输入 Facet
    5. Select Eclipse Faceted Project FrameworkEclipse Faceted Project Framework JDT Enablement
    6. 单击 Next,同意 EULA,然后单击完成
    7. 让安装程序完成并重新启动 Eclipse
  4. 安装 ANTLR 4 IDE
    1. 转到Help > Eclipse Marketplace...
    2. 搜索 antlr
    3. 选择ANTLR 4 IDE(确保它是 ANTLR 4 IDE 而不是 ANTLR IDE)
    4. 点击安装
    5. 让安装程序完成,如果提示并重新启动 Eclipse,请单击“确定”
  5. 获取antlr的副本-4.x-complete.jar
    1. here
    2. 下载文件
    3. 将它保存在您会记住的地方

创建 ANTRL 4 项目

我找到了大部分信息here,剩下的是阅读错误和猜测

  1. 转到File > New Project > Project
  2. 展开 General Tab 和 select ANTLR 4 Project(如果您没有看到,请参阅设置的第 4 步)
  3. 单击 Next,为项目命名并单击 Finish
  4. 项目完成后,右键单击项目并单击 Properties
  5. 转到 Project Facets 并单击 Convert to faceted form...(如果您没有看到它,请参阅设置的第 3 步)
  6. 检查 Java 项目方面并单击 Apply(如果您没有看到它,请参阅设置的第 3 步)
  7. 单击OK,让解决方案重建,再次打开属性
  8. 转到 Java Build Path,单击 Source 选项卡
  9. 点击Add Folder...勾选Project > target > generated-sources > antlr4,点击OK
  10. 单击 Libraries 选项卡
  11. Add External JARs...,找到您的 antlr-4.x-complete.jar 副本,单击 Open
  12. 转到 ANTLR 4 > Tool,如果出现弹出窗口,请单击 Apply
  13. 勾选Enable project specific settings
  14. 单击 Add,找到您的 antlr-4.x-complete.jar 副本,单击 Open
  15. 勾选4.x
  16. 点击Apply,点击Yes重建,点击OK退出属性

测试

使用以下代码创建一个新的 class 并尝试 运行。在控制台中写入 Hello thereCtrl + 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
    }
}

注释

  1. 如果您在尝试进入 ANTLR 4 > Tool 时看到错误,请检查您的 Xtext 版本,2.8.0 会导致工具出错 window
  2. 在第 8 步中,如果您更改了 ANTLR 生成的目录,它的源代码将使用该目录
  3. 如果您注意到您添加到 ANTLR 4 > Tool > Distributions 的 ANTLR 版本消失了,这似乎没问题

    • 检查您的构建输出以查看它使用的是什么工具,它应该仍然使用您添加的 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