Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data IRec c i x where Source #
A syntactic variable that does not memoize but simplify recurses. One
needs to be somewhat careful when using this one. ITbl
performs
memoization to perform DP in polynomial time (roughly speaking). If the
rules for an IRec
are of a particular type, they will exponential
running time. Things like X -> X X
are, for example, rather bad. Rules
of the type X -> Y, Y -> Z
are ok, if Y
is an IRec
since we just
continue on. The same holds for Y -> a Y
. Basically, things are safe
if there is only a (small) constant number of parses of an IRec
synvar.
IRec :: {..} -> IRec c i x | |
|
MutateCell CFG ts im i => MutateCell CFG ((:.) ts (TwIRec im c i x)) im i Source # | |
(Applicative mB, Monad mB, Element ls ((:.) is i), TableStaticVar ((:.) us u) ((:.) cs c) ((:.) is i), AddIndexDense (Elm ls ((:.) is i)) ((:.) us u) ((:.) cs c) ((:.) is i), MkStream mB ls ((:.) is i)) => MkStream mB ((:!:) ls (TwIRecBt ((:.) cs c) ((:.) us u) x mF mB r)) ((:.) is i) Source # | |
(Functor m, Monad m, Element ls ((:.) is i), TableStaticVar ((:.) us u) ((:.) cs c) ((:.) is i), AddIndexDense (Elm ls ((:.) is i)) ((:.) us u) ((:.) cs c) ((:.) is i), MkStream m ls ((:.) is i)) => MkStream m ((:!:) ls (TwIRec m ((:.) cs c) ((:.) us u) x)) ((:.) is i) Source # | |
(Monad mB, IndexStream i, (~) * i j, (~) (* -> *) m mB) => Axiom (TW (Backtrack (TwIRec mF c i x) mF mB) (j -> j -> m [r])) Source # | |
TSBO ts => TSBO ((:.) ts (TwIRec Id c i x)) Source # | |
TableOrder ts => TableOrder ((:.) ts (TwIRec im c i x)) Source # |
|
Element ls i => Element ((:!:) ls (TwIRecBt c u x mF mB r)) i Source # | |
Element ls i => Element ((:!:) ls (TwIRec m c u x)) i Source # | |
(Monad m, IndexStream i) => Axiom (TwIRec m c i x) Source # | |
Build (TwIRec m c i x) Source # | |
GenBacktrackTable (TwIRec mF c i x) mF mB Source # | |
Build (TwIRecBt c i x mF mB r) Source # | |
type AxiomStream (TW (Backtrack (TwIRec mF c i x) mF mB) (j -> j -> m [r])) Source # | |
data Elm ((:!:) ls (TwIRecBt c u x mF mB r)) Source # | |
data Elm ((:!:) ls (TwIRec m c u x)) Source # | |
type Arg ((:!:) ls (TwIRecBt c u x mF mB r)) Source # | |
type Arg ((:!:) ls (TwIRec m c u x)) Source # | |
type BacktrackIndex (TwIRec mF c i x) Source # | |
type AxiomStream (TwIRec m c i x) Source # | |
type Stack (TwIRec m c i x) Source # | |
type TermArg (TwIRec m c i x) Source # | |
data Backtrack (TwIRec mF c i x) mF Source # | |
type Stack (TwIRecBt c i x mF mB r) Source # | |