From 0a2f8bca16ade352089a7de559c9d3ec2a6fb3bf Mon Sep 17 00:00:00 2001 From: xwei19 Date: Thu, 22 May 2025 16:06:03 +0000 Subject: [PATCH 01/55] Experiment on removing ANTLR4 --- components/core/CMakeLists.txt | 7 +- .../core/src/clp_s/search/kql/CMakeLists.txt | 27 +- .../search/kql/antlr_generated/Kql.interp | 47 + .../search/kql/antlr_generated/Kql.tokens | 19 + .../kql/antlr_generated/KqlBaseVisitor.cpp | 9 + .../kql/antlr_generated/KqlBaseVisitor.h | 71 ++ .../search/kql/antlr_generated/KqlLexer.cpp | 200 ++++ .../search/kql/antlr_generated/KqlLexer.h | 53 ++ .../kql/antlr_generated/KqlLexer.interp | 68 ++ .../kql/antlr_generated/KqlLexer.tokens | 19 + .../search/kql/antlr_generated/KqlParser.cpp | 901 ++++++++++++++++++ .../search/kql/antlr_generated/KqlParser.h | 252 +++++ .../search/kql/antlr_generated/KqlVisitor.cpp | 9 + .../search/kql/antlr_generated/KqlVisitor.h | 50 + .../kql/antlr_generated/antlr4-runtime.h | 168 ++++ .../core/src/clp_s/search/sql/CMakeLists.txt | 27 +- .../search/sql/antlr_generated/Sql.interp | 14 + .../search/sql/antlr_generated/Sql.tokens | 1 + .../sql/antlr_generated/SqlBaseVisitor.cpp | 9 + .../sql/antlr_generated/SqlBaseVisitor.h | 27 + .../search/sql/antlr_generated/SqlLexer.cpp | 141 +++ .../search/sql/antlr_generated/SqlLexer.h | 51 + .../sql/antlr_generated/SqlLexer.interp | 20 + .../sql/antlr_generated/SqlLexer.tokens | 1 + .../search/sql/antlr_generated/SqlParser.cpp | 170 ++++ .../search/sql/antlr_generated/SqlParser.h | 64 ++ .../search/sql/antlr_generated/SqlVisitor.cpp | 9 + .../search/sql/antlr_generated/SqlVisitor.h | 28 + .../sql/antlr_generated/antlr4-runtime.h | 168 ++++ 29 files changed, 2610 insertions(+), 20 deletions(-) create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/Kql.interp create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h create mode 100644 components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/Sql.interp create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h create mode 100644 components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index 98a33b16a0..7be363f662 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -120,12 +120,7 @@ endif() # Find and setup ANTLR Library # We build and link to the static library -find_package(ANTLR REQUIRED) -if (ANTLR_FOUND) - message(STATUS "Found ANTLR ${ANTLR_VERSION}") -else() - message(FATAL_ERROR "Could not find libraries for ANTLR ${ANTLR4_TAG}") -endif() +include(ExternalAntlr4Cpp) # Find and setup Boost Library if(CLP_USE_STATIC_LIBS) diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index 4b150c130e..ea612175f5 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,19 +1,32 @@ -ANTLR_TARGET( - KqlParser - Kql.g4 - LEXER PARSER VISITOR - PACKAGE kql +#ANTLR_TARGET( +# KqlParser +# Kql.g4 +# LEXER PARSER VISITOR +# PACKAGE kql +#) + +set(ANTLR_GENERATED_KQL_CODE_DIR antlr_generated) + +set(ANTLR_GENERATED_KQL_CODE + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlBaseVisitor.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlBaseVisitor.h + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlLexer.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlLexer.h + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlParser.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlParser.h + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlVisitor.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlVisitor.h ) add_library( kql ../antlr_common/ErrorListener.hpp - ${ANTLR_KqlParser_CXX_OUTPUTS} + ${ANTLR_GENERATED_KQL_CODE} kql.cpp kql.hpp ) target_compile_features(kql PRIVATE cxx_std_20) -target_include_directories(kql PRIVATE ${ANTLR_KqlParser_OUTPUT_DIR}) +target_include_directories(kql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR}) target_link_libraries( kql PRIVATE diff --git a/components/core/src/clp_s/search/kql/antlr_generated/Kql.interp b/components/core/src/clp_s/search/kql/antlr_generated/Kql.interp new file mode 100644 index 0000000000..9abeb35417 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/Kql.interp @@ -0,0 +1,47 @@ +token literal names: +null +':' +'{' +'}' +'(' +')' +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +AND +OR +NOT +DATE_LITERAL +LITERAL +QUOTED_STRING +UNQUOTED_LITERAL +RANGE_OPERATOR +SPACE + +rule names: +start +query +expression +column_range_expression +column_value_expression +column +value_expression +list_of_values + + +atn: +[4, 1, 14, 78, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 34, 8, 1, 1, 1, 1, 1, 1, 1, 5, 1, 39, 8, 1, 10, 1, 12, 1, 42, 9, 1, 1, 2, 1, 2, 1, 2, 3, 2, 47, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 53, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 60, 8, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 3, 7, 68, 8, 7, 1, 7, 5, 7, 71, 8, 7, 10, 7, 12, 7, 74, 9, 7, 1, 7, 1, 7, 1, 7, 0, 1, 2, 8, 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 1, 0, 6, 7, 1, 0, 6, 8, 80, 0, 16, 1, 0, 0, 0, 2, 33, 1, 0, 0, 0, 4, 46, 1, 0, 0, 0, 6, 48, 1, 0, 0, 0, 8, 54, 1, 0, 0, 0, 10, 61, 1, 0, 0, 0, 12, 63, 1, 0, 0, 0, 14, 65, 1, 0, 0, 0, 16, 17, 3, 2, 1, 0, 17, 18, 5, 0, 0, 1, 18, 1, 1, 0, 0, 0, 19, 20, 6, 1, -1, 0, 20, 21, 3, 10, 5, 0, 21, 22, 5, 1, 0, 0, 22, 23, 5, 2, 0, 0, 23, 24, 3, 2, 1, 0, 24, 25, 5, 3, 0, 0, 25, 34, 1, 0, 0, 0, 26, 27, 5, 4, 0, 0, 27, 28, 3, 2, 1, 0, 28, 29, 5, 5, 0, 0, 29, 34, 1, 0, 0, 0, 30, 31, 5, 8, 0, 0, 31, 34, 3, 2, 1, 3, 32, 34, 3, 4, 2, 0, 33, 19, 1, 0, 0, 0, 33, 26, 1, 0, 0, 0, 33, 30, 1, 0, 0, 0, 33, 32, 1, 0, 0, 0, 34, 40, 1, 0, 0, 0, 35, 36, 10, 2, 0, 0, 36, 37, 7, 0, 0, 0, 37, 39, 3, 2, 1, 3, 38, 35, 1, 0, 0, 0, 39, 42, 1, 0, 0, 0, 40, 38, 1, 0, 0, 0, 40, 41, 1, 0, 0, 0, 41, 3, 1, 0, 0, 0, 42, 40, 1, 0, 0, 0, 43, 47, 3, 6, 3, 0, 44, 47, 3, 8, 4, 0, 45, 47, 3, 12, 6, 0, 46, 43, 1, 0, 0, 0, 46, 44, 1, 0, 0, 0, 46, 45, 1, 0, 0, 0, 47, 5, 1, 0, 0, 0, 48, 49, 3, 10, 5, 0, 49, 52, 5, 13, 0, 0, 50, 53, 5, 9, 0, 0, 51, 53, 5, 10, 0, 0, 52, 50, 1, 0, 0, 0, 52, 51, 1, 0, 0, 0, 53, 7, 1, 0, 0, 0, 54, 55, 3, 10, 5, 0, 55, 59, 5, 1, 0, 0, 56, 60, 3, 14, 7, 0, 57, 60, 5, 9, 0, 0, 58, 60, 5, 10, 0, 0, 59, 56, 1, 0, 0, 0, 59, 57, 1, 0, 0, 0, 59, 58, 1, 0, 0, 0, 60, 9, 1, 0, 0, 0, 61, 62, 5, 10, 0, 0, 62, 11, 1, 0, 0, 0, 63, 64, 5, 10, 0, 0, 64, 13, 1, 0, 0, 0, 65, 67, 5, 4, 0, 0, 66, 68, 7, 1, 0, 0, 67, 66, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 72, 1, 0, 0, 0, 69, 71, 5, 10, 0, 0, 70, 69, 1, 0, 0, 0, 71, 74, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 75, 1, 0, 0, 0, 74, 72, 1, 0, 0, 0, 75, 76, 5, 5, 0, 0, 76, 15, 1, 0, 0, 0, 7, 33, 40, 46, 52, 59, 67, 72] \ No newline at end of file diff --git a/components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens b/components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens new file mode 100644 index 0000000000..108514b373 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens @@ -0,0 +1,19 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +AND=6 +OR=7 +NOT=8 +DATE_LITERAL=9 +LITERAL=10 +QUOTED_STRING=11 +UNQUOTED_LITERAL=12 +RANGE_OPERATOR=13 +SPACE=14 +':'=1 +'{'=2 +'}'=3 +'('=4 +')'=5 diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp new file mode 100644 index 0000000000..6616c91e48 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -0,0 +1,9 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + + +#include "KqlBaseVisitor.h" + + +using namespace kql; + diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h new file mode 100644 index 0000000000..3be6a7523b --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -0,0 +1,71 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" +#include "KqlVisitor.h" + + +namespace kql { + +/** + * This class provides an empty implementation of KqlVisitor, which can be + * extended to create a visitor which only needs to handle a subset of the available methods. + */ +class KqlBaseVisitor : public KqlVisitor { +public: + + virtual std::any visitStart(KqlParser::StartContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitExpr(KqlParser::ExprContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitNestedQuery(KqlParser::NestedQueryContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitNotQuery(KqlParser::NotQueryContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitSubQuery(KqlParser::SubQueryContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitOrAndQuery(KqlParser::OrAndQueryContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitExpression(KqlParser::ExpressionContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitColumn_range_expression(KqlParser::Column_range_expressionContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitColumn_value_expression(KqlParser::Column_value_expressionContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitColumn(KqlParser::ColumnContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitValue_expression(KqlParser::Value_expressionContext *ctx) override { + return visitChildren(ctx); + } + + virtual std::any visitList_of_values(KqlParser::List_of_valuesContext *ctx) override { + return visitChildren(ctx); + } + + +}; + +} // namespace kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp new file mode 100644 index 0000000000..303d9d80c2 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp @@ -0,0 +1,200 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + + +#include "KqlLexer.h" + + +using namespace antlr4; + +using namespace kql; + + +using namespace antlr4; + +namespace { + +struct KqlLexerStaticData final { + KqlLexerStaticData(std::vector ruleNames, + std::vector channelNames, + std::vector modeNames, + std::vector literalNames, + std::vector symbolicNames) + : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)), + modeNames(std::move(modeNames)), literalNames(std::move(literalNames)), + symbolicNames(std::move(symbolicNames)), + vocabulary(this->literalNames, this->symbolicNames) {} + + KqlLexerStaticData(const KqlLexerStaticData&) = delete; + KqlLexerStaticData(KqlLexerStaticData&&) = delete; + KqlLexerStaticData& operator=(const KqlLexerStaticData&) = delete; + KqlLexerStaticData& operator=(KqlLexerStaticData&&) = delete; + + std::vector decisionToDFA; + antlr4::atn::PredictionContextCache sharedContextCache; + const std::vector ruleNames; + const std::vector channelNames; + const std::vector modeNames; + const std::vector literalNames; + const std::vector symbolicNames; + const antlr4::dfa::Vocabulary vocabulary; + antlr4::atn::SerializedATNView serializedATN; + std::unique_ptr atn; +}; + +::antlr4::internal::OnceFlag kqllexerLexerOnceFlag; +#if ANTLR4_USE_THREAD_LOCAL_CACHE +static thread_local +#endif +KqlLexerStaticData *kqllexerLexerStaticData = nullptr; + +void kqllexerLexerInitialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + if (kqllexerLexerStaticData != nullptr) { + return; + } +#else + assert(kqllexerLexerStaticData == nullptr); +#endif + auto staticData = std::make_unique( + std::vector{ + "T__0", "T__1", "T__2", "T__3", "T__4", "AND", "OR", "NOT", "DATE_LITERAL", + "LITERAL", "QUOTED_STRING", "UNQUOTED_LITERAL", "QUOTED_CHARACTER", + "UNQUOTED_CHARACTER", "WILDCARD", "KEYWORD", "RANGE_OPERATOR", "ESCAPED_SPECIAL_CHARACTER", + "ESCAPED_SPACE", "SPECIAL_CHARACTER", "UNICODE", "HEXDIGIT", "SPACE" + }, + std::vector{ + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }, + std::vector{ + "DEFAULT_MODE" + }, + std::vector{ + "", "':'", "'{'", "'}'", "'('", "')'" + }, + std::vector{ + "", "", "", "", "", "", "AND", "OR", "NOT", "DATE_LITERAL", "LITERAL", + "QUOTED_STRING", "UNQUOTED_LITERAL", "RANGE_OPERATOR", "SPACE" + } + ); + static const int32_t serializedATNSegment[] = { + 4,0,14,163,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, + 6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14, + 7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21, + 7,21,2,22,7,22,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,5,1, + 5,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,4,8,77, + 8,8,11,8,12,8,78,1,8,1,8,1,8,4,8,84,8,8,11,8,12,8,85,3,8,88,8,8,1,8,1, + 8,1,9,1,9,3,9,94,8,9,1,10,1,10,5,10,98,8,10,10,10,12,10,101,9,10,1,10, + 1,10,1,11,4,11,106,8,11,11,11,12,11,107,1,12,1,12,1,12,1,12,3,12,114, + 8,12,1,13,1,13,1,13,1,13,1,13,3,13,121,8,13,1,14,1,14,1,15,1,15,1,15, + 3,15,128,8,15,1,16,1,16,1,16,1,16,1,16,3,16,135,8,16,1,17,1,17,1,17,1, + 18,1,18,1,18,1,18,1,18,1,18,3,18,146,8,18,1,19,1,19,1,20,1,20,1,20,1, + 20,1,20,1,20,1,20,1,20,1,21,1,21,1,22,1,22,1,22,1,22,0,0,23,1,1,3,2,5, + 3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,0,27,0,29,0,31,0,33, + 13,35,0,37,0,39,0,41,0,43,0,45,14,1,0,13,2,0,65,65,97,97,2,0,78,78,110, + 110,2,0,68,68,100,100,2,0,79,79,111,111,2,0,82,82,114,114,2,0,84,84,116, + 116,1,0,34,34,11,0,9,10,13,13,32,32,34,34,40,41,58,58,60,60,62,62,92, + 92,123,123,125,125,2,0,42,42,63,63,2,0,60,60,62,62,9,0,33,36,40,42,46, + 46,58,58,60,60,62,64,92,92,123,123,125,125,3,0,48,57,65,70,97,102,3,0, + 9,10,13,13,32,32,171,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0, + 0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19, + 1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,33,1,0,0,0,0,45,1,0,0,0,1,47,1,0, + 0,0,3,49,1,0,0,0,5,51,1,0,0,0,7,53,1,0,0,0,9,55,1,0,0,0,11,57,1,0,0,0, + 13,61,1,0,0,0,15,64,1,0,0,0,17,68,1,0,0,0,19,93,1,0,0,0,21,95,1,0,0,0, + 23,105,1,0,0,0,25,113,1,0,0,0,27,120,1,0,0,0,29,122,1,0,0,0,31,127,1, + 0,0,0,33,134,1,0,0,0,35,136,1,0,0,0,37,145,1,0,0,0,39,147,1,0,0,0,41, + 149,1,0,0,0,43,157,1,0,0,0,45,159,1,0,0,0,47,48,5,58,0,0,48,2,1,0,0,0, + 49,50,5,123,0,0,50,4,1,0,0,0,51,52,5,125,0,0,52,6,1,0,0,0,53,54,5,40, + 0,0,54,8,1,0,0,0,55,56,5,41,0,0,56,10,1,0,0,0,57,58,7,0,0,0,58,59,7,1, + 0,0,59,60,7,2,0,0,60,12,1,0,0,0,61,62,7,3,0,0,62,63,7,4,0,0,63,14,1,0, + 0,0,64,65,7,1,0,0,65,66,7,3,0,0,66,67,7,5,0,0,67,16,1,0,0,0,68,69,5,100, + 0,0,69,70,5,97,0,0,70,71,5,116,0,0,71,72,5,101,0,0,72,73,5,40,0,0,73, + 87,1,0,0,0,74,76,5,34,0,0,75,77,3,25,12,0,76,75,1,0,0,0,77,78,1,0,0,0, + 78,76,1,0,0,0,78,79,1,0,0,0,79,80,1,0,0,0,80,81,5,34,0,0,81,88,1,0,0, + 0,82,84,3,25,12,0,83,82,1,0,0,0,84,85,1,0,0,0,85,83,1,0,0,0,85,86,1,0, + 0,0,86,88,1,0,0,0,87,74,1,0,0,0,87,83,1,0,0,0,88,89,1,0,0,0,89,90,5,41, + 0,0,90,18,1,0,0,0,91,94,3,21,10,0,92,94,3,23,11,0,93,91,1,0,0,0,93,92, + 1,0,0,0,94,20,1,0,0,0,95,99,5,34,0,0,96,98,3,25,12,0,97,96,1,0,0,0,98, + 101,1,0,0,0,99,97,1,0,0,0,99,100,1,0,0,0,100,102,1,0,0,0,101,99,1,0,0, + 0,102,103,5,34,0,0,103,22,1,0,0,0,104,106,3,27,13,0,105,104,1,0,0,0,106, + 107,1,0,0,0,107,105,1,0,0,0,107,108,1,0,0,0,108,24,1,0,0,0,109,114,3, + 37,18,0,110,111,5,92,0,0,111,114,5,34,0,0,112,114,8,6,0,0,113,109,1,0, + 0,0,113,110,1,0,0,0,113,112,1,0,0,0,114,26,1,0,0,0,115,121,3,37,18,0, + 116,121,3,35,17,0,117,121,3,29,14,0,118,121,3,41,20,0,119,121,8,7,0,0, + 120,115,1,0,0,0,120,116,1,0,0,0,120,117,1,0,0,0,120,118,1,0,0,0,120,119, + 1,0,0,0,121,28,1,0,0,0,122,123,7,8,0,0,123,30,1,0,0,0,124,128,3,11,5, + 0,125,128,3,13,6,0,126,128,3,15,7,0,127,124,1,0,0,0,127,125,1,0,0,0,127, + 126,1,0,0,0,128,32,1,0,0,0,129,130,5,60,0,0,130,135,5,61,0,0,131,132, + 5,62,0,0,132,135,5,61,0,0,133,135,7,9,0,0,134,129,1,0,0,0,134,131,1,0, + 0,0,134,133,1,0,0,0,135,34,1,0,0,0,136,137,5,92,0,0,137,138,3,39,19,0, + 138,36,1,0,0,0,139,140,5,92,0,0,140,146,5,116,0,0,141,142,5,92,0,0,142, + 146,5,114,0,0,143,144,5,92,0,0,144,146,5,110,0,0,145,139,1,0,0,0,145, + 141,1,0,0,0,145,143,1,0,0,0,146,38,1,0,0,0,147,148,7,10,0,0,148,40,1, + 0,0,0,149,150,5,92,0,0,150,151,5,117,0,0,151,152,1,0,0,0,152,153,3,43, + 21,0,153,154,3,43,21,0,154,155,3,43,21,0,155,156,3,43,21,0,156,42,1,0, + 0,0,157,158,7,11,0,0,158,44,1,0,0,0,159,160,7,12,0,0,160,161,1,0,0,0, + 161,162,6,22,0,0,162,46,1,0,0,0,12,0,78,85,87,93,99,107,113,120,127,134, + 145,1,6,0,0 + }; + staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); + + antlr4::atn::ATNDeserializer deserializer; + staticData->atn = deserializer.deserialize(staticData->serializedATN); + + const size_t count = staticData->atn->getNumberOfDecisions(); + staticData->decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); + } + kqllexerLexerStaticData = staticData.release(); +} + +} + +KqlLexer::KqlLexer(CharStream *input) : Lexer(input) { + KqlLexer::initialize(); + _interpreter = new atn::LexerATNSimulator(this, *kqllexerLexerStaticData->atn, kqllexerLexerStaticData->decisionToDFA, kqllexerLexerStaticData->sharedContextCache); +} + +KqlLexer::~KqlLexer() { + delete _interpreter; +} + +std::string KqlLexer::getGrammarFileName() const { + return "Kql.g4"; +} + +const std::vector& KqlLexer::getRuleNames() const { + return kqllexerLexerStaticData->ruleNames; +} + +const std::vector& KqlLexer::getChannelNames() const { + return kqllexerLexerStaticData->channelNames; +} + +const std::vector& KqlLexer::getModeNames() const { + return kqllexerLexerStaticData->modeNames; +} + +const dfa::Vocabulary& KqlLexer::getVocabulary() const { + return kqllexerLexerStaticData->vocabulary; +} + +antlr4::atn::SerializedATNView KqlLexer::getSerializedATN() const { + return kqllexerLexerStaticData->serializedATN; +} + +const atn::ATN& KqlLexer::getATN() const { + return *kqllexerLexerStaticData->atn; +} + + + + +void KqlLexer::initialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + kqllexerLexerInitialize(); +#else + ::antlr4::internal::call_once(kqllexerLexerOnceFlag, kqllexerLexerInitialize); +#endif +} diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h new file mode 100644 index 0000000000..7d02ebba86 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h @@ -0,0 +1,53 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" + + +namespace kql { + + +class KqlLexer : public antlr4::Lexer { +public: + enum { + T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, AND = 6, OR = 7, NOT = 8, + DATE_LITERAL = 9, LITERAL = 10, QUOTED_STRING = 11, UNQUOTED_LITERAL = 12, + RANGE_OPERATOR = 13, SPACE = 14 + }; + + explicit KqlLexer(antlr4::CharStream *input); + + ~KqlLexer() override; + + + std::string getGrammarFileName() const override; + + const std::vector& getRuleNames() const override; + + const std::vector& getChannelNames() const override; + + const std::vector& getModeNames() const override; + + const antlr4::dfa::Vocabulary& getVocabulary() const override; + + antlr4::atn::SerializedATNView getSerializedATN() const override; + + const antlr4::atn::ATN& getATN() const override; + + // By default the static state used to implement the lexer is lazily initialized during the first + // call to the constructor. You can call this function if you wish to initialize the static state + // ahead of time. + static void initialize(); + +private: + + // Individual action functions triggered by action() above. + + // Individual semantic predicate functions triggered by sempred() above. + +}; + +} // namespace kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp new file mode 100644 index 0000000000..81a656c4ce --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp @@ -0,0 +1,68 @@ +token literal names: +null +':' +'{' +'}' +'(' +')' +null +null +null +null +null +null +null +null +null + +token symbolic names: +null +null +null +null +null +null +AND +OR +NOT +DATE_LITERAL +LITERAL +QUOTED_STRING +UNQUOTED_LITERAL +RANGE_OPERATOR +SPACE + +rule names: +T__0 +T__1 +T__2 +T__3 +T__4 +AND +OR +NOT +DATE_LITERAL +LITERAL +QUOTED_STRING +UNQUOTED_LITERAL +QUOTED_CHARACTER +UNQUOTED_CHARACTER +WILDCARD +KEYWORD +RANGE_OPERATOR +ESCAPED_SPECIAL_CHARACTER +ESCAPED_SPACE +SPECIAL_CHARACTER +UNICODE +HEXDIGIT +SPACE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 14, 163, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 4, 8, 77, 8, 8, 11, 8, 12, 8, 78, 1, 8, 1, 8, 1, 8, 4, 8, 84, 8, 8, 11, 8, 12, 8, 85, 3, 8, 88, 8, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 94, 8, 9, 1, 10, 1, 10, 5, 10, 98, 8, 10, 10, 10, 12, 10, 101, 9, 10, 1, 10, 1, 10, 1, 11, 4, 11, 106, 8, 11, 11, 11, 12, 11, 107, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 114, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 121, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 128, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 135, 8, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 146, 8, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 0, 0, 23, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 0, 27, 0, 29, 0, 31, 0, 33, 13, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 14, 1, 0, 13, 2, 0, 65, 65, 97, 97, 2, 0, 78, 78, 110, 110, 2, 0, 68, 68, 100, 100, 2, 0, 79, 79, 111, 111, 2, 0, 82, 82, 114, 114, 2, 0, 84, 84, 116, 116, 1, 0, 34, 34, 11, 0, 9, 10, 13, 13, 32, 32, 34, 34, 40, 41, 58, 58, 60, 60, 62, 62, 92, 92, 123, 123, 125, 125, 2, 0, 42, 42, 63, 63, 2, 0, 60, 60, 62, 62, 9, 0, 33, 36, 40, 42, 46, 46, 58, 58, 60, 60, 62, 64, 92, 92, 123, 123, 125, 125, 3, 0, 48, 57, 65, 70, 97, 102, 3, 0, 9, 10, 13, 13, 32, 32, 171, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 1, 47, 1, 0, 0, 0, 3, 49, 1, 0, 0, 0, 5, 51, 1, 0, 0, 0, 7, 53, 1, 0, 0, 0, 9, 55, 1, 0, 0, 0, 11, 57, 1, 0, 0, 0, 13, 61, 1, 0, 0, 0, 15, 64, 1, 0, 0, 0, 17, 68, 1, 0, 0, 0, 19, 93, 1, 0, 0, 0, 21, 95, 1, 0, 0, 0, 23, 105, 1, 0, 0, 0, 25, 113, 1, 0, 0, 0, 27, 120, 1, 0, 0, 0, 29, 122, 1, 0, 0, 0, 31, 127, 1, 0, 0, 0, 33, 134, 1, 0, 0, 0, 35, 136, 1, 0, 0, 0, 37, 145, 1, 0, 0, 0, 39, 147, 1, 0, 0, 0, 41, 149, 1, 0, 0, 0, 43, 157, 1, 0, 0, 0, 45, 159, 1, 0, 0, 0, 47, 48, 5, 58, 0, 0, 48, 2, 1, 0, 0, 0, 49, 50, 5, 123, 0, 0, 50, 4, 1, 0, 0, 0, 51, 52, 5, 125, 0, 0, 52, 6, 1, 0, 0, 0, 53, 54, 5, 40, 0, 0, 54, 8, 1, 0, 0, 0, 55, 56, 5, 41, 0, 0, 56, 10, 1, 0, 0, 0, 57, 58, 7, 0, 0, 0, 58, 59, 7, 1, 0, 0, 59, 60, 7, 2, 0, 0, 60, 12, 1, 0, 0, 0, 61, 62, 7, 3, 0, 0, 62, 63, 7, 4, 0, 0, 63, 14, 1, 0, 0, 0, 64, 65, 7, 1, 0, 0, 65, 66, 7, 3, 0, 0, 66, 67, 7, 5, 0, 0, 67, 16, 1, 0, 0, 0, 68, 69, 5, 100, 0, 0, 69, 70, 5, 97, 0, 0, 70, 71, 5, 116, 0, 0, 71, 72, 5, 101, 0, 0, 72, 73, 5, 40, 0, 0, 73, 87, 1, 0, 0, 0, 74, 76, 5, 34, 0, 0, 75, 77, 3, 25, 12, 0, 76, 75, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 76, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 5, 34, 0, 0, 81, 88, 1, 0, 0, 0, 82, 84, 3, 25, 12, 0, 83, 82, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 83, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 88, 1, 0, 0, 0, 87, 74, 1, 0, 0, 0, 87, 83, 1, 0, 0, 0, 88, 89, 1, 0, 0, 0, 89, 90, 5, 41, 0, 0, 90, 18, 1, 0, 0, 0, 91, 94, 3, 21, 10, 0, 92, 94, 3, 23, 11, 0, 93, 91, 1, 0, 0, 0, 93, 92, 1, 0, 0, 0, 94, 20, 1, 0, 0, 0, 95, 99, 5, 34, 0, 0, 96, 98, 3, 25, 12, 0, 97, 96, 1, 0, 0, 0, 98, 101, 1, 0, 0, 0, 99, 97, 1, 0, 0, 0, 99, 100, 1, 0, 0, 0, 100, 102, 1, 0, 0, 0, 101, 99, 1, 0, 0, 0, 102, 103, 5, 34, 0, 0, 103, 22, 1, 0, 0, 0, 104, 106, 3, 27, 13, 0, 105, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 105, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 24, 1, 0, 0, 0, 109, 114, 3, 37, 18, 0, 110, 111, 5, 92, 0, 0, 111, 114, 5, 34, 0, 0, 112, 114, 8, 6, 0, 0, 113, 109, 1, 0, 0, 0, 113, 110, 1, 0, 0, 0, 113, 112, 1, 0, 0, 0, 114, 26, 1, 0, 0, 0, 115, 121, 3, 37, 18, 0, 116, 121, 3, 35, 17, 0, 117, 121, 3, 29, 14, 0, 118, 121, 3, 41, 20, 0, 119, 121, 8, 7, 0, 0, 120, 115, 1, 0, 0, 0, 120, 116, 1, 0, 0, 0, 120, 117, 1, 0, 0, 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 28, 1, 0, 0, 0, 122, 123, 7, 8, 0, 0, 123, 30, 1, 0, 0, 0, 124, 128, 3, 11, 5, 0, 125, 128, 3, 13, 6, 0, 126, 128, 3, 15, 7, 0, 127, 124, 1, 0, 0, 0, 127, 125, 1, 0, 0, 0, 127, 126, 1, 0, 0, 0, 128, 32, 1, 0, 0, 0, 129, 130, 5, 60, 0, 0, 130, 135, 5, 61, 0, 0, 131, 132, 5, 62, 0, 0, 132, 135, 5, 61, 0, 0, 133, 135, 7, 9, 0, 0, 134, 129, 1, 0, 0, 0, 134, 131, 1, 0, 0, 0, 134, 133, 1, 0, 0, 0, 135, 34, 1, 0, 0, 0, 136, 137, 5, 92, 0, 0, 137, 138, 3, 39, 19, 0, 138, 36, 1, 0, 0, 0, 139, 140, 5, 92, 0, 0, 140, 146, 5, 116, 0, 0, 141, 142, 5, 92, 0, 0, 142, 146, 5, 114, 0, 0, 143, 144, 5, 92, 0, 0, 144, 146, 5, 110, 0, 0, 145, 139, 1, 0, 0, 0, 145, 141, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 146, 38, 1, 0, 0, 0, 147, 148, 7, 10, 0, 0, 148, 40, 1, 0, 0, 0, 149, 150, 5, 92, 0, 0, 150, 151, 5, 117, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 3, 43, 21, 0, 153, 154, 3, 43, 21, 0, 154, 155, 3, 43, 21, 0, 155, 156, 3, 43, 21, 0, 156, 42, 1, 0, 0, 0, 157, 158, 7, 11, 0, 0, 158, 44, 1, 0, 0, 0, 159, 160, 7, 12, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 6, 22, 0, 0, 162, 46, 1, 0, 0, 0, 12, 0, 78, 85, 87, 93, 99, 107, 113, 120, 127, 134, 145, 1, 6, 0, 0] \ No newline at end of file diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens new file mode 100644 index 0000000000..108514b373 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens @@ -0,0 +1,19 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +AND=6 +OR=7 +NOT=8 +DATE_LITERAL=9 +LITERAL=10 +QUOTED_STRING=11 +UNQUOTED_LITERAL=12 +RANGE_OPERATOR=13 +SPACE=14 +':'=1 +'{'=2 +'}'=3 +'('=4 +')'=5 diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp new file mode 100644 index 0000000000..0d34ead2a7 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp @@ -0,0 +1,901 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + + +#include "KqlVisitor.h" + +#include "KqlParser.h" + + +using namespace antlrcpp; +using namespace kql; + +using namespace antlr4; + +namespace { + +struct KqlParserStaticData final { + KqlParserStaticData(std::vector ruleNames, + std::vector literalNames, + std::vector symbolicNames) + : ruleNames(std::move(ruleNames)), literalNames(std::move(literalNames)), + symbolicNames(std::move(symbolicNames)), + vocabulary(this->literalNames, this->symbolicNames) {} + + KqlParserStaticData(const KqlParserStaticData&) = delete; + KqlParserStaticData(KqlParserStaticData&&) = delete; + KqlParserStaticData& operator=(const KqlParserStaticData&) = delete; + KqlParserStaticData& operator=(KqlParserStaticData&&) = delete; + + std::vector decisionToDFA; + antlr4::atn::PredictionContextCache sharedContextCache; + const std::vector ruleNames; + const std::vector literalNames; + const std::vector symbolicNames; + const antlr4::dfa::Vocabulary vocabulary; + antlr4::atn::SerializedATNView serializedATN; + std::unique_ptr atn; +}; + +::antlr4::internal::OnceFlag kqlParserOnceFlag; +#if ANTLR4_USE_THREAD_LOCAL_CACHE +static thread_local +#endif +KqlParserStaticData *kqlParserStaticData = nullptr; + +void kqlParserInitialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + if (kqlParserStaticData != nullptr) { + return; + } +#else + assert(kqlParserStaticData == nullptr); +#endif + auto staticData = std::make_unique( + std::vector{ + "start", "query", "expression", "column_range_expression", "column_value_expression", + "column", "value_expression", "list_of_values" + }, + std::vector{ + "", "':'", "'{'", "'}'", "'('", "')'" + }, + std::vector{ + "", "", "", "", "", "", "AND", "OR", "NOT", "DATE_LITERAL", "LITERAL", + "QUOTED_STRING", "UNQUOTED_LITERAL", "RANGE_OPERATOR", "SPACE" + } + ); + static const int32_t serializedATNSegment[] = { + 4,1,14,78,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7, + 7,7,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,3,1,34,8,1,1,1,1,1,1,1,5,1,39,8,1,10,1,12,1,42,9,1,1,2,1,2,1,2,3,2, + 47,8,2,1,3,1,3,1,3,1,3,3,3,53,8,3,1,4,1,4,1,4,1,4,1,4,3,4,60,8,4,1,5, + 1,5,1,6,1,6,1,7,1,7,3,7,68,8,7,1,7,5,7,71,8,7,10,7,12,7,74,9,7,1,7,1, + 7,1,7,0,1,2,8,0,2,4,6,8,10,12,14,0,2,1,0,6,7,1,0,6,8,80,0,16,1,0,0,0, + 2,33,1,0,0,0,4,46,1,0,0,0,6,48,1,0,0,0,8,54,1,0,0,0,10,61,1,0,0,0,12, + 63,1,0,0,0,14,65,1,0,0,0,16,17,3,2,1,0,17,18,5,0,0,1,18,1,1,0,0,0,19, + 20,6,1,-1,0,20,21,3,10,5,0,21,22,5,1,0,0,22,23,5,2,0,0,23,24,3,2,1,0, + 24,25,5,3,0,0,25,34,1,0,0,0,26,27,5,4,0,0,27,28,3,2,1,0,28,29,5,5,0,0, + 29,34,1,0,0,0,30,31,5,8,0,0,31,34,3,2,1,3,32,34,3,4,2,0,33,19,1,0,0,0, + 33,26,1,0,0,0,33,30,1,0,0,0,33,32,1,0,0,0,34,40,1,0,0,0,35,36,10,2,0, + 0,36,37,7,0,0,0,37,39,3,2,1,3,38,35,1,0,0,0,39,42,1,0,0,0,40,38,1,0,0, + 0,40,41,1,0,0,0,41,3,1,0,0,0,42,40,1,0,0,0,43,47,3,6,3,0,44,47,3,8,4, + 0,45,47,3,12,6,0,46,43,1,0,0,0,46,44,1,0,0,0,46,45,1,0,0,0,47,5,1,0,0, + 0,48,49,3,10,5,0,49,52,5,13,0,0,50,53,5,9,0,0,51,53,5,10,0,0,52,50,1, + 0,0,0,52,51,1,0,0,0,53,7,1,0,0,0,54,55,3,10,5,0,55,59,5,1,0,0,56,60,3, + 14,7,0,57,60,5,9,0,0,58,60,5,10,0,0,59,56,1,0,0,0,59,57,1,0,0,0,59,58, + 1,0,0,0,60,9,1,0,0,0,61,62,5,10,0,0,62,11,1,0,0,0,63,64,5,10,0,0,64,13, + 1,0,0,0,65,67,5,4,0,0,66,68,7,1,0,0,67,66,1,0,0,0,67,68,1,0,0,0,68,72, + 1,0,0,0,69,71,5,10,0,0,70,69,1,0,0,0,71,74,1,0,0,0,72,70,1,0,0,0,72,73, + 1,0,0,0,73,75,1,0,0,0,74,72,1,0,0,0,75,76,5,5,0,0,76,15,1,0,0,0,7,33, + 40,46,52,59,67,72 + }; + staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); + + antlr4::atn::ATNDeserializer deserializer; + staticData->atn = deserializer.deserialize(staticData->serializedATN); + + const size_t count = staticData->atn->getNumberOfDecisions(); + staticData->decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); + } + kqlParserStaticData = staticData.release(); +} + +} + +KqlParser::KqlParser(TokenStream *input) : KqlParser(input, antlr4::atn::ParserATNSimulatorOptions()) {} + +KqlParser::KqlParser(TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options) : Parser(input) { + KqlParser::initialize(); + _interpreter = new atn::ParserATNSimulator(this, *kqlParserStaticData->atn, kqlParserStaticData->decisionToDFA, kqlParserStaticData->sharedContextCache, options); +} + +KqlParser::~KqlParser() { + delete _interpreter; +} + +const atn::ATN& KqlParser::getATN() const { + return *kqlParserStaticData->atn; +} + +std::string KqlParser::getGrammarFileName() const { + return "Kql.g4"; +} + +const std::vector& KqlParser::getRuleNames() const { + return kqlParserStaticData->ruleNames; +} + +const dfa::Vocabulary& KqlParser::getVocabulary() const { + return kqlParserStaticData->vocabulary; +} + +antlr4::atn::SerializedATNView KqlParser::getSerializedATN() const { + return kqlParserStaticData->serializedATN; +} + + +//----------------- StartContext ------------------------------------------------------------------ + +KqlParser::StartContext::StartContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +KqlParser::QueryContext* KqlParser::StartContext::query() { + return getRuleContext(0); +} + +tree::TerminalNode* KqlParser::StartContext::EOF() { + return getToken(KqlParser::EOF, 0); +} + + +size_t KqlParser::StartContext::getRuleIndex() const { + return KqlParser::RuleStart; +} + + +std::any KqlParser::StartContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitStart(this); + else + return visitor->visitChildren(this); +} + +KqlParser::StartContext* KqlParser::start() { + StartContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 0, KqlParser::RuleStart); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(16); + query(0); + setState(17); + match(KqlParser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- QueryContext ------------------------------------------------------------------ + +KqlParser::QueryContext::QueryContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + + +size_t KqlParser::QueryContext::getRuleIndex() const { + return KqlParser::RuleQuery; +} + +void KqlParser::QueryContext::copyFrom(QueryContext *ctx) { + ParserRuleContext::copyFrom(ctx); +} + +//----------------- ExprContext ------------------------------------------------------------------ + +KqlParser::ExpressionContext* KqlParser::ExprContext::expression() { + return getRuleContext(0); +} + +KqlParser::ExprContext::ExprContext(QueryContext *ctx) { copyFrom(ctx); } + + +std::any KqlParser::ExprContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitExpr(this); + else + return visitor->visitChildren(this); +} +//----------------- NestedQueryContext ------------------------------------------------------------------ + +KqlParser::ColumnContext* KqlParser::NestedQueryContext::column() { + return getRuleContext(0); +} + +KqlParser::QueryContext* KqlParser::NestedQueryContext::query() { + return getRuleContext(0); +} + +KqlParser::NestedQueryContext::NestedQueryContext(QueryContext *ctx) { copyFrom(ctx); } + + +std::any KqlParser::NestedQueryContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitNestedQuery(this); + else + return visitor->visitChildren(this); +} +//----------------- NotQueryContext ------------------------------------------------------------------ + +tree::TerminalNode* KqlParser::NotQueryContext::NOT() { + return getToken(KqlParser::NOT, 0); +} + +KqlParser::QueryContext* KqlParser::NotQueryContext::query() { + return getRuleContext(0); +} + +KqlParser::NotQueryContext::NotQueryContext(QueryContext *ctx) { copyFrom(ctx); } + + +std::any KqlParser::NotQueryContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitNotQuery(this); + else + return visitor->visitChildren(this); +} +//----------------- SubQueryContext ------------------------------------------------------------------ + +KqlParser::QueryContext* KqlParser::SubQueryContext::query() { + return getRuleContext(0); +} + +KqlParser::SubQueryContext::SubQueryContext(QueryContext *ctx) { copyFrom(ctx); } + + +std::any KqlParser::SubQueryContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitSubQuery(this); + else + return visitor->visitChildren(this); +} +//----------------- OrAndQueryContext ------------------------------------------------------------------ + +std::vector KqlParser::OrAndQueryContext::query() { + return getRuleContexts(); +} + +KqlParser::QueryContext* KqlParser::OrAndQueryContext::query(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* KqlParser::OrAndQueryContext::OR() { + return getToken(KqlParser::OR, 0); +} + +tree::TerminalNode* KqlParser::OrAndQueryContext::AND() { + return getToken(KqlParser::AND, 0); +} + +KqlParser::OrAndQueryContext::OrAndQueryContext(QueryContext *ctx) { copyFrom(ctx); } + + +std::any KqlParser::OrAndQueryContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitOrAndQuery(this); + else + return visitor->visitChildren(this); +} + +KqlParser::QueryContext* KqlParser::query() { + return query(0); +} + +KqlParser::QueryContext* KqlParser::query(int precedence) { + ParserRuleContext *parentContext = _ctx; + size_t parentState = getState(); + KqlParser::QueryContext *_localctx = _tracker.createInstance(_ctx, parentState); + KqlParser::QueryContext *previousContext = _localctx; + (void)previousContext; // Silence compiler, in case the context is not used by generated code. + size_t startState = 2; + enterRecursionRule(_localctx, 2, KqlParser::RuleQuery, precedence); + + size_t _la = 0; + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + unrollRecursionContexts(parentContext); + }); + try { + size_t alt; + enterOuterAlt(_localctx, 1); + setState(33); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 0, _ctx)) { + case 1: { + _localctx = _tracker.createInstance(_localctx); + _ctx = _localctx; + previousContext = _localctx; + + setState(20); + antlrcpp::downCast(_localctx)->col = column(); + setState(21); + match(KqlParser::T__0); + setState(22); + match(KqlParser::T__1); + setState(23); + antlrcpp::downCast(_localctx)->q = query(0); + setState(24); + match(KqlParser::T__2); + break; + } + + case 2: { + _localctx = _tracker.createInstance(_localctx); + _ctx = _localctx; + previousContext = _localctx; + setState(26); + match(KqlParser::T__3); + setState(27); + antlrcpp::downCast(_localctx)->q = query(0); + setState(28); + match(KqlParser::T__4); + break; + } + + case 3: { + _localctx = _tracker.createInstance(_localctx); + _ctx = _localctx; + previousContext = _localctx; + setState(30); + match(KqlParser::NOT); + setState(31); + antlrcpp::downCast(_localctx)->q = query(3); + break; + } + + case 4: { + _localctx = _tracker.createInstance(_localctx); + _ctx = _localctx; + previousContext = _localctx; + setState(32); + expression(); + break; + } + + default: + break; + } + _ctx->stop = _input->LT(-1); + setState(40); + _errHandler->sync(this); + alt = getInterpreter()->adaptivePredict(_input, 1, _ctx); + while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { + if (alt == 1) { + if (!_parseListeners.empty()) + triggerExitRuleEvent(); + previousContext = _localctx; + auto newContext = _tracker.createInstance(_tracker.createInstance(parentContext, parentState)); + _localctx = newContext; + newContext->lhs = previousContext; + pushNewRecursionContext(newContext, startState, RuleQuery); + setState(35); + + if (!(precpred(_ctx, 2))) throw FailedPredicateException(this, "precpred(_ctx, 2)"); + setState(36); + antlrcpp::downCast(_localctx)->op = _input->LT(1); + _la = _input->LA(1); + if (!(_la == KqlParser::AND + + || _la == KqlParser::OR)) { + antlrcpp::downCast(_localctx)->op = _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + setState(37); + antlrcpp::downCast(_localctx)->rhs = query(3); + } + setState(42); + _errHandler->sync(this); + alt = getInterpreter()->adaptivePredict(_input, 1, _ctx); + } + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + return _localctx; +} + +//----------------- ExpressionContext ------------------------------------------------------------------ + +KqlParser::ExpressionContext::ExpressionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +KqlParser::Column_range_expressionContext* KqlParser::ExpressionContext::column_range_expression() { + return getRuleContext(0); +} + +KqlParser::Column_value_expressionContext* KqlParser::ExpressionContext::column_value_expression() { + return getRuleContext(0); +} + +KqlParser::Value_expressionContext* KqlParser::ExpressionContext::value_expression() { + return getRuleContext(0); +} + + +size_t KqlParser::ExpressionContext::getRuleIndex() const { + return KqlParser::RuleExpression; +} + + +std::any KqlParser::ExpressionContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitExpression(this); + else + return visitor->visitChildren(this); +} + +KqlParser::ExpressionContext* KqlParser::expression() { + ExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 4, KqlParser::RuleExpression); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + setState(46); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 2, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(43); + column_range_expression(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(44); + column_value_expression(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(45); + value_expression(); + break; + } + + default: + break; + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Column_range_expressionContext ------------------------------------------------------------------ + +KqlParser::Column_range_expressionContext::Column_range_expressionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* KqlParser::Column_range_expressionContext::RANGE_OPERATOR() { + return getToken(KqlParser::RANGE_OPERATOR, 0); +} + +KqlParser::ColumnContext* KqlParser::Column_range_expressionContext::column() { + return getRuleContext(0); +} + +tree::TerminalNode* KqlParser::Column_range_expressionContext::DATE_LITERAL() { + return getToken(KqlParser::DATE_LITERAL, 0); +} + +tree::TerminalNode* KqlParser::Column_range_expressionContext::LITERAL() { + return getToken(KqlParser::LITERAL, 0); +} + + +size_t KqlParser::Column_range_expressionContext::getRuleIndex() const { + return KqlParser::RuleColumn_range_expression; +} + + +std::any KqlParser::Column_range_expressionContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitColumn_range_expression(this); + else + return visitor->visitChildren(this); +} + +KqlParser::Column_range_expressionContext* KqlParser::column_range_expression() { + Column_range_expressionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 6, KqlParser::RuleColumn_range_expression); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(48); + antlrcpp::downCast(_localctx)->col = column(); + setState(49); + match(KqlParser::RANGE_OPERATOR); + setState(52); + _errHandler->sync(this); + switch (_input->LA(1)) { + case KqlParser::DATE_LITERAL: { + setState(50); + antlrcpp::downCast(_localctx)->date_lit = match(KqlParser::DATE_LITERAL); + break; + } + + case KqlParser::LITERAL: { + setState(51); + antlrcpp::downCast(_localctx)->lit = match(KqlParser::LITERAL); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Column_value_expressionContext ------------------------------------------------------------------ + +KqlParser::Column_value_expressionContext::Column_value_expressionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +KqlParser::ColumnContext* KqlParser::Column_value_expressionContext::column() { + return getRuleContext(0); +} + +KqlParser::List_of_valuesContext* KqlParser::Column_value_expressionContext::list_of_values() { + return getRuleContext(0); +} + +tree::TerminalNode* KqlParser::Column_value_expressionContext::DATE_LITERAL() { + return getToken(KqlParser::DATE_LITERAL, 0); +} + +tree::TerminalNode* KqlParser::Column_value_expressionContext::LITERAL() { + return getToken(KqlParser::LITERAL, 0); +} + + +size_t KqlParser::Column_value_expressionContext::getRuleIndex() const { + return KqlParser::RuleColumn_value_expression; +} + + +std::any KqlParser::Column_value_expressionContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitColumn_value_expression(this); + else + return visitor->visitChildren(this); +} + +KqlParser::Column_value_expressionContext* KqlParser::column_value_expression() { + Column_value_expressionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 8, KqlParser::RuleColumn_value_expression); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(54); + antlrcpp::downCast(_localctx)->col = column(); + setState(55); + match(KqlParser::T__0); + setState(59); + _errHandler->sync(this); + switch (_input->LA(1)) { + case KqlParser::T__3: { + setState(56); + antlrcpp::downCast(_localctx)->list = list_of_values(); + break; + } + + case KqlParser::DATE_LITERAL: { + setState(57); + antlrcpp::downCast(_localctx)->date_lit = match(KqlParser::DATE_LITERAL); + break; + } + + case KqlParser::LITERAL: { + setState(58); + antlrcpp::downCast(_localctx)->lit = match(KqlParser::LITERAL); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- ColumnContext ------------------------------------------------------------------ + +KqlParser::ColumnContext::ColumnContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* KqlParser::ColumnContext::LITERAL() { + return getToken(KqlParser::LITERAL, 0); +} + + +size_t KqlParser::ColumnContext::getRuleIndex() const { + return KqlParser::RuleColumn; +} + + +std::any KqlParser::ColumnContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitColumn(this); + else + return visitor->visitChildren(this); +} + +KqlParser::ColumnContext* KqlParser::column() { + ColumnContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 10, KqlParser::RuleColumn); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(61); + match(KqlParser::LITERAL); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Value_expressionContext ------------------------------------------------------------------ + +KqlParser::Value_expressionContext::Value_expressionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* KqlParser::Value_expressionContext::LITERAL() { + return getToken(KqlParser::LITERAL, 0); +} + + +size_t KqlParser::Value_expressionContext::getRuleIndex() const { + return KqlParser::RuleValue_expression; +} + + +std::any KqlParser::Value_expressionContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitValue_expression(this); + else + return visitor->visitChildren(this); +} + +KqlParser::Value_expressionContext* KqlParser::value_expression() { + Value_expressionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 12, KqlParser::RuleValue_expression); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(63); + match(KqlParser::LITERAL); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- List_of_valuesContext ------------------------------------------------------------------ + +KqlParser::List_of_valuesContext::List_of_valuesContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector KqlParser::List_of_valuesContext::LITERAL() { + return getTokens(KqlParser::LITERAL); +} + +tree::TerminalNode* KqlParser::List_of_valuesContext::LITERAL(size_t i) { + return getToken(KqlParser::LITERAL, i); +} + +tree::TerminalNode* KqlParser::List_of_valuesContext::AND() { + return getToken(KqlParser::AND, 0); +} + +tree::TerminalNode* KqlParser::List_of_valuesContext::OR() { + return getToken(KqlParser::OR, 0); +} + +tree::TerminalNode* KqlParser::List_of_valuesContext::NOT() { + return getToken(KqlParser::NOT, 0); +} + + +size_t KqlParser::List_of_valuesContext::getRuleIndex() const { + return KqlParser::RuleList_of_values; +} + + +std::any KqlParser::List_of_valuesContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitList_of_values(this); + else + return visitor->visitChildren(this); +} + +KqlParser::List_of_valuesContext* KqlParser::list_of_values() { + List_of_valuesContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 14, KqlParser::RuleList_of_values); + size_t _la = 0; + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(65); + match(KqlParser::T__3); + setState(67); + _errHandler->sync(this); + + _la = _input->LA(1); + if ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & 448) != 0)) { + setState(66); + antlrcpp::downCast(_localctx)->condition = _input->LT(1); + _la = _input->LA(1); + if (!((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & 448) != 0))) { + antlrcpp::downCast(_localctx)->condition = _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + } + setState(72); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == KqlParser::LITERAL) { + setState(69); + antlrcpp::downCast(_localctx)->literalToken = match(KqlParser::LITERAL); + antlrcpp::downCast(_localctx)->literals.push_back(antlrcpp::downCast(_localctx)->literalToken); + setState(74); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(75); + match(KqlParser::T__4); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +bool KqlParser::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) { + switch (ruleIndex) { + case 1: return querySempred(antlrcpp::downCast(context), predicateIndex); + + default: + break; + } + return true; +} + +bool KqlParser::querySempred(QueryContext *_localctx, size_t predicateIndex) { + switch (predicateIndex) { + case 0: return precpred(_ctx, 2); + + default: + break; + } + return true; +} + +void KqlParser::initialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + kqlParserInitialize(); +#else + ::antlr4::internal::call_once(kqlParserOnceFlag, kqlParserInitialize); +#endif +} diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h new file mode 100644 index 0000000000..070e582ddd --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h @@ -0,0 +1,252 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" + + +namespace kql { + + +class KqlParser : public antlr4::Parser { +public: + enum { + T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, AND = 6, OR = 7, NOT = 8, + DATE_LITERAL = 9, LITERAL = 10, QUOTED_STRING = 11, UNQUOTED_LITERAL = 12, + RANGE_OPERATOR = 13, SPACE = 14 + }; + + enum { + RuleStart = 0, RuleQuery = 1, RuleExpression = 2, RuleColumn_range_expression = 3, + RuleColumn_value_expression = 4, RuleColumn = 5, RuleValue_expression = 6, + RuleList_of_values = 7 + }; + + explicit KqlParser(antlr4::TokenStream *input); + + KqlParser(antlr4::TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options); + + ~KqlParser() override; + + std::string getGrammarFileName() const override; + + const antlr4::atn::ATN& getATN() const override; + + const std::vector& getRuleNames() const override; + + const antlr4::dfa::Vocabulary& getVocabulary() const override; + + antlr4::atn::SerializedATNView getSerializedATN() const override; + + + class StartContext; + class QueryContext; + class ExpressionContext; + class Column_range_expressionContext; + class Column_value_expressionContext; + class ColumnContext; + class Value_expressionContext; + class List_of_valuesContext; + + class StartContext : public antlr4::ParserRuleContext { + public: + StartContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + QueryContext *query(); + antlr4::tree::TerminalNode *EOF(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + StartContext* start(); + + class QueryContext : public antlr4::ParserRuleContext { + public: + QueryContext(antlr4::ParserRuleContext *parent, size_t invokingState); + + QueryContext() = default; + void copyFrom(QueryContext *context); + using antlr4::ParserRuleContext::copyFrom; + + virtual size_t getRuleIndex() const override; + + + }; + + class ExprContext : public QueryContext { + public: + ExprContext(QueryContext *ctx); + + ExpressionContext *expression(); + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + }; + + class NestedQueryContext : public QueryContext { + public: + NestedQueryContext(QueryContext *ctx); + + KqlParser::ColumnContext *col = nullptr; + KqlParser::QueryContext *q = nullptr; + ColumnContext *column(); + QueryContext *query(); + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + }; + + class NotQueryContext : public QueryContext { + public: + NotQueryContext(QueryContext *ctx); + + KqlParser::QueryContext *q = nullptr; + antlr4::tree::TerminalNode *NOT(); + QueryContext *query(); + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + }; + + class SubQueryContext : public QueryContext { + public: + SubQueryContext(QueryContext *ctx); + + KqlParser::QueryContext *q = nullptr; + QueryContext *query(); + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + }; + + class OrAndQueryContext : public QueryContext { + public: + OrAndQueryContext(QueryContext *ctx); + + KqlParser::QueryContext *lhs = nullptr; + antlr4::Token *op = nullptr; + KqlParser::QueryContext *rhs = nullptr; + std::vector query(); + QueryContext* query(size_t i); + antlr4::tree::TerminalNode *OR(); + antlr4::tree::TerminalNode *AND(); + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + }; + + QueryContext* query(); + QueryContext* query(int precedence); + class ExpressionContext : public antlr4::ParserRuleContext { + public: + ExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Column_range_expressionContext *column_range_expression(); + Column_value_expressionContext *column_value_expression(); + Value_expressionContext *value_expression(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + ExpressionContext* expression(); + + class Column_range_expressionContext : public antlr4::ParserRuleContext { + public: + KqlParser::ColumnContext *col = nullptr; + antlr4::Token *date_lit = nullptr; + antlr4::Token *lit = nullptr; + Column_range_expressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *RANGE_OPERATOR(); + ColumnContext *column(); + antlr4::tree::TerminalNode *DATE_LITERAL(); + antlr4::tree::TerminalNode *LITERAL(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + Column_range_expressionContext* column_range_expression(); + + class Column_value_expressionContext : public antlr4::ParserRuleContext { + public: + KqlParser::ColumnContext *col = nullptr; + KqlParser::List_of_valuesContext *list = nullptr; + antlr4::Token *date_lit = nullptr; + antlr4::Token *lit = nullptr; + Column_value_expressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + ColumnContext *column(); + List_of_valuesContext *list_of_values(); + antlr4::tree::TerminalNode *DATE_LITERAL(); + antlr4::tree::TerminalNode *LITERAL(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + Column_value_expressionContext* column_value_expression(); + + class ColumnContext : public antlr4::ParserRuleContext { + public: + ColumnContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *LITERAL(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + ColumnContext* column(); + + class Value_expressionContext : public antlr4::ParserRuleContext { + public: + Value_expressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *LITERAL(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + Value_expressionContext* value_expression(); + + class List_of_valuesContext : public antlr4::ParserRuleContext { + public: + antlr4::Token *condition = nullptr; + antlr4::Token *literalToken = nullptr; + std::vector literals; + List_of_valuesContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector LITERAL(); + antlr4::tree::TerminalNode* LITERAL(size_t i); + antlr4::tree::TerminalNode *AND(); + antlr4::tree::TerminalNode *OR(); + antlr4::tree::TerminalNode *NOT(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + List_of_valuesContext* list_of_values(); + + + bool sempred(antlr4::RuleContext *_localctx, size_t ruleIndex, size_t predicateIndex) override; + + bool querySempred(QueryContext *_localctx, size_t predicateIndex); + + // By default the static state used to implement the parser is lazily initialized during the first + // call to the constructor. You can call this function if you wish to initialize the static state + // ahead of time. + static void initialize(); + +private: +}; + +} // namespace kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp new file mode 100644 index 0000000000..a03846dff9 --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp @@ -0,0 +1,9 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + + +#include "KqlVisitor.h" + + +using namespace kql; + diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h new file mode 100644 index 0000000000..e881f6817f --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h @@ -0,0 +1,50 @@ + +// Generated from Kql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" +#include "KqlParser.h" + + +namespace kql { + +/** + * This class defines an abstract visitor for a parse tree + * produced by KqlParser. + */ +class KqlVisitor : public antlr4::tree::AbstractParseTreeVisitor { +public: + + /** + * Visit parse trees produced by KqlParser. + */ + virtual std::any visitStart(KqlParser::StartContext *context) = 0; + + virtual std::any visitExpr(KqlParser::ExprContext *context) = 0; + + virtual std::any visitNestedQuery(KqlParser::NestedQueryContext *context) = 0; + + virtual std::any visitNotQuery(KqlParser::NotQueryContext *context) = 0; + + virtual std::any visitSubQuery(KqlParser::SubQueryContext *context) = 0; + + virtual std::any visitOrAndQuery(KqlParser::OrAndQueryContext *context) = 0; + + virtual std::any visitExpression(KqlParser::ExpressionContext *context) = 0; + + virtual std::any visitColumn_range_expression(KqlParser::Column_range_expressionContext *context) = 0; + + virtual std::any visitColumn_value_expression(KqlParser::Column_value_expressionContext *context) = 0; + + virtual std::any visitColumn(KqlParser::ColumnContext *context) = 0; + + virtual std::any visitValue_expression(KqlParser::Value_expressionContext *context) = 0; + + virtual std::any visitList_of_values(KqlParser::List_of_valuesContext *context) = 0; + + +}; + +} // namespace kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h b/components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h new file mode 100644 index 0000000000..50b85aa4fc --- /dev/null +++ b/components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h @@ -0,0 +1,168 @@ +/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. + * Use of this file is governed by the BSD 3-clause license that + * can be found in the LICENSE.txt file in the project root. + */ + +#pragma once + +// This is the umbrella header for all ANTLR4 C++ runtime headers. + +#include "antlr4-common.h" + +#include "ANTLRErrorListener.h" +#include "ANTLRErrorStrategy.h" +#include "ANTLRFileStream.h" +#include "ANTLRInputStream.h" +#include "BailErrorStrategy.h" +#include "BaseErrorListener.h" +#include "BufferedTokenStream.h" +#include "CharStream.h" +#include "CommonToken.h" +#include "CommonTokenFactory.h" +#include "CommonTokenStream.h" +#include "ConsoleErrorListener.h" +#include "DefaultErrorStrategy.h" +#include "DiagnosticErrorListener.h" +#include "Exceptions.h" +#include "FailedPredicateException.h" +#include "InputMismatchException.h" +#include "IntStream.h" +#include "InterpreterRuleContext.h" +#include "Lexer.h" +#include "LexerInterpreter.h" +#include "LexerNoViableAltException.h" +#include "ListTokenSource.h" +#include "NoViableAltException.h" +#include "Parser.h" +#include "ParserInterpreter.h" +#include "ParserRuleContext.h" +#include "ProxyErrorListener.h" +#include "RecognitionException.h" +#include "Recognizer.h" +#include "RuleContext.h" +#include "RuleContextWithAltNum.h" +#include "RuntimeMetaData.h" +#include "Token.h" +#include "TokenFactory.h" +#include "TokenSource.h" +#include "TokenStream.h" +#include "TokenStreamRewriter.h" +#include "UnbufferedCharStream.h" +#include "UnbufferedTokenStream.h" +#include "Version.h" +#include "Vocabulary.h" +#include "Vocabulary.h" +#include "WritableToken.h" +#include "atn/ATN.h" +#include "atn/ATNConfig.h" +#include "atn/ATNConfigSet.h" +#include "atn/ATNDeserializationOptions.h" +#include "atn/ATNDeserializer.h" +#include "atn/ATNSimulator.h" +#include "atn/ATNState.h" +#include "atn/ATNType.h" +#include "atn/ActionTransition.h" +#include "atn/AmbiguityInfo.h" +#include "atn/ArrayPredictionContext.h" +#include "atn/AtomTransition.h" +#include "atn/BasicBlockStartState.h" +#include "atn/BasicState.h" +#include "atn/BlockEndState.h" +#include "atn/BlockStartState.h" +#include "atn/ContextSensitivityInfo.h" +#include "atn/DecisionEventInfo.h" +#include "atn/DecisionInfo.h" +#include "atn/DecisionState.h" +#include "atn/EpsilonTransition.h" +#include "atn/ErrorInfo.h" +#include "atn/LL1Analyzer.h" +#include "atn/LexerATNConfig.h" +#include "atn/LexerATNSimulator.h" +#include "atn/LexerAction.h" +#include "atn/LexerActionExecutor.h" +#include "atn/LexerActionType.h" +#include "atn/LexerChannelAction.h" +#include "atn/LexerCustomAction.h" +#include "atn/LexerIndexedCustomAction.h" +#include "atn/LexerModeAction.h" +#include "atn/LexerMoreAction.h" +#include "atn/LexerPopModeAction.h" +#include "atn/LexerPushModeAction.h" +#include "atn/LexerSkipAction.h" +#include "atn/LexerTypeAction.h" +#include "atn/LookaheadEventInfo.h" +#include "atn/LoopEndState.h" +#include "atn/NotSetTransition.h" +#include "atn/OrderedATNConfigSet.h" +#include "atn/ParseInfo.h" +#include "atn/ParserATNSimulator.h" +#include "atn/ParserATNSimulatorOptions.h" +#include "atn/PlusBlockStartState.h" +#include "atn/PlusLoopbackState.h" +#include "atn/PrecedencePredicateTransition.h" +#include "atn/PredicateEvalInfo.h" +#include "atn/PredicateTransition.h" +#include "atn/PredictionContext.h" +#include "atn/PredictionContextCache.h" +#include "atn/PredictionContextMergeCache.h" +#include "atn/PredictionContextMergeCacheOptions.h" +#include "atn/PredictionMode.h" +#include "atn/ProfilingATNSimulator.h" +#include "atn/RangeTransition.h" +#include "atn/RuleStartState.h" +#include "atn/RuleStopState.h" +#include "atn/RuleTransition.h" +#include "atn/SemanticContext.h" +#include "atn/SerializedATNView.h" +#include "atn/SetTransition.h" +#include "atn/SingletonPredictionContext.h" +#include "atn/StarBlockStartState.h" +#include "atn/StarLoopEntryState.h" +#include "atn/StarLoopbackState.h" +#include "atn/TokensStartState.h" +#include "atn/Transition.h" +#include "atn/WildcardTransition.h" +#include "dfa/DFA.h" +#include "dfa/DFASerializer.h" +#include "dfa/DFAState.h" +#include "dfa/LexerDFASerializer.h" +#include "misc/InterpreterDataReader.h" +#include "misc/Interval.h" +#include "misc/IntervalSet.h" +#include "misc/MurmurHash.h" +#include "misc/Predicate.h" +#include "support/Any.h" +#include "support/Arrays.h" +#include "support/BitSet.h" +#include "support/Casts.h" +#include "support/CPPUtils.h" +#include "tree/AbstractParseTreeVisitor.h" +#include "tree/ErrorNode.h" +#include "tree/ErrorNodeImpl.h" +#include "tree/ParseTree.h" +#include "tree/ParseTreeListener.h" +#include "tree/ParseTreeProperty.h" +#include "tree/ParseTreeVisitor.h" +#include "tree/ParseTreeWalker.h" +#include "tree/TerminalNode.h" +#include "tree/TerminalNodeImpl.h" +#include "tree/Trees.h" +#include "tree/pattern/Chunk.h" +#include "tree/pattern/ParseTreeMatch.h" +#include "tree/pattern/ParseTreePattern.h" +#include "tree/pattern/ParseTreePatternMatcher.h" +#include "tree/pattern/RuleTagToken.h" +#include "tree/pattern/TagChunk.h" +#include "tree/pattern/TextChunk.h" +#include "tree/pattern/TokenTagToken.h" +#include "tree/xpath/XPath.h" +#include "tree/xpath/XPathElement.h" +#include "tree/xpath/XPathLexer.h" +#include "tree/xpath/XPathLexerErrorListener.h" +#include "tree/xpath/XPathRuleAnywhereElement.h" +#include "tree/xpath/XPathRuleElement.h" +#include "tree/xpath/XPathTokenAnywhereElement.h" +#include "tree/xpath/XPathTokenElement.h" +#include "tree/xpath/XPathWildcardAnywhereElement.h" +#include "tree/xpath/XPathWildcardElement.h" +#include "internal/Synchronization.h" diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 0ab9493c16..8fbc1e9669 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,19 +1,32 @@ -ANTLR_TARGET( - SqlParser - Sql.g4 - LEXER PARSER VISITOR - PACKAGE sql +#ANTLR_TARGET( +# SqlParser +# Sql.g4 +# LEXER PARSER VISITOR +# PACKAGE sql +#) + +set(ANTLR_GENERATED_KQL_CODE_DIR antlr_generated) + +set(ANTLR_GENERATED_KQL_CODE + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlBaseVisitor.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlBaseVisitor.h + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlLexer.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlLexer.h + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlParser.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlParser.h + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlVisitor.cpp + ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlVisitor.h ) add_library( sql ../antlr_common/ErrorListener.hpp - ${ANTLR_SqlParser_CXX_OUTPUTS} + ${ANTLR_GENERATED_KQL_CODE} sql.cpp sql.hpp ) target_compile_features(sql PRIVATE cxx_std_20) -target_include_directories(sql PRIVATE ${ANTLR_SqlParser_OUTPUT_DIR}) +target_include_directories(sql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR}) target_link_libraries( sql PRIVATE diff --git a/components/core/src/clp_s/search/sql/antlr_generated/Sql.interp b/components/core/src/clp_s/search/sql/antlr_generated/Sql.interp new file mode 100644 index 0000000000..38c26af3d5 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/Sql.interp @@ -0,0 +1,14 @@ +token literal names: +null +null + +token symbolic names: +null +SPACE + +rule names: +start + + +atn: +[4, 1, 1, 5, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 2, 1, 0, 0, 0, 2, 3, 5, 0, 0, 1, 3, 1, 1, 0, 0, 0, 0] \ No newline at end of file diff --git a/components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens b/components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens new file mode 100644 index 0000000000..e138d29fae --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens @@ -0,0 +1 @@ +SPACE=1 diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp new file mode 100644 index 0000000000..e985bc53a0 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp @@ -0,0 +1,9 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + + +#include "SqlBaseVisitor.h" + + +using namespace sql; + diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h new file mode 100644 index 0000000000..3ed201e14e --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h @@ -0,0 +1,27 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" +#include "SqlVisitor.h" + + +namespace sql { + +/** + * This class provides an empty implementation of SqlVisitor, which can be + * extended to create a visitor which only needs to handle a subset of the available methods. + */ +class SqlBaseVisitor : public SqlVisitor { +public: + + virtual std::any visitStart(SqlParser::StartContext *ctx) override { + return visitChildren(ctx); + } + + +}; + +} // namespace sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp new file mode 100644 index 0000000000..c29063781c --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp @@ -0,0 +1,141 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + + +#include "SqlLexer.h" + + +using namespace antlr4; + +using namespace sql; + + +using namespace antlr4; + +namespace { + +struct SqlLexerStaticData final { + SqlLexerStaticData(std::vector ruleNames, + std::vector channelNames, + std::vector modeNames, + std::vector literalNames, + std::vector symbolicNames) + : ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)), + modeNames(std::move(modeNames)), literalNames(std::move(literalNames)), + symbolicNames(std::move(symbolicNames)), + vocabulary(this->literalNames, this->symbolicNames) {} + + SqlLexerStaticData(const SqlLexerStaticData&) = delete; + SqlLexerStaticData(SqlLexerStaticData&&) = delete; + SqlLexerStaticData& operator=(const SqlLexerStaticData&) = delete; + SqlLexerStaticData& operator=(SqlLexerStaticData&&) = delete; + + std::vector decisionToDFA; + antlr4::atn::PredictionContextCache sharedContextCache; + const std::vector ruleNames; + const std::vector channelNames; + const std::vector modeNames; + const std::vector literalNames; + const std::vector symbolicNames; + const antlr4::dfa::Vocabulary vocabulary; + antlr4::atn::SerializedATNView serializedATN; + std::unique_ptr atn; +}; + +::antlr4::internal::OnceFlag sqllexerLexerOnceFlag; +#if ANTLR4_USE_THREAD_LOCAL_CACHE +static thread_local +#endif +SqlLexerStaticData *sqllexerLexerStaticData = nullptr; + +void sqllexerLexerInitialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + if (sqllexerLexerStaticData != nullptr) { + return; + } +#else + assert(sqllexerLexerStaticData == nullptr); +#endif + auto staticData = std::make_unique( + std::vector{ + "SPACE" + }, + std::vector{ + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }, + std::vector{ + "DEFAULT_MODE" + }, + std::vector{ + }, + std::vector{ + "", "SPACE" + } + ); + static const int32_t serializedATNSegment[] = { + 4,0,1,7,6,-1,2,0,7,0,1,0,1,0,1,0,1,0,0,0,1,1,1,1,0,1,3,0,9,10,13,13,32, + 32,6,0,1,1,0,0,0,1,3,1,0,0,0,3,4,7,0,0,0,4,5,1,0,0,0,5,6,6,0,0,0,6,2, + 1,0,0,0,1,0,1,6,0,0 + }; + staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); + + antlr4::atn::ATNDeserializer deserializer; + staticData->atn = deserializer.deserialize(staticData->serializedATN); + + const size_t count = staticData->atn->getNumberOfDecisions(); + staticData->decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); + } + sqllexerLexerStaticData = staticData.release(); +} + +} + +SqlLexer::SqlLexer(CharStream *input) : Lexer(input) { + SqlLexer::initialize(); + _interpreter = new atn::LexerATNSimulator(this, *sqllexerLexerStaticData->atn, sqllexerLexerStaticData->decisionToDFA, sqllexerLexerStaticData->sharedContextCache); +} + +SqlLexer::~SqlLexer() { + delete _interpreter; +} + +std::string SqlLexer::getGrammarFileName() const { + return "Sql.g4"; +} + +const std::vector& SqlLexer::getRuleNames() const { + return sqllexerLexerStaticData->ruleNames; +} + +const std::vector& SqlLexer::getChannelNames() const { + return sqllexerLexerStaticData->channelNames; +} + +const std::vector& SqlLexer::getModeNames() const { + return sqllexerLexerStaticData->modeNames; +} + +const dfa::Vocabulary& SqlLexer::getVocabulary() const { + return sqllexerLexerStaticData->vocabulary; +} + +antlr4::atn::SerializedATNView SqlLexer::getSerializedATN() const { + return sqllexerLexerStaticData->serializedATN; +} + +const atn::ATN& SqlLexer::getATN() const { + return *sqllexerLexerStaticData->atn; +} + + + + +void SqlLexer::initialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + sqllexerLexerInitialize(); +#else + ::antlr4::internal::call_once(sqllexerLexerOnceFlag, sqllexerLexerInitialize); +#endif +} diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h new file mode 100644 index 0000000000..460fe49b80 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h @@ -0,0 +1,51 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" + + +namespace sql { + + +class SqlLexer : public antlr4::Lexer { +public: + enum { + SPACE = 1 + }; + + explicit SqlLexer(antlr4::CharStream *input); + + ~SqlLexer() override; + + + std::string getGrammarFileName() const override; + + const std::vector& getRuleNames() const override; + + const std::vector& getChannelNames() const override; + + const std::vector& getModeNames() const override; + + const antlr4::dfa::Vocabulary& getVocabulary() const override; + + antlr4::atn::SerializedATNView getSerializedATN() const override; + + const antlr4::atn::ATN& getATN() const override; + + // By default the static state used to implement the lexer is lazily initialized during the first + // call to the constructor. You can call this function if you wish to initialize the static state + // ahead of time. + static void initialize(); + +private: + + // Individual action functions triggered by action() above. + + // Individual semantic predicate functions triggered by sempred() above. + +}; + +} // namespace sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp new file mode 100644 index 0000000000..60c75b3b80 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp @@ -0,0 +1,20 @@ +token literal names: +null +null + +token symbolic names: +null +SPACE + +rule names: +SPACE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[4, 0, 1, 7, 6, -1, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 3, 0, 9, 10, 13, 13, 32, 32, 6, 0, 1, 1, 0, 0, 0, 1, 3, 1, 0, 0, 0, 3, 4, 7, 0, 0, 0, 4, 5, 1, 0, 0, 0, 5, 6, 6, 0, 0, 0, 6, 2, 1, 0, 0, 0, 1, 0, 1, 6, 0, 0] \ No newline at end of file diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens new file mode 100644 index 0000000000..e138d29fae --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens @@ -0,0 +1 @@ +SPACE=1 diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp new file mode 100644 index 0000000000..067a2092c2 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp @@ -0,0 +1,170 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + + +#include "SqlVisitor.h" + +#include "SqlParser.h" + + +using namespace antlrcpp; +using namespace sql; + +using namespace antlr4; + +namespace { + +struct SqlParserStaticData final { + SqlParserStaticData(std::vector ruleNames, + std::vector literalNames, + std::vector symbolicNames) + : ruleNames(std::move(ruleNames)), literalNames(std::move(literalNames)), + symbolicNames(std::move(symbolicNames)), + vocabulary(this->literalNames, this->symbolicNames) {} + + SqlParserStaticData(const SqlParserStaticData&) = delete; + SqlParserStaticData(SqlParserStaticData&&) = delete; + SqlParserStaticData& operator=(const SqlParserStaticData&) = delete; + SqlParserStaticData& operator=(SqlParserStaticData&&) = delete; + + std::vector decisionToDFA; + antlr4::atn::PredictionContextCache sharedContextCache; + const std::vector ruleNames; + const std::vector literalNames; + const std::vector symbolicNames; + const antlr4::dfa::Vocabulary vocabulary; + antlr4::atn::SerializedATNView serializedATN; + std::unique_ptr atn; +}; + +::antlr4::internal::OnceFlag sqlParserOnceFlag; +#if ANTLR4_USE_THREAD_LOCAL_CACHE +static thread_local +#endif +SqlParserStaticData *sqlParserStaticData = nullptr; + +void sqlParserInitialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + if (sqlParserStaticData != nullptr) { + return; + } +#else + assert(sqlParserStaticData == nullptr); +#endif + auto staticData = std::make_unique( + std::vector{ + "start" + }, + std::vector{ + }, + std::vector{ + "", "SPACE" + } + ); + static const int32_t serializedATNSegment[] = { + 4,1,1,5,2,0,7,0,1,0,1,0,1,0,0,0,1,0,0,0,3,0,2,1,0,0,0,2,3,5,0,0,1,3,1, + 1,0,0,0,0 + }; + staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); + + antlr4::atn::ATNDeserializer deserializer; + staticData->atn = deserializer.deserialize(staticData->serializedATN); + + const size_t count = staticData->atn->getNumberOfDecisions(); + staticData->decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); + } + sqlParserStaticData = staticData.release(); +} + +} + +SqlParser::SqlParser(TokenStream *input) : SqlParser(input, antlr4::atn::ParserATNSimulatorOptions()) {} + +SqlParser::SqlParser(TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options) : Parser(input) { + SqlParser::initialize(); + _interpreter = new atn::ParserATNSimulator(this, *sqlParserStaticData->atn, sqlParserStaticData->decisionToDFA, sqlParserStaticData->sharedContextCache, options); +} + +SqlParser::~SqlParser() { + delete _interpreter; +} + +const atn::ATN& SqlParser::getATN() const { + return *sqlParserStaticData->atn; +} + +std::string SqlParser::getGrammarFileName() const { + return "Sql.g4"; +} + +const std::vector& SqlParser::getRuleNames() const { + return sqlParserStaticData->ruleNames; +} + +const dfa::Vocabulary& SqlParser::getVocabulary() const { + return sqlParserStaticData->vocabulary; +} + +antlr4::atn::SerializedATNView SqlParser::getSerializedATN() const { + return sqlParserStaticData->serializedATN; +} + + +//----------------- StartContext ------------------------------------------------------------------ + +SqlParser::StartContext::StartContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SqlParser::StartContext::EOF() { + return getToken(SqlParser::EOF, 0); +} + + +size_t SqlParser::StartContext::getRuleIndex() const { + return SqlParser::RuleStart; +} + + +std::any SqlParser::StartContext::accept(tree::ParseTreeVisitor *visitor) { + if (auto parserVisitor = dynamic_cast(visitor)) + return parserVisitor->visitStart(this); + else + return visitor->visitChildren(this); +} + +SqlParser::StartContext* SqlParser::start() { + StartContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 0, SqlParser::RuleStart); + +#if __cplusplus > 201703L + auto onExit = finally([=, this] { +#else + auto onExit = finally([=] { +#endif + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(2); + match(SqlParser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +void SqlParser::initialize() { +#if ANTLR4_USE_THREAD_LOCAL_CACHE + sqlParserInitialize(); +#else + ::antlr4::internal::call_once(sqlParserOnceFlag, sqlParserInitialize); +#endif +} diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h new file mode 100644 index 0000000000..2e53dea741 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h @@ -0,0 +1,64 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" + + +namespace sql { + + +class SqlParser : public antlr4::Parser { +public: + enum { + SPACE = 1 + }; + + enum { + RuleStart = 0 + }; + + explicit SqlParser(antlr4::TokenStream *input); + + SqlParser(antlr4::TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options); + + ~SqlParser() override; + + std::string getGrammarFileName() const override; + + const antlr4::atn::ATN& getATN() const override; + + const std::vector& getRuleNames() const override; + + const antlr4::dfa::Vocabulary& getVocabulary() const override; + + antlr4::atn::SerializedATNView getSerializedATN() const override; + + + class StartContext; + + class StartContext : public antlr4::ParserRuleContext { + public: + StartContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *EOF(); + + + virtual std::any accept(antlr4::tree::ParseTreeVisitor *visitor) override; + + }; + + StartContext* start(); + + + // By default the static state used to implement the parser is lazily initialized during the first + // call to the constructor. You can call this function if you wish to initialize the static state + // ahead of time. + static void initialize(); + +private: +}; + +} // namespace sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp new file mode 100644 index 0000000000..0dae05eff9 --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp @@ -0,0 +1,9 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + + +#include "SqlVisitor.h" + + +using namespace sql; + diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h new file mode 100644 index 0000000000..abe8891bae --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h @@ -0,0 +1,28 @@ + +// Generated from Sql.g4 by ANTLR 4.13.1 + +#pragma once + + +#include "antlr4-runtime.h" +#include "SqlParser.h" + + +namespace sql { + +/** + * This class defines an abstract visitor for a parse tree + * produced by SqlParser. + */ +class SqlVisitor : public antlr4::tree::AbstractParseTreeVisitor { +public: + + /** + * Visit parse trees produced by SqlParser. + */ + virtual std::any visitStart(SqlParser::StartContext *context) = 0; + + +}; + +} // namespace sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h b/components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h new file mode 100644 index 0000000000..50b85aa4fc --- /dev/null +++ b/components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h @@ -0,0 +1,168 @@ +/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. + * Use of this file is governed by the BSD 3-clause license that + * can be found in the LICENSE.txt file in the project root. + */ + +#pragma once + +// This is the umbrella header for all ANTLR4 C++ runtime headers. + +#include "antlr4-common.h" + +#include "ANTLRErrorListener.h" +#include "ANTLRErrorStrategy.h" +#include "ANTLRFileStream.h" +#include "ANTLRInputStream.h" +#include "BailErrorStrategy.h" +#include "BaseErrorListener.h" +#include "BufferedTokenStream.h" +#include "CharStream.h" +#include "CommonToken.h" +#include "CommonTokenFactory.h" +#include "CommonTokenStream.h" +#include "ConsoleErrorListener.h" +#include "DefaultErrorStrategy.h" +#include "DiagnosticErrorListener.h" +#include "Exceptions.h" +#include "FailedPredicateException.h" +#include "InputMismatchException.h" +#include "IntStream.h" +#include "InterpreterRuleContext.h" +#include "Lexer.h" +#include "LexerInterpreter.h" +#include "LexerNoViableAltException.h" +#include "ListTokenSource.h" +#include "NoViableAltException.h" +#include "Parser.h" +#include "ParserInterpreter.h" +#include "ParserRuleContext.h" +#include "ProxyErrorListener.h" +#include "RecognitionException.h" +#include "Recognizer.h" +#include "RuleContext.h" +#include "RuleContextWithAltNum.h" +#include "RuntimeMetaData.h" +#include "Token.h" +#include "TokenFactory.h" +#include "TokenSource.h" +#include "TokenStream.h" +#include "TokenStreamRewriter.h" +#include "UnbufferedCharStream.h" +#include "UnbufferedTokenStream.h" +#include "Version.h" +#include "Vocabulary.h" +#include "Vocabulary.h" +#include "WritableToken.h" +#include "atn/ATN.h" +#include "atn/ATNConfig.h" +#include "atn/ATNConfigSet.h" +#include "atn/ATNDeserializationOptions.h" +#include "atn/ATNDeserializer.h" +#include "atn/ATNSimulator.h" +#include "atn/ATNState.h" +#include "atn/ATNType.h" +#include "atn/ActionTransition.h" +#include "atn/AmbiguityInfo.h" +#include "atn/ArrayPredictionContext.h" +#include "atn/AtomTransition.h" +#include "atn/BasicBlockStartState.h" +#include "atn/BasicState.h" +#include "atn/BlockEndState.h" +#include "atn/BlockStartState.h" +#include "atn/ContextSensitivityInfo.h" +#include "atn/DecisionEventInfo.h" +#include "atn/DecisionInfo.h" +#include "atn/DecisionState.h" +#include "atn/EpsilonTransition.h" +#include "atn/ErrorInfo.h" +#include "atn/LL1Analyzer.h" +#include "atn/LexerATNConfig.h" +#include "atn/LexerATNSimulator.h" +#include "atn/LexerAction.h" +#include "atn/LexerActionExecutor.h" +#include "atn/LexerActionType.h" +#include "atn/LexerChannelAction.h" +#include "atn/LexerCustomAction.h" +#include "atn/LexerIndexedCustomAction.h" +#include "atn/LexerModeAction.h" +#include "atn/LexerMoreAction.h" +#include "atn/LexerPopModeAction.h" +#include "atn/LexerPushModeAction.h" +#include "atn/LexerSkipAction.h" +#include "atn/LexerTypeAction.h" +#include "atn/LookaheadEventInfo.h" +#include "atn/LoopEndState.h" +#include "atn/NotSetTransition.h" +#include "atn/OrderedATNConfigSet.h" +#include "atn/ParseInfo.h" +#include "atn/ParserATNSimulator.h" +#include "atn/ParserATNSimulatorOptions.h" +#include "atn/PlusBlockStartState.h" +#include "atn/PlusLoopbackState.h" +#include "atn/PrecedencePredicateTransition.h" +#include "atn/PredicateEvalInfo.h" +#include "atn/PredicateTransition.h" +#include "atn/PredictionContext.h" +#include "atn/PredictionContextCache.h" +#include "atn/PredictionContextMergeCache.h" +#include "atn/PredictionContextMergeCacheOptions.h" +#include "atn/PredictionMode.h" +#include "atn/ProfilingATNSimulator.h" +#include "atn/RangeTransition.h" +#include "atn/RuleStartState.h" +#include "atn/RuleStopState.h" +#include "atn/RuleTransition.h" +#include "atn/SemanticContext.h" +#include "atn/SerializedATNView.h" +#include "atn/SetTransition.h" +#include "atn/SingletonPredictionContext.h" +#include "atn/StarBlockStartState.h" +#include "atn/StarLoopEntryState.h" +#include "atn/StarLoopbackState.h" +#include "atn/TokensStartState.h" +#include "atn/Transition.h" +#include "atn/WildcardTransition.h" +#include "dfa/DFA.h" +#include "dfa/DFASerializer.h" +#include "dfa/DFAState.h" +#include "dfa/LexerDFASerializer.h" +#include "misc/InterpreterDataReader.h" +#include "misc/Interval.h" +#include "misc/IntervalSet.h" +#include "misc/MurmurHash.h" +#include "misc/Predicate.h" +#include "support/Any.h" +#include "support/Arrays.h" +#include "support/BitSet.h" +#include "support/Casts.h" +#include "support/CPPUtils.h" +#include "tree/AbstractParseTreeVisitor.h" +#include "tree/ErrorNode.h" +#include "tree/ErrorNodeImpl.h" +#include "tree/ParseTree.h" +#include "tree/ParseTreeListener.h" +#include "tree/ParseTreeProperty.h" +#include "tree/ParseTreeVisitor.h" +#include "tree/ParseTreeWalker.h" +#include "tree/TerminalNode.h" +#include "tree/TerminalNodeImpl.h" +#include "tree/Trees.h" +#include "tree/pattern/Chunk.h" +#include "tree/pattern/ParseTreeMatch.h" +#include "tree/pattern/ParseTreePattern.h" +#include "tree/pattern/ParseTreePatternMatcher.h" +#include "tree/pattern/RuleTagToken.h" +#include "tree/pattern/TagChunk.h" +#include "tree/pattern/TextChunk.h" +#include "tree/pattern/TokenTagToken.h" +#include "tree/xpath/XPath.h" +#include "tree/xpath/XPathElement.h" +#include "tree/xpath/XPathLexer.h" +#include "tree/xpath/XPathLexerErrorListener.h" +#include "tree/xpath/XPathRuleAnywhereElement.h" +#include "tree/xpath/XPathRuleElement.h" +#include "tree/xpath/XPathTokenAnywhereElement.h" +#include "tree/xpath/XPathTokenElement.h" +#include "tree/xpath/XPathWildcardAnywhereElement.h" +#include "tree/xpath/XPathWildcardElement.h" +#include "internal/Synchronization.h" From 5b437887c3f7c32b0e6db86c9ac0c91ec2d8dca7 Mon Sep 17 00:00:00 2001 From: xwei19 Date: Fri, 23 May 2025 14:18:26 +0000 Subject: [PATCH 02/55] Remove ANTLR for sql as well --- .../core/src/clp_s/search/sql/CMakeLists.txt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 8fbc1e9669..b469fd5185 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -5,28 +5,28 @@ # PACKAGE sql #) -set(ANTLR_GENERATED_KQL_CODE_DIR antlr_generated) +set(ANTLR_GENERATED_SQL_CODE_DIR antlr_generated) -set(ANTLR_GENERATED_KQL_CODE - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlBaseVisitor.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlBaseVisitor.h - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlLexer.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlLexer.h - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlParser.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlParser.h - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlVisitor.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/SqlVisitor.h +set(ANTLR_GENERATED_SQL_CODE + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlBaseVisitor.cpp + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlBaseVisitor.h + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlLexer.cpp + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlLexer.h + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlParser.cpp + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlParser.h + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlVisitor.cpp + ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlVisitor.h ) add_library( sql ../antlr_common/ErrorListener.hpp - ${ANTLR_GENERATED_KQL_CODE} + ${ANTLR_GENERATED_SQL_CODE} sql.cpp sql.hpp ) target_compile_features(sql PRIVATE cxx_std_20) -target_include_directories(sql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR}) +target_include_directories(sql PRIVATE ${ANTLR_GENERATED_SQL_CODE_DIR}) target_link_libraries( sql PRIVATE From 19f1e8051a90b42cf0eec2360babbf827703a53b Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Mon, 26 May 2025 14:19:25 -0400 Subject: [PATCH 03/55] Add ANTLR generation to task and exempt lint check for generated code --- components/core/cmake/Modules/FindANTLR.cmake | 138 ------------------ .../kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- .../kql/antlr_generated/KqlBaseVisitor.h | 2 +- .../search/kql/antlr_generated/KqlLexer.cpp | 2 +- .../search/kql/antlr_generated/KqlLexer.h | 2 +- .../search/kql/antlr_generated/KqlParser.cpp | 2 +- .../search/kql/antlr_generated/KqlParser.h | 2 +- .../search/kql/antlr_generated/KqlVisitor.cpp | 2 +- .../search/kql/antlr_generated/KqlVisitor.h | 2 +- .../sql/antlr_generated/SqlBaseVisitor.cpp | 2 +- .../sql/antlr_generated/SqlBaseVisitor.h | 2 +- .../search/sql/antlr_generated/SqlLexer.cpp | 2 +- .../search/sql/antlr_generated/SqlLexer.h | 2 +- .../search/sql/antlr_generated/SqlParser.cpp | 2 +- .../search/sql/antlr_generated/SqlParser.h | 2 +- .../search/sql/antlr_generated/SqlVisitor.cpp | 2 +- .../search/sql/antlr_generated/SqlVisitor.h | 2 +- taskfile.yaml | 10 ++ taskfiles/lint.yaml | 8 + 19 files changed, 34 insertions(+), 154 deletions(-) delete mode 100644 components/core/cmake/Modules/FindANTLR.cmake diff --git a/components/core/cmake/Modules/FindANTLR.cmake b/components/core/cmake/Modules/FindANTLR.cmake deleted file mode 100644 index 6e2f96d2b5..0000000000 --- a/components/core/cmake/Modules/FindANTLR.cmake +++ /dev/null @@ -1,138 +0,0 @@ -# NOTE: FindANTLR.cmake taken from -# https://github.com/antlr/antlr4/blob/4.13.1/runtime/Cpp/cmake/FindANTLR.cmake - -# TODO: Clean up ANTLR cmake files -# On macOS, the way Java is installed with brew doesn't also make it the default version of Java on -# the system. So we set JAVA_HOME to the install location here. -if (APPLE) - set(ENV{JAVA_HOME} "/usr/local/opt/openjdk@11/") -endif () - -set(ANTLR4_TAG 4.13.1) -add_definitions(-DANTLR4CPP_STATIC) -include(ExternalAntlr4Cpp) - -find_package(Java 11 REQUIRED COMPONENTS Runtime) - -if(NOT ANTLR_EXECUTABLE) - find_program(ANTLR_EXECUTABLE - NAMES antlr.jar antlr4.jar antlr-4.jar antlr-${ANTLR4_TAG}-complete.jar) -endif() - -if(ANTLR_EXECUTABLE AND Java_JAVA_EXECUTABLE) - execute_process( - COMMAND ${Java_JAVA_EXECUTABLE} -jar ${ANTLR_EXECUTABLE} - OUTPUT_VARIABLE ANTLR_COMMAND_OUTPUT - ERROR_VARIABLE ANTLR_COMMAND_ERROR - RESULT_VARIABLE ANTLR_COMMAND_RESULT - OUTPUT_STRIP_TRAILING_WHITESPACE) - - if(ANTLR_COMMAND_RESULT EQUAL 0) - string(REGEX MATCH "Version [0-9]+(\\.[0-9]+)*" ANTLR_VERSION ${ANTLR_COMMAND_OUTPUT}) - string(REPLACE "Version " "" ANTLR_VERSION ${ANTLR_VERSION}) - else() - message( - SEND_ERROR - "Command '${Java_JAVA_EXECUTABLE} -jar ${ANTLR_EXECUTABLE}' " - "failed with the output '${ANTLR_COMMAND_ERROR}'") - endif() - - macro(ANTLR_TARGET Name InputFile) - set(ANTLR_OPTIONS LEXER PARSER LISTENER VISITOR) - set(ANTLR_ONE_VALUE_ARGS PACKAGE OUTPUT_DIRECTORY DEPENDS_ANTLR) - set(ANTLR_MULTI_VALUE_ARGS COMPILE_FLAGS DEPENDS) - cmake_parse_arguments(ANTLR_TARGET - "${ANTLR_OPTIONS}" - "${ANTLR_ONE_VALUE_ARGS}" - "${ANTLR_MULTI_VALUE_ARGS}" - ${ARGN}) - - set(ANTLR_${Name}_INPUT ${InputFile}) - - get_filename_component(ANTLR_INPUT ${InputFile} NAME_WE) - - if(ANTLR_TARGET_OUTPUT_DIRECTORY) - set(ANTLR_${Name}_OUTPUT_DIR ${ANTLR_TARGET_OUTPUT_DIRECTORY}) - else() - set(ANTLR_${Name}_OUTPUT_DIR - ${CMAKE_CURRENT_BINARY_DIR}/antlr4cpp_generated_src/${ANTLR_INPUT}) - endif() - - unset(ANTLR_${Name}_CXX_OUTPUTS) - - if((ANTLR_TARGET_LEXER AND NOT ANTLR_TARGET_PARSER) OR - (ANTLR_TARGET_PARSER AND NOT ANTLR_TARGET_LEXER)) - list(APPEND ANTLR_${Name}_CXX_OUTPUTS - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}.cpp) - set(ANTLR_${Name}_OUTPUTS - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}.interp - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}.tokens) - else() - list(APPEND ANTLR_${Name}_CXX_OUTPUTS - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Lexer.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Lexer.cpp - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Parser.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Parser.cpp) - list(APPEND ANTLR_${Name}_OUTPUTS - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Lexer.interp - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Lexer.tokens) - endif() - - if(ANTLR_TARGET_LISTENER) - list(APPEND ANTLR_${Name}_CXX_OUTPUTS - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}BaseListener.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}BaseListener.cpp - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Listener.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Listener.cpp) - list(APPEND ANTLR_TARGET_COMPILE_FLAGS -listener) - endif() - - if(ANTLR_TARGET_VISITOR) - list(APPEND ANTLR_${Name}_CXX_OUTPUTS - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}BaseVisitor.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}BaseVisitor.cpp - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Visitor.h - ${ANTLR_${Name}_OUTPUT_DIR}/${ANTLR_INPUT}Visitor.cpp) - list(APPEND ANTLR_TARGET_COMPILE_FLAGS -visitor) - endif() - - if(ANTLR_TARGET_PACKAGE) - list(APPEND ANTLR_TARGET_COMPILE_FLAGS -package ${ANTLR_TARGET_PACKAGE}) - endif() - - list(APPEND ANTLR_${Name}_OUTPUTS ${ANTLR_${Name}_CXX_OUTPUTS}) - - if(ANTLR_TARGET_DEPENDS_ANTLR) - if(ANTLR_${ANTLR_TARGET_DEPENDS_ANTLR}_INPUT) - list(APPEND ANTLR_TARGET_DEPENDS - ${ANTLR_${ANTLR_TARGET_DEPENDS_ANTLR}_INPUT}) - list(APPEND ANTLR_TARGET_DEPENDS - ${ANTLR_${ANTLR_TARGET_DEPENDS_ANTLR}_OUTPUTS}) - else() - message(SEND_ERROR - "ANTLR target '${ANTLR_TARGET_DEPENDS_ANTLR}' not found") - endif() - endif() - - add_custom_command( - OUTPUT ${ANTLR_${Name}_OUTPUTS} - COMMAND ${Java_JAVA_EXECUTABLE} -jar ${ANTLR_EXECUTABLE} - ${InputFile} - -o ${ANTLR_${Name}_OUTPUT_DIR} - -no-listener - -Dlanguage=Cpp - ${ANTLR_TARGET_COMPILE_FLAGS} - DEPENDS ${InputFile} - ${ANTLR_TARGET_DEPENDS} - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Building ${Name} with ANTLR ${ANTLR_VERSION}") - endmacro(ANTLR_TARGET) - -endif(ANTLR_EXECUTABLE AND Java_JAVA_EXECUTABLE) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - ANTLR - REQUIRED_VARS ANTLR_EXECUTABLE Java_JAVA_EXECUTABLE - VERSION_VAR ANTLR_VERSION) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 6616c91e48..f40d47c257 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlBaseVisitor.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h index 3be6a7523b..d5fdf7d926 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp index 303d9d80c2..0aaf5b1235 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlLexer.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h index 7d02ebba86..a9cd09b239 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp index 0d34ead2a7..54bb135e95 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlVisitor.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h index 070e582ddd..01afbb4c7f 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp index a03846dff9..d4a3da0aa3 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlVisitor.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h index e881f6817f..fb4b52f26f 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h @@ -1,5 +1,5 @@ -// Generated from Kql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp index e985bc53a0..ecac108a03 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlBaseVisitor.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h index 3ed201e14e..9eae443c3f 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp index c29063781c..bb065b97d7 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlLexer.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h index 460fe49b80..f3afeb536c 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp index 067a2092c2..36ff6e72c2 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlVisitor.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h index 2e53dea741..e6156c7764 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp index 0dae05eff9..43022247f2 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlVisitor.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h index abe8891bae..6d92768a32 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h @@ -1,5 +1,5 @@ -// Generated from Sql.g4 by ANTLR 4.13.1 +// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/taskfile.yaml b/taskfile.yaml index 3bbc77a4c2..d4f9e65d74 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -86,6 +86,16 @@ tasks: FLAVOUR: "text" STORAGE_ENGINE: "clp" + clp-s-generate-antlr: + sources: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" + cmds: + # Note when bump the antlr runtime version we may also need to bump this + - "curl -o /tmp/antlr-4.13.1-complete.jar https://www.antlr.org/download/antlr-4.13.1-complete.jar" + - "java -jar /tmp/antlr-4.13.1-complete.jar -Dlanguage=Cpp -no-listener -visitor -package kql -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" + - "java -jar /tmp/antlr-4.13.1-complete.jar -Dlanguage=Cpp -no-listener -visitor -package sql -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" + - "rm -f /tmp/antlr-4.13.1-complete.jar" package: env: NODE_ENV: "production" diff --git a/taskfiles/lint.yaml b/taskfiles/lint.yaml index 0a0e245db2..1897257a65 100644 --- a/taskfiles/lint.yaml +++ b/taskfiles/lint.yaml @@ -135,6 +135,9 @@ tasks: cmds: - task: ":utils:cpp-lint:clang-format" vars: + EXCLUDE_PATTERNS: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" FLAGS: ["--dry-run"] INCLUDE_FILENAME_PATTERNS: ["*.cpp", "*.h", "*.hpp", "*.inc"] ROOT_PATHS: *cpp_source_files @@ -146,6 +149,9 @@ tasks: cmds: - task: ":utils:cpp-lint:clang-format" vars: + EXCLUDE_PATTERNS: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" FLAGS: ["-i"] INCLUDE_FILENAME_PATTERNS: ["*.cpp", "*.h", "*.hpp", "*.inc"] ROOT_PATHS: *cpp_source_files @@ -490,6 +496,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/clp_search/Query.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/EvaluateTimestampIndex.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/EvaluateTimestampIndex.hpp" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/kql.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/kql.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/Output.cpp" @@ -502,6 +509,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/QueryRunner.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/SchemaMatch.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/SchemaMatch.hpp" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/sql.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/SingleFileArchiveDefs.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/TimestampDictionaryReader.cpp" From 19a6cc4d4bf47b7d01f6da75c9993d0ae90810c9 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Mon, 26 May 2025 14:26:31 -0400 Subject: [PATCH 04/55] Fix lint --- taskfiles/lint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taskfiles/lint.yaml b/taskfiles/lint.yaml index 1897257a65..ae81855a26 100644 --- a/taskfiles/lint.yaml +++ b/taskfiles/lint.yaml @@ -135,7 +135,7 @@ tasks: cmds: - task: ":utils:cpp-lint:clang-format" vars: - EXCLUDE_PATTERNS: + EXCLUDE_PATTERNS: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" FLAGS: ["--dry-run"] @@ -149,7 +149,7 @@ tasks: cmds: - task: ":utils:cpp-lint:clang-format" vars: - EXCLUDE_PATTERNS: + EXCLUDE_PATTERNS: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" FLAGS: ["-i"] From 8c8a6f36da361532a6f855ac08f79bee3e6680f0 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Mon, 26 May 2025 14:37:14 -0400 Subject: [PATCH 05/55] Fix lint --- taskfile.yaml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index d4f9e65d74..d043e29730 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -91,11 +91,25 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" cmds: - # Note when bump the antlr runtime version we may also need to bump this - "curl -o /tmp/antlr-4.13.1-complete.jar https://www.antlr.org/download/antlr-4.13.1-complete.jar" - - "java -jar /tmp/antlr-4.13.1-complete.jar -Dlanguage=Cpp -no-listener -visitor -package kql -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - - "java -jar /tmp/antlr-4.13.1-complete.jar -Dlanguage=Cpp -no-listener -visitor -package sql -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" + - | + java -jar /tmp/antlr-4.13.1-complete.jar \ + -Dlanguage=Cpp \ + -no-listener \ + -visitor \ + -package kql \ + -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ + {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4 + - | + java -jar /tmp/antlr-4.13.1-complete.jar \ + -Dlanguage=Cpp \ + -no-listener \ + -visitor \ + -package sql \ + -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated \ + {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4 - "rm -f /tmp/antlr-4.13.1-complete.jar" + package: env: NODE_ENV: "production" From 8ba8191b1899885508392730d347912ba492a259 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Mon, 26 May 2025 15:01:19 -0400 Subject: [PATCH 06/55] Fix Devin comments --- .../core/src/clp_s/search/kql/CMakeLists.txt | 7 ------- .../kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- .../search/kql/antlr_generated/KqlBaseVisitor.h | 4 ++-- .../search/kql/antlr_generated/KqlLexer.cpp | 2 +- .../clp_s/search/kql/antlr_generated/KqlLexer.h | 4 ++-- .../search/kql/antlr_generated/KqlParser.cpp | 2 +- .../clp_s/search/kql/antlr_generated/KqlParser.h | 4 ++-- .../search/kql/antlr_generated/KqlVisitor.cpp | 2 +- .../search/kql/antlr_generated/KqlVisitor.h | 4 ++-- components/core/src/clp_s/search/kql/kql.cpp | 1 - .../core/src/clp_s/search/sql/CMakeLists.txt | 7 ------- .../sql/antlr_generated/SqlBaseVisitor.cpp | 2 +- .../search/sql/antlr_generated/SqlBaseVisitor.h | 4 ++-- .../search/sql/antlr_generated/SqlLexer.cpp | 2 +- .../clp_s/search/sql/antlr_generated/SqlLexer.h | 4 ++-- .../search/sql/antlr_generated/SqlParser.cpp | 2 +- .../clp_s/search/sql/antlr_generated/SqlParser.h | 4 ++-- .../search/sql/antlr_generated/SqlVisitor.cpp | 2 +- .../search/sql/antlr_generated/SqlVisitor.h | 4 ++-- components/core/src/clp_s/search/sql/sql.cpp | 3 --- taskfile.yaml | 16 +++++++++++++--- 21 files changed, 37 insertions(+), 45 deletions(-) diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index ea612175f5..e3eea832ed 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,10 +1,3 @@ -#ANTLR_TARGET( -# KqlParser -# Kql.g4 -# LEXER PARSER VISITOR -# PACKAGE kql -#) - set(ANTLR_GENERATED_KQL_CODE_DIR antlr_generated) set(ANTLR_GENERATED_KQL_CODE diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index f40d47c257..35077a1ec6 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -5,5 +5,5 @@ #include "KqlBaseVisitor.h" -using namespace kql; +using namespace clp_s::search::kql; diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h index d5fdf7d926..7f01e495ee 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -8,7 +8,7 @@ #include "KqlVisitor.h" -namespace kql { +namespace clp_s::search::kql { /** * This class provides an empty implementation of KqlVisitor, which can be @@ -68,4 +68,4 @@ class KqlBaseVisitor : public KqlVisitor { }; -} // namespace kql +} // namespace clp_s::search::kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp index 0aaf5b1235..f7b99c015f 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp @@ -7,7 +7,7 @@ using namespace antlr4; -using namespace kql; +using namespace clp_s::search::kql; using namespace antlr4; diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h index a9cd09b239..b9b12a5b8c 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace kql { +namespace clp_s::search::kql { class KqlLexer : public antlr4::Lexer { @@ -50,4 +50,4 @@ class KqlLexer : public antlr4::Lexer { }; -} // namespace kql +} // namespace clp_s::search::kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp index 54bb135e95..f05c0417af 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp @@ -8,7 +8,7 @@ using namespace antlrcpp; -using namespace kql; +using namespace clp_s::search::kql; using namespace antlr4; diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h index 01afbb4c7f..9fce9043e3 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace kql { +namespace clp_s::search::kql { class KqlParser : public antlr4::Parser { @@ -249,4 +249,4 @@ class KqlParser : public antlr4::Parser { private: }; -} // namespace kql +} // namespace clp_s::search::kql diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp index d4a3da0aa3..4a19fe58a7 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp @@ -5,5 +5,5 @@ #include "KqlVisitor.h" -using namespace kql; +using namespace clp_s::search::kql; diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h index fb4b52f26f..06c6d4156e 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h @@ -8,7 +8,7 @@ #include "KqlParser.h" -namespace kql { +namespace clp_s::search::kql { /** * This class defines an abstract visitor for a parse tree @@ -47,4 +47,4 @@ class KqlVisitor : public antlr4::tree::AbstractParseTreeVisitor { }; -} // namespace kql +} // namespace clp_s::search::kql diff --git a/components/core/src/clp_s/search/kql/kql.cpp b/components/core/src/clp_s/search/kql/kql.cpp index a67f5422b2..9e4c781baf 100644 --- a/components/core/src/clp_s/search/kql/kql.cpp +++ b/components/core/src/clp_s/search/kql/kql.cpp @@ -26,7 +26,6 @@ #include "KqlParser.h" using namespace antlr4; -using namespace kql; using clp_s::search::antlr_common::ErrorListener; using clp_s::search::ast::AndExpr; diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index b469fd5185..74c0324ad1 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,10 +1,3 @@ -#ANTLR_TARGET( -# SqlParser -# Sql.g4 -# LEXER PARSER VISITOR -# PACKAGE sql -#) - set(ANTLR_GENERATED_SQL_CODE_DIR antlr_generated) set(ANTLR_GENERATED_SQL_CODE diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp index ecac108a03..5bfccd9ebf 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp @@ -5,5 +5,5 @@ #include "SqlBaseVisitor.h" -using namespace sql; +using namespace clp_s::search::sql; diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h index 9eae443c3f..6270b5db35 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h @@ -8,7 +8,7 @@ #include "SqlVisitor.h" -namespace sql { +namespace clp_s::search::sql { /** * This class provides an empty implementation of SqlVisitor, which can be @@ -24,4 +24,4 @@ class SqlBaseVisitor : public SqlVisitor { }; -} // namespace sql +} // namespace clp_s::search::sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp index bb065b97d7..b140045c50 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp @@ -7,7 +7,7 @@ using namespace antlr4; -using namespace sql; +using namespace clp_s::search::sql; using namespace antlr4; diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h index f3afeb536c..aec7e9844a 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace sql { +namespace clp_s::search::sql { class SqlLexer : public antlr4::Lexer { @@ -48,4 +48,4 @@ class SqlLexer : public antlr4::Lexer { }; -} // namespace sql +} // namespace clp_s::search::sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp index 36ff6e72c2..449d27b4c4 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp @@ -8,7 +8,7 @@ using namespace antlrcpp; -using namespace sql; +using namespace clp_s::search::sql; using namespace antlr4; diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h index e6156c7764..d3a5518b78 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace sql { +namespace clp_s::search::sql { class SqlParser : public antlr4::Parser { @@ -61,4 +61,4 @@ class SqlParser : public antlr4::Parser { private: }; -} // namespace sql +} // namespace clp_s::search::sql diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp index 43022247f2..b55865f17d 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp @@ -5,5 +5,5 @@ #include "SqlVisitor.h" -using namespace sql; +using namespace clp_s::search::sql; diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h index 6d92768a32..f3272ebef3 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h @@ -8,7 +8,7 @@ #include "SqlParser.h" -namespace sql { +namespace clp_s::search::sql { /** * This class defines an abstract visitor for a parse tree @@ -25,4 +25,4 @@ class SqlVisitor : public antlr4::tree::AbstractParseTreeVisitor { }; -} // namespace sql +} // namespace clp_s::search::sql diff --git a/components/core/src/clp_s/search/sql/sql.cpp b/components/core/src/clp_s/search/sql/sql.cpp index a1f75391fd..95675886a8 100644 --- a/components/core/src/clp_s/search/sql/sql.cpp +++ b/components/core/src/clp_s/search/sql/sql.cpp @@ -15,9 +15,6 @@ using antlr4::ANTLRInputStream; using antlr4::CommonTokenStream; using clp_s::search::antlr_common::ErrorListener; -using sql::SqlBaseVisitor; -using sql::SqlLexer; -using sql::SqlParser; using clp_s::search::ast::EmptyExpr; using clp_s::search::ast::Expression; diff --git a/taskfile.yaml b/taskfile.yaml index d043e29730..127d0c08b7 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -87,17 +87,27 @@ tasks: STORAGE_ENGINE: "clp" clp-s-generate-antlr: + preconditions: + - sh: which curl >/dev/null + msg: "curl is required to download the ANTLR JAR" + - sh: which java >/dev/null + msg: "Java is required for ANTLR code generation" sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" + generates: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" cmds: - - "curl -o /tmp/antlr-4.13.1-complete.jar https://www.antlr.org/download/antlr-4.13.1-complete.jar" + - | + curl -o /tmp/antlr-4.13.1-complete.jar \ + https://www.antlr.org/download/antlr-4.13.1-complete.jar - | java -jar /tmp/antlr-4.13.1-complete.jar \ -Dlanguage=Cpp \ -no-listener \ -visitor \ - -package kql \ + -package clp_s::search::kql \ -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4 - | @@ -105,7 +115,7 @@ tasks: -Dlanguage=Cpp \ -no-listener \ -visitor \ - -package sql \ + -package clp_s::search::sql \ -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated \ {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4 - "rm -f /tmp/antlr-4.13.1-complete.jar" From fc1f64ca73e1c34a2bf422e21327dc48b1ac9e8f Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Mon, 26 May 2025 15:14:24 -0400 Subject: [PATCH 07/55] Fix lint --- taskfile.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index 127d0c08b7..02ba13e00a 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -88,9 +88,9 @@ tasks: clp-s-generate-antlr: preconditions: - - sh: which curl >/dev/null + - sh: "which curl >/dev/null" msg: "curl is required to download the ANTLR JAR" - - sh: which java >/dev/null + - sh: "which java >/dev/null" msg: "Java is required for ANTLR code generation" sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" From a7072be0ca564c4c20f268459226b511553df14e Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 12:59:09 -0400 Subject: [PATCH 08/55] Test --- .../src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 35077a1ec6..9feac1413e 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -5,5 +5,5 @@ #include "KqlBaseVisitor.h" -using namespace clp_s::search::kql; +using namespace clp_s::search::kql From 17e38009329d60affe9ccff94e332fd15cdd085e Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 13:18:02 -0400 Subject: [PATCH 09/55] Add github workflow --- .github/workflows/clp-s-antlr-generation.yaml | 43 +++++++++++++++++++ .../kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- taskfile.yaml | 14 ++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/clp-s-antlr-generation.yaml diff --git a/.github/workflows/clp-s-antlr-generation.yaml b/.github/workflows/clp-s-antlr-generation.yaml new file mode 100644 index 0000000000..c16dfed66f --- /dev/null +++ b/.github/workflows/clp-s-antlr-generation.yaml @@ -0,0 +1,43 @@ +name: "clp-s-antlr-generation" + +on: + pull_request: + push: + schedule: + # Run daily at 00:15 UTC (the 15 is to avoid periods of high load) + - cron: "15 0 * * *" + workflow_dispatch: + +concurrency: + group: "${{github.workflow}}-${{github.ref}}" + # Cancel in-progress jobs for efficiency + cancel-in-progress: true + +jobs: + antlr-generation-check: + name: "antlr-generation-check" + strategy: + matrix: + os: ["macos-latest", "ubuntu-latest"] + runs-on: "${{matrix.os}}" + steps: + - uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" + with: + submodules: "recursive" + + - uses: "actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38" + with: + python-version: "3.11" + + - name: "Install task" + shell: "bash" + run: "npm install -g @go-task/cli" + + - if: "matrix.os == 'macos-latest'" + name: "Install coreutils (for md5sum)" + run: "brew install coreutils" + + - name: "Run clp-s-genrate-antlr-check task" + shell: "bash" + run: "task clp-s-generate-antlr-check" + \ No newline at end of file diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 9feac1413e..35077a1ec6 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -5,5 +5,5 @@ #include "KqlBaseVisitor.h" -using namespace clp_s::search::kql +using namespace clp_s::search::kql; diff --git a/taskfile.yaml b/taskfile.yaml index 02ba13e00a..fb2f6a7d0f 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -94,7 +94,9 @@ tasks: msg: "Java is required for ANTLR code generation" sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" generates: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" @@ -119,6 +121,18 @@ tasks: -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated \ {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4 - "rm -f /tmp/antlr-4.13.1-complete.jar" + + clp-s-generate-antlr-check: + deps: + - "clp-s-generate-antlr" + cmds: + - | + git status --porcelain \ + {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ + {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated \ + | grep . > /dev/null \ + && exit 1 \ + || exit 0 package: env: From bd0abcd57a10d3b554eda8b16afafe35dc44ae9d Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 13:29:30 -0400 Subject: [PATCH 10/55] Fix --- .github/workflows/clp-s-antlr-generation.yaml | 3 +-- .../src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- taskfile.yaml | 4 ++++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/clp-s-antlr-generation.yaml b/.github/workflows/clp-s-antlr-generation.yaml index c16dfed66f..829d5a7105 100644 --- a/.github/workflows/clp-s-antlr-generation.yaml +++ b/.github/workflows/clp-s-antlr-generation.yaml @@ -37,7 +37,6 @@ jobs: name: "Install coreutils (for md5sum)" run: "brew install coreutils" - - name: "Run clp-s-genrate-antlr-check task" + - name: "Run clp-s-generate-antlr-check task" shell: "bash" run: "task clp-s-generate-antlr-check" - \ No newline at end of file diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 35077a1ec6..9feac1413e 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -5,5 +5,5 @@ #include "KqlBaseVisitor.h" -using namespace clp_s::search::kql; +using namespace clp_s::search::kql diff --git a/taskfile.yaml b/taskfile.yaml index fb2f6a7d0f..f95520e8a4 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -126,6 +126,10 @@ tasks: deps: - "clp-s-generate-antlr" cmds: + - | + git status --porcelain \ + {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ + {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated - | git status --porcelain \ {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ From d0daacf212e96db0ba5c0152f76ab0531421637e Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 13:30:35 -0400 Subject: [PATCH 11/55] Fix --- .../src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 9feac1413e..35077a1ec6 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -5,5 +5,5 @@ #include "KqlBaseVisitor.h" -using namespace clp_s::search::kql +using namespace clp_s::search::kql; From ddb047c416654179226eacfbabba99afd8d7d8c6 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 14:34:19 -0400 Subject: [PATCH 12/55] Fix --- .../search/kql/antlr_generated/KqlBaseVisitor.cpp | 2 +- .../clp_s/search/kql/antlr_generated/KqlBaseVisitor.h | 2 +- .../src/clp_s/search/kql/antlr_generated/KqlLexer.cpp | 2 +- .../src/clp_s/search/kql/antlr_generated/KqlLexer.h | 2 +- .../clp_s/search/kql/antlr_generated/KqlParser.cpp | 2 +- .../src/clp_s/search/kql/antlr_generated/KqlParser.h | 2 +- .../clp_s/search/kql/antlr_generated/KqlVisitor.cpp | 2 +- .../src/clp_s/search/kql/antlr_generated/KqlVisitor.h | 2 +- .../search/sql/antlr_generated/SqlBaseVisitor.cpp | 2 +- .../clp_s/search/sql/antlr_generated/SqlBaseVisitor.h | 2 +- .../src/clp_s/search/sql/antlr_generated/SqlLexer.cpp | 2 +- .../src/clp_s/search/sql/antlr_generated/SqlLexer.h | 2 +- .../clp_s/search/sql/antlr_generated/SqlParser.cpp | 2 +- .../src/clp_s/search/sql/antlr_generated/SqlParser.h | 2 +- .../clp_s/search/sql/antlr_generated/SqlVisitor.cpp | 2 +- .../src/clp_s/search/sql/antlr_generated/SqlVisitor.h | 2 +- taskfile.yaml | 11 +++++++---- 17 files changed, 23 insertions(+), 20 deletions(-) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 35077a1ec6..5621e08c44 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlBaseVisitor.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h index 7f01e495ee..e05081c36b 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp index f7b99c015f..6a90ab6f03 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlLexer.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h index b9b12a5b8c..b73896b11e 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp index f05c0417af..cab30172fe 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlVisitor.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h index 9fce9043e3..cfd1ede6c0 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp index 4a19fe58a7..8081a551de 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #include "KqlVisitor.h" diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h index 06c6d4156e..c4177e37c2 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp index 5bfccd9ebf..68681e7b3d 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlBaseVisitor.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h index 6270b5db35..ae820be3ba 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp index b140045c50..99b3d9f1d8 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlLexer.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h index aec7e9844a..b7425780ee 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp index 449d27b4c4..b6bed8995a 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlVisitor.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h index d3a5518b78..03be292d7f 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp index b55865f17d..000412da11 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #include "SqlVisitor.h" diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h index f3272ebef3..ae0021de4c 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h @@ -1,5 +1,5 @@ -// Generated from /mnt/clp/components/core/src/clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 #pragma once diff --git a/taskfile.yaml b/taskfile.yaml index f95520e8a4..56bd244bf1 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -97,6 +97,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" + dir: "{{.G_CORE_COMPONENT_DIR}}/src/" generates: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" @@ -110,16 +111,18 @@ tasks: -no-listener \ -visitor \ -package clp_s::search::kql \ - -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ - {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4 + -o clp_s/search/kql/antlr_generated \ + -Xexact-output-dir \ + clp_s/search/kql/Kql.g4 - | java -jar /tmp/antlr-4.13.1-complete.jar \ -Dlanguage=Cpp \ -no-listener \ -visitor \ -package clp_s::search::sql \ - -o {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated \ - {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4 + -o clp_s/search/sql/antlr_generated \ + -Xexact-output-dir \ + clp_s/search/sql/Sql.g4 - "rm -f /tmp/antlr-4.13.1-complete.jar" clp-s-generate-antlr-check: From b9f16ea3e4b7443dbcd9ece14418d539ff88d9a5 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 14:40:21 -0400 Subject: [PATCH 13/55] Fix lint --- taskfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfile.yaml b/taskfile.yaml index 56bd244bf1..7122e2d624 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -124,7 +124,7 @@ tasks: -Xexact-output-dir \ clp_s/search/sql/Sql.g4 - "rm -f /tmp/antlr-4.13.1-complete.jar" - + clp-s-generate-antlr-check: deps: - "clp-s-generate-antlr" From b2ec42f1e1e794740a6a71d289f0b6f7edc38dc4 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 16:06:15 -0400 Subject: [PATCH 14/55] Fix --- taskfile.yaml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index 7122e2d624..4e374b888f 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -35,6 +35,12 @@ vars: # Versions G_PACKAGE_VERSION: "0.2.0-dev" + # ANTLR related + G_ANTLR_VERSION: "4.13.1" + G_ANTLR_JAR_NAME: "antlr-{{.G_ANTLR_VERSION}}-complete.jar" + G_ANTLR_JAR_PATH: "/tmp/{{.G_ANTLR_JAR_NAME}}" + G_ANTLR_DOWNLOAD_URL: "https://www.antlr.org/download/{{.G_ANTLR_JAR_NAME}}" + tasks: default: deps: ["package"] @@ -94,19 +100,16 @@ tasks: msg: "Java is required for ANTLR code generation" sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" dir: "{{.G_CORE_COMPONENT_DIR}}/src/" generates: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" cmds: - | - curl -o /tmp/antlr-4.13.1-complete.jar \ - https://www.antlr.org/download/antlr-4.13.1-complete.jar + curl -o {{.G_ANTLR_JAR_PATH}} {{.G_ANTLR_DOWNLOAD_URL}} - | - java -jar /tmp/antlr-4.13.1-complete.jar \ + java -jar {{.G_ANTLR_JAR_PATH}} \ -Dlanguage=Cpp \ -no-listener \ -visitor \ @@ -115,7 +118,7 @@ tasks: -Xexact-output-dir \ clp_s/search/kql/Kql.g4 - | - java -jar /tmp/antlr-4.13.1-complete.jar \ + java -jar {{.G_ANTLR_JAR_PATH}} \ -Dlanguage=Cpp \ -no-listener \ -visitor \ @@ -123,7 +126,7 @@ tasks: -o clp_s/search/sql/antlr_generated \ -Xexact-output-dir \ clp_s/search/sql/Sql.g4 - - "rm -f /tmp/antlr-4.13.1-complete.jar" + - "rm -f {{.G_ANTLR_JAR_PATH}}" clp-s-generate-antlr-check: deps: From 9d121af4eeece30db1c2f3cff21afd368ecf384d Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Tue, 27 May 2025 16:32:51 -0400 Subject: [PATCH 15/55] Fix --- taskfile.yaml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index 4e374b888f..2403a4d16e 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -106,8 +106,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" cmds: - - | - curl -o {{.G_ANTLR_JAR_PATH}} {{.G_ANTLR_DOWNLOAD_URL}} + - "curl -o {{.G_ANTLR_JAR_PATH}} {{.G_ANTLR_DOWNLOAD_URL}}" - | java -jar {{.G_ANTLR_JAR_PATH}} \ -Dlanguage=Cpp \ @@ -132,10 +131,6 @@ tasks: deps: - "clp-s-generate-antlr" cmds: - - | - git status --porcelain \ - {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ - {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated - | git status --porcelain \ {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ From 1210f2b53eefb91c7439a16073d160b664bf3555 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 28 May 2025 13:54:03 -0400 Subject: [PATCH 16/55] Minor refactor --- .../core/src/clp_s/search/kql/CMakeLists.txt | 2 +- .../search/kql/antlr_generated/Kql.interp | 47 ----- .../search/kql/antlr_generated/Kql.tokens | 19 -- .../kql/antlr_generated/KqlLexer.interp | 68 ------- .../kql/antlr_generated/KqlLexer.tokens | 19 -- .../kql/antlr_generated/antlr4-runtime.h | 168 ------------------ .../core/src/clp_s/search/sql/CMakeLists.txt | 2 +- .../search/sql/antlr_generated/Sql.interp | 14 -- .../search/sql/antlr_generated/Sql.tokens | 1 - .../sql/antlr_generated/SqlLexer.interp | 20 --- .../sql/antlr_generated/SqlLexer.tokens | 1 - .../sql/antlr_generated/antlr4-runtime.h | 168 ------------------ taskfile.yaml | 8 +- taskfiles/deps/main.yaml | 35 ++-- 14 files changed, 20 insertions(+), 552 deletions(-) delete mode 100644 components/core/src/clp_s/search/kql/antlr_generated/Kql.interp delete mode 100644 components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens delete mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp delete mode 100644 components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens delete mode 100644 components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h delete mode 100644 components/core/src/clp_s/search/sql/antlr_generated/Sql.interp delete mode 100644 components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens delete mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp delete mode 100644 components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens delete mode 100644 components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index e3eea832ed..10755914ce 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -19,7 +19,7 @@ add_library( kql.hpp ) target_compile_features(kql PRIVATE cxx_std_20) -target_include_directories(kql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR}) +target_include_directories(kql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR} ${ANTLR_RUNTIME_HEADER}) target_link_libraries( kql PRIVATE diff --git a/components/core/src/clp_s/search/kql/antlr_generated/Kql.interp b/components/core/src/clp_s/search/kql/antlr_generated/Kql.interp deleted file mode 100644 index 9abeb35417..0000000000 --- a/components/core/src/clp_s/search/kql/antlr_generated/Kql.interp +++ /dev/null @@ -1,47 +0,0 @@ -token literal names: -null -':' -'{' -'}' -'(' -')' -null -null -null -null -null -null -null -null -null - -token symbolic names: -null -null -null -null -null -null -AND -OR -NOT -DATE_LITERAL -LITERAL -QUOTED_STRING -UNQUOTED_LITERAL -RANGE_OPERATOR -SPACE - -rule names: -start -query -expression -column_range_expression -column_value_expression -column -value_expression -list_of_values - - -atn: -[4, 1, 14, 78, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 34, 8, 1, 1, 1, 1, 1, 1, 1, 5, 1, 39, 8, 1, 10, 1, 12, 1, 42, 9, 1, 1, 2, 1, 2, 1, 2, 3, 2, 47, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 53, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 60, 8, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 3, 7, 68, 8, 7, 1, 7, 5, 7, 71, 8, 7, 10, 7, 12, 7, 74, 9, 7, 1, 7, 1, 7, 1, 7, 0, 1, 2, 8, 0, 2, 4, 6, 8, 10, 12, 14, 0, 2, 1, 0, 6, 7, 1, 0, 6, 8, 80, 0, 16, 1, 0, 0, 0, 2, 33, 1, 0, 0, 0, 4, 46, 1, 0, 0, 0, 6, 48, 1, 0, 0, 0, 8, 54, 1, 0, 0, 0, 10, 61, 1, 0, 0, 0, 12, 63, 1, 0, 0, 0, 14, 65, 1, 0, 0, 0, 16, 17, 3, 2, 1, 0, 17, 18, 5, 0, 0, 1, 18, 1, 1, 0, 0, 0, 19, 20, 6, 1, -1, 0, 20, 21, 3, 10, 5, 0, 21, 22, 5, 1, 0, 0, 22, 23, 5, 2, 0, 0, 23, 24, 3, 2, 1, 0, 24, 25, 5, 3, 0, 0, 25, 34, 1, 0, 0, 0, 26, 27, 5, 4, 0, 0, 27, 28, 3, 2, 1, 0, 28, 29, 5, 5, 0, 0, 29, 34, 1, 0, 0, 0, 30, 31, 5, 8, 0, 0, 31, 34, 3, 2, 1, 3, 32, 34, 3, 4, 2, 0, 33, 19, 1, 0, 0, 0, 33, 26, 1, 0, 0, 0, 33, 30, 1, 0, 0, 0, 33, 32, 1, 0, 0, 0, 34, 40, 1, 0, 0, 0, 35, 36, 10, 2, 0, 0, 36, 37, 7, 0, 0, 0, 37, 39, 3, 2, 1, 3, 38, 35, 1, 0, 0, 0, 39, 42, 1, 0, 0, 0, 40, 38, 1, 0, 0, 0, 40, 41, 1, 0, 0, 0, 41, 3, 1, 0, 0, 0, 42, 40, 1, 0, 0, 0, 43, 47, 3, 6, 3, 0, 44, 47, 3, 8, 4, 0, 45, 47, 3, 12, 6, 0, 46, 43, 1, 0, 0, 0, 46, 44, 1, 0, 0, 0, 46, 45, 1, 0, 0, 0, 47, 5, 1, 0, 0, 0, 48, 49, 3, 10, 5, 0, 49, 52, 5, 13, 0, 0, 50, 53, 5, 9, 0, 0, 51, 53, 5, 10, 0, 0, 52, 50, 1, 0, 0, 0, 52, 51, 1, 0, 0, 0, 53, 7, 1, 0, 0, 0, 54, 55, 3, 10, 5, 0, 55, 59, 5, 1, 0, 0, 56, 60, 3, 14, 7, 0, 57, 60, 5, 9, 0, 0, 58, 60, 5, 10, 0, 0, 59, 56, 1, 0, 0, 0, 59, 57, 1, 0, 0, 0, 59, 58, 1, 0, 0, 0, 60, 9, 1, 0, 0, 0, 61, 62, 5, 10, 0, 0, 62, 11, 1, 0, 0, 0, 63, 64, 5, 10, 0, 0, 64, 13, 1, 0, 0, 0, 65, 67, 5, 4, 0, 0, 66, 68, 7, 1, 0, 0, 67, 66, 1, 0, 0, 0, 67, 68, 1, 0, 0, 0, 68, 72, 1, 0, 0, 0, 69, 71, 5, 10, 0, 0, 70, 69, 1, 0, 0, 0, 71, 74, 1, 0, 0, 0, 72, 70, 1, 0, 0, 0, 72, 73, 1, 0, 0, 0, 73, 75, 1, 0, 0, 0, 74, 72, 1, 0, 0, 0, 75, 76, 5, 5, 0, 0, 76, 15, 1, 0, 0, 0, 7, 33, 40, 46, 52, 59, 67, 72] \ No newline at end of file diff --git a/components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens b/components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens deleted file mode 100644 index 108514b373..0000000000 --- a/components/core/src/clp_s/search/kql/antlr_generated/Kql.tokens +++ /dev/null @@ -1,19 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -AND=6 -OR=7 -NOT=8 -DATE_LITERAL=9 -LITERAL=10 -QUOTED_STRING=11 -UNQUOTED_LITERAL=12 -RANGE_OPERATOR=13 -SPACE=14 -':'=1 -'{'=2 -'}'=3 -'('=4 -')'=5 diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp deleted file mode 100644 index 81a656c4ce..0000000000 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.interp +++ /dev/null @@ -1,68 +0,0 @@ -token literal names: -null -':' -'{' -'}' -'(' -')' -null -null -null -null -null -null -null -null -null - -token symbolic names: -null -null -null -null -null -null -AND -OR -NOT -DATE_LITERAL -LITERAL -QUOTED_STRING -UNQUOTED_LITERAL -RANGE_OPERATOR -SPACE - -rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -AND -OR -NOT -DATE_LITERAL -LITERAL -QUOTED_STRING -UNQUOTED_LITERAL -QUOTED_CHARACTER -UNQUOTED_CHARACTER -WILDCARD -KEYWORD -RANGE_OPERATOR -ESCAPED_SPECIAL_CHARACTER -ESCAPED_SPACE -SPECIAL_CHARACTER -UNICODE -HEXDIGIT -SPACE - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 14, 163, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 4, 8, 77, 8, 8, 11, 8, 12, 8, 78, 1, 8, 1, 8, 1, 8, 4, 8, 84, 8, 8, 11, 8, 12, 8, 85, 3, 8, 88, 8, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 94, 8, 9, 1, 10, 1, 10, 5, 10, 98, 8, 10, 10, 10, 12, 10, 101, 9, 10, 1, 10, 1, 10, 1, 11, 4, 11, 106, 8, 11, 11, 11, 12, 11, 107, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 114, 8, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 121, 8, 13, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 3, 15, 128, 8, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 135, 8, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 146, 8, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 0, 0, 23, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 0, 27, 0, 29, 0, 31, 0, 33, 13, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 14, 1, 0, 13, 2, 0, 65, 65, 97, 97, 2, 0, 78, 78, 110, 110, 2, 0, 68, 68, 100, 100, 2, 0, 79, 79, 111, 111, 2, 0, 82, 82, 114, 114, 2, 0, 84, 84, 116, 116, 1, 0, 34, 34, 11, 0, 9, 10, 13, 13, 32, 32, 34, 34, 40, 41, 58, 58, 60, 60, 62, 62, 92, 92, 123, 123, 125, 125, 2, 0, 42, 42, 63, 63, 2, 0, 60, 60, 62, 62, 9, 0, 33, 36, 40, 42, 46, 46, 58, 58, 60, 60, 62, 64, 92, 92, 123, 123, 125, 125, 3, 0, 48, 57, 65, 70, 97, 102, 3, 0, 9, 10, 13, 13, 32, 32, 171, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 1, 47, 1, 0, 0, 0, 3, 49, 1, 0, 0, 0, 5, 51, 1, 0, 0, 0, 7, 53, 1, 0, 0, 0, 9, 55, 1, 0, 0, 0, 11, 57, 1, 0, 0, 0, 13, 61, 1, 0, 0, 0, 15, 64, 1, 0, 0, 0, 17, 68, 1, 0, 0, 0, 19, 93, 1, 0, 0, 0, 21, 95, 1, 0, 0, 0, 23, 105, 1, 0, 0, 0, 25, 113, 1, 0, 0, 0, 27, 120, 1, 0, 0, 0, 29, 122, 1, 0, 0, 0, 31, 127, 1, 0, 0, 0, 33, 134, 1, 0, 0, 0, 35, 136, 1, 0, 0, 0, 37, 145, 1, 0, 0, 0, 39, 147, 1, 0, 0, 0, 41, 149, 1, 0, 0, 0, 43, 157, 1, 0, 0, 0, 45, 159, 1, 0, 0, 0, 47, 48, 5, 58, 0, 0, 48, 2, 1, 0, 0, 0, 49, 50, 5, 123, 0, 0, 50, 4, 1, 0, 0, 0, 51, 52, 5, 125, 0, 0, 52, 6, 1, 0, 0, 0, 53, 54, 5, 40, 0, 0, 54, 8, 1, 0, 0, 0, 55, 56, 5, 41, 0, 0, 56, 10, 1, 0, 0, 0, 57, 58, 7, 0, 0, 0, 58, 59, 7, 1, 0, 0, 59, 60, 7, 2, 0, 0, 60, 12, 1, 0, 0, 0, 61, 62, 7, 3, 0, 0, 62, 63, 7, 4, 0, 0, 63, 14, 1, 0, 0, 0, 64, 65, 7, 1, 0, 0, 65, 66, 7, 3, 0, 0, 66, 67, 7, 5, 0, 0, 67, 16, 1, 0, 0, 0, 68, 69, 5, 100, 0, 0, 69, 70, 5, 97, 0, 0, 70, 71, 5, 116, 0, 0, 71, 72, 5, 101, 0, 0, 72, 73, 5, 40, 0, 0, 73, 87, 1, 0, 0, 0, 74, 76, 5, 34, 0, 0, 75, 77, 3, 25, 12, 0, 76, 75, 1, 0, 0, 0, 77, 78, 1, 0, 0, 0, 78, 76, 1, 0, 0, 0, 78, 79, 1, 0, 0, 0, 79, 80, 1, 0, 0, 0, 80, 81, 5, 34, 0, 0, 81, 88, 1, 0, 0, 0, 82, 84, 3, 25, 12, 0, 83, 82, 1, 0, 0, 0, 84, 85, 1, 0, 0, 0, 85, 83, 1, 0, 0, 0, 85, 86, 1, 0, 0, 0, 86, 88, 1, 0, 0, 0, 87, 74, 1, 0, 0, 0, 87, 83, 1, 0, 0, 0, 88, 89, 1, 0, 0, 0, 89, 90, 5, 41, 0, 0, 90, 18, 1, 0, 0, 0, 91, 94, 3, 21, 10, 0, 92, 94, 3, 23, 11, 0, 93, 91, 1, 0, 0, 0, 93, 92, 1, 0, 0, 0, 94, 20, 1, 0, 0, 0, 95, 99, 5, 34, 0, 0, 96, 98, 3, 25, 12, 0, 97, 96, 1, 0, 0, 0, 98, 101, 1, 0, 0, 0, 99, 97, 1, 0, 0, 0, 99, 100, 1, 0, 0, 0, 100, 102, 1, 0, 0, 0, 101, 99, 1, 0, 0, 0, 102, 103, 5, 34, 0, 0, 103, 22, 1, 0, 0, 0, 104, 106, 3, 27, 13, 0, 105, 104, 1, 0, 0, 0, 106, 107, 1, 0, 0, 0, 107, 105, 1, 0, 0, 0, 107, 108, 1, 0, 0, 0, 108, 24, 1, 0, 0, 0, 109, 114, 3, 37, 18, 0, 110, 111, 5, 92, 0, 0, 111, 114, 5, 34, 0, 0, 112, 114, 8, 6, 0, 0, 113, 109, 1, 0, 0, 0, 113, 110, 1, 0, 0, 0, 113, 112, 1, 0, 0, 0, 114, 26, 1, 0, 0, 0, 115, 121, 3, 37, 18, 0, 116, 121, 3, 35, 17, 0, 117, 121, 3, 29, 14, 0, 118, 121, 3, 41, 20, 0, 119, 121, 8, 7, 0, 0, 120, 115, 1, 0, 0, 0, 120, 116, 1, 0, 0, 0, 120, 117, 1, 0, 0, 0, 120, 118, 1, 0, 0, 0, 120, 119, 1, 0, 0, 0, 121, 28, 1, 0, 0, 0, 122, 123, 7, 8, 0, 0, 123, 30, 1, 0, 0, 0, 124, 128, 3, 11, 5, 0, 125, 128, 3, 13, 6, 0, 126, 128, 3, 15, 7, 0, 127, 124, 1, 0, 0, 0, 127, 125, 1, 0, 0, 0, 127, 126, 1, 0, 0, 0, 128, 32, 1, 0, 0, 0, 129, 130, 5, 60, 0, 0, 130, 135, 5, 61, 0, 0, 131, 132, 5, 62, 0, 0, 132, 135, 5, 61, 0, 0, 133, 135, 7, 9, 0, 0, 134, 129, 1, 0, 0, 0, 134, 131, 1, 0, 0, 0, 134, 133, 1, 0, 0, 0, 135, 34, 1, 0, 0, 0, 136, 137, 5, 92, 0, 0, 137, 138, 3, 39, 19, 0, 138, 36, 1, 0, 0, 0, 139, 140, 5, 92, 0, 0, 140, 146, 5, 116, 0, 0, 141, 142, 5, 92, 0, 0, 142, 146, 5, 114, 0, 0, 143, 144, 5, 92, 0, 0, 144, 146, 5, 110, 0, 0, 145, 139, 1, 0, 0, 0, 145, 141, 1, 0, 0, 0, 145, 143, 1, 0, 0, 0, 146, 38, 1, 0, 0, 0, 147, 148, 7, 10, 0, 0, 148, 40, 1, 0, 0, 0, 149, 150, 5, 92, 0, 0, 150, 151, 5, 117, 0, 0, 151, 152, 1, 0, 0, 0, 152, 153, 3, 43, 21, 0, 153, 154, 3, 43, 21, 0, 154, 155, 3, 43, 21, 0, 155, 156, 3, 43, 21, 0, 156, 42, 1, 0, 0, 0, 157, 158, 7, 11, 0, 0, 158, 44, 1, 0, 0, 0, 159, 160, 7, 12, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162, 6, 22, 0, 0, 162, 46, 1, 0, 0, 0, 12, 0, 78, 85, 87, 93, 99, 107, 113, 120, 127, 134, 145, 1, 6, 0, 0] \ No newline at end of file diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens deleted file mode 100644 index 108514b373..0000000000 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.tokens +++ /dev/null @@ -1,19 +0,0 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -AND=6 -OR=7 -NOT=8 -DATE_LITERAL=9 -LITERAL=10 -QUOTED_STRING=11 -UNQUOTED_LITERAL=12 -RANGE_OPERATOR=13 -SPACE=14 -':'=1 -'{'=2 -'}'=3 -'('=4 -')'=5 diff --git a/components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h b/components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h deleted file mode 100644 index 50b85aa4fc..0000000000 --- a/components/core/src/clp_s/search/kql/antlr_generated/antlr4-runtime.h +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. - * Use of this file is governed by the BSD 3-clause license that - * can be found in the LICENSE.txt file in the project root. - */ - -#pragma once - -// This is the umbrella header for all ANTLR4 C++ runtime headers. - -#include "antlr4-common.h" - -#include "ANTLRErrorListener.h" -#include "ANTLRErrorStrategy.h" -#include "ANTLRFileStream.h" -#include "ANTLRInputStream.h" -#include "BailErrorStrategy.h" -#include "BaseErrorListener.h" -#include "BufferedTokenStream.h" -#include "CharStream.h" -#include "CommonToken.h" -#include "CommonTokenFactory.h" -#include "CommonTokenStream.h" -#include "ConsoleErrorListener.h" -#include "DefaultErrorStrategy.h" -#include "DiagnosticErrorListener.h" -#include "Exceptions.h" -#include "FailedPredicateException.h" -#include "InputMismatchException.h" -#include "IntStream.h" -#include "InterpreterRuleContext.h" -#include "Lexer.h" -#include "LexerInterpreter.h" -#include "LexerNoViableAltException.h" -#include "ListTokenSource.h" -#include "NoViableAltException.h" -#include "Parser.h" -#include "ParserInterpreter.h" -#include "ParserRuleContext.h" -#include "ProxyErrorListener.h" -#include "RecognitionException.h" -#include "Recognizer.h" -#include "RuleContext.h" -#include "RuleContextWithAltNum.h" -#include "RuntimeMetaData.h" -#include "Token.h" -#include "TokenFactory.h" -#include "TokenSource.h" -#include "TokenStream.h" -#include "TokenStreamRewriter.h" -#include "UnbufferedCharStream.h" -#include "UnbufferedTokenStream.h" -#include "Version.h" -#include "Vocabulary.h" -#include "Vocabulary.h" -#include "WritableToken.h" -#include "atn/ATN.h" -#include "atn/ATNConfig.h" -#include "atn/ATNConfigSet.h" -#include "atn/ATNDeserializationOptions.h" -#include "atn/ATNDeserializer.h" -#include "atn/ATNSimulator.h" -#include "atn/ATNState.h" -#include "atn/ATNType.h" -#include "atn/ActionTransition.h" -#include "atn/AmbiguityInfo.h" -#include "atn/ArrayPredictionContext.h" -#include "atn/AtomTransition.h" -#include "atn/BasicBlockStartState.h" -#include "atn/BasicState.h" -#include "atn/BlockEndState.h" -#include "atn/BlockStartState.h" -#include "atn/ContextSensitivityInfo.h" -#include "atn/DecisionEventInfo.h" -#include "atn/DecisionInfo.h" -#include "atn/DecisionState.h" -#include "atn/EpsilonTransition.h" -#include "atn/ErrorInfo.h" -#include "atn/LL1Analyzer.h" -#include "atn/LexerATNConfig.h" -#include "atn/LexerATNSimulator.h" -#include "atn/LexerAction.h" -#include "atn/LexerActionExecutor.h" -#include "atn/LexerActionType.h" -#include "atn/LexerChannelAction.h" -#include "atn/LexerCustomAction.h" -#include "atn/LexerIndexedCustomAction.h" -#include "atn/LexerModeAction.h" -#include "atn/LexerMoreAction.h" -#include "atn/LexerPopModeAction.h" -#include "atn/LexerPushModeAction.h" -#include "atn/LexerSkipAction.h" -#include "atn/LexerTypeAction.h" -#include "atn/LookaheadEventInfo.h" -#include "atn/LoopEndState.h" -#include "atn/NotSetTransition.h" -#include "atn/OrderedATNConfigSet.h" -#include "atn/ParseInfo.h" -#include "atn/ParserATNSimulator.h" -#include "atn/ParserATNSimulatorOptions.h" -#include "atn/PlusBlockStartState.h" -#include "atn/PlusLoopbackState.h" -#include "atn/PrecedencePredicateTransition.h" -#include "atn/PredicateEvalInfo.h" -#include "atn/PredicateTransition.h" -#include "atn/PredictionContext.h" -#include "atn/PredictionContextCache.h" -#include "atn/PredictionContextMergeCache.h" -#include "atn/PredictionContextMergeCacheOptions.h" -#include "atn/PredictionMode.h" -#include "atn/ProfilingATNSimulator.h" -#include "atn/RangeTransition.h" -#include "atn/RuleStartState.h" -#include "atn/RuleStopState.h" -#include "atn/RuleTransition.h" -#include "atn/SemanticContext.h" -#include "atn/SerializedATNView.h" -#include "atn/SetTransition.h" -#include "atn/SingletonPredictionContext.h" -#include "atn/StarBlockStartState.h" -#include "atn/StarLoopEntryState.h" -#include "atn/StarLoopbackState.h" -#include "atn/TokensStartState.h" -#include "atn/Transition.h" -#include "atn/WildcardTransition.h" -#include "dfa/DFA.h" -#include "dfa/DFASerializer.h" -#include "dfa/DFAState.h" -#include "dfa/LexerDFASerializer.h" -#include "misc/InterpreterDataReader.h" -#include "misc/Interval.h" -#include "misc/IntervalSet.h" -#include "misc/MurmurHash.h" -#include "misc/Predicate.h" -#include "support/Any.h" -#include "support/Arrays.h" -#include "support/BitSet.h" -#include "support/Casts.h" -#include "support/CPPUtils.h" -#include "tree/AbstractParseTreeVisitor.h" -#include "tree/ErrorNode.h" -#include "tree/ErrorNodeImpl.h" -#include "tree/ParseTree.h" -#include "tree/ParseTreeListener.h" -#include "tree/ParseTreeProperty.h" -#include "tree/ParseTreeVisitor.h" -#include "tree/ParseTreeWalker.h" -#include "tree/TerminalNode.h" -#include "tree/TerminalNodeImpl.h" -#include "tree/Trees.h" -#include "tree/pattern/Chunk.h" -#include "tree/pattern/ParseTreeMatch.h" -#include "tree/pattern/ParseTreePattern.h" -#include "tree/pattern/ParseTreePatternMatcher.h" -#include "tree/pattern/RuleTagToken.h" -#include "tree/pattern/TagChunk.h" -#include "tree/pattern/TextChunk.h" -#include "tree/pattern/TokenTagToken.h" -#include "tree/xpath/XPath.h" -#include "tree/xpath/XPathElement.h" -#include "tree/xpath/XPathLexer.h" -#include "tree/xpath/XPathLexerErrorListener.h" -#include "tree/xpath/XPathRuleAnywhereElement.h" -#include "tree/xpath/XPathRuleElement.h" -#include "tree/xpath/XPathTokenAnywhereElement.h" -#include "tree/xpath/XPathTokenElement.h" -#include "tree/xpath/XPathWildcardAnywhereElement.h" -#include "tree/xpath/XPathWildcardElement.h" -#include "internal/Synchronization.h" diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 74c0324ad1..1dd65f5871 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -19,7 +19,7 @@ add_library( sql.hpp ) target_compile_features(sql PRIVATE cxx_std_20) -target_include_directories(sql PRIVATE ${ANTLR_GENERATED_SQL_CODE_DIR}) +target_include_directories(sql PRIVATE ${ANTLR_GENERATED_SQL_CODE_DIR} ${ANTLR_RUNTIME_HEADER}) target_link_libraries( sql PRIVATE diff --git a/components/core/src/clp_s/search/sql/antlr_generated/Sql.interp b/components/core/src/clp_s/search/sql/antlr_generated/Sql.interp deleted file mode 100644 index 38c26af3d5..0000000000 --- a/components/core/src/clp_s/search/sql/antlr_generated/Sql.interp +++ /dev/null @@ -1,14 +0,0 @@ -token literal names: -null -null - -token symbolic names: -null -SPACE - -rule names: -start - - -atn: -[4, 1, 1, 5, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 3, 0, 2, 1, 0, 0, 0, 2, 3, 5, 0, 0, 1, 3, 1, 1, 0, 0, 0, 0] \ No newline at end of file diff --git a/components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens b/components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens deleted file mode 100644 index e138d29fae..0000000000 --- a/components/core/src/clp_s/search/sql/antlr_generated/Sql.tokens +++ /dev/null @@ -1 +0,0 @@ -SPACE=1 diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp deleted file mode 100644 index 60c75b3b80..0000000000 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.interp +++ /dev/null @@ -1,20 +0,0 @@ -token literal names: -null -null - -token symbolic names: -null -SPACE - -rule names: -SPACE - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[4, 0, 1, 7, 6, -1, 2, 0, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 3, 0, 9, 10, 13, 13, 32, 32, 6, 0, 1, 1, 0, 0, 0, 1, 3, 1, 0, 0, 0, 3, 4, 7, 0, 0, 0, 4, 5, 1, 0, 0, 0, 5, 6, 6, 0, 0, 0, 6, 2, 1, 0, 0, 0, 1, 0, 1, 6, 0, 0] \ No newline at end of file diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens deleted file mode 100644 index e138d29fae..0000000000 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.tokens +++ /dev/null @@ -1 +0,0 @@ -SPACE=1 diff --git a/components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h b/components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h deleted file mode 100644 index 50b85aa4fc..0000000000 --- a/components/core/src/clp_s/search/sql/antlr_generated/antlr4-runtime.h +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. - * Use of this file is governed by the BSD 3-clause license that - * can be found in the LICENSE.txt file in the project root. - */ - -#pragma once - -// This is the umbrella header for all ANTLR4 C++ runtime headers. - -#include "antlr4-common.h" - -#include "ANTLRErrorListener.h" -#include "ANTLRErrorStrategy.h" -#include "ANTLRFileStream.h" -#include "ANTLRInputStream.h" -#include "BailErrorStrategy.h" -#include "BaseErrorListener.h" -#include "BufferedTokenStream.h" -#include "CharStream.h" -#include "CommonToken.h" -#include "CommonTokenFactory.h" -#include "CommonTokenStream.h" -#include "ConsoleErrorListener.h" -#include "DefaultErrorStrategy.h" -#include "DiagnosticErrorListener.h" -#include "Exceptions.h" -#include "FailedPredicateException.h" -#include "InputMismatchException.h" -#include "IntStream.h" -#include "InterpreterRuleContext.h" -#include "Lexer.h" -#include "LexerInterpreter.h" -#include "LexerNoViableAltException.h" -#include "ListTokenSource.h" -#include "NoViableAltException.h" -#include "Parser.h" -#include "ParserInterpreter.h" -#include "ParserRuleContext.h" -#include "ProxyErrorListener.h" -#include "RecognitionException.h" -#include "Recognizer.h" -#include "RuleContext.h" -#include "RuleContextWithAltNum.h" -#include "RuntimeMetaData.h" -#include "Token.h" -#include "TokenFactory.h" -#include "TokenSource.h" -#include "TokenStream.h" -#include "TokenStreamRewriter.h" -#include "UnbufferedCharStream.h" -#include "UnbufferedTokenStream.h" -#include "Version.h" -#include "Vocabulary.h" -#include "Vocabulary.h" -#include "WritableToken.h" -#include "atn/ATN.h" -#include "atn/ATNConfig.h" -#include "atn/ATNConfigSet.h" -#include "atn/ATNDeserializationOptions.h" -#include "atn/ATNDeserializer.h" -#include "atn/ATNSimulator.h" -#include "atn/ATNState.h" -#include "atn/ATNType.h" -#include "atn/ActionTransition.h" -#include "atn/AmbiguityInfo.h" -#include "atn/ArrayPredictionContext.h" -#include "atn/AtomTransition.h" -#include "atn/BasicBlockStartState.h" -#include "atn/BasicState.h" -#include "atn/BlockEndState.h" -#include "atn/BlockStartState.h" -#include "atn/ContextSensitivityInfo.h" -#include "atn/DecisionEventInfo.h" -#include "atn/DecisionInfo.h" -#include "atn/DecisionState.h" -#include "atn/EpsilonTransition.h" -#include "atn/ErrorInfo.h" -#include "atn/LL1Analyzer.h" -#include "atn/LexerATNConfig.h" -#include "atn/LexerATNSimulator.h" -#include "atn/LexerAction.h" -#include "atn/LexerActionExecutor.h" -#include "atn/LexerActionType.h" -#include "atn/LexerChannelAction.h" -#include "atn/LexerCustomAction.h" -#include "atn/LexerIndexedCustomAction.h" -#include "atn/LexerModeAction.h" -#include "atn/LexerMoreAction.h" -#include "atn/LexerPopModeAction.h" -#include "atn/LexerPushModeAction.h" -#include "atn/LexerSkipAction.h" -#include "atn/LexerTypeAction.h" -#include "atn/LookaheadEventInfo.h" -#include "atn/LoopEndState.h" -#include "atn/NotSetTransition.h" -#include "atn/OrderedATNConfigSet.h" -#include "atn/ParseInfo.h" -#include "atn/ParserATNSimulator.h" -#include "atn/ParserATNSimulatorOptions.h" -#include "atn/PlusBlockStartState.h" -#include "atn/PlusLoopbackState.h" -#include "atn/PrecedencePredicateTransition.h" -#include "atn/PredicateEvalInfo.h" -#include "atn/PredicateTransition.h" -#include "atn/PredictionContext.h" -#include "atn/PredictionContextCache.h" -#include "atn/PredictionContextMergeCache.h" -#include "atn/PredictionContextMergeCacheOptions.h" -#include "atn/PredictionMode.h" -#include "atn/ProfilingATNSimulator.h" -#include "atn/RangeTransition.h" -#include "atn/RuleStartState.h" -#include "atn/RuleStopState.h" -#include "atn/RuleTransition.h" -#include "atn/SemanticContext.h" -#include "atn/SerializedATNView.h" -#include "atn/SetTransition.h" -#include "atn/SingletonPredictionContext.h" -#include "atn/StarBlockStartState.h" -#include "atn/StarLoopEntryState.h" -#include "atn/StarLoopbackState.h" -#include "atn/TokensStartState.h" -#include "atn/Transition.h" -#include "atn/WildcardTransition.h" -#include "dfa/DFA.h" -#include "dfa/DFASerializer.h" -#include "dfa/DFAState.h" -#include "dfa/LexerDFASerializer.h" -#include "misc/InterpreterDataReader.h" -#include "misc/Interval.h" -#include "misc/IntervalSet.h" -#include "misc/MurmurHash.h" -#include "misc/Predicate.h" -#include "support/Any.h" -#include "support/Arrays.h" -#include "support/BitSet.h" -#include "support/Casts.h" -#include "support/CPPUtils.h" -#include "tree/AbstractParseTreeVisitor.h" -#include "tree/ErrorNode.h" -#include "tree/ErrorNodeImpl.h" -#include "tree/ParseTree.h" -#include "tree/ParseTreeListener.h" -#include "tree/ParseTreeProperty.h" -#include "tree/ParseTreeVisitor.h" -#include "tree/ParseTreeWalker.h" -#include "tree/TerminalNode.h" -#include "tree/TerminalNodeImpl.h" -#include "tree/Trees.h" -#include "tree/pattern/Chunk.h" -#include "tree/pattern/ParseTreeMatch.h" -#include "tree/pattern/ParseTreePattern.h" -#include "tree/pattern/ParseTreePatternMatcher.h" -#include "tree/pattern/RuleTagToken.h" -#include "tree/pattern/TagChunk.h" -#include "tree/pattern/TextChunk.h" -#include "tree/pattern/TokenTagToken.h" -#include "tree/xpath/XPath.h" -#include "tree/xpath/XPathElement.h" -#include "tree/xpath/XPathLexer.h" -#include "tree/xpath/XPathLexerErrorListener.h" -#include "tree/xpath/XPathRuleAnywhereElement.h" -#include "tree/xpath/XPathRuleElement.h" -#include "tree/xpath/XPathTokenAnywhereElement.h" -#include "tree/xpath/XPathTokenElement.h" -#include "tree/xpath/XPathWildcardAnywhereElement.h" -#include "tree/xpath/XPathWildcardElement.h" -#include "internal/Synchronization.h" diff --git a/taskfile.yaml b/taskfile.yaml index 2403a4d16e..5cd79a295b 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -35,7 +35,7 @@ vars: # Versions G_PACKAGE_VERSION: "0.2.0-dev" - # ANTLR related + # ANTLR codegen related G_ANTLR_VERSION: "4.13.1" G_ANTLR_JAR_NAME: "antlr-{{.G_ANTLR_VERSION}}-complete.jar" G_ANTLR_JAR_PATH: "/tmp/{{.G_ANTLR_JAR_NAME}}" @@ -106,6 +106,8 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" cmds: + - "rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" + - "rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" - "curl -o {{.G_ANTLR_JAR_PATH}} {{.G_ANTLR_DOWNLOAD_URL}}" - | java -jar {{.G_ANTLR_JAR_PATH}} \ @@ -125,6 +127,10 @@ tasks: -o clp_s/search/sql/antlr_generated \ -Xexact-output-dir \ clp_s/search/sql/Sql.g4 + - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*.interp" + - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*.tokens" + - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*.interp" + - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*.tokens" - "rm -f {{.G_ANTLR_JAR_PATH}}" clp-s-generate-antlr-check: diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 82e8dd2c26..75c8ed78f7 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -56,7 +56,7 @@ tasks: run: "once" deps: - task: "absl" - - task: "antlr" + - task: "antlr-runtime" - task: "catch2" - task: "date" - task: "fmt" @@ -84,40 +84,27 @@ tasks: TARBALL_SHA256: "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed" TARBALL_URL: "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.1.tar.gz" - antlr: + antlr-runtime: internal: true + run: "once" vars: DEP_NAME: "antlr" - + # Paths CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.DEP_NAME}}.md5" - OUTPUT_FILE: "{{.G_DEPS_CORE_DIR}}/antlr-4.13.1-complete.jar" - run: "once" - deps: - - task: "yscope-dev-utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" - - task: "utils:init" + OUTPUT_DIR: "{{.G_DEPS_CORE_DIR}}/{{.DEP_NAME}}" cmds: - - task: "yscope-dev-utils:remote:curl" + - task: "yscope-dev-utils:remote:download-and-extract-tar" vars: - FILE_SHA256: "bc13a9c57a8dd7d5196888211e5ede657cb64a3ce968608697e4f668251a8487" - OUTPUT_FILE: "{{.OUTPUT_FILE}}" - URL: "https://www.antlr.org/download/antlr-4.13.1-complete.jar" + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + FILE_SHA256: "da20d487524d7f0a8b13f73a8dc326de7fc2e5775f5a49693c0a4e59c6b1410c" + OUTPUT_DIR: "{{.OUTPUT_DIR}}" + URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - >- echo "set( - ANTLR_EXECUTABLE \"{{.OUTPUT_FILE}}\" + ANTLR_RUNTIME_HEADER \"{{.OUTPUT_DIR}}/runtime/Cpp/runtime/src\" )" > "{{.G_DEPS_CORE_CMAKE_SETTINGS_DIR}}/{{.DEP_NAME}}.cmake" - # This command must be last - - task: "yscope-dev-utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: - - "{{.OUTPUT_FILE}}" - catch2: internal: true run: "once" From 108f61dc035fb0e3f3b4e9cc7eb663dbcb43abcc Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 28 May 2025 13:59:37 -0400 Subject: [PATCH 17/55] Fix lint --- taskfiles/deps/main.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 75c8ed78f7..bd2e32d443 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -89,7 +89,7 @@ tasks: run: "once" vars: DEP_NAME: "antlr" - + # Paths CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.DEP_NAME}}.md5" OUTPUT_DIR: "{{.G_DEPS_CORE_DIR}}/{{.DEP_NAME}}" From f4742f2c5a3a43d97ef972a0481ad307b113689f Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 28 May 2025 14:48:32 -0400 Subject: [PATCH 18/55] Fix coderabbit --- .../core/src/clp_s/search/kql/CMakeLists.txt | 14 +++++++++----- .../core/src/clp_s/search/sql/CMakeLists.txt | 16 ++++++++++------ 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index 10755914ce..b4fbab48e5 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ANTLR_GENERATED_KQL_CODE_DIR antlr_generated) +set(ANTLR_GENERATED_KQL_CODE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) set(ANTLR_GENERATED_KQL_CODE ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlBaseVisitor.cpp @@ -13,13 +13,17 @@ set(ANTLR_GENERATED_KQL_CODE add_library( kql - ../antlr_common/ErrorListener.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp ${ANTLR_GENERATED_KQL_CODE} - kql.cpp - kql.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/kql.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/kql.hpp ) target_compile_features(kql PRIVATE cxx_std_20) -target_include_directories(kql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR} ${ANTLR_RUNTIME_HEADER}) +target_include_directories(kql + PRIVATE + ${ANTLR_GENERATED_KQL_CODE_DIR} + ${ANTLR_RUNTIME_HEADER} +) target_link_libraries( kql PRIVATE diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 1dd65f5871..32fad77bd3 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ANTLR_GENERATED_SQL_CODE_DIR antlr_generated) +set(ANTLR_GENERATED_SQL_CODE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) set(ANTLR_GENERATED_SQL_CODE ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlBaseVisitor.cpp @@ -13,17 +13,21 @@ set(ANTLR_GENERATED_SQL_CODE add_library( sql - ../antlr_common/ErrorListener.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp ${ANTLR_GENERATED_SQL_CODE} - sql.cpp - sql.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/sql.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sql.hpp ) target_compile_features(sql PRIVATE cxx_std_20) -target_include_directories(sql PRIVATE ${ANTLR_GENERATED_SQL_CODE_DIR} ${ANTLR_RUNTIME_HEADER}) +target_include_directories(sql + PRIVATE + ${ANTLR_GENERATED_SQL_CODE_DIR} + ${ANTLR_RUNTIME_HEADER} +) target_link_libraries( sql PRIVATE antlr4_static - clp_s::search::ast + clp_s::search::ast spdlog::spdlog ) From 09faf7cffc067506ff8b5b5a6b0dc69697136835 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Thu, 29 May 2025 20:16:02 -0400 Subject: [PATCH 19/55] Fix --- .../core/src/clp_s/search/kql/CMakeLists.txt | 3 +-- .../core/src/clp_s/search/sql/CMakeLists.txt | 3 +-- taskfiles/deps/main.yaml | 22 ------------------- 3 files changed, 2 insertions(+), 26 deletions(-) diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index b4fbab48e5..27ccb5bcf5 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -22,13 +22,12 @@ target_compile_features(kql PRIVATE cxx_std_20) target_include_directories(kql PRIVATE ${ANTLR_GENERATED_KQL_CODE_DIR} - ${ANTLR_RUNTIME_HEADER} ) target_link_libraries( kql PRIVATE antlr4_static clp::string_utils - clp_s::search::ast + clp_s::search::ast spdlog::spdlog ) diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 32fad77bd3..c0e6d97874 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -22,12 +22,11 @@ target_compile_features(sql PRIVATE cxx_std_20) target_include_directories(sql PRIVATE ${ANTLR_GENERATED_SQL_CODE_DIR} - ${ANTLR_RUNTIME_HEADER} ) target_link_libraries( sql PRIVATE antlr4_static - clp_s::search::ast + clp_s::search::ast spdlog::spdlog ) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index bd2e32d443..cdaf17b05d 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -56,7 +56,6 @@ tasks: run: "once" deps: - task: "absl" - - task: "antlr-runtime" - task: "catch2" - task: "date" - task: "fmt" @@ -84,27 +83,6 @@ tasks: TARBALL_SHA256: "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed" TARBALL_URL: "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.1.tar.gz" - antlr-runtime: - internal: true - run: "once" - vars: - DEP_NAME: "antlr" - - # Paths - CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.DEP_NAME}}.md5" - OUTPUT_DIR: "{{.G_DEPS_CORE_DIR}}/{{.DEP_NAME}}" - cmds: - - task: "yscope-dev-utils:remote:download-and-extract-tar" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - FILE_SHA256: "da20d487524d7f0a8b13f73a8dc326de7fc2e5775f5a49693c0a4e59c6b1410c" - OUTPUT_DIR: "{{.OUTPUT_DIR}}" - URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - - >- - echo "set( - ANTLR_RUNTIME_HEADER \"{{.OUTPUT_DIR}}/runtime/Cpp/runtime/src\" - )" > "{{.G_DEPS_CORE_CMAKE_SETTINGS_DIR}}/{{.DEP_NAME}}.cmake" - catch2: internal: true run: "once" From da1523b26a8a8a080eb9a6d11f4359b36e564890 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Sat, 31 May 2025 14:48:29 -0400 Subject: [PATCH 20/55] Add antlr-runtime task to download and install the antlr-runtime library; Switch from using ANTLR's superbuild to using the antlr-runtime CMake package. --- components/core/CMakeLists.txt | 6 +- .../cmake/Modules/ExternalAntlr4Cpp.cmake | 180 ------------------ taskfiles/deps/main.yaml | 58 ++++++ 3 files changed, 62 insertions(+), 182 deletions(-) delete mode 100644 components/core/cmake/Modules/ExternalAntlr4Cpp.cmake diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index 7be363f662..4e7a18b788 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -119,8 +119,10 @@ if (absl_FOUND) endif() # Find and setup ANTLR Library -# We build and link to the static library -include(ExternalAntlr4Cpp) +find_package(antlr4-runtime REQUIRED) +if (antlr4-runtime_FOUND) + message(STATUS "Found antlr4-runtime ${antlr4-runtime_VERSION}") +endif() # Find and setup Boost Library if(CLP_USE_STATIC_LIBS) diff --git a/components/core/cmake/Modules/ExternalAntlr4Cpp.cmake b/components/core/cmake/Modules/ExternalAntlr4Cpp.cmake deleted file mode 100644 index 9c12ee3f3b..0000000000 --- a/components/core/cmake/Modules/ExternalAntlr4Cpp.cmake +++ /dev/null @@ -1,180 +0,0 @@ -# NOTE: ExternalAntlr4Cpp.cmake taken from -# https://github.com/antlr/antlr4/blob/4.13.1/runtime/Cpp/cmake/ExternalAntlr4Cpp.cmake - -cmake_minimum_required(VERSION 3.7) - -if(POLICY CMP0114) - cmake_policy(SET CMP0114 NEW) -endif() - -include(ExternalProject) - -set(ANTLR4_ROOT ${CMAKE_CURRENT_BINARY_DIR}/antlr4_runtime/src/antlr4_runtime) -set(ANTLR4_INCLUDE_DIRS ${ANTLR4_ROOT}/runtime/Cpp/runtime/src) -set(ANTLR4_GIT_REPOSITORY https://github.com/antlr/antlr4.git) -if(NOT DEFINED ANTLR4_TAG) - # Set to branch name to keep library updated at the cost of needing to rebuild after 'clean' - # Set to commit hash to keep the build stable and does not need to rebuild after 'clean' - set(ANTLR4_TAG master) -endif() - -# Ensure that the include dir already exists at configure time (to avoid cmake erroring -# on non-existent include dirs) -file(MAKE_DIRECTORY "${ANTLR4_INCLUDE_DIRS}") - -if(${CMAKE_GENERATOR} MATCHES "Visual Studio.*") - set(ANTLR4_OUTPUT_DIR ${ANTLR4_ROOT}/runtime/Cpp/dist/$(Configuration)) -elseif(${CMAKE_GENERATOR} MATCHES "Xcode.*") - set(ANTLR4_OUTPUT_DIR ${ANTLR4_ROOT}/runtime/Cpp/dist/$(CONFIGURATION)) -else() - set(ANTLR4_OUTPUT_DIR ${ANTLR4_ROOT}/runtime/Cpp/dist) -endif() - -if(MSVC) - set(ANTLR4_STATIC_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/antlr4-runtime-static.lib) - set(ANTLR4_SHARED_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/antlr4-runtime.lib) - set(ANTLR4_RUNTIME_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/antlr4-runtime.dll) -else() - set(ANTLR4_STATIC_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/libantlr4-runtime.a) - if(MINGW) - set(ANTLR4_SHARED_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/libantlr4-runtime.dll.a) - set(ANTLR4_RUNTIME_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/libantlr4-runtime.dll) - elseif(CYGWIN) - set(ANTLR4_SHARED_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/libantlr4-runtime.dll.a) - set(ANTLR4_RUNTIME_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/cygantlr4-runtime-${ANTLR4_TAG}.dll) - elseif(APPLE) - set(ANTLR4_RUNTIME_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/libantlr4-runtime.dylib) - else() - set(ANTLR4_RUNTIME_LIBRARIES - ${ANTLR4_OUTPUT_DIR}/libantlr4-runtime.so) - endif() -endif() - -if(${CMAKE_GENERATOR} MATCHES ".* Makefiles") - # This avoids - # 'warning: jobserver unavailable: using -j1. Add '+' to parent make rule.' - set(ANTLR4_BUILD_COMMAND $(MAKE)) -elseif(${CMAKE_GENERATOR} MATCHES "Visual Studio.*") - set(ANTLR4_BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $(Configuration) - --target) -elseif(${CMAKE_GENERATOR} MATCHES "Xcode.*") - set(ANTLR4_BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $(CONFIGURATION) - --target) -else() - set(ANTLR4_BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --target) -endif() - -if(NOT DEFINED ANTLR4_WITH_STATIC_CRT) - set(ANTLR4_WITH_STATIC_CRT ON) -endif() - -if(ANTLR4_ZIP_REPOSITORY) - ExternalProject_Add( - antlr4_runtime - PREFIX antlr4_runtime - URL ${ANTLR4_ZIP_REPOSITORY} - DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR} - BUILD_COMMAND "" - BUILD_IN_SOURCE 1 - SOURCE_DIR ${ANTLR4_ROOT} - SOURCE_SUBDIR runtime/Cpp - CMAKE_CACHE_ARGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DWITH_STATIC_CRT:BOOL=${ANTLR4_WITH_STATIC_CRT} - -DDISABLE_WARNINGS:BOOL=ON - # -DCMAKE_CXX_STANDARD:STRING=17 # if desired, compile the runtime with a different C++ standard - # -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD} # alternatively, compile the runtime with the same C++ standard as the outer project - INSTALL_COMMAND "" - EXCLUDE_FROM_ALL 1) -else() - ExternalProject_Add( - antlr4_runtime - PREFIX antlr4_runtime - GIT_REPOSITORY ${ANTLR4_GIT_REPOSITORY} - GIT_TAG ${ANTLR4_TAG} - DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR} - BUILD_COMMAND "" - BUILD_IN_SOURCE 1 - SOURCE_DIR ${ANTLR4_ROOT} - SOURCE_SUBDIR runtime/Cpp - CMAKE_CACHE_ARGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DWITH_STATIC_CRT:BOOL=${ANTLR4_WITH_STATIC_CRT} - -DDISABLE_WARNINGS:BOOL=ON - # -DCMAKE_CXX_STANDARD:STRING=17 # if desired, compile the runtime with a different C++ standard - # -DCMAKE_CXX_STANDARD:STRING=${CMAKE_CXX_STANDARD} # alternatively, compile the runtime with the same C++ standard as the outer project - INSTALL_COMMAND "" - EXCLUDE_FROM_ALL 1) -endif() - -# Separate build step as rarely people want both -set(ANTLR4_BUILD_DIR ${ANTLR4_ROOT}) -if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.14.0") - # CMake 3.14 builds in above's SOURCE_SUBDIR when BUILD_IN_SOURCE is true - set(ANTLR4_BUILD_DIR ${ANTLR4_ROOT}/runtime/Cpp) -endif() - -ExternalProject_Add_Step( - antlr4_runtime - build_static - COMMAND ${ANTLR4_BUILD_COMMAND} antlr4_static - # Depend on target instead of step (a custom command) - # to avoid running dependent steps concurrently - DEPENDS antlr4_runtime - BYPRODUCTS ${ANTLR4_STATIC_LIBRARIES} - EXCLUDE_FROM_MAIN 1 - WORKING_DIRECTORY ${ANTLR4_BUILD_DIR}) -ExternalProject_Add_StepTargets(antlr4_runtime build_static) - -add_library(antlr4_static STATIC IMPORTED) -add_dependencies(antlr4_static antlr4_runtime-build_static) -set_target_properties(antlr4_static PROPERTIES - IMPORTED_LOCATION ${ANTLR4_STATIC_LIBRARIES}) -target_include_directories(antlr4_static - INTERFACE - ${ANTLR4_INCLUDE_DIRS} -) - -ExternalProject_Add_Step( - antlr4_runtime - build_shared - COMMAND ${ANTLR4_BUILD_COMMAND} antlr4_shared - # Depend on target instead of step (a custom command) - # to avoid running dependent steps concurrently - DEPENDS antlr4_runtime - BYPRODUCTS ${ANTLR4_SHARED_LIBRARIES} ${ANTLR4_RUNTIME_LIBRARIES} - EXCLUDE_FROM_MAIN 1 - WORKING_DIRECTORY ${ANTLR4_BUILD_DIR}) -ExternalProject_Add_StepTargets(antlr4_runtime build_shared) - -add_library(antlr4_shared SHARED IMPORTED) -add_dependencies(antlr4_shared antlr4_runtime-build_shared) -set_target_properties(antlr4_shared PROPERTIES - IMPORTED_LOCATION ${ANTLR4_RUNTIME_LIBRARIES}) -target_include_directories(antlr4_shared - INTERFACE - ${ANTLR4_INCLUDE_DIRS} -) - -if(ANTLR4_SHARED_LIBRARIES) - set_target_properties(antlr4_shared PROPERTIES - IMPORTED_IMPLIB ${ANTLR4_SHARED_LIBRARIES}) -endif() diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index cdaf17b05d..7c8b0116a8 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -56,6 +56,7 @@ tasks: run: "once" deps: - task: "absl" + - task: "antlr-runtime" - task: "catch2" - task: "date" - task: "fmt" @@ -83,6 +84,63 @@ tasks: TARBALL_SHA256: "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed" TARBALL_URL: "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.1.tar.gz" + antlr-runtime: + internal: true + run: "once" + vars: + LIB_NAME: "antlr4-runtime" + + # Paths + BUILD_DIR: "{{.G_DEPS_CORE_DIR}}/{{.LIB_NAME}}-build" + CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.LIB_NAME}}.md5" + INSTALL_PREFIX: "{{.G_DEPS_CORE_DIR}}/{{.LIB_NAME}}-install" + SOURCE_DIR: "{{.G_DEPS_CORE_DIR}}/{{.LIB_NAME}}-src" + deps: + - task: "utils:init" + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] + + # NOTE: We can't use `yscope-dev-utils:cmake:install-remote-tar` (and by extension + # `utils:install-remote-cmake-lib`) since it doesn't yet support the `INCLUDE_PATTERNS` and + # `NUM_COMPONENTS_TO_STRIP` parameters. + cmds: + - task: "yscope-dev-utils:remote:download-and-extract-tar" + vars: + FILE_SHA256: "9f18272a9b32b622835a3365f850dd1063d60f5045fb1e12ce475ae6e18a35bb" + INCLUDE_PATTERNS: ["*/runtime/Cpp"] + NUM_COMPONENTS_TO_STRIP: 3 + OUTPUT_DIR: "{{.SOURCE_DIR}}" + URL: "https://github.com/antlr/antlr4/archive/refs/tags/4.13.2.tar.gz" + - task: "yscope-dev-utils:cmake:generate" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + EXTRA_ARGS: + - "-DANTLR4_INSTALL=ON" + - "-DCMAKE_BUILD_TYPE=Release" + - "-DCMAKE_INSTALL_MESSAGE=LAZY" + + # Set CMP0135 so that extracted files use the current timestamp as their modification + # timestamp, which ensures the library gets rebuilt if the extracted files change. + - "-DCMAKE_POLICY_DEFAULT_CMP0135=NEW" + SOURCE_DIR: "{{.SOURCE_DIR}}" + - task: "yscope-dev-utils:cmake:build" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + - task: "yscope-dev-utils:cmake:install" + vars: + BUILD_DIR: "{{.BUILD_DIR}}" + CMAKE_SETTINGS_DIR: "{{.G_DEPS_CORE_CMAKE_SETTINGS_DIR}}" + INSTALL_PREFIX: "{{.INSTALL_PREFIX}}" + NAME: "{{.LIB_NAME}}" + + # This command must be last + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.INSTALL_PREFIX}}"] + catch2: internal: true run: "once" From 7507fec3c158c2a7766feaf77855fa5d15943283 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Tue, 3 Jun 2025 19:15:04 -0400 Subject: [PATCH 21/55] Limit task concurrency to the number of available cores. --- .github/workflows/clp-core-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 16952dab5e..8fa23c4024 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,7 +179,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task deps:core + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -222,7 +222,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task deps:core + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core From 4bb484e5fa0e3745b81d4740a660a38de620a2d0 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Tue, 3 Jun 2025 19:35:57 -0400 Subject: [PATCH 22/55] Test hard-coding number of parallel tasks that can be run. --- .github/workflows/clp-core-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 8fa23c4024..275300cf58 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,7 +179,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + task --concurrency 2 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -222,7 +222,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + task --concurrency 2 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core From cfd48c06759607e42ad92ed3246c2fc82e9e1efa Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Tue, 3 Jun 2025 20:28:09 -0400 Subject: [PATCH 23/55] Execute one task at a time. --- .github/workflows/clp-core-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 275300cf58..f7f578e7a1 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,7 +179,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency 2 deps:core + task --concurrency 1 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -222,7 +222,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency 2 deps:core + task --concurrency 1 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core From 4a8ad65582d41143230f07428b52d10b4976029a Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Tue, 3 Jun 2025 21:03:29 -0400 Subject: [PATCH 24/55] Limit the antlr-runtime build to 2 cores. --- taskfiles/deps/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 7c8b0116a8..06a0fec791 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -128,6 +128,7 @@ tasks: - task: "yscope-dev-utils:cmake:build" vars: BUILD_DIR: "{{.BUILD_DIR}}" + JOBS: 2 - task: "yscope-dev-utils:cmake:install" vars: BUILD_DIR: "{{.BUILD_DIR}}" From 0c3e5e1c019a25892e0fd9e73e0d126d2af02480 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:38:25 -0400 Subject: [PATCH 25/55] Revert "Limit the antlr-runtime build to 2 cores." This reverts commit 4a8ad65582d41143230f07428b52d10b4976029a. --- taskfiles/deps/main.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 06a0fec791..7c8b0116a8 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -128,7 +128,6 @@ tasks: - task: "yscope-dev-utils:cmake:build" vars: BUILD_DIR: "{{.BUILD_DIR}}" - JOBS: 2 - task: "yscope-dev-utils:cmake:install" vars: BUILD_DIR: "{{.BUILD_DIR}}" From 5fee6376554b8ba46a2cd8b0140b899b82c86767 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:38:26 -0400 Subject: [PATCH 26/55] Revert "Execute one task at a time." This reverts commit cfd48c06759607e42ad92ed3246c2fc82e9e1efa. --- .github/workflows/clp-core-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index f7f578e7a1..275300cf58 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,7 +179,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency 1 deps:core + task --concurrency 2 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -222,7 +222,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency 1 deps:core + task --concurrency 2 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core From 10baa2dd6958aadac6cc27dc8d269492fa72ea95 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:38:26 -0400 Subject: [PATCH 27/55] Revert "Test hard-coding number of parallel tasks that can be run." This reverts commit 4bb484e5fa0e3745b81d4740a660a38de620a2d0. --- .github/workflows/clp-core-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 275300cf58..8fa23c4024 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,7 +179,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency 2 deps:core + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -222,7 +222,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency 2 deps:core + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core From 51bcf30ce202cfd3a98c39268d25f4a3f4c54458 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 09:38:26 -0400 Subject: [PATCH 28/55] Revert "Limit task concurrency to the number of available cores." This reverts commit 7507fec3c158c2a7766feaf77855fa5d15943283. --- .github/workflows/clp-core-build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 8fa23c4024..16952dab5e 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,7 +179,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + task deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -222,7 +222,7 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + task deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core From 6760985d79821158da91091123849422c476fc7c Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 14:29:00 -0400 Subject: [PATCH 29/55] Fix --- .../core/src/clp_s/search/kql/CMakeLists.txt | 24 +++++++++--------- .../core/src/clp_s/search/sql/CMakeLists.txt | 24 +++++++++--------- taskfile.yaml | 13 ++++------ taskfiles/deps/main.yaml | 25 +++++++++++++++++++ 4 files changed, 54 insertions(+), 32 deletions(-) diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index bb90277ef9..5e5a659429 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,20 +1,20 @@ -set(ANTLR_GENERATED_KQL_CODE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) +set(ANTLR_GENERATED_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) -set(ANTLR_GENERATED_KQL_CODE - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlBaseVisitor.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlBaseVisitor.h - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlLexer.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlLexer.h - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlParser.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlParser.h - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlVisitor.cpp - ${ANTLR_GENERATED_KQL_CODE_DIR}/KqlVisitor.h +set(ANTLR_GENERATED_SOURCE + ${ANTLR_GENERATED_SOURCE_DIR}/KqlBaseVisitor.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/KqlBaseVisitor.h + ${ANTLR_GENERATED_SOURCE_DIR}/KqlLexer.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/KqlLexer.h + ${ANTLR_GENERATED_SOURCE_DIR}/KqlParser.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/KqlParser.h + ${ANTLR_GENERATED_SOURCE_DIR}/KqlVisitor.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/KqlVisitor.h ) add_library( clp_s_search_kql ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp - ${ANTLR_GENERATED_KQL_CODE} + ${ANTLR_GENERATED_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/kql.cpp ${CMAKE_CURRENT_SOURCE_DIR}/kql.hpp ) @@ -22,7 +22,7 @@ add_library(clp_s::search::kql ALIAS clp_s_search_kql) target_compile_features(clp_s_search_kql PRIVATE cxx_std_20) target_include_directories(clp_s_search_kql PRIVATE - ${ANTLR_GENERATED_KQL_CODE_DIR} + ${ANTLR_GENERATED_SOURCE_DIR} ) target_link_libraries( diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index da65adbac0..82722fb04a 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,20 +1,20 @@ -set(ANTLR_GENERATED_SQL_CODE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) +set(ANTLR_GENERATED_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) -set(ANTLR_GENERATED_SQL_CODE - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlBaseVisitor.cpp - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlBaseVisitor.h - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlLexer.cpp - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlLexer.h - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlParser.cpp - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlParser.h - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlVisitor.cpp - ${ANTLR_GENERATED_SQL_CODE_DIR}/SqlVisitor.h +set(ANTLR_GENERATED_SOURCE + ${ANTLR_GENERATED_SOURCE_DIR}/SqlBaseVisitor.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/SqlBaseVisitor.h + ${ANTLR_GENERATED_SOURCE_DIR}/SqlLexer.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/SqlLexer.h + ${ANTLR_GENERATED_SOURCE_DIR}/SqlParser.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/SqlParser.h + ${ANTLR_GENERATED_SOURCE_DIR}/SqlVisitor.cpp + ${ANTLR_GENERATED_SOURCE_DIR}/SqlVisitor.h ) add_library( clp_s_search_sql ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp - ${ANTLR_GENERATED_SQL_CODE} + ${ANTLR_GENERATED_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/sql.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sql.hpp ) @@ -22,7 +22,7 @@ add_library(clp_s::search::sql ALIAS clp_s_search_sql) target_compile_features(clp_s_search_sql PRIVATE cxx_std_20) target_include_directories(clp_s_search_sql PRIVATE - ${ANTLR_GENERATED_SQL_CODE_DIR} + ${ANTLR_GENERATED_SOURCE_DIR} ) target_link_libraries( diff --git a/taskfile.yaml b/taskfile.yaml index 5cd79a295b..28cf901f0d 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -37,8 +37,10 @@ vars: # ANTLR codegen related G_ANTLR_VERSION: "4.13.1" + G_ANTLR_JAR_DIR: "{{.G_BUILD_DIR}}/antlr" + G_ANTLR_JAR_CHECKSUM_FILE: "{{.G_ANTLR_JAR_DIR}}/checksum/antlr.md5" G_ANTLR_JAR_NAME: "antlr-{{.G_ANTLR_VERSION}}-complete.jar" - G_ANTLR_JAR_PATH: "/tmp/{{.G_ANTLR_JAR_NAME}}" + G_ANTLR_JAR_PATH: "{{.G_ANTLR_JAR_DIR}}/{{.G_ANTLR_JAR_NAME}}" G_ANTLR_DOWNLOAD_URL: "https://www.antlr.org/download/{{.G_ANTLR_JAR_NAME}}" tasks: @@ -93,11 +95,8 @@ tasks: STORAGE_ENGINE: "clp" clp-s-generate-antlr: - preconditions: - - sh: "which curl >/dev/null" - msg: "curl is required to download the ANTLR JAR" - - sh: "which java >/dev/null" - msg: "Java is required for ANTLR code generation" + deps: + - "deps:antlr-jar" sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" @@ -108,7 +107,6 @@ tasks: cmds: - "rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - "rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" - - "curl -o {{.G_ANTLR_JAR_PATH}} {{.G_ANTLR_DOWNLOAD_URL}}" - | java -jar {{.G_ANTLR_JAR_PATH}} \ -Dlanguage=Cpp \ @@ -131,7 +129,6 @@ tasks: - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*.tokens" - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*.interp" - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*.tokens" - - "rm -f {{.G_ANTLR_JAR_PATH}}" clp-s-generate-antlr-check: deps: diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 7c8b0116a8..d003aa66ac 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -56,6 +56,7 @@ tasks: run: "once" deps: - task: "absl" + - task: "antlr-jar" - task: "antlr-runtime" - task: "catch2" - task: "date" @@ -84,6 +85,30 @@ tasks: TARBALL_SHA256: "987ce98f02eefbaf930d6e38ab16aa05737234d7afbab2d5c4ea7adbe50c28ed" TARBALL_URL: "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.1.tar.gz" + antlr-jar: + internal: true + run: "once" + deps: + - task: "yscope-dev-utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.G_ANTLR_JAR_CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + - "{{.G_ANTLR_JAR_PATH}}" + - task: "utils:init" + cmds: + - task: "yscope-dev-utils:remote:curl" + vars: + FILE_SHA256: "bc13a9c57a8dd7d5196888211e5ede657cb64a3ce968608697e4f668251a8487" + OUTPUT_FILE: "{{.G_ANTLR_JAR_PATH}}" + URL: "{{.G_ANTLR_DOWNLOAD_URL}}" + + # This command must be last + - task: "yscope-dev-utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.G_ANTLR_JAR_CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + - "{{.G_ANTLR_JAR_PATH}}" + antlr-runtime: internal: true run: "once" From 457254ed695202858dbfe682e95e207c082478d6 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 14:29:33 -0400 Subject: [PATCH 30/55] Test --- .../core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h index e05081c36b..600d61a241 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -5,8 +5,7 @@ #include "antlr4-runtime.h" -#include "KqlVisitor.h" - +#include "KqlVisitor.h namespace clp_s::search::kql { From e30dc2b0cdcae90d4c5a62e81fdccfdb7551fccf Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 14:30:02 -0400 Subject: [PATCH 31/55] Test over --- .../core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h index 600d61a241..e05081c36b 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -5,7 +5,8 @@ #include "antlr4-runtime.h" -#include "KqlVisitor.h +#include "KqlVisitor.h" + namespace clp_s::search::kql { From 7b27d636a6f4fb52bd4b6321a4fc2e811425cda2 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 15:12:35 -0400 Subject: [PATCH 32/55] Fix all comments --- ...clp-s-generated-code-committed-check.yaml} | 22 +++--- .../core/src/clp_s/search/kql/CMakeLists.txt | 4 +- .../kql/antlr_generated/KqlBaseVisitor.cpp | 4 +- .../kql/antlr_generated/KqlBaseVisitor.h | 6 +- .../search/kql/antlr_generated/KqlLexer.cpp | 8 +- .../search/kql/antlr_generated/KqlLexer.h | 6 +- .../search/kql/antlr_generated/KqlParser.cpp | 8 +- .../search/kql/antlr_generated/KqlParser.h | 6 +- .../search/kql/antlr_generated/KqlVisitor.cpp | 4 +- .../search/kql/antlr_generated/KqlVisitor.h | 6 +- components/core/src/clp_s/search/kql/kql.cpp | 3 + .../core/src/clp_s/search/sql/CMakeLists.txt | 4 +- .../sql/antlr_generated/SqlBaseVisitor.cpp | 4 +- .../sql/antlr_generated/SqlBaseVisitor.h | 6 +- .../search/sql/antlr_generated/SqlLexer.cpp | 8 +- .../search/sql/antlr_generated/SqlLexer.h | 6 +- .../search/sql/antlr_generated/SqlParser.cpp | 8 +- .../search/sql/antlr_generated/SqlParser.h | 6 +- .../search/sql/antlr_generated/SqlVisitor.cpp | 4 +- .../search/sql/antlr_generated/SqlVisitor.h | 6 +- components/core/src/clp_s/search/sql/sql.cpp | 3 + taskfile.yaml | 76 ++++++++----------- taskfiles/deps/main.yaml | 4 +- 23 files changed, 104 insertions(+), 108 deletions(-) rename .github/workflows/{clp-s-antlr-generation.yaml => clp-s-generated-code-committed-check.yaml} (60%) diff --git a/.github/workflows/clp-s-antlr-generation.yaml b/.github/workflows/clp-s-generated-code-committed-check.yaml similarity index 60% rename from .github/workflows/clp-s-antlr-generation.yaml rename to .github/workflows/clp-s-generated-code-committed-check.yaml index 829d5a7105..8855bddef8 100644 --- a/.github/workflows/clp-s-antlr-generation.yaml +++ b/.github/workflows/clp-s-generated-code-committed-check.yaml @@ -1,11 +1,8 @@ -name: "clp-s-antlr-generation" +name: "clp-s-generated-code-committed-check" on: pull_request: push: - schedule: - # Run daily at 00:15 UTC (the 15 is to avoid periods of high load) - - cron: "15 0 * * *" workflow_dispatch: concurrency: @@ -15,7 +12,7 @@ concurrency: jobs: antlr-generation-check: - name: "antlr-generation-check" + name: "antlr-generated-code-committed-check" strategy: matrix: os: ["macos-latest", "ubuntu-latest"] @@ -25,10 +22,6 @@ jobs: with: submodules: "recursive" - - uses: "actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38" - with: - python-version: "3.11" - - name: "Install task" shell: "bash" run: "npm install -g @go-task/cli" @@ -37,6 +30,13 @@ jobs: name: "Install coreutils (for md5sum)" run: "brew install coreutils" - - name: "Run clp-s-generate-antlr-check task" + - name: "Check if the generated parsers are the latest" shell: "bash" - run: "task clp-s-generate-antlr-check" + run: + - | + git status --porcelain \ + components/core/src/clp_s/search/kql/antlr_generated \ + components/core/src/clp_s/search/sql/antlr_generated \ + | grep . > /dev/null \ + && exit 1 \ + || exit 0 diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index 5e5a659429..ee14ad8d1d 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,6 +1,6 @@ set(ANTLR_GENERATED_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) -set(ANTLR_GENERATED_SOURCE +set(ANTLR_GENERATED_SOURCES ${ANTLR_GENERATED_SOURCE_DIR}/KqlBaseVisitor.cpp ${ANTLR_GENERATED_SOURCE_DIR}/KqlBaseVisitor.h ${ANTLR_GENERATED_SOURCE_DIR}/KqlLexer.cpp @@ -13,8 +13,8 @@ set(ANTLR_GENERATED_SOURCE add_library( clp_s_search_kql + ${ANTLR_GENERATED_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp - ${ANTLR_GENERATED_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/kql.cpp ${CMAKE_CURRENT_SOURCE_DIR}/kql.hpp ) diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp index 5621e08c44..aed0ca6d77 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp @@ -1,9 +1,9 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #include "KqlBaseVisitor.h" -using namespace clp_s::search::kql; +using namespace clp_s::search::kql::generated; diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h index e05081c36b..0df2f721f1 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #pragma once @@ -8,7 +8,7 @@ #include "KqlVisitor.h" -namespace clp_s::search::kql { +namespace clp_s::search::kql::generated { /** * This class provides an empty implementation of KqlVisitor, which can be @@ -68,4 +68,4 @@ class KqlBaseVisitor : public KqlVisitor { }; -} // namespace clp_s::search::kql +} // namespace clp_s::search::kql::generated diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp index 6a90ab6f03..2615e6f2ff 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp @@ -1,5 +1,5 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #include "KqlLexer.h" @@ -7,7 +7,7 @@ using namespace antlr4; -using namespace clp_s::search::kql; +using namespace clp_s::search::kql::generated; using namespace antlr4; @@ -46,7 +46,7 @@ ::antlr4::internal::OnceFlag kqllexerLexerOnceFlag; #if ANTLR4_USE_THREAD_LOCAL_CACHE static thread_local #endif -KqlLexerStaticData *kqllexerLexerStaticData = nullptr; +std::unique_ptr kqllexerLexerStaticData = nullptr; void kqllexerLexerInitialize() { #if ANTLR4_USE_THREAD_LOCAL_CACHE @@ -146,7 +146,7 @@ void kqllexerLexerInitialize() { for (size_t i = 0; i < count; i++) { staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); } - kqllexerLexerStaticData = staticData.release(); + kqllexerLexerStaticData = std::move(staticData); } } diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h index b73896b11e..fa3b15dd20 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #pragma once @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace clp_s::search::kql { +namespace clp_s::search::kql::generated { class KqlLexer : public antlr4::Lexer { @@ -50,4 +50,4 @@ class KqlLexer : public antlr4::Lexer { }; -} // namespace clp_s::search::kql +} // namespace clp_s::search::kql::generated diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp index cab30172fe..62f7561178 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp @@ -1,5 +1,5 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #include "KqlVisitor.h" @@ -8,7 +8,7 @@ using namespace antlrcpp; -using namespace clp_s::search::kql; +using namespace clp_s::search::kql::generated; using namespace antlr4; @@ -41,7 +41,7 @@ ::antlr4::internal::OnceFlag kqlParserOnceFlag; #if ANTLR4_USE_THREAD_LOCAL_CACHE static thread_local #endif -KqlParserStaticData *kqlParserStaticData = nullptr; +std::unique_ptr kqlParserStaticData = nullptr; void kqlParserInitialize() { #if ANTLR4_USE_THREAD_LOCAL_CACHE @@ -99,7 +99,7 @@ void kqlParserInitialize() { for (size_t i = 0; i < count; i++) { staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); } - kqlParserStaticData = staticData.release(); + kqlParserStaticData = std::move(staticData); } } diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h index cfd1ede6c0..1ca5172b70 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #pragma once @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace clp_s::search::kql { +namespace clp_s::search::kql::generated { class KqlParser : public antlr4::Parser { @@ -249,4 +249,4 @@ class KqlParser : public antlr4::Parser { private: }; -} // namespace clp_s::search::kql +} // namespace clp_s::search::kql::generated diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp index 8081a551de..44df6d3974 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp @@ -1,9 +1,9 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #include "KqlVisitor.h" -using namespace clp_s::search::kql; +using namespace clp_s::search::kql::generated; diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h index c4177e37c2..85947f48fc 100644 --- a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h +++ b/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/kql/Kql.g4 by ANTLR 4.13.2 #pragma once @@ -8,7 +8,7 @@ #include "KqlParser.h" -namespace clp_s::search::kql { +namespace clp_s::search::kql::generated { /** * This class defines an abstract visitor for a parse tree @@ -47,4 +47,4 @@ class KqlVisitor : public antlr4::tree::AbstractParseTreeVisitor { }; -} // namespace clp_s::search::kql +} // namespace clp_s::search::kql::generated diff --git a/components/core/src/clp_s/search/kql/kql.cpp b/components/core/src/clp_s/search/kql/kql.cpp index 9e4c781baf..3487d960c6 100644 --- a/components/core/src/clp_s/search/kql/kql.cpp +++ b/components/core/src/clp_s/search/kql/kql.cpp @@ -44,6 +44,9 @@ using clp_s::search::ast::OrExpr; using clp_s::search::ast::StringLiteral; namespace clp_s::search::kql { + +using namespace generated; + namespace { class ParseTreeVisitor : public KqlBaseVisitor { private: diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 82722fb04a..ad6a4945dd 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,6 +1,6 @@ set(ANTLR_GENERATED_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) -set(ANTLR_GENERATED_SOURCE +set(ANTLR_GENERATED_SOURCES ${ANTLR_GENERATED_SOURCE_DIR}/SqlBaseVisitor.cpp ${ANTLR_GENERATED_SOURCE_DIR}/SqlBaseVisitor.h ${ANTLR_GENERATED_SOURCE_DIR}/SqlLexer.cpp @@ -13,8 +13,8 @@ set(ANTLR_GENERATED_SOURCE add_library( clp_s_search_sql + ${ANTLR_GENERATED_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp - ${ANTLR_GENERATED_SOURCE} ${CMAKE_CURRENT_SOURCE_DIR}/sql.cpp ${CMAKE_CURRENT_SOURCE_DIR}/sql.hpp ) diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp index 68681e7b3d..a508ee1afb 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp @@ -1,9 +1,9 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #include "SqlBaseVisitor.h" -using namespace clp_s::search::sql; +using namespace clp_s::search::sql::generated; diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h index ae820be3ba..94ae148452 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #pragma once @@ -8,7 +8,7 @@ #include "SqlVisitor.h" -namespace clp_s::search::sql { +namespace clp_s::search::sql::generated { /** * This class provides an empty implementation of SqlVisitor, which can be @@ -24,4 +24,4 @@ class SqlBaseVisitor : public SqlVisitor { }; -} // namespace clp_s::search::sql +} // namespace clp_s::search::sql::generated diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp index 99b3d9f1d8..abb185f5d4 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp @@ -1,5 +1,5 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #include "SqlLexer.h" @@ -7,7 +7,7 @@ using namespace antlr4; -using namespace clp_s::search::sql; +using namespace clp_s::search::sql::generated; using namespace antlr4; @@ -46,7 +46,7 @@ ::antlr4::internal::OnceFlag sqllexerLexerOnceFlag; #if ANTLR4_USE_THREAD_LOCAL_CACHE static thread_local #endif -SqlLexerStaticData *sqllexerLexerStaticData = nullptr; +std::unique_ptr sqllexerLexerStaticData = nullptr; void sqllexerLexerInitialize() { #if ANTLR4_USE_THREAD_LOCAL_CACHE @@ -87,7 +87,7 @@ void sqllexerLexerInitialize() { for (size_t i = 0; i < count; i++) { staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); } - sqllexerLexerStaticData = staticData.release(); + sqllexerLexerStaticData = std::move(staticData); } } diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h index b7425780ee..906c468e4a 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #pragma once @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace clp_s::search::sql { +namespace clp_s::search::sql::generated { class SqlLexer : public antlr4::Lexer { @@ -48,4 +48,4 @@ class SqlLexer : public antlr4::Lexer { }; -} // namespace clp_s::search::sql +} // namespace clp_s::search::sql::generated diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp index b6bed8995a..20f7f2391d 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp @@ -1,5 +1,5 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #include "SqlVisitor.h" @@ -8,7 +8,7 @@ using namespace antlrcpp; -using namespace clp_s::search::sql; +using namespace clp_s::search::sql::generated; using namespace antlr4; @@ -41,7 +41,7 @@ ::antlr4::internal::OnceFlag sqlParserOnceFlag; #if ANTLR4_USE_THREAD_LOCAL_CACHE static thread_local #endif -SqlParserStaticData *sqlParserStaticData = nullptr; +std::unique_ptr sqlParserStaticData = nullptr; void sqlParserInitialize() { #if ANTLR4_USE_THREAD_LOCAL_CACHE @@ -75,7 +75,7 @@ void sqlParserInitialize() { for (size_t i = 0; i < count; i++) { staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i); } - sqlParserStaticData = staticData.release(); + sqlParserStaticData = std::move(staticData); } } diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h index 03be292d7f..6f5558d72b 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #pragma once @@ -7,7 +7,7 @@ #include "antlr4-runtime.h" -namespace clp_s::search::sql { +namespace clp_s::search::sql::generated { class SqlParser : public antlr4::Parser { @@ -61,4 +61,4 @@ class SqlParser : public antlr4::Parser { private: }; -} // namespace clp_s::search::sql +} // namespace clp_s::search::sql::generated diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp index 000412da11..755454fc3e 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp @@ -1,9 +1,9 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #include "SqlVisitor.h" -using namespace clp_s::search::sql; +using namespace clp_s::search::sql::generated; diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h index ae0021de4c..bec8f3b3c7 100644 --- a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h +++ b/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h @@ -1,5 +1,5 @@ -// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.1 +// Generated from clp_s/search/sql/Sql.g4 by ANTLR 4.13.2 #pragma once @@ -8,7 +8,7 @@ #include "SqlParser.h" -namespace clp_s::search::sql { +namespace clp_s::search::sql::generated { /** * This class defines an abstract visitor for a parse tree @@ -25,4 +25,4 @@ class SqlVisitor : public antlr4::tree::AbstractParseTreeVisitor { }; -} // namespace clp_s::search::sql +} // namespace clp_s::search::sql::generated diff --git a/components/core/src/clp_s/search/sql/sql.cpp b/components/core/src/clp_s/search/sql/sql.cpp index 95675886a8..756a3231bf 100644 --- a/components/core/src/clp_s/search/sql/sql.cpp +++ b/components/core/src/clp_s/search/sql/sql.cpp @@ -20,6 +20,9 @@ using clp_s::search::ast::EmptyExpr; using clp_s::search::ast::Expression; namespace clp_s::search::sql { + +using namespace generated; + namespace { class ParseTreeVisitor : public SqlBaseVisitor { public: diff --git a/taskfile.yaml b/taskfile.yaml index 28cf901f0d..5bcf707c14 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -36,12 +36,11 @@ vars: G_PACKAGE_VERSION: "0.2.0-dev" # ANTLR codegen related - G_ANTLR_VERSION: "4.13.1" + G_ANTLR_VERSION: "4.13.2" G_ANTLR_JAR_DIR: "{{.G_BUILD_DIR}}/antlr" G_ANTLR_JAR_CHECKSUM_FILE: "{{.G_ANTLR_JAR_DIR}}/checksum/antlr.md5" G_ANTLR_JAR_NAME: "antlr-{{.G_ANTLR_VERSION}}-complete.jar" G_ANTLR_JAR_PATH: "{{.G_ANTLR_JAR_DIR}}/{{.G_ANTLR_JAR_NAME}}" - G_ANTLR_DOWNLOAD_URL: "https://www.antlr.org/download/{{.G_ANTLR_JAR_NAME}}" tasks: default: @@ -94,53 +93,42 @@ tasks: FLAVOUR: "text" STORAGE_ENGINE: "clp" - clp-s-generate-antlr: + clp-s-generate-parsers: + vars: + CHECKSUM_FILE: "{{.G_BUILD_DIR}}/{{.TASK}}.md5" + OUTPUT_DIR: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated" deps: - "deps:antlr-jar" + - task: "utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.OUTPUT_DIR}}"] sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" dir: "{{.G_CORE_COMPONENT_DIR}}/src/" - generates: - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/**/*" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/**/*" cmds: - - "rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - - "rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" - - | - java -jar {{.G_ANTLR_JAR_PATH}} \ - -Dlanguage=Cpp \ - -no-listener \ - -visitor \ - -package clp_s::search::kql \ - -o clp_s/search/kql/antlr_generated \ - -Xexact-output-dir \ - clp_s/search/kql/Kql.g4 - - | - java -jar {{.G_ANTLR_JAR_PATH}} \ - -Dlanguage=Cpp \ - -no-listener \ - -visitor \ - -package clp_s::search::sql \ - -o clp_s/search/sql/antlr_generated \ - -Xexact-output-dir \ - clp_s/search/sql/Sql.g4 - - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*.interp" - - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*.tokens" - - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*.interp" - - "rm -f {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*.tokens" - - clp-s-generate-antlr-check: - deps: - - "clp-s-generate-antlr" - cmds: - - | - git status --porcelain \ - {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated \ - {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated \ - | grep . > /dev/null \ - && exit 1 \ - || exit 0 + - for: ["kql", "sql"] + cmd: |- + rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/antlr_generated/* \ + && java -jar {{.G_ANTLR_JAR_PATH}} \ + -Dlanguage=Cpp \ + -no-listener \ + -visitor \ + -package clp_s::search::{{.ITEM}}::generated \ + -o clp_s/search/{{.ITEM}}/antlr_generated \ + -Xexact-output-dir \ + clp_s/search/{{.ITEM}}/*.g4 \ + && find "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/antlr_generated" \ + -type f -and -not \( -name "*.cpp" -o -name "*.h" \) \ + -exec rm {} \; + # This command must be last + - task: "utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: ["{{.OUTPUT_DIR}}"] package: env: @@ -247,7 +235,9 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/**/*" - "{{.TASKFILE}}" - "/etc/os-release" - deps: ["deps:core"] + deps: + - "deps:core" + - "clp-s-generate-parsers" cmds: - task: "utils:cmake:generate" vars: diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index d003aa66ac..e107967bef 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -100,7 +100,7 @@ tasks: vars: FILE_SHA256: "bc13a9c57a8dd7d5196888211e5ede657cb64a3ce968608697e4f668251a8487" OUTPUT_FILE: "{{.G_ANTLR_JAR_PATH}}" - URL: "{{.G_ANTLR_DOWNLOAD_URL}}" + URL: "https://www.antlr.org/download/{{.G_ANTLR_JAR_NAME}}" # This command must be last - task: "yscope-dev-utils:checksum:compute" @@ -137,7 +137,7 @@ tasks: INCLUDE_PATTERNS: ["*/runtime/Cpp"] NUM_COMPONENTS_TO_STRIP: 3 OUTPUT_DIR: "{{.SOURCE_DIR}}" - URL: "https://github.com/antlr/antlr4/archive/refs/tags/4.13.2.tar.gz" + URL: "https://github.com/antlr/antlr4/archive/refs/tags/{{.G_ANTLR_VERSION}}.tar.gz" - task: "yscope-dev-utils:cmake:generate" vars: BUILD_DIR: "{{.BUILD_DIR}}" From 0270ef25ac3b7918a6849bee30a29cbf2675f63c Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 15:23:15 -0400 Subject: [PATCH 33/55] Fix lint --- .github/workflows/clp-s-generated-code-committed-check.yaml | 2 +- components/core/src/clp_s/search/kql/kql.cpp | 1 - components/core/src/clp_s/search/sql/sql.cpp | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/clp-s-generated-code-committed-check.yaml b/.github/workflows/clp-s-generated-code-committed-check.yaml index 8855bddef8..a5ac92b6ff 100644 --- a/.github/workflows/clp-s-generated-code-committed-check.yaml +++ b/.github/workflows/clp-s-generated-code-committed-check.yaml @@ -11,7 +11,7 @@ concurrency: cancel-in-progress: true jobs: - antlr-generation-check: + antlr-generated-code-committed-check: name: "antlr-generated-code-committed-check" strategy: matrix: diff --git a/components/core/src/clp_s/search/kql/kql.cpp b/components/core/src/clp_s/search/kql/kql.cpp index 3487d960c6..a8c89477ec 100644 --- a/components/core/src/clp_s/search/kql/kql.cpp +++ b/components/core/src/clp_s/search/kql/kql.cpp @@ -44,7 +44,6 @@ using clp_s::search::ast::OrExpr; using clp_s::search::ast::StringLiteral; namespace clp_s::search::kql { - using namespace generated; namespace { diff --git a/components/core/src/clp_s/search/sql/sql.cpp b/components/core/src/clp_s/search/sql/sql.cpp index 756a3231bf..13a45424cb 100644 --- a/components/core/src/clp_s/search/sql/sql.cpp +++ b/components/core/src/clp_s/search/sql/sql.cpp @@ -20,7 +20,6 @@ using clp_s::search::ast::EmptyExpr; using clp_s::search::ast::Expression; namespace clp_s::search::sql { - using namespace generated; namespace { From c8277a07d977e964a077f79cc6eff553a314907f Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 15:27:47 -0400 Subject: [PATCH 34/55] Fix --- taskfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfile.yaml b/taskfile.yaml index 5bcf707c14..cd662e57a5 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -235,7 +235,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/**/*" - "{{.TASKFILE}}" - "/etc/os-release" - deps: + deps: - "deps:core" - "clp-s-generate-parsers" cmds: From 4b83336a715b0e8b01e03f1ba8eca48a98e6f9ad Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 15:43:07 -0400 Subject: [PATCH 35/55] Fix --- .../clp-s-generated-code-committed-check.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/clp-s-generated-code-committed-check.yaml b/.github/workflows/clp-s-generated-code-committed-check.yaml index a5ac92b6ff..5185bcaa62 100644 --- a/.github/workflows/clp-s-generated-code-committed-check.yaml +++ b/.github/workflows/clp-s-generated-code-committed-check.yaml @@ -33,10 +33,10 @@ jobs: - name: "Check if the generated parsers are the latest" shell: "bash" run: - - | - git status --porcelain \ - components/core/src/clp_s/search/kql/antlr_generated \ - components/core/src/clp_s/search/sql/antlr_generated \ - | grep . > /dev/null \ - && exit 1 \ - || exit 0 + | + git status --porcelain \ + components/core/src/clp_s/search/kql/antlr_generated \ + components/core/src/clp_s/search/sql/antlr_generated \ + | grep . > /dev/null \ + && exit 1 \ + || exit 0 From 29800158f3d155bd2c8f017a1df6ba3f57fbd9ab Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Wed, 4 Jun 2025 16:33:41 -0400 Subject: [PATCH 36/55] Fix some coderabbit comments --- taskfile.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/taskfile.yaml b/taskfile.yaml index cd662e57a5..5844df4b67 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -105,6 +105,7 @@ tasks: vars: CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: ["{{.OUTPUT_DIR}}"] + generates: ["{{.CHECKSUM_FILE}}"] sources: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" @@ -112,7 +113,7 @@ tasks: cmds: - for: ["kql", "sql"] cmd: |- - rm -rf {{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/antlr_generated/* \ + rm -rf "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/antlr_generated/*" \ && java -jar {{.G_ANTLR_JAR_PATH}} \ -Dlanguage=Cpp \ -no-listener \ From 7727eede90802dd964ae834ff610e73f071cd165 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 21:56:21 -0400 Subject: [PATCH 37/55] Limit task concurrency to number of cores. --- .github/workflows/clp-core-build.yaml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index c7608de6c2..f4e2e4f87d 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,12 +179,14 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core + num_cores=$(getconf _NPROCESSORS_ONLN) + && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores + task --concurrency $num_cores deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $(getconf _NPROCESSORS_ONLN) + --num-jobs $num_cores ubuntu-jammy-binaries: # Run if the ancestor jobs succeeded OR they were skipped and clp was changed. @@ -222,12 +224,14 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core + num_cores=$(getconf _NPROCESSORS_ONLN) + && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores + task --concurrency $num_cores deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $(getconf _NPROCESSORS_ONLN) + --num-jobs $num_cores - if: "matrix.upload_binaries == true" id: "copy_binaries" @@ -358,7 +362,10 @@ jobs: # TODO: When enough files are passing clang-tidy, switch to a full pass on schedule only. # run_command: >- # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} - run_command: "task lint:check-cpp-full" + run_command: >- + num_cores=$(getconf _NPROCESSORS_ONLN) + && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores + task --concurrency $num_cores lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From b5b2909cbb03338fd7f69d63b4ccffcd61ef58f3 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 22:24:25 -0400 Subject: [PATCH 38/55] Don't use a shell variable. --- .github/workflows/clp-core-build.yaml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index f4e2e4f87d..7655e95ea6 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,14 +179,13 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - num_cores=$(getconf _NPROCESSORS_ONLN) - && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores - task --concurrency $num_cores deps:core + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $num_cores + --num-jobs $(getconf _NPROCESSORS_ONLN) ubuntu-jammy-binaries: # Run if the ancestor jobs succeeded OR they were skipped and clp was changed. @@ -224,14 +223,13 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - num_cores=$(getconf _NPROCESSORS_ONLN) - && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores - task --concurrency $num_cores deps:core + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $num_cores + --num-jobs $(getconf _NPROCESSORS_ONLN) - if: "matrix.upload_binaries == true" id: "copy_binaries" @@ -363,9 +361,8 @@ jobs: # run_command: >- # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} run_command: >- - num_cores=$(getconf _NPROCESSORS_ONLN) - && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores - task --concurrency $num_cores lint:check-cpp-full + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + task --concurrency $(getconf _NPROCESSORS_ONLN) lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From 6da4782ea426b9e711929402ad0d4c85e38a08ec Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Wed, 4 Jun 2025 22:37:28 -0400 Subject: [PATCH 39/55] Limit task concurrency to 1. --- .github/workflows/clp-core-build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 7655e95ea6..b1f709b504 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -180,7 +180,7 @@ jobs: || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + task --concurrency 1 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -224,7 +224,7 @@ jobs: || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + task --concurrency 1 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -362,7 +362,7 @@ jobs: # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} run_command: >- CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency $(getconf _NPROCESSORS_ONLN) lint:check-cpp-full + task --concurrency 1 lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From e9c6c363afe76082e7c79ff83069bbf8dee851ed Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 5 Jun 2025 04:34:34 -0400 Subject: [PATCH 40/55] Account for shell variable expansion. --- .github/workflows/clp-core-build.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index b1f709b504..872e8d8b5d 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,8 +179,8 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency 1 deps:core + export CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + && task deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -223,8 +223,8 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency 1 deps:core + export CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + && task deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -361,8 +361,8 @@ jobs: # run_command: >- # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency 1 lint:check-cpp-full + export CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + && task lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From 9d9d91c9206e525681b5cde5dd2784d38bb9536e Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 5 Jun 2025 04:50:44 -0400 Subject: [PATCH 41/55] Specify JOBS for antlr-runtime task. --- taskfiles/deps/main.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index e107967bef..bfff7a58c6 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -153,6 +153,7 @@ tasks: - task: "yscope-dev-utils:cmake:build" vars: BUILD_DIR: "{{.BUILD_DIR}}" + JOBS: "{{.G_CORE_MAX_PARALLELISM_PER_BUILD_TASK}}" - task: "yscope-dev-utils:cmake:install" vars: BUILD_DIR: "{{.BUILD_DIR}}" From c493f544db87c28c759b56f277a8f3ac8561a6f4 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 5 Jun 2025 07:22:37 -0400 Subject: [PATCH 42/55] Revert "Account for shell variable expansion." This reverts commit e9c6c363afe76082e7c79ff83069bbf8dee851ed. --- .github/workflows/clp-core-build.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 872e8d8b5d..b1f709b504 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,8 +179,8 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - export CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - && task deps:core + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + task --concurrency 1 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -223,8 +223,8 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - export CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - && task deps:core + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + task --concurrency 1 deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -361,8 +361,8 @@ jobs: # run_command: >- # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} run_command: >- - export CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - && task lint:check-cpp-full + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) + task --concurrency 1 lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From 9a30c0b3e1b1488b7facdd370aa82e0c72bf57f0 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 5 Jun 2025 07:22:37 -0400 Subject: [PATCH 43/55] Revert "Limit task concurrency to 1." This reverts commit 6da4782ea426b9e711929402ad0d4c85e38a08ec. --- .github/workflows/clp-core-build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index b1f709b504..7655e95ea6 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -180,7 +180,7 @@ jobs: || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency 1 deps:core + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -224,7 +224,7 @@ jobs: || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency 1 deps:core + task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core @@ -362,7 +362,7 @@ jobs: # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} run_command: >- CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency 1 lint:check-cpp-full + task --concurrency $(getconf _NPROCESSORS_ONLN) lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From 3bcf6feb083a304af9c2dbf711056b22bda0c135 Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 5 Jun 2025 07:22:38 -0400 Subject: [PATCH 44/55] Revert "Don't use a shell variable." This reverts commit b5b2909cbb03338fd7f69d63b4ccffcd61ef58f3. --- .github/workflows/clp-core-build.yaml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index 7655e95ea6..f4e2e4f87d 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,13 +179,14 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + num_cores=$(getconf _NPROCESSORS_ONLN) + && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores + task --concurrency $num_cores deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $(getconf _NPROCESSORS_ONLN) + --num-jobs $num_cores ubuntu-jammy-binaries: # Run if the ancestor jobs succeeded OR they were skipped and clp was changed. @@ -223,13 +224,14 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency $(getconf _NPROCESSORS_ONLN) deps:core + num_cores=$(getconf _NPROCESSORS_ONLN) + && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores + task --concurrency $num_cores deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $(getconf _NPROCESSORS_ONLN) + --num-jobs $num_cores - if: "matrix.upload_binaries == true" id: "copy_binaries" @@ -361,8 +363,9 @@ jobs: # run_command: >- # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} run_command: >- - CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) - task --concurrency $(getconf _NPROCESSORS_ONLN) lint:check-cpp-full + num_cores=$(getconf _NPROCESSORS_ONLN) + && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores + task --concurrency $num_cores lint:check-cpp-full # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From 6b4f74e88e72cac4baa3e7b6a7c2c94a3a36984a Mon Sep 17 00:00:00 2001 From: Kirk Rodrigues <2454684+kirkrodrigues@users.noreply.github.com> Date: Thu, 5 Jun 2025 07:22:38 -0400 Subject: [PATCH 45/55] Revert "Limit task concurrency to number of cores." This reverts commit 7727eede90802dd964ae834ff610e73f071cd165. --- .github/workflows/clp-core-build.yaml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/clp-core-build.yaml b/.github/workflows/clp-core-build.yaml index f4e2e4f87d..c7608de6c2 100644 --- a/.github/workflows/clp-core-build.yaml +++ b/.github/workflows/clp-core-build.yaml @@ -179,14 +179,12 @@ jobs: ${{needs.filter-relevant-changes.outputs.centos_stream_9_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - num_cores=$(getconf _NPROCESSORS_ONLN) - && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores - task --concurrency $num_cores deps:core + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $num_cores + --num-jobs $(getconf _NPROCESSORS_ONLN) ubuntu-jammy-binaries: # Run if the ancestor jobs succeeded OR they were skipped and clp was changed. @@ -224,14 +222,12 @@ jobs: ${{needs.filter-relevant-changes.outputs.ubuntu_jammy_image_changed == 'false' || (github.event_name != 'pull_request' && github.ref == 'refs/heads/main')}} run_command: >- - num_cores=$(getconf _NPROCESSORS_ONLN) - && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores - task --concurrency $num_cores deps:core + CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$(getconf _NPROCESSORS_ONLN) task deps:core && python3 /mnt/repo/components/core/tools/scripts/utils/build-and-run-unit-tests.py ${{matrix.use_shared_libs == true && '--use-shared-libs' || ''}} --source-dir /mnt/repo/components/core --build-dir /mnt/repo/components/core/build - --num-jobs $num_cores + --num-jobs $(getconf _NPROCESSORS_ONLN) - if: "matrix.upload_binaries == true" id: "copy_binaries" @@ -362,10 +358,7 @@ jobs: # TODO: When enough files are passing clang-tidy, switch to a full pass on schedule only. # run_command: >- # task lint:check-cpp-${{(github.event_name == 'schedule') && 'full' || 'diff'}} - run_command: >- - num_cores=$(getconf _NPROCESSORS_ONLN) - && CLP_CORE_MAX_PARALLELISM_PER_BUILD_TASK=$num_cores - task --concurrency $num_cores lint:check-cpp-full + run_command: "task lint:check-cpp-full" # Cache the source file checksums and the generated files (logs) for the # lint:check-cpp-static-full task, but only if it runs successfully on the main branch. From 529787ee10440765fed1cffbf1799916833cc80a Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Thu, 5 Jun 2025 14:27:25 -0400 Subject: [PATCH 46/55] Fix --- components/core/src/clp_s/search/kql/CMakeLists.txt | 8 ++++---- components/core/src/clp_s/search/kql/kql.cpp | 4 +++- components/core/src/clp_s/search/sql/CMakeLists.txt | 8 ++++---- components/core/src/clp_s/search/sql/sql.cpp | 4 +++- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index ee14ad8d1d..f780d165d1 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ANTLR_GENERATED_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) +set(ANTLR_GENERATED_SOURCE_DIR antlr_generated) set(ANTLR_GENERATED_SOURCES ${ANTLR_GENERATED_SOURCE_DIR}/KqlBaseVisitor.cpp @@ -14,9 +14,9 @@ set(ANTLR_GENERATED_SOURCES add_library( clp_s_search_kql ${ANTLR_GENERATED_SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/kql.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/kql.hpp + ../antlr_common/ErrorListener.hpp + kql.cpp + kql.hpp ) add_library(clp_s::search::kql ALIAS clp_s_search_kql) target_compile_features(clp_s_search_kql PRIVATE cxx_std_20) diff --git a/components/core/src/clp_s/search/kql/kql.cpp b/components/core/src/clp_s/search/kql/kql.cpp index a8c89477ec..0d72ca082e 100644 --- a/components/core/src/clp_s/search/kql/kql.cpp +++ b/components/core/src/clp_s/search/kql/kql.cpp @@ -44,7 +44,9 @@ using clp_s::search::ast::OrExpr; using clp_s::search::ast::StringLiteral; namespace clp_s::search::kql { -using namespace generated; +using generated::KqlBaseVisitor; +using generated::KqlLexer; +using generated::KqlParser; namespace { class ParseTreeVisitor : public KqlBaseVisitor { diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index ad6a4945dd..063a5e23d5 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ANTLR_GENERATED_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/antlr_generated) +set(ANTLR_GENERATED_SOURCE_DIR antlr_generated) set(ANTLR_GENERATED_SOURCES ${ANTLR_GENERATED_SOURCE_DIR}/SqlBaseVisitor.cpp @@ -14,9 +14,9 @@ set(ANTLR_GENERATED_SOURCES add_library( clp_s_search_sql ${ANTLR_GENERATED_SOURCES} - ${CMAKE_CURRENT_SOURCE_DIR}/../antlr_common/ErrorListener.hpp - ${CMAKE_CURRENT_SOURCE_DIR}/sql.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/sql.hpp + ../antlr_common/ErrorListener.hpp + sql.cpp + sql.hpp ) add_library(clp_s::search::sql ALIAS clp_s_search_sql) target_compile_features(clp_s_search_sql PRIVATE cxx_std_20) diff --git a/components/core/src/clp_s/search/sql/sql.cpp b/components/core/src/clp_s/search/sql/sql.cpp index 13a45424cb..accf020844 100644 --- a/components/core/src/clp_s/search/sql/sql.cpp +++ b/components/core/src/clp_s/search/sql/sql.cpp @@ -20,7 +20,9 @@ using clp_s::search::ast::EmptyExpr; using clp_s::search::ast::Expression; namespace clp_s::search::sql { -using namespace generated; +using generated::SqlBaseVisitor; +using generated::SqlLexer; +using generated::SqlParser; namespace { class ParseTreeVisitor : public SqlBaseVisitor { From b86cc0a3be7dfbf5e9afe359b12606e58ba33dd1 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Thu, 5 Jun 2025 14:57:48 -0400 Subject: [PATCH 47/55] Fix --- .../clp-s-generated-code-committed-check.yaml | 4 ++-- components/core/src/clp_s/search/kql/CMakeLists.txt | 2 +- .../{antlr_generated => generated}/KqlBaseVisitor.cpp | 0 .../{antlr_generated => generated}/KqlBaseVisitor.h | 0 .../kql/{antlr_generated => generated}/KqlLexer.cpp | 0 .../kql/{antlr_generated => generated}/KqlLexer.h | 0 .../kql/{antlr_generated => generated}/KqlParser.cpp | 0 .../kql/{antlr_generated => generated}/KqlParser.h | 0 .../kql/{antlr_generated => generated}/KqlVisitor.cpp | 0 .../kql/{antlr_generated => generated}/KqlVisitor.h | 0 components/core/src/clp_s/search/sql/CMakeLists.txt | 2 +- .../{antlr_generated => generated}/SqlBaseVisitor.cpp | 0 .../{antlr_generated => generated}/SqlBaseVisitor.h | 0 .../sql/{antlr_generated => generated}/SqlLexer.cpp | 0 .../sql/{antlr_generated => generated}/SqlLexer.h | 0 .../sql/{antlr_generated => generated}/SqlParser.cpp | 0 .../sql/{antlr_generated => generated}/SqlParser.h | 0 .../sql/{antlr_generated => generated}/SqlVisitor.cpp | 0 .../sql/{antlr_generated => generated}/SqlVisitor.h | 0 taskfile.yaml | 10 +++++----- 20 files changed, 9 insertions(+), 9 deletions(-) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlBaseVisitor.cpp (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlBaseVisitor.h (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlLexer.cpp (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlLexer.h (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlParser.cpp (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlParser.h (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlVisitor.cpp (100%) rename components/core/src/clp_s/search/kql/{antlr_generated => generated}/KqlVisitor.h (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlBaseVisitor.cpp (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlBaseVisitor.h (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlLexer.cpp (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlLexer.h (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlParser.cpp (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlParser.h (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlVisitor.cpp (100%) rename components/core/src/clp_s/search/sql/{antlr_generated => generated}/SqlVisitor.h (100%) diff --git a/.github/workflows/clp-s-generated-code-committed-check.yaml b/.github/workflows/clp-s-generated-code-committed-check.yaml index 5185bcaa62..cd6745e256 100644 --- a/.github/workflows/clp-s-generated-code-committed-check.yaml +++ b/.github/workflows/clp-s-generated-code-committed-check.yaml @@ -35,8 +35,8 @@ jobs: run: | git status --porcelain \ - components/core/src/clp_s/search/kql/antlr_generated \ - components/core/src/clp_s/search/sql/antlr_generated \ + components/core/src/clp_s/search/kql/generated \ + components/core/src/clp_s/search/sql/generated \ | grep . > /dev/null \ && exit 1 \ || exit 0 diff --git a/components/core/src/clp_s/search/kql/CMakeLists.txt b/components/core/src/clp_s/search/kql/CMakeLists.txt index f780d165d1..7919201700 100644 --- a/components/core/src/clp_s/search/kql/CMakeLists.txt +++ b/components/core/src/clp_s/search/kql/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ANTLR_GENERATED_SOURCE_DIR antlr_generated) +set(ANTLR_GENERATED_SOURCE_DIR generated) set(ANTLR_GENERATED_SOURCES ${ANTLR_GENERATED_SOURCE_DIR}/KqlBaseVisitor.cpp diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp b/components/core/src/clp_s/search/kql/generated/KqlBaseVisitor.cpp similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.cpp rename to components/core/src/clp_s/search/kql/generated/KqlBaseVisitor.cpp diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h b/components/core/src/clp_s/search/kql/generated/KqlBaseVisitor.h similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlBaseVisitor.h rename to components/core/src/clp_s/search/kql/generated/KqlBaseVisitor.h diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp b/components/core/src/clp_s/search/kql/generated/KqlLexer.cpp similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.cpp rename to components/core/src/clp_s/search/kql/generated/KqlLexer.cpp diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h b/components/core/src/clp_s/search/kql/generated/KqlLexer.h similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlLexer.h rename to components/core/src/clp_s/search/kql/generated/KqlLexer.h diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp b/components/core/src/clp_s/search/kql/generated/KqlParser.cpp similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlParser.cpp rename to components/core/src/clp_s/search/kql/generated/KqlParser.cpp diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h b/components/core/src/clp_s/search/kql/generated/KqlParser.h similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlParser.h rename to components/core/src/clp_s/search/kql/generated/KqlParser.h diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp b/components/core/src/clp_s/search/kql/generated/KqlVisitor.cpp similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.cpp rename to components/core/src/clp_s/search/kql/generated/KqlVisitor.cpp diff --git a/components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h b/components/core/src/clp_s/search/kql/generated/KqlVisitor.h similarity index 100% rename from components/core/src/clp_s/search/kql/antlr_generated/KqlVisitor.h rename to components/core/src/clp_s/search/kql/generated/KqlVisitor.h diff --git a/components/core/src/clp_s/search/sql/CMakeLists.txt b/components/core/src/clp_s/search/sql/CMakeLists.txt index 063a5e23d5..9e4ce19d5f 100644 --- a/components/core/src/clp_s/search/sql/CMakeLists.txt +++ b/components/core/src/clp_s/search/sql/CMakeLists.txt @@ -1,4 +1,4 @@ -set(ANTLR_GENERATED_SOURCE_DIR antlr_generated) +set(ANTLR_GENERATED_SOURCE_DIR generated) set(ANTLR_GENERATED_SOURCES ${ANTLR_GENERATED_SOURCE_DIR}/SqlBaseVisitor.cpp diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp b/components/core/src/clp_s/search/sql/generated/SqlBaseVisitor.cpp similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.cpp rename to components/core/src/clp_s/search/sql/generated/SqlBaseVisitor.cpp diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h b/components/core/src/clp_s/search/sql/generated/SqlBaseVisitor.h similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlBaseVisitor.h rename to components/core/src/clp_s/search/sql/generated/SqlBaseVisitor.h diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp b/components/core/src/clp_s/search/sql/generated/SqlLexer.cpp similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.cpp rename to components/core/src/clp_s/search/sql/generated/SqlLexer.cpp diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h b/components/core/src/clp_s/search/sql/generated/SqlLexer.h similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlLexer.h rename to components/core/src/clp_s/search/sql/generated/SqlLexer.h diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp b/components/core/src/clp_s/search/sql/generated/SqlParser.cpp similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlParser.cpp rename to components/core/src/clp_s/search/sql/generated/SqlParser.cpp diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h b/components/core/src/clp_s/search/sql/generated/SqlParser.h similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlParser.h rename to components/core/src/clp_s/search/sql/generated/SqlParser.h diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp b/components/core/src/clp_s/search/sql/generated/SqlVisitor.cpp similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.cpp rename to components/core/src/clp_s/search/sql/generated/SqlVisitor.cpp diff --git a/components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h b/components/core/src/clp_s/search/sql/generated/SqlVisitor.h similarity index 100% rename from components/core/src/clp_s/search/sql/antlr_generated/SqlVisitor.h rename to components/core/src/clp_s/search/sql/generated/SqlVisitor.h diff --git a/taskfile.yaml b/taskfile.yaml index c6233345e0..a917951979 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -103,8 +103,8 @@ tasks: vars: CHECKSUM_FILE: "{{.G_BUILD_DIR}}/{{.TASK}}.md5" OUTPUT_DIR: - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/generated" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/generated" deps: - "deps:antlr-jar" - task: "utils:checksum:validate" @@ -119,16 +119,16 @@ tasks: cmds: - for: ["kql", "sql"] cmd: |- - rm -rf "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/antlr_generated/*" \ + rm -rf "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated/*" \ && java -jar {{.G_ANTLR_JAR_PATH}} \ -Dlanguage=Cpp \ -no-listener \ -visitor \ -package clp_s::search::{{.ITEM}}::generated \ - -o clp_s/search/{{.ITEM}}/antlr_generated \ + -o clp_s/search/{{.ITEM}}/generated \ -Xexact-output-dir \ clp_s/search/{{.ITEM}}/*.g4 \ - && find "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/antlr_generated" \ + && find "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated" \ -type f -and -not \( -name "*.cpp" -o -name "*.h" \) \ -exec rm {} \; # This command must be last From bcbd0fe8dc641ce473381b01f9415bf7924ab8be Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Thu, 5 Jun 2025 14:59:19 -0400 Subject: [PATCH 48/55] Change to generated in lint.yaml --- taskfiles/lint.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/taskfiles/lint.yaml b/taskfiles/lint.yaml index 7160db072d..8be95359f7 100644 --- a/taskfiles/lint.yaml +++ b/taskfiles/lint.yaml @@ -136,8 +136,8 @@ tasks: - task: ":utils:cpp-lint:clang-format" vars: EXCLUDE_PATTERNS: - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/generated/*" FLAGS: ["--dry-run"] INCLUDE_FILENAME_PATTERNS: ["*.cpp", "*.h", "*.hpp", "*.inc"] ROOT_PATHS: *cpp_source_files @@ -150,8 +150,8 @@ tasks: - task: ":utils:cpp-lint:clang-format" vars: EXCLUDE_PATTERNS: - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/generated/*" FLAGS: ["-i"] INCLUDE_FILENAME_PATTERNS: ["*.cpp", "*.h", "*.hpp", "*.inc"] ROOT_PATHS: *cpp_source_files From 54b73cce97f036d1c028860aee0fcd4446f16dbc Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Thu, 5 Jun 2025 14:59:50 -0400 Subject: [PATCH 49/55] Fix --- taskfiles/lint.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taskfiles/lint.yaml b/taskfiles/lint.yaml index 8be95359f7..b07c4cad31 100644 --- a/taskfiles/lint.yaml +++ b/taskfiles/lint.yaml @@ -496,7 +496,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/clp_search/Query.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/EvaluateTimestampIndex.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/EvaluateTimestampIndex.hpp" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/antlr_generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/generated/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/kql.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/kql.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/Output.cpp" @@ -507,7 +507,7 @@ tasks: - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/QueryRunner.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/SchemaMatch.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/SchemaMatch.hpp" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/antlr_generated/*" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/generated/*" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/sql.cpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/SingleFileArchiveDefs.hpp" - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/TimestampDictionaryReader.cpp" From 76fd933cea5ef5e451e9e7bf0e2c975dd1a2b0e0 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Thu, 5 Jun 2025 17:15:17 -0400 Subject: [PATCH 50/55] Fix --- taskfile.yaml | 10 +--------- taskfiles/deps/main.yaml | 28 +++++++++++++++++++++------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/taskfile.yaml b/taskfile.yaml index a917951979..cf392ed29b 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -35,14 +35,6 @@ vars: # Versions G_PACKAGE_VERSION: "0.2.0-dev" - - # ANTLR codegen related - G_ANTLR_VERSION: "4.13.2" - G_ANTLR_JAR_DIR: "{{.G_BUILD_DIR}}/antlr" - G_ANTLR_JAR_CHECKSUM_FILE: "{{.G_ANTLR_JAR_DIR}}/checksum/antlr.md5" - G_ANTLR_JAR_NAME: "antlr-{{.G_ANTLR_VERSION}}-complete.jar" - G_ANTLR_JAR_PATH: "{{.G_ANTLR_JAR_DIR}}/{{.G_ANTLR_JAR_NAME}}" - # Build parameters # NOTE: Defaulting to an empty string is safe since CMake ignores an empty string. G_CORE_MAX_PARALLELISM_PER_BUILD_TASK: >- @@ -120,7 +112,7 @@ tasks: - for: ["kql", "sql"] cmd: |- rm -rf "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated/*" \ - && java -jar {{.G_ANTLR_JAR_PATH}} \ + && java -jar {{.G_ANTLR_JAR_FILE}} \ -Dlanguage=Cpp \ -no-listener \ -visitor \ diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index bfff7a58c6..ab309a07b7 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -20,6 +20,10 @@ vars: # Library names G_FMT_LIB_NAME: "fmt" + # Antlr related + G_ANTLR_VERSION: "4.13.2" + G_ANTLR_JAR_FILE: "{{.G_DEPS_CORE_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + tasks: default: deps: @@ -87,27 +91,37 @@ tasks: antlr-jar: internal: true + vars: + DEP_NAME: "antlr" + + # Paths + CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.DEP_NAME}}.md5" + OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" run: "once" deps: - task: "yscope-dev-utils:checksum:validate" vars: - CHECKSUM_FILE: "{{.G_ANTLR_JAR_CHECKSUM_FILE}}" + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: - - "{{.G_ANTLR_JAR_PATH}}" + - "{{.OUTPUT_FILE}}" - task: "utils:init" cmds: - task: "yscope-dev-utils:remote:curl" vars: - FILE_SHA256: "bc13a9c57a8dd7d5196888211e5ede657cb64a3ce968608697e4f668251a8487" - OUTPUT_FILE: "{{.G_ANTLR_JAR_PATH}}" - URL: "https://www.antlr.org/download/{{.G_ANTLR_JAR_NAME}}" + FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" + OUTPUT_FILE: "{{.OUTPUT_FILE}}" + URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" + - >- + echo "set( + ANTLR_EXECUTABLE \"{{.OUTPUT_FILE}}\" + )" > "{{.G_DEPS_CORE_CMAKE_SETTINGS_DIR}}/{{.DEP_NAME}}.cmake" # This command must be last - task: "yscope-dev-utils:checksum:compute" vars: - CHECKSUM_FILE: "{{.G_ANTLR_JAR_CHECKSUM_FILE}}" + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: - - "{{.G_ANTLR_JAR_PATH}}" + - "{{.OUTPUT_FILE}}" antlr-runtime: internal: true From 37dbe46838d906539b4b28ff27866f7389be9fa1 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Fri, 6 Jun 2025 10:29:47 -0400 Subject: [PATCH 51/55] Fix --- ....yaml => clp-s-generated-code-checks.yaml} | 6 +- taskfile.yaml | 79 ++++++++++--------- taskfiles/deps/main.yaml | 2 +- 3 files changed, 45 insertions(+), 42 deletions(-) rename .github/workflows/{clp-s-generated-code-committed-check.yaml => clp-s-generated-code-checks.yaml} (88%) diff --git a/.github/workflows/clp-s-generated-code-committed-check.yaml b/.github/workflows/clp-s-generated-code-checks.yaml similarity index 88% rename from .github/workflows/clp-s-generated-code-committed-check.yaml rename to .github/workflows/clp-s-generated-code-checks.yaml index cd6745e256..0f91eed5c5 100644 --- a/.github/workflows/clp-s-generated-code-committed-check.yaml +++ b/.github/workflows/clp-s-generated-code-checks.yaml @@ -1,4 +1,4 @@ -name: "clp-s-generated-code-committed-check" +name: "clp-s-generated-code-checks" on: pull_request: @@ -11,8 +11,8 @@ concurrency: cancel-in-progress: true jobs: - antlr-generated-code-committed-check: - name: "antlr-generated-code-committed-check" + antlr-code-committed:: + name: "antlr-code-committed" strategy: matrix: os: ["macos-latest", "ubuntu-latest"] diff --git a/taskfile.yaml b/taskfile.yaml index cf392ed29b..9d3e326fa3 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -91,44 +91,6 @@ tasks: FLAVOUR: "text" STORAGE_ENGINE: "clp" - clp-s-generate-parsers: - vars: - CHECKSUM_FILE: "{{.G_BUILD_DIR}}/{{.TASK}}.md5" - OUTPUT_DIR: - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/generated" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/generated" - deps: - - "deps:antlr-jar" - - task: "utils:checksum:validate" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.OUTPUT_DIR}}"] - generates: ["{{.CHECKSUM_FILE}}"] - sources: - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" - - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" - dir: "{{.G_CORE_COMPONENT_DIR}}/src/" - cmds: - - for: ["kql", "sql"] - cmd: |- - rm -rf "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated/*" \ - && java -jar {{.G_ANTLR_JAR_FILE}} \ - -Dlanguage=Cpp \ - -no-listener \ - -visitor \ - -package clp_s::search::{{.ITEM}}::generated \ - -o clp_s/search/{{.ITEM}}/generated \ - -Xexact-output-dir \ - clp_s/search/{{.ITEM}}/*.g4 \ - && find "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated" \ - -type f -and -not \( -name "*.cpp" -o -name "*.h" \) \ - -exec rm {} \; - # This command must be last - - task: "utils:checksum:compute" - vars: - CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" - INCLUDE_PATTERNS: ["{{.OUTPUT_DIR}}"] - package: env: NODE_ENV: "production" @@ -220,6 +182,47 @@ tasks: CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" INCLUDE_PATTERNS: ["{{.OUTPUT_DIR}}"] + clp-s-generate-parsers: + vars: + CHECKSUM_FILE: "{{.G_BUILD_DIR}}/{{.TASK}}.md5" + OUTPUT_DIRS: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/generated" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/generated" + deps: + - "deps:antlr-jar" + - task: "utils:checksum:validate" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + ref: ".OUTPUT_DIRS" + generates: ["{{.CHECKSUM_FILE}}"] + sources: + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/kql/Kql.g4" + - "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/sql/Sql.g4" + dir: "{{.G_CORE_COMPONENT_DIR}}/src/" + cmds: + - for: ["kql", "sql"] + cmd: |- + rm -rf "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated/"* \ + && java -jar {{.G_ANTLR_JAR_FILE}} \ + -Dlanguage=Cpp \ + -no-listener \ + -visitor \ + -package clp_s::search::{{.ITEM}}::generated \ + -o clp_s/search/{{.ITEM}}/generated \ + -Xexact-output-dir \ + clp_s/search/{{.ITEM}}/*.g4 \ + && find "{{.G_CORE_COMPONENT_DIR}}/src/clp_s/search/{{.ITEM}}/generated" \ + -type f -and -not \( -name "*.cpp" -o -name "*.h" \) \ + -exec rm {} \; + + # This command must be last + - task: "utils:checksum:compute" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + INCLUDE_PATTERNS: + ref: ".OUTPUT_DIRS" + core: cmds: - task: "core-generate" diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index ab309a07b7..3300417740 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -20,7 +20,7 @@ vars: # Library names G_FMT_LIB_NAME: "fmt" - # Antlr related + # Antlr G_ANTLR_VERSION: "4.13.2" G_ANTLR_JAR_FILE: "{{.G_DEPS_CORE_DIR}}/antlr-{{.G_ANTLR_VERSION}}-complete.jar" From b07a57afc4f845d1e023ad336cbfcc0a5e7d5f03 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Fri, 6 Jun 2025 10:34:56 -0400 Subject: [PATCH 52/55] Fix --- .github/workflows/clp-s-generated-code-checks.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/clp-s-generated-code-checks.yaml b/.github/workflows/clp-s-generated-code-checks.yaml index 0f91eed5c5..e605db9005 100644 --- a/.github/workflows/clp-s-generated-code-checks.yaml +++ b/.github/workflows/clp-s-generated-code-checks.yaml @@ -11,7 +11,7 @@ concurrency: cancel-in-progress: true jobs: - antlr-code-committed:: + antlr-code-committed: name: "antlr-code-committed" strategy: matrix: From 9c741d06040e63e7c5b9fef87b6625e4f3aa79a2 Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Fri, 6 Jun 2025 10:38:32 -0400 Subject: [PATCH 53/55] Fix --- taskfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskfile.yaml b/taskfile.yaml index 9d3e326fa3..b7012bfdb9 100644 --- a/taskfile.yaml +++ b/taskfile.yaml @@ -238,8 +238,8 @@ tasks: - "{{.TASKFILE}}" - "/etc/os-release" deps: - - "deps:core" - "clp-s-generate-parsers" + - "deps:core" cmds: - task: "utils:cmake:generate" vars: From 8a9449e20d541d21a21d0273a01ac37d3e86409a Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Fri, 6 Jun 2025 11:28:36 -0400 Subject: [PATCH 54/55] Fix --- taskfiles/deps/main.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index 3300417740..a41fbc8885 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -111,10 +111,6 @@ tasks: FILE_SHA256: "eae2dfa119a64327444672aff63e9ec35a20180dc5b8090b7a6ab85125df4d76" OUTPUT_FILE: "{{.OUTPUT_FILE}}" URL: "https://www.antlr.org/download/antlr-{{.G_ANTLR_VERSION}}-complete.jar" - - >- - echo "set( - ANTLR_EXECUTABLE \"{{.OUTPUT_FILE}}\" - )" > "{{.G_DEPS_CORE_CMAKE_SETTINGS_DIR}}/{{.DEP_NAME}}.cmake" # This command must be last - task: "yscope-dev-utils:checksum:compute" From b35a0c9c6e407852d8482636d2f7f93fec19ef7c Mon Sep 17 00:00:00 2001 From: Xiaochong Wei Date: Fri, 6 Jun 2025 14:20:12 -0400 Subject: [PATCH 55/55] Fix --- taskfiles/deps/main.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/taskfiles/deps/main.yaml b/taskfiles/deps/main.yaml index a41fbc8885..f3516458f8 100644 --- a/taskfiles/deps/main.yaml +++ b/taskfiles/deps/main.yaml @@ -92,10 +92,7 @@ tasks: antlr-jar: internal: true vars: - DEP_NAME: "antlr" - - # Paths - CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/{{.DEP_NAME}}.md5" + CHECKSUM_FILE: "{{.G_DEPS_CORE_CHECKSUMS_DIR}}/antlr-jar.md5" OUTPUT_FILE: "{{.G_ANTLR_JAR_FILE}}" run: "once" deps: