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
+ fun text=(text: String) is abstract
redef fun to_s: String do
return "'{text}'"
abstract class Prod
super ANode
fun location=(l: Location) do _location = l
+ readable var _n_annotations: nullable AAnnotations = null
end
class TEol
super Token
class TComment
super Token
end
-class TokenKeyword
+abstract class TokenKeyword
super Token
redef fun to_s
do
class TKwenum
super TokenKeyword
end
-class TKwspecial
- super TokenKeyword
-end
class TKwend
super TokenKeyword
end
class TKwlabel
super TokenKeyword
end
+class TKwdebug
+ super Token
+end
class TOpar
super Token
end
class TAssign
super Token
end
-class TokenOperator
+abstract class TokenOperator
super Token
redef fun to_s
do
class TBang
super TokenOperator
end
+class TAt
+ super Token
+end
class TClassid
super Token
redef fun to_s
do return "attribute '{text}'"
end
end
-class TokenLiteral
+abstract class TokenLiteral
super Token
redef fun to_s
do
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
class AError
super EOF
-private init noinit do end
+end
+class ALexerError
+ super AError
+end
+class AParserError
+ super AError
end
class AModule
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
class AExternClasskind
super AClasskind
readable var _n_kwextern: TKwextern
+ readable var _n_kwclass: nullable TKwclass = null
end
class AFormaldef
super Prod
end
class ASuperclass
super Prod
- readable var _n_kwspecial: nullable TKwspecial = null
- readable var _n_kwsuper: nullable TKwsuper = null
+ readable var _n_kwsuper: TKwsuper
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
+ readable var _n_string: Token
end
class AStringExpr
super AStringFormExpr
- readable var _n_string: TString
end
class AStartStringExpr
super AStringFormExpr
- readable var _n_string: TStartString
end
class AMidStringExpr
super AStringFormExpr
- readable var _n_string: TMidString
end
class AEndStringExpr
super AStringFormExpr
- readable var _n_string: TEndString
end
class ASuperstringExpr
super AExpr
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
readable var _n_comment: List[TComment] = new List[TComment]
end
+class AAnnotations
+ super Prod
+ readable var _n_at: nullable TAt = null
+ readable var _n_opar: nullable TOpar = null
+ readable var _n_items: List[AAnnotation] = new List[AAnnotation]
+ readable var _n_cpar: nullable TCpar = null
+end
+class AAnnotation
+ super Prod
+ readable var _n_atid: AAtid
+ readable var _n_opar: nullable TOpar = null
+ readable var _n_args: List[AAtArg] = new List[AAtArg]
+ readable var _n_cpar: nullable TCpar = null
+end
+abstract class AAtArg
+ super Prod
+end
+class ATypeAtArg
+ super AAtArg
+ readable var _n_type: AType
+end
+class AExprAtArg
+ super AAtArg
+ readable var _n_expr: AExpr
+end
+class AAtAtArg
+ super AAtArg
+end
+abstract class AAtid
+ super Prod
+ readable var _n_id: Token
+end
+class AIdAtid
+ super AAtid
+end
+class AKwexternAtid
+ super AAtid
+end
+class AKwinternAtid
+ super AAtid
+end
+class AKwreadableAtid
+ super AAtid
+end
+class AKwwritableAtid
+ super AAtid
+end
+class AKwimportAtid
+ super AAtid
+end
+
class Start
super Prod
readable var _n_base: nullable AModule
readable var _n_eof: EOF
+ init(n_base: nullable AModule, n_eof: EOF)
+ do
+ self._n_base = n_base
+ self._n_eof = n_eof
+ end
end