使用Haskell的Parsec来解析ByteString

时间:2010-01-19 01:09:36

标签: haskell parsec bytestring

我已经设法使用Parsec来解析一个String,但无法通过ByteString来做同样的事情。

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

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

谢谢!

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:2)

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

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

干杯

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

答案 2 :(得分:0)

import Text.Parsec.ByteString ()

将为您提供实例

forall m. Stream ByteString m Char

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

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