X-Git-Url: http://nitlanguage.org diff --git a/src/parser/parser_prod.nit b/src/parser/parser_prod.nit index 20545ed..05daac5 100644 --- a/src/parser/parser_prod.nit +++ b/src/parser/parser_prod.nit @@ -3999,8 +3999,7 @@ redef class ASignature n_opar: nullable TOpar, n_params: Collection[Object], # Should be Collection[AParam] n_cpar: nullable TCpar, - n_type: nullable AType, - n_closure_decls: Collection[Object] # Should be Collection[AClosureDecl] + n_type: nullable AType ) do empty_init @@ -4021,11 +4020,6 @@ redef class ASignature if n_type != null then n_type.parent = self end - for n in n_closure_decls do - assert n isa AClosureDecl - _n_closure_decls.add(n) - n.parent = self - end end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -4072,18 +4066,6 @@ redef class ASignature end return end - for i in [0.._n_closure_decls.length[ do - if _n_closure_decls[i] == old_child then - if new_child != null then - assert new_child isa AClosureDecl - _n_closure_decls[i] = new_child - new_child.parent = self - else - _n_closure_decls.remove_at(i) - end - return - end - end end redef fun n_opar=(node) @@ -4123,9 +4105,6 @@ redef class ASignature if _n_type != null then v.enter_visit(_n_type.as(not null)) end - for n in _n_closure_decls do - v.enter_visit(n) - end end end redef class AParam @@ -4241,132 +4220,6 @@ redef class AParam end end end -redef class AClosureDecl - private init empty_init do end - - init init_aclosuredecl ( - n_kwbreak: nullable TKwbreak, - n_bang: nullable TBang, - n_id: nullable TId, - n_signature: nullable ASignature, - n_expr: nullable AExpr - ) - do - empty_init - _n_kwbreak = n_kwbreak - if n_kwbreak != null then - n_kwbreak.parent = self - end - _n_bang = n_bang.as(not null) - n_bang.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - _n_signature = n_signature.as(not null) - n_signature.parent = self - _n_expr = n_expr - if n_expr != null then - n_expr.parent = self - end - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_kwbreak == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TKwbreak - _n_kwbreak = new_child - else - _n_kwbreak = null - end - return - end - if _n_bang == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TBang - _n_bang = new_child - else - abort - end - return - end - if _n_id == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TId - _n_id = new_child - else - abort - end - return - end - if _n_signature == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa ASignature - _n_signature = new_child - else - abort - end - return - end - if _n_expr == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa AExpr - _n_expr = new_child - else - _n_expr = null - end - return - end - end - - redef fun n_kwbreak=(node) - do - _n_kwbreak = node - if node != null then - node.parent = self - end - end - redef fun n_bang=(node) - do - _n_bang = node - node.parent = self - end - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - redef fun n_signature=(node) - do - _n_signature = node - node.parent = self - end - redef fun n_expr=(node) - do - _n_expr = node - if node != null then - node.parent = self - end - end - - - redef fun visit_all(v: Visitor) - do - if _n_kwbreak != null then - v.enter_visit(_n_kwbreak.as(not null)) - end - v.enter_visit(_n_bang) - v.enter_visit(_n_id) - v.enter_visit(_n_signature) - if _n_expr != null then - v.enter_visit(_n_expr.as(not null)) - end - end -end redef class AType private init empty_init do end @@ -6334,63 +6187,6 @@ redef class AEqExpr v.enter_visit(_n_expr2) end end -redef class AEeExpr - private init empty_init do end - - init init_aeeexpr ( - 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) - n_expr2.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_expr == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa AExpr - _n_expr = new_child - else - abort - end - return - end - if _n_expr2 == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa AExpr - _n_expr2 = new_child - else - abort - end - 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 ANeExpr private init empty_init do end @@ -7600,8 +7396,7 @@ redef class ACallExpr init init_acallexpr ( n_expr: nullable AExpr, n_id: nullable TId, - n_args: nullable AExprs, - n_closure_defs: Collection[Object] # Should be Collection[AClosureDef] + n_args: nullable AExprs ) do empty_init @@ -7611,11 +7406,6 @@ redef class ACallExpr n_id.parent = self _n_args = n_args.as(not null) n_args.parent = self - for n in n_closure_defs do - assert n isa AClosureDef - _n_closure_defs.add(n) - n.parent = self - end end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -7650,18 +7440,6 @@ redef class ACallExpr end return end - for i in [0.._n_closure_defs.length[ do - if _n_closure_defs[i] == old_child then - if new_child != null then - assert new_child isa AClosureDef - _n_closure_defs[i] = new_child - new_child.parent = self - else - _n_closure_defs.remove_at(i) - end - return - end - end end redef fun n_expr=(node) @@ -7686,9 +7464,6 @@ redef class ACallExpr v.enter_visit(_n_expr) v.enter_visit(_n_id) v.enter_visit(_n_args) - for n in _n_closure_defs do - v.enter_visit(n) - end end end redef class ACallAssignExpr @@ -8082,8 +7857,7 @@ redef class ABraExpr init init_abraexpr ( n_expr: nullable AExpr, - n_args: nullable AExprs, - n_closure_defs: Collection[Object] # Should be Collection[AClosureDef] + n_args: nullable AExprs ) do empty_init @@ -8091,11 +7865,6 @@ redef class ABraExpr n_expr.parent = self _n_args = n_args.as(not null) n_args.parent = self - for n in n_closure_defs do - assert n isa AClosureDef - _n_closure_defs.add(n) - n.parent = self - end end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -8120,18 +7889,6 @@ redef class ABraExpr end return end - for i in [0.._n_closure_defs.length[ do - if _n_closure_defs[i] == old_child then - if new_child != null then - assert new_child isa AClosureDef - _n_closure_defs[i] = new_child - new_child.parent = self - else - _n_closure_defs.remove_at(i) - end - return - end - end end redef fun n_expr=(node) @@ -8150,9 +7907,6 @@ redef class ABraExpr do v.enter_visit(_n_expr) v.enter_visit(_n_args) - for n in _n_closure_defs do - v.enter_visit(n) - end end end redef class ABraAssignExpr @@ -8345,25 +8099,16 @@ redef class ABraReassignExpr v.enter_visit(_n_value) end end -redef class AClosureCallExpr +redef class AVarExpr private init empty_init do end - init init_aclosurecallexpr ( - n_id: nullable TId, - n_args: nullable AExprs, - n_closure_defs: Collection[Object] # Should be Collection[AClosureDef] + init init_avarexpr ( + n_id: nullable TId ) do empty_init _n_id = n_id.as(not null) n_id.parent = self - _n_args = n_args.as(not null) - n_args.parent = self - for n in n_closure_defs do - assert n isa AClosureDef - _n_closure_defs.add(n) - n.parent = self - end end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -8378,28 +8123,6 @@ redef class AClosureCallExpr end return end - if _n_args == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa AExprs - _n_args = new_child - else - abort - end - return - end - for i in [0.._n_closure_defs.length[ do - if _n_closure_defs[i] == old_child then - if new_child != null then - assert new_child isa AClosureDef - _n_closure_defs[i] = new_child - new_child.parent = self - else - _n_closure_defs.remove_at(i) - end - return - end - end end redef fun n_id=(node) @@ -8407,76 +8130,29 @@ redef class AClosureCallExpr _n_id = node node.parent = self end - redef fun n_args=(node) - do - _n_args = node - node.parent = self - end redef fun visit_all(v: Visitor) do v.enter_visit(_n_id) - v.enter_visit(_n_args) - for n in _n_closure_defs do - v.enter_visit(n) - end end end -redef class AVarExpr +redef class AVarAssignExpr private init empty_init do end - init init_avarexpr ( - n_id: nullable TId + 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 - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_id == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TId - _n_id = new_child - else - abort - end - 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 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) - n_assign.parent = self - _n_value = n_value.as(not null) - n_value.parent = self + _n_assign = n_assign.as(not null) + n_assign.parent = self + _n_value = n_value.as(not null) + n_value.parent = self end redef fun replace_child(old_child: ANode, new_child: nullable ANode) @@ -10490,235 +10166,6 @@ redef class AMinusAssignOp v.enter_visit(_n_minuseq) end end -redef class AClosureDef - private init empty_init do end - - init init_aclosuredef ( - n_bang: nullable TBang, - n_id: nullable AClosureId, - n_ids: Collection[Object], # Should be Collection[TId] - n_kwdo: nullable TKwdo, - n_expr: nullable AExpr, - n_label: nullable ALabel - ) - do - empty_init - _n_bang = n_bang.as(not null) - n_bang.parent = self - _n_id = n_id.as(not null) - n_id.parent = self - for n in n_ids do - assert n isa TId - _n_ids.add(n) - n.parent = self - end - _n_kwdo = n_kwdo - if n_kwdo != null then - n_kwdo.parent = self - end - _n_expr = n_expr - if n_expr != null then - n_expr.parent = self - end - _n_label = n_label - if n_label != null then - n_label.parent = self - end - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_bang == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TBang - _n_bang = new_child - else - abort - end - return - end - if _n_id == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa AClosureId - _n_id = new_child - else - abort - end - return - end - for i in [0.._n_ids.length[ do - if _n_ids[i] == old_child then - if new_child != null then - assert new_child isa TId - _n_ids[i] = new_child - new_child.parent = self - else - _n_ids.remove_at(i) - end - return - end - end - if _n_kwdo == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TKwdo - _n_kwdo = new_child - else - _n_kwdo = null - end - return - end - if _n_expr == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa AExpr - _n_expr = new_child - else - _n_expr = null - end - return - end - if _n_label == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa ALabel - _n_label = new_child - else - _n_label = null - end - return - end - end - - redef fun n_bang=(node) - do - _n_bang = node - node.parent = self - end - redef fun n_id=(node) - do - _n_id = node - node.parent = self - end - redef fun n_kwdo=(node) - do - _n_kwdo = node - if node != null then - node.parent = self - end - end - redef fun n_expr=(node) - do - _n_expr = node - if node != null then - node.parent = self - end - end - redef fun n_label=(node) - do - _n_label = node - if node != null then - node.parent = self - end - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_bang) - v.enter_visit(_n_id) - for n in _n_ids do - v.enter_visit(n) - end - if _n_kwdo != null then - v.enter_visit(_n_kwdo.as(not null)) - end - if _n_expr != null then - v.enter_visit(_n_expr.as(not null)) - end - if _n_label != null then - v.enter_visit(_n_label.as(not null)) - end - end -end -redef class ASimpleClosureId - private init empty_init do end - - init init_asimpleclosureid ( - n_id: nullable TId - ) - 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 - if new_child != null then - new_child.parent = self - assert new_child isa TId - _n_id = new_child - else - abort - end - 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 ABreakClosureId - private init empty_init do end - - init init_abreakclosureid ( - n_kwbreak: nullable TKwbreak - ) - do - empty_init - _n_kwbreak = n_kwbreak.as(not null) - n_kwbreak.parent = self - end - - redef fun replace_child(old_child: ANode, new_child: nullable ANode) - do - if _n_kwbreak == old_child then - if new_child != null then - new_child.parent = self - assert new_child isa TKwbreak - _n_kwbreak = new_child - else - abort - end - return - end - end - - redef fun n_kwbreak=(node) - do - _n_kwbreak = node - node.parent = self - end - - - redef fun visit_all(v: Visitor) - do - v.enter_visit(_n_kwbreak) - end -end redef class AModuleName private init empty_init do end @@ -10960,17 +10407,17 @@ redef class AFullPropExternCall private init empty_init do end init init_afullpropexterncall ( - n_classid: nullable TClassid, - n_quad: nullable TQuad, + n_type: nullable AType, + n_dot: nullable TDot, n_methid: nullable AMethid ) do empty_init - _n_classid = n_classid.as(not null) - n_classid.parent = self - _n_quad = n_quad - if n_quad != null then - n_quad.parent = self + _n_type = n_type.as(not null) + n_type.parent = self + _n_dot = n_dot + if n_dot != null then + n_dot.parent = self end _n_methid = n_methid.as(not null) n_methid.parent = self @@ -10978,23 +10425,23 @@ redef class AFullPropExternCall redef fun replace_child(old_child: ANode, new_child: nullable ANode) do - if _n_classid == old_child then + if _n_type == old_child then if new_child != null then new_child.parent = self - assert new_child isa TClassid - _n_classid = new_child + assert new_child isa AType + _n_type = new_child else abort end return end - if _n_quad == old_child then + if _n_dot == old_child then if new_child != null then new_child.parent = self - assert new_child isa TQuad - _n_quad = new_child + assert new_child isa TDot + _n_dot = new_child else - _n_quad = null + _n_dot = null end return end @@ -11010,14 +10457,14 @@ redef class AFullPropExternCall end end - redef fun n_classid=(node) + redef fun n_type=(node) do - _n_classid = node + _n_type = node node.parent = self end - redef fun n_quad=(node) + redef fun n_dot=(node) do - _n_quad = node + _n_dot = node if node != null then node.parent = self end @@ -11031,9 +10478,9 @@ redef class AFullPropExternCall redef fun visit_all(v: Visitor) do - v.enter_visit(_n_classid) - if _n_quad != null then - v.enter_visit(_n_quad.as(not null)) + v.enter_visit(_n_type) + if _n_dot != null then + v.enter_visit(_n_dot.as(not null)) end v.enter_visit(_n_methid) end @@ -11042,21 +10489,21 @@ redef class AInitPropExternCall private init empty_init do end init init_ainitpropexterncall ( - n_classid: nullable TClassid + n_type: nullable AType ) do empty_init - _n_classid = n_classid.as(not null) - n_classid.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_classid == old_child then + if _n_type == old_child then if new_child != null then new_child.parent = self - assert new_child isa TClassid - _n_classid = new_child + assert new_child isa AType + _n_type = new_child else abort end @@ -11064,16 +10511,16 @@ redef class AInitPropExternCall end end - redef fun n_classid=(node) + redef fun n_type=(node) do - _n_classid = node + _n_type = node node.parent = self end redef fun visit_all(v: Visitor) do - v.enter_visit(_n_classid) + v.enter_visit(_n_type) end end redef class ACastAsExternCall @@ -11081,6 +10528,7 @@ redef class ACastAsExternCall init init_acastasexterncall ( n_from_type: nullable AType, + n_dot: nullable TDot, n_kwas: nullable TKwas, n_to_type: nullable AType ) @@ -11088,6 +10536,10 @@ redef class ACastAsExternCall empty_init _n_from_type = n_from_type.as(not null) n_from_type.parent = self + _n_dot = n_dot + if n_dot != null then + n_dot.parent = self + end _n_kwas = n_kwas.as(not null) n_kwas.parent = self _n_to_type = n_to_type.as(not null) @@ -11106,6 +10558,16 @@ redef class ACastAsExternCall end return end + if _n_dot == old_child then + if new_child != null then + new_child.parent = self + assert new_child isa TDot + _n_dot = new_child + else + _n_dot = null + end + return + end if _n_kwas == old_child then if new_child != null then new_child.parent = self @@ -11133,6 +10595,13 @@ redef class ACastAsExternCall _n_from_type = node node.parent = self end + redef fun n_dot=(node) + do + _n_dot = node + if node != null then + node.parent = self + end + end redef fun n_kwas=(node) do _n_kwas = node @@ -11148,6 +10617,9 @@ redef class ACastAsExternCall redef fun visit_all(v: Visitor) do v.enter_visit(_n_from_type) + if _n_dot != null then + v.enter_visit(_n_dot.as(not null)) + end v.enter_visit(_n_kwas) v.enter_visit(_n_to_type) end