在Eclipse Luna上设置ANTLR 4 IDE的麻烦(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完整SDK(需要版本2.7.3)
  • Eclipse Faceted Project Framework(使用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. 安装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. 安装Faceted Project Framework
    1. 转到Help > Install New Software...
    2. Work With文本框中输入http://download.eclipse.org/releases/luna
    3. 点击Enter并等待列表加载(这将需要一些时间)
    4. 在filter文本框中输入Facet
    5. 选择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. 从这里下载文件
    2. 把它保存在你会记得的地方

创建ANTRL 4项目

我在这里找到了大部分这些信息,剩下的就是阅读错误和猜测

  1. 转到File > New Project > Project
  2. 展开“ General Tab并选择“ 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退出属性

测试

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

笔记

  1. 如果在尝试进入ANTLR 4 > Tool检查Xtext版本时看到错误,2.8.0会在工具窗口中导致错误
  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