syntax: 'meth' -> 'fun', 'attr' -> 'var'
[nit.git] / src / parser / parser_nodes.nit
index c77a193..5ddd64c 100644 (file)
@@ -159,6 +159,15 @@ end
 class TKwas
 special Token
 end
 class TKwas
 special Token
 end
+class TKwwith
+special Token
+end
+class TKwnullable
+special Token
+end
+class TKwisset
+special Token
+end
 class TOpar
 special Token
 end
 class TOpar
 special Token
 end
@@ -282,375 +291,387 @@ class PClasskind special Prod end
 class PFormaldef special Prod end
 class PSuperclass special Prod end
 class PPropdef special Prod 
 class PFormaldef special Prod end
 class PSuperclass special Prod end
 class PPropdef special Prod 
-    readable writable attr _n_doc: PDoc = null
+    readable writable var _n_doc: nullable PDoc = null
 end
 class PAble special Prod
 end
 class PAble special Prod
-    readable writable attr _n_kwredef: TKwredef = null
+    readable writable var _n_kwredef: nullable TKwredef = null
 end
 class PMethid special Prod end
 class PSignature special Prod end
 class PParam
 special Prod
 end
 class PMethid special Prod end
 class PSignature special Prod end
 class PParam
 special Prod
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_id: TId
+    readable writable var _n_type: nullable PType = null
 end
 end
+class PClosureDecl special Prod end
 class PType special Prod end
 class PExpr special Prod end
 class PAssignOp special Prod end
 class PType special Prod end
 class PExpr special Prod end
 class PAssignOp special Prod end
+class PClosureDef special Prod end
 class PQualified special Prod end
 class PDoc special Prod end
 
 class AModule
 special PModule
 class PQualified special Prod end
 class PDoc special Prod end
 
 class AModule
 special PModule
-    readable writable attr _n_packagedecl: PPackagedecl = null
-    readable writable attr _n_imports: List[PImport] = null
-    readable writable attr _n_classdefs: List[PClassdef] = null
+    readable writable var _n_packagedecl: nullable PPackagedecl = null
+    readable writable var _n_imports: List[PImport] = new List[PImport]
+    readable writable var _n_classdefs: List[PClassdef] = new List[PClassdef]
 end
 class APackagedecl
 special PPackagedecl
 end
 class APackagedecl
 special PPackagedecl
-    readable writable attr _n_doc: PDoc = null
-    readable writable attr _n_kwpackage: TKwpackage = null
-    readable writable attr _n_id: TId = null
+    readable writable var _n_doc: nullable PDoc = null
+    readable writable var _n_kwpackage: TKwpackage
+    readable writable var _n_id: TId
 end
 class AImport
 special PImport
 end
 class AImport
 special PImport
-    readable writable attr _n_visibility: PVisibility = null
-    readable writable attr _n_kwimport: TKwimport = null
-    readable writable attr _n_id: TId = null
+    readable writable var _n_visibility: PVisibility
+    readable writable var _n_kwimport: TKwimport
+    readable writable var _n_id: TId
 end
 class ANoImport
 special PImport
 end
 class ANoImport
 special PImport
-    readable writable attr _n_visibility: PVisibility = null
-    readable writable attr _n_kwimport: TKwimport = null
-    readable writable attr _n_kwend: TKwend = null
+    readable writable var _n_visibility: PVisibility
+    readable writable var _n_kwimport: TKwimport
+    readable writable var _n_kwend: TKwend
 end
 class APublicVisibility
 special PVisibility
 end
 class APrivateVisibility
 special PVisibility
 end
 class APublicVisibility
 special PVisibility
 end
 class APrivateVisibility
 special PVisibility
-    readable writable attr _n_kwprivate: TKwprivate = null
+    readable writable var _n_kwprivate: TKwprivate
 end
 class AProtectedVisibility
 special PVisibility
 end
 class AProtectedVisibility
 special PVisibility
-    readable writable attr _n_kwprotected: TKwprotected = null
+    readable writable var _n_kwprotected: TKwprotected
 end
 class AIntrudeVisibility
 special PVisibility
 end
 class AIntrudeVisibility
 special PVisibility
