【问题标题】:parsec combinators and Text/ByteStringparsec 组合子和 Text/ByteString
【发布时间】:2014-02-07 05:52:32
【问题描述】:

Haskell 解析器/组合器 Parsec 支持来自 Data.ByteStringData.Text 的输入流。是否有计划在未来的版本中添加对这些类型的更多支持?组合器(many, sepby, string...)似乎是围绕列表设计的,首先使用 ByteStrings 和 Text 的原因是为了避开列表的使用。我知道大多数人会用一个包进行转换,因此这些列表将被垃圾收集掉,但这不只是对 Text/ByteString 的中途支持吗?不应该有Data.Parsec.Text.CombinatorData.Parsec.ByteString.Combinator 吗?

【问题讨论】:

  • 我知道 attoparsec,但对于我正在解析的内容来说,它的功能还不够全面。
  • 您能否为您想到的专门功能提供一个示例类型签名?
  • 类似的东西。 many :: Stream s m t => ParsecT s um Char -> ParsecT s um Data.Text 其中长度为 0 的情况会产生 Text.empty。我知道我可以通过调用 pack 来编写一个,但这会破坏避免列表的目的。

标签: haskell parsec bytestring


【解决方案1】:

直接回答您的问题:

是否有计划在未来的版本中添加对这些类型的更多支持?

很可能,没有。从darcs changes 可以很容易地推断出,该软件包多年来没有任何活跃的开发。

也就是说,核心 API 是公开的,所以如果您知道自己想要什么以及如何做,您就可以自己做。

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2013-02-27
    相关资源
    最近更新 更多