AspectAG-0.5.0.0: Strongly typed Attribute Grammars implemented using type-level programming.

Safe HaskellSafe
LanguageHaskell2010

Language.Grammars.AspectAG.RecordInstances

Contents

Synopsis

Documentation

data Att Source #

Constructors

Att Symbol Type 
Instances
(LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), Use att prd nts a cs) => Use' False att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy False -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(Require (OpLookup AttReco att attr) (((Text "looking up attribute " :<>: ShowT att) :$$: (Text "on " :<>: ShowT attr)) ': ([] :: [ErrorMessage])), ReqR (OpLookup AttReco att attr) ~ a, Use att prd nts a cs, LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), WrapField (ChiReco prd) attr ~ Attribution attr) => Use' True att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy True -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

Use prd att nts a ([] :: [(Child, [(Att, Type)])]) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi :: Label prd -> Label att -> KList nts -> (a -> a -> a) -> ChAttsRec att [] -> Maybe a Source #

(HMember' nt nts, HMemberRes' nt nts ~ mnts, Use' mnts att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs)) => Use att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi :: Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(RequireR (OpLookup (ChiReco prd) (Chi ch prd nt) chi) ctx (Attribution r), RequireR (OpLookup AttReco (Att att t) r) ctx t', RequireEq prd prd' ctx, RequireEq t t' ctx, RequireEq (Chi ch prd nt) (Chi ch prd (Left (NT n) :: Either NT T)) ctx) => At (Chi ch prd nt :: Child) (Att att t :: Att) (Reader (Proxy ctx, Fam prd' chi par)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ResAt (Chi ch prd nt) (Att att t) (Reader (Proxy ctx, Fam prd' chi par)) :: Type Source #

Methods

at :: Label (Chi ch prd nt) -> Label (Att att t) -> Reader (Proxy ctx, Fam prd' chi par) (ResAt (Chi ch prd nt) (Att att t) (Reader (Proxy ctx, Fam prd' chi par))) Source #

