Ejemplo n.º 1
0
        public void Parser_Error_DetectsErrorAtEnd()
        {
            const string text = @"
                SELECT 'foo' WITH
            ";

            var syntaxTree = SyntaxTree.ParseQuery(text);

            using (var enumerator = AssertingEnumerator.ForNode(syntaxTree.Root))
            {
                enumerator.AssertNode(SyntaxKind.CompilationUnit);
                enumerator.AssertNode(SyntaxKind.SelectQuery);
                enumerator.AssertNode(SyntaxKind.SelectClause);
                enumerator.AssertToken(SyntaxKind.SelectKeyword, @"SELECT");
                enumerator.AssertNode(SyntaxKind.ExpressionSelectColumn);
                enumerator.AssertNode(SyntaxKind.LiteralExpression);
                enumerator.AssertToken(SyntaxKind.StringLiteralToken, @"'foo'");
                enumerator.AssertNode(SyntaxKind.SkippedTokensTrivia);
                enumerator.AssertToken(SyntaxKind.WithKeyword, @"WITH");
                enumerator.AssertToken(SyntaxKind.EndOfFileToken, @"");
                enumerator.AssertDiagnostic(DiagnosticId.TokenExpected, @"Found 'WITH' but expected '<End-of-File>'.");
            }
        }