当前位置: 首页 > 面试题库 >

无法在Eclipse Luna(4.4)上设置ANTLR 4 IDE

司寇祺
2023-03-14
问题内容

我正在尝试在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)

建立

  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. 安装多面项目框架
    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 > ToolApply如果出现弹出窗口,请单击
  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
    }
}

笔记

  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



 类似资料:
  • 我是一个新的git和GitHub用户。我已经在Windows上使用GitHub一段时间了,但想尝试更多的命令行,同时学习如何在我想要改进的存储库上分叉和提交拉取请求。 我所看到的是,“上游”似乎被定义为不可用,我想了解发生了什么。我想当我想请求将我的更改拉入上游存储库时,这将是一个问题。 我在GitHub上分叉了存储库,然后将其克隆到我的计算机上: git克隆https://github.com/

  • 输入示例:12345.1 期望输出总计金额DueTextField: 12,345.10 实际结果 系统出来println(格式化文本):12345.10//OK totalAmountDueTextField。setText(formattedText):12345.1//这就是问题所在。 以及如何将初始值设置为0.00(当前为0.0)?

  • 问题内容: 我有一个这样的表: 在ajax请求之后,有一个方法向我返回了以下内容: 我想像这样更改innerHTML 但是,似乎IE无法在上设置innerHTML 。谁能为我提供一个解决此问题的简单方法? 问题答案: 没错,tbody元素上的innerHTML在IE中是readOnly 对于除以下对象以外的所有对象,该属性均为可读/写状态;对于以下对象,该属性为只读:COL,COLGROUP,FR

  • 我已经使用SpringWebFlux版本2.3.0编写了一个反应式API。发布Reactornetty版本0.9.10。作为API SLA的一部分,如果服务器执行的WriteTimeout超过了规定的配置,我想让请求超时。 分享下面截取的代码,我在这里为NettyReactiveWebServerFactory实现了一个定制器。 尽管有定制器,WriteTimeout仍不能用于API。

  • Mybatis抛出一个错误,该错误表示设置参数有问题。会出什么问题?我测试了SQL查询,它很好。我在用graddle和Spring。 控制器 表

  • 代码片段- 我得到的错误: org . open QA . selenium . web Driver exception:Java . net . connect exception:无法连接到localhost/127.0.0.1:38558生成信息:版本:“3.12.0”,修订版:“7c6e0b3”,时间:“2018-05-08T15:15:03.216Z”系统信息:主机:“MPL-CJ08