parser: regenerate with lambda
[nit.git] / src / parser / parser_abs.nit
index 91326e3..07db08a 100644 (file)
@@ -1,6 +1,6 @@
 # Raw AST node hierarchy.
 # This file was generated by SableCC (http://www.sablecc.org/).
 # Raw AST node hierarchy.
 # This file was generated by SableCC (http://www.sablecc.org/).
-module parser_abs
+module parser_abs is generated, no_warning("missing-doc")
 
 import location
 
 
 import location
 
@@ -31,6 +31,9 @@ end
 class TKwenum
        super Token
 end
 class TKwenum
        super Token
 end
+class TKwsubset
+       super Token
+end
 class TKwend
        super Token
 end
 class TKwend
        super Token
 end
@@ -52,18 +55,9 @@ end
 class TKwdo
        super Token
 end
 class TKwdo
        super Token
 end
-class TKwreadable
-       super Token
-end
-class TKwwritable
-       super Token
-end
 class TKwvar
        super Token
 end
 class TKwvar
        super Token
 end
-class TKwintern
-       super Token
-end
 class TKwextern
        super Token
 end
 class TKwextern
        super Token
 end
@@ -163,9 +157,18 @@ end
 class TKwlabel
        super Token
 end
 class TKwlabel
        super Token
 end
+class TKwwith
+       super Token
+end
 class TKwdebug
        super Token
 end
 class TKwdebug
        super Token
 end
+class TKwyield
+       super Token
+end
+class TKwcatch
+       super Token
+end
 class TOpar
        super Token
 end
 class TOpar
        super Token
 end
@@ -196,6 +199,33 @@ end
 class TMinuseq
        super Token
 end
 class TMinuseq
        super Token
 end
+class TStareq
+       super Token
+end
+class TSlasheq
+       super Token
+end
+class TPercenteq
+       super Token
+end
+class TStarstareq
+       super Token
+end
+class TPipeeq
+       super Token
+end
+class TCareteq
+       super Token
+end
+class TAmpeq
+       super Token
+end
+class TLleq
+       super Token
+end
+class TGgeq
+       super Token
+end
 class TDotdotdot
        super Token
 end
 class TDotdotdot
        super Token
 end
@@ -214,12 +244,27 @@ end
 class TStar
        super Token
 end
 class TStar
        super Token
 end
+class TStarstar
+       super Token
+end
 class TSlash
        super Token
 end
 class TPercent
        super Token
 end
 class TSlash
        super Token
 end
 class TPercent
        super Token
 end
+class TPipe
+       super Token
+end
+class TCaret
+       super Token
+end
+class TAmp
+       super Token
+end
+class TTilde
+       super Token
+end
 class TEq
        super Token
 end
 class TEq
        super Token
 end
@@ -250,9 +295,15 @@ end
 class TBang
        super Token
 end
 class TBang
        super Token
 end
+class TQuest
+       super Token
+end
 class TAt
        super Token
 end
 class TAt
        super Token
 end
+class TSemi
+       super Token
+end
 class TClassid
        super Token
 end
 class TClassid
        super Token
 end
@@ -262,10 +313,7 @@ end
 class TAttrid
        super Token
 end
 class TAttrid
        super Token
 end
-class TNumber
-       super Token
-end
-class THexNumber
+class TInteger
        super Token
 end
 class TFloat
        super Token
 end
 class TFloat
@@ -289,12 +337,18 @@ end
 class TBadString
        super Token
 end
 class TBadString
        super Token
 end
+class TBadTString
+       super Token
+end
 class TBadChar
        super Token
 end
 class TExternCodeSegment
        super Token
 end
 class TBadChar
        super Token
 end
 class TExternCodeSegment
        super Token
 end
+class TBadExtern
+       super Token
+end
 class EOF
        super Token
 end
 class EOF
        super Token
 end
@@ -315,10 +369,10 @@ class AVisibility super Prod end
 class AClassdef super Prod end
 class AClasskind super Prod end
 class AFormaldef super Prod end
 class AClassdef super Prod end
 class AClasskind super Prod end
 class AFormaldef super Prod end
-class ASuperclass super Prod end
 class APropdef super Prod end
 class APropdef super Prod end
-class AAble super Prod end
 class AMethid super Prod end
 class AMethid super Prod end
+class AQid super Prod end
+class AQclassid super Prod end
 class ASignature super Prod end
 class AParam super Prod end
 class AType super Prod end
 class ASignature super Prod end
 class AParam super Prod end
 class AType super Prod end
@@ -326,6 +380,7 @@ class ALabel super Prod end
 class AExpr super Prod end
 class AExprs super Prod end
 class AAssignOp super Prod end
 class AExpr super Prod end
 class AExprs super Prod end
 class AAssignOp super Prod end
+class AForGroup super Prod end
 class AModuleName super Prod end
 class AExternCalls super Prod end
 class AExternCall super Prod end
 class AModuleName super Prod end
 class AExternCalls super Prod end
 class AExternCall super Prod end
@@ -335,110 +390,66 @@ class AQualified super Prod end
 class ADoc super Prod end
 class AAnnotations super Prod end
 class AAnnotation super Prod end
 class ADoc super Prod end
 class AAnnotations super Prod end
 class AAnnotation super Prod end
-class AAtArg super Prod end
 class AAtid super Prod end
 
 class AModule
        super AModule
 class AAtid super Prod end
 
 class AModule
        super AModule
-       var _n_moduledecl: nullable AModuledecl = null
-       fun n_moduledecl: nullable AModuledecl do return _n_moduledecl
-       fun n_moduledecl=(n_moduledecl: nullable AModuledecl) do _n_moduledecl = n_moduledecl
+       var n_moduledecl: nullable AModuledecl = null is writable
        var n_imports: List[AImport] = new List[AImport]
        var n_extern_code_blocks: List[AExternCodeBlock] = new List[AExternCodeBlock]
        var n_classdefs: List[AClassdef] = new List[AClassdef]
 end
 class AModuledecl
        super AModuledecl
        var n_imports: List[AImport] = new List[AImport]
        var n_extern_code_blocks: List[AExternCodeBlock] = new List[AExternCodeBlock]
        var n_classdefs: List[AClassdef] = new List[AClassdef]
 end
 class AModuledecl
        super AModuledecl
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwmodule: TKwmodule = null
-       fun n_kwmodule: TKwmodule do return _n_kwmodule
-       fun n_kwmodule=(n_kwmodule: TKwmodule) do _n_kwmodule = n_kwmodule
-       var _n_name: AModuleName = null
-       fun n_name: AModuleName do return _n_name
-       fun n_name=(n_name: AModuleName) do _n_name = n_name
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwmodule: TKwmodule is writable, noinit
+       var n_name: AModuleName is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStdImport
        super AImport
 end
 class AStdImport
        super AImport
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwimport: TKwimport = null
-       fun n_kwimport: TKwimport do return _n_kwimport
-       fun n_kwimport=(n_kwimport: TKwimport) do _n_kwimport = n_kwimport
-       var _n_name: AModuleName = null
-       fun n_name: AModuleName do return _n_name
-       fun n_name=(n_name: AModuleName) do _n_name = n_name
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwimport: TKwimport is writable, noinit
+       var n_name: AModuleName is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ANoImport
        super AImport
 end
 class ANoImport
        super AImport
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwimport: TKwimport = null
-       fun n_kwimport: TKwimport do return _n_kwimport
-       fun n_kwimport=(n_kwimport: TKwimport) do _n_kwimport = n_kwimport
-       var _n_kwend: TKwend = null
-       fun n_kwend: TKwend do return _n_kwend
-       fun n_kwend=(n_kwend: TKwend) do _n_kwend = n_kwend
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwimport: TKwimport is writable, noinit
+       var n_kwend: TKwend is writable, noinit
 end
 class APublicVisibility
        super AVisibility
 end
 class APublicVisibility
        super AVisibility
+       var n_kwpublic: nullable TKwpublic = null is writable
 end
 class APrivateVisibility
        super AVisibility
 end
 class APrivateVisibility
        super AVisibility
-       var _n_kwprivate: TKwprivate = null
-       fun n_kwprivate: TKwprivate do return _n_kwprivate
-       fun n_kwprivate=(n_kwprivate: TKwprivate) do _n_kwprivate = n_kwprivate
+       var n_kwprivate: TKwprivate is writable, noinit
 end
 class AProtectedVisibility
        super AVisibility
 end
 class AProtectedVisibility
        super AVisibility
-       var _n_kwprotected: TKwprotected = null
-       fun n_kwprotected: TKwprotected do return _n_kwprotected
-       fun n_kwprotected=(n_kwprotected: TKwprotected) do _n_kwprotected = n_kwprotected
+       var n_kwprotected: TKwprotected is writable, noinit
 end
 class AIntrudeVisibility
        super AVisibility
 end
 class AIntrudeVisibility
        super AVisibility
-       var _n_kwintrude: TKwintrude = null
-       fun n_kwintrude: TKwintrude do return _n_kwintrude
-       fun n_kwintrude=(n_kwintrude: TKwintrude) do _n_kwintrude = n_kwintrude
+       var n_kwintrude: TKwintrude is writable, noinit
 end
 class AStdClassdef
        super AClassdef
 end
 class AStdClassdef
        super AClassdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_classkind: AClasskind = null
-       fun n_classkind: AClasskind do return _n_classkind
-       fun n_classkind=(n_classkind: AClasskind) do _n_classkind = n_classkind
-       var _n_id: nullable TClassid = null
-       fun n_id: nullable TClassid do return _n_id
-       fun n_id=(n_id: nullable TClassid) do _n_id = n_id
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_classkind: AClasskind is writable, noinit
+       var n_qid: nullable AQclassid = null is writable
+       var n_obra: nullable TObra = null is writable
        var n_formaldefs: List[AFormaldef] = new List[AFormaldef]
        var n_formaldefs: List[AFormaldef] = new List[AFormaldef]
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-       var _n_extern_code_block: nullable AExternCodeBlock = null
-       fun n_extern_code_block: nullable AExternCodeBlock do return _n_extern_code_block
-       fun n_extern_code_block=(n_extern_code_block: nullable AExternCodeBlock) do _n_extern_code_block = n_extern_code_block
-       var n_superclasses: List[ASuperclass] = new List[ASuperclass]
+       var n_cbra: nullable TCbra = null is writable
+       var n_extern_code_block: nullable AExternCodeBlock = null is writable
        var n_propdefs: List[APropdef] = new List[APropdef]
        var n_propdefs: List[APropdef] = new List[APropdef]
