- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_readable != null then
- v.enter_visit(_n_readable.as(not null))
- end
- if _n_writable != null then
- v.enter_visit(_n_writable.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwvar)
- if _n_id != null then
- v.enter_visit(_n_id.as(not null))
- end
- if _n_id2 != null then
- v.enter_visit(_n_id2.as(not null))
- end
- if _n_type != null then
- v.enter_visit(_n_type.as(not null))
- end
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- if _n_expr != null then
- v.enter_visit(_n_expr.as(not null))
- end
- end
-end
-redef class AMethPropdef
- private init empty_init do end
-
- init init_amethpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_methid = n_methid.as(not null)
- n_methid.parent = self
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- if _n_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = 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
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- node.parent = self
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_methid)
- v.enter_visit(_n_signature)
- end
-end
-redef class ADeferredMethPropdef
- private init empty_init do end
-
- init init_adeferredmethpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwmeth: nullable TKwmeth,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature,
- n_annotations: nullable AAnnotations
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwmeth = n_kwmeth.as(not null)
- n_kwmeth.parent = self
- _n_methid = n_methid.as(not null)
- n_methid.parent = self
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- if _n_kwmeth == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwmeth
- _n_kwmeth = new_child
- else
- abort
- end
- return
- end
- if _n_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = 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_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- end
- return
- end
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwmeth=(node)
- do
- _n_kwmeth = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- node.parent = self
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwmeth)
- v.enter_visit(_n_methid)
- v.enter_visit(_n_signature)
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- end
-end
-redef class AInternMethPropdef
- private init empty_init do end
-
- init init_ainternmethpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwmeth: nullable TKwmeth,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwmeth = n_kwmeth.as(not null)
- n_kwmeth.parent = self
- _n_methid = n_methid.as(not null)
- n_methid.parent = self
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- if _n_kwmeth == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwmeth
- _n_kwmeth = new_child
- else
- abort
- end
- return
- end
- if _n_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = 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
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwmeth=(node)
- do
- _n_kwmeth = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- node.parent = self
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwmeth)
- v.enter_visit(_n_methid)
- v.enter_visit(_n_signature)
- end
-end
-redef class AExternMethPropdef
- private init empty_init do end
-
- init init_aexternmethpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwmeth: nullable TKwmeth,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature,
- n_extern: nullable TString,
- n_extern_calls: nullable AExternCalls,
- n_extern_code_block: nullable AExternCodeBlock
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwmeth = n_kwmeth.as(not null)
- n_kwmeth.parent = self
- _n_methid = n_methid.as(not null)
- n_methid.parent = self
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- _n_extern = n_extern
- if n_extern != null then
- n_extern.parent = self
- end
- _n_extern_calls = n_extern_calls
- if n_extern_calls != null then
- n_extern_calls.parent = self
- end
- _n_extern_code_block = n_extern_code_block
- if n_extern_code_block != null then
- n_extern_code_block.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- if _n_kwmeth == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwmeth
- _n_kwmeth = new_child
- else
- abort
- end
- return
- end
- if _n_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = 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_extern == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TString
- _n_extern = new_child
- else
- _n_extern = null
- end
- return
- end
- if _n_extern_calls == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExternCalls
- _n_extern_calls = new_child
- else
- _n_extern_calls = null
- end
- return
- end
- if _n_extern_code_block == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExternCodeBlock
- _n_extern_code_block = new_child
- else
- _n_extern_code_block = null
- end
- return
- end
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwmeth=(node)
- do
- _n_kwmeth = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- node.parent = self
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
- redef fun n_extern=(node)
- do
- _n_extern = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_extern_calls=(node)
- do
- _n_extern_calls = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_extern_code_block=(node)
- do
- _n_extern_code_block = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwmeth)
- v.enter_visit(_n_methid)
- v.enter_visit(_n_signature)
- if _n_extern != null then
- v.enter_visit(_n_extern.as(not null))
- end
- if _n_extern_calls != null then
- v.enter_visit(_n_extern_calls.as(not null))
- end
- if _n_extern_code_block != null then
- v.enter_visit(_n_extern_code_block.as(not null))
- end
- end
-end
-redef class AConcreteMethPropdef
- private init empty_init do end
-
- init init_aconcretemethpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwmeth: nullable TKwmeth,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature,
- n_annotations: nullable AAnnotations,
- n_block: nullable AExpr
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwmeth = n_kwmeth.as(not null)
- n_kwmeth.parent = self
- _n_methid = n_methid.as(not null)
- n_methid.parent = self
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- _n_block = n_block
- if n_block != null then
- n_block.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- if _n_kwmeth == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwmeth
- _n_kwmeth = new_child
- else
- abort
- end
- return
- end
- if _n_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = 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_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- 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
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwmeth=(node)
- do
- _n_kwmeth = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- node.parent = self
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_block=(node)
- do
- _n_block = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwmeth)
- v.enter_visit(_n_methid)
- v.enter_visit(_n_signature)
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- if _n_block != null then
- v.enter_visit(_n_block.as(not null))
- end
- end
-end
-redef class AConcreteInitPropdef
- private init empty_init do end
-
- init init_aconcreteinitpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwinit: nullable TKwinit,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature,
- n_annotations: nullable AAnnotations,
- n_block: nullable AExpr
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwinit = n_kwinit.as(not null)
- n_kwinit.parent = self
- _n_methid = n_methid
- if n_methid != null then
- n_methid.parent = self
- end
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- _n_block = n_block
- if n_block != null then
- n_block.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = 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_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = new_child
- else
- _n_methid = null
- 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_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- 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
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwinit=(node)
- do
- _n_kwinit = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_block=(node)
- do
- _n_block = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwinit)
- if _n_methid != null then
- v.enter_visit(_n_methid.as(not null))
- end
- v.enter_visit(_n_signature)
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- if _n_block != null then
- v.enter_visit(_n_block.as(not null))
- end
- end
-end
-redef class AExternInitPropdef
- private init empty_init do end
-
- init init_aexterninitpropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwnew: nullable TKwnew,
- n_methid: nullable AMethid,
- n_signature: nullable ASignature,
- n_extern: nullable TString,
- n_extern_calls: nullable AExternCalls,
- n_extern_code_block: nullable AExternCodeBlock
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwnew = n_kwnew.as(not null)
- n_kwnew.parent = self
- _n_methid = n_methid
- if n_methid != null then
- n_methid.parent = self
- end
- _n_signature = n_signature.as(not null)
- n_signature.parent = self
- _n_extern = n_extern
- if n_extern != null then
- n_extern.parent = self
- end
- _n_extern_calls = n_extern_calls
- if n_extern_calls != null then
- n_extern_calls.parent = self
- end
- _n_extern_code_block = n_extern_code_block
- if n_extern_code_block != null then
- n_extern_code_block.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- 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_methid == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AMethid
- _n_methid = new_child
- else
- _n_methid = null
- 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_extern == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TString
- _n_extern = new_child
- else
- _n_extern = null
- end
- return
- end
- if _n_extern_calls == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExternCalls
- _n_extern_calls = new_child
- else
- _n_extern_calls = null
- end
- return
- end
- if _n_extern_code_block == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExternCodeBlock
- _n_extern_code_block = new_child
- else
- _n_extern_code_block = null
- end
- return
- end
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwnew=(node)
- do
- _n_kwnew = node
- node.parent = self
- end
- redef fun n_methid=(node)
- do
- _n_methid = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
- redef fun n_extern=(node)
- do
- _n_extern = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_extern_calls=(node)
- do
- _n_extern_calls = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_extern_code_block=(node)
- do
- _n_extern_code_block = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwnew)
- if _n_methid != null then
- v.enter_visit(_n_methid.as(not null))
- end
- v.enter_visit(_n_signature)
- if _n_extern != null then
- v.enter_visit(_n_extern.as(not null))
- end
- if _n_extern_calls != null then
- v.enter_visit(_n_extern_calls.as(not null))
- end
- if _n_extern_code_block != null then
- v.enter_visit(_n_extern_code_block.as(not null))
- end
- end
-end
-redef class AMainMethPropdef
- private init empty_init do end
-
- init init_amainmethpropdef (
- n_kwredef: nullable TKwredef,
- n_block: nullable AExpr
- )
- do
- empty_init
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_block = n_block
- if n_block != null then
- n_block.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- 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
- end
-
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_block=(node)
- do
- _n_block = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- if _n_block != null then
- v.enter_visit(_n_block.as(not null))
- end
- end
-end
-redef class ATypePropdef
- private init empty_init do end
-
- init init_atypepropdef (
- n_doc: nullable ADoc,
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwtype: nullable TKwtype,
- n_id: nullable TClassid,
- n_type: nullable AType,
- n_annotations: nullable AAnnotations
- )
- do
- empty_init
- _n_doc = n_doc
- if n_doc != null then
- n_doc.parent = self
- end
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility.as(not null)
- n_visibility.parent = self
- _n_kwtype = n_kwtype.as(not null)
- n_kwtype.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_type = n_type.as(not null)
- n_type.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_doc == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa ADoc
- _n_doc = new_child
- else
- _n_doc = null
- end
- return
- end
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- abort
- end
- return
- end
- if _n_kwtype == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwtype
- _n_kwtype = 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 TClassid
- _n_id = 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_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- end
- return
- end
- end
-
- redef fun n_doc=(node)
- do
- _n_doc = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- node.parent = self
- end
- redef fun n_kwtype=(node)
- do
- _n_kwtype = node
- node.parent = self
- end
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
- redef fun n_type=(node)
- do
- _n_type = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_doc != null then
- v.enter_visit(_n_doc.as(not null))
- end
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_visibility)
- v.enter_visit(_n_kwtype)
- v.enter_visit(_n_id)
- v.enter_visit(_n_type)
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- end
-end
-redef class AReadAble
- private init empty_init do end
-
- init init_areadable (
- n_kwredef: nullable TKwredef,
- n_kwreadable: nullable TKwreadable
- )
- do
- empty_init
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_kwreadable = n_kwreadable.as(not null)
- n_kwreadable.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_kwreadable == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwreadable
- _n_kwreadable = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwreadable=(node)
- do
- _n_kwreadable = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- v.enter_visit(_n_kwreadable)
- end
-end
-redef class AWriteAble
- private init empty_init do end
-
- init init_awriteable (
- n_kwredef: nullable TKwredef,
- n_visibility: nullable AVisibility,
- n_kwwritable: nullable TKwwritable
- )
- do
- empty_init
- _n_kwredef = n_kwredef
- if n_kwredef != null then
- n_kwredef.parent = self
- end
- _n_visibility = n_visibility
- if n_visibility != null then
- n_visibility.parent = self
- end
- _n_kwwritable = n_kwwritable.as(not null)
- n_kwwritable.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwredef == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwredef
- _n_kwredef = new_child
- else
- _n_kwredef = null
- end
- return
- end
- if _n_visibility == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AVisibility
- _n_visibility = new_child
- else
- _n_visibility = null
- end
- return
- end
- if _n_kwwritable == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwwritable
- _n_kwwritable = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_kwredef=(node)
- do
- _n_kwredef = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_visibility=(node)
- do
- _n_visibility = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_kwwritable=(node)
- do
- _n_kwwritable = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwredef != null then
- v.enter_visit(_n_kwredef.as(not null))
- end
- if _n_visibility != null then
- v.enter_visit(_n_visibility.as(not null))
- end
- v.enter_visit(_n_kwwritable)
- end
-end
-redef class AIdMethid
- private init empty_init do end
-
- init init_aidmethid (
- n_id: nullable TId
- )
- do
- empty_init
- _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_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
- end
-
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_id)
- end
-end
-redef class APlusMethid
- private init empty_init do end
-
- init init_aplusmethid (
- n_plus: nullable TPlus
- )
- do
- empty_init
- _n_plus = n_plus.as(not null)
- n_plus.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_plus == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TPlus
- _n_plus = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_plus=(node)
- do
- _n_plus = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_plus)
- end
-end
-redef class AMinusMethid
- private init empty_init do end
-
- init init_aminusmethid (
- n_minus: nullable TMinus
- )
- do
- empty_init
- _n_minus = n_minus.as(not null)
- n_minus.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
- end
-
- redef fun n_minus=(node)
- do
- _n_minus = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_minus)
- end
-end
-redef class AStarMethid
- private init empty_init do end
-
- init init_astarmethid (
- n_star: nullable TStar
- )
- do
- empty_init
- _n_star = n_star.as(not null)
- n_star.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_star == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TStar
- _n_star = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_star=(node)
- do
- _n_star = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_star)
- end
-end
-redef class ASlashMethid
- private init empty_init do end
-
- init init_aslashmethid (
- n_slash: nullable TSlash
- )
- do
- empty_init
- _n_slash = n_slash.as(not null)
- n_slash.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_slash == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TSlash
- _n_slash = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_slash=(node)
- do
- _n_slash = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_slash)
- end
-end
-redef class APercentMethid
- private init empty_init do end
-
- init init_apercentmethid (
- n_percent: nullable TPercent
- )
- do
- empty_init
- _n_percent = n_percent.as(not null)
- n_percent.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_percent == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TPercent
- _n_percent = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_percent=(node)
- do
- _n_percent = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_percent)
- end
-end
-redef class AEqMethid
- private init empty_init do end
-
- init init_aeqmethid (
- n_eq: nullable TEq
- )
- do
- empty_init
- _n_eq = n_eq.as(not null)
- n_eq.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_eq == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TEq
- _n_eq = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_eq=(node)
- do
- _n_eq = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_eq)
- end
-end
-redef class ANeMethid
- private init empty_init do end
-
- init init_anemethid (
- n_ne: nullable TNe
- )
- do
- empty_init
- _n_ne = n_ne.as(not null)
- n_ne.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_ne == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TNe
- _n_ne = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_ne=(node)
- do
- _n_ne = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_ne)
- end
-end
-redef class ALeMethid
- private init empty_init do end
-
- init init_alemethid (
- n_le: nullable TLe
- )
- do
- empty_init
- _n_le = n_le.as(not null)
- n_le.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_le == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TLe
- _n_le = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_le=(node)
- do
- _n_le = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_le)
- end
-end
-redef class AGeMethid
- private init empty_init do end
-
- init init_agemethid (
- n_ge: nullable TGe
- )
- do
- empty_init
- _n_ge = n_ge.as(not null)
- n_ge.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_ge == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TGe
- _n_ge = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_ge=(node)
- do
- _n_ge = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_ge)
- end
-end
-redef class ALtMethid
- private init empty_init do end
-
- init init_altmethid (
- n_lt: nullable TLt
- )
- do
- empty_init
- _n_lt = n_lt.as(not null)
- n_lt.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_lt == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TLt
- _n_lt = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_lt=(node)
- do
- _n_lt = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_lt)
- end
-end
-redef class AGtMethid
- private init empty_init do end
-
- init init_agtmethid (
- n_gt: nullable TGt
- )
- do
- empty_init
- _n_gt = n_gt.as(not null)
- n_gt.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_gt == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TGt
- _n_gt = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_gt=(node)
- do
- _n_gt = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_gt)
- end
-end
-redef class ALlMethid
- private init empty_init do end
-
- init init_allmethid (
- n_ll: nullable TLl
- )
- do
- empty_init
- _n_ll = n_ll.as(not null)
- n_ll.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_ll == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TLl
- _n_ll = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_ll=(node)
- do
- _n_ll = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_ll)
- end
-end
-redef class AGgMethid
- private init empty_init do end
-
- init init_aggmethid (
- n_gg: nullable TGg
- )
- do
- empty_init
- _n_gg = n_gg.as(not null)
- n_gg.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_gg == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TGg
- _n_gg = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_gg=(node)
- do
- _n_gg = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_gg)
- end
-end
-redef class ABraMethid
- private init empty_init do end
-
- init init_abramethid (
- n_obra: nullable TObra,
- n_cbra: nullable TCbra
- )
- do
- empty_init
- _n_obra = n_obra.as(not null)
- n_obra.parent = self
- _n_cbra = n_cbra.as(not null)
- n_cbra.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_obra == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TObra
- _n_obra = new_child
- else
- abort
- end
- return
- end
- if _n_cbra == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TCbra
- _n_cbra = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_obra=(node)
- do
- _n_obra = node
- node.parent = self
- end
- redef fun n_cbra=(node)
- do
- _n_cbra = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_obra)
- v.enter_visit(_n_cbra)
- end
-end
-redef class AStarshipMethid
- private init empty_init do end
-
- init init_astarshipmethid (
- n_starship: nullable TStarship
- )
- do
- empty_init
- _n_starship = n_starship.as(not null)
- n_starship.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_starship == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TStarship
- _n_starship = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_starship=(node)
- do
- _n_starship = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_starship)
- end
-end
-redef class AAssignMethid
- private init empty_init do end
-
- init init_aassignmethid (
- n_id: nullable TId,
- n_assign: nullable TAssign
- )
- do
- empty_init
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_assign = n_assign.as(not null)
- n_assign.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- 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_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
- end
-
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
- redef fun n_assign=(node)
- do
- _n_assign = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_id)
- v.enter_visit(_n_assign)
- end
-end
-redef class ABraassignMethid
- private init empty_init do end
-
- init init_abraassignmethid (
- n_obra: nullable TObra,
- n_cbra: nullable TCbra,
- n_assign: nullable TAssign
- )
- do
- empty_init
- _n_obra = n_obra.as(not null)
- n_obra.parent = self
- _n_cbra = n_cbra.as(not null)
- n_cbra.parent = self
- _n_assign = n_assign.as(not null)
- n_assign.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_obra == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TObra
- _n_obra = new_child
- else
- abort
- end
- return
- end
- if _n_cbra == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TCbra
- _n_cbra = 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
- end
-
- redef fun n_obra=(node)
- do
- _n_obra = node
- node.parent = self
- end
- redef fun n_cbra=(node)
- do
- _n_cbra = node
- node.parent = self
- end
- redef fun n_assign=(node)
- do
- _n_assign = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_obra)
- v.enter_visit(_n_cbra)
- v.enter_visit(_n_assign)
- end
-end
-redef class ASignature
- private init empty_init do end
-
- init init_asignature (
- n_opar: nullable TOpar,
- n_params: Collection[Object], # Should be Collection[AParam]
- n_cpar: nullable TCpar,
- n_type: nullable AType,
- n_closure_decls: Collection[Object] # Should be Collection[AClosureDecl]
- )
- do
- empty_init
- _n_opar = n_opar
- if n_opar != null then
- n_opar.parent = self
- end
- for n in n_params do
- assert n isa AParam
- _n_params.add(n)
- n.parent = self
- end
- _n_cpar = n_cpar
- if n_cpar != null then
- n_cpar.parent = self
- end
- _n_type = n_type
- if n_type != null then
- n_type.parent = self
- end
- for n in n_closure_decls do
- assert n isa AClosureDecl
- _n_closure_decls.add(n)
- n.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_opar == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TOpar
- _n_opar = new_child
- else
- _n_opar = null
- end
- return
- end
- for i in [0.._n_params.length[ do
- if _n_params[i] == old_child then
- if new_child != null then
- assert new_child isa AParam
- _n_params[i] = new_child
- new_child.parent = self
- else
- _n_params.remove_at(i)
- end
- return
- end
- end
- if _n_cpar == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TCpar
- _n_cpar = new_child
- else
- _n_cpar = null
- 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
- _n_type = null
- end
- return
- end
- for i in [0.._n_closure_decls.length[ do
- if _n_closure_decls[i] == old_child then
- if new_child != null then
- assert new_child isa AClosureDecl
- _n_closure_decls[i] = new_child
- new_child.parent = self
- else
- _n_closure_decls.remove_at(i)
- end
- return
- end
- end
- end
-
- redef fun n_opar=(node)
- do
- _n_opar = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_cpar=(node)
- do
- _n_cpar = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_type=(node)
- do
- _n_type = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_opar != null then
- v.enter_visit(_n_opar.as(not null))
- end
- for n in _n_params do
- v.enter_visit(n)
- end
- if _n_cpar != null then
- v.enter_visit(_n_cpar.as(not null))
- end
- if _n_type != null then
- v.enter_visit(_n_type.as(not null))
- end
- for n in _n_closure_decls do
- v.enter_visit(n)
- end
- end
-end
-redef class AParam
- private init empty_init do end
-
- init init_aparam (
- n_id: nullable TId,
- n_type: nullable AType,
- n_dotdotdot: nullable TDotdotdot,
- n_annotations: nullable AAnnotations
- )
- do
- empty_init
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_type = n_type
- if n_type != null then
- n_type.parent = self
- end
- _n_dotdotdot = n_dotdotdot
- if n_dotdotdot != null then
- n_dotdotdot.parent = self
- end
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- 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_type == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AType
- _n_type = new_child
- else
- _n_type = null
- end
- return
- end
- if _n_dotdotdot == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TDotdotdot
- _n_dotdotdot = new_child
- else
- _n_dotdotdot = null
- end
- return
- end
- if _n_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- end
- return
- end
- end
-
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
- redef fun n_type=(node)
- do
- _n_type = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_dotdotdot=(node)
- do
- _n_dotdotdot = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_id)
- if _n_type != null then
- v.enter_visit(_n_type.as(not null))
- end
- if _n_dotdotdot != null then
- v.enter_visit(_n_dotdotdot.as(not null))
- end
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- end
-end
-redef class AClosureDecl
- private init empty_init do end
-
- init init_aclosuredecl (
- n_kwbreak: nullable TKwbreak,
- n_bang: nullable TBang,
- n_id: nullable TId,
- n_signature: nullable ASignature,
- n_expr: nullable AExpr
- )
- do
- 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 n_kwbreak=(node)
- do
- _n_kwbreak = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_bang=(node)
- do
- _n_bang = node
- node.parent = self
- end
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
- redef fun n_signature=(node)
- do
- _n_signature = node
- node.parent = self
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwbreak != null then
- v.enter_visit(_n_kwbreak.as(not null))
- end
- v.enter_visit(_n_bang)
- v.enter_visit(_n_id)
- v.enter_visit(_n_signature)
- if _n_expr != null then
- v.enter_visit(_n_expr.as(not null))
- end
- end
-end
-redef class AType
- private init empty_init do end
-
- init init_atype (
- n_kwnullable: nullable TKwnullable,
- n_id: nullable TClassid,
- n_types: Collection[Object], # Should be Collection[AType]
- n_annotations: nullable AAnnotations
- )
- do
- empty_init
- _n_kwnullable = n_kwnullable
- if n_kwnullable != null then
- n_kwnullable.parent = self
- end
- _n_id = n_id.as(not null)
- n_id.parent = self
- for n in n_types do
- assert n isa AType
- _n_types.add(n)
- n.parent = self
- end
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwnullable == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwnullable
- _n_kwnullable = new_child
- else
- _n_kwnullable = null
- end
- return
- end
- if _n_id == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TClassid
- _n_id = new_child
- else
- abort
- end
- return
- end
- for i in [0.._n_types.length[ do
- if _n_types[i] == old_child then
- if new_child != null then
- assert new_child isa AType
- _n_types[i] = new_child
- new_child.parent = self
- else
- _n_types.remove_at(i)
- end
- return
- end
- end
- if _n_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- end
- return
- end
- end
-
- redef fun n_kwnullable=(node)
- do
- _n_kwnullable = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwnullable != null then
- v.enter_visit(_n_kwnullable.as(not null))
- end
- v.enter_visit(_n_id)
- for n in _n_types do
- v.enter_visit(n)
- end
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- end
-end
-redef class ALabel
- private init empty_init do end
-
- init init_alabel (
- n_kwlabel: nullable TKwlabel,
- n_id: nullable TId
- )
- do
- empty_init
- _n_kwlabel = n_kwlabel.as(not null)
- n_kwlabel.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_kwlabel == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwlabel
- _n_kwlabel = 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
- end
-
- redef fun n_kwlabel=(node)
- do
- _n_kwlabel = node
- node.parent = self
- end
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwlabel)
- v.enter_visit(_n_id)
- end
-end
-redef class ABlockExpr
- private init empty_init do end
-
- init init_ablockexpr (
- n_expr: Collection[Object], # Should be Collection[AExpr]
- n_kwend: nullable TKwend
- )
- do
- empty_init
- for n in n_expr do
- assert n isa AExpr
- _n_expr.add(n)
- n.parent = self
- end
- _n_kwend = n_kwend
- if n_kwend != null then
- n_kwend.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- for i in [0.._n_expr.length[ do
- if _n_expr[i] == old_child then
- if new_child != null then
- assert new_child isa AExpr
- _n_expr[i] = new_child
- new_child.parent = self
- else
- _n_expr.remove_at(i)
- end
- return
- end
- end
- if _n_kwend == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwend
- _n_kwend = new_child
- else
- _n_kwend = null
- end
- return
- end
- end
-
- redef fun n_kwend=(node)
- do
- _n_kwend = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- for n in _n_expr do
- v.enter_visit(n)
- end
- if _n_kwend != null then
- v.enter_visit(_n_kwend.as(not null))
- end
- end
-end
-redef class AVardeclExpr
- private init empty_init do end
-
- init init_avardeclexpr (
- n_kwvar: nullable TKwvar,
- n_id: nullable TId,
- n_type: nullable AType,
- n_assign: nullable TAssign,
- n_expr: nullable AExpr,
- n_annotations: nullable AAnnotations
- )
- do
- empty_init
- _n_kwvar = n_kwvar.as(not null)
- n_kwvar.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
- _n_type = n_type
- if n_type != null then
- n_type.parent = self
- end
- _n_assign = n_assign
- if n_assign != null then
- n_assign.parent = self
- end
- _n_expr = n_expr
- if n_expr != null then
- n_expr.parent = self
- end
- _n_annotations = n_annotations
- if n_annotations != null then
- n_annotations.parent = self
- end
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwvar == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwvar
- _n_kwvar = 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_type == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AType
- _n_type = new_child
- else
- _n_type = null
- 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
- _n_assign = 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
- _n_expr = null
- end
- return
- end
- if _n_annotations == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AAnnotations
- _n_annotations = new_child
- else
- _n_annotations = null
- end
- return
- end
- end
-
- redef fun n_kwvar=(node)
- do
- _n_kwvar = node
- node.parent = self
- end
- redef fun n_id=(node)
- do
- _n_id = node
- node.parent = self
- end
- redef fun n_type=(node)
- do
- _n_type = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_assign=(node)
- do
- _n_assign = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwvar)
- v.enter_visit(_n_id)
- if _n_type != null then
- v.enter_visit(_n_type.as(not null))
- end
- if _n_assign != null then
- v.enter_visit(_n_assign.as(not null))
- end
- if _n_expr != null then
- v.enter_visit(_n_expr.as(not null))
- end
- if _n_annotations != null then
- v.enter_visit(_n_annotations.as(not null))
- end
- end
-end
-redef class AReturnExpr
- private init empty_init do end
-
- init init_areturnexpr (
- n_kwreturn: nullable TKwreturn,
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_kwreturn = n_kwreturn
- if n_kwreturn != null then
- n_kwreturn.parent = self
- end
- _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_kwreturn == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwreturn
- _n_kwreturn = new_child
- else
- _n_kwreturn = 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
- _n_expr = null
- end
- return
- end
- end
-
- redef fun n_kwreturn=(node)
- do
- _n_kwreturn = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwreturn != null then
- v.enter_visit(_n_kwreturn.as(not null))
- end
- if _n_expr != null then
- v.enter_visit(_n_expr.as(not null))
- end
- end
-end
-redef class ABreakExpr
- private init empty_init do end
-
- init init_abreakexpr (
- n_kwbreak: nullable TKwbreak,
- n_label: nullable ALabel,
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_kwbreak = n_kwbreak.as(not null)
- n_kwbreak.parent = self
- _n_label = n_label
- if n_label != null then
- n_label.parent = self
- end
- _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
- abort
- 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
- 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 n_kwbreak=(node)
- do
- _n_kwbreak = node
- node.parent = self
- end
- redef fun n_label=(node)
- do
- _n_label = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwbreak)
- if _n_label != null then
- v.enter_visit(_n_label.as(not null))
- end
- if _n_expr != null then
- v.enter_visit(_n_expr.as(not null))
- end
- end
-end
-redef class AAbortExpr
- private init empty_init do end
-
- init init_aabortexpr (
- n_kwabort: nullable TKwabort
- )
- do
- empty_init
- _n_kwabort = n_kwabort.as(not null)
- n_kwabort.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwabort == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwabort
- _n_kwabort = new_child
- else
- abort
- end
- return
- end
- end
-
- redef fun n_kwabort=(node)
- do
- _n_kwabort = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwabort)
- end
-end
-redef class AContinueExpr
- private init empty_init do end
-
- init init_acontinueexpr (
- n_kwcontinue: nullable TKwcontinue,
- n_label: nullable ALabel,
- n_expr: nullable AExpr
- )
- do
- empty_init
- _n_kwcontinue = n_kwcontinue
- if n_kwcontinue != null then
- n_kwcontinue.parent = self
- end
- _n_label = n_label
- if n_label != null then
- n_label.parent = self
- end
- _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_kwcontinue == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwcontinue
- _n_kwcontinue = new_child
- else
- _n_kwcontinue = 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
- 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 n_kwcontinue=(node)
- do
- _n_kwcontinue = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_label=(node)
- do
- _n_label = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- if _n_kwcontinue != null then
- v.enter_visit(_n_kwcontinue.as(not null))
- end
- if _n_label != null then
- v.enter_visit(_n_label.as(not null))
- end
- if _n_expr != null then
- v.enter_visit(_n_expr.as(not null))
- end
- end
-end
-redef class ADoExpr
- private init empty_init do end
-
- init init_adoexpr (
- n_kwdo: nullable TKwdo,
- n_block: nullable AExpr,
- n_label: nullable ALabel
- )
- do
- empty_init
- _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_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 n_kwdo=(node)
- do
- _n_kwdo = node
- node.parent = self
- end
- redef fun n_block=(node)
- do
- _n_block = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_label=(node)
- do
- _n_label = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- 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 AIfExpr
- private init empty_init do end
-
- init init_aifexpr (
- n_kwif: nullable TKwif,
- n_expr: nullable AExpr,
- n_then: nullable AExpr,
- n_else: nullable AExpr
- )
- do
- empty_init
- _n_kwif = n_kwif.as(not null)
- n_kwif.parent = self
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_then = n_then
- if n_then != null then
- n_then.parent = self
- end
- _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_kwif == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwif
- _n_kwif = 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
- if _n_then == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_then = new_child
- else
- _n_then = null
- 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 n_kwif=(node)
- do
- _n_kwif = node
- node.parent = self
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- node.parent = self
- end
- redef fun n_then=(node)
- do
- _n_then = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_else=(node)
- do
- _n_else = node
- if node != null then
- node.parent = self
- end
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwif)
- v.enter_visit(_n_expr)
- if _n_then != null then
- v.enter_visit(_n_then.as(not null))
- end
- if _n_else != null then
- v.enter_visit(_n_else.as(not null))
- end
- end
-end
-redef class AIfexprExpr
- private init empty_init do end
-
- init init_aifexprexpr (
- n_kwif: nullable TKwif,
- n_expr: nullable AExpr,
- n_kwthen: nullable TKwthen,
- n_then: nullable AExpr,
- n_kwelse: nullable TKwelse,
- n_else: nullable AExpr
- )
- do
- empty_init
- _n_kwif = n_kwif.as(not null)
- n_kwif.parent = self
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
- _n_kwthen = n_kwthen.as(not null)
- n_kwthen.parent = self
- _n_then = n_then.as(not null)
- n_then.parent = self
- _n_kwelse = n_kwelse.as(not null)
- n_kwelse.parent = self
- _n_else = n_else.as(not null)
- n_else.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_kwif == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwif
- _n_kwif = 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
- if _n_kwthen == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwthen
- _n_kwthen = new_child
- else
- abort
- end
- return
- end
- if _n_then == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa AExpr
- _n_then = new_child
- else
- abort
- end
- return
- end
- if _n_kwelse == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwelse
- _n_kwelse = 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
- abort
- end
- return
- end
- end
-
- redef fun n_kwif=(node)
- do
- _n_kwif = node
- node.parent = self
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- node.parent = self
- end
- redef fun n_kwthen=(node)
- do
- _n_kwthen = node
- node.parent = self
- end
- redef fun n_then=(node)
- do
- _n_then = node
- node.parent = self
- end
- redef fun n_kwelse=(node)
- do
- _n_kwelse = node
- node.parent = self
- end
- redef fun n_else=(node)
- do
- _n_else = node
- node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_kwif)
- v.enter_visit(_n_expr)
- v.enter_visit(_n_kwthen)
- v.enter_visit(_n_then)
- v.enter_visit(_n_kwelse)
- v.enter_visit(_n_else)
- end
-end
-redef class AWhileExpr
- private init empty_init do end
-
- init init_awhileexpr (
- n_kwwhile: nullable TKwwhile,
- n_expr: nullable AExpr,
- n_kwdo: nullable TKwdo,
- n_block: nullable AExpr,
- n_label: nullable ALabel
- )
- do
- empty_init
- _n_kwwhile = n_kwwhile.as(not null)
- n_kwwhile.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_kwwhile == old_child then
- if new_child != null then
- new_child.parent = self
- assert new_child isa TKwwhile
- _n_kwwhile = 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
- 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 n_kwwhile=(node)
- do
- _n_kwwhile = node
- node.parent = self
- end
- redef fun n_expr=(node)
- do
- _n_expr = node
- node.parent = self
- end
- redef fun n_kwdo=(node)
- do
- _n_kwdo = node
- node.parent = self
- end
- redef fun n_block=(node)
- do
- _n_block = node
- if node != null then
- node.parent = self
- end
- end
- redef fun n_label=(node)
- do
- _n_label = node
- if node != null then
- node.parent = self
- 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