parser: add setters for non-list attributes
authorJean Privat <jean@pryen.org>
Tue, 13 Aug 2013 02:48:32 +0000 (22:48 -0400)
committerJean Privat <jean@pryen.org>
Tue, 13 Aug 2013 18:01:22 +0000 (14:01 -0400)
Signed-off-by: Jean Privat <jean@pryen.org>

src/parser/parser_nodes.nit
src/parser/parser_prod.nit
src/parser/xss/prods.xss

index 3ac4c0a..fa5aff1 100644 (file)
@@ -159,7 +159,7 @@ abstract class Prod
        fun location=(l: Location) do _location = l
 
        # All the annotations attached directly to the node
-       readable var _n_annotations: nullable AAnnotations = null
+       readable writable var _n_annotations: nullable AAnnotations = null
 
        redef fun replace_with(n: ANode)
        do
@@ -189,7 +189,7 @@ abstract class Visitor
        end
 
        # The current visited node
-       readable var _current_node: nullable ANode = null
+       readable writable var _current_node: nullable ANode = null
 end
 
 # Token of end of line (basically `\n`)
@@ -562,7 +562,7 @@ end
 class AModule
        super Prod
 
-       readable var _n_moduledecl: nullable AModuledecl = null
+       readable writable var _n_moduledecl: nullable AModuledecl = null
        readable var _n_imports: ANodes[AImport] = new ANodes[AImport](self)
        readable var _n_extern_code_blocks: ANodes[AExternCodeBlock] = new ANodes[AExternCodeBlock](self)
        readable var _n_classdefs: ANodes[AClassdef] = new ANodes[AClassdef](self)
@@ -571,9 +571,9 @@ end
 # The declaration of the module with the documentation, name, and annotations
 class AModuledecl
        super Prod
-       readable var _n_doc: nullable ADoc = null
-       readable var _n_kwmodule: TKwmodule
-       readable var _n_name: AModuleName
+       readable writable var _n_doc: nullable ADoc = null
+       readable writable var _n_kwmodule: TKwmodule
+       readable writable var _n_name: AModuleName
 end
 
 # A import clause of a module
@@ -584,17 +584,17 @@ end
 # A standard import clause. eg `import x`
 class AStdImport
        super AImport
-       readable var _n_visibility: AVisibility
-       readable var _n_kwimport: TKwimport
-       readable var _n_name: AModuleName
+       readable writable var _n_visibility: AVisibility
+       readable writable var _n_kwimport: TKwimport
+       readable writable var _n_name: AModuleName
 end
 
 # The special import clause of the kernel module. eg `import end`
 class ANoImport
        super AImport
-       readable var _n_visibility: AVisibility
-       readable var _n_kwimport: TKwimport
-       readable var _n_kwend: TKwend
+       readable writable var _n_visibility: AVisibility
+       readable writable var _n_kwimport: TKwimport
+       readable writable var _n_kwend: TKwend
 end
 
 # A visibility modifier
@@ -611,15 +611,15 @@ class APublicVisibility
 end
 class APrivateVisibility
        super AVisibility
-       readable var _n_kwprivate: TKwprivate
+       readable writable var _n_kwprivate: TKwprivate
 end
 class AProtectedVisibility
        super AVisibility
-       readable var _n_kwprotected: TKwprotected
+       readable writable var _n_kwprotected: TKwprotected
 end
 class AIntrudeVisibility
        super AVisibility
-       readable var _n_kwintrude: TKwintrude
+       readable writable var _n_kwintrude: TKwintrude
 end
 
 # A class definition
@@ -632,15 +632,15 @@ end
 # A standard class definition with a name, superclasses and properties
 class AStdClassdef
        super AClassdef
-       readable var _n_doc: nullable ADoc = null
-       readable var _n_kwredef: nullable TKwredef = null
-       readable var _n_visibility: AVisibility
-       readable var _n_classkind: AClasskind
-       readable var _n_id: nullable TClassid = null
+       readable writable var _n_doc: nullable ADoc = null
+       readable writable var _n_kwredef: nullable TKwredef = null
+       readable writable var _n_visibility: AVisibility
+       readable writable var _n_classkind: AClasskind
+       readable writable var _n_id: nullable TClassid = null
        readable var _n_formaldefs: ANodes[AFormaldef] = new ANodes[AFormaldef](self)
-       readable var _n_extern_code_block: nullable AExternCodeBlock = null
+       readable writable var _n_extern_code_block: nullable AExternCodeBlock = null
        readable var _n_superclasses: ANodes[ASuperclass] = new ANodes[ASuperclass](self)
-       readable var _n_kwend: TKwend
+       readable writable var _n_kwend: TKwend
        redef fun hot_location do return n_id.location
 end
 
@@ -660,68 +660,68 @@ abstract class AClasskind
 end
 class AConcreteClasskind
        super AClasskind
-       readable var _n_kwclass: TKwclass
+       readable writable var _n_kwclass: TKwclass
 end
 class AAbstractClasskind
        super AClasskind
-       readable var _n_kwabstract: TKwabstract
-       readable var _n_kwclass: TKwclass
+       readable writable var _n_kwabstract: TKwabstract
+       readable writable var _n_kwclass: TKwclass
 end
 class AInterfaceClasskind
        super AClasskind
-       readable var _n_kwinterface: TKwinterface
+       readable writable var _n_kwinterface: TKwinterface
 end
 class AEnumClasskind
        super AClasskind
-       readable var _n_kwenum: TKwenum
+       readable writable var _n_kwenum: TKwenum
 end
 class AExternClasskind
        super AClasskind
-       readable var _n_kwextern: TKwextern
-       readable var _n_kwclass: nullable TKwclass = null
+       readable writable var _n_kwextern: TKwextern
+       readable writable var _n_kwclass: nullable TKwclass = null
 end
 
 # The definition of a formal generic parameter type. eg `X: Y`
 class AFormaldef
        super Prod
-       readable var _n_id: TClassid
+       readable writable var _n_id: TClassid
        # The bound of the parameter type
-       readable var _n_type: nullable AType = null
+       readable writable var _n_type: nullable AType = null
 end
 
 # A super-class. eg `super X`
 class ASuperclass
        super Prod
-       readable var _n_kwsuper: TKwsuper
-       readable var _n_type: AType
+       readable writable var _n_kwsuper: TKwsuper
+       readable writable var _n_type: AType
 end
 
 # The definition of a property
 abstract class APropdef
        super Prod
-       readable var _n_doc: nullable ADoc = null
+       readable writable var _n_doc: nullable ADoc = null
 end
 
 # A definition of an attribute
 # For historical reason, old-syle and new-style attributes use the same `ANode` sub-class
 class AAttrPropdef
        super APropdef
-       readable var _n_kwredef: nullable TKwredef = null
-       readable var _n_visibility: AVisibility
-       readable var _n_kwvar: TKwvar
+       readable writable var _n_kwredef: nullable TKwredef = null
+       readable writable var _n_visibility: AVisibility
+       readable writable var _n_kwvar: TKwvar
 
        # The identifier for an old-style attribute (null if new-style)
-       readable var _n_id: nullable TAttrid
+       readable writable var _n_id: nullable TAttrid
 
        # The identifier for a new-style attribute (null if old-style)
-       readable var _n_id2: nullable TId
+       readable writable var _n_id2: nullable TId
 
-       readable var _n_type: nullable AType = null
-       readable var _n_readable: nullable AAble = null
-       readable var _n_writable: nullable AAble = null
+       readable writable var _n_type: nullable AType = null
+       readable writable var _n_readable: nullable AAble = null
+       readable writable var _n_writable: nullable AAble = null
 
        # The initial value, if any
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_expr: nullable AExpr = null
        redef fun hot_location
        do
                if n_id != null then return n_id.location else return n_id2.location
@@ -731,10 +731,10 @@ end
 # A definition of all kind of method (including constructors)
 abstract class AMethPropdef
        super APropdef