-       var _n_kwend: TKwend = null
-       fun n_kwend: TKwend do return _n_kwend
-       fun n_kwend=(n_kwend: TKwend) do _n_kwend = n_kwend
+       var n_kwend: TKwend is writable, noinit
 end
 class ATopClassdef
        super AClassdef
 end
 class ATopClassdef
        super AClassdef
@@ -450,1355 +461,783 @@ class AMainClassdef
 end
 class AConcreteClasskind
        super AClasskind
 end
 class AConcreteClasskind
        super AClasskind
-       var _n_kwclass: TKwclass = null
-       fun n_kwclass: TKwclass do return _n_kwclass
-       fun n_kwclass=(n_kwclass: TKwclass) do _n_kwclass = n_kwclass
+       var n_kwclass: TKwclass is writable, noinit
 end
 class AAbstractClasskind
        super AClasskind
 end
 class AAbstractClasskind
        super AClasskind
-       var _n_kwabstract: TKwabstract = null
-       fun n_kwabstract: TKwabstract do return _n_kwabstract
-       fun n_kwabstract=(n_kwabstract: TKwabstract) do _n_kwabstract = n_kwabstract
-       var _n_kwclass: TKwclass = null
-       fun n_kwclass: TKwclass do return _n_kwclass
-       fun n_kwclass=(n_kwclass: TKwclass) do _n_kwclass = n_kwclass
+       var n_kwabstract: TKwabstract is writable, noinit
+       var n_kwclass: TKwclass is writable, noinit
 end
 class AInterfaceClasskind
        super AClasskind
 end
 class AInterfaceClasskind
        super AClasskind
-       var _n_kwinterface: TKwinterface = null
-       fun n_kwinterface: TKwinterface do return _n_kwinterface
-       fun n_kwinterface=(n_kwinterface: TKwinterface) do _n_kwinterface = n_kwinterface
+       var n_kwinterface: TKwinterface is writable, noinit
 end
 class AEnumClasskind
        super AClasskind
 end
 class AEnumClasskind
        super AClasskind
-       var _n_kwenum: TKwenum = null
-       fun n_kwenum: TKwenum do return _n_kwenum
-       fun n_kwenum=(n_kwenum: TKwenum) do _n_kwenum = n_kwenum
+       var n_kwenum: TKwenum is writable, noinit
 end
 class AExternClasskind
        super AClasskind
 end
 class AExternClasskind
        super AClasskind
-       var _n_kwextern: TKwextern = null
-       fun n_kwextern: TKwextern do return _n_kwextern
-       fun n_kwextern=(n_kwextern: TKwextern) do _n_kwextern = n_kwextern
-       var _n_kwclass: nullable TKwclass = null
-       fun n_kwclass: nullable TKwclass do return _n_kwclass
-       fun n_kwclass=(n_kwclass: nullable TKwclass) do _n_kwclass = n_kwclass
+       var n_kwextern: TKwextern is writable, noinit
+       var n_kwclass: nullable TKwclass = null is writable
+end
+class ASubsetClasskind
+       super AClasskind
+       var n_kwsubset: TKwsubset is writable, noinit
 end
 class AFormaldef
        super AFormaldef
 end
 class AFormaldef
        super AFormaldef
-       var _n_id: TClassid = null
-       fun n_id: TClassid do return _n_id
-       fun n_id=(n_id: TClassid) do _n_id = n_id
-       var _n_type: nullable AType = null
-       fun n_type: nullable AType do return _n_type
-       fun n_type=(n_type: nullable AType) do _n_type = n_type
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-end
-class ASuperclass
-       super ASuperclass
-       var _n_kwsuper: TKwsuper = null
-       fun n_kwsuper: TKwsuper do return _n_kwsuper
-       fun n_kwsuper=(n_kwsuper: TKwsuper) do _n_kwsuper = n_kwsuper
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_id: TClassid is writable, noinit
+       var n_type: nullable AType = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AAttrPropdef
        super APropdef
 end
 class AAttrPropdef
        super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_readable: nullable AAble = null
