/// <summary> /// Builds the various control flow constructs. /// </summary> /// <returns></returns> private BlockLogicalConstruct BuildLogicalConstructTree() { cfgBlockSplitter.SplitConditionalCFGBlocks(); guardedBlocksBuilder.FindExceptionHandlingConstructs(); yieldGuardedBlocksBuilder.BuildGuardedBlocks(theBlockLogicalConstruct); conditionBuilder.BuildConstructs(theBlockLogicalConstruct); loopBuilder.BuildLoops(theBlockLogicalConstruct); switchBuilder.BuildConstructs(); ifBuilder.BuildConstructs(theBlockLogicalConstruct); followNodeDeterminator.ProcessConstruct(theBlockLogicalConstruct); return(theBlockLogicalConstruct); }