private void LiftGoto(IfStatement gotoStatement, Statement labelContainingStatement, string label) { V_0 = this.GetOuterBlock(gotoStatement); V_1 = new VariableReferenceExpression(this.GetLabelVariable(label), null); this.ExtractConditionIntoVariable(V_1, gotoStatement, V_0); V_2 = V_0.get_Statements().IndexOf(gotoStatement); V_3 = V_0.get_Statements().IndexOf(labelContainingStatement); V_4 = this.CollectStatements(V_3, V_2, V_0); V_4.AddStatementAt(0, gotoStatement); V_2 = V_0.get_Statements().IndexOf(gotoStatement); dummyVar0 = V_0.get_Statements().Remove(gotoStatement); V_5 = new DoWhileStatement(gotoStatement.get_Condition().CloneExpressionOnly(), V_4); V_0.AddStatementAt(V_2, V_5); return; }