aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/public/fastcheck/parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'yql/essentials/public/fastcheck/parser.cpp')
-rw-r--r--yql/essentials/public/fastcheck/parser.cpp18
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;