vala r1933 - in trunk: . vala



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]