attoparsec- Fast combinator parsing for bytestrings

Safe HaskellSafe-Infered




Simple, efficient combinator parsing for lazy Text strings, loosely based on the Parsec library.

This is essentially the same code as in the Text module, only with a parse function that can consume a lazy Text incrementally, and a Result type that does not allow more input to be fed in. Think of this as suitable for use with a lazily read file, e.g. via readFile or hGetContents.

Behind the scenes, strict Text values are still used internally to store parser input and manipulate it efficiently. High-performance parsers such as string still expect strict Text parameters.



data Result r Source

The result of a parse.


Fail Text [String] String

The parse failed. The ByteString is the input that had not yet been consumed when the failure occurred. The [String] is a list of contexts in which the error occurred. The String is the message describing the error, if any.

Done Text r

The parse succeeded. The ByteString is the input that had not yet been consumed (if any) when the parse succeeded.


Running parsers

parse :: Parser a -> Text -> Result aSource

Run a parser and return its result.

parseTest :: Show a => Parser a -> Text -> IO ()Source

Run a parser and print its result to standard output.

Result conversion

maybeResult :: Result r -> Maybe rSource

Convert a Result value to a Maybe value.

eitherResult :: Result r -> Either String rSource

Convert a Result value to an Either value.