Java Eclipse中的Antlr IDE不工作

Java Eclipse中的Antlr IDE不工作,java,eclipse,antlr,antlrv3ide,Java,Eclipse,Antlr,Antlrv3ide,我在一个项目中使用Antlr v3和java,在AntlrWorks中一切都很顺利,但是当我切换到Antlr IDE(eclipse的插件)时,解释器无法匹配我写的句子,告诉我不匹配。在我看来,它无法识别我在lexer中指定的要跳过的单词列表。然而,在AntlrWorks中同样可以完美地工作 有什么建议吗 我已经在eclipse:antlr解析器生成器v3.4中设置了antlr构建程序,这可能是一个配置问题。我有几个困难让一切工作,所以,没有找到任何一个地方如何做到这一点,我写了自己的文件。希望

我在一个项目中使用Antlr v3和java,在AntlrWorks中一切都很顺利,但是当我切换到Antlr IDE(eclipse的插件)时,解释器无法匹配我写的句子,告诉我不匹配。在我看来,它无法识别我在lexer中指定的要跳过的单词列表。然而,在AntlrWorks中同样可以完美地工作

有什么建议吗


我已经在eclipse:antlr解析器生成器v3.4中设置了antlr构建程序,这可能是一个配置问题。我有几个困难让一切工作,所以,没有找到任何一个地方如何做到这一点,我写了自己的文件。希望这有帮助

如何在Eclipse Indigo中安装ANTLR IDE 使用Indigo R2和IDE 2.1.2进行测试 安装Eclipse。 将解压缩下载到临时目录。复制antlr-n.n 将文件夹移动到适当的永久位置,例如相同的文件夹 安装Eclipse的文件夹。 将ANTLR IDE更新站点添加到 日食 在Eclipse中,单击“帮助”并选择“安装新软件”。 单击添加…按钮。 在addrepository窗口中,键入Location type,并键入ANTLR IDE之类的名称,然后单击OK返回到Available Software窗口。 选中ANTLR IDE vn.n.n框,并单击至,直到安装完毕。Eclipse可能会重新启动。 配置ANTLR IDE。 在Eclipse主窗口中,单击window,然后单击Preferences。 在左侧窗格中,展开ANTLR并选择Builder。 在右侧窗格中,单击添加…按钮。 在添加ANTLR包窗口中,单击目录…并导航到ANTLR-n.n文件夹的位置,然后单击确定。 单击“确定”关闭“添加ANTLR包”窗口。 在左窗格中选择“代码生成器”,然后单击右窗格中的“项目相对文件夹”。键入文件夹名称。示例:antlr java或antlr生成。 选择任何其他配置参数,但不要在“建筑”窗口的“常规”下选中–nfa或–dfa。如果选中,这些将导致ANTLR错误,阻止在输出文件夹中生成java文件。 单击“确定”关闭“首选项”窗口。 创建一个新的Java项目并启用ANTLR支持。 在Eclipse主窗口中,转到File,New,Java Project。单击“下一步”,键入项目名称,然后单击“完成”。 要为项目启用ANTLR支持,请在PackageExplorer窗口的左窗格中右键单击刚刚创建的项目,然后选择Configure,Convert To ANTLR project。 将ANTLR complete jar文件添加到项目中:右键单击项目并选择Properties、Java构建路径,单击addexternaljars…,浏览到ANTLR jar文件,选择它,然后单击OK。单击“确定”关闭“项目属性”窗口。 创建一个ANTLR语法。 创建新的ANTLR语法:右键单击项目的src文件夹,然后单击File、new、Other,展开ANTLR并选择Combined grammar。单击Next,键入语法名称,选择语言选项,然后单击Finish。 将创建一个“.g”文件,其中包含选定的选项和一条空白规则。在顶部添加选项language=Java、@header、@lexer::header和@members语句,参见示例。自动完成是添加这些控件的最简单方法。按CTRL键空格可打开自动完成列表。 保存语法。 保存后,包含生成的语法Java代码的文件夹应显示在Project Explorer中。如果没有,请确保未在建筑窗口步骤4g中的“常规”下的ANTLR首选项中选中–nfa或–dfa选项。[确认是否需要:检查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';

谢谢你的帮助。我在看斯科特的文章[真的很好]。。我认为有一点很重要,那就是必须选择带有antlrv2的antlr3.X发行版。我使用的是antlr-3.4-complete-no-antlrv2.jar发行版,我的eclipse构建将挂起。非常感谢您提供的详细信息。非常欢迎。我确实在步骤2中指定了带有v2的antlr jar,但是从这里链接它才有意义。现在完成了。谢谢,要为项目启用ANTLR支持,请在Package Explorer窗口的左窗格中右键单击刚刚创建的项目,然后选择配置、转换为ANTLR项目。帮助了我。