attoparsec- Fast combinator parsing for bytestrings

Safe HaskellSafe-Infered




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

This is essentially the same code as in the Attoparsec module, only with a parse function that can consume a lazy ByteString 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 ByteString values are still used internally to store parser input and manipulate it efficiently. High-performance parsers such as string still expect strict ByteString parameters.



data Result r Source

The result of a parse.


Fail ByteString [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 ByteString 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 -> ByteString -> Result aSource

Run a parser and return its result.

parseTest :: Show a => Parser a -> ByteString -> 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.