parser: regenerate with multi-iterators
[nit.git] / src / parser / parser_abs.nit
index 4c620db..6f6e76b 100644 (file)
@@ -1,34 +1,18 @@
 # 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/).
-package parser_abs
+module parser_abs is no_warning("missing-doc")
 
 import location
 
 
 import location
 
-# Root of the AST hierarchy
-abstract class ANode
-       var _location: nullable Location
-
-       # Location is set during AST building. Once built, location cannon be null
-       # However, manual instanciated nodes may need mode care
-       fun location: Location do return _location.as(not null)
-end
-
-# Ancestor of all tokens
-abstract class Token
-       super ANode
-end
-
-# Ancestor of all productions
-abstract class Prod
-       super ANode
-       fun location=(loc: Location) do _location = loc
-end
 class TEol
        super Token
 end
 class TComment
        super Token
 end
 class TEol
        super Token
 end
 class TComment
        super Token
 end
+class TKwpackage
+       super Token
+end
 class TKwmodule
        super Token
 end
 class TKwmodule
        super Token
 end
@@ -68,19 +52,13 @@ 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
+class TKwextern
        super Token
 end
        super Token
 end
-class TKwextern
+class TKwpublic
        super Token
 end
 class TKwprotected
        super Token
 end
 class TKwprotected
@@ -122,6 +100,9 @@ end
 class TKwnot
        super Token
 end
 class TKwnot
        super Token
 end
+class TKwimplies
+       super Token
+end
 class TKwreturn
        super Token
 end
 class TKwreturn
        super Token
 end
@@ -173,6 +154,9 @@ 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
@@ -206,6 +190,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
@@ -224,12 +235,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
@@ -263,6 +289,9 @@ 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
@@ -272,15 +301,12 @@ end
 class TAttrid
        super Token
 end
 class TAttrid
        super Token
 end
-class TNumber
+class TInteger
        super Token
 end
 class TFloat
        super Token
 end
        super Token
 end
 class TFloat
        super Token
 end
-class TChar
-       super Token
-end
 class TString
        super Token
 end
 class TString
        super Token
 end
@@ -293,22 +319,29 @@ end
 class TEndString
        super Token
 end
 class TEndString
        super Token
 end
-class TBadChar
+class TChar
        super Token
 end
 class TBadString
        super Token
 end
        super Token
 end
 class TBadString
        super Token
 end
+class TBadChar
+       super Token
+end
 class TExternCodeSegment
        super Token
 end
 class EOF
        super Token
 class TExternCodeSegment
        super Token
 end
 class EOF
        super Token
-private init noinit do end
 end
 class AError
        super EOF
 end
 class AError
        super EOF
-private init noinit do end
+end
+class ALexerError
+       super AError
+end
+class AParserError
+       super AError
 end
 
 class AModule super Prod end
 end
 
 class AModule super Prod end
@@ -318,20 +351,17 @@ 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 ASignature super Prod end
 class AParam super Prod end
 class ASignature super Prod end
 class AParam super Prod end
-class AClosureDecl super Prod end
 class AType super Prod end
 class ALabel super Prod end
 class AExpr super Prod end
 class AExprs super Prod end
 class AAssignOp super Prod end
 class AType super Prod end
 class ALabel super Prod end
 class AExpr super Prod end
 class AExprs super Prod end
 class AAssignOp super Prod end
-class AClosureDef super Prod end
-class AClosureId 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
@@ -341,937 +371,1002 @@ 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
-    readable var _n_moduledecl: nullable AModuledecl = null
-    readable var _n_imports: List[AImport] = new List[AImport]
-    readable var _n_extern_code_blocks: List[AExternCodeBlock] = new List[AExternCodeBlock]
-    readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
+       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
 end
 class AModuledecl
        super AModuledecl
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwmodule: TKwmodule
-    readable var _n_name: AModuleName
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_visibility: AVisibility
-    readable var _n_kwimport: TKwimport
-    readable var _n_name: AModuleName
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_visibility: AVisibility
-    readable var _n_kwimport: TKwimport
-    readable var _n_kwend: TKwend
+       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
-    readable var _n_kwprivate: TKwprivate
+       var n_kwprivate: TKwprivate is writable, noinit
 end
 class AProtectedVisibility
        super AVisibility
 end
 class AProtectedVisibility
        super AVisibility