-    readable writable attr _n_kwintrude: TKwintrude = null
+    readable writable var _n_kwintrude: TKwintrude
 end
 class AClassdef
 special PClassdef
 end
 class AClassdef
 special PClassdef
-    readable writable attr _n_doc: PDoc = null
-    readable writable attr _n_kwredef: TKwredef = null
-    readable writable attr _n_visibility: PVisibility = null
-    readable writable attr _n_classkind: PClasskind = null
-    readable writable attr _n_id: TClassid = null
-    readable writable attr _n_formaldefs: List[PFormaldef] = null
-    readable writable attr _n_superclasses: List[PSuperclass] = null
-    readable writable attr _n_propdefs: List[PPropdef] = null
+    readable writable var _n_doc: nullable PDoc = null
+    readable writable var _n_kwredef: nullable TKwredef = null
+    readable writable var _n_visibility: PVisibility
+    readable writable var _n_classkind: PClasskind
+    readable writable var _n_id: nullable TClassid = null
+    readable writable var _n_formaldefs: List[PFormaldef] = new List[PFormaldef]
+    readable writable var _n_superclasses: List[PSuperclass] = new List[PSuperclass]
+    readable writable var _n_propdefs: List[PPropdef] = new List[PPropdef]
 end
 class ATopClassdef
 special PClassdef
 end
 class ATopClassdef
 special PClassdef
-    readable writable attr _n_propdefs: List[PPropdef] = null
+    readable writable var _n_propdefs: List[PPropdef] = new List[PPropdef]
 end
 class AMainClassdef
 special PClassdef
 end
 class AMainClassdef
 special PClassdef
-    readable writable attr _n_propdefs: List[PPropdef] = null
+    readable writable var _n_propdefs: List[PPropdef] = new List[PPropdef]
 end
 class AConcreteClasskind
 special PClasskind
 end
 class AConcreteClasskind
 special PClasskind
-    readable writable attr _n_kwclass: TKwclass = null
+    readable writable var _n_kwclass: TKwclass
 end
 class AAbstractClasskind
 special PClasskind
 end
 class AAbstractClasskind
 special PClasskind
-    readable writable attr _n_kwabstract: TKwabstract = null
-    readable writable attr _n_kwclass: TKwclass = null
+    readable writable var _n_kwabstract: TKwabstract
+    readable writable var _n_kwclass: TKwclass
 end
 class AInterfaceClasskind
 special PClasskind
 end
 class AInterfaceClasskind
 special PClasskind
-    readable writable attr _n_kwinterface: TKwinterface = null
+    readable writable var _n_kwinterface: TKwinterface
 end
 class AUniversalClasskind
 special PClasskind
 end
 class AUniversalClasskind
 special PClasskind
-    readable writable attr _n_kwuniversal: TKwuniversal = null
+    readable writable var _n_kwuniversal: TKwuniversal
 end
 class AFormaldef
 special PFormaldef
 end
 class AFormaldef
 special PFormaldef
-    readable writable attr _n_id: TClassid = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_id: TClassid
+    readable writable var _n_type: nullable PType = null
 end
 class ASuperclass
 special PSuperclass
 end
 class ASuperclass
 special PSuperclass
-    readable writable attr _n_kwspecial: TKwspecial = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_kwspecial: TKwspecial
+    readable writable var _n_type: PType
 end
 class AAttrPropdef
 special PPropdef
 end
 class AAttrPropdef
 special PPropdef
-    readable writable attr _n_kwredef: TKwredef = null
-    readable writable attr _n_visibility: PVisibility = null
-    readable writable attr _n_kwattr: TKwattr = null
-    readable writable attr _n_id: TAttrid = null
-    readable writable attr _n_type: PType = null
-    readable writable attr _n_readable: PAble = null
-    readable writable attr _n_writable: PAble = null
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_kwredef: nullable TKwredef = null
+    readable writable var _n_visibility: PVisibility
+    readable writable var _n_kwattr: nullable TKwattr = null
+    readable writable var _n_kwvar: nullable TKwvar = null
+    readable writable var _n_id: TAttrid
+    readable writable var _n_type: nullable PType = null
+    readable writable var _n_readable: nullable PAble = null
+    readable writable var _n_writable: nullable PAble = null
+    readable writable var _n_expr: nullable PExpr = null
 end
 class AMethPropdef
 special PPropdef
 end
 class AMethPropdef
 special PPropdef
