gpt4 book ai didi

parsing - 斯卡拉 2.9 : is there an easy way to log all ParseResults?

转载 作者:行者123 更新时间:2023-12-02 02:09:01 25 4
gpt4 key购买 nike

我使用 scala.util.parsing.combinators.Parsers 编写了词法分析器和解析器。我的作品中至少有一个错误,但我有太多错误,很难通过观察它们来确定问题所在。

我需要的是我的解析器为将输入与任何产生式相匹配所做的每一次尝试的日志;在实例化时记录所有 Success 和 Failure 对象会很可爱。不幸的是,我能看到的唯一方法是扩展库提供的许​​多基本类,然后重写我的大型解析器以扩展新类。

是否有一种简单的方法来获得这种日志记录行为?

最佳答案

您可以使用log 组合器来包装您的语法产生式。这是 Parsers.scala 中的定义:

def log[T](p: => Parser[T])(name: String): Parser[T] = Parser{ in =>
println("trying "+ name +" at "+ in)
val r = p(in)
println(name +" --> "+ r)
r
}

否则,我认为您应该能够覆盖 successfailure,但这将无法提供任何信息,因为您不知道生产调用它们的是什么。

关于parsing - 斯卡拉 2.9 : is there an easy way to log all ParseResults?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13712632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com