parser: rename 'enum' to 'universal'
[nit.git] / src / parser / parser_abs.nit
index e8ab67a..e11a37c 100644 (file)
@@ -29,7 +29,7 @@ end
 class TComment
 special Token
 end
 class TComment
 special Token
 end
-class TKwpackage
+class TKwmodule
 special Token
 end
 class TKwimport
 special Token
 end
 class TKwimport
@@ -44,7 +44,7 @@ end
 class TKwinterface
 special Token
 end
 class TKwinterface
 special Token
 end
-class TKwuniversal
+class TKwenum
 special Token
 end
 class TKwspecial
 special Token
 end
 class TKwspecial
@@ -242,12 +242,18 @@ end
 class TLe
 special Token
 end
 class TLe
 special Token
 end
+class TLl
+special Token
+end
 class TGt
 special Token
 end
 class TGe
 special Token
 end
 class TGt
 special Token
 end
 class TGe
 special Token
 end
+class TGg
+special Token
+end
 class TStarship
 special Token
 end
 class TStarship
 special Token
 end
@@ -294,7 +300,7 @@ private init noinit do end
 end
 
 class AModule special Prod end
 end
 
 class AModule special Prod end
-class APackagedecl special Prod end
+class AModuledecl special Prod end
 class AImport special Prod end
 class AVisibility special Prod end
 class AClassdef special Prod end
 class AImport special Prod end
 class AVisibility special Prod end
 class AClassdef special Prod end
@@ -318,701 +324,728 @@ class ADoc special Prod end
 
 class AModule
 special AModule
 
 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]
+    readable var _n_moduledecl: nullable AModuledecl = null
+    readable var _n_imports: List[AImport] = new List[AImport]
+    readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
 end
 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
+class AModuledecl
+special AModuledecl
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwmodule: TKwmodule
+    readable var _n_id: TId
 end
 class AStdImport
 special AImport
 end
 class AStdImport
 special AImport
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwimport: TKwimport
-    readable writable var _n_id: TId
+    readable var _n_visibility: AVisibility
+    readable var _n_kwimport: TKwimport
+    readable var _n_id: TId
 end
 class ANoImport
 special AImport
 end
 class ANoImport
 special AImport
-    readable writable var _n_visibility: AVisibility
-    readable writable var _n_kwimport: TKwimport
-    readable writable var _n_kwend: TKwend
+    readable var _n_visibility: AVisibility
+    readable var _n_kwimport: TKwimport
+    readable var _n_kwend: TKwend
 end
 class APublicVisibility
 special AVisibility
 end
 class APrivateVisibility
 special AVisibility
 end
 class APublicVisibility
 special AVisibility
 end
 class APrivateVisibility
 special AVisibility
-    readable writable var _n_kwprivate: TKwprivate
+    readable var _n_kwprivate: TKwprivate
 end
 class AProtectedVisibility
 special AVisibility
 end
 class AProtectedVisibility
 special AVisibility
-    readable writable var _n_kwprotected: TKwprotected
+    readable var _n_kwprotected: TKwprotected
 end
 class AIntrudeVisibility
 special AVisibility
 end
 class AIntrudeVisibility
 special AVisibility
-    readable writable var _n_kwintrude: TKwintrude
+    readable var _n_kwintrude: TKwintrude
 end
 class AStdClassdef
 special AClassdef
 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]
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_classkind: AClasskind
+    readable var _n_id: nullable TClassid = null
+    readable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
+    readable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
+    readable var _n_propdefs: List[APropdef] = new List[APropdef]
 end
 class ATopClassdef
 special AClassdef
 end
 class ATopClassdef
 special AClassdef
-    readable writable var _n_propdefs: List[APropdef] = new List[APropdef]
+    readable var _n_propdefs: List[APropdef] = new List[APropdef]
 end
 class AMainClassdef
 special AClassdef
 end
 class AMainClassdef
 special AClassdef
