public void BuildLoops(ILogicalConstruct block) { if (block.get_Children().get_Count() == 0) { return; } V_0 = block.get_Children().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current() as ILogicalConstruct; if (V_1 == null) { throw new ArgumentException("Child is not a logical construct."); } if (V_1 as ConditionLogicalConstruct != null) { continue; } this.BuildLoops(V_1); } } finally { ((IDisposable)V_0).Dispose(); } this.ProcessLogicalConstruct(block); return; }
public void ProcessConstruct(ILogicalConstruct theConstruct) { if (theConstruct as CFGBlockLogicalConstruct != null || theConstruct as ConditionLogicalConstruct != null) { return; } if (theConstruct as BlockLogicalConstruct != null) { this.DetermineFollowNodesInSubGraph(theConstruct); } V_0 = theConstruct.get_Children().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = (ILogicalConstruct)V_0.get_Current(); this.ProcessConstruct(V_1); } } finally { ((IDisposable)V_0).Dispose(); } return; }
public void BuildConstructs(ILogicalConstruct construct) { if (construct as CFGBlockLogicalConstruct != null || construct as ConditionLogicalConstruct != null) { return; } V_0 = construct.get_Children().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = (ILogicalConstruct)V_0.get_Current(); this.BuildConstructs(V_1); } } finally { ((IDisposable)V_0).Dispose(); } this.BuildIfConstructs(construct); return; }
private void CreateComplexConditions(ILogicalConstruct theConstruct) { if (theConstruct as ConditionLogicalConstruct != null || theConstruct as CFGBlockLogicalConstruct != null) { return; } V_1 = theConstruct.get_Children().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = (ILogicalConstruct)V_1.get_Current(); this.CreateComplexConditions(V_2); } } finally { ((IDisposable)V_1).Dispose(); } while (this.TryTraverseAndMerge(theConstruct)) { } return; }