(RequireR (OpLookup AttReco (Att att t) par) ctx t', RequireEq t t' ctx) => At Lhs (Att att t :: Att) (Reader (Proxy ctx, Fam prd chi par)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ResAt Lhs (Att att t) (Reader (Proxy ctx, Fam prd chi par)) :: Type Source #

Methods

at :: Label Lhs -> Label (Att att t) -> Reader (Proxy ctx, Fam prd chi par) (ResAt Lhs (Att att t) (Reader (Proxy ctx, Fam prd chi par))) Source #

(Empties fcr prd, chi ~ Chi ch prd nt, LabelSet ((,) chi ([] :: [(Att, Type)]) ': EmptiesR fcr)) => Empties ((,) chi (Attribution e -> Attribution a) ': fcr) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type EmptiesR ((chi, Attribution e -> Attribution a) ': fcr) :: [(Child, [(Att, Type)])] Source #

Methods

empties :: Record ((chi, Attribution e -> Attribution a) ': fcr) -> ChAttsRec prd (EmptiesR ((chi, Attribution e -> Attribution a) ': fcr)) Source #

(lch ~ Chi l prd nt, Kn fc prd, LabelSet ((,) lch sch ': SCh fc), LabelSet ((,) lch ich ': ICh fc)) => Kn ((,) lch (Attribution ich -> Attribution sch) ': fc) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ICh ((lch, Attribution ich -> Attribution sch) ': fc) :: [(Child, [(Att, Type)])] Source #

type SCh ((lch, Attribution ich -> Attribution sch) ': fc) :: [(Child, [(Att, Type)])] Source #

Methods

kn :: Record ((lch, Attribution ich -> Attribution sch) ': fc) -> ChAttsRec prd (ICh ((lch, Attribution ich -> Attribution sch) ': fc)) -> ChAttsRec prd (SCh ((lch, Attribution ich -> Attribution sch) ': fc)) Source #

type ResAt (Chi ch prd nt :: Child) (Att att t :: Att) (Reader (Proxy ctx, Fam prd' chi par)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ResAt (Chi ch prd nt :: Child) (Att att t :: Att) (Reader (Proxy ctx, Fam prd' chi par)) = t
type ShowT (Att l t :: Att) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowT (Att l t :: Att) = ((Text "Attribute " :<>: Text l) :<>: Text ":") :<>: ShowT t
type ResAt Lhs (Att att t :: Att) (Reader (Proxy ctx, Fam prd chi par)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ResAt Lhs (Att att t :: Att) (Reader (Proxy ctx, Fam prd chi par)) = t
type WrapField (ChiReco prd :: Type) (v :: [(Att, Type)]) Source #

Field type

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type WrapField (ChiReco prd :: Type) (v :: [(Att, Type)]) = Attribution v
type EmptiesR ((,) chi (Attribution e -> Attribution a) ': fcr) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type EmptiesR ((,) chi (Attribution e -> Attribution a) ': fcr) = (,) chi ([] :: [(Att, Type)]) ': EmptiesR fcr
type ICh ((,) lch (Attribution ich -> Attribution sch) ': fc) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ICh ((,) lch (Attribution ich -> Attribution sch) ': fc) = (,) lch ich ': ICh fc
type SCh ((,) lch (Attribution ich -> Attribution sch) ': fc) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type SCh ((,) lch (Attribution ich -> Attribution sch) ': fc) = (,) lch sch ': SCh fc

data Prod Source #

Constructors

Prd Symbol NT 
Instances
MapCtxAsp ([] :: [(Prod, Type)]) ctx ctx' Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ResMapCtx [] ctx ctx' :: [(Prod, Type)] Source #

Methods

mapCtxRec :: (Proxy ctx -> Proxy ctx') -> Aspect [] -> Aspect (ResMapCtx [] ctx ctx') Source #

(RequireR (OpComAsp al ar) ctx (Aspect ar'), Require (OpComRA ctx prd sc ip ic sp ic' sp' ar') ctx) => Require (OpComAsp al ((,) prd (CRule ctx prd sc ip ic sp ic' sp') ': ar)) ctx Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ReqR (OpComAsp al ((prd, CRule ctx prd sc ip ic sp ic' sp') ': ar)) :: Type Source #

Methods

req :: Proxy ctx -> OpComAsp al ((prd, CRule ctx prd sc ip ic sp ic' sp') ': ar) -> ReqR (OpComAsp al ((prd, CRule ctx prd sc ip ic sp ic' sp') ': ar)) Source #

Require (OpComAsp al ([] :: [(Prod, Type)])) ctx Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ReqR (OpComAsp al []) :: Type Source #

Methods

req :: Proxy ctx -> OpComAsp al [] -> ReqR (OpComAsp al []) Source #

(MapCtxAsp r ctx ctx', ResMapCtx r ctx ctx' ~ r', LabelSetF ((,) l (CRule ctx prd sc ip ic sp ic' sp') ': r') ~ True) => MapCtxAsp ((,) l (CRule ctx' prd sc ip ic sp ic' sp') ': r) ctx ctx' Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ResMapCtx ((l, CRule ctx' prd sc ip ic sp ic' sp') ': r) ctx ctx' :: [(Prod, Type)] Source #

Methods

mapCtxRec :: (Proxy ctx -> Proxy ctx') -> Aspect ((l, CRule ctx' prd sc ip ic sp ic' sp') ': r) -> Aspect (ResMapCtx ((l, CRule ctx' prd sc ip ic sp ic' sp') ': r) ctx ctx') Source #

type ShowT (Prd l nt :: Prod) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowT (Prd l nt :: Prod) = (ShowT nt :<>: Text "::Production ") :<>: Text l
type ResMapCtx ([] :: [(Prod, Type)]) ctx ctx' Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ResMapCtx ([] :: [(Prod, Type)]) ctx ctx' = ([] :: [(Prod, Type)])
type ReqR (OpComAsp al ([] :: [(Prod, Type)])) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ReqR (OpComAsp al ([] :: [(Prod, Type)])) = Aspect al
type ReqR (OpComAsp al ((,) prd (CRule ctx prd sc ip ic sp ic' sp') ': ar)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ReqR (OpComAsp al ((,) prd (CRule ctx prd sc ip ic sp ic' sp') ': ar)) = ReqR (OpComRA ctx prd sc ip ic sp ic' sp' (UnWrap (ReqR (OpComAsp al ar)) :: [(Prod, Type)]))
type ResMapCtx ((,) l (CRule ctx' prd sc ip ic sp ic' sp') ': r) ctx ctx' Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ResMapCtx ((,) l (CRule ctx' prd sc ip ic sp ic' sp') ': r) ctx ctx' = (,) l (CRule ctx prd sc ip ic sp ic' sp') ': ResMapCtx r ctx ctx'

data Child Source #

Constructors

Chi Symbol Prod (Either NT T) 
Instances
(LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), Use att prd nts a cs) => Use' False att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy False -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(Require (OpLookup AttReco att attr) (((Text "looking up attribute " :<>: ShowT att) :$$: (Text "on " :<>: ShowT attr)) ': ([] :: [ErrorMessage])), ReqR (OpLookup AttReco att attr) ~ a, Use att prd nts a cs, LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), WrapField (ChiReco prd) attr ~ Attribution attr) => Use' True att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy True -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

