[vala] Scanner has now a public static method to check if a token is a keyword or an identifier. CodeWriter
- From: Alberto Ruiz <aruiz src gnome org>
- To: svn-commits-list gnome org
- Subject: [vala] Scanner has now a public static method to check if a token is a keyword or an identifier. CodeWriter
- Date: Thu, 23 Jul 2009 21:04:55 +0000 (UTC)
commit 789e5e0be93686520c0728bd7d332fddbf24ab00
Author: Alberto Ruiz <aruiz codethink co uk>
Date: Thu Jul 23 17:35:27 2009 +0100
Scanner has now a public static method to check if a token is a keyword or an identifier. CodeWriter uses that method to figure out whether it should add a @ prefix or not.
vala/valacodewriter.vala | 12 +++++-------
vala/valascanner.vala | 4 ++--
2 files changed, 7 insertions(+), 9 deletions(-)
---
diff --git a/vala/valacodewriter.vala b/vala/valacodewriter.vala
index 073c107..b83b44b 100644
--- a/vala/valacodewriter.vala
+++ b/vala/valacodewriter.vala
@@ -1544,13 +1544,11 @@ public class Vala.CodeWriter : CodeVisitor {
}
private void write_identifier (string s) {
- if (s == "base" || s == "break" || s == "class" ||
- s == "construct" || s == "delegate" || s == "delete" ||
- s == "do" || s == "dynamic" || s == "foreach" || s == "in" ||
- s == "interface" || s == "lock" || s == "namespace" ||
- s == "new" || s == "out" || s == "ref" ||
- s == "signal" || s.get_char ().isdigit ()) {
- stream.putc ('@');
+ char* id = (char*)s;
+ int id_length = (int)s.length;
+ if ( Vala.Scanner.get_identifier_or_keyword (id, id_length) != Vala.TokenType.IDENTIFIER ||
+ s.get_char ().isdigit ()) {
+ stream.putc ('@');
}
write_string (s);
}
diff --git a/vala/valascanner.vala b/vala/valascanner.vala
index 6f09a13..a08bdaa 100644
--- a/vala/valascanner.vala
+++ b/vala/valascanner.vala
@@ -61,7 +61,7 @@ public class Vala.Scanner {
return (c.isalnum () || c == '_');
}
- TokenType get_identifier_or_keyword (char* begin, int len) {
+ public static TokenType get_identifier_or_keyword (char* begin, int len) {
switch (len) {
case 2:
switch (begin[0]) {
@@ -792,7 +792,7 @@ public class Vala.Scanner {
return type;
}
- bool matches (char* begin, string keyword) {
+ static bool matches (char* begin, string keyword) {
char* keyword_array = keyword;
long len = keyword.len ();
for (int i = 0; i < len; i++) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]