-    readable writable attr _n_kwredef: TKwredef = null
-    readable writable attr _n_visibility: PVisibility = null
-    readable writable attr _n_methid: PMethid = null
-    readable writable attr _n_signature: PSignature = null
+    readable writable var _n_kwredef: nullable TKwredef = null
+    readable writable var _n_visibility: nullable PVisibility
+    readable writable var _n_methid: nullable PMethid = null
+    readable writable var _n_signature: nullable PSignature
 end
 class ADeferredMethPropdef
 special AMethPropdef
 end
 class ADeferredMethPropdef
 special AMethPropdef
-    readable writable attr _n_kwmeth: TKwmeth = null
+    readable writable var _n_kwmeth: TKwmeth
 end
 class AInternMethPropdef
 special AMethPropdef
 end
 class AInternMethPropdef
 special AMethPropdef
-    readable writable attr _n_kwmeth: TKwmeth = null
+    readable writable var _n_kwmeth: TKwmeth
 end
 class AExternMethPropdef
 special AMethPropdef
 end
 class AExternMethPropdef
 special AMethPropdef
-    readable writable attr _n_kwmeth: TKwmeth = null
-    readable writable attr _n_extern: TString = null
+    readable writable var _n_kwmeth: TKwmeth
+    readable writable var _n_extern: nullable TString = null
 end
 class AConcreteMethPropdef
 special AMethPropdef
 end
 class AConcreteMethPropdef
 special AMethPropdef
-    readable writable attr _n_kwmeth: TKwmeth = null
-    readable writable attr _n_block: PExpr = null
+    readable writable var _n_kwmeth: nullable TKwmeth
+    readable writable var _n_block: nullable PExpr = null
 end
 class AConcreteInitPropdef
 special AConcreteMethPropdef
 end
 class AConcreteInitPropdef
 special AConcreteMethPropdef
-    readable writable attr _n_kwinit: TKwinit = null
+    readable writable var _n_kwinit: TKwinit
 end
 class AMainMethPropdef
 special AConcreteMethPropdef
 end
 class ATypePropdef
 special PPropdef
 end
 class AMainMethPropdef
 special AConcreteMethPropdef
 end
 class ATypePropdef
 special PPropdef
-    readable writable attr _n_kwredef: TKwredef = null
-    readable writable attr _n_visibility: PVisibility = null
-    readable writable attr _n_kwtype: TKwtype = null
-    readable writable attr _n_id: TClassid = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_kwredef: nullable TKwredef = null
+    readable writable var _n_visibility: PVisibility
+    readable writable var _n_kwtype: TKwtype
+    readable writable var _n_id: TClassid
+    readable writable var _n_type: PType
 end
 class AReadAble
 special PAble
 end
 class AReadAble
 special PAble
-    readable writable attr _n_kwreadable: TKwreadable = null
+    readable writable var _n_kwreadable: TKwreadable
 end
 class AWriteAble
 special PAble
 end
 class AWriteAble
 special PAble
-    readable writable attr _n_kwwritable: TKwwritable = null
+    readable writable var _n_kwwritable: TKwwritable
 end
 class AIdMethid
 special PMethid
 end
 class AIdMethid
 special PMethid
-    readable writable attr _n_id: TId = null
+    readable writable var _n_id: TId
 end
 class APlusMethid
 special PMethid
 end
 class APlusMethid
 special PMethid
-    readable writable attr _n_plus: TPlus = null
+    readable writable var _n_plus: TPlus
 end
 class AMinusMethid
 special PMethid
 end
 class AMinusMethid
 special PMethid
-    readable writable attr _n_minus: TMinus = null
+    readable writable var _n_minus: TMinus
 end
 class AStarMethid
 special PMethid
 end
 class AStarMethid
 special PMethid
-    readable writable attr _n_star: TStar = null
+    readable writable var _n_star: TStar
 end
 class ASlashMethid
 special PMethid
 end
 class ASlashMethid
 special PMethid
