Antlr4 Testrig运行,但是没有输出

时间:2018-11-07 14:12:26

标签: antlr4

我是ANTLR4的新手。我按照github上的安装说明进行操作,并成功运行了示例。因此,安装似乎可以。接下来,我下载了一个我想使用的语法文件,在其中运行antlr4,并使用javac编译了生成的文件。然后我尝试了一个像这样的例子:

C:> grun GrammerName tokens examplefile

这会运行几秒钟并返回,但是没有响应。香港专业教育学院尝试使用-tree-ps,但我都没有。如果我提供的文件名不正确,则会收到一堆未找到文件的错误消息,因此它正在执行某些操作……但是,如果我提供的是随机数据文件,则也不会得到任何响应。这向我表明,我的示例文件并未被视为有关语法的有效示例。但是为什么我没有收到错误消息?

本质上,我的问题是如何让TestRig提供有关我提供的示例文件的一些反馈?

我尝试阅读antlr.org网站上的手册页,但是我不熟悉太多术语。

1 个答案:

答案 0 :(得分:0)

如果提供tokens作为开始规则的名称,则告诉grun根本不调用解析器,而仅运行令牌生成器。通常,这仅与-tokens标志(用于打印令牌)结合使用才有用。否则,您看到的唯一输出将是可能的标记化错误。

选项-tree-ps-gui显示解析器的结果。因此,如果不执行解析器,则它们什么也不做。

如果要查看解析树,应将tokens替换为要使用的规则的名称。如果要查看已生成令牌的列表,则应添加-tokens标志。

  

哪个建议我,我的示例文件并未被视为有关语法的有效示例。

实际上是相反的。如果grun检测到错误,它将把它们打印到控制台。因此,如果没有输出,grun不会检测到任何错误(但是,使用tokens时,它将只查找词法错误,而不是语法错误)。当使用有效输入且没有诸如grun-tree之类的标志调用-tokens时,预期结果将是没有输出。