-    readable writable var _n_propdefs: List[APropdef] = new List[APropdef]
+    readable var _n_propdefs: List[APropdef] = new List[APropdef]
 end
 class AConcreteClasskind
 special AClasskind
 end
 class AConcreteClasskind
 special AClasskind
-    readable writable var _n_kwclass: TKwclass
+    readable var _n_kwclass: TKwclass
 end
 class AAbstractClasskind
 special AClasskind
 end
 class AAbstractClasskind
 special AClasskind
-    readable writable var _n_kwabstract: TKwabstract
-    readable writable var _n_kwclass: TKwclass
+    readable var _n_kwabstract: TKwabstract
+    readable var _n_kwclass: TKwclass
 end
 class AInterfaceClasskind
 special AClasskind
 end
 class AInterfaceClasskind
 special AClasskind
-    readable writable var _n_kwinterface: TKwinterface
+    readable var _n_kwinterface: TKwinterface
 end
 end
-class AUniversalClasskind
+class AEnumClasskind
 special AClasskind
 special AClasskind
-    readable writable var _n_kwuniversal: TKwuniversal
+    readable var _n_kwenum: TKwenum
 end
 class AFormaldef
 special AFormaldef
 end
 class AFormaldef
 special AFormaldef
-    readable writable var _n_id: TClassid
-    readable writable var _n_type: nullable AType = null
+    readable var _n_id: TClassid
+    readable var _n_type: nullable AType = null
 end
 class ASuperclass
 special ASuperclass
 end
 class ASuperclass
 special ASuperclass
-    readable writable var _n_kwspecial: TKwspecial
-    readable writable var _n_type: AType
+    readable var _n_kwspecial: nullable TKwspecial = null
+    readable var _n_kwsuper: nullable TKwsuper = null
+    readable var _n_type: AType
 end
 class AAttrPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_readable: nullable AAble = null
+    readable var _n_writable: nullable AAble = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwvar: TKwvar
+    readable var _n_id: nullable TAttrid = null
+    readable var _n_id2: nullable TId = null
+    readable var _n_type: nullable AType = null
+    readable var _n_expr: nullable AExpr = null
 end
 class AMethPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_methid: AMethid
+    readable var _n_signature: ASignature
 end
 class ADeferredMethPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwmeth: TKwmeth
+    readable var _n_methid: AMethid
+    readable var _n_signature: ASignature
 end
 class AInternMethPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwmeth: TKwmeth
+    readable var _n_methid: AMethid
+    readable var _n_signature: ASignature
 end
 class AExternMethPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwmeth: TKwmeth
+    readable var _n_methid: AMethid
+    readable var _n_signature: ASignature
+    readable var _n_extern: nullable TString = null
 end
 class AConcreteMethPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwmeth: TKwmeth
+    readable var _n_methid: AMethid
+    readable var _n_signature: ASignature
+    readable var _n_block: nullable AExpr = null
 end
 class AConcreteInitPropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwinit: TKwinit
+    readable var _n_methid: nullable AMethid = null
+    readable var _n_signature: ASignature
+    readable var _n_block: nullable AExpr = null
 end
 class AMainMethPropdef
 special APropdef
 end
 class AMainMethPropdef
 special APropdef
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_block: nullable AExpr = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_block: nullable AExpr = null
 end
 class ATypePropdef
 special APropdef
 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
+    readable var _n_doc: nullable ADoc = null
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: AVisibility
+    readable var _n_kwtype: TKwtype
+    readable var _n_id: TClassid
+    readable var _n_type: AType
 end
 class AReadAble
 special AAble
 end
 class AReadAble
 special AAble
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_kwreadable: TKwreadable
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_kwreadable: TKwreadable
 end
 class AWriteAble
 special AAble
 end
 class AWriteAble
 special AAble
