+ 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 visit_all(v: Visitor)
+ do
+ if _n_kwbreak != null then
+ v.enter_visit(_n_kwbreak.as(not null))