# AST nodes of the Nit language
# Was previously based on parser_abs.nit.
-package parser_nodes
+module parser_nodes
import location
return "keyword '{text}'"
end
end
+class TKwpackage
+ super TokenKeyword
+end
class TKwmodule
super TokenKeyword
end
class TKwor
super TokenKeyword
end
+class TKwimplies
+ super TokenKeyword
+end
class TKwnot
super TokenKeyword
end
end
class AFullPropExternCall
super APropExternCall
- readable writable var _n_classid: TClassid
- readable writable var _n_quad: nullable TQuad = null
+ readable writable var _n_type: AType
+ readable writable var _n_dot: nullable TDot = null
readable writable var _n_methid: AMethid
end
class AInitPropExternCall
super APropExternCall
- readable writable var _n_classid: TClassid
+ readable writable var _n_type: AType
end
class ASuperExternCall
super AExternCall
class ACastAsExternCall
super ACastExternCall
readable writable var _n_from_type: AType
+ readable writable var _n_dot: nullable TDot = null
readable writable var _n_kwas: TKwas
readable writable var _n_to_type: AType
end
readable var _n_params: ANodes[AParam] = new ANodes[AParam](self)
readable writable var _n_cpar: nullable TCpar = null
readable writable var _n_type: nullable AType = null
- readable var _n_closure_decls: ANodes[AClosureDecl] = new ANodes[AClosureDecl](self)
end
# A parameter definition in a signature. eg `x:X`
readable writable var _n_dotdotdot: nullable TDotdotdot = null
end
-class AClosureDecl
- super Prod
- 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
-
# A static type. eg `nullable X[Y]`
class AType
super Prod
super AExpr
# The receiver of the method invocation
readable writable var _n_expr: AExpr
- readable var _n_closure_defs: ANodes[AClosureDef] = new ANodes[AClosureDef](self)
end
# A binary operation on a method
readable writable var _n_expr2: AExpr
end
+# A `implies` expression
+class AImpliesExpr
+ super ABoolExpr
+ readable writable var _n_expr: AExpr
+ readable writable var _n_expr2: AExpr
+end
+
# A `not` expression
class ANotExpr
super ABoolExpr
super ABinopExpr
end
-# A `is` expression
-class AEeExpr
- super ABoolExpr
- readable writable var _n_expr: AExpr
- readable writable var _n_expr2: AExpr
-end
-
# A `!=` expression
class ANeExpr
super ABinopExpr
super ASendReassignFormExpr
end
-class AClosureCallExpr
- super AExpr
- readable writable var _n_id: TId
- readable writable var _n_args: AExprs
- readable var _n_closure_defs: ANodes[AClosureDef] = new ANodes[AClosureDef](self)
-end
-
# A local variable read access.
# The parser cannot instantiate them, see `ACallExpr`.
class AVarExpr
readable writable var _n_minuseq: TMinuseq
end
-class AClosureDef
- super ALabelable
- readable writable var _n_bang: TBang
- readable writable var _n_id: AClosureId
- readable var _n_ids: ANodes[TId] = new ANodes[TId](self)
- readable writable var _n_kwdo: nullable TKwdo = null
- readable writable var _n_expr: nullable AExpr = null
- redef fun hot_location do return n_id.location
-end
-abstract class AClosureId
- super Prod
-end
-class ASimpleClosureId
- super AClosureId
- readable writable var _n_id: TId
-end
-class ABreakClosureId
- super AClosureId
- readable writable var _n_kwbreak: TKwbreak
-end
class AModuleName
super Prod
readable writable var _n_quad: nullable TQuad = null