-    readable writable var _n_kwredef: nullable TKwredef = null
-    readable writable var _n_kwwritable: TKwwritable
+    readable var _n_kwredef: nullable TKwredef = null
+    readable var _n_visibility: nullable AVisibility = null
+    readable var _n_kwwritable: TKwwritable
 end
 class AIdMethid
 special AMethid
 end
 class AIdMethid
 special AMethid
-    readable writable var _n_id: TId
+    readable var _n_id: TId
 end
 class APlusMethid
 special AMethid
 end
 class APlusMethid
 special AMethid
-    readable writable var _n_plus: TPlus
+    readable var _n_plus: TPlus
 end
 class AMinusMethid
 special AMethid
 end
 class AMinusMethid
 special AMethid
-    readable writable var _n_minus: TMinus
+    readable var _n_minus: TMinus
 end
 class AStarMethid
 special AMethid
 end
 class AStarMethid
 special AMethid
-    readable writable var _n_star: TStar
+    readable var _n_star: TStar
 end
 class ASlashMethid
 special AMethid
 end
 class ASlashMethid
 special AMethid
-    readable writable var _n_slash: TSlash
+    readable var _n_slash: TSlash
 end
 class APercentMethid
 special AMethid
 end
 class APercentMethid
 special AMethid
-    readable writable var _n_percent: TPercent
+    readable var _n_percent: TPercent
 end
 class AEqMethid
 special AMethid
 end
 class AEqMethid
 special AMethid
-    readable writable var _n_eq: TEq
+    readable var _n_eq: TEq
 end
 class ANeMethid
 special AMethid
 end
 class ANeMethid
 special AMethid
-    readable writable var _n_ne: TNe
+    readable var _n_ne: TNe
 end
 class ALeMethid
 special AMethid
 end
 class ALeMethid
 special AMethid
-    readable writable var _n_le: TLe
+    readable var _n_le: TLe
 end
 class AGeMethid
 special AMethid
 end
 class AGeMethid
 special AMethid
-    readable writable var _n_ge: TGe
+    readable var _n_ge: TGe
 end
 class ALtMethid
 special AMethid
 end
 class ALtMethid
 special AMethid
-    readable writable var _n_lt: TLt
+    readable var _n_lt: TLt
 end
 class AGtMethid
 special AMethid
 end
 class AGtMethid
 special AMethid
-    readable writable var _n_gt: TGt
+    readable var _n_gt: TGt
+end
+class ALlMethid
+special AMethid
+    readable var _n_ll: TLl
+end
+class AGgMethid
+special AMethid
+    readable var _n_gg: TGg
 end
 class ABraMethid
 special AMethid
 end
 class ABraMethid
 special AMethid
-    readable writable var _n_obra: TObra
-    readable writable var _n_cbra: TCbra
+    readable var _n_obra: TObra
+    readable var _n_cbra: TCbra
 end
 class AStarshipMethid
 special AMethid
 end
 class AStarshipMethid
 special AMethid
-    readable writable var _n_starship: TStarship
+    readable var _n_starship: TStarship
 end
 class AAssignMethid
 special AMethid
 end
 class AAssignMethid
 special AMethid
-    readable writable var _n_id: TId
-    readable writable var _n_assign: TAssign
+    readable var _n_id: TId
+    readable var _n_assign: TAssign
 end
 class ABraassignMethid
 special AMethid
 end
 class ABraassignMethid
 special AMethid
-    readable writable var _n_obra: TObra
-    readable writable var _n_cbra: TCbra
-    readable writable var _n_assign: TAssign
+    readable var _n_obra: TObra
+    readable var _n_cbra: TCbra
+    readable var _n_assign: TAssign
 end
 class ASignature
 special ASignature
 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]
+    readable var _n_params: List[AParam] = new List[AParam]
+    readable var _n_type: nullable AType = null
+    readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
 end
 class AParam
 special AParam
 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
+    readable var _n_id: TId
+    readable var _n_type: nullable AType = null
+    readable var _n_dotdotdot: nullable TDotdotdot = null
 end
 class AClosureDecl
 special AClosureDecl
 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