Use prd att nts a ([] :: [(Child, [(Att, Type)])]) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi :: Label prd -> Label att -> KList nts -> (a -> a -> a) -> ChAttsRec att [] -> Maybe a Source #

(HMember' nt nts, HMemberRes' nt nts ~ mnts, Use' mnts att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs)) => Use att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi :: Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(RequireR (OpLookup (ChiReco prd) (Chi ch prd nt) chi) ctx (Attribution r), RequireR (OpLookup AttReco (Att att t) r) ctx t', RequireEq prd prd' ctx, RequireEq t t' ctx, RequireEq (Chi ch prd nt) (Chi ch prd (Left (NT n) :: Either NT T)) ctx) => At (Chi ch prd nt :: Child) (Att att t :: Att) (Reader (Proxy ctx, Fam prd' chi par)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ResAt (Chi ch prd nt) (Att att t) (Reader (Proxy ctx, Fam prd' chi par)) :: Type Source #

Methods

at :: Label (Chi ch prd nt) -> Label (Att att t) -> Reader (Proxy ctx, Fam prd' chi par) (ResAt (Chi ch prd nt) (Att att t) (Reader (Proxy ctx, Fam prd' chi par))) Source #

Empties ([] :: [(Child, Type)]) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type EmptiesR [] :: [(Child, [(Att, Type)])] Source #

Methods

empties :: Record [] -> ChAttsRec prd (EmptiesR []) Source #

Kn ([] :: [(Child, Type)]) prod Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ICh [] :: [(Child, [(Att, Type)])] Source #

type SCh [] :: [(Child, [(Att, Type)])] Source #

Methods

kn :: Record [] -> ChAttsRec prod (ICh []) -> ChAttsRec prod (SCh []) Source #

