parser: regenerate with lambda
[nit.git] / src / parser / parser_abs.nit
index 0626354..07db08a 100644 (file)
 # 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
-special ANode
-end
-
-# Ancestor of all productions
-abstract class Prod
-special ANode
-       fun location=(loc: Location) do _location = loc
-end
 class TEol
-special Token
+       super Token
 end
 class TComment
-special Token
+       super Token
 end
 class TKwpackage
-special Token
+       super Token
+end
+class TKwmodule
+       super Token
 end
 class TKwimport
-special Token
+       super Token
 end
 class TKwclass
-special Token
+       super Token
 end
 class TKwabstract
-special Token
+       super Token
 end
 class TKwinterface
-special Token
+       super Token
 end
-class TKwuniversal
-special Token
+class TKwenum
+       super Token
 end
-class TKwspecial
-special Token
+class TKwsubset
+       super Token
 end
 class TKwend
-special Token
+       super Token
 end
 class TKwmeth
-special Token
+       super Token
 end
 class TKwtype
-special Token
+       super Token
 end
 class TKwinit
-special Token
+       super Token
 end
 class TKwredef
-special Token
+       super Token
 end
 class TKwis
-special Token
+       super Token
 end
 class TKwdo
-special Token
-end
-class TKwreadable
-special Token
-end
-class TKwwritable
-special Token
+       super Token
 end
 class TKwvar
-special Token
-end
-class TKwintern
-special Token
+       super Token
 end
 class TKwextern
-special Token
+       super Token
+end
+class TKwpublic
+       super Token
 end
 class TKwprotected
-special Token
+       super Token
 end
 class TKwprivate
-special Token
+       super Token
 end
 class TKwintrude
-special Token
+       super Token
 end
 class TKwif
-special Token
+       super Token
 end
 class TKwthen
-special Token
+       super Token
 end
 class TKwelse
-special Token
+       super Token
 end
 class TKwwhile
-special Token
+       super Token
+end
+class TKwloop
+       super Token
 end
 class TKwfor
-special Token
+       super Token
 end
 class TKwin
-special Token
+       super Token
 end
 class TKwand
-special Token
+       super Token
 end
 class TKwor
-special Token
+       super Token
 end
 class TKwnot
-special Token
+       super Token
+end
+class TKwimplies
+       super Token
 end
 class TKwreturn
-special Token
+       super Token
 end
 class TKwcontinue
-special Token
+       super Token
 end
 class TKwbreak
-special Token
+       super Token
 end
 class TKwabort
-special Token
+       super Token
 end
 class TKwassert
-special Token
+       super Token
 end
 class TKwnew
-special Token
+       super Token
 end
 class TKwisa
-special Token
+       super Token
 end
 class TKwonce
-special Token
+       super Token
 end
 class TKwsuper
-special Token
+       super Token
 end
 class TKwself
-special Token
+       super Token
 end
 class TKwtrue
-special Token
+       super Token
 end
 class TKwfalse
-special Token
+       super Token
 end
 class TKwnull
-special Token
+       super Token
 end
 class TKwas
-special Token
+       super Token
 end
 class TKwnullable
-special Token
+       super Token
 end
 class TKwisset
-special Token
+       super Token
 end
 class TKwlabel
-special Token
+       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
-special Token
+       super Token
 end
 class TCpar
-special Token
+       super Token
 end
 class TObra
-special Token
+       super Token
 end
 class TCbra
-special Token
+       super Token
 end
 class TComma
-special Token
+       super Token
 end
 class TColumn
-special Token
+       super Token
 end
 class TQuad
-special Token
+       super Token
 end
 class TAssign
-special Token
+       super Token
 end
 class TPluseq
-special Token
+       super Token
 end
 class TMinuseq
-special Token
+       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
-special Token
+       super Token
 end
 class TDotdot
-special Token
+       super Token
 end
 class TDot
-special Token
+       super Token
 end
 class TPlus
-special Token
+       super Token
 end
 class TMinus
-special Token
+       super Token
 end
 class TStar
-special Token
+       super Token
+end
+class TStarstar
+       super Token
 end
 class TSlash
-special Token
+       super Token
 end
 class TPercent
-special Token
+       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
-special Token
+       super Token
 end
 class TNe
-special Token
+       super Token
 end
 class TLt
-special Token
+       super Token
 end
 class TLe
