public override void VisitGotoStatement (GotoStatement gotoStatement) { base.VisitGotoStatement (gotoStatement); var a = new ExpressionStatement ( new AssignmentExpression ( new IdentifierExpression ("_goto"), new IdentifierExpression (gotoStatement.Label))); var c = new ContinueStatement (); c.AddAnnotation (new LabelStatement { Label = "_GOTO_LOOP" }); gotoStatement.ReplaceWith (c); c.Parent.InsertChildBefore (c, a, (Role<Statement>)c.Role); }