private static bool ExtractLoop(DoStatement stat) { if (stat.GetLooptype() != DoStatement.Loop_Do) { return(false); } foreach (StatEdge edge in stat.GetLabelEdges()) { if (edge.GetType() != StatEdge.Type_Continue && edge.GetDestination().type != Statement .Type_Dummyexit) { return(false); } } return(ExtractLastIf(stat) || ExtractFirstIf(stat)); }