diff options
| author | YDBot <[email protected]> | 2025-10-23 18:38:13 +0000 |
|---|---|---|
| committer | YDBot <[email protected]> | 2025-10-23 18:38:13 +0000 |
| commit | 564cf7cb2255a107b4f44c18b2a1844041f20b4d (patch) | |
| tree | 6a4a60e8bde612dcc3ac7fd93fffbd36351d4e35 /yql/essentials/sql/v1/lexer | |
| parent | 89a17b25091c24744b7ebd0650b5b810457b1145 (diff) | |
| parent | a703d86902fd02bd8e373d959b2498c034657449 (diff) | |
Diffstat (limited to 'yql/essentials/sql/v1/lexer')
| -rw-r--r-- | yql/essentials/sql/v1/lexer/antlr3/lexer.cpp | 40 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/antlr3/lexer.h | 8 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/antlr3/ya.make | 14 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.cpp | 40 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.h | 8 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/antlr3_ansi/ya.make | 14 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/lexer.cpp | 8 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/lexer.h | 2 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/lexer_ut.cpp | 34 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/lexer_ut.h | 34 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/ut/ya.make | 2 | ||||
| -rw-r--r-- | yql/essentials/sql/v1/lexer/ya.make | 2 |
12 files changed, 16 insertions, 190 deletions
diff --git a/yql/essentials/sql/v1/lexer/antlr3/lexer.cpp b/yql/essentials/sql/v1/lexer/antlr3/lexer.cpp deleted file mode 100644 index a0d9b577022..00000000000 --- a/yql/essentials/sql/v1/lexer/antlr3/lexer.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "lexer.h" -#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> -#include <yql/essentials/public/issue/yql_issue.h> -#include <yql/essentials/parser/proto_ast/collect_issues/collect_issues.h> -#include <yql/essentials/parser/proto_ast/antlr3/proto_ast_antlr3.h> - -namespace NALPDefault { -extern ANTLR_UINT8* SQLv1ParserTokenNames[]; -} // namespace NALPDefault - -namespace NSQLTranslationV1 { - -namespace { - -class TLexer: public NSQLTranslation::ILexer { -public: - bool Tokenize(const TString& query, const TString& queryName, const TTokenCallback& onNextToken, NYql::TIssues& issues, size_t maxErrors) final { - NYql::TIssues newIssues; - NSQLTranslation::TErrorCollectorOverIssues collector(newIssues, maxErrors, queryName); - NProtoAST::TLexerTokensCollector3<NALPDefault::SQLv1Lexer> tokensCollector(query, (const char**)NALPDefault::SQLv1ParserTokenNames, queryName); - tokensCollector.CollectTokens(collector, onNextToken); - issues.AddIssues(newIssues); - return !AnyOf(newIssues.begin(), newIssues.end(), [](auto issue) { return issue.GetSeverity() == NYql::ESeverity::TSeverityIds_ESeverityId_S_ERROR; }); - } -}; - -class TFactory: public NSQLTranslation::ILexerFactory { -public: - THolder<NSQLTranslation::ILexer> MakeLexer() const final { - return MakeHolder<TLexer>(); - } -}; - -} // namespace - -NSQLTranslation::TLexerFactoryPtr MakeAntlr3LexerFactory() { - return MakeIntrusive<TFactory>(); -} - -} // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/lexer/antlr3/lexer.h b/yql/essentials/sql/v1/lexer/antlr3/lexer.h deleted file mode 100644 index 7d3bd550688..00000000000 --- a/yql/essentials/sql/v1/lexer/antlr3/lexer.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once -#include <yql/essentials/parser/lexer_common/lexer.h> - -namespace NSQLTranslationV1 { - -NSQLTranslation::TLexerFactoryPtr MakeAntlr3LexerFactory(); - -} // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/lexer/antlr3/ya.make b/yql/essentials/sql/v1/lexer/antlr3/ya.make deleted file mode 100644 index 8fd1537311c..00000000000 --- a/yql/essentials/sql/v1/lexer/antlr3/ya.make +++ /dev/null @@ -1,14 +0,0 @@ -LIBRARY() - -PEERDIR( - yql/essentials/parser/lexer_common - yql/essentials/public/issue - yql/essentials/parser/proto_ast/collect_issues - yql/essentials/parser/proto_ast/gen/v1 -) - -SRCS( - lexer.cpp -) - -END() diff --git a/yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.cpp b/yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.cpp deleted file mode 100644 index c7ee91a6260..00000000000 --- a/yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include "lexer.h" -#include <yql/essentials/parser/proto_ast/gen/v1_ansi/SQLv1Lexer.h> -#include <yql/essentials/public/issue/yql_issue.h> -#include <yql/essentials/parser/proto_ast/collect_issues/collect_issues.h> -#include <yql/essentials/parser/proto_ast/antlr3/proto_ast_antlr3.h> - -namespace NALPAnsi { -extern ANTLR_UINT8* SQLv1ParserTokenNames[]; -} // namespace NALPAnsi - -namespace NSQLTranslationV1 { - -namespace { - -class TLexer: public NSQLTranslation::ILexer { -public: - bool Tokenize(const TString& query, const TString& queryName, const TTokenCallback& onNextToken, NYql::TIssues& issues, size_t maxErrors) final { - NYql::TIssues newIssues; - NSQLTranslation::TErrorCollectorOverIssues collector(newIssues, maxErrors, queryName); - NProtoAST::TLexerTokensCollector3<NALPAnsi::SQLv1Lexer> tokensCollector(query, (const char**)NALPAnsi::SQLv1ParserTokenNames, queryName); - tokensCollector.CollectTokens(collector, onNextToken); - issues.AddIssues(newIssues); - return !AnyOf(newIssues.begin(), newIssues.end(), [](auto issue) { return issue.GetSeverity() == NYql::ESeverity::TSeverityIds_ESeverityId_S_ERROR; }); - } -}; - -class TFactory: public NSQLTranslation::ILexerFactory { -public: - THolder<NSQLTranslation::ILexer> MakeLexer() const final { - return MakeHolder<TLexer>(); - } -}; - -} // namespace - -NSQLTranslation::TLexerFactoryPtr MakeAntlr3AnsiLexerFactory() { - return MakeIntrusive<TFactory>(); -} - -} // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.h b/yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.h deleted file mode 100644 index 7871fbff4cb..00000000000 --- a/yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once -#include <yql/essentials/parser/lexer_common/lexer.h> - -namespace NSQLTranslationV1 { - -NSQLTranslation::TLexerFactoryPtr MakeAntlr3AnsiLexerFactory(); - -} // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/lexer/antlr3_ansi/ya.make b/yql/essentials/sql/v1/lexer/antlr3_ansi/ya.make deleted file mode 100644 index ed34a4fc28c..00000000000 --- a/yql/essentials/sql/v1/lexer/antlr3_ansi/ya.make +++ /dev/null @@ -1,14 +0,0 @@ -LIBRARY() - -PEERDIR( - yql/essentials/parser/lexer_common - yql/essentials/public/issue - yql/essentials/parser/proto_ast/collect_issues - yql/essentials/parser/proto_ast/gen/v1_ansi -) - -SRCS( - lexer.cpp -) - -END() diff --git a/yql/essentials/sql/v1/lexer/lexer.cpp b/yql/essentials/sql/v1/lexer/lexer.cpp index da546069b84..1324d3a4b2d 100644 --- a/yql/essentials/sql/v1/lexer/lexer.cpp +++ b/yql/essentials/sql/v1/lexer/lexer.cpp @@ -2,8 +2,6 @@ #include <yql/essentials/public/issue/yql_issue.h> #include <yql/essentials/parser/lexer_common/lexer.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/lexer/antlr4/lexer.h> #include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h> #include <yql/essentials/sql/settings/translation_settings.h> @@ -51,11 +49,7 @@ private: } static NSQLTranslation::TLexerFactoryPtr GetMaybeFactory(const TLexers& lexers, bool ansi, bool antlr4, ELexerFlavor flavor) { - if (!ansi && !antlr4 && flavor == ELexerFlavor::Default) { - return lexers.Antlr3; - } else if (ansi && !antlr4 && flavor == ELexerFlavor::Default) { - return lexers.Antlr3Ansi; - } else if (!ansi && antlr4 && flavor == ELexerFlavor::Default) { + if (!ansi && antlr4 && flavor == ELexerFlavor::Default) { return lexers.Antlr4; } else if (ansi && antlr4 && flavor == ELexerFlavor::Default) { return lexers.Antlr4Ansi; diff --git a/yql/essentials/sql/v1/lexer/lexer.h b/yql/essentials/sql/v1/lexer/lexer.h index 48d21a654f0..4dcad487f6d 100644 --- a/yql/essentials/sql/v1/lexer/lexer.h +++ b/yql/essentials/sql/v1/lexer/lexer.h @@ -5,8 +5,6 @@ namespace NSQLTranslationV1 { struct TLexers { - NSQLTranslation::TLexerFactoryPtr Antlr3; - NSQLTranslation::TLexerFactoryPtr Antlr3Ansi; NSQLTranslation::TLexerFactoryPtr Antlr4; NSQLTranslation::TLexerFactoryPtr Antlr4Ansi; NSQLTranslation::TLexerFactoryPtr Antlr4Pure; diff --git a/yql/essentials/sql/v1/lexer/lexer_ut.cpp b/yql/essentials/sql/v1/lexer/lexer_ut.cpp index 483787c159b..a79f3d077bd 100644 --- a/yql/essentials/sql/v1/lexer/lexer_ut.cpp +++ b/yql/essentials/sql/v1/lexer/lexer_ut.cpp @@ -4,8 +4,6 @@ #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/antlr3_ansi/lexer.h> #include <yql/essentials/sql/v1/lexer/antlr4/lexer.h> #include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h> #include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h> @@ -27,8 +25,6 @@ using namespace NSQLTranslation; using namespace NSQLTranslationV1; TLexers Lexers = { - .Antlr3 = MakeAntlr3LexerFactory(), - .Antlr3Ansi = MakeAntlr3AnsiLexerFactory(), .Antlr4 = MakeAntlr4LexerFactory(), .Antlr4Ansi = MakeAntlr4AnsiLexerFactory(), .Antlr4Pure = MakeAntlr4PureLexerFactory(), @@ -217,21 +213,6 @@ TVector<TString> InvalidQueries() { }; } -Y_UNIT_TEST(ErrorRecoveryAntlr3) { - TVector<TVector<TString>> actual = { - /* 0: */ {"EOF"}, - /* 1: */ {"SELECT", "WS", "EOF"}, - /* 2: */ {"EOF"}, - /* 3: */ {"WS", "SELECT", "WS", "ASTERISK", "WS", "ID_PLAIN (FR)", "EOF"}, - /* 4: */ {"ID_PLAIN (ELECT)", "WS", "ASTERISK", "WS", "WS", "FROM", "EOF"}, - /* 5: */ {"SELECT", "WS", "ID_PLAIN (rom)", "EOF"}, - /* 6: */ {"EOF"}, - /* 7: */ {"ID_PLAIN (lect)", "EOF"}, - /* 8: */ {"SELECT", "WS", "EOF"}, - }; - TestInvalidTokensSkipped(/* antlr4 = */ false, actual); -} - Y_UNIT_TEST(ErrorRecoveryAntlr4) { TVector<TVector<TString>> actual = { /* 0: */ {"EOF"}, @@ -266,21 +247,6 @@ Y_UNIT_TEST(IssuesCollected) { } } -Y_UNIT_TEST(IssueMessagesAntlr3) { - auto lexer3 = MakeLexer(Lexers, /* ansi = */ false, /* antlr4 = */ false); - - auto actual = GetIssueMessages(lexer3, "\xF0\x9F\x98\x8A SELECT * FR"); - - TVector<TString> expected = { - "<main>:1:0: Error: Unexpected character '\xF0\x9F\x98\x8A' (Unicode character <128522>) : cannot match to any predicted input...", - "<main>:1:1: Error: Unexpected character : cannot match to any predicted input...", - "<main>:1:2: Error: Unexpected character : cannot match to any predicted input...", - "<main>:1:3: Error: Unexpected character : cannot match to any predicted input...", - }; - - UNIT_ASSERT_VALUES_EQUAL(actual, expected); -} - Y_UNIT_TEST(IssueMessagesAntlr4) { auto lexer4 = MakeLexer(Lexers, /* ansi = */ false, /* antlr4 = */ true); diff --git a/yql/essentials/sql/v1/lexer/lexer_ut.h b/yql/essentials/sql/v1/lexer/lexer_ut.h index b4304eb7070..195a103d772 100644 --- a/yql/essentials/sql/v1/lexer/lexer_ut.h +++ b/yql/essentials/sql/v1/lexer/lexer_ut.h @@ -2,9 +2,7 @@ #include "lexer.h" -#define LEXER_NAME_ANSI_false_ANTLR4_false_FLAVOR_Default "antlr3" #define LEXER_NAME_ANSI_false_ANTLR4_true_FLAVOR_Default "antlr4" -#define LEXER_NAME_ANSI_true_ANTLR4_false_FLAVOR_Default "antlr3_ansi" #define LEXER_NAME_ANSI_true_ANTLR4_true_FLAVOR_Default "antlr4_ansi" #define LEXER_NAME_ANSI_false_ANTLR4_true_FLAVOR_Pure "antlr4_pure" #define LEXER_NAME_ANSI_true_ANTLR4_true_FLAVOR_Pure "antlr4_pure_ansi" @@ -17,21 +15,19 @@ static_cast<void (*)(NUnitTest::TTestContext&)>(&N<ANSI, ANTLR4, ELexerFlavor::FLAVOR>), \ /* forceFork = */ false) -#define Y_UNIT_TEST_ON_EACH_LEXER(N) \ - template <bool ANSI, bool ANTLR4, ELexerFlavor FLAVOR> \ - void N(NUnitTest::TTestContext&); \ - struct TTestRegistration##N { \ - TTestRegistration##N() { \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, false, Default); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, true, Default); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, false, Default); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, true, Default); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, true, Pure); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, true, Pure); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, false, Regex); \ - Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, false, Regex); \ - } \ - }; \ - static TTestRegistration##N testRegistration##N; \ - template <bool ANSI, bool ANTLR4, ELexerFlavor FLAVOR> \ +#define Y_UNIT_TEST_ON_EACH_LEXER(N) \ + template <bool ANSI, bool ANTLR4, ELexerFlavor FLAVOR> \ + void N(NUnitTest::TTestContext&); \ + struct TTestRegistration##N { \ + TTestRegistration##N() { \ + Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, true, Default); \ + Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, true, Default); \ + Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, true, Pure); \ + Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, true, Pure); \ + Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, false, false, Regex); \ + Y_UNIT_TEST_ON_EACH_LEXER_ADD_TEST(N, true, false, Regex); \ + } \ + }; \ + static TTestRegistration##N testRegistration##N; \ + template <bool ANSI, bool ANTLR4, ELexerFlavor FLAVOR> \ void N(NUnitTest::TTestContext&) diff --git a/yql/essentials/sql/v1/lexer/ut/ya.make b/yql/essentials/sql/v1/lexer/ut/ya.make index 87cb156cd93..d029af38a6b 100644 --- a/yql/essentials/sql/v1/lexer/ut/ya.make +++ b/yql/essentials/sql/v1/lexer/ut/ya.make @@ -3,8 +3,6 @@ UNITTEST_FOR(yql/essentials/sql/v1/lexer) PEERDIR( yql/essentials/core/issue yql/essentials/parser/lexer_common - yql/essentials/sql/v1/lexer/antlr3 - yql/essentials/sql/v1/lexer/antlr3_ansi yql/essentials/sql/v1/lexer/antlr4 yql/essentials/sql/v1/lexer/antlr4_ansi yql/essentials/sql/v1/lexer/antlr4_pure diff --git a/yql/essentials/sql/v1/lexer/ya.make b/yql/essentials/sql/v1/lexer/ya.make index 6462ced1991..d42dbfe8e71 100644 --- a/yql/essentials/sql/v1/lexer/ya.make +++ b/yql/essentials/sql/v1/lexer/ya.make @@ -16,8 +16,6 @@ SUPPRESSIONS( END() RECURSE( - antlr3 - antlr3_ansi antlr4 antlr4_ansi antlr4_pure |
