diff options
author | vvvv <[email protected]> | 2025-02-18 14:49:48 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-02-18 16:08:18 +0300 |
commit | 1213d16b7fd20d4255d2ebb709a1745efbfeb91b (patch) | |
tree | a1cd11d96b5abf0a0ec287c76c4f3cfe9b32a86e /yql/essentials/sql/v1/sql.cpp | |
parent | 408888e6801333da2d97af0b27a1c4da4448b9e0 (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.cpp | 19 |
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 |