【发布时间】:2014-02-07 05:52:32
【问题描述】:
Haskell 解析器/组合器 Parsec 支持来自 Data.ByteString 和 Data.Text 的输入流。是否有计划在未来的版本中添加对这些类型的更多支持?组合器(many, sepby, string...)似乎是围绕列表设计的,首先使用 ByteStrings 和 Text 的原因是为了避开列表的使用。我知道大多数人会用一个包进行转换,因此这些列表将被垃圾收集掉,但这不只是对 Text/ByteString 的中途支持吗?不应该有Data.Parsec.Text.Combinator 和Data.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