# Was previously based on parser_abs.nit.
package parser_nodes
-import mmloader
+import location
# Root of the AST hierarchy
abstract class ANode
- readable var _location: nullable Location
+ var _location: nullable Location
+ # Location is set during AST building. Once built, location cannon be null
+ # However, manual instanciated nodes may need mode care
+ fun location: Location do return _location.as(not null)
end
# Ancestor of all tokens
# Ancestor of all productions
abstract class Prod
special ANode
- fun location=(loc: nullable Location) do _location = loc
+ fun location=(l: Location) do _location = l
end
class TEol
special Token
class TKwtype
special Token
end
-class TKwattr
-special Token
-end
class TKwinit
special Token
end
class TKwwhile
special Token
end
+class TKwloop
+special Token
+end
class TKwfor
special Token
end
class TKwas
special Token
end
-class TKwwith
-special Token
-end
class TKwnullable
special Token
end
class TStarship
special Token
end
+class TBang
+special Token
+end
class TClassid
special Token
end
class TEndString
special Token
end
-class EOF
+class EOF
special Token
private init noinit do end
end
readable writable var _n_kwspecial: TKwspecial
readable writable var _n_type: AType
end
-class APropdef special Prod
+class APropdef special Prod
readable writable var _n_doc: nullable ADoc = null
end
class AAttrPropdef
special APropdef
readable writable var _n_kwredef: nullable TKwredef = null
readable writable var _n_visibility: AVisibility
- readable writable var _n_kwattr: nullable TKwattr = null
- readable writable var _n_kwvar: nullable TKwvar = null
+ readable writable var _n_kwvar: TKwvar
readable writable var _n_id: TAttrid
readable writable var _n_type: nullable AType = null
readable writable var _n_readable: nullable AAble = null
end
class AClosureDecl
special Prod
- readable writable var _n_kwwith: TKwwith
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
end
class AReturnExpr
special AExpr
- readable writable var _n_kwreturn: TKwreturn
+ readable writable var _n_kwreturn: nullable TKwreturn = null
readable writable var _n_expr: nullable AExpr = null
end
class ALabelable
class AContinueExpr
special AExpr
special ALabelable
- readable writable var _n_kwcontinue: TKwcontinue
+ readable writable var _n_kwcontinue: nullable TKwcontinue = null
readable writable var _n_expr: nullable AExpr = null
end
class ADoExpr
readable writable var _n_kwdo: TKwdo
readable writable var _n_block: nullable AExpr = null
end
+class ALoopExpr
+special AExpr
+special ALabelable
+ readable writable var _n_kwloop: TKwloop
+ readable writable var _n_block: nullable AExpr = null
+end
class AForExpr
special AExpr
special ALabelable
end
class AAttrReassignExpr
special AExpr
-special AAttrFormExpr
-special AReassignFormExpr
+special AAttrFormExpr
+special AReassignFormExpr
end
class ACallExpr
special ACallFormExpr
end
class ACallAssignExpr
special ACallFormExpr
-special AAssignFormExpr
+special AAssignFormExpr
end
class ACallReassignExpr
special AExpr
special ACallFormExpr
-special AReassignFormExpr
+special AReassignFormExpr
end
class ASuperExpr
special AExpr
end
class ABraAssignExpr
special ABraFormExpr
-special AAssignFormExpr
+special AAssignFormExpr
end
class AVarFormExpr
special AExpr
end
class ABraReassignExpr
special ABraFormExpr
-special AReassignFormExpr
+special AReassignFormExpr
end
class AClosureCallExpr
special AExpr
end
class AVarAssignExpr
special AVarFormExpr
-special AAssignFormExpr
+special AAssignFormExpr
end
class AVarReassignExpr
special AVarFormExpr
-special AReassignFormExpr
+special AReassignFormExpr
end
class ARangeExpr
special AExpr
end
class AClosureDef
special ALabelable
- 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_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
end
+class AClosureId
+special Prod
+end
+class ASimpleClosureId
+special AClosureId
+ readable writable var _n_id: TId
+end
+class ABreakClosureId
+special AClosureId
+ readable writable var _n_kwbreak: TKwbreak
+end
class AQualified
special Prod
readable writable var _n_id: List[TId] = new List[TId]