_n_visibility = n
n.parent = self
end
- redef fun n_kwattr=(n)
- do
- _n_kwattr = n
- if n != null then
- n.parent = self
- end
- end
redef fun n_kwvar=(n)
do
_n_kwvar = n
- if n != null then
- n.parent = self
- end
+ n.parent = self
end
redef fun n_id=(n)
do
n_writable: nullable AAble,
n_kwredef: nullable TKwredef,
n_visibility: nullable AVisibility,
- n_kwattr: nullable TKwattr,
n_kwvar: nullable TKwvar,
n_id: nullable TAttrid,
n_type: nullable AType,
end
_n_visibility = n_visibility.as(not null)
n_visibility.parent = self
- _n_kwattr = n_kwattr
- if n_kwattr != null then
- n_kwattr.parent = self
- end
- _n_kwvar = n_kwvar
- if n_kwvar != null then
- n_kwvar.parent = self
- end
+ _n_kwvar = n_kwvar.as(not null)
+ n_kwvar.parent = self
_n_id = n_id.as(not null)
n_id.parent = self
_n_type = n_type
end
return
end
- if _n_kwattr == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwattr
- _n_kwattr = new_child
- else
- _n_kwattr = null
- end
- return
- end
if _n_kwvar == old_child then
if new_child != null then
new_child.parent = self
assert new_child isa TKwvar
_n_kwvar = new_child
else
- _n_kwvar = null
+ abort
end
return
end
v.enter_visit(_n_kwredef.as(not null))
end
v.enter_visit(_n_visibility)
- if _n_kwattr != null then
- v.enter_visit(_n_kwattr.as(not null))
- end
- if _n_kwvar != null then
- v.enter_visit(_n_kwvar.as(not null))
- end
+ v.enter_visit(_n_kwvar)
v.enter_visit(_n_id)
if _n_type != null then
v.enter_visit(_n_type.as(not null))
v.enter_visit(_n_kwredef.as(not null))
end
v.enter_visit(_n_visibility)
- if _n_kwattr != null then
- v.enter_visit(_n_kwattr.as(not null))
- end
- if _n_kwvar != null then
- v.enter_visit(_n_kwvar.as(not null))
- end
+ v.enter_visit(_n_kwvar)
v.enter_visit(_n_id)
if _n_type != null then
v.enter_visit(_n_type.as(not null))
end
end
redef class AClosureDecl
- redef fun n_kwwith=(n)
- do
- _n_kwwith = n
- n.parent = self
- end
redef fun n_kwbreak=(n)
do
_n_kwbreak = n
n.parent = self
end
end
+ redef fun n_bang=(n)
+ do
+ _n_bang = n
+ n.parent = self
+ end
redef fun n_id=(n)
do
_n_id = n
private init empty_init do end
init init_aclosuredecl (
- n_kwwith: nullable TKwwith,
n_kwbreak: nullable TKwbreak,
+ n_bang: nullable TBang,
n_id: nullable TId,
n_signature: nullable ASignature,
n_expr: nullable AExpr
)
do
empty_init
- _n_kwwith = n_kwwith.as(not null)
- n_kwwith.parent = self
_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)
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_kwwith == old_child then
+ if _n_kwbreak == old_child then
if new_child != null then
new_child.parent = self
- assert new_child isa TKwwith
- _n_kwwith = new_child
+ assert new_child isa TKwbreak
+ _n_kwbreak = new_child
else
- abort
+ _n_kwbreak = null
end
return
end
- if _n_kwbreak == old_child then
+ if _n_bang == old_child then
if new_child != null then
new_child.parent = self
- assert new_child isa TKwbreak
- _n_kwbreak = new_child
+ assert new_child isa TBang
+ _n_bang = new_child
else
- _n_kwbreak = null
+ abort
end
return
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_kwwith)
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
redef fun visit_all_reverse(v: Visitor)
do
- v.enter_visit(_n_kwwith)
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
redef fun n_kwreturn=(n)
do
_n_kwreturn = n
- n.parent = self
+ if n != null then
+ n.parent = self
+ end
end
redef fun n_expr=(n)
do
)
do
empty_init
- _n_kwreturn = n_kwreturn.as(not null)
- n_kwreturn.parent = self
+ _n_kwreturn = n_kwreturn
+ if n_kwreturn != null then
+ n_kwreturn.parent = self
+ end
_n_expr = n_expr
if n_expr != null then
n_expr.parent = self
assert new_child isa TKwreturn
_n_kwreturn = new_child
else
- abort
+ _n_kwreturn = null
end
return
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_kwreturn)
+ if _n_kwreturn != null then
+ v.enter_visit(_n_kwreturn.as(not null))
+ end
if _n_expr != null then
v.enter_visit(_n_expr.as(not null))
end
redef fun visit_all_reverse(v: Visitor)
do
- v.enter_visit(_n_kwreturn)
+ if _n_kwreturn != null then
+ v.enter_visit(_n_kwreturn.as(not null))
+ end
if _n_expr != null then
v.enter_visit(_n_expr.as(not null))
end
redef fun n_kwcontinue=(n)
do
_n_kwcontinue = n
- n.parent = self
+ if n != null then
+ n.parent = self
+ end
end
redef fun n_label=(n)
do
)
do
empty_init
- _n_kwcontinue = n_kwcontinue.as(not null)
- n_kwcontinue.parent = self
+ _n_kwcontinue = n_kwcontinue
+ if n_kwcontinue != null then
+ n_kwcontinue.parent = self
+ end
_n_label = n_label
if n_label != null then
n_label.parent = self
assert new_child isa TKwcontinue
_n_kwcontinue = new_child
else
- abort
+ _n_kwcontinue = null
end
return
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_kwcontinue)
+ if _n_kwcontinue != null then
+ v.enter_visit(_n_kwcontinue.as(not null))
+ end
if _n_label != null then
v.enter_visit(_n_label.as(not null))
end
redef fun visit_all_reverse(v: Visitor)
do
- v.enter_visit(_n_kwcontinue)
+ if _n_kwcontinue != null then
+ v.enter_visit(_n_kwcontinue.as(not null))
+ end
if _n_label != null then
v.enter_visit(_n_label.as(not null))
end
end
end
redef class AClosureDef
- redef fun n_kwwith=(n)
+ redef fun n_bang=(n)
do
- _n_kwwith = n
+ _n_bang = n
+ n.parent = self
+ end
+ redef fun n_id=(n)
+ do
+ _n_id = n
n.parent = self
end
redef fun n_kwdo=(n)
do
_n_kwdo = n
- n.parent = self
+ if n != null then
+ n.parent = self
+ end
end
redef fun n_expr=(n)
do
private init empty_init do end
init init_aclosuredef (
- n_kwwith: nullable TKwwith,
- n_id: Collection[Object], # Should be Collection[TId]
+ 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_kwwith = n_kwwith.as(not null)
- n_kwwith.parent = self
- for n in n_id do
+ _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_id.add(n)
+ _n_ids.add(n)
n.parent = self
end
- _n_kwdo = n_kwdo.as(not null)
- n_kwdo.parent = self
+ _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
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_kwwith == old_child then
+ if _n_bang == old_child then
if new_child != null then
new_child.parent = self
- assert new_child isa TKwwith
- _n_kwwith = new_child
+ assert new_child isa TBang
+ _n_bang = new_child
else
abort
end
return
end
- for i in [0.._n_id.length[ do
- if _n_id[i] == old_child then
+ 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_id[i] = new_child
+ _n_ids[i] = new_child
new_child.parent = self
else
- _n_id.remove_at(i)
+ _n_ids.remove_at(i)
end
return
end
assert new_child isa TKwdo
_n_kwdo = new_child
else
- abort
+ _n_kwdo = null
end
return
end
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_kwwith)
- for n in _n_id do
+ v.enter_visit(_n_bang)
+ v.enter_visit(_n_id)
+ for n in _n_ids do
v.enter_visit(n)
end
- v.enter_visit(_n_kwdo)
+ 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
redef fun visit_all_reverse(v: Visitor)
do
- v.enter_visit(_n_kwwith)
+ v.enter_visit(_n_bang)
+ v.enter_visit(_n_id)
do
- var i = _n_id.length
+ var i = _n_ids.length
while i >= 0 do
- v.enter_visit(_n_id[i])
+ v.enter_visit(_n_ids[i])
i = i - 1
end
end
- v.enter_visit(_n_kwdo)
+ 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
end
end
end
+redef class ASimpleClosureId
+ redef fun n_id=(n)
+ do
+ _n_id = n
+ n.parent = self
+ end
+
+ 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 visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_id)
+ end
+
+ redef fun visit_all_reverse(v: Visitor)
+ do
+ v.enter_visit(_n_id)
+ end
+end
+redef class ABreakClosureId
+ redef fun n_kwbreak=(n)
+ do
+ _n_kwbreak = n
+ n.parent = self
+ end
+
+ 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 visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_kwbreak)
+ end
+
+ redef fun visit_all_reverse(v: Visitor)
+ do
+ v.enter_visit(_n_kwbreak)
+ end
+end
redef class AQualified
redef fun n_classid=(n)
do