-       fun n_readable: nullable AAble do return _n_readable
-       fun n_readable=(n_readable: nullable AAble) do _n_readable = n_readable
-       var _n_writable: nullable AAble = null
-       fun n_writable: nullable AAble do return _n_writable
-       fun n_writable=(n_writable: nullable AAble) do _n_writable = n_writable
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwvar: TKwvar = null
-       fun n_kwvar: TKwvar do return _n_kwvar
-       fun n_kwvar=(n_kwvar: TKwvar) do _n_kwvar = n_kwvar
-       var _n_id: nullable TAttrid = null
-       fun n_id: nullable TAttrid do return _n_id
-       fun n_id=(n_id: nullable TAttrid) do _n_id = n_id
-       var _n_id2: nullable TId = null
-       fun n_id2: nullable TId do return _n_id2
-       fun n_id2=(n_id2: nullable TId) do _n_id2 = n_id2
-       var _n_type: nullable AType = null
-       fun n_type: nullable AType do return _n_type
-       fun n_type=(n_type: nullable AType) do _n_type = n_type
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-       var _n_expr: nullable AExpr = null
-       fun n_expr: nullable AExpr do return _n_expr
-       fun n_expr=(n_expr: nullable AExpr) do _n_expr = n_expr
-end
-class AMethPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-end
-class ADeferredMethPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwmeth: TKwmeth = null
-       fun n_kwmeth: TKwmeth do return _n_kwmeth
-       fun n_kwmeth=(n_kwmeth: TKwmeth) do _n_kwmeth = n_kwmeth
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-end
-class AInternMethPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwmeth: TKwmeth = null
-       fun n_kwmeth: TKwmeth do return _n_kwmeth
-       fun n_kwmeth=(n_kwmeth: TKwmeth) do _n_kwmeth = n_kwmeth
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-end
-class AInternNewPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwnew: TKwnew = null
-       fun n_kwnew: TKwnew do return _n_kwnew
-       fun n_kwnew=(n_kwnew: TKwnew) do _n_kwnew = n_kwnew
-       var _n_methid: nullable AMethid = null
-       fun n_methid: nullable AMethid do return _n_methid
-       fun n_methid=(n_methid: nullable AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-end
-class AExternMethPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwmeth: TKwmeth = null
-       fun n_kwmeth: TKwmeth do return _n_kwmeth
-       fun n_kwmeth=(n_kwmeth: TKwmeth) do _n_kwmeth = n_kwmeth
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-       var _n_extern: nullable TString = null
-       fun n_extern: nullable TString do return _n_extern
-       fun n_extern=(n_extern: nullable TString) do _n_extern = n_extern
-       var _n_extern_calls: nullable AExternCalls = null
-       fun n_extern_calls: nullable AExternCalls do return _n_extern_calls
-       fun n_extern_calls=(n_extern_calls: nullable AExternCalls) do _n_extern_calls = n_extern_calls
-       var _n_extern_code_block: nullable AExternCodeBlock = null
-       fun n_extern_code_block: nullable AExternCodeBlock do return _n_extern_code_block
-       fun n_extern_code_block=(n_extern_code_block: nullable AExternCodeBlock) do _n_extern_code_block = n_extern_code_block
-end
-class AConcreteMethPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwmeth: TKwmeth = null
-       fun n_kwmeth: TKwmeth do return _n_kwmeth
-       fun n_kwmeth=(n_kwmeth: TKwmeth) do _n_kwmeth = n_kwmeth
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
-end
-class AConcreteInitPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwinit: TKwinit = null
-       fun n_kwinit: TKwinit do return _n_kwinit
-       fun n_kwinit=(n_kwinit: TKwinit) do _n_kwinit = n_kwinit
-       var _n_methid: nullable AMethid = null
-       fun n_methid: nullable AMethid do return _n_methid
-       fun n_methid=(n_methid: nullable AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
-end
-class AExternInitPropdef
-       super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwnew: TKwnew = null
-       fun n_kwnew: TKwnew do return _n_kwnew
-       fun n_kwnew=(n_kwnew: TKwnew) do _n_kwnew = n_kwnew
-       var _n_methid: nullable AMethid = null
-       fun n_methid: nullable AMethid do return _n_methid
-       fun n_methid=(n_methid: nullable AMethid) do _n_methid = n_methid
-       var _n_signature: ASignature = null
-       fun n_signature: ASignature do return _n_signature
-       fun n_signature=(n_signature: ASignature) do _n_signature = n_signature
-       var _n_extern: nullable TString = null
-       fun n_extern: nullable TString do return _n_extern
-       fun n_extern=(n_extern: nullable TString) do _n_extern = n_extern
-       var _n_extern_calls: nullable AExternCalls = null
-       fun n_extern_calls: nullable AExternCalls do return _n_extern_calls
-       fun n_extern_calls=(n_extern_calls: nullable AExternCalls) do _n_extern_calls = n_extern_calls
-       var _n_extern_code_block: nullable AExternCodeBlock = null
-       fun n_extern_code_block: nullable AExternCodeBlock do return _n_extern_code_block
-       fun n_extern_code_block=(n_extern_code_block: nullable AExternCodeBlock) do _n_extern_code_block = n_extern_code_block
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwvar: TKwvar is writable, noinit
+       var n_id2: TId is writable, noinit
+       var n_type: nullable AType = null is writable
+       var n_assign: nullable TAssign = null is writable
+       var n_expr: nullable AExpr = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
+       var n_kwdo: nullable TKwdo = null is writable
+       var n_block: nullable AExpr = null is writable
+       var n_kwend: nullable TKwend = null is writable
 end
 class AMainMethPropdef
        super APropdef
 end
 class AMainMethPropdef
        super APropdef
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_block: nullable AExpr = null is writable
 end
 class ATypePropdef
        super APropdef
 end
 class ATypePropdef
        super APropdef
-       var _n_doc: nullable ADoc = null
-       fun n_doc: nullable ADoc do return _n_doc
-       fun n_doc=(n_doc: nullable ADoc) do _n_doc = n_doc
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: AVisibility = null
-       fun n_visibility: AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: AVisibility) do _n_visibility = n_visibility
-       var _n_kwtype: TKwtype = null
-       fun n_kwtype: TKwtype do return _n_kwtype
-       fun n_kwtype=(n_kwtype: TKwtype) do _n_kwtype = n_kwtype
-       var _n_id: TClassid = null
-       fun n_id: TClassid do return _n_id
-       fun n_id=(n_id: TClassid) do _n_id = n_id
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-end
-class AReadAble
-       super AAble
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_kwreadable: TKwreadable = null
-       fun n_kwreadable: TKwreadable do return _n_kwreadable
-       fun n_kwreadable=(n_kwreadable: TKwreadable) do _n_kwreadable = n_kwreadable
-end
-class AWriteAble
-       super AAble
-       var _n_kwredef: nullable TKwredef = null
-       fun n_kwredef: nullable TKwredef do return _n_kwredef
-       fun n_kwredef=(n_kwredef: nullable TKwredef) do _n_kwredef = n_kwredef
-       var _n_visibility: nullable AVisibility = null
-       fun n_visibility: nullable AVisibility do return _n_visibility
-       fun n_visibility=(n_visibility: nullable AVisibility) do _n_visibility = n_visibility
-       var _n_kwwritable: TKwwritable = null
-       fun n_kwwritable: TKwwritable do return _n_kwwritable
-       fun n_kwwritable=(n_kwwritable: TKwwritable) do _n_kwwritable = n_kwwritable
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwtype: TKwtype is writable, noinit
+       var n_qid: AQclassid is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
+end
+class AMethPropdef
+       super APropdef
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwmeth: nullable TKwmeth = null is writable
+       var n_kwinit: nullable TKwinit = null is writable
+       var n_kwisa: nullable TKwisa = null is writable
+       var n_kwnew: nullable TKwnew = null is writable
+       var n_methid: nullable AMethid = null is writable
+       var n_signature: ASignature is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
+       var n_extern_calls: nullable AExternCalls = null is writable
+       var n_extern_code_block: nullable AExternCodeBlock = null is writable
+       var n_kwdo: nullable TKwdo = null is writable
+       var n_block: nullable AExpr = null is writable
+       var n_kwend: nullable TKwend = null is writable
+end
+class ASuperPropdef
+       super APropdef
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwsuper: TKwsuper is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
+end
+class AAnnotPropdef
+       super APropdef
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: nullable AVisibility = null is writable
+       var n_atid: AAtid is writable, noinit
+       var n_opar: nullable TOpar = null is writable
+       var n_args: List[AExpr] = new List[AExpr]
+       var n_cpar: nullable TCpar = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AIdMethid
        super AMethid
 end
 class AIdMethid
        super AMethid
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
+       var n_id: TId is writable, noinit
 end
 class APlusMethid
        super AMethid
 end
 class APlusMethid
        super AMethid
-       var _n_plus: TPlus = null
-       fun n_plus: TPlus do return _n_plus
-       fun n_plus=(n_plus: TPlus) do _n_plus = n_plus
+       var n_op: TPlus is writable, noinit
 end
 class AMinusMethid
        super AMethid
 end
 class AMinusMethid
        super AMethid
-       var _n_minus: TMinus = null
-       fun n_minus: TMinus do return _n_minus
-       fun n_minus=(n_minus: TMinus) do _n_minus = n_minus
+       var n_op: TMinus is writable, noinit
 end
 class AStarMethid
        super AMethid
 end
 class AStarMethid
        super AMethid
-       var _n_star: TStar = null
-       fun n_star: TStar do return _n_star
-       fun n_star=(n_star: TStar) do _n_star = n_star
+       var n_op: TStar is writable, noinit
+end
+class AStarstarMethid
+       super AMethid
+       var n_op: TStarstar is writable, noinit
 end
 class ASlashMethid
        super AMethid
 end
 class ASlashMethid
        super AMethid
-       var _n_slash: TSlash = null
-       fun n_slash: TSlash do return _n_slash
-       fun n_slash=(n_slash: TSlash) do _n_slash = n_slash
+       var n_op: TSlash is writable, noinit
 end
 class APercentMethid
        super AMethid
 end
 class APercentMethid
        super AMethid
-       var _n_percent: TPercent = null
-       fun n_percent: TPercent do return _n_percent
-       fun n_percent=(n_percent: TPercent) do _n_percent = n_percent
+       var n_op: TPercent is writable, noinit
 end
 class AEqMethid
        super AMethid
 end
 class AEqMethid
        super AMethid
-       var _n_eq: TEq = null
-       fun n_eq: TEq do return _n_eq
-       fun n_eq=(n_eq: TEq) do _n_eq = n_eq
+       var n_op: TEq is writable, noinit
 end
 class ANeMethid
        super AMethid
 end
 class ANeMethid
        super AMethid
-       var _n_ne: TNe = null
-       fun n_ne: TNe do return _n_ne
-       fun n_ne=(n_ne: TNe) do _n_ne = n_ne
+       var n_op: TNe is writable, noinit
 end
 class ALeMethid
        super AMethid
 end
 class ALeMethid
        super AMethid
-       var _n_le: TLe = null
-       fun n_le: TLe do return _n_le
-       fun n_le=(n_le: TLe) do _n_le = n_le
+       var n_op: TLe is writable, noinit
 end
 class AGeMethid
        super AMethid
 end
 class AGeMethid
        super AMethid
-       var _n_ge: TGe = null
-       fun n_ge: TGe do return _n_ge
-       fun n_ge=(n_ge: TGe) do _n_ge = n_ge
+       var n_op: TGe is writable, noinit
 end
 class ALtMethid
        super AMethid
 end
 class ALtMethid
        super AMethid
-       var _n_lt: TLt = null
-       fun n_lt: TLt do return _n_lt
-       fun n_lt=(n_lt: TLt) do _n_lt = n_lt
+       var n_op: TLt is writable, noinit
 end
 class AGtMethid
        super AMethid
 end
 class AGtMethid
        super AMethid
-       var _n_gt: TGt = null
-       fun n_gt: TGt do return _n_gt
-       fun n_gt=(n_gt: TGt) do _n_gt = n_gt
+       var n_op: TGt is writable, noinit
 end
 class ALlMethid
        super AMethid
 end
 class ALlMethid
        super AMethid
-       var _n_ll: TLl = null
-       fun n_ll: TLl do return _n_ll
-       fun n_ll=(n_ll: TLl) do _n_ll = n_ll
+       var n_op: TLl is writable, noinit
 end
 class AGgMethid
        super AMethid
 end
 class AGgMethid
        super AMethid
-       var _n_gg: TGg = null
-       fun n_gg: TGg do return _n_gg
-       fun n_gg=(n_gg: TGg) do _n_gg = n_gg
+       var n_op: TGg is writable, noinit
 end
 end
-class ABraMethid
+class AStarshipMethid
        super AMethid
        super AMethid
-       var _n_obra: TObra = null
-       fun n_obra: TObra do return _n_obra
-       fun n_obra=(n_obra: TObra) do _n_obra = n_obra
-       var _n_cbra: TCbra = null
-       fun n_cbra: TCbra do return _n_cbra
-       fun n_cbra=(n_cbra: TCbra) do _n_cbra = n_cbra
+       var n_op: TStarship is writable, noinit
 end
 end
-class AStarshipMethid
+class APipeMethid
        super AMethid
        super AMethid
-       var _n_starship: TStarship = null
-       fun n_starship: TStarship do return _n_starship
-       fun n_starship=(n_starship: TStarship) do _n_starship = n_starship
+       var n_op: TPipe is writable, noinit
+end
+class ACaretMethid
+       super AMethid
+       var n_op: TCaret is writable, noinit
+end
+class AAmpMethid
+       super AMethid
+       var n_op: TAmp is writable, noinit
+end
+class ATildeMethid
+       super AMethid
+       var n_op: TTilde is writable, noinit
+end
+class ABraMethid
+       super AMethid
+       var n_obra: TObra is writable, noinit
+       var n_cbra: TCbra is writable, noinit
 end
 class AAssignMethid
        super AMethid
 end
 class AAssignMethid
        super AMethid
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_assign: TAssign = null
-       fun n_assign: TAssign do return _n_assign
-       fun n_assign=(n_assign: TAssign) do _n_assign = n_assign
+       var n_id: TId is writable, noinit
+       var n_assign: TAssign is writable, noinit
 end
 class ABraassignMethid
        super AMethid
 end
 class ABraassignMethid
        super AMethid
-       var _n_obra: TObra = null
-       fun n_obra: TObra do return _n_obra
-       fun n_obra=(n_obra: TObra) do _n_obra = n_obra
-       var _n_cbra: TCbra = null
-       fun n_cbra: TCbra do return _n_cbra
-       fun n_cbra=(n_cbra: TCbra) do _n_cbra = n_cbra
-       var _n_assign: TAssign = null
-       fun n_assign: TAssign do return _n_assign
-       fun n_assign=(n_assign: TAssign) do _n_assign = n_assign
+       var n_obra: TObra is writable, noinit
+       var n_cbra: TCbra is writable, noinit
+       var n_assign: TAssign is writable, noinit
+end
+class AQid
+       super AQid
+       var n_qualified: nullable AQualified = null is writable
+       var n_id: TId is writable, noinit
+end
+class AQclassid
+       super AQclassid
+       var n_qualified: nullable AQualified = null is writable
+       var n_id: TClassid is writable, noinit
 end
 class ASignature
        super ASignature
 end
 class ASignature
        super ASignature
-       var _n_opar: nullable TOpar = null
-       fun n_opar: nullable TOpar do return _n_opar
-       fun n_opar=(n_opar: nullable TOpar) do _n_opar = n_opar
+       var n_opar: nullable TOpar = null is writable
        var n_params: List[AParam] = new List[AParam]
        var n_params: List[AParam] = new List[AParam]
-       var _n_cpar: nullable TCpar = null
-       fun n_cpar: nullable TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: nullable TCpar) do _n_cpar = n_cpar
-       var _n_type: nullable AType = null
-       fun n_type: nullable AType do return _n_type
-       fun n_type=(n_type: nullable AType) do _n_type = n_type
+       var n_cpar: nullable TCpar = null is writable
+       var n_type: nullable AType = null is writable
 end
 class AParam
        super AParam
 end
 class AParam
        super AParam
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_type: nullable AType = null
-       fun n_type: nullable AType do return _n_type
-       fun n_type=(n_type: nullable AType) do _n_type = n_type
-       var _n_dotdotdot: nullable TDotdotdot = null
-       fun n_dotdotdot: nullable TDotdotdot do return _n_dotdotdot
-       fun n_dotdotdot=(n_dotdotdot: nullable TDotdotdot) do _n_dotdotdot = n_dotdotdot
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_id: TId is writable, noinit
+       var n_type: nullable AType = null is writable
+       var n_dotdotdot: nullable TDotdotdot = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AType
        super AType
 end
 class AType
        super AType