-    readable writable attr _n_slash: TSlash = null
+    readable writable var _n_slash: TSlash
 end
 class APercentMethid
 special PMethid
 end
 class APercentMethid
 special PMethid
-    readable writable attr _n_percent: TPercent = null
+    readable writable var _n_percent: TPercent
 end
 class AEqMethid
 special PMethid
 end
 class AEqMethid
 special PMethid
-    readable writable attr _n_eq: TEq = null
+    readable writable var _n_eq: TEq
 end
 class ANeMethid
 special PMethid
 end
 class ANeMethid
 special PMethid
-    readable writable attr _n_ne: TNe = null
+    readable writable var _n_ne: TNe
 end
 class ALeMethid
 special PMethid
 end
 class ALeMethid
 special PMethid
-    readable writable attr _n_le: TLe = null
+    readable writable var _n_le: TLe
 end
 class AGeMethid
 special PMethid
 end
 class AGeMethid
 special PMethid
-    readable writable attr _n_ge: TGe = null
+    readable writable var _n_ge: TGe
 end
 class ALtMethid
 special PMethid
 end
 class ALtMethid
 special PMethid
-    readable writable attr _n_lt: TLt = null
+    readable writable var _n_lt: TLt
 end
 class AGtMethid
 special PMethid
 end
 class AGtMethid
 special PMethid
-    readable writable attr _n_gt: TGt = null
+    readable writable var _n_gt: TGt
 end
 class ABraMethid
 special PMethid
 end
 class ABraMethid
 special PMethid
-    readable writable attr _n_obra: TObra = null
-    readable writable attr _n_cbra: TCbra = null
+    readable writable var _n_obra: TObra
+    readable writable var _n_cbra: TCbra
 end
 class AStarshipMethid
 special PMethid
 end
 class AStarshipMethid
 special PMethid
-    readable writable attr _n_starship: TStarship = null
+    readable writable var _n_starship: TStarship
 end
 class AAssignMethid
 special PMethid
 end
 class AAssignMethid
 special PMethid
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_assign: TAssign = null
+    readable writable var _n_id: TId
+    readable writable var _n_assign: TAssign
 end
 class ABraassignMethid
 special PMethid
 end
 class ABraassignMethid
 special PMethid
-    readable writable attr _n_obra: TObra = null
-    readable writable attr _n_cbra: TCbra = null
-    readable writable attr _n_assign: TAssign = null
+    readable writable var _n_obra: TObra
+    readable writable var _n_cbra: TCbra
+    readable writable var _n_assign: TAssign
 end
 class ASignature
 special PSignature
 end
 class ASignature
 special PSignature
-    readable writable attr _n_params: List[PParam] = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_params: List[PParam] = new List[PParam]
+    readable writable var _n_type: nullable PType = null
+    readable writable var _n_closure_decls: List[PClosureDecl] = new List[PClosureDecl]
 end
 class AParam
 special PParam
 end
 class AParam
 special PParam
-    readable writable attr _n_dotdotdot: TDotdotdot = null
+    readable writable var _n_dotdotdot: nullable TDotdotdot = null
+end
+class AClosureDecl
+special PClosureDecl
+    readable writable var _n_kwwith: TKwwith
+    readable writable var _n_kwbreak: nullable TKwbreak = null
+    readable writable var _n_id: TId
+    readable writable var _n_signature: PSignature
+    readable writable var _n_expr: nullable PExpr = null
 end
 class AType
 special PType
 end
 class AType
 special PType
-    readable writable attr _n_id: TClassid = null
-    readable writable attr _n_types: List[PType] = null
+    readable writable var _n_kwnullable: nullable TKwnullable = null
+    readable writable var _n_id: TClassid
+    readable writable var _n_types: List[PType] = new List[PType]
 end
 
 
 
 class ABlockExpr
 special PExpr
 end
 
 
 
 class ABlockExpr
 special PExpr
-    readable writable attr _n_expr: List[PExpr] = null
+    readable writable var _n_expr: List[PExpr] = new List[PExpr]
 end
 class AVardeclExpr
 special PExpr
 end
 class AVardeclExpr
 special PExpr
