X-Git-Url: http://nitlanguage.org diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit index 2363e3f..f1bd5d9 100644 --- a/src/parser/parser_prod.nit +++ b/src/parser/parser_prod.nit @@ -1,6 +1,6 @@ # Production AST nodes full definition. # This file was generated by SableCC (http://www.sablecc.org/). -module parser_prod +module parser_prod is generated, no_warning("missing-doc") import lexer intrude import parser_nodes @@ -50,6 +50,8 @@ end redef class AModuledecl init init_amoduledecl ( n_doc: nullable ADoc, + n_kwredef: nullable TKwredef, + n_visibility: nullable AVisibility, n_kwmodule: nullable TKwmodule, n_name: nullable AModuleName, n_annotations: nullable AAnnotations @@ -57,6 +59,10 @@ redef class AModuledecl do _n_doc = n_doc if n_doc != null then n_doc.parent = self + _n_kwredef = n_kwredef + if n_kwredef != null then n_kwredef.parent = self + _n_visibility = n_visibility.as(not null) + n_visibility.parent = self _n_kwmodule = n_kwmodule.as(not null) n_kwmodule.parent = self _n_name = n_name.as(not null) @@ -71,6 +77,14 @@ redef class AModuledecl n_doc = new_child.as(nullable ADoc) return end + if _n_kwredef == old_child then + n_kwredef = new_child.as(nullable TKwredef) + return + end + if _n_visibility == old_child then + n_visibility = new_child.as(AVisibility) + return + end if _n_kwmodule == old_child then n_kwmodule = new_child.as(TKwmodule) return @@ -90,6 +104,16 @@ redef class AModuledecl _n_doc = node if node != null then node.parent = self end + redef fun n_kwredef=(node) + do + _n_kwredef = node + if node != null then node.parent = self + end + redef fun n_visibility=(node) + do + _n_visibility = node + node.parent = self + end redef fun n_kwmodule=(node) do _n_kwmodule = node @@ -110,6 +134,8 @@ redef class AModuledecl redef fun visit_all(v: Visitor) do v.enter_visit(_n_doc) + v.enter_visit(_n_kwredef) + v.enter_visit(_n_visibility) v.enter_visit(_n_kwmodule) v.enter_visit(_n_name) v.enter_visit(_n_annotations) @@ -239,18 +265,32 @@ redef class ANoImport end end redef class APublicVisibility - init init_apublicvisibility + init init_apublicvisibility ( + n_kwpublic: nullable TKwpublic + ) do + _n_kwpublic = n_kwpublic + if n_kwpublic != null then n_kwpublic.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_kwpublic == old_child then + n_kwpublic = new_child.as(nullable TKwpublic) + return + end end + redef fun n_kwpublic=(node) + do + _n_kwpublic = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_kwpublic) end end redef class APrivateVisibility @@ -346,11 +386,11 @@ redef class AStdClassdef n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, n_classkind: nullable AClasskind, - n_id: nullable TClassid, + n_qid: nullable AQclassid, + n_obra: nullable TObra, n_formaldefs: Collection[Object], # Should be Collection[AFormaldef] - n_annotations: nullable AAnnotations, + n_cbra: nullable TCbra, n_extern_code_block: nullable AExternCodeBlock, - n_superclasses: Collection[Object], # Should be Collection[ASuperclass] n_propdefs: Collection[Object], # Should be Collection[APropdef] n_kwend: nullable TKwend ) @@ -363,14 +403,15 @@ redef class AStdClassdef n_visibility.parent = self _n_classkind = n_classkind.as(not null) n_classkind.parent = self - _n_id = n_id - if n_id != null then n_id.parent = self + _n_qid = n_qid + if n_qid != null then n_qid.parent = self + _n_obra = n_obra + if n_obra != null then n_obra.parent = self self.n_formaldefs.unsafe_add_all(n_formaldefs) - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_cbra = n_cbra + if n_cbra != null then n_cbra.parent = self _n_extern_code_block = n_extern_code_block if n_extern_code_block != null then n_extern_code_block.parent = self - self.n_superclasses.unsafe_add_all(n_superclasses) self.n_propdefs.unsafe_add_all(n_propdefs) _n_kwend = n_kwend.as(not null) n_kwend.parent = self @@ -394,20 +435,23 @@ redef class AStdClassdef n_classkind = new_child.as(AClasskind) return end - if _n_id == old_child then - n_id = new_child.as(nullable TClassid) + if _n_qid == old_child then + n_qid = new_child.as(nullable AQclassid) + return + end + if _n_obra == old_child then + n_obra = new_child.as(nullable TObra) return end if n_formaldefs.replace_child(old_child, new_child) then return - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_cbra == old_child then + n_cbra = new_child.as(nullable TCbra) return end if _n_extern_code_block == old_child then n_extern_code_block = new_child.as(nullable AExternCodeBlock) return end - if n_superclasses.replace_child(old_child, new_child) then return if n_propdefs.replace_child(old_child, new_child) then return if _n_kwend == old_child then n_kwend = new_child.as(TKwend) @@ -435,14 +479,19 @@ redef class AStdClassdef _n_classkind = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node if node != null then node.parent = self end - redef fun n_annotations=(node) + redef fun n_obra=(node) do - _n_annotations = node + _n_obra = node + if node != null then node.parent = self + end + redef fun n_cbra=(node) + do + _n_cbra = node if node != null then node.parent = self end redef fun n_extern_code_block=(node) @@ -463,11 +512,11 @@ redef class AStdClassdef v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) v.enter_visit(_n_classkind) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) + v.enter_visit(_n_obra) n_formaldefs.visit_all(v) - v.enter_visit(_n_annotations) + v.enter_visit(_n_cbra) v.enter_visit(_n_extern_code_block) - n_superclasses.visit_all(v) n_propdefs.visit_all(v) v.enter_visit(_n_kwend) end @@ -683,84 +732,58 @@ redef class AExternClasskind v.enter_visit(_n_kwclass) end end -redef class AFormaldef - init init_aformaldef ( - n_id: nullable TClassid, - n_type: nullable AType, - n_annotations: nullable AAnnotations +redef class ASubsetClasskind + init init_asubsetclasskind ( + n_kwsubset: nullable TKwsubset ) do - _n_id = n_id.as(not null) - n_id.parent = self - _n_type = n_type - if n_type != null then n_type.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_kwsubset = n_kwsubset.as(not null) + n_kwsubset.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TClassid) - return - end - if _n_type == old_child then - n_type = new_child.as(nullable AType) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_kwsubset == old_child then + n_kwsubset = new_child.as(TKwsubset) return end end - redef fun n_id=(node) + redef fun n_kwsubset=(node) do - _n_id = node + _n_kwsubset = node node.parent = self end - redef fun n_type=(node) - do - _n_type = node - if node != null then node.parent = self - end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) - v.enter_visit(_n_type) - v.enter_visit(_n_annotations) + v.enter_visit(_n_kwsubset) end end -redef class ASuperclass - init init_asuperclass ( - n_kwsuper: nullable TKwsuper, +redef class AFormaldef + init init_aformaldef ( + n_id: nullable TClassid, n_type: nullable AType, n_annotations: nullable AAnnotations ) do - _n_kwsuper = n_kwsuper.as(not null) - n_kwsuper.parent = self - _n_type = n_type.as(not null) - n_type.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_type = n_type + if n_type != null then n_type.parent = self _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwsuper == old_child then - n_kwsuper = new_child.as(TKwsuper) + if _n_id == old_child then + n_id = new_child.as(TClassid) return end if _n_type == old_child then - n_type = new_child.as(AType) + n_type = new_child.as(nullable AType) return end if _n_annotations == old_child then @@ -769,15 +792,15 @@ redef class ASuperclass end end - redef fun n_kwsuper=(node) + redef fun n_id=(node) do - _n_kwsuper = node + _n_id = node node.parent = self end redef fun n_type=(node) do _n_type = node - node.parent = self + if node != null then node.parent = self end redef fun n_annotations=(node) do @@ -788,7 +811,7 @@ redef class ASuperclass redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwsuper) + v.enter_visit(_n_id) v.enter_visit(_n_type) v.enter_visit(_n_annotations) end @@ -796,40 +819,43 @@ end redef class AAttrPropdef init init_aattrpropdef ( n_doc: nullable ADoc, - n_readable: nullable AAble, - n_writable: nullable AAble, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, n_kwvar: nullable TKwvar, - n_id: nullable TAttrid, n_id2: nullable TId, n_type: nullable AType, + n_assign: nullable TAssign, + n_expr: nullable AExpr, n_annotations: nullable AAnnotations, - n_expr: nullable AExpr + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_kwend: nullable TKwend ) do _n_doc = n_doc if n_doc != null then n_doc.parent = self - _n_readable = n_readable - if n_readable != null then n_readable.parent = self - _n_writable = n_writable - if n_writable != null then n_writable.parent = self _n_kwredef = n_kwredef if n_kwredef != null then n_kwredef.parent = self _n_visibility = n_visibility.as(not null) n_visibility.parent = self _n_kwvar = n_kwvar.as(not null) n_kwvar.parent = self - _n_id = n_id - if n_id != null then n_id.parent = self - _n_id2 = n_id2 - if n_id2 != null then n_id2.parent = self + _n_id2 = n_id2.as(not null) + n_id2.parent = self _n_type = n_type if n_type != null then n_type.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_assign = n_assign + if n_assign != null then n_assign.parent = self _n_expr = n_expr if n_expr != null then n_expr.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + _n_kwdo = n_kwdo + if n_kwdo != null then n_kwdo.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -838,14 +864,6 @@ redef class AAttrPropdef n_doc = new_child.as(nullable ADoc) return end - if _n_readable == old_child then - n_readable = new_child.as(nullable AAble) - return - end - if _n_writable == old_child then - n_writable = new_child.as(nullable AAble) - return - end if _n_kwredef == old_child then n_kwredef = new_child.as(nullable TKwredef) return @@ -858,26 +876,38 @@ redef class AAttrPropdef n_kwvar = new_child.as(TKwvar) return end - if _n_id == old_child then - n_id = new_child.as(nullable TAttrid) - return - end if _n_id2 == old_child then - n_id2 = new_child.as(nullable TId) + n_id2 = new_child.as(TId) return end if _n_type == old_child then n_type = new_child.as(nullable AType) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_assign == old_child then + n_assign = new_child.as(nullable TAssign) return end if _n_expr == old_child then n_expr = new_child.as(nullable AExpr) return end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + if _n_kwdo == old_child then + n_kwdo = new_child.as(nullable TKwdo) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end end redef fun n_doc=(node) @@ -885,16 +915,6 @@ redef class AAttrPropdef _n_doc = node if node != null then node.parent = self end - redef fun n_readable=(node) - do - _n_readable = node - if node != null then node.parent = self - end - redef fun n_writable=(node) - do - _n_writable = node - if node != null then node.parent = self - end redef fun n_kwredef=(node) do _n_kwredef = node @@ -910,24 +930,19 @@ redef class AAttrPropdef _n_kwvar = node node.parent = self end - redef fun n_id=(node) - do - _n_id = node - if node != null then node.parent = self - end redef fun n_id2=(node) do _n_id2 = node - if node != null then node.parent = self + node.parent = self end redef fun n_type=(node) do _n_type = node if node != null then node.parent = self end - redef fun n_annotations=(node) + redef fun n_assign=(node) do - _n_annotations = node + _n_assign = node if node != null then node.parent = self end redef fun n_expr=(node) @@ -935,112 +950,94 @@ redef class AAttrPropdef _n_expr = node if node != null then node.parent = self end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end + redef fun n_kwdo=(node) + do + _n_kwdo = node + if node != null then node.parent = self + end + redef fun n_block=(node) + do + _n_block = node + if node != null then node.parent = self + end + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do v.enter_visit(_n_doc) - v.enter_visit(_n_readable) - v.enter_visit(_n_writable) v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) v.enter_visit(_n_kwvar) - v.enter_visit(_n_id) v.enter_visit(_n_id2) v.enter_visit(_n_type) - v.enter_visit(_n_annotations) + v.enter_visit(_n_assign) v.enter_visit(_n_expr) + v.enter_visit(_n_annotations) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_block) + v.enter_visit(_n_kwend) end end -redef class AMethPropdef - init init_amethpropdef ( - n_doc: nullable ADoc, +redef class AMainMethPropdef + init init_amainmethpropdef ( n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_methid: nullable AMethid, - n_signature: nullable ASignature + n_block: nullable AExpr ) do - _n_doc = n_doc - if n_doc != null then n_doc.parent = self _n_kwredef = n_kwredef if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility.as(not null) - n_visibility.parent = self - _n_methid = n_methid.as(not null) - n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_doc == old_child then - n_doc = new_child.as(nullable ADoc) - return - end if _n_kwredef == old_child then n_kwredef = new_child.as(nullable TKwredef) return end - if _n_visibility == old_child then - n_visibility = new_child.as(AVisibility) - return - end - if _n_methid == old_child then - n_methid = new_child.as(AMethid) - return - end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) return end end - redef fun n_doc=(node) - do - _n_doc = node - if node != null then node.parent = self - end redef fun n_kwredef=(node) do _n_kwredef = node if node != null then node.parent = self end - redef fun n_visibility=(node) + redef fun n_block=(node) do - _n_visibility = node - node.parent = self - end - redef fun n_methid=(node) - do - _n_methid = node - node.parent = self - end - redef fun n_signature=(node) - do - _n_signature = node - node.parent = self + _n_block = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_doc) v.enter_visit(_n_kwredef) - v.enter_visit(_n_visibility) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) + v.enter_visit(_n_block) end end -redef class ADeferredMethPropdef - init init_adeferredmethpropdef ( +redef class ATypePropdef + init init_atypepropdef ( n_doc: nullable ADoc, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, - n_kwmeth: nullable TKwmeth, - n_methid: nullable AMethid, - n_signature: nullable ASignature, + n_kwtype: nullable TKwtype, + n_qid: nullable AQclassid, + n_type: nullable AType, n_annotations: nullable AAnnotations ) do @@ -1050,12 +1047,12 @@ redef class ADeferredMethPropdef if n_kwredef != null then n_kwredef.parent = self _n_visibility = n_visibility.as(not null) n_visibility.parent = self - _n_kwmeth = n_kwmeth.as(not null) - n_kwmeth.parent = self - _n_methid = n_methid.as(not null) - n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self + _n_kwtype = n_kwtype.as(not null) + n_kwtype.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_type = n_type.as(not null) + n_type.parent = self _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end @@ -1074,16 +1071,16 @@ redef class ADeferredMethPropdef n_visibility = new_child.as(AVisibility) return end - if _n_kwmeth == old_child then - n_kwmeth = new_child.as(TKwmeth) + if _n_kwtype == old_child then + n_kwtype = new_child.as(TKwtype) return end - if _n_methid == old_child then - n_methid = new_child.as(AMethid) + if _n_qid == old_child then + n_qid = new_child.as(AQclassid) return end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) + if _n_type == old_child then + n_type = new_child.as(AType) return end if _n_annotations == old_child then @@ -1107,19 +1104,19 @@ redef class ADeferredMethPropdef _n_visibility = node node.parent = self end - redef fun n_kwmeth=(node) + redef fun n_kwtype=(node) do - _n_kwmeth = node + _n_kwtype = node node.parent = self end - redef fun n_methid=(node) + redef fun n_qid=(node) do - _n_methid = node + _n_qid = node node.parent = self end - redef fun n_signature=(node) + redef fun n_type=(node) do - _n_signature = node + _n_type = node node.parent = self end redef fun n_annotations=(node) @@ -1134,20 +1131,29 @@ redef class ADeferredMethPropdef v.enter_visit(_n_doc) v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) - v.enter_visit(_n_kwmeth) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) + v.enter_visit(_n_kwtype) + v.enter_visit(_n_qid) + v.enter_visit(_n_type) v.enter_visit(_n_annotations) end end -redef class AInternMethPropdef - init init_ainternmethpropdef ( +redef class AMethPropdef + init init_amethpropdef ( n_doc: nullable ADoc, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, n_kwmeth: nullable TKwmeth, + n_kwinit: nullable TKwinit, + n_kwisa: nullable TKwisa, + n_kwnew: nullable TKwnew, n_methid: nullable AMethid, - n_signature: nullable ASignature + n_signature: nullable ASignature, + n_annotations: nullable AAnnotations, + n_extern_calls: nullable AExternCalls, + n_extern_code_block: nullable AExternCodeBlock, + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_kwend: nullable TKwend ) do _n_doc = n_doc @@ -1156,12 +1162,30 @@ redef class AInternMethPropdef if n_kwredef != null then n_kwredef.parent = self _n_visibility = n_visibility.as(not null) n_visibility.parent = self - _n_kwmeth = n_kwmeth.as(not null) - n_kwmeth.parent = self - _n_methid = n_methid.as(not null) - n_methid.parent = self + _n_kwmeth = n_kwmeth + if n_kwmeth != null then n_kwmeth.parent = self + _n_kwinit = n_kwinit + if n_kwinit != null then n_kwinit.parent = self + _n_kwisa = n_kwisa + if n_kwisa != null then n_kwisa.parent = self + _n_kwnew = n_kwnew + if n_kwnew != null then n_kwnew.parent = self + _n_methid = n_methid + if n_methid != null then n_methid.parent = self _n_signature = n_signature.as(not null) n_signature.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + _n_extern_calls = n_extern_calls + if n_extern_calls != null then n_extern_calls.parent = self + _n_extern_code_block = n_extern_code_block + if n_extern_code_block != null then n_extern_code_block.parent = self + _n_kwdo = n_kwdo + if n_kwdo != null then n_kwdo.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -1179,17 +1203,53 @@ redef class AInternMethPropdef return end if _n_kwmeth == old_child then - n_kwmeth = new_child.as(TKwmeth) + n_kwmeth = new_child.as(nullable TKwmeth) + return + end + if _n_kwinit == old_child then + n_kwinit = new_child.as(nullable TKwinit) + return + end + if _n_kwisa == old_child then + n_kwisa = new_child.as(nullable TKwisa) + return + end + if _n_kwnew == old_child then + n_kwnew = new_child.as(nullable TKwnew) return end if _n_methid == old_child then - n_methid = new_child.as(AMethid) + n_methid = new_child.as(nullable AMethid) return end if _n_signature == old_child then n_signature = new_child.as(ASignature) return end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + if _n_extern_calls == old_child then + n_extern_calls = new_child.as(nullable AExternCalls) + return + end + if _n_extern_code_block == old_child then + n_extern_code_block = new_child.as(nullable AExternCodeBlock) + return + end + if _n_kwdo == old_child then + n_kwdo = new_child.as(nullable TKwdo) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end end redef fun n_doc=(node) @@ -1210,18 +1270,63 @@ redef class AInternMethPropdef redef fun n_kwmeth=(node) do _n_kwmeth = node - node.parent = self + if node != null then node.parent = self + end + redef fun n_kwinit=(node) + do + _n_kwinit = node + if node != null then node.parent = self + end + redef fun n_kwisa=(node) + do + _n_kwisa = node + if node != null then node.parent = self + end + redef fun n_kwnew=(node) + do + _n_kwnew = node + if node != null then node.parent = self end redef fun n_methid=(node) do _n_methid = node - node.parent = self + if node != null then node.parent = self end redef fun n_signature=(node) do _n_signature = node node.parent = self end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end + redef fun n_extern_calls=(node) + do + _n_extern_calls = node + if node != null then node.parent = self + end + redef fun n_extern_code_block=(node) + do + _n_extern_code_block = node + if node != null then node.parent = self + end + redef fun n_kwdo=(node) + do + _n_kwdo = node + if node != null then node.parent = self + end + redef fun n_block=(node) + do + _n_block = node + if node != null then node.parent = self + end + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) @@ -1230,18 +1335,27 @@ redef class AInternMethPropdef v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) v.enter_visit(_n_kwmeth) + v.enter_visit(_n_kwinit) + v.enter_visit(_n_kwisa) + v.enter_visit(_n_kwnew) v.enter_visit(_n_methid) v.enter_visit(_n_signature) + v.enter_visit(_n_annotations) + v.enter_visit(_n_extern_calls) + v.enter_visit(_n_extern_code_block) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_block) + v.enter_visit(_n_kwend) end end -redef class AInternNewPropdef - init init_ainternnewpropdef ( +redef class ASuperPropdef + init init_asuperpropdef ( n_doc: nullable ADoc, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, - n_kwnew: nullable TKwnew, - n_methid: nullable AMethid, - n_signature: nullable ASignature + n_kwsuper: nullable TKwsuper, + n_type: nullable AType, + n_annotations: nullable AAnnotations ) do _n_doc = n_doc @@ -1250,12 +1364,12 @@ redef class AInternNewPropdef if n_kwredef != null then n_kwredef.parent = self _n_visibility = n_visibility.as(not null) n_visibility.parent = self - _n_kwnew = n_kwnew.as(not null) - n_kwnew.parent = self - _n_methid = n_methid - if n_methid != null then n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self + _n_kwsuper = n_kwsuper.as(not null) + n_kwsuper.parent = self + _n_type = n_type.as(not null) + n_type.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -1272,16 +1386,16 @@ redef class AInternNewPropdef n_visibility = new_child.as(AVisibility) return end - if _n_kwnew == old_child then - n_kwnew = new_child.as(TKwnew) + if _n_kwsuper == old_child then + n_kwsuper = new_child.as(TKwsuper) return end - if _n_methid == old_child then - n_methid = new_child.as(nullable AMethid) + if _n_type == old_child then + n_type = new_child.as(AType) return end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end @@ -1301,20 +1415,20 @@ redef class AInternNewPropdef _n_visibility = node node.parent = self end - redef fun n_kwnew=(node) + redef fun n_kwsuper=(node) do - _n_kwnew = node + _n_kwsuper = node node.parent = self end - redef fun n_methid=(node) + redef fun n_type=(node) do - _n_methid = node - if node != null then node.parent = self + _n_type = node + node.parent = self end - redef fun n_signature=(node) + redef fun n_annotations=(node) do - _n_signature = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end @@ -1323,80 +1437,69 @@ redef class AInternNewPropdef v.enter_visit(_n_doc) v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) - v.enter_visit(_n_kwnew) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) + v.enter_visit(_n_kwsuper) + v.enter_visit(_n_type) + v.enter_visit(_n_annotations) end end -redef class AExternMethPropdef - init init_aexternmethpropdef ( +redef class AAnnotPropdef + init init_aannotpropdef ( n_doc: nullable ADoc, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, - n_kwmeth: nullable TKwmeth, - n_methid: nullable AMethid, - n_signature: nullable ASignature, - n_extern: nullable TString, - n_extern_calls: nullable AExternCalls, - n_extern_code_block: nullable AExternCodeBlock + n_atid: nullable AAtid, + n_opar: nullable TOpar, + n_args: Collection[Object], # Should be Collection[AExpr] + n_cpar: nullable TCpar, + n_annotations: nullable AAnnotations ) do _n_doc = n_doc if n_doc != null then n_doc.parent = self _n_kwredef = n_kwredef if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility.as(not null) - n_visibility.parent = self - _n_kwmeth = n_kwmeth.as(not null) - n_kwmeth.parent = self - _n_methid = n_methid.as(not null) - n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self - _n_extern = n_extern - if n_extern != null then n_extern.parent = self - _n_extern_calls = n_extern_calls - if n_extern_calls != null then n_extern_calls.parent = self - _n_extern_code_block = n_extern_code_block - if n_extern_code_block != null then n_extern_code_block.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_doc == old_child then - n_doc = new_child.as(nullable ADoc) - return - end - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) - return - end - if _n_visibility == old_child then - n_visibility = new_child.as(AVisibility) + _n_visibility = n_visibility + if n_visibility != null then n_visibility.parent = self + _n_atid = n_atid.as(not null) + n_atid.parent = self + _n_opar = n_opar + if n_opar != null then n_opar.parent = self + self.n_args.unsafe_add_all(n_args) + _n_cpar = n_cpar + if n_cpar != null then n_cpar.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_doc == old_child then + n_doc = new_child.as(nullable ADoc) return end - if _n_kwmeth == old_child then - n_kwmeth = new_child.as(TKwmeth) + if _n_kwredef == old_child then + n_kwredef = new_child.as(nullable TKwredef) return end - if _n_methid == old_child then - n_methid = new_child.as(AMethid) + if _n_visibility == old_child then + n_visibility = new_child.as(nullable AVisibility) return end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) + if _n_atid == old_child then + n_atid = new_child.as(AAtid) return end - if _n_extern == old_child then - n_extern = new_child.as(nullable TString) + if _n_opar == old_child then + n_opar = new_child.as(nullable TOpar) return end - if _n_extern_calls == old_child then - n_extern_calls = new_child.as(nullable AExternCalls) + if n_args.replace_child(old_child, new_child) then return + if _n_cpar == old_child then + n_cpar = new_child.as(nullable TCpar) return end - if _n_extern_code_block == old_child then - n_extern_code_block = new_child.as(nullable AExternCodeBlock) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end @@ -1414,36 +1517,26 @@ redef class AExternMethPropdef redef fun n_visibility=(node) do _n_visibility = node - node.parent = self - end - redef fun n_kwmeth=(node) - do - _n_kwmeth = node - node.parent = self - end - redef fun n_methid=(node) - do - _n_methid = node - node.parent = self + if node != null then node.parent = self end - redef fun n_signature=(node) + redef fun n_atid=(node) do - _n_signature = node + _n_atid = node node.parent = self end - redef fun n_extern=(node) + redef fun n_opar=(node) do - _n_extern = node + _n_opar = node if node != null then node.parent = self end - redef fun n_extern_calls=(node) + redef fun n_cpar=(node) do - _n_extern_calls = node + _n_cpar = node if node != null then node.parent = self end - redef fun n_extern_code_block=(node) + redef fun n_annotations=(node) do - _n_extern_code_block = node + _n_annotations = node if node != null then node.parent = self end @@ -1453,2298 +1546,3204 @@ redef class AExternMethPropdef v.enter_visit(_n_doc) v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) - v.enter_visit(_n_kwmeth) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) - v.enter_visit(_n_extern) - v.enter_visit(_n_extern_calls) - v.enter_visit(_n_extern_code_block) + v.enter_visit(_n_atid) + v.enter_visit(_n_opar) + n_args.visit_all(v) + v.enter_visit(_n_cpar) + v.enter_visit(_n_annotations) end end -redef class AConcreteMethPropdef - init init_aconcretemethpropdef ( - n_doc: nullable ADoc, - n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_kwmeth: nullable TKwmeth, - n_methid: nullable AMethid, - n_signature: nullable ASignature, - n_annotations: nullable AAnnotations, - n_block: nullable AExpr +redef class AIdMethid + init init_aidmethid ( + n_id: nullable TId ) do - _n_doc = n_doc - if n_doc != null then n_doc.parent = self - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility.as(not null) - n_visibility.parent = self - _n_kwmeth = n_kwmeth.as(not null) - n_kwmeth.parent = self - _n_methid = n_methid.as(not null) - n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self + _n_id = n_id.as(not null) + n_id.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_doc == old_child then - n_doc = new_child.as(nullable ADoc) - return - end - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) - return - end - if _n_visibility == old_child then - n_visibility = new_child.as(AVisibility) - return - end - if _n_kwmeth == old_child then - n_kwmeth = new_child.as(TKwmeth) - return - end - if _n_methid == old_child then - n_methid = new_child.as(AMethid) - return - end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + if _n_id == old_child then + n_id = new_child.as(TId) return end end - redef fun n_doc=(node) + redef fun n_id=(node) do - _n_doc = node - if node != null then node.parent = self + _n_id = node + node.parent = self end - redef fun n_kwredef=(node) + + + redef fun visit_all(v: Visitor) do - _n_kwredef = node - if node != null then node.parent = self + v.enter_visit(_n_id) end - redef fun n_visibility=(node) +end +redef class APlusMethid + init init_aplusmethid ( + n_op: nullable TPlus + ) do - _n_visibility = node - node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_kwmeth=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_kwmeth = node - node.parent = self + if _n_op == old_child then + n_op = new_child.as(TPlus) + return + end end - redef fun n_methid=(node) + + redef fun n_op=(node) do - _n_methid = node + _n_op = node node.parent = self end - redef fun n_signature=(node) + + + redef fun visit_all(v: Visitor) do - _n_signature = node - node.parent = self + v.enter_visit(_n_op) end - redef fun n_annotations=(node) +end +redef class AMinusMethid + init init_aminusmethid ( + n_op: nullable TMinus + ) do - _n_annotations = node - if node != null then node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_block=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_block = node - if node != null then node.parent = self + if _n_op == old_child then + n_op = new_child.as(TMinus) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_doc) - v.enter_visit(_n_kwredef) - v.enter_visit(_n_visibility) - v.enter_visit(_n_kwmeth) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) - v.enter_visit(_n_annotations) - v.enter_visit(_n_block) + v.enter_visit(_n_op) end end -redef class AConcreteInitPropdef - init init_aconcreteinitpropdef ( - n_doc: nullable ADoc, - n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_kwinit: nullable TKwinit, - n_methid: nullable AMethid, - n_signature: nullable ASignature, - n_annotations: nullable AAnnotations, - n_block: nullable AExpr +redef class AStarMethid + init init_astarmethid ( + n_op: nullable TStar ) do - _n_doc = n_doc - if n_doc != null then n_doc.parent = self - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility.as(not null) - n_visibility.parent = self - _n_kwinit = n_kwinit.as(not null) - n_kwinit.parent = self - _n_methid = n_methid - if n_methid != null then n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_doc == old_child then - n_doc = new_child.as(nullable ADoc) - return - end - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) + if _n_op == old_child then + n_op = new_child.as(TStar) return end - if _n_visibility == old_child then - n_visibility = new_child.as(AVisibility) - return - end - if _n_kwinit == old_child then - n_kwinit = new_child.as(TKwinit) - return - end - if _n_methid == old_child then - n_methid = new_child.as(nullable AMethid) - return - end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class AStarstarMethid + init init_astarstarmethid ( + n_op: nullable TStarstar + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TStarstar) return end end - redef fun n_doc=(node) + redef fun n_op=(node) do - _n_doc = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_kwredef=(node) + + + redef fun visit_all(v: Visitor) do - _n_kwredef = node - if node != null then node.parent = self + v.enter_visit(_n_op) end - redef fun n_visibility=(node) +end +redef class ASlashMethid + init init_aslashmethid ( + n_op: nullable TSlash + ) do - _n_visibility = node - node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_kwinit=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_kwinit = node + if _n_op == old_child then + n_op = new_child.as(TSlash) + return + end + end + + redef fun n_op=(node) + do + _n_op = node node.parent = self end - redef fun n_methid=(node) + + + redef fun visit_all(v: Visitor) do - _n_methid = node - if node != null then node.parent = self + v.enter_visit(_n_op) end - redef fun n_signature=(node) +end +redef class APercentMethid + init init_apercentmethid ( + n_op: nullable TPercent + ) do - _n_signature = node - node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_annotations=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_annotations = node - if node != null then node.parent = self + if _n_op == old_child then + n_op = new_child.as(TPercent) + return + end end - redef fun n_block=(node) + + redef fun n_op=(node) do - _n_block = node - if node != null then node.parent = self + _n_op = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_doc) - v.enter_visit(_n_kwredef) - v.enter_visit(_n_visibility) - v.enter_visit(_n_kwinit) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) - v.enter_visit(_n_annotations) - v.enter_visit(_n_block) + v.enter_visit(_n_op) end end -redef class AExternInitPropdef - init init_aexterninitpropdef ( - n_doc: nullable ADoc, - n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_kwnew: nullable TKwnew, - n_methid: nullable AMethid, - n_signature: nullable ASignature, - n_extern: nullable TString, - n_extern_calls: nullable AExternCalls, - n_extern_code_block: nullable AExternCodeBlock +redef class AEqMethid + init init_aeqmethid ( + n_op: nullable TEq ) do - _n_doc = n_doc - if n_doc != null then n_doc.parent = self - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility.as(not null) - n_visibility.parent = self - _n_kwnew = n_kwnew.as(not null) - n_kwnew.parent = self - _n_methid = n_methid - if n_methid != null then n_methid.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self - _n_extern = n_extern - if n_extern != null then n_extern.parent = self - _n_extern_calls = n_extern_calls - if n_extern_calls != null then n_extern_calls.parent = self - _n_extern_code_block = n_extern_code_block - if n_extern_code_block != null then n_extern_code_block.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_doc == old_child then - n_doc = new_child.as(nullable ADoc) - return - end - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) - return - end - if _n_visibility == old_child then - n_visibility = new_child.as(AVisibility) - return - end - if _n_kwnew == old_child then - n_kwnew = new_child.as(TKwnew) - return - end - if _n_methid == old_child then - n_methid = new_child.as(nullable AMethid) - return - end - if _n_signature == old_child then - n_signature = new_child.as(ASignature) - return - end - if _n_extern == old_child then - n_extern = new_child.as(nullable TString) - return - end - if _n_extern_calls == old_child then - n_extern_calls = new_child.as(nullable AExternCalls) - return - end - if _n_extern_code_block == old_child then - n_extern_code_block = new_child.as(nullable AExternCodeBlock) + if _n_op == old_child then + n_op = new_child.as(TEq) return end end - redef fun n_doc=(node) + redef fun n_op=(node) do - _n_doc = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_kwredef=(node) + + + redef fun visit_all(v: Visitor) do - _n_kwredef = node - if node != null then node.parent = self + v.enter_visit(_n_op) end - redef fun n_visibility=(node) +end +redef class ANeMethid + init init_anemethid ( + n_op: nullable TNe + ) do - _n_visibility = node - node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_kwnew=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_kwnew = node - node.parent = self + if _n_op == old_child then + n_op = new_child.as(TNe) + return + end end - redef fun n_methid=(node) + + redef fun n_op=(node) do - _n_methid = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_signature=(node) + + + redef fun visit_all(v: Visitor) do - _n_signature = node - node.parent = self + v.enter_visit(_n_op) end - redef fun n_extern=(node) +end +redef class ALeMethid + init init_alemethid ( + n_op: nullable TLe + ) do - _n_extern = node - if node != null then node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_extern_calls=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_extern_calls = node - if node != null then node.parent = self + if _n_op == old_child then + n_op = new_child.as(TLe) + return + end end - redef fun n_extern_code_block=(node) + + redef fun n_op=(node) do - _n_extern_code_block = node - if node != null then node.parent = self + _n_op = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_doc) - v.enter_visit(_n_kwredef) - v.enter_visit(_n_visibility) - v.enter_visit(_n_kwnew) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) - v.enter_visit(_n_extern) - v.enter_visit(_n_extern_calls) - v.enter_visit(_n_extern_code_block) + v.enter_visit(_n_op) end end -redef class AMainMethPropdef - init init_amainmethpropdef ( - n_kwredef: nullable TKwredef, - n_block: nullable AExpr +redef class AGeMethid + init init_agemethid ( + n_op: nullable TGe ) do - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) - return - end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TGe) return end end - redef fun n_kwredef=(node) - do - _n_kwredef = node - if node != null then node.parent = self - end - redef fun n_block=(node) + redef fun n_op=(node) do - _n_block = node - if node != null then node.parent = self + _n_op = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwredef) - v.enter_visit(_n_block) + v.enter_visit(_n_op) end end -redef class ATypePropdef - init init_atypepropdef ( - n_doc: nullable ADoc, - n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_kwtype: nullable TKwtype, - n_id: nullable TClassid, - n_type: nullable AType, - n_annotations: nullable AAnnotations +redef class ALtMethid + init init_altmethid ( + n_op: nullable TLt ) do - _n_doc = n_doc - if n_doc != null then n_doc.parent = self - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility.as(not null) - n_visibility.parent = self - _n_kwtype = n_kwtype.as(not null) - n_kwtype.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_type = n_type.as(not null) - n_type.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_doc == old_child then - n_doc = new_child.as(nullable ADoc) - return - end - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) - return - end - if _n_visibility == old_child then - n_visibility = new_child.as(AVisibility) + if _n_op == old_child then + n_op = new_child.as(TLt) return end - if _n_kwtype == old_child then - n_kwtype = new_child.as(TKwtype) + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class AGtMethid + init init_agtmethid ( + n_op: nullable TGt + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TGt) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class ALlMethid + init init_allmethid ( + n_op: nullable TLl + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TLl) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class AGgMethid + init init_aggmethid ( + n_op: nullable TGg + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TGg) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class AStarshipMethid + init init_astarshipmethid ( + n_op: nullable TStarship + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TStarship) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class APipeMethid + init init_apipemethid ( + n_op: nullable TPipe + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TPipe) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class ACaretMethid + init init_acaretmethid ( + n_op: nullable TCaret + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TCaret) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class AAmpMethid + init init_aampmethid ( + n_op: nullable TAmp + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TAmp) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class ATildeMethid + init init_atildemethid ( + n_op: nullable TTilde + ) + do + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TTilde) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_op) + end +end +redef class ABraMethid + init init_abramethid ( + n_obra: nullable TObra, + n_cbra: nullable TCbra + ) + do + _n_obra = n_obra.as(not null) + n_obra.parent = self + _n_cbra = n_cbra.as(not null) + n_cbra.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_obra == old_child then + n_obra = new_child.as(TObra) + return + end + if _n_cbra == old_child then + n_cbra = new_child.as(TCbra) + return + end + end + + redef fun n_obra=(node) + do + _n_obra = node + node.parent = self + end + redef fun n_cbra=(node) + do + _n_cbra = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_obra) + v.enter_visit(_n_cbra) + end +end +redef class AAssignMethid + init init_aassignmethid ( + n_id: nullable TId, + n_assign: nullable TAssign + ) + do + _n_id = n_id.as(not null) + n_id.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_id == old_child then + n_id = new_child.as(TId) + return + end + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + end + + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + redef fun n_assign=(node) + do + _n_assign = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_id) + v.enter_visit(_n_assign) + end +end +redef class ABraassignMethid + init init_abraassignmethid ( + n_obra: nullable TObra, + n_cbra: nullable TCbra, + n_assign: nullable TAssign + ) + do + _n_obra = n_obra.as(not null) + n_obra.parent = self + _n_cbra = n_cbra.as(not null) + n_cbra.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_obra == old_child then + n_obra = new_child.as(TObra) + return + end + if _n_cbra == old_child then + n_cbra = new_child.as(TCbra) + return + end + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + end + + redef fun n_obra=(node) + do + _n_obra = node + node.parent = self + end + redef fun n_cbra=(node) + do + _n_cbra = node + node.parent = self + end + redef fun n_assign=(node) + do + _n_assign = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_obra) + v.enter_visit(_n_cbra) + v.enter_visit(_n_assign) + end +end +redef class AQid + init init_aqid ( + n_qualified: nullable AQualified, + n_id: nullable TId + ) + do + _n_qualified = n_qualified + if n_qualified != null then n_qualified.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_qualified == old_child then + n_qualified = new_child.as(nullable AQualified) + return + end + if _n_id == old_child then + n_id = new_child.as(TId) + return + end + end + + redef fun n_qualified=(node) + do + _n_qualified = node + if node != null then node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_qualified) + v.enter_visit(_n_id) + end +end +redef class AQclassid + init init_aqclassid ( + n_qualified: nullable AQualified, + n_id: nullable TClassid + ) + do + _n_qualified = n_qualified + if n_qualified != null then n_qualified.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_qualified == old_child then + n_qualified = new_child.as(nullable AQualified) + return + end + if _n_id == old_child then + n_id = new_child.as(TClassid) + return + end + end + + redef fun n_qualified=(node) + do + _n_qualified = node + if node != null then node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_qualified) + v.enter_visit(_n_id) + end +end +redef class ASignature + init init_asignature ( + n_opar: nullable TOpar, + n_params: Collection[Object], # Should be Collection[AParam] + n_cpar: nullable TCpar, + n_type: nullable AType + ) + do + _n_opar = n_opar + if n_opar != null then n_opar.parent = self + self.n_params.unsafe_add_all(n_params) + _n_cpar = n_cpar + if n_cpar != null then n_cpar.parent = self + _n_type = n_type + if n_type != null then n_type.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_opar == old_child then + n_opar = new_child.as(nullable TOpar) + return + end + if n_params.replace_child(old_child, new_child) then return + if _n_cpar == old_child then + n_cpar = new_child.as(nullable TCpar) + return + end + if _n_type == old_child then + n_type = new_child.as(nullable AType) + return + end + end + + redef fun n_opar=(node) + do + _n_opar = node + if node != null then node.parent = self + end + redef fun n_cpar=(node) + do + _n_cpar = node + if node != null then node.parent = self + end + redef fun n_type=(node) + do + _n_type = node + if node != null then node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_opar) + n_params.visit_all(v) + v.enter_visit(_n_cpar) + v.enter_visit(_n_type) + end +end +redef class AParam + init init_aparam ( + n_id: nullable TId, + n_type: nullable AType, + n_dotdotdot: nullable TDotdotdot, + n_annotations: nullable AAnnotations + ) + do + _n_id = n_id.as(not null) + n_id.parent = self + _n_type = n_type + if n_type != null then n_type.parent = self + _n_dotdotdot = n_dotdotdot + if n_dotdotdot != null then n_dotdotdot.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_id == old_child then + n_id = new_child.as(TId) + return + end + if _n_type == old_child then + n_type = new_child.as(nullable AType) + return + end + if _n_dotdotdot == old_child then + n_dotdotdot = new_child.as(nullable TDotdotdot) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + end + + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + redef fun n_type=(node) + do + _n_type = node + if node != null then node.parent = self + end + redef fun n_dotdotdot=(node) + do + _n_dotdotdot = node + if node != null then node.parent = self + end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_id) + v.enter_visit(_n_type) + v.enter_visit(_n_dotdotdot) + v.enter_visit(_n_annotations) + end +end +redef class AType + init init_atype ( + n_kwnullable: nullable TKwnullable, + n_qid: nullable AQclassid, + n_obra: nullable TObra, + n_types: Collection[Object], # Should be Collection[AType] + n_cbra: nullable TCbra, + n_annotations: nullable AAnnotations + ) + do + _n_kwnullable = n_kwnullable + if n_kwnullable != null then n_kwnullable.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_obra = n_obra + if n_obra != null then n_obra.parent = self + self.n_types.unsafe_add_all(n_types) + _n_cbra = n_cbra + if n_cbra != null then n_cbra.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwnullable == old_child then + n_kwnullable = new_child.as(nullable TKwnullable) + return + end + if _n_qid == old_child then + n_qid = new_child.as(AQclassid) + return + end + if _n_obra == old_child then + n_obra = new_child.as(nullable TObra) + return + end + if n_types.replace_child(old_child, new_child) then return + if _n_cbra == old_child then + n_cbra = new_child.as(nullable TCbra) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + end + + redef fun n_kwnullable=(node) + do + _n_kwnullable = node + if node != null then node.parent = self + end + redef fun n_qid=(node) + do + _n_qid = node + node.parent = self + end + redef fun n_obra=(node) + do + _n_obra = node + if node != null then node.parent = self + end + redef fun n_cbra=(node) + do + _n_cbra = node + if node != null then node.parent = self + end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwnullable) + v.enter_visit(_n_qid) + v.enter_visit(_n_obra) + n_types.visit_all(v) + v.enter_visit(_n_cbra) + v.enter_visit(_n_annotations) + end +end +redef class ALabel + init init_alabel ( + n_kwlabel: nullable TKwlabel, + n_id: nullable TId + ) + do + _n_kwlabel = n_kwlabel.as(not null) + n_kwlabel.parent = self + _n_id = n_id + if n_id != null then n_id.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwlabel == old_child then + n_kwlabel = new_child.as(TKwlabel) return end if _n_id == old_child then - n_id = new_child.as(TClassid) + n_id = new_child.as(nullable TId) + return + end + end + + redef fun n_kwlabel=(node) + do + _n_kwlabel = node + node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + if node != null then node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwlabel) + v.enter_visit(_n_id) + end +end +redef class ABlockExpr + init init_ablockexpr ( + n_expr: Collection[Object], # Should be Collection[AExpr] + n_kwend: nullable TKwend + ) + do + self.n_expr.unsafe_add_all(n_expr) + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if n_expr.replace_child(old_child, new_child) then return + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end + end + + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + n_expr.visit_all(v) + v.enter_visit(_n_kwend) + end +end +redef class AVardeclExpr + init init_avardeclexpr ( + n_kwvar: nullable TKwvar, + n_id: nullable TId, + n_type: nullable AType, + n_assign: nullable TAssign, + n_expr: nullable AExpr, + n_annotations: nullable AAnnotations + ) + do + _n_kwvar = n_kwvar + if n_kwvar != null then n_kwvar.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_type = n_type + if n_type != null then n_type.parent = self + _n_assign = n_assign + if n_assign != null then n_assign.parent = self + _n_expr = n_expr + if n_expr != null then n_expr.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwvar == old_child then + n_kwvar = new_child.as(nullable TKwvar) + return + end + if _n_id == old_child then + n_id = new_child.as(TId) return end if _n_type == old_child then - n_type = new_child.as(AType) + n_type = new_child.as(nullable AType) + return + end + if _n_assign == old_child then + n_assign = new_child.as(nullable TAssign) + return + end + if _n_expr == old_child then + n_expr = new_child.as(nullable AExpr) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + end + + redef fun n_kwvar=(node) + do + _n_kwvar = node + if node != null then node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + redef fun n_type=(node) + do + _n_type = node + if node != null then node.parent = self + end + redef fun n_assign=(node) + do + _n_assign = node + if node != null then node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + if node != null then node.parent = self + end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwvar) + v.enter_visit(_n_id) + v.enter_visit(_n_type) + v.enter_visit(_n_assign) + v.enter_visit(_n_expr) + v.enter_visit(_n_annotations) + end +end +redef class AReturnExpr + init init_areturnexpr ( + n_kwreturn: nullable TKwreturn, + n_expr: nullable AExpr + ) + do + _n_kwreturn = n_kwreturn + if n_kwreturn != null then n_kwreturn.parent = self + _n_expr = n_expr + if n_expr != null then n_expr.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwreturn == old_child then + n_kwreturn = new_child.as(nullable TKwreturn) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_expr == old_child then + n_expr = new_child.as(nullable AExpr) return end end - redef fun n_doc=(node) + redef fun n_kwreturn=(node) do - _n_doc = node + _n_kwreturn = node if node != null then node.parent = self end - redef fun n_kwredef=(node) + redef fun n_expr=(node) do - _n_kwredef = node + _n_expr = node if node != null then node.parent = self end - redef fun n_visibility=(node) + + + redef fun visit_all(v: Visitor) do - _n_visibility = node - node.parent = self + v.enter_visit(_n_kwreturn) + v.enter_visit(_n_expr) end - redef fun n_kwtype=(node) +end +redef class AYieldExpr + init init_ayieldexpr ( + n_kwyield: nullable TKwyield, + n_expr: nullable AExpr + ) do - _n_kwtype = node - node.parent = self + _n_kwyield = n_kwyield.as(not null) + n_kwyield.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self end - redef fun n_id=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_id = node - node.parent = self + if _n_kwyield == old_child then + n_kwyield = new_child.as(TKwyield) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end end - redef fun n_type=(node) + + redef fun n_kwyield=(node) do - _n_type = node + _n_kwyield = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_expr=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_expr = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_doc) - v.enter_visit(_n_kwredef) - v.enter_visit(_n_visibility) - v.enter_visit(_n_kwtype) - v.enter_visit(_n_id) - v.enter_visit(_n_type) - v.enter_visit(_n_annotations) + v.enter_visit(_n_kwyield) + v.enter_visit(_n_expr) end end -redef class AReadAble - init init_areadable ( - n_kwredef: nullable TKwredef, - n_kwreadable: nullable TKwreadable +redef class ABreakExpr + init init_abreakexpr ( + n_kwbreak: nullable TKwbreak, + n_label: nullable ALabel ) do - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_kwreadable = n_kwreadable.as(not null) - n_kwreadable.parent = self + _n_kwbreak = n_kwbreak.as(not null) + n_kwbreak.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) + if _n_kwbreak == old_child then + n_kwbreak = new_child.as(TKwbreak) return end - if _n_kwreadable == old_child then - n_kwreadable = new_child.as(TKwreadable) + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_kwredef=(node) + redef fun n_kwbreak=(node) do - _n_kwredef = node - if node != null then node.parent = self + _n_kwbreak = node + node.parent = self end - redef fun n_kwreadable=(node) + redef fun n_label=(node) do - _n_kwreadable = node - node.parent = self + _n_label = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwredef) - v.enter_visit(_n_kwreadable) + v.enter_visit(_n_kwbreak) + v.enter_visit(_n_label) end end -redef class AWriteAble - init init_awriteable ( - n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_kwwritable: nullable TKwwritable +redef class AAbortExpr + init init_aabortexpr ( + n_kwabort: nullable TKwabort ) do - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_visibility = n_visibility - if n_visibility != null then n_visibility.parent = self - _n_kwwritable = n_kwwritable.as(not null) - n_kwwritable.parent = self + _n_kwabort = n_kwabort.as(not null) + n_kwabort.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwredef == old_child then - n_kwredef = new_child.as(nullable TKwredef) + if _n_kwabort == old_child then + n_kwabort = new_child.as(TKwabort) return end - if _n_visibility == old_child then - n_visibility = new_child.as(nullable AVisibility) + end + + redef fun n_kwabort=(node) + do + _n_kwabort = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwabort) + end +end +redef class AContinueExpr + init init_acontinueexpr ( + n_kwcontinue: nullable TKwcontinue, + n_label: nullable ALabel + ) + do + _n_kwcontinue = n_kwcontinue + if n_kwcontinue != null then n_kwcontinue.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwcontinue == old_child then + n_kwcontinue = new_child.as(nullable TKwcontinue) return end - if _n_kwwritable == old_child then - n_kwwritable = new_child.as(TKwwritable) + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_kwredef=(node) + redef fun n_kwcontinue=(node) do - _n_kwredef = node + _n_kwcontinue = node if node != null then node.parent = self end - redef fun n_visibility=(node) + redef fun n_label=(node) do - _n_visibility = node + _n_label = node if node != null then node.parent = self end - redef fun n_kwwritable=(node) - do - _n_kwwritable = node - node.parent = self - end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwredef) - v.enter_visit(_n_visibility) - v.enter_visit(_n_kwwritable) + v.enter_visit(_n_kwcontinue) + v.enter_visit(_n_label) end end -redef class AIdMethid - init init_aidmethid ( - n_id: nullable TId +redef class ADoExpr + init init_adoexpr ( + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_kwcatch: nullable TKwcatch, + n_catch: nullable AExpr, + n_label: nullable ALabel ) do - _n_id = n_id.as(not null) - n_id.parent = self + _n_kwdo = n_kwdo.as(not null) + n_kwdo.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_kwcatch = n_kwcatch + if n_kwcatch != null then n_kwcatch.parent = self + _n_catch = n_catch + if n_catch != null then n_catch.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_kwdo == old_child then + n_kwdo = new_child.as(TKwdo) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_kwcatch == old_child then + n_kwcatch = new_child.as(nullable TKwcatch) + return + end + if _n_catch == old_child then + n_catch = new_child.as(nullable AExpr) + return + end + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_id=(node) + redef fun n_kwdo=(node) do - _n_id = node + _n_kwdo = node node.parent = self end + redef fun n_block=(node) + do + _n_block = node + if node != null then node.parent = self + end + redef fun n_kwcatch=(node) + do + _n_kwcatch = node + if node != null then node.parent = self + end + redef fun n_catch=(node) + do + _n_catch = node + if node != null then node.parent = self + end + redef fun n_label=(node) + do + _n_label = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_block) + v.enter_visit(_n_kwcatch) + v.enter_visit(_n_catch) + v.enter_visit(_n_label) end end -redef class APlusMethid - init init_aplusmethid ( - n_plus: nullable TPlus +redef class AIfExpr + init init_aifexpr ( + n_kwif: nullable TKwif, + n_expr: nullable AExpr, + n_kwthen: nullable TKwthen, + n_then: nullable AExpr, + n_kwelse: nullable TKwelse, + n_else: nullable AExpr ) do - _n_plus = n_plus.as(not null) - n_plus.parent = self + _n_kwif = n_kwif.as(not null) + n_kwif.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwthen = n_kwthen.as(not null) + n_kwthen.parent = self + _n_then = n_then + if n_then != null then n_then.parent = self + _n_kwelse = n_kwelse + if n_kwelse != null then n_kwelse.parent = self + _n_else = n_else + if n_else != null then n_else.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_plus == old_child then - n_plus = new_child.as(TPlus) + if _n_kwif == old_child then + n_kwif = new_child.as(TKwif) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_kwthen == old_child then + n_kwthen = new_child.as(TKwthen) + return + end + if _n_then == old_child then + n_then = new_child.as(nullable AExpr) + return + end + if _n_kwelse == old_child then + n_kwelse = new_child.as(nullable TKwelse) + return + end + if _n_else == old_child then + n_else = new_child.as(nullable AExpr) return end end - redef fun n_plus=(node) + redef fun n_kwif=(node) do - _n_plus = node + _n_kwif = node node.parent = self end - - - redef fun visit_all(v: Visitor) + redef fun n_expr=(node) do - v.enter_visit(_n_plus) + _n_expr = node + node.parent = self end -end -redef class AMinusMethid - init init_aminusmethid ( - n_minus: nullable TMinus - ) + redef fun n_kwthen=(node) do - _n_minus = n_minus.as(not null) - n_minus.parent = self + _n_kwthen = node + node.parent = self end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_then=(node) do - if _n_minus == old_child then - n_minus = new_child.as(TMinus) - return - end + _n_then = node + if node != null then node.parent = self end - - redef fun n_minus=(node) + redef fun n_kwelse=(node) do - _n_minus = node - node.parent = self + _n_kwelse = node + if node != null then node.parent = self + end + redef fun n_else=(node) + do + _n_else = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_minus) + v.enter_visit(_n_kwif) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwthen) + v.enter_visit(_n_then) + v.enter_visit(_n_kwelse) + v.enter_visit(_n_else) end end -redef class AStarMethid - init init_astarmethid ( - n_star: nullable TStar +redef class AIfexprExpr + init init_aifexprexpr ( + n_kwif: nullable TKwif, + n_expr: nullable AExpr, + n_kwthen: nullable TKwthen, + n_then: nullable AExpr, + n_kwelse: nullable TKwelse, + n_else: nullable AExpr ) do - _n_star = n_star.as(not null) - n_star.parent = self + _n_kwif = n_kwif.as(not null) + n_kwif.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwthen = n_kwthen.as(not null) + n_kwthen.parent = self + _n_then = n_then.as(not null) + n_then.parent = self + _n_kwelse = n_kwelse.as(not null) + n_kwelse.parent = self + _n_else = n_else.as(not null) + n_else.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_star == old_child then - n_star = new_child.as(TStar) + if _n_kwif == old_child then + n_kwif = new_child.as(TKwif) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_kwthen == old_child then + n_kwthen = new_child.as(TKwthen) + return + end + if _n_then == old_child then + n_then = new_child.as(AExpr) + return + end + if _n_kwelse == old_child then + n_kwelse = new_child.as(TKwelse) + return + end + if _n_else == old_child then + n_else = new_child.as(AExpr) return end end - redef fun n_star=(node) + redef fun n_kwif=(node) do - _n_star = node + _n_kwif = node node.parent = self end - - - redef fun visit_all(v: Visitor) + redef fun n_expr=(node) do - v.enter_visit(_n_star) + _n_expr = node + node.parent = self end -end -redef class ASlashMethid - init init_aslashmethid ( - n_slash: nullable TSlash - ) + redef fun n_kwthen=(node) do - _n_slash = n_slash.as(not null) - n_slash.parent = self + _n_kwthen = node + node.parent = self end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_then=(node) do - if _n_slash == old_child then - n_slash = new_child.as(TSlash) - return - end + _n_then = node + node.parent = self end - - redef fun n_slash=(node) + redef fun n_kwelse=(node) + do + _n_kwelse = node + node.parent = self + end + redef fun n_else=(node) do - _n_slash = node + _n_else = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_slash) + v.enter_visit(_n_kwif) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwthen) + v.enter_visit(_n_then) + v.enter_visit(_n_kwelse) + v.enter_visit(_n_else) end end -redef class APercentMethid - init init_apercentmethid ( - n_percent: nullable TPercent +redef class AWhileExpr + init init_awhileexpr ( + n_kwwhile: nullable TKwwhile, + n_expr: nullable AExpr, + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_label: nullable ALabel ) do - _n_percent = n_percent.as(not null) - n_percent.parent = self + _n_kwwhile = n_kwwhile.as(not null) + n_kwwhile.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwdo = n_kwdo.as(not null) + n_kwdo.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_percent == old_child then - n_percent = new_child.as(TPercent) + if _n_kwwhile == old_child then + n_kwwhile = new_child.as(TKwwhile) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_kwdo == old_child then + n_kwdo = new_child.as(TKwdo) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_percent=(node) + redef fun n_kwwhile=(node) do - _n_percent = node + _n_kwwhile = node node.parent = self end - - - redef fun visit_all(v: Visitor) + redef fun n_expr=(node) do - v.enter_visit(_n_percent) + _n_expr = node + node.parent = self end -end -redef class AEqMethid - init init_aeqmethid ( - n_eq: nullable TEq - ) + redef fun n_kwdo=(node) do - _n_eq = n_eq.as(not null) - n_eq.parent = self + _n_kwdo = node + node.parent = self end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_block=(node) do - if _n_eq == old_child then - n_eq = new_child.as(TEq) - return - end + _n_block = node + if node != null then node.parent = self end - - redef fun n_eq=(node) + redef fun n_label=(node) do - _n_eq = node - node.parent = self + _n_label = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_eq) + v.enter_visit(_n_kwwhile) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_block) + v.enter_visit(_n_label) end end -redef class ANeMethid - init init_anemethid ( - n_ne: nullable TNe +redef class ALoopExpr + init init_aloopexpr ( + n_kwloop: nullable TKwloop, + n_block: nullable AExpr, + n_label: nullable ALabel ) do - _n_ne = n_ne.as(not null) - n_ne.parent = self + _n_kwloop = n_kwloop.as(not null) + n_kwloop.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_ne == old_child then - n_ne = new_child.as(TNe) + if _n_kwloop == old_child then + n_kwloop = new_child.as(TKwloop) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_ne=(node) + redef fun n_kwloop=(node) do - _n_ne = node + _n_kwloop = node node.parent = self end + redef fun n_block=(node) + do + _n_block = node + if node != null then node.parent = self + end + redef fun n_label=(node) + do + _n_label = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_ne) + v.enter_visit(_n_kwloop) + v.enter_visit(_n_block) + v.enter_visit(_n_label) end end -redef class ALeMethid - init init_alemethid ( - n_le: nullable TLe +redef class AForExpr + init init_aforexpr ( + n_kwfor: nullable TKwfor, + n_groups: Collection[Object], # Should be Collection[AForGroup] + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_label: nullable ALabel ) do - _n_le = n_le.as(not null) - n_le.parent = self + _n_kwfor = n_kwfor.as(not null) + n_kwfor.parent = self + self.n_groups.unsafe_add_all(n_groups) + _n_kwdo = n_kwdo.as(not null) + n_kwdo.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_le == old_child then - n_le = new_child.as(TLe) + if _n_kwfor == old_child then + n_kwfor = new_child.as(TKwfor) + return + end + if n_groups.replace_child(old_child, new_child) then return + if _n_kwdo == old_child then + n_kwdo = new_child.as(TKwdo) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_le=(node) + redef fun n_kwfor=(node) do - _n_le = node + _n_kwfor = node node.parent = self end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_le) - end -end -redef class AGeMethid - init init_agemethid ( - n_ge: nullable TGe - ) + redef fun n_kwdo=(node) do - _n_ge = n_ge.as(not null) - n_ge.parent = self + _n_kwdo = node + node.parent = self end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_block=(node) do - if _n_ge == old_child then - n_ge = new_child.as(TGe) - return - end + _n_block = node + if node != null then node.parent = self end - - redef fun n_ge=(node) + redef fun n_label=(node) do - _n_ge = node - node.parent = self + _n_label = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_ge) + v.enter_visit(_n_kwfor) + n_groups.visit_all(v) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_block) + v.enter_visit(_n_label) end end -redef class ALtMethid - init init_altmethid ( - n_lt: nullable TLt +redef class AWithExpr + init init_awithexpr ( + n_kwwith: nullable TKwwith, + n_expr: nullable AExpr, + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_label: nullable ALabel ) do - _n_lt = n_lt.as(not null) - n_lt.parent = self + _n_kwwith = n_kwwith.as(not null) + n_kwwith.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwdo = n_kwdo.as(not null) + n_kwdo.parent = self + _n_block = n_block + if n_block != null then n_block.parent = self + _n_label = n_label + if n_label != null then n_label.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_lt == old_child then - n_lt = new_child.as(TLt) + if _n_kwwith == old_child then + n_kwwith = new_child.as(TKwwith) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_kwdo == old_child then + n_kwdo = new_child.as(TKwdo) + return + end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end + if _n_label == old_child then + n_label = new_child.as(nullable ALabel) return end end - redef fun n_lt=(node) + redef fun n_kwwith=(node) do - _n_lt = node + _n_kwwith = node node.parent = self end - - - redef fun visit_all(v: Visitor) + redef fun n_expr=(node) do - v.enter_visit(_n_lt) + _n_expr = node + node.parent = self end -end -redef class AGtMethid - init init_agtmethid ( - n_gt: nullable TGt - ) + redef fun n_kwdo=(node) do - _n_gt = n_gt.as(not null) - n_gt.parent = self + _n_kwdo = node + node.parent = self end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_block=(node) do - if _n_gt == old_child then - n_gt = new_child.as(TGt) - return - end + _n_block = node + if node != null then node.parent = self end - - redef fun n_gt=(node) + redef fun n_label=(node) do - _n_gt = node - node.parent = self + _n_label = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_gt) + v.enter_visit(_n_kwwith) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_block) + v.enter_visit(_n_label) end end -redef class ALlMethid - init init_allmethid ( - n_ll: nullable TLl +redef class AAssertExpr + init init_aassertexpr ( + n_kwassert: nullable TKwassert, + n_id: nullable TId, + n_expr: nullable AExpr, + n_kwelse: nullable TKwelse, + n_else: nullable AExpr ) do - _n_ll = n_ll.as(not null) - n_ll.parent = self + _n_kwassert = n_kwassert.as(not null) + n_kwassert.parent = self + _n_id = n_id + if n_id != null then n_id.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwelse = n_kwelse + if n_kwelse != null then n_kwelse.parent = self + _n_else = n_else + if n_else != null then n_else.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_ll == old_child then - n_ll = new_child.as(TLl) + if _n_kwassert == old_child then + n_kwassert = new_child.as(TKwassert) + return + end + if _n_id == old_child then + n_id = new_child.as(nullable TId) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_kwelse == old_child then + n_kwelse = new_child.as(nullable TKwelse) + return + end + if _n_else == old_child then + n_else = new_child.as(nullable AExpr) return end end - redef fun n_ll=(node) + redef fun n_kwassert=(node) do - _n_ll = node + _n_kwassert = node node.parent = self end - - - redef fun visit_all(v: Visitor) + redef fun n_id=(node) do - v.enter_visit(_n_ll) + _n_id = node + if node != null then node.parent = self end -end -redef class AGgMethid - init init_aggmethid ( - n_gg: nullable TGg - ) + redef fun n_expr=(node) do - _n_gg = n_gg.as(not null) - n_gg.parent = self + _n_expr = node + node.parent = self end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_kwelse=(node) do - if _n_gg == old_child then - n_gg = new_child.as(TGg) - return - end + _n_kwelse = node + if node != null then node.parent = self end - - redef fun n_gg=(node) + redef fun n_else=(node) do - _n_gg = node - node.parent = self + _n_else = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_gg) + v.enter_visit(_n_kwassert) + v.enter_visit(_n_id) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwelse) + v.enter_visit(_n_else) end end -redef class ABraMethid - init init_abramethid ( - n_obra: nullable TObra, - n_cbra: nullable TCbra +redef class AOnceExpr + init init_aonceexpr ( + n_kwonce: nullable TKwonce, + n_expr: nullable AExpr ) do - _n_obra = n_obra.as(not null) - n_obra.parent = self - _n_cbra = n_cbra.as(not null) - n_cbra.parent = self + _n_kwonce = n_kwonce.as(not null) + n_kwonce.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_obra == old_child then - n_obra = new_child.as(TObra) + if _n_kwonce == old_child then + n_kwonce = new_child.as(TKwonce) return end - if _n_cbra == old_child then - n_cbra = new_child.as(TCbra) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_obra=(node) + redef fun n_kwonce=(node) do - _n_obra = node + _n_kwonce = node node.parent = self end - redef fun n_cbra=(node) + redef fun n_expr=(node) do - _n_cbra = node + _n_expr = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_obra) - v.enter_visit(_n_cbra) + v.enter_visit(_n_kwonce) + v.enter_visit(_n_expr) end end -redef class AStarshipMethid - init init_astarshipmethid ( - n_starship: nullable TStarship +redef class ASendExpr + init init_asendexpr ( + n_expr: nullable AExpr ) do - _n_starship = n_starship.as(not null) - n_starship.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_starship == old_child then - n_starship = new_child.as(TStarship) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_starship=(node) + redef fun n_expr=(node) do - _n_starship = node + _n_expr = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_starship) + v.enter_visit(_n_expr) end end -redef class AAssignMethid - init init_aassignmethid ( - n_id: nullable TId, - n_assign: nullable TAssign +redef class ABinopExpr + init init_abinopexpr ( + n_expr: nullable AExpr, + n_expr2: nullable AExpr ) do - _n_id = n_id.as(not null) - n_id.parent = self - _n_assign = n_assign.as(not null) - n_assign.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_assign == old_child then - n_assign = new_child.as(TAssign) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_id=(node) + redef fun n_expr=(node) do - _n_id = node + _n_expr = node node.parent = self end - redef fun n_assign=(node) + redef fun n_expr2=(node) do - _n_assign = node + _n_expr2 = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) - v.enter_visit(_n_assign) + v.enter_visit(_n_expr) + v.enter_visit(_n_expr2) end end -redef class ABraassignMethid - init init_abraassignmethid ( - n_obra: nullable TObra, - n_cbra: nullable TCbra, - n_assign: nullable TAssign +redef class AOrExpr + init init_aorexpr ( + n_expr: nullable AExpr, + n_op: nullable TKwor, + n_expr2: nullable AExpr ) do - _n_obra = n_obra.as(not null) - n_obra.parent = self - _n_cbra = n_cbra.as(not null) - n_cbra.parent = self - _n_assign = n_assign.as(not null) - n_assign.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_obra == old_child then - n_obra = new_child.as(TObra) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_cbra == old_child then - n_cbra = new_child.as(TCbra) + if _n_op == old_child then + n_op = new_child.as(TKwor) return end - if _n_assign == old_child then - n_assign = new_child.as(TAssign) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_obra=(node) + redef fun n_expr=(node) do - _n_obra = node + _n_expr = node node.parent = self end - redef fun n_cbra=(node) + redef fun n_op=(node) do - _n_cbra = node + _n_op = node node.parent = self end - redef fun n_assign=(node) + redef fun n_expr2=(node) do - _n_assign = node + _n_expr2 = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_obra) - v.enter_visit(_n_cbra) - v.enter_visit(_n_assign) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class ASignature - init init_asignature ( - n_opar: nullable TOpar, - n_params: Collection[Object], # Should be Collection[AParam] - n_cpar: nullable TCpar, - n_type: nullable AType +redef class AAndExpr + init init_aandexpr ( + n_expr: nullable AExpr, + n_op: nullable TKwand, + n_expr2: nullable AExpr ) do - _n_opar = n_opar - if n_opar != null then n_opar.parent = self - self.n_params.unsafe_add_all(n_params) - _n_cpar = n_cpar - if n_cpar != null then n_cpar.parent = self - _n_type = n_type - if n_type != null then n_type.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_opar == old_child then - n_opar = new_child.as(nullable TOpar) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if n_params.replace_child(old_child, new_child) then return - if _n_cpar == old_child then - n_cpar = new_child.as(nullable TCpar) + if _n_op == old_child then + n_op = new_child.as(TKwand) return end - if _n_type == old_child then - n_type = new_child.as(nullable AType) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_opar=(node) + redef fun n_expr=(node) do - _n_opar = node - if node != null then node.parent = self + _n_expr = node + node.parent = self end - redef fun n_cpar=(node) + redef fun n_op=(node) do - _n_cpar = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_type=(node) + redef fun n_expr2=(node) do - _n_type = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_opar) - n_params.visit_all(v) - v.enter_visit(_n_cpar) - v.enter_visit(_n_type) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AParam - init init_aparam ( - n_id: nullable TId, - n_type: nullable AType, - n_dotdotdot: nullable TDotdotdot, - n_annotations: nullable AAnnotations +redef class AOrElseExpr + init init_aorelseexpr ( + n_expr: nullable AExpr, + n_op: nullable TKwor, + n_kwelse: nullable TKwelse, + n_expr2: nullable AExpr ) do - _n_id = n_id.as(not null) - n_id.parent = self - _n_type = n_type - if n_type != null then n_type.parent = self - _n_dotdotdot = n_dotdotdot - if n_dotdotdot != null then n_dotdotdot.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_kwelse = n_kwelse.as(not null) + n_kwelse.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_type == old_child then - n_type = new_child.as(nullable AType) + if _n_op == old_child then + n_op = new_child.as(TKwor) return end - if _n_dotdotdot == old_child then - n_dotdotdot = new_child.as(nullable TDotdotdot) + if _n_kwelse == old_child then + n_kwelse = new_child.as(TKwelse) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_id=(node) + redef fun n_expr=(node) do - _n_id = node + _n_expr = node node.parent = self end - redef fun n_type=(node) + redef fun n_op=(node) do - _n_type = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_dotdotdot=(node) + redef fun n_kwelse=(node) do - _n_dotdotdot = node - if node != null then node.parent = self + _n_kwelse = node + node.parent = self end - redef fun n_annotations=(node) + redef fun n_expr2=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) - v.enter_visit(_n_type) - v.enter_visit(_n_dotdotdot) - v.enter_visit(_n_annotations) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_kwelse) + v.enter_visit(_n_expr2) end end -redef class AType - init init_atype ( - n_kwnullable: nullable TKwnullable, - n_id: nullable TClassid, - n_types: Collection[Object], # Should be Collection[AType] - n_annotations: nullable AAnnotations +redef class AImpliesExpr + init init_aimpliesexpr ( + n_expr: nullable AExpr, + n_op: nullable TKwimplies, + n_expr2: nullable AExpr ) do - _n_kwnullable = n_kwnullable - if n_kwnullable != null then n_kwnullable.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - self.n_types.unsafe_add_all(n_types) - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwnullable == old_child then - n_kwnullable = new_child.as(nullable TKwnullable) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TClassid) + if _n_op == old_child then + n_op = new_child.as(TKwimplies) return end - if n_types.replace_child(old_child, new_child) then return - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwnullable=(node) + redef fun n_expr=(node) do - _n_kwnullable = node - if node != null then node.parent = self + _n_expr = node + node.parent = self end - redef fun n_id=(node) + redef fun n_op=(node) do - _n_id = node + _n_op = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_expr2=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwnullable) - v.enter_visit(_n_id) - n_types.visit_all(v) - v.enter_visit(_n_annotations) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class ALabel - init init_alabel ( - n_kwlabel: nullable TKwlabel, - n_id: nullable TId +redef class ANotExpr + init init_anotexpr ( + n_kwnot: nullable TKwnot, + n_expr: nullable AExpr ) do - _n_kwlabel = n_kwlabel.as(not null) - n_kwlabel.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_kwnot = n_kwnot.as(not null) + n_kwnot.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwlabel == old_child then - n_kwlabel = new_child.as(TKwlabel) + if _n_kwnot == old_child then + n_kwnot = new_child.as(TKwnot) return end - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_kwlabel=(node) + redef fun n_kwnot=(node) do - _n_kwlabel = node + _n_kwnot = node node.parent = self end - redef fun n_id=(node) + redef fun n_expr=(node) do - _n_id = node + _n_expr = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwlabel) - v.enter_visit(_n_id) + v.enter_visit(_n_kwnot) + v.enter_visit(_n_expr) end end -redef class ABlockExpr - init init_ablockexpr ( - n_expr: Collection[Object], # Should be Collection[AExpr] - n_kwend: nullable TKwend +redef class AEqExpr + init init_aeqexpr ( + n_expr: nullable AExpr, + n_op: nullable TEq, + n_expr2: nullable AExpr ) - do - self.n_expr.unsafe_add_all(n_expr) - _n_kwend = n_kwend - if n_kwend != null then n_kwend.parent = self + do + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if n_expr.replace_child(old_child, new_child) then return - if _n_kwend == old_child then - n_kwend = new_child.as(nullable TKwend) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_op == old_child then + n_op = new_child.as(TEq) + return + end + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwend=(node) + redef fun n_expr=(node) do - _n_kwend = node - if node != null then node.parent = self + _n_expr = node + node.parent = self + end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + redef fun n_expr2=(node) + do + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - n_expr.visit_all(v) - v.enter_visit(_n_kwend) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AVardeclExpr - init init_avardeclexpr ( - n_kwvar: nullable TKwvar, - n_id: nullable TId, - n_type: nullable AType, - n_assign: nullable TAssign, +redef class ANeExpr + init init_aneexpr ( n_expr: nullable AExpr, - n_annotations: nullable AAnnotations + n_op: nullable TNe, + n_expr2: nullable AExpr ) do - _n_kwvar = n_kwvar.as(not null) - n_kwvar.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_type = n_type - if n_type != null then n_type.parent = self - _n_assign = n_assign - if n_assign != null then n_assign.parent = self - _n_expr = n_expr - if n_expr != null then n_expr.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwvar == old_child then - n_kwvar = new_child.as(TKwvar) - return - end - if _n_id == old_child then - n_id = new_child.as(TId) - return - end - if _n_type == old_child then - n_type = new_child.as(nullable AType) - return - end - if _n_assign == old_child then - n_assign = new_child.as(nullable TAssign) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_expr == old_child then - n_expr = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TNe) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwvar=(node) + redef fun n_expr=(node) do - _n_kwvar = node + _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_op=(node) do - _n_id = node + _n_op = node node.parent = self end - redef fun n_type=(node) - do - _n_type = node - if node != null then node.parent = self - end - redef fun n_assign=(node) - do - _n_assign = node - if node != null then node.parent = self - end - redef fun n_expr=(node) - do - _n_expr = node - if node != null then node.parent = self - end - redef fun n_annotations=(node) + redef fun n_expr2=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwvar) - v.enter_visit(_n_id) - v.enter_visit(_n_type) - v.enter_visit(_n_assign) v.enter_visit(_n_expr) - v.enter_visit(_n_annotations) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AReturnExpr - init init_areturnexpr ( - n_kwreturn: nullable TKwreturn, - n_expr: nullable AExpr +redef class ALtExpr + init init_altexpr ( + n_expr: nullable AExpr, + n_op: nullable TLt, + n_expr2: nullable AExpr ) do - _n_kwreturn = n_kwreturn - if n_kwreturn != null then n_kwreturn.parent = self - _n_expr = n_expr - if n_expr != null then n_expr.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwreturn == old_child then - n_kwreturn = new_child.as(nullable TKwreturn) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_expr == old_child then - n_expr = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TLt) + return + end + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwreturn=(node) - do - _n_kwreturn = node - if node != null then node.parent = self - end redef fun n_expr=(node) do _n_expr = node - if node != null then node.parent = self + node.parent = self + end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + redef fun n_expr2=(node) + do + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwreturn) v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class ABreakExpr - init init_abreakexpr ( - n_kwbreak: nullable TKwbreak, - n_label: nullable ALabel, - n_expr: nullable AExpr +redef class ALeExpr + init init_aleexpr ( + n_expr: nullable AExpr, + n_op: nullable TLe, + n_expr2: nullable AExpr ) do - _n_kwbreak = n_kwbreak.as(not null) - n_kwbreak.parent = self - _n_label = n_label - if n_label != null then n_label.parent = self - _n_expr = n_expr - if n_expr != null then n_expr.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwbreak == old_child then - n_kwbreak = new_child.as(TKwbreak) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_label == old_child then - n_label = new_child.as(nullable ALabel) + if _n_op == old_child then + n_op = new_child.as(TLe) return end - if _n_expr == old_child then - n_expr = new_child.as(nullable AExpr) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwbreak=(node) + redef fun n_expr=(node) do - _n_kwbreak = node + _n_expr = node node.parent = self end - redef fun n_label=(node) + redef fun n_op=(node) do - _n_label = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_expr=(node) + redef fun n_expr2=(node) do - _n_expr = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwbreak) - v.enter_visit(_n_label) v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AAbortExpr - init init_aabortexpr ( - n_kwabort: nullable TKwabort +redef class ALlExpr + init init_allexpr ( + n_expr: nullable AExpr, + n_op: nullable TLl, + n_expr2: nullable AExpr ) do - _n_kwabort = n_kwabort.as(not null) - n_kwabort.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwabort == old_child then - n_kwabort = new_child.as(TKwabort) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_op == old_child then + n_op = new_child.as(TLl) + return + end + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwabort=(node) + redef fun n_expr=(node) do - _n_kwabort = node + _n_expr = node + node.parent = self + end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + redef fun n_expr2=(node) + do + _n_expr2 = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwabort) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AContinueExpr - init init_acontinueexpr ( - n_kwcontinue: nullable TKwcontinue, - n_label: nullable ALabel, - n_expr: nullable AExpr +redef class AGtExpr + init init_agtexpr ( + n_expr: nullable AExpr, + n_op: nullable TGt, + n_expr2: nullable AExpr ) - do - _n_kwcontinue = n_kwcontinue - if n_kwcontinue != null then n_kwcontinue.parent = self - _n_label = n_label - if n_label != null then n_label.parent = self - _n_expr = n_expr - if n_expr != null then n_expr.parent = self + do + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwcontinue == old_child then - n_kwcontinue = new_child.as(nullable TKwcontinue) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_label == old_child then - n_label = new_child.as(nullable ALabel) + if _n_op == old_child then + n_op = new_child.as(TGt) return end - if _n_expr == old_child then - n_expr = new_child.as(nullable AExpr) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwcontinue=(node) + redef fun n_expr=(node) do - _n_kwcontinue = node - if node != null then node.parent = self + _n_expr = node + node.parent = self end - redef fun n_label=(node) + redef fun n_op=(node) do - _n_label = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_expr=(node) + redef fun n_expr2=(node) do - _n_expr = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwcontinue) - v.enter_visit(_n_label) v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class ADoExpr - init init_adoexpr ( - n_kwdo: nullable TKwdo, - n_block: nullable AExpr, - n_label: nullable ALabel +redef class AGeExpr + init init_ageexpr ( + n_expr: nullable AExpr, + n_op: nullable TGe, + n_expr2: nullable AExpr ) do - _n_kwdo = n_kwdo.as(not null) - n_kwdo.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self - _n_label = n_label - if n_label != null then n_label.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwdo == old_child then - n_kwdo = new_child.as(TKwdo) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TGe) return end - if _n_label == old_child then - n_label = new_child.as(nullable ALabel) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwdo=(node) + redef fun n_expr=(node) do - _n_kwdo = node + _n_expr = node node.parent = self end - redef fun n_block=(node) + redef fun n_op=(node) do - _n_block = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_label=(node) + redef fun n_expr2=(node) do - _n_label = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwdo) - v.enter_visit(_n_block) - v.enter_visit(_n_label) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AIfExpr - init init_aifexpr ( - n_kwif: nullable TKwif, +redef class AGgExpr + init init_aggexpr ( n_expr: nullable AExpr, - n_then: nullable AExpr, - n_else: nullable AExpr + n_op: nullable TGg, + n_expr2: nullable AExpr ) do - _n_kwif = n_kwif.as(not null) - n_kwif.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_then = n_then - if n_then != null then n_then.parent = self - _n_else = n_else - if n_else != null then n_else.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwif == old_child then - n_kwif = new_child.as(TKwif) - return - end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_then == old_child then - n_then = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TGg) return end - if _n_else == old_child then - n_else = new_child.as(nullable AExpr) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwif=(node) - do - _n_kwif = node - node.parent = self - end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_then=(node) + redef fun n_op=(node) do - _n_then = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_else=(node) + redef fun n_expr2=(node) do - _n_else = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwif) v.enter_visit(_n_expr) - v.enter_visit(_n_then) - v.enter_visit(_n_else) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AIfexprExpr - init init_aifexprexpr ( - n_kwif: nullable TKwif, +redef class AIsaExpr + init init_aisaexpr ( n_expr: nullable AExpr, - n_kwthen: nullable TKwthen, - n_then: nullable AExpr, - n_kwelse: nullable TKwelse, - n_else: nullable AExpr + n_kwisa: nullable TKwisa, + n_type: nullable AType ) do - _n_kwif = n_kwif.as(not null) - n_kwif.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_kwthen = n_kwthen.as(not null) - n_kwthen.parent = self - _n_then = n_then.as(not null) - n_then.parent = self - _n_kwelse = n_kwelse.as(not null) - n_kwelse.parent = self - _n_else = n_else.as(not null) - n_else.parent = self + _n_kwisa = n_kwisa.as(not null) + n_kwisa.parent = self + _n_type = n_type.as(not null) + n_type.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwif == old_child then - n_kwif = new_child.as(TKwif) - return - end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_kwthen == old_child then - n_kwthen = new_child.as(TKwthen) - return - end - if _n_then == old_child then - n_then = new_child.as(AExpr) - return - end - if _n_kwelse == old_child then - n_kwelse = new_child.as(TKwelse) + if _n_kwisa == old_child then + n_kwisa = new_child.as(TKwisa) return end - if _n_else == old_child then - n_else = new_child.as(AExpr) + if _n_type == old_child then + n_type = new_child.as(AType) return end end - redef fun n_kwif=(node) - do - _n_kwif = node - node.parent = self - end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_kwthen=(node) - do - _n_kwthen = node - node.parent = self - end - redef fun n_then=(node) - do - _n_then = node - node.parent = self - end - redef fun n_kwelse=(node) + redef fun n_kwisa=(node) do - _n_kwelse = node + _n_kwisa = node node.parent = self end - redef fun n_else=(node) + redef fun n_type=(node) do - _n_else = node + _n_type = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwif) v.enter_visit(_n_expr) - v.enter_visit(_n_kwthen) - v.enter_visit(_n_then) - v.enter_visit(_n_kwelse) - v.enter_visit(_n_else) + v.enter_visit(_n_kwisa) + v.enter_visit(_n_type) end end -redef class AWhileExpr - init init_awhileexpr ( - n_kwwhile: nullable TKwwhile, +redef class APlusExpr + init init_aplusexpr ( n_expr: nullable AExpr, - n_kwdo: nullable TKwdo, - n_block: nullable AExpr, - n_label: nullable ALabel + n_op: nullable TPlus, + n_expr2: nullable AExpr ) do - _n_kwwhile = n_kwwhile.as(not null) - n_kwwhile.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_kwdo = n_kwdo.as(not null) - n_kwdo.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self - _n_label = n_label - if n_label != null then n_label.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwwhile == old_child then - n_kwwhile = new_child.as(TKwwhile) - return - end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_kwdo == old_child then - n_kwdo = new_child.as(TKwdo) - return - end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TPlus) return end - if _n_label == old_child then - n_label = new_child.as(nullable ALabel) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwwhile=(node) - do - _n_kwwhile = node - node.parent = self - end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_kwdo=(node) + redef fun n_op=(node) do - _n_kwdo = node + _n_op = node node.parent = self end - redef fun n_block=(node) - do - _n_block = node - if node != null then node.parent = self - end - redef fun n_label=(node) + redef fun n_expr2=(node) do - _n_label = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwwhile) v.enter_visit(_n_expr) - v.enter_visit(_n_kwdo) - v.enter_visit(_n_block) - v.enter_visit(_n_label) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end -end -redef class ALoopExpr - init init_aloopexpr ( - n_kwloop: nullable TKwloop, - n_block: nullable AExpr, - n_label: nullable ALabel +end +redef class AMinusExpr + init init_aminusexpr ( + n_expr: nullable AExpr, + n_op: nullable TMinus, + n_expr2: nullable AExpr ) do - _n_kwloop = n_kwloop.as(not null) - n_kwloop.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self - _n_label = n_label - if n_label != null then n_label.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwloop == old_child then - n_kwloop = new_child.as(TKwloop) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TMinus) return end - if _n_label == old_child then - n_label = new_child.as(nullable ALabel) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwloop=(node) + redef fun n_expr=(node) do - _n_kwloop = node + _n_expr = node node.parent = self end - redef fun n_block=(node) + redef fun n_op=(node) do - _n_block = node - if node != null then node.parent = self + _n_op = node + node.parent = self end - redef fun n_label=(node) + redef fun n_expr2=(node) do - _n_label = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwloop) - v.enter_visit(_n_block) - v.enter_visit(_n_label) + v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AForExpr - init init_aforexpr ( - n_kwfor: nullable TKwfor, - n_ids: Collection[Object], # Should be Collection[TId] +redef class AStarshipExpr + init init_astarshipexpr ( n_expr: nullable AExpr, - n_kwdo: nullable TKwdo, - n_block: nullable AExpr, - n_label: nullable ALabel + n_op: nullable TStarship, + n_expr2: nullable AExpr ) do - _n_kwfor = n_kwfor.as(not null) - n_kwfor.parent = self - self.n_ids.unsafe_add_all(n_ids) _n_expr = n_expr.as(not null) n_expr.parent = self - _n_kwdo = n_kwdo.as(not null) - n_kwdo.parent = self - _n_block = n_block - if n_block != null then n_block.parent = self - _n_label = n_label - if n_label != null then n_label.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwfor == old_child then - n_kwfor = new_child.as(TKwfor) - return - end - if n_ids.replace_child(old_child, new_child) then return if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_kwdo == old_child then - n_kwdo = new_child.as(TKwdo) - return - end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TStarship) return end - if _n_label == old_child then - n_label = new_child.as(nullable ALabel) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwfor=(node) - do - _n_kwfor = node - node.parent = self - end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_kwdo=(node) + redef fun n_op=(node) do - _n_kwdo = node + _n_op = node node.parent = self end - redef fun n_block=(node) - do - _n_block = node - if node != null then node.parent = self - end - redef fun n_label=(node) + redef fun n_expr2=(node) do - _n_label = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwfor) - n_ids.visit_all(v) v.enter_visit(_n_expr) - v.enter_visit(_n_kwdo) - v.enter_visit(_n_block) - v.enter_visit(_n_label) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AAssertExpr - init init_aassertexpr ( - n_kwassert: nullable TKwassert, - n_id: nullable TId, +redef class AStarExpr + init init_astarexpr ( n_expr: nullable AExpr, - n_else: nullable AExpr + n_op: nullable TStar, + n_expr2: nullable AExpr ) do - _n_kwassert = n_kwassert.as(not null) - n_kwassert.parent = self - _n_id = n_id - if n_id != null then n_id.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_else = n_else - if n_else != null then n_else.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwassert == old_child then - n_kwassert = new_child.as(TKwassert) - return - end - if _n_id == old_child then - n_id = new_child.as(nullable TId) - return - end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_else == old_child then - n_else = new_child.as(nullable AExpr) + if _n_op == old_child then + n_op = new_child.as(TStar) + return + end + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end end - redef fun n_kwassert=(node) + redef fun n_expr=(node) do - _n_kwassert = node + _n_expr = node node.parent = self end - redef fun n_id=(node) - do - _n_id = node - if node != null then node.parent = self - end - redef fun n_expr=(node) + redef fun n_op=(node) do - _n_expr = node + _n_op = node node.parent = self end - redef fun n_else=(node) + redef fun n_expr2=(node) do - _n_else = node - if node != null then node.parent = self + _n_expr2 = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwassert) - v.enter_visit(_n_id) v.enter_visit(_n_expr) - v.enter_visit(_n_else) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class AOnceExpr - init init_aonceexpr ( - n_kwonce: nullable TKwonce, - n_expr: nullable AExpr +redef class AStarstarExpr + init init_astarstarexpr ( + n_expr: nullable AExpr, + n_op: nullable TStarstar, + n_expr2: nullable AExpr ) do - _n_kwonce = n_kwonce.as(not null) - n_kwonce.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwonce == old_child then - n_kwonce = new_child.as(TKwonce) - return - end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end + if _n_op == old_child then + n_op = new_child.as(TStarstar) + return + end + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) + return + end end - redef fun n_kwonce=(node) + redef fun n_expr=(node) do - _n_kwonce = node + _n_expr = node node.parent = self end - redef fun n_expr=(node) + redef fun n_op=(node) do - _n_expr = node + _n_op = node + node.parent = self + end + redef fun n_expr2=(node) + do + _n_expr2 = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwonce) v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class ASendExpr - init init_asendexpr ( - n_expr: nullable AExpr +redef class ASlashExpr + init init_aslashexpr ( + n_expr: nullable AExpr, + n_op: nullable TSlash, + n_expr2: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -3753,6 +4752,14 @@ redef class ASendExpr n_expr = new_child.as(AExpr) return end + if _n_op == old_child then + n_op = new_child.as(TSlash) + return + end + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) + return + end end redef fun n_expr=(node) @@ -3760,21 +4767,36 @@ redef class ASendExpr _n_expr = node node.parent = self end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end + redef fun n_expr2=(node) + do + _n_expr2 = node + node.parent = self + end redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) + v.enter_visit(_n_op) + v.enter_visit(_n_expr2) end end -redef class ABinopExpr - init init_abinopexpr ( +redef class APercentExpr + init init_apercentexpr ( n_expr: nullable AExpr, + n_op: nullable TPercent, n_expr2: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self _n_expr2 = n_expr2.as(not null) n_expr2.parent = self end @@ -3785,6 +4807,10 @@ redef class ABinopExpr n_expr = new_child.as(AExpr) return end + if _n_op == old_child then + n_op = new_child.as(TPercent) + return + end if _n_expr2 == old_child then n_expr2 = new_child.as(AExpr) return @@ -3796,6 +4822,11 @@ redef class ABinopExpr _n_expr = node node.parent = self end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end redef fun n_expr2=(node) do _n_expr2 = node @@ -3806,17 +4837,21 @@ redef class ABinopExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) + v.enter_visit(_n_op) v.enter_visit(_n_expr2) end end -redef class AOrExpr - init init_aorexpr ( +redef class APipeExpr + init init_apipeexpr ( n_expr: nullable AExpr, + n_op: nullable TPipe, n_expr2: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self _n_expr2 = n_expr2.as(not null) n_expr2.parent = self end @@ -3827,6 +4862,10 @@ redef class AOrExpr n_expr = new_child.as(AExpr) return end + if _n_op == old_child then + n_op = new_child.as(TPipe) + return + end if _n_expr2 == old_child then n_expr2 = new_child.as(AExpr) return @@ -3838,6 +4877,11 @@ redef class AOrExpr _n_expr = node node.parent = self end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end redef fun n_expr2=(node) do _n_expr2 = node @@ -3848,17 +4892,21 @@ redef class AOrExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) + v.enter_visit(_n_op) v.enter_visit(_n_expr2) end end -redef class AAndExpr - init init_aandexpr ( +redef class ACaretExpr + init init_acaretexpr ( n_expr: nullable AExpr, + n_op: nullable TCaret, n_expr2: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self _n_expr2 = n_expr2.as(not null) n_expr2.parent = self end @@ -3869,6 +4917,10 @@ redef class AAndExpr n_expr = new_child.as(AExpr) return end + if _n_op == old_child then + n_op = new_child.as(TCaret) + return + end if _n_expr2 == old_child then n_expr2 = new_child.as(AExpr) return @@ -3880,6 +4932,11 @@ redef class AAndExpr _n_expr = node node.parent = self end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end redef fun n_expr2=(node) do _n_expr2 = node @@ -3890,17 +4947,21 @@ redef class AAndExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) + v.enter_visit(_n_op) v.enter_visit(_n_expr2) end end -redef class AOrElseExpr - init init_aorelseexpr ( +redef class AAmpExpr + init init_aampexpr ( n_expr: nullable AExpr, + n_op: nullable TAmp, n_expr2: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self + _n_op = n_op.as(not null) + n_op.parent = self _n_expr2 = n_expr2.as(not null) n_expr2.parent = self end @@ -3911,6 +4972,10 @@ redef class AOrElseExpr n_expr = new_child.as(AExpr) return end + if _n_op == old_child then + n_op = new_child.as(TAmp) + return + end if _n_expr2 == old_child then n_expr2 = new_child.as(AExpr) return @@ -3922,6 +4987,11 @@ redef class AOrElseExpr _n_expr = node node.parent = self end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end redef fun n_expr2=(node) do _n_expr2 = node @@ -3932,67 +5002,68 @@ redef class AOrElseExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) + v.enter_visit(_n_op) v.enter_visit(_n_expr2) end end -redef class AImpliesExpr - init init_aimpliesexpr ( - n_expr: nullable AExpr, - n_expr2: nullable AExpr +redef class AUminusExpr + init init_auminusexpr ( + n_op: nullable TMinus, + n_expr: nullable AExpr ) do + _n_op = n_op.as(not null) + n_op.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_op == old_child then + n_op = new_child.as(TMinus) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_expr=(node) + redef fun n_op=(node) do - _n_expr = node + _n_op = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_expr=(node) do - _n_expr2 = node + _n_expr = node node.parent = self end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_op) v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) end end -redef class ANotExpr - init init_anotexpr ( - n_kwnot: nullable TKwnot, +redef class AUplusExpr + init init_auplusexpr ( + n_op: nullable TPlus, n_expr: nullable AExpr ) do - _n_kwnot = n_kwnot.as(not null) - n_kwnot.parent = self + _n_op = n_op.as(not null) + n_op.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwnot == old_child then - n_kwnot = new_child.as(TKwnot) + if _n_op == old_child then + n_op = new_child.as(TPlus) return end if _n_expr == old_child then @@ -4001,9 +5072,9 @@ redef class ANotExpr end end - redef fun n_kwnot=(node) + redef fun n_op=(node) do - _n_kwnot = node + _n_op = node node.parent = self end redef fun n_expr=(node) @@ -4015,104 +5086,130 @@ redef class ANotExpr redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwnot) + v.enter_visit(_n_op) v.enter_visit(_n_expr) end end -redef class AEqExpr - init init_aeqexpr ( - n_expr: nullable AExpr, - n_expr2: nullable AExpr +redef class AUtildeExpr + init init_autildeexpr ( + n_op: nullable TTilde, + n_expr: nullable AExpr ) do + _n_op = n_op.as(not null) + n_op.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_op == old_child then + n_op = new_child.as(TTilde) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_expr=(node) + redef fun n_op=(node) do - _n_expr = node + _n_op = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_expr=(node) do - _n_expr2 = node + _n_expr = node node.parent = self end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_op) v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) end end -redef class ANeExpr - init init_aneexpr ( - n_expr: nullable AExpr, - n_expr2: nullable AExpr +redef class ANewExpr + init init_anewexpr ( + n_kwnew: nullable TKwnew, + n_type: nullable AType, + n_qid: nullable AQid, + n_args: nullable AExprs ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_kwnew = n_kwnew.as(not null) + n_kwnew.parent = self + _n_type = n_type.as(not null) + n_type.parent = self + _n_qid = n_qid + if n_qid != null then n_qid.parent = self + _n_args = n_args.as(not null) + n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_kwnew == old_child then + n_kwnew = new_child.as(TKwnew) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_type == old_child then + n_type = new_child.as(AType) + return + end + if _n_qid == old_child then + n_qid = new_child.as(nullable AQid) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end - redef fun n_expr=(node) + redef fun n_kwnew=(node) do - _n_expr = node + _n_kwnew = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_type=(node) do - _n_expr2 = node + _n_type = node + node.parent = self + end + redef fun n_qid=(node) + do + _n_qid = node + if node != null then node.parent = self + end + redef fun n_args=(node) + do + _n_args = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_kwnew) + v.enter_visit(_n_type) + v.enter_visit(_n_qid) + v.enter_visit(_n_args) end end -redef class ALtExpr - init init_altexpr ( +redef class AAttrExpr + init init_aattrexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_id: nullable TAttrid ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_id = n_id.as(not null) + n_id.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4121,8 +5218,8 @@ redef class ALtExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_id == old_child then + n_id = new_child.as(TAttrid) return end end @@ -4132,9 +5229,9 @@ redef class ALtExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_id=(node) do - _n_expr2 = node + _n_id = node node.parent = self end @@ -4142,19 +5239,25 @@ redef class ALtExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_id) end end -redef class ALeExpr - init init_aleexpr ( +redef class AAttrAssignExpr + init init_aattrassignexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_id: nullable TAttrid, + n_assign: nullable TAssign, + n_value: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4163,8 +5266,16 @@ redef class ALeExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_id == old_child then + n_id = new_child.as(TAttrid) + return + end + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end @@ -4174,9 +5285,19 @@ redef class ALeExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_id=(node) do - _n_expr2 = node + _n_id = node + node.parent = self + end + redef fun n_assign=(node) + do + _n_assign = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end @@ -4184,19 +5305,27 @@ redef class ALeExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_id) + v.enter_visit(_n_assign) + v.enter_visit(_n_value) end end -redef class ALlExpr - init init_allexpr ( +redef class AAttrReassignExpr + init init_aattrreassignexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_id: nullable TAttrid, + n_assign_op: nullable AAssignOp, + n_value: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_assign_op = n_assign_op.as(not null) + n_assign_op.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4205,8 +5334,16 @@ redef class ALlExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_id == old_child then + n_id = new_child.as(TAttrid) + return + end + if _n_assign_op == old_child then + n_assign_op = new_child.as(AAssignOp) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end @@ -4216,9 +5353,19 @@ redef class ALlExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_id=(node) do - _n_expr2 = node + _n_id = node + node.parent = self + end + redef fun n_assign_op=(node) + do + _n_assign_op = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end @@ -4226,19 +5373,24 @@ redef class ALlExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_id) + v.enter_visit(_n_assign_op) + v.enter_visit(_n_value) end end -redef class AGtExpr - init init_agtexpr ( +redef class ACallExpr + init init_acallexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_qid: nullable AQid, + n_args: nullable AExprs ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_args = n_args.as(not null) + n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4247,8 +5399,12 @@ redef class AGtExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_qid == old_child then + n_qid = new_child.as(AQid) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end @@ -4258,9 +5414,14 @@ redef class AGtExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_qid=(node) do - _n_expr2 = node + _n_qid = node + node.parent = self + end + redef fun n_args=(node) + do + _n_args = node node.parent = self end @@ -4268,61 +5429,97 @@ redef class AGtExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_qid) + v.enter_visit(_n_args) end end -redef class AGeExpr - init init_ageexpr ( +redef class ACallrefExpr + init init_acallrefexpr ( + n_amp: nullable TAmp, n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_qid: nullable AQid, + n_args: nullable AExprs ) do + _n_amp = n_amp.as(not null) + n_amp.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_args = n_args.as(not null) + n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_amp == old_child then + n_amp = new_child.as(TAmp) + return + end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_qid == old_child then + n_qid = new_child.as(AQid) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end + redef fun n_amp=(node) + do + _n_amp = node + node.parent = self + end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_qid=(node) do - _n_expr2 = node + _n_qid = node + node.parent = self + end + redef fun n_args=(node) + do + _n_args = node node.parent = self end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_amp) v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_qid) + v.enter_visit(_n_args) end end -redef class AGgExpr - init init_aggexpr ( +redef class ACallAssignExpr + init init_acallassignexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_qid: nullable AQid, + n_args: nullable AExprs, + n_assign: nullable TAssign, + n_value: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_args = n_args.as(not null) + n_args.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4331,8 +5528,20 @@ redef class AGgExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_qid == old_child then + n_qid = new_child.as(AQid) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) + return + end + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end @@ -4342,9 +5551,24 @@ redef class AGgExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_qid=(node) do - _n_expr2 = node + _n_qid = node + node.parent = self + end + redef fun n_args=(node) + do + _n_args = node + node.parent = self + end + redef fun n_assign=(node) + do + _n_assign = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end @@ -4352,19 +5576,31 @@ redef class AGgExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_qid) + v.enter_visit(_n_args) + v.enter_visit(_n_assign) + v.enter_visit(_n_value) end end -redef class AIsaExpr - init init_aisaexpr ( +redef class ACallReassignExpr + init init_acallreassignexpr ( n_expr: nullable AExpr, - n_type: nullable AType + n_qid: nullable AQid, + n_args: nullable AExprs, + n_assign_op: nullable AAssignOp, + n_value: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_type = n_type.as(not null) - n_type.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_args = n_args.as(not null) + n_args.parent = self + _n_assign_op = n_assign_op.as(not null) + n_assign_op.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4373,8 +5609,20 @@ redef class AIsaExpr n_expr = new_child.as(AExpr) return end - if _n_type == old_child then - n_type = new_child.as(AType) + if _n_qid == old_child then + n_qid = new_child.as(AQid) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) + return + end + if _n_assign_op == old_child then + n_assign_op = new_child.as(AAssignOp) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end @@ -4384,9 +5632,24 @@ redef class AIsaExpr _n_expr = node node.parent = self end - redef fun n_type=(node) + redef fun n_qid=(node) do - _n_type = node + _n_qid = node + node.parent = self + end + redef fun n_args=(node) + do + _n_args = node + node.parent = self + end + redef fun n_assign_op=(node) + do + _n_assign_op = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end @@ -4394,61 +5657,80 @@ redef class AIsaExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_type) + v.enter_visit(_n_qid) + v.enter_visit(_n_args) + v.enter_visit(_n_assign_op) + v.enter_visit(_n_value) end end -redef class APlusExpr - init init_aplusexpr ( - n_expr: nullable AExpr, - n_expr2: nullable AExpr +redef class ASuperExpr + init init_asuperexpr ( + n_qualified: nullable AQualified, + n_kwsuper: nullable TKwsuper, + n_args: nullable AExprs ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_qualified = n_qualified + if n_qualified != null then n_qualified.parent = self + _n_kwsuper = n_kwsuper.as(not null) + n_kwsuper.parent = self + _n_args = n_args.as(not null) + n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_qualified == old_child then + n_qualified = new_child.as(nullable AQualified) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_kwsuper == old_child then + n_kwsuper = new_child.as(TKwsuper) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end - redef fun n_expr=(node) + redef fun n_qualified=(node) do - _n_expr = node + _n_qualified = node + if node != null then node.parent = self + end + redef fun n_kwsuper=(node) + do + _n_kwsuper = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_args=(node) do - _n_expr2 = node + _n_args = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_qualified) + v.enter_visit(_n_kwsuper) + v.enter_visit(_n_args) end end -redef class AMinusExpr - init init_aminusexpr ( +redef class AInitExpr + init init_ainitexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_kwinit: nullable TKwinit, + n_args: nullable AExprs ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_kwinit = n_kwinit.as(not null) + n_kwinit.parent = self + _n_args = n_args.as(not null) + n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4457,8 +5739,12 @@ redef class AMinusExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_kwinit == old_child then + n_kwinit = new_child.as(TKwinit) + return + end + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end @@ -4468,9 +5754,14 @@ redef class AMinusExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_kwinit=(node) do - _n_expr2 = node + _n_kwinit = node + node.parent = self + end + redef fun n_args=(node) + do + _n_args = node node.parent = self end @@ -4478,19 +5769,20 @@ redef class AMinusExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_kwinit) + v.enter_visit(_n_args) end end -redef class AStarshipExpr - init init_astarshipexpr ( +redef class ABraExpr + init init_abraexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_args: nullable AExprs ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_args = n_args.as(not null) + n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4499,8 +5791,8 @@ redef class AStarshipExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end @@ -4510,9 +5802,9 @@ redef class AStarshipExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_args=(node) do - _n_expr2 = node + _n_args = node node.parent = self end @@ -4520,19 +5812,25 @@ redef class AStarshipExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_args) end end -redef class AStarExpr - init init_astarexpr ( +redef class ABraAssignExpr + init init_abraassignexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_args: nullable AExprs, + n_assign: nullable TAssign, + n_value: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_args = n_args.as(not null) + n_args.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4541,8 +5839,16 @@ redef class AStarExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_args == old_child then + n_args = new_child.as(AExprs) + return + end + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end @@ -4552,9 +5858,19 @@ redef class AStarExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_args=(node) do - _n_expr2 = node + _n_args = node + node.parent = self + end + redef fun n_assign=(node) + do + _n_assign = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end @@ -4562,19 +5878,27 @@ redef class AStarExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_args) + v.enter_visit(_n_assign) + v.enter_visit(_n_value) end end -redef class ASlashExpr - init init_aslashexpr ( +redef class ABraReassignExpr + init init_abrareassignexpr ( n_expr: nullable AExpr, - n_expr2: nullable AExpr + n_args: nullable AExprs, + n_assign_op: nullable AAssignOp, + n_value: nullable AExpr ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_args = n_args.as(not null) + n_args.parent = self + _n_assign_op = n_assign_op.as(not null) + n_assign_op.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4583,8 +5907,16 @@ redef class ASlashExpr n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_args == old_child then + n_args = new_child.as(AExprs) + return + end + if _n_assign_op == old_child then + n_assign_op = new_child.as(AAssignOp) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end @@ -4594,9 +5926,19 @@ redef class ASlashExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_args=(node) do - _n_expr2 = node + _n_args = node + node.parent = self + end + redef fun n_assign_op=(node) + do + _n_assign_op = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end @@ -4604,171 +5946,163 @@ redef class ASlashExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_args) + v.enter_visit(_n_assign_op) + v.enter_visit(_n_value) end end -redef class APercentExpr - init init_apercentexpr ( - n_expr: nullable AExpr, - n_expr2: nullable AExpr +redef class AVarExpr + init init_avarexpr ( + n_id: nullable TId ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + _n_id = n_id.as(not null) + n_id.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_id == old_child then + n_id = new_child.as(TId) return end end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - redef fun n_expr2=(node) + redef fun n_id=(node) do - _n_expr2 = node + _n_id = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + v.enter_visit(_n_id) end end -redef class AUminusExpr - init init_auminusexpr ( - n_minus: nullable TMinus, - n_expr: nullable AExpr +redef class AVarAssignExpr + init init_avarassignexpr ( + n_id: nullable TId, + n_assign: nullable TAssign, + n_value: nullable AExpr ) do - _n_minus = n_minus.as(not null) - n_minus.parent = self - _n_expr = n_expr.as(not null) - n_expr.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_minus == old_child then - n_minus = new_child.as(TMinus) + if _n_id == old_child then + n_id = new_child.as(TId) return end - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end - redef fun n_minus=(node) + redef fun n_id=(node) do - _n_minus = node + _n_id = node node.parent = self end - redef fun n_expr=(node) + redef fun n_assign=(node) do - _n_expr = node + _n_assign = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_minus) - v.enter_visit(_n_expr) + v.enter_visit(_n_id) + v.enter_visit(_n_assign) + v.enter_visit(_n_value) end end -redef class ANewExpr - init init_anewexpr ( - n_kwnew: nullable TKwnew, - n_type: nullable AType, +redef class AVarReassignExpr + init init_avarreassignexpr ( n_id: nullable TId, - n_args: nullable AExprs + n_assign_op: nullable AAssignOp, + n_value: nullable AExpr ) do - _n_kwnew = n_kwnew.as(not null) - n_kwnew.parent = self - _n_type = n_type.as(not null) - n_type.parent = self - _n_id = n_id - if n_id != null then n_id.parent = self - _n_args = n_args.as(not null) - n_args.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_assign_op = n_assign_op.as(not null) + n_assign_op.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwnew == old_child then - n_kwnew = new_child.as(TKwnew) - return - end - if _n_type == old_child then - n_type = new_child.as(AType) + if _n_id == old_child then + n_id = new_child.as(TId) return end - if _n_id == old_child then - n_id = new_child.as(nullable TId) + if _n_assign_op == old_child then + n_assign_op = new_child.as(AAssignOp) return end - if _n_args == old_child then - n_args = new_child.as(AExprs) + if _n_value == old_child then + n_value = new_child.as(AExpr) return end end - redef fun n_kwnew=(node) + redef fun n_id=(node) do - _n_kwnew = node + _n_id = node node.parent = self end - redef fun n_type=(node) + redef fun n_assign_op=(node) do - _n_type = node + _n_assign_op = node node.parent = self end - redef fun n_id=(node) - do - _n_id = node - if node != null then node.parent = self - end - redef fun n_args=(node) + redef fun n_value=(node) do - _n_args = node + _n_value = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwnew) - v.enter_visit(_n_type) v.enter_visit(_n_id) - v.enter_visit(_n_args) + v.enter_visit(_n_assign_op) + v.enter_visit(_n_value) end end -redef class AAttrExpr - init init_aattrexpr ( +redef class ARangeExpr + init init_arangeexpr ( n_expr: nullable AExpr, - n_id: nullable TAttrid + n_expr2: nullable AExpr, + n_annotations: nullable AAnnotations ) do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4777,8 +6111,12 @@ redef class AAttrExpr n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TAttrid) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end @@ -4788,840 +6126,743 @@ redef class AAttrExpr _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_expr2=(node) do - _n_id = node + _n_expr2 = node node.parent = self end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_id) + v.enter_visit(_n_expr2) + v.enter_visit(_n_annotations) end end -redef class AAttrAssignExpr - init init_aattrassignexpr ( +redef class ACrangeExpr + init init_acrangeexpr ( + n_obra: nullable TObra, n_expr: nullable AExpr, - n_id: nullable TAttrid, - n_assign: nullable TAssign, - n_value: nullable AExpr + n_dotdot: nullable TDotdot, + n_expr2: nullable AExpr, + n_cbra: nullable TCbra, + n_annotations: nullable AAnnotations ) do + _n_obra = n_obra.as(not null) + n_obra.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_assign = n_assign.as(not null) - n_assign.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_dotdot = n_dotdot.as(not null) + n_dotdot.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self + _n_cbra = n_cbra.as(not null) + n_cbra.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_obra == old_child then + n_obra = new_child.as(TObra) + return + end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TAttrid) + if _n_dotdot == old_child then + n_dotdot = new_child.as(TDotdot) return end - if _n_assign == old_child then - n_assign = new_child.as(TAssign) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_cbra == old_child then + n_cbra = new_child.as(TCbra) return end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + end + + redef fun n_obra=(node) + do + _n_obra = node + node.parent = self end - redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_dotdot=(node) do - _n_id = node + _n_dotdot = node node.parent = self end - redef fun n_assign=(node) + redef fun n_expr2=(node) do - _n_assign = node + _n_expr2 = node node.parent = self end - redef fun n_value=(node) + redef fun n_cbra=(node) do - _n_value = node + _n_cbra = node node.parent = self end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_obra) v.enter_visit(_n_expr) - v.enter_visit(_n_id) - v.enter_visit(_n_assign) - v.enter_visit(_n_value) + v.enter_visit(_n_dotdot) + v.enter_visit(_n_expr2) + v.enter_visit(_n_cbra) + v.enter_visit(_n_annotations) end end -redef class AAttrReassignExpr - init init_aattrreassignexpr ( +redef class AOrangeExpr + init init_aorangeexpr ( + n_obra: nullable TObra, n_expr: nullable AExpr, - n_id: nullable TAttrid, - n_assign_op: nullable AAssignOp, - n_value: nullable AExpr + n_dotdot: nullable TDotdot, + n_expr2: nullable AExpr, + n_cbra: nullable TObra, + n_annotations: nullable AAnnotations ) do + _n_obra = n_obra.as(not null) + n_obra.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_assign_op = n_assign_op.as(not null) - n_assign_op.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_dotdot = n_dotdot.as(not null) + n_dotdot.parent = self + _n_expr2 = n_expr2.as(not null) + n_expr2.parent = self + _n_cbra = n_cbra.as(not null) + n_cbra.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_obra == old_child then + n_obra = new_child.as(TObra) + return + end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TAttrid) + if _n_dotdot == old_child then + n_dotdot = new_child.as(TDotdot) return end - if _n_assign_op == old_child then - n_assign_op = new_child.as(AAssignOp) + if _n_expr2 == old_child then + n_expr2 = new_child.as(AExpr) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_cbra == old_child then + n_cbra = new_child.as(TObra) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end + redef fun n_obra=(node) + do + _n_obra = node + node.parent = self + end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_dotdot=(node) do - _n_id = node + _n_dotdot = node node.parent = self end - redef fun n_assign_op=(node) + redef fun n_expr2=(node) do - _n_assign_op = node + _n_expr2 = node node.parent = self end - redef fun n_value=(node) + redef fun n_cbra=(node) do - _n_value = node + _n_cbra = node node.parent = self end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_obra) v.enter_visit(_n_expr) - v.enter_visit(_n_id) - v.enter_visit(_n_assign_op) - v.enter_visit(_n_value) + v.enter_visit(_n_dotdot) + v.enter_visit(_n_expr2) + v.enter_visit(_n_cbra) + v.enter_visit(_n_annotations) end end -redef class ACallExpr - init init_acallexpr ( - n_expr: nullable AExpr, - n_id: nullable TId, - n_args: nullable AExprs +redef class AArrayExpr + init init_aarrayexpr ( + n_obra: nullable TObra, + n_exprs: Collection[Object], # Should be Collection[AExpr] + n_type: nullable AType, + n_cbra: nullable TCbra, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_args = n_args.as(not null) - n_args.parent = self + _n_obra = n_obra.as(not null) + n_obra.parent = self + self.n_exprs.unsafe_add_all(n_exprs) + _n_type = n_type + if n_type != null then n_type.parent = self + _n_cbra = n_cbra.as(not null) + n_cbra.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_obra == old_child then + n_obra = new_child.as(TObra) return end - if _n_id == old_child then - n_id = new_child.as(TId) + if n_exprs.replace_child(old_child, new_child) then return + if _n_type == old_child then + n_type = new_child.as(nullable AType) return end - if _n_args == old_child then - n_args = new_child.as(AExprs) + if _n_cbra == old_child then + n_cbra = new_child.as(TCbra) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) + redef fun n_obra=(node) do - _n_expr = node + _n_obra = node node.parent = self end - redef fun n_id=(node) + redef fun n_type=(node) do - _n_id = node - node.parent = self + _n_type = node + if node != null then node.parent = self end - redef fun n_args=(node) + redef fun n_cbra=(node) do - _n_args = node + _n_cbra = node node.parent = self end + redef fun n_annotations=(node) + do + _n_annotations = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_id) - v.enter_visit(_n_args) + v.enter_visit(_n_obra) + n_exprs.visit_all(v) + v.enter_visit(_n_type) + v.enter_visit(_n_cbra) + v.enter_visit(_n_annotations) end end -redef class ACallAssignExpr - init init_acallassignexpr ( - n_expr: nullable AExpr, - n_id: nullable TId, - n_args: nullable AExprs, - n_assign: nullable TAssign, - n_value: nullable AExpr +redef class ASelfExpr + init init_aselfexpr ( + n_kwself: nullable TKwself, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_args = n_args.as(not null) - n_args.parent = self - _n_assign = n_assign.as(not null) - n_assign.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_kwself = n_kwself.as(not null) + n_kwself.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_id == old_child then - n_id = new_child.as(TId) - return - end - if _n_args == old_child then - n_args = new_child.as(AExprs) - return - end - if _n_assign == old_child then - n_assign = new_child.as(TAssign) + if _n_kwself == old_child then + n_kwself = new_child.as(TKwself) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) + redef fun n_kwself=(node) do - _n_expr = node + _n_kwself = node node.parent = self end - redef fun n_id=(node) + redef fun n_annotations=(node) do - _n_id = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end - redef fun n_args=(node) + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwself) + v.enter_visit(_n_annotations) + end +end +redef class AImplicitSelfExpr + init init_aimplicitselfexpr + do + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + end + + + + redef fun visit_all(v: Visitor) + do + end +end +redef class ATrueExpr + init init_atrueexpr ( + n_kwtrue: nullable TKwtrue, + n_annotations: nullable AAnnotations + ) + do + _n_kwtrue = n_kwtrue.as(not null) + n_kwtrue.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_args = node - node.parent = self + if _n_kwtrue == old_child then + n_kwtrue = new_child.as(TKwtrue) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end end - redef fun n_assign=(node) + + redef fun n_kwtrue=(node) do - _n_assign = node + _n_kwtrue = node node.parent = self end - redef fun n_value=(node) + redef fun n_annotations=(node) do - _n_value = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_id) - v.enter_visit(_n_args) - v.enter_visit(_n_assign) - v.enter_visit(_n_value) + v.enter_visit(_n_kwtrue) + v.enter_visit(_n_annotations) end end -redef class ACallReassignExpr - init init_acallreassignexpr ( - n_expr: nullable AExpr, - n_id: nullable TId, - n_args: nullable AExprs, - n_assign_op: nullable AAssignOp, - n_value: nullable AExpr +redef class AFalseExpr + init init_afalseexpr ( + n_kwfalse: nullable TKwfalse, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_args = n_args.as(not null) - n_args.parent = self - _n_assign_op = n_assign_op.as(not null) - n_assign_op.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_kwfalse = n_kwfalse.as(not null) + n_kwfalse.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_id == old_child then - n_id = new_child.as(TId) - return - end - if _n_args == old_child then - n_args = new_child.as(AExprs) - return - end - if _n_assign_op == old_child then - n_assign_op = new_child.as(AAssignOp) + if _n_kwfalse == old_child then + n_kwfalse = new_child.as(TKwfalse) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - redef fun n_args=(node) - do - _n_args = node - node.parent = self - end - redef fun n_assign_op=(node) + redef fun n_kwfalse=(node) do - _n_assign_op = node + _n_kwfalse = node node.parent = self end - redef fun n_value=(node) + redef fun n_annotations=(node) do - _n_value = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_id) - v.enter_visit(_n_args) - v.enter_visit(_n_assign_op) - v.enter_visit(_n_value) + v.enter_visit(_n_kwfalse) + v.enter_visit(_n_annotations) end end -redef class ASuperExpr - init init_asuperexpr ( - n_qualified: nullable AQualified, - n_kwsuper: nullable TKwsuper, - n_args: nullable AExprs +redef class ANullExpr + init init_anullexpr ( + n_kwnull: nullable TKwnull, + n_annotations: nullable AAnnotations ) do - _n_qualified = n_qualified - if n_qualified != null then n_qualified.parent = self - _n_kwsuper = n_kwsuper.as(not null) - n_kwsuper.parent = self - _n_args = n_args.as(not null) - n_args.parent = self + _n_kwnull = n_kwnull.as(not null) + n_kwnull.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_qualified == old_child then - n_qualified = new_child.as(nullable AQualified) - return - end - if _n_kwsuper == old_child then - n_kwsuper = new_child.as(TKwsuper) + if _n_kwnull == old_child then + n_kwnull = new_child.as(TKwnull) return end - if _n_args == old_child then - n_args = new_child.as(AExprs) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_qualified=(node) - do - _n_qualified = node - if node != null then node.parent = self - end - redef fun n_kwsuper=(node) + redef fun n_kwnull=(node) do - _n_kwsuper = node + _n_kwnull = node node.parent = self end - redef fun n_args=(node) + redef fun n_annotations=(node) do - _n_args = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_qualified) - v.enter_visit(_n_kwsuper) - v.enter_visit(_n_args) + v.enter_visit(_n_kwnull) + v.enter_visit(_n_annotations) end end -redef class AInitExpr - init init_ainitexpr ( - n_expr: nullable AExpr, - n_kwinit: nullable TKwinit, - n_args: nullable AExprs +redef class AIntegerExpr + init init_aintegerexpr ( + n_integer: nullable TInteger, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_kwinit = n_kwinit.as(not null) - n_kwinit.parent = self - _n_args = n_args.as(not null) - n_args.parent = self + _n_integer = n_integer.as(not null) + n_integer.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_kwinit == old_child then - n_kwinit = new_child.as(TKwinit) + if _n_integer == old_child then + n_integer = new_child.as(TInteger) return end - if _n_args == old_child then - n_args = new_child.as(AExprs) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - redef fun n_kwinit=(node) + redef fun n_integer=(node) do - _n_kwinit = node + _n_integer = node node.parent = self end - redef fun n_args=(node) + redef fun n_annotations=(node) do - _n_args = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_kwinit) - v.enter_visit(_n_args) + v.enter_visit(_n_integer) + v.enter_visit(_n_annotations) end end -redef class ABraExpr - init init_abraexpr ( - n_expr: nullable AExpr, - n_args: nullable AExprs +redef class AFloatExpr + init init_afloatexpr ( + n_float: nullable TFloat, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_args = n_args.as(not null) - n_args.parent = self + _n_float = n_float.as(not null) + n_float.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_float == old_child then + n_float = new_child.as(TFloat) return end - if _n_args == old_child then - n_args = new_child.as(AExprs) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) + redef fun n_float=(node) do - _n_expr = node + _n_float = node node.parent = self end - redef fun n_args=(node) + redef fun n_annotations=(node) do - _n_args = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_args) + v.enter_visit(_n_float) + v.enter_visit(_n_annotations) end end -redef class ABraAssignExpr - init init_abraassignexpr ( - n_expr: nullable AExpr, - n_args: nullable AExprs, - n_assign: nullable TAssign, - n_value: nullable AExpr +redef class ACharExpr + init init_acharexpr ( + n_char: nullable TChar, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_args = n_args.as(not null) - n_args.parent = self - _n_assign = n_assign.as(not null) - n_assign.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_char = n_char.as(not null) + n_char.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_args == old_child then - n_args = new_child.as(AExprs) - return - end - if _n_assign == old_child then - n_assign = new_child.as(TAssign) + if _n_char == old_child then + n_char = new_child.as(TChar) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - redef fun n_args=(node) - do - _n_args = node - node.parent = self - end - redef fun n_assign=(node) + redef fun n_char=(node) do - _n_assign = node + _n_char = node node.parent = self end - redef fun n_value=(node) + redef fun n_annotations=(node) do - _n_value = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_args) - v.enter_visit(_n_assign) - v.enter_visit(_n_value) + v.enter_visit(_n_char) + v.enter_visit(_n_annotations) end end -redef class ABraReassignExpr - init init_abrareassignexpr ( - n_expr: nullable AExpr, - n_args: nullable AExprs, - n_assign_op: nullable AAssignOp, - n_value: nullable AExpr +redef class AStringExpr + init init_astringexpr ( + n_string: nullable TString, + n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_args = n_args.as(not null) - n_args.parent = self - _n_assign_op = n_assign_op.as(not null) - n_assign_op.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_string = n_string.as(not null) + n_string.parent = self + _n_annotations = n_annotations + if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_args == old_child then - n_args = new_child.as(AExprs) - return - end - if _n_assign_op == old_child then - n_assign_op = new_child.as(AAssignOp) + if _n_string == old_child then + n_string = new_child.as(TString) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - redef fun n_args=(node) - do - _n_args = node - node.parent = self - end - redef fun n_assign_op=(node) + redef fun n_string=(node) do - _n_assign_op = node + _n_string = node node.parent = self end - redef fun n_value=(node) + redef fun n_annotations=(node) do - _n_value = node - node.parent = self + _n_annotations = node + if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_args) - v.enter_visit(_n_assign_op) - v.enter_visit(_n_value) + v.enter_visit(_n_string) + v.enter_visit(_n_annotations) end end -redef class AVarExpr - init init_avarexpr ( - n_id: nullable TId +redef class AStartStringExpr + init init_astartstringexpr ( + n_string: nullable TStartString ) do - _n_id = n_id.as(not null) - n_id.parent = self + _n_string = n_string.as(not null) + n_string.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_string == old_child then + n_string = new_child.as(TStartString) return end end - redef fun n_id=(node) + redef fun n_string=(node) do - _n_id = node + _n_string = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) + v.enter_visit(_n_string) end end -redef class AVarAssignExpr - init init_avarassignexpr ( - n_id: nullable TId, - n_assign: nullable TAssign, - n_value: nullable AExpr +redef class AMidStringExpr + init init_amidstringexpr ( + n_string: nullable TMidString ) do - _n_id = n_id.as(not null) - n_id.parent = self - _n_assign = n_assign.as(not null) - n_assign.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_string = n_string.as(not null) + n_string.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TId) - return - end - if _n_assign == old_child then - n_assign = new_child.as(TAssign) - return - end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_string == old_child then + n_string = new_child.as(TMidString) return end end - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - redef fun n_assign=(node) - do - _n_assign = node - node.parent = self - end - redef fun n_value=(node) + redef fun n_string=(node) do - _n_value = node + _n_string = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) - v.enter_visit(_n_assign) - v.enter_visit(_n_value) + v.enter_visit(_n_string) end end -redef class AVarReassignExpr - init init_avarreassignexpr ( - n_id: nullable TId, - n_assign_op: nullable AAssignOp, - n_value: nullable AExpr +redef class AEndStringExpr + init init_aendstringexpr ( + n_string: nullable TEndString ) do - _n_id = n_id.as(not null) - n_id.parent = self - _n_assign_op = n_assign_op.as(not null) - n_assign_op.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_string = n_string.as(not null) + n_string.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id == old_child then - n_id = new_child.as(TId) - return - end - if _n_assign_op == old_child then - n_assign_op = new_child.as(AAssignOp) - return - end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_string == old_child then + n_string = new_child.as(TEndString) return end end - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - redef fun n_assign_op=(node) - do - _n_assign_op = node - node.parent = self - end - redef fun n_value=(node) + redef fun n_string=(node) do - _n_value = node + _n_string = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_id) - v.enter_visit(_n_assign_op) - v.enter_visit(_n_value) + v.enter_visit(_n_string) end end -redef class ARangeExpr - init init_arangeexpr ( - n_expr: nullable AExpr, - n_expr2: nullable AExpr, +redef class ASuperstringExpr + init init_asuperstringexpr ( + n_exprs: Collection[Object], # Should be Collection[AExpr] n_annotations: nullable AAnnotations ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self + self.n_exprs.unsafe_add_all(n_exprs) _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) - return - end + if n_exprs.replace_child(old_child, new_child) then return if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end - end - - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - redef fun n_expr2=(node) - do - _n_expr2 = node - node.parent = self + n_annotations = new_child.as(nullable AAnnotations) + return + end end + redef fun n_annotations=(node) do _n_annotations = node @@ -5631,129 +6872,108 @@ redef class ARangeExpr redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) + n_exprs.visit_all(v) v.enter_visit(_n_annotations) end end -redef class ACrangeExpr - init init_acrangeexpr ( - n_obra: nullable TObra, - n_expr: nullable AExpr, - n_expr2: nullable AExpr, - n_cbra: nullable TCbra, - n_annotations: nullable AAnnotations +redef class ALambdaExpr + init init_alambdaexpr ( + n_kwmeth: nullable TKwmeth, + n_signature: nullable ASignature, + n_kwdo: nullable TKwdo, + n_expr: nullable AExpr ) do - _n_obra = n_obra.as(not null) - n_obra.parent = self + _n_kwmeth = n_kwmeth.as(not null) + n_kwmeth.parent = self + _n_signature = n_signature.as(not null) + n_signature.parent = self + _n_kwdo = n_kwdo.as(not null) + n_kwdo.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self - _n_cbra = n_cbra.as(not null) - n_cbra.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_obra == old_child then - n_obra = new_child.as(TObra) - return - end - if _n_expr == old_child then - n_expr = new_child.as(AExpr) + if _n_kwmeth == old_child then + n_kwmeth = new_child.as(TKwmeth) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) + if _n_signature == old_child then + n_signature = new_child.as(ASignature) return end - if _n_cbra == old_child then - n_cbra = new_child.as(TCbra) + if _n_kwdo == old_child then + n_kwdo = new_child.as(TKwdo) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_obra=(node) + redef fun n_kwmeth=(node) do - _n_obra = node + _n_kwmeth = node node.parent = self end - redef fun n_expr=(node) + redef fun n_signature=(node) do - _n_expr = node + _n_signature = node node.parent = self end - redef fun n_expr2=(node) + redef fun n_kwdo=(node) do - _n_expr2 = node + _n_kwdo = node node.parent = self end - redef fun n_cbra=(node) + redef fun n_expr=(node) do - _n_cbra = node + _n_expr = node node.parent = self end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_obra) + v.enter_visit(_n_kwmeth) + v.enter_visit(_n_signature) + v.enter_visit(_n_kwdo) v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) - v.enter_visit(_n_cbra) - v.enter_visit(_n_annotations) end end -redef class AOrangeExpr - init init_aorangeexpr ( - n_obra: nullable TObra, +redef class AParExpr + init init_aparexpr ( + n_opar: nullable TOpar, n_expr: nullable AExpr, - n_expr2: nullable AExpr, - n_cbra: nullable TObra, + n_cpar: nullable TCpar, n_annotations: nullable AAnnotations ) do - _n_obra = n_obra.as(not null) - n_obra.parent = self + _n_opar = n_opar.as(not null) + n_opar.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_expr2 = n_expr2.as(not null) - n_expr2.parent = self - _n_cbra = n_cbra.as(not null) - n_cbra.parent = self + _n_cpar = n_cpar.as(not null) + n_cpar.parent = self _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_obra == old_child then - n_obra = new_child.as(TObra) + if _n_opar == old_child then + n_opar = new_child.as(TOpar) return end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_expr2 == old_child then - n_expr2 = new_child.as(AExpr) - return - end - if _n_cbra == old_child then - n_cbra = new_child.as(TObra) + if _n_cpar == old_child then + n_cpar = new_child.as(TCpar) return end if _n_annotations == old_child then @@ -5762,9 +6982,9 @@ redef class AOrangeExpr end end - redef fun n_obra=(node) + redef fun n_opar=(node) do - _n_obra = node + _n_opar = node node.parent = self end redef fun n_expr=(node) @@ -5772,14 +6992,9 @@ redef class AOrangeExpr _n_expr = node node.parent = self end - redef fun n_expr2=(node) - do - _n_expr2 = node - node.parent = self - end - redef fun n_cbra=(node) + redef fun n_cpar=(node) do - _n_cbra = node + _n_cpar = node node.parent = self end redef fun n_annotations=(node) @@ -5791,584 +7006,601 @@ redef class AOrangeExpr redef fun visit_all(v: Visitor) do - v.enter_visit(_n_obra) + v.enter_visit(_n_opar) v.enter_visit(_n_expr) - v.enter_visit(_n_expr2) - v.enter_visit(_n_cbra) + v.enter_visit(_n_cpar) v.enter_visit(_n_annotations) end end -redef class AArrayExpr - init init_aarrayexpr ( - n_exprs: nullable AExprs, - n_annotations: nullable AAnnotations +redef class AAsCastExpr + init init_aascastexpr ( + n_expr: nullable AExpr, + n_kwas: nullable TKwas, + n_opar: nullable TOpar, + n_type: nullable AType, + n_cpar: nullable TCpar ) do - _n_exprs = n_exprs.as(not null) - n_exprs.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwas = n_kwas.as(not null) + n_kwas.parent = self + _n_opar = n_opar + if n_opar != null then n_opar.parent = self + _n_type = n_type.as(not null) + n_type.parent = self + _n_cpar = n_cpar + if n_cpar != null then n_cpar.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_exprs == old_child then - n_exprs = new_child.as(AExprs) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_kwas == old_child then + n_kwas = new_child.as(TKwas) return end - end - - redef fun n_exprs=(node) - do - _n_exprs = node - node.parent = self - end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_exprs) - v.enter_visit(_n_annotations) - end -end -redef class ASelfExpr - init init_aselfexpr ( - n_kwself: nullable TKwself, - n_annotations: nullable AAnnotations - ) - do - _n_kwself = n_kwself.as(not null) - n_kwself.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_kwself == old_child then - n_kwself = new_child.as(TKwself) + if _n_opar == old_child then + n_opar = new_child.as(nullable TOpar) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_type == old_child then + n_type = new_child.as(AType) + return + end + if _n_cpar == old_child then + n_cpar = new_child.as(nullable TCpar) return end end - redef fun n_kwself=(node) + redef fun n_expr=(node) do - _n_kwself = node + _n_expr = node node.parent = self end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_kwself) - v.enter_visit(_n_annotations) - end -end -redef class AImplicitSelfExpr - init init_aimplicitselfexpr - do - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - end - - - - redef fun visit_all(v: Visitor) - do - end -end -redef class ATrueExpr - init init_atrueexpr ( - n_kwtrue: nullable TKwtrue, - n_annotations: nullable AAnnotations - ) - do - _n_kwtrue = n_kwtrue.as(not null) - n_kwtrue.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) + redef fun n_kwas=(node) do - if _n_kwtrue == old_child then - n_kwtrue = new_child.as(TKwtrue) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end + _n_kwas = node + node.parent = self end - - redef fun n_kwtrue=(node) + redef fun n_opar=(node) do - _n_kwtrue = node + _n_opar = node + if node != null then node.parent = self + end + redef fun n_type=(node) + do + _n_type = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_cpar=(node) do - _n_annotations = node + _n_cpar = node if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwtrue) - v.enter_visit(_n_annotations) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwas) + v.enter_visit(_n_opar) + v.enter_visit(_n_type) + v.enter_visit(_n_cpar) end end -redef class AFalseExpr - init init_afalseexpr ( - n_kwfalse: nullable TKwfalse, - n_annotations: nullable AAnnotations +redef class AAsNotnullExpr + init init_aasnotnullexpr ( + n_expr: nullable AExpr, + n_kwas: nullable TKwas, + n_opar: nullable TOpar, + n_kwnot: nullable TKwnot, + n_kwnull: nullable TKwnull, + n_cpar: nullable TCpar ) do - _n_kwfalse = n_kwfalse.as(not null) - n_kwfalse.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_kwas = n_kwas.as(not null) + n_kwas.parent = self + _n_opar = n_opar + if n_opar != null then n_opar.parent = self + _n_kwnot = n_kwnot.as(not null) + n_kwnot.parent = self + _n_kwnull = n_kwnull.as(not null) + n_kwnull.parent = self + _n_cpar = n_cpar + if n_cpar != null then n_cpar.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwfalse == old_child then - n_kwfalse = new_child.as(TKwfalse) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_kwas == old_child then + n_kwas = new_child.as(TKwas) + return + end + if _n_opar == old_child then + n_opar = new_child.as(nullable TOpar) + return + end + if _n_kwnot == old_child then + n_kwnot = new_child.as(TKwnot) + return + end + if _n_kwnull == old_child then + n_kwnull = new_child.as(TKwnull) + return + end + if _n_cpar == old_child then + n_cpar = new_child.as(nullable TCpar) return end end - redef fun n_kwfalse=(node) + redef fun n_expr=(node) do - _n_kwfalse = node + _n_expr = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_kwas=(node) do - _n_annotations = node + _n_kwas = node + node.parent = self + end + redef fun n_opar=(node) + do + _n_opar = node + if node != null then node.parent = self + end + redef fun n_kwnot=(node) + do + _n_kwnot = node + node.parent = self + end + redef fun n_kwnull=(node) + do + _n_kwnull = node + node.parent = self + end + redef fun n_cpar=(node) + do + _n_cpar = node if node != null then node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwfalse) - v.enter_visit(_n_annotations) + v.enter_visit(_n_expr) + v.enter_visit(_n_kwas) + v.enter_visit(_n_opar) + v.enter_visit(_n_kwnot) + v.enter_visit(_n_kwnull) + v.enter_visit(_n_cpar) end end -redef class ANullExpr - init init_anullexpr ( - n_kwnull: nullable TKwnull, - n_annotations: nullable AAnnotations +redef class AIssetAttrExpr + init init_aissetattrexpr ( + n_kwisset: nullable TKwisset, + n_expr: nullable AExpr, + n_id: nullable TAttrid ) do - _n_kwnull = n_kwnull.as(not null) - n_kwnull.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_kwisset = n_kwisset.as(not null) + n_kwisset.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_id = n_id.as(not null) + n_id.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwnull == old_child then - n_kwnull = new_child.as(TKwnull) + if _n_kwisset == old_child then + n_kwisset = new_child.as(TKwisset) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_id == old_child then + n_id = new_child.as(TAttrid) return end end - redef fun n_kwnull=(node) + redef fun n_kwisset=(node) do - _n_kwnull = node + _n_kwisset = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_expr=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_expr = node + node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwnull) - v.enter_visit(_n_annotations) + v.enter_visit(_n_kwisset) + v.enter_visit(_n_expr) + v.enter_visit(_n_id) end end -redef class ADecIntExpr - init init_adecintexpr ( - n_number: nullable TNumber, - n_annotations: nullable AAnnotations +redef class ADebugTypeExpr + init init_adebugtypeexpr ( + n_kwdebug: nullable TKwdebug, + n_kwtype: nullable TKwtype, + n_expr: nullable AExpr, + n_type: nullable AType ) do - _n_number = n_number.as(not null) - n_number.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_kwdebug = n_kwdebug.as(not null) + n_kwdebug.parent = self + _n_kwtype = n_kwtype.as(not null) + n_kwtype.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_type = n_type.as(not null) + n_type.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_number == old_child then - n_number = new_child.as(TNumber) + if _n_kwdebug == old_child then + n_kwdebug = new_child.as(TKwdebug) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_kwtype == old_child then + n_kwtype = new_child.as(TKwtype) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_type == old_child then + n_type = new_child.as(AType) return end end - redef fun n_number=(node) + redef fun n_kwdebug=(node) do - _n_number = node + _n_kwdebug = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_kwtype=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_kwtype = node + node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + redef fun n_type=(node) + do + _n_type = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_number) - v.enter_visit(_n_annotations) + v.enter_visit(_n_kwdebug) + v.enter_visit(_n_kwtype) + v.enter_visit(_n_expr) + v.enter_visit(_n_type) end end -redef class AHexIntExpr - init init_ahexintexpr ( - n_hex_number: nullable THexNumber, - n_annotations: nullable AAnnotations +redef class AVarargExpr + init init_avarargexpr ( + n_expr: nullable AExpr, + n_dotdotdot: nullable TDotdotdot ) do - _n_hex_number = n_hex_number.as(not null) - n_hex_number.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_dotdotdot = n_dotdotdot.as(not null) + n_dotdotdot.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_hex_number == old_child then - n_hex_number = new_child.as(THexNumber) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_dotdotdot == old_child then + n_dotdotdot = new_child.as(TDotdotdot) return end end - redef fun n_hex_number=(node) + redef fun n_expr=(node) do - _n_hex_number = node + _n_expr = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_dotdotdot=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_dotdotdot = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_hex_number) - v.enter_visit(_n_annotations) + v.enter_visit(_n_expr) + v.enter_visit(_n_dotdotdot) end end -redef class AFloatExpr - init init_afloatexpr ( - n_float: nullable TFloat, - n_annotations: nullable AAnnotations +redef class ANamedargExpr + init init_anamedargexpr ( + n_id: nullable TId, + n_assign: nullable TAssign, + n_expr: nullable AExpr ) do - _n_float = n_float.as(not null) - n_float.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_float == old_child then - n_float = new_child.as(TFloat) + do + if _n_id == old_child then + n_id = new_child.as(TId) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_assign == old_child then + n_assign = new_child.as(TAssign) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_float=(node) + redef fun n_id=(node) do - _n_float = node + _n_id = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_assign=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_assign = node + node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_float) - v.enter_visit(_n_annotations) + v.enter_visit(_n_id) + v.enter_visit(_n_assign) + v.enter_visit(_n_expr) end end -redef class ACharExpr - init init_acharexpr ( - n_char: nullable TChar, - n_annotations: nullable AAnnotations +redef class ASafeExpr + init init_asafeexpr ( + n_expr: nullable AExpr, + n_quest: nullable TQuest ) do - _n_char = n_char.as(not null) - n_char.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_quest = n_quest.as(not null) + n_quest.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_char == old_child then - n_char = new_child.as(TChar) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_quest == old_child then + n_quest = new_child.as(TQuest) return end end - redef fun n_char=(node) + redef fun n_expr=(node) do - _n_char = node + _n_expr = node node.parent = self end - redef fun n_annotations=(node) + redef fun n_quest=(node) do - _n_annotations = node - if node != null then node.parent = self + _n_quest = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_char) - v.enter_visit(_n_annotations) + v.enter_visit(_n_expr) + v.enter_visit(_n_quest) end end -redef class AStringExpr - init init_astringexpr ( - n_string: nullable TString, - n_annotations: nullable AAnnotations +redef class ATypeExpr + init init_atypeexpr ( + n_type: nullable AType ) do - _n_string = n_string.as(not null) - n_string.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + _n_type = n_type.as(not null) + n_type.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_string == old_child then - n_string = new_child.as(TString) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) + if _n_type == old_child then + n_type = new_child.as(AType) return end end - redef fun n_string=(node) + redef fun n_type=(node) do - _n_string = node + _n_type = node node.parent = self end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_string) - v.enter_visit(_n_annotations) + v.enter_visit(_n_type) end end -redef class AStartStringExpr - init init_astartstringexpr ( - n_string: nullable TStartString +redef class AMethidExpr + init init_amethidexpr ( + n_expr: nullable AExpr, + n_id: nullable AMethid ) do - _n_string = n_string.as(not null) - n_string.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_id = n_id.as(not null) + n_id.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_string == old_child then - n_string = new_child.as(TStartString) + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_id == old_child then + n_id = new_child.as(AMethid) return end end - redef fun n_string=(node) + redef fun n_expr=(node) do - _n_string = node + _n_expr = node + node.parent = self + end + redef fun n_id=(node) + do + _n_id = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_string) + v.enter_visit(_n_expr) + v.enter_visit(_n_id) end end -redef class AMidStringExpr - init init_amidstringexpr ( - n_string: nullable TMidString +redef class AAtExpr + init init_aatexpr ( + n_annotations: nullable AAnnotations ) do - _n_string = n_string.as(not null) - n_string.parent = self + _n_annotations = n_annotations.as(not null) + n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_string == old_child then - n_string = new_child.as(TMidString) + if _n_annotations == old_child then + n_annotations = new_child.as(AAnnotations) return end end - redef fun n_string=(node) + redef fun n_annotations=(node) do - _n_string = node + _n_annotations = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_string) + v.enter_visit(_n_annotations) end end -redef class AEndStringExpr - init init_aendstringexpr ( - n_string: nullable TEndString +redef class AManyExpr + init init_amanyexpr ( + n_exprs: Collection[Object] # Should be Collection[AExpr] ) do - _n_string = n_string.as(not null) - n_string.parent = self + self.n_exprs.unsafe_add_all(n_exprs) end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_string == old_child then - n_string = new_child.as(TEndString) - return - end + if n_exprs.replace_child(old_child, new_child) then return end - redef fun n_string=(node) - do - _n_string = node - node.parent = self - end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_string) + n_exprs.visit_all(v) end end -redef class ASuperstringExpr - init init_asuperstringexpr ( - n_exprs: Collection[Object], # Should be Collection[AExpr] - n_annotations: nullable AAnnotations +redef class AListExprs + init init_alistexprs ( + n_exprs: Collection[Object] # Should be Collection[AExpr] ) do self.n_exprs.unsafe_add_all(n_exprs) - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do if n_exprs.replace_child(old_child, new_child) then return - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end redef fun visit_all(v: Visitor) do n_exprs.visit_all(v) - v.enter_visit(_n_annotations) end end -redef class AParExpr - init init_aparexpr ( +redef class AParExprs + init init_aparexprs ( n_opar: nullable TOpar, - n_expr: nullable AExpr, - n_cpar: nullable TCpar, - n_annotations: nullable AAnnotations + n_exprs: Collection[Object], # Should be Collection[AExpr] + n_cpar: nullable TCpar ) do _n_opar = n_opar.as(not null) n_opar.parent = self - _n_expr = n_expr.as(not null) - n_expr.parent = self + self.n_exprs.unsafe_add_all(n_exprs) _n_cpar = n_cpar.as(not null) n_cpar.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -6377,18 +7609,11 @@ redef class AParExpr n_opar = new_child.as(TOpar) return end - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end + if n_exprs.replace_child(old_child, new_child) then return if _n_cpar == old_child then n_cpar = new_child.as(TCpar) return end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end end redef fun n_opar=(node) @@ -6396,497 +7621,429 @@ redef class AParExpr _n_opar = node node.parent = self end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end redef fun n_cpar=(node) do _n_cpar = node node.parent = self end - redef fun n_annotations=(node) - do - _n_annotations = node - if node != null then node.parent = self - end redef fun visit_all(v: Visitor) do v.enter_visit(_n_opar) - v.enter_visit(_n_expr) + n_exprs.visit_all(v) v.enter_visit(_n_cpar) - v.enter_visit(_n_annotations) end end -redef class AAsCastExpr - init init_aascastexpr ( - n_expr: nullable AExpr, - n_kwas: nullable TKwas, - n_opar: nullable TOpar, - n_type: nullable AType, - n_cpar: nullable TCpar +redef class ABraExprs + init init_abraexprs ( + n_obra: nullable TObra, + n_exprs: Collection[Object], # Should be Collection[AExpr] + n_cbra: nullable TCbra ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_kwas = n_kwas.as(not null) - n_kwas.parent = self - _n_opar = n_opar - if n_opar != null then n_opar.parent = self - _n_type = n_type.as(not null) - n_type.parent = self - _n_cpar = n_cpar - if n_cpar != null then n_cpar.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_kwas == old_child then - n_kwas = new_child.as(TKwas) - return - end - if _n_opar == old_child then - n_opar = new_child.as(nullable TOpar) - return - end - if _n_type == old_child then - n_type = new_child.as(AType) + _n_obra = n_obra.as(not null) + n_obra.parent = self + self.n_exprs.unsafe_add_all(n_exprs) + _n_cbra = n_cbra.as(not null) + n_cbra.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_obra == old_child then + n_obra = new_child.as(TObra) return end - if _n_cpar == old_child then - n_cpar = new_child.as(nullable TCpar) + if n_exprs.replace_child(old_child, new_child) then return + if _n_cbra == old_child then + n_cbra = new_child.as(TCbra) return end end - redef fun n_expr=(node) + redef fun n_obra=(node) do - _n_expr = node + _n_obra = node node.parent = self end - redef fun n_kwas=(node) + redef fun n_cbra=(node) do - _n_kwas = node + _n_cbra = node node.parent = self end - redef fun n_opar=(node) + + + redef fun visit_all(v: Visitor) do - _n_opar = node - if node != null then node.parent = self + v.enter_visit(_n_obra) + n_exprs.visit_all(v) + v.enter_visit(_n_cbra) end - redef fun n_type=(node) +end +redef class APlusAssignOp + init init_aplusassignop ( + n_op: nullable TPluseq + ) do - _n_type = node - node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_cpar=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_cpar = node - if node != null then node.parent = self + if _n_op == old_child then + n_op = new_child.as(TPluseq) + return + end + end + + redef fun n_op=(node) + do + _n_op = node + node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_kwas) - v.enter_visit(_n_opar) - v.enter_visit(_n_type) - v.enter_visit(_n_cpar) + v.enter_visit(_n_op) end end -redef class AAsNotnullExpr - init init_aasnotnullexpr ( - n_expr: nullable AExpr, - n_kwas: nullable TKwas, - n_opar: nullable TOpar, - n_kwnot: nullable TKwnot, - n_kwnull: nullable TKwnull, - n_cpar: nullable TCpar +redef class AMinusAssignOp + init init_aminusassignop ( + n_op: nullable TMinuseq ) do - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_kwas = n_kwas.as(not null) - n_kwas.parent = self - _n_opar = n_opar - if n_opar != null then n_opar.parent = self - _n_kwnot = n_kwnot.as(not null) - n_kwnot.parent = self - _n_kwnull = n_kwnull.as(not null) - n_kwnull.parent = self - _n_cpar = n_cpar - if n_cpar != null then n_cpar.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_kwas == old_child then - n_kwas = new_child.as(TKwas) - return - end - if _n_opar == old_child then - n_opar = new_child.as(nullable TOpar) - return - end - if _n_kwnot == old_child then - n_kwnot = new_child.as(TKwnot) - return - end - if _n_kwnull == old_child then - n_kwnull = new_child.as(TKwnull) - return - end - if _n_cpar == old_child then - n_cpar = new_child.as(nullable TCpar) + if _n_op == old_child then + n_op = new_child.as(TMinuseq) return end end - redef fun n_expr=(node) + redef fun n_op=(node) do - _n_expr = node + _n_op = node node.parent = self end - redef fun n_kwas=(node) + + + redef fun visit_all(v: Visitor) do - _n_kwas = node - node.parent = self + v.enter_visit(_n_op) end - redef fun n_opar=(node) +end +redef class AStarAssignOp + init init_astarassignop ( + n_op: nullable TStareq + ) do - _n_opar = node - if node != null then node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_kwnot=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_kwnot = node - node.parent = self + if _n_op == old_child then + n_op = new_child.as(TStareq) + return + end end - redef fun n_kwnull=(node) + + redef fun n_op=(node) do - _n_kwnull = node + _n_op = node node.parent = self end - redef fun n_cpar=(node) - do - _n_cpar = node - if node != null then node.parent = self - end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_expr) - v.enter_visit(_n_kwas) - v.enter_visit(_n_opar) - v.enter_visit(_n_kwnot) - v.enter_visit(_n_kwnull) - v.enter_visit(_n_cpar) + v.enter_visit(_n_op) end end -redef class AIssetAttrExpr - init init_aissetattrexpr ( - n_kwisset: nullable TKwisset, - n_expr: nullable AExpr, - n_id: nullable TAttrid +redef class ASlashAssignOp + init init_aslashassignop ( + n_op: nullable TSlasheq ) do - _n_kwisset = n_kwisset.as(not null) - n_kwisset.parent = self - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwisset == old_child then - n_kwisset = new_child.as(TKwisset) - return - end - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_id == old_child then - n_id = new_child.as(TAttrid) + if _n_op == old_child then + n_op = new_child.as(TSlasheq) return end end - redef fun n_kwisset=(node) + redef fun n_op=(node) do - _n_kwisset = node + _n_op = node node.parent = self end - redef fun n_expr=(node) + + + redef fun visit_all(v: Visitor) do - _n_expr = node - node.parent = self + v.enter_visit(_n_op) end - redef fun n_id=(node) +end +redef class APercentAssignOp + init init_apercentassignop ( + n_op: nullable TPercenteq + ) do - _n_id = node + _n_op = n_op.as(not null) + n_op.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_op == old_child then + n_op = new_child.as(TPercenteq) + return + end + end + + redef fun n_op=(node) + do + _n_op = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwisset) - v.enter_visit(_n_expr) - v.enter_visit(_n_id) + v.enter_visit(_n_op) end end -redef class ADebugTypeExpr - init init_adebugtypeexpr ( - n_kwdebug: nullable TKwdebug, - n_kwtype: nullable TKwtype, - n_expr: nullable AExpr, - n_type: nullable AType +redef class AStarstarAssignOp + init init_astarstarassignop ( + n_op: nullable TStarstareq ) do - _n_kwdebug = n_kwdebug.as(not null) - n_kwdebug.parent = self - _n_kwtype = n_kwtype.as(not null) - n_kwtype.parent = self - _n_expr = n_expr.as(not null) - n_expr.parent = self - _n_type = n_type.as(not null) - n_type.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_kwdebug == old_child then - n_kwdebug = new_child.as(TKwdebug) - return - end - if _n_kwtype == old_child then - n_kwtype = new_child.as(TKwtype) - return - end - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - if _n_type == old_child then - n_type = new_child.as(AType) + if _n_op == old_child then + n_op = new_child.as(TStarstareq) return end end - redef fun n_kwdebug=(node) + redef fun n_op=(node) do - _n_kwdebug = node + _n_op = node node.parent = self end - redef fun n_kwtype=(node) + + + redef fun visit_all(v: Visitor) do - _n_kwtype = node - node.parent = self + v.enter_visit(_n_op) end - redef fun n_expr=(node) +end +redef class APipeAssignOp + init init_apipeassignop ( + n_op: nullable TPipeeq + ) do - _n_expr = node - node.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end - redef fun n_type=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_type = node + if _n_op == old_child then + n_op = new_child.as(TPipeeq) + return + end + end + + redef fun n_op=(node) + do + _n_op = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_kwdebug) - v.enter_visit(_n_kwtype) - v.enter_visit(_n_expr) - v.enter_visit(_n_type) + v.enter_visit(_n_op) end end -redef class AListExprs - init init_alistexprs ( - n_exprs: Collection[Object] # Should be Collection[AExpr] +redef class ACaretAssignOp + init init_acaretassignop ( + n_op: nullable TCareteq ) do - self.n_exprs.unsafe_add_all(n_exprs) + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if n_exprs.replace_child(old_child, new_child) then return + if _n_op == old_child then + n_op = new_child.as(TCareteq) + return + end end + redef fun n_op=(node) + do + _n_op = node + node.parent = self + end redef fun visit_all(v: Visitor) do - n_exprs.visit_all(v) + v.enter_visit(_n_op) end end -redef class AParExprs - init init_aparexprs ( - n_opar: nullable TOpar, - n_exprs: Collection[Object], # Should be Collection[AExpr] - n_cpar: nullable TCpar +redef class AAmpAssignOp + init init_aampassignop ( + n_op: nullable TAmpeq ) do - _n_opar = n_opar.as(not null) - n_opar.parent = self - self.n_exprs.unsafe_add_all(n_exprs) - _n_cpar = n_cpar.as(not null) - n_cpar.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_opar == old_child then - n_opar = new_child.as(TOpar) - return - end - if n_exprs.replace_child(old_child, new_child) then return - if _n_cpar == old_child then - n_cpar = new_child.as(TCpar) + if _n_op == old_child then + n_op = new_child.as(TAmpeq) return end end - redef fun n_opar=(node) - do - _n_opar = node - node.parent = self - end - redef fun n_cpar=(node) + redef fun n_op=(node) do - _n_cpar = node + _n_op = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_opar) - n_exprs.visit_all(v) - v.enter_visit(_n_cpar) + v.enter_visit(_n_op) end end -redef class ABraExprs - init init_abraexprs ( - n_obra: nullable TObra, - n_exprs: Collection[Object], # Should be Collection[AExpr] - n_cbra: nullable TCbra +redef class ALlAssignOp + init init_allassignop ( + n_op: nullable TLleq ) do - _n_obra = n_obra.as(not null) - n_obra.parent = self - self.n_exprs.unsafe_add_all(n_exprs) - _n_cbra = n_cbra.as(not null) - n_cbra.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_obra == old_child then - n_obra = new_child.as(TObra) - return - end - if n_exprs.replace_child(old_child, new_child) then return - if _n_cbra == old_child then - n_cbra = new_child.as(TCbra) + if _n_op == old_child then + n_op = new_child.as(TLleq) return end end - redef fun n_obra=(node) - do - _n_obra = node - node.parent = self - end - redef fun n_cbra=(node) + redef fun n_op=(node) do - _n_cbra = node + _n_op = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_obra) - n_exprs.visit_all(v) - v.enter_visit(_n_cbra) + v.enter_visit(_n_op) end end -redef class APlusAssignOp - init init_aplusassignop ( - n_pluseq: nullable TPluseq +redef class AGgAssignOp + init init_aggassignop ( + n_op: nullable TGgeq ) do - _n_pluseq = n_pluseq.as(not null) - n_pluseq.parent = self + _n_op = n_op.as(not null) + n_op.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_pluseq == old_child then - n_pluseq = new_child.as(TPluseq) + if _n_op == old_child then + n_op = new_child.as(TGgeq) return end end - redef fun n_pluseq=(node) + redef fun n_op=(node) do - _n_pluseq = node + _n_op = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_pluseq) + v.enter_visit(_n_op) end end -redef class AMinusAssignOp - init init_aminusassignop ( - n_minuseq: nullable TMinuseq +redef class AForGroup + init init_aforgroup ( + n_ids: Collection[Object], # Should be Collection[TId] + n_kwin: nullable TKwin, + n_expr: nullable AExpr ) do - _n_minuseq = n_minuseq.as(not null) - n_minuseq.parent = self + self.n_ids.unsafe_add_all(n_ids) + _n_kwin = n_kwin.as(not null) + n_kwin.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_minuseq == old_child then - n_minuseq = new_child.as(TMinuseq) + if n_ids.replace_child(old_child, new_child) then return + if _n_kwin == old_child then + n_kwin = new_child.as(TKwin) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) return end end - redef fun n_minuseq=(node) + redef fun n_kwin=(node) + do + _n_kwin = node + node.parent = self + end + redef fun n_expr=(node) do - _n_minuseq = node + _n_expr = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_minuseq) + n_ids.visit_all(v) + v.enter_visit(_n_kwin) + v.enter_visit(_n_expr) end end redef class AModuleName @@ -7455,12 +8612,16 @@ redef class ADoc end redef class AAnnotations init init_aannotations ( + n_kwis: nullable TKwis, n_at: nullable TAt, n_opar: nullable TOpar, n_items: Collection[Object], # Should be Collection[AAnnotation] - n_cpar: nullable TCpar + n_cpar: nullable TCpar, + n_kwend: nullable TKwend ) do + _n_kwis = n_kwis + if n_kwis != null then n_kwis.parent = self _n_at = n_at if n_at != null then n_at.parent = self _n_opar = n_opar @@ -7468,10 +8629,16 @@ redef class AAnnotations self.n_items.unsafe_add_all(n_items) _n_cpar = n_cpar if n_cpar != null then n_cpar.parent = self + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_kwis == old_child then + n_kwis = new_child.as(nullable TKwis) + return + end if _n_at == old_child then n_at = new_child.as(nullable TAt) return @@ -7485,8 +8652,17 @@ redef class AAnnotations n_cpar = new_child.as(nullable TCpar) return end + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end end + redef fun n_kwis=(node) + do + _n_kwis = node + if node != null then node.parent = self + end redef fun n_at=(node) do _n_at = node @@ -7502,25 +8678,41 @@ redef class AAnnotations _n_cpar = node if node != null then node.parent = self end + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_kwis) v.enter_visit(_n_at) v.enter_visit(_n_opar) n_items.visit_all(v) v.enter_visit(_n_cpar) + v.enter_visit(_n_kwend) end end redef class AAnnotation init init_aannotation ( + n_doc: nullable ADoc, + n_kwredef: nullable TKwredef, + n_visibility: nullable AVisibility, n_atid: nullable AAtid, n_opar: nullable TOpar, - n_args: Collection[Object], # Should be Collection[AAtArg] + n_args: Collection[Object], # Should be Collection[AExpr] n_cpar: nullable TCpar, n_annotations: nullable AAnnotations ) do + _n_doc = n_doc + if n_doc != null then n_doc.parent = self + _n_kwredef = n_kwredef + if n_kwredef != null then n_kwredef.parent = self + _n_visibility = n_visibility + if n_visibility != null then n_visibility.parent = self _n_atid = n_atid.as(not null) n_atid.parent = self _n_opar = n_opar @@ -7534,6 +8726,18 @@ redef class AAnnotation redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_doc == old_child then + n_doc = new_child.as(nullable ADoc) + return + end + if _n_kwredef == old_child then + n_kwredef = new_child.as(nullable TKwredef) + return + end + if _n_visibility == old_child then + n_visibility = new_child.as(nullable AVisibility) + return + end if _n_atid == old_child then n_atid = new_child.as(AAtid) return @@ -7553,6 +8757,21 @@ redef class AAnnotation end end + redef fun n_doc=(node) + do + _n_doc = node + if node != null then node.parent = self + end + redef fun n_kwredef=(node) + do + _n_kwredef = node + if node != null then node.parent = self + end + redef fun n_visibility=(node) + do + _n_visibility = node + if node != null then node.parent = self + end redef fun n_atid=(node) do _n_atid = node @@ -7577,6 +8796,9 @@ redef class AAnnotation redef fun visit_all(v: Visitor) do + v.enter_visit(_n_doc) + v.enter_visit(_n_kwredef) + v.enter_visit(_n_visibility) v.enter_visit(_n_atid) v.enter_visit(_n_opar) n_args.visit_all(v) @@ -7584,93 +8806,6 @@ redef class AAnnotation v.enter_visit(_n_annotations) end end -redef class ATypeAtArg - init init_atypeatarg ( - n_type: nullable AType - ) - do - _n_type = n_type.as(not null) - n_type.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_type == old_child then - n_type = new_child.as(AType) - return - end - end - - redef fun n_type=(node) - do - _n_type = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_type) - end -end -redef class AExprAtArg - init init_aexpratarg ( - n_expr: nullable AExpr - ) - do - _n_expr = n_expr.as(not null) - n_expr.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_expr == old_child then - n_expr = new_child.as(AExpr) - return - end - end - - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_expr) - end -end -redef class AAtAtArg - init init_aatatarg ( - n_annotations: nullable AAnnotations - ) - do - _n_annotations = n_annotations.as(not null) - n_annotations.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_annotations == old_child then - n_annotations = new_child.as(AAnnotations) - return - end - end - - redef fun n_annotations=(node) - do - _n_annotations = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_annotations) - end -end redef class AIdAtid init init_aidatid ( n_id: nullable TId @@ -7729,67 +8864,9 @@ redef class AKwexternAtid v.enter_visit(_n_id) end end -redef class AKwinternAtid - init init_akwinternatid ( - n_id: nullable TKwintern - ) - do - _n_id = n_id.as(not null) - n_id.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_id == old_child then - n_id = new_child.as(TKwintern) - return - end - end - - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_id) - end -end -redef class AKwreadableAtid - init init_akwreadableatid ( - n_id: nullable TKwreadable - ) - do - _n_id = n_id.as(not null) - n_id.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_id == old_child then - n_id = new_child.as(TKwreadable) - return - end - end - - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_id) - end -end -redef class AKwwritableAtid - init init_akwwritableatid ( - n_id: nullable TKwwritable +redef class AKwabstractAtid + init init_akwabstractatid ( + n_id: nullable TKwabstract ) do _n_id = n_id.as(not null) @@ -7799,7 +8876,7 @@ redef class AKwwritableAtid redef fun replace_child(old_child: ANode, new_child: nullable ANode) do if _n_id == old_child then - n_id = new_child.as(TKwwritable) + n_id = new_child.as(TKwabstract) return end end