parser: regenerate with lambda
[nit.git] / src / parser / parser_abs.nit
index 55f5c6a..07db08a 100644 (file)
@@ -1,34 +1,18 @@
 # Raw AST node hierarchy.
 # This file was generated by SableCC (http://www.sablecc.org/).
-package parser_abs
+module parser_abs is generated, no_warning("missing-doc")
 
 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 TKwpackage
+       super Token
+end
 class TKwmodule
        super Token
 end
@@ -47,7 +31,7 @@ end
 class TKwenum
        super Token
 end
-class TKwspecial
+class TKwsubset
        super Token
 end
 class TKwend
@@ -71,19 +55,13 @@ end
 class TKwdo
        super Token
 end
-class TKwreadable
-       super Token
-end
-class TKwwritable
-       super Token
-end
 class TKwvar
        super Token
 end
-class TKwintern
+class TKwextern
        super Token
 end
-class TKwextern
+class TKwpublic
        super Token
 end
 class TKwprotected
@@ -125,6 +103,9 @@ end
 class TKwnot
        super Token
 end
+class TKwimplies
+       super Token
+end
 class TKwreturn
        super Token
 end
@@ -176,9 +157,18 @@ end
 class TKwlabel
        super Token
 end
+class TKwwith
+       super Token
+end
 class TKwdebug
        super Token
 end
+class TKwyield
+       super Token
+end
+class TKwcatch
+       super Token
+end
 class TOpar
        super Token
 end
@@ -209,6 +199,33 @@ 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
@@ -227,12 +244,27 @@ end
 class TStar
        super Token
 end
+class TStarstar
+       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
@@ -263,6 +295,15 @@ end
 class TBang
        super Token
 end
+class TQuest
+       super Token
+end
+class TAt
+       super Token
+end
+class TSemi
+       super Token
+end
 class TClassid
        super Token
 end
@@ -272,15 +313,12 @@ end
 class TAttrid
        super Token
 end
-class TNumber
+class TInteger
        super Token
 end
 class TFloat
        super Token
 end
-class TChar
-       super Token
-end
 class TString
        super Token
 end
@@ -293,22 +331,35 @@ end
 class TEndString
        super Token
 end
-class TBadChar
+class TChar
        super Token
 end
 class TBadString
        super Token
 end
+class TBadTString
+       super Token
+end
+class TBadChar
+       super Token
+end
 class TExternCodeSegment
        super Token
 end
+class TBadExtern
+       super Token
+end
 class EOF
        super Token
-private init noinit do end
 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
@@ -318,20 +369,18 @@ class AVisibility 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 AAble 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 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 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
@@ -339,857 +388,1040 @@ class AInLanguage super Prod end
 class AExternCodeBlock super Prod end
 class AQualified super Prod end
 class ADoc super Prod end
+class AAnnotations super Prod end
+class AAnnotation super Prod end
+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
-    readable var _n_doc: nullable ADoc = null
-    readable var _n_kwmodule: TKwmodule
-    readable var _n_name: AModuleName
+       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
-    readable var _n_visibility: AVisibility
-    readable var _n_kwimport: TKwimport
-    readable var _n_name: AModuleName
+       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
-    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
+       var n_kwpublic: nullable TKwpublic = null is writable
 end
 class APrivateVisibility
        super AVisibility
-    readable var _n_kwprivate: TKwprivate
+       var n_kwprivate: TKwprivate is writable, noinit
 end
 class AProtectedVisibility
        super AVisibility
-    readable var _n_kwprotected: TKwprotected
+       var n_kwprotected: TKwprotected is writable, noinit
 end
 class AIntrudeVisibility
        super AVisibility
-    readable var _n_kwintrude: TKwintrude
+       var n_kwintrude: TKwintrude is writable, noinit
 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_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_qid: nullable AQclassid = 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
-    readable var _n_propdefs: List[APropdef] = new List[APropdef]
+       var n_propdefs: List[APropdef] = new List[APropdef]
 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
-    readable var _n_kwclass: TKwclass
+       var n_kwclass: TKwclass is writable, noinit
 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
