parser: expose qualified class id (qclassid)
[nit.git] / src / parser / parser_nodes.nit
index 0990d6a..836e299 100644 (file)
@@ -1126,7 +1126,7 @@ end
 class APublicVisibility
        super AVisibility
        # The `public` keyword, if any
-       var n_kwpublic: nullable TKwpublic is writable
+       var n_kwpublic: nullable TKwpublic = null is writable
 end
 # An explicit private visibility modifier
 class APrivateVisibility
@@ -1659,6 +1659,16 @@ class AQid
        var n_id: TId is writable, noinit
 end
 
+# A potentially qualified class identifier `foo::bar::Baz`
+class AQclassid
+       super Prod
+       # The qualifier, if any
+       var n_qualified: nullable AQualified = null is writable
+
+       # The final identifier
+       var n_id: TClassid is writable, noinit
+end
+
 # A signature in a method definition. eg `(x,y:X,z:Z):T`
 class ASignature
        super Prod
@@ -1907,6 +1917,23 @@ class AForExpr
        # The `for` keyword
        var n_kwfor: TKwfor is writable, noinit
 
+       # The list of groups to iterate
+       var n_groups = new ANodes[AForGroup](self)
+
+       # The `do` keyword
+       var n_kwdo: TKwdo is writable, noinit
+
+       # The body of the loop
+       var n_block: nullable AExpr = null is writable
+end
+
+# A collection iterated by a for, its automatic variables and its implicit iterator.
+#
+# Standard `for` iterate on a single collection.
+# Multiple `for` can iterate on more than one collection at once.
+class AForGroup
+       super Prod
+
        # The list of name of the automatic variables
        var n_ids = new ANodes[TId](self)
 
@@ -1915,12 +1942,6 @@ class AForExpr
 
        # The expression used as the collection to iterate on
        var n_expr: AExpr is writable, noinit
-
-       # The `do` keyword
-       var n_kwdo: TKwdo is writable, noinit
-
-       # The body of the loop
-       var n_block: nullable AExpr = null is writable
 end
 
 # A `with` statement
@@ -2811,7 +2832,7 @@ class AModuleName
        # The starting quad (`::`)
        var n_quad: nullable TQuad = null is writable
 
-       # The list of quad-separated project/group identifiers
+       # The list of quad-separated package/group identifiers
        var n_path = new ANodes[TId](self)
 
        # The final module identifier
@@ -2847,7 +2868,7 @@ class AQualified
        # The starting quad (`::`)
        var n_quad: nullable TQuad = null is writable
 
-       # The list of quad-separated project/group/module identifiers
+       # The list of quad-separated package/group/module identifiers
        var n_id = new ANodes[TId](self)
 
        # A class identifier