 | polyparse-1.1: A variety of alternative parser combinator libraries. | Contents | Index |
|
| Text.ParserCombinators.Poly.State |
|
|
|
|
|
| Synopsis |
|
|
|
|
| The Parser datatype
|
|
| newtype Parser s t a |
| The Parser datatype is a fairly generic parsing monad with error
reporting and a running state. It can be used for arbitrary token
types, not just String input.
| | Constructors | | P (s -> [t] -> (EitherE String a, s, [t])) | |
| Instances | |
|
|
| runParser :: Parser s t a -> s -> [t] -> (Either String a, s, [t]) |
| Apply a parser to an initial state and input token sequence.
|
|
| basic parsers
|
|
| satisfy :: (t -> Bool) -> Parser s t t |
|
| State-handling
|
|
| stUpdate :: (s -> s) -> Parser s t () |
| Update the internal state.
|
|
| stQuery :: (s -> a) -> Parser s t a |
| Query the internal state.
|
|
| stGet :: Parser s t s |
| Deliver the entire internal state.
|
|
| Re-parsing
|
|
| reparse :: [t] -> Parser s t () |
| Push some tokens back onto the front of the input stream and reparse.
This is useful e.g. for recursively expanding macros. When the
user-parser recognises a macro use, it can lookup the macro
expansion from the parse state, lex it, and then stuff the
lexed expansion back down into the parser.
|
|
| Re-export all more general combinators.
|
|
| module Text.ParserCombinators.Poly.Base |
|
| Produced by Haddock version 0.8 |