Safe Haskell | None |
---|---|
Language | Haskell2010 |
ParserT
is the core monad transformer for parsing.
Synopsis
- newtype ParserT e s m a = ParserT {
- runParserT :: s -> ListT m (ParseResult e s a)
- type Parser e s a = ParserT e s Identity a
- runParser :: Parser e s a -> s -> [ParseResult e s a]
- filterParser :: Monad m => (a -> Bool) -> ParserT e s m a -> ParserT e s m a
- reflectParser :: Monad m => ParserT e s m a -> ParserT e s m (ParseValue e a)
- branchParser :: (Foldable f, Monad m) => f (ParserT e s m a) -> ParserT e s m a
- suppressParser :: Monad m => ParserT e s m a -> ParserT e s m a
- defaultParser :: Monad m => a -> ParserT e s m a -> ParserT e s m a
- optionalParser :: Monad m => ParserT e s m a -> ParserT e s m (Maybe a)
- silenceParser :: Monad m => ParserT e s m a -> ParserT e s m a
- greedyStarParser :: Monad m => ParserT e s m a -> ParserT e s m [a]
- greedyStarParser_ :: Monad m => ParserT e s m a -> ParserT e s m ()
- greedyPlusParser :: Monad m => ParserT e s m a -> ParserT e s m [a]
- greedyPlusParser_ :: Monad m => ParserT e s m a -> ParserT e s m ()
Documentation
newtype ParserT e s m a Source #
A ParserT
is a stateerrorlist transformer useful for parsing.
All MTL instances are for this transformer only. If, for example, your effect
has its own MonadState
instance, you'll have to use 'lift get' instead of get
.
ParserT | |
|
Instances
Monad m => MonadError e (ParserT e s m) Source # | |
Defined in SimpleParser.Parser throwError :: e -> ParserT e s m a # catchError :: ParserT e s m a -> (e -> ParserT e s m a) -> ParserT e s m a # | |
Monad m => MonadState s (ParserT e s m) Source # | |
MonadTrans (ParserT e s) Source # | |
Defined in SimpleParser.Parser | |
Monad m => Monad (ParserT e s m) Source # | |
Functor m => Functor (ParserT e s m) Source # | |
Monad m => Applicative (ParserT e s m) Source # | |
Defined in SimpleParser.Parser pure :: a -> ParserT e s m a # (<*>) :: ParserT e s m (a -> b) -> ParserT e s m a -> ParserT e s m b # liftA2 :: (a -> b -> c) -> ParserT e s m a -> ParserT e s m b -> ParserT e s m c # (*>) :: ParserT e s m a -> ParserT e s m b -> ParserT e s m b # (<*) :: ParserT e s m a -> ParserT e s m b -> ParserT e s m a # | |
Monad m => Alternative (ParserT e s m) Source # | |
Monad m => MonadPlus (ParserT e s m) Source # | |
type Parser e s a = ParserT e s Identity a Source #
Use Parser
if you have no need for other monadic effects.
runParser :: Parser e s a -> s -> [ParseResult e s a] Source #
Runs a non-effectful parser from an inital state and collects all results.
filterParser :: Monad m => (a -> Bool) -> ParserT e s m a -> ParserT e s m a Source #
Filters parse results
reflectParser :: Monad m => ParserT e s m a -> ParserT e s m (ParseValue e a) Source #
A kind of "catch" that returns all results, success and failure.
branchParser :: (Foldable f, Monad m) => f (ParserT e s m a) -> ParserT e s m a Source #
Combines the results of many parsers.
suppressParser :: Monad m => ParserT e s m a -> ParserT e s m a Source #
If the parse results in ANY successes, keep only those. Otherwise return all failures. This may block indefinitely as it awaits either the end of the parser or its first success.
defaultParser :: Monad m => a -> ParserT e s m a -> ParserT e s m a Source #
If the parser yields no results (success or failure), yield a given value.
silenceParser :: Monad m => ParserT e s m a -> ParserT e s m a Source #
Removes all failures from the parse results.
greedyStarParser :: Monad m => ParserT e s m a -> ParserT e s m [a] Source #
Yields the LONGEST string of 0 or more successes of the given parser (and passes through failures).
greedyStarParser_ :: Monad m => ParserT e s m a -> ParserT e s m () Source #
Same as greedyStarParser
but discards the result.
greedyPlusParser :: Monad m => ParserT e s m a -> ParserT e s m [a] Source #
Yields the LONGEST string of 1 or more successes of the given parser (and passes through failures).
greedyPlusParser_ :: Monad m => ParserT e s m a -> ParserT e s m () Source #
Same as greedyPlusParser
but discards the result.