-       var _n_kwnullable: nullable TKwnullable = null
-       fun n_kwnullable: nullable TKwnullable do return _n_kwnullable
-       fun n_kwnullable=(n_kwnullable: nullable TKwnullable) do _n_kwnullable = n_kwnullable
-       var _n_id: TClassid = null
-       fun n_id: TClassid do return _n_id
-       fun n_id=(n_id: TClassid) do _n_id = n_id
+       var n_kwnullable: nullable TKwnullable = null is writable
+       var n_qid: AQclassid is writable, noinit
+       var n_obra: nullable TObra = null is writable
        var n_types: List[AType] = new List[AType]
        var n_types: List[AType] = new List[AType]
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_cbra: nullable TCbra = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ALabel
        super ALabel
 end
 class ALabel
        super ALabel
-       var _n_kwlabel: TKwlabel = null
-       fun n_kwlabel: TKwlabel do return _n_kwlabel
-       fun n_kwlabel=(n_kwlabel: TKwlabel) do _n_kwlabel = n_kwlabel
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
+       var n_kwlabel: TKwlabel is writable, noinit
+       var n_id: nullable TId = null is writable
 end
 class ABlockExpr
        super AExpr
        var n_expr: List[AExpr] = new List[AExpr]
 end
 class ABlockExpr
        super AExpr
        var n_expr: List[AExpr] = new List[AExpr]
-       var _n_kwend: nullable TKwend = null
-       fun n_kwend: nullable TKwend do return _n_kwend
-       fun n_kwend=(n_kwend: nullable TKwend) do _n_kwend = n_kwend
+       var n_kwend: nullable TKwend = null is writable
 end
 class AVardeclExpr
        super AExpr
 end
 class AVardeclExpr
        super AExpr
-       var _n_kwvar: TKwvar = null
-       fun n_kwvar: TKwvar do return _n_kwvar
-       fun n_kwvar=(n_kwvar: TKwvar) do _n_kwvar = n_kwvar
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_type: nullable AType = null
-       fun n_type: nullable AType do return _n_type
-       fun n_type=(n_type: nullable AType) do _n_type = n_type
-       var _n_assign: nullable TAssign = null
-       fun n_assign: nullable TAssign do return _n_assign
-       fun n_assign=(n_assign: nullable TAssign) do _n_assign = n_assign
-       var _n_expr: nullable AExpr = null
-       fun n_expr: nullable AExpr do return _n_expr
-       fun n_expr=(n_expr: nullable AExpr) do _n_expr = n_expr
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_kwvar: nullable TKwvar = null is writable
+       var n_id: TId is writable, noinit
+       var n_type: nullable AType = null is writable
+       var n_assign: nullable TAssign = null is writable
+       var n_expr: nullable AExpr = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AReturnExpr
        super AExpr
 end
 class AReturnExpr
        super AExpr
-       var _n_kwreturn: nullable TKwreturn = null
-       fun n_kwreturn: nullable TKwreturn do return _n_kwreturn
-       fun n_kwreturn=(n_kwreturn: nullable TKwreturn) do _n_kwreturn = n_kwreturn
-       var _n_expr: nullable AExpr = null
-       fun n_expr: nullable AExpr do return _n_expr
-       fun n_expr=(n_expr: nullable AExpr) do _n_expr = n_expr
+       var n_kwreturn: nullable TKwreturn = null is writable
+       var n_expr: nullable AExpr = null is writable
+end
+class AYieldExpr
+       super AExpr
+       var n_kwyield: TKwyield is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class ABreakExpr
        super AExpr
 end
 class ABreakExpr
        super AExpr
-       var _n_kwbreak: TKwbreak = null
-       fun n_kwbreak: TKwbreak do return _n_kwbreak
-       fun n_kwbreak=(n_kwbreak: TKwbreak) do _n_kwbreak = n_kwbreak
-       var _n_label: nullable ALabel = null
-       fun n_label: nullable ALabel do return _n_label
-       fun n_label=(n_label: nullable ALabel) do _n_label = n_label
-       var _n_expr: nullable AExpr = null
-       fun n_expr: nullable AExpr do return _n_expr
-       fun n_expr=(n_expr: nullable AExpr) do _n_expr = n_expr
+       var n_kwbreak: TKwbreak is writable, noinit
+       var n_label: nullable ALabel = null is writable
 end
 class AAbortExpr
        super AExpr
 end
 class AAbortExpr
        super AExpr
-       var _n_kwabort: TKwabort = null
-       fun n_kwabort: TKwabort do return _n_kwabort
-       fun n_kwabort=(n_kwabort: TKwabort) do _n_kwabort = n_kwabort
+       var n_kwabort: TKwabort is writable, noinit
 end
 class AContinueExpr
        super AExpr
 end
 class AContinueExpr
        super AExpr
-       var _n_kwcontinue: nullable TKwcontinue = null
-       fun n_kwcontinue: nullable TKwcontinue do return _n_kwcontinue
-       fun n_kwcontinue=(n_kwcontinue: nullable TKwcontinue) do _n_kwcontinue = n_kwcontinue
-       var _n_label: nullable ALabel = null
-       fun n_label: nullable ALabel do return _n_label
-       fun n_label=(n_label: nullable ALabel) do _n_label = n_label
-       var _n_expr: nullable AExpr = null
-       fun n_expr: nullable AExpr do return _n_expr
-       fun n_expr=(n_expr: nullable AExpr) do _n_expr = n_expr
+       var n_kwcontinue: nullable TKwcontinue = null is writable
+       var n_label: nullable ALabel = null is writable
 end
 class ADoExpr
        super AExpr
 end
 class ADoExpr
        super AExpr
-       var _n_kwdo: TKwdo = null
-       fun n_kwdo: TKwdo do return _n_kwdo
-       fun n_kwdo=(n_kwdo: TKwdo) do _n_kwdo = n_kwdo
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
-       var _n_label: nullable ALabel = null
-       fun n_label: nullable ALabel do return _n_label
-       fun n_label=(n_label: nullable ALabel) do _n_label = n_label
+       var n_kwdo: TKwdo is writable, noinit
+       var n_block: nullable AExpr = null is writable
+       var n_kwcatch: nullable TKwcatch = null is writable
+       var n_catch: nullable AExpr = null is writable
+       var n_label: nullable ALabel = null is writable
 end
 class AIfExpr
        super AExpr
 end
 class AIfExpr
        super AExpr
-       var _n_kwif: TKwif = null
-       fun n_kwif: TKwif do return _n_kwif
-       fun n_kwif=(n_kwif: TKwif) do _n_kwif = n_kwif
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_then: nullable AExpr = null
-       fun n_then: nullable AExpr do return _n_then
-       fun n_then=(n_then: nullable AExpr) do _n_then = n_then
-       var _n_else: nullable AExpr = null
-       fun n_else: nullable AExpr do return _n_else
-       fun n_else=(n_else: nullable AExpr) do _n_else = n_else
+       var n_kwif: TKwif is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_kwthen: TKwthen is writable, noinit
+       var n_then: nullable AExpr = null is writable
+       var n_kwelse: nullable TKwelse = null is writable
+       var n_else: nullable AExpr = null is writable
 end
 class AIfexprExpr
        super AExpr
 end
 class AIfexprExpr
        super AExpr
-       var _n_kwif: TKwif = null
-       fun n_kwif: TKwif do return _n_kwif
-       fun n_kwif=(n_kwif: TKwif) do _n_kwif = n_kwif
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_kwthen: TKwthen = null
-       fun n_kwthen: TKwthen do return _n_kwthen
-       fun n_kwthen=(n_kwthen: TKwthen) do _n_kwthen = n_kwthen
-       var _n_then: AExpr = null
-       fun n_then: AExpr do return _n_then
-       fun n_then=(n_then: AExpr) do _n_then = n_then
-       var _n_kwelse: TKwelse = null
-       fun n_kwelse: TKwelse do return _n_kwelse
-       fun n_kwelse=(n_kwelse: TKwelse) do _n_kwelse = n_kwelse
-       var _n_else: AExpr = null
-       fun n_else: AExpr do return _n_else
-       fun n_else=(n_else: AExpr) do _n_else = n_else
+       var n_kwif: TKwif is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_kwthen: TKwthen is writable, noinit
+       var n_then: AExpr is writable, noinit
+       var n_kwelse: TKwelse is writable, noinit
+       var n_else: AExpr is writable, noinit
 end
 class AWhileExpr
        super AExpr
 end
 class AWhileExpr
        super AExpr
