parser: expose qualified class id (qclassid)
authorJean Privat <jean@pryen.org>
Wed, 16 Dec 2015 04:21:17 +0000 (23:21 -0500)
committerJean Privat <jean@pryen.org>
Wed, 16 Dec 2015 04:21:17 +0000 (23:21 -0500)
Signed-off-by: Jean Privat <jean@pryen.org>

src/parser/nit.sablecc3xx
src/parser/parser_abs.nit
src/parser/parser_nodes.nit

index a485468..52a1bb1 100644 (file)
@@ -826,8 +826,8 @@ qualified_o {-> qualified?}
 qid
        = qualified? id
        ;
-qclassid {-> classid}
-       = qualified? classid {-> classid}
+qclassid
+       = qualified? classid
        ;
 qmethid~noid {-> methid}
        = qualified? methid~noid {-> methid~noid.methid}
@@ -941,6 +941,10 @@ qid
        = qualified? id
        ;
 
+qclassid
+       = qualified? [id]:classid
+       ;
+
 signature = opar? [params]:param* cpar? type?;
 
 param  = id type? dotdotdot? annotations?
index 6f6e76b..a37dc71 100644 (file)
@@ -354,6 +354,7 @@ class AFormaldef super Prod end
 class APropdef super Prod end
 class AMethid super Prod end
 class AQid super Prod end
+class AQclassid super Prod end
 class ASignature super Prod end
 class AParam super Prod end
 class AType super Prod end
@@ -636,6 +637,11 @@ class AQid
        var n_qualified: nullable AQualified = null is writable
        var n_id: TId is writable, noinit
 end
+class AQclassid
+       super AQclassid
+       var n_qualified: nullable AQualified = null is writable
+       var n_id: TClassid is writable, noinit
+end
 class ASignature
        super ASignature
        var n_opar: nullable TOpar = null is writable
index 472e289..836e299 100644 (file)
@@ -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