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); }
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; }