mtlparse-0.1.4.0: parse library using mtl package

Safe HaskellSafe-Inferred
LanguageHaskell98

Text.ParserCombinators.MTLParse

Contents

Synopsis

MonadParse class

class Monad m => MonadParse a m | m -> a where Source

Methods

spot :: (a -> Bool) -> m a Source

spotBack :: (a -> Bool) -> m a Source

still :: m b -> m b Source

parseNot :: c -> m b -> m c Source

getHere :: m ([a], [a]) Source

putHere :: ([a], [a]) -> m () Source

noBacktrack :: m b -> m b Source

Instances

MonadParse a (Parse a) 
MonadParse a m => MonadParse a (StateT r m) 
(MonadParse a m, Monoid w) => MonadParse a (WriterT w m) 
MonadParse a m => MonadParse a (ReaderT s m) 
Monad m => MonadParse a (ParseT a m) 

token :: (Eq a, MonadParse a m) => a -> m a Source

tokenBack :: (Eq a, MonadParse a m) => a -> m a Source

getsHere :: MonadParse a m => (([a], [a]) -> b) -> m b Source

modifyHere :: MonadParse a m => (([a], [a]) -> ([a], [a])) -> m () Source

getForward :: MonadParse a m => m [a] Source

getsForward :: MonadParse a m => ([a] -> [a]) -> m [a] Source

putForward :: MonadParse a m => [a] -> m () Source

modifyForward :: MonadParse a m => ([a] -> [a]) -> m () Source

getBack :: MonadParse a m => m [a] Source

getsBack :: MonadParse a m => ([a] -> [a]) -> m [a] Source

putBack :: MonadParse a m => [a] -> m () Source

modifyBack :: MonadParse a m => ([a] -> [a]) -> m () Source

The Parse Monad

newtype Parse a b Source

A parse monad where a is the type of the token to parse and b is the type of the return value.

Constructors

Parse 

Fields

runParse :: ([a], [a]) -> [(b, ([a], [a]))]
 

Instances

MonadParse a (Parse a) 
Alternative (Parse p) 
Monad (Parse a) 
Functor (Parse p) 
MonadPlus (Parse a) 
Applicative (Parse p) 
MonadReader ([a], [a]) (Parse a) 
MonadState ([a], [a]) (Parse a) 

evalParse :: Parse a b -> ([a], [a]) -> [b] Source

execParse :: Parse a b -> ([a], [a]) -> [([a], [a])] Source

mapParse :: ((b, ([a], [a])) -> (c, ([a], [a]))) -> Parse a b -> Parse a c Source

withParse :: (([a], [a]) -> ([a], [a])) -> Parse a b -> Parse a b Source

The ParseT Monad

newtype ParseT a m b Source

A parse monad for encaplulating an inner monad.

Constructors

ParseT 

Fields

runParseT :: ([a], [a]) -> m [(b, ([a], [a]))]
 

Instances

MonadWriter w m => MonadWriter w (ParseT a m) 
Monad m => MonadParse a (ParseT a m) 
MonadTrans (ParseT a) 
Monad m => Alternative (ParseT a m) 
Monad m => Monad (ParseT a m) 
Monad m => Functor (ParseT a m) 
Monad m => MonadPlus (ParseT a m) 
Monad m => Applicative (ParseT a m) 
MonadIO m => MonadIO (ParseT a m) 
Monad m => MonadReader ([a], [a]) (ParseT a m) 
Monad m => MonadState ([a], [a]) (ParseT a m) 

evalParseT :: Monad m => ParseT a m b -> ([a], [a]) -> m [b] Source

execParseT :: Monad m => ParseT a m b -> ([a], [a]) -> m [([a], [a])] Source

mapParseT :: (m [(b, ([a], [a]))] -> n [(c, ([a], [a]))]) -> ParseT a m b -> ParseT a n c Source

withParseT :: (([a], [a]) -> ([a], [a])) -> ParseT a m b -> ParseT a m b Source

tokens :: (Eq a, MonadParse a m) => [a] -> m [a] Source

tokensBack :: (Eq a, MonadParse a m) => [a] -> m [a] Source

build :: Monad m => m a -> (a -> b) -> m b Source

repeatParse :: MonadPlus m => Int -> Maybe Int -> m b -> m [b] Source

optional :: MonadPlus m => m a -> m [a] Source

list :: MonadPlus m => m a -> m [a] Source

neList :: MonadPlus m => m a -> m [a] Source

greedyRepeatParse :: MonadPlus m => Int -> Maybe Int -> m b -> m [b] Source

greedyOptional :: MonadPlus m => m a -> m [a] Source

greedyList :: MonadPlus m => m a -> m [a] Source

greedyNeList :: MonadPlus m => m a -> m [a] Source

endOfInput :: (MonadPlus m, MonadParse a m) => b -> m b Source

apply2M :: Monad m => (a -> b -> c) -> m a -> m b -> m c Source

(>++>) :: Monad m => m [a] -> m [a] -> m [a] Source

(>:>) :: Monad m => m a -> m [a] -> m [a] Source