我在互联网上四处张望,发现了一些资源,这些资源我凑在一起,通过反复试验找到了解决方案。以下是我在一些机器上使用过的指南,用于在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)
建立
- 安装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
节点并检查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) - 点击安装
- 让安装程序在提示时单击确定,然后重新启动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版本
ANTLR 4 > Tool > Distributions
消失了,这似乎没问题- 检查您的构建输出以查看其使用的工具,即使它消失了,它仍应使用您添加的JAR。这是我的样子:
ANTLR Tool v4.5 (C:JavaLibantlr-4.5-complete.jar) Hello.g4 -oC:Usersusernameworkspaceprojecttargetgenerated-sourcesantlr4 -listener-no-visitor -encoding UTF-8



