示例#1
0
 private List <IntervalConstruct> SortIntervalList(List <IntervalConstruct> intervals)
 {
     V_0 = new IntervalConstruct(intervals.get_Item(0));
     V_2 = intervals.GetEnumerator();
     try
     {
         while (V_2.MoveNext())
         {
             V_3       = V_2.get_Current();
             dummyVar0 = V_0.get_Children().Add(V_3);
         }
     }
     finally
     {
         ((IDisposable)V_2).Dispose();
     }
     stackVariable15 = DFSTBuilder.BuildTree(V_0);
     V_1             = new List <IntervalConstruct>();
     V_4             = stackVariable15.get_ReversePostOrder().GetEnumerator();
     try
     {
         while (V_4.MoveNext())
         {
             V_5 = V_4.get_Current();
             V_1.Add(V_5.get_Construct() as IntervalConstruct);
         }
     }
     finally
     {
         ((IDisposable)V_4).Dispose();
     }
     return(V_1);
 }
示例#2
0
        private void FillInterval(ILogicalConstruct intervalHeader, IntervalConstruct interval)
        {
            this.nodeToInterval.Add(intervalHeader, interval);
            V_0 = new Queue <ILogicalConstruct>();
            V_1 = this.GetNodeSuccessors(intervalHeader).GetEnumerator();
            try
            {
                while (V_1.MoveNext())
                {
                    V_2 = V_1.get_Current();
                    if (!this.availableNodes.Contains(V_2))
                    {
                        continue;
                    }
                    V_0.Enqueue(V_2);
                }
            }
            finally
            {
                if (V_1 != null)
                {
                    V_1.Dispose();
                }
            }
            while (V_0.get_Count() > 0)
            {
                V_3 = V_0.Dequeue();
                if (this.nodeToInterval.ContainsKey(V_3))
                {
                    continue;
                }
                V_4 = true;
                V_1 = this.GetNodePredecessors(V_3).GetEnumerator();
                try
                {
                    while (V_1.MoveNext())
                    {
                        V_5 = V_1.get_Current();
                        if (this.nodeToInterval.ContainsKey(V_5) && this.nodeToInterval.get_Item(V_5) == interval)
                        {
                            continue;
                        }
                        V_4 = false;
                        goto Label0;
                    }
                }
                finally
                {
                    if (V_1 != null)
                    {
                        V_1.Dispose();
                    }
                }
Label0:
                if (!V_4)
                {
                    continue;
                }
                dummyVar0 = interval.get_Children().Add(V_3);
                this.nodeToInterval.Add(V_3, interval);
                V_1 = this.GetNodeSuccessors(V_3).GetEnumerator();
                try
                {
                    while (V_1.MoveNext())
                    {
                        V_6 = V_1.get_Current();
                        if (!this.availableNodes.Contains(V_6))
                        {
                            continue;
                        }
                        V_0.Enqueue(V_6);
                    }
                }
                finally
                {
                    if (V_1 != null)
                    {
                        V_1.Dispose();
                    }
                }
            }
            return;
        }