在 Eclipse Luna 上设置 ANTLR 4 IDE 时出现问题 (4.4)

2022-09-03 05:05:07

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

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


答案 1

我环顾四周,发现了一些资源,我拼凑在一起,并通过反复试验找到了解决方案。以下是我在几台机器上使用的指南,用于在Eclipse中设置ANTLR 4 IDE。我想我应该在这里分享它,并节省其他人谷歌搜索几个小时的麻烦(希望如此)

先决条件

  • Eclipse 4.4 Luna Xtext Complete SDK(需要版本 2.7.3)
  • Eclipse Faceted Project Framework (用 3.4.0 测试) Eclipse Faceted
  • 项目框架 JDT Enablement(使用 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. 转到(G)Help > Install New Software...
    2. 在文本框中输入http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/Work With
    3. 点击 输入 并等待列表加载(这将需要一些时间)
    4. 展开节点并检查(确保版本为 2.7.3x)XtextXtext Complete SDK
    5. 单击 ,同意 EULA,然后单击完成Next
    6. 让安装程序完成并重新启动 Eclipse
  3. 安装分面项目框架
    1. 转到(G)Help > Install New Software...
    2. 在文本框中输入http://download.eclipse.org/releases/lunaWork With
    3. 点击 输入 并等待列表加载(这将需要一些时间)
    4. 在筛选器文本框中,输入Facet
    5. 选择和Eclipse Faceted Project FrameworkEclipse Faceted Project Framework JDT Enablement
    6. 单击 ,同意 EULA,然后单击完成Next
    7. 让安装程序完成并重新启动 Eclipse
  4. 安装 ANTLR 4 IDE
    1. 转到(G)Help > Eclipse Marketplace...
    2. 寻找antlr
    3. 选择(确保它是ANTLR 4 IDE而不是ANTLR IDE)ANTLR 4 IDE
    4. 单击“安装”
    5. 如果出现提示,让安装程序完成单击“确定”并重新启动 Eclipse
  5. 获取 antlr-4.x-complete 的副本.jar
    1. 此处下载文件
    2. 将其保存在您记得的地方

创建 ANTRL 4 项目

我在这里找到了大部分这些信息,其余的都是阅读错误和猜测

  1. 转到(G)File > New Project > Project
  2. 展开并选择(如果看不到此内容,请参阅设置的步骤 4)General TabANTLR 4 Project
  3. 单击 ,为项目命名,然后单击NextFinish
  4. 项目完成后,右键单击该项目,然后单击Properties
  5. 转到并单击(如果您没有看到此内容,请参阅设置的步骤 3)Project FacetsConvert to faceted form...
  6. 检查项目方面并单击(如果看不到此内容,请参阅设置的步骤 3)JavaApply
  7. 单击 ,让解决方案重新生成,再次打开属性OK
  8. 转到 ,单击选项卡Java Build PathSource
  9. 单击并检查,单击Add Folder...Project > target > generated-sources > antlr4OK
  10. 点击标签Libraries
  11. Add External JARs...,找到您的 副本,单击antlr-4.x-complete.jarOpen
  12. 转到 ,如果出现弹出窗口,请单击ANTLR 4 > ToolApply
  13. 检查Enable project specific settings
  14. 单击 ,找到您的副本,单击Addantlr-4.x-complete.jarOpen
  15. 检查4.x
  16. 单击 ,单击以重建,单击退出属性ApplyYesOK

测试

使用以下代码创建一个新类,然后尝试运行。在控制台中写入和 + 以将 EOF 发送到输入流Hello thereCtrlz

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. 如果在尝试检查 Xtext 版本时看到错误,则 2.8.0 会导致工具窗口中出现错误ANTLR 4 > Tool
  2. 在步骤 8 中,如果您更改了 ANTLR 生成的目录,则使用该目录的源
  3. 如果您注意到您添加的ANTLR版本消失了,这似乎没问题ANTLR 4 > Tool > Distributions

    • 检查构建输出以查看它正在使用的工具,即使它消失了,它仍然应该使用您添加的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


答案 2

推荐