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

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

class (DirectedPlus d, Chunk c, Show (DirState d c)) => DirChunk (d :: Dir) c Source #

Instances

Instances details
DirChunk 'Backward ByteString Source # 
Instance details

Defined in Data.Attoparsec.Internal.Types

Associated Types

type DirChunkElem 'Backward ByteString 
Instance details

Defined in Data.Attoparsec.Internal.Types

DirChunk 'Forward ByteString Source # 
Instance details

Defined in Data.Attoparsec.Internal.Types

Associated Types

type DirChunkElem 'Forward ByteString 
Instance details

Defined in Data.Attoparsec.Internal.Types

DirChunk 'Forward Text Source # 
Instance details

Defined in Data.Attoparsec.Internal.Types

Associated Types

type DirChunkElem 'Forward Text 
Instance details

Defined in Data.Attoparsec.Internal.Types

prompt :: forall t (d :: Dir) r. (Show t, DirChunk d t) => DirState d t -> DirPos d -> More -> (DirState d t -> DirPos d -> More -> IResult t r) -> (DirState d t -> DirPos d -> 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 :: forall t (d :: Dir). (Show t, DirChunk d t) => DirParser d t () Source #

Immediately demand more input via a Partial continuation result.

demandInput_ :: forall (d :: Dir) t. DirChunk d t => DirParser d t t Source #

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

wantInput :: forall t (d :: Dir). (Show t, DirChunk d t) => DirParser d 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 (d :: Dir). (Show t, DirChunk d t) => DirParser d t () Source #

Match only if all input has been consumed.

atEnd :: forall t (d :: Dir). (Show t, DirChunk d t) => DirParser d t Bool Source #

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

satisfyElem :: forall t (d :: Dir). (Show t, DirChunk d t) => (DirChunkElem d t -> Bool) -> DirParser d t (DirChunkElem d 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 :: DirChunk d c => [Tagged d c] -> Tagged d c Source #