-    readable var _n_kwinterface: TKwinterface
+       var n_kwinterface: TKwinterface is writable, noinit
 end
 class AEnumClasskind
        super AClasskind
-    readable var _n_kwenum: TKwenum
+       var n_kwenum: TKwenum is writable, noinit
 end
 class AExternClasskind
        super AClasskind
-    readable var _n_kwextern: TKwextern
+       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
-    readable var _n_id: TClassid
-    readable var _n_type: nullable AType = null
-end
-class ASuperclass
-       super ASuperclass
-    readable var _n_kwspecial: nullable TKwspecial = null
-    readable var _n_kwsuper: nullable TKwsuper = null
-    readable var _n_type: AType
+       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
-    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_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
-class AMethPropdef
+class AMainMethPropdef
        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
-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
-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_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_block: nullable AExpr = null
-end
-class AExternInitPropdef
+class ATypePropdef
        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_qid: AQclassid is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
-class AMainMethPropdef
+class AMethPropdef
        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_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
-    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
-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: 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
-    readable var _n_id: TId
+       var n_id: TId is writable, noinit
 end
 class APlusMethid
        super AMethid
-    readable var _n_plus: TPlus
+       var n_op: TPlus is writable, noinit
 end
 class AMinusMethid
        super AMethid
-    readable var _n_minus: TMinus
+       var n_op: TMinus is writable, noinit
 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
-    readable var _n_slash: TSlash
+       var n_op: TSlash is writable, noinit
 end
 class APercentMethid
        super AMethid
-    readable var _n_percent: TPercent
+       var n_op: TPercent is writable, noinit
 end
 class AEqMethid
        super AMethid
-    readable var _n_eq: TEq
+       var n_op: TEq is writable, noinit
 end
 class ANeMethid
        super AMethid
-    readable var _n_ne: TNe
+       var n_op: TNe is writable, noinit
 end
 class ALeMethid
        super AMethid
-    readable var _n_le: TLe
+       var n_op: TLe is writable, noinit
 end
 class AGeMethid
        super AMethid
-    readable var _n_ge: TGe
+       var n_op: TGe is writable, noinit
 end
 class ALtMethid
        super AMethid
-    readable var _n_lt: TLt
+       var n_op: TLt is writable, noinit
 end
 class AGtMethid
        super AMethid
-    readable var _n_gt: TGt
+       var n_op: TGt is writable, noinit
 end
 class ALlMethid
        super AMethid
-    readable var _n_ll: TLl
+       var n_op: TLl is writable, noinit
 end
 class AGgMethid
        super AMethid
-    readable var _n_gg: TGg
+       var n_op: TGg is writable, noinit
 end
-class ABraMethid
+class AStarshipMethid
        super AMethid
-    readable var _n_obra: TObra
-    readable var _n_cbra: TCbra
+       var n_op: TStarship is writable, noinit
 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
+       var n_op: TAmp is writable, noinit
+end
+class ATildeMethid
+       super AMethid
+       var n_op: TTilde is writable, noinit
+end
+class ABraMethid
        super AMethid
-    readable var _n_starship: TStarship
+       var n_obra: TObra is writable, noinit
+       var n_cbra: TCbra is writable, noinit
 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
-    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 AQclassid
+       super AQclassid
+       var n_qualified: nullable AQualified = null is writable
+       var n_id: TClassid is writable, noinit
 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
-    readable var _n_id: TId
-    readable var _n_type: nullable AType = null
-    readable var _n_dotdotdot: nullable TDotdotdot = 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
-    readable var _n_kwnullable: nullable TKwnullable = null
-    readable var _n_id: TClassid
-    readable var _n_types: List[AType] = new List[AType]
+       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_cbra: nullable TCbra = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 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
-    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
-    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
+       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
-    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 AYieldExpr
+       super AExpr
+       var n_kwyield: TKwyield is writable, noinit
+       var n_expr: AExpr is writable, noinit
 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
-    readable var _n_kwabort: TKwabort
+       var n_kwabort: TKwabort is writable, noinit
 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
-    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_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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    readable var _n_expr: AExpr
+       var n_expr: AExpr is writable, noinit
 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