-       var _n_kwwhile: TKwwhile = null
-       fun n_kwwhile: TKwwhile do return _n_kwwhile
-       fun n_kwwhile=(n_kwwhile: TKwwhile) do _n_kwwhile = n_kwwhile
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_kwdo: TKwdo = null
-       fun n_kwdo: TKwdo do return _n_kwdo
-       fun n_kwdo=(n_kwdo: TKwdo) do _n_kwdo = n_kwdo
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
-       var _n_label: nullable ALabel = null
-       fun n_label: nullable ALabel do return _n_label
-       fun n_label=(n_label: nullable ALabel) do _n_label = n_label
+       var n_kwwhile: TKwwhile is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_kwdo: TKwdo is writable, noinit
+       var n_block: nullable AExpr = null is writable
+       var n_label: nullable ALabel = null is writable
 end
 class ALoopExpr
        super AExpr
 end
 class ALoopExpr
        super AExpr
-       var _n_kwloop: TKwloop = null
-       fun n_kwloop: TKwloop do return _n_kwloop
-       fun n_kwloop=(n_kwloop: TKwloop) do _n_kwloop = n_kwloop
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
-       var _n_label: nullable ALabel = null
-       fun n_label: nullable ALabel do return _n_label
-       fun n_label=(n_label: nullable ALabel) do _n_label = n_label
+       var n_kwloop: TKwloop is writable, noinit
+       var n_block: nullable AExpr = null is writable
+       var n_label: nullable ALabel = null is writable
 end
 class AForExpr
        super AExpr
 end
 class AForExpr
        super AExpr
-       var _n_kwfor: TKwfor = null
-       fun n_kwfor: TKwfor do return _n_kwfor
-       fun n_kwfor=(n_kwfor: TKwfor) do _n_kwfor = n_kwfor
-       var n_ids: List[TId] = new List[TId]
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_kwdo: TKwdo = null
-       fun n_kwdo: TKwdo do return _n_kwdo
-       fun n_kwdo=(n_kwdo: TKwdo) do _n_kwdo = n_kwdo
-       var _n_block: nullable AExpr = null
-       fun n_block: nullable AExpr do return _n_block
-       fun n_block=(n_block: nullable AExpr) do _n_block = n_block
-       var _n_label: nullable ALabel = null
-       fun n_label: nullable ALabel do return _n_label
-       fun n_label=(n_label: nullable ALabel) do _n_label = n_label
+       var n_kwfor: TKwfor is writable, noinit
+       var n_groups: List[AForGroup] = new List[AForGroup]
+       var n_kwdo: TKwdo is writable, noinit
+       var n_block: nullable AExpr = null is writable
+       var n_label: nullable ALabel = null is writable
+end
+class AWithExpr
+       super AExpr
+       var n_kwwith: TKwwith is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_kwdo: TKwdo is writable, noinit
+       var n_block: nullable AExpr = null is writable
+       var n_label: nullable ALabel = null is writable
 end
 class AAssertExpr
        super AExpr
 end
 class AAssertExpr
        super AExpr
-       var _n_kwassert: TKwassert = null
-       fun n_kwassert: TKwassert do return _n_kwassert
-       fun n_kwassert=(n_kwassert: TKwassert) do _n_kwassert = n_kwassert
-       var _n_id: nullable TId = null
-       fun n_id: nullable TId do return _n_id
-       fun n_id=(n_id: nullable TId) do _n_id = n_id
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_else: nullable AExpr = null
-       fun n_else: nullable AExpr do return _n_else
-       fun n_else=(n_else: nullable AExpr) do _n_else = n_else
+       var n_kwassert: TKwassert is writable, noinit
+       var n_id: nullable TId = null is writable
+       var n_expr: AExpr is writable, noinit
+       var n_kwelse: nullable TKwelse = null is writable
+       var n_else: nullable AExpr = null is writable
 end
 class AOnceExpr
        super AExpr
 end
 class AOnceExpr
        super AExpr
-       var _n_kwonce: TKwonce = null
-       fun n_kwonce: TKwonce do return _n_kwonce
-       fun n_kwonce=(n_kwonce: TKwonce) do _n_kwonce = n_kwonce
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
+       var n_kwonce: TKwonce is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class ASendExpr
        super AExpr
 end
 class ASendExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
+       var n_expr: AExpr is writable, noinit
 end
 class ABinopExpr
        super AExpr
 end
 class ABinopExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AOrExpr
        super AExpr
 end
 class AOrExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwor is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AAndExpr
        super AExpr
 end
 class AAndExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwand is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AOrElseExpr
        super AExpr
 end
 class AOrElseExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwor is writable, noinit
+       var n_kwelse: TKwelse is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AImpliesExpr
        super AExpr
 end
 class AImpliesExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwimplies is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ANotExpr
        super AExpr
 end
 class ANotExpr
        super AExpr
-       var _n_kwnot: TKwnot = null
-       fun n_kwnot: TKwnot do return _n_kwnot
-       fun n_kwnot=(n_kwnot: TKwnot) do _n_kwnot = n_kwnot
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
+       var n_kwnot: TKwnot is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class AEqExpr
        super AExpr
 end
 class AEqExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TEq is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ANeExpr
        super AExpr
 end
 class ANeExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TNe is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ALtExpr
        super AExpr
 end
 class ALtExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TLt is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ALeExpr
        super AExpr
 end
 class ALeExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TLe is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ALlExpr
        super AExpr
 end
 class ALlExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TLl is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AGtExpr
        super AExpr
 end
 class AGtExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TGt is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AGeExpr
        super AExpr
 end
 class AGeExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TGe is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AGgExpr
        super AExpr
 end
 class AGgExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TGg is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AIsaExpr
        super AExpr
 end
 class AIsaExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
+       var n_expr: AExpr is writable, noinit
+       var n_kwisa: TKwisa is writable, noinit
+       var n_type: AType is writable, noinit
 end
 class APlusExpr
        super AExpr
 end
 class APlusExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TPlus is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AMinusExpr
        super AExpr
 end
 class AMinusExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TMinus is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AStarshipExpr
        super AExpr
 end
 class AStarshipExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TStarship is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AStarExpr
        super AExpr
 end
 class AStarExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TStar is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+end
+class AStarstarExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_op: TStarstar is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ASlashExpr
        super AExpr
 end
 class ASlashExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TSlash is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class APercentExpr
        super AExpr
 end
 class APercentExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
+       var n_expr: AExpr is writable, noinit
+       var n_op: TPercent is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+end
+class APipeExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_op: TPipe is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+end
+class ACaretExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_op: TCaret is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+end
+class AAmpExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_op: TAmp is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AUminusExpr
        super AExpr
 end
 class AUminusExpr
        super AExpr
-       var _n_minus: TMinus = null
-       fun n_minus: TMinus do return _n_minus
-       fun n_minus=(n_minus: TMinus) do _n_minus = n_minus
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
+       var n_op: TMinus is writable, noinit
+       var n_expr: AExpr is writable, noinit
+end
+class AUplusExpr
+       super AExpr
+       var n_op: TPlus is writable, noinit
+       var n_expr: AExpr is writable, noinit
+end
+class AUtildeExpr
+       super AExpr
+       var n_op: TTilde is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class ANewExpr
        super AExpr
 end
 class ANewExpr
        super AExpr
-       var _n_kwnew: TKwnew = null
-       fun n_kwnew: TKwnew do return _n_kwnew
-       fun n_kwnew=(n_kwnew: TKwnew) do _n_kwnew = n_kwnew
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_id: nullable TId = null
-       fun n_id: nullable TId do return _n_id
-       fun n_id=(n_id: nullable TId) do _n_id = n_id
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
+       var n_kwnew: TKwnew is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_qid: nullable AQid = null is writable
+       var n_args: AExprs is writable, noinit
 end
 class AAttrExpr
        super AExpr
 end
 class AAttrExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TAttrid = null
-       fun n_id: TAttrid do return _n_id
-       fun n_id=(n_id: TAttrid) do _n_id = n_id
+       var n_expr: AExpr is writable, noinit
+       var n_id: TAttrid is writable, noinit
 end
 class AAttrAssignExpr
        super AExpr
 end
 class AAttrAssignExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TAttrid = null
-       fun n_id: TAttrid do return _n_id
-       fun n_id=(n_id: TAttrid) do _n_id = n_id
-       var _n_assign: TAssign = null
-       fun n_assign: TAssign do return _n_assign
-       fun n_assign=(n_assign: TAssign) do _n_assign = n_assign
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_expr: AExpr is writable, noinit
+       var n_id: TAttrid is writable, noinit
+       var n_assign: TAssign is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class AAttrReassignExpr
        super AExpr
 end
 class AAttrReassignExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TAttrid = null
-       fun n_id: TAttrid do return _n_id
-       fun n_id=(n_id: TAttrid) do _n_id = n_id
-       var _n_assign_op: AAssignOp = null
-       fun n_assign_op: AAssignOp do return _n_assign_op
-       fun n_assign_op=(n_assign_op: AAssignOp) do _n_assign_op = n_assign_op
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_expr: AExpr is writable, noinit
+       var n_id: TAttrid is writable, noinit
+       var n_assign_op: AAssignOp is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class ACallExpr
        super AExpr
 end
 class ACallExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
+       var n_expr: AExpr is writable, noinit
+       var n_qid: AQid is writable, noinit
+       var n_args: AExprs is writable, noinit
+end
+class ACallrefExpr
+       super AExpr
+       var n_amp: TAmp is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_qid: AQid is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class ACallAssignExpr
        super AExpr
 end
 class ACallAssignExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
-       var _n_assign: TAssign = null
-       fun n_assign: TAssign do return _n_assign
-       fun n_assign=(n_assign: TAssign) do _n_assign = n_assign
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_expr: AExpr is writable, noinit
+       var n_qid: AQid is writable, noinit
+       var n_args: AExprs is writable, noinit
+       var n_assign: TAssign is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class ACallReassignExpr
        super AExpr
 end
 class ACallReassignExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