-special Token
+       super Token
+end
+class TLl
+       super Token
 end
 class TGt
-special Token
+       super Token
 end
 class TGe
-special Token
+       super Token
+end
+class TGg
+       super Token
 end
 class TStarship
-special Token
+       super Token
 end
 class TBang
-special Token
+       super Token
+end
+class TQuest
+       super Token
+end
+class TAt
+       super Token
+end
+class TSemi
+       super Token
 end
 class TClassid
-special Token
+       super Token
 end
 class TId
-special Token
+       super Token
 end
 class TAttrid
-special Token
+       super Token
 end
-class TNumber
-special Token
+class TInteger
+       super Token
 end
 class TFloat
-special Token
-end
-class TChar
-special Token
+       super Token
 end
 class TString
-special Token
+       super Token
 end
 class TStartString
-special Token
+       super Token
 end
 class TMidString
-special Token
+       super Token
 end
 class TEndString
-special Token
+       super Token
+end
+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
-special Token
-private init noinit do end
+       super Token
 end
 class AError
-special EOF
-private init noinit do end
+       super EOF
+end
+class ALexerError
+       super AError
+end
+class AParserError
+       super AError
 end
 
-class AModule special Prod end
-class APackagedecl special Prod end
-class AImport special Prod end
-class AVisibility special Prod end
-class AClassdef special Prod end
-class AClasskind special Prod end
-class AFormaldef special Prod end
-class ASuperclass special Prod end
-class APropdef special Prod end
-class AAble special Prod end
-class AMethid special Prod end
-class ASignature special Prod end
-class AParam special Prod end
-class AClosureDecl special Prod end
-class AType special Prod end
-class ALabel special Prod end
-class AExpr special Prod end
-class AAssignOp special Prod end
-class AClosureDef special Prod end
-class AClosureId special Prod end
-class AQualified special Prod end
-class ADoc special Prod end
+class AModule super Prod end
+class AModuledecl super Prod end
+class AImport super Prod end
+class AVisibility super Prod end
+class AClassdef super Prod end
+class AClasskind super Prod end
+class AFormaldef super Prod end
+class APropdef super Prod end
+class AMethid super Prod end
+class AQid super Prod end
+class AQclassid super Prod end
+class ASignature super Prod end
+class AParam super Prod end
+class AType super Prod end
+class ALabel super Prod end
+class AExpr super Prod end
+class AExprs super Prod end
+class AAssignOp super Prod end
+class AForGroup super Prod end
+class AModuleName super Prod end
+class AExternCalls super Prod end
+class AExternCall super Prod end
+class 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
-special AModule
-    readable writable var _n_packagedecl: nullable APackagedecl = null
-    readable writable var _n_imports: List[AImport] = new List[AImport]
-    readable writable var _n_classdefs: List[AClassdef] = new List[AClassdef]
-end
-class APackagedecl
-special APackagedecl
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwpackage: TKwpackage
-    readable writable var _n_id: TId
+       super AModule
+       var n_moduledecl: nullable AModuledecl = null is writable
+       var n_imports: List[AImport] = new List[AImport]
+       var n_extern_code_blocks: List[AExternCodeBlock] = new List[AExternCodeBlock]
+       var n_classdefs: List[AClassdef] = new List[AClassdef]
+end
+class AModuledecl
+       super AModuledecl
+       var n_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
-special AImport
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwimport: TKwimport
-    readable writable var _n_id: TId
+       super AImport
+       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
-special AImport
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwimport: TKwimport
-    readable writable var _n_kwend: TKwend
+       super AImport
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwimport: TKwimport is writable, noinit
+       var n_kwend: TKwend is writable, noinit
 end
 class APublicVisibility
-special AVisibility
+       super AVisibility
+       var n_kwpublic: nullable TKwpublic = null is writable
 end
 class APrivateVisibility
-special AVisibility
-    readable writable var _n_kwprivate: TKwprivate
+       super AVisibility
+       var n_kwprivate: TKwprivate is writable, noinit
 end
 class AProtectedVisibility
-special AVisibility
-    readable writable var _n_kwprotected: TKwprotected
+       super AVisibility
+       var n_kwprotected: TKwprotected is writable, noinit
 end
 class AIntrudeVisibility
-special AVisibility
-    readable writable var _n_kwintrude: TKwintrude
+       super AVisibility
+       var n_kwintrude: TKwintrude is writable, noinit
 end
 class AStdClassdef
