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/lexer/lexer_ut.cpp | |
parent | ca4b5f28703b0d06599c94f3eacc5d6c498c31d5 (diff) |
YQL-19594 Explicit lexers & parsers
commit_hash:6be543b7c5bff6ee474ee606c920197fb2569767
Diffstat (limited to 'yql/essentials/sql/v1/lexer/lexer_ut.cpp')
-rw-r--r-- | yql/essentials/sql/v1/lexer/lexer_ut.cpp | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/yql/essentials/sql/v1/lexer/lexer_ut.cpp b/yql/essentials/sql/v1/lexer/lexer_ut.cpp index 7dc84162890..2f0c8bb8e2b 100644 --- a/yql/essentials/sql/v1/lexer/lexer_ut.cpp +++ b/yql/essentials/sql/v1/lexer/lexer_ut.cpp @@ -2,6 +2,8 @@ #include <yql/essentials/core/issue/yql_issue.h> #include <yql/essentials/sql/settings/translation_settings.h> +#include <yql/essentials/sql/v1/lexer/antlr3/lexer.h> +#include <yql/essentials/sql/v1/lexer/antlr4/lexer.h> #include <library/cpp/testing/unittest/registar.h> @@ -74,8 +76,12 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) { "\"select\"select", }; - auto lexer3 = MakeLexer(/* ansi = */ false, /* antlr4 = */ false); - auto lexer4 = MakeLexer(/* ansi = */ false, /* antlr4 = */ true); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr3 = NSQLTranslationV1::MakeAntlr3LexerFactory(); + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + + auto lexer3 = MakeLexer(lexers, /* ansi = */ false, /* antlr4 = */ false); + auto lexer4 = MakeLexer(lexers, /* ansi = */ false, /* antlr4 = */ true); for (const auto& query : queriesUtf8) { auto [tokens3, issues3] = Tokenize(lexer3, query); @@ -89,7 +95,11 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) { TVector<TString> InvalidQueries(); void TestInvalidTokensSkipped(bool antlr4, const TVector<TVector<TString>>& expected) { - auto lexer = MakeLexer(/* ansi = */ false, antlr4); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr3 = NSQLTranslationV1::MakeAntlr3LexerFactory(); + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + + auto lexer = MakeLexer(lexers, /* ansi = */ false, antlr4); auto input = InvalidQueries(); UNIT_ASSERT_VALUES_EQUAL(input.size(), expected.size()); @@ -144,8 +154,12 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) { } Y_UNIT_TEST(IssuesCollected) { - auto lexer3 = MakeLexer(/* ansi = */ false, /* antlr4 = */ false); - auto lexer4 = MakeLexer(/* ansi = */ false, /* antlr4 = */ true); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr3 = NSQLTranslationV1::MakeAntlr3LexerFactory(); + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + + auto lexer3 = MakeLexer(lexers, /* ansi = */ false, /* antlr4 = */ false); + auto lexer4 = MakeLexer(lexers, /* ansi = */ false, /* antlr4 = */ true); for (const auto& query : InvalidQueries()) { auto issues3 = GetIssueMessages(lexer3, query); @@ -157,7 +171,9 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) { } Y_UNIT_TEST(IssueMessagesAntlr3) { - auto lexer3 = MakeLexer(/* ansi = */ false, /* antlr4 = */ false); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr3 = NSQLTranslationV1::MakeAntlr3LexerFactory(); + auto lexer3 = MakeLexer(lexers, /* ansi = */ false, /* antlr4 = */ false); auto actual = GetIssueMessages(lexer3, "\xF0\x9F\x98\x8A SELECT * FR"); @@ -172,7 +188,10 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) { } Y_UNIT_TEST(IssueMessagesAntlr4) { - auto lexer4 = MakeLexer(/* ansi = */ false, /* antlr4 = */ true); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + + auto lexer4 = MakeLexer(lexers, /* ansi = */ false, /* antlr4 = */ true); auto actual = GetIssueMessages(lexer4, "\xF0\x9F\x98\x8A SELECT * FR"); |