+    readable var _n_kwbreak: nullable TKwbreak = null
+    readable var _n_bang: TBang
+    readable var _n_id: TId
+    readable var _n_signature: ASignature
+    readable var _n_expr: nullable AExpr = null
 end
 class AType
 special AType
 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]
+    readable var _n_kwnullable: nullable TKwnullable = null
+    readable var _n_id: TClassid
+    readable var _n_types: List[AType] = new List[AType]
 end
 class ALabel
 special ALabel
 end
 class ALabel
 special ALabel
-    readable writable var _n_kwlabel: TKwlabel
-    readable writable var _n_id: TId
+    readable var _n_kwlabel: TKwlabel
+    readable var _n_id: TId
 end
 class ABlockExpr
 special AExpr
 end
 class ABlockExpr
 special AExpr
-    readable writable var _n_expr: List[AExpr] = new List[AExpr]
+    readable var _n_expr: List[AExpr] = new List[AExpr]
 end
 class AVardeclExpr
 special AExpr
 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
+    readable var _n_kwvar: TKwvar
+    readable var _n_id: TId
+    readable var _n_type: nullable AType = null
+    readable var _n_assign: nullable TAssign = null
+    readable var _n_expr: nullable AExpr = null
 end
 class AReturnExpr
 special AExpr
 end
 class AReturnExpr
 special AExpr
-    readable writable var _n_kwreturn: nullable TKwreturn = null
-    readable writable var _n_expr: nullable AExpr = null
+    readable var _n_kwreturn: nullable TKwreturn = null
+    readable var _n_expr: nullable AExpr = null
 end
 class ABreakExpr
 special AExpr
 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
+    readable var _n_kwbreak: TKwbreak
+    readable var _n_label: nullable ALabel = null
+    readable var _n_expr: nullable AExpr = null
 end
 class AAbortExpr
 special AExpr
 end
 class AAbortExpr
 special AExpr
-    readable writable var _n_kwabort: TKwabort
+    readable var _n_kwabort: TKwabort
 end
 class AContinueExpr
 special AExpr
 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
+    readable var _n_kwcontinue: nullable TKwcontinue = null
+    readable var _n_label: nullable ALabel = null
+    readable var _n_expr: nullable AExpr = null
 end
 class ADoExpr
 special AExpr
 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
+    readable var _n_kwdo: TKwdo
+    readable var _n_block: nullable AExpr = null
+    readable var _n_label: nullable ALabel = null
 end
 class AIfExpr
 special AExpr
 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
+    readable var _n_kwif: TKwif
+    readable var _n_expr: AExpr
+    readable var _n_then: nullable AExpr = null
+    readable var _n_else: nullable AExpr = null
 end
 class AIfexprExpr
 special AExpr
 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
+    readable var _n_kwif: TKwif
+    readable var _n_expr: AExpr
+    readable var _n_kwthen: TKwthen
+    readable var _n_then: AExpr
+    readable var _n_kwelse: TKwelse
+    readable var _n_else: AExpr
 end
 class AWhileExpr
 special AExpr
 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
+    readable var _n_kwwhile: TKwwhile
+    readable var _n_expr: AExpr
+    readable var _n_kwdo: TKwdo
+    readable var _n_block: nullable AExpr = null
+    readable var _n_label: nullable ALabel = null
 end
 class ALoopExpr
 special AExpr
 end
 class ALoopExpr
 special AExpr
-    readable writable var _n_kwloop: TKwloop
-    readable writable var _n_block: nullable AExpr = null
-    readable writable var _n_label: nullable ALabel = null
+    readable var _n_kwloop: TKwloop
+    readable var _n_block: nullable AExpr = null
+    readable var _n_label: nullable ALabel = null
 end
 class AForExpr
 special AExpr
 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
