mtlparse-0.1.1: parse library using mtl packageSource codeContentsIndex
Text.ParserCombinators.MTLParse
Contents
MonadParse class
The Parse Monad
The ParseT Monad
Synopsis
class Monad m => MonadParse a m | m -> a where
spot :: (a -> Bool) -> m a
spotBack :: (a -> Bool) -> m a
still :: m b -> m b
parseNot :: c -> m b -> m c
getHere :: m ([a], [a])
putHere :: ([a], [a]) -> m ()
noBacktrack :: m b -> m b
token :: (Eq a, MonadParse a m) => a -> m a
tokenBack :: (Eq a, MonadParse a m) => a -> m a
getsHere :: MonadParse a m => (([a], [a]) -> b) -> m b
modifyHere :: MonadParse a m => (([a], [a]) -> ([a], [a])) -> m ()
getForward :: MonadParse a m => m [a]
getsForward :: MonadParse a m => ([a] -> [a]) -> m [a]
putForward :: MonadParse a m => [a] -> m ()
modifyForward :: MonadParse a m => ([a] -> [a]) -> m ()
getBack :: MonadParse a m => m [a]
getsBack :: MonadParse a m => ([a] -> [a]) -> m [a]
putBack :: MonadParse a m => [a] -> m ()
modifyBack :: MonadParse a m => ([a] -> [a]) -> m ()
newtype Parse a b = Parse {
runParse :: ([a], [a]) -> [(b, ([a], [a]))]
}
evalParse :: Parse a b -> ([a], [a]) -> [b]
execParse :: Parse a b -> ([a], [a]) -> [([a], [a])]
mapParse :: ((b, ([a], [a])) -> (c, ([a], [a]))) -> Parse a b -> Parse a c
withParse :: (([a], [a]) -> ([a], [a])) -> Parse a b -> Parse a b
newtype ParseT a m b = ParseT {
runParseT :: ([a], [a]) -> m [(b, ([a], [a]))]
}
evalParseT :: Monad m => ParseT a m b -> ([a], [a]) -> m [b]
execParseT :: Monad m => ParseT a m b -> ([a], [a]) -> m [([a], [a])]
mapParseT :: (m [(b, ([a], [a]))] -> n [(c, ([a], [a]))]) -> ParseT a m b -> ParseT a n c
withParseT :: (([a], [a]) -> ([a], [a])) -> ParseT a m b -> ParseT a m b
module Control.Monad
module Control.Monad.Trans
tokens :: (Eq a, MonadParse a m) => [a] -> m [a]
tokensBack :: (Eq a, MonadParse a m) => [a] -> m [a]
build :: Monad m => m a -> (a -> b) -> m b
repeatParse :: MonadPlus m => Int -> Maybe Int -> m b -> m [b]
optional :: MonadPlus m => m a -> m [a]
list :: MonadPlus m => m a -> m [a]
neList :: MonadPlus m => m a -> m [a]
greedyRepeatParse :: MonadPlus m => Int -> Maybe Int -> m b -> m [b]
greedyOptional :: MonadPlus m => m a -> m [a]
greedyList :: MonadPlus m => m a -> m [a]
greedyNeList :: MonadPlus m => m a -> m [a]
beginningOfInput :: (MonadPlus m, MonadParse a m) => b -> m b
endOfInput :: (MonadPlus m, MonadParse a m) => b -> m b
apply2M :: Monad m => (a -> b -> c) -> m a -> m b -> m c
(>++>) :: Monad m => m [a] -> m [a] -> m [a]
(>:>) :: Monad m => m a -> m [a] -> m [a]
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
show/hide Instances
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
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
runParse :: ([a], [a]) -> [(b, ([a], [a]))]
show/hide Instances
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
runParseT :: ([a], [a]) -> m [(b, ([a], [a]))]
show/hide 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
module Control.Monad
module Control.Monad.Trans
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
beginningOfInput :: (MonadPlus m, MonadParse a m) => b -> m bSource
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
Produced by Haddock version 2.6.1