在 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)
设置
- 安装 Eclipse
- 安装 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
- 安装分面项目框架
- 转到
Help > Install New Software...
- 在
Work With
文本框中输入 http://download.eclipse.org/releases/luna
- 按 Enter 键并等待列表加载(这需要一些时间)
- 在过滤器文本框中输入
Facet
- Select
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
- 从here
下载文件
- 将它保存在您会记住的地方
创建 ANTRL 4 项目
我找到了大部分信息here,剩下的是阅读错误和猜测
- 转到
File > New Project > Project
- 展开
General Tab
和 select 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
退出属性
测试
使用以下代码创建一个新的 class 并尝试 运行。在控制台中写入 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 会导致工具出错 window
- 在第 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
我正在尝试在 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)
设置
- 安装 Eclipse
- 安装 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
- 转到
- 安装分面项目框架
- 转到
Help > Install New Software...
- 在
Work With
文本框中输入http://download.eclipse.org/releases/luna
- 按 Enter 键并等待列表加载(这需要一些时间)
- 在过滤器文本框中输入
Facet
- Select
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
- 从here 下载文件
- 将它保存在您会记住的地方
创建 ANTRL 4 项目
我找到了大部分信息here,剩下的是阅读错误和猜测
- 转到
File > New Project > Project
- 展开
General Tab
和 selectANTLR 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
退出属性
测试
使用以下代码创建一个新的 class 并尝试 运行。在控制台中写入 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 会导致工具出错 window - 在第 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