+    readable var _n_kwfor: TKwfor
+    readable var _n_id: TId
+    readable var _n_expr: AExpr
+    readable var _n_kwdo: TKwdo
+    readable var _n_block: nullable AExpr = null
+    readable var _n_label: nullable ALabel = null
 end
 class AAssertExpr
 special AExpr
 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
+    readable var _n_kwassert: TKwassert
+    readable var _n_id: nullable TId = null
+    readable var _n_expr: AExpr
+    readable var _n_else: nullable AExpr = null
 end
 class AOnceExpr
 special AExpr
 end
 class AOnceExpr
 special AExpr
-    readable writable var _n_kwonce: TKwonce
-    readable writable var _n_expr: AExpr
+    readable var _n_kwonce: TKwonce
+    readable var _n_expr: AExpr
 end
 class ASendExpr
 special AExpr
 end
 class ASendExpr
 special AExpr
-    readable writable var _n_expr: AExpr
+    readable var _n_expr: AExpr
 end
 class ABinopExpr
 special AExpr
 end
 class ABinopExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AOrExpr
 special AExpr
 end
 class AOrExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AAndExpr
 special AExpr
 end
 class AAndExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
+end
+class AOrElseExpr
+special AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class ANotExpr
 special AExpr
 end
 class ANotExpr
 special AExpr
-    readable writable var _n_kwnot: TKwnot
-    readable writable var _n_expr: AExpr
+    readable var _n_kwnot: TKwnot
+    readable var _n_expr: AExpr
 end
 class AEqExpr
 special AExpr
 end
 class AEqExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AEeExpr
 special AExpr
 end
 class AEeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class ANeExpr
 special AExpr
 end
 class ANeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class ALtExpr
 special AExpr
 end
 class ALtExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class ALeExpr
 special AExpr
 end
 class ALeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
+end
+class ALlExpr
+special AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AGtExpr
 special AExpr
 end
 class AGtExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AGeExpr
 special AExpr
 end
 class AGeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
+end
+class AGgExpr
+special AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AIsaExpr
 special AExpr
 end
 class AIsaExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_type: AType
+    readable var _n_expr: AExpr
+    readable var _n_type: AType
 end
 class APlusExpr
 special AExpr
 end
 class APlusExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AMinusExpr
 special AExpr
 end
 class AMinusExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AStarshipExpr
 special AExpr
 end
 class AStarshipExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AStarExpr
 special AExpr
 end
 class AStarExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class ASlashExpr
 special AExpr
 end
 class ASlashExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class APercentExpr
 special AExpr
 end
 class APercentExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AUminusExpr
 special AExpr
 end
 class AUminusExpr
 special AExpr
-    readable writable var _n_minus: TMinus
-    readable writable var _n_expr: AExpr
+    readable var _n_minus: TMinus
+    readable var _n_expr: AExpr
 end
 class ANewExpr
 special AExpr
 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]
+    readable var _n_kwnew: TKwnew
+    readable var _n_type: AType
+    readable var _n_id: nullable TId = null
+    readable var _n_args: List[AExpr] = new List[AExpr]
 end
 class AAttrExpr
 special AExpr
 end
 class AAttrExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TAttrid
+    readable var _n_expr: AExpr
+    readable var _n_id: TAttrid
 end
 class AAttrAssignExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_id: TAttrid
+    readable var _n_assign: TAssign
+    readable var _n_value: AExpr
 end
 class AAttrReassignExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_id: TAttrid
+    readable var _n_assign_op: AAssignOp
+    readable var _n_value: AExpr
 end
 class ACallExpr
 special AExpr
 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]
+    readable var _n_expr: AExpr
+    readable var _n_id: TId
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
 end
 class ACallAssignExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_id: TId
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_assign: TAssign
+    readable var _n_value: AExpr
 end
 class ACallReassignExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_id: TId
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_assign_op: AAssignOp
+    readable var _n_value: AExpr
 end
 class ASuperExpr
 special AExpr
 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]