-       readable var _n_kwredef: nullable TKwredef = null
-       readable var _n_visibility: nullable AVisibility
-       readable var _n_methid: nullable AMethid = null
-       readable var _n_signature: nullable ASignature
+       readable writable var _n_kwredef: nullable TKwredef = null
+       readable writable var _n_visibility: nullable AVisibility
+       readable writable var _n_methid: nullable AMethid = null
+       readable writable var _n_signature: nullable ASignature
        redef fun hot_location
        do
                if n_methid != null then
@@ -749,34 +749,34 @@ end
 # *deferred* is a old synonynmous of *abstract* that comes from PRM, that comes from Eiffel.
 class ADeferredMethPropdef
        super AMethPropdef
-       readable var _n_kwmeth: TKwmeth
+       readable writable var _n_kwmeth: TKwmeth
 end
 
 # A method marked intern
 class AInternMethPropdef
        super AMethPropdef
-       readable var _n_kwmeth: TKwmeth
+       readable writable var _n_kwmeth: TKwmeth
 end
 
 # A method of a constructor marked extern
 abstract class AExternPropdef
        super AMethPropdef
-       readable var _n_extern: nullable TString = null
-       readable var _n_extern_calls: nullable AExternCalls = null
-       readable var _n_extern_code_block: nullable AExternCodeBlock = null
+       readable writable var _n_extern: nullable TString = null
+       readable writable var _n_extern_calls: nullable AExternCalls = null
+       readable writable var _n_extern_code_block: nullable AExternCodeBlock = null
 end
 
 # A method marked extern
 class AExternMethPropdef
        super AExternPropdef
-       readable var _n_kwmeth: TKwmeth
+       readable writable var _n_kwmeth: TKwmeth
 end
 
 # A method with a body
 class AConcreteMethPropdef
        super AMethPropdef
-       readable var _n_kwmeth: nullable TKwmeth
-       readable var _n_block: nullable AExpr = null
+       readable writable var _n_kwmeth: nullable TKwmeth
+       readable writable var _n_block: nullable AExpr = null
 end
 
 # A constructor
@@ -788,7 +788,7 @@ end
 class AConcreteInitPropdef
        super AConcreteMethPropdef
        super AInitPropdef
-       readable var _n_kwinit: TKwinit
+       readable writable var _n_kwinit: TKwinit
        redef fun hot_location do return n_kwinit.location
 end
 
@@ -796,7 +796,7 @@ end
 class AExternInitPropdef
        super AExternPropdef
        super AInitPropdef
-       readable var _n_kwnew: TKwnew
+       readable writable var _n_kwnew: TKwnew
 end
 
 # The implicit main method
@@ -807,7 +807,7 @@ end
 # Declaration of callbacks for extern methods
 class AExternCalls
        super Prod
-       readable var _n_kwimport: TKwimport
+       readable writable var _n_kwimport: TKwimport
        readable var _n_extern_calls: ANodes[AExternCall] = new ANodes[AExternCall](self)
 end
 abstract class AExternCall
@@ -818,72 +818,72 @@ abstract class APropExternCall
 end
 class ALocalPropExternCall
        super APropExternCall
-       readable var _n_methid: AMethid
+       readable writable var _n_methid: AMethid
 end
 class AFullPropExternCall
        super APropExternCall
-       readable var _n_classid: TClassid
-       readable var _n_quad: nullable TQuad = null
-       readable var _n_methid: AMethid
+       readable writable var _n_classid: TClassid
+       readable writable var _n_quad: nullable TQuad = null
+       readable writable var _n_methid: AMethid
 end
 class AInitPropExternCall
        super APropExternCall
-       readable var _n_classid: TClassid
+       readable writable var _n_classid: TClassid
 end
 class ASuperExternCall
        super AExternCall
-       readable var _n_kwsuper: TKwsuper
+       readable writable var _n_kwsuper: TKwsuper
 end
 abstract class ACastExternCall
        super AExternCall
 end
 class ACastAsExternCall
        super ACastExternCall
-       readable var _n_from_type: AType
-       readable var _n_kwas: TKwas
-       readable var _n_to_type: AType
+       readable writable var _n_from_type: AType
+       readable writable var _n_kwas: TKwas
+       readable writable var _n_to_type: AType
 end
 class AAsNullableExternCall
        super ACastExternCall
-       readable var _n_type: AType
-       readable var _n_kwas: TKwas
-       readable var _n_kwnullable: TKwnullable
+       readable writable var _n_type: AType
+       readable writable var _n_kwas: TKwas
+       readable writable var _n_kwnullable: TKwnullable
 end
 class AAsNotNullableExternCall
        super ACastExternCall
-       readable var _n_type: AType
-       readable var _n_kwas: TKwas
-       readable var _n_kwnot: TKwnot
-       readable var _n_kwnullable: TKwnullable
+       readable writable var _n_type: AType
+       readable writable var _n_kwas: TKwas
+       readable writable var _n_kwnot: TKwnot
+       readable writable var _n_kwnullable: TKwnullable
 end
 
 # A definition of a virtual type
 class ATypePropdef
        super APropdef
-       readable var _n_kwredef: nullable TKwredef = null
-       readable var _n_visibility: AVisibility
-       readable var _n_kwtype: TKwtype
-       readable var _n_id: TClassid
-       readable var _n_type: AType
+       readable writable var _n_kwredef: nullable TKwredef = null
+       readable writable var _n_visibility: AVisibility
+       readable writable var _n_kwtype: TKwtype
+       readable writable var _n_id: TClassid
+       readable writable var _n_type: AType
 end
 
 # A `writable` or `readable` modifier
 abstract class AAble
        super Prod
-       readable var _n_visibility: nullable AVisibility = null
-       readable var _n_kwredef: nullable TKwredef = null
+       readable writable var _n_visibility: nullable AVisibility = null
+       readable writable var _n_kwredef: nullable TKwredef = null
 end
 
 # A `readable` modifier
 class AReadAble
        super AAble
-       readable var _n_kwreadable: TKwreadable
+       readable writable var _n_kwreadable: TKwreadable
 end
 
 # A `writable` modifier
 class AWriteAble
        super AAble
-       readable var _n_kwwritable: TKwwritable
+       readable writable var _n_kwwritable: TKwwritable
 end
 
 # The identifier of a method in a method declaration.
@@ -893,51 +893,51 @@ abstract class AMethid
 end
 class AIdMethid
        super AMethid
-       readable var _n_id: TId
+       readable writable var _n_id: TId
 end
 class APlusMethid
        super AMethid
-       readable var _n_plus: TPlus
+       readable writable var _n_plus: TPlus
 end
 class AMinusMethid
        super AMethid
-       readable var _n_minus: TMinus
+       readable writable var _n_minus: TMinus
 end
 class AStarMethid
        super AMethid
-       readable var _n_star: TStar
+       readable writable var _n_star: TStar
 end
 class ASlashMethid
        super AMethid
-       readable var _n_slash: TSlash
+       readable writable var _n_slash: TSlash
 end
 class APercentMethid
        super AMethid
-       readable var _n_percent: TPercent
+       readable writable var _n_percent: TPercent
 end
 class AEqMethid
        super AMethid
-       readable var _n_eq: TEq
+       readable writable var _n_eq: TEq
 end
 class ANeMethid
        super AMethid
-       readable var _n_ne: TNe
+       readable writable var _n_ne: TNe
 end
 class ALeMethid
        super AMethid
-       readable var _n_le: TLe
+       readable writable var _n_le: TLe
 end
 class AGeMethid
        super AMethid
-       readable var _n_ge: TGe
+       readable writable var _n_ge: TGe
 end
 class ALtMethid
        super AMethid
-       readable var _n_lt: TLt
+       readable writable var _n_lt: TLt
 end
 class AGtMethid
        super AMethid
-       readable var _n_gt: TGt
+       readable writable var _n_gt: TGt
 end
 class ALlMethid
        super AMethid
@@ -949,59 +949,59 @@ class AGgMethid
 end
 class ABraMethid
        super AMethid
