]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
ccode: Replace if-else-tree with switch
authorRico Tzschichholz <ricotz@ubuntu.com>
Sun, 30 Oct 2016 14:09:53 +0000 (15:09 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 30 Oct 2016 14:12:17 +0000 (15:12 +0100)
ccode/valaccodebinaryexpression.vala
ccode/valaccodeunaryexpression.vala

index 047b55c41d50308bfff6aff840e3edb0769cee88..651e2cac3caaa9525ee8ce9fe27c6515c0617054 100644 (file)
@@ -50,47 +50,28 @@ public class Vala.CCodeBinaryExpression : CCodeExpression {
        public override void write (CCodeWriter writer) {
                left.write_inner (writer);
 
-               writer.write_string (" ");
-               if (operator == CCodeBinaryOperator.PLUS) {
-                       writer.write_string ("+");
-               } else if (operator == CCodeBinaryOperator.MINUS) {
-                       writer.write_string ("-");
-               } else if (operator == CCodeBinaryOperator.MUL) {
-                       writer.write_string ("*");
-               } else if (operator == CCodeBinaryOperator.DIV) {
-                       writer.write_string ("/");
-               } else if (operator == CCodeBinaryOperator.MOD) {
-                       writer.write_string ("%");
-               } else if (operator == CCodeBinaryOperator.SHIFT_LEFT) {
-                       writer.write_string ("<<");
-               } else if (operator == CCodeBinaryOperator.SHIFT_RIGHT) {
-                       writer.write_string (">>");
-               } else if (operator == CCodeBinaryOperator.LESS_THAN) {
-                       writer.write_string ("<");
-               } else if (operator == CCodeBinaryOperator.GREATER_THAN) {
-                       writer.write_string (">");
-               } else if (operator == CCodeBinaryOperator.LESS_THAN_OR_EQUAL) {
-                       writer.write_string ("<=");
-               } else if (operator == CCodeBinaryOperator.GREATER_THAN_OR_EQUAL) {
-                       writer.write_string (">=");
-               } else if (operator == CCodeBinaryOperator.EQUALITY) {
-                       writer.write_string ("==");
-               } else if (operator == CCodeBinaryOperator.INEQUALITY) {
-                       writer.write_string ("!=");
-               } else if (operator == CCodeBinaryOperator.BITWISE_AND) {
-                       writer.write_string ("&");
-               } else if (operator == CCodeBinaryOperator.BITWISE_OR) {
-                       writer.write_string ("|");
-               } else if (operator == CCodeBinaryOperator.BITWISE_XOR) {
-                       writer.write_string ("^");
-               } else if (operator == CCodeBinaryOperator.AND) {
-                       writer.write_string ("&&");
-               } else if (operator == CCodeBinaryOperator.OR) {
-                       writer.write_string ("||");
+               switch (operator) {
+               case CCodeBinaryOperator.PLUS: writer.write_string (" + "); break;
+               case CCodeBinaryOperator.MINUS: writer.write_string (" - "); break;
+               case CCodeBinaryOperator.MUL: writer.write_string (" * "); break;
+               case CCodeBinaryOperator.DIV: writer.write_string (" / "); break;
+               case CCodeBinaryOperator.MOD: writer.write_string (" % "); break;
+               case CCodeBinaryOperator.SHIFT_LEFT: writer.write_string (" << "); break;
+               case CCodeBinaryOperator.SHIFT_RIGHT: writer.write_string (" >> "); break;
+               case CCodeBinaryOperator.LESS_THAN: writer.write_string (" < "); break;
+               case CCodeBinaryOperator.GREATER_THAN: writer.write_string (" > "); break;
+               case CCodeBinaryOperator.LESS_THAN_OR_EQUAL: writer.write_string (" <= "); break;
+               case CCodeBinaryOperator.GREATER_THAN_OR_EQUAL: writer.write_string (" >= "); break;
+               case CCodeBinaryOperator.EQUALITY: writer.write_string (" == "); break;
+               case CCodeBinaryOperator.INEQUALITY: writer.write_string (" != "); break;
+               case CCodeBinaryOperator.BITWISE_AND: writer.write_string (" & "); break;
+               case CCodeBinaryOperator.BITWISE_OR: writer.write_string (" | "); break;
+               case CCodeBinaryOperator.BITWISE_XOR: writer.write_string (" ^ "); break;
+               case CCodeBinaryOperator.AND: writer.write_string (" && "); break;
+               case CCodeBinaryOperator.OR: writer.write_string (" || "); break;
+               default: assert_not_reached ();
                }
 
-               writer.write_string (" ");
-
                right.write_inner (writer);
        }
 
index 7f2b89b232316ad4eec66f6018ec0ca2f7724731..afcb8c49405364cda0e170b19c87e5dccca1a25c 100644 (file)
@@ -42,15 +42,12 @@ public class Vala.CCodeUnaryExpression : CCodeExpression {
        }
        
        public override void write (CCodeWriter writer) {
-               if (operator == CCodeUnaryOperator.PLUS) {
-                       writer.write_string ("+");
-               } else if (operator == CCodeUnaryOperator.MINUS) {
-                       writer.write_string ("-");
-               } else if (operator == CCodeUnaryOperator.LOGICAL_NEGATION) {
-                       writer.write_string ("!");
-               } else if (operator == CCodeUnaryOperator.BITWISE_COMPLEMENT) {
-                       writer.write_string ("~");
-               } else if (operator == CCodeUnaryOperator.POINTER_INDIRECTION) {
+               switch (operator) {
+               case CCodeUnaryOperator.PLUS: writer.write_string ("+"); inner.write_inner (writer); break;
+               case CCodeUnaryOperator.MINUS: writer.write_string ("-"); inner.write_inner (writer); break;
+               case CCodeUnaryOperator.LOGICAL_NEGATION: writer.write_string ("!"); inner.write_inner (writer); break;
+               case CCodeUnaryOperator.BITWISE_COMPLEMENT: writer.write_string ("~"); inner.write_inner (writer); break;
+               case CCodeUnaryOperator.POINTER_INDIRECTION:
                        var inner_unary = inner as CCodeUnaryExpression;
                        if (inner_unary != null && inner_unary.operator == CCodeUnaryOperator.ADDRESS_OF) {
                                // simplify expression
@@ -58,7 +55,9 @@ public class Vala.CCodeUnaryExpression : CCodeExpression {
                                return;
                        }
                        writer.write_string ("*");
-               } else if (operator == CCodeUnaryOperator.ADDRESS_OF) {
+                       inner.write_inner (writer);
+                       break;
+               case CCodeUnaryOperator.ADDRESS_OF:
                        var inner_unary = inner as CCodeUnaryExpression;
                        if (inner_unary != null && inner_unary.operator == CCodeUnaryOperator.POINTER_INDIRECTION) {
                                // simplify expression
@@ -66,18 +65,13 @@ public class Vala.CCodeUnaryExpression : CCodeExpression {
                                return;
                        }
                        writer.write_string ("&");
-               } else if (operator == CCodeUnaryOperator.PREFIX_INCREMENT) {
-                       writer.write_string ("++");
-               } else if (operator == CCodeUnaryOperator.PREFIX_DECREMENT) {
-                       writer.write_string ("--");
-               }
-
-               inner.write_inner (writer);
-
-               if (operator == CCodeUnaryOperator.POSTFIX_INCREMENT) {
-                       writer.write_string ("++");
-               } else if (operator == CCodeUnaryOperator.POSTFIX_DECREMENT) {
-                       writer.write_string ("--");
+                       inner.write_inner (writer);
+                       break;
+               case CCodeUnaryOperator.PREFIX_INCREMENT: writer.write_string ("++"); break;
+               case CCodeUnaryOperator.PREFIX_DECREMENT: writer.write_string ("--"); break;
+               case CCodeUnaryOperator.POSTFIX_INCREMENT: inner.write_inner (writer); writer.write_string ("++"); break;
+               case CCodeUnaryOperator.POSTFIX_DECREMENT: inner.write_inner (writer); writer.write_string ("--"); break;
+               default: assert_not_reached ();
                }
        }