ptera-core-0.1.0.0: A parser generator
Safe HaskellNone
LanguageHaskell2010

Language.Parser.Ptera.Pipeline.PEG2LAPEG

Documentation

peg2LaPeg :: Enum start => T start varDoc altDoc a -> Except (T VarNum) (T start varDoc altDoc a) Source #

type Pipeline start varDoc altDoc a = ExceptT (T VarNum) (State (Context start varDoc altDoc a)) Source #

data Context start varDoc altDoc a Source #

Constructors

Context 

pegInitialPipeline :: Enum start => start -> VarNum -> Pipeline start varDoc altDoc a () Source #

pegRuleStackPipeline :: Pipeline start varDoc altDoc a () Source #

pegVarPipeline :: VarNum -> Pipeline start varDoc altDoc a (VarNum, HeadRange) Source #

pegAltHeadRangePipeline :: Alt altDoc a -> Pipeline start varDoc altDoc a HeadRange Source #

pegRulePipeline :: VarNum -> HeadRange -> [Alt altDoc a] -> Pipeline start varDoc altDoc a () Source #

pegAltPipeline :: VarNum -> Alt altDoc a -> Pipeline start varDoc altDoc a AltNum Source #

pegUnitPipeline :: Unit -> Pipeline start varDoc altDoc a (Unit, HeadRange) Source #

getNewVar :: VarNum -> Pipeline start varDoc altDoc a VarNum Source #

startUpdateAvailableRuleRange :: VarNum -> Pipeline start varDoc altDoc a () Source #

saveNewRuleRange :: VarNum -> HeadRange -> Pipeline start varDoc altDoc a () Source #

getAvailableVar :: VarNum -> Pipeline start varDoc altDoc a (Maybe VarNum) Source #

popUpdateRuleItem :: Pipeline start varDoc altDoc a (Maybe (VarNum, HeadRange, [Alt altDoc a])) Source #

pushUpdateRuleItem :: VarNum -> HeadRange -> [Alt altDoc a] -> Pipeline start varDoc altDoc a () Source #

getCtx :: (Context start varDoc altDoc a -> r) -> Pipeline start varDoc altDoc a r Source #

throwV :: VarNum -> Pipeline start varDoc altDoc a r Source #

liftBuilder :: T start varDoc altDoc a Identity r -> Pipeline start varDoc altDoc a r Source #