mtlparse-0.1.4.0: parse library using mtl package
Safe HaskellSafe-Inferred
LanguageHaskell98

Text.ParserCombinators.MTLParse

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

Instances details
MonadParse a (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

spot :: (a -> Bool) -> Parse a a Source #

spotBack :: (a -> Bool) -> Parse a a Source #

still :: Parse a b -> Parse a b Source #

parseNot :: c -> Parse a b -> Parse a c Source #

getHere :: Parse a ([a], [a]) Source #

putHere :: ([a], [a]) -> Parse a () Source #

noBacktrack :: Parse a b -> Parse a b Source #

Monad m => MonadParse a (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

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

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

still :: ParseT a m b -> ParseT a m b Source #

parseNot :: c -> ParseT a m b -> ParseT a m c Source #

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

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

noBacktrack :: ParseT a m b -> ParseT a m b Source #

MonadParse a m => MonadParse a (ReaderT s m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

spot :: (a -> Bool) -> ReaderT s m a Source #

spotBack :: (a -> Bool) -> ReaderT s m a Source #

still :: ReaderT s m b -> ReaderT s m b Source #

parseNot :: c -> ReaderT s m b -> ReaderT s m c Source #

getHere :: ReaderT s m ([a], [a]) Source #

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

noBacktrack :: ReaderT s m b -> ReaderT s m b Source #

MonadParse a m => MonadParse a (StateT r m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

spot :: (a -> Bool) -> StateT r m a Source #

spotBack :: (a -> Bool) -> StateT r m a Source #

still :: StateT r m b -> StateT r m b Source #

parseNot :: c -> StateT r m b -> StateT r m c Source #

getHere :: StateT r m ([a], [a]) Source #

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

noBacktrack :: StateT r m b -> StateT r m b Source #

(MonadParse a m, Monoid w) => MonadParse a (WriterT w m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

spot :: (a -> Bool) -> WriterT w m a Source #

spotBack :: (a -> Bool) -> WriterT w m a Source #

still :: WriterT w m b -> WriterT w m b Source #

parseNot :: c -> WriterT w m b -> WriterT w m c Source #

getHere :: WriterT w m ([a], [a]) Source #

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

noBacktrack :: WriterT w m b -> WriterT w m b Source #

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

Instances details
MonadParse a (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

spot :: (a -> Bool) -> Parse a a Source #

spotBack :: (a -> Bool) -> Parse a a Source #

still :: Parse a b -> Parse a b Source #

parseNot :: c -> Parse a b -> Parse a c Source #

getHere :: Parse a ([a], [a]) Source #

putHere :: ([a], [a]) -> Parse a () Source #

noBacktrack :: Parse a b -> Parse a b Source #

Alternative (Parse p) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

empty :: Parse p a

(<|>) :: Parse p a -> Parse p a -> Parse p a

some :: Parse p a -> Parse p [a]

many :: Parse p a -> Parse p [a]

Applicative (Parse p) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

pure :: a -> Parse p a

(<*>) :: Parse p (a -> b) -> Parse p a -> Parse p b

liftA2 :: (a -> b -> c) -> Parse p a -> Parse p b -> Parse p c

(*>) :: Parse p a -> Parse p b -> Parse p b

(<*) :: Parse p a -> Parse p b -> Parse p a

Functor (Parse p) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

fmap :: (a -> b) -> Parse p a -> Parse p b

(<$) :: a -> Parse p b -> Parse p a

Monad (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

(>>=) :: Parse a a0 -> (a0 -> Parse a b) -> Parse a b

(>>) :: Parse a a0 -> Parse a b -> Parse a b

return :: a0 -> Parse a a0

MonadPlus (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

mzero :: Parse a a0 #

mplus :: Parse a a0 -> Parse a a0 -> Parse a a0 #

MonadReader ([a], [a]) (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

ask :: Parse a ([a], [a])

local :: (([a], [a]) -> ([a], [a])) -> Parse a a0 -> Parse a a0

reader :: (([a], [a]) -> a0) -> Parse a a0

MonadState ([a], [a]) (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

get :: Parse a ([a], [a])

put :: ([a], [a]) -> Parse a ()

state :: (([a], [a]) -> (a0, ([a], [a]))) -> Parse a a0

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

Instances details
MonadWriter w m => MonadWriter w (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

writer :: (a0, w) -> ParseT a m a0

tell :: w -> ParseT a m ()

listen :: ParseT a m a0 -> ParseT a m (a0, w)

pass :: ParseT a m (a0, w -> w) -> ParseT a m a0

Monad m => MonadParse a (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

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

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

still :: ParseT a m b -> ParseT a m b Source #

parseNot :: c -> ParseT a m b -> ParseT a m c Source #

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

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

noBacktrack :: ParseT a m b -> ParseT a m b Source #

MonadTrans (ParseT a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

lift :: Monad m => m a0 -> ParseT a m a0 #

MonadIO m => MonadIO (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

liftIO :: IO a0 -> ParseT a m a0 #

Monad m => Alternative (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

empty :: ParseT a m a0

(<|>) :: ParseT a m a0 -> ParseT a m a0 -> ParseT a m a0

some :: ParseT a m a0 -> ParseT a m [a0]

many :: ParseT a m a0 -> ParseT a m [a0]

Monad m => Applicative (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

pure :: a0 -> ParseT a m a0

(<*>) :: ParseT a m (a0 -> b) -> ParseT a m a0 -> ParseT a m b

liftA2 :: (a0 -> b -> c) -> ParseT a m a0 -> ParseT a m b -> ParseT a m c

(*>) :: ParseT a m a0 -> ParseT a m b -> ParseT a m b

(<*) :: ParseT a m a0 -> ParseT a m b -> ParseT a m a0

Monad m => Functor (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

fmap :: (a0 -> b) -> ParseT a m a0 -> ParseT a m b

(<$) :: a0 -> ParseT a m b -> ParseT a m a0

Monad m => Monad (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

(>>=) :: ParseT a m a0 -> (a0 -> ParseT a m b) -> ParseT a m b

(>>) :: ParseT a m a0 -> ParseT a m b -> ParseT a m b

return :: a0 -> ParseT a m a0

Monad m => MonadPlus (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

mzero :: ParseT a m a0 #

mplus :: ParseT a m a0 -> ParseT a m a0 -> ParseT a m a0 #

Monad m => MonadReader ([a], [a]) (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

ask :: ParseT a m ([a], [a])

local :: (([a], [a]) -> ([a], [a])) -> ParseT a m a0 -> ParseT a m a0

reader :: (([a], [a]) -> a0) -> ParseT a m a0

Monad m => MonadState ([a], [a]) (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

get :: ParseT a m ([a], [a])

put :: ([a], [a]) -> ParseT a m ()

state :: (([a], [a]) -> (a0, ([a], [a]))) -> ParseT a m a0

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 #

class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type) where #

Minimal complete definition

Nothing

Methods

mzero :: m a #

mplus :: m a -> m a -> m a #

Instances

Instances details
MonadPlus P 
Instance details

Defined in Text.ParserCombinators.ReadP

Methods

mzero :: P a #

mplus :: P a -> P a -> P a #

MonadPlus ReadP 
Instance details

Defined in Text.ParserCombinators.ReadP

Methods

mzero :: ReadP a #

mplus :: ReadP a -> ReadP a -> ReadP a #

MonadPlus IO 
Instance details

Defined in GHC.Base

Methods

mzero :: IO a #

mplus :: IO a -> IO a -> IO a #

MonadPlus Maybe 
Instance details

Defined in GHC.Base

Methods

mzero :: Maybe a #

mplus :: Maybe a -> Maybe a -> Maybe a #

MonadPlus [] 
Instance details

Defined in GHC.Base

Methods

mzero :: [a] #

mplus :: [a] -> [a] -> [a] #

(ArrowApply a, ArrowPlus a) => MonadPlus (ArrowMonad a) 
Instance details

Defined in Control.Arrow

Methods

mzero :: ArrowMonad a a0 #

mplus :: ArrowMonad a a0 -> ArrowMonad a a0 -> ArrowMonad a a0 #

MonadPlus (Parse a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

mzero :: Parse a a0 #

mplus :: Parse a a0 -> Parse a a0 -> Parse a a0 #

MonadPlus m => MonadPlus (Kleisli m a) 
Instance details

Defined in Control.Arrow

Methods

mzero :: Kleisli m a a0 #

mplus :: Kleisli m a a0 -> Kleisli m a a0 -> Kleisli m a a0 #

MonadPlus f => MonadPlus (Ap f) 
Instance details

Defined in Data.Monoid

Methods

mzero :: Ap f a #

mplus :: Ap f a -> Ap f a -> Ap f a #

Monad m => MonadPlus (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

mzero :: ParseT a m a0 #

mplus :: ParseT a m a0 -> ParseT a m a0 -> ParseT a m a0 #

(Monad m, Error e) => MonadPlus (ErrorT e m) 
Instance details

Defined in Control.Monad.Trans.Error

Methods

mzero :: ErrorT e m a #

mplus :: ErrorT e m a -> ErrorT e m a -> ErrorT e m a #

MonadPlus m => MonadPlus (ReaderT r m) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

mzero :: ReaderT r m a #

mplus :: ReaderT r m a -> ReaderT r m a -> ReaderT r m a #

MonadPlus m => MonadPlus (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

mzero :: StateT s m a #

mplus :: StateT s m a -> StateT s m a -> StateT s m a #

(Monoid w, MonadPlus m) => MonadPlus (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

mzero :: WriterT w m a #

mplus :: WriterT w m a -> WriterT w m a -> WriterT w m a #

liftM :: Monad m => (a1 -> r) -> m a1 -> m r #

ap :: Monad m => m (a -> b) -> m a -> m b #

class MonadTrans (t :: (Type -> Type) -> Type -> Type) where #

Methods

lift :: Monad m => m a -> t m a #

Instances

Instances details
MonadTrans (ParseT a) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

lift :: Monad m => m a0 -> ParseT a m a0 #

MonadTrans (ErrorT e) 
Instance details

Defined in Control.Monad.Trans.Error

Methods

lift :: Monad m => m a -> ErrorT e m a #

MonadTrans (ReaderT r) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

lift :: Monad m => m a -> ReaderT r m a #

MonadTrans (StateT s) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

lift :: Monad m => m a -> StateT s m a #

Monoid w => MonadTrans (WriterT w) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

lift :: Monad m => m a -> WriterT w m a #

class Monad m => MonadIO (m :: Type -> Type) where #

Methods

liftIO :: IO a -> m a #

Instances

Instances details
MonadIO IO 
Instance details

Defined in Control.Monad.IO.Class

Methods

liftIO :: IO a -> IO a #

MonadIO m => MonadIO (ParseT a m) Source # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

liftIO :: IO a0 -> ParseT a m a0 #

(Error e, MonadIO m) => MonadIO (ErrorT e m) 
Instance details

Defined in Control.Monad.Trans.Error

Methods

liftIO :: IO a -> ErrorT e m a #

MonadIO m => MonadIO (ReaderT r m) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

liftIO :: IO a -> ReaderT r m a #

MonadIO m => MonadIO (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

liftIO :: IO a -> StateT s m a #

(Monoid w, MonadIO m) => MonadIO (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

liftIO :: IO a -> WriterT w m a #

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 #

beginningOfInput :: (MonadPlus m, MonadParse a m) => b -> m b 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 #