-    readable writable attr _n_kwvar: TKwvar = null
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_type: PType = null
-    readable writable attr _n_assign: TAssign = null
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_kwvar: TKwvar
+    readable writable var _n_id: TId
+    readable writable var _n_type: nullable PType = null
+    readable writable var _n_assign: nullable TAssign = null
+    readable writable var _n_expr: nullable PExpr = null
 end
 class AReturnExpr
 special PExpr
 end
 class AReturnExpr
 special PExpr
-    readable writable attr _n_kwreturn: TKwreturn = null
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_kwreturn: TKwreturn
+    readable writable var _n_expr: nullable PExpr = null
 end
 class ABreakExpr
 special PExpr
 end
 class ABreakExpr
 special PExpr
-    readable writable attr _n_kwbreak: TKwbreak = null
+    readable writable var _n_kwbreak: TKwbreak
+    readable writable var _n_expr: nullable PExpr = null
 end
 class AAbortExpr
 special PExpr
 end
 class AAbortExpr
 special PExpr
-    readable writable attr _n_kwabort: TKwabort = null
+    readable writable var _n_kwabort: TKwabort
 end
 class AContinueExpr
 special PExpr
 end
 class AContinueExpr
 special PExpr
-    readable writable attr _n_kwcontinue: TKwcontinue = null
+    readable writable var _n_kwcontinue: TKwcontinue
+    readable writable var _n_expr: nullable PExpr = null
 end
 class ADoExpr
 special PExpr
 end
 class ADoExpr
 special PExpr
-    readable writable attr _n_kwdo: TKwdo = null
-    readable writable attr _n_block: PExpr = null
+    readable writable var _n_kwdo: TKwdo
+    readable writable var _n_block: nullable PExpr = null
 end
 class AIfExpr
 special PExpr
 end
 class AIfExpr
 special PExpr
-    readable writable attr _n_kwif: TKwif = null
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_then: PExpr = null
-    readable writable attr _n_else: PExpr = null
+    readable writable var _n_kwif: TKwif
+    readable writable var _n_expr: PExpr
+    readable writable var _n_then: nullable PExpr = null
+    readable writable var _n_else: nullable PExpr = null
 end
 class AIfexprExpr
 special PExpr
 end
 class AIfexprExpr
 special PExpr
-    readable writable attr _n_kwif: TKwif = null
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_kwthen: TKwthen = null
-    readable writable attr _n_then: PExpr = null
-    readable writable attr _n_kwelse: TKwelse = null
-    readable writable attr _n_else: PExpr = null
+    readable writable var _n_kwif: TKwif
+    readable writable var _n_expr: PExpr
+    readable writable var _n_kwthen: TKwthen
+    readable writable var _n_then: PExpr
+    readable writable var _n_kwelse: TKwelse
+    readable writable var _n_else: PExpr
 end
 class AWhileExpr
 special PExpr
 end
 class AWhileExpr
 special PExpr
-    readable writable attr _n_kwwhile: TKwwhile = null
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_kwdo: TKwdo = null
-    readable writable attr _n_block: PExpr = null
+    readable writable var _n_kwwhile:  TKwwhile
+    readable writable var _n_expr: PExpr
+    readable writable var _n_kwdo: TKwdo
+    readable writable var _n_block: nullable PExpr = null
 end
 class AForExpr
 special PExpr
 end
 class AForExpr
 special PExpr
-    readable writable attr _n_vardecl: PExpr = null
-    readable writable attr _n_kwdo: TKwdo = null
-    readable writable attr _n_block: PExpr = null
-end
-class AForVardeclExpr
-special PExpr
-    readable writable attr _n_kwfor: TKwfor = null
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_kwfor: TKwfor
+    readable writable var _n_id: TId
+    readable writable var _n_expr: PExpr
+    readable writable var _n_kwdo: TKwdo
+    readable writable var _n_block: nullable PExpr = null
 end
 class AAssertExpr
 special PExpr
 end
 class AAssertExpr
 special PExpr
-    readable writable attr _n_kwassert: TKwassert = null
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_kwassert: TKwassert
+    readable writable var _n_id: nullable TId = null
+    readable writable var _n_expr: PExpr
 end
 class AAssignFormExpr
 special PExpr
 end
 class AAssignFormExpr
 special PExpr
