diff options
author | Alexander Smirnov <alex@ydb.tech> | 2025-02-11 03:36:29 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2025-02-11 03:36:29 +0000 |
commit | c166bec95e44baf473bfdd28aaf976a85da110a3 (patch) | |
tree | 7adfb406024a2ecd912a7daae4796ab5c68d24a7 /yql/essentials/public/fastcheck/parser.cpp | |
parent | e86276c064f63bbda07d6ddd5834401eb00a4d30 (diff) | |
parent | f992866ec874491c1e07e4cb4f90c595668e2864 (diff) | |
download | ydb-c166bec95e44baf473bfdd28aaf976a85da110a3.tar.gz |
Merge pull request #14412 from ydb-platform/merge-libs-250211-0050
Diffstat (limited to 'yql/essentials/public/fastcheck/parser.cpp')
-rw-r--r-- | yql/essentials/public/fastcheck/parser.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/yql/essentials/public/fastcheck/parser.cpp b/yql/essentials/public/fastcheck/parser.cpp index 82fca672b4..3e065be19e 100644 --- a/yql/essentials/public/fastcheck/parser.cpp +++ b/yql/essentials/public/fastcheck/parser.cpp @@ -1,4 +1,5 @@ #include "check_runner.h" +#include <yql/essentials/sql/v1/lexer/lexer.h> #include <yql/essentials/sql/v1/proto_parser/proto_parser.h> #include <yql/essentials/sql/settings/translation_settings.h> #include <yql/essentials/parser/pg_wrapper/interface/raw_parser.h> @@ -72,11 +73,18 @@ private: return res; } - google::protobuf::Arena arena; - auto msg = NSQLTranslationV1::SqlAST(request.Program, request.File, res.Issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS, - settings.AnsiLexer, true, false, &arena); - if (msg) { - res.Success = true; + auto lexer = NSQLTranslationV1::MakeLexer(settings.AnsiLexer, true); + auto onNextToken = [&](NSQLTranslation::TParsedToken&& token) { + Y_UNUSED(token); + }; + + if (lexer->Tokenize(request.Program, request.File, onNextToken, res.Issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS)) { + google::protobuf::Arena arena; + auto msg = NSQLTranslationV1::SqlAST(request.Program, request.File, res.Issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS, + settings.AnsiLexer, true, false, &arena); + if (msg) { + res.Success = true; + } } return res; |