X-Git-Url: http://nitlanguage.org diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit index 2cd7643..84b2210 100644 --- a/src/parser/parser_prod.nit +++ b/src/parser/parser_prod.nit @@ -1,14 +1,12 @@ # Production AST nodes full definition. # This file was generated by SableCC (http://www.sablecc.org/). -module parser_prod +module parser_prod is no_warning("missing-doc") import lexer intrude import parser_nodes private import tables redef class AModule - private init empty_init do end - init init_amodule ( n_moduledecl: nullable AModuledecl, n_imports: Collection[Object], # Should be Collection[AImport] @@ -16,12 +14,11 @@ redef class AModule n_classdefs: Collection[Object] # Should be Collection[AClassdef] ) do - empty_init _n_moduledecl = n_moduledecl if n_moduledecl != null then n_moduledecl.parent = self - _n_imports.unsafe_add_all(n_imports) - _n_extern_code_blocks.unsafe_add_all(n_extern_code_blocks) - _n_classdefs.unsafe_add_all(n_classdefs) + self.n_imports.unsafe_add_all(n_imports) + self.n_extern_code_blocks.unsafe_add_all(n_extern_code_blocks) + self.n_classdefs.unsafe_add_all(n_classdefs) end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -30,9 +27,9 @@ redef class AModule n_moduledecl = new_child.as(nullable AModuledecl) return end - if _n_imports.replace_child(old_child, new_child) then return - if _n_extern_code_blocks.replace_child(old_child, new_child) then return - if _n_classdefs.replace_child(old_child, new_child) then return + if n_imports.replace_child(old_child, new_child) then return + if n_extern_code_blocks.replace_child(old_child, new_child) then return + if n_classdefs.replace_child(old_child, new_child) then return end redef fun n_moduledecl=(node) @@ -45,24 +42,27 @@ redef class AModule redef fun visit_all(v: Visitor) do v.enter_visit(_n_moduledecl) - _n_imports.visit_all(v) - _n_extern_code_blocks.visit_all(v) - _n_classdefs.visit_all(v) + n_imports.visit_all(v) + n_extern_code_blocks.visit_all(v) + n_classdefs.visit_all(v) end end redef class AModuledecl - private init empty_init do end - 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 ) do - empty_init _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) @@ -77,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 @@ -96,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 @@ -116,14 +134,14 @@ 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) end end redef class AStdImport - private init empty_init do end - init init_astdimport ( n_visibility: nullable AVisibility, n_kwimport: nullable TKwimport, @@ -131,7 +149,6 @@ redef class AStdImport n_annotations: nullable AAnnotations ) do - empty_init _n_visibility = n_visibility.as(not null) n_visibility.parent = self _n_kwimport = n_kwimport.as(not null) @@ -193,15 +210,12 @@ redef class AStdImport end end redef class ANoImport - private init empty_init do end - init init_anoimport ( n_visibility: nullable AVisibility, n_kwimport: nullable TKwimport, n_kwend: nullable TKwend ) do - empty_init _n_visibility = n_visibility.as(not null) n_visibility.parent = self _n_kwimport = n_kwimport.as(not null) @@ -251,31 +265,39 @@ redef class ANoImport end end redef class APublicVisibility - private init empty_init do end - - init init_apublicvisibility + init init_apublicvisibility ( + n_kwpublic: nullable TKwpublic + ) do - empty_init + _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 - private init empty_init do end - init init_aprivatevisibility ( n_kwprivate: nullable TKwprivate ) do - empty_init _n_kwprivate = n_kwprivate.as(not null) n_kwprivate.parent = self end @@ -301,13 +323,10 @@ redef class APrivateVisibility end end redef class AProtectedVisibility - private init empty_init do end - init init_aprotectedvisibility ( n_kwprotected: nullable TKwprotected ) do - empty_init _n_kwprotected = n_kwprotected.as(not null) n_kwprotected.parent = self end @@ -333,13 +352,10 @@ redef class AProtectedVisibility end end redef class AIntrudeVisibility - private init empty_init do end - init init_aintrudevisibility ( n_kwintrude: nullable TKwintrude ) do - empty_init _n_kwintrude = n_kwintrude.as(not null) n_kwintrude.parent = self end @@ -365,8 +381,6 @@ redef class AIntrudeVisibility end end redef class AStdClassdef - private init empty_init do end - init init_astdclassdef ( n_doc: nullable ADoc, n_kwredef: nullable TKwredef, @@ -374,14 +388,11 @@ redef class AStdClassdef n_classkind: nullable AClasskind, n_id: nullable TClassid, n_formaldefs: Collection[Object], # Should be Collection[AFormaldef] - n_annotations: nullable AAnnotations, 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 ) do - empty_init _n_doc = n_doc if n_doc != null then n_doc.parent = self _n_kwredef = n_kwredef @@ -392,13 +403,10 @@ redef class AStdClassdef n_classkind.parent = self _n_id = n_id if n_id != null then n_id.parent = self - _n_formaldefs.unsafe_add_all(n_formaldefs) - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self + self.n_formaldefs.unsafe_add_all(n_formaldefs) _n_extern_code_block = n_extern_code_block if n_extern_code_block != null then n_extern_code_block.parent = self - _n_superclasses.unsafe_add_all(n_superclasses) - _n_propdefs.unsafe_add_all(n_propdefs) + self.n_propdefs.unsafe_add_all(n_propdefs) _n_kwend = n_kwend.as(not null) n_kwend.parent = self end @@ -425,17 +433,12 @@ redef class AStdClassdef n_id = new_child.as(nullable TClassid) 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) - return - end + if n_formaldefs.replace_child(old_child, new_child) then return 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_propdefs.replace_child(old_child, new_child) then return if _n_kwend == old_child then n_kwend = new_child.as(TKwend) return @@ -467,11 +470,6 @@ redef class AStdClassdef _n_id = 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_extern_code_block=(node) do _n_extern_code_block = node @@ -491,68 +489,57 @@ redef class AStdClassdef v.enter_visit(_n_visibility) v.enter_visit(_n_classkind) v.enter_visit(_n_id) - _n_formaldefs.visit_all(v) - v.enter_visit(_n_annotations) + n_formaldefs.visit_all(v) v.enter_visit(_n_extern_code_block) - _n_superclasses.visit_all(v) - _n_propdefs.visit_all(v) + n_propdefs.visit_all(v) v.enter_visit(_n_kwend) end end redef class ATopClassdef - private init empty_init do end - init init_atopclassdef ( n_propdefs: Collection[Object] # Should be Collection[APropdef] ) do - empty_init - _n_propdefs.unsafe_add_all(n_propdefs) + self.n_propdefs.unsafe_add_all(n_propdefs) end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_propdefs.replace_child(old_child, new_child) then return + if n_propdefs.replace_child(old_child, new_child) then return end redef fun visit_all(v: Visitor) do - _n_propdefs.visit_all(v) + n_propdefs.visit_all(v) end end redef class AMainClassdef - private init empty_init do end - init init_amainclassdef ( n_propdefs: Collection[Object] # Should be Collection[APropdef] ) do - empty_init - _n_propdefs.unsafe_add_all(n_propdefs) + self.n_propdefs.unsafe_add_all(n_propdefs) end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_propdefs.replace_child(old_child, new_child) then return + if n_propdefs.replace_child(old_child, new_child) then return end redef fun visit_all(v: Visitor) do - _n_propdefs.visit_all(v) + n_propdefs.visit_all(v) end end redef class AConcreteClasskind - private init empty_init do end - init init_aconcreteclasskind ( n_kwclass: nullable TKwclass ) do - empty_init _n_kwclass = n_kwclass.as(not null) n_kwclass.parent = self end @@ -578,14 +565,11 @@ redef class AConcreteClasskind end end redef class AAbstractClasskind - private init empty_init do end - init init_aabstractclasskind ( n_kwabstract: nullable TKwabstract, n_kwclass: nullable TKwclass ) do - empty_init _n_kwabstract = n_kwabstract.as(not null) n_kwabstract.parent = self _n_kwclass = n_kwclass.as(not null) @@ -623,13 +607,10 @@ redef class AAbstractClasskind end end redef class AInterfaceClasskind - private init empty_init do end - init init_ainterfaceclasskind ( n_kwinterface: nullable TKwinterface ) do - empty_init _n_kwinterface = n_kwinterface.as(not null) n_kwinterface.parent = self end @@ -655,13 +636,10 @@ redef class AInterfaceClasskind end end redef class AEnumClasskind - private init empty_init do end - init init_aenumclasskind ( n_kwenum: nullable TKwenum ) do - empty_init _n_kwenum = n_kwenum.as(not null) n_kwenum.parent = self end @@ -687,14 +665,11 @@ redef class AEnumClasskind end end redef class AExternClasskind - private init empty_init do end - init init_aexternclasskind ( n_kwextern: nullable TKwextern, n_kwclass: nullable TKwclass ) do - empty_init _n_kwextern = n_kwextern.as(not null) n_kwextern.parent = self _n_kwclass = n_kwclass @@ -732,15 +707,12 @@ redef class AExternClasskind end end redef class AFormaldef - private init empty_init do end - init init_aformaldef ( n_id: nullable TClassid, n_type: nullable AType, n_annotations: nullable AAnnotations ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self _n_type = n_type @@ -789,104 +761,37 @@ redef class AFormaldef v.enter_visit(_n_annotations) end end -redef class ASuperclass - private init empty_init do end - - init init_asuperclass ( - n_kwsuper: nullable TKwsuper, - n_type: nullable AType, - n_annotations: nullable AAnnotations - ) - do - empty_init - _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) - do - if _n_kwsuper == old_child then - n_kwsuper = new_child.as(TKwsuper) - return - end - if _n_type == old_child then - n_type = new_child.as(AType) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end - end - - redef fun n_kwsuper=(node) - do - _n_kwsuper = node - node.parent = self - end - redef fun n_type=(node) - do - _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_kwsuper) - v.enter_visit(_n_type) - v.enter_visit(_n_annotations) - end -end redef class AAttrPropdef - private init empty_init do end - 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_expr: nullable AExpr, n_annotations: nullable AAnnotations, - n_expr: nullable AExpr + n_block: nullable AExpr ) do - empty_init _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_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_block = n_block + if n_block != null then n_block.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -895,14 +800,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 @@ -915,24 +812,24 @@ 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_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_expr == old_child then - n_expr = new_child.as(nullable AExpr) + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) return end end @@ -942,16 +839,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 @@ -967,29 +854,29 @@ 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_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 n_expr=(node) + redef fun n_block=(node) do - _n_expr = node + _n_block = node if node != null then node.parent = self end @@ -997,128 +884,81 @@ redef class AAttrPropdef 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_expr) + v.enter_visit(_n_annotations) + v.enter_visit(_n_block) end end -redef class AMethPropdef - private init empty_init do end - - 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 - empty_init - _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) - 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) + redef fun n_block=(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 - private init empty_init do end - - 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_id: nullable TClassid, + n_type: nullable AType, n_annotations: nullable AAnnotations ) do - empty_init _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_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 end @@ -1137,372 +977,22 @@ 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) - 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 - 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 - 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 - 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 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) - end -end -redef class AInternMethPropdef - private init empty_init do end - - init init_ainternmethpropdef ( - n_doc: nullable ADoc, - n_kwredef: nullable TKwredef, - n_visibility: nullable AVisibility, - n_kwmeth: nullable TKwmeth, - n_methid: nullable AMethid, - n_signature: nullable ASignature - ) - do - empty_init - _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 - 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 - 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 - 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 - end - redef fun n_signature=(node) - do - _n_signature = 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) - end -end -redef class AExternMethPropdef - private init empty_init do end - - init init_aexternmethpropdef ( - 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 - ) - do - empty_init - _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) - 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_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) - 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) - 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 - end - redef fun n_signature=(node) - do - _n_signature = node - node.parent = self - end - redef fun n_extern=(node) - do - _n_extern = 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 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_extern) - v.enter_visit(_n_extern_calls) - v.enter_visit(_n_extern_code_block) - end -end -redef class AConcreteMethPropdef - private init empty_init do end - - 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 - ) - do - empty_init - _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 - 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) + if _n_id == old_child then + n_id = new_child.as(TClassid) 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 n_annotations = new_child.as(nullable AAnnotations) return end - if _n_block == old_child then - n_block = new_child.as(nullable AExpr) - return - end end redef fun n_doc=(node) @@ -1520,142 +1010,19 @@ redef class AConcreteMethPropdef _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 - 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_block=(node) - do - _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_kwmeth) - v.enter_visit(_n_methid) - v.enter_visit(_n_signature) - v.enter_visit(_n_annotations) - v.enter_visit(_n_block) - end -end -redef class AConcreteInitPropdef - private init empty_init do end - - 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 - ) - do - empty_init - _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 - 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_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) - 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_kwtype=(node) do - _n_visibility = node + _n_kwtype = node node.parent = self end - redef fun n_kwinit=(node) + redef fun n_id=(node) do - _n_kwinit = node + _n_id = node node.parent = self end - redef fun n_methid=(node) - do - _n_methid = node - if node != null then 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) @@ -1663,11 +1030,6 @@ redef class AConcreteInitPropdef _n_annotations = 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 visit_all(v: Visitor) @@ -1675,47 +1037,52 @@ redef class AConcreteInitPropdef 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_kwtype) + v.enter_visit(_n_id) + v.enter_visit(_n_type) v.enter_visit(_n_annotations) - v.enter_visit(_n_block) end end -redef class AExternInitPropdef - private init empty_init do end - - init init_aexterninitpropdef ( +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_kwnew: nullable TKwnew, n_methid: nullable AMethid, n_signature: nullable ASignature, - n_extern: nullable TString, + n_annotations: nullable AAnnotations, n_extern_calls: nullable AExternCalls, - n_extern_code_block: nullable AExternCodeBlock + n_extern_code_block: nullable AExternCodeBlock, + n_block: nullable AExpr ) do - empty_init _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_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_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_extern = n_extern - if n_extern != null then n_extern.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_block = n_block + if n_block != null then n_block.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -1732,8 +1099,16 @@ redef class AExternInitPropdef n_visibility = new_child.as(AVisibility) return end + if _n_kwmeth == old_child then + 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_kwnew == old_child then - n_kwnew = new_child.as(TKwnew) + n_kwnew = new_child.as(nullable TKwnew) return end if _n_methid == old_child then @@ -1744,8 +1119,8 @@ redef class AExternInitPropdef n_signature = new_child.as(ASignature) return end - if _n_extern == old_child then - n_extern = new_child.as(nullable TString) + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) return end if _n_extern_calls == old_child then @@ -1756,6 +1131,10 @@ redef class AExternInitPropdef n_extern_code_block = new_child.as(nullable AExternCodeBlock) return end + if _n_block == old_child then + n_block = new_child.as(nullable AExpr) + return + end end redef fun n_doc=(node) @@ -1773,10 +1152,20 @@ redef class AExternInitPropdef _n_visibility = node node.parent = self end + redef fun n_kwmeth=(node) + do + _n_kwmeth = node + 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_kwnew=(node) do _n_kwnew = node - node.parent = self + if node != null then node.parent = self end redef fun n_methid=(node) do @@ -1788,9 +1177,9 @@ redef class AExternInitPropdef _n_signature = node node.parent = self end - redef fun n_extern=(node) + redef fun n_annotations=(node) do - _n_extern = node + _n_annotations = node if node != null then node.parent = self end redef fun n_extern_calls=(node) @@ -1803,6 +1192,11 @@ redef class AExternInitPropdef _n_extern_code_block = 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 visit_all(v: Visitor) @@ -1810,83 +1204,35 @@ redef class AExternInitPropdef v.enter_visit(_n_doc) v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) + v.enter_visit(_n_kwmeth) + v.enter_visit(_n_kwinit) v.enter_visit(_n_kwnew) v.enter_visit(_n_methid) v.enter_visit(_n_signature) - v.enter_visit(_n_extern) + v.enter_visit(_n_annotations) v.enter_visit(_n_extern_calls) v.enter_visit(_n_extern_code_block) - end -end -redef class AMainMethPropdef - private init empty_init do end - - init init_amainmethpropdef ( - n_kwredef: nullable TKwredef, - n_block: nullable AExpr - ) - do - empty_init - _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 - 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) - 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) - do - _n_block = 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_block) end end -redef class ATypePropdef - private init empty_init do end - - init init_atypepropdef ( +redef class ASuperPropdef + init init_asuperpropdef ( n_doc: nullable ADoc, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, - n_kwtype: nullable TKwtype, - n_id: nullable TClassid, + n_kwsuper: nullable TKwsuper, n_type: nullable AType, n_annotations: nullable AAnnotations ) do - empty_init _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_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 @@ -1907,12 +1253,8 @@ redef class ATypePropdef n_visibility = new_child.as(AVisibility) return end - if _n_kwtype == old_child then - n_kwtype = new_child.as(TKwtype) - return - end - if _n_id == old_child then - n_id = new_child.as(TClassid) + if _n_kwsuper == old_child then + n_kwsuper = new_child.as(TKwsuper) return end if _n_type == old_child then @@ -1940,14 +1282,9 @@ redef class ATypePropdef _n_visibility = node node.parent = self end - redef fun n_kwtype=(node) - do - _n_kwtype = node - node.parent = self - end - redef fun n_id=(node) + redef fun n_kwsuper=(node) do - _n_id = node + _n_kwsuper = node node.parent = self end redef fun n_type=(node) @@ -1967,77 +1304,46 @@ redef class ATypePropdef 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_kwsuper) v.enter_visit(_n_type) v.enter_visit(_n_annotations) end end -redef class AReadAble - private init empty_init do end - - init init_areadable ( - n_kwredef: nullable TKwredef, - n_kwreadable: nullable TKwreadable - ) - do - empty_init - _n_kwredef = n_kwredef - if n_kwredef != null then n_kwredef.parent = self - _n_kwreadable = n_kwreadable.as(not null) - n_kwreadable.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_kwreadable == old_child then - n_kwreadable = new_child.as(TKwreadable) - return - end - end - - redef fun n_kwredef=(node) - do - _n_kwredef = node - if node != null then node.parent = self - end - redef fun n_kwreadable=(node) - do - _n_kwreadable = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_kwredef) - v.enter_visit(_n_kwreadable) - end -end -redef class AWriteAble - private init empty_init do end - - init init_awriteable ( +redef class AAnnotPropdef + init init_aannotpropdef ( + n_doc: nullable ADoc, n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, - n_kwwritable: nullable TKwwritable + 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 - empty_init + _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_kwwritable = n_kwwritable.as(not null) - n_kwwritable.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_kwredef == old_child then n_kwredef = new_child.as(nullable TKwredef) return @@ -2046,12 +1352,30 @@ redef class AWriteAble n_visibility = new_child.as(nullable AVisibility) return end - if _n_kwwritable == old_child then - n_kwwritable = new_child.as(TKwwritable) + if _n_atid == old_child then + n_atid = new_child.as(AAtid) + return + end + if _n_opar == old_child then + n_opar = new_child.as(nullable TOpar) + return + end + 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_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) 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 @@ -2062,28 +1386,45 @@ redef class AWriteAble _n_visibility = node if node != null then node.parent = self end - redef fun n_kwwritable=(node) + redef fun n_atid=(node) do - _n_kwwritable = node + _n_atid = 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_cpar=(node) + do + _n_cpar = 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_doc) v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) - v.enter_visit(_n_kwwritable) + 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 AIdMethid - private init empty_init do end - init init_aidmethid ( n_id: nullable TId ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self end @@ -2109,13 +1450,10 @@ redef class AIdMethid end end redef class APlusMethid - private init empty_init do end - init init_aplusmethid ( n_plus: nullable TPlus ) do - empty_init _n_plus = n_plus.as(not null) n_plus.parent = self end @@ -2141,13 +1479,10 @@ redef class APlusMethid end end redef class AMinusMethid - private init empty_init do end - init init_aminusmethid ( n_minus: nullable TMinus ) do - empty_init _n_minus = n_minus.as(not null) n_minus.parent = self end @@ -2173,45 +1508,68 @@ redef class AMinusMethid end end redef class AStarMethid - private init empty_init do end - init init_astarmethid ( n_star: nullable TStar ) do - empty_init _n_star = n_star.as(not null) n_star.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_star == old_child then + n_star = new_child.as(TStar) + return + end + end + + redef fun n_star=(node) + do + _n_star = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_star) + end +end +redef class AStarstarMethid + init init_astarstarmethid ( + n_starstar: nullable TStarstar + ) + do + _n_starstar = n_starstar.as(not null) + n_starstar.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_starstar == old_child then + n_starstar = new_child.as(TStarstar) return end end - redef fun n_star=(node) + redef fun n_starstar=(node) do - _n_star = node + _n_starstar = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_star) + v.enter_visit(_n_starstar) end end redef class ASlashMethid - private init empty_init do end - init init_aslashmethid ( n_slash: nullable TSlash ) do - empty_init _n_slash = n_slash.as(not null) n_slash.parent = self end @@ -2237,13 +1595,10 @@ redef class ASlashMethid end end redef class APercentMethid - private init empty_init do end - init init_apercentmethid ( n_percent: nullable TPercent ) do - empty_init _n_percent = n_percent.as(not null) n_percent.parent = self end @@ -2269,13 +1624,10 @@ redef class APercentMethid end end redef class AEqMethid - private init empty_init do end - init init_aeqmethid ( n_eq: nullable TEq ) do - empty_init _n_eq = n_eq.as(not null) n_eq.parent = self end @@ -2301,13 +1653,10 @@ redef class AEqMethid end end redef class ANeMethid - private init empty_init do end - init init_anemethid ( n_ne: nullable TNe ) do - empty_init _n_ne = n_ne.as(not null) n_ne.parent = self end @@ -2333,13 +1682,10 @@ redef class ANeMethid end end redef class ALeMethid - private init empty_init do end - init init_alemethid ( n_le: nullable TLe ) do - empty_init _n_le = n_le.as(not null) n_le.parent = self end @@ -2365,13 +1711,10 @@ redef class ALeMethid end end redef class AGeMethid - private init empty_init do end - init init_agemethid ( n_ge: nullable TGe ) do - empty_init _n_ge = n_ge.as(not null) n_ge.parent = self end @@ -2397,13 +1740,10 @@ redef class AGeMethid end end redef class ALtMethid - private init empty_init do end - init init_altmethid ( n_lt: nullable TLt ) do - empty_init _n_lt = n_lt.as(not null) n_lt.parent = self end @@ -2429,13 +1769,10 @@ redef class ALtMethid end end redef class AGtMethid - private init empty_init do end - init init_agtmethid ( n_gt: nullable TGt ) do - empty_init _n_gt = n_gt.as(not null) n_gt.parent = self end @@ -2461,13 +1798,10 @@ redef class AGtMethid end end redef class ALlMethid - private init empty_init do end - init init_allmethid ( n_ll: nullable TLl ) do - empty_init _n_ll = n_ll.as(not null) n_ll.parent = self end @@ -2493,13 +1827,10 @@ redef class ALlMethid end end redef class AGgMethid - private init empty_init do end - init init_aggmethid ( n_gg: nullable TGg ) do - empty_init _n_gg = n_gg.as(not null) n_gg.parent = self end @@ -2525,14 +1856,11 @@ redef class AGgMethid end end redef class ABraMethid - private init empty_init do end - init init_abramethid ( n_obra: nullable TObra, n_cbra: nullable TCbra ) do - empty_init _n_obra = n_obra.as(not null) n_obra.parent = self _n_cbra = n_cbra.as(not null) @@ -2570,13 +1898,10 @@ redef class ABraMethid end end redef class AStarshipMethid - private init empty_init do end - init init_astarshipmethid ( n_starship: nullable TStarship ) do - empty_init _n_starship = n_starship.as(not null) n_starship.parent = self end @@ -2602,14 +1927,11 @@ redef class AStarshipMethid end end redef class AAssignMethid - private init empty_init do end - init init_aassignmethid ( n_id: nullable TId, n_assign: nullable TAssign ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self _n_assign = n_assign.as(not null) @@ -2647,15 +1969,12 @@ redef class AAssignMethid end end redef class ABraassignMethid - private init empty_init do end - init init_abraassignmethid ( n_obra: nullable TObra, n_cbra: nullable TCbra, n_assign: nullable TAssign ) do - empty_init _n_obra = n_obra.as(not null) n_obra.parent = self _n_cbra = n_cbra.as(not null) @@ -2705,8 +2024,6 @@ redef class ABraassignMethid end end redef class ASignature - private init empty_init do end - init init_asignature ( n_opar: nullable TOpar, n_params: Collection[Object], # Should be Collection[AParam] @@ -2714,10 +2031,9 @@ redef class ASignature n_type: nullable AType ) do - empty_init _n_opar = n_opar if n_opar != null then n_opar.parent = self - _n_params.unsafe_add_all(n_params) + 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 @@ -2730,7 +2046,7 @@ redef class ASignature n_opar = new_child.as(nullable TOpar) return end - if _n_params.replace_child(old_child, new_child) then return + 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 @@ -2761,14 +2077,12 @@ redef class ASignature redef fun visit_all(v: Visitor) do v.enter_visit(_n_opar) - _n_params.visit_all(v) + n_params.visit_all(v) v.enter_visit(_n_cpar) v.enter_visit(_n_type) end end redef class AParam - private init empty_init do end - init init_aparam ( n_id: nullable TId, n_type: nullable AType, @@ -2776,7 +2090,6 @@ redef class AParam n_annotations: nullable AAnnotations ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self _n_type = n_type @@ -2838,8 +2151,6 @@ redef class AParam end end redef class AType - private init empty_init do end - init init_atype ( n_kwnullable: nullable TKwnullable, n_id: nullable TClassid, @@ -2847,12 +2158,11 @@ redef class AType n_annotations: nullable AAnnotations ) do - empty_init _n_kwnullable = n_kwnullable if n_kwnullable != null then n_kwnullable.parent = self _n_id = n_id.as(not null) n_id.parent = self - _n_types.unsafe_add_all(n_types) + self.n_types.unsafe_add_all(n_types) _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end @@ -2867,7 +2177,7 @@ redef class AType n_id = new_child.as(TClassid) return end - if _n_types.replace_child(old_child, new_child) then return + if n_types.replace_child(old_child, new_child) then return if _n_annotations == old_child then n_annotations = new_child.as(nullable AAnnotations) return @@ -2895,23 +2205,20 @@ redef class AType do v.enter_visit(_n_kwnullable) v.enter_visit(_n_id) - _n_types.visit_all(v) + n_types.visit_all(v) v.enter_visit(_n_annotations) end end redef class ALabel - private init empty_init do end - init init_alabel ( n_kwlabel: nullable TKwlabel, n_id: nullable TId ) do - empty_init _n_kwlabel = n_kwlabel.as(not null) n_kwlabel.parent = self - _n_id = n_id.as(not null) - n_id.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) @@ -2921,7 +2228,7 @@ redef class ALabel return end if _n_id == old_child then - n_id = new_child.as(TId) + n_id = new_child.as(nullable TId) return end end @@ -2934,7 +2241,7 @@ redef class ALabel redef fun n_id=(node) do _n_id = node - node.parent = self + if node != null then node.parent = self end @@ -2945,22 +2252,19 @@ redef class ALabel end end redef class ABlockExpr - private init empty_init do end - init init_ablockexpr ( n_expr: Collection[Object], # Should be Collection[AExpr] n_kwend: nullable TKwend ) do - empty_init - _n_expr.unsafe_add_all(n_expr) + 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_expr.replace_child(old_child, new_child) then return if _n_kwend == old_child then n_kwend = new_child.as(nullable TKwend) return @@ -2976,13 +2280,11 @@ redef class ABlockExpr redef fun visit_all(v: Visitor) do - _n_expr.visit_all(v) + n_expr.visit_all(v) v.enter_visit(_n_kwend) end end redef class AVardeclExpr - private init empty_init do end - init init_avardeclexpr ( n_kwvar: nullable TKwvar, n_id: nullable TId, @@ -2992,9 +2294,8 @@ redef class AVardeclExpr n_annotations: nullable AAnnotations ) do - empty_init - _n_kwvar = n_kwvar.as(not null) - n_kwvar.parent = self + _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 @@ -3010,7 +2311,7 @@ redef class AVardeclExpr redef fun replace_child(old_child: ANode, new_child: nullable ANode) do if _n_kwvar == old_child then - n_kwvar = new_child.as(TKwvar) + n_kwvar = new_child.as(nullable TKwvar) return end if _n_id == old_child then @@ -3038,7 +2339,7 @@ redef class AVardeclExpr redef fun n_kwvar=(node) do _n_kwvar = node - node.parent = self + if node != null then node.parent = self end redef fun n_id=(node) do @@ -3078,14 +2379,11 @@ redef class AVardeclExpr end end redef class AReturnExpr - private init empty_init do end - init init_areturnexpr ( n_kwreturn: nullable TKwreturn, n_expr: nullable AExpr ) do - empty_init _n_kwreturn = n_kwreturn if n_kwreturn != null then n_kwreturn.parent = self _n_expr = n_expr @@ -3123,21 +2421,15 @@ redef class AReturnExpr end end redef class ABreakExpr - private init empty_init do end - init init_abreakexpr ( n_kwbreak: nullable TKwbreak, - n_label: nullable ALabel, - n_expr: nullable AExpr + n_label: nullable ALabel ) do - empty_init _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 end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -3150,10 +2442,6 @@ redef class ABreakExpr n_label = new_child.as(nullable ALabel) return end - if _n_expr == old_child then - n_expr = new_child.as(nullable AExpr) - return - end end redef fun n_kwbreak=(node) @@ -3166,28 +2454,19 @@ redef class ABreakExpr _n_label = 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 visit_all(v: Visitor) do v.enter_visit(_n_kwbreak) v.enter_visit(_n_label) - v.enter_visit(_n_expr) end end redef class AAbortExpr - private init empty_init do end - init init_aabortexpr ( n_kwabort: nullable TKwabort ) do - empty_init _n_kwabort = n_kwabort.as(not null) n_kwabort.parent = self end @@ -3213,21 +2492,15 @@ redef class AAbortExpr end end redef class AContinueExpr - private init empty_init do end - init init_acontinueexpr ( n_kwcontinue: nullable TKwcontinue, - n_label: nullable ALabel, - n_expr: nullable AExpr + n_label: nullable ALabel ) do - empty_init _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 end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -3240,10 +2513,6 @@ redef class AContinueExpr n_label = new_child.as(nullable ALabel) return end - if _n_expr == old_child then - n_expr = new_child.as(nullable AExpr) - return - end end redef fun n_kwcontinue=(node) @@ -3256,30 +2525,21 @@ redef class AContinueExpr _n_label = 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 visit_all(v: Visitor) do v.enter_visit(_n_kwcontinue) v.enter_visit(_n_label) - v.enter_visit(_n_expr) end end redef class ADoExpr - private init empty_init do end - init init_adoexpr ( n_kwdo: nullable TKwdo, n_block: nullable AExpr, n_label: nullable ALabel ) do - empty_init _n_kwdo = n_kwdo.as(not null) n_kwdo.parent = self _n_block = n_block @@ -3329,8 +2589,6 @@ redef class ADoExpr end end redef class AIfExpr - private init empty_init do end - init init_aifexpr ( n_kwif: nullable TKwif, n_expr: nullable AExpr, @@ -3338,7 +2596,6 @@ redef class AIfExpr n_else: nullable AExpr ) do - empty_init _n_kwif = n_kwif.as(not null) n_kwif.parent = self _n_expr = n_expr.as(not null) @@ -3400,8 +2657,6 @@ redef class AIfExpr end end redef class AIfexprExpr - private init empty_init do end - init init_aifexprexpr ( n_kwif: nullable TKwif, n_expr: nullable AExpr, @@ -3411,7 +2666,6 @@ redef class AIfexprExpr n_else: nullable AExpr ) do - empty_init _n_kwif = n_kwif.as(not null) n_kwif.parent = self _n_expr = n_expr.as(not null) @@ -3497,8 +2751,6 @@ redef class AIfexprExpr end end redef class AWhileExpr - private init empty_init do end - init init_awhileexpr ( n_kwwhile: nullable TKwwhile, n_expr: nullable AExpr, @@ -3507,7 +2759,6 @@ redef class AWhileExpr n_label: nullable ALabel ) do - empty_init _n_kwwhile = n_kwwhile.as(not null) n_kwwhile.parent = self _n_expr = n_expr.as(not null) @@ -3581,15 +2832,12 @@ redef class AWhileExpr end end redef class ALoopExpr - private init empty_init do end - init init_aloopexpr ( n_kwloop: nullable TKwloop, n_block: nullable AExpr, n_label: nullable ALabel ) do - empty_init _n_kwloop = n_kwloop.as(not null) n_kwloop.parent = self _n_block = n_block @@ -3639,8 +2887,6 @@ redef class ALoopExpr end end redef class AForExpr - private init empty_init do end - init init_aforexpr ( n_kwfor: nullable TKwfor, n_ids: Collection[Object], # Should be Collection[TId] @@ -3650,10 +2896,9 @@ redef class AForExpr n_label: nullable ALabel ) do - empty_init _n_kwfor = n_kwfor.as(not null) n_kwfor.parent = self - _n_ids.unsafe_add_all(n_ids) + 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) @@ -3670,7 +2915,7 @@ redef class AForExpr n_kwfor = new_child.as(TKwfor) return end - if _n_ids.replace_child(old_child, new_child) then return + if n_ids.replace_child(old_child, new_child) then return if _n_expr == old_child then n_expr = new_child.as(AExpr) return @@ -3719,16 +2964,95 @@ redef class AForExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_kwfor) - _n_ids.visit_all(v) + 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) end end -redef class AAssertExpr - private init empty_init do end +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_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_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_kwwith=(node) + do + _n_kwwith = node + node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + redef fun n_kwdo=(node) + do + _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_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_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 AAssertExpr init init_aassertexpr ( n_kwassert: nullable TKwassert, n_id: nullable TId, @@ -3736,7 +3060,6 @@ redef class AAssertExpr n_else: nullable AExpr ) do - empty_init _n_kwassert = n_kwassert.as(not null) n_kwassert.parent = self _n_id = n_id @@ -3798,14 +3121,11 @@ redef class AAssertExpr end end redef class AOnceExpr - private init empty_init do end - init init_aonceexpr ( n_kwonce: nullable TKwonce, n_expr: nullable AExpr ) do - empty_init _n_kwonce = n_kwonce.as(not null) n_kwonce.parent = self _n_expr = n_expr.as(not null) @@ -3843,13 +3163,10 @@ redef class AOnceExpr end end redef class ASendExpr - private init empty_init do end - init init_asendexpr ( n_expr: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self end @@ -3875,14 +3192,11 @@ redef class ASendExpr end end redef class ABinopExpr - private init empty_init do end - init init_abinopexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -3920,14 +3234,11 @@ redef class ABinopExpr end end redef class AOrExpr - private init empty_init do end - init init_aorexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -3965,14 +3276,11 @@ redef class AOrExpr end end redef class AAndExpr - private init empty_init do end - init init_aandexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4010,14 +3318,11 @@ redef class AAndExpr end end redef class AOrElseExpr - private init empty_init do end - init init_aorelseexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4055,14 +3360,11 @@ redef class AOrElseExpr end end redef class AImpliesExpr - private init empty_init do end - init init_aimpliesexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4100,14 +3402,11 @@ redef class AImpliesExpr end end redef class ANotExpr - private init empty_init do end - init init_anotexpr ( n_kwnot: nullable TKwnot, n_expr: nullable AExpr ) do - empty_init _n_kwnot = n_kwnot.as(not null) n_kwnot.parent = self _n_expr = n_expr.as(not null) @@ -4145,14 +3444,11 @@ redef class ANotExpr end end redef class AEqExpr - private init empty_init do end - init init_aeqexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4190,14 +3486,11 @@ redef class AEqExpr end end redef class ANeExpr - private init empty_init do end - init init_aneexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4235,14 +3528,11 @@ redef class ANeExpr end end redef class ALtExpr - private init empty_init do end - init init_altexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4280,14 +3570,11 @@ redef class ALtExpr end end redef class ALeExpr - private init empty_init do end - init init_aleexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4325,14 +3612,11 @@ redef class ALeExpr end end redef class ALlExpr - private init empty_init do end - init init_allexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4370,14 +3654,11 @@ redef class ALlExpr end end redef class AGtExpr - private init empty_init do end - init init_agtexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4415,14 +3696,11 @@ redef class AGtExpr end end redef class AGeExpr - private init empty_init do end - init init_ageexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4460,14 +3738,11 @@ redef class AGeExpr end end redef class AGgExpr - private init empty_init do end - init init_aggexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4505,14 +3780,11 @@ redef class AGgExpr end end redef class AIsaExpr - private init empty_init do end - init init_aisaexpr ( n_expr: nullable AExpr, n_type: nullable AType ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_type = n_type.as(not null) @@ -4550,14 +3822,11 @@ redef class AIsaExpr end end redef class APlusExpr - private init empty_init do end - init init_aplusexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4595,14 +3864,11 @@ redef class APlusExpr end end redef class AMinusExpr - private init empty_init do end - init init_aminusexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4640,14 +3906,11 @@ redef class AMinusExpr end end redef class AStarshipExpr - private init empty_init do end - init init_astarshipexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4685,14 +3948,11 @@ redef class AStarshipExpr end end redef class AStarExpr - private init empty_init do end - init init_astarexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4729,15 +3989,54 @@ redef class AStarExpr v.enter_visit(_n_expr2) end end -redef class ASlashExpr - private init empty_init do end +redef class AStarstarExpr + init init_astarstarexpr ( + n_expr: nullable AExpr, + n_expr2: 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 + 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 + 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 + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_expr) + v.enter_visit(_n_expr2) + end +end +redef class ASlashExpr init init_aslashexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4775,14 +4074,11 @@ redef class ASlashExpr end end redef class APercentExpr - private init empty_init do end - init init_apercentexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -4820,14 +4116,11 @@ redef class APercentExpr end end redef class AUminusExpr - private init empty_init do end - init init_auminusexpr ( n_minus: nullable TMinus, n_expr: nullable AExpr ) do - empty_init _n_minus = n_minus.as(not null) n_minus.parent = self _n_expr = n_expr.as(not null) @@ -4865,8 +4158,6 @@ redef class AUminusExpr end end redef class ANewExpr - private init empty_init do end - init init_anewexpr ( n_kwnew: nullable TKwnew, n_type: nullable AType, @@ -4874,7 +4165,6 @@ redef class ANewExpr n_args: nullable AExprs ) do - empty_init _n_kwnew = n_kwnew.as(not null) n_kwnew.parent = self _n_type = n_type.as(not null) @@ -4936,14 +4226,11 @@ redef class ANewExpr end end redef class AAttrExpr - private init empty_init do end - init init_aattrexpr ( n_expr: nullable AExpr, n_id: nullable TAttrid ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_id = n_id.as(not null) @@ -4981,8 +4268,6 @@ redef class AAttrExpr end end redef class AAttrAssignExpr - private init empty_init do end - init init_aattrassignexpr ( n_expr: nullable AExpr, n_id: nullable TAttrid, @@ -4990,7 +4275,6 @@ redef class AAttrAssignExpr n_value: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_id = n_id.as(not null) @@ -5052,8 +4336,6 @@ redef class AAttrAssignExpr end end redef class AAttrReassignExpr - private init empty_init do end - init init_aattrreassignexpr ( n_expr: nullable AExpr, n_id: nullable TAttrid, @@ -5061,7 +4343,6 @@ redef class AAttrReassignExpr n_value: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_id = n_id.as(not null) @@ -5123,15 +4404,12 @@ redef class AAttrReassignExpr end end redef class ACallExpr - private init empty_init do end - init init_acallexpr ( n_expr: nullable AExpr, n_id: nullable TId, n_args: nullable AExprs ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_id = n_id.as(not null) @@ -5181,8 +4459,6 @@ redef class ACallExpr end end redef class ACallAssignExpr - private init empty_init do end - init init_acallassignexpr ( n_expr: nullable AExpr, n_id: nullable TId, @@ -5191,7 +4467,6 @@ redef class ACallAssignExpr n_value: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_id = n_id.as(not null) @@ -5265,8 +4540,6 @@ redef class ACallAssignExpr end end redef class ACallReassignExpr - private init empty_init do end - init init_acallreassignexpr ( n_expr: nullable AExpr, n_id: nullable TId, @@ -5275,7 +4548,6 @@ redef class ACallReassignExpr n_value: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_id = n_id.as(not null) @@ -5349,15 +4621,12 @@ redef class ACallReassignExpr end end redef class ASuperExpr - private init empty_init do end - init init_asuperexpr ( n_qualified: nullable AQualified, n_kwsuper: nullable TKwsuper, n_args: nullable AExprs ) do - empty_init _n_qualified = n_qualified if n_qualified != null then n_qualified.parent = self _n_kwsuper = n_kwsuper.as(not null) @@ -5407,15 +4676,12 @@ redef class ASuperExpr end end redef class AInitExpr - private init empty_init do end - init init_ainitexpr ( n_expr: nullable AExpr, n_kwinit: nullable TKwinit, n_args: nullable AExprs ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_kwinit = n_kwinit.as(not null) @@ -5465,14 +4731,11 @@ redef class AInitExpr end end redef class ABraExpr - private init empty_init do end - init init_abraexpr ( n_expr: nullable AExpr, n_args: nullable AExprs ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_args = n_args.as(not null) @@ -5510,8 +4773,6 @@ redef class ABraExpr end end redef class ABraAssignExpr - private init empty_init do end - init init_abraassignexpr ( n_expr: nullable AExpr, n_args: nullable AExprs, @@ -5519,7 +4780,6 @@ redef class ABraAssignExpr n_value: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_args = n_args.as(not null) @@ -5581,8 +4841,6 @@ redef class ABraAssignExpr end end redef class ABraReassignExpr - private init empty_init do end - init init_abrareassignexpr ( n_expr: nullable AExpr, n_args: nullable AExprs, @@ -5590,7 +4848,6 @@ redef class ABraReassignExpr n_value: nullable AExpr ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_args = n_args.as(not null) @@ -5652,13 +4909,10 @@ redef class ABraReassignExpr end end redef class AVarExpr - private init empty_init do end - init init_avarexpr ( n_id: nullable TId ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self end @@ -5684,15 +4938,12 @@ redef class AVarExpr end end redef class AVarAssignExpr - private init empty_init do end - init init_avarassignexpr ( n_id: nullable TId, n_assign: nullable TAssign, n_value: nullable AExpr ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self _n_assign = n_assign.as(not null) @@ -5742,15 +4993,12 @@ redef class AVarAssignExpr end end redef class AVarReassignExpr - private init empty_init do end - init init_avarreassignexpr ( n_id: nullable TId, n_assign_op: nullable AAssignOp, n_value: nullable AExpr ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self _n_assign_op = n_assign_op.as(not null) @@ -5800,15 +5048,12 @@ redef class AVarReassignExpr end end redef class ARangeExpr - private init empty_init do end - init init_arangeexpr ( n_expr: nullable AExpr, n_expr2: nullable AExpr, n_annotations: nullable AAnnotations ) do - empty_init _n_expr = n_expr.as(not null) n_expr.parent = self _n_expr2 = n_expr2.as(not null) @@ -5858,8 +5103,6 @@ redef class ARangeExpr end end redef class ACrangeExpr - private init empty_init do end - init init_acrangeexpr ( n_obra: nullable TObra, n_expr: nullable AExpr, @@ -5868,7 +5111,6 @@ redef class ACrangeExpr n_annotations: nullable AAnnotations ) do - empty_init _n_obra = n_obra.as(not null) n_obra.parent = self _n_expr = n_expr.as(not null) @@ -5942,8 +5184,6 @@ redef class ACrangeExpr end end redef class AOrangeExpr - private init empty_init do end - init init_aorangeexpr ( n_obra: nullable TObra, n_expr: nullable AExpr, @@ -5952,7 +5192,6 @@ redef class AOrangeExpr n_annotations: nullable AAnnotations ) do - empty_init _n_obra = n_obra.as(not null) n_obra.parent = self _n_expr = n_expr.as(not null) @@ -6026,24 +5265,38 @@ redef class AOrangeExpr end end redef class AArrayExpr - private init empty_init do end - init init_aarrayexpr ( - n_exprs: nullable AExprs, + 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 - empty_init - _n_exprs = n_exprs.as(not null) - n_exprs.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_exprs == old_child then - n_exprs = new_child.as(AExprs) + 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_type == old_child then + n_type = new_child.as(nullable AType) + return + end + if _n_cbra == old_child then + n_cbra = new_child.as(TCbra) return end if _n_annotations == old_child then @@ -6051,10 +5304,20 @@ redef class AArrayExpr return end end - - redef fun n_exprs=(node) + + redef fun n_obra=(node) + do + _n_obra = 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_cbra=(node) do - _n_exprs = node + _n_cbra = node node.parent = self end redef fun n_annotations=(node) @@ -6066,19 +5329,19 @@ redef class AArrayExpr redef fun visit_all(v: Visitor) do - v.enter_visit(_n_exprs) + 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 ASelfExpr - private init empty_init do end - init init_aselfexpr ( n_kwself: nullable TKwself, n_annotations: nullable AAnnotations ) do - empty_init _n_kwself = n_kwself.as(not null) n_kwself.parent = self _n_annotations = n_annotations @@ -6116,11 +5379,8 @@ redef class ASelfExpr end end redef class AImplicitSelfExpr - private init empty_init do end - init init_aimplicitselfexpr do - empty_init end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -6134,14 +5394,11 @@ redef class AImplicitSelfExpr end end redef class ATrueExpr - private init empty_init do end - init init_atrueexpr ( n_kwtrue: nullable TKwtrue, n_annotations: nullable AAnnotations ) do - empty_init _n_kwtrue = n_kwtrue.as(not null) n_kwtrue.parent = self _n_annotations = n_annotations @@ -6179,14 +5436,11 @@ redef class ATrueExpr end end redef class AFalseExpr - private init empty_init do end - init init_afalseexpr ( n_kwfalse: nullable TKwfalse, n_annotations: nullable AAnnotations ) do - empty_init _n_kwfalse = n_kwfalse.as(not null) n_kwfalse.parent = self _n_annotations = n_annotations @@ -6224,14 +5478,11 @@ redef class AFalseExpr end end redef class ANullExpr - private init empty_init do end - init init_anullexpr ( n_kwnull: nullable TKwnull, n_annotations: nullable AAnnotations ) do - empty_init _n_kwnull = n_kwnull.as(not null) n_kwnull.parent = self _n_annotations = n_annotations @@ -6268,15 +5519,12 @@ redef class ANullExpr v.enter_visit(_n_annotations) end end -redef class AIntExpr - private init empty_init do end - - init init_aintexpr ( +redef class ADecIntExpr + init init_adecintexpr ( n_number: nullable TNumber, n_annotations: nullable AAnnotations ) do - empty_init _n_number = n_number.as(not null) n_number.parent = self _n_annotations = n_annotations @@ -6313,15 +5561,54 @@ redef class AIntExpr v.enter_visit(_n_annotations) end end -redef class AFloatExpr - private init empty_init do end +redef class AHexIntExpr + init init_ahexintexpr ( + n_hex_number: nullable THexNumber, + n_annotations: nullable AAnnotations + ) + 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 + 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) + return + end + if _n_annotations == old_child then + n_annotations = new_child.as(nullable AAnnotations) + return + end + end + + redef fun n_hex_number=(node) + do + _n_hex_number = 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_hex_number) + v.enter_visit(_n_annotations) + end +end +redef class AFloatExpr init init_afloatexpr ( n_float: nullable TFloat, n_annotations: nullable AAnnotations ) do - empty_init _n_float = n_float.as(not null) n_float.parent = self _n_annotations = n_annotations @@ -6359,14 +5646,11 @@ redef class AFloatExpr end end redef class ACharExpr - private init empty_init do end - init init_acharexpr ( n_char: nullable TChar, n_annotations: nullable AAnnotations ) do - empty_init _n_char = n_char.as(not null) n_char.parent = self _n_annotations = n_annotations @@ -6404,14 +5688,11 @@ redef class ACharExpr end end redef class AStringExpr - private init empty_init do end - init init_astringexpr ( n_string: nullable TString, n_annotations: nullable AAnnotations ) do - empty_init _n_string = n_string.as(not null) n_string.parent = self _n_annotations = n_annotations @@ -6449,13 +5730,10 @@ redef class AStringExpr end end redef class AStartStringExpr - private init empty_init do end - init init_astartstringexpr ( n_string: nullable TStartString ) do - empty_init _n_string = n_string.as(not null) n_string.parent = self end @@ -6481,13 +5759,10 @@ redef class AStartStringExpr end end redef class AMidStringExpr - private init empty_init do end - init init_amidstringexpr ( n_string: nullable TMidString ) do - empty_init _n_string = n_string.as(not null) n_string.parent = self end @@ -6513,13 +5788,10 @@ redef class AMidStringExpr end end redef class AEndStringExpr - private init empty_init do end - init init_aendstringexpr ( n_string: nullable TEndString ) do - empty_init _n_string = n_string.as(not null) n_string.parent = self end @@ -6545,22 +5817,19 @@ redef class AEndStringExpr end end redef class ASuperstringExpr - private init empty_init do end - init init_asuperstringexpr ( n_exprs: Collection[Object], # Should be Collection[AExpr] n_annotations: nullable AAnnotations ) do - empty_init - _n_exprs.unsafe_add_all(n_exprs) + 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_exprs.replace_child(old_child, new_child) then return if _n_annotations == old_child then n_annotations = new_child.as(nullable AAnnotations) return @@ -6576,13 +5845,11 @@ redef class ASuperstringExpr redef fun visit_all(v: Visitor) do - _n_exprs.visit_all(v) + n_exprs.visit_all(v) v.enter_visit(_n_annotations) end end redef class AParExpr - private init empty_init do end - init init_aparexpr ( n_opar: nullable TOpar, n_expr: nullable AExpr, @@ -6590,7 +5857,6 @@ redef class AParExpr n_annotations: nullable AAnnotations ) do - empty_init _n_opar = n_opar.as(not null) n_opar.parent = self _n_expr = n_expr.as(not null) @@ -6652,8 +5918,6 @@ redef class AParExpr end end redef class AAsCastExpr - private init empty_init do end - init init_aascastexpr ( n_expr: nullable AExpr, n_kwas: nullable TKwas, @@ -6662,17 +5926,16 @@ redef class AAsCastExpr n_cpar: nullable TCpar ) do - empty_init _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.as(not null) - n_opar.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.as(not null) - n_cpar.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) @@ -6686,7 +5949,7 @@ redef class AAsCastExpr return end if _n_opar == old_child then - n_opar = new_child.as(TOpar) + n_opar = new_child.as(nullable TOpar) return end if _n_type == old_child then @@ -6694,7 +5957,7 @@ redef class AAsCastExpr return end if _n_cpar == old_child then - n_cpar = new_child.as(TCpar) + n_cpar = new_child.as(nullable TCpar) return end end @@ -6712,7 +5975,7 @@ redef class AAsCastExpr redef fun n_opar=(node) do _n_opar = node - node.parent = self + if node != null then node.parent = self end redef fun n_type=(node) do @@ -6722,7 +5985,7 @@ redef class AAsCastExpr redef fun n_cpar=(node) do _n_cpar = node - node.parent = self + if node != null then node.parent = self end @@ -6736,8 +5999,6 @@ redef class AAsCastExpr end end redef class AAsNotnullExpr - private init empty_init do end - init init_aasnotnullexpr ( n_expr: nullable AExpr, n_kwas: nullable TKwas, @@ -6747,19 +6008,18 @@ redef class AAsNotnullExpr n_cpar: nullable TCpar ) do - empty_init _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.as(not null) - n_opar.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.as(not null) - n_cpar.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) @@ -6773,7 +6033,7 @@ redef class AAsNotnullExpr return end if _n_opar == old_child then - n_opar = new_child.as(TOpar) + n_opar = new_child.as(nullable TOpar) return end if _n_kwnot == old_child then @@ -6785,7 +6045,7 @@ redef class AAsNotnullExpr return end if _n_cpar == old_child then - n_cpar = new_child.as(TCpar) + n_cpar = new_child.as(nullable TCpar) return end end @@ -6803,7 +6063,7 @@ redef class AAsNotnullExpr redef fun n_opar=(node) do _n_opar = node - node.parent = self + if node != null then node.parent = self end redef fun n_kwnot=(node) do @@ -6818,7 +6078,7 @@ redef class AAsNotnullExpr redef fun n_cpar=(node) do _n_cpar = node - node.parent = self + if node != null then node.parent = self end @@ -6833,15 +6093,12 @@ redef class AAsNotnullExpr end end redef class AIssetAttrExpr - private init empty_init do end - init init_aissetattrexpr ( n_kwisset: nullable TKwisset, n_expr: nullable AExpr, n_id: nullable TAttrid ) do - empty_init _n_kwisset = n_kwisset.as(not null) n_kwisset.parent = self _n_expr = n_expr.as(not null) @@ -6891,8 +6148,6 @@ redef class AIssetAttrExpr end end redef class ADebugTypeExpr - private init empty_init do end - init init_adebugtypeexpr ( n_kwdebug: nullable TKwdebug, n_kwtype: nullable TKwtype, @@ -6900,103 +6155,258 @@ redef class ADebugTypeExpr n_type: nullable AType ) do - empty_init - _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_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_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) + return + end + end + + redef fun n_kwdebug=(node) + do + _n_kwdebug = node + node.parent = self + end + redef fun n_kwtype=(node) + do + _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_kwdebug) + v.enter_visit(_n_kwtype) + v.enter_visit(_n_expr) + v.enter_visit(_n_type) + end +end +redef class AVarargExpr + init init_avarargexpr ( + n_expr: nullable AExpr, + n_dotdotdot: nullable TDotdotdot + ) + do + _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_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_dotdotdot == old_child then + n_dotdotdot = new_child.as(TDotdotdot) + return + end + end + + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + redef fun n_dotdotdot=(node) + do + _n_dotdotdot = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_expr) + v.enter_visit(_n_dotdotdot) + end +end +redef class ATypeExpr + init init_atypeexpr ( + 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 AMethidExpr + init init_amethidexpr ( + n_expr: nullable AExpr, + n_id: nullable AMethid + ) + do + _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_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_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 visit_all(v: Visitor) + do + v.enter_visit(_n_expr) + v.enter_visit(_n_id) + end +end +redef class AAtExpr + init init_aatexpr ( + 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_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_annotations == old_child then + n_annotations = new_child.as(AAnnotations) return end end - redef fun n_kwdebug=(node) + redef fun n_annotations=(node) do - _n_kwdebug = node + _n_annotations = 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_annotations) end - redef fun n_expr=(node) +end +redef class AManyExpr + init init_amanyexpr ( + n_exprs: Collection[Object] # Should be Collection[AExpr] + ) do - _n_expr = node - node.parent = self + self.n_exprs.unsafe_add_all(n_exprs) end - redef fun n_type=(node) + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - _n_type = node - node.parent = self + if n_exprs.replace_child(old_child, new_child) then return 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) + n_exprs.visit_all(v) end end redef class AListExprs - private init empty_init do end - init init_alistexprs ( n_exprs: Collection[Object] # Should be Collection[AExpr] ) do - empty_init - _n_exprs.unsafe_add_all(n_exprs) + self.n_exprs.unsafe_add_all(n_exprs) 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_exprs.replace_child(old_child, new_child) then return end redef fun visit_all(v: Visitor) do - _n_exprs.visit_all(v) + n_exprs.visit_all(v) end end redef class AParExprs - private init empty_init do end - init init_aparexprs ( n_opar: nullable TOpar, n_exprs: Collection[Object], # Should be Collection[AExpr] n_cpar: nullable TCpar ) do - empty_init _n_opar = n_opar.as(not null) n_opar.parent = self - _n_exprs.unsafe_add_all(n_exprs) + self.n_exprs.unsafe_add_all(n_exprs) _n_cpar = n_cpar.as(not null) n_cpar.parent = self end @@ -7007,7 +6417,7 @@ redef class AParExprs n_opar = new_child.as(TOpar) return end - if _n_exprs.replace_child(old_child, new_child) then return + if n_exprs.replace_child(old_child, new_child) then return if _n_cpar == old_child then n_cpar = new_child.as(TCpar) return @@ -7029,23 +6439,20 @@ redef class AParExprs redef fun visit_all(v: Visitor) do v.enter_visit(_n_opar) - _n_exprs.visit_all(v) + n_exprs.visit_all(v) v.enter_visit(_n_cpar) end end redef class ABraExprs - private init empty_init do end - init init_abraexprs ( n_obra: nullable TObra, n_exprs: Collection[Object], # Should be Collection[AExpr] n_cbra: nullable TCbra ) do - empty_init _n_obra = n_obra.as(not null) n_obra.parent = self - _n_exprs.unsafe_add_all(n_exprs) + self.n_exprs.unsafe_add_all(n_exprs) _n_cbra = n_cbra.as(not null) n_cbra.parent = self end @@ -7056,7 +6463,7 @@ redef class ABraExprs n_obra = new_child.as(TObra) return end - if _n_exprs.replace_child(old_child, new_child) then return + if n_exprs.replace_child(old_child, new_child) then return if _n_cbra == old_child then n_cbra = new_child.as(TCbra) return @@ -7078,18 +6485,15 @@ redef class ABraExprs redef fun visit_all(v: Visitor) do v.enter_visit(_n_obra) - _n_exprs.visit_all(v) + n_exprs.visit_all(v) v.enter_visit(_n_cbra) end end redef class APlusAssignOp - private init empty_init do end - init init_aplusassignop ( n_pluseq: nullable TPluseq ) do - empty_init _n_pluseq = n_pluseq.as(not null) n_pluseq.parent = self end @@ -7115,13 +6519,10 @@ redef class APlusAssignOp end end redef class AMinusAssignOp - private init empty_init do end - init init_aminusassignop ( n_minuseq: nullable TMinuseq ) do - empty_init _n_minuseq = n_minuseq.as(not null) n_minuseq.parent = self end @@ -7147,18 +6548,15 @@ redef class AMinusAssignOp end end redef class AModuleName - private init empty_init do end - init init_amodulename ( n_quad: nullable TQuad, n_path: Collection[Object], # Should be Collection[TId] n_id: nullable TId ) do - empty_init _n_quad = n_quad if n_quad != null then n_quad.parent = self - _n_path.unsafe_add_all(n_path) + self.n_path.unsafe_add_all(n_path) _n_id = n_id.as(not null) n_id.parent = self end @@ -7169,7 +6567,7 @@ redef class AModuleName n_quad = new_child.as(nullable TQuad) return end - if _n_path.replace_child(old_child, new_child) then return + if n_path.replace_child(old_child, new_child) then return if _n_id == old_child then n_id = new_child.as(TId) return @@ -7191,22 +6589,19 @@ redef class AModuleName redef fun visit_all(v: Visitor) do v.enter_visit(_n_quad) - _n_path.visit_all(v) + n_path.visit_all(v) v.enter_visit(_n_id) end end redef class AExternCalls - private init empty_init do end - init init_aexterncalls ( n_kwimport: nullable TKwimport, n_extern_calls: Collection[Object] # Should be Collection[AExternCall] ) do - empty_init _n_kwimport = n_kwimport.as(not null) n_kwimport.parent = self - _n_extern_calls.unsafe_add_all(n_extern_calls) + self.n_extern_calls.unsafe_add_all(n_extern_calls) end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -7215,7 +6610,7 @@ redef class AExternCalls n_kwimport = new_child.as(TKwimport) return end - if _n_extern_calls.replace_child(old_child, new_child) then return + if n_extern_calls.replace_child(old_child, new_child) then return end redef fun n_kwimport=(node) @@ -7228,15 +6623,12 @@ redef class AExternCalls redef fun visit_all(v: Visitor) do v.enter_visit(_n_kwimport) - _n_extern_calls.visit_all(v) + n_extern_calls.visit_all(v) end end redef class AExternCall - private init empty_init do end - init init_aexterncall do - empty_init end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -7250,13 +6642,10 @@ redef class AExternCall end end redef class ASuperExternCall - private init empty_init do end - init init_asuperexterncall ( n_kwsuper: nullable TKwsuper ) do - empty_init _n_kwsuper = n_kwsuper.as(not null) n_kwsuper.parent = self end @@ -7282,13 +6671,10 @@ redef class ASuperExternCall end end redef class ALocalPropExternCall - private init empty_init do end - init init_alocalpropexterncall ( n_methid: nullable AMethid ) do - empty_init _n_methid = n_methid.as(not null) n_methid.parent = self end @@ -7314,15 +6700,12 @@ redef class ALocalPropExternCall end end redef class AFullPropExternCall - private init empty_init do end - init init_afullpropexterncall ( n_type: nullable AType, n_dot: nullable TDot, n_methid: nullable AMethid ) do - empty_init _n_type = n_type.as(not null) n_type.parent = self _n_dot = n_dot @@ -7372,13 +6755,10 @@ redef class AFullPropExternCall end end redef class AInitPropExternCall - private init empty_init do end - init init_ainitpropexterncall ( n_type: nullable AType ) do - empty_init _n_type = n_type.as(not null) n_type.parent = self end @@ -7404,8 +6784,6 @@ redef class AInitPropExternCall end end redef class ACastAsExternCall - private init empty_init do end - init init_acastasexterncall ( n_from_type: nullable AType, n_dot: nullable TDot, @@ -7413,7 +6791,6 @@ redef class ACastAsExternCall n_to_type: nullable AType ) do - empty_init _n_from_type = n_from_type.as(not null) n_from_type.parent = self _n_dot = n_dot @@ -7475,15 +6852,12 @@ redef class ACastAsExternCall end end redef class AAsNullableExternCall - private init empty_init do end - init init_aasnullableexterncall ( n_type: nullable AType, n_kwas: nullable TKwas, n_kwnullable: nullable TKwnullable ) do - empty_init _n_type = n_type.as(not null) n_type.parent = self _n_kwas = n_kwas.as(not null) @@ -7533,8 +6907,6 @@ redef class AAsNullableExternCall end end redef class AAsNotNullableExternCall - private init empty_init do end - init init_aasnotnullableexterncall ( n_type: nullable AType, n_kwas: nullable TKwas, @@ -7542,7 +6914,6 @@ redef class AAsNotNullableExternCall n_kwnullable: nullable TKwnullable ) do - empty_init _n_type = n_type.as(not null) n_type.parent = self _n_kwas = n_kwas.as(not null) @@ -7604,14 +6975,11 @@ redef class AAsNotNullableExternCall end end redef class AInLanguage - private init empty_init do end - init init_ainlanguage ( n_kwin: nullable TKwin, n_string: nullable TString ) do - empty_init _n_kwin = n_kwin.as(not null) n_kwin.parent = self _n_string = n_string.as(not null) @@ -7649,14 +7017,11 @@ redef class AInLanguage end end redef class AExternCodeBlock - private init empty_init do end - init init_aexterncodeblock ( n_in_language: nullable AInLanguage, n_extern_code_segment: nullable TExternCodeSegment ) do - empty_init _n_in_language = n_in_language if n_in_language != null then n_in_language.parent = self _n_extern_code_segment = n_extern_code_segment.as(not null) @@ -7694,22 +7059,19 @@ redef class AExternCodeBlock end end redef class AQualified - private init empty_init do end - init init_aqualified ( n_id: Collection[Object], # Should be Collection[TId] n_classid: nullable TClassid ) do - empty_init - _n_id.unsafe_add_all(n_id) + self.n_id.unsafe_add_all(n_id) _n_classid = n_classid if n_classid != null then n_classid.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_id.replace_child(old_child, new_child) then return + if n_id.replace_child(old_child, new_child) then return if _n_classid == old_child then n_classid = new_child.as(nullable TClassid) return @@ -7725,36 +7087,31 @@ redef class AQualified redef fun visit_all(v: Visitor) do - _n_id.visit_all(v) + n_id.visit_all(v) v.enter_visit(_n_classid) end end redef class ADoc - private init empty_init do end - init init_adoc ( n_comment: Collection[Object] # Should be Collection[TComment] ) do - empty_init - _n_comment.unsafe_add_all(n_comment) + self.n_comment.unsafe_add_all(n_comment) end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_comment.replace_child(old_child, new_child) then return + if n_comment.replace_child(old_child, new_child) then return end redef fun visit_all(v: Visitor) do - _n_comment.visit_all(v) + n_comment.visit_all(v) end end redef class AAnnotations - private init empty_init do end - init init_aannotations ( n_at: nullable TAt, n_opar: nullable TOpar, @@ -7762,12 +7119,11 @@ redef class AAnnotations n_cpar: nullable TCpar ) do - empty_init _n_at = n_at if n_at != null then n_at.parent = self _n_opar = n_opar if n_opar != null then n_opar.parent = self - _n_items.unsafe_add_all(n_items) + self.n_items.unsafe_add_all(n_items) _n_cpar = n_cpar if n_cpar != null then n_cpar.parent = self end @@ -7782,7 +7138,7 @@ redef class AAnnotations n_opar = new_child.as(nullable TOpar) return end - if _n_items.replace_child(old_child, new_child) then return + if n_items.replace_child(old_child, new_child) then return if _n_cpar == old_child then n_cpar = new_child.as(nullable TCpar) return @@ -7810,27 +7166,33 @@ redef class AAnnotations do v.enter_visit(_n_at) v.enter_visit(_n_opar) - _n_items.visit_all(v) + n_items.visit_all(v) v.enter_visit(_n_cpar) end end redef class AAnnotation - private init empty_init do end - 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 - empty_init + _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 if n_opar != null then n_opar.parent = self - _n_args.unsafe_add_all(n_args) + 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 @@ -7839,6 +7201,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 @@ -7847,7 +7221,7 @@ redef class AAnnotation n_opar = new_child.as(nullable TOpar) return end - if _n_args.replace_child(old_child, new_child) then return + 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 @@ -7858,6 +7232,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 @@ -7882,117 +7271,21 @@ 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) + n_args.visit_all(v) v.enter_visit(_n_cpar) v.enter_visit(_n_annotations) end end -redef class ATypeAtArg - private init empty_init do end - - init init_atypeatarg ( - n_type: nullable AType - ) - do - empty_init - _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 - private init empty_init do end - - init init_aexpratarg ( - n_expr: nullable AExpr - ) - do - empty_init - _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 - private init empty_init do end - - init init_aatatarg ( - n_annotations: nullable AAnnotations - ) - do - empty_init - _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 - private init empty_init do end - init init_aidatid ( n_id: nullable TId ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self end @@ -8018,13 +7311,10 @@ redef class AIdAtid end end redef class AKwexternAtid - private init empty_init do end - init init_akwexternatid ( n_id: nullable TKwextern ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self end @@ -8049,78 +7339,11 @@ redef class AKwexternAtid v.enter_visit(_n_id) end end -redef class AKwinternAtid - private init empty_init do end - - init init_akwinternatid ( - n_id: nullable TKwintern - ) - do - empty_init - _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 - private init empty_init do end - - init init_akwreadableatid ( - n_id: nullable TKwreadable - ) - do - empty_init - _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 - private init empty_init do end - - init init_akwwritableatid ( - n_id: nullable TKwwritable +redef class AKwabstractAtid + init init_akwabstractatid ( + n_id: nullable TKwabstract ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self end @@ -8128,7 +7351,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 @@ -8146,13 +7369,10 @@ redef class AKwwritableAtid end end redef class AKwimportAtid - private init empty_init do end - init init_akwimportatid ( n_id: nullable TKwimport ) do - empty_init _n_id = n_id.as(not null) n_id.parent = self end