public override SyntaxList <StatementSyntax> VisitContinueStatement(CSS.ContinueStatementSyntax node) { var statementKind = SyntaxKind.None; var keywordKind = SyntaxKind.None; foreach (var stmt in node.GetAncestors <CSS.StatementSyntax>()) { if (stmt is CSS.DoStatementSyntax) { statementKind = SyntaxKind.ContinueDoStatement; keywordKind = SyntaxKind.DoKeyword; break; } if (stmt is CSS.WhileStatementSyntax) { statementKind = SyntaxKind.ContinueWhileStatement; keywordKind = SyntaxKind.WhileKeyword; break; } if (stmt is CSS.ForStatementSyntax || stmt is CSS.ForEachStatementSyntax) { statementKind = SyntaxKind.ContinueForStatement; keywordKind = SyntaxKind.ForKeyword; break; } } return(SyntaxFactory.SingletonList <StatementSyntax>(SyntaxFactory.ContinueStatement(statementKind, SyntaxFactory.Token(keywordKind)))); }
public override SyntaxList <StatementSyntax> VisitContinueStatement(CSS.ContinueStatementSyntax node) { var statementKind = SyntaxKind.None; var keywordKind = SyntaxKind.None; foreach (var stmt in node.GetAncestors <CSS.StatementSyntax>()) { if (stmt is CSS.DoStatementSyntax) { statementKind = SyntaxKind.ContinueDoStatement; keywordKind = SyntaxKind.DoKeyword; break; } if (stmt is CSS.WhileStatementSyntax) { statementKind = SyntaxKind.ContinueWhileStatement; keywordKind = SyntaxKind.WhileKeyword; break; } if (stmt is CSS.ForEachStatementSyntax) { statementKind = SyntaxKind.ContinueForStatement; keywordKind = SyntaxKind.ForKeyword; break; } if (stmt is CSS.ForStatementSyntax fs) { bool isFor = ConvertForToSimpleForNextWithoutStatements(fs, out _); statementKind = isFor ? SyntaxKind.ContinueForStatement : SyntaxKind.ContinueWhileStatement; keywordKind = isFor ? SyntaxKind.ForKeyword : SyntaxKind.WhileKeyword; break; } } return(SyntaxFactory.SingletonList <StatementSyntax>(SyntaxFactory.ContinueStatement(statementKind, SyntaxFactory.Token(keywordKind)))); }
private VB.Syntax.StatementSyntax VisitContinueStatementWorker(CS.Syntax.ContinueStatementSyntax node) { foreach (SyntaxNode parent in node.GetAncestorsOrThis <SyntaxNode>()) { if (parent.IsContinuableConstruct()) { switch (parent.Kind()) { case CS.SyntaxKind.DoStatement: return(VB.SyntaxFactory.ContinueDoStatement()); case CS.SyntaxKind.WhileStatement: return(VB.SyntaxFactory.ContinueWhileStatement()); case CS.SyntaxKind.ForStatement: case CS.SyntaxKind.ForEachStatement: return(VB.SyntaxFactory.ContinueForStatement()); } } } return(CreateBadStatement(node, nodeVisitor)); }
public override SyntaxList <VB.Syntax.StatementSyntax> VisitContinueStatement(CS.Syntax.ContinueStatementSyntax node) { return(List(VisitContinueStatementWorker(node))); }