vala r1074 - in trunk: . ccode



Author: juergbi
Date: Sat Mar  1 11:53:14 2008
New Revision: 1074
URL: http://svn.gnome.org/viewvc/vala?rev=1074&view=rev

Log:
2008-03-01  Juerg Billeter  <j bitron ch>

	* ccode/valaccodecommaexpression.vala,
	  ccode/valaccodeexpressionstatement.vala: improve C code output


Modified:
   trunk/ChangeLog
   trunk/ccode/valaccodecommaexpression.vala
   trunk/ccode/valaccodeexpressionstatement.vala

Modified: trunk/ccode/valaccodecommaexpression.vala
==============================================================================
--- trunk/ccode/valaccodecommaexpression.vala	(original)
+++ trunk/ccode/valaccodecommaexpression.vala	Sat Mar  1 11:53:14 2008
@@ -1,6 +1,6 @@
 /* valaccodecommaexpression.vala
  *
- * Copyright (C) 2006-2007  JÃrg Billeter
+ * Copyright (C) 2006-2008  JÃrg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -37,7 +37,11 @@
 	public void append_expression (CCodeExpression! expr) {
 		inner.add (expr);
 	}
-	
+
+	public Collection<CCodeExpression> get_inner () {
+		return new ReadOnlyCollection<CCodeExpression> (inner);
+	}
+
 	public override void write (CCodeWriter! writer) {
 		bool first = true;
 	

Modified: trunk/ccode/valaccodeexpressionstatement.vala
==============================================================================
--- trunk/ccode/valaccodeexpressionstatement.vala	(original)
+++ trunk/ccode/valaccodeexpressionstatement.vala	Sat Mar  1 11:53:14 2008
@@ -1,6 +1,6 @@
 /* valaccodeexpressionstatement.vala
  *
- * Copyright (C) 2006-2007  JÃrg Billeter
+ * Copyright (C) 2006-2008  JÃrg Billeter
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -36,9 +36,27 @@
 	}
 
 	public override void write (CCodeWriter! writer) {
+		if (expression is CCodeCommaExpression) {
+			// expand comma expression into multiple statements
+			// to improve code readability
+			var ccomma = expression as CCodeCommaExpression;
+
+			foreach (CCodeExpression expr in ccomma.get_inner ()) {
+				write_expression (writer, expr);
+			}
+		} else if (expression is CCodeParenthesizedExpression) {
+			var cpar = expression as CCodeParenthesizedExpression;
+
+			write_expression (writer, cpar.inner);
+		} else {
+			write_expression (writer, expression);
+		}
+	}
+
+	private void write_expression (CCodeWriter writer, CCodeExpression? expr) {
 		writer.write_indent (line);
-		if (expression != null) {
-			expression.write (writer);
+		if (expr != null) {
+			expr.write (writer);
 		}
 		writer.write_string (";");
 		writer.write_newline ();



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]