-    readable var _n_kwprotected: TKwprotected
+       var n_kwprotected: TKwprotected is writable, noinit
 end
 class AIntrudeVisibility
        super AVisibility
 end
 class AIntrudeVisibility
        super AVisibility
-    readable var _n_kwintrude: TKwintrude
+       var n_kwintrude: TKwintrude is writable, noinit
 end
 class AStdClassdef
        super AClassdef
 end
 class AStdClassdef
        super AClassdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_classkind: AClasskind
-    readable var _n_id: nullable TClassid = null
-    readable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
-    readable var _n_annotations: nullable AAnnotations = null
-    readable var _n_extern_code_block: nullable AExternCodeBlock = null
-    readable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
-    readable var _n_propdefs: List[APropdef] = new List[APropdef]
-    readable var _n_kwend: TKwend
+       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_id: nullable TClassid = null is writable
+       var n_obra: nullable TObra = null is writable
+       var n_formaldefs: List[AFormaldef] = new List[AFormaldef]
+       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_kwend: TKwend is writable, noinit
 end
 class ATopClassdef
        super AClassdef
 end
 class ATopClassdef
        super AClassdef
-    readable var _n_propdefs: List[APropdef] = new List[APropdef]
+       var n_propdefs: List[APropdef] = new List[APropdef]
 end
 class AMainClassdef
        super AClassdef
 end
 class AMainClassdef
        super AClassdef
-    readable var _n_propdefs: List[APropdef] = new List[APropdef]
+       var n_propdefs: List[APropdef] = new List[APropdef]
 end
 class AConcreteClasskind
        super AClasskind
 end
 class AConcreteClasskind
        super AClasskind
-    readable var _n_kwclass: TKwclass
+       var n_kwclass: TKwclass is writable, noinit
 end
 class AAbstractClasskind
        super AClasskind
 end
 class AAbstractClasskind
        super AClasskind
-    readable var _n_kwabstract: TKwabstract
-    readable var _n_kwclass: TKwclass
+       var n_kwabstract: TKwabstract is writable, noinit
+       var n_kwclass: TKwclass is writable, noinit
 end
 class AInterfaceClasskind
        super AClasskind
 end
 class AInterfaceClasskind
        super AClasskind
-    readable var _n_kwinterface: TKwinterface
+       var n_kwinterface: TKwinterface is writable, noinit
 end
 class AEnumClasskind
        super AClasskind
 end
 class AEnumClasskind
        super AClasskind
-    readable var _n_kwenum: TKwenum
+       var n_kwenum: TKwenum is writable, noinit
 end
 class AExternClasskind
        super AClasskind
 end
 class AExternClasskind
        super AClasskind
-    readable var _n_kwextern: TKwextern
-    readable var _n_kwclass: nullable TKwclass = null
+       var n_kwextern: TKwextern is writable, noinit
+       var n_kwclass: nullable TKwclass = null is writable
 end
 class AFormaldef
        super AFormaldef
 end
 class AFormaldef
        super AFormaldef
-    readable var _n_id: TClassid
-    readable var _n_type: nullable AType = null
-    readable var _n_annotations: nullable AAnnotations = null
-end
-class ASuperclass
-       super ASuperclass
-    readable var _n_kwsuper: TKwsuper
-    readable var _n_type: AType
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_readable: nullable AAble = null
-    readable var _n_writable: nullable AAble = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwvar: TKwvar
-    readable var _n_id: nullable TAttrid = null
-    readable var _n_id2: nullable TId = null
-    readable var _n_type: nullable AType = null
-    readable var _n_annotations: nullable AAnnotations = null
-    readable var _n_expr: nullable AExpr = null
+       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
 end
-class AMethPropdef
+class AMainMethPropdef
        super APropdef
        super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_methid: AMethid