(Empties fcr prd, chi ~ Chi ch prd nt, LabelSet ((,) chi ([] :: [(Att, Type)]) ': EmptiesR fcr)) => Empties ((,) chi (Attribution e -> Attribution a) ': fcr) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type EmptiesR ((chi, Attribution e -> Attribution a) ': fcr) :: [(Child, [(Att, Type)])] Source #

Methods

empties :: Record ((chi, Attribution e -> Attribution a) ': fcr) -> ChAttsRec prd (EmptiesR ((chi, Attribution e -> Attribution a) ': fcr)) Source #

(lch ~ Chi l prd nt, Kn fc prd, LabelSet ((,) lch sch ': SCh fc), LabelSet ((,) lch ich ': ICh fc)) => Kn ((,) lch (Attribution ich -> Attribution sch) ': fc) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ICh ((lch, Attribution ich -> Attribution sch) ': fc) :: [(Child, [(Att, Type)])] Source #

type SCh ((lch, Attribution ich -> Attribution sch) ': fc) :: [(Child, [(Att, Type)])] Source #

Methods

kn :: Record ((lch, Attribution ich -> Attribution sch) ': fc) -> ChAttsRec prd (ICh ((lch, Attribution ich -> Attribution sch) ': fc)) -> ChAttsRec prd (SCh ((lch, Attribution ich -> Attribution sch) ': fc)) Source #

type ResAt (Chi ch prd nt :: Child) (Att att t :: Att) (Reader (Proxy ctx, Fam prd' chi par)) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ResAt (Chi ch prd nt :: Child) (Att att t :: Att) (Reader (Proxy ctx, Fam prd' chi par)) = t
type ShowT (Chi l p s :: Child) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowT (Chi l p s :: Child) = (((ShowT p :<>: Text "::Child ") :<>: Text l) :<>: Text ":") :<>: ShowT s
type EmptiesR ([] :: [(Child, Type)]) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type EmptiesR ([] :: [(Child, Type)]) = ([] :: [(Child, [(Att, Type)])])
type ICh ([] :: [(Child, Type)]) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ICh ([] :: [(Child, Type)]) = ([] :: [(Child, [(Att, Type)])])
type SCh ([] :: [(Child, Type)]) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type SCh ([] :: [(Child, Type)]) = ([] :: [(Child, [(Att, Type)])])
type EmptiesR ((,) chi (Attribution e -> Attribution a) ': fcr) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type EmptiesR ((,) chi (Attribution e -> Attribution a) ': fcr) = (,) chi ([] :: [(Att, Type)]) ': EmptiesR fcr
type ICh ((,) lch (Attribution ich -> Attribution sch) ': fc) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ICh ((,) lch (Attribution ich -> Attribution sch) ': fc) = (,) lch ich ': ICh fc
type SCh ((,) lch (Attribution ich -> Attribution sch) ': fc) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type SCh ((,) lch (Attribution ich -> Attribution sch) ': fc) = (,) lch sch ': SCh fc

data NT Source #

Constructors

NT Symbol 
Instances
(LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), Use att prd nts a cs) => Use' False att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy False -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(Require (OpLookup AttReco att attr) (((Text "looking up attribute " :<>: ShowT att) :$$: (Text "on " :<>: ShowT attr)) ': ([] :: [ErrorMessage])), ReqR (OpLookup AttReco att attr) ~ a, Use att prd nts a cs, LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), WrapField (ChiReco prd) attr ~ Attribution attr) => Use' True att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy True -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(HMember' nt nts, HMemberRes' nt nts ~ mnts, Use' mnts att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs)) => Use att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi :: Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

type ShowT (NT l :: NT) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowT (NT l :: NT) = Text "Non-Terminal " :<>: Text l

data T Source #

Constructors

T Type 
Instances
(LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), Use att prd nts a cs) => Use' False att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy False -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(Require (OpLookup AttReco att attr) (((Text "looking up attribute " :<>: ShowT att) :$$: (Text "on " :<>: ShowT attr)) ': ([] :: [ErrorMessage])), ReqR (OpLookup AttReco att attr) ~ a, Use att prd nts a cs, LabelSet ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs), WrapField (ChiReco prd) attr ~ Attribution attr) => Use' True att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi' :: Proxy True -> Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

(HMember' nt nts, HMemberRes' nt nts ~ mnts, Use' mnts att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs)) => Use att prd nts a ((,) (Chi ch prd (Left nt :: Either NT T)) attr ': cs) Source # 
Instance details

Defined in Language.Grammars.AspectAG

Methods

