grammar-combinators-0.2.2: A parsing library of context-free grammar combinators.

Text.GrammarCombinators.Transform.UniformPaull

Synopsis

Documentation

data UPDomain phi ix whereSource

Constructors

UPBase :: phi ix -> UPDomain phi (UPBaseIx ix) 
UPHead :: phi ix -> UPDomain phi (UPHeadIx ix) 
UPTail :: phi ix -> UPDomain phi (UPTailIx ix) 

Instances

MemoFam phi => MemoFam (UPDomain phi) 
FoldFam phi => FoldFam (UPDomain phi) 
ShowFam phi => ShowFam (UPDomain phi) 
EqFam phi => EqFam (UPDomain phi) 
Domain phi => Domain (UPDomain phi) 
LiftFam phi => LiftFam (UPDomain phi) 
DomainMap (UPDomain phi) phi UPTailIx 
DomainMap (UPDomain phi) phi UPHeadIx 
DomainMap (UPDomain phi) phi UPBaseIx 
PenaltyProductionRule p => PenaltyProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) 
EpsProductionRule p => EpsProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) 
LiftableProductionRule p => LiftableProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) 
(ProductionRule p, LiftableProductionRule p) => ProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) 
(TokenProductionRule p t, ProductionRule p) => TokenProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) t 
(EqFam phi, LiftableProductionRule p, LoopProductionRule p (UPDomain phi) (UPValue r)) => LoopProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) phi r 
(RecProductionRule p (UPDomain phi) (UPValue r), LiftableProductionRule p, EqFam phi, LoopProductionRule p (UPDomain phi) (UPValue r)) => RecProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) phi r 

data UPBaseIx ix Source

Instances

DomainMap (UPDomain phi) phi UPBaseIx 
Show (r ix) => Show (UPValue r (UPBaseIx ix)) 

data UPHeadIx ix Source

Instances

DomainMap (UPDomain phi) phi UPHeadIx 
Show (r ix) => Show (UPValue r (UPHeadIx ix)) 

data UPTailIx ix Source

Instances

data family UPValue r ix Source

unUPBV :: UPValue r (UPBaseIx ix) -> r ixSource

unUPHV :: UPValue r (UPHeadIx ix) -> r ixSource

unUPTV :: UPValue r (UPTailIx ix) -> r ix -> r ixSource

transformUniformPaull :: forall phi t r. Domain phi => ProcessingContextFreeGrammar phi t r -> ProcessingExtendedContextFreeGrammar (UPDomain phi) t (UPValue r)Source

Apply a uniform variant of the classic Paull transformation to a given grammar, removing direct and indirect left recursion.

transformUniformPaullE :: forall phi t r. Domain phi => ProcessingExtendedContextFreeGrammar phi t r -> ProcessingExtendedContextFreeGrammar (UPDomain phi) t (UPValue r)Source

Apply a uniform variant of the classic Paull transformation to a given extended grammar, removing direct and indirect left recursion.

transformUniformPaullLE :: forall phi t r. Domain phi => ProcessingLExtendedContextFreeGrammar phi t r -> ProcessingLExtendedContextFreeGrammar (UPDomain phi) t (UPValue r)Source

Apply a uniform variant of the classic Paull transformation to a given extended liftable grammar, removing direct and indirect left recursion.