-    readable var _n_signature: ASignature
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_block: nullable AExpr = null is writable
 end
 end
-class ADeferredMethPropdef
-       super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwmeth: TKwmeth
-    readable var _n_methid: AMethid
-    readable var _n_signature: ASignature
-    readable var _n_annotations: nullable AAnnotations = null
-end
-class AInternMethPropdef
-       super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwmeth: TKwmeth
-    readable var _n_methid: AMethid
-    readable var _n_signature: ASignature
-end
-class AExternMethPropdef
-       super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwmeth: TKwmeth
-    readable var _n_methid: AMethid
-    readable var _n_signature: ASignature
-    readable var _n_extern: nullable TString = null
-    readable var _n_extern_calls: nullable AExternCalls = null
-    readable var _n_extern_code_block: nullable AExternCodeBlock = null
-end
-class AConcreteMethPropdef
-       super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwmeth: TKwmeth
-    readable var _n_methid: AMethid
-    readable var _n_signature: ASignature
-    readable var _n_annotations: nullable AAnnotations = null
-    readable var _n_block: nullable AExpr = null
-end
-class AConcreteInitPropdef
-       super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwinit: TKwinit
-    readable var _n_methid: nullable AMethid = null
-    readable var _n_signature: ASignature
-    readable var _n_annotations: nullable AAnnotations = null
-    readable var _n_block: nullable AExpr = null
-end
-class AExternInitPropdef
+class ATypePropdef
        super APropdef
        super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwnew: TKwnew
-    readable var _n_methid: nullable AMethid = null
-    readable var _n_signature: ASignature
-    readable var _n_extern: nullable TString = null
-    readable var _n_extern_calls: nullable AExternCalls = null
-    readable var _n_extern_code_block: nullable AExternCodeBlock = null
+       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_id: TClassid is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 end
-class AMainMethPropdef
+class AMethPropdef
        super APropdef
        super APropdef
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_block: nullable AExpr = null
-end
-class ATypePropdef
+       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_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
        super APropdef
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: AVisibility
-    readable var _n_kwtype: TKwtype
-    readable var _n_id: TClassid
-    readable var _n_type: AType
-    readable var _n_annotations: nullable AAnnotations = null
-end
-class AReadAble
-       super AAble
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_kwreadable: TKwreadable
-end
-class AWriteAble
-       super AAble
-    readable var _n_kwredef: nullable TKwredef = null
-    readable var _n_visibility: nullable AVisibility = null
-    readable var _n_kwwritable: TKwwritable
+       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
-    readable var _n_id: TId
+       var n_id: TId is writable, noinit
 end
 class APlusMethid
        super AMethid
 end
 class APlusMethid
        super AMethid
-    readable var _n_plus: TPlus
+       var n_op: TPlus is writable, noinit
 end
 class AMinusMethid
        super AMethid
 end
 class AMinusMethid
        super AMethid
-    readable var _n_minus: TMinus
+       var n_op: TMinus is writable, noinit
 end
 class AStarMethid
        super AMethid
 end
 class AStarMethid
        super AMethid
-    readable var _n_star: TStar
+       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
-    readable var _n_slash: TSlash
+       var n_op: TSlash is writable, noinit
 end
 class APercentMethid
        super AMethid
 end
 class APercentMethid
        super AMethid
-    readable var _n_percent: TPercent
+       var n_op: TPercent is writable, noinit
 end
 class AEqMethid
        super AMethid
 end
 class AEqMethid
        super AMethid
-    readable var _n_eq: TEq
+       var n_op: TEq is writable, noinit
 end
 class ANeMethid
        super AMethid
 end
 class ANeMethid
        super AMethid
-    readable var _n_ne: TNe
+       var n_op: TNe is writable, noinit
 end
 class ALeMethid
        super AMethid
 end
 class ALeMethid
        super AMethid
-    readable var _n_le: TLe
+       var n_op: TLe is writable, noinit
 end
 class AGeMethid
        super AMethid
 end
 class AGeMethid
        super AMethid
-    readable var _n_ge: TGe
+       var n_op: TGe is writable, noinit
 end
 class ALtMethid
        super AMethid
 end
 class ALtMethid
        super AMethid