-       readable var _n_obra: TObra
-       readable var _n_cbra: TCbra
+       readable writable var _n_obra: TObra
+       readable writable var _n_cbra: TCbra
 end
 class AStarshipMethid
        super AMethid
-       readable var _n_starship: TStarship
+       readable writable var _n_starship: TStarship
 end
 class AAssignMethid
        super AMethid
-       readable var _n_id: TId
-       readable var _n_assign: TAssign
+       readable writable var _n_id: TId
+       readable writable var _n_assign: TAssign
 end
 class ABraassignMethid
        super AMethid
-       readable var _n_obra: TObra
-       readable var _n_cbra: TCbra
-       readable var _n_assign: TAssign
+       readable writable var _n_obra: TObra
+       readable writable var _n_cbra: TCbra
+       readable writable var _n_assign: TAssign
 end
 
 # A signature in a method definition. eg `(x,y:X,z:Z):T`
 class ASignature
        super Prod
-       readable var _n_opar: nullable TOpar = null
+       readable writable var _n_opar: nullable TOpar = null
        readable var _n_params: ANodes[AParam] = new ANodes[AParam](self)
-       readable var _n_cpar: nullable TCpar = null
-       readable var _n_type: nullable AType = null
+       readable writable var _n_cpar: nullable TCpar = null
+       readable writable var _n_type: nullable AType = null
        readable var _n_closure_decls: ANodes[AClosureDecl] = new ANodes[AClosureDecl](self)
 end
 
 # A parameter definition in a signature. eg `x:X`
 class AParam
        super Prod
-       readable var _n_id: TId
-       readable var _n_type: nullable AType = null
-       readable var _n_dotdotdot: nullable TDotdotdot = null
+       readable writable var _n_id: TId
+       readable writable var _n_type: nullable AType = null
+       readable writable var _n_dotdotdot: nullable TDotdotdot = null
 end
 
 class AClosureDecl
        super Prod
-       readable var _n_kwbreak: nullable TKwbreak = null
-       readable var _n_bang: TBang
-       readable var _n_id: TId
-       readable var _n_signature: ASignature
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_kwbreak: nullable TKwbreak = null
+       readable writable var _n_bang: TBang
+       readable writable var _n_id: TId
+       readable writable var _n_signature: ASignature
+       readable writable var _n_expr: nullable AExpr = null
 end
 
 # A static type. eg `nullable X[Y]`
 class AType
        super Prod
-       readable var _n_kwnullable: nullable TKwnullable = null
+       readable writable var _n_kwnullable: nullable TKwnullable = null
 
        # The name of the class or of the formal type
-       readable var _n_id: TClassid
+       readable writable var _n_id: TClassid
 
        # Type arguments for a generic type
        readable var _n_types: ANodes[AType] = new ANodes[AType](self)
@@ -1010,8 +1010,8 @@ end
 # A label at the end of a block or in a break/continue statement. eg `label x`
 class ALabel
        super Prod
-       readable var _n_kwlabel: TKwlabel
-       readable var _n_id: TId
+       readable writable var _n_kwlabel: TKwlabel
+       readable writable var _n_id: TId
 end
 
 # Expression and statements
@@ -1025,140 +1025,140 @@ end
 class ABlockExpr
        super AExpr
        readable var _n_expr: ANodes[AExpr] = new ANodes[AExpr](self)
-       readable var _n_kwend: nullable TKwend = null
+       readable writable var _n_kwend: nullable TKwend = null
 end
 
 # A declaration of a local variable. eg `var x: X = y`
 class AVardeclExpr
        super AExpr
-       readable var _n_kwvar: TKwvar
-       readable var _n_id: TId
-       readable var _n_type: nullable AType = null
-       readable var _n_assign: nullable TAssign = null
+       readable writable var _n_kwvar: TKwvar
+       readable writable var _n_id: TId
+       readable writable var _n_type: nullable AType = null
+       readable writable var _n_assign: nullable TAssign = null
 
        # The initial value, if any
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_expr: nullable AExpr = null
 end
 
 # A `return` statement. eg `return x`
 class AReturnExpr
        super AExpr
-       readable var _n_kwreturn: nullable TKwreturn = null
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_kwreturn: nullable TKwreturn = null
+       readable writable var _n_expr: nullable AExpr = null
 end
 
 # Something that has a label.
 abstract class ALabelable
        super Prod
-       readable var _n_label: nullable ALabel = null
+       readable writable var _n_label: nullable ALabel = null
 end
 
 # A `break` statement.
 class ABreakExpr
        super AExpr
        super ALabelable
-       readable var _n_kwbreak: TKwbreak
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_kwbreak: TKwbreak
+       readable writable var _n_expr: nullable AExpr = null
 end
 
 # An `abort` statement
 class AAbortExpr
        super AExpr
-       readable var _n_kwabort: TKwabort
+       readable writable var _n_kwabort: TKwabort
 end
 
 # A `continue` statement
 class AContinueExpr
        super AExpr
        super ALabelable
-       readable var _n_kwcontinue: nullable TKwcontinue = null
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_kwcontinue: nullable TKwcontinue = null
+       readable writable var _n_expr: nullable AExpr = null
 end
 
 # A `do` statement
 class ADoExpr
        super AExpr
        super ALabelable
-       readable var _n_kwdo: TKwdo
-       readable var _n_block: nullable AExpr = null
+       readable writable var _n_kwdo: TKwdo
+       readable writable var _n_block: nullable AExpr = null
 end
 
 # A `if` statement
 class AIfExpr
        super AExpr
-       readable var _n_kwif: TKwif
-       readable var _n_expr: AExpr
-       readable var _n_then: nullable AExpr = null
-       readable var _n_else: nullable AExpr = null
+       readable writable var _n_kwif: TKwif
+       readable writable var _n_expr: AExpr
+       readable writable var _n_then: nullable AExpr = null
+       readable writable var _n_else: nullable AExpr = null
 end
 
 # A `if` expression
 class AIfexprExpr
        super AExpr
-       readable var _n_kwif: TKwif
-       readable var _n_expr: AExpr
-       readable var _n_kwthen: TKwthen
-       readable var _n_then: AExpr
-       readable var _n_kwelse: TKwelse
-       readable var _n_else: AExpr
+       readable writable var _n_kwif: TKwif
+       readable writable var _n_expr: AExpr
+       readable writable var _n_kwthen: TKwthen
+       readable writable var _n_then: AExpr
+       readable writable var _n_kwelse: TKwelse
+       readable writable var _n_else: AExpr
 end
 
 # A `while` statement
 class AWhileExpr
        super AExpr
        super ALabelable
-       readable var _n_kwwhile:  TKwwhile
-       readable var _n_expr: AExpr
-       readable var _n_kwdo: TKwdo
-       readable var _n_block: nullable AExpr = null
+       readable writable var _n_kwwhile:  TKwwhile
+       readable writable var _n_expr: AExpr
+       readable writable var _n_kwdo: TKwdo
+       readable writable var _n_block: nullable AExpr = null
 end
 
 # A `loop` statement
 class ALoopExpr
        super AExpr
        super ALabelable
-       readable var _n_kwloop: TKwloop
-       readable var _n_block: nullable AExpr = null
+       readable writable var _n_kwloop: TKwloop
+       readable writable var _n_block: nullable AExpr = null
 end
 
 # A `for` statement
 class AForExpr
        super AExpr
        super ALabelable
-       readable var _n_kwfor: TKwfor
+       readable writable var _n_kwfor: TKwfor
        readable var _n_ids: ANodes[TId] = new ANodes[TId](self)
-       readable var _n_expr: AExpr
-       readable var _n_kwdo: TKwdo
-       readable var _n_block: nullable AExpr = null
+       readable writable var _n_expr: AExpr
+       readable writable var _n_kwdo: TKwdo
+       readable writable var _n_block: nullable AExpr = null
 end
 
 # An `assert` statement
 class AAssertExpr
        super AExpr
