2012-05-31 77 views
6

所以我一直在使用ANTLR v3.4在Eclipse中编写语法,并且我已经制作了一个可以工作的文档,并且我想确保在编辑它时,所有东西仍然有效。我可以每次进入解释器,但这似乎是对时间的巨大浪费。测试ANTLR语法

问题: 我读过有关gunit但链接它给下载gUnit: (http://antlr.org/hudson/job/gUnit/org.antlr $ gunit/lastSuccessfulBuild /)不工作。我怎样才能得到gUnit。 测试语法的最佳方法是什么?它实际上是gUnit还是应该像jUnit测试一样进行java测试?

+1

gUnit现在已经包含在antlr工具中,现在有几个版本,不是吗? –

+0

如何在我下载完ANTLR-complete-3.4.jar后访问gUnit? – jQwierdy

回答

5

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

要使用我已经使用的过程(下面概述),您必须先安装ANTLR IDE v2.1.2。从Eclipse Indigo内部直接添加:http://antlrv3ide.sourceforge.net/updates。该网站还有一些关于使用ANTLR IDE的有用文档。一旦安装,IDE就必须进行配置。视频教程有点过时但很有帮助。详细了解如何指导configuring ANTLR IDE in Eclipse。主配置项是java输出文件夹。通过转到Windows,首选项,ANTLR,代码生成器,检查项目相关文件夹并在输出文件夹名称框中键入文件夹名称(我的名称为“antlr-java”,其他人使用“生成”),在Eclipse中执行此操作。

测试/调试的ANTLR在Eclipse靛蓝与ANTLR IDE过程

  1. 之后,新项目创建,右键单击它,选择配置,转换为 ANTLR项目...
  2. 在.g文件中创建语法并保存。注意:文件名必须与语法名称匹配。
  3. 如果有重大错误,请调试语法。 Eclipse显示ANTLR错误 以及哪些行受到影响。起初,这些错误似乎很难理解,但是他们可以通过使用各种资源来完成: - 由Terence Parr编写的权威ANTLR参考 - 编写ANTLR - ANTLR参考手册 的人 - 谷歌错误;很多时候你会在这里结束计算器; 尤其巴特煮布锅既是知识渊博,乐于助人(巴特:THX为 你不知道帮助你给我)
  4. 在第一次保存ANTLR严重错误后都解决了,你在Java输出文件夹 配置在Eclipse中将被创建并且该文件夹中的一个java文件也将被创建。
  5. 右键单击java输出文件夹,选择Build Path,用作源文件夹。这个 告诉Eclipse在哪里寻找项目的Java源代码。
  6. 新的java文件可能存在错误。选择它,然后通过查找 来查找Java错误。回到你的语法或者java文件,纠正错误,并且重新保存语法,直到语法和java文件都没有错误,然后运行它。
  7. 从现在起,这是通常的修改 - 运行 - 调试周期。
  8. 我需要的唯一其他Eclipse更改是创建一些用于测试 命令行参数的运行配置。
+0

使用嵌入式链接编辑答案。 – cb4

0

这是我第一次听说gUinit并且读了它。 (我不多使用ANTLR。)这听起来很有趣,但是一半没用。

我的验证语法的方法是使用“正常”单元测试实际验证整个解析器。问题是,无论如何你都应该进行单元测试,并且检查语法回归的测试只需将它添加到那里。根据我的经验,大部分错误都是语义分析和缩减,而不是语法。

+0

你能告诉我更多关于这个或你去哪里找到你的信息的位置吗? – jQwierdy

+0

gUnit上的信息大部分是关于该术语的快速谷歌。另一个是10年建立语言分析和编译器的专业经验。事情是,语法将生活在一个应用程序中;除非你只做出学术的例子。应用程序可能已经有单元测试,为什么不使用它呢。特别是因为什么用途是语法是有效的,但其余的代码使废话。 – rioki

+0

最主要的原因是因为它很大程度上不确定它是否运行(同时从头开始构建语法),并且必须进入语法windown以确保您所做的每件事都能正常工作。一些自动测试代码会自动告诉你什么破坏了每一个编译。我们没有应用程序,因为我们正在自己设计它,所以我们必须确保它的工作,没有总体项目会告诉我们它的工作与否。我不知道这是否解释了很多,只是让我知道:) – jQwierdy