-    readable var _n_lt: TLt
+       var n_op: TLt is writable, noinit
 end
 class AGtMethid
        super AMethid
 end
 class AGtMethid
        super AMethid
-    readable var _n_gt: TGt
+       var n_op: TGt is writable, noinit
 end
 class ALlMethid
        super AMethid
 end
 class ALlMethid
        super AMethid
-    readable var _n_ll: TLl
+       var n_op: TLl is writable, noinit
 end
 class AGgMethid
        super AMethid
 end
 class AGgMethid
        super AMethid
-    readable var _n_gg: TGg
+       var n_op: TGg is writable, noinit
 end
 end
-class ABraMethid
+class AStarshipMethid
        super AMethid
        super AMethid
-    readable var _n_obra: TObra
-    readable var _n_cbra: TCbra
+       var n_op: TStarship is writable, noinit
 end
 end
-class AStarshipMethid
+class APipeMethid
+       super AMethid
+       var n_op: TPipe is writable, noinit
+end
+class ACaretMethid
+       super AMethid
+       var n_op: TCaret is writable, noinit
+end
+class AAmpMethid
        super AMethid
        super AMethid
-    readable var _n_starship: TStarship
+       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
-    readable var _n_id: TId
-    readable var _n_assign: TAssign
+       var n_id: TId is writable, noinit
+       var n_assign: TAssign is writable, noinit
 end
 class ABraassignMethid
        super AMethid
 end
 class ABraassignMethid
        super AMethid
-    readable var _n_obra: TObra
-    readable var _n_cbra: TCbra
-    readable var _n_assign: TAssign
+       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 ASignature
        super ASignature
 end
 class ASignature
        super ASignature
-    readable var _n_opar: nullable TOpar = null
-    readable var _n_params: List[AParam] = new List[AParam]
-    readable var _n_cpar: nullable TCpar = null
-    readable var _n_type: nullable AType = null
-    readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
+       var n_opar: nullable TOpar = null is writable
+       var n_params: List[AParam] = new List[AParam]
+       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
-    readable var _n_id: TId
-    readable var _n_type: nullable AType = null
-    readable var _n_dotdotdot: nullable TDotdotdot = null
-    readable var _n_annotations: nullable AAnnotations = null
-end
-class AClosureDecl
-       super AClosureDecl
-    readable var _n_kwbreak: nullable TKwbreak = null
-    readable var _n_bang: TBang
-    readable var _n_id: TId
-    readable var _n_signature: ASignature
-    readable var _n_expr: nullable AExpr = null
+       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
-    readable var _n_kwnullable: nullable TKwnullable = null
-    readable var _n_id: TClassid
-    readable var _n_types: List[AType] = new List[AType]
-    readable var _n_annotations: nullable AAnnotations = null
+       var n_kwnullable: nullable TKwnullable = null is writable
+       var n_id: TClassid is writable, noinit
+       var n_obra: nullable TObra = null is writable
+       var n_types: List[AType] = new List[AType]
+       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
-    readable var _n_kwlabel: TKwlabel
-    readable var _n_id: TId
+       var n_kwlabel: TKwlabel is writable, noinit
+       var n_id: nullable TId = null is writable
 end
 class ABlockExpr
        super AExpr
 end
 class ABlockExpr
        super AExpr
-    readable var _n_expr: List[AExpr] = new List[AExpr]
-    readable var _n_kwend: nullable TKwend = null
+       var n_expr: List[AExpr] = new List[AExpr]
+       var n_kwend: nullable TKwend = null is writable
 end
 class AVardeclExpr
        super AExpr
 end
 class AVardeclExpr
        super AExpr
-    readable var _n_kwvar: TKwvar
-    readable var _n_id: TId
-    readable var _n_type: nullable AType = null
-    readable var _n_assign: nullable TAssign = null
-    readable var _n_expr: nullable AExpr = null
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_kwreturn: nullable TKwreturn = null
-    readable var _n_expr: nullable AExpr = null
+       var n_kwreturn: nullable TKwreturn = null is writable
+       var n_expr: nullable AExpr = null is writable
 end
 class ABreakExpr
        super AExpr
 end
 class ABreakExpr
        super AExpr