-       readable var _n_kwassert: TKwassert
-       readable var _n_id: nullable TId = null
-       readable var _n_expr: AExpr
-       readable var _n_else: nullable AExpr = null
+       readable writable var _n_kwassert: TKwassert
+       readable writable var _n_id: nullable TId = null
+       readable writable var _n_expr: AExpr
+       readable writable var _n_else: nullable AExpr = null
 end
 
 # Whatever is a simple assignment. eg `= something`
 abstract class AAssignFormExpr
        super AExpr
-       readable var _n_assign: TAssign
-       readable var _n_value: AExpr
+       readable writable var _n_assign: TAssign
+       readable writable var _n_value: AExpr
 end
 
 # Whatever is a combined assignment. eg `+= something`
 abstract class AReassignFormExpr
        super AExpr
-       readable var _n_assign_op: AAssignOp
-       readable var _n_value: AExpr
+       readable writable var _n_assign_op: AAssignOp
+       readable writable var _n_value: AExpr
 end
 
 # A `once` expression. eg `once x`
 class AOnceExpr
        super AProxyExpr
-       readable var _n_kwonce: TKwonce
+       readable writable var _n_kwonce: TKwonce
 end
 
 # A polymorphic invocation of a method
@@ -1166,7 +1166,7 @@ end
 abstract class ASendExpr
        super AExpr
        # The receiver of the method invocation
-       readable var _n_expr: AExpr
+       readable writable var _n_expr: AExpr
        readable var _n_closure_defs: ANodes[AClosureDef] = new ANodes[AClosureDef](self)
 end
 
@@ -1175,7 +1175,7 @@ abstract class ABinopExpr
        super ASendExpr
        # The second operand of the operation
        # Note: the receiver (`n_expr`) is the first operand
-       readable var _n_expr2: AExpr
+       readable writable var _n_expr2: AExpr
 end
 
 # Something that is boolean expression
@@ -1186,29 +1186,29 @@ end
 # A `or` expression 
 class AOrExpr
        super ABoolExpr
-       readable var _n_expr: AExpr
-       readable var _n_expr2: AExpr
+       readable writable var _n_expr: AExpr
+       readable writable var _n_expr2: AExpr
 end
 
 # A `and` expression
 class AAndExpr
        super ABoolExpr
-       readable var _n_expr: AExpr
-       readable var _n_expr2: AExpr
+       readable writable var _n_expr: AExpr
+       readable writable var _n_expr2: AExpr
 end
 
 # A `or else` expression
 class AOrElseExpr
        super ABoolExpr
-       readable var _n_expr: AExpr
-       readable var _n_expr2: AExpr
+       readable writable var _n_expr: AExpr
+       readable writable var _n_expr2: AExpr
 end
 
 # A `not` expression
 class ANotExpr
        super ABoolExpr
-       readable var _n_kwnot: TKwnot
-       readable var _n_expr: AExpr
+       readable writable var _n_kwnot: TKwnot
+       readable writable var _n_expr: AExpr
 end
 
 # A `==` expression
@@ -1219,8 +1219,8 @@ end
 # A `is` expression
 class AEeExpr
        super ABoolExpr
-       readable var _n_expr: AExpr
-       readable var _n_expr2: AExpr
+       readable writable var _n_expr: AExpr
+       readable writable var _n_expr2: AExpr
 end
 
 # A `!=` expression
@@ -1261,8 +1261,8 @@ end
 # A type-ckeck expression. eg `x isa T`
 class AIsaExpr
        super ABoolExpr
-       readable var _n_expr: AExpr
-       readable var _n_type: AType
+       readable writable var _n_expr: AExpr
+       readable writable var _n_type: AType
 end
 
 # A `+` expression
@@ -1298,18 +1298,18 @@ end
 # A unary minus expression. eg `-x`
 class AUminusExpr
        super ASendExpr
-       readable var _n_minus: TMinus
+       readable writable var _n_minus: TMinus
 end
 
 # An explicit instantiation. eg `new T`
 class ANewExpr
        super AExpr
-       readable var _n_kwnew: TKwnew
-       readable var _n_type: AType
+       readable writable var _n_kwnew: TKwnew
+       readable writable var _n_type: AType
 
        # The name of the named-constructor, if any
-       readable var _n_id: nullable TId = null
-       readable var _n_args: AExprs
+       readable writable var _n_id: nullable TId = null
+       readable writable var _n_args: AExprs
 end
 
 # Whatever is a old-style attribute access
@@ -1317,10 +1317,10 @@ abstract class AAttrFormExpr
        super AExpr
 
        # The receiver of the attribute
-       readable var _n_expr: AExpr
+       readable writable var _n_expr: AExpr
 
        # The name of the attribute
-       readable var _n_id: TAttrid
+       readable writable var _n_id: TAttrid
 end
 
 # The read of an attribute. eg `x._a`
@@ -1339,10 +1339,10 @@ abstract class ACallFormExpr
        super ASendExpr
 
        # The name of the method
-       readable var _n_id: TId
+       readable writable var _n_id: TId
 
        # The arguments of the call
-       readable var _n_args: AExprs
+       readable writable var _n_args: AExprs
 end
 
 # A complex setter call (standard or brackets)
@@ -1383,23 +1383,23 @@ end
 # A call to `super`. OR a call of a super-constructor
 class ASuperExpr
        super AExpr
-       readable var _n_qualified: nullable AQualified = null
-       readable var _n_kwsuper: TKwsuper
-       readable var _n_args: AExprs
+       readable writable var _n_qualified: nullable AQualified = null
+       readable writable var _n_kwsuper: TKwsuper
+       readable writable var _n_args: AExprs
 end
 
 # A call to the `init` constructor.
 # Note: because `init` is a keyword and not a `TId`, the explicit call to init cannot be a ACallFormExpr
 class AInitExpr
        super ASendExpr
-       readable var _n_kwinit: TKwinit
-       readable var _n_args: AExprs
+       readable writable var _n_kwinit: TKwinit
+       readable writable var _n_args: AExprs
 end
 
 # Whatever looks-like a call of the brackets `[]` operator.
 abstract class ABraFormExpr
        super ASendExpr
-       readable var _n_args: AExprs
+       readable writable var _n_args: AExprs
 end
 
 # A call of the brackets operator. eg `x[y,z]`
@@ -1416,7 +1416,7 @@ end
 # Whatever is an access to a local variable
 abstract class AVarFormExpr
        super AExpr
-       readable var _n_id: TId
+       readable writable var _n_id: TId
 end
 
 # A complex setter call of the bracket operator. eg `x[y,z]+=t`
@@ -1427,8 +1427,8 @@ end
 
 class AClosureCallExpr
        super AExpr
-       readable var _n_id: TId
-       readable var _n_args: AExprs
+       readable writable var _n_id: TId
+       readable writable var _n_args: AExprs
        readable var _n_closure_defs: ANodes[AClosureDef] = new ANodes[AClosureDef](self)
 end
 
@@ -1455,34 +1455,34 @@ end
 # A literal range, open or closed
 abstract class ARangeExpr
        super AExpr
-       readable var _n_expr: AExpr
-       readable var _n_expr2: AExpr
+       readable writable var _n_expr: AExpr
+       readable writable var _n_expr2: AExpr
 end
 
 # A closed literal range. eg `[x..y]`
 class ACrangeExpr
        super ARangeExpr
-       readable var _n_obra: TObra
-       readable var _n_cbra: TCbra
+       readable writable var _n_obra: TObra
+       readable writable var _n_cbra: TCbra
 end
 
 # An open literal range. eg `[x..y[`
 class AOrangeExpr
        super ARangeExpr
-       readable var _n_obra: TObra
-       readable var _n_cbra: TObra
+       readable writable var _n_obra: TObra
+       readable writable var _n_cbra: TObra
 end
 
 # A literal array. eg. `[x,y,z]`
 class AArrayExpr
        super AExpr
