コード例 #1
0
 private void ReplaceIfWith(IfStatement theIf, BlockStatement statementBlock)
 {
     if (!this.CanReplaceIf(statementBlock))
     {
         throw new Exception("Invalid IsEvent construction");
     }
     V_0 = (statementBlock.get_Statements().get_Item(1) as ExpressionStatement).get_Expression() as DynamicMemberReferenceExpression;
     if (V_0 == null)
     {
         V_0 = ((statementBlock.get_Statements().get_Item(1) as ExpressionStatement).get_Expression() as BinaryExpression).get_Right() as DynamicMemberReferenceExpression;
     }
     if (V_0.get_MemberName() == null || !V_0.get_IsMethodInvocation() || V_0.get_IsGenericMethod() || V_0.get_InvocationArguments().get_Count() != 1)
     {
         throw new Exception("Invalid IsEvent construction");
     }
     V_1 = V_0.get_MemberName().IndexOf('\u005F');
     if (V_1 != 3 && V_1 != 6)
     {
         throw new Exception("Invalid IsEvent construction");
     }
     V_2 = new DynamicMemberReferenceExpression(V_0.get_Target(), V_0.get_MemberName().Substring(V_1 + 1), V_0.get_ExpressionType(), V_0.get_MappedInstructions());
     if (V_1 == 3)
     {
         stackVariable44 = 2;
     }
     else
     {
         stackVariable44 = 4;
     }
     stackVariable56 = new BinaryExpression(stackVariable44, V_2, V_0.get_InvocationArguments().get_Item(0), V_2.get_ExpressionType(), this.typeSystem, null, false);
     V_3             = (BlockStatement)theIf.get_Parent();
     V_4             = V_3.get_Statements().IndexOf(theIf);
     V_5             = new ExpressionStatement(stackVariable56);
     V_5.set_Parent(V_3);
     V_3.get_Statements().set_Item(V_4, V_5);
     if (statementBlock.get_Statements().get_Count() == 3)
     {
         V_3.AddStatementAt(V_4 + 1, statementBlock.get_Statements().get_Item(2).Clone());
     }
     return;
 }