相关疑难解决方法(0)

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

我有一个Xtext/Antlr 语法,可以解析Coffeescript的子集。我有一些测试用例,但我想做另一种测试:

  1. 从我的 Antlr 语法中生成随机的、语法正确的片段
  2. 将这些片段提供给原始的 CoffeeScript 解析器(调用coffee -ne "the sentence"
  3. 检查每个句子是否被coffeescript解析

因此,我可以确保我的解析器接受适当的子集,并且在某些情况下不会太宽松。现在,我被困在第一步了。如何从我的 Antlr 语法(也大量使用句法谓词)生成句子?所以我对解析句子的反面感兴趣。

我发现了一些相关的尝试,但答案根本不使用 Antlr,而是使用pythonclojureruby​​ 中的自定义语法。我更喜欢一个可行的解决方案,而不是关于如何实现它的提示。

grammar code-generation antlr

6
推荐指数
1
解决办法
1237
查看次数

任何工具都可以根据语言语法随机生成源代码?

AC程序源代码可以根据C语法进行解析(在CFG中描述)并最终变成许多AST.我正在考虑是否存在这样的工具:它可以通过首先随机生成许多AST来做相反的事情,其中​​包括没有具体字符串值的令牌,只有令牌的类型,根据CFG,然后生成混凝土令牌根据令牌在正则表达式中的定义.

我可以想象第一步看起来像一个迭代的非终端替换,它是随机的,并且可以受到一定数量的迭代次数的限制.第二步是根据正则表达式生成随机字符串.

有没有可以做到这一点的工具?

compiler-construction random context-free-grammar

5
推荐指数
1
解决办法
1318
查看次数