-    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
-    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
-    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
-class ANotExpr
+class AImpliesExpr
        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
-class AEqExpr
+class ANotExpr
        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
-class AEeExpr
+class AEqExpr
        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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    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 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
-    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
-    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
-    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
-    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
-    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
-    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
-    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
-    readable var _n_id: TId
+       var n_id: TId is writable, noinit
 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
-    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
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
+       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
-    readable var _n_obra: TObra
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
-    readable var _n_cbra: TCbra
+       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
-    readable var _n_obra: TObra
-    readable var _n_expr: AExpr
-    readable var _n_expr2: AExpr
-    readable var _n_cbra: TObra
+       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
-    readable var _n_exprs: AExprs
+       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
-    readable var _n_kwself: TKwself
+       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
-    readable var _n_kwtrue: TKwtrue
+       var n_kwtrue: TKwtrue is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AFalseExpr
        super AExpr
-    readable var _n_kwfalse: TKwfalse
+       var n_kwfalse: TKwfalse is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ANullExpr
        super AExpr
-    readable var _n_kwnull: TKwnull
+       var n_kwnull: TKwnull is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
-class AIntExpr
+class AIntegerExpr
        super AExpr
-    readable var _n_number: TNumber
+       var n_integer: TInteger is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AFloatExpr
        super AExpr
-    readable var _n_float: TFloat
+       var n_float: TFloat is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ACharExpr
        super AExpr
-    readable var _n_char: TChar
+       var n_char: TChar is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStringExpr
        super AExpr
-    readable var _n_string: TString
+       var n_string: TString is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStartStringExpr
        super AExpr
-    readable var _n_string: TStartString
+       var n_string: TStartString is writable, noinit
 end
 class AMidStringExpr
        super AExpr
-    readable var _n_string: TMidString
+       var n_string: TMidString is writable, noinit
 end
 class AEndStringExpr
        super AExpr
-    readable var _n_string: TEndString
+       var n_string: TEndString is writable, noinit
 end
 class ASuperstringExpr
        super AExpr
-    readable var _n_exprs: List[AExpr] = new List[AExpr]
+       var n_exprs: List[AExpr] = new List[AExpr]
+       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
-    readable var _n_opar: TOpar
-    readable var _n_expr: AExpr
-    readable var _n_cpar: TCpar
+       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
-    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
-    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
-    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
-    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 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
-    readable var _n_exprs: List[AExpr] = new List[AExpr]
+       var n_exprs: List[AExpr] = new List[AExpr]
 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
-    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
-    readable var _n_pluseq: TPluseq
+       var n_op: TPluseq is writable, noinit
 end
 class AMinusAssignOp
        super AAssignOp
-    readable var _n_minuseq: TMinuseq
+       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 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 APercentAssignOp
+       super AAssignOp
+       var n_op: TPercenteq is writable, noinit
 end
-class ASimpleClosureId
-       super AClosureId
-    readable var _n_id: TId
+class AStarstarAssignOp
+       super AAssignOp
+       var n_op: TStarstareq is writable, noinit
 end
-class ABreakClosureId
-       super AClosureId
-    readable var _n_kwbreak: TKwbreak
+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
-    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
-    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
-    readable var _n_kwsuper: TKwsuper
+       var n_kwsuper: TKwsuper is writable, noinit
 end
 class ALocalPropExternCall
        super AExternCall
-    readable var _n_methid: AMethid
+       var n_methid: AMethid is writable, noinit
 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
-    readable var _n_classid: TClassid
+       var n_type: AType is writable, noinit
 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
-    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
-    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
-    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
-    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
-    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
-    readable var _n_comment: List[TComment] = new List[TComment]
+       var n_comment: List[TComment] = new List[TComment]
+end
+class AAnnotations
+       super AAnnotations
+       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
+       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
+       var n_id: TId is writable, noinit
+end
+class AKwexternAtid
+       super AAtid
+       var n_id: TKwextern is writable, noinit
+end
+class AKwabstractAtid
+       super AAtid
+       var n_id: TKwabstract is writable, noinit
+end
+class AKwimportAtid
+       super AAtid
+       var n_id: TKwimport is writable, noinit
 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