simple-parser-0.2.0: Simple parser combinators
Safe HaskellNone
LanguageHaskell2010

SimpleParser.Parser

Description

ParserT is the core monad transformer for parsing.

Synopsis

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.

Constructors

ParserT 

Fields

Instances

Instances details
Monad m => MonadError e (ParserT e s m) Source # 
Instance details

Defined in SimpleParser.Parser

Methods

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 # 
Instance details

Defined in SimpleParser.Parser

Methods

get :: ParserT e s m s #

put :: s -> ParserT e s m () #

state :: (s -> (a, s)) -> ParserT e s m a #

MonadTrans (ParserT e s) Source # 
Instance details

Defined in SimpleParser.Parser

Methods

lift :: Monad m => m a -> ParserT e s m a #

Monad m => Monad (ParserT e s m) Source # 
Instance details

Defined in SimpleParser.Parser

Methods

(>>=) :: ParserT e s m a -> (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 b #

return :: a -> ParserT e s m a #

Functor m => Functor (ParserT e s m) Source # 
Instance details

Defined in SimpleParser.Parser

Methods

fmap :: (a -> b) -> ParserT e s m a -> ParserT e s m b #

(<$) :: a -> ParserT e s m b -> ParserT e s m a #

Monad m => Applicative (ParserT e s m) Source # 
Instance details

Defined in SimpleParser.Parser

Methods

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 # 
Instance details

Defined in SimpleParser.Parser

Methods

empty :: ParserT e s m a #

(<|>) :: ParserT e s m a -> ParserT e s m a -> ParserT e s m a #

some :: ParserT e s m a -> ParserT e s m [a] #

many :: ParserT e s m a -> ParserT e s m [a] #

Monad m => MonadPlus (ParserT e s m) Source # 
Instance details

Defined in SimpleParser.Parser

Methods

mzero :: ParserT e s m a #

mplus :: ParserT e s m a -> ParserT e s m a -> ParserT e s m a #

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.

optionalParser :: Monad m => ParserT e s m a -> ParserT e s m (Maybe a) Source #

A parser that yields Nothing if there are no results (success or failure), otherwise wrapping successes in Just.

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.