maam-0.1.0.0: A monadic framework for abstract interpretation.

Safe HaskellNone
LanguageHaskell2010

FP.Parser

Documentation

class (Monad m, MonadZero m, MonadConcat m, MonadStateE (ParserState t) m, Eq t, Pretty t) => MonadParser t m | m -> t Source

Instances

(Eq t, Pretty t) => MonadParser t (Parser t) 

end :: forall t m. MonadParser t m => m () Source

final :: MonadParser t m => m a -> m a Source

satisfies :: forall t m. (MonadParser t m, Eq t) => (t -> Bool) -> m t Source

lit :: MonadParser t m => t -> m t Source

word :: MonadParser t m => [t] -> m [t] Source

data Inf m a Source

Constructors

Inf (m (a -> a -> a)) 

infL :: forall m a. Prism (Inf m a) (m (a -> a -> a)) Source

data InfL m a Source

Constructors

InfL (m (a -> a -> a)) 
Pre (m (a -> a)) 

preL :: forall m a. Prism (InfL m a) (m (a -> a)) Source

infLL :: forall m a. Prism (InfL m a) (m (a -> a -> a)) Source

data InfR m a Source

Constructors

InfR (m (a -> a -> a)) 
Post (m (a -> a)) 

postL :: forall m a. Prism (InfR m a) (m (a -> a)) Source

infRL :: forall m a. Prism (InfR m a) (m (a -> a -> a)) Source

data Mix m a Source

Constructors

Mix (Inf m a) 
MixL (InfL m a) 
MixR (InfR m a) 

mixRL :: forall m a. Prism (Mix m a) (InfR m a) Source

mixLL :: forall m a. Prism (Mix m a) (InfL m a) Source

mixL :: forall m a. Prism (Mix m a) (Inf m a) Source

inf' :: Monad m => (a -> b -> a -> a) -> m b -> m (a -> a -> a) Source

inf :: Monad m => (a -> b -> a -> a) -> m b -> Mix m a Source

infl :: Monad m => (a -> b -> a -> a) -> m b -> Mix m a Source

infr :: Monad m => (a -> b -> a -> a) -> m b -> Mix m a Source

pre :: Monad m => (b -> a -> a) -> m b -> Mix m a Source

post :: Monad m => (a -> b -> a) -> m b -> Mix m a Source

between :: MonadParser t m => m () -> m () -> m a -> m a Source

build :: MonadParser t m => [m a] -> Map Int [Mix m a] -> m a Source

prePostBumped :: MonadParser t m => [Mix m a] -> m a -> m a Source

buildMix :: MonadParser t m => m a -> [Mix m a] -> m a Source

buildMixInfL :: MonadParser t m => m a -> [Mix m a] -> m (a -> a) Source

buildMixInfR :: MonadParser t m => m a -> [Mix m a] -> m (a -> a) Source

runParser :: [t] -> Parser t a -> [(a, ParserState t)] Source

tokenize :: Parser c a -> [c] -> [c] :+: [a] Source

data ParseError c t a Source

Constructors

LexingError [c] 
ParsingError [t] 
AmbiguousParse ([t], [a]) 

Instances

(Pretty [c0], Pretty [t0], Pretty ([t0], [a0])) => Pretty (ParseError c t a) 

parse :: forall c t a. (Pretty c, Pretty t) => Parser c t -> (t -> Bool) -> Parser t a -> [c] -> ParseError c t a :+: a Source