6

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

如何在不手动将它们转换为字符串的情况下使 Parsec 与 ByteStrings 一起使用?

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

谢谢!

4

3 回答 3

8

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

于 2010-01-19T01:18:26.747 回答
2

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

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

干杯

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

于 2010-01-19T01:19:21.163 回答
0
import Text.Parsec.ByteString ()

会给你实例

forall m. Stream ByteString m Char

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

p ::  Stream s m Char => ParsecT s u m a
于 2011-06-25T20:22:35.320 回答