Copyright | Bryan O'Sullivan 2007-2015 |
---|---|
License | BSD3 |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
Simple, efficient parser combinators, loosely based on the Parsec library.
Synopsis
- compareResults :: ( Eq i, Eq r) => IResult i r -> IResult i r -> Maybe Bool
- prompt :: Chunk t => State t -> Pos -> More -> ( State t -> Pos -> More -> IResult t r) -> ( State t -> Pos -> More -> IResult t r) -> IResult t r
- demandInput :: Chunk t => Parser t ()
- demandInput_ :: Chunk t => Parser t t
- wantInput :: forall t. Chunk t => Parser t Bool
- endOfInput :: forall t. Chunk t => Parser t ()
- atEnd :: Chunk t => Parser t Bool
- satisfyElem :: forall t. Chunk t => ( ChunkElem t -> Bool ) -> Parser t ( ChunkElem t)
- concatReverse :: Monoid m => [m] -> m
Documentation
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.
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".