从Antlr语法生成语法正确的句子

时间:2011-12-12 17:32:08

标签: code-generation antlr grammar

我有一个Xtext/Antlr grammar来解析coffeescript的子集。我有一些测试用例,但我想做另一种测试:

  1. 从我的Antlr语法生成随机,语法正确的片段
  2. 将这些代码段提供给原始coffeescript解析器(调用coffee -ne "the sentence"
  3. 检查每个句子是否由coffeescript解析
  4. 因此,我可以确保我的解析器接受适当的子集,并且在某些情况下它不太宽松。现在,我坚持第一步。如何从我的Antlr语法生成句子(这也大量使用句法谓词)?所以我对解析一个句子感兴趣。

    我找到了一些related attempts,但答案根本没有使用Antlr,而是使用pythonclojureruby中的自定义语法。我更喜欢一个有效的解决方案,而不是一个如何实现它的提示。

1 个答案:

答案 0 :(得分:1)

不,你不能这样做。如果你看一下ANTLR编译的代码,你可以看到它只是一个识别器,而不是一个生成器。

您提供的链接是您最好的选择 - 使用您的ANTLR语法,删除所有规则以使其成为正式语法,然后尝试通过其中一个程序运行它。

或者如果您的coffeescript子集非常小,您可以采用生成随机令牌字符串的方法并丢弃所有不解析的字符串。

相关问题