【问题标题】:Generate Strings from Grammar in ScalaCheck在 ScalaCheck 中从语法生成字符串
【发布时间】:2015-08-17 12:52:06
【问题描述】:

在 Scala 中,我使用 Parser Combinators 库实现了一个语法。现在,我要做的是根据解析器组合库中的语法生成随机字符串。

在我看来,ScalaCheck 库在某种程度上与 Parser Combinators 相反,因为它结合了生成器而不是解析器。

是否已经有使用 Parser Combinators 或 ScalaCheck 生成字符串的方法,或者是否有将 Parser Combinator 转换为生成器的直接方法?

【问题讨论】:

    标签: scala code-generation parser-generator quickcheck scalacheck


    【解决方案1】:

    没有直接的方法可以将您的语法转换为生成器。您必须手动编写它们。这不会那么难,因为你已经有了语法。您可以轻松地测试您的解析器,但测试您的类型检查器可能会有很大的问题(但仍然可能)。在开始之前,请确保您的 AST 节点可以相互比较。

    • Scalacheck 允许您生成递归属性,因此您可以 轻松生成 AST 节点。
    • 生成 AST 节点后,您可以使用 Scalacheck 和 关于空白及其顺从性的一些额外知识 节点之间,翻译成字符串。
    • 然后你可以将生成的字符串提供给解析器,你就可以了 测试代码并将它们与预先生成的 AST 进行比较

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      • 1970-01-01
      • 2014-07-17
      相关资源
      最近更新 更多