-       var _n_assign_op: AAssignOp = null
-       fun n_assign_op: AAssignOp do return _n_assign_op
-       fun n_assign_op=(n_assign_op: AAssignOp) do _n_assign_op = n_assign_op
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_expr: AExpr is writable, noinit
+       var n_qid: AQid is writable, noinit
+       var n_args: AExprs is writable, noinit
+       var n_assign_op: AAssignOp is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class ASuperExpr
        super AExpr
 end
 class ASuperExpr
        super AExpr
-       var _n_qualified: nullable AQualified = null
-       fun n_qualified: nullable AQualified do return _n_qualified
-       fun n_qualified=(n_qualified: nullable AQualified) do _n_qualified = n_qualified
-       var _n_kwsuper: TKwsuper = null
-       fun n_kwsuper: TKwsuper do return _n_kwsuper
-       fun n_kwsuper=(n_kwsuper: TKwsuper) do _n_kwsuper = n_kwsuper
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
+       var n_qualified: nullable AQualified = null is writable
+       var n_kwsuper: TKwsuper is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class AInitExpr
        super AExpr
 end
 class AInitExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_kwinit: TKwinit = null
-       fun n_kwinit: TKwinit do return _n_kwinit
-       fun n_kwinit=(n_kwinit: TKwinit) do _n_kwinit = n_kwinit
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
+       var n_expr: AExpr is writable, noinit
+       var n_kwinit: TKwinit is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class ABraExpr
        super AExpr
 end
 class ABraExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
+       var n_expr: AExpr is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class ABraAssignExpr
        super AExpr
 end
 class ABraAssignExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
-       var _n_assign: TAssign = null
-       fun n_assign: TAssign do return _n_assign
-       fun n_assign=(n_assign: TAssign) do _n_assign = n_assign
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_expr: AExpr is writable, noinit
+       var n_args: AExprs is writable, noinit
+       var n_assign: TAssign is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class ABraReassignExpr
        super AExpr
 end
 class ABraReassignExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_args: AExprs = null
-       fun n_args: AExprs do return _n_args
-       fun n_args=(n_args: AExprs) do _n_args = n_args
-       var _n_assign_op: AAssignOp = null
-       fun n_assign_op: AAssignOp do return _n_assign_op
-       fun n_assign_op=(n_assign_op: AAssignOp) do _n_assign_op = n_assign_op
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_expr: AExpr is writable, noinit
+       var n_args: AExprs is writable, noinit
+       var n_assign_op: AAssignOp is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class AVarExpr
        super AExpr
 end
 class AVarExpr
        super AExpr
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
+       var n_id: TId is writable, noinit
 end
 class AVarAssignExpr
        super AExpr
 end
 class AVarAssignExpr
        super AExpr
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_assign: TAssign = null
-       fun n_assign: TAssign do return _n_assign
-       fun n_assign=(n_assign: TAssign) do _n_assign = n_assign
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_id: TId is writable, noinit
+       var n_assign: TAssign is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class AVarReassignExpr
        super AExpr
 end
 class AVarReassignExpr
        super AExpr
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
-       var _n_assign_op: AAssignOp = null
-       fun n_assign_op: AAssignOp do return _n_assign_op
-       fun n_assign_op=(n_assign_op: AAssignOp) do _n_assign_op = n_assign_op
-       var _n_value: AExpr = null
-       fun n_value: AExpr do return _n_value
-       fun n_value=(n_value: AExpr) do _n_value = n_value
+       var n_id: TId is writable, noinit
+       var n_assign_op: AAssignOp is writable, noinit
+       var n_value: AExpr is writable, noinit
 end
 class ARangeExpr
        super AExpr
 end
 class ARangeExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_expr: AExpr is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ACrangeExpr
        super AExpr
 end
 class ACrangeExpr
        super AExpr
-       var _n_obra: TObra = null
-       fun n_obra: TObra do return _n_obra
-       fun n_obra=(n_obra: TObra) do _n_obra = n_obra
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
-       var _n_cbra: TCbra = null
-       fun n_cbra: TCbra do return _n_cbra
-       fun n_cbra=(n_cbra: TCbra) do _n_cbra = n_cbra
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_obra: TObra is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_dotdot: TDotdot is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+       var n_cbra: TCbra is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AOrangeExpr
        super AExpr
 end
 class AOrangeExpr
        super AExpr
-       var _n_obra: TObra = null
-       fun n_obra: TObra do return _n_obra
-       fun n_obra=(n_obra: TObra) do _n_obra = n_obra
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_expr2: AExpr = null
-       fun n_expr2: AExpr do return _n_expr2
-       fun n_expr2=(n_expr2: AExpr) do _n_expr2 = n_expr2
-       var _n_cbra: TObra = null
-       fun n_cbra: TObra do return _n_cbra
-       fun n_cbra=(n_cbra: TObra) do _n_cbra = n_cbra
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_obra: TObra is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_dotdot: TDotdot is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+       var n_cbra: TObra is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AArrayExpr
        super AExpr
 end
 class AArrayExpr
        super AExpr
-       var _n_exprs: AExprs = null
-       fun n_exprs: AExprs do return _n_exprs
-       fun n_exprs=(n_exprs: AExprs) do _n_exprs = n_exprs
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_obra: TObra is writable, noinit
+       var n_exprs: List[AExpr] = new List[AExpr]
+       var n_type: nullable AType = null is writable
+       var n_cbra: TCbra is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ASelfExpr
        super AExpr
 end
 class ASelfExpr
        super AExpr
-       var _n_kwself: TKwself = null
-       fun n_kwself: TKwself do return _n_kwself
-       fun n_kwself=(n_kwself: TKwself) do _n_kwself = n_kwself
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_kwself: TKwself is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AImplicitSelfExpr
        super AExpr
 end
 class ATrueExpr
        super AExpr
 end
 class AImplicitSelfExpr
        super AExpr
 end
 class ATrueExpr
        super AExpr
-       var _n_kwtrue: TKwtrue = null
-       fun n_kwtrue: TKwtrue do return _n_kwtrue
-       fun n_kwtrue=(n_kwtrue: TKwtrue) do _n_kwtrue = n_kwtrue
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_kwtrue: TKwtrue is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AFalseExpr
        super AExpr
 end
 class AFalseExpr
        super AExpr
-       var _n_kwfalse: TKwfalse = null
-       fun n_kwfalse: TKwfalse do return _n_kwfalse
-       fun n_kwfalse=(n_kwfalse: TKwfalse) do _n_kwfalse = n_kwfalse
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_kwfalse: TKwfalse is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ANullExpr
        super AExpr
 end
 class ANullExpr
        super AExpr
-       var _n_kwnull: TKwnull = null
-       fun n_kwnull: TKwnull do return _n_kwnull
-       fun n_kwnull=(n_kwnull: TKwnull) do _n_kwnull = n_kwnull
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-end
-class ADecIntExpr
-       super AExpr
-       var _n_number: TNumber = null
-       fun n_number: TNumber do return _n_number
-       fun n_number=(n_number: TNumber) do _n_number = n_number
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_kwnull: TKwnull is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 end
-class AHexIntExpr
+class AIntegerExpr
        super AExpr
        super AExpr
-       var _n_hex_number: THexNumber = null
-       fun n_hex_number: THexNumber do return _n_hex_number
-       fun n_hex_number=(n_hex_number: THexNumber) do _n_hex_number = n_hex_number
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_integer: TInteger is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AFloatExpr
        super AExpr
 end
 class AFloatExpr
        super AExpr
-       var _n_float: TFloat = null
-       fun n_float: TFloat do return _n_float
-       fun n_float=(n_float: TFloat) do _n_float = n_float
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_float: TFloat is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ACharExpr
        super AExpr
 end
 class ACharExpr
        super AExpr
-       var _n_char: TChar = null
-       fun n_char: TChar do return _n_char
-       fun n_char=(n_char: TChar) do _n_char = n_char
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_char: TChar is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStringExpr
        super AExpr
 end
 class AStringExpr
        super AExpr
-       var _n_string: TString = null
-       fun n_string: TString do return _n_string
-       fun n_string=(n_string: TString) do _n_string = n_string
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_string: TString is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStartStringExpr
        super AExpr
 end
 class AStartStringExpr
        super AExpr
-       var _n_string: TStartString = null
-       fun n_string: TStartString do return _n_string
-       fun n_string=(n_string: TStartString) do _n_string = n_string
+       var n_string: TStartString is writable, noinit
 end
 class AMidStringExpr
        super AExpr
 end
 class AMidStringExpr
        super AExpr
-       var _n_string: TMidString = null
-       fun n_string: TMidString do return _n_string
-       fun n_string=(n_string: TMidString) do _n_string = n_string
+       var n_string: TMidString is writable, noinit
 end
 class AEndStringExpr
        super AExpr
 end
 class AEndStringExpr
        super AExpr
-       var _n_string: TEndString = null
-       fun n_string: TEndString do return _n_string
-       fun n_string=(n_string: TEndString) do _n_string = n_string
+       var n_string: TEndString is writable, noinit
 end
 class ASuperstringExpr
        super AExpr
        var n_exprs: List[AExpr] = new List[AExpr]
 end
 class ASuperstringExpr
        super AExpr
        var n_exprs: List[AExpr] = new List[AExpr]
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_annotations: nullable AAnnotations = null is writable
+end
+class ALambdaExpr
+       super AExpr
+       var n_kwmeth: TKwmeth is writable, noinit
+       var n_signature: ASignature is writable, noinit
+       var n_kwdo: TKwdo is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class AParExpr
        super AExpr
 end
 class AParExpr
        super AExpr
