mtlparse-0.1.1: parse library using mtl package

Text.ParserCombinators.MTLParse

Contents

Synopsis

MonadParse class

class Monad m => MonadParse a m | m -> a whereSource

Methods

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

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

still :: m b -> m bSource

parseNot :: c -> m b -> m cSource

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

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

noBacktrack :: m b -> m bSource

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 aSource

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

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

modifyHere :: MonadParse a m => (([a], [a]) -> ([a], [a])) -> m ()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) 
Monad (Parse a) 
Functor (Parse p) 
MonadPlus (Parse a) 
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 cSource

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

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 => Monad (ParseT a m) 
Monad m => Functor (ParseT a m) 
Monad m => MonadPlus (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 cSource

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

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 bSource

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 bSource

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

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

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