-    readable var _n_kwbreak: TKwbreak
-    readable var _n_label: nullable ALabel = null
-    readable var _n_expr: nullable AExpr = null
+       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
-    readable var _n_kwabort: TKwabort
+       var n_kwabort: TKwabort is writable, noinit
 end
 class AContinueExpr
        super AExpr
 end
 class AContinueExpr
        super AExpr
-    readable var _n_kwcontinue: nullable TKwcontinue = null
-    readable var _n_label: nullable ALabel = null
-    readable var _n_expr: nullable AExpr = null
+       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
-    readable var _n_kwdo: TKwdo
-    readable var _n_block: nullable AExpr = null
-    readable var _n_label: nullable ALabel = null
+       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 AIfExpr
        super AExpr
 end
 class AIfExpr
        super AExpr
-    readable var _n_kwif: TKwif
-    readable var _n_expr: AExpr
-    readable var _n_then: nullable AExpr = null
-    readable var _n_else: nullable AExpr = null
+       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
-    readable var _n_kwif: TKwif
-    readable var _n_expr: AExpr
-    readable var _n_kwthen: TKwthen
-    readable var _n_then: AExpr
-    readable var _n_kwelse: TKwelse
-    readable var _n_else: AExpr
+       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
-    readable var _n_kwwhile: TKwwhile
-    readable var _n_expr: AExpr
-    readable var _n_kwdo: TKwdo
-    readable var _n_block: nullable AExpr = null
-    readable var _n_label: nullable ALabel = null
+       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
-    readable var _n_kwloop: TKwloop
-    readable var _n_block: nullable AExpr = null
-    readable var _n_label: nullable ALabel = null
+       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
-    readable var _n_kwfor: TKwfor
-    readable var _n_ids: List[TId] = new List[TId]
-    readable var _n_expr: AExpr
-    readable var _n_kwdo: TKwdo
-    readable var _n_block: nullable AExpr = null
-    readable var _n_label: nullable ALabel = null
+       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
-    readable var _n_kwassert: TKwassert
-    readable var _n_id: nullable TId = null
-    readable var _n_expr: AExpr
-    readable var _n_else: nullable AExpr = null
+       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
-    readable var _n_kwonce: TKwonce
-    readable var _n_expr: AExpr
+       var n_kwonce: TKwonce is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class ASendExpr
        super AExpr
 end
 class ASendExpr
        super AExpr
-    readable var _n_expr: AExpr
+       var n_expr: AExpr is writable, noinit
 end
 class ABinopExpr
        super AExpr
 end
 class ABinopExpr
        super AExpr
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AOrExpr
        super AExpr
 end
 class AOrExpr
        super AExpr
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
 end
-class ANotExpr
+class AImpliesExpr
        super AExpr
        super AExpr
-    readable var _n_kwnot: TKwnot
-    readable var _n_expr: AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwimplies is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 end
-class AEqExpr
+class ANotExpr
        super AExpr
        super AExpr
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       var n_kwnot: TKwnot is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 end
-class AEeExpr
+class AEqExpr
        super AExpr
        super AExpr
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_type: AType
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_minus: TMinus
-    readable var _n_expr: AExpr
+       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
-    readable var _n_kwnew: TKwnew
-    readable var _n_type: AType
-    readable var _n_id: nullable TId = null
-    readable var _n_args: AExprs
+       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
-    readable var _n_expr: AExpr
-    readable var _n_id: TAttrid
+       var n_expr: AExpr is writable, noinit
+       var n_id: TAttrid is writable, noinit
 end
 class AAttrAssignExpr
        super AExpr
 end
 class AAttrAssignExpr
        super AExpr
