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)))); }