-    readable writable attr _n_assign: TAssign = null
-    readable writable attr _n_value: PExpr = null
+    readable writable var _n_assign: TAssign
+    readable writable var _n_value: PExpr
 end
 class AReassignFormExpr
 special PExpr
 end
 class AReassignFormExpr
 special PExpr
-    readable writable attr _n_assign_op: PAssignOp = null
-    readable writable attr _n_value: PExpr = null
+    readable writable var _n_assign_op: PAssignOp
+    readable writable var _n_value: PExpr
 end
 class AOnceExpr
 special AProxyExpr
 end
 class AOnceExpr
 special AProxyExpr
-    readable writable attr _n_kwonce: TKwonce = null
+    readable writable var _n_kwonce: TKwonce
 end
 class ASendExpr
 special PExpr
 end
 class ASendExpr
 special PExpr
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_closure_defs: List[PClosureDef] = new List[PClosureDef]
 end
 class ABinopExpr
 special ASendExpr
 end
 class ABinopExpr
 special ASendExpr
-    readable writable attr _n_expr2: PExpr = null
+    readable writable var _n_expr2: PExpr
 end
 class ABoolExpr
 special PExpr
 end
 class AOrExpr
 special ABoolExpr
 end
 class ABoolExpr
 special PExpr
 end
 class AOrExpr
 special ABoolExpr
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_expr2: PExpr = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_expr2: PExpr
 end
 class AAndExpr
 special ABoolExpr
 end
 class AAndExpr
 special ABoolExpr
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_expr2: PExpr = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_expr2: PExpr
 end
 class ANotExpr
 special ABoolExpr
 end
 class ANotExpr
 special ABoolExpr
-    readable writable attr _n_kwnot: TKwnot = null
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_kwnot: TKwnot
+    readable writable var _n_expr: PExpr
 end
 class AEqExpr
 special ABinopExpr
 end
 class AEeExpr
 special ABoolExpr
 end
 class AEqExpr
 special ABinopExpr
 end
 class AEeExpr
 special ABoolExpr
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_expr2: PExpr = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_expr2: PExpr
 end
 class ANeExpr
 special ABinopExpr
 end
 class ANeExpr
 special ABinopExpr
@@ -669,8 +690,8 @@ special ABinopExpr
 end
 class AIsaExpr
 special ABoolExpr
 end
 class AIsaExpr
 special ABoolExpr
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_type: PType
 end
 class APlusExpr
 special ABinopExpr
 end
 class APlusExpr
 special ABinopExpr
@@ -692,31 +713,31 @@ special ABinopExpr
 end
 class AUminusExpr
 special ASendExpr
 end
 class AUminusExpr
 special ASendExpr
-    readable writable attr _n_minus: TMinus = null
+    readable writable var _n_minus: TMinus
 end
 class ANewExpr
 special PExpr
 end
 class ANewExpr
 special PExpr
-    readable writable attr _n_kwnew: TKwnew = null
-    readable writable attr _n_type: PType = null
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_args: List[PExpr] = null
+    readable writable var _n_kwnew: TKwnew
+    readable writable var _n_type: PType
+    readable writable var _n_id: nullable TId = null
+    readable writable var _n_args: List[PExpr] = new List[PExpr]
 end
 class AAttrFormExpr
 special PExpr
 end
 class AAttrFormExpr
 special PExpr
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_id: TAttrid = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_id: TAttrid
 end
 class AAttrExpr
 special AAttrFormExpr
 end
 class AAttrAssignExpr
 end
 class AAttrExpr
 special AAttrFormExpr
 end
 class AAttrAssignExpr
-special AAttrFormExpr 
-special AAssignFormExpr 
+special AAttrFormExpr
+special AAssignFormExpr
 end
 class ACallFormExpr
 special ASendExpr
 end
 class ACallFormExpr
 special ASendExpr
-    readable writable attr _n_id: TId = null
-    readable writable attr _n_args: List[PExpr] = null
+    readable writable var _n_id: TId
+    readable writable var _n_args: List[PExpr] = new List[PExpr]
 end
 class AAttrReassignExpr
 special PExpr
 end
 class AAttrReassignExpr
 special PExpr
