在Eclipse Luna上设置ANTLR 4 IDE的麻烦(4.4)

amu*_*cxg 16 java eclipse antlr antlr4

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

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

amu*_*cxg 29

我环顾了整个互联网,找到了一些我拼凑在一起的资源,通过反复试验找到了解决方案.下面是我在一些机器上用于在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. http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/Work With文本框中输入
    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. http://download.eclipse.org/releases/lunaWork With文本框中输入
    3. 点击Enter并等待列表加载(这将需要一些时间)
    4. 在过滤器文本框中输入 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 thereCtrl+ 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
    }
}
Run Code Online (Sandbox Code Playgroud)

笔记

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

  • 我按照这些说明操作并获得了Mars/XText 2.7.3/Antler 4.5.2/OSX.以下是我学到的一些内容:a)XText 2.9.0和2.9.2不起作用,b)设置Facets的设置说明步骤3不是必需的,因为它们似乎安装在Mars中,c)在Mac和Linux上你使用Control-D而不是Control-Z. (3认同)