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/tools | |
parent | ca4b5f28703b0d06599c94f3eacc5d6c498c31d5 (diff) |
YQL-19594 Explicit lexers & parsers
commit_hash:6be543b7c5bff6ee474ee606c920197fb2569767
Diffstat (limited to 'yql/essentials/tools')
-rw-r--r-- | yql/essentials/tools/sql2yql/sql2yql.cpp | 12 | ||||
-rw-r--r-- | yql/essentials/tools/sql2yql/ya.make | 4 | ||||
-rw-r--r-- | yql/essentials/tools/sql_formatter/sql_formatter.cpp | 12 | ||||
-rw-r--r-- | yql/essentials/tools/sql_formatter/ya.make | 4 | ||||
-rw-r--r-- | yql/essentials/tools/yql_facade_run/ya.make | 4 | ||||
-rw-r--r-- | yql/essentials/tools/yql_facade_run/yql_facade_run.cpp | 12 |
6 files changed, 45 insertions, 3 deletions
diff --git a/yql/essentials/tools/sql2yql/sql2yql.cpp b/yql/essentials/tools/sql2yql/sql2yql.cpp index dea00f68fc7..c7d8f68f55b 100644 --- a/yql/essentials/tools/sql2yql/sql2yql.cpp +++ b/yql/essentials/tools/sql2yql/sql2yql.cpp @@ -6,6 +6,10 @@ #include <yql/essentials/sql/sql.h> #include <yql/essentials/sql/v1/sql.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/proto_parser/antlr4/proto_parser.h> +#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h> #include <yql/essentials/providers/common/provider/yql_provider_names.h> #include <yql/essentials/parser/pg_wrapper/interface/parser.h> @@ -100,7 +104,13 @@ bool TestFormat( TString frmQuery; NYql::TIssues issues; - auto formatter = NSQLFormat::MakeSqlFormatter(settings); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + lexers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiLexerFactory(); + NSQLTranslationV1::TParsers parsers; + parsers.Antlr4 = NSQLTranslationV1::MakeAntlr4ParserFactory(); + parsers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiParserFactory(); + auto formatter = NSQLFormat::MakeSqlFormatter(lexers, parsers, settings); if (!formatter->Format(query, frmQuery, issues)) { Cerr << "Failed to format query: " << issues.ToString() << Endl; return false; diff --git a/yql/essentials/tools/sql2yql/ya.make b/yql/essentials/tools/sql2yql/ya.make index 339169744af..8bd0b01492a 100644 --- a/yql/essentials/tools/sql2yql/ya.make +++ b/yql/essentials/tools/sql2yql/ya.make @@ -11,6 +11,10 @@ PEERDIR( yql/essentials/sql/v1 yql/essentials/sql/pg yql/essentials/sql/v1/format + yql/essentials/sql/v1/lexer/antlr4 + yql/essentials/sql/v1/lexer/antlr4_ansi + yql/essentials/sql/v1/proto_parser/antlr4 + yql/essentials/sql/v1/proto_parser/antlr4_ansi ) ADDINCL( diff --git a/yql/essentials/tools/sql_formatter/sql_formatter.cpp b/yql/essentials/tools/sql_formatter/sql_formatter.cpp index 1cbde29ab39..b5dc06db418 100644 --- a/yql/essentials/tools/sql_formatter/sql_formatter.cpp +++ b/yql/essentials/tools/sql_formatter/sql_formatter.cpp @@ -1,4 +1,8 @@ #include <yql/essentials/sql/v1/format/sql_format.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/proto_parser/antlr4/proto_parser.h> +#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h> #include <library/cpp/getopt/last_getopt.h> #include <google/protobuf/arena.h> @@ -43,7 +47,13 @@ int RunFormat(int argc, char* argv[]) { NSQLTranslation::TTranslationSettings settings; settings.Arena = &arena; settings.AnsiLexer = res.Has("ansi-lexer"); - auto formatter = NSQLFormat::MakeSqlFormatter(settings); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + lexers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiLexerFactory(); + NSQLTranslationV1::TParsers parsers; + parsers.Antlr4 = NSQLTranslationV1::MakeAntlr4ParserFactory(); + parsers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiParserFactory(); + auto formatter = NSQLFormat::MakeSqlFormatter(lexers, parsers, settings); TString frm_query; TString error; NYql::TIssues issues; diff --git a/yql/essentials/tools/sql_formatter/ya.make b/yql/essentials/tools/sql_formatter/ya.make index 082bf605ceb..a198f772c9b 100644 --- a/yql/essentials/tools/sql_formatter/ya.make +++ b/yql/essentials/tools/sql_formatter/ya.make @@ -4,6 +4,10 @@ PEERDIR( library/cpp/getopt contrib/libs/protobuf yql/essentials/sql/v1/format + yql/essentials/sql/v1/lexer/antlr4 + yql/essentials/sql/v1/lexer/antlr4_ansi + yql/essentials/sql/v1/proto_parser/antlr4 + yql/essentials/sql/v1/proto_parser/antlr4_ansi ) SRCS( diff --git a/yql/essentials/tools/yql_facade_run/ya.make b/yql/essentials/tools/yql_facade_run/ya.make index f434c449fb9..d08df659479 100644 --- a/yql/essentials/tools/yql_facade_run/ya.make +++ b/yql/essentials/tools/yql_facade_run/ya.make @@ -37,6 +37,10 @@ PEERDIR( yql/essentials/protos yql/essentials/sql/settings yql/essentials/sql/v1/format + yql/essentials/sql/v1/lexer/antlr4 + yql/essentials/sql/v1/lexer/antlr4_ansi + yql/essentials/sql/v1/proto_parser/antlr4 + yql/essentials/sql/v1/proto_parser/antlr4_ansi yql/essentials/sql/v1 yql/essentials/sql diff --git a/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp b/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp index ac09dda5002..ba0a10c3119 100644 --- a/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp +++ b/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp @@ -42,6 +42,10 @@ #include <yql/essentials/sql/v1/format/sql_format.h> #include <yql/essentials/sql/v1/sql.h> #include <yql/essentials/sql/sql.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/proto_parser/antlr4/proto_parser.h> +#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h> #include <library/cpp/resource/resource.h> #include <library/cpp/yson/node/node_io.h> @@ -706,7 +710,13 @@ int TFacadeRunner::DoRun(TProgramFactory& factory) { if (!fail && RunOptions_.TestSqlFormat && 1 == RunOptions_.SyntaxVersion) { TString formattedProgramText; NYql::TIssues issues; - auto formatter = NSQLFormat::MakeSqlFormatter(settings); + NSQLTranslationV1::TLexers lexers; + lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory(); + lexers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiLexerFactory(); + NSQLTranslationV1::TParsers parsers; + parsers.Antlr4 = NSQLTranslationV1::MakeAntlr4ParserFactory(); + parsers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiParserFactory(); + auto formatter = NSQLFormat::MakeSqlFormatter(lexers, parsers, settings); if (!formatter->Format(RunOptions_.ProgramText, formattedProgramText, issues)) { *RunOptions_.ErrStream << "Format failed" << Endl; issues.PrintTo(*RunOptions_.ErrStream); |