protected class UMod2visitors.V_makeRewriterCoRewriter extends UMod2visitors.Lr_decoder
Modifier and Type | Field and Description |
---|---|
protected UMod.FieldDef |
curfield |
protected GeneratedMethod |
dorwmeth |
protected boolean |
iscorewriter |
protected int |
keynum |
protected Format |
model |
protected boolean |
multiSupport |
protected Format |
result |
protected UMod.ClassDef |
superclass |
protected boolean |
userResponsible |
protected GeneratedClass |
visitor |
leftSelected, lrcode, lrposition, modelnum, rightSelected
Constructor and Description |
---|
V_makeRewriterCoRewriter(int k,
GeneratedClass v,
UMod.ClassDef s,
boolean iscorew,
boolean ms) |
Modifier and Type | Method and Description |
---|---|
protected void |
action(UMod.ClassDef cd) |
protected void |
action(UMod.FieldDef fd) |
protected void |
action(UMod.T_copair t) |
protected void |
action(UMod.T_map t) |
protected void |
action(UMod.T_opt t) |
protected void |
action(UMod.T_pair t)
Potential optimizations:
a) multiple not supported -> abfrage kann raus, single case only! b) any side is empty -> return empty |
protected void |
action(UMod.T_power t) |
protected void |
action(UMod.T_reference t) |
protected void |
action(UMod.T_rel t) |
protected void |
action(UMod.T_seq t) |
protected void |
action(UMod.TypeBasic t) |
protected Format |
convertOneSide_REW(boolean cast) |
protected void |
put_suppress_addAll_warning_annotation(GeneratedMethod meth) |
protected void |
visitMap_or_Multimap(UMod.T_2 t,
boolean ismultimap)
Diagram of semantics:
M = original, L/R = maps representing rewriting, M' = result |
protected void |
visitSetList(UMod.TypeConstructed t,
boolean isseq) |
protected Format |
wrapOptimizingCut(Format code) |
updateSelection
protected GeneratedClass visitor
protected boolean iscorewriter
protected boolean multiSupport
protected int keynum
protected GeneratedMethod dorwmeth
protected UMod.ClassDef superclass
protected UMod.FieldDef curfield
protected Format model
protected Format result
protected boolean userResponsible
public V_makeRewriterCoRewriter(int k, GeneratedClass v, UMod.ClassDef s, boolean iscorew, boolean ms)
protected void action(UMod.ClassDef cd)
action
in class UMod.Visitor
protected void action(UMod.FieldDef fd)
action
in class UMod.Visitor
protected void action(UMod.T_reference t)
action
in class UMod.Visitor
protected void action(UMod.TypeBasic t)
action
in class UMod.Visitor
protected void put_suppress_addAll_warning_annotation(GeneratedMethod meth)
protected void visitSetList(UMod.TypeConstructed t, boolean isseq)
protected void action(UMod.T_seq t)
action
in class UMod.Visitor
protected void action(UMod.T_power t)
action
in class UMod.Visitor
protected Format convertOneSide_REW(boolean cast)
protected void visitMap_or_Multimap(UMod.T_2 t, boolean ismultimap)
M ------------------> | | L | | R V V ------------------> M' M' := Linv o M o R potential optimizations: a) if L or M or R is empty ==> return empty M' immediately b) if M is map (not multimap) and rewriter does not support "substitute_multi()" then 1) L and R can be simple maps (not multi-maps!) and 2) only "injectiveness" of L needs to be tested, to ensure M' being a map!
protected void action(UMod.T_map t)
action
in class UMod.Visitor
protected void action(UMod.T_rel t)
action
in class UMod.Visitor
protected void action(UMod.T_opt t)
action
in class UMod.Visitor
protected void action(UMod.T_copair t)
action
in class UMod.Visitor
protected void action(UMod.T_pair t)
action
in class UMod.Visitor
see also the complete user documentation .