-special AClassdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_classkind: AClasskind
-    readable writable var _n_id: nullable TClassid = null
-    readable writable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
-    readable writable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
-    readable writable var _n_propdefs: List[APropdef] = new List[APropdef]
+       super AClassdef
+       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
-special AClassdef
-    readable writable var _n_propdefs: List[APropdef] = new List[APropdef]
+       super AClassdef
+       var n_propdefs: List[APropdef] = new List[APropdef]
 end
 class AMainClassdef
-special AClassdef
-    readable writable var _n_propdefs: List[APropdef] = new List[APropdef]
+       super AClassdef
+       var n_propdefs: List[APropdef] = new List[APropdef]
 end
 class AConcreteClasskind
-special AClasskind
-    readable writable var _n_kwclass: TKwclass
+       super AClasskind
+       var n_kwclass: TKwclass is writable, noinit
 end
 class AAbstractClasskind
-special AClasskind
-    readable writable var _n_kwabstract: TKwabstract
-    readable writable var _n_kwclass: TKwclass
+       super AClasskind
+       var n_kwabstract: TKwabstract is writable, noinit
+       var n_kwclass: TKwclass is writable, noinit
 end
 class AInterfaceClasskind
-special AClasskind
-    readable writable var _n_kwinterface: TKwinterface
+       super AClasskind
+       var n_kwinterface: TKwinterface is writable, noinit
 end
-class AUniversalClasskind
-special AClasskind
-    readable writable var _n_kwuniversal: TKwuniversal
+class AEnumClasskind
+       super AClasskind
+       var n_kwenum: TKwenum is writable, noinit
 end
-class AFormaldef
-special AFormaldef
-    readable writable var _n_id: TClassid
-    readable writable var _n_type: nullable AType = null
+class AExternClasskind
+       super AClasskind
+       var n_kwextern: TKwextern is writable, noinit
+       var n_kwclass: nullable TKwclass = null is writable
 end
-class ASuperclass
-special ASuperclass
-    readable writable var _n_kwspecial: TKwspecial
-    readable writable var _n_type: AType
+class ASubsetClasskind
+       super AClasskind
+       var n_kwsubset: TKwsubset is writable, noinit
 end
-class AAttrPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_readable: nullable AAble = null
-    readable writable var _n_writable: nullable AAble = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwvar: TKwvar
-    readable writable var _n_id: TAttrid
-    readable writable var _n_type: nullable AType = null
-    readable writable var _n_expr: nullable AExpr = null
+class AFormaldef
+       super AFormaldef
+       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 AMethPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_methid: AMethid
-    readable writable var _n_signature: ASignature
-end
-class ADeferredMethPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwmeth: TKwmeth
-    readable writable var _n_methid: AMethid
-    readable writable var _n_signature: ASignature
-end
-class AInternMethPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwmeth: TKwmeth
-    readable writable var _n_methid: AMethid
-    readable writable var _n_signature: ASignature
-end
-class AExternMethPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwmeth: TKwmeth
-    readable writable var _n_methid: AMethid
-    readable writable var _n_signature: ASignature
-    readable writable var _n_extern: nullable TString = null
-end
-class AConcreteMethPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwmeth: TKwmeth
-    readable writable var _n_methid: AMethid
-    readable writable var _n_signature: ASignature
-    readable writable var _n_block: nullable AExpr = null
-end
-class AConcreteInitPropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwinit: TKwinit
-    readable writable var _n_methid: nullable AMethid = null
-    readable writable var _n_signature: ASignature
-    readable writable var _n_block: nullable AExpr = null
+class AAttrPropdef
+       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_kwvar: TKwvar is writable, noinit
+       var n_id2: TId is writable, noinit
+       var n_type: nullable AType = null is writable
+       var n_assign: nullable TAssign = null is writable
+       var n_expr: nullable AExpr = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
+       var n_kwdo: nullable TKwdo = null is writable
+       var n_block: nullable AExpr = null is writable
+       var n_kwend: nullable TKwend = null is writable
 end
 class AMainMethPropdef
-special APropdef
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_block: nullable AExpr = null
+       super APropdef
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_block: nullable AExpr = null is writable
 end
 class ATypePropdef