-       readable var _n_exprs: AExprs
+       readable writable var _n_exprs: AExprs
 end
 
 # A read of `self` 
 class ASelfExpr
        super AExpr
-       readable var _n_kwself: nullable TKwself
+       readable writable var _n_kwself: nullable TKwself
 end
 
 # When there is no explicit receiver, `self` is implicit
@@ -1493,37 +1493,37 @@ end
 # A `true` boolean literal constant
 class ATrueExpr
        super ABoolExpr
-       readable var _n_kwtrue: TKwtrue
+       readable writable var _n_kwtrue: TKwtrue
 end
 # A `false` boolean literal constant
 class AFalseExpr
        super ABoolExpr
-       readable var _n_kwfalse: TKwfalse
+       readable writable var _n_kwfalse: TKwfalse
 end
 # A `null` literal constant
 class ANullExpr
        super AExpr
-       readable var _n_kwnull: TKwnull
+       readable writable var _n_kwnull: TKwnull
 end
 # An integer literal
 class AIntExpr
        super AExpr
-       readable var _n_number: TNumber
+       readable writable var _n_number: TNumber
 end
 # A float literal
 class AFloatExpr
        super AExpr
-       readable var _n_float: TFloat
+       readable writable var _n_float: TFloat
 end
 # A character literal
 class ACharExpr
        super AExpr
-       readable var _n_char: TChar
+       readable writable var _n_char: TChar
 end
 # A string literal
 abstract class AStringFormExpr
        super AExpr
-       readable var _n_string: Token
+       readable writable var _n_string: Token
 end
 
 # A simple string. eg. `"abc"`
@@ -1556,41 +1556,41 @@ end
 # A simple parenthesis. eg `(x)`
 class AParExpr
        super AProxyExpr
-       readable var _n_opar: TOpar
-       readable var _n_cpar: TCpar
+       readable writable var _n_opar: TOpar
+       readable writable var _n_cpar: TCpar
 end
 
 # Whatevej just contains (and mimic) an other expression
 abstract class AProxyExpr
        super AExpr
-       readable var _n_expr: AExpr
+       readable writable var _n_expr: AExpr
 end
 
 # A type cast. eg `x.as(T)`
 class AAsCastExpr
        super AExpr
-       readable var _n_expr: AExpr
-       readable var _n_kwas: TKwas
-       readable var _n_opar: TOpar
-       readable var _n_type: AType
-       readable var _n_cpar: TCpar
+       readable writable var _n_expr: AExpr
+       readable writable var _n_kwas: TKwas
+       readable writable var _n_opar: TOpar
+       readable writable var _n_type: AType
+       readable writable var _n_cpar: TCpar
 end
 
 # A as-not-null cast. eg `x.as(not null)`
 class AAsNotnullExpr
        super AExpr
-       readable var _n_expr: AExpr
-       readable var _n_kwas: TKwas
-       readable var _n_opar: TOpar
-       readable var _n_kwnot: TKwnot
-       readable var _n_kwnull: TKwnull
-       readable var _n_cpar: TCpar
+       readable writable var _n_expr: AExpr
+       readable writable var _n_kwas: TKwas
+       readable writable var _n_opar: TOpar
+       readable writable var _n_kwnot: TKwnot
+       readable writable var _n_kwnull: TKwnull
+       readable writable var _n_cpar: TCpar
 end
 
 # A is-set check of old-style attributes. eg `isset x._a`
 class AIssetAttrExpr
        super AAttrFormExpr
-       readable var _n_kwisset: TKwisset
+       readable writable var _n_kwisset: TKwisset
 end
 
 # A list of expression separated with commas (arguments for instance)
@@ -1601,10 +1601,10 @@ end
 
 class ADebugTypeExpr
        super AExpr
-       readable var _n_kwdebug: TKwdebug
-       readable var _n_kwtype: TKwtype
-       readable var _n_expr: AExpr
-       readable var _n_type: AType
+       readable writable var _n_kwdebug: TKwdebug
+       readable writable var _n_kwtype: TKwtype
+       readable writable var _n_expr: AExpr
+       readable writable var _n_type: AType
 end
 
 # A simple list of expressions
@@ -1615,15 +1615,15 @@ end
 # A list of expressions enclosed in parentheses
 class AParExprs
        super AExprs
-       readable var _n_opar: TOpar
-       readable var _n_cpar: TCpar
+       readable writable var _n_opar: TOpar
+       readable writable var _n_cpar: TCpar
 end
 
 # A list of expressions enclosed in brackets
 class ABraExprs
        super AExprs
-       readable var _n_obra: TObra
-       readable var _n_cbra: TCbra
+       readable writable var _n_obra: TObra
+       readable writable var _n_cbra: TCbra
 end
 
 # A complex assignment operator. eg `+=`
@@ -1632,20 +1632,20 @@ abstract class AAssignOp
 end
 class APlusAssignOp
        super AAssignOp
-       readable var _n_pluseq: TPluseq
+       readable writable var _n_pluseq: TPluseq
 end
 class AMinusAssignOp
        super AAssignOp
-       readable var _n_minuseq: TMinuseq
+       readable writable var _n_minuseq: TMinuseq
 end
 
 class AClosureDef
        super ALabelable
-       readable var _n_bang: TBang
-       readable var _n_id: AClosureId
+       readable writable var _n_bang: TBang
+       readable writable var _n_id: AClosureId
        readable var _n_ids: ANodes[TId] = new ANodes[TId](self)
-       readable var _n_kwdo: nullable TKwdo = null
-       readable var _n_expr: nullable AExpr = null
+       readable writable var _n_kwdo: nullable TKwdo = null
+       readable writable var _n_expr: nullable AExpr = null
        redef fun hot_location do return n_id.location
 end
 abstract class AClosureId
@@ -1653,33 +1653,33 @@ abstract class AClosureId
 end
 class ASimpleClosureId
        super AClosureId
-       readable var _n_id: TId
+       readable writable var _n_id: TId
 end
 class ABreakClosureId
        super AClosureId
-       readable var _n_kwbreak: TKwbreak
+       readable writable var _n_kwbreak: TKwbreak
 end
 class AModuleName
        super Prod
-       readable var _n_quad: nullable TQuad = null
+       readable writable var _n_quad: nullable TQuad = null
        readable var _n_path: ANodes[TId] = new ANodes[TId](self)
-       readable var _n_id: TId
+       readable writable var _n_id: TId
 end
 class AInLanguage
        super Prod
-       readable var _n_kwin: TKwin
-       readable var _n_string: TString
+       readable writable var _n_kwin: TKwin
+       readable writable var _n_string: TString
 end
 class AExternCodeBlock
        super Prod
-       readable var _n_in_language: nullable AInLanguage = null
-       readable var _n_extern_code_segment: TExternCodeSegment
+       readable writable var _n_in_language: nullable AInLanguage = null
+       readable writable var _n_extern_code_segment: TExternCodeSegment
 end
 class AQualified
        super Prod
-       readable var _n_quad: nullable TQuad = null
+       readable writable var _n_quad: nullable TQuad = null
        readable var _n_id: ANodes[TId] = new ANodes[TId](self)
-       readable var _n_classid: nullable TClassid = null
+       readable writable var _n_classid: nullable TClassid = null
 end
 
 # A documentation of a definition
@@ -1691,35 +1691,35 @@ end
 
 class AAnnotations
        super Prod
-       readable var _n_at: nullable TAt = null
-       readable var _n_opar: nullable TOpar = null
+       readable writable var _n_at: nullable TAt = null
+       readable writable var _n_opar: nullable TOpar = null
        readable var _n_items: ANodes[AAnnotation] = new ANodes[AAnnotation](self)
-       readable var _n_cpar: nullable TCpar = null
+       readable writable var _n_cpar: nullable TCpar = null
 end
 class AAnnotation
        super Prod
-       readable var _n_atid: AAtid
-       readable var _n_opar: nullable TOpar = null
+       readable writable var _n_atid: AAtid
+       readable writable var _n_opar: nullable TOpar = null
        readable var _n_args: ANodes[AAtArg] = new ANodes[AAtArg](self)