-    readable var _n_expr: AExpr
-    readable var _n_id: TAttrid
-    readable var _n_assign: TAssign
-    readable var _n_value: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_id: TAttrid
-    readable var _n_assign_op: AAssignOp
-    readable var _n_value: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_id: TId
-    readable var _n_args: AExprs
-    readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
+       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
-    readable var _n_expr: AExpr
-    readable var _n_id: TId
-    readable var _n_args: AExprs
-    readable var _n_assign: TAssign
-    readable var _n_value: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_id: TId
-    readable var _n_args: AExprs
-    readable var _n_assign_op: AAssignOp
-    readable var _n_value: AExpr
+       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
-    readable var _n_qualified: nullable AQualified = null
-    readable var _n_kwsuper: TKwsuper
-    readable var _n_args: AExprs
+       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
-    readable var _n_expr: AExpr
-    readable var _n_kwinit: TKwinit
-    readable var _n_args: AExprs
+       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
-    readable var _n_expr: AExpr
-    readable var _n_args: AExprs
-    readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
+       var n_expr: AExpr is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class ABraAssignExpr
        super AExpr
 end
 class ABraAssignExpr
        super AExpr
-    readable var _n_expr: AExpr
-    readable var _n_args: AExprs
-    readable var _n_assign: TAssign
-    readable var _n_value: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_args: AExprs
-    readable var _n_assign_op: AAssignOp
-    readable var _n_value: AExpr
-end
-class AClosureCallExpr
-       super AExpr
-    readable var _n_id: TId
-    readable var _n_args: AExprs
-    readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
+       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
-    readable var _n_id: TId
+       var n_id: TId is writable, noinit
 end
 class AVarAssignExpr
        super AExpr
 end
 class AVarAssignExpr
        super AExpr
-    readable var _n_id: TId
-    readable var _n_assign: TAssign
-    readable var _n_value: AExpr
+       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
-    readable var _n_id: TId
-    readable var _n_assign_op: AAssignOp
-    readable var _n_value: AExpr
+       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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_obra: TObra
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
-    readable var _n_cbra: TCbra
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_obra: TObra
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
-    readable var _n_cbra: TObra
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_exprs: AExprs
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_kwself: TKwself
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_kwtrue: TKwtrue
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_kwfalse: TKwfalse
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_kwnull: TKwnull
-    readable var _n_annotations: nullable AAnnotations = null
+       var n_kwnull: TKwnull is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 end
-class AIntExpr
+class AIntegerExpr
        super AExpr
        super AExpr
-    readable var _n_number: TNumber
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_float: TFloat
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_char: TChar
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_string: TString
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_string: TStartString
+       var n_string: TStartString is writable, noinit
 end
 class AMidStringExpr
        super AExpr
 end
 class AMidStringExpr
        super AExpr
-    readable var _n_string: TMidString
+       var n_string: TMidString is writable, noinit
 end
 class AEndStringExpr
        super AExpr
 end
 class AEndStringExpr
        super AExpr
-    readable var _n_string: TEndString
+       var n_string: TEndString is writable, noinit
 end
 class ASuperstringExpr
        super AExpr
 end
 class ASuperstringExpr
        super AExpr
-    readable var _n_exprs: List[AExpr] = new List[AExpr]
-    readable var _n_annotations: nullable AAnnotations = null
+       var n_exprs: List[AExpr] = new List[AExpr]
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AParExpr
        super AExpr
 end
 class AParExpr
        super AExpr
-    readable var _n_opar: TOpar
-    readable var _n_expr: AExpr
-    readable var _n_cpar: TCpar
-    readable var _n_annotations: nullable AAnnotations = null
+       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
-    readable var _n_expr: AExpr
-    readable var _n_kwas: TKwas
-    readable var _n_opar: TOpar
-    readable var _n_type: AType
-    readable var _n_cpar: TCpar
+       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
-    readable var _n_expr: AExpr
-    readable var _n_kwas: TKwas
-    readable var _n_opar: TOpar
-    readable var _n_kwnot: TKwnot
-    readable var _n_kwnull: TKwnull
-    readable var _n_cpar: TCpar
+       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
-    readable var _n_kwisset: TKwisset
-    readable var _n_expr: AExpr
-    readable var _n_id: TAttrid
+       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
-    readable var _n_kwdebug: TKwdebug
-    readable var _n_kwtype: TKwtype
-    readable var _n_expr: AExpr
-    readable var _n_type: AType
+       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 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
-    readable var _n_exprs: List[AExpr] = new List[AExpr]
+       var n_exprs: List[AExpr] = new List[AExpr]
 end
 class AParExprs
        super AExprs
 end
 class AParExprs
        super AExprs
