예제 #1
0
 public HashSet <ISingleEntrySubGraph> GetDominatedNodes(ISingleEntrySubGraph construct)
 {
     if (!this.constructToNodeMap.TryGetValue(construct, out V_0))
     {
         return(null);
     }
     V_1 = new HashSet <ISingleEntrySubGraph>();
     V_2 = new Queue <DTNode>();
     V_2.Enqueue(V_0);
     while (V_2.get_Count() > 0)
     {
         V_3       = V_2.Dequeue();
         dummyVar0 = V_1.Add(V_3.get_Construct());
         V_4       = V_3.get_TreeEdgeSuccessors().GetEnumerator();
         try
         {
             while (V_4.MoveNext())
             {
                 V_5 = (DTNode)V_4.get_Current();
                 V_2.Enqueue(V_5);
             }
         }
         finally
         {
             ((IDisposable)V_4).Dispose();
         }
     }
     return(V_1);
 }
예제 #2
0
 public HashSet <ISingleEntrySubGraph> GetDominators(ISingleEntrySubGraph construct)
 {
     if (!this.constructToNodeMap.TryGetValue(construct, out V_0))
     {
         return(null);
     }
     V_1 = new HashSet <ISingleEntrySubGraph>();
     V_2 = V_0.get_Dominators().GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3       = V_2.get_Current();
             dummyVar0 = V_1.Add(V_3.get_Construct());
         }
     }
     finally
     {
         ((IDisposable)V_2).Dispose();
     }
     return(V_1);
 }