我有一个Xtext/Antlr语法,可以解析coffeescript的一个子集。 我有一些测试用例,但是我考虑做另一种类型的测试:
- 从我的Antlr语法中生成随机的、语法正确的代码片段。
- 将这些代码片段提供给原始的coffeescript解析器(调用
coffee -ne "the sentence"
) - 检查每个句子是否被coffeescript解析。
因此,我可以确保我的解析器接受一个正确的子集,并且在某些情况下不会过于宽松。 现在,我卡在了第一步。 我该如何从我的Antlr语法中生成句子(该语法还广泛使用语法断言)? 因此,我对与解析句子相反的过程感兴趣。
我发现了一些相关尝试,但是答案并没有使用Antlr,而是使用了Python、Clojure或者Ruby中的自定义语法。我更希望得到一个可行的解决方案,而不是关于如何实现它的提示。