+ v.visit(_n_expr)
+ v.visit(_n_kwas)
+ v.visit(_n_type)
+ end
+end
+redef class AAsNotnullExpr
+ redef fun n_expr=(n)
+ do
+ _n_expr = n
+ n.parent = self
+ end
+ redef fun n_kwas=(n)
+ do
+ _n_kwas = n
+ n.parent = self
+ end
+ redef fun n_kwnot=(n)
+ do
+ _n_kwnot = n
+ n.parent = self
+ end
+ redef fun n_kwnull=(n)
+ do
+ _n_kwnull = n
+ n.parent = self
+ end
+
+ private init empty_init do end
+
+ init init_aasnotnullexpr (
+ n_expr: nullable PExpr ,
+ n_kwas: nullable TKwas ,
+ n_kwnot: nullable TKwnot ,
+ n_kwnull: nullable TKwnull
+ )
+ do
+ empty_init
+ _n_expr = n_expr.as(not null)
+ n_expr.parent = self
+ _n_kwas = n_kwas.as(not null)
+ n_kwas.parent = self
+ _n_kwnot = n_kwnot.as(not null)
+ n_kwnot.parent = self
+ _n_kwnull = n_kwnull.as(not null)
+ n_kwnull.parent = self
+ end
+
+ redef fun replace_child(old_child: PNode, new_child: nullable PNode)
+ do
+ 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
+ abort
+ end
+ return
+ end
+ if _n_kwas == old_child then
+ if new_child != null then
+ new_child.parent = self
+ assert new_child isa TKwas
+ _n_kwas = new_child
+ else
+ abort
+ end
+ return
+ end
+ 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_kwnull == old_child then
+ if new_child != null then
+ new_child.parent = self
+ assert new_child isa TKwnull
+ _n_kwnull = new_child
+ else
+ abort
+ end
+ return
+ end
+ end
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.visit(_n_expr)
+ v.visit(_n_kwas)
+ v.visit(_n_kwnot)
+ v.visit(_n_kwnull)
+ end
+
+ redef fun visit_all_reverse(v: Visitor)
+ do
+ v.visit(_n_expr)
+ v.visit(_n_kwas)
+ v.visit(_n_kwnot)
+ v.visit(_n_kwnull)
+ end
+end
+redef class AIssetAttrExpr
+ redef fun n_kwisset=(n)
+ do
+ _n_kwisset = n
+ n.parent = self
+ end
+ redef fun n_expr=(n)
+ do
+ _n_expr = n
+ n.parent = self
+ end
+ redef fun n_id=(n)
+ do
+ _n_id = n
+ n.parent = self
+ end
+
+ private init empty_init do end
+
+ init init_aissetattrexpr (
+ n_kwisset: nullable TKwisset ,
+ n_expr: nullable PExpr ,
+ n_id: nullable TAttrid
+ )
+ do
+ empty_init
+ _n_kwisset = n_kwisset.as(not null)
+ n_kwisset.parent = self
+ _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: PNode, new_child: nullable PNode)
+ do
+ if _n_kwisset == old_child then
+ if new_child != null then
+ new_child.parent = self
+ assert new_child isa TKwisset
+ _n_kwisset = 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
+ 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.visit(_n_kwisset)
+ v.visit(_n_expr)
+ v.visit(_n_id)
+ end
+
+ redef fun visit_all_reverse(v: Visitor)
+ do
+ v.visit(_n_kwisset)
+ v.visit(_n_expr)
+ v.visit(_n_id)