Eclipse 中的 Antlr IDE 不起作用 [英] Antlr IDE in Eclipse doesn't work

查看:26
本文介绍了Eclipse 中的 Antlr IDE 不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个项目中使用 Antlr v3 和 java,并且在 AntlrWorks 中一切顺利,但是当我切换到 Antlr IDE(eclipse 插件)时,解释器无法匹配我写的句子,告诉我不匹配.在我看来,它无法识别我在词法分析器中指定的要跳过的单词列表.然而,它在 AntlrWorks 中完美运行是一样的.

I'm using Antlr v3 and java for a project and all goes well in AntlrWorks, but when I switch to Antlr IDE, the plugin for eclipse, the interpreter cannot match the sentence that I wrote, telling me mismatch. And it seems to me that it cannot recognize the list of words to skip that I've specified in on lexer. However it is the same that works perfectly in AntlrWorks.

有什么建议吗?

我已经在 Eclipse 中设置了 antlr 构建器:Antlr Parser Generator v3.4

I've set up the antlr buider in eclipse: Antlr Parser Generator v3.4

推荐答案

这可能是配置问题.我在让一切正常工作时遇到了一些困难,所以没有找到任何地方可以做到这一点,我写了自己的文档.希望这可以帮助.

This may be a configuration issue. I had several difficulties getting everything to work so, not finding any one place for how to do this, I wrote my own document. Hope this helps.

  1. 安装 Eclipse.
  2. 下载 ANTLR 完整的二进制文件 jar,其中包含 ANTLR v2. 提取到临时目录.复制antlr-n.n文件夹到适当的永久位置,例如相同的安装 Eclipse 的文件夹.
  3. 将 ANTLR IDE 更新站点添加到蚀.
    • 在 Eclipse 中,单击帮助"并选择安装新软件".
    • 点击添加…按钮.
    • 在添加存储库"窗口中,对于位置类型 http://antlrv3ide.sourceforge.net/updates 并为名称键入类似 ANTLR IDE 的内容,然后单击确定"返回可用软件"窗口.
    • 选中 ANTLR IDE vn.n.n 的复选框,然后单击直到安装完毕.Eclipse 可能会重新启动.
  1. Install Eclipse.
  2. Download ANTLR complete binaries jar that includes ANTLR v2. Extract to a temp directory. Copy the antlr-n.n folder to an appropriate permanent location, for example the same folder that Eclipse is installed in.
  3. Add ANTLR IDE update site to Eclipse.
    • In Eclipse, click on Help and select Install New Software.
    • Click Add… button.
    • In the Add Repository window, for Location type http://antlrv3ide.sourceforge.net/updates and type something like ANTLR IDE for the Name and click OK to get back to the Available Software window.
    • Check the box for ANTLR IDE vn.n.n and click on through until it is installed. Eclipse will probably restart.
  • 在 Eclipse 主窗口中,依次单击窗口和首选项.
  • 在左窗格中,展开 ANTLR 并选择 Builder.
  • 在右侧窗格中,单击添加...按钮.
  • 在添加 ANTLR 包"窗口中,单击目录..."并导航到 antlr-n.n 文件夹的位置,然后单击确定".
  • 单击确定"关闭添加 ANTLR 包"窗口.
  • 在左侧窗格中选择 Code Generator,然后单击右侧窗格中的项目相关文件夹.键入文件夹名称.示例:antlr-java 或 antlr-generated.
  • 选择任何其他配置参数,但不要在 Building 窗口的 General 下选中 –nfa 或 –dfa.如果选中,这些将导致 ANTLR 错误,阻止在输出文件夹中生成 java 文件.
  • 单击确定"关闭首选项"窗口.
  • 从 Eclipse 主窗口,依次转到文件、新建、Java 项目.单击下一步,输入项目名称并单击完成.
  • 要为项目启用 ANTLR 支持,请在包资源管理器窗口(左窗格)中右键单击刚刚创建的项目,然后选择配置、转换为 ANTLR 项目.
  • 将 ANTLR 完整 jar 文件添加到项目中:右键单击该项目并选择 Properties,Java Build Path,单击 Add External JARs...,浏览到 ANTLR jar 文件,选择它,然后单击 OK.单击确定关闭项目属性窗口.
  • 新建一个ANTLR语法:右键项目的src文件夹,然后File,New,Other,展开ANTLR,选择Combined Grammar.单击下一步,键入语法名称,选择语言选项,然后单击完成.
  • 创建一个.g"文件,其中包含选定的选项和空白规则.在顶部添加选项 language=Java、@header、@lexer::header 和 @members 语句(参见示例).自动完成是添加这些的最简单方法(按 CTRL-空格键调出自动完成列表).
  • 保存后,项目资源管理器中应该会出现一个包含为语法生成的 Java 代码的文件夹.如果没有,请确保在构建"窗口的常规"下的ANTLR 首选项"中未选中 –nfa 或 –dfa 选项(步骤 4g).[确认是否需要这些:检查 CLASSPATH 环境变量指向与您的 Eclipse 安装(32 位或 64 位)匹配的 Java7,并且 Windows Path 环境变量具有 Java7 SDK.]
  • 为避免无法解析为类型"Java 错误,请右键单击包含生成的 Java 代码的文件夹,然后单击构建路径",用作源文件夹".

示例组合语法

grammar test; //must match filename.g

options {
    language = Java;
}

@header { //parser
    package pkgName; //optional
    import java.<whatever you need>.*;
}

@members { //parser
    // java code here
}

@lexer::header { //lexer
    package pkgName; //optional
    import java.<whatever you need>.*;
}

@lexer::members {
    // java code here
}
/*------------------------------------------------------------------
 * PARSER RULES (convention is all lowercase)
 *------------------------------------------------------------------*/
parserule: LEXRULE;

/*------------------------------------------------------------------
 * LEXER RULES (convention is all uppercase)
 *------------------------------------------------------------------*/
LEXRULE: 'a'..'z';

这篇关于Eclipse 中的 Antlr IDE 不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