-       readable var _n_cpar: nullable TCpar = null
+       readable writable var _n_cpar: nullable TCpar = null
 end
 abstract class AAtArg
        super Prod
 end
 class ATypeAtArg
        super AAtArg
-       readable var _n_type: AType
+       readable writable var _n_type: AType
 end
 class AExprAtArg
        super AAtArg
-       readable var _n_expr: AExpr
+       readable writable var _n_expr: AExpr
 end
 class AAtAtArg
        super AAtArg
 end
 abstract class AAtid
        super Prod
-       readable var _n_id: Token
+       readable writable var _n_id: Token
 end
 class AIdAtid
        super AAtid
@@ -1743,8 +1743,8 @@ end
 # The root of the AST
 class Start
        super Prod
-       readable var _n_base: nullable AModule
-       readable var _n_eof: EOF
+       readable writable var _n_base: nullable AModule
+       readable writable var _n_eof: EOF
        init(n_base: nullable AModule, n_eof: EOF)
        do
                self._n_base = n_base
index e43d64e..1fd0922 100644 (file)
@@ -88,6 +88,15 @@ redef class AModule
         end
     end
 
+               redef fun n_moduledecl=(node)
+               do
+                       _n_moduledecl = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_moduledecl != null then
@@ -173,6 +182,32 @@ redef class AModuledecl
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwmodule=(node)
+               do
+                       _n_kwmodule = node
+                       node.parent = self
+               end
+               redef fun n_name=(node)
+               do
+                       _n_name = 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
@@ -252,6 +287,30 @@ redef class AStdImport
        end
     end
 
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwimport=(node)
+               do
+                       _n_kwimport = node
+                       node.parent = self
+               end
+               redef fun n_name=(node)
+               do
+                       _n_name = 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
         v.enter_visit(_n_visibility)
@@ -314,6 +373,23 @@ redef class ANoImport
        end
     end
 
+               redef fun n_visibility=(node)
+               do
+                       _n_visibility = node
+                       node.parent = self
+               end
+               redef fun n_kwimport=(node)
+               do
+                       _n_kwimport = node
+                       node.parent = self
+               end
+               redef fun n_kwend=(node)
+               do
+                       _n_kwend = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_visibility)
@@ -333,6 +409,8 @@ redef class APublicVisibility
     do
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
     end
@@ -363,6 +441,13 @@ redef class APrivateVisibility
        end
     end
 
+               redef fun n_kwprivate=(node)
+               do
+                       _n_kwprivate = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwprivate)
@@ -394,6 +479,13 @@ redef class AProtectedVisibility
        end
     end
 
+               redef fun n_kwprotected=(node)
+               do
+                       _n_kwprotected = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwprotected)
@@ -425,6 +517,13 @@ redef class AIntrudeVisibility
        end
     end
 
+               redef fun n_kwintrude=(node)
+               do
+                       _n_kwintrude = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwintrude)
@@ -611,6 +710,58 @@ redef class AStdClassdef
        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_classkind=(node)
+               do
+                       _n_classkind = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = 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 n_extern_code_block=(node)
+               do
+                       _n_extern_code_block = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwend=(node)
+               do
+                       _n_kwend = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_doc != null then
@@ -673,6 +824,8 @@ redef class ATopClassdef
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_propdefs do
@@ -711,6 +864,8 @@ redef class AMainClassdef
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_propdefs do
@@ -744,6 +899,13 @@ redef class AConcreteClasskind
        end
     end
 
+               redef fun n_kwclass=(node)
+               do
+                       _n_kwclass = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwclass)
@@ -788,6 +950,18 @@ redef class AAbstractClasskind
        end
     end
 
+               redef fun n_kwabstract=(node)
+               do
+                       _n_kwabstract = node
+                       node.parent = self
+               end
+               redef fun n_kwclass=(node)
+               do
+                       _n_kwclass = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwabstract)
@@ -820,6 +994,13 @@ redef class AInterfaceClasskind
        end
     end
 
+               redef fun n_kwinterface=(node)
+               do
+                       _n_kwinterface = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwinterface)
@@ -851,6 +1032,13 @@ redef class AEnumClasskind
        end
     end
 
+               redef fun n_kwenum=(node)
+               do
+                       _n_kwenum = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwenum)
@@ -897,6 +1085,20 @@ redef class AExternClasskind
        end
     end
 
+               redef fun n_kwextern=(node)
+               do
+                       _n_kwextern = node
+                       node.parent = self
+               end
+               redef fun n_kwclass=(node)
+               do
+                       _n_kwclass = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwextern)
@@ -961,6 +1163,27 @@ redef class AFormaldef
        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_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)
@@ -1026,6 +1249,25 @@ redef class ASuperclass
        end
     end
 
+               redef fun n_kwsuper=(node)
+               do
+                       _n_kwsuper = 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
         v.enter_visit(_n_kwsuper)
@@ -1209,6 +1451,81 @@ redef class AAttrPropdef
        end
     end
 
+               redef fun n_doc=(node)
+               do
+                       _n_doc = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_readable=(node)
+               do
+                       _n_readable = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_writable=(node)
+               do
+                       _n_writable = 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_kwvar=(node)
+               do
+                       _n_kwvar = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_id2=(node)
+               do
+                       _n_id2 = 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 n_annotations=(node)
+               do
+                       _n_annotations = 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_doc != null then
@@ -1324,6 +1641,37 @@ redef class AMethPropdef
        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
@@ -1447,6 +1795,49 @@ redef class ADeferredMethPropdef
        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
@@ -1559,6 +1950,42 @@ redef class AInternMethPropdef
        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
@@ -1713,6 +2140,63 @@ redef class AExternMethPropdef
        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
@@ -1861,6 +2345,56 @@ redef class AConcreteMethPropdef
        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
@@ -2008,6 +2542,58 @@ redef class AConcreteInitPropdef
        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
@@ -2172,6 +2758,65 @@ redef class AExternInitPropdef
        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
@@ -2240,6 +2885,22 @@ redef class AMainMethPropdef
        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
@@ -2360,6 +3021,49 @@ redef class ATypePropdef
        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
@@ -2418,6 +3122,20 @@ redef class AReadAble
        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
@@ -2482,6 +3200,27 @@ redef class AWriteAble
        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
@@ -2519,6 +3258,13 @@ redef class AIdMethid
        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)
@@ -2550,6 +3296,13 @@ redef class APlusMethid
        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)
@@ -2581,6 +3334,13 @@ redef class AMinusMethid
        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)
@@ -2612,6 +3372,13 @@ redef class AStarMethid
        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)
@@ -2643,6 +3410,13 @@ redef class ASlashMethid
        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)
@@ -2674,6 +3448,13 @@ redef class APercentMethid
        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)
@@ -2705,6 +3486,13 @@ redef class AEqMethid
        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)
@@ -2736,6 +3524,13 @@ redef class ANeMethid
        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)
@@ -2767,6 +3562,13 @@ redef class ALeMethid
        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)
@@ -2798,6 +3600,13 @@ redef class AGeMethid
        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)
@@ -2829,6 +3638,13 @@ redef class ALtMethid
        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)
@@ -2860,6 +3676,13 @@ redef class AGtMethid
        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)
@@ -2891,6 +3714,13 @@ redef class ALlMethid
        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)
@@ -2922,6 +3752,13 @@ redef class AGgMethid
        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)
@@ -2966,6 +3803,18 @@ redef class ABraMethid
        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)
@@ -2998,6 +3847,13 @@ redef class AStarshipMethid
        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)
@@ -3042,6 +3898,18 @@ redef class AAssignMethid
        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)
@@ -3100,6 +3968,23 @@ redef class ABraassignMethid
        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)
@@ -3201,6 +4086,29 @@ redef class ASignature
         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
@@ -3291,6 +4199,34 @@ redef class AParam
        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)
@@ -3387,6 +4323,37 @@ redef class AClosureDecl
        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
