簡體   English   中英

在ScalaCheck中從語法生成字符串

[英]Generate Strings from Grammar in ScalaCheck

在Scala中,我使用Parser Combinators庫實現了語法。 現在,我想要做的是從解析器組合器庫中生成給定語法的隨機字符串。

在我看來,ScalaCheck庫在某種程度上與Parser Combinators相反,因為它結合了生成器而不是解析器。

是否已經有一種使用Parser Combinators或ScalaCheck生成字符串的方法,或者是否有直接的方法將Parser Combinator轉換為生成器?

將語法轉換為生成器沒有直接的方法。 你必須手動編寫它們。 它不會那么難,因為你已經有了語法。 您可以輕松地測試解析器,但測試類型檢查器可能會有很多問題(但仍然可能)。 在開始之前,請確保您的AST節點可以相互比較。

  • Scalacheck允許您生成遞歸屬性,因此您可以輕松生成AST節點。
  • 當您生成AST節點時,您可以使用Scalacheck和一些關於空格的額外知識以及它們在節點之間的抱怨,並將其轉換為字符串。
  • 然后你可以將生成的字符串提供給解析器,你將測試代碼並將它們與預先生成的AST進行比較

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM