vala r1074 - in trunk: . ccode
- From: juergbi svn gnome org
- To: svn-commits-list gnome org
- Subject: vala r1074 - in trunk: . ccode
- Date: Sat, 1 Mar 2008 11:53:15 +0000 (GMT)
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]