summaryrefslogtreecommitdiffstats
path: root/yql/essentials/sql/v1/sql.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-02-18 14:49:48 +0300
committervvvv <[email protected]>2025-02-18 16:08:18 +0300
commit1213d16b7fd20d4255d2ebb709a1745efbfeb91b (patch)
treea1cd11d96b5abf0a0ec287c76c4f3cfe9b32a86e /yql/essentials/sql/v1/sql.cpp
parent408888e6801333da2d97af0b27a1c4da4448b9e0 (diff)
Introduced lexer & parser interfaces
commit_hash:fee365c90a176dd33a967cee20994b21d530080c
Diffstat (limited to 'yql/essentials/sql/v1/sql.cpp')
-rw-r--r--yql/essentials/sql/v1/sql.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/yql/essentials/sql/v1/sql.cpp b/yql/essentials/sql/v1/sql.cpp
index 2fc80a2fe8e..d8558b21ec7 100644
--- a/yql/essentials/sql/v1/sql.cpp
+++ b/yql/essentials/sql/v1/sql.cpp
@@ -277,8 +277,15 @@ bool SplitQueryToStatements(const TString& query, TVector<TString>& statements,
class TTranslator : public NSQLTranslation::ITranslator {
public:
+ TTranslator(const TLexers& lexers, const TParsers& parsers)
+ : Lexers_(lexers)
+ , Parsers_(parsers)
+ {
+ Y_UNUSED(Parsers_);
+ }
+
NSQLTranslation::ILexer::TPtr MakeLexer(const NSQLTranslation::TTranslationSettings& settings) final {
- return NSQLTranslationV1::MakeLexer(settings.AnsiLexer, settings.Antlr4Parser);
+ return NSQLTranslationV1::MakeLexer(Lexers_, settings.AnsiLexer, settings.Antlr4Parser);
}
NYql::TAstParseResult TextToAst(const TString& query, const NSQLTranslation::TTranslationSettings& settings,
@@ -302,10 +309,18 @@ public:
NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) final {
return SqlToAstStatements(query, settings, warningRules, stmtParseInfo);
}
+
+private:
+ const TLexers Lexers_;
+ const TParsers Parsers_;
};
NSQLTranslation::TTranslatorPtr MakeTranslator() {
- return MakeIntrusive<TTranslator>();
+ return MakeIntrusive<TTranslator>(MakeAllLexers(), MakeAllParsers());
+}
+
+NSQLTranslation::TTranslatorPtr MakeTranslator(const TLexers& lexers, const TParsers& parsers) {
+ return MakeIntrusive<TTranslator>(lexers, parsers);
}
} // namespace NSQLTranslationV1