+ _n_label = null
+ end
+ return
+ end
+ end
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_kwloop)
+ if _n_block != null then
+ v.enter_visit(_n_block.as(not null))
+ end
+ if _n_label != null then
+ v.enter_visit(_n_label.as(not null))
+ end
+ end
+end
+redef class AForExpr
+ private init empty_init do end
+
+ init init_aforexpr (
+ n_kwfor: nullable TKwfor,
+ n_id: nullable TId,
+ n_expr: nullable AExpr,
+ n_kwdo: nullable TKwdo,
+ n_block: nullable AExpr,
+ n_label: nullable ALabel
+ )
+ do
+ empty_init
+ _n_kwfor = n_kwfor.as(not null)
+ n_kwfor.parent = self
+ _n_id = n_id.as(not null)
+ n_id.parent = self
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_kwdo = n_kwdo.as(not null)
+ n_kwdo.parent = self
+ _n_block = n_block
+ if n_block != null then
+ n_block.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_kwfor == old_child then
+ if new_child != null then
+ new_child.parent = self
+ assert new_child isa TKwfor
+ _n_kwfor = 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_expr == old_child then
+ if new_child != null then
+ new_child.parent = self
+ assert new_child isa AExpr
+ _n_expr = new_child
+ else
+ abort