attoparsec-0.14.4: Fast combinator parsing for bytestrings and text
CopyrightBryan O'Sullivan 2007-2015
LicenseBSD3
Maintainerbos@serpentine.com
Stabilityexperimental
Portabilityunknown
Safe HaskellNone
LanguageHaskell2010

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".