+ n.parent = self
+ end
+ redef meth n_signature=(n)
+ do
+ _n_signature = n
+ n.parent = self
+ end
+ redef meth n_expr=(n)
+ do
+ _n_expr = n
+ if n != null then
+ n.parent = self
+ end
+ end
+
+ private init empty_init do end
+
+ init init_aclosuredecl (
+ n_kwwith: nullable TKwwith ,
+ n_kwbreak: nullable TKwbreak ,
+ n_id: nullable TId ,
+ n_signature: nullable PSignature ,
+ n_expr: nullable PExpr
+ )
+ 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_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 meth replace_child(old_child: PNode, new_child: nullable PNode)
+ do
+ if _n_kwwith == old_child then
+ if new_child != null then
+ new_child.parent = self
+ assert new_child isa TKwwith
+ _n_kwwith = new_child
+ else
+ abort
+ end
+ return
+ end
+ 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_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 PSignature
+ _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 PExpr
+ _n_expr = new_child
+ else
+ _n_expr = null
+ end
+ return
+ end
+ end
+
+ redef meth visit_all(v: Visitor)
+ do
+ v.visit(_n_kwwith)
+ if _n_kwbreak != null then
+ v.visit(_n_kwbreak.as(not null))
+ end
+ v.visit(_n_id)
+ v.visit(_n_signature)
+ if _n_expr != null then
+ v.visit(_n_expr.as(not null))
+ end
+ end
+
+ redef meth visit_all_reverse(v: Visitor)
+ do
+ v.visit(_n_kwwith)
+ if _n_kwbreak != null then
+ v.visit(_n_kwbreak.as(not null))
+ end
+ v.visit(_n_id)
+ v.visit(_n_signature)
+ if _n_expr != null then
+ v.visit(_n_expr.as(not null))
+ end
+ end
+end
+redef class AType
+ redef meth n_kwnullable=(n)
+ do
+ _n_kwnullable = n