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

Safe HaskellNone

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

LiftFam phi => LiftFam (UPDomain phi) 
(FoldFam (UPDomain phi), ShowFam (UPDomain phi), EqFam (UPDomain phi), MemoFam (UPDomain phi), Domain phi) => Domain (UPDomain phi) 
EqFam phi => EqFam (UPDomain phi) 
ShowFam phi => ShowFam (UPDomain phi) 
FoldFam phi => FoldFam (UPDomain phi) 
MemoFam phi => MemoFam (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) 
(LiftableProductionRule (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) 
(ProductionRule (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 
(ProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t), LiftableProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t), RecProductionRule (TransformUPWrapper p surrIx (UPDomain phi) (UPValue r) phi ixT r t) phi r, 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.