# Production AST nodes full definition.
# This file was generated by SableCC (http://www.sablecc.org/).
-module parser_prod is no_warning("missing-doc")
+module parser_prod is generated, no_warning("missing-doc")
import lexer
intrude import parser_nodes
n_kwredef: nullable TKwredef,
n_visibility: nullable AVisibility,
n_classkind: nullable AClasskind,
- n_id: nullable TClassid,
+ n_qid: nullable AQclassid,
n_obra: nullable TObra,
n_formaldefs: Collection[Object], # Should be Collection[AFormaldef]
n_cbra: nullable TCbra,
n_visibility.parent = self
_n_classkind = n_classkind.as(not null)
n_classkind.parent = self
- _n_id = n_id
- if n_id != null then n_id.parent = self
+ _n_qid = n_qid
+ if n_qid != null then n_qid.parent = self
_n_obra = n_obra
if n_obra != null then n_obra.parent = self
self.n_formaldefs.unsafe_add_all(n_formaldefs)
n_classkind = new_child.as(AClasskind)
return
end
- if _n_id == old_child then
- n_id = new_child.as(nullable TClassid)
+ if _n_qid == old_child then
+ n_qid = new_child.as(nullable AQclassid)
return
end
if _n_obra == old_child then
_n_classkind = node
node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
if node != null then node.parent = self
end
redef fun n_obra=(node)
v.enter_visit(_n_kwredef)
v.enter_visit(_n_visibility)
v.enter_visit(_n_classkind)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_obra)
n_formaldefs.visit_all(v)
v.enter_visit(_n_cbra)
v.enter_visit(_n_kwclass)
end
end
+redef class ASubsetClasskind
+ init init_asubsetclasskind (
+ n_kwsubset: nullable TKwsubset
+ )
+ do
+ _n_kwsubset = n_kwsubset.as(not null)
+ n_kwsubset.parent = self
+ end
+
+ redef fun replace_child(old_child: ANode, new_child: nullable ANode)
+ do
+ if _n_kwsubset == old_child then
+ n_kwsubset = new_child.as(TKwsubset)
+ return
+ end
+ end
+
+ redef fun n_kwsubset=(node)
+ do
+ _n_kwsubset = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_kwsubset)
+ end
+end
redef class AFormaldef
init init_aformaldef (
n_id: nullable TClassid,
n_kwredef: nullable TKwredef,
n_visibility: nullable AVisibility,
n_kwtype: nullable TKwtype,
- n_id: nullable TClassid,
+ n_qid: nullable AQclassid,
n_type: nullable AType,
n_annotations: nullable AAnnotations
)
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_qid = n_qid.as(not null)
+ n_qid.parent = self
_n_type = n_type.as(not null)
n_type.parent = self
_n_annotations = n_annotations
n_kwtype = new_child.as(TKwtype)
return
end
- if _n_id == old_child then
- n_id = new_child.as(TClassid)
+ if _n_qid == old_child then
+ n_qid = new_child.as(AQclassid)
return
end
if _n_type == old_child then
_n_kwtype = node
node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
node.parent = self
end
redef fun n_type=(node)
v.enter_visit(_n_kwredef)
v.enter_visit(_n_visibility)
v.enter_visit(_n_kwtype)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_type)
v.enter_visit(_n_annotations)
end
n_visibility: nullable AVisibility,
n_kwmeth: nullable TKwmeth,
n_kwinit: nullable TKwinit,
+ n_kwisa: nullable TKwisa,
n_kwnew: nullable TKwnew,
n_methid: nullable AMethid,
n_signature: nullable ASignature,
if n_kwmeth != null then n_kwmeth.parent = self
_n_kwinit = n_kwinit
if n_kwinit != null then n_kwinit.parent = self
+ _n_kwisa = n_kwisa
+ if n_kwisa != null then n_kwisa.parent = self
_n_kwnew = n_kwnew
if n_kwnew != null then n_kwnew.parent = self
_n_methid = n_methid
n_kwinit = new_child.as(nullable TKwinit)
return
end
+ if _n_kwisa == old_child then
+ n_kwisa = new_child.as(nullable TKwisa)
+ return
+ end
if _n_kwnew == old_child then
n_kwnew = new_child.as(nullable TKwnew)
return
_n_kwinit = node
if node != null then node.parent = self
end
+ redef fun n_kwisa=(node)
+ do
+ _n_kwisa = node
+ if node != null then node.parent = self
+ end
redef fun n_kwnew=(node)
do
_n_kwnew = node
v.enter_visit(_n_visibility)
v.enter_visit(_n_kwmeth)
v.enter_visit(_n_kwinit)
+ v.enter_visit(_n_kwisa)
v.enter_visit(_n_kwnew)
v.enter_visit(_n_methid)
v.enter_visit(_n_signature)
v.enter_visit(_n_assign)
end
end
+redef class AQid
+ init init_aqid (
+ n_qualified: nullable AQualified,
+ n_id: nullable TId
+ )
+ do
+ _n_qualified = n_qualified
+ if n_qualified != null then n_qualified.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_qualified == old_child then
+ n_qualified = new_child.as(nullable AQualified)
+ return
+ end
+ if _n_id == old_child then
+ n_id = new_child.as(TId)
+ return
+ end
+ end
+
+ redef fun n_qualified=(node)
+ do
+ _n_qualified = node
+ if node != null then 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_qualified)
+ v.enter_visit(_n_id)
+ end
+end
+redef class AQclassid
+ init init_aqclassid (
+ n_qualified: nullable AQualified,
+ n_id: nullable TClassid
+ )
+ do
+ _n_qualified = n_qualified
+ if n_qualified != null then n_qualified.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_qualified == old_child then
+ n_qualified = new_child.as(nullable AQualified)
+ return
+ end
+ if _n_id == old_child then
+ n_id = new_child.as(TClassid)
+ return
+ end
+ end
+
+ redef fun n_qualified=(node)
+ do
+ _n_qualified = node
+ if node != null then 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_qualified)
+ v.enter_visit(_n_id)
+ end
+end
redef class ASignature
init init_asignature (
n_opar: nullable TOpar,
redef class AType
init init_atype (
n_kwnullable: nullable TKwnullable,
- n_id: nullable TClassid,
+ n_qid: nullable AQclassid,
n_obra: nullable TObra,
n_types: Collection[Object], # Should be Collection[AType]
n_cbra: nullable TCbra,
do
_n_kwnullable = n_kwnullable
if n_kwnullable != null then n_kwnullable.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
+ _n_qid = n_qid.as(not null)
+ n_qid.parent = self
_n_obra = n_obra
if n_obra != null then n_obra.parent = self
self.n_types.unsafe_add_all(n_types)
n_kwnullable = new_child.as(nullable TKwnullable)
return
end
- if _n_id == old_child then
- n_id = new_child.as(TClassid)
+ if _n_qid == old_child then
+ n_qid = new_child.as(AQclassid)
return
end
if _n_obra == old_child then
_n_kwnullable = node
if node != null then node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
node.parent = self
end
redef fun n_obra=(node)
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_kwnullable)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_obra)
n_types.visit_all(v)
v.enter_visit(_n_cbra)
v.enter_visit(_n_expr)
end
end
+redef class AYieldExpr
+ init init_ayieldexpr (
+ n_kwyield: nullable TKwyield,
+ n_expr: nullable AExpr
+ )
+ do
+ _n_kwyield = n_kwyield.as(not null)
+ n_kwyield.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_kwyield == old_child then
+ n_kwyield = new_child.as(TKwyield)
+ return
+ end
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_kwyield=(node)
+ do
+ _n_kwyield = node
+ node.parent = self
+ end
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ v.enter_visit(_n_kwyield)
+ v.enter_visit(_n_expr)
+ end
+end
redef class ABreakExpr
init init_abreakexpr (
n_kwbreak: nullable TKwbreak,
init init_adoexpr (
n_kwdo: nullable TKwdo,
n_block: nullable AExpr,
+ n_kwcatch: nullable TKwcatch,
+ n_catch: nullable AExpr,
n_label: nullable ALabel
)
do
n_kwdo.parent = self
_n_block = n_block
if n_block != null then n_block.parent = self
+ _n_kwcatch = n_kwcatch
+ if n_kwcatch != null then n_kwcatch.parent = self
+ _n_catch = n_catch
+ if n_catch != null then n_catch.parent = self
_n_label = n_label
if n_label != null then n_label.parent = self
end
n_block = new_child.as(nullable AExpr)
return
end
+ if _n_kwcatch == old_child then
+ n_kwcatch = new_child.as(nullable TKwcatch)
+ return
+ end
+ if _n_catch == old_child then
+ n_catch = new_child.as(nullable AExpr)
+ return
+ end
if _n_label == old_child then
n_label = new_child.as(nullable ALabel)
return
_n_block = node
if node != null then node.parent = self
end
+ redef fun n_kwcatch=(node)
+ do
+ _n_kwcatch = node
+ if node != null then node.parent = self
+ end
+ redef fun n_catch=(node)
+ do
+ _n_catch = node
+ if node != null then node.parent = self
+ end
redef fun n_label=(node)
do
_n_label = node
do
v.enter_visit(_n_kwdo)
v.enter_visit(_n_block)
+ v.enter_visit(_n_kwcatch)
+ v.enter_visit(_n_catch)
v.enter_visit(_n_label)
end
end
redef class AForExpr
init init_aforexpr (
n_kwfor: nullable TKwfor,
- n_ids: Collection[Object], # Should be Collection[TId]
- n_kwin: nullable TKwin,
- n_expr: nullable AExpr,
+ n_groups: Collection[Object], # Should be Collection[AForGroup]
n_kwdo: nullable TKwdo,
n_block: nullable AExpr,
n_label: nullable ALabel
do
_n_kwfor = n_kwfor.as(not null)
n_kwfor.parent = self
- self.n_ids.unsafe_add_all(n_ids)
- _n_kwin = n_kwin.as(not null)
- n_kwin.parent = self
- _n_expr = n_expr.as(not null)
- n_expr.parent = self
+ self.n_groups.unsafe_add_all(n_groups)
_n_kwdo = n_kwdo.as(not null)
n_kwdo.parent = self
_n_block = n_block
n_kwfor = new_child.as(TKwfor)
return
end
- if n_ids.replace_child(old_child, new_child) then return
- if _n_kwin == old_child then
- n_kwin = new_child.as(TKwin)
- return
- end
- if _n_expr == old_child then
- n_expr = new_child.as(AExpr)
- return
- end
+ if n_groups.replace_child(old_child, new_child) then return
if _n_kwdo == old_child then
n_kwdo = new_child.as(TKwdo)
return
_n_kwfor = node
node.parent = self
end
- redef fun n_kwin=(node)
- do
- _n_kwin = 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
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_kwfor)
- n_ids.visit_all(v)
- v.enter_visit(_n_kwin)
- v.enter_visit(_n_expr)
+ n_groups.visit_all(v)
v.enter_visit(_n_kwdo)
v.enter_visit(_n_block)
v.enter_visit(_n_label)
init init_anewexpr (
n_kwnew: nullable TKwnew,
n_type: nullable AType,
- n_id: nullable TId,
+ n_qid: nullable AQid,
n_args: nullable AExprs
)
do
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
+ _n_qid = n_qid
+ if n_qid != null then n_qid.parent = self
_n_args = n_args.as(not null)
n_args.parent = self
end
n_type = new_child.as(AType)
return
end
- if _n_id == old_child then
- n_id = new_child.as(nullable TId)
+ if _n_qid == old_child then
+ n_qid = new_child.as(nullable AQid)
return
end
if _n_args == old_child then
_n_type = node
node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
if node != null then node.parent = self
end
redef fun n_args=(node)
do
v.enter_visit(_n_kwnew)
v.enter_visit(_n_type)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_args)
end
end
redef class ACallExpr
init init_acallexpr (
n_expr: nullable AExpr,
- n_id: nullable TId,
+ n_qid: nullable AQid,
n_args: nullable AExprs
)
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
+ _n_qid = n_qid.as(not null)
+ n_qid.parent = self
_n_args = n_args.as(not null)
n_args.parent = self
end
n_expr = new_child.as(AExpr)
return
end
- if _n_id == old_child then
- n_id = new_child.as(TId)
+ if _n_qid == old_child then
+ n_qid = new_child.as(AQid)
return
end
if _n_args == old_child then
_n_expr = node
node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
node.parent = self
end
redef fun n_args=(node)
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_args)
end
end
redef class ACallAssignExpr
init init_acallassignexpr (
n_expr: nullable AExpr,
- n_id: nullable TId,
+ n_qid: nullable AQid,
n_args: nullable AExprs,
n_assign: nullable TAssign,
n_value: nullable AExpr
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
+ _n_qid = n_qid.as(not null)
+ n_qid.parent = self
_n_args = n_args.as(not null)
n_args.parent = self
_n_assign = n_assign.as(not null)
n_expr = new_child.as(AExpr)
return
end
- if _n_id == old_child then
- n_id = new_child.as(TId)
+ if _n_qid == old_child then
+ n_qid = new_child.as(AQid)
return
end
if _n_args == old_child then
_n_expr = node
node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
node.parent = self
end
redef fun n_args=(node)
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_args)
v.enter_visit(_n_assign)
v.enter_visit(_n_value)
redef class ACallReassignExpr
init init_acallreassignexpr (
n_expr: nullable AExpr,
- n_id: nullable TId,
+ n_qid: nullable AQid,
n_args: nullable AExprs,
n_assign_op: nullable AAssignOp,
n_value: nullable AExpr
do
_n_expr = n_expr.as(not null)
n_expr.parent = self
- _n_id = n_id.as(not null)
- n_id.parent = self
+ _n_qid = n_qid.as(not null)
+ n_qid.parent = self
_n_args = n_args.as(not null)
n_args.parent = self
_n_assign_op = n_assign_op.as(not null)
n_expr = new_child.as(AExpr)
return
end
- if _n_id == old_child then
- n_id = new_child.as(TId)
+ if _n_qid == old_child then
+ n_qid = new_child.as(AQid)
return
end
if _n_args == old_child then
_n_expr = node
node.parent = self
end
- redef fun n_id=(node)
+ redef fun n_qid=(node)
do
- _n_id = node
+ _n_qid = node
node.parent = self
end
redef fun n_args=(node)
redef fun visit_all(v: Visitor)
do
v.enter_visit(_n_expr)
- v.enter_visit(_n_id)
+ v.enter_visit(_n_qid)
v.enter_visit(_n_args)
v.enter_visit(_n_assign_op)
v.enter_visit(_n_value)
v.enter_visit(_n_annotations)
end
end
-redef class ADecIntExpr
- init init_adecintexpr (
- n_number: nullable TNumber,
+redef class AIntegerExpr
+ init init_aintegerexpr (
+ n_integer: nullable TInteger,
n_annotations: nullable AAnnotations
)
do
- _n_number = n_number.as(not null)
- n_number.parent = self
+ _n_integer = n_integer.as(not null)
+ n_integer.parent = self
_n_annotations = n_annotations
if n_annotations != null then n_annotations.parent = self
end
redef fun replace_child(old_child: ANode, new_child: nullable ANode)
do
- if _n_number == old_child then
- n_number = new_child.as(TNumber)
+ if _n_integer == old_child then
+ n_integer = new_child.as(TInteger)
return
end
if _n_annotations == old_child then
end
end
- redef fun n_number=(node)
+ redef fun n_integer=(node)
do
- _n_number = node
+ _n_integer = node
node.parent = self
end
redef fun n_annotations=(node)
redef fun visit_all(v: Visitor)
do
- v.enter_visit(_n_number)
- v.enter_visit(_n_annotations)
- end
-end
-redef class AHexIntExpr
- init init_ahexintexpr (
- n_hex_number: nullable THexNumber,
- n_annotations: nullable AAnnotations
- )
- do
- _n_hex_number = n_hex_number.as(not null)
- n_hex_number.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_hex_number == old_child then
- n_hex_number = new_child.as(THexNumber)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_hex_number=(node)
- do
- _n_hex_number = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_hex_number)
- v.enter_visit(_n_annotations)
- end
-end
-redef class ABinIntExpr
- init init_abinintexpr (
- n_bin_number: nullable TBinNumber,
- n_annotations: nullable AAnnotations
- )
- do
- _n_bin_number = n_bin_number.as(not null)
- n_bin_number.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_bin_number == old_child then
- n_bin_number = new_child.as(TBinNumber)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_bin_number=(node)
- do
- _n_bin_number = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_bin_number)
- v.enter_visit(_n_annotations)
- end
-end
-redef class AOctIntExpr
- init init_aoctintexpr (
- n_oct_number: nullable TOctNumber,
- n_annotations: nullable AAnnotations
- )
- do
- _n_oct_number = n_oct_number.as(not null)
- n_oct_number.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_oct_number == old_child then
- n_oct_number = new_child.as(TOctNumber)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_oct_number=(node)
- do
- _n_oct_number = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_oct_number)
- v.enter_visit(_n_annotations)
- end
-end
-redef class ADecByteExpr
- init init_adecbyteexpr (
- n_bytenum: nullable TBytenum,
- n_annotations: nullable AAnnotations
- )
- do
- _n_bytenum = n_bytenum.as(not null)
- n_bytenum.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_bytenum == old_child then
- n_bytenum = new_child.as(TBytenum)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_bytenum=(node)
- do
- _n_bytenum = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_bytenum)
- v.enter_visit(_n_annotations)
- end
-end
-redef class AHexByteExpr
- init init_ahexbyteexpr (
- n_hex_bytenum: nullable THexBytenum,
- n_annotations: nullable AAnnotations
- )
- do
- _n_hex_bytenum = n_hex_bytenum.as(not null)
- n_hex_bytenum.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_hex_bytenum == old_child then
- n_hex_bytenum = new_child.as(THexBytenum)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_hex_bytenum=(node)
- do
- _n_hex_bytenum = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_hex_bytenum)
- v.enter_visit(_n_annotations)
- end
-end
-redef class ABinByteExpr
- init init_abinbyteexpr (
- n_bin_bytenum: nullable TBinBytenum,
- n_annotations: nullable AAnnotations
- )
- do
- _n_bin_bytenum = n_bin_bytenum.as(not null)
- n_bin_bytenum.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_bin_bytenum == old_child then
- n_bin_bytenum = new_child.as(TBinBytenum)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_bin_bytenum=(node)
- do
- _n_bin_bytenum = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_bin_bytenum)
- v.enter_visit(_n_annotations)
- end
-end
-redef class AOctByteExpr
- init init_aoctbyteexpr (
- n_oct_bytenum: nullable TOctBytenum,
- n_annotations: nullable AAnnotations
- )
- do
- _n_oct_bytenum = n_oct_bytenum.as(not null)
- n_oct_bytenum.parent = self
- _n_annotations = n_annotations
- if n_annotations != null then n_annotations.parent = self
- end
-
- redef fun replace_child(old_child: ANode, new_child: nullable ANode)
- do
- if _n_oct_bytenum == old_child then
- n_oct_bytenum = new_child.as(TOctBytenum)
- return
- end
- if _n_annotations == old_child then
- n_annotations = new_child.as(nullable AAnnotations)
- return
- end
- end
-
- redef fun n_oct_bytenum=(node)
- do
- _n_oct_bytenum = node
- node.parent = self
- end
- redef fun n_annotations=(node)
- do
- _n_annotations = node
- if node != null then node.parent = self
- end
-
-
- redef fun visit_all(v: Visitor)
- do
- v.enter_visit(_n_oct_bytenum)
+ v.enter_visit(_n_integer)
v.enter_visit(_n_annotations)
end
end
v.enter_visit(_n_op)
end
end
+redef class AForGroup
+ init init_aforgroup (
+ n_ids: Collection[Object], # Should be Collection[TId]
+ n_kwin: nullable TKwin,
+ n_expr: nullable AExpr
+ )
+ do
+ self.n_ids.unsafe_add_all(n_ids)
+ _n_kwin = n_kwin.as(not null)
+ n_kwin.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_ids.replace_child(old_child, new_child) then return
+ if _n_kwin == old_child then
+ n_kwin = new_child.as(TKwin)
+ return
+ end
+ if _n_expr == old_child then
+ n_expr = new_child.as(AExpr)
+ return
+ end
+ end
+
+ redef fun n_kwin=(node)
+ do
+ _n_kwin = node
+ node.parent = self
+ end
+ redef fun n_expr=(node)
+ do
+ _n_expr = node
+ node.parent = self
+ end
+
+
+ redef fun visit_all(v: Visitor)
+ do
+ n_ids.visit_all(v)
+ v.enter_visit(_n_kwin)
+ v.enter_visit(_n_expr)
+ end
+end
redef class AModuleName
init init_amodulename (
n_quad: nullable TQuad,