示例#1
0
 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;
 }