- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwwhile)
- v.enter_visit(_n_expr)
- v.enter_visit(_n_kwdo)
- 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 ALoopExpr
- private init empty_init do end
-
- init init_aloopexpr (
- n_kwloop: nullable TKwloop,
- n_block: nullable AExpr,
- n_label: nullable ALabel
- )
- do
- empty_init
- _n_kwloop = n_kwloop.as(not null)
- n_kwloop.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_kwloop == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwloop
- _n_kwloop = new_child
- else
- abort
- end
- return
- end
- if _n_block == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_block = new_child
- else
- _n_block = 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 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_ids: Collection[Object], # Should be Collection[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
- for n in n_ids do
- assert n isa TId
- _n_ids.add(n)
- n.parent = self
- end
- _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
- 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_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_kwdo == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwdo
- _n_kwdo = new_child
- else
- abort
- end
- return
- end
- if _n_block == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_block = new_child
- else
- _n_block = 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwfor)
- for n in _n_ids do
- v.enter_visit(n)
- end
- v.enter_visit(_n_expr)
- v.enter_visit(_n_kwdo)
- 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 AAssertExpr
- private init empty_init do end
-
- init init_aassertexpr (
- n_kwassert: nullable TKwassert,
- n_id: nullable TId,
- n_expr: nullable AExpr,
- n_else: nullable AExpr
- )
- do
- empty_init
- _n_kwassert = n_kwassert.as(not null)
- n_kwassert.parent = self
- _n_id = n_id
- if n_id != null then
- n_id.parent = self
- end
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_else = n_else
- if n_else != null then
- n_else.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwassert == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwassert
- _n_kwassert = 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
- _n_id = 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
- abort
- end
- return
- end
- if _n_else == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_else = new_child
- else
- _n_else = null
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwassert)
- if _n_id != null then
- v.enter_visit(_n_id.as(not null))
- end
- v.enter_visit(_n_expr)
- if _n_else != null then
- v.enter_visit(_n_else.as(not null))
- end
- end
-end
-redef class AOnceExpr
- private init empty_init do end
-
- init init_aonceexpr (
- n_kwonce: nullable TKwonce,
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_kwonce = n_kwonce.as(not null)
- n_kwonce.parent = self
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwonce == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwonce
- _n_kwonce = 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
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwonce)
- v.enter_visit(_n_expr)
- end
-end
-redef class ASendExpr
- private init empty_init do end
-
- init init_asendexpr (
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.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
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- end
-end
-redef class ABinopExpr
- private init empty_init do end
-
- init init_abinopexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AOrExpr
- private init empty_init do end
-
- init init_aorexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AAndExpr
- private init empty_init do end
-
- init init_aandexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AOrElseExpr
- private init empty_init do end
-
- init init_aorelseexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class ANotExpr
- private init empty_init do end
-
- init init_anotexpr (
- n_kwnot: nullable TKwnot,
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_kwnot = n_kwnot.as(not null)
- n_kwnot.parent = self
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwnot == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwnot
- _n_kwnot = 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
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwnot)
- v.enter_visit(_n_expr)
- end
-end
-redef class AEqExpr
- private init empty_init do end
-
- init init_aeqexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- 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 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
-
- init init_aneexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class ALtExpr
- private init empty_init do end
-
- init init_altexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class ALeExpr
- private init empty_init do end
-
- init init_aleexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class ALlExpr
- private init empty_init do end
-
- init init_allexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AGtExpr
- private init empty_init do end
-
- init init_agtexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AGeExpr
- private init empty_init do end
-
- init init_ageexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AGgExpr
- private init empty_init do end
-
- init init_aggexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AIsaExpr
- private init empty_init do end
-
- init init_aisaexpr (
- n_expr: nullable AExpr,
- n_type: nullable AType
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.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_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_type == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AType
- _n_type = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_type)
- end
-end
-redef class APlusExpr
- private init empty_init do end
-
- init init_aplusexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AMinusExpr
- private init empty_init do end
-
- init init_aminusexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AStarshipExpr
- private init empty_init do end
-
- init init_astarshipexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AStarExpr
- private init empty_init do end
-
- init init_astarexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class ASlashExpr
- private init empty_init do end
-
- init init_aslashexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class APercentExpr
- private init empty_init do end
-
- init init_apercentexpr (
- 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 visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_expr2)
- end
-end
-redef class AUminusExpr
- private init empty_init do end
-
- init init_auminusexpr (
- n_minus: nullable TMinus,
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_minus = n_minus.as(not null)
- n_minus.parent = self
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_minus == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TMinus
- _n_minus = 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
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_minus)
- v.enter_visit(_n_expr)
- end
-end
-redef class ANewExpr
- private init empty_init do end
-
- init init_anewexpr (
- n_kwnew: nullable TKwnew,
- n_type: nullable AType,
- n_id: nullable TId,
- n_args: nullable AExprs
- )
- do
- empty_init
- _n_kwnew = n_kwnew.as(not null)
- n_kwnew.parent = self
- _n_type = n_type.as(not null)
- n_type.parent = self
- _n_id = n_id
- if n_id != null then
- n_id.parent = self
- end
- _n_args = n_args.as(not null)
- n_args.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwnew == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwnew
- _n_kwnew = new_child
- else
- abort
- end
- return
- end
- if _n_type == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AType
- _n_type = 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
- _n_id = null
- 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
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwnew)
- v.enter_visit(_n_type)
- if _n_id != null then
- v.enter_visit(_n_id.as(not null))
- end
- v.enter_visit(_n_args)
- end
-end
-redef class AAttrExpr
- private init empty_init do end
-
- init init_aattrexpr (
- n_expr: nullable AExpr,
- n_id: nullable TAttrid
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _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_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_id == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TAttrid
- _n_id = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
- end
-end
-redef class AAttrAssignExpr
- private init empty_init do end
-
- init init_aattrassignexpr (
- n_expr: nullable AExpr,
- n_id: nullable TAttrid,
- n_assign: nullable TAssign,
- n_value: nullable AExpr
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _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
- 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_id == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TAttrid
- _n_id = new_child
- else
- abort
- end
- return
- end
- if _n_assign == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TAssign
- _n_assign = new_child
- else
- abort
- end
- return
- end
- if _n_value == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_value = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
- v.enter_visit(_n_assign)
- v.enter_visit(_n_value)
- end
-end
-redef class AAttrReassignExpr
- private init empty_init do end
-
- init init_aattrreassignexpr (
- n_expr: nullable AExpr,
- n_id: nullable TAttrid,
- n_assign_op: nullable AAssignOp,
- n_value: nullable AExpr
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_assign_op = n_assign_op.as(not null)
- n_assign_op.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)
- 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_id == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TAttrid
- _n_id = new_child
- else
- abort
- end
- return
- end
- if _n_assign_op == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAssignOp
- _n_assign_op = new_child
- else
- abort
- end
- return
- end
- if _n_value == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_value = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
- v.enter_visit(_n_assign_op)
- v.enter_visit(_n_value)
- end
-end
-redef class ACallExpr
- private init empty_init do end
-
- init init_acallexpr (
- n_expr: nullable AExpr,
- n_id: nullable TId,
- n_args: nullable AExprs,
- n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _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)
- 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_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_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 visit_all(v: Visitor)
- do
- 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
- private init empty_init do end
-
- init init_acallassignexpr (
- n_expr: nullable AExpr,
- n_id: nullable TId,
- n_args: nullable AExprs,
- n_assign: nullable TAssign,
- n_value: nullable AExpr
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_args = n_args.as(not null)
- n_args.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)
- 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_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_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
- if _n_assign == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TAssign
- _n_assign = new_child
- else
- abort
- end
- return
- end
- if _n_value == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_value = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
- v.enter_visit(_n_args)
- v.enter_visit(_n_assign)
- v.enter_visit(_n_value)
- end
-end
-redef class ACallReassignExpr
- private init empty_init do end
-
- init init_acallreassignexpr (
- n_expr: nullable AExpr,
- n_id: nullable TId,
- n_args: nullable AExprs,
- n_assign_op: nullable AAssignOp,
- n_value: nullable AExpr
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_args = n_args.as(not null)
- n_args.parent = self
- _n_assign_op = n_assign_op.as(not null)
- n_assign_op.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)
- 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_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_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
- if _n_assign_op == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAssignOp
- _n_assign_op = new_child
- else
- abort
- end
- return
- end
- if _n_value == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_value = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
- v.enter_visit(_n_args)
- v.enter_visit(_n_assign_op)
- v.enter_visit(_n_value)
- end
-end
-redef class ASuperExpr
- private init empty_init do end
-
- init init_asuperexpr (
- n_qualified: nullable AQualified,
- n_kwsuper: nullable TKwsuper,
- n_args: nullable AExprs
- )
- do
- empty_init
- _n_qualified = n_qualified
- if n_qualified != null then
- n_qualified.parent = self
- end
- _n_kwsuper = n_kwsuper.as(not null)
- n_kwsuper.parent = self
- _n_args = n_args.as(not null)
- n_args.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_qualified == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AQualified
- _n_qualified = new_child
- else
- _n_qualified = null
- end
- return
- end
- if _n_kwsuper == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwsuper
- _n_kwsuper = new_child
- else
- abort
- 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
- end
-
- redef fun visit_all(v: Visitor)
- do
- if _n_qualified != null then
- v.enter_visit(_n_qualified.as(not null))
- end
- v.enter_visit(_n_kwsuper)
- v.enter_visit(_n_args)
- end
-end
-redef class AInitExpr
- private init empty_init do end
-
- init init_ainitexpr (
- n_expr: nullable AExpr,
- n_kwinit: nullable TKwinit,
- n_args: nullable AExprs
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_kwinit = n_kwinit.as(not null)
- n_kwinit.parent = self
- _n_args = n_args.as(not null)
- n_args.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_kwinit == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwinit
- _n_kwinit = new_child
- else
- abort
- 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
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_kwinit)
- v.enter_visit(_n_args)
- end
-end
-redef class ABraExpr
- private init empty_init do end
-
- init init_abraexpr (
- n_expr: nullable AExpr,
- n_args: nullable AExprs,
- n_closure_defs: Collection[Object] # Should be Collection[AClosureDef]
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- 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)
- 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_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 visit_all(v: Visitor)
- 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
- private init empty_init do end
-
- init init_abraassignexpr (
- n_expr: nullable AExpr,
- n_args: nullable AExprs,
- n_assign: nullable TAssign,
- n_value: nullable AExpr
- )
- do
- empty_init
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_args = n_args.as(not null)
- n_args.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)
- 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_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
- if _n_assign == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TAssign
- _n_assign = new_child
- else
- abort
- end
- return
- end
- if _n_value == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_value = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_expr)
- v.enter_visit(_n_args)
- v.enter_visit(_n_assign)
- v.enter_visit(_n_value)
- end