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

测试ANTLR语法

公西浩
2023-03-14
问题内容

因此,我一直在使用ANTLRv3.4在Eclipse中进行语法编写,并且已经编写了一个有效的语法,我想确保在编辑该语法时一切仍然有效。我可以每次都进入口译员的行列,但这似乎很浪费时间。

问题:我已经读过关于gunit的信息,但是它提供了下载gUnit的链接:(http://antlr.org/hudson/job/gUnit/org.antlr
$ gunit / lastSuccessfulBuild
/)不起作用。如何获得gUnit。测试语法的最佳方法是什么?它实际上是gUnit还是应该像jUnit测试一样进行Java测试?


问题答案:

我最近使用Eclipse完成了两个ANTLR3作业(我正在攻读计算机科学硕士学位)。我发现没有单个文档具有在Eclipse中安装,配置,编写和调试语法的过程。因此,在研究了各种问题之后,我发现最简单的方法是留在Eclipse中进行测试。

要使用我已经开始使用的过程(下面概述),您必须首先安装ANTLR IDE v2.1.2。从Eclipse
Indigo内部添加它:http :
//antlrv3ide.sourceforge.net/updates。该站点还提供了一些有关使用ANTLRIDE的有用文档。安装完成后,必须配置IDE。视频教程有些过时了,但很有帮助。请参阅有关如何在Eclipse中配置ANTLRIDE的详细指南。主要配置项目是java输出文件夹。在Eclipse中执行以下操作:转到Windows,Preferences,ANTLR,Code
Generator,检查Project相对文件夹,然后在Output folder name框中键入一个文件夹名称(我的名称为“ antlr-
java”,其他名称为“ generated”)。

使用ANTLR IDE在Eclipse Indigo中对ANTLR进行测试/调试的过程

  1. 创建新项目后,右键单击它,选择配置,转换为ANTLR项目…
  2. 在.g文件中创建语法并将其保存。注意:文件名必须与语法名称匹配。
  3. 如果存在重大错误,请调试语法。Eclipse显示ANTLR错误和受影响的行。最初,这些错误似乎很难理解,但是可以通过使用各种资源来解决:-编写ANTLR的人TerenceParr撰写的权威性ANTLR参考-ANTLR参考手册-Google错误;很多时候,您会在这里出现;特别是BartKiers既有知识又有帮助(Bart:谢谢您不知道给我的帮助)
  4. 解决严重的ANTLR错误后的第一次保存,将创建您在Eclipse中配置的java输出文件夹,并且还将创建该文件夹中的java文件。
  5. 右键单击java输出文件夹,选择“构建路径”,“用作源文件夹”。这告诉Eclipse在哪里寻找项目的Java源代码。
  6. 新的Java文件中可能存在错误。选择它,然后搜索查找Java错误。返回您的语法或Java文件,更正错误,然后重新保存语法,直到语法和Java文件都没有错误,然后运行它。
  7. 从这一点开始,这是通常的modify-run-debug周期。
  8. 我唯一需要进行的其他Eclipse更改是创建一些用于测试命令行参数的“运行配置”。


 类似资料:
  • 本文向大家介绍ANTLR语言支持,包括了ANTLR语言支持的使用技巧和注意事项,需要的朋友参考一下 示例 ANTLR能够为多种编程语言生成解析器: C#目标 Python目标 JavaScript目标 Java目标 默认情况下,ANTLR将使用Java编程语言从命令行生成解析器: 要更改目标语言,可以从OS终端/命令行运行以下命令: 不必每次都在命令行/终端上使用“ -Dlanguage”参数来为

  • intellij中的ANTLR V4插件提供了一个选项,可以使用右键单击窗口中的“test Rule”选项来测试语法中的解析器规则。但是,对于Lexer规则,这个选项是灰色的。我如何使用这个插件测试Lexer规则?

  • 假设我有以下简单语法(查询DSL): 然后在某个时刻,我决定需要更改文本术语格式,例如: 我应该如何迁移用户使用以前版本的语法生成的现有数据?

  • 下面是识别类似 hello world 和 hello xxx 词组的语法定义: // 定义名为 Hello 的语法 grammar Hello; // 匹配一个关键字 hello,和一个紧随其后的标识符 r : 'hello' ID ; // 匹配小写字母组成的标识符 ID : [a-z]+ ; // 忽略空格、Tab、换行以及 \r(windows) WS : [ \t\r\n]+ ->

  • null 对此任何帮助都将不胜感激。

  • 本文向大家介绍ANTLR 动作和语义谓词,包括了ANTLR 动作和语义谓词的使用技巧和注意事项,需要的朋友参考一下 示例 词法分析器操作是目标语言中由{...包围的任意代码块,该代码}在匹配期间执行: 语义谓词是目标语言中由{...包围的任意代码块}?,其结果为布尔值。如果返回的值为false,则跳过词法分析器规则。 出于性能原因,应尽可能在规则末尾定义语义谓词。