diff options
author | vvvv <vvvv@yandex-team.com> | 2025-02-27 23:18:15 +0300 |
---|---|---|
committer | vvvv <vvvv@yandex-team.com> | 2025-02-27 23:34:50 +0300 |
commit | 042383afc665c770fae0a51b02fcd6671cc3bd35 (patch) | |
tree | 7f8f59a59a8787c40e2122b5db516f0290bcd0d9 /yql | |
parent | 3db2ee495441f7b48430a02787b86444108f65a9 (diff) | |
download | ydb-042383afc665c770fae0a51b02fcd6671cc3bd35.tar.gz |
refine Antlr deps
refine Antlr deps
commit_hash:71b99424edb283bf56be6e79c9c9a19d805ce2ce
Diffstat (limited to 'yql')
21 files changed, 84 insertions, 201 deletions
diff --git a/yql/essentials/public/fastcheck/parser.cpp b/yql/essentials/public/fastcheck/parser.cpp index 17fc18ba57..01f24a63b0 100644 --- a/yql/essentials/public/fastcheck/parser.cpp +++ b/yql/essentials/public/fastcheck/parser.cpp @@ -1,4 +1,5 @@ #include "check_runner.h" +#include <yql/essentials/ast/yql_ast.h> #include <yql/essentials/sql/v1/lexer/lexer.h> #include <yql/essentials/sql/v1/lexer/antlr4/lexer.h> #include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h> diff --git a/yql/essentials/sql/v1/antlr_token.h b/yql/essentials/sql/v1/antlr_token.h new file mode 100644 index 0000000000..329c21ea79 --- /dev/null +++ b/yql/essentials/sql/v1/antlr_token.h @@ -0,0 +1,16 @@ +#pragma once + +#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> +#include <yql/essentials/parser/proto_ast/gen/v1_antlr4/SQLv1Antlr4Lexer.h> + +#define ANTLR3_TOKEN(NAME) (SQLv1LexerTokens::TOKEN_##NAME << 16) +#define ANTLR4_TOKEN(NAME) ((SQLv1Antlr4Lexer::TOKEN_##NAME << 16) + 1) +#define IS_TOKEN(USE_ANTLR4, ID, NAME) (UnifiedToken(USE_ANTLR4, ID) == ANTLR3_TOKEN(NAME) || UnifiedToken(USE_ANTLR4, ID) == ANTLR4_TOKEN(NAME)) + +namespace NSQLTranslationV1 { + +inline ui32 UnifiedToken(bool useAntlr4, ui32 id) { + return useAntlr4 + (id << 16); +} + +} // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/context.cpp b/yql/essentials/sql/v1/context.cpp index 9aac807dbc..9790e931dc 100644 --- a/yql/essentials/sql/v1/context.cpp +++ b/yql/essentials/sql/v1/context.cpp @@ -81,13 +81,6 @@ THashMap<TStringBuf, TPragmaMaybeField> CTX_PRAGMA_MAYBE_FIELDS = { } // namespace -TContext::TContext(const NSQLTranslation::TTranslationSettings& settings, - const NSQLTranslation::TSQLHints& hints, - NYql::TIssues& issues, - const TString& query) - : TContext(MakeAllLexers(), MakeAllParsers(), settings, hints, issues, query) -{} - TContext::TContext(const TLexers& lexers, const TParsers& parsers, const NSQLTranslation::TTranslationSettings& settings, const NSQLTranslation::TSQLHints& hints, diff --git a/yql/essentials/sql/v1/context.h b/yql/essentials/sql/v1/context.h index 7c49529a78..7697f78d63 100644 --- a/yql/essentials/sql/v1/context.h +++ b/yql/essentials/sql/v1/context.h @@ -18,10 +18,6 @@ #include <util/generic/deque.h> #include <util/generic/vector.h> -#define ANTLR3_TOKEN(NAME) SQLv1LexerTokens::TOKEN_##NAME << 16 -#define ANTLR4_TOKEN(NAME) (SQLv1Antlr4Lexer::TOKEN_##NAME << 16) + 1 -#define IS_TOKEN(ID, NAME) (UnifiedToken(ID) == ANTLR3_TOKEN(NAME) || UnifiedToken(ID) == ANTLR4_TOKEN(NAME)) - namespace NSQLTranslationV1 { inline bool IsAnonymousName(const TString& name) { return name == "$_"; @@ -92,12 +88,6 @@ namespace NSQLTranslationV1 { class TContext { public: - //FIXME remove - TContext(const NSQLTranslation::TTranslationSettings& settings, - const NSQLTranslation::TSQLHints& hints, - NYql::TIssues& issues, - const TString& query = {}); - TContext(const TLexers& lexers, const TParsers& parsers, const NSQLTranslation::TTranslationSettings& settings, @@ -446,10 +436,6 @@ namespace NSQLTranslationV1 { return Ctx.Token(token); } - ui32 UnifiedToken(ui32 id) const { - return Ctx.Settings.Antlr4Parser + (id << 16); - } - TString Identifier(const NSQLv1Generated::TToken& token) { return IdContent(Ctx, Token(token)); } diff --git a/yql/essentials/sql/v1/format/sql_format.cpp b/yql/essentials/sql/v1/format/sql_format.cpp index cfb6fcde71..9bdcde0f49 100644 --- a/yql/essentials/sql/v1/format/sql_format.cpp +++ b/yql/essentials/sql/v1/format/sql_format.cpp @@ -3223,10 +3223,6 @@ ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslationV1::TLexers& lexers, return ISqlFormatter::TPtr(new TSqlFormatter(lexers, parsers, settings)); } -ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslation::TTranslationSettings& settings) { - return MakeSqlFormatter(NSQLTranslationV1::MakeAllLexers(), NSQLTranslationV1::MakeAllParsers(), settings); -} - TString MutateQuery(const NSQLTranslationV1::TLexers& lexers, const TString& query, const NSQLTranslation::TTranslationSettings& settings) { auto parsedSettings = settings; diff --git a/yql/essentials/sql/v1/format/sql_format.h b/yql/essentials/sql/v1/format/sql_format.h index 3233f2031b..55c34a462d 100644 --- a/yql/essentials/sql/v1/format/sql_format.h +++ b/yql/essentials/sql/v1/format/sql_format.h @@ -25,9 +25,6 @@ public: virtual ~ISqlFormatter() = default; }; -//FIXME remove -ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslation::TTranslationSettings& settings = {}); - ISqlFormatter::TPtr MakeSqlFormatter(const NSQLTranslationV1::TLexers& lexers, const NSQLTranslationV1::TParsers& parsers, const NSQLTranslation::TTranslationSettings& settings = {}); diff --git a/yql/essentials/sql/v1/lexer/lexer.cpp b/yql/essentials/sql/v1/lexer/lexer.cpp index 9a45971dbc..8c94fff7e1 100644 --- a/yql/essentials/sql/v1/lexer/lexer.cpp +++ b/yql/essentials/sql/v1/lexer/lexer.cpp @@ -18,15 +18,6 @@ namespace NSQLTranslationV1 { -TLexers MakeAllLexers() { - return TLexers { - .Antlr3 = MakeAntlr3LexerFactory(), - .Antlr3Ansi = MakeAntlr3AnsiLexerFactory(), - .Antlr4 = MakeAntlr4LexerFactory(), - .Antlr4Ansi = MakeAntlr4AnsiLexerFactory() - }; -} - namespace { #if defined(_tsan_enabled_) @@ -85,10 +76,6 @@ private: } // namespace -NSQLTranslation::ILexer::TPtr MakeLexer(bool ansi, bool antlr4) { - return NSQLTranslation::ILexer::TPtr(new TV1Lexer(MakeAllLexers(), ansi, antlr4)); -} - NSQLTranslation::ILexer::TPtr MakeLexer(const TLexers& lexers, bool ansi, bool antlr4) { return NSQLTranslation::ILexer::TPtr(new TV1Lexer(lexers, ansi, antlr4)); } diff --git a/yql/essentials/sql/v1/lexer/lexer.h b/yql/essentials/sql/v1/lexer/lexer.h index 0e94cb10bf..2a3af96055 100644 --- a/yql/essentials/sql/v1/lexer/lexer.h +++ b/yql/essentials/sql/v1/lexer/lexer.h @@ -11,12 +11,6 @@ struct TLexers { NSQLTranslation::TLexerFactoryPtr Antlr4Ansi; }; -//FIXME remove -TLexers MakeAllLexers(); - -//FIXME remove -NSQLTranslation::ILexer::TPtr MakeLexer(bool ansi, bool antlr4); - NSQLTranslation::ILexer::TPtr MakeLexer(const TLexers& lexers, bool ansi, bool antlr4); // "Probably" because YQL keyword can be an identifier diff --git a/yql/essentials/sql/v1/lexer/ya.make b/yql/essentials/sql/v1/lexer/ya.make index f32e79a472..8a3f00d36e 100644 --- a/yql/essentials/sql/v1/lexer/ya.make +++ b/yql/essentials/sql/v1/lexer/ya.make @@ -3,10 +3,6 @@ LIBRARY() PEERDIR( yql/essentials/core/issue/protos yql/essentials/sql/settings - 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 ) SRCS( diff --git a/yql/essentials/sql/v1/proto_parser/proto_parser.cpp b/yql/essentials/sql/v1/proto_parser/proto_parser.cpp index 7b22ae11e5..5651345215 100644 --- a/yql/essentials/sql/v1/proto_parser/proto_parser.cpp +++ b/yql/essentials/sql/v1/proto_parser/proto_parser.cpp @@ -100,25 +100,4 @@ google::protobuf::Message* SqlAST(const TParsers& parsers, const TString& query, } } -google::protobuf::Message* SqlAST(const TString& query, const TString& queryName, - NYql::TIssues& err, size_t maxErrors, bool ansiLexer, bool antlr4Parser, bool testAntlr4, google::protobuf::Arena* arena) { - Y_UNUSED(testAntlr4); - return SqlAST(MakeAllParsers(), query, queryName, err, maxErrors, ansiLexer, antlr4Parser, arena); -} - -google::protobuf::Message* SqlAST(const TString& query, const TString& queryName, - NProtoAST::IErrorCollector& err, bool ansiLexer, bool antlr4Parser, bool testAntlr4, google::protobuf::Arena* arena) { - Y_UNUSED(testAntlr4); - return SqlAST(MakeAllParsers(), query, queryName, err, ansiLexer, antlr4Parser, arena); -} - -TParsers MakeAllParsers() { - return TParsers { - .Antlr3 = MakeAntlr3ParserFactory(), - .Antlr3Ansi = MakeAntlr3AnsiParserFactory(), - .Antlr4 = MakeAntlr4ParserFactory(), - .Antlr4Ansi = MakeAntlr4AnsiParserFactory() - }; -} - } // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/proto_parser/proto_parser.h b/yql/essentials/sql/v1/proto_parser/proto_parser.h index 6e9ba07cac..b2002d875b 100644 --- a/yql/essentials/sql/v1/proto_parser/proto_parser.h +++ b/yql/essentials/sql/v1/proto_parser/proto_parser.h @@ -1,6 +1,5 @@ #pragma once -#include <yql/essentials/ast/yql_ast.h> #include <yql/essentials/parser/proto_ast/common.h> #include <yql/essentials/public/issue/yql_warning.h> #include <yql/essentials/public/issue/yql_issue_manager.h> @@ -21,15 +20,6 @@ namespace NSQLTranslationV1 { NSQLTranslation::TParserFactoryPtr Antlr4Ansi; }; - //FIXME remove - TParsers MakeAllParsers(); - - //FIXME remove - google::protobuf::Message* SqlAST(const TString& query, const TString& queryName, - NYql::TIssues& err, size_t maxErrors, bool ansiLexer, bool antlr4Parser, bool testAntlr4, google::protobuf::Arena* arena); - google::protobuf::Message* SqlAST(const TString& query, const TString& queryName, - NProtoAST::IErrorCollector& err, bool ansiLexer, bool antlr4Parser, bool testAntlr4, google::protobuf::Arena* arena); - google::protobuf::Message* SqlAST(const TParsers& parsers, const TString& query, const TString& queryName, NYql::TIssues& err, size_t maxErrors, bool ansiLexer, bool antlr4Parser, google::protobuf::Arena* arena); google::protobuf::Message* SqlAST(const TParsers& parsers, const TString& query, const TString& queryName, diff --git a/yql/essentials/sql/v1/proto_parser/ya.make b/yql/essentials/sql/v1/proto_parser/ya.make index 1ef29d39ca..d87741f8a9 100644 --- a/yql/essentials/sql/v1/proto_parser/ya.make +++ b/yql/essentials/sql/v1/proto_parser/ya.make @@ -2,14 +2,7 @@ LIBRARY() PEERDIR( yql/essentials/utils - yql/essentials/ast - yql/essentials/parser/proto_ast/collect_issues - - yql/essentials/sql/v1/proto_parser/antlr3 - yql/essentials/sql/v1/proto_parser/antlr3_ansi - yql/essentials/sql/v1/proto_parser/antlr4 - yql/essentials/sql/v1/proto_parser/antlr4_ansi ) SRCS( diff --git a/yql/essentials/sql/v1/sql.cpp b/yql/essentials/sql/v1/sql.cpp index e4c82a0744..7201c4b069 100644 --- a/yql/essentials/sql/v1/sql.cpp +++ b/yql/essentials/sql/v1/sql.cpp @@ -89,14 +89,6 @@ NYql::TAstParseResult SqlASTToYql(const TLexers& lexers, const TParsers& parsers return res; } -NYql::TAstParseResult SqlASTToYql(const TString& query, - const google::protobuf::Message& protoAst, - const NSQLTranslation::TSQLHints& hints, - const NSQLTranslation::TTranslationSettings& settings) -{ - return SqlASTToYql(MakeAllLexers(), MakeAllParsers(), query, protoAst, hints, settings); -} - NYql::TAstParseResult SqlToYql(const TLexers& lexers, const TParsers& parsers, const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules) { TAstParseResult res; @@ -126,10 +118,6 @@ NYql::TAstParseResult SqlToYql(const TLexers& lexers, const TParsers& parsers, c return res; } -NYql::TAstParseResult SqlToYql(const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules) { - return SqlToYql(MakeAllLexers(), MakeAllParsers(), query, settings, warningRules); -} - bool NeedUseForAllStatements(const TRule_sql_stmt_core::AltCase& subquery) { switch (subquery) { case TRule_sql_stmt_core::kAltSqlStmtCore1: // pragma @@ -264,10 +252,6 @@ TVector<NYql::TAstParseResult> SqlToAstStatements(const TLexers& lexers, const T return result; } -TVector<NYql::TAstParseResult> SqlToAstStatements(const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo) { - return SqlToAstStatements(MakeAllLexers(), MakeAllParsers(), query, settings, warningRules, stmtParseInfo); -} - bool SplitQueryToStatements(const TLexers& lexers, const TParsers& parsers, const TString& query, TVector<TString>& statements, NYql::TIssues& issues, const NSQLTranslation::TTranslationSettings& settings) { auto lexer = NSQLTranslationV1::MakeLexer(lexers, settings.AnsiLexer, settings.Antlr4Parser); @@ -292,11 +276,6 @@ bool SplitQueryToStatements(const TLexers& lexers, const TParsers& parsers, cons return true; } -bool SplitQueryToStatements(const TString& query, TVector<TString>& statements, NYql::TIssues& issues, - const NSQLTranslation::TTranslationSettings& settings) { - return SplitQueryToStatements(MakeAllLexers(), MakeAllParsers(), query, statements, issues, settings); -} - class TTranslator : public NSQLTranslation::ITranslator { public: TTranslator(const TLexers& lexers, const TParsers& parsers) @@ -335,10 +314,6 @@ private: const TParsers Parsers_; }; -NSQLTranslation::TTranslatorPtr MakeTranslator() { - return MakeIntrusive<TTranslator>(MakeAllLexers(), MakeAllParsers()); -} - NSQLTranslation::TTranslatorPtr MakeTranslator(const TLexers& lexers, const TParsers& parsers) { return MakeIntrusive<TTranslator>(lexers, parsers); } diff --git a/yql/essentials/sql/v1/sql.h b/yql/essentials/sql/v1/sql.h index 5ded2321f3..7693d75915 100644 --- a/yql/essentials/sql/v1/sql.h +++ b/yql/essentials/sql/v1/sql.h @@ -20,27 +20,16 @@ namespace NSQLTranslation { namespace NSQLTranslationV1 { - //FIXME remove - NYql::TAstParseResult SqlToYql(const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules = nullptr); NYql::TAstParseResult SqlToYql(const TLexers& lexers, const TParsers& parsers, const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules = nullptr); - //FIXME remove - NYql::TAstParseResult SqlASTToYql(const TString& query, const google::protobuf::Message& protoAst, const NSQLTranslation::TSQLHints& hints, const NSQLTranslation::TTranslationSettings& settings); NYql::TAstParseResult SqlASTToYql(const TLexers& lexers, const TParsers& parsers, const TString& query, const google::protobuf::Message& protoAst, const NSQLTranslation::TSQLHints& hints, const NSQLTranslation::TTranslationSettings& settings); - //FIXME remove - TVector<NYql::TAstParseResult> SqlToAstStatements(const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo = nullptr); TVector<NYql::TAstParseResult> SqlToAstStatements(const TLexers& lexers, const TParsers& parsers, const TString& query, const NSQLTranslation::TTranslationSettings& settings, NYql::TWarningRules* warningRules, TVector<NYql::TStmtParseInfo>* stmtParseInfo = nullptr); bool NeedUseForAllStatements(const NSQLv1Generated::TRule_sql_stmt_core::AltCase& subquery); - //FIXME remove - bool SplitQueryToStatements(const TString& query, TVector<TString>& statements, NYql::TIssues& issues, - const NSQLTranslation::TTranslationSettings& settings); bool SplitQueryToStatements(const TLexers& lexers, const TParsers& parsers, const TString& query, TVector<TString>& statements, NYql::TIssues& issues, const NSQLTranslation::TTranslationSettings& settings); - NSQLTranslation::TTranslatorPtr MakeTranslator(); - NSQLTranslation::TTranslatorPtr MakeTranslator(const TLexers& lexers, const TParsers& parsers); } // namespace NSQLTranslationV1 diff --git a/yql/essentials/sql/v1/sql_call_expr.cpp b/yql/essentials/sql/v1/sql_call_expr.cpp index f279e7db77..1eb4edd10a 100644 --- a/yql/essentials/sql/v1/sql_call_expr.cpp +++ b/yql/essentials/sql/v1/sql_call_expr.cpp @@ -1,8 +1,6 @@ #include "sql_call_expr.h" #include "sql_expression.h" -#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> - #include <yql/essentials/minikql/mkql_program_builder.h> namespace NSQLTranslationV1 { diff --git a/yql/essentials/sql/v1/sql_expression.cpp b/yql/essentials/sql/v1/sql_expression.cpp index 9a92a7abc5..3eb1904cc5 100644 --- a/yql/essentials/sql/v1/sql_expression.cpp +++ b/yql/essentials/sql/v1/sql_expression.cpp @@ -2,12 +2,11 @@ #include "sql_call_expr.h" #include "sql_select.h" #include "sql_values.h" -#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> -#include <yql/essentials/parser/proto_ast/gen/v1_antlr4/SQLv1Antlr4Lexer.h> #include <yql/essentials/utils/utf8.h> #include <util/charset/wide.h> #include <util/string/ascii.h> #include <util/string/hex.h> +#include "antlr_token.h" namespace NSQLTranslationV1 { @@ -1661,13 +1660,13 @@ TNodePtr TSqlExpression::SubExpr(const TRule_con_subexpr& node, const TTrailingQ Token(token); TPosition pos(Ctx.Pos()); auto tokenId = token.GetId(); - if (IS_TOKEN(tokenId, NOT)) { + if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, NOT)) { opName = "Not"; - } else if (IS_TOKEN(tokenId, PLUS)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PLUS)) { opName = "Plus"; - } else if (IS_TOKEN(tokenId, MINUS)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, MINUS)) { opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMinus" : "Minus"; - } else if (IS_TOKEN(tokenId, TILDA)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, TILDA)) { opName = "BitNot"; } else { Ctx.IncrementMonCounter("sql_errors", "UnsupportedUnaryOperation"); @@ -1939,7 +1938,7 @@ TNodePtr TSqlExpression::SubExpr(const TRule_xor_subexpr& node, const TTrailingQ } case TRule_cond_expr::kAltCondExpr4: { auto alt = cond.GetAlt_cond_expr4(); - const bool symmetric = alt.HasBlock3() && IS_TOKEN(alt.GetBlock3().GetToken1().GetId(), SYMMETRIC); + const bool symmetric = alt.HasBlock3() && IS_TOKEN(Ctx.Settings.Antlr4Parser, alt.GetBlock3().GetToken1().GetId(), SYMMETRIC); const bool negation = alt.HasBlock1(); TNodePtr left = SubExpr(alt.GetRule_eq_subexpr4(), {}); TNodePtr right = SubExpr(alt.GetRule_eq_subexpr6(), tail); @@ -2065,28 +2064,28 @@ TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter be TPosition pos(Ctx.Pos()); TString opName; auto tokenId = begin->GetToken1().GetId(); - if (IS_TOKEN(tokenId, LESS)) { + if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, LESS)) { opName = "<"; Ctx.IncrementMonCounter("sql_binary_operations", "Less"); - } else if (IS_TOKEN(tokenId, LESS_OR_EQ)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, LESS_OR_EQ)) { opName = "<="; Ctx.IncrementMonCounter("sql_binary_operations", "LessOrEq"); - } else if (IS_TOKEN(tokenId, GREATER)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, GREATER)) { opName = ">"; Ctx.IncrementMonCounter("sql_binary_operations", "Greater"); - } else if (IS_TOKEN(tokenId, GREATER_OR_EQ)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, GREATER_OR_EQ)) { opName = ">="; Ctx.IncrementMonCounter("sql_binary_operations", "GreaterOrEq"); - } else if (IS_TOKEN(tokenId, PLUS)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PLUS)) { opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedAdd" : "+MayWarn"; Ctx.IncrementMonCounter("sql_binary_operations", "Plus"); - } else if (IS_TOKEN(tokenId, MINUS)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, MINUS)) { opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedSub" : "-MayWarn"; Ctx.IncrementMonCounter("sql_binary_operations", "Minus"); - } else if (IS_TOKEN(tokenId, ASTERISK)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ASTERISK)) { opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMul" : "*MayWarn"; Ctx.IncrementMonCounter("sql_binary_operations", "Multiply"); - } else if (IS_TOKEN(tokenId, SLASH)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, SLASH)) { opName = "/MayWarn"; Ctx.IncrementMonCounter("sql_binary_operations", "Divide"); if (!Ctx.Scoped->PragmaClassicDivision && partialResult) { @@ -2094,7 +2093,7 @@ TNodePtr TSqlExpression::BinOpList(const TNode& node, TGetNode getNode, TIter be } else if (Ctx.Scoped->PragmaCheckedOps) { opName = "CheckedDiv"; } - } else if (IS_TOKEN(tokenId, PERCENT)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PERCENT)) { opName = Ctx.Scoped->PragmaCheckedOps ? "CheckedMod" : "%MayWarn"; Ctx.IncrementMonCounter("sql_binary_operations", "Mod"); } else { @@ -2121,7 +2120,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNo case TRule_neq_subexpr_TBlock2_TBlock1::kAlt1: { Token(begin->GetBlock1().GetAlt1().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, SHIFT_LEFT)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, SHIFT_LEFT)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2137,7 +2136,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNo case TRule_neq_subexpr_TBlock2_TBlock1::kAlt3: { Token(begin->GetBlock1().GetAlt3().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, ROT_LEFT)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ROT_LEFT)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2153,7 +2152,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNo case TRule_neq_subexpr_TBlock2_TBlock1::kAlt5: { Token(begin->GetBlock1().GetAlt5().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt5().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, AMPERSAND)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, AMPERSAND)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2164,7 +2163,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNo case TRule_neq_subexpr_TBlock2_TBlock1::kAlt6: { Token(begin->GetBlock1().GetAlt6().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt6().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, PIPE)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, PIPE)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2175,7 +2174,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_bit_subexpr& node, TGetNode getNo case TRule_neq_subexpr_TBlock2_TBlock1::kAlt7: { Token(begin->GetBlock1().GetAlt7().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt7().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, CARET)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, CARET)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2205,7 +2204,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNod case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt1: { Token(begin->GetBlock1().GetAlt1().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt1().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, EQUALS)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, EQUALS)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2216,7 +2215,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNod case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt2: { Token(begin->GetBlock1().GetAlt2().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt2().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, EQUALS2)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, EQUALS2)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2227,7 +2226,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNod case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt3: { Token(begin->GetBlock1().GetAlt3().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt3().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, NOT_EQUALS)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, NOT_EQUALS)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } @@ -2238,7 +2237,7 @@ TNodePtr TSqlExpression::BinOpList(const TRule_eq_subexpr& node, TGetNode getNod case TRule_cond_expr::TAlt5::TBlock1::TBlock1::kAlt4: { Token(begin->GetBlock1().GetAlt4().GetToken1()); auto tokenId = begin->GetBlock1().GetAlt4().GetToken1().GetId(); - if (!IS_TOKEN(tokenId, NOT_EQUALS2)) { + if (!IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, NOT_EQUALS2)) { Error() << "Unsupported binary operation token: " << tokenId; return {}; } diff --git a/yql/essentials/sql/v1/sql_into_tables.cpp b/yql/essentials/sql/v1/sql_into_tables.cpp index ac9ce53061..77498af54a 100644 --- a/yql/essentials/sql/v1/sql_into_tables.cpp +++ b/yql/essentials/sql/v1/sql_into_tables.cpp @@ -7,8 +7,6 @@ using namespace NYql; namespace NSQLTranslationV1 { -using NALPDefault::SQLv1LexerTokens; - using namespace NSQLv1Generated; TNodePtr TSqlIntoTable::Build(const TRule_into_table_stmt& node) { diff --git a/yql/essentials/sql/v1/sql_into_tables.h b/yql/essentials/sql/v1/sql_into_tables.h index 0e40f5669b..c66bcfab95 100644 --- a/yql/essentials/sql/v1/sql_into_tables.h +++ b/yql/essentials/sql/v1/sql_into_tables.h @@ -1,7 +1,6 @@ #pragma once #include "sql_translation.h" -#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> namespace NSQLTranslationV1 { diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp index 34f137016a..6dc510bf57 100644 --- a/yql/essentials/sql/v1/sql_query.cpp +++ b/yql/essentials/sql/v1/sql_query.cpp @@ -4,8 +4,7 @@ #include "sql_into_tables.h" #include "sql_values.h" #include "node.h" -#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> -#include <yql/essentials/parser/proto_ast/gen/v1_antlr4/SQLv1Antlr4Lexer.h> +#include "antlr_token.h" #include <yql/essentials/sql/v1/object_processing.h> #include <yql/essentials/utils/yql_paths.h> #include <util/generic/scope.h> @@ -314,8 +313,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (rule.HasBlock2()) { // OR REPLACE replaceIfExists = true; Y_DEBUG_ABORT_UNLESS( - (IS_TOKEN(rule.GetBlock2().GetToken1().GetId(), OR) && - IS_TOKEN(rule.GetBlock2().GetToken2().GetId(), REPLACE)) + (IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock2().GetToken1().GetId(), OR) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock2().GetToken2().GetId(), REPLACE)) ); } @@ -324,7 +323,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& ETableType tableType = ETableType::Table; bool temporary = false; if (block.HasAlt2() && - IS_TOKEN(block.GetAlt2().GetToken1().GetId(), TABLESTORE) + IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt2().GetToken1().GetId(), TABLESTORE) ) { tableType = ETableType::TableStore; if (isCreateTableAs) { @@ -333,7 +332,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& return false; } } else if (block.HasAlt3() && - IS_TOKEN(block.GetAlt3().GetToken1().GetId(), EXTERNAL) + IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt3().GetToken1().GetId(), EXTERNAL) ) { tableType = ETableType::ExternalTable; if (isCreateTableAs) { @@ -341,8 +340,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& << "CREATE TABLE AS is not supported for EXTERNAL TABLE"; return false; } - } else if (block.HasAlt4() && IS_TOKEN(block.GetAlt4().GetToken1().GetId(), TEMP) || - block.HasAlt5() && IS_TOKEN(block.GetAlt5().GetToken1().GetId(), TEMPORARY)) { + } else if (block.HasAlt4() && IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt4().GetToken1().GetId(), TEMP) || + block.HasAlt5() && IS_TOKEN(Ctx.Settings.Antlr4Parser, block.GetAlt5().GetToken1().GetId(), TEMPORARY)) { temporary = true; } @@ -350,9 +349,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (rule.HasBlock4()) { // IF NOT EXISTS existingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(rule.GetBlock4().GetToken1().GetId(), IF) && - IS_TOKEN(rule.GetBlock4().GetToken2().GetId(), NOT) && - IS_TOKEN(rule.GetBlock4().GetToken3().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock4().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock4().GetToken2().GetId(), NOT) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock4().GetToken3().GetId(), EXISTS) ); } @@ -439,8 +438,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (rule.HasBlock3()) { // IF EXISTS missingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(rule.GetBlock3().GetToken1().GetId(), IF) && - IS_TOKEN(rule.GetBlock3().GetToken2().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock3().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetBlock3().GetToken2().GetId(), EXISTS) ); } @@ -531,7 +530,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& case TRule_sql_stmt_core::kAltSqlStmtCore15: { Ctx.BodyPart(); const auto& rule = core.GetAlt_sql_stmt_core15().GetRule_alter_table_stmt1(); - const bool isTablestore = IS_TOKEN(rule.GetToken2().GetId(), TABLESTORE); + const bool isTablestore = IS_TOKEN(Ctx.Settings.Antlr4Parser, rule.GetToken2().GetId(), TABLESTORE); TTableRef tr; if (!SimpleTableRefImpl(rule.GetRule_simple_table_ref3(), tr)) { return false; @@ -813,7 +812,7 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& switch (node.GetBlock4().Alt_case()) { case TRule_alter_group_stmt_TBlock4::kAlt1: { auto& addDropNode = node.GetBlock4().GetAlt1(); - const bool isDrop = IS_TOKEN(addDropNode.GetToken1().GetId(), DROP); + const bool isDrop = IS_TOKEN(Ctx.Settings.Antlr4Parser, addDropNode.GetToken1().GetId(), DROP); TVector<TDeferredAtom> roles; bool allowSystemRoles = false; roles.emplace_back(); @@ -862,13 +861,13 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& return false; } - const bool isUser = IS_TOKEN(node.GetToken2().GetId(), USER); + const bool isUser = IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetToken2().GetId(), USER); bool missingOk = false; if (node.HasBlock3()) { // IF EXISTS missingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock3().GetToken1().GetId(), IF) && - IS_TOKEN(node.GetBlock3().GetToken2().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS) ); } @@ -904,9 +903,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (node.HasBlock3()) { // IF NOT EXISTS existingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock3().GetToken1().GetId(), IF) && - IS_TOKEN(node.GetBlock3().GetToken2().GetId(), NOT) && - IS_TOKEN(node.GetBlock3().GetToken3().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), NOT) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken3().GetId(), EXISTS) ); } @@ -958,8 +957,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (node.HasBlock3()) { // IF EXISTS missingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock3().GetToken1().GetId(), IF) && - IS_TOKEN(node.GetBlock3().GetToken2().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS) ); } @@ -990,8 +989,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (node.HasBlock2()) { // OR REPLACE replaceIfExists = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock2().GetToken1().GetId(), OR) && - IS_TOKEN(node.GetBlock2().GetToken2().GetId(), REPLACE) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock2().GetToken1().GetId(), OR) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock2().GetToken2().GetId(), REPLACE) ); } @@ -999,9 +998,9 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (node.HasBlock6()) { // IF NOT EXISTS existingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock6().GetToken1().GetId(), IF) && - IS_TOKEN(node.GetBlock6().GetToken2().GetId(), NOT) && - IS_TOKEN(node.GetBlock6().GetToken3().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock6().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock6().GetToken2().GetId(), NOT) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock6().GetToken3().GetId(), EXISTS) ); } @@ -1057,8 +1056,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (node.HasBlock5()) { // IF EXISTS missingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock5().GetToken1().GetId(), IF) && - IS_TOKEN(node.GetBlock5().GetToken2().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock5().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock5().GetToken2().GetId(), EXISTS) ); } @@ -1814,8 +1813,8 @@ bool TSqlQuery::Statement(TVector<TNodePtr>& blocks, const TRule_sql_stmt_core& if (node.HasBlock3()) { // IF EXISTS params.MissingOk = true; Y_DEBUG_ABORT_UNLESS( - IS_TOKEN(node.GetBlock3().GetToken1().GetId(), IF) && - IS_TOKEN(node.GetBlock3().GetToken2().GetId(), EXISTS) + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken1().GetId(), IF) && + IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock3().GetToken2().GetId(), EXISTS) ); } diff --git a/yql/essentials/sql/v1/sql_translation.cpp b/yql/essentials/sql/v1/sql_translation.cpp index 3e6f76d1ff..71dfafb3c4 100644 --- a/yql/essentials/sql/v1/sql_translation.cpp +++ b/yql/essentials/sql/v1/sql_translation.cpp @@ -5,9 +5,8 @@ #include "sql_values.h" #include "sql_select.h" #include "source.h" +#include "antlr_token.h" -#include <yql/essentials/parser/proto_ast/gen/v1/SQLv1Lexer.h> -#include <yql/essentials/parser/proto_ast/gen/v1_antlr4/SQLv1Antlr4Lexer.h> #include <yql/essentials/sql/settings/partitioning.h> #include <yql/essentials/sql/v1/proto_parser/proto_parser.h> @@ -1710,9 +1709,9 @@ bool TSqlTranslation::CreateTableEntry(const TRule_create_table_entry& node, TCr auto& token = spec.GetBlock2().GetToken1(); auto tokenId = token.GetId(); - if (IS_TOKEN(tokenId, ASC)) { + if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ASC)) { return true; - } else if (IS_TOKEN(tokenId, DESC)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, DESC)) { desc = true; return true; } else { @@ -3745,9 +3744,9 @@ bool TSqlTranslation::SortSpecification(const TRule_sort_specification& node, TV const auto& token = node.GetBlock2().GetToken1(); Token(token); auto tokenId = token.GetId(); - if (IS_TOKEN(tokenId, ASC)) { + if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, ASC)) { Ctx.IncrementMonCounter("sql_features", "OrderByAsc"); - } else if (IS_TOKEN(tokenId, DESC)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, tokenId, DESC)) { asc = false; Ctx.IncrementMonCounter("sql_features", "OrderByDesc"); } else { @@ -3777,11 +3776,11 @@ bool TSqlTranslation::SortSpecificationList(const TRule_sort_specification_list& bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node) const { TPosition pos; - return node.HasBlock1() && IS_TOKEN(node.GetBlock1().GetToken1().GetId(), DISTINCT); + return node.HasBlock1() && IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock1().GetToken1().GetId(), DISTINCT); } bool TSqlTranslation::IsDistinctOptSet(const TRule_opt_set_quantifier& node, TPosition& distinctPos) const { - if (node.HasBlock1() && IS_TOKEN(node.GetBlock1().GetToken1().GetId(), DISTINCT)) { + if (node.HasBlock1() && IS_TOKEN(Ctx.Settings.Antlr4Parser, node.GetBlock1().GetToken1().GetId(), DISTINCT)) { distinctPos = Ctx.TokenPosition(node.GetBlock1().GetToken1()); return true; } @@ -3857,9 +3856,9 @@ void TSqlTranslation::LoginParameter(const TRule_login_option& loginOption, std: // login_option: LOGIN | NOLOGIN; auto token = loginOption.GetToken1().GetId(); - if (IS_TOKEN(token, LOGIN)) { + if (IS_TOKEN(Ctx.Settings.Antlr4Parser, token, LOGIN)) { canLogin = true; - } else if (IS_TOKEN(token, NOLOGIN)) { + } else if (IS_TOKEN(Ctx.Settings.Antlr4Parser, token, NOLOGIN)) { canLogin = false; } else { Y_ABORT("You should change implementation according to grammar changes"); diff --git a/yql/essentials/sql/v1/ya.make b/yql/essentials/sql/v1/ya.make index 5094d498c7..08fd499b3f 100644 --- a/yql/essentials/sql/v1/ya.make +++ b/yql/essentials/sql/v1/ya.make @@ -13,14 +13,13 @@ PEERDIR( yql/essentials/core/sql_types yql/essentials/parser/lexer_common yql/essentials/parser/proto_ast/collect_issues - yql/essentials/parser/proto_ast/gen/v1 - yql/essentials/parser/proto_ast/gen/v1_ansi yql/essentials/parser/proto_ast/gen/v1_proto_split - yql/essentials/parser/proto_ast/gen/v1_antlr4 - yql/essentials/parser/proto_ast/gen/v1_ansi_antlr4 yql/essentials/parser/pg_catalog yql/essentials/sql/v1/lexer yql/essentials/sql/v1/proto_parser + # for lexer tokens + yql/essentials/parser/proto_ast/gen/v1 + yql/essentials/parser/proto_ast/gen/v1_antlr4 ) SRCS( |