diff options
author | vvvv <[email protected]> | 2025-02-19 17:28:26 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-02-19 17:46:38 +0300 |
commit | 52daccf61e2e827114cfb3372071cddaec7974ba (patch) | |
tree | 07404f6ec241c8a2b96a4da07dc0f0d0c247799c /yql/essentials/sql/v1/format/sql_format_ut.cpp | |
parent | ca4b5f28703b0d06599c94f3eacc5d6c498c31d5 (diff) |
YQL-19594 Explicit lexers & parsers
commit_hash:6be543b7c5bff6ee474ee606c920197fb2569767
Diffstat (limited to 'yql/essentials/sql/v1/format/sql_format_ut.cpp')
-rw-r--r-- | yql/essentials/sql/v1/format/sql_format_ut.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/yql/essentials/sql/v1/format/sql_format_ut.cpp b/yql/essentials/sql/v1/format/sql_format_ut.cpp index e721f1fae6e..8714ee2d7c9 100644 --- a/yql/essentials/sql/v1/format/sql_format_ut.cpp +++ b/yql/essentials/sql/v1/format/sql_format_ut.cpp @@ -1,6 +1,10 @@ #include <library/cpp/testing/unittest/registar.h> #include "sql_format.h" +#include <yql/essentials/sql/v1/lexer/antlr3/lexer.h> +#include <yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.h> +#include <yql/essentials/sql/v1/proto_parser/antlr3/proto_parser.h> +#include <yql/essentials/sql/v1/proto_parser/antlr3_ansi/proto_parser.h> #include <google/protobuf/arena.h> #include <util/string/subst.h> @@ -12,13 +16,25 @@ using TCases = TVector<std::pair<TString, TString>>; struct TSetup { TSetup(bool ansiLexer = false) { + NSQLTranslationV1::TLexers lexers; + lexers.Antlr3 = NSQLTranslationV1::MakeAntlr3LexerFactory(); + lexers.Antlr3Ansi = NSQLTranslationV1::MakeAntlr3AnsiLexerFactory(); + NSQLTranslationV1::TParsers parsers; + parsers.Antlr3 = NSQLTranslationV1::MakeAntlr3ParserFactory(); + parsers.Antlr3Ansi = NSQLTranslationV1::MakeAntlr3AnsiParserFactory(); + NSQLTranslation::TTranslationSettings settings; + settings.Antlr4Parser = false; settings.Arena = &Arena; settings.AnsiLexer = ansiLexer; - Formatter = NSQLFormat::MakeSqlFormatter(settings); + Formatter = NSQLFormat::MakeSqlFormatter(lexers, parsers, settings); } void Run(const TCases& cases, NSQLFormat::EFormatMode mode = NSQLFormat::EFormatMode::Pretty) { + NSQLTranslationV1::TLexers lexers; + lexers.Antlr3 = NSQLTranslationV1::MakeAntlr3LexerFactory(); + lexers.Antlr3Ansi = NSQLTranslationV1::MakeAntlr3AnsiLexerFactory(); + for (const auto& c : cases) { NYql::TIssues issues; TString formatted; @@ -33,8 +49,11 @@ struct TSetup { UNIT_ASSERT_C(res2, issues.ToString()); UNIT_ASSERT_NO_DIFF(formatted, formatted2); + if (mode == NSQLFormat::EFormatMode::Pretty) { - auto mutatedQuery = NSQLFormat::MutateQuery(c.first); + NSQLTranslation::TTranslationSettings settings; + settings.Antlr4Parser = false; + auto mutatedQuery = NSQLFormat::MutateQuery(lexers, c.first, settings); auto res3 = Formatter->Format(mutatedQuery, formatted, issues); UNIT_ASSERT_C(res3, issues.ToString()); } |