compiler: do not call C `nit_alloc` directly but a Nit method.
[nit.git] / src / parser / parser_nodes.nit
index 836e299..261694a 100644 (file)
@@ -521,6 +521,11 @@ class TKwdo
        super TokenKeyword
 end
 
+# The keyword `catch`
+class TKwcatch
+       super TokenKeyword
+end
+
 # The keyword `var`
 class TKwvar
        super TokenKeyword
@@ -696,6 +701,11 @@ class TKwwith
        super TokenKeyword
 end
 
+# The keyword `yield`
+class TKwyield
+       super TokenKeyword
+end
+
 # The special keyword `__DEBUG__`
 class TKwdebug
        super Token
@@ -1165,7 +1175,7 @@ class AStdClassdef
        var n_classkind: AClasskind is writable, noinit
 
        # The name of the class
-       var n_id: nullable TClassid = null is writable
+       var n_qid: nullable AQclassid = null is writable
 
        # The `[` symbol
        var n_obra: nullable TObra = null is writable
@@ -1186,7 +1196,7 @@ class AStdClassdef
                return [for d in n_propdefs do if d isa ASuperPropdef then d]
        end
 
-       redef fun hot_location do return n_id.location
+       redef fun hot_location do return n_qid.location
 end
 
 # The implicit class definition of the implicit main method
@@ -1491,7 +1501,7 @@ class ATypePropdef
        var n_kwtype: TKwtype is writable, noinit
 
        # The name of the virtual type
-       var n_id: TClassid is writable, noinit
+       var n_qid: AQclassid is writable, noinit
 
        # The bound of the virtual type
        var n_type: AType is writable, noinit
@@ -1707,7 +1717,7 @@ class AType
        var n_kwnullable: nullable TKwnullable = null is writable
 
        # The name of the class or of the formal type
-       var n_id: TClassid is writable, noinit
+       var n_qid: AQclassid is writable, noinit
 
        # The opening bracket
        var n_obra: nullable TObra = null is writable
@@ -1771,10 +1781,18 @@ end
 
 # A `return` statement. eg `return x`
 class AReturnExpr
-       super AExpr
+       super AEscapeExpr
 
        # The `return` keyword
        var n_kwreturn: nullable TKwreturn = null is writable
+end
+
+# A `yield` statement. eg `yield x`
+class AYieldExpr
+       super AExpr
+
+       # The `yield` keyword
+       var n_kwyield: nullable TKwyield = null is writable
 
        # The return value, if any
        var n_expr: nullable AExpr = null is writable
@@ -1831,6 +1849,12 @@ class ADoExpr
 
        # The list of statements of the `do`.
        var n_block: nullable AExpr = null is writable
+
+       # The `catch` keyword
+       var n_kwcatch: nullable TKwcatch = null is writable
+
+       # The do catch block
+       var n_catch: nullable AExpr = null is writable
 end
 
 # A `if` statement