usechi :: Label att -> Label prd -> KList nts -> (a -> a -> a) -> ChAttsRec prd ((Chi ch prd (Left nt), attr) ': cs) -> Maybe a Source #

type ShowT (T l :: T) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowT (T l :: T) = Text "Terminal " :<>: ShowT l

type Record = Rec Reco Source #

  • Records

datatype definition

data Reco Source #

index type

Instances
(Show v, Show (Record xs), LabelSet ((,) l v ': xs)) => Show (Record ((,) l v ': xs)) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

Methods

showsPrec :: Int -> Record ((l, v) ': xs) -> ShowS #

show :: Record ((l, v) ': xs) -> String #

showList :: [Record ((l, v) ': xs)] -> ShowS #

Show (Record ([] :: [(k', k'')])) Source #

Show instance, used for debugging

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

Methods

showsPrec :: Int -> Record [] -> ShowS #

show :: Record [] -> String #

showList :: [Record []] -> ShowS #

type ShowField Reco Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowField Reco = "field named "
type ShowRec Reco Source #

Type level show utilities

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowRec Reco = "Record"
type WrapField Reco (v :: Type) Source #

field type

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type WrapField Reco (v :: Type) = v

pattern EmptyR :: Rec Reco '[] Source #

  • * Pattern Synonyms

pattern ConsR :: LabelSet ('(l, v) ': xs) => Tagged l v -> Rec Reco xs -> Rec Reco ('(l, v) ': xs) Source #

pattern Tagged :: v -> Tagged l v Source #

Constructors

(.=.) :: Label l -> v -> Tagged l v infixr 4 Source #

Pretty Constructor

emptyRecord :: Record '[] Source #

For the empty Record

unTagged :: Tagged l v -> v Source #

Destructors

label :: Tagged l v -> Label l Source #

Get a label

labelTChAtt :: Tagged l v -> Label l Source #

Same, mnemonically defined

type Attribution (attr :: [(Att, Type)]) = Rec AttReco attr Source #

  • Attribution | An attribution is a record constructed from attributes

datatype implementation

data AttReco Source #

index type

Instances
(Empties fcr prd, chi ~ Chi ch prd nt, LabelSet ((,) chi ([] :: [(Att, Type)]) ': EmptiesR fcr)) => Empties ((,) chi (Attribution e -> Attribution a) ': fcr) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type EmptiesR ((chi, Attribution e -> Attribution a) ': fcr) :: [(Child, [(Att, Type)])] Source #

Methods

empties :: Record ((chi, Attribution e -> Attribution a) ': fcr) -> ChAttsRec prd (EmptiesR ((chi, Attribution e -> Attribution a) ': fcr)) Source #

(lch ~ Chi l prd nt, Kn fc prd, LabelSet ((,) lch sch ': SCh fc), LabelSet ((,) lch ich ': ICh fc)) => Kn ((,) lch (Attribution ich -> Attribution sch) ': fc) prd Source # 
Instance details

Defined in Language.Grammars.AspectAG

Associated Types

type ICh ((lch, Attribution ich -> Attribution sch) ': fc) :: [(Child, [(Att, Type)])] Source #

type SCh ((lch, Attribution ich -> Attribution sch) ': fc) :: [(Child, [(Att, Type)])] Source #

Methods

kn :: Record ((lch, Attribution ich -> Attribution sch) ': fc) -> ChAttsRec prd (ICh ((lch, Attribution ich -> Attribution sch) ': fc)) -> ChAttsRec prd (SCh ((lch, Attribution ich -> Attribution sch) ': fc)) Source #

type ShowField AttReco Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowField AttReco = "attribute named "
type ShowRec AttReco Source #

type level utilities

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowRec AttReco = "Attribution"
type WrapField AttReco (v :: Type) Source #

field type

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type WrapField AttReco (v :: Type) = v
type EmptiesR ((,) chi (Attribution e -> Attribution a) ': fcr) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type EmptiesR ((,) chi (Attribution e -> Attribution a) ': fcr) = (,) chi ([] :: [(Att, Type)]) ': EmptiesR fcr
type ICh ((,) lch (Attribution ich -> Attribution sch) ': fc) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type ICh ((,) lch (Attribution ich -> Attribution sch) ': fc) = (,) lch ich ': ICh fc
type SCh ((,) lch (Attribution ich -> Attribution sch) ': fc) Source # 
Instance details

Defined in Language.Grammars.AspectAG

type SCh ((,) lch (Attribution ich -> Attribution sch) ': fc) = (,) lch sch ': SCh fc

pattern EmptyAtt :: Attribution '[] Source #

Pattern Synonyms

pattern ConsAtt :: LabelSet ('(att, val) ': atts) => Attribute att val -> Attribution atts -> Attribution ('(att, val) ': atts) Source #

type Attribute (l :: Att) (v :: Type) = TagField AttReco l v Source #

Attribute

pattern Attribute :: v -> TagField AttReco l v Source #

Constructors

(=.) :: Label l -> v -> Attribute l v infixr 4 Source #

Apretty constructor for an attribute

(*.) :: LabelSet ('(att, val) ': atts) => Attribute att val -> Attribution atts -> Attribution ('(att, val) ': atts) infixr 2 Source #

Extending

Destructors

(#.) :: (msg ~ '[(Text "looking up attribute " :<>: ShowT l) :$$: (Text "on " :<>: ShowT r)], Require (OpLookup AttReco l r) msg) => Attribution r -> Label l -> ReqR (OpLookup AttReco l r) infixl 7 Source #

Children

type ChAttsRec prd (chs :: [(Child, [(Att, Type)])]) = Rec (ChiReco prd) chs Source #

operations for the children

datatype implementation

data ChiReco (prd :: Prod) Source #

index type

Instances
type ShowField (ChiReco a) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowField (ChiReco a) = "child labelled "
type ShowRec (ChiReco a) Source #

Type level Show utilities

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowRec (ChiReco a) = "Children Map"
type WrapField (ChiReco prd :: Type) (v :: [(Att, Type)]) Source #

Field type

Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type WrapField (ChiReco prd :: Type) (v :: [(Att, Type)]) = Attribution v

Pattern synonyms

pattern EmptyCh :: ChAttsRec prd '[] Source #

since now we implement ChAttsRec as a generic record, this allows us to recover pattern matching

pattern ConsCh :: LabelSet ('(Chi ch prd nt, v) ': xs) => TaggedChAttr prd (Chi ch prd nt) v -> ChAttsRec prd xs -> ChAttsRec prd ('(Chi ch prd nt, v) ': xs) Source #

type TaggedChAttr prd = TagField (ChiReco prd) Source #

Attributions tagged by a child

pattern TaggedChAttr :: Label l -> WrapField (ChiReco prd) v -> TaggedChAttr prd l v Source #

Constructors

(.=) :: Label l -> WrapField (ChiReco prd) v -> TaggedChAttr prd l v infixr 4 Source #

Pretty constructor for tagging a child

(.*) :: LabelSet ('(ch, attrib) ': attribs) => TaggedChAttr prd ch attrib -> ChAttsRec prd attribs -> ChAttsRec prd ('(ch, attrib) ': attribs) infixr 2 Source #

Pretty constructors

emptyCh :: ChAttsRec prd '[] Source #

empty

Destructors

(.#) :: (c ~ Chi ch prd nt, ctx ~ '[((Text "looking up " :<>: ShowT c) :$$: (Text "on " :<>: ShowT r)) :$$: (Text "producion: " :<>: ShowT prd)], Require (OpLookup (ChiReco prd) c r) ctx) => Rec (ChiReco prd) r -> Label c -> ReqR (OpLookup (ChiReco prd) c r) infixl 8 Source #

Productions

data PrdReco Source #

Instances
type ShowField PrdReco Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowField PrdReco = "production named "
type ShowRec PrdReco Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type ShowRec PrdReco = "Aspect"
type WrapField PrdReco (rule :: Type) Source # 
Instance details

Defined in Language.Grammars.AspectAG.RecordInstances

type WrapField PrdReco (rule :: Type) = rule

type Aspect (asp :: [(Prod, Type)]) = Rec PrdReco asp Source #