vala r1933 - in trunk: . vala
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r1933 - in trunk: . vala
- Date: Sun, 26 Oct 2008 21:40:00 +0000 (UTC)
Author: juergbi
Date: Sun Oct 26 21:40:00 2008
New Revision: 1933
URL: http://svn.gnome.org/viewvc/vala?rev=1933&view=rev
Log:
2008-10-26 JÃrg Billeter <j bitron ch>
* vala/Makefile.am:
* vala/valaattribute.vala:
* vala/valacodevisitor.vala:
* vala/valafield.vala:
* vala/valagenieparser.vala:
* vala/valanamedargument.vala:
* vala/valaparser.vala:
* vala/valasemanticanalyzer.vala:
Remove NamedArgument, improve attribute lookup performance
Removed:
trunk/vala/valanamedargument.vala
Modified:
trunk/ChangeLog
trunk/vala/Makefile.am
trunk/vala/valaattribute.vala
trunk/vala/valacodevisitor.vala
trunk/vala/valafield.vala
trunk/vala/valagenieparser.vala
trunk/vala/valaparser.vala
trunk/vala/valasemanticanalyzer.vala
Modified: trunk/vala/Makefile.am
==============================================================================
--- trunk/vala/Makefile.am (original)
+++ trunk/vala/Makefile.am Sun Oct 26 21:40:00 2008
@@ -91,7 +91,6 @@
valamemberinitializer.vala \
valamethod.vala \
valamethodtype.vala \
- valanamedargument.vala \
valanamespace.vala \
valanullchecker.vala \
valanullliteral.vala \
Modified: trunk/vala/valaattribute.vala
==============================================================================
--- trunk/vala/valaattribute.vala (original)
+++ trunk/vala/valaattribute.vala Sun Oct 26 21:40:00 2008
@@ -35,7 +35,7 @@
/**
* Contains all specified attribute arguments.
*/
- public Gee.List<NamedArgument> args = new ArrayList<NamedArgument> ();
+ public Gee.Map<string,Expression> args = new Gee.HashMap<string,Expression> (str_hash, str_equal);
/**
* Creates a new attribute.
@@ -54,8 +54,8 @@
*
* @param arg named argument
*/
- public void add_argument (NamedArgument arg) {
- args.add (arg);
+ public void add_argument (string key, Expression value) {
+ args.set (key, value);
}
/**
@@ -65,14 +65,7 @@
* @return true if the argument has been found, false otherwise
*/
public bool has_argument (string name) {
- // FIXME: use hash table
- foreach (NamedArgument arg in args) {
- if (arg.name == name) {
- return true;
- }
- }
-
- return false;
+ return args.contains (name);
}
/**
@@ -82,14 +75,9 @@
* @return string value
*/
public string? get_string (string name) {
- // FIXME: use hash table
- foreach (NamedArgument arg in args) {
- if (arg.name == name) {
- var lit = arg.argument as StringLiteral;
- if (lit != null) {
- return lit.eval ();
- }
- }
+ var lit = args.get (name) as StringLiteral;
+ if (lit != null) {
+ return lit.eval ();
}
return null;
@@ -102,14 +90,9 @@
* @return integer value
*/
public int get_integer (string name) {
- // FIXME: use hash table
- foreach (NamedArgument arg in args) {
- if (arg.name == name) {
- var lit = arg.argument as IntegerLiteral;
- if (lit != null) {
- return lit.value.to_int ();
- }
- }
+ var lit = args.get (name) as IntegerLiteral;
+ if (lit != null) {
+ return lit.value.to_int ();
}
return 0;
@@ -122,26 +105,22 @@
* @return double value
*/
public double get_double (string name) {
- // FIXME: use hash table
- foreach (NamedArgument arg in args) {
- if (arg.name == name) {
- if (arg.argument is RealLiteral) {
- var lit = (RealLiteral) arg.argument;
- return lit.value.to_double ();
- } else if (arg.argument is IntegerLiteral) {
- var lit = (IntegerLiteral) arg.argument;
- return lit.value.to_int ();
- } else if (arg.argument is UnaryExpression) {
- var unary = (UnaryExpression) arg.argument;
- if (unary.operator == UnaryOperator.MINUS) {
- if (unary.inner is RealLiteral) {
- var lit = (RealLiteral) unary.inner;
- return -lit.value.to_double ();
- } else if (unary.inner is IntegerLiteral) {
- var lit = (IntegerLiteral) unary.inner;
- return -lit.value.to_int ();
- }
- }
+ var arg = args.get (name);
+ if (arg is RealLiteral) {
+ var lit = (RealLiteral) arg;
+ return lit.value.to_double ();
+ } else if (arg is IntegerLiteral) {
+ var lit = (IntegerLiteral) arg;
+ return lit.value.to_int ();
+ } else if (arg is UnaryExpression) {
+ var unary = (UnaryExpression) arg;
+ if (unary.operator == UnaryOperator.MINUS) {
+ if (unary.inner is RealLiteral) {
+ var lit = (RealLiteral) unary.inner;
+ return -lit.value.to_double ();
+ } else if (unary.inner is IntegerLiteral) {
+ var lit = (IntegerLiteral) unary.inner;
+ return -lit.value.to_int ();
}
}
}
@@ -156,14 +135,9 @@
* @return boolean value
*/
public bool get_bool (string name) {
- // FIXME: use hash table
- foreach (NamedArgument arg in args) {
- if (arg.name == name) {
- var lit = arg.argument as BooleanLiteral;
- if (lit != null) {
- return lit.value;
- }
- }
+ var lit = args.get (name) as BooleanLiteral;
+ if (lit != null) {
+ return lit.value;
}
return false;
Modified: trunk/vala/valacodevisitor.vala
==============================================================================
--- trunk/vala/valacodevisitor.vala (original)
+++ trunk/vala/valacodevisitor.vala Sun Oct 26 21:40:00 2008
@@ -196,14 +196,6 @@
}
/**
- * Visit operation called for named arguments.
- *
- * @param n a named argument
- */
- public virtual void visit_named_argument (NamedArgument n) {
- }
-
- /**
* Visit operation called for type parameters.
*
* @param p a type parameter
Modified: trunk/vala/valafield.vala
==============================================================================
--- trunk/vala/valafield.vala (original)
+++ trunk/vala/valafield.vala Sun Oct 26 21:40:00 2008
@@ -195,6 +195,6 @@
attr = new Attribute ("CCode");
attributes.append (attr);
}
- attr.add_argument (new NamedArgument ("type", new StringLiteral ("\"%s\"".printf (ctype))));
+ attr.add_argument ("type", new StringLiteral ("\"%s\"".printf (ctype)));
}
}
Modified: trunk/vala/valagenieparser.vala
==============================================================================
--- trunk/vala/valagenieparser.vala (original)
+++ trunk/vala/valagenieparser.vala Sun Oct 26 21:40:00 2008
@@ -2113,11 +2113,10 @@
if (accept (TokenType.OPEN_PARENS)) {
if (current () != TokenType.CLOSE_PARENS) {
do {
- begin = get_location ();
string id = parse_identifier ();
expect (TokenType.ASSIGN);
var expr = parse_expression ();
- attr.add_argument (new NamedArgument (id, expr, get_src (begin)));
+ attr.add_argument (id, expr);
} while (accept (TokenType.COMMA));
}
expect (TokenType.CLOSE_PARENS);
Modified: trunk/vala/valaparser.vala
==============================================================================
--- trunk/vala/valaparser.vala (original)
+++ trunk/vala/valaparser.vala Sun Oct 26 21:40:00 2008
@@ -1665,11 +1665,10 @@
if (accept (TokenType.OPEN_PARENS)) {
if (current () != TokenType.CLOSE_PARENS) {
do {
- begin = get_location ();
string id = parse_identifier ();
expect (TokenType.ASSIGN);
var expr = parse_expression ();
- attr.add_argument (new NamedArgument (id, expr, get_src (begin)));
+ attr.add_argument (id, expr);
} while (accept (TokenType.COMMA));
}
expect (TokenType.CLOSE_PARENS);
Modified: trunk/vala/valasemanticanalyzer.vala
==============================================================================
--- trunk/vala/valasemanticanalyzer.vala (original)
+++ trunk/vala/valasemanticanalyzer.vala Sun Oct 26 21:40:00 2008
@@ -764,9 +764,6 @@
current_symbol = current_symbol.parent_symbol;
}
- public override void visit_named_argument (NamedArgument n) {
- }
-
public override void visit_block (Block b) {
b.owner = current_symbol.scope;
current_symbol = b;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]