【问题标题】:Generate syntactically correct sentences from an Antlr grammar从 Antlr 语法生成语法正确的句子
【发布时间】:2012-01-18 16:24:00
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: code-generation antlr grammar


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      相关资源
      最近更新 更多