-special APropdef
-    readable writable var _n_doc: nullable ADoc = null
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwtype: TKwtype
-    readable writable var _n_id: TClassid
-    readable writable var _n_type: AType
-end
-class AReadAble
-special AAble
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_kwreadable: TKwreadable
-end
-class AWriteAble
-special AAble
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_kwwritable: TKwwritable
+       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_kwtype: TKwtype is writable, noinit
+       var n_qid: AQclassid is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
+end
+class AMethPropdef
+       super APropdef
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwmeth: nullable TKwmeth = null is writable
+       var n_kwinit: nullable TKwinit = null is writable
+       var n_kwisa: nullable TKwisa = null is writable
+       var n_kwnew: nullable TKwnew = null is writable
+       var n_methid: nullable AMethid = null is writable
+       var n_signature: ASignature is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
+       var n_extern_calls: nullable AExternCalls = null is writable
+       var n_extern_code_block: nullable AExternCodeBlock = null is writable
+       var n_kwdo: nullable TKwdo = null is writable
+       var n_block: nullable AExpr = null is writable
+       var n_kwend: nullable TKwend = null is writable
+end
+class ASuperPropdef
+       super APropdef
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: AVisibility is writable, noinit
+       var n_kwsuper: TKwsuper is writable, noinit
+       var n_type: AType is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
+end
+class AAnnotPropdef
+       super APropdef
+       var n_doc: nullable ADoc = null is writable
+       var n_kwredef: nullable TKwredef = null is writable
+       var n_visibility: nullable AVisibility = null is writable
+       var n_atid: AAtid is writable, noinit
+       var n_opar: nullable TOpar = null is writable
+       var n_args: List[AExpr] = new List[AExpr]
+       var n_cpar: nullable TCpar = null is writable
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AIdMethid
-special AMethid
-    readable writable var _n_id: TId
+       super AMethid
+       var n_id: TId is writable, noinit
 end
 class APlusMethid
-special AMethid
-    readable writable var _n_plus: TPlus
+       super AMethid
+       var n_op: TPlus is writable, noinit
 end
 class AMinusMethid
-special AMethid
-    readable writable var _n_minus: TMinus
+       super AMethid
+       var n_op: TMinus is writable, noinit
 end
 class AStarMethid
-special AMethid
-    readable writable var _n_star: TStar
+       super AMethid
+       var n_op: TStar is writable, noinit
+end
+class AStarstarMethid
+       super AMethid
+       var n_op: TStarstar is writable, noinit
 end
 class ASlashMethid
-special AMethid
-    readable writable var _n_slash: TSlash
+       super AMethid
+       var n_op: TSlash is writable, noinit
 end
 class APercentMethid
-special AMethid
-    readable writable var _n_percent: TPercent
+       super AMethid
+       var n_op: TPercent is writable, noinit
 end
 class AEqMethid
-special AMethid
-    readable writable var _n_eq: TEq
+       super AMethid
+       var n_op: TEq is writable, noinit
 end
 class ANeMethid
-special AMethid
-    readable writable var _n_ne: TNe
+       super AMethid
+       var n_op: TNe is writable, noinit
 end
 class ALeMethid
-special AMethid
-    readable writable var _n_le: TLe
+       super AMethid
+       var n_op: TLe is writable, noinit
 end
 class AGeMethid
-special AMethid
-    readable writable var _n_ge: TGe
+       super AMethid
+       var n_op: TGe is writable, noinit
 end
 class ALtMethid
-special AMethid
-    readable writable var _n_lt: TLt
+       super AMethid
+       var n_op: TLt is writable, noinit
 end
 class AGtMethid
-special AMethid
-    readable writable var _n_gt: TGt
+       super AMethid
+       var n_op: TGt is writable, noinit
 end
-class ABraMethid
-special AMethid
-    readable writable var _n_obra: TObra
-    readable writable var _n_cbra: TCbra
+class ALlMethid
+       super AMethid
+       var n_op: TLl is writable, noinit
+end
+class AGgMethid
+       super AMethid
+       var n_op: TGg is writable, noinit
 end
 class AStarshipMethid
-special AMethid
-    readable writable var _n_starship: TStarship
+       super AMethid
+       var n_op: TStarship is writable, noinit
+end
+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
+       var n_obra: TObra is writable, noinit
+       var n_cbra: TCbra is writable, noinit
 end
 class AAssignMethid
-special AMethid
-    readable writable var _n_id: TId
-    readable writable var _n_assign: TAssign
+       super AMethid
+       var n_id: TId is writable, noinit
+       var n_assign: TAssign is writable, noinit
 end
 class ABraassignMethid
-special AMethid
-    readable writable var _n_obra: TObra
-    readable writable var _n_cbra: TCbra
-    readable writable var _n_assign: TAssign
+       super AMethid
+       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
-special ASignature
-    readable writable var _n_params: List[AParam] = new List[AParam]
-    readable writable var _n_type: nullable AType = null
-    readable writable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
+       super ASignature
+       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
-special AParam
-    readable writable var _n_id: TId
-    readable writable var _n_type: nullable AType = null
-    readable writable var _n_dotdotdot: nullable TDotdotdot = null
-end
-class AClosureDecl
-special AClosureDecl
-    readable writable var _n_kwbreak: nullable TKwbreak = null
-    readable writable var _n_bang: TBang
-    readable writable var _n_id: TId
-    readable writable var _n_signature: ASignature
-    readable writable var _n_expr: nullable AExpr = null
+       super AParam
+       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
-special AType
-    readable writable var _n_kwnullable: nullable TKwnullable = null
-    readable writable var _n_id: TClassid
-    readable writable var _n_types: List[AType] = new List[AType]
+       super 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
-special ALabel
-    readable writable var _n_kwlabel: TKwlabel
-    readable writable var _n_id: TId
+       super ALabel
+       var n_kwlabel: TKwlabel is writable, noinit
+       var n_id: nullable TId = null is writable
 end
 class ABlockExpr
-special AExpr
-    readable writable var _n_expr: List[AExpr] = new List[AExpr]
+       super AExpr
+       var n_expr: List[AExpr] = new List[AExpr]
+       var n_kwend: nullable TKwend = null is writable
 end
 class AVardeclExpr
-special AExpr
-    readable writable var _n_kwvar: TKwvar
-    readable writable var _n_id: TId
-    readable writable var _n_type: nullable AType = null
-    readable writable var _n_assign: nullable TAssign = null
-    readable writable var _n_expr: nullable AExpr = null
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwreturn: nullable TKwreturn = null
-    readable writable var _n_expr: nullable AExpr = null
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwbreak: TKwbreak
-    readable writable var _n_label: nullable ALabel = null
-    readable writable var _n_expr: nullable AExpr = null
+       super AExpr
+       var n_kwbreak: TKwbreak is writable, noinit
+       var n_label: nullable ALabel = null is writable
 end
 class AAbortExpr
-special AExpr
-    readable writable var _n_kwabort: TKwabort
+       super AExpr
+       var n_kwabort: TKwabort is writable, noinit
 end
 class AContinueExpr
-special AExpr
-    readable writable var _n_kwcontinue: nullable TKwcontinue = null
-    readable writable var _n_label: nullable ALabel = null
-    readable writable var _n_expr: nullable AExpr = null
+       super AExpr
+       var n_kwcontinue: nullable TKwcontinue = null is writable
+       var n_label: nullable ALabel = null is writable
 end
 class ADoExpr
-special AExpr
-    readable writable var _n_kwdo: TKwdo
-    readable writable var _n_block: nullable AExpr = null
-    readable writable var _n_label: nullable ALabel = null
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwif: TKwif
-    readable writable var _n_expr: AExpr
-    readable writable var _n_then: nullable AExpr = null
-    readable writable var _n_else: nullable AExpr = null
+       super 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: nullable AExpr = null is writable
+       var n_kwelse: nullable TKwelse = null is writable
+       var n_else: nullable AExpr = null is writable
 end
 class AIfexprExpr
-special AExpr
-    readable writable var _n_kwif: TKwif
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwthen: TKwthen
-    readable writable var _n_then: AExpr
-    readable writable var _n_kwelse: TKwelse
-    readable writable var _n_else: AExpr
+       super 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
-special AExpr
-    readable writable var _n_kwwhile: TKwwhile
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwdo: TKwdo
-    readable writable var _n_block: nullable AExpr = null
-    readable writable var _n_label: nullable ALabel = null
+       super AExpr
+       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
+       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
-special AExpr
-    readable writable var _n_kwfor: TKwfor
-    readable writable var _n_id: TId
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwdo: TKwdo
-    readable writable var _n_block: nullable AExpr = null
-    readable writable var _n_label: nullable ALabel = null
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwassert: TKwassert
-    readable writable var _n_id: nullable TId = null
-    readable writable var _n_expr: AExpr
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwonce: TKwonce
-    readable writable var _n_expr: AExpr
+       super AExpr
+       var n_kwonce: TKwonce is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class ASendExpr
-special AExpr
-    readable writable var _n_expr: AExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
 end
 class ABinopExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AOrExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwor is writable, noinit
+       var n_kwelse: TKwelse is writable, noinit
+       var n_expr2: AExpr is writable, noinit
+end
+class AImpliesExpr
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_op: TKwimplies is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class ANotExpr
-special AExpr
-    readable writable var _n_kwnot: TKwnot
-    readable writable var _n_expr: AExpr
+       super AExpr
+       var n_kwnot: TKwnot is writable, noinit
+       var n_expr: AExpr is writable, noinit
 end
 class AEqExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
-end
-class AEeExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
+       var n_expr: AExpr is writable, noinit
+       var n_op: TLl is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AGtExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
+       var n_expr: AExpr is writable, noinit
+       var n_op: TGg is writable, noinit
+       var n_expr2: AExpr is writable, noinit
 end
 class AIsaExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_type: AType
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_kwisa: TKwisa is writable, noinit
+       var n_type: AType is writable, noinit
 end
 class APlusExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_minus: TMinus
-    readable writable var _n_expr: AExpr
+       super 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
-special AExpr
-    readable writable var _n_kwnew: TKwnew
-    readable writable var _n_type: AType
-    readable writable var _n_id: nullable TId = null
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TAttrid
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_id: TAttrid is writable, noinit
 end
 class AAttrAssignExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TAttrid
-    readable writable var _n_assign: TAssign
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TAttrid
-    readable writable var _n_assign_op: AAssignOp
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_assign: TAssign
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_assign_op: AAssignOp
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_qualified: nullable AQualified = null
-    readable writable var _n_kwsuper: TKwsuper
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwinit: TKwinit
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_kwinit: TKwinit is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class ABraExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
+       super AExpr
+       var n_expr: AExpr is writable, noinit
+       var n_args: AExprs is writable, noinit
 end
 class ABraAssignExpr
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_assign: TAssign
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_assign_op: AAssignOp
-    readable writable var _n_value: AExpr
-end
-class AClosureCallExpr
-special AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_args: List[AExpr] = new List[AExpr]
-    readable writable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_id: TId
+       super AExpr
+       var n_id: TId is writable, noinit
 end
 class AVarAssignExpr
-special AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_assign: TAssign
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_assign_op: AAssignOp
-    readable writable var _n_value: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_exprs: List[AExpr] = new List[AExpr]
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwself: TKwself
+       super AExpr
+       var n_kwself: TKwself is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AImplicitSelfExpr
-special AExpr
+       super AExpr
 end
 class ATrueExpr
-special AExpr
-    readable writable var _n_kwtrue: TKwtrue
+       super AExpr
+       var n_kwtrue: TKwtrue is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AFalseExpr
-special AExpr
-    readable writable var _n_kwfalse: TKwfalse
+       super AExpr
+       var n_kwfalse: TKwfalse is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ANullExpr
-special AExpr
-    readable writable var _n_kwnull: TKwnull
+       super AExpr
+       var n_kwnull: TKwnull is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
-class AIntExpr
-special AExpr
-    readable writable var _n_number: TNumber
+class AIntegerExpr
+       super AExpr
+       var n_integer: TInteger is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AFloatExpr
-special AExpr
-    readable writable var _n_float: TFloat
+       super AExpr
+       var n_float: TFloat is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class ACharExpr
-special AExpr
-    readable writable var _n_char: TChar
+       super AExpr
+       var n_char: TChar is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStringExpr
-special AExpr
-    readable writable var _n_string: TString
+       super AExpr
+       var n_string: TString is writable, noinit
+       var n_annotations: nullable AAnnotations = null is writable
 end
 class AStartStringExpr
-special AExpr
-    readable writable var _n_string: TStartString
+       super AExpr
+       var n_string: TStartString is writable, noinit
 end
 class AMidStringExpr
-special AExpr
-    readable writable var _n_string: TMidString
+       super AExpr
+       var n_string: TMidString is writable, noinit
 end
 class AEndStringExpr
-special AExpr
-    readable writable var _n_string: TEndString
+       super AExpr
+       var n_string: TEndString is writable, noinit
 end
 class ASuperstringExpr
-special AExpr
-    readable writable var _n_exprs: List[AExpr] = new List[AExpr]
+       super 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
-special AExpr
-    readable writable var _n_expr: AExpr
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwas: TKwas
-    readable writable var _n_type: AType
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwas: TKwas
-    readable writable var _n_kwnot: TKwnot
-    readable writable var _n_kwnull: TKwnull
+       super AExpr
+       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
-special AExpr
-    readable writable var _n_kwisset: TKwisset
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TAttrid
+       super AExpr
+       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
+       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
+       var n_exprs: List[AExpr] = new List[AExpr]
+end
+class AParExprs
+       super AExprs
+       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
+       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
-special AAssignOp
-    readable writable var _n_pluseq: TPluseq
+       super AAssignOp
+       var n_op: TPluseq is writable, noinit
 end
 class AMinusAssignOp
-special AAssignOp
-    readable writable var _n_minuseq: TMinuseq
-end
-class AClosureDef
-special AClosureDef
-    readable writable var _n_bang: TBang
-    readable writable var _n_id: AClosureId
-    readable writable var _n_ids: List[TId] = new List[TId]
-    readable writable var _n_kwdo: nullable TKwdo = null
-    readable writable var _n_expr: nullable AExpr = null
-    readable writable var _n_label: nullable ALabel = null
-end
-class ASimpleClosureId
-special AClosureId
-    readable writable var _n_id: TId
-end
-class ABreakClosureId
-special AClosureId
-    readable writable var _n_kwbreak: TKwbreak
+       super AAssignOp
+       var n_op: TMinuseq is writable, noinit
+end
+class AStarAssignOp
+       super AAssignOp
+       var n_op: TStareq is writable, noinit
+end
+class ASlashAssignOp
+       super AAssignOp
+       var n_op: TSlasheq is writable, noinit
+end
+class APercentAssignOp
+       super AAssignOp
+       var n_op: TPercenteq is writable, noinit
+end
+class AStarstarAssignOp
+       super AAssignOp
+       var n_op: TStarstareq is writable, noinit
+end
+class APipeAssignOp
+       super AAssignOp
+       var n_op: TPipeeq is writable, noinit
+end
+class ACaretAssignOp
+       super AAssignOp
+       var n_op: TCareteq is writable, noinit
+end
+class AAmpAssignOp
+       super AAssignOp
+       var n_op: TAmpeq is writable, noinit
+end
+class ALlAssignOp
+       super AAssignOp
+       var n_op: TLleq is writable, noinit
+end
+class AGgAssignOp
+       super AAssignOp
+       var n_op: TGgeq is writable, noinit
+end
+class AForGroup
+       super AForGroup
+       var n_ids: List[TId] = new List[TId]
+       var n_kwin: TKwin is writable, noinit
+       var n_expr: AExpr is writable, noinit
+end
+class AModuleName
+       super AModuleName
+       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
+       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
+       var n_kwsuper: TKwsuper is writable, noinit
+end
+class ALocalPropExternCall
+       super AExternCall
+       var n_methid: AMethid is writable, noinit
+end
+class AFullPropExternCall
+       super AExternCall
+       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
+       var n_type: AType is writable, noinit
+end
+class ACastAsExternCall
+       super AExternCall
+       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
+       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
+       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
+       var n_kwin: TKwin is writable, noinit
+       var n_string: TString is writable, noinit
+end
+class AExternCodeBlock
+       super AExternCodeBlock
+       var n_in_language: nullable AInLanguage = null is writable
+       var n_extern_code_segment: TExternCodeSegment is writable, noinit
 end
 class AQualified
-special AQualified
-    readable writable var _n_id: List[TId] = new List[TId]
-    readable writable var _n_classid: nullable TClassid = null
+       super AQualified
+       var n_id: List[TId] = new List[TId]
+       var n_classid: nullable TClassid = null is writable
 end
 class ADoc
-special ADoc
-    readable writable var _n_comment: List[TComment] = new List[TComment]
+       super ADoc
+       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
-special Prod
-    readable writable var _n_base: nullable AModule
-    readable writable var _n_eof: EOF
+       super Prod
+       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