-       var _n_opar: TOpar = null
-       fun n_opar: TOpar do return _n_opar
-       fun n_opar=(n_opar: TOpar) do _n_opar = n_opar
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_cpar: TCpar = null
-       fun n_cpar: TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: TCpar) do _n_cpar = n_cpar
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
+       var n_opar: TOpar is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_cpar: TCpar is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AAsCastExpr
        super AExpr
 end
 class AAsCastExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_kwas: TKwas = null
-       fun n_kwas: TKwas do return _n_kwas
-       fun n_kwas=(n_kwas: TKwas) do _n_kwas = n_kwas
-       var _n_opar: nullable TOpar = null
-       fun n_opar: nullable TOpar do return _n_opar
-       fun n_opar=(n_opar: nullable TOpar) do _n_opar = n_opar
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_cpar: nullable TCpar = null
-       fun n_cpar: nullable TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: nullable TCpar) do _n_cpar = n_cpar
+       var n_expr: AExpr is writable, noinit
+       var n_kwas: TKwas is writable, noinit
+       var n_opar: nullable TOpar = null is writable
+       var n_type: AType is writable, noinit
+       var n_cpar: nullable TCpar = null is writable
 end
 class AAsNotnullExpr
        super AExpr
 end
 class AAsNotnullExpr
        super AExpr
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_kwas: TKwas = null
-       fun n_kwas: TKwas do return _n_kwas
-       fun n_kwas=(n_kwas: TKwas) do _n_kwas = n_kwas
-       var _n_opar: nullable TOpar = null
-       fun n_opar: nullable TOpar do return _n_opar
-       fun n_opar=(n_opar: nullable TOpar) do _n_opar = n_opar
-       var _n_kwnot: TKwnot = null
-       fun n_kwnot: TKwnot do return _n_kwnot
-       fun n_kwnot=(n_kwnot: TKwnot) do _n_kwnot = n_kwnot
-       var _n_kwnull: TKwnull = null
-       fun n_kwnull: TKwnull do return _n_kwnull
-       fun n_kwnull=(n_kwnull: TKwnull) do _n_kwnull = n_kwnull
-       var _n_cpar: nullable TCpar = null
-       fun n_cpar: nullable TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: nullable TCpar) do _n_cpar = n_cpar
+       var n_expr: AExpr is writable, noinit
+       var n_kwas: TKwas is writable, noinit
+       var n_opar: nullable TOpar = null is writable
+       var n_kwnot: TKwnot is writable, noinit
+       var n_kwnull: TKwnull is writable, noinit
+       var n_cpar: nullable TCpar = null is writable
 end
 class AIssetAttrExpr
        super AExpr
 end
 class AIssetAttrExpr
        super AExpr
-       var _n_kwisset: TKwisset = null
-       fun n_kwisset: TKwisset do return _n_kwisset
-       fun n_kwisset=(n_kwisset: TKwisset) do _n_kwisset = n_kwisset
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_id: TAttrid = null
-       fun n_id: TAttrid do return _n_id
-       fun n_id=(n_id: TAttrid) do _n_id = n_id
+       var n_kwisset: TKwisset is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_id: TAttrid is writable, noinit
 end
 class ADebugTypeExpr
        super AExpr
 end
 class ADebugTypeExpr
        super AExpr
-       var _n_kwdebug: TKwdebug = null
-       fun n_kwdebug: TKwdebug do return _n_kwdebug
-       fun n_kwdebug=(n_kwdebug: TKwdebug) do _n_kwdebug = n_kwdebug
-       var _n_kwtype: TKwtype = null
-       fun n_kwtype: TKwtype do return _n_kwtype
-       fun n_kwtype=(n_kwtype: TKwtype) do _n_kwtype = n_kwtype
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
+       var n_kwdebug: TKwdebug is writable, noinit
+       var n_kwtype: TKwtype is writable, noinit
+       var n_expr: AExpr is writable, noinit
+       var n_type: AType is writable, noinit
+end
+class AVarargExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_dotdotdot: TDotdotdot is writable, noinit
+end
+class ANamedargExpr
+       super AExpr
+       var n_id: TId is writable, noinit
+       var n_assign: TAssign is writable, noinit
+       var n_expr: AExpr is writable, noinit
+end
+class ASafeExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_quest: TQuest is writable, noinit
+end
+class ATypeExpr
+       super AExpr
+       var n_type: AType is writable, noinit
+end
+class AMethidExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_id: AMethid is writable, noinit
+end
+class AAtExpr
+       super AExpr
+       var n_annotations: AAnnotations is writable, noinit
+end
+class AManyExpr
+       super AExpr
+       var n_exprs: List[AExpr] = new List[AExpr]
 end
 class AListExprs
        super AExprs
 end
 class AListExprs
        super AExprs
@@ -1806,51 +1245,75 @@ class AListExprs
 end
 class AParExprs
        super AExprs
 end
 class AParExprs
        super AExprs
-       var _n_opar: TOpar = null
-       fun n_opar: TOpar do return _n_opar
-       fun n_opar=(n_opar: TOpar) do _n_opar = n_opar
+       var n_opar: TOpar is writable, noinit
        var n_exprs: List[AExpr] = new List[AExpr]
        var n_exprs: List[AExpr] = new List[AExpr]
-       var _n_cpar: TCpar = null
-       fun n_cpar: TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: TCpar) do _n_cpar = n_cpar
+       var n_cpar: TCpar is writable, noinit
 end
 class ABraExprs
        super AExprs
 end
 class ABraExprs
        super AExprs
-       var _n_obra: TObra = null
-       fun n_obra: TObra do return _n_obra
-       fun n_obra=(n_obra: TObra) do _n_obra = n_obra
+       var n_obra: TObra is writable, noinit
        var n_exprs: List[AExpr] = new List[AExpr]
        var n_exprs: List[AExpr] = new List[AExpr]
-       var _n_cbra: TCbra = null
-       fun n_cbra: TCbra do return _n_cbra
-       fun n_cbra=(n_cbra: TCbra) do _n_cbra = n_cbra
+       var n_cbra: TCbra is writable, noinit
 end
 class APlusAssignOp
        super AAssignOp
 end
 class APlusAssignOp
        super AAssignOp
-       var _n_pluseq: TPluseq = null
-       fun n_pluseq: TPluseq do return _n_pluseq
-       fun n_pluseq=(n_pluseq: TPluseq) do _n_pluseq = n_pluseq
+       var n_op: TPluseq is writable, noinit
 end
 class AMinusAssignOp
        super AAssignOp
 end
 class AMinusAssignOp
        super AAssignOp
-       var _n_minuseq: TMinuseq = null
-       fun n_minuseq: TMinuseq do return _n_minuseq
-       fun n_minuseq=(n_minuseq: TMinuseq) do _n_minuseq = n_minuseq
+       var n_op: TMinuseq is writable, noinit
+end
+class AStarAssignOp
+       super AAssignOp
+       var n_op: TStareq is writable, noinit
+end
+class ASlashAssignOp
+       super AAssignOp
+       var n_op: TSlasheq is writable, noinit
+end
+class APercentAssignOp
+       super AAssignOp
+       var n_op: TPercenteq is writable, noinit
+end
+class AStarstarAssignOp
+       super AAssignOp
+       var n_op: TStarstareq is writable, noinit
+end
+class APipeAssignOp
+       super AAssignOp
+       var n_op: TPipeeq is writable, noinit
+end
+class ACaretAssignOp
+       super AAssignOp
+       var n_op: TCareteq is writable, noinit
+end
+class AAmpAssignOp
+       super AAssignOp
+       var n_op: TAmpeq is writable, noinit
+end
+class ALlAssignOp
+       super AAssignOp
+       var n_op: TLleq is writable, noinit
+end
+class AGgAssignOp
+       super AAssignOp
+       var n_op: TGgeq is writable, noinit
+end
+class AForGroup
+       super AForGroup
+       var n_ids: List[TId] = new List[TId]
+       var n_kwin: TKwin is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class AModuleName
        super AModuleName
 end
 class AModuleName
        super AModuleName
-       var _n_quad: nullable TQuad = null
-       fun n_quad: nullable TQuad do return _n_quad
-       fun n_quad=(n_quad: nullable TQuad) do _n_quad = n_quad
+       var n_quad: nullable TQuad = null is writable
        var n_path: List[TId] = new List[TId]
        var n_path: List[TId] = new List[TId]
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
+       var n_id: TId is writable, noinit
 end
 class AExternCalls
        super AExternCalls
 end
 class AExternCalls
        super AExternCalls
-       var _n_kwimport: TKwimport = null
-       fun n_kwimport: TKwimport do return _n_kwimport
-       fun n_kwimport=(n_kwimport: TKwimport) do _n_kwimport = n_kwimport
+       var n_kwimport: TKwimport is writable, noinit
        var n_extern_calls: List[AExternCall] = new List[AExternCall]
 end
 class AExternCall
        var n_extern_calls: List[AExternCall] = new List[AExternCall]
 end
 class AExternCall
@@ -1858,100 +1321,56 @@ class AExternCall
 end
 class ASuperExternCall
        super AExternCall
 end
 class ASuperExternCall
        super AExternCall
-       var _n_kwsuper: TKwsuper = null
-       fun n_kwsuper: TKwsuper do return _n_kwsuper
-       fun n_kwsuper=(n_kwsuper: TKwsuper) do _n_kwsuper = n_kwsuper
+       var n_kwsuper: TKwsuper is writable, noinit
 end
 class ALocalPropExternCall
        super AExternCall
 end
 class ALocalPropExternCall
        super AExternCall
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
+       var n_methid: AMethid is writable, noinit
 end
 class AFullPropExternCall
        super AExternCall
 end
 class AFullPropExternCall
        super AExternCall
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_dot: nullable TDot = null
-       fun n_dot: nullable TDot do return _n_dot
-       fun n_dot=(n_dot: nullable TDot) do _n_dot = n_dot
-       var _n_methid: AMethid = null
-       fun n_methid: AMethid do return _n_methid
-       fun n_methid=(n_methid: AMethid) do _n_methid = n_methid
+       var n_type: AType is writable, noinit
+       var n_dot: nullable TDot = null is writable
+       var n_methid: AMethid is writable, noinit
 end
 class AInitPropExternCall
        super AExternCall
 end
 class AInitPropExternCall
        super AExternCall
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
+       var n_type: AType is writable, noinit
 end
 class ACastAsExternCall
        super AExternCall
 end
 class ACastAsExternCall
        super AExternCall
