X-Git-Url: http://nitlanguage.org diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit index 12175cf..f1bd5d9 100644 --- a/src/parser/parser_prod.nit +++ b/src/parser/parser_prod.nit @@ -1,6 +1,6 @@ # Production AST nodes full definition. # This file was generated by SableCC (http://www.sablecc.org/). -module parser_prod is no_warning("missing-doc") +module parser_prod is generated, no_warning("missing-doc") import lexer intrude import parser_nodes @@ -386,8 +386,10 @@ redef class AStdClassdef n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, n_classkind: nullable AClasskind, - n_id: nullable TClassid, + n_qid: nullable AQclassid, + n_obra: nullable TObra, n_formaldefs: Collection[Object], # Should be Collection[AFormaldef] + n_cbra: nullable TCbra, n_extern_code_block: nullable AExternCodeBlock, n_propdefs: Collection[Object], # Should be Collection[APropdef] n_kwend: nullable TKwend @@ -401,9 +403,13 @@ redef class AStdClassdef n_visibility.parent = self _n_classkind = n_classkind.as(not null) n_classkind.parent = self - _n_id = n_id - if n_id != null then n_id.parent = self + _n_qid = n_qid + if n_qid != null then n_qid.parent = self + _n_obra = n_obra + if n_obra != null then n_obra.parent = self self.n_formaldefs.unsafe_add_all(n_formaldefs) + _n_cbra = n_cbra + if n_cbra != null then n_cbra.parent = self _n_extern_code_block = n_extern_code_block if n_extern_code_block != null then n_extern_code_block.parent = self self.n_propdefs.unsafe_add_all(n_propdefs) @@ -429,11 +435,19 @@ redef class AStdClassdef n_classkind = new_child.as(AClasskind) return end - if _n_id == old_child then - n_id = new_child.as(nullable TClassid) + if _n_qid == old_child then + n_qid = new_child.as(nullable AQclassid) + return + end + if _n_obra == old_child then + n_obra = new_child.as(nullable TObra) return end if n_formaldefs.replace_child(old_child, new_child) then return + if _n_cbra == old_child then + n_cbra = new_child.as(nullable TCbra) + return + end if _n_extern_code_block == old_child then n_extern_code_block = new_child.as(nullable AExternCodeBlock) return @@ -465,9 +479,19 @@ redef class AStdClassdef _n_classkind = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node + if node != null then node.parent = self + end + redef fun n_obra=(node) + do + _n_obra = node + if node != null then node.parent = self + end + redef fun n_cbra=(node) + do + _n_cbra = node if node != null then node.parent = self end redef fun n_extern_code_block=(node) @@ -488,8 +512,10 @@ redef class AStdClassdef v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) v.enter_visit(_n_classkind) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) + v.enter_visit(_n_obra) n_formaldefs.visit_all(v) + v.enter_visit(_n_cbra) v.enter_visit(_n_extern_code_block) n_propdefs.visit_all(v) v.enter_visit(_n_kwend) @@ -706,6 +732,35 @@ redef class AExternClasskind v.enter_visit(_n_kwclass) end end +redef class ASubsetClasskind + init init_asubsetclasskind ( + n_kwsubset: nullable TKwsubset + ) + do + _n_kwsubset = n_kwsubset.as(not null) + n_kwsubset.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwsubset == old_child then + n_kwsubset = new_child.as(TKwsubset) + return + end + end + + redef fun n_kwsubset=(node) + do + _n_kwsubset = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwsubset) + end +end redef class AFormaldef init init_aformaldef ( n_id: nullable TClassid, @@ -769,9 +824,12 @@ redef class AAttrPropdef n_kwvar: nullable TKwvar, n_id2: nullable TId, n_type: nullable AType, + n_assign: nullable TAssign, n_expr: nullable AExpr, n_annotations: nullable AAnnotations, - n_block: nullable AExpr + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_kwend: nullable TKwend ) do _n_doc = n_doc @@ -786,12 +844,18 @@ redef class AAttrPropdef n_id2.parent = self _n_type = n_type if n_type != null then n_type.parent = self + _n_assign = n_assign + if n_assign != null then n_assign.parent = self _n_expr = n_expr if n_expr != null then n_expr.parent = self _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self + _n_kwdo = n_kwdo + if n_kwdo != null then n_kwdo.parent = self _n_block = n_block if n_block != null then n_block.parent = self + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -820,6 +884,10 @@ redef class AAttrPropdef n_type = new_child.as(nullable AType) return end + if _n_assign == old_child then + n_assign = new_child.as(nullable TAssign) + return + end if _n_expr == old_child then n_expr = new_child.as(nullable AExpr) return @@ -828,10 +896,18 @@ redef class AAttrPropdef n_annotations = new_child.as(nullable AAnnotations) return end + if _n_kwdo == old_child then + n_kwdo = new_child.as(nullable TKwdo) + return + end if _n_block == old_child then n_block = new_child.as(nullable AExpr) return end + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end end redef fun n_doc=(node) @@ -864,6 +940,11 @@ redef class AAttrPropdef _n_type = node if node != null then node.parent = self end + redef fun n_assign=(node) + do + _n_assign = node + if node != null then node.parent = self + end redef fun n_expr=(node) do _n_expr = node @@ -874,11 +955,21 @@ redef class AAttrPropdef _n_annotations = node if node != null then node.parent = self end + redef fun n_kwdo=(node) + do + _n_kwdo = node + if node != null then node.parent = self + end redef fun n_block=(node) do _n_block = node if node != null then node.parent = self end + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) @@ -889,9 +980,12 @@ redef class AAttrPropdef v.enter_visit(_n_kwvar) v.enter_visit(_n_id2) v.enter_visit(_n_type) + v.enter_visit(_n_assign) v.enter_visit(_n_expr) v.enter_visit(_n_annotations) + v.enter_visit(_n_kwdo) v.enter_visit(_n_block) + v.enter_visit(_n_kwend) end end redef class AMainMethPropdef @@ -942,7 +1036,7 @@ redef class ATypePropdef n_kwredef: nullable TKwredef, n_visibility: nullable AVisibility, n_kwtype: nullable TKwtype, - n_id: nullable TClassid, + n_qid: nullable AQclassid, n_type: nullable AType, n_annotations: nullable AAnnotations ) @@ -955,8 +1049,8 @@ redef class ATypePropdef 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_qid = n_qid.as(not null) + n_qid.parent = self _n_type = n_type.as(not null) n_type.parent = self _n_annotations = n_annotations @@ -981,8 +1075,8 @@ redef class ATypePropdef n_kwtype = new_child.as(TKwtype) return end - if _n_id == old_child then - n_id = new_child.as(TClassid) + if _n_qid == old_child then + n_qid = new_child.as(AQclassid) return end if _n_type == old_child then @@ -1015,9 +1109,9 @@ redef class ATypePropdef _n_kwtype = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node node.parent = self end redef fun n_type=(node) @@ -1038,7 +1132,7 @@ redef class ATypePropdef v.enter_visit(_n_kwredef) v.enter_visit(_n_visibility) v.enter_visit(_n_kwtype) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) v.enter_visit(_n_type) v.enter_visit(_n_annotations) end @@ -1050,13 +1144,16 @@ redef class AMethPropdef n_visibility: nullable AVisibility, n_kwmeth: nullable TKwmeth, n_kwinit: nullable TKwinit, + n_kwisa: nullable TKwisa, n_kwnew: nullable TKwnew, n_methid: nullable AMethid, n_signature: nullable ASignature, n_annotations: nullable AAnnotations, n_extern_calls: nullable AExternCalls, n_extern_code_block: nullable AExternCodeBlock, - n_block: nullable AExpr + n_kwdo: nullable TKwdo, + n_block: nullable AExpr, + n_kwend: nullable TKwend ) do _n_doc = n_doc @@ -1069,6 +1166,8 @@ redef class AMethPropdef if n_kwmeth != null then n_kwmeth.parent = self _n_kwinit = n_kwinit if n_kwinit != null then n_kwinit.parent = self + _n_kwisa = n_kwisa + if n_kwisa != null then n_kwisa.parent = self _n_kwnew = n_kwnew if n_kwnew != null then n_kwnew.parent = self _n_methid = n_methid @@ -1081,8 +1180,12 @@ redef class AMethPropdef if n_extern_calls != null then n_extern_calls.parent = self _n_extern_code_block = n_extern_code_block if n_extern_code_block != null then n_extern_code_block.parent = self + _n_kwdo = n_kwdo + if n_kwdo != null then n_kwdo.parent = self _n_block = n_block if n_block != null then n_block.parent = self + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -1107,6 +1210,10 @@ redef class AMethPropdef n_kwinit = new_child.as(nullable TKwinit) return end + if _n_kwisa == old_child then + n_kwisa = new_child.as(nullable TKwisa) + return + end if _n_kwnew == old_child then n_kwnew = new_child.as(nullable TKwnew) return @@ -1131,10 +1238,18 @@ redef class AMethPropdef n_extern_code_block = new_child.as(nullable AExternCodeBlock) return end + if _n_kwdo == old_child then + n_kwdo = new_child.as(nullable TKwdo) + return + end if _n_block == old_child then n_block = new_child.as(nullable AExpr) return end + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end end redef fun n_doc=(node) @@ -1162,6 +1277,11 @@ redef class AMethPropdef _n_kwinit = node if node != null then node.parent = self end + redef fun n_kwisa=(node) + do + _n_kwisa = node + if node != null then node.parent = self + end redef fun n_kwnew=(node) do _n_kwnew = node @@ -1192,11 +1312,21 @@ redef class AMethPropdef _n_extern_code_block = node if node != null then node.parent = self end + redef fun n_kwdo=(node) + do + _n_kwdo = node + if node != null then node.parent = self + end redef fun n_block=(node) do _n_block = node if node != null then node.parent = self end + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) @@ -1206,13 +1336,16 @@ redef class AMethPropdef v.enter_visit(_n_visibility) v.enter_visit(_n_kwmeth) v.enter_visit(_n_kwinit) + v.enter_visit(_n_kwisa) v.enter_visit(_n_kwnew) v.enter_visit(_n_methid) v.enter_visit(_n_signature) v.enter_visit(_n_annotations) v.enter_visit(_n_extern_calls) v.enter_visit(_n_extern_code_block) + v.enter_visit(_n_kwdo) v.enter_visit(_n_block) + v.enter_visit(_n_kwend) end end redef class ASuperPropdef @@ -2139,6 +2272,90 @@ redef class ABraassignMethid v.enter_visit(_n_assign) end end +redef class AQid + init init_aqid ( + n_qualified: nullable AQualified, + n_id: nullable TId + ) + do + _n_qualified = n_qualified + if n_qualified != null then n_qualified.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_qualified == old_child then + n_qualified = new_child.as(nullable AQualified) + return + end + if _n_id == old_child then + n_id = new_child.as(TId) + return + end + end + + redef fun n_qualified=(node) + do + _n_qualified = node + if node != null then node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_qualified) + v.enter_visit(_n_id) + end +end +redef class AQclassid + init init_aqclassid ( + n_qualified: nullable AQualified, + n_id: nullable TClassid + ) + do + _n_qualified = n_qualified + if n_qualified != null then n_qualified.parent = self + _n_id = n_id.as(not null) + n_id.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_qualified == old_child then + n_qualified = new_child.as(nullable AQualified) + return + end + if _n_id == old_child then + n_id = new_child.as(TClassid) + return + end + end + + redef fun n_qualified=(node) + do + _n_qualified = node + if node != null then node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_qualified) + v.enter_visit(_n_id) + end +end redef class ASignature init init_asignature ( n_opar: nullable TOpar, @@ -2269,16 +2486,22 @@ end redef class AType init init_atype ( n_kwnullable: nullable TKwnullable, - n_id: nullable TClassid, + n_qid: nullable AQclassid, + n_obra: nullable TObra, n_types: Collection[Object], # Should be Collection[AType] + n_cbra: nullable TCbra, n_annotations: nullable AAnnotations ) do _n_kwnullable = n_kwnullable if n_kwnullable != null then n_kwnullable.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_obra = n_obra + if n_obra != null then n_obra.parent = self self.n_types.unsafe_add_all(n_types) + _n_cbra = n_cbra + if n_cbra != null then n_cbra.parent = self _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end @@ -2289,11 +2512,19 @@ redef class AType n_kwnullable = new_child.as(nullable TKwnullable) return end - if _n_id == old_child then - n_id = new_child.as(TClassid) + if _n_qid == old_child then + n_qid = new_child.as(AQclassid) + return + end + if _n_obra == old_child then + n_obra = new_child.as(nullable TObra) return end if n_types.replace_child(old_child, new_child) then return + if _n_cbra == old_child then + n_cbra = new_child.as(nullable TCbra) + return + end if _n_annotations == old_child then n_annotations = new_child.as(nullable AAnnotations) return @@ -2305,11 +2536,21 @@ redef class AType _n_kwnullable = node if node != null then node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node node.parent = self end + redef fun n_obra=(node) + do + _n_obra = node + if node != null then node.parent = self + end + redef fun n_cbra=(node) + do + _n_cbra = node + if node != null then node.parent = self + end redef fun n_annotations=(node) do _n_annotations = node @@ -2320,8 +2561,10 @@ redef class AType redef fun visit_all(v: Visitor) do v.enter_visit(_n_kwnullable) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) + v.enter_visit(_n_obra) n_types.visit_all(v) + v.enter_visit(_n_cbra) v.enter_visit(_n_annotations) end end @@ -2536,6 +2779,48 @@ redef class AReturnExpr v.enter_visit(_n_expr) end end +redef class AYieldExpr + init init_ayieldexpr ( + n_kwyield: nullable TKwyield, + n_expr: nullable AExpr + ) + do + _n_kwyield = n_kwyield.as(not null) + n_kwyield.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwyield == old_child then + n_kwyield = new_child.as(TKwyield) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + end + + redef fun n_kwyield=(node) + do + _n_kwyield = node + node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwyield) + v.enter_visit(_n_expr) + end +end redef class ABreakExpr init init_abreakexpr ( n_kwbreak: nullable TKwbreak, @@ -2653,6 +2938,8 @@ redef class ADoExpr init init_adoexpr ( n_kwdo: nullable TKwdo, n_block: nullable AExpr, + n_kwcatch: nullable TKwcatch, + n_catch: nullable AExpr, n_label: nullable ALabel ) do @@ -2660,6 +2947,10 @@ redef class ADoExpr n_kwdo.parent = self _n_block = n_block if n_block != null then n_block.parent = self + _n_kwcatch = n_kwcatch + if n_kwcatch != null then n_kwcatch.parent = self + _n_catch = n_catch + if n_catch != null then n_catch.parent = self _n_label = n_label if n_label != null then n_label.parent = self end @@ -2674,6 +2965,14 @@ redef class ADoExpr n_block = new_child.as(nullable AExpr) return end + if _n_kwcatch == old_child then + n_kwcatch = new_child.as(nullable TKwcatch) + return + end + if _n_catch == old_child then + n_catch = new_child.as(nullable AExpr) + return + end if _n_label == old_child then n_label = new_child.as(nullable ALabel) return @@ -2690,6 +2989,16 @@ redef class ADoExpr _n_block = node if node != null then node.parent = self end + redef fun n_kwcatch=(node) + do + _n_kwcatch = node + if node != null then node.parent = self + end + redef fun n_catch=(node) + do + _n_catch = node + if node != null then node.parent = self + end redef fun n_label=(node) do _n_label = node @@ -2701,6 +3010,8 @@ redef class ADoExpr do v.enter_visit(_n_kwdo) v.enter_visit(_n_block) + v.enter_visit(_n_kwcatch) + v.enter_visit(_n_catch) v.enter_visit(_n_label) end end @@ -2708,7 +3019,9 @@ redef class AIfExpr init init_aifexpr ( n_kwif: nullable TKwif, n_expr: nullable AExpr, + n_kwthen: nullable TKwthen, n_then: nullable AExpr, + n_kwelse: nullable TKwelse, n_else: nullable AExpr ) do @@ -2716,8 +3029,12 @@ redef class AIfExpr n_kwif.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self + _n_kwthen = n_kwthen.as(not null) + n_kwthen.parent = self _n_then = n_then if n_then != null then n_then.parent = self + _n_kwelse = n_kwelse + if n_kwelse != null then n_kwelse.parent = self _n_else = n_else if n_else != null then n_else.parent = self end @@ -2732,10 +3049,18 @@ redef class AIfExpr n_expr = new_child.as(AExpr) return end + if _n_kwthen == old_child then + n_kwthen = new_child.as(TKwthen) + return + end if _n_then == old_child then n_then = new_child.as(nullable AExpr) return end + if _n_kwelse == old_child then + n_kwelse = new_child.as(nullable TKwelse) + return + end if _n_else == old_child then n_else = new_child.as(nullable AExpr) return @@ -2752,11 +3077,21 @@ redef class AIfExpr _n_expr = node node.parent = self end + redef fun n_kwthen=(node) + do + _n_kwthen = node + node.parent = self + end redef fun n_then=(node) do _n_then = node if node != null then node.parent = self end + redef fun n_kwelse=(node) + do + _n_kwelse = node + if node != null then node.parent = self + end redef fun n_else=(node) do _n_else = node @@ -2768,7 +3103,9 @@ redef class AIfExpr do v.enter_visit(_n_kwif) v.enter_visit(_n_expr) + v.enter_visit(_n_kwthen) v.enter_visit(_n_then) + v.enter_visit(_n_kwelse) v.enter_visit(_n_else) end end @@ -3005,8 +3342,7 @@ end redef class AForExpr init init_aforexpr ( n_kwfor: nullable TKwfor, - n_ids: Collection[Object], # Should be Collection[TId] - n_expr: nullable AExpr, + n_groups: Collection[Object], # Should be Collection[AForGroup] n_kwdo: nullable TKwdo, n_block: nullable AExpr, n_label: nullable ALabel @@ -3014,9 +3350,7 @@ redef class AForExpr do _n_kwfor = n_kwfor.as(not null) n_kwfor.parent = self - self.n_ids.unsafe_add_all(n_ids) - _n_expr = n_expr.as(not null) - n_expr.parent = self + self.n_groups.unsafe_add_all(n_groups) _n_kwdo = n_kwdo.as(not null) n_kwdo.parent = self _n_block = n_block @@ -3031,11 +3365,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_expr == old_child then - n_expr = new_child.as(AExpr) - return - end + if n_groups.replace_child(old_child, new_child) then return if _n_kwdo == old_child then n_kwdo = new_child.as(TKwdo) return @@ -3055,11 +3385,6 @@ redef class AForExpr _n_kwfor = node node.parent = self end - redef fun n_expr=(node) - do - _n_expr = node - node.parent = self - end redef fun n_kwdo=(node) do _n_kwdo = node @@ -3080,8 +3405,7 @@ redef class AForExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_kwfor) - n_ids.visit_all(v) - v.enter_visit(_n_expr) + n_groups.visit_all(v) v.enter_visit(_n_kwdo) v.enter_visit(_n_block) v.enter_visit(_n_label) @@ -3173,6 +3497,7 @@ redef class AAssertExpr n_kwassert: nullable TKwassert, n_id: nullable TId, n_expr: nullable AExpr, + n_kwelse: nullable TKwelse, n_else: nullable AExpr ) do @@ -3182,6 +3507,8 @@ redef class AAssertExpr if n_id != null then n_id.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self + _n_kwelse = n_kwelse + if n_kwelse != null then n_kwelse.parent = self _n_else = n_else if n_else != null then n_else.parent = self end @@ -3200,6 +3527,10 @@ redef class AAssertExpr n_expr = new_child.as(AExpr) return end + if _n_kwelse == old_child then + n_kwelse = new_child.as(nullable TKwelse) + return + end if _n_else == old_child then n_else = new_child.as(nullable AExpr) return @@ -3221,6 +3552,11 @@ redef class AAssertExpr _n_expr = node node.parent = self end + redef fun n_kwelse=(node) + do + _n_kwelse = node + if node != null then node.parent = self + end redef fun n_else=(node) do _n_else = node @@ -3233,6 +3569,7 @@ redef class AAssertExpr v.enter_visit(_n_kwassert) v.enter_visit(_n_id) v.enter_visit(_n_expr) + v.enter_visit(_n_kwelse) v.enter_visit(_n_else) end end @@ -4799,7 +5136,7 @@ redef class ANewExpr init init_anewexpr ( n_kwnew: nullable TKwnew, n_type: nullable AType, - n_id: nullable TId, + n_qid: nullable AQid, n_args: nullable AExprs ) do @@ -4807,8 +5144,8 @@ redef class ANewExpr n_kwnew.parent = self _n_type = n_type.as(not null) n_type.parent = self - _n_id = n_id - if n_id != null then n_id.parent = self + _n_qid = n_qid + if n_qid != null then n_qid.parent = self _n_args = n_args.as(not null) n_args.parent = self end @@ -4823,8 +5160,8 @@ redef class ANewExpr n_type = new_child.as(AType) return end - if _n_id == old_child then - n_id = new_child.as(nullable TId) + if _n_qid == old_child then + n_qid = new_child.as(nullable AQid) return end if _n_args == old_child then @@ -4843,9 +5180,9 @@ redef class ANewExpr _n_type = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node if node != null then node.parent = self end redef fun n_args=(node) @@ -4859,7 +5196,7 @@ redef class ANewExpr do v.enter_visit(_n_kwnew) v.enter_visit(_n_type) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) v.enter_visit(_n_args) end end @@ -5001,12 +5338,73 @@ redef class AAttrReassignExpr n_id = new_child.as(TAttrid) return end - if _n_assign_op == old_child then - n_assign_op = new_child.as(AAssignOp) + if _n_assign_op == old_child then + n_assign_op = new_child.as(AAssignOp) + return + end + if _n_value == old_child then + n_value = new_child.as(AExpr) + return + end + end + + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + redef fun n_id=(node) + do + _n_id = node + node.parent = self + end + redef fun n_assign_op=(node) + do + _n_assign_op = node + node.parent = self + end + redef fun n_value=(node) + do + _n_value = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_expr) + v.enter_visit(_n_id) + v.enter_visit(_n_assign_op) + v.enter_visit(_n_value) + end +end +redef class ACallExpr + init init_acallexpr ( + n_expr: nullable AExpr, + n_qid: nullable AQid, + n_args: nullable AExprs + ) + do + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self + _n_args = n_args.as(not null) + n_args.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_qid == old_child then + n_qid = new_child.as(AQid) return end - if _n_value == old_child then - n_value = new_child.as(AExpr) + if _n_args == old_child then + n_args = new_child.as(AExprs) return end end @@ -5016,19 +5414,14 @@ redef class AAttrReassignExpr _n_expr = node node.parent = self end - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - redef fun n_assign_op=(node) + redef fun n_qid=(node) do - _n_assign_op = node + _n_qid = node node.parent = self end - redef fun n_value=(node) + redef fun n_args=(node) do - _n_value = node + _n_args = node node.parent = self end @@ -5036,34 +5429,40 @@ redef class AAttrReassignExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_id) - v.enter_visit(_n_assign_op) - v.enter_visit(_n_value) + v.enter_visit(_n_qid) + v.enter_visit(_n_args) end end -redef class ACallExpr - init init_acallexpr ( +redef class ACallrefExpr + init init_acallrefexpr ( + n_amp: nullable TAmp, n_expr: nullable AExpr, - n_id: nullable TId, + n_qid: nullable AQid, n_args: nullable AExprs ) do + _n_amp = n_amp.as(not null) + n_amp.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self _n_args = n_args.as(not null) n_args.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_amp == old_child then + n_amp = new_child.as(TAmp) + return + end if _n_expr == old_child then n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_qid == old_child then + n_qid = new_child.as(AQid) return end if _n_args == old_child then @@ -5072,14 +5471,19 @@ redef class ACallExpr end end + redef fun n_amp=(node) + do + _n_amp = node + node.parent = self + end redef fun n_expr=(node) do _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node node.parent = self end redef fun n_args=(node) @@ -5091,15 +5495,16 @@ redef class ACallExpr redef fun visit_all(v: Visitor) do + v.enter_visit(_n_amp) v.enter_visit(_n_expr) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) v.enter_visit(_n_args) end end redef class ACallAssignExpr init init_acallassignexpr ( n_expr: nullable AExpr, - n_id: nullable TId, + n_qid: nullable AQid, n_args: nullable AExprs, n_assign: nullable TAssign, n_value: nullable AExpr @@ -5107,8 +5512,8 @@ redef class ACallAssignExpr do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self _n_args = n_args.as(not null) n_args.parent = self _n_assign = n_assign.as(not null) @@ -5123,8 +5528,8 @@ redef class ACallAssignExpr n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_qid == old_child then + n_qid = new_child.as(AQid) return end if _n_args == old_child then @@ -5146,9 +5551,9 @@ redef class ACallAssignExpr _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node node.parent = self end redef fun n_args=(node) @@ -5171,7 +5576,7 @@ redef class ACallAssignExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) v.enter_visit(_n_args) v.enter_visit(_n_assign) v.enter_visit(_n_value) @@ -5180,7 +5585,7 @@ end redef class ACallReassignExpr init init_acallreassignexpr ( n_expr: nullable AExpr, - n_id: nullable TId, + n_qid: nullable AQid, n_args: nullable AExprs, n_assign_op: nullable AAssignOp, n_value: nullable AExpr @@ -5188,8 +5593,8 @@ redef class ACallReassignExpr do _n_expr = n_expr.as(not null) n_expr.parent = self - _n_id = n_id.as(not null) - n_id.parent = self + _n_qid = n_qid.as(not null) + n_qid.parent = self _n_args = n_args.as(not null) n_args.parent = self _n_assign_op = n_assign_op.as(not null) @@ -5204,8 +5609,8 @@ redef class ACallReassignExpr n_expr = new_child.as(AExpr) return end - if _n_id == old_child then - n_id = new_child.as(TId) + if _n_qid == old_child then + n_qid = new_child.as(AQid) return end if _n_args == old_child then @@ -5227,9 +5632,9 @@ redef class ACallReassignExpr _n_expr = node node.parent = self end - redef fun n_id=(node) + redef fun n_qid=(node) do - _n_id = node + _n_qid = node node.parent = self end redef fun n_args=(node) @@ -5252,7 +5657,7 @@ redef class ACallReassignExpr redef fun visit_all(v: Visitor) do v.enter_visit(_n_expr) - v.enter_visit(_n_id) + v.enter_visit(_n_qid) v.enter_visit(_n_args) v.enter_visit(_n_assign_op) v.enter_visit(_n_value) @@ -5744,6 +6149,7 @@ redef class ACrangeExpr init init_acrangeexpr ( n_obra: nullable TObra, n_expr: nullable AExpr, + n_dotdot: nullable TDotdot, n_expr2: nullable AExpr, n_cbra: nullable TCbra, n_annotations: nullable AAnnotations @@ -5753,6 +6159,8 @@ redef class ACrangeExpr n_obra.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self + _n_dotdot = n_dotdot.as(not null) + n_dotdot.parent = self _n_expr2 = n_expr2.as(not null) n_expr2.parent = self _n_cbra = n_cbra.as(not null) @@ -5771,6 +6179,10 @@ redef class ACrangeExpr n_expr = new_child.as(AExpr) return end + if _n_dotdot == old_child then + n_dotdot = new_child.as(TDotdot) + return + end if _n_expr2 == old_child then n_expr2 = new_child.as(AExpr) return @@ -5795,6 +6207,11 @@ redef class ACrangeExpr _n_expr = node node.parent = self end + redef fun n_dotdot=(node) + do + _n_dotdot = node + node.parent = self + end redef fun n_expr2=(node) do _n_expr2 = node @@ -5816,6 +6233,7 @@ redef class ACrangeExpr do v.enter_visit(_n_obra) v.enter_visit(_n_expr) + v.enter_visit(_n_dotdot) v.enter_visit(_n_expr2) v.enter_visit(_n_cbra) v.enter_visit(_n_annotations) @@ -5825,6 +6243,7 @@ redef class AOrangeExpr init init_aorangeexpr ( n_obra: nullable TObra, n_expr: nullable AExpr, + n_dotdot: nullable TDotdot, n_expr2: nullable AExpr, n_cbra: nullable TObra, n_annotations: nullable AAnnotations @@ -5834,6 +6253,8 @@ redef class AOrangeExpr n_obra.parent = self _n_expr = n_expr.as(not null) n_expr.parent = self + _n_dotdot = n_dotdot.as(not null) + n_dotdot.parent = self _n_expr2 = n_expr2.as(not null) n_expr2.parent = self _n_cbra = n_cbra.as(not null) @@ -5852,6 +6273,10 @@ redef class AOrangeExpr n_expr = new_child.as(AExpr) return end + if _n_dotdot == old_child then + n_dotdot = new_child.as(TDotdot) + return + end if _n_expr2 == old_child then n_expr2 = new_child.as(AExpr) return @@ -5876,6 +6301,11 @@ redef class AOrangeExpr _n_expr = node node.parent = self end + redef fun n_dotdot=(node) + do + _n_dotdot = node + node.parent = self + end redef fun n_expr2=(node) do _n_expr2 = node @@ -5897,6 +6327,7 @@ redef class AOrangeExpr do v.enter_visit(_n_obra) v.enter_visit(_n_expr) + v.enter_visit(_n_dotdot) v.enter_visit(_n_expr2) v.enter_visit(_n_cbra) v.enter_visit(_n_annotations) @@ -6157,64 +6588,22 @@ redef class ANullExpr v.enter_visit(_n_annotations) end end -redef class ADecIntExpr - init init_adecintexpr ( - n_number: nullable TNumber, - n_annotations: nullable AAnnotations - ) - do - _n_number = n_number.as(not null) - n_number.parent = self - _n_annotations = n_annotations - if n_annotations != null then n_annotations.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_number == old_child then - n_number = new_child.as(TNumber) - return - end - if _n_annotations == old_child then - n_annotations = new_child.as(nullable AAnnotations) - return - end - end - - redef fun n_number=(node) - do - _n_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_number) - v.enter_visit(_n_annotations) - end -end -redef class AHexIntExpr - init init_ahexintexpr ( - n_hex_number: nullable THexNumber, +redef class AIntegerExpr + init init_aintegerexpr ( + n_integer: nullable TInteger, n_annotations: nullable AAnnotations ) do - _n_hex_number = n_hex_number.as(not null) - n_hex_number.parent = self + _n_integer = n_integer.as(not null) + n_integer.parent = self _n_annotations = n_annotations if n_annotations != null then n_annotations.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_hex_number == old_child then - n_hex_number = new_child.as(THexNumber) + if _n_integer == old_child then + n_integer = new_child.as(TInteger) return end if _n_annotations == old_child then @@ -6223,9 +6612,9 @@ redef class AHexIntExpr end end - redef fun n_hex_number=(node) + redef fun n_integer=(node) do - _n_hex_number = node + _n_integer = node node.parent = self end redef fun n_annotations=(node) @@ -6237,7 +6626,7 @@ redef class AHexIntExpr redef fun visit_all(v: Visitor) do - v.enter_visit(_n_hex_number) + v.enter_visit(_n_integer) v.enter_visit(_n_annotations) end end @@ -6487,6 +6876,74 @@ redef class ASuperstringExpr v.enter_visit(_n_annotations) end end +redef class ALambdaExpr + init init_alambdaexpr ( + n_kwmeth: nullable TKwmeth, + n_signature: nullable ASignature, + n_kwdo: nullable TKwdo, + n_expr: nullable AExpr + ) + do + _n_kwmeth = n_kwmeth.as(not null) + n_kwmeth.parent = self + _n_signature = n_signature.as(not null) + n_signature.parent = self + _n_kwdo = n_kwdo.as(not null) + n_kwdo.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_kwmeth == old_child then + n_kwmeth = new_child.as(TKwmeth) + return + end + if _n_signature == old_child then + n_signature = new_child.as(ASignature) + return + end + if _n_kwdo == old_child then + n_kwdo = new_child.as(TKwdo) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + end + + redef fun n_kwmeth=(node) + do + _n_kwmeth = node + node.parent = self + end + redef fun n_signature=(node) + do + _n_signature = node + node.parent = self + end + redef fun n_kwdo=(node) + do + _n_kwdo = node + node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_kwmeth) + v.enter_visit(_n_signature) + v.enter_visit(_n_kwdo) + v.enter_visit(_n_expr) + end +end redef class AParExpr init init_aparexpr ( n_opar: nullable TOpar, @@ -6950,6 +7407,48 @@ redef class ANamedargExpr v.enter_visit(_n_expr) end end +redef class ASafeExpr + init init_asafeexpr ( + n_expr: nullable AExpr, + n_quest: nullable TQuest + ) + do + _n_expr = n_expr.as(not null) + n_expr.parent = self + _n_quest = n_quest.as(not null) + n_quest.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + if _n_quest == old_child then + n_quest = new_child.as(TQuest) + return + end + end + + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + redef fun n_quest=(node) + do + _n_quest = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + v.enter_visit(_n_expr) + v.enter_visit(_n_quest) + end +end redef class ATypeExpr init init_atypeexpr ( n_type: nullable AType @@ -7501,6 +8000,52 @@ redef class AGgAssignOp v.enter_visit(_n_op) end end +redef class AForGroup + init init_aforgroup ( + n_ids: Collection[Object], # Should be Collection[TId] + n_kwin: nullable TKwin, + n_expr: nullable AExpr + ) + do + self.n_ids.unsafe_add_all(n_ids) + _n_kwin = n_kwin.as(not null) + n_kwin.parent = self + _n_expr = n_expr.as(not null) + n_expr.parent = self + end + + redef fun replace_child(old_child: ANode, new_child: nullable ANode) + do + if n_ids.replace_child(old_child, new_child) then return + if _n_kwin == old_child then + n_kwin = new_child.as(TKwin) + return + end + if _n_expr == old_child then + n_expr = new_child.as(AExpr) + return + end + end + + redef fun n_kwin=(node) + do + _n_kwin = node + node.parent = self + end + redef fun n_expr=(node) + do + _n_expr = node + node.parent = self + end + + + redef fun visit_all(v: Visitor) + do + n_ids.visit_all(v) + v.enter_visit(_n_kwin) + v.enter_visit(_n_expr) + end +end redef class AModuleName init init_amodulename ( n_quad: nullable TQuad, @@ -8067,12 +8612,16 @@ redef class ADoc end redef class AAnnotations init init_aannotations ( + n_kwis: nullable TKwis, n_at: nullable TAt, n_opar: nullable TOpar, n_items: Collection[Object], # Should be Collection[AAnnotation] - n_cpar: nullable TCpar + n_cpar: nullable TCpar, + n_kwend: nullable TKwend ) do + _n_kwis = n_kwis + if n_kwis != null then n_kwis.parent = self _n_at = n_at if n_at != null then n_at.parent = self _n_opar = n_opar @@ -8080,10 +8629,16 @@ redef class AAnnotations self.n_items.unsafe_add_all(n_items) _n_cpar = n_cpar if n_cpar != null then n_cpar.parent = self + _n_kwend = n_kwend + if n_kwend != null then n_kwend.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) do + if _n_kwis == old_child then + n_kwis = new_child.as(nullable TKwis) + return + end if _n_at == old_child then n_at = new_child.as(nullable TAt) return @@ -8097,8 +8652,17 @@ redef class AAnnotations n_cpar = new_child.as(nullable TCpar) return end + if _n_kwend == old_child then + n_kwend = new_child.as(nullable TKwend) + return + end end + redef fun n_kwis=(node) + do + _n_kwis = node + if node != null then node.parent = self + end redef fun n_at=(node) do _n_at = node @@ -8114,14 +8678,21 @@ redef class AAnnotations _n_cpar = node if node != null then node.parent = self end + redef fun n_kwend=(node) + do + _n_kwend = node + if node != null then node.parent = self + end redef fun visit_all(v: Visitor) do + v.enter_visit(_n_kwis) v.enter_visit(_n_at) v.enter_visit(_n_opar) n_items.visit_all(v) v.enter_visit(_n_cpar) + v.enter_visit(_n_kwend) end end redef class AAnnotation