simple-parser-0.12.0: Simple parser combinators
Safe HaskellNone
LanguageHaskell2010

SimpleParser.Examples.Direct.Ast

Description

Parses Sexp-formatted ASTs

Documentation

type AstParserM s e a = Parser AstLabel s e a Source #

data CtorRes e a Source #

Constructors

CtorResFail !String 
CtorResErr !e 
CtorResVal !a 

Instances

Instances details
MonadError e (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

throwError :: e -> CtorRes e a #

catchError :: CtorRes e a -> (e -> CtorRes e a) -> CtorRes e a #

Monad (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

(>>=) :: CtorRes e a -> (a -> CtorRes e b) -> CtorRes e b #

(>>) :: CtorRes e a -> CtorRes e b -> CtorRes e b #

return :: a -> CtorRes e a #

Functor (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

fmap :: (a -> b) -> CtorRes e a -> CtorRes e b #

(<$) :: a -> CtorRes e b -> CtorRes e a #

MonadFail (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

fail :: String -> CtorRes e a #

Applicative (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

pure :: a -> CtorRes e a #

(<*>) :: CtorRes e (a -> b) -> CtorRes e a -> CtorRes e b #

liftA2 :: (a -> b -> c) -> CtorRes e a -> CtorRes e b -> CtorRes e c #

(*>) :: CtorRes e a -> CtorRes e b -> CtorRes e b #

(<*) :: CtorRes e a -> CtorRes e b -> CtorRes e a #

Foldable (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

fold :: Monoid m => CtorRes e m -> m #

foldMap :: Monoid m => (a -> m) -> CtorRes e a -> m #

foldMap' :: Monoid m => (a -> m) -> CtorRes e a -> m #

foldr :: (a -> b -> b) -> b -> CtorRes e a -> b #

foldr' :: (a -> b -> b) -> b -> CtorRes e a -> b #

foldl :: (b -> a -> b) -> b -> CtorRes e a -> b #

foldl' :: (b -> a -> b) -> b -> CtorRes e a -> b #

foldr1 :: (a -> a -> a) -> CtorRes e a -> a #

foldl1 :: (a -> a -> a) -> CtorRes e a -> a #

toList :: CtorRes e a -> [a] #

null :: CtorRes e a -> Bool #

length :: CtorRes e a -> Int #

elem :: Eq a => a -> CtorRes e a -> Bool #

maximum :: Ord a => CtorRes e a -> a #

minimum :: Ord a => CtorRes e a -> a #

sum :: Num a => CtorRes e a -> a #

product :: Num a => CtorRes e a -> a #

Traversable (CtorRes e) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

traverse :: Applicative f => (a -> f b) -> CtorRes e a -> f (CtorRes e b) #

sequenceA :: Applicative f => CtorRes e (f a) -> f (CtorRes e a) #

mapM :: Monad m => (a -> m b) -> CtorRes e a -> m (CtorRes e b) #

sequence :: Monad m => CtorRes e (m a) -> m (CtorRes e a) #

(Eq e, Eq a) => Eq (CtorRes e a) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

(==) :: CtorRes e a -> CtorRes e a -> Bool #

(/=) :: CtorRes e a -> CtorRes e a -> Bool #

(Ord e, Ord a) => Ord (CtorRes e a) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

compare :: CtorRes e a -> CtorRes e a -> Ordering #

(<) :: CtorRes e a -> CtorRes e a -> Bool #

(<=) :: CtorRes e a -> CtorRes e a -> Bool #

(>) :: CtorRes e a -> CtorRes e a -> Bool #

(>=) :: CtorRes e a -> CtorRes e a -> Bool #

max :: CtorRes e a -> CtorRes e a -> CtorRes e a #

min :: CtorRes e a -> CtorRes e a -> CtorRes e a #

(Show e, Show a) => Show (CtorRes e a) Source # 
Instance details

Defined in SimpleParser.Examples.Direct.Ast

Methods

showsPrec :: Int -> CtorRes e a -> ShowS #

show :: CtorRes e a -> String #

showList :: [CtorRes e a] -> ShowS #

data Ctor s e t where Source #

Constructors

Ctor0 :: CtorRes e t -> Ctor s e t 
Ctor1 :: (a -> CtorRes e t) -> AstParserM s e a -> Ctor s e t 
Ctor2 :: (a -> b -> CtorRes e t) -> AstParserM s e a -> AstParserM s e b -> Ctor s e t 
Ctor3 :: (a -> b -> c -> CtorRes e t) -> AstParserM s e a -> AstParserM s e b -> AstParserM s e c -> Ctor s e t 
Ctor4 :: (a -> b -> c -> d -> CtorRes e t) -> AstParserM s e a -> AstParserM s e b -> AstParserM s e c -> AstParserM s e d -> Ctor s e t 
Ctor5 :: (a -> b -> c -> d -> x -> CtorRes e t) -> AstParserM s e a -> AstParserM s e b -> AstParserM s e c -> AstParserM s e d -> AstParserM s e x -> Ctor s e t 
CtorN :: (Seq a -> CtorRes e t) -> AstParserM s e a -> Ctor s e t 

type CtorDefns s e t = Map Text (Ctor s e t) Source #

astParser :: AstParserC s => AstParserM s e t -> (AstParserM s e t -> CtorDefns s e t) -> AstParserM s e t Source #