-    readable var _n_opar: TOpar
-    readable var _n_exprs: List[AExpr] = new List[AExpr]
-    readable var _n_cpar: TCpar
+       var n_opar: TOpar is writable, noinit
+       var n_exprs: List[AExpr] = new List[AExpr]
+       var n_cpar: TCpar is writable, noinit
 end
 class ABraExprs
        super AExprs
 end
 class ABraExprs
        super AExprs
-    readable var _n_obra: TObra
-    readable var _n_exprs: List[AExpr] = new List[AExpr]
-    readable var _n_cbra: TCbra
+       var n_obra: TObra is writable, noinit
+       var n_exprs: List[AExpr] = new List[AExpr]
+       var n_cbra: TCbra is writable, noinit
 end
 class APlusAssignOp
        super AAssignOp
 end
 class APlusAssignOp
        super AAssignOp
-    readable var _n_pluseq: TPluseq
+       var n_op: TPluseq is writable, noinit
 end
 class AMinusAssignOp
        super AAssignOp
 end
 class AMinusAssignOp
        super AAssignOp
-    readable var _n_minuseq: TMinuseq
+       var n_op: TMinuseq is writable, noinit
 end
 end
-class AClosureDef
-       super AClosureDef
-    readable var _n_bang: TBang
-    readable var _n_id: AClosureId
-    readable var _n_ids: List[TId] = new List[TId]
-    readable var _n_kwdo: nullable TKwdo = null
-    readable var _n_expr: nullable AExpr = null
-    readable var _n_label: nullable ALabel = null
+class AStarAssignOp
+       super AAssignOp
+       var n_op: TStareq is writable, noinit
 end
 end
-class ASimpleClosureId
-       super AClosureId
-    readable var _n_id: TId
+class ASlashAssignOp
+       super AAssignOp
+       var n_op: TSlasheq is writable, noinit
 end
 end
-class ABreakClosureId
-       super AClosureId
-    readable var _n_kwbreak: TKwbreak
+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
-    readable var _n_quad: nullable TQuad = null
-    readable var _n_path: List[TId] = new List[TId]
-    readable var _n_id: TId
+       var n_quad: nullable TQuad = null is writable
+       var n_path: List[TId] = new List[TId]
+       var n_id: TId is writable, noinit
 end
 class AExternCalls
        super AExternCalls
 end
 class AExternCalls
        super AExternCalls
-    readable var _n_kwimport: TKwimport
-    readable var _n_extern_calls: List[AExternCall] = new List[AExternCall]
+       var n_kwimport: TKwimport is writable, noinit
+       var n_extern_calls: List[AExternCall] = new List[AExternCall]
 end
 class AExternCall
        super AExternCall
 end
 class ASuperExternCall
        super AExternCall
 end
 class AExternCall
        super AExternCall
 end
 class ASuperExternCall
        super AExternCall
-    readable var _n_kwsuper: TKwsuper
+       var n_kwsuper: TKwsuper is writable, noinit
 end
 class ALocalPropExternCall
        super AExternCall
 end
 class ALocalPropExternCall
        super AExternCall
-    readable var _n_methid: AMethid
+       var n_methid: AMethid is writable, noinit
 end
 class AFullPropExternCall
        super AExternCall
 end
 class AFullPropExternCall
        super AExternCall
-    readable var _n_classid: TClassid
-    readable var _n_quad: nullable TQuad = null
-    readable var _n_methid: AMethid
+       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
-    readable var _n_classid: TClassid
+       var n_type: AType is writable, noinit
 end
 class ACastAsExternCall
        super AExternCall
 end
 class ACastAsExternCall
        super AExternCall
