Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data Str (linked :: Maybe Symbol) (minSz :: Nat) (maxSz :: Maybe Nat) v x where Source #
A Str
wraps an input vector and provides type-level annotations on
linked Str
's, their minimal and maximal size.
If linked ∷ Maybe Symbol
is set to Just aName
, then all Str
's that are
part of the same rule share their size information. This allows rules of the
kind X -> a Y b
where a,b
have a common maximal size.
minSz
and maxSz
provide minimal and maximal parser width, if set.
TODO consider if maxSz
could do with just Nat
Instances
(TermStream m (Z :. pos) (TermSymbol M (Str linked minSz maxSz v x)) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos (Str linked minSz maxSz v x) (PointL i), TermStaticVar pos (Str linked minSz maxSz v x) (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: Str linked minSz maxSz v x) (PointL i) Source # | |
TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (Str (Nothing :: Maybe Symbol) minSz (Nothing :: Maybe Nat) v x)) s (is :. PointL I) Source # | Note that the |
Defined in ADP.Fusion.PointL.Term.Str | |
KnownNat minSz => TermStaticVar (IStatic d :: Type) (Str (Nothing :: Maybe Symbol) minSz (Nothing :: Maybe Nat) v x) (PointL I) Source # | |
(Show i, Show (RunningIndex i), Show (v x), Show (Elm ls i)) => Show (Elm (ls :!: Str linked minSz maxSz v x) i) Source # | |
(Element ls i, Vector v x) => Element (ls :!: Str linked minSz maxSz v x) i Source # | |
Build (Str linked minSz maxSz v x) Source # | |
data Elm (ls :!: Str linked minSz maxSz v x) i Source # | |
Defined in ADP.Fusion.Core.Term.Str | |
type Arg (ls :!: Str linked minSz maxSz v x) Source # | |
type LeftPosTy (IVariable d) (Str linked minSz maxSz v x) (PointL I) Source # | |
type LeftPosTy (IStatic d) (Str linked minSz maxSz v x) (PointL I) Source # | |
type Stack (Str linked minSz maxSz v x) Source # | |
type TermArg (Str linked minSz maxSz v x) Source # | |
Defined in ADP.Fusion.Core.Term.Str |