- unfoldLoops :: GExtendedContextFreeGrammar phi t r rr -> GContextFreeGrammar phi t r rr
- unfoldLoopsP :: GPenaltyExtendedContextFreeGrammar phi t r rr -> GPenaltyContextFreeGrammar phi t r rr
- unfoldLoopsRule :: ExtendedContextFreeRule phi r t v -> ContextFreeRule phi r t v
- replaceLoopsRule :: (ProductionRule p, EpsProductionRule p, RecProductionRule p phi r, TokenProductionRule p t) => ExtendedContextFreeRule phi r t v -> (forall ix. phi ix -> p [r ix]) -> (forall ix. phi ix -> p [r ix]) -> p v
Documentation
unfoldLoops :: GExtendedContextFreeGrammar phi t r rr -> GContextFreeGrammar phi t r rrSource
unfoldLoopsP :: GPenaltyExtendedContextFreeGrammar phi t r rr -> GPenaltyContextFreeGrammar phi t r rrSource
unfoldLoopsRule :: ExtendedContextFreeRule phi r t v -> ContextFreeRule phi r t vSource
replaceLoopsRule :: (ProductionRule p, EpsProductionRule p, RecProductionRule p phi r, TokenProductionRule p t) => ExtendedContextFreeRule phi r t v -> (forall ix. phi ix -> p [r ix]) -> (forall ix. phi ix -> p [r ix]) -> p vSource
Replace loops in a given rule by rules provided
in two provided sets of rules, replacing calls to
manyRef
by the corresponding rule from the first
set, and calls to manyRef
by the corresponding rule
from the second set. You likely don't need this
and should be looking at unfoldLoops
or
unfoldLoopsRule
instead.