@@ -737,18 +758,18 @@ special AReassignFormExpr
 end
 class ASuperExpr
 special PExpr
 end
 class ASuperExpr
 special PExpr
-    readable writable attr _n_qualified: PQualified = null
-    readable writable attr _n_kwsuper: TKwsuper = null
-    readable writable attr _n_args: List[PExpr] = null
+    readable writable var _n_qualified: nullable PQualified = null
+    readable writable var _n_kwsuper: TKwsuper
+    readable writable var _n_args: List[PExpr] = new List[PExpr]
 end
 class AInitExpr
 special ASendExpr
 end
 class AInitExpr
 special ASendExpr
-    readable writable attr _n_kwinit: TKwinit = null
-    readable writable attr _n_args: List[PExpr] = null
+    readable writable var _n_kwinit: TKwinit
+    readable writable var _n_args: List[PExpr] = new List[PExpr]
 end
 class ABraFormExpr
 special ASendExpr
 end
 class ABraFormExpr
 special ASendExpr
-    readable writable attr _n_args: List[PExpr] = null 
+    readable writable var _n_args: List[PExpr] = new List[PExpr]
 end
 class ABraExpr
 special ABraFormExpr
 end
 class ABraExpr
 special ABraFormExpr
@@ -759,12 +780,18 @@ special AAssignFormExpr
 end
 class AVarFormExpr
 special PExpr
 end
 class AVarFormExpr
 special PExpr
-    readable writable attr _n_id: TId = null 
+    readable writable var _n_id: TId
 end
 class ABraReassignExpr
 special ABraFormExpr
 special AReassignFormExpr 
 end
 end
 class ABraReassignExpr
 special ABraFormExpr
 special AReassignFormExpr 
 end
+class AClosureCallExpr
+special PExpr
+    readable writable var _n_id: TId
+    readable writable var _n_args: List[PExpr] = new List[PExpr]
+    readable writable var _n_closure_defs: List[PClosureDef] = new List[PClosureDef]
+end
 class AVarExpr
 special AVarFormExpr
 end
 class AVarExpr
 special AVarFormExpr
 end
@@ -778,8 +805,8 @@ special AReassignFormExpr
 end
 class ARangeExpr
 special PExpr
 end
 class ARangeExpr
 special PExpr
-    readable writable attr _n_expr: PExpr = null 
-    readable writable attr _n_expr2: PExpr = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_expr2: PExpr
 end
 class ACrangeExpr
 special ARangeExpr
 end
 class ACrangeExpr
 special ARangeExpr
@@ -789,95 +816,113 @@ special ARangeExpr
 end
 class AArrayExpr
 special PExpr
 end
 class AArrayExpr
 special PExpr
-    readable writable attr _n_exprs: List[PExpr] = null
+    readable writable var _n_exprs: List[PExpr] = new List[PExpr]
 end
 class ASelfExpr
 special PExpr
 end
 class ASelfExpr
 special PExpr
-    readable writable attr _n_kwself: TKwself = null
+    readable writable var _n_kwself: nullable TKwself
 end
 class AImplicitSelfExpr
 special ASelfExpr
 end
 class ATrueExpr
 special ABoolExpr
 end
 class AImplicitSelfExpr
 special ASelfExpr
 end
 class ATrueExpr
 special ABoolExpr
-    readable writable attr _n_kwtrue: TKwtrue = null
+    readable writable var _n_kwtrue: TKwtrue
 end
 class AFalseExpr
 special ABoolExpr
 end
 class AFalseExpr
 special ABoolExpr
-    readable writable attr _n_kwfalse: TKwfalse = null
+    readable writable var _n_kwfalse: TKwfalse
 end
 class ANullExpr
 special PExpr
 end
 class ANullExpr
 special PExpr
-    readable writable attr _n_kwnull: TKwnull = null
+    readable writable var _n_kwnull: TKwnull
 end
 class AIntExpr
 special PExpr
 end
 class AIntExpr
 special PExpr
-    readable writable attr _n_number: TNumber = null
+    readable writable var _n_number: TNumber
 end
 class AFloatExpr
 special PExpr
 end
 class AFloatExpr
 special PExpr
