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