+    readable var _n_qualified: nullable AQualified = null
+    readable var _n_kwsuper: TKwsuper
+    readable var _n_args: List[AExpr] = new List[AExpr]
 end
 class AInitExpr
 special AExpr
 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]
+    readable var _n_expr: AExpr
+    readable var _n_kwinit: TKwinit
+    readable var _n_args: List[AExpr] = new List[AExpr]
 end
 class ABraExpr
 special AExpr
 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]
+    readable var _n_expr: AExpr
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
 end
 class ABraAssignExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_assign: TAssign
+    readable var _n_value: AExpr
 end
 class ABraReassignExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_assign_op: AAssignOp
+    readable var _n_value: AExpr
 end
 class AClosureCallExpr
 special 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]
+    readable var _n_id: TId
+    readable var _n_args: List[AExpr] = new List[AExpr]
+    readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
 end
 class AVarExpr
 special AExpr
 end
 class AVarExpr
 special AExpr
-    readable writable var _n_id: TId
+    readable var _n_id: TId
 end
 class AVarAssignExpr
 special AExpr
 end
 class AVarAssignExpr
 special AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_assign: TAssign
-    readable writable var _n_value: AExpr
+    readable var _n_id: TId
+    readable var _n_assign: TAssign
+    readable var _n_value: AExpr
 end
 class AVarReassignExpr
 special AExpr
 end
 class AVarReassignExpr
 special AExpr
-    readable writable var _n_id: TId
-    readable writable var _n_assign_op: AAssignOp
-    readable writable var _n_value: AExpr
+    readable var _n_id: TId
+    readable var _n_assign_op: AAssignOp
+    readable var _n_value: AExpr
 end
 class ARangeExpr
 special AExpr
 end
 class ARangeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class ACrangeExpr
 special AExpr
 end
 class ACrangeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AOrangeExpr
 special AExpr
 end
 class AOrangeExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_expr2: AExpr
+    readable var _n_expr: AExpr
+    readable var _n_expr2: AExpr
 end
 class AArrayExpr
 special AExpr
 end
 class AArrayExpr
 special AExpr
-    readable writable var _n_exprs: List[AExpr] = new List[AExpr]
+    readable var _n_exprs: List[AExpr] = new List[AExpr]
 end
 class ASelfExpr
 special AExpr
 end
 class ASelfExpr
 special AExpr
-    readable writable var _n_kwself: TKwself
+    readable var _n_kwself: TKwself
 end
 class AImplicitSelfExpr
 special AExpr
 end
 class ATrueExpr
 special AExpr
 end
 class AImplicitSelfExpr
 special AExpr
 end
 class ATrueExpr
 special AExpr
-    readable writable var _n_kwtrue: TKwtrue
+    readable var _n_kwtrue: TKwtrue
 end
 class AFalseExpr
 special AExpr
 end
 class AFalseExpr
 special AExpr
-    readable writable var _n_kwfalse: TKwfalse
+    readable var _n_kwfalse: TKwfalse
 end
 class ANullExpr
 special AExpr
 end
 class ANullExpr
 special AExpr
-    readable writable var _n_kwnull: TKwnull
+    readable var _n_kwnull: TKwnull
 end
 class AIntExpr
 special AExpr
 end
 class AIntExpr
 special AExpr
-    readable writable var _n_number: TNumber
+    readable var _n_number: TNumber
 end
 class AFloatExpr
 special AExpr
 end
 class AFloatExpr
 special AExpr
-    readable writable var _n_float: TFloat
+    readable var _n_float: TFloat
 end
 class ACharExpr
 special AExpr
 end
 class ACharExpr
 special AExpr
-    readable writable var _n_char: TChar
+    readable var _n_char: TChar
 end
 class AStringExpr
 special AExpr
 end
 class AStringExpr
 special AExpr
-    readable writable var _n_string: TString
+    readable var _n_string: TString
 end
 class AStartStringExpr
 special AExpr
 end
 class AStartStringExpr
 special AExpr
