mtlparse-0.1.4.0: parse library using mtl package

Safe HaskellSafe
LanguageHaskell98

Text.ParserCombinators.MTLParse

Contents

Synopsis

MonadParse class

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

Minimal complete definition

spot, spotBack, still, parseNot, getHere, putHere, noBacktrack

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) 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 #

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 #

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 #

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) 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 (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 #

fail :: String -> Parse a a0 #

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 #

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 #

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] #

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 #

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 #

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 #

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) 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 #

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 #

fail :: String -> 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 => 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 #

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 => 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 => 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 #

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 #

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 #

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

In many situations, the liftM operations can be replaced by uses of ap, which promotes function application.

return f `ap` x1 `ap` ... `ap` xn

is equivalent to

liftMn f x1 x2 ... xn

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

Promote a function to a monad.

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

Monads that also support choice and failure.

Methods

mzero :: m a #

The identity of mplus. It should also satisfy the equations

mzero >>= f  =  mzero
v >> mzero   =  mzero

The default definition is

mzero = empty

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

An associative operation. The default definition is

mplus = (<|>)
Instances
MonadPlus []

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mzero :: [a] #

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

MonadPlus Maybe

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mzero :: Maybe a #

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

MonadPlus IO

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

mzero :: IO a #

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

MonadPlus ReadP

Since: base-2.1

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

mzero :: ReadP a #

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

MonadPlus P

Since: base-2.1

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

mzero :: P a #

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

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

Since: base-4.6.0.0

Instance details

Defined in Control.Arrow

Methods

mzero :: ArrowMonad a a0 #

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

Monad m => MonadPlus (MaybeT m) 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

mzero :: MaybeT m a #

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

MonadPlus (Parse a) # 
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 (IdentityT m) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

mzero :: IdentityT m a #

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

(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 #

(Monad m, Monoid e) => MonadPlus (ExceptT e m) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

mzero :: ExceptT e m a #

mplus :: ExceptT e m a -> ExceptT e m a -> ExceptT e 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 #

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

Defined in Control.Monad.Trans.State.Strict

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 #

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

Defined in Control.Monad.Trans.Writer.Strict

Methods

mzero :: WriterT w m a #

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

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

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 #

(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

mzero :: RWST r w s m a #

mplus :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

mzero :: RWST r w s m a #

mplus :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

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

Monads in which IO computations may be embedded. Any monad built by applying a sequence of monad transformers to the IO monad will be an instance of this class.

Instances should satisfy the following laws, which state that liftIO is a transformer of monads:

Minimal complete definition

liftIO

Methods

liftIO :: IO a -> m a #

Lift a computation from the IO monad.

Instances
MonadIO IO

Since: base-4.9.0.0

Instance details

Defined in Control.Monad.IO.Class

Methods

liftIO :: IO a -> IO a #

MonadIO m => MonadIO (MaybeT m) 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

liftIO :: IO a -> MaybeT m a #

MonadIO m => MonadIO (IdentityT m) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

liftIO :: IO a -> IdentityT m a #

(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 (ExceptT e m) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

liftIO :: IO a -> ExceptT e 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 #

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

Defined in Control.Monad.Trans.State.Strict

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 #

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

Defined in Control.Monad.Trans.Writer.Strict

Methods

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

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

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

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

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

Defined in Control.Monad.Trans.Reader

Methods

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

(Monoid w, MonadIO m) => MonadIO (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

liftIO :: IO a -> RWST r w s m a #

(Monoid w, MonadIO m) => MonadIO (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

liftIO :: IO a -> RWST r w s m a #

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

The class of monad transformers. Instances should satisfy the following laws, which state that lift is a monad transformation:

Minimal complete definition

lift

Methods

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

Lift a computation from the argument monad to the constructed monad.

Instances
MonadTrans MaybeT 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

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

MonadTrans (IdentityT :: (* -> *) -> * -> *) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

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

MonadTrans (ErrorT e) 
Instance details

Defined in Control.Monad.Trans.Error

Methods

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

MonadTrans (ExceptT e) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

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

MonadTrans (StateT s) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

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

MonadTrans (StateT s) 
Instance details

Defined in Control.Monad.Trans.State.Strict

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 #

Monoid w => MonadTrans (WriterT w) 
Instance details

Defined in Control.Monad.Trans.Writer.Strict

Methods

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

MonadTrans (ParseT a) # 
Instance details

Defined in Text.ParserCombinators.MTLParse.MTLParseCore

Methods

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

MonadTrans (ReaderT r :: (* -> *) -> * -> *) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

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

Monoid w => MonadTrans (RWST r w s) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

lift :: Monad m => m a -> RWST r w s m a #

Monoid w => MonadTrans (RWST r w s) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

lift :: Monad m => m a -> RWST r w s 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 #