-    readable var _n_from_type: AType
-    readable var _n_kwas: TKwas
-    readable var _n_to_type: AType
+       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
-    readable var _n_type: AType
-    readable var _n_kwas: TKwas
-    readable var _n_kwnullable: TKwnullable
+       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
-    readable var _n_type: AType
-    readable var _n_kwas: TKwas
-    readable var _n_kwnot: TKwnot
-    readable var _n_kwnullable: TKwnullable
+       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
-    readable var _n_kwin: TKwin
-    readable var _n_string: TString
+       var n_kwin: TKwin is writable, noinit
+       var n_string: TString is writable, noinit
 end
 class AExternCodeBlock
        super AExternCodeBlock
 end
 class AExternCodeBlock
        super AExternCodeBlock
-    readable var _n_in_language: nullable AInLanguage = null
-    readable var _n_extern_code_segment: TExternCodeSegment
+       var n_in_language: nullable AInLanguage = null is writable
+       var n_extern_code_segment: TExternCodeSegment is writable, noinit
 end
 class AQualified
        super AQualified
 end
 class AQualified
        super AQualified
-    readable var _n_id: List[TId] = new List[TId]
-    readable var _n_classid: nullable TClassid = null
+       var n_id: List[TId] = new List[TId]
+       var n_classid: nullable TClassid = null is writable
 end
 class ADoc
        super ADoc
 end
 class ADoc
        super ADoc
-    readable var _n_comment: List[TComment] = new List[TComment]
+       var n_comment: List[TComment] = new List[TComment]
 end
 class AAnnotations
        super AAnnotations
 end
 class AAnnotations
        super AAnnotations
-    readable var _n_at: nullable TAt = null
-    readable var _n_opar: nullable TOpar = null
-    readable var _n_items: List[AAnnotation] = new List[AAnnotation]
-    readable var _n_cpar: nullable TCpar = null
+       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_cpar: nullable TCpar = null is writable
+       var n_kwend: nullable TKwend = null is writable
 end
 class AAnnotation
        super AAnnotation
 end
 class AAnnotation
        super AAnnotation
-    readable var _n_atid: AAtid
-    readable var _n_opar: nullable TOpar = null
-    readable var _n_args: List[AAtArg] = new List[AAtArg]
-    readable var _n_cpar: nullable TCpar = null
-    readable var _n_annotations: nullable AAnnotations = null
-end
-class ATypeAtArg
-       super AAtArg
-    readable var _n_type: AType
-end
-class AExprAtArg
-       super AAtArg
-    readable var _n_expr: AExpr
-end
-class AAtAtArg
-       super AAtArg
-    readable var _n_annotations: AAnnotations
+       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
-    readable var _n_id: TId
+       var n_id: TId is writable, noinit
 end
 class AKwexternAtid
        super AAtid
 end
 class AKwexternAtid
        super AAtid
-    readable var _n_id: TKwextern
-end
-class AKwinternAtid
-       super AAtid
-    readable var _n_id: TKwintern
-end
-class AKwreadableAtid
-       super AAtid
-    readable var _n_id: TKwreadable
+       var n_id: TKwextern is writable, noinit
 end
 end
-class AKwwritableAtid
+class AKwabstractAtid
        super AAtid
        super AAtid
-    readable var _n_id: TKwwritable
+       var n_id: TKwabstract is writable, noinit
 end
 class AKwimportAtid
        super AAtid
 end
 class AKwimportAtid
        super AAtid
-    readable var _n_id: TKwimport
+       var n_id: TKwimport is writable, noinit
 end
 
 class Start
        super Prod
 end
 
 class Start
        super Prod
-    readable var _n_base: nullable AModule
-    readable var _n_eof: EOF
-    init(
-        n_base: nullable AModule,
-        n_eof: EOF)
-    do
-        _n_base = n_base
-        _n_eof = n_eof
-    end
-
+       var n_base: nullable AModule is writable, noinit
+       var n_eof: EOF is writable, noinit
+       init(
+               n_base: nullable AModule,
+               n_eof: EOF)
+       do
+               _n_base = n_base
+               _n_eof = n_eof
+       end
 end
 end