Eclipse中的Antlr IDE无法正常工作

Eclipse中的Antlr IDE无法正常工作,第1张

Eclipse中的Antlr IDE无法正常工作

这可能是配置问题。我遇到了许多困难,无法使所有功能正常工作,因此我写了自己的文档,没有找到一个合适的位置。希望这可以帮助。

如何在Eclipse Indigo中安装ANTLR IDE经过Indigo R2和IDE 2.1.2的测试
  1. 安装Eclipse。
  2. 下载包含ANTLR v2的ANTLR完整二进制文件jar。提取到临时目录。将antlr-nn文件夹复制到适当的永久位置,例如Eclipse安装所在的文件夹。
  3. 将ANTLR IDE更新站点添加到Eclipse。
    • 在Eclipse中,单击“帮助”,然后选择“安装新软件”。
    • 单击添加…按钮。
    • 在“添加存储库”窗口中,为“位置”键入http://antlrv3ide.sourceforge.net/updates,然后为“名称”键入类似ANTLR IDE的名称,然后单击“确定”返回到“可用软件”窗口。
    • 选中ANTLR IDE vn.nn的复选框,然后单击直至安装。Eclipse可能会重新启动。
  4. 配置ANTLR IDE。
    • 在Eclipse主窗口中,单击窗口,然后单击首选项。
    • 在左窗格中,展开ANTLR并选择Builder。
    • 在右窗格中,单击“添加…”按钮。
    • 在“添加ANTLR程序包”窗口中,单击“目录…”,然后导航到antlr-nn文件夹的位置,然后单击“确定”。
    • 单击“确定”关闭“添加ANTLR程序包”窗口。
    • 在左窗格中选择Code Generator,然后在右窗格中单击Project relative文件夹。输入文件夹名称。示例:antlr-java或antlr生成。
    • 选择任何其他配置参数,但不要在“建筑物”窗口的“常规”下检查–nfa或–dfa。如果选中,这些将导致ANTLR错误,从而阻止在输出文件夹中生成Java文件。
    • 单击“确定”关闭“首选项”窗口。
  5. 创建一个新的Java项目并启用ANTLR支持。
    • 在Eclipse主窗口中,转到File,New,Java Project。单击下一步,键入一个项目名称,然后单击完成。
    • 要为项目启用ANTLR支持,请在Package Explorer窗口(左窗格)中右键单击刚刚创建的项目,然后依次选择Configure,Convert to ANTLR project。
    • 将ANTLR完整的jar文件添加到项目中:右键单击该项目,然后选择“属性”,“ Java构建路径”,单击“添加外部JAR…”,浏览到ANTLR jar文件,选择它,然后单击“确定”。单击“确定”关闭项目“属性”窗口。
  6. 创建一个ANTLR语法。
    • 创建一个新的ANTLR语法:右键单击项目的src文件夹,然后依次单击“文件”,“新建”,“其他”,展开ANTLR并选择“组合语法”。单击“下一步”,键入语法名称,选择“语言”选项,然后单击“完成”。
    • 使用选定的选项和空白规则创建一个“ .g”文件。在顶部添加选项language = Java,@ header,@ lexer :: header和@members语句(请参见示例)。自动完成是添加这些内容的最简单方法(按CTRL-空格以显示自动完成列表)。
  7. 保存语法。
    • 保存后,包含生成的语法Java代码的文件夹应出现在Project Explorer中。如果没有,请确保在“建筑物”窗口中“常规”下的“ ANTLR首选项”中未选中–nfa或–dfa选项(步骤4g)。[确认是否需要这些:检查CLASSPATH环境变量是否指向与您的Eclipse安装(32或64位)匹配的Java7,并且Windows Path环境变量具有Java7 SDK。
    • 为避免出现“无法解析为类型” Java错误,请右键单击包含生成的Java代码的文件夹,然后右键单击“构建路径”,“用作源文件夹”。

样本组合语法

grammar test; //must match filename.goptions {    language = Java;}@header { //parser    package pkgName; //optional    import java.<whatever you need>.*;}@members { //parser    // java pre here}@lexer::header { //lexer    package pkgName; //optional    import java.<whatever you need>.*;}@lexer::members {    // java pre here}parserule: LEXRULE;LEXRULE: 'a'..'z';


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5488245.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存