summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/lexer
diff options
context:
space:
mode:
authorYDBot <[email protected]>2025-10-23 18:38:13 +0000
committerYDBot <[email protected]>2025-10-23 18:38:13 +0000
commit564cf7cb2255a107b4f44c18b2a1844041f20b4d (patch)
tree6a4a60e8bde612dcc3ac7fd93fffbd36351d4e35 /yql/essentials/sql/v1/lexer
parent89a17b25091c24744b7ebd0650b5b810457b1145 (diff)
parenta703d86902fd02bd8e373d959b2498c034657449 (diff)
Merge pull request #27203 from ydb-platform/merge-rightlib-251021-0051HEADmain
Diffstat (limited to 'yql/essentials/sql/v1/lexer')
-rw-r--r--yql/essentials/sql/v1/lexer/antlr3/lexer.cpp40
-rw-r--r--yql/essentials/sql/v1/lexer/antlr3/lexer.h8
-rw-r--r--yql/essentials/sql/v1/lexer/antlr3/ya.make14
-rw-r--r--yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.cpp40
-rw-r--r--yql/essentials/sql/v1/lexer/antlr3_ansi/lexer.h8
-rw-r--r--yql/essentials/sql/v1/lexer/antlr3_ansi/ya.make14
-rw-r--r--yql/essentials/sql/v1/lexer/lexer.cpp8
-rw-r--r--yql/essentials/sql/v1/lexer/lexer.h2
-rw-r--r--yql/essentials/sql/v1/lexer/lexer_ut.cpp34
-rw-r--r--yql/essentials/sql/v1/lexer/lexer_ut.h34
-rw-r--r--yql/essentials/sql/v1/lexer/ut/ya.make2
-rw-r--r--yql/essentials/sql/v1/lexer/ya.make2
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