public override ICodeNode VisitBinaryExpression(BinaryExpression node) { V_0 = false; if (node.get_Left().get_CodeNodeType() == 24) { V_2 = node.get_Left() as BinaryExpression; if (V_2.CompareOperators(node) <= 0) { if (V_2.get_IsOverridenOperation()) { V_0 = true; } } else { V_0 = true; } } if (V_0) { node.set_Left(new ParenthesesExpression(node.get_Left())); } V_1 = false; if (node.get_Right().get_CodeNodeType() == 24) { V_3 = node.get_Right() as BinaryExpression; V_4 = V_3.CompareOperators(node); if (V_4 <= 0) { if (V_4 != 0) { if (!node.get_IsAssignmentExpression() && V_3.get_IsOverridenOperation()) { V_1 = true; } } else { if (node.get_Operator() == V_3.get_Operator()) { if (this.IsCommutative(node.get_Operator())) { if ((object)V_3.get_ExpressionType() == (object)V_3.get_ExpressionType().get_Module().get_TypeSystem().get_Single() || (object)V_3.get_ExpressionType() == (object)V_3.get_ExpressionType().get_Module().get_TypeSystem().get_Double()) { V_1 = true; } } else { V_1 = true; } } else { V_1 = true; } } } else { V_1 = true; } } if (V_1) { node.set_Right(new ParenthesesExpression(node.get_Right())); } return this.VisitBinaryExpression(node); }