attoparsec-0.10.0.1: Fast combinator parsing for bytestrings

Portabilityunknown
Stabilityexperimental
Maintainerbos@serpentine.com

Data.Attoparsec.Text.Lazy

Contents

Description

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

This is essentially the same code as in the Data.Attoparsec.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 L.readFile or L.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.

Synopsis

Documentation

data Result r Source

The result of a parse.

Constructors

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.

Instances

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.