-    readable writable attr _n_float: TFloat = null
+    readable writable var _n_float: TFloat
 end
 class ACharExpr
 special PExpr
 end
 class ACharExpr
 special PExpr
-    readable writable attr _n_char: TChar = null
+    readable writable var _n_char: TChar
 end
 class AStringFormExpr
 special PExpr
 end
 class AStringExpr
 special AStringFormExpr
 end
 class AStringFormExpr
 special PExpr
 end
 class AStringExpr
 special AStringFormExpr
-    readable writable attr _n_string: TString = null
+    readable writable var _n_string: TString
 end
 class AStartStringExpr
 special AStringFormExpr
 end
 class AStartStringExpr
 special AStringFormExpr
-    readable writable attr _n_string: TStartString = null
+    readable writable var _n_string: TStartString
 end
 class AMidStringExpr
 special AStringFormExpr
 end
 class AMidStringExpr
 special AStringFormExpr
-    readable writable attr _n_string: TMidString = null
+    readable writable var _n_string: TMidString
 end
 class AEndStringExpr
 special AStringFormExpr
 end
 class AEndStringExpr
 special AStringFormExpr
-    readable writable attr _n_string: TEndString = null
+    readable writable var _n_string: TEndString
 end
 class ASuperstringExpr
 special PExpr
 end
 class ASuperstringExpr
 special PExpr
-    readable writable attr _n_exprs: List[PExpr] = null
+    readable writable var _n_exprs: List[PExpr] = new List[PExpr]
 end
 class AParExpr
 special AProxyExpr
 end
 class AProxyExpr
 special PExpr
 end
 class AParExpr
 special AProxyExpr
 end
 class AProxyExpr
 special PExpr
-    readable writable attr _n_expr: PExpr = null
+    readable writable var _n_expr: PExpr
 end
 class AAsCastExpr
 special PExpr
 end
 class AAsCastExpr
 special PExpr
-    readable writable attr _n_expr: PExpr = null
-    readable writable attr _n_kwas: TKwas = null
-    readable writable attr _n_type: PType = null
+    readable writable var _n_expr: PExpr
+    readable writable var _n_kwas: TKwas
+    readable writable var _n_type: PType
+end
+class AAsNotnullExpr
+special PExpr
+    readable writable var _n_expr: PExpr
+    readable writable var _n_kwas: TKwas
+    readable writable var _n_kwnot: TKwnot
+    readable writable var _n_kwnull: TKwnull
+end
+class AIssetAttrExpr
+special AAttrFormExpr
+    readable writable var _n_kwisset: TKwisset
 end
 class APlusAssignOp
 special PAssignOp
 end
 class APlusAssignOp
 special PAssignOp
-    readable writable attr _n_pluseq: TPluseq = null
+    readable writable var _n_pluseq: TPluseq
 end
 class AMinusAssignOp
 special PAssignOp
 end
 class AMinusAssignOp
 special PAssignOp
-    readable writable attr _n_minuseq: TMinuseq = null
+    readable writable var _n_minuseq: TMinuseq
+end
+class AClosureDef
+special PClosureDef
+    readable writable var _n_kwwith: TKwwith
+    readable writable var _n_id: List[TId] = new List[TId]
+    readable writable var _n_kwdo: TKwdo
+    readable writable var _n_expr: nullable PExpr = null
 end
 class AQualified
 special PQualified
 end
 class AQualified
 special PQualified
-    readable writable attr _n_id: List[TId] = null
-    readable writable attr _n_classid: TClassid = null
+    readable writable var _n_id: List[TId] = new List[TId]
+    readable writable var _n_classid: nullable TClassid = null
 end
 class ADoc
 special PDoc
 end
 class ADoc
 special PDoc
-    readable writable attr _n_comment: List[TComment] = null
+    readable writable var _n_comment: List[TComment] = new List[TComment]
 end
 
 class Start
 special Prod
 end
 
 class Start
 special Prod
-    readable writable attr _n_base: PModule
-    readable writable attr _n_eof: EOF
+    readable writable var _n_base: nullable PModule
+    readable writable var _n_eof: EOF
 end
 end