X-Git-Url: http://nitlanguage.org diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit index 3e5de8c..740278e 100644 --- a/src/parser/parser_prod.nit +++ b/src/parser/parser_prod.nit @@ -2230,6 +2230,48 @@ 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 ASignature init init_asignature ( n_opar: nullable TOpar, @@ -3148,9 +3190,7 @@ end redef class AForExpr init init_aforexpr ( n_kwfor: nullable TKwfor, - n_ids: Collection[Object], # Should be Collection[TId] - n_kwin: nullable TKwin, - n_expr: nullable AExpr, + n_groups: Collection[Object], # Should be Collection[AForGroup] n_kwdo: nullable TKwdo, n_block: nullable AExpr, n_label: nullable ALabel @@ -3158,11 +3198,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_kwin = n_kwin.as(not null) - n_kwin.parent = self - _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 @@ -3177,15 +3213,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_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 + if n_groups.replace_child(old_child, new_child) then return if _n_kwdo == old_child then n_kwdo = new_child.as(TKwdo) return @@ -3205,16 +3233,6 @@ redef class AForExpr _n_kwfor = node node.parent = self 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 n_kwdo=(node) do _n_kwdo = node @@ -3235,9 +3253,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_kwin) - 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) @@ -4968,7 +4984,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 @@ -4976,8 +4992,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 @@ -4992,8 +5008,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 @@ -5012,9 +5028,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) @@ -5028,7 +5044,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 @@ -5213,14 +5229,14 @@ end redef class ACallExpr init init_acallexpr ( n_expr: nullable AExpr, - n_id: nullable TId, + n_qid: nullable AQid, n_args: nullable AExprs ) 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 end @@ -5231,8 +5247,8 @@ redef class ACallExpr 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 @@ -5246,9 +5262,9 @@ redef class ACallExpr _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) @@ -5261,14 +5277,14 @@ redef class ACallExpr 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) 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 @@ -5276,8 +5292,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) @@ -5292,8 +5308,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 @@ -5315,9 +5331,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) @@ -5340,7 +5356,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) @@ -5349,7 +5365,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 @@ -5357,8 +5373,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) @@ -5373,8 +5389,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 @@ -5396,9 +5412,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) @@ -5421,7 +5437,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) @@ -7654,6 +7670,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,