attoparsec-0.13.0.2: Fast combinator parsing for bytestrings and text

CopyrightBryan O'Sullivan 2007-2015
LicenseBSD3
Maintainerbos@serpentine.com
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell98

Data.Attoparsec.Internal

Description

Simple, efficient parser combinators, loosely based on the Parsec library.

Synopsis

Documentation

compareResults :: (Eq i, Eq r) => IResult i r -> IResult i r -> Maybe Bool Source

Compare two IResult values for equality.

If both IResults are Partial, the result will be Nothing, as they are incomplete and hence their equality cannot be known. (This is why there is no Eq instance for IResult.)

prompt :: Chunk t => State t -> Pos -> More -> (State t -> Pos -> More -> IResult t r) -> (State t -> Pos -> More -> IResult t r) -> IResult t r Source

Ask for input. If we receive any, pass the augmented input to a success continuation, otherwise to a failure continuation.

demandInput :: Chunk t => Parser t () Source

Immediately demand more input via a Partial continuation result.

demandInput_ :: Chunk t => Parser t t Source

Immediately demand more input via a Partial continuation result. Return the new input.

wantInput :: forall t. Chunk t => Parser t Bool Source

This parser always succeeds. It returns True if any input is available either immediately or on demand, and False if the end of all input has been reached.

endOfInput :: forall t. Chunk t => Parser t () Source

Match only if all input has been consumed.

atEnd :: Chunk t => Parser t Bool Source

Return an indication of whether the end of input has been reached.

satisfyElem :: forall t. Chunk t => (ChunkElem t -> Bool) -> Parser t (ChunkElem t) Source

The parser satisfyElem p succeeds for any chunk element for which the predicate p returns True. Returns the element that is actually parsed.

concatReverse :: Monoid m => [m] -> m Source

Concatenate a monoid after reversing its elements. Used to glue together a series of textual chunks that have been accumulated "backwards".