fun location: Location do return _location.as(not null)
# The location of the important part of the node (identifier or whatever)
fun hot_location: Location do return location
+ init do end
+
+ # Display a message for the colored location of the node
+ fun debug(message: String)
+ do
+ print "{hot_location} {self.class_name}: {message}\n{hot_location.colored_line("0;32")}"
+ end
end
# Ancestor of all tokens
abstract class Token
super ANode
+ fun text: String is abstract
+
+ redef fun to_s: String do
+ return "'{text}'"
+ end
end
# Ancestor of all productions
end
class TEol
super Token
+ redef fun to_s
+ do
+ return "end of line"
+ end
end
class TComment
super Token
end
-class TKwmodule
+abstract class TokenKeyword
super Token
+ redef fun to_s
+ do
+ return "keyword '{text}'"
+ end
+end
+class TKwmodule
+ super TokenKeyword
end
class TKwimport
- super Token
+ super TokenKeyword
end
class TKwclass
- super Token
+ super TokenKeyword
end
class TKwabstract
- super Token
+ super TokenKeyword
end
class TKwinterface
- super Token
+ super TokenKeyword
end
class TKwenum
- super Token
+ super TokenKeyword
end
class TKwspecial
- super Token
+ super TokenKeyword
end
class TKwend
- super Token
+ super TokenKeyword
end
class TKwmeth
- super Token
+ super TokenKeyword
end
class TKwtype
- super Token
+ super TokenKeyword
end
class TKwinit
- super Token
+ super TokenKeyword
end
class TKwredef
- super Token
+ super TokenKeyword
end
class TKwis
- super Token
+ super TokenKeyword
end
class TKwdo
- super Token
+ super TokenKeyword
end
class TKwreadable
- super Token
+ super TokenKeyword
end
class TKwwritable
- super Token
+ super TokenKeyword
end
class TKwvar
- super Token
+ super TokenKeyword
end
class TKwintern
- super Token
+ super TokenKeyword
end
class TKwextern
- super Token
+ super TokenKeyword
end
class TKwprotected
- super Token
+ super TokenKeyword
end
class TKwprivate
- super Token
+ super TokenKeyword
end
class TKwintrude
- super Token
+ super TokenKeyword
end
class TKwif
- super Token
+ super TokenKeyword
end
class TKwthen
- super Token
+ super TokenKeyword
end
class TKwelse
- super Token
+ super TokenKeyword
end
class TKwwhile
- super Token
+ super TokenKeyword
end
class TKwloop
- super Token
+ super TokenKeyword
end
class TKwfor
- super Token
+ super TokenKeyword
end
class TKwin
- super Token
+ super TokenKeyword
end
class TKwand
- super Token
+ super TokenKeyword
end
class TKwor
- super Token
+ super TokenKeyword
end
class TKwnot
- super Token
+ super TokenKeyword
end
class TKwreturn
- super Token
+ super TokenKeyword
end
class TKwcontinue
- super Token
+ super TokenKeyword
end
class TKwbreak
- super Token
+ super TokenKeyword
end
class TKwabort
- super Token
+ super TokenKeyword
end
class TKwassert
- super Token
+ super TokenKeyword
end
class TKwnew
- super Token
+ super TokenKeyword
end
class TKwisa
- super Token
+ super TokenKeyword
end
class TKwonce
- super Token
+ super TokenKeyword
end
class TKwsuper
- super Token
+ super TokenKeyword
end
class TKwself
- super Token
+ super TokenKeyword
end
class TKwtrue
- super Token
+ super TokenKeyword
end
class TKwfalse
- super Token
+ super TokenKeyword
end
class TKwnull
- super Token
+ super TokenKeyword
end
class TKwas
- super Token
+ super TokenKeyword
end
class TKwnullable
- super Token
+ super TokenKeyword
end
class TKwisset
- super Token
+ super TokenKeyword
end
class TKwlabel
+ super TokenKeyword
+end
+class TKwdebug
super Token
end
class TOpar
class TAssign
super Token
end
-class TPluseq
+abstract class TokenOperator
super Token
+ redef fun to_s
+ do
+ return "operator '{text}'"
+ end
+end
+class TPluseq
+ super TokenOperator
end
class TMinuseq
- super Token
+ super TokenOperator
end
class TDotdotdot
- super Token
+ super TokenOperator
end
class TDotdot
- super Token
+ super TokenOperator
end
class TDot
- super Token
+ super TokenOperator
end
class TPlus
- super Token
+ super TokenOperator
end
class TMinus
- super Token
+ super TokenOperator
end
class TStar
- super Token
+ super TokenOperator
end
class TSlash
- super Token
+ super TokenOperator
end
class TPercent
- super Token
+ super TokenOperator
end
class TEq
- super Token
+ super TokenOperator
end
class TNe
- super Token
+ super TokenOperator
end
class TLt
- super Token
+ super TokenOperator
end
class TLe
- super Token
+ super TokenOperator
end
class TLl
- super Token
+ super TokenOperator
end
class TGt
- super Token
+ super TokenOperator
end
class TGe
- super Token
+ super TokenOperator
end
class TGg
- super Token
+ super TokenOperator
end
class TStarship
- super Token
+ super TokenOperator
end
class TBang
- super Token
+ super TokenOperator
end
class TClassid
super Token
+ redef fun to_s
+ do
+ do return "type identifier '{text}'"
+ end
end
class TId
super Token
+ redef fun to_s
+ do
+ do return "identifier '{text}'"
+ end
end
class TAttrid
super Token
+ redef fun to_s
+ do
+ do return "attribute '{text}'"
+ end
end
-class TNumber
+abstract class TokenLiteral
super Token
+ redef fun to_s
+ do
+ do return "literal value '{text}'"
+ end
+end
+class TNumber
+ super TokenLiteral
end
class TFloat
- super Token
+ super TokenLiteral
end
class TChar
- super Token
+ super TokenLiteral
end
class TString
- super Token
+ super TokenLiteral
end
class TStartString
- super Token
+ super TokenLiteral
end
class TMidString
- super Token
+ super TokenLiteral
end
class TEndString
super Token
end
+class TBadString
+ super Token
+ redef fun to_s
+ do
+ do return "malformed string {text}"
+ end
+end
+class TBadChar
+ super Token
+ redef fun to_s
+ do
+ do return "malformed character {text}"
+ end
+end
+class TExternCodeSegment
+ super Token
+end
class EOF
super Token
private init noinit do end
+ redef fun to_s
+ do
+ return "end of file"
+ end
end
class AError
super EOF
super Prod
readable var _n_moduledecl: nullable AModuledecl = null
readable var _n_imports: List[AImport] = new List[AImport]
+ readable var _n_extern_code_blocks: List[AExternCodeBlock] = new List[AExternCodeBlock]
readable var _n_classdefs: List[AClassdef] = new List[AClassdef]
end
class AModuledecl
readable var _n_kwmodule: TKwmodule
readable var _n_name: AModuleName
end
-class AImport super Prod end
+abstract class AImport super Prod end
class AStdImport
super AImport
readable var _n_visibility: AVisibility
readable var _n_kwimport: TKwimport
readable var _n_kwend: TKwend
end
-class AVisibility super Prod end
+abstract class AVisibility super Prod end
class APublicVisibility
super AVisibility
end
super AVisibility
readable var _n_kwintrude: TKwintrude
end
-class AClassdef super Prod end
+abstract class AClassdef super Prod
+ readable var _n_propdefs: List[APropdef] = new List[APropdef]
+end
class AStdClassdef
super AClassdef
readable var _n_doc: nullable ADoc = null
readable var _n_classkind: AClasskind
readable var _n_id: nullable TClassid = null
readable var _n_formaldefs: List[AFormaldef] = new List[AFormaldef]
+ readable var _n_extern_code_block: nullable AExternCodeBlock = null
readable var _n_superclasses: List[ASuperclass] = new List[ASuperclass]
- readable var _n_propdefs: List[APropdef] = new List[APropdef]
readable var _n_kwend: TKwend
redef fun hot_location do return n_id.location
end
class ATopClassdef
super AClassdef
- readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
class AMainClassdef
super AClassdef
- readable var _n_propdefs: List[APropdef] = new List[APropdef]
end
-class AClasskind super Prod end
+abstract class AClasskind super Prod end
class AConcreteClasskind
super AClasskind
readable var _n_kwclass: TKwclass
readable var _n_kwsuper: nullable TKwsuper = null
readable var _n_type: AType
end
-class APropdef super Prod
+abstract class APropdef super Prod
readable var _n_doc: nullable ADoc = null
end
class AAttrPropdef
if n_id != null then return n_id.location else return n_id2.location
end
end
-class AMethPropdef
+abstract class AMethPropdef
super APropdef
readable var _n_kwredef: nullable TKwredef = null
readable var _n_visibility: nullable AVisibility
super AMethPropdef
readable var _n_kwmeth: TKwmeth
end
-class AExternPropdef
+abstract class AExternPropdef
super AMethPropdef
readable var _n_extern: nullable TString = null
readable var _n_extern_calls: nullable AExternCalls = null
+ readable var _n_extern_code_block: nullable AExternCodeBlock = null
end
class AExternMethPropdef
super AMethPropdef
readable var _n_kwmeth: nullable TKwmeth
readable var _n_block: nullable AExpr = null
end
-class AInitPropdef
+abstract class AInitPropdef
+ super AMethPropdef
end
class AConcreteInitPropdef
super AConcreteMethPropdef
super AInitPropdef
- init do end
readable var _n_kwinit: TKwinit
redef fun hot_location do return n_kwinit.location
end
class AExternInitPropdef
super AExternPropdef
super AInitPropdef
- init do end
readable var _n_kwnew: TKwnew
end
class AMainMethPropdef
readable var _n_kwimport: TKwimport
readable var _n_extern_calls: List[AExternCall] = new List[AExternCall]
end
-class AExternCall
+abstract class AExternCall
super Prod
end
-class APropExternCall
-special AExternCall
+abstract class APropExternCall
+super AExternCall
end
class ALocalPropExternCall
-special APropExternCall
+super APropExternCall
readable var _n_methid: AMethid
end
class AFullPropExternCall
-special APropExternCall
+super APropExternCall
readable var _n_classid: TClassid
readable var _n_quad: nullable TQuad = null
readable var _n_methid: AMethid
end
class AInitPropExternCall
-special APropExternCall
+super APropExternCall
readable var _n_classid: TClassid
end
class ASuperExternCall
-special AExternCall
+super AExternCall
readable var _n_kwsuper: TKwsuper
end
-class ACastExternCall
-special AExternCall
+abstract class ACastExternCall
+super AExternCall
end
class ACastAsExternCall
-special ACastExternCall
+super ACastExternCall
readable var _n_from_type: AType
readable var _n_kwas: TKwas
readable var _n_to_type: AType
end
class AAsNullableExternCall
-special ACastExternCall
+super ACastExternCall
readable var _n_type: AType
readable var _n_kwas: TKwas
readable var _n_kwnullable: TKwnullable
end
class AAsNotNullableExternCall
-special ACastExternCall
+super ACastExternCall
readable var _n_type: AType
readable var _n_kwas: TKwas
readable var _n_kwnot: TKwnot
readable var _n_id: TClassid
readable var _n_type: AType
end
-class AAble super Prod
+abstract class AAble super Prod
readable var _n_visibility: nullable AVisibility = null
readable var _n_kwredef: nullable TKwredef = null
end
super AAble
readable var _n_kwwritable: TKwwritable
end
-class AMethid super Prod end
+abstract class AMethid super Prod end
class AIdMethid
super AMethid
readable var _n_id: TId
end
class ASignature
super Prod
+ readable var _n_opar: nullable TOpar = null
readable var _n_params: List[AParam] = new List[AParam]
+ readable var _n_cpar: nullable TCpar = null
readable var _n_type: nullable AType = null
readable var _n_closure_decls: List[AClosureDecl] = new List[AClosureDecl]
end
readable var _n_kwlabel: TKwlabel
readable var _n_id: TId
end
-class AExpr super Prod end
+abstract class AExpr super Prod end
class ABlockExpr
super AExpr
readable var _n_expr: List[AExpr] = new List[AExpr]
readable var _n_kwreturn: nullable TKwreturn = null
readable var _n_expr: nullable AExpr = null
end
-class ALabelable
+abstract class ALabelable
super Prod
readable var _n_label: nullable ALabel = null
end
readable var _n_expr: AExpr
readable var _n_else: nullable AExpr = null
end
-class AAssignFormExpr
+abstract class AAssignFormExpr
super AExpr
readable var _n_assign: TAssign
readable var _n_value: AExpr
end
-class AReassignFormExpr
+abstract class AReassignFormExpr
super AExpr
readable var _n_assign_op: AAssignOp
readable var _n_value: AExpr
super AProxyExpr
readable var _n_kwonce: TKwonce
end
-class ASendExpr
+abstract class ASendExpr
super AExpr
readable var _n_expr: AExpr
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
-class ABinopExpr
+abstract class ABinopExpr
super ASendExpr
readable var _n_expr2: AExpr
end
-class ABoolExpr
+abstract class ABoolExpr
super AExpr
end
class AOrExpr
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]
+ readable var _n_args: AExprs
end
-class AAttrFormExpr
+abstract class AAttrFormExpr
super AExpr
readable var _n_expr: AExpr
readable var _n_id: TAttrid
super AAttrFormExpr
super AAssignFormExpr
end
-class ACallFormExpr
+abstract class ACallFormExpr
super ASendExpr
readable var _n_id: TId
- readable var _n_args: List[AExpr] = new List[AExpr]
+ readable var _n_args: AExprs
+end
+abstract class ASendReassignFormExpr
+ super ASendExpr
+ super AReassignFormExpr
end
class AAttrReassignExpr
super AExpr
class ACallReassignExpr
super AExpr
super ACallFormExpr
- super AReassignFormExpr
+ super ASendReassignFormExpr
end
class ASuperExpr
super AExpr
readable var _n_qualified: nullable AQualified = null
readable var _n_kwsuper: TKwsuper
- readable var _n_args: List[AExpr] = new List[AExpr]
+ readable var _n_args: AExprs
end
class AInitExpr
super ASendExpr
readable var _n_kwinit: TKwinit
- readable var _n_args: List[AExpr] = new List[AExpr]
+ readable var _n_args: AExprs
end
-class ABraFormExpr
+abstract class ABraFormExpr
super ASendExpr
- readable var _n_args: List[AExpr] = new List[AExpr]
+ readable var _n_args: AExprs
end
class ABraExpr
super ABraFormExpr
super ABraFormExpr
super AAssignFormExpr
end
-class AVarFormExpr
+abstract class AVarFormExpr
super AExpr
readable var _n_id: TId
end
class ABraReassignExpr
super ABraFormExpr
- super AReassignFormExpr
+ super ASendReassignFormExpr
end
class AClosureCallExpr
super AExpr
readable var _n_id: TId
- readable var _n_args: List[AExpr] = new List[AExpr]
+ readable var _n_args: AExprs
readable var _n_closure_defs: List[AClosureDef] = new List[AClosureDef]
end
class AVarExpr
super AVarFormExpr
super AReassignFormExpr
end
-class ARangeExpr
+abstract class ARangeExpr
super AExpr
readable var _n_expr: AExpr
readable var _n_expr2: AExpr
end
class ACrangeExpr
super ARangeExpr
+ readable var _n_obra: TObra
+ readable var _n_cbra: TCbra
end
class AOrangeExpr
super ARangeExpr
+ readable var _n_obra: TObra
+ readable var _n_cbra: TObra
end
class AArrayExpr
super AExpr
- readable var _n_exprs: List[AExpr] = new List[AExpr]
+ readable var _n_exprs: AExprs
end
class ASelfExpr
super AExpr
super AExpr
readable var _n_char: TChar
end
-class AStringFormExpr
+abstract class AStringFormExpr
super AExpr
end
class AStringExpr
end
class AParExpr
super AProxyExpr
+ readable var _n_opar: TOpar
+ readable var _n_cpar: TCpar
end
-class AProxyExpr
+abstract class AProxyExpr
super AExpr
readable var _n_expr: AExpr
end
super AExpr
readable var _n_expr: AExpr
readable var _n_kwas: TKwas
+ readable var _n_opar: TOpar
readable var _n_type: AType
+ readable var _n_cpar: TCpar
end
class AAsNotnullExpr
super AExpr
readable var _n_expr: AExpr
readable var _n_kwas: TKwas
+ readable var _n_opar: TOpar
readable var _n_kwnot: TKwnot
readable var _n_kwnull: TKwnull
+ readable var _n_cpar: TCpar
end
class AIssetAttrExpr
super AAttrFormExpr
readable var _n_kwisset: TKwisset
end
-class AAssignOp super Prod end
+abstract class AExprs
+ super Prod
+ readable var _n_exprs: List[AExpr] = new List[AExpr]
+end
+class ADebugTypeExpr
+ super AExpr
+ readable var _n_kwdebug: TKwdebug
+ readable var _n_kwtype: TKwtype
+ readable var _n_expr: AExpr
+ readable var _n_type: AType
+end
+class AListExprs
+ super AExprs
+end
+class AParExprs
+ super AExprs
+ readable var _n_opar: TOpar
+ readable var _n_cpar: TCpar
+end
+class ABraExprs
+ super AExprs
+ readable var _n_obra: TObra
+ readable var _n_cbra: TCbra
+end
+abstract class AAssignOp super Prod end
class APlusAssignOp
super AAssignOp
readable var _n_pluseq: TPluseq
readable var _n_expr: nullable AExpr = null
redef fun hot_location do return n_id.location
end
-class AClosureId
+abstract class AClosureId
super Prod
end
class ASimpleClosureId
readable var _n_kwbreak: TKwbreak
end
class AModuleName
-special Prod
+super Prod
readable var _n_quad: nullable TQuad = null
readable var _n_path: List[TId] = new List[TId]
readable var _n_id: TId
end
+class AInLanguage
+ super Prod
+ readable var _n_kwin: TKwin
+ readable var _n_string: TString
+end
+class AExternCodeBlock
+ super Prod
+ readable var _n_in_language: nullable AInLanguage = null
+ readable var _n_extern_code_segment: TExternCodeSegment
+end
class AQualified
super Prod
readable var _n_quad: nullable TQuad = null
super Prod
readable var _n_base: nullable AModule
readable var _n_eof: EOF
+ init(n_base: nullable AModule, n_eof: EOF)
+ do
+ self._n_base = n_base
+ self._n_eof = n_eof
+ end
end