在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)
建立
- 安装Eclipse
- 从https://www.eclipse.org/downloads/下载
- 安装XText 2.7.3
- 转到
Help > Install New Software...
- 在
Work With
文本框中输入http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
- 点击Enter并等待列表加载(这将需要一些时间)
- 展开
Xtext
节点并检查Xtext Complete SDK
(确保版本为2.7.3x) - 单击“
Next
,同意EULA,然后单击“完成” - 让安装程序完成并重新启动Eclipse
- 转到
- 安装Faceted Project Framework
- 转到
Help > Install New Software...
- 在
Work With
文本框中输入http://download.eclipse.org/releases/luna
- 点击Enter并等待列表加载(这将需要一些时间)
- 在filter文本框中输入
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) - 单击安装
- 如果安装程序提示并重新启动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
退出属性
测试
使用以下代码创建一个新类并尝试运行。 在控制台中写入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 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