【问题标题】:Using Haskell's Parsec to parse a ByteString使用 Haskell 的 Parsec 解析 ByteString
【发布时间】:2010-01-19 01:09:36
【问题描述】:

我已经设法使用 Parsec 来解析字符串,但无法使用 ByteString 做同样的事情。

如何让 Parsec 使用 ByteStrings 而无需手动将它们转换为字符串?

我觉得这并不难实现。我错了吗? (我是 Haskell 的新手。^^)

谢谢!

【问题讨论】:

标签: haskell parsec bytestring


【解决方案1】:

只需从Text.Parsec.ByteStringText.Parsec.ByteString.Lazy 导入Parser 类型,而不是从Text.Parsec.String

【讨论】:

【解决方案2】:

答案实际上取决于您使用的 Parsec 版本。如果您使用的是 3.0 或更高版本,则可以。对于 2.x.x 版本,我认为你不能。

http://hackage.haskell.org/packages/archive/parsec/3.0.1/doc/html/Text-Parsec-ByteString.html

干杯

edit:STH 建议的 Parsec (Text.Parsec.ByteString) 实际上是 3.0 版本,之前的版本 2.x.x 位于 Text.ParserCombinators.Parsec。

【讨论】:

  • 哦,那我现在好像缺少最新的版本,一直在用旧的。我会升级。谢谢你们!
【解决方案3】:
import Text.Parsec.ByteString ()

会给你实例

forall m. Stream ByteString m Char

因此,如果您使用,而不是 Parser a:

p ::  Stream s m Char => ParsecT s u m a

【讨论】:

  • 您是否试图解释如何获取 Word8 而不是 Char,是否有机会。我想不通。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
相关资源
最近更新 更多