@@ -3474,6 +4441,27 @@ redef class AType
        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
@@ -3527,6 +4515,18 @@ redef class ALabel
        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)
@@ -3579,6 +4579,15 @@ redef class ABlockExpr
        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
@@ -3688,6 +4697,46 @@ redef class AVardeclExpr
        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)
@@ -3749,6 +4798,22 @@ redef class AReturnExpr
        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
@@ -3815,6 +4880,27 @@ redef class ABreakExpr
        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)
@@ -3852,6 +4938,13 @@ redef class AAbortExpr
        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)
@@ -3915,6 +5008,29 @@ redef class AContinueExpr
        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
@@ -3984,6 +5100,27 @@ redef class ADoExpr
        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)
@@ -4064,6 +5201,32 @@ redef class AIfExpr
        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)
@@ -4167,6 +5330,38 @@ redef class AIfexprExpr
        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)
@@ -4259,6 +5454,37 @@ redef class AWhileExpr
        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)
@@ -4328,6 +5554,27 @@ redef class ALoopExpr
        end
     end
 
+               redef fun n_kwloop=(node)
+               do
+                       _n_kwloop = 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_kwloop)
@@ -4439,6 +5686,37 @@ redef class AForExpr
        end
     end
 
+               redef fun n_kwfor=(node)
+               do
+                       _n_kwfor = 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_kwfor)
@@ -4524,6 +5802,32 @@ redef class AAssertExpr
        end
     end
 
+               redef fun n_kwassert=(node)
+               do
+                       _n_kwassert = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               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_kwassert)
@@ -4575,6 +5879,18 @@ redef class AOnceExpr
        end
     end
 
+               redef fun n_kwonce=(node)
+               do
+                       _n_kwonce = 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_kwonce)
@@ -4607,6 +5923,13 @@ redef class ASendExpr
        end
     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_expr)
@@ -4651,6 +5974,18 @@ redef class ABinopExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4696,6 +6031,18 @@ redef class AOrExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4741,6 +6088,18 @@ redef class AAndExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4786,6 +6145,18 @@ redef class AOrElseExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4831,6 +6202,18 @@ redef class ANotExpr
        end
     end
 
+               redef fun n_kwnot=(node)
+               do
+                       _n_kwnot = 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_kwnot)
@@ -4876,6 +6259,18 @@ redef class AEqExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4921,6 +6316,18 @@ redef class AEeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -4966,6 +6373,18 @@ redef class ANeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5011,6 +6430,18 @@ redef class ALtExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5056,6 +6487,18 @@ redef class ALeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5101,6 +6544,18 @@ redef class ALlExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5146,6 +6601,18 @@ redef class AGtExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5191,6 +6658,18 @@ redef class AGeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5236,6 +6715,18 @@ redef class AGgExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5281,6 +6772,18 @@ redef class AIsaExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5326,6 +6829,18 @@ redef class APlusExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5371,6 +6886,18 @@ redef class AMinusExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5416,6 +6943,18 @@ redef class AStarshipExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5461,6 +7000,18 @@ redef class AStarExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5506,6 +7057,18 @@ redef class ASlashExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5551,6 +7114,18 @@ redef class APercentExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5596,6 +7171,18 @@ redef class AUminusExpr
        end
     end
 
+               redef fun n_minus=(node)
+               do
+                       _n_minus = 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_minus)
@@ -5669,6 +7256,30 @@ redef class ANewExpr
        end
     end
 
+               redef fun n_kwnew=(node)
+               do
+                       _n_kwnew = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwnew)
@@ -5718,6 +7329,18 @@ redef class AAttrExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = 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_expr)
@@ -5789,6 +7412,28 @@ redef class AAttrAssignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               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 n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5862,6 +7507,28 @@ redef class AAttrReassignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -5940,6 +7607,23 @@ redef class ACallExpr
         end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6028,6 +7712,33 @@ redef class ACallAssignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6115,6 +7826,33 @@ redef class ACallReassignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6178,6 +7916,25 @@ redef class ASuperExpr
        end
     end
 
+               redef fun n_qualified=(node)
+               do
+                       _n_qualified = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_kwsuper=(node)
+               do
+                       _n_kwsuper = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_qualified != null then
@@ -6239,6 +7996,23 @@ redef class AInitExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwinit=(node)
+               do
+                       _n_kwinit = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6303,6 +8077,18 @@ redef class ABraExpr
         end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6377,6 +8163,28 @@ redef class ABraAssignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign=(node)
+               do
+                       _n_assign = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6450,6 +8258,28 @@ redef class ABraReassignExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -6515,6 +8345,18 @@ redef class AClosureCallExpr
         end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_args=(node)
+               do
+                       _n_args = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -6550,6 +8392,13 @@ redef class AVarExpr
        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)
@@ -6607,6 +8456,23 @@ redef class AVarAssignExpr
        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 n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -6666,6 +8532,23 @@ redef class AVarReassignExpr
        end
     end
 
+               redef fun n_id=(node)
+               do
+                       _n_id = node
+                       node.parent = self
+               end
+               redef fun n_assign_op=(node)
+               do
+                       _n_assign_op = node
+                       node.parent = self
+               end
+               redef fun n_value=(node)
+               do
+                       _n_value = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_id)
@@ -6727,6 +8610,25 @@ redef class ARangeExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = 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
         v.enter_visit(_n_expr)
@@ -6816,6 +8718,35 @@ redef class ACrangeExpr
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = 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
         v.enter_visit(_n_obra)
@@ -6907,6 +8838,35 @@ redef class AOrangeExpr
        end
     end
 
+               redef fun n_obra=(node)
+               do
+                       _n_obra = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_expr2=(node)
+               do
+                       _n_expr2 = node
+                       node.parent = self
+               end
+               redef fun n_cbra=(node)
+               do
+                       _n_cbra = 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
         v.enter_visit(_n_obra)
@@ -6959,6 +8919,20 @@ redef class AArrayExpr
        end
     end
 
+               redef fun n_exprs=(node)
+               do
+                       _n_exprs = 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
         v.enter_visit(_n_exprs)
@@ -7008,6 +8982,20 @@ redef class ASelfExpr
        end
     end
 
+               redef fun n_kwself=(node)
+               do
+                       _n_kwself = 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
         v.enter_visit(_n_kwself)
@@ -7028,6 +9016,8 @@ redef class AImplicitSelfExpr
     do
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
     end
@@ -7073,6 +9063,20 @@ redef class ATrueExpr
        end
     end
 
+               redef fun n_kwtrue=(node)
+               do
+                       _n_kwtrue = 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
         v.enter_visit(_n_kwtrue)
@@ -7122,6 +9126,20 @@ redef class AFalseExpr
        end
     end
 
+               redef fun n_kwfalse=(node)
+               do
+                       _n_kwfalse = 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
         v.enter_visit(_n_kwfalse)
@@ -7171,6 +9189,20 @@ redef class ANullExpr
        end
     end
 
+               redef fun n_kwnull=(node)
+               do
+                       _n_kwnull = 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
         v.enter_visit(_n_kwnull)
@@ -7220,6 +9252,20 @@ redef class AIntExpr
        end
     end
 
+               redef fun n_number=(node)
+               do
+                       _n_number = 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
         v.enter_visit(_n_number)
@@ -7269,6 +9315,20 @@ redef class AFloatExpr
        end
     end
 
+               redef fun n_float=(node)
+               do
+                       _n_float = 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
         v.enter_visit(_n_float)
@@ -7318,6 +9378,20 @@ redef class ACharExpr
        end
     end
 
+               redef fun n_char=(node)
+               do
+                       _n_char = 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
         v.enter_visit(_n_char)
@@ -7367,6 +9441,20 @@ redef class AStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = 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
         v.enter_visit(_n_string)