-    readable writable var _n_string: TStartString
+    readable var _n_string: TStartString
 end
 class AMidStringExpr
 special AExpr
 end
 class AMidStringExpr
 special AExpr
-    readable writable var _n_string: TMidString
+    readable var _n_string: TMidString
 end
 class AEndStringExpr
 special AExpr
 end
 class AEndStringExpr
 special AExpr
-    readable writable var _n_string: TEndString
+    readable var _n_string: TEndString
 end
 class ASuperstringExpr
 special AExpr
 end
 class ASuperstringExpr
 special AExpr
-    readable writable var _n_exprs: List[AExpr] = new List[AExpr]
+    readable var _n_exprs: List[AExpr] = new List[AExpr]
 end
 class AParExpr
 special AExpr
 end
 class AParExpr
 special AExpr
-    readable writable var _n_expr: AExpr
+    readable var _n_expr: AExpr
 end
 class AAsCastExpr
 special AExpr
 end
 class AAsCastExpr
 special AExpr
-    readable writable var _n_expr: AExpr
-    readable writable var _n_kwas: TKwas
-    readable writable var _n_type: AType
+    readable var _n_expr: AExpr
+    readable var _n_kwas: TKwas
+    readable var _n_type: AType
 end
 class AAsNotnullExpr
 special AExpr
 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
+    readable var _n_expr: AExpr
+    readable var _n_kwas: TKwas
+    readable var _n_kwnot: TKwnot
+    readable var _n_kwnull: TKwnull
 end
 class AIssetAttrExpr
 special AExpr
 end
 class AIssetAttrExpr
 special AExpr
-    readable writable var _n_kwisset: TKwisset
-    readable writable var _n_expr: AExpr
-    readable writable var _n_id: TAttrid
+    readable var _n_kwisset: TKwisset
+    readable var _n_expr: AExpr
+    readable var _n_id: TAttrid
 end
 class APlusAssignOp
 special AAssignOp
 end
 class APlusAssignOp
 special AAssignOp
-    readable writable var _n_pluseq: TPluseq
+    readable var _n_pluseq: TPluseq
 end
 class AMinusAssignOp
 special AAssignOp
 end
 class AMinusAssignOp
 special AAssignOp
-    readable writable var _n_minuseq: TMinuseq
+    readable var _n_minuseq: TMinuseq
 end
 class AClosureDef
 special AClosureDef
 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
+    readable var _n_bang: TBang
+    readable var _n_id: AClosureId
+    readable var _n_ids: List[TId] = new List[TId]
+    readable var _n_kwdo: nullable TKwdo = null
+    readable var _n_expr: nullable AExpr = null
+    readable var _n_label: nullable ALabel = null
 end
 class ASimpleClosureId
 special AClosureId
 end
 class ASimpleClosureId
 special AClosureId
-    readable writable var _n_id: TId
+    readable var _n_id: TId
 end
 class ABreakClosureId
 special AClosureId
 end
 class ABreakClosureId
 special AClosureId
-    readable writable var _n_kwbreak: TKwbreak
+    readable var _n_kwbreak: TKwbreak
 end
 class AQualified
 special AQualified
 end
 class AQualified
 special AQualified
-    readable writable var _n_id: List[TId] = new List[TId]
-    readable writable var _n_classid: nullable TClassid = null
+    readable var _n_id: List[TId] = new List[TId]
+    readable var _n_classid: nullable TClassid = null
 end
 class ADoc
 special ADoc
 end
 class ADoc
 special ADoc
-    readable writable var _n_comment: List[TComment] = new List[TComment]
+    readable var _n_comment: List[TComment] = new List[TComment]
 end
 
 class Start
 special Prod
 end
 
 class Start
 special Prod
-    readable writable var _n_base: nullable AModule
-    readable writable var _n_eof: EOF
+    readable var _n_base: nullable AModule
+    readable var _n_eof: EOF
 end
 end