コード例 #1
0
 private static bool TryMatchVariableDeclaration(BlockStatement filter, out VariableDeclarationExpression variableDeclaration)
 {
     variableDeclaration = null;
     V_0 = filter.get_Statements().get_Item(0) as ExpressionStatement;
     if (V_0 == null)
     {
         return(false);
     }
     V_1 = V_0.get_Expression() as BinaryExpression;
     if (V_1 == null || !V_1.get_IsAssignmentExpression())
     {
         return(false);
     }
     V_2 = V_1.get_Left() as VariableReferenceExpression;
     if (V_2 == null)
     {
         return(false);
     }
     if (V_1.get_Right() as SafeCastExpression == null)
     {
         return(false);
     }
     V_3 = filter.get_Statements().get_Item(1) as IfStatement;
     if (V_3 == null)
     {
         return(false);
     }
     V_4 = V_3.get_Condition() as BinaryExpression;
     if (V_4 == null)
     {
         return(false);
     }
     V_5 = V_4.get_Left() as VariableReferenceExpression;
     if (V_5 == null)
     {
         return(false);
     }
     V_6 = V_4.get_Right() as LiteralExpression;
     if (V_6 == null)
     {
         return(false);
     }
     if (!V_5.Equals(V_2) || V_6.get_Value() != null || V_4.get_Operator() != 9 && V_4.get_Operator() != 10)
     {
         return(false);
     }
     V_7 = V_2.get_Variable().Resolve();
     V_8 = V_2.get_MappedInstructions();
     if (V_4.get_Operator() != 10)
     {
         V_9 = V_3.get_Else();
     }
     else
     {
         V_9 = V_3.get_Then();
     }
     if (!CatchClausesFilterPattern.TryGetVariableDeclaration(V_9.get_Statements().get_Item(0) as ExpressionStatement, V_2, ref V_7, ref V_8) && V_9.get_Statements().get_Count() >= 2)
     {
         dummyVar0 = CatchClausesFilterPattern.TryGetVariableDeclaration(V_9.get_Statements().get_Item(1) as ExpressionStatement, V_2, ref V_7, ref V_8);
     }
     variableDeclaration = new VariableDeclarationExpression(V_7, V_8);
     return(true);
 }