@@ -7401,6 +9489,13 @@ redef class AStartStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7432,6 +9527,13 @@ redef class AMidStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7463,6 +9565,13 @@ redef class AEndStringExpr
        end
     end
 
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_string)
@@ -7514,6 +9623,15 @@ redef class ASuperstringExpr
        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
             for n in _n_exprs do
@@ -7591,6 +9709,30 @@ redef class AParExpr
        end
     end
 
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = 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
         v.enter_visit(_n_opar)
@@ -7679,6 +9821,33 @@ redef class AAsCastExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -7779,6 +9948,38 @@ redef class AAsNotnullExpr
        end
     end
 
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_kwnot=(node)
+               do
+                       _n_kwnot = node
+                       node.parent = self
+               end
+               redef fun n_kwnull=(node)
+               do
+                       _n_kwnull = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_expr)
@@ -7841,6 +10042,23 @@ redef class AIssetAttrExpr
        end
     end
 
+               redef fun n_kwisset=(node)
+               do
+                       _n_kwisset = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = 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_kwisset)
@@ -7913,6 +10131,28 @@ redef class ADebugTypeExpr
        end
     end
 
+               redef fun n_kwdebug=(node)
+               do
+                       _n_kwdebug = node
+                       node.parent = self
+               end
+               redef fun n_kwtype=(node)
+               do
+                       _n_kwtype = node
+                       node.parent = self
+               end
+               redef fun n_expr=(node)
+               do
+                       _n_expr = node
+                       node.parent = self
+               end
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwdebug)
@@ -7952,6 +10192,8 @@ redef class AListExprs
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_exprs do
@@ -8016,6 +10258,18 @@ redef class AParExprs
        end
     end
 
+               redef fun n_opar=(node)
+               do
+                       _n_opar = node
+                       node.parent = self
+               end
+               redef fun n_cpar=(node)
+               do
+                       _n_cpar = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_opar)
@@ -8082,6 +10336,18 @@ redef class ABraExprs
        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)
@@ -8117,6 +10383,13 @@ redef class APlusAssignOp
        end
     end
 
+               redef fun n_pluseq=(node)
+               do
+                       _n_pluseq = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_pluseq)
@@ -8148,6 +10421,13 @@ redef class AMinusAssignOp
        end
     end
 
+               redef fun n_minuseq=(node)
+               do
+                       _n_minuseq = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_minuseq)
@@ -8255,6 +10535,39 @@ redef class AClosureDef
        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_kwdo=(node)
+               do
+                       _n_kwdo = 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_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_bang)
@@ -8299,6 +10612,13 @@ redef class ASimpleClosureId
        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)
@@ -8330,6 +10650,13 @@ redef class ABreakClosureId
        end
     end
 
+               redef fun n_kwbreak=(node)
+               do
+                       _n_kwbreak = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwbreak)
@@ -8394,6 +10721,20 @@ redef class AModuleName
        end
     end
 
+               redef fun n_quad=(node)
+               do
+                       _n_quad = 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 visit_all(v: Visitor)
     do
         if _n_quad != null then
@@ -8449,6 +10790,13 @@ redef class AExternCalls
         end
     end
 
+               redef fun n_kwimport=(node)
+               do
+                       _n_kwimport = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwimport)
@@ -8469,6 +10817,8 @@ redef class AExternCall
     do
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
     end
@@ -8499,6 +10849,13 @@ redef class ASuperExternCall
        end
     end
 
+               redef fun n_kwsuper=(node)
+               do
+                       _n_kwsuper = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwsuper)
@@ -8530,6 +10887,13 @@ redef class ALocalPropExternCall
        end
     end
 
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_methid)
@@ -8589,6 +10953,25 @@ redef class AFullPropExternCall
        end
     end
 
+               redef fun n_classid=(node)
+               do
+                       _n_classid = node
+                       node.parent = self
+               end
+               redef fun n_quad=(node)
+               do
+                       _n_quad = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_methid=(node)
+               do
+                       _n_methid = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_classid)
@@ -8624,6 +11007,13 @@ redef class AInitPropExternCall
        end
     end
 
+               redef fun n_classid=(node)
+               do
+                       _n_classid = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_classid)
@@ -8681,6 +11071,23 @@ redef class ACastAsExternCall
        end
     end
 
+               redef fun n_from_type=(node)
+               do
+                       _n_from_type = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_to_type=(node)
+               do
+                       _n_to_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_from_type)
@@ -8740,6 +11147,23 @@ redef class AAsNullableExternCall
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_kwnullable=(node)
+               do
+                       _n_kwnullable = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_type)
@@ -8812,6 +11236,28 @@ redef class AAsNotNullableExternCall
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+               redef fun n_kwas=(node)
+               do
+                       _n_kwas = node
+                       node.parent = self
+               end
+               redef fun n_kwnot=(node)
+               do
+                       _n_kwnot = node
+                       node.parent = self
+               end
+               redef fun n_kwnullable=(node)
+               do
+                       _n_kwnullable = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_type)
@@ -8859,6 +11305,18 @@ redef class AInLanguage
        end
     end
 
+               redef fun n_kwin=(node)
+               do
+                       _n_kwin = node
+                       node.parent = self
+               end
+               redef fun n_string=(node)
+               do
+                       _n_string = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_kwin)
@@ -8906,6 +11364,20 @@ redef class AExternCodeBlock
        end
     end
 
+               redef fun n_in_language=(node)
+               do
+                       _n_in_language = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+               redef fun n_extern_code_segment=(node)
+               do
+                       _n_extern_code_segment = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         if _n_in_language != null then
@@ -8960,6 +11432,15 @@ redef class AQualified
        end
     end
 
+               redef fun n_classid=(node)
+               do
+                       _n_classid = node
+                       if node != null then
+                               node.parent = self
+                       end
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_id do
@@ -9001,6 +11482,8 @@ redef class ADoc
         end
     end
 
+
+
     redef fun visit_all(v: Visitor)
     do
             for n in _n_comment do
@@ -9084,6 +11567,29 @@ redef class AAnnotations
        end
     end
 
+               redef fun n_at=(node)
+               do
+                       _n_at = node
+                       if node != null then
+                               node.parent = self
+                       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 visit_all(v: Visitor)
     do
         if _n_at != null then
@@ -9189,6 +11695,34 @@ redef class AAnnotation
        end
     end
 
+               redef fun n_atid=(node)
+               do
+                       _n_atid = node
+                       node.parent = self
+               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_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_atid)
@@ -9232,6 +11766,13 @@ redef class ATypeAtArg
        end
     end
 
+               redef fun n_type=(node)
+               do
+                       _n_type = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_type)
@@ -9263,6 +11804,13 @@ redef class AExprAtArg
        end
     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_expr)
@@ -9294,6 +11842,13 @@ redef class AAtAtArg
        end
     end
 
+               redef fun n_annotations=(node)
+               do
+                       _n_annotations = node
+                       node.parent = self
+               end
+
+
     redef fun visit_all(v: Visitor)
     do
         v.enter_visit(_n_annotations)
@@ -9325,6 +11880,13 @@ redef class AIdAtid
        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)
@@ -9356,6 +11918,13 @@ redef class AKwexternAtid
        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)
@@ -9387,6 +11956,13 @@ redef class AKwinternAtid
        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)
@@ -9418,6 +11994,13 @@ redef class AKwreadableAtid
        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)
@@ -9449,6 +12032,13 @@ redef class AKwwritableAtid
        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)
@@ -9480,6 +12070,13 @@ redef class AKwimportAtid
        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)
index 45a6868..a1d34a1 100644 (file)
@@ -131,6 +131,24 @@ $   end
 $ end foreach
     end
 
+$   foreach {elem}
+$     if @is_list
+$     else
+               redef fun n_@{name}=(node)
+               do
+                       _n_@{name} = node
+$       if @modifier
+                       if node != null then
+                               node.parent = self
+                       end
+$       else
+                       node.parent = self
+$       end
+               end
+$     end
+$   end foreach
+
+
     redef fun visit_all(v: Visitor)
     do
 $   foreach {elem}