[vala/switch-to-gir: 12/49] girparser: Support specifying symbols in metadata
- From: Luca Bruno <lucabru src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala/switch-to-gir: 12/49] girparser: Support specifying symbols in metadata
- Date: Thu, 10 Mar 2011 21:39:38 +0000 (UTC)
commit e82acf97913e91829fec7d7ae6697acb7c3c9511
Author: Luca Bruno <lucabru src gnome org>
Date: Wed Nov 17 21:30:04 2010 +0100
girparser: Support specifying symbols in metadata
vala/valagirparser.vala | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 6e3fd12..0135204 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -400,7 +400,7 @@ public class Vala.GirParser : CodeVisitor {
return metadata;
}
- Expression? parse_literal () {
+ Expression? parse_expression () {
var src = get_current_src ();
Expression expr = null;
switch (current) {
@@ -422,8 +422,18 @@ public class Vala.GirParser : CodeVisitor {
case TokenType.STRING_LITERAL:
expr = new StringLiteral (get_string (), src);
break;
+ case TokenType.IDENTIFIER:
+ expr = new MemberAccess (null, get_string (), src);
+ while (next () == TokenType.DOT) {
+ if (next () != TokenType.IDENTIFIER) {
+ Report.error (get_current_src (), "expected identifier got `%s'".printf (current.to_string ()));
+ break;
+ }
+ expr = new MemberAccess (expr, get_string (), get_current_src ());
+ }
+ return expr;
default:
- Report.error (src, "expected literal");
+ Report.error (src, "expected literal or symbol got `%s'".printf (current.to_string ()));
break;
}
next ();
@@ -450,7 +460,7 @@ public class Vala.GirParser : CodeVisitor {
}
next ();
- Expression expr = parse_literal ();
+ Expression expr = parse_expression ();
if (expr == null) {
return false;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]