-       var _n_from_type: AType = null
-       fun n_from_type: AType do return _n_from_type
-       fun n_from_type=(n_from_type: AType) do _n_from_type = n_from_type
-       var _n_dot: nullable TDot = null
-       fun n_dot: nullable TDot do return _n_dot
-       fun n_dot=(n_dot: nullable TDot) do _n_dot = n_dot
-       var _n_kwas: TKwas = null
-       fun n_kwas: TKwas do return _n_kwas
-       fun n_kwas=(n_kwas: TKwas) do _n_kwas = n_kwas
-       var _n_to_type: AType = null
-       fun n_to_type: AType do return _n_to_type
-       fun n_to_type=(n_to_type: AType) do _n_to_type = n_to_type
+       var n_from_type: AType is writable, noinit
+       var n_dot: nullable TDot = null is writable
+       var n_kwas: TKwas is writable, noinit
+       var n_to_type: AType is writable, noinit
 end
 class AAsNullableExternCall
        super AExternCall
 end
 class AAsNullableExternCall
        super AExternCall
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_kwas: TKwas = null
-       fun n_kwas: TKwas do return _n_kwas
-       fun n_kwas=(n_kwas: TKwas) do _n_kwas = n_kwas
-       var _n_kwnullable: TKwnullable = null
-       fun n_kwnullable: TKwnullable do return _n_kwnullable
-       fun n_kwnullable=(n_kwnullable: TKwnullable) do _n_kwnullable = n_kwnullable
+       var n_type: AType is writable, noinit
+       var n_kwas: TKwas is writable, noinit
+       var n_kwnullable: TKwnullable is writable, noinit
 end
 class AAsNotNullableExternCall
        super AExternCall
 end
 class AAsNotNullableExternCall
        super AExternCall
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-       var _n_kwas: TKwas = null
-       fun n_kwas: TKwas do return _n_kwas
-       fun n_kwas=(n_kwas: TKwas) do _n_kwas = n_kwas
-       var _n_kwnot: TKwnot = null
-       fun n_kwnot: TKwnot do return _n_kwnot
-       fun n_kwnot=(n_kwnot: TKwnot) do _n_kwnot = n_kwnot
-       var _n_kwnullable: TKwnullable = null
-       fun n_kwnullable: TKwnullable do return _n_kwnullable
-       fun n_kwnullable=(n_kwnullable: TKwnullable) do _n_kwnullable = n_kwnullable
+       var n_type: AType is writable, noinit
+       var n_kwas: TKwas is writable, noinit
+       var n_kwnot: TKwnot is writable, noinit
+       var n_kwnullable: TKwnullable is writable, noinit
 end
 class AInLanguage
        super AInLanguage
 end
 class AInLanguage
        super AInLanguage
-       var _n_kwin: TKwin = null
-       fun n_kwin: TKwin do return _n_kwin
-       fun n_kwin=(n_kwin: TKwin) do _n_kwin = n_kwin
-       var _n_string: TString = null
-       fun n_string: TString do return _n_string
-       fun n_string=(n_string: TString) do _n_string = n_string
+       var n_kwin: TKwin is writable, noinit
+       var n_string: TString is writable, noinit
 end
 class AExternCodeBlock
        super AExternCodeBlock
 end
 class AExternCodeBlock
        super AExternCodeBlock
-       var _n_in_language: nullable AInLanguage = null
-       fun n_in_language: nullable AInLanguage do return _n_in_language
-       fun n_in_language=(n_in_language: nullable AInLanguage) do _n_in_language = n_in_language
-       var _n_extern_code_segment: TExternCodeSegment = null
-       fun n_extern_code_segment: TExternCodeSegment do return _n_extern_code_segment
-       fun n_extern_code_segment=(n_extern_code_segment: TExternCodeSegment) do _n_extern_code_segment = n_extern_code_segment
+       var n_in_language: nullable AInLanguage = null is writable
+       var n_extern_code_segment: TExternCodeSegment is writable, noinit
 end
 class AQualified
        super AQualified
        var n_id: List[TId] = new List[TId]
 end
 class AQualified
        super AQualified
        var n_id: List[TId] = new List[TId]
-       var _n_classid: nullable TClassid = null
-       fun n_classid: nullable TClassid do return _n_classid
-       fun n_classid=(n_classid: nullable TClassid) do _n_classid = n_classid
+       var n_classid: nullable TClassid = null is writable
 end
 class ADoc
        super ADoc
 end
 class ADoc
        super ADoc
@@ -1959,96 +1378,45 @@ class ADoc
 end
 class AAnnotations
        super AAnnotations
 end
 class AAnnotations
        super AAnnotations
-       var _n_at: nullable TAt = null
-       fun n_at: nullable TAt do return _n_at
-       fun n_at=(n_at: nullable TAt) do _n_at = n_at
-       var _n_opar: nullable TOpar = null
-       fun n_opar: nullable TOpar do return _n_opar
-       fun n_opar=(n_opar: nullable TOpar) do _n_opar = n_opar
+       var n_kwis: nullable TKwis = null is writable
+       var n_at: nullable TAt = null is writable
+       var n_opar: nullable TOpar = null is writable
        var n_items: List[AAnnotation] = new List[AAnnotation]
        var n_items: List[AAnnotation] = new List[AAnnotation]
-       var _n_cpar: nullable TCpar = null
-       fun n_cpar: nullable TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: nullable TCpar) do _n_cpar = n_cpar
+       var n_cpar: nullable TCpar = null is writable
+       var n_kwend: nullable TKwend = null is writable
 end
 class AAnnotation
        super AAnnotation
 end
 class AAnnotation
        super AAnnotation
-       var _n_atid: AAtid = null
-       fun n_atid: AAtid do return _n_atid
-       fun n_atid=(n_atid: AAtid) do _n_atid = n_atid
-       var _n_opar: nullable TOpar = null
-       fun n_opar: nullable TOpar do return _n_opar
-       fun n_opar=(n_opar: nullable TOpar) do _n_opar = n_opar
-       var n_args: List[AAtArg] = new List[AAtArg]
-       var _n_cpar: nullable TCpar = null
-       fun n_cpar: nullable TCpar do return _n_cpar
-       fun n_cpar=(n_cpar: nullable TCpar) do _n_cpar = n_cpar
-       var _n_annotations: nullable AAnnotations = null
-       fun n_annotations: nullable AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: nullable AAnnotations) do _n_annotations = n_annotations
-end
-class ATypeAtArg
-       super AAtArg
-       var _n_type: AType = null
-       fun n_type: AType do return _n_type
-       fun n_type=(n_type: AType) do _n_type = n_type
-end
-class AExprAtArg
-       super AAtArg
-       var _n_expr: AExpr = null
-       fun n_expr: AExpr do return _n_expr
-       fun n_expr=(n_expr: AExpr) do _n_expr = n_expr
-end
-class AAtAtArg
-       super AAtArg
-       var _n_annotations: AAnnotations = null
-       fun n_annotations: AAnnotations do return _n_annotations
-       fun n_annotations=(n_annotations: AAnnotations) do _n_annotations = n_annotations
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: nullable AVisibility = null is writable
+       var n_atid: AAtid is writable, noinit
+       var n_opar: nullable TOpar = null is writable
+       var n_args: List[AExpr] = new List[AExpr]
+       var n_cpar: nullable TCpar = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AIdAtid
        super AAtid
 end
 class AIdAtid
        super AAtid
-       var _n_id: TId = null
-       fun n_id: TId do return _n_id
-       fun n_id=(n_id: TId) do _n_id = n_id
+       var n_id: TId is writable, noinit
 end
 class AKwexternAtid
        super AAtid
 end
 class AKwexternAtid
        super AAtid
-       var _n_id: TKwextern = null
-       fun n_id: TKwextern do return _n_id
-       fun n_id=(n_id: TKwextern) do _n_id = n_id
-end
-class AKwinternAtid
-       super AAtid
-       var _n_id: TKwintern = null
-       fun n_id: TKwintern do return _n_id
-       fun n_id=(n_id: TKwintern) do _n_id = n_id
-end
-class AKwreadableAtid
-       super AAtid
-       var _n_id: TKwreadable = null
-       fun n_id: TKwreadable do return _n_id
-       fun n_id=(n_id: TKwreadable) do _n_id = n_id
+       var n_id: TKwextern is writable, noinit
 end
 end
-class AKwwritableAtid
+class AKwabstractAtid
        super AAtid
        super AAtid
-       var _n_id: TKwwritable = null
-       fun n_id: TKwwritable do return _n_id
-       fun n_id=(n_id: TKwwritable) do _n_id = n_id
+       var n_id: TKwabstract is writable, noinit
 end
 class AKwimportAtid
        super AAtid
 end
 class AKwimportAtid
        super AAtid
-       var _n_id: TKwimport = null
-       fun n_id: TKwimport do return _n_id
-       fun n_id=(n_id: TKwimport) do _n_id = n_id
+       var n_id: TKwimport is writable, noinit
 end
 
 class Start
        super Prod
 end
 
 class Start
        super Prod
-       var _n_base: nullable AModule
-       fun n_base: nullable AModule do return _n_base
-       fun n_base=(n_base: nullable  do _n_base = n_base
-       var _n_eof: EOF
-       fun n_eof: EOF do return _n_eof
-       fun n_eof=(n_eof: EOF) do _n_eof = n_eof
+       var n_base: nullable AModule is writable, noinit
+       var n_eof: EOF is writable, noinit
        init(
                n_base: nullable AModule,
                n_eof: EOF)
        init(
                n_base: nullable AModule,
                n_eof: EOF)