gpt4 book ai didi

parsing - 将 Haskell Parsec 语法翻译成 Scala?

转载 作者:行者123 更新时间:2023-12-04 04:35:43 24 4
gpt4 key购买 nike

我正在尝试将使用 Parsec 用 Haskell 编写的语法翻译成 Scala 的解析器组合器。

实际匹配表达式的翻译非常简单,至少在我看来,在 Scala 中甚至更容易一些。我完全不清楚的是如何处理 Parsec 使用 monad 传递的状态。

Scala 解析器读入 Input 并生成 ParseResult[T]。

相反,Haskell 中的 GenParser 读取输入和状态并生成另一个解析器。在 Scala 中传递这种状态让我感到困惑。

有人愿意分享 Scala 中的状态解析示例吗?

最佳答案

我知道在 Scala Parsers Combinators 中处理状态完整性的唯一方法是通过 into方法,也称为 >>flatMap (而且,是的,您可以在理解中使用它)。但是,它将状态(或更准确地说,解析结果)传递给解析器,而不是沿着下一个解析器传递,这似乎是您所描述的。

不知道 Haskell 的 Parsec,我很难猜测它如何用于翻译您的语法。

另见 this question .有一篇关于 Scala 解析器组合器的非常有趣的论文,但我找不到它。一些探索 Scala Lang可能会打开它。

关于parsing - 将 Haskell Parsec 语法翻译成 Scala?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9833385/

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