From 6a0df8ca5cd2dc72ff37c4d7721766c62cde63ca Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Tue, 11 Feb 2020 11:15:09 -0300 Subject: [PATCH] parser: new bison version --- src/parser/location.hh | 82 +- src/parser/position.hh | 4 +- src/parser/seclang-parser.cc | 2905 ++++++++++++++++++---------------- src/parser/seclang-parser.hh | 296 ++-- src/parser/stack.hh | 4 +- 5 files changed, 1754 insertions(+), 1537 deletions(-) diff --git a/src/parser/location.hh b/src/parser/location.hh index 9b178d4d..3f87b6b7 100644 --- a/src/parser/location.hh +++ b/src/parser/location.hh @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.3.2. +// A Bison parser, made by GNU Bison 3.5.1. // Locations for Bison parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -38,7 +38,6 @@ #ifndef YY_YY_LOCATION_HH_INCLUDED # define YY_YY_LOCATION_HH_INCLUDED -# include // std::max # include # include @@ -54,17 +53,20 @@ # endif # endif - namespace yy { -#line 60 "location.hh" // location.cc:339 +#line 58 "location.hh" + /// A point in a source file. class position { public: + /// Type for line and column numbers. + typedef int counter_type; + /// Construct a position. explicit position (std::string* f = YY_NULLPTR, - unsigned l = 1u, - unsigned c = 1u) + counter_type l = 1, + counter_type c = 1) : filename (f) , line (l) , column (c) @@ -73,8 +75,8 @@ namespace yy { /// Initialization. void initialize (std::string* fn = YY_NULLPTR, - unsigned l = 1u, - unsigned c = 1u) + counter_type l = 1, + counter_type c = 1) { filename = fn; line = l; @@ -84,17 +86,17 @@ namespace yy { /** \name Line and Column related manipulators ** \{ */ /// (line related) Advance to the COUNT next lines. - void lines (int count = 1) + void lines (counter_type count = 1) { if (count) { - column = 1u; + column = 1; line = add_ (line, count, 1); } } /// (column related) Advance to the COUNT next columns. - void columns (int count = 1) + void columns (counter_type count = 1) { column = add_ (column, count, 1); } @@ -103,22 +105,21 @@ namespace yy { /// File name to which this position refers. std::string* filename; /// Current line number. - unsigned line; + counter_type line; /// Current column number. - unsigned column; + counter_type column; private: /// Compute max (min, lhs+rhs). - static unsigned add_ (unsigned lhs, int rhs, int min) + static counter_type add_ (counter_type lhs, counter_type rhs, counter_type min) { - return static_cast (std::max (min, - static_cast (lhs) + rhs)); + return lhs + rhs < min ? min : lhs + rhs; } }; /// Add \a width columns, in place. inline position& - operator+= (position& res, int width) + operator+= (position& res, position::counter_type width) { res.columns (width); return res; @@ -126,21 +127,21 @@ namespace yy { /// Add \a width columns. inline position - operator+ (position res, int width) + operator+ (position res, position::counter_type width) { return res += width; } /// Subtract \a width columns, in place. inline position& - operator-= (position& res, int width) + operator-= (position& res, position::counter_type width) { return res += -width; } /// Subtract \a width columns. inline position - operator- (position res, int width) + operator- (position res, position::counter_type width) { return res -= width; } @@ -180,6 +181,8 @@ namespace yy { class location { public: + /// Type for line and column numbers. + typedef position::counter_type counter_type; /// Construct a location from \a b to \a e. location (const position& b, const position& e) @@ -195,8 +198,8 @@ namespace yy { /// Construct a 0-width location in \a f, \a l, \a c. explicit location (std::string* f, - unsigned l = 1u, - unsigned c = 1u) + counter_type l = 1, + counter_type c = 1) : begin (f, l, c) , end (f, l, c) {} @@ -204,8 +207,8 @@ namespace yy { /// Initialization. void initialize (std::string* f = YY_NULLPTR, - unsigned l = 1u, - unsigned c = 1u) + counter_type l = 1, + counter_type c = 1) { begin.initialize (f, l, c); end = begin; @@ -221,13 +224,13 @@ namespace yy { } /// Extend the current location to the COUNT next columns. - void columns (int count = 1) + void columns (counter_type count = 1) { end += count; } /// Extend the current location to the COUNT next lines. - void lines (int count = 1) + void lines (counter_type count = 1) { end.lines (count); } @@ -242,39 +245,45 @@ namespace yy { }; /// Join two locations, in place. - inline location& operator+= (location& res, const location& end) + inline location& + operator+= (location& res, const location& end) { res.end = end.end; return res; } /// Join two locations. - inline location operator+ (location res, const location& end) + inline location + operator+ (location res, const location& end) { return res += end; } /// Add \a width columns to the end position, in place. - inline location& operator+= (location& res, int width) + inline location& + operator+= (location& res, location::counter_type width) { res.columns (width); return res; } /// Add \a width columns to the end position. - inline location operator+ (location res, int width) + inline location + operator+ (location res, location::counter_type width) { return res += width; } /// Subtract \a width columns to the end position, in place. - inline location& operator-= (location& res, int width) + inline location& + operator-= (location& res, location::counter_type width) { return res += -width; } /// Subtract \a width columns to the end position. - inline location operator- (location res, int width) + inline location + operator- (location res, location::counter_type width) { return res -= width; } @@ -303,7 +312,8 @@ namespace yy { std::basic_ostream& operator<< (std::basic_ostream& ostr, const location& loc) { - unsigned end_col = 0 < loc.end.column ? loc.end.column - 1 : 0; + location::counter_type end_col + = 0 < loc.end.column ? loc.end.column - 1 : 0; ostr << loc.begin; if (loc.end.filename && (!loc.begin.filename @@ -316,7 +326,7 @@ namespace yy { return ostr; } - } // yy -#line 322 "location.hh" // location.cc:339 +#line 331 "location.hh" + #endif // !YY_YY_LOCATION_HH_INCLUDED diff --git a/src/parser/position.hh b/src/parser/position.hh index 67f46e29..bf34c1c5 100644 --- a/src/parser/position.hh +++ b/src/parser/position.hh @@ -1,10 +1,10 @@ -// A Bison parser, made by GNU Bison 3.3.2. +// A Bison parser, made by GNU Bison 3.5.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". // // To get rid of this file: -// 1. add 'require "3.2"' (or newer) to your grammar file +// 1. add '%require "3.2"' (or newer) to your grammar file // 2. remove references to this file from your build system // 3. if you used to include it, include "location.hh" instead. diff --git a/src/parser/seclang-parser.cc b/src/parser/seclang-parser.cc index 5d3f3922..294ad8cf 100644 --- a/src/parser/seclang-parser.cc +++ b/src/parser/seclang-parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.3.2. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -41,11 +41,11 @@ // Unqualified %code blocks. -#line 324 "seclang-parser.yy" // lalr1.cc:435 +#line 324 "seclang-parser.yy" #include "src/parser/driver.h" -#line 49 "seclang-parser.cc" // lalr1.cc:435 +#line 49 "seclang-parser.cc" #ifndef YY_ @@ -90,9 +90,6 @@ # endif -// Suppress unused-variable warnings by "using" E. -#define YYUSE(E) ((void) (E)) - // Enable debugging if requested. #if YYDEBUG @@ -138,9 +135,9 @@ #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus_) - namespace yy { -#line 144 "seclang-parser.cc" // lalr1.cc:510 +#line 140 "seclang-parser.cc" + /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -185,10 +182,11 @@ namespace yy { /// Build a parser object. seclang_parser::seclang_parser (modsecurity::Parser::Driver& driver_yyarg) - : #if YYDEBUG - yydebug_ (false), + : yydebug_ (false), yycdebug_ (&std::cerr), +#else + : #endif driver (driver_yyarg) {} @@ -237,7 +235,7 @@ namespace yy { if (state == empty_state) return empty_symbol; else - return yystos_[state]; + return yystos_[+state]; } seclang_parser::stack_symbol_type::stack_symbol_type () @@ -728,6 +726,248 @@ namespace yy { } #if YY_CPLUSPLUS < 201103L + seclang_parser::stack_symbol_type& + seclang_parser::stack_symbol_type::operator= (const stack_symbol_type& that) + { + state = that.state; + switch (that.type_get ()) + { + case 145: // "Accuracy" + case 146: // "Allow" + case 147: // "Append" + case 148: // "AuditLog" + case 149: // "Block" + case 150: // "Capture" + case 151: // "Chain" + case 152: // "ACTION_CTL_AUDIT_ENGINE" + case 153: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 154: // "ACTION_CTL_BDY_JSON" + case 155: // "ACTION_CTL_BDY_XML" + case 156: // "ACTION_CTL_BDY_URLENCODED" + case 157: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 158: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 159: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 160: // "ACTION_CTL_RULE_REMOVE_BY_TAG" + case 161: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 162: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 163: // "Deny" + case 164: // "DeprecateVar" + case 165: // "Drop" + case 166: // "Exec" + case 167: // "ExpireVar" + case 168: // "Id" + case 169: // "InitCol" + case 170: // "Log" + case 171: // "LogData" + case 172: // "Maturity" + case 173: // "Msg" + case 174: // "MultiMatch" + case 175: // "NoAuditLog" + case 176: // "NoLog" + case 177: // "Pass" + case 178: // "Pause" + case 179: // "Phase" + case 180: // "Prepend" + case 181: // "Proxy" + case 182: // "Redirect" + case 183: // "Rev" + case 184: // "SanitiseArg" + case 185: // "SanitiseMatched" + case 186: // "SanitiseMatchedBytes" + case 187: // "SanitiseRequestHeader" + case 188: // "SanitiseResponseHeader" + case 189: // "SetEnv" + case 190: // "SetRsc" + case 191: // "SetSid" + case 192: // "SetUID" + case 193: // "Severity" + case 194: // "Skip" + case 195: // "SkipAfter" + case 196: // "Status" + case 197: // "Tag" + case 198: // "ACTION_TRANSFORMATION_BASE_64_ENCODE" + case 199: // "ACTION_TRANSFORMATION_BASE_64_DECODE" + case 200: // "ACTION_TRANSFORMATION_BASE_64_DECODE_EXT" + case 201: // "ACTION_TRANSFORMATION_CMD_LINE" + case 202: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 203: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 204: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 205: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 206: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 207: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 208: // "ACTION_TRANSFORMATION_JS_DECODE" + case 209: // "ACTION_TRANSFORMATION_LENGTH" + case 210: // "ACTION_TRANSFORMATION_LOWERCASE" + case 211: // "ACTION_TRANSFORMATION_MD5" + case 212: // "ACTION_TRANSFORMATION_NONE" + case 213: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 214: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 215: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 216: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 217: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 218: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 219: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 220: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 221: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 222: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 223: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 224: // "ACTION_TRANSFORMATION_SHA1" + case 225: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 226: // "ACTION_TRANSFORMATION_TRIM" + case 227: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 228: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 229: // "ACTION_TRANSFORMATION_UPPERCASE" + case 230: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 231: // "ACTION_TRANSFORMATION_URL_DECODE" + case 232: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 233: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 234: // "Ver" + case 235: // "xmlns" + case 236: // "CONFIG_COMPONENT_SIG" + case 237: // "CONFIG_CONN_ENGINE" + case 238: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 239: // "CONFIG_SEC_WEB_APP_ID" + case 240: // "CONFIG_SEC_SERVER_SIG" + case 241: // "CONFIG_DIR_AUDIT_DIR" + case 242: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 243: // "CONFIG_DIR_AUDIT_ENG" + case 244: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 245: // "CONFIG_DIR_AUDIT_LOG" + case 246: // "CONFIG_DIR_AUDIT_LOG2" + case 247: // "CONFIG_DIR_AUDIT_LOG_P" + case 248: // "CONFIG_DIR_AUDIT_STS" + case 249: // "CONFIG_DIR_AUDIT_TPE" + case 250: // "CONFIG_DIR_DEBUG_LOG" + case 251: // "CONFIG_DIR_DEBUG_LVL" + case 252: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 253: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 254: // "CONFIG_SEC_HASH_ENGINE" + case 255: // "CONFIG_SEC_HASH_KEY" + case 256: // "CONFIG_SEC_HASH_PARAM" + case 257: // "CONFIG_SEC_HASH_METHOD_RX" + case 258: // "CONFIG_SEC_HASH_METHOD_PM" + case 259: // "CONFIG_SEC_CHROOT_DIR" + case 260: // "CONFIG_DIR_GEO_DB" + case 261: // "CONFIG_DIR_GSB_DB" + case 262: // "CONFIG_SEC_GUARDIAN_LOG" + case 263: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 264: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 265: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 266: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 267: // "CONFIG_SEC_SENSOR_ID" + case 268: // "CONFIG_DIR_REQ_BODY" + case 269: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 270: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 271: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 272: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 273: // "CONFIG_DIR_RES_BODY" + case 274: // "CONFIG_DIR_RES_BODY_LIMIT" + case 275: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 276: // "CONFIG_SEC_RULE_INHERITANCE" + case 277: // "CONFIG_SEC_RULE_PERF_TIME" + case 278: // "CONFIG_DIR_RULE_ENG" + case 279: // "CONFIG_DIR_SEC_ACTION" + case 280: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 281: // "CONFIG_DIR_SEC_MARKER" + case 282: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 283: // "CONFIG_DIR_UNICODE_CODE_PAGE" + case 284: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 285: // "CONFIG_SEC_HTTP_BLKEY" + case 286: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 287: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 288: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 289: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 290: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 291: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 292: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 293: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 294: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 295: // "CONFIG_UPDLOAD_KEEP_FILES" + case 296: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 297: // "CONFIG_UPLOAD_DIR" + case 298: // "CONFIG_UPLOAD_FILE_LIMIT" + case 299: // "CONFIG_UPLOAD_FILE_MODE" + case 300: // "CONFIG_VALUE_ABORT" + case 301: // "CONFIG_VALUE_DETC" + case 302: // "CONFIG_VALUE_HTTPS" + case 303: // "CONFIG_VALUE_OFF" + case 304: // "CONFIG_VALUE_ON" + case 305: // "CONFIG_VALUE_PARALLEL" + case 306: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 307: // "CONFIG_VALUE_REJECT" + case 308: // "CONFIG_VALUE_RELEVANT_ONLY" + case 309: // "CONFIG_VALUE_SERIAL" + case 310: // "CONFIG_VALUE_WARN" + case 311: // "CONFIG_XML_EXTERNAL_ENTITY" + case 312: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 313: // "CONGIG_DIR_SEC_ARG_SEP" + case 314: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 315: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 316: // "CONGIG_DIR_SEC_DATA_DIR" + case 317: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 318: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 319: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 320: // "CONGIG_DIR_SEC_TMP_DIR" + case 321: // "DIRECTIVE" + case 322: // "DIRECTIVE_SECRULESCRIPT" + case 323: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 324: // "QUOTATION_MARK" + case 325: // "RUN_TIME_VAR_BLD" + case 326: // "RUN_TIME_VAR_DUR" + case 327: // "RUN_TIME_VAR_HSV" + case 328: // "RUN_TIME_VAR_REMOTE_USER" + case 329: // "RUN_TIME_VAR_TIME" + case 330: // "RUN_TIME_VAR_TIME_DAY" + case 331: // "RUN_TIME_VAR_TIME_EPOCH" + case 332: // "RUN_TIME_VAR_TIME_HOUR" + case 333: // "RUN_TIME_VAR_TIME_MIN" + case 334: // "RUN_TIME_VAR_TIME_MON" + case 335: // "RUN_TIME_VAR_TIME_SEC" + case 336: // "RUN_TIME_VAR_TIME_WDAY" + case 337: // "RUN_TIME_VAR_TIME_YEAR" + case 338: // "VARIABLE" + case 339: // "Dictionary element" + case 340: // "Dictionary element, selected by regexp" + value.copy< std::string > (that.value); + break; + + case 347: // op + case 348: // op_before_init + value.copy< std::unique_ptr > (that.value); + break; + + case 356: // run_time_string + value.copy< std::unique_ptr > (that.value); + break; + + case 353: // var + value.copy< std::unique_ptr > (that.value); + break; + + case 354: // act + case 355: // setvar_action + value.copy< std::unique_ptr > (that.value); + break; + + case 350: // variables + case 351: // variables_pre_process + case 352: // variables_may_be_quoted + value.copy< std::unique_ptr > > > (that.value); + break; + + case 345: // actions + case 346: // actions_may_quoted + value.copy< std::unique_ptr > > > (that.value); + break; + + default: + break; + } + + location = that.location; + return *this; + } + seclang_parser::stack_symbol_type& seclang_parser::stack_symbol_type::operator= (stack_symbol_type& that) { @@ -1087,7 +1327,6 @@ namespace yy { int seclang_parser::parse () { - // State. int yyn; /// Length of the RHS of the rule being reduced. int yylen = 0; @@ -1113,13 +1352,14 @@ namespace yy { // User initialization code. -#line 317 "seclang-parser.yy" // lalr1.cc:788 +#line 317 "seclang-parser.yy" { // Initialize the initial location. yyla.location.begin.filename = yyla.location.end.filename = new std::string(driver.file); } -#line 1123 "seclang-parser.cc" // lalr1.cc:788 +#line 1362 "seclang-parser.cc" + /* Initialize the stack. The initial state will be set in yynewstate, since the latter expects the semantical and the @@ -1132,7 +1372,7 @@ namespace yy { | yynewstate -- push a new symbol on the stack. | `-----------------------------------------------*/ yynewstate: - YYCDEBUG << "Entering state " << yystack_[0].state << '\n'; + YYCDEBUG << "Entering state " << int (yystack_[0].state) << '\n'; // Accept? if (yystack_[0].state == yyfinal_) @@ -1146,7 +1386,7 @@ namespace yy { `-----------*/ yybackup: // Try to take a decision without lookahead. - yyn = yypact_[yystack_[0].state]; + yyn = yypact_[+yystack_[0].state]; if (yy_pact_value_is_default_ (yyn)) goto yydefault; @@ -1176,7 +1416,9 @@ namespace yy { to detect an error, take that action. */ yyn += yyla.type_get (); if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ()) - goto yydefault; + { + goto yydefault; + } // Reduce or error. yyn = yytable_[yyn]; @@ -1193,7 +1435,7 @@ namespace yy { --yyerrstatus_; // Shift the lookahead token. - yypush_ ("Shifting", yyn, YY_MOVE (yyla)); + yypush_ ("Shifting", state_type (yyn), YY_MOVE (yyla)); goto yynewstate; @@ -1201,7 +1443,7 @@ namespace yy { | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: - yyn = yydefact_[yystack_[0].state]; + yyn = yydefact_[+yystack_[0].state]; if (yyn == 0) goto yyerrlab; goto yyreduce; @@ -1469,242 +1711,242 @@ namespace yy { switch (yyn) { case 2: -#line 708 "seclang-parser.yy" // lalr1.cc:919 - { +#line 708 "seclang-parser.yy" + { return 0; } -#line 1477 "seclang-parser.cc" // lalr1.cc:919 +#line 1719 "seclang-parser.cc" break; case 6: -#line 721 "seclang-parser.yy" // lalr1.cc:919 - { +#line 721 "seclang-parser.yy" + { driver.m_auditLog->setStorageDirMode(strtol(yystack_[0].value.as < std::string > ().c_str(), NULL, 8)); } -#line 1485 "seclang-parser.cc" // lalr1.cc:919 +#line 1727 "seclang-parser.cc" break; case 7: -#line 727 "seclang-parser.yy" // lalr1.cc:919 - { +#line 727 "seclang-parser.yy" + { driver.m_auditLog->setStorageDir(yystack_[0].value.as < std::string > ()); } -#line 1493 "seclang-parser.cc" // lalr1.cc:919 +#line 1735 "seclang-parser.cc" break; case 8: -#line 733 "seclang-parser.yy" // lalr1.cc:919 - { +#line 733 "seclang-parser.yy" + { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::RelevantOnlyAuditLogStatus); } -#line 1501 "seclang-parser.cc" // lalr1.cc:919 +#line 1743 "seclang-parser.cc" break; case 9: -#line 737 "seclang-parser.yy" // lalr1.cc:919 - { +#line 737 "seclang-parser.yy" + { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OffAuditLogStatus); } -#line 1509 "seclang-parser.cc" // lalr1.cc:919 +#line 1751 "seclang-parser.cc" break; case 10: -#line 741 "seclang-parser.yy" // lalr1.cc:919 - { +#line 741 "seclang-parser.yy" + { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OnAuditLogStatus); } -#line 1517 "seclang-parser.cc" // lalr1.cc:919 +#line 1759 "seclang-parser.cc" break; case 11: -#line 747 "seclang-parser.yy" // lalr1.cc:919 - { +#line 747 "seclang-parser.yy" + { driver.m_auditLog->setFileMode(strtol(yystack_[0].value.as < std::string > ().c_str(), NULL, 8)); } -#line 1525 "seclang-parser.cc" // lalr1.cc:919 +#line 1767 "seclang-parser.cc" break; case 12: -#line 753 "seclang-parser.yy" // lalr1.cc:919 - { +#line 753 "seclang-parser.yy" + { driver.m_auditLog->setFilePath2(yystack_[0].value.as < std::string > ()); } -#line 1533 "seclang-parser.cc" // lalr1.cc:919 +#line 1775 "seclang-parser.cc" break; case 13: -#line 759 "seclang-parser.yy" // lalr1.cc:919 - { +#line 759 "seclang-parser.yy" + { driver.m_auditLog->setParts(yystack_[0].value.as < std::string > ()); } -#line 1541 "seclang-parser.cc" // lalr1.cc:919 +#line 1783 "seclang-parser.cc" break; case 14: -#line 765 "seclang-parser.yy" // lalr1.cc:919 - { +#line 765 "seclang-parser.yy" + { driver.m_auditLog->setFilePath1(yystack_[0].value.as < std::string > ()); } -#line 1549 "seclang-parser.cc" // lalr1.cc:919 +#line 1791 "seclang-parser.cc" break; case 15: -#line 770 "seclang-parser.yy" // lalr1.cc:919 - { +#line 770 "seclang-parser.yy" + { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::JSONAuditLogFormat); } -#line 1557 "seclang-parser.cc" // lalr1.cc:919 +#line 1799 "seclang-parser.cc" break; case 16: -#line 775 "seclang-parser.yy" // lalr1.cc:919 - { +#line 775 "seclang-parser.yy" + { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::NativeAuditLogFormat); } -#line 1565 "seclang-parser.cc" // lalr1.cc:919 +#line 1807 "seclang-parser.cc" break; case 17: -#line 781 "seclang-parser.yy" // lalr1.cc:919 - { +#line 781 "seclang-parser.yy" + { std::string relevant_status(yystack_[0].value.as < std::string > ()); driver.m_auditLog->setRelevantStatus(relevant_status); } -#line 1574 "seclang-parser.cc" // lalr1.cc:919 +#line 1816 "seclang-parser.cc" break; case 18: -#line 788 "seclang-parser.yy" // lalr1.cc:919 - { +#line 788 "seclang-parser.yy" + { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::SerialAuditLogType); } -#line 1582 "seclang-parser.cc" // lalr1.cc:919 +#line 1824 "seclang-parser.cc" break; case 19: -#line 792 "seclang-parser.yy" // lalr1.cc:919 - { +#line 792 "seclang-parser.yy" + { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::ParallelAuditLogType); } -#line 1590 "seclang-parser.cc" // lalr1.cc:919 +#line 1832 "seclang-parser.cc" break; case 20: -#line 796 "seclang-parser.yy" // lalr1.cc:919 - { +#line 796 "seclang-parser.yy" + { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::HttpsAuditLogType); } -#line 1598 "seclang-parser.cc" // lalr1.cc:919 +#line 1840 "seclang-parser.cc" break; case 21: -#line 802 "seclang-parser.yy" // lalr1.cc:919 - { +#line 802 "seclang-parser.yy" + { driver.m_uploadKeepFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1606 "seclang-parser.cc" // lalr1.cc:919 +#line 1848 "seclang-parser.cc" break; case 22: -#line 806 "seclang-parser.yy" // lalr1.cc:919 - { +#line 806 "seclang-parser.yy" + { driver.m_uploadKeepFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1614 "seclang-parser.cc" // lalr1.cc:919 +#line 1856 "seclang-parser.cc" break; case 23: -#line 810 "seclang-parser.yy" // lalr1.cc:919 - { +#line 810 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecUploadKeepFiles RelevantOnly is not currently supported. Accepted values are On or Off"); YYERROR; } -#line 1623 "seclang-parser.cc" // lalr1.cc:919 +#line 1865 "seclang-parser.cc" break; case 24: -#line 815 "seclang-parser.yy" // lalr1.cc:919 - { +#line 815 "seclang-parser.yy" + { driver.m_uploadFileLimit.m_set = true; driver.m_uploadFileLimit.m_value = strtol(yystack_[0].value.as < std::string > ().c_str(), NULL, 10); } -#line 1632 "seclang-parser.cc" // lalr1.cc:919 +#line 1874 "seclang-parser.cc" break; case 25: -#line 820 "seclang-parser.yy" // lalr1.cc:919 - { +#line 820 "seclang-parser.yy" + { driver.m_uploadFileMode.m_set = true; driver.m_uploadFileMode.m_value = strtol(yystack_[0].value.as < std::string > ().c_str(), NULL, 8); } -#line 1641 "seclang-parser.cc" // lalr1.cc:919 +#line 1883 "seclang-parser.cc" break; case 26: -#line 825 "seclang-parser.yy" // lalr1.cc:919 - { +#line 825 "seclang-parser.yy" + { driver.m_uploadDirectory.m_set = true; driver.m_uploadDirectory.m_value = yystack_[0].value.as < std::string > (); } -#line 1650 "seclang-parser.cc" // lalr1.cc:919 +#line 1892 "seclang-parser.cc" break; case 27: -#line 830 "seclang-parser.yy" // lalr1.cc:919 - { +#line 830 "seclang-parser.yy" + { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1658 "seclang-parser.cc" // lalr1.cc:919 +#line 1900 "seclang-parser.cc" break; case 28: -#line 834 "seclang-parser.yy" // lalr1.cc:919 - { +#line 834 "seclang-parser.yy" + { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1666 "seclang-parser.cc" // lalr1.cc:919 +#line 1908 "seclang-parser.cc" break; case 29: -#line 841 "seclang-parser.yy" // lalr1.cc:919 - { +#line 841 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[1].value.as < std::unique_ptr > > > ()); } -#line 1674 "seclang-parser.cc" // lalr1.cc:919 +#line 1916 "seclang-parser.cc" break; case 30: -#line 845 "seclang-parser.yy" // lalr1.cc:919 - { +#line 845 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[0].value.as < std::unique_ptr > > > ()); } -#line 1682 "seclang-parser.cc" // lalr1.cc:919 +#line 1924 "seclang-parser.cc" break; case 31: -#line 852 "seclang-parser.yy" // lalr1.cc:919 - { +#line 852 "seclang-parser.yy" + { ACTION_INIT(yystack_[0].value.as < std::unique_ptr > (), yystack_[3].location) yystack_[2].value.as < std::unique_ptr > > > ()->push_back(std::move(yystack_[0].value.as < std::unique_ptr > ())); yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[2].value.as < std::unique_ptr > > > ()); } -#line 1692 "seclang-parser.cc" // lalr1.cc:919 +#line 1934 "seclang-parser.cc" break; case 32: -#line 858 "seclang-parser.yy" // lalr1.cc:919 - { +#line 858 "seclang-parser.yy" + { std::unique_ptr>> b(new std::vector>()); ACTION_INIT(yystack_[0].value.as < std::unique_ptr > (), yystack_[1].location) b->push_back(std::move(yystack_[0].value.as < std::unique_ptr > ())); yylhs.value.as < std::unique_ptr > > > () = std::move(b); } -#line 1703 "seclang-parser.cc" // lalr1.cc:919 +#line 1945 "seclang-parser.cc" break; case 33: -#line 868 "seclang-parser.yy" // lalr1.cc:919 - { +#line 868 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > () = std::move(yystack_[0].value.as < std::unique_ptr > ()); std::string error; if (yylhs.value.as < std::unique_ptr > ()->init(*yystack_[0].location.end.filename, &error) == false) { @@ -1712,12 +1954,12 @@ namespace yy { YYERROR; } } -#line 1716 "seclang-parser.cc" // lalr1.cc:919 +#line 1958 "seclang-parser.cc" break; case 34: -#line 877 "seclang-parser.yy" // lalr1.cc:919 - { +#line 877 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > () = std::move(yystack_[0].value.as < std::unique_ptr > ()); yylhs.value.as < std::unique_ptr > ()->m_negation = true; std::string error; @@ -1726,12 +1968,12 @@ namespace yy { YYERROR; } } -#line 1730 "seclang-parser.cc" // lalr1.cc:919 +#line 1972 "seclang-parser.cc" break; case 35: -#line 887 "seclang-parser.yy" // lalr1.cc:919 - { +#line 887 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as < std::unique_ptr > ()))); std::string error; if (yylhs.value.as < std::unique_ptr > ()->init(*yystack_[0].location.end.filename, &error) == false) { @@ -1739,12 +1981,12 @@ namespace yy { YYERROR; } } -#line 1743 "seclang-parser.cc" // lalr1.cc:919 +#line 1985 "seclang-parser.cc" break; case 36: -#line 896 "seclang-parser.yy" // lalr1.cc:919 - { +#line 896 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as < std::unique_ptr > ()))); yylhs.value.as < std::unique_ptr > ()->m_negation = true; std::string error; @@ -1753,295 +1995,295 @@ namespace yy { YYERROR; } } -#line 1757 "seclang-parser.cc" // lalr1.cc:919 +#line 1999 "seclang-parser.cc" break; case 37: -#line 909 "seclang-parser.yy" // lalr1.cc:919 - { +#line 909 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::UnconditionalMatch()); } -#line 1765 "seclang-parser.cc" // lalr1.cc:919 +#line 2007 "seclang-parser.cc" break; case 38: -#line 913 "seclang-parser.yy" // lalr1.cc:919 - { +#line 913 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::DetectSQLi()); } -#line 1773 "seclang-parser.cc" // lalr1.cc:919 +#line 2015 "seclang-parser.cc" break; case 39: -#line 917 "seclang-parser.yy" // lalr1.cc:919 - { +#line 917 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::DetectXSS()); } -#line 1781 "seclang-parser.cc" // lalr1.cc:919 +#line 2023 "seclang-parser.cc" break; case 40: -#line 921 "seclang-parser.yy" // lalr1.cc:919 - { +#line 921 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::ValidateUrlEncoding()); } -#line 1789 "seclang-parser.cc" // lalr1.cc:919 +#line 2031 "seclang-parser.cc" break; case 41: -#line 925 "seclang-parser.yy" // lalr1.cc:919 - { +#line 925 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::ValidateUtf8Encoding()); } -#line 1797 "seclang-parser.cc" // lalr1.cc:919 +#line 2039 "seclang-parser.cc" break; case 42: -#line 929 "seclang-parser.yy" // lalr1.cc:919 - { +#line 929 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::InspectFile(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1805 "seclang-parser.cc" // lalr1.cc:919 +#line 2047 "seclang-parser.cc" break; case 43: -#line 933 "seclang-parser.yy" // lalr1.cc:919 - { +#line 933 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::FuzzyHash(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1813 "seclang-parser.cc" // lalr1.cc:919 +#line 2055 "seclang-parser.cc" break; case 44: -#line 937 "seclang-parser.yy" // lalr1.cc:919 - { +#line 937 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::ValidateByteRange(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1821 "seclang-parser.cc" // lalr1.cc:919 +#line 2063 "seclang-parser.cc" break; case 45: -#line 941 "seclang-parser.yy" // lalr1.cc:919 - { +#line 941 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::ValidateDTD(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1829 "seclang-parser.cc" // lalr1.cc:919 +#line 2071 "seclang-parser.cc" break; case 46: -#line 945 "seclang-parser.yy" // lalr1.cc:919 - { +#line 945 "seclang-parser.yy" + { /* $$ = new operators::ValidateHash($1); */ OPERATOR_NOT_SUPPORTED("ValidateHash", yystack_[2].location); } -#line 1838 "seclang-parser.cc" // lalr1.cc:919 +#line 2080 "seclang-parser.cc" break; case 47: -#line 950 "seclang-parser.yy" // lalr1.cc:919 - { +#line 950 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::ValidateSchema(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1846 "seclang-parser.cc" // lalr1.cc:919 +#line 2088 "seclang-parser.cc" break; case 48: -#line 954 "seclang-parser.yy" // lalr1.cc:919 - { +#line 954 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::VerifyCC(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1854 "seclang-parser.cc" // lalr1.cc:919 +#line 2096 "seclang-parser.cc" break; case 49: -#line 958 "seclang-parser.yy" // lalr1.cc:919 - { +#line 958 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::VerifyCPF(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1862 "seclang-parser.cc" // lalr1.cc:919 +#line 2104 "seclang-parser.cc" break; case 50: -#line 962 "seclang-parser.yy" // lalr1.cc:919 - { +#line 962 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::VerifySSN(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1870 "seclang-parser.cc" // lalr1.cc:919 +#line 2112 "seclang-parser.cc" break; case 51: -#line 966 "seclang-parser.yy" // lalr1.cc:919 - { +#line 966 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::VerifySVNR(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1878 "seclang-parser.cc" // lalr1.cc:919 +#line 2120 "seclang-parser.cc" break; case 52: -#line 970 "seclang-parser.yy" // lalr1.cc:919 - { +#line 970 "seclang-parser.yy" + { /* $$ = new operators::GsbLookup($1); */ OPERATOR_NOT_SUPPORTED("GsbLookup", yystack_[2].location); } -#line 1887 "seclang-parser.cc" // lalr1.cc:919 +#line 2129 "seclang-parser.cc" break; case 53: -#line 975 "seclang-parser.yy" // lalr1.cc:919 - { +#line 975 "seclang-parser.yy" + { /* $$ = new operators::Rsub($1); */ OPERATOR_NOT_SUPPORTED("Rsub", yystack_[2].location); } -#line 1896 "seclang-parser.cc" // lalr1.cc:919 +#line 2138 "seclang-parser.cc" break; case 54: -#line 980 "seclang-parser.yy" // lalr1.cc:919 - { +#line 980 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Within(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1904 "seclang-parser.cc" // lalr1.cc:919 +#line 2146 "seclang-parser.cc" break; case 55: -#line 984 "seclang-parser.yy" // lalr1.cc:919 - { +#line 984 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::ContainsWord(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1912 "seclang-parser.cc" // lalr1.cc:919 +#line 2154 "seclang-parser.cc" break; case 56: -#line 988 "seclang-parser.yy" // lalr1.cc:919 - { +#line 988 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Contains(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1920 "seclang-parser.cc" // lalr1.cc:919 +#line 2162 "seclang-parser.cc" break; case 57: -#line 992 "seclang-parser.yy" // lalr1.cc:919 - { +#line 992 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::EndsWith(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1928 "seclang-parser.cc" // lalr1.cc:919 +#line 2170 "seclang-parser.cc" break; case 58: -#line 996 "seclang-parser.yy" // lalr1.cc:919 - { +#line 996 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Eq(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1936 "seclang-parser.cc" // lalr1.cc:919 +#line 2178 "seclang-parser.cc" break; case 59: -#line 1000 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1000 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Ge(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1944 "seclang-parser.cc" // lalr1.cc:919 +#line 2186 "seclang-parser.cc" break; case 60: -#line 1004 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1004 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Gt(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1952 "seclang-parser.cc" // lalr1.cc:919 +#line 2194 "seclang-parser.cc" break; case 61: -#line 1008 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1008 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::IpMatchF(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1960 "seclang-parser.cc" // lalr1.cc:919 +#line 2202 "seclang-parser.cc" break; case 62: -#line 1012 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1012 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::IpMatch(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1968 "seclang-parser.cc" // lalr1.cc:919 +#line 2210 "seclang-parser.cc" break; case 63: -#line 1016 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1016 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Le(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1976 "seclang-parser.cc" // lalr1.cc:919 +#line 2218 "seclang-parser.cc" break; case 64: -#line 1020 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1020 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Lt(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1984 "seclang-parser.cc" // lalr1.cc:919 +#line 2226 "seclang-parser.cc" break; case 65: -#line 1024 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1024 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::PmFromFile(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 1992 "seclang-parser.cc" // lalr1.cc:919 +#line 2234 "seclang-parser.cc" break; case 66: -#line 1028 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1028 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Pm(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 2000 "seclang-parser.cc" // lalr1.cc:919 +#line 2242 "seclang-parser.cc" break; case 67: -#line 1032 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1032 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Rbl(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 2008 "seclang-parser.cc" // lalr1.cc:919 +#line 2250 "seclang-parser.cc" break; case 68: -#line 1036 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1036 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 2016 "seclang-parser.cc" // lalr1.cc:919 +#line 2258 "seclang-parser.cc" break; case 69: -#line 1040 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1040 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::StrEq(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 2024 "seclang-parser.cc" // lalr1.cc:919 +#line 2266 "seclang-parser.cc" break; case 70: -#line 1044 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1044 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::StrMatch(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 2032 "seclang-parser.cc" // lalr1.cc:919 +#line 2274 "seclang-parser.cc" break; case 71: -#line 1048 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1048 "seclang-parser.yy" + { OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::BeginsWith(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 2040 "seclang-parser.cc" // lalr1.cc:919 +#line 2282 "seclang-parser.cc" break; case 72: -#line 1052 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1052 "seclang-parser.yy" + { #if defined(WITH_GEOIP) or defined(WITH_MAXMIND) OPERATOR_CONTAINER(yylhs.value.as < std::unique_ptr > (), new operators::GeoLookup()); #else @@ -2051,12 +2293,12 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2055 "seclang-parser.cc" // lalr1.cc:919 +#line 2297 "seclang-parser.cc" break; case 74: -#line 1067 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1067 "seclang-parser.yy" + { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as < std::unique_ptr > > > ().get()) { a->push_back(i.release()); @@ -2080,12 +2322,12 @@ namespace yy { YYERROR; } } -#line 2084 "seclang-parser.cc" // lalr1.cc:919 +#line 2326 "seclang-parser.cc" break; case 75: -#line 1092 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1092 "seclang-parser.yy" + { variables::Variables *v = new variables::Variables(); for (auto &i : *yystack_[1].value.as < std::unique_ptr > > > ().get()) { v->push_back(i.release()); @@ -2103,12 +2345,12 @@ namespace yy { YYERROR; } } -#line 2107 "seclang-parser.cc" // lalr1.cc:919 +#line 2349 "seclang-parser.cc" break; case 76: -#line 1111 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1111 "seclang-parser.yy" + { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as < std::unique_ptr > > > ().get()) { a->push_back(i.release()); @@ -2122,12 +2364,12 @@ namespace yy { ); driver.addSecAction(rule); } -#line 2126 "seclang-parser.cc" // lalr1.cc:919 +#line 2368 "seclang-parser.cc" break; case 77: -#line 1126 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1126 "seclang-parser.yy" + { std::string err; std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as < std::unique_ptr > > > ().get()) { @@ -2150,12 +2392,12 @@ namespace yy { YYERROR; } } -#line 2154 "seclang-parser.cc" // lalr1.cc:919 +#line 2396 "seclang-parser.cc" break; case 78: -#line 1150 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1150 "seclang-parser.yy" + { bool hasDisruptive = false; std::vector *actions = new std::vector(); for (auto &i : *yystack_[0].value.as < std::unique_ptr > > > ().get()) { @@ -2210,76 +2452,76 @@ namespace yy { delete actions; } -#line 2214 "seclang-parser.cc" // lalr1.cc:919 +#line 2456 "seclang-parser.cc" break; case 79: -#line 1206 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1206 "seclang-parser.yy" + { driver.addSecMarker(modsecurity::utils::string::removeBracketsIfNeeded(yystack_[0].value.as < std::string > ())); } -#line 2222 "seclang-parser.cc" // lalr1.cc:919 +#line 2464 "seclang-parser.cc" break; case 80: -#line 1210 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1210 "seclang-parser.yy" + { driver.m_secRuleEngine = modsecurity::Rules::DisabledRuleEngine; } -#line 2230 "seclang-parser.cc" // lalr1.cc:919 +#line 2472 "seclang-parser.cc" break; case 81: -#line 1214 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1214 "seclang-parser.yy" + { driver.m_secRuleEngine = modsecurity::Rules::EnabledRuleEngine; } -#line 2238 "seclang-parser.cc" // lalr1.cc:919 +#line 2480 "seclang-parser.cc" break; case 82: -#line 1218 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1218 "seclang-parser.yy" + { driver.m_secRuleEngine = modsecurity::Rules::DetectionOnlyRuleEngine; } -#line 2246 "seclang-parser.cc" // lalr1.cc:919 +#line 2488 "seclang-parser.cc" break; case 83: -#line 1222 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1222 "seclang-parser.yy" + { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2254 "seclang-parser.cc" // lalr1.cc:919 +#line 2496 "seclang-parser.cc" break; case 84: -#line 1226 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1226 "seclang-parser.yy" + { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2262 "seclang-parser.cc" // lalr1.cc:919 +#line 2504 "seclang-parser.cc" break; case 85: -#line 1230 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1230 "seclang-parser.yy" + { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2270 "seclang-parser.cc" // lalr1.cc:919 +#line 2512 "seclang-parser.cc" break; case 86: -#line 1234 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1234 "seclang-parser.yy" + { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2278 "seclang-parser.cc" // lalr1.cc:919 +#line 2520 "seclang-parser.cc" break; case 87: -#line 1238 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1238 "seclang-parser.yy" + { if (yystack_[0].value.as < std::string > ().length() != 1) { driver.error(yystack_[1].location, "Argument separator should be set to a single character."); YYERROR; @@ -2287,260 +2529,260 @@ namespace yy { driver.m_secArgumentSeparator.m_value = yystack_[0].value.as < std::string > (); driver.m_secArgumentSeparator.m_set = true; } -#line 2291 "seclang-parser.cc" // lalr1.cc:919 +#line 2533 "seclang-parser.cc" break; case 88: -#line 1247 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1247 "seclang-parser.yy" + { driver.m_components.push_back(yystack_[0].value.as < std::string > ()); } -#line 2299 "seclang-parser.cc" // lalr1.cc:919 +#line 2541 "seclang-parser.cc" break; case 89: -#line 1251 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1251 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecConnEngine is not yet supported."); YYERROR; } -#line 2308 "seclang-parser.cc" // lalr1.cc:919 +#line 2550 "seclang-parser.cc" break; case 90: -#line 1256 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1256 "seclang-parser.yy" + { } -#line 2315 "seclang-parser.cc" // lalr1.cc:919 +#line 2557 "seclang-parser.cc" break; case 91: -#line 1259 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1259 "seclang-parser.yy" + { driver.m_secWebAppId.m_value = yystack_[0].value.as < std::string > (); driver.m_secWebAppId.m_set = true; } -#line 2324 "seclang-parser.cc" // lalr1.cc:919 +#line 2566 "seclang-parser.cc" break; case 92: -#line 1264 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1264 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecServerSignature is not supported."); YYERROR; } -#line 2333 "seclang-parser.cc" // lalr1.cc:919 +#line 2575 "seclang-parser.cc" break; case 93: -#line 1269 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1269 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecCacheTransformations is not supported."); YYERROR; } -#line 2342 "seclang-parser.cc" // lalr1.cc:919 +#line 2584 "seclang-parser.cc" break; case 94: -#line 1274 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1274 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecDisableBackendCompression is not supported."); YYERROR; } -#line 2351 "seclang-parser.cc" // lalr1.cc:919 +#line 2593 "seclang-parser.cc" break; case 95: -#line 1279 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1279 "seclang-parser.yy" + { } -#line 2358 "seclang-parser.cc" // lalr1.cc:919 +#line 2600 "seclang-parser.cc" break; case 96: -#line 1282 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1282 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecContentInjection is not yet supported."); YYERROR; } -#line 2367 "seclang-parser.cc" // lalr1.cc:919 +#line 2609 "seclang-parser.cc" break; case 97: -#line 1287 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1287 "seclang-parser.yy" + { } -#line 2374 "seclang-parser.cc" // lalr1.cc:919 +#line 2616 "seclang-parser.cc" break; case 98: -#line 1290 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1290 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecChrootDir is not supported."); YYERROR; } -#line 2383 "seclang-parser.cc" // lalr1.cc:919 +#line 2625 "seclang-parser.cc" break; case 99: -#line 1295 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1295 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecHashEngine is not yet supported."); YYERROR; } -#line 2392 "seclang-parser.cc" // lalr1.cc:919 +#line 2634 "seclang-parser.cc" break; case 100: -#line 1300 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1300 "seclang-parser.yy" + { } -#line 2399 "seclang-parser.cc" // lalr1.cc:919 +#line 2641 "seclang-parser.cc" break; case 101: -#line 1303 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1303 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecHashKey is not yet supported."); YYERROR; } -#line 2408 "seclang-parser.cc" // lalr1.cc:919 +#line 2650 "seclang-parser.cc" break; case 102: -#line 1308 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1308 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecHashParam is not yet supported."); YYERROR; } -#line 2417 "seclang-parser.cc" // lalr1.cc:919 +#line 2659 "seclang-parser.cc" break; case 103: -#line 1313 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1313 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecHashMethodRx is not yet supported."); YYERROR; } -#line 2426 "seclang-parser.cc" // lalr1.cc:919 +#line 2668 "seclang-parser.cc" break; case 104: -#line 1318 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1318 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecHashMethodPm is not yet supported."); YYERROR; } -#line 2435 "seclang-parser.cc" // lalr1.cc:919 +#line 2677 "seclang-parser.cc" break; case 105: -#line 1323 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1323 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecGsbLookupDb is not supported."); YYERROR; } -#line 2444 "seclang-parser.cc" // lalr1.cc:919 +#line 2686 "seclang-parser.cc" break; case 106: -#line 1328 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1328 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecGuardianLog is not supported."); YYERROR; } -#line 2453 "seclang-parser.cc" // lalr1.cc:919 +#line 2695 "seclang-parser.cc" break; case 107: -#line 1333 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1333 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecInterceptOnError is not yet supported."); YYERROR; } -#line 2462 "seclang-parser.cc" // lalr1.cc:919 +#line 2704 "seclang-parser.cc" break; case 108: -#line 1338 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1338 "seclang-parser.yy" + { } -#line 2469 "seclang-parser.cc" // lalr1.cc:919 +#line 2711 "seclang-parser.cc" break; case 109: -#line 1341 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1341 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecConnReadStateLimit is not yet supported."); YYERROR; } -#line 2478 "seclang-parser.cc" // lalr1.cc:919 +#line 2720 "seclang-parser.cc" break; case 110: -#line 1346 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1346 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecConnWriteStateLimit is not yet supported."); YYERROR; } -#line 2487 "seclang-parser.cc" // lalr1.cc:919 +#line 2729 "seclang-parser.cc" break; case 111: -#line 1351 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1351 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecSensorId is not yet supported."); YYERROR; } -#line 2496 "seclang-parser.cc" // lalr1.cc:919 +#line 2738 "seclang-parser.cc" break; case 112: -#line 1356 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1356 "seclang-parser.yy" + { driver.error(yystack_[2].location, "SecRuleInheritance is not yet supported."); YYERROR; } -#line 2505 "seclang-parser.cc" // lalr1.cc:919 +#line 2747 "seclang-parser.cc" break; case 113: -#line 1361 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1361 "seclang-parser.yy" + { } -#line 2512 "seclang-parser.cc" // lalr1.cc:919 +#line 2754 "seclang-parser.cc" break; case 114: -#line 1364 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1364 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecRulePerfTime is not yet supported."); YYERROR; } -#line 2521 "seclang-parser.cc" // lalr1.cc:919 +#line 2763 "seclang-parser.cc" break; case 115: -#line 1369 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1369 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecStreamInBodyInspection is not supported."); YYERROR; } -#line 2530 "seclang-parser.cc" // lalr1.cc:919 +#line 2772 "seclang-parser.cc" break; case 116: -#line 1374 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1374 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecStreamOutBodyInspection is not supported."); YYERROR; } -#line 2539 "seclang-parser.cc" // lalr1.cc:919 +#line 2781 "seclang-parser.cc" break; case 117: -#line 1379 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1379 "seclang-parser.yy" + { std::string error; if (driver.m_exceptions.load(yystack_[0].value.as < std::string > (), &error) == false) { std::stringstream ss; @@ -2552,12 +2794,12 @@ namespace yy { YYERROR; } } -#line 2556 "seclang-parser.cc" // lalr1.cc:919 +#line 2798 "seclang-parser.cc" break; case 118: -#line 1392 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1392 "seclang-parser.yy" + { std::string error; if (driver.m_exceptions.loadRemoveRuleByTag(yystack_[0].value.as < std::string > (), &error) == false) { std::stringstream ss; @@ -2569,12 +2811,12 @@ namespace yy { YYERROR; } } -#line 2573 "seclang-parser.cc" // lalr1.cc:919 +#line 2815 "seclang-parser.cc" break; case 119: -#line 1405 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1405 "seclang-parser.yy" + { std::string error; if (driver.m_exceptions.loadRemoveRuleByMsg(yystack_[0].value.as < std::string > (), &error) == false) { std::stringstream ss; @@ -2586,12 +2828,12 @@ namespace yy { YYERROR; } } -#line 2590 "seclang-parser.cc" // lalr1.cc:919 +#line 2832 "seclang-parser.cc" break; case 120: -#line 1418 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1418 "seclang-parser.yy" + { std::string error; if (driver.m_exceptions.loadUpdateTargetByTag(yystack_[1].value.as < std::string > (), std::move(yystack_[0].value.as < std::unique_ptr > > > ()), &error) == false) { std::stringstream ss; @@ -2603,12 +2845,12 @@ namespace yy { YYERROR; } } -#line 2607 "seclang-parser.cc" // lalr1.cc:919 +#line 2849 "seclang-parser.cc" break; case 121: -#line 1431 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1431 "seclang-parser.yy" + { std::string error; if (driver.m_exceptions.loadUpdateTargetByMsg(yystack_[1].value.as < std::string > (), std::move(yystack_[0].value.as < std::unique_ptr > > > ()), &error) == false) { std::stringstream ss; @@ -2620,12 +2862,12 @@ namespace yy { YYERROR; } } -#line 2624 "seclang-parser.cc" // lalr1.cc:919 +#line 2866 "seclang-parser.cc" break; case 122: -#line 1444 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1444 "seclang-parser.yy" + { std::string error; double ruleId; try { @@ -2650,12 +2892,12 @@ namespace yy { YYERROR; } } -#line 2654 "seclang-parser.cc" // lalr1.cc:919 +#line 2896 "seclang-parser.cc" break; case 123: -#line 1470 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1470 "seclang-parser.yy" + { std::string error; double ruleId; try { @@ -2681,12 +2923,12 @@ namespace yy { YYERROR; } } -#line 2685 "seclang-parser.cc" // lalr1.cc:919 +#line 2927 "seclang-parser.cc" break; case 124: -#line 1498 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1498 "seclang-parser.yy" + { if (driver.m_debugLog != NULL) { driver.m_debugLog->setDebugLogLevel(atoi(yystack_[0].value.as < std::string > ().c_str())); } else { @@ -2697,12 +2939,12 @@ namespace yy { YYERROR; } } -#line 2701 "seclang-parser.cc" // lalr1.cc:919 +#line 2943 "seclang-parser.cc" break; case 125: -#line 1510 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1510 "seclang-parser.yy" + { if (driver.m_debugLog != NULL) { std::string error; driver.m_debugLog->setDebugLogFile(yystack_[0].value.as < std::string > (), &error); @@ -2720,12 +2962,12 @@ namespace yy { YYERROR; } } -#line 2724 "seclang-parser.cc" // lalr1.cc:919 +#line 2966 "seclang-parser.cc" break; case 126: -#line 1530 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1530 "seclang-parser.yy" + { #if defined(WITH_GEOIP) or defined(WITH_MAXMIND) std::string err; std::string file = modsecurity::utils::find_resource(yystack_[0].value.as < std::string > (), @@ -2751,30 +2993,30 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2755 "seclang-parser.cc" // lalr1.cc:919 +#line 2997 "seclang-parser.cc" break; case 127: -#line 1558 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1558 "seclang-parser.yy" + { driver.m_requestBodyLimit.m_set = true; driver.m_requestBodyLimit.m_value = atoi(yystack_[0].value.as < std::string > ().c_str()); } -#line 2764 "seclang-parser.cc" // lalr1.cc:919 +#line 3006 "seclang-parser.cc" break; case 128: -#line 1563 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1563 "seclang-parser.yy" + { driver.m_requestBodyNoFilesLimit.m_set = true; driver.m_requestBodyNoFilesLimit.m_value = atoi(yystack_[0].value.as < std::string > ().c_str()); } -#line 2773 "seclang-parser.cc" // lalr1.cc:919 +#line 3015 "seclang-parser.cc" break; case 129: -#line 1568 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1568 "seclang-parser.yy" + { std::stringstream ss; ss << "As of ModSecurity version 3.0, SecRequestBodyInMemoryLimit is no longer "; ss << "supported. Instead, you can use your web server configurations to control "; @@ -2782,69 +3024,69 @@ namespace yy { driver.error(yystack_[1].location, ss.str()); YYERROR; } -#line 2786 "seclang-parser.cc" // lalr1.cc:919 +#line 3028 "seclang-parser.cc" break; case 130: -#line 1577 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1577 "seclang-parser.yy" + { driver.m_responseBodyLimit.m_set = true; driver.m_responseBodyLimit.m_value = atoi(yystack_[0].value.as < std::string > ().c_str()); } -#line 2795 "seclang-parser.cc" // lalr1.cc:919 +#line 3037 "seclang-parser.cc" break; case 131: -#line 1582 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1582 "seclang-parser.yy" + { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2803 "seclang-parser.cc" // lalr1.cc:919 +#line 3045 "seclang-parser.cc" break; case 132: -#line 1586 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1586 "seclang-parser.yy" + { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2811 "seclang-parser.cc" // lalr1.cc:919 +#line 3053 "seclang-parser.cc" break; case 133: -#line 1590 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1590 "seclang-parser.yy" + { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2819 "seclang-parser.cc" // lalr1.cc:919 +#line 3061 "seclang-parser.cc" break; case 134: -#line 1594 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1594 "seclang-parser.yy" + { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2827 "seclang-parser.cc" // lalr1.cc:919 +#line 3069 "seclang-parser.cc" break; case 135: -#line 1598 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1598 "seclang-parser.yy" + { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::AbortOnFailedRemoteRulesAction; } -#line 2835 "seclang-parser.cc" // lalr1.cc:919 +#line 3077 "seclang-parser.cc" break; case 136: -#line 1602 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1602 "seclang-parser.yy" + { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::WarnOnFailedRemoteRulesAction; } -#line 2843 "seclang-parser.cc" // lalr1.cc:919 +#line 3085 "seclang-parser.cc" break; case 139: -#line 1616 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1616 "seclang-parser.yy" + { std::istringstream buf(yystack_[0].value.as < std::string > ()); std::istream_iterator beg(buf), end; std::set tokens(beg, end); @@ -2855,38 +3097,38 @@ namespace yy { driver.m_responseBodyTypeToBeInspected.m_value.insert(*it); } } -#line 2859 "seclang-parser.cc" // lalr1.cc:919 +#line 3101 "seclang-parser.cc" break; case 140: -#line 1628 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1628 "seclang-parser.yy" + { driver.m_responseBodyTypeToBeInspected.m_set = true; driver.m_responseBodyTypeToBeInspected.m_clear = true; driver.m_responseBodyTypeToBeInspected.m_value.clear(); } -#line 2869 "seclang-parser.cc" // lalr1.cc:919 +#line 3111 "seclang-parser.cc" break; case 141: -#line 1634 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1634 "seclang-parser.yy" + { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2877 "seclang-parser.cc" // lalr1.cc:919 +#line 3119 "seclang-parser.cc" break; case 142: -#line 1638 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1638 "seclang-parser.yy" + { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2885 "seclang-parser.cc" // lalr1.cc:919 +#line 3127 "seclang-parser.cc" break; case 143: -#line 1642 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1642 "seclang-parser.yy" + { /* Parser error disabled to avoid breaking default installations with modsecurity.conf-recommended std::stringstream ss; ss << "As of ModSecurity version 3.0, SecTmpDir is no longer supported."; @@ -2896,32 +3138,32 @@ namespace yy { YYERROR; */ } -#line 2900 "seclang-parser.cc" // lalr1.cc:919 +#line 3142 "seclang-parser.cc" break; case 146: -#line 1663 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1663 "seclang-parser.yy" + { if (atoi(yystack_[0].value.as < std::string > ().c_str()) == 1) { driver.error(yystack_[1].location, "SecCookieFormat 1 is not yet supported."); YYERROR; } } -#line 2911 "seclang-parser.cc" // lalr1.cc:919 +#line 3153 "seclang-parser.cc" break; case 147: -#line 1670 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1670 "seclang-parser.yy" + { driver.error(yystack_[1].location, "SecCookieV0Separator is not yet supported."); YYERROR; } -#line 2920 "seclang-parser.cc" // lalr1.cc:919 +#line 3162 "seclang-parser.cc" break; case 149: -#line 1680 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1680 "seclang-parser.yy" + { std::string error; std::vector param; double num = 0; @@ -2974,32 +3216,32 @@ namespace yy { } } -#line 2978 "seclang-parser.cc" // lalr1.cc:919 +#line 3220 "seclang-parser.cc" break; case 150: -#line 1734 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1734 "seclang-parser.yy" + { /* Parser error disabled to avoid breaking default CRS installations with crs-setup.conf-recommended driver.error(@0, "SecCollectionTimeout is not yet supported."); YYERROR; */ } -#line 2989 "seclang-parser.cc" // lalr1.cc:919 +#line 3231 "seclang-parser.cc" break; case 151: -#line 1741 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1741 "seclang-parser.yy" + { driver.m_httpblKey.m_set = true; driver.m_httpblKey.m_value = yystack_[0].value.as < std::string > (); } -#line 2998 "seclang-parser.cc" // lalr1.cc:919 +#line 3240 "seclang-parser.cc" break; case 152: -#line 1749 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1749 "seclang-parser.yy" + { std::unique_ptr > > originalList = std::move(yystack_[0].value.as < std::unique_ptr > > > ()); std::unique_ptr>> newList(new std::vector>()); std::unique_ptr>> newNewList(new std::vector>()); @@ -3032,2363 +3274,2364 @@ namespace yy { } yylhs.value.as < std::unique_ptr > > > () = std::move(newNewList); } -#line 3036 "seclang-parser.cc" // lalr1.cc:919 +#line 3278 "seclang-parser.cc" break; case 153: -#line 1786 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1786 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[0].value.as < std::unique_ptr > > > ()); } -#line 3044 "seclang-parser.cc" // lalr1.cc:919 +#line 3286 "seclang-parser.cc" break; case 154: -#line 1790 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1790 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[1].value.as < std::unique_ptr > > > ()); } -#line 3052 "seclang-parser.cc" // lalr1.cc:919 +#line 3294 "seclang-parser.cc" break; case 155: -#line 1797 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1797 "seclang-parser.yy" + { yystack_[2].value.as < std::unique_ptr > > > ()->push_back(std::move(yystack_[0].value.as < std::unique_ptr > ())); yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[2].value.as < std::unique_ptr > > > ()); } -#line 3061 "seclang-parser.cc" // lalr1.cc:919 +#line 3303 "seclang-parser.cc" break; case 156: -#line 1802 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1802 "seclang-parser.yy" + { std::unique_ptr c(new VariableModificatorExclusion(std::move(yystack_[0].value.as < std::unique_ptr > ()))); yystack_[3].value.as < std::unique_ptr > > > ()->push_back(std::move(c)); yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[3].value.as < std::unique_ptr > > > ()); } -#line 3071 "seclang-parser.cc" // lalr1.cc:919 +#line 3313 "seclang-parser.cc" break; case 157: -#line 1808 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1808 "seclang-parser.yy" + { std::unique_ptr c(new VariableModificatorCount(std::move(yystack_[0].value.as < std::unique_ptr > ()))); yystack_[3].value.as < std::unique_ptr > > > ()->push_back(std::move(c)); yylhs.value.as < std::unique_ptr > > > () = std::move(yystack_[3].value.as < std::unique_ptr > > > ()); } -#line 3081 "seclang-parser.cc" // lalr1.cc:919 +#line 3323 "seclang-parser.cc" break; case 158: -#line 1814 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1814 "seclang-parser.yy" + { std::unique_ptr>> b(new std::vector>()); b->push_back(std::move(yystack_[0].value.as < std::unique_ptr > ())); yylhs.value.as < std::unique_ptr > > > () = std::move(b); } -#line 3091 "seclang-parser.cc" // lalr1.cc:919 +#line 3333 "seclang-parser.cc" break; case 159: -#line 1820 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1820 "seclang-parser.yy" + { std::unique_ptr>> b(new std::vector>()); std::unique_ptr c(new VariableModificatorExclusion(std::move(yystack_[0].value.as < std::unique_ptr > ()))); b->push_back(std::move(c)); yylhs.value.as < std::unique_ptr > > > () = std::move(b); } -#line 3102 "seclang-parser.cc" // lalr1.cc:919 +#line 3344 "seclang-parser.cc" break; case 160: -#line 1827 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1827 "seclang-parser.yy" + { std::unique_ptr>> b(new std::vector>()); std::unique_ptr c(new VariableModificatorCount(std::move(yystack_[0].value.as < std::unique_ptr > ()))); b->push_back(std::move(c)); yylhs.value.as < std::unique_ptr > > > () = std::move(b); } -#line 3113 "seclang-parser.cc" // lalr1.cc:919 +#line 3355 "seclang-parser.cc" break; case 161: -#line 1837 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1837 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Args_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3121 "seclang-parser.cc" // lalr1.cc:919 +#line 3363 "seclang-parser.cc" break; case 162: -#line 1841 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1841 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Args_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3129 "seclang-parser.cc" // lalr1.cc:919 +#line 3371 "seclang-parser.cc" break; case 163: -#line 1845 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1845 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Args_NoDictElement()); } -#line 3137 "seclang-parser.cc" // lalr1.cc:919 +#line 3379 "seclang-parser.cc" break; case 164: -#line 1849 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1849 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsPost_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3145 "seclang-parser.cc" // lalr1.cc:919 +#line 3387 "seclang-parser.cc" break; case 165: -#line 1853 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1853 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsPost_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3153 "seclang-parser.cc" // lalr1.cc:919 +#line 3395 "seclang-parser.cc" break; case 166: -#line 1857 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1857 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsPost_NoDictElement()); } -#line 3161 "seclang-parser.cc" // lalr1.cc:919 +#line 3403 "seclang-parser.cc" break; case 167: -#line 1861 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1861 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsGet_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3169 "seclang-parser.cc" // lalr1.cc:919 +#line 3411 "seclang-parser.cc" break; case 168: -#line 1865 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1865 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsGet_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3177 "seclang-parser.cc" // lalr1.cc:919 +#line 3419 "seclang-parser.cc" break; case 169: -#line 1869 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1869 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsGet_NoDictElement()); } -#line 3185 "seclang-parser.cc" // lalr1.cc:919 +#line 3427 "seclang-parser.cc" break; case 170: -#line 1873 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1873 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesSizes_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3193 "seclang-parser.cc" // lalr1.cc:919 +#line 3435 "seclang-parser.cc" break; case 171: -#line 1877 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1877 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesSizes_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3201 "seclang-parser.cc" // lalr1.cc:919 +#line 3443 "seclang-parser.cc" break; case 172: -#line 1881 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1881 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesSizes_NoDictElement()); } -#line 3209 "seclang-parser.cc" // lalr1.cc:919 +#line 3451 "seclang-parser.cc" break; case 173: -#line 1885 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1885 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3217 "seclang-parser.cc" // lalr1.cc:919 +#line 3459 "seclang-parser.cc" break; case 174: -#line 1889 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1889 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3225 "seclang-parser.cc" // lalr1.cc:919 +#line 3467 "seclang-parser.cc" break; case 175: -#line 1893 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1893 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesNames_NoDictElement()); } -#line 3233 "seclang-parser.cc" // lalr1.cc:919 +#line 3475 "seclang-parser.cc" break; case 176: -#line 1897 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1897 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesTmpContent_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3241 "seclang-parser.cc" // lalr1.cc:919 +#line 3483 "seclang-parser.cc" break; case 177: -#line 1901 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1901 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesTmpContent_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3249 "seclang-parser.cc" // lalr1.cc:919 +#line 3491 "seclang-parser.cc" break; case 178: -#line 1905 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1905 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesTmpContent_NoDictElement()); } -#line 3257 "seclang-parser.cc" // lalr1.cc:919 +#line 3499 "seclang-parser.cc" break; case 179: -#line 1909 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1909 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultiPartFileName_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3265 "seclang-parser.cc" // lalr1.cc:919 +#line 3507 "seclang-parser.cc" break; case 180: -#line 1913 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1913 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultiPartFileName_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3273 "seclang-parser.cc" // lalr1.cc:919 +#line 3515 "seclang-parser.cc" break; case 181: -#line 1917 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1917 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultiPartFileName_NoDictElement()); } -#line 3281 "seclang-parser.cc" // lalr1.cc:919 +#line 3523 "seclang-parser.cc" break; case 182: -#line 1921 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1921 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultiPartName_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3289 "seclang-parser.cc" // lalr1.cc:919 +#line 3531 "seclang-parser.cc" break; case 183: -#line 1925 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1925 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultiPartName_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3297 "seclang-parser.cc" // lalr1.cc:919 +#line 3539 "seclang-parser.cc" break; case 184: -#line 1929 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1929 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultiPartName_NoDictElement()); } -#line 3305 "seclang-parser.cc" // lalr1.cc:919 +#line 3547 "seclang-parser.cc" break; case 185: -#line 1933 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1933 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVarsNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3313 "seclang-parser.cc" // lalr1.cc:919 +#line 3555 "seclang-parser.cc" break; case 186: -#line 1937 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1937 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVarsNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3321 "seclang-parser.cc" // lalr1.cc:919 +#line 3563 "seclang-parser.cc" break; case 187: -#line 1941 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1941 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVarsNames_NoDictElement()); } -#line 3329 "seclang-parser.cc" // lalr1.cc:919 +#line 3571 "seclang-parser.cc" break; case 188: -#line 1945 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1945 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVars_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3337 "seclang-parser.cc" // lalr1.cc:919 +#line 3579 "seclang-parser.cc" break; case 189: -#line 1949 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1949 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVars_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3345 "seclang-parser.cc" // lalr1.cc:919 +#line 3587 "seclang-parser.cc" break; case 190: -#line 1953 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1953 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVars_NoDictElement()); } -#line 3353 "seclang-parser.cc" // lalr1.cc:919 +#line 3595 "seclang-parser.cc" break; case 191: -#line 1957 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1957 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Files_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3361 "seclang-parser.cc" // lalr1.cc:919 +#line 3603 "seclang-parser.cc" break; case 192: -#line 1961 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1961 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Files_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3369 "seclang-parser.cc" // lalr1.cc:919 +#line 3611 "seclang-parser.cc" break; case 193: -#line 1965 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1965 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Files_NoDictElement()); } -#line 3377 "seclang-parser.cc" // lalr1.cc:919 +#line 3619 "seclang-parser.cc" break; case 194: -#line 1969 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1969 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestCookies_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3385 "seclang-parser.cc" // lalr1.cc:919 +#line 3627 "seclang-parser.cc" break; case 195: -#line 1973 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1973 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestCookies_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3393 "seclang-parser.cc" // lalr1.cc:919 +#line 3635 "seclang-parser.cc" break; case 196: -#line 1977 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1977 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestCookies_NoDictElement()); } -#line 3401 "seclang-parser.cc" // lalr1.cc:919 +#line 3643 "seclang-parser.cc" break; case 197: -#line 1981 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1981 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestHeaders_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3409 "seclang-parser.cc" // lalr1.cc:919 +#line 3651 "seclang-parser.cc" break; case 198: -#line 1985 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1985 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestHeaders_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3417 "seclang-parser.cc" // lalr1.cc:919 +#line 3659 "seclang-parser.cc" break; case 199: -#line 1989 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1989 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestHeaders_NoDictElement()); } -#line 3425 "seclang-parser.cc" // lalr1.cc:919 +#line 3667 "seclang-parser.cc" break; case 200: -#line 1993 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1993 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseHeaders_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3433 "seclang-parser.cc" // lalr1.cc:919 +#line 3675 "seclang-parser.cc" break; case 201: -#line 1997 "seclang-parser.yy" // lalr1.cc:919 - { +#line 1997 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseHeaders_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3441 "seclang-parser.cc" // lalr1.cc:919 +#line 3683 "seclang-parser.cc" break; case 202: -#line 2001 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2001 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseHeaders_NoDictElement()); } -#line 3449 "seclang-parser.cc" // lalr1.cc:919 +#line 3691 "seclang-parser.cc" break; case 203: -#line 2005 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2005 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Geo_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3457 "seclang-parser.cc" // lalr1.cc:919 +#line 3699 "seclang-parser.cc" break; case 204: -#line 2009 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2009 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Geo_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3465 "seclang-parser.cc" // lalr1.cc:919 +#line 3707 "seclang-parser.cc" break; case 205: -#line 2013 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2013 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Geo_NoDictElement()); } -#line 3473 "seclang-parser.cc" // lalr1.cc:919 +#line 3715 "seclang-parser.cc" break; case 206: -#line 2017 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2017 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestCookiesNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3481 "seclang-parser.cc" // lalr1.cc:919 +#line 3723 "seclang-parser.cc" break; case 207: -#line 2021 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2021 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestCookiesNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3489 "seclang-parser.cc" // lalr1.cc:919 +#line 3731 "seclang-parser.cc" break; case 208: -#line 2025 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2025 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestCookiesNames_NoDictElement()); } -#line 3497 "seclang-parser.cc" // lalr1.cc:919 +#line 3739 "seclang-parser.cc" break; case 209: -#line 2029 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2029 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Rule_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3505 "seclang-parser.cc" // lalr1.cc:919 +#line 3747 "seclang-parser.cc" break; case 210: -#line 2033 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2033 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Rule_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3513 "seclang-parser.cc" // lalr1.cc:919 +#line 3755 "seclang-parser.cc" break; case 211: -#line 2037 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2037 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Rule_NoDictElement()); } -#line 3521 "seclang-parser.cc" // lalr1.cc:919 +#line 3763 "seclang-parser.cc" break; case 212: -#line 2041 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2041 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Env("ENV:" + yystack_[0].value.as < std::string > ())); } -#line 3529 "seclang-parser.cc" // lalr1.cc:919 +#line 3771 "seclang-parser.cc" break; case 213: -#line 2045 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2045 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Env("ENV:" + yystack_[0].value.as < std::string > ())); } -#line 3537 "seclang-parser.cc" // lalr1.cc:919 +#line 3779 "seclang-parser.cc" break; case 214: -#line 2049 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2049 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Env("ENV")); } -#line 3545 "seclang-parser.cc" // lalr1.cc:919 +#line 3787 "seclang-parser.cc" break; case 215: -#line 2053 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2053 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::XML("XML:" + yystack_[0].value.as < std::string > ())); } -#line 3553 "seclang-parser.cc" // lalr1.cc:919 +#line 3795 "seclang-parser.cc" break; case 216: -#line 2057 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2057 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::XML("XML:" + yystack_[0].value.as < std::string > ())); } -#line 3561 "seclang-parser.cc" // lalr1.cc:919 +#line 3803 "seclang-parser.cc" break; case 217: -#line 2061 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2061 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::XML_NoDictElement()); } -#line 3569 "seclang-parser.cc" // lalr1.cc:919 +#line 3811 "seclang-parser.cc" break; case 218: -#line 2065 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2065 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesTmpNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3577 "seclang-parser.cc" // lalr1.cc:919 +#line 3819 "seclang-parser.cc" break; case 219: -#line 2069 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2069 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesTmpNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3585 "seclang-parser.cc" // lalr1.cc:919 +#line 3827 "seclang-parser.cc" break; case 220: -#line 2073 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2073 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesTmpNames_NoDictElement()); } -#line 3593 "seclang-parser.cc" // lalr1.cc:919 +#line 3835 "seclang-parser.cc" break; case 221: -#line 2077 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2077 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Resource_DynamicElement(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 3601 "seclang-parser.cc" // lalr1.cc:919 +#line 3843 "seclang-parser.cc" break; case 222: -#line 2081 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2081 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Resource_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3609 "seclang-parser.cc" // lalr1.cc:919 +#line 3851 "seclang-parser.cc" break; case 223: -#line 2085 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2085 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Resource_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3617 "seclang-parser.cc" // lalr1.cc:919 +#line 3859 "seclang-parser.cc" break; case 224: -#line 2089 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2089 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Resource_NoDictElement()); } -#line 3625 "seclang-parser.cc" // lalr1.cc:919 +#line 3867 "seclang-parser.cc" break; case 225: -#line 2093 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2093 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Ip_DynamicElement(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 3633 "seclang-parser.cc" // lalr1.cc:919 +#line 3875 "seclang-parser.cc" break; case 226: -#line 2097 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2097 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Ip_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3641 "seclang-parser.cc" // lalr1.cc:919 +#line 3883 "seclang-parser.cc" break; case 227: -#line 2101 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2101 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Ip_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3649 "seclang-parser.cc" // lalr1.cc:919 +#line 3891 "seclang-parser.cc" break; case 228: -#line 2105 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2105 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Ip_NoDictElement()); } -#line 3657 "seclang-parser.cc" // lalr1.cc:919 +#line 3899 "seclang-parser.cc" break; case 229: -#line 2109 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2109 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Global_DynamicElement(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 3665 "seclang-parser.cc" // lalr1.cc:919 +#line 3907 "seclang-parser.cc" break; case 230: -#line 2113 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2113 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Global_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3673 "seclang-parser.cc" // lalr1.cc:919 +#line 3915 "seclang-parser.cc" break; case 231: -#line 2117 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2117 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Global_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3681 "seclang-parser.cc" // lalr1.cc:919 +#line 3923 "seclang-parser.cc" break; case 232: -#line 2121 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2121 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Global_NoDictElement()); } -#line 3689 "seclang-parser.cc" // lalr1.cc:919 +#line 3931 "seclang-parser.cc" break; case 233: -#line 2125 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2125 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::User_DynamicElement(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 3697 "seclang-parser.cc" // lalr1.cc:919 +#line 3939 "seclang-parser.cc" break; case 234: -#line 2129 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2129 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::User_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3705 "seclang-parser.cc" // lalr1.cc:919 +#line 3947 "seclang-parser.cc" break; case 235: -#line 2133 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2133 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::User_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3713 "seclang-parser.cc" // lalr1.cc:919 +#line 3955 "seclang-parser.cc" break; case 236: -#line 2137 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2137 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::User_NoDictElement()); } -#line 3721 "seclang-parser.cc" // lalr1.cc:919 +#line 3963 "seclang-parser.cc" break; case 237: -#line 2141 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2141 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Tx_DynamicElement(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 3729 "seclang-parser.cc" // lalr1.cc:919 +#line 3971 "seclang-parser.cc" break; case 238: -#line 2145 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2145 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Tx_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3737 "seclang-parser.cc" // lalr1.cc:919 +#line 3979 "seclang-parser.cc" break; case 239: -#line 2149 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2149 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Tx_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3745 "seclang-parser.cc" // lalr1.cc:919 +#line 3987 "seclang-parser.cc" break; case 240: -#line 2153 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2153 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Tx_NoDictElement()); } -#line 3753 "seclang-parser.cc" // lalr1.cc:919 +#line 3995 "seclang-parser.cc" break; case 241: -#line 2157 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2157 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Session_DynamicElement(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 3761 "seclang-parser.cc" // lalr1.cc:919 +#line 4003 "seclang-parser.cc" break; case 242: -#line 2161 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2161 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Session_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3769 "seclang-parser.cc" // lalr1.cc:919 +#line 4011 "seclang-parser.cc" break; case 243: -#line 2165 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2165 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Session_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3777 "seclang-parser.cc" // lalr1.cc:919 +#line 4019 "seclang-parser.cc" break; case 244: -#line 2169 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2169 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Session_NoDictElement()); } -#line 3785 "seclang-parser.cc" // lalr1.cc:919 +#line 4027 "seclang-parser.cc" break; case 245: -#line 2173 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2173 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3793 "seclang-parser.cc" // lalr1.cc:919 +#line 4035 "seclang-parser.cc" break; case 246: -#line 2177 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2177 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3801 "seclang-parser.cc" // lalr1.cc:919 +#line 4043 "seclang-parser.cc" break; case 247: -#line 2181 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2181 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsNames_NoDictElement()); } -#line 3809 "seclang-parser.cc" // lalr1.cc:919 +#line 4051 "seclang-parser.cc" break; case 248: -#line 2185 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2185 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsGetNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3817 "seclang-parser.cc" // lalr1.cc:919 +#line 4059 "seclang-parser.cc" break; case 249: -#line 2189 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2189 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsGetNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3825 "seclang-parser.cc" // lalr1.cc:919 +#line 4067 "seclang-parser.cc" break; case 250: -#line 2193 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2193 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsGetNames_NoDictElement()); } -#line 3833 "seclang-parser.cc" // lalr1.cc:919 +#line 4075 "seclang-parser.cc" break; case 251: -#line 2198 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2198 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsPostNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3841 "seclang-parser.cc" // lalr1.cc:919 +#line 4083 "seclang-parser.cc" break; case 252: -#line 2202 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2202 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsPostNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3849 "seclang-parser.cc" // lalr1.cc:919 +#line 4091 "seclang-parser.cc" break; case 253: -#line 2206 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2206 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsPostNames_NoDictElement()); } -#line 3857 "seclang-parser.cc" // lalr1.cc:919 +#line 4099 "seclang-parser.cc" break; case 254: -#line 2211 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2211 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestHeadersNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3865 "seclang-parser.cc" // lalr1.cc:919 +#line 4107 "seclang-parser.cc" break; case 255: -#line 2215 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2215 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestHeadersNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3873 "seclang-parser.cc" // lalr1.cc:919 +#line 4115 "seclang-parser.cc" break; case 256: -#line 2219 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2219 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestHeadersNames_NoDictElement()); } -#line 3881 "seclang-parser.cc" // lalr1.cc:919 +#line 4123 "seclang-parser.cc" break; case 257: -#line 2224 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2224 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseContentType()); } -#line 3889 "seclang-parser.cc" // lalr1.cc:919 +#line 4131 "seclang-parser.cc" break; case 258: -#line 2229 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2229 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseHeadersNames_DictElement(yystack_[0].value.as < std::string > ())); } -#line 3897 "seclang-parser.cc" // lalr1.cc:919 +#line 4139 "seclang-parser.cc" break; case 259: -#line 2233 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2233 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseHeadersNames_DictElementRegexp(yystack_[0].value.as < std::string > ())); } -#line 3905 "seclang-parser.cc" // lalr1.cc:919 +#line 4147 "seclang-parser.cc" break; case 260: -#line 2237 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2237 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseHeadersNames_NoDictElement()); } -#line 3913 "seclang-parser.cc" // lalr1.cc:919 +#line 4155 "seclang-parser.cc" break; case 261: -#line 2241 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2241 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ArgsCombinedSize()); } -#line 3921 "seclang-parser.cc" // lalr1.cc:919 +#line 4163 "seclang-parser.cc" break; case 262: -#line 2245 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2245 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::AuthType()); } -#line 3929 "seclang-parser.cc" // lalr1.cc:919 +#line 4171 "seclang-parser.cc" break; case 263: -#line 2249 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2249 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FilesCombinedSize()); } -#line 3937 "seclang-parser.cc" // lalr1.cc:919 +#line 4179 "seclang-parser.cc" break; case 264: -#line 2253 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2253 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FullRequest()); } -#line 3945 "seclang-parser.cc" // lalr1.cc:919 +#line 4187 "seclang-parser.cc" break; case 265: -#line 2257 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2257 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::FullRequestLength()); } -#line 3953 "seclang-parser.cc" // lalr1.cc:919 +#line 4195 "seclang-parser.cc" break; case 266: -#line 2261 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2261 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::InboundDataError()); } -#line 3961 "seclang-parser.cc" // lalr1.cc:919 +#line 4203 "seclang-parser.cc" break; case 267: -#line 2265 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2265 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVar()); } -#line 3969 "seclang-parser.cc" // lalr1.cc:919 +#line 4211 "seclang-parser.cc" break; case 268: -#line 2269 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2269 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MatchedVarName()); } -#line 3977 "seclang-parser.cc" // lalr1.cc:919 +#line 4219 "seclang-parser.cc" break; case 269: -#line 2273 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2273 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartBoundaryQuoted()); } -#line 3985 "seclang-parser.cc" // lalr1.cc:919 +#line 4227 "seclang-parser.cc" break; case 270: -#line 2277 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2277 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartBoundaryWhiteSpace()); } -#line 3993 "seclang-parser.cc" // lalr1.cc:919 +#line 4235 "seclang-parser.cc" break; case 271: -#line 2281 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2281 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartCrlfLFLines()); } -#line 4001 "seclang-parser.cc" // lalr1.cc:919 +#line 4243 "seclang-parser.cc" break; case 272: -#line 2285 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2285 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartDateAfter()); } -#line 4009 "seclang-parser.cc" // lalr1.cc:919 +#line 4251 "seclang-parser.cc" break; case 273: -#line 2289 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2289 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartDateBefore()); } -#line 4017 "seclang-parser.cc" // lalr1.cc:919 +#line 4259 "seclang-parser.cc" break; case 274: -#line 2293 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2293 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartFileLimitExceeded()); } -#line 4025 "seclang-parser.cc" // lalr1.cc:919 +#line 4267 "seclang-parser.cc" break; case 275: -#line 2297 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2297 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartHeaderFolding()); } -#line 4033 "seclang-parser.cc" // lalr1.cc:919 +#line 4275 "seclang-parser.cc" break; case 276: -#line 2301 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2301 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartInvalidHeaderFolding()); } -#line 4041 "seclang-parser.cc" // lalr1.cc:919 +#line 4283 "seclang-parser.cc" break; case 277: -#line 2305 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2305 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartInvalidPart()); } -#line 4049 "seclang-parser.cc" // lalr1.cc:919 +#line 4291 "seclang-parser.cc" break; case 278: -#line 2309 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2309 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartInvalidQuoting()); } -#line 4057 "seclang-parser.cc" // lalr1.cc:919 +#line 4299 "seclang-parser.cc" break; case 279: -#line 2313 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2313 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartLFLine()); } -#line 4065 "seclang-parser.cc" // lalr1.cc:919 +#line 4307 "seclang-parser.cc" break; case 280: -#line 2317 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2317 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartMissingSemicolon()); } -#line 4073 "seclang-parser.cc" // lalr1.cc:919 +#line 4315 "seclang-parser.cc" break; case 281: -#line 2321 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2321 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartMissingSemicolon()); } -#line 4081 "seclang-parser.cc" // lalr1.cc:919 +#line 4323 "seclang-parser.cc" break; case 282: -#line 2325 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2325 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartStrictError()); } -#line 4089 "seclang-parser.cc" // lalr1.cc:919 +#line 4331 "seclang-parser.cc" break; case 283: -#line 2329 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2329 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::MultipartUnmatchedBoundary()); } -#line 4097 "seclang-parser.cc" // lalr1.cc:919 +#line 4339 "seclang-parser.cc" break; case 284: -#line 2333 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2333 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::OutboundDataError()); } -#line 4105 "seclang-parser.cc" // lalr1.cc:919 +#line 4347 "seclang-parser.cc" break; case 285: -#line 2337 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2337 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::PathInfo()); } -#line 4113 "seclang-parser.cc" // lalr1.cc:919 +#line 4355 "seclang-parser.cc" break; case 286: -#line 2341 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2341 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::QueryString()); } -#line 4121 "seclang-parser.cc" // lalr1.cc:919 +#line 4363 "seclang-parser.cc" break; case 287: -#line 2345 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2345 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RemoteAddr()); } -#line 4129 "seclang-parser.cc" // lalr1.cc:919 +#line 4371 "seclang-parser.cc" break; case 288: -#line 2349 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2349 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RemoteHost()); } -#line 4137 "seclang-parser.cc" // lalr1.cc:919 +#line 4379 "seclang-parser.cc" break; case 289: -#line 2353 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2353 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RemotePort()); } -#line 4145 "seclang-parser.cc" // lalr1.cc:919 +#line 4387 "seclang-parser.cc" break; case 290: -#line 2357 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2357 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ReqbodyError()); } -#line 4153 "seclang-parser.cc" // lalr1.cc:919 +#line 4395 "seclang-parser.cc" break; case 291: -#line 2361 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2361 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ReqbodyErrorMsg()); } -#line 4161 "seclang-parser.cc" // lalr1.cc:919 +#line 4403 "seclang-parser.cc" break; case 292: -#line 2365 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2365 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ReqbodyProcessor()); } -#line 4169 "seclang-parser.cc" // lalr1.cc:919 +#line 4411 "seclang-parser.cc" break; case 293: -#line 2369 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2369 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ReqbodyProcessorError()); } -#line 4177 "seclang-parser.cc" // lalr1.cc:919 +#line 4419 "seclang-parser.cc" break; case 294: -#line 2373 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2373 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ReqbodyProcessorErrorMsg()); } -#line 4185 "seclang-parser.cc" // lalr1.cc:919 +#line 4427 "seclang-parser.cc" break; case 295: -#line 2377 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2377 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestBasename()); } -#line 4193 "seclang-parser.cc" // lalr1.cc:919 +#line 4435 "seclang-parser.cc" break; case 296: -#line 2381 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2381 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestBody()); } -#line 4201 "seclang-parser.cc" // lalr1.cc:919 +#line 4443 "seclang-parser.cc" break; case 297: -#line 2385 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2385 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestBodyLength()); } -#line 4209 "seclang-parser.cc" // lalr1.cc:919 +#line 4451 "seclang-parser.cc" break; case 298: -#line 2389 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2389 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestFilename()); } -#line 4217 "seclang-parser.cc" // lalr1.cc:919 +#line 4459 "seclang-parser.cc" break; case 299: -#line 2393 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2393 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestLine()); } -#line 4225 "seclang-parser.cc" // lalr1.cc:919 +#line 4467 "seclang-parser.cc" break; case 300: -#line 2397 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2397 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestMethod()); } -#line 4233 "seclang-parser.cc" // lalr1.cc:919 +#line 4475 "seclang-parser.cc" break; case 301: -#line 2401 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2401 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestProtocol()); } -#line 4241 "seclang-parser.cc" // lalr1.cc:919 +#line 4483 "seclang-parser.cc" break; case 302: -#line 2405 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2405 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestURI()); } -#line 4249 "seclang-parser.cc" // lalr1.cc:919 +#line 4491 "seclang-parser.cc" break; case 303: -#line 2409 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2409 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::RequestURIRaw()); } -#line 4257 "seclang-parser.cc" // lalr1.cc:919 +#line 4499 "seclang-parser.cc" break; case 304: -#line 2413 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2413 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseBody()); } -#line 4265 "seclang-parser.cc" // lalr1.cc:919 +#line 4507 "seclang-parser.cc" break; case 305: -#line 2417 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2417 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseContentLength()); } -#line 4273 "seclang-parser.cc" // lalr1.cc:919 +#line 4515 "seclang-parser.cc" break; case 306: -#line 2421 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2421 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseProtocol()); } -#line 4281 "seclang-parser.cc" // lalr1.cc:919 +#line 4523 "seclang-parser.cc" break; case 307: -#line 2425 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2425 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ResponseStatus()); } -#line 4289 "seclang-parser.cc" // lalr1.cc:919 +#line 4531 "seclang-parser.cc" break; case 308: -#line 2429 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2429 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ServerAddr()); } -#line 4297 "seclang-parser.cc" // lalr1.cc:919 +#line 4539 "seclang-parser.cc" break; case 309: -#line 2433 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2433 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ServerName()); } -#line 4305 "seclang-parser.cc" // lalr1.cc:919 +#line 4547 "seclang-parser.cc" break; case 310: -#line 2437 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2437 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::ServerPort()); } -#line 4313 "seclang-parser.cc" // lalr1.cc:919 +#line 4555 "seclang-parser.cc" break; case 311: -#line 2441 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2441 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::SessionID()); } -#line 4321 "seclang-parser.cc" // lalr1.cc:919 +#line 4563 "seclang-parser.cc" break; case 312: -#line 2445 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2445 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::UniqueID()); } -#line 4329 "seclang-parser.cc" // lalr1.cc:919 +#line 4571 "seclang-parser.cc" break; case 313: -#line 2449 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2449 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::UrlEncodedError()); } -#line 4337 "seclang-parser.cc" // lalr1.cc:919 +#line 4579 "seclang-parser.cc" break; case 314: -#line 2453 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2453 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::UserID()); } -#line 4345 "seclang-parser.cc" // lalr1.cc:919 +#line 4587 "seclang-parser.cc" break; case 315: -#line 2457 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2457 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Status()); } -#line 4353 "seclang-parser.cc" // lalr1.cc:919 +#line 4595 "seclang-parser.cc" break; case 316: -#line 2461 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2461 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::Status()); } -#line 4361 "seclang-parser.cc" // lalr1.cc:919 +#line 4603 "seclang-parser.cc" break; case 317: -#line 2465 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2465 "seclang-parser.yy" + { VARIABLE_CONTAINER(yylhs.value.as < std::unique_ptr > (), new variables::WebAppId()); } -#line 4369 "seclang-parser.cc" // lalr1.cc:919 +#line 4611 "seclang-parser.cc" break; case 318: -#line 2469 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2469 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new Duration(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4380 "seclang-parser.cc" // lalr1.cc:919 +#line 4622 "seclang-parser.cc" break; case 319: -#line 2477 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2477 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new ModsecBuild(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4391 "seclang-parser.cc" // lalr1.cc:919 +#line 4633 "seclang-parser.cc" break; case 320: -#line 2484 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2484 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new HighestSeverity(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4402 "seclang-parser.cc" // lalr1.cc:919 +#line 4644 "seclang-parser.cc" break; case 321: -#line 2491 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2491 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new RemoteUser(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4413 "seclang-parser.cc" // lalr1.cc:919 +#line 4655 "seclang-parser.cc" break; case 322: -#line 2498 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2498 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new Time(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4424 "seclang-parser.cc" // lalr1.cc:919 +#line 4666 "seclang-parser.cc" break; case 323: -#line 2505 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2505 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeDay(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4435 "seclang-parser.cc" // lalr1.cc:919 +#line 4677 "seclang-parser.cc" break; case 324: -#line 2512 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2512 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeEpoch(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4446 "seclang-parser.cc" // lalr1.cc:919 +#line 4688 "seclang-parser.cc" break; case 325: -#line 2519 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2519 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeHour(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4457 "seclang-parser.cc" // lalr1.cc:919 +#line 4699 "seclang-parser.cc" break; case 326: -#line 2526 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2526 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeMin(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4468 "seclang-parser.cc" // lalr1.cc:919 +#line 4710 "seclang-parser.cc" break; case 327: -#line 2533 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2533 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeMon(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4479 "seclang-parser.cc" // lalr1.cc:919 +#line 4721 "seclang-parser.cc" break; case 328: -#line 2540 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2540 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeSec(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4490 "seclang-parser.cc" // lalr1.cc:919 +#line 4732 "seclang-parser.cc" break; case 329: -#line 2547 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2547 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeWDay(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4501 "seclang-parser.cc" // lalr1.cc:919 +#line 4743 "seclang-parser.cc" break; case 330: -#line 2554 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2554 "seclang-parser.yy" + { std::string name(yystack_[0].value.as < std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeYear(name)); yylhs.value.as < std::unique_ptr > () = std::move(c); } -#line 4512 "seclang-parser.cc" // lalr1.cc:919 +#line 4754 "seclang-parser.cc" break; case 331: -#line 2564 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2564 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Accuracy(yystack_[0].value.as < std::string > ())); } -#line 4520 "seclang-parser.cc" // lalr1.cc:919 +#line 4762 "seclang-parser.cc" break; case 332: -#line 2568 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2568 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::disruptive::Allow(yystack_[0].value.as < std::string > ())); } -#line 4528 "seclang-parser.cc" // lalr1.cc:919 +#line 4770 "seclang-parser.cc" break; case 333: -#line 2572 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2572 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("Append", yystack_[1].location); } -#line 4536 "seclang-parser.cc" // lalr1.cc:919 +#line 4778 "seclang-parser.cc" break; case 334: -#line 2576 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2576 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as < std::string > ())); } -#line 4544 "seclang-parser.cc" // lalr1.cc:919 +#line 4786 "seclang-parser.cc" break; case 335: -#line 2580 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2580 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Block(yystack_[0].value.as < std::string > ())); } -#line 4552 "seclang-parser.cc" // lalr1.cc:919 +#line 4794 "seclang-parser.cc" break; case 336: -#line 2584 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2584 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Capture(yystack_[0].value.as < std::string > ())); } -#line 4560 "seclang-parser.cc" // lalr1.cc:919 +#line 4802 "seclang-parser.cc" break; case 337: -#line 2588 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2588 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Chain(yystack_[0].value.as < std::string > ())); } -#line 4568 "seclang-parser.cc" // lalr1.cc:919 +#line 4810 "seclang-parser.cc" break; case 338: -#line 2592 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2592 "seclang-parser.yy" + { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Action(yystack_[1].value.as < std::string > ())); } -#line 4577 "seclang-parser.cc" // lalr1.cc:919 +#line 4819 "seclang-parser.cc" break; case 339: -#line 2597 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2597 "seclang-parser.yy" + { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Action(yystack_[1].value.as < std::string > ())); } -#line 4586 "seclang-parser.cc" // lalr1.cc:919 +#line 4828 "seclang-parser.cc" break; case 340: -#line 2602 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2602 "seclang-parser.yy" + { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Action(yystack_[1].value.as < std::string > ())); } -#line 4595 "seclang-parser.cc" // lalr1.cc:919 +#line 4837 "seclang-parser.cc" break; case 341: -#line 2607 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2607 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::AuditLogParts(yystack_[0].value.as < std::string > ())); } -#line 4603 "seclang-parser.cc" // lalr1.cc:919 +#line 4845 "seclang-parser.cc" break; case 342: -#line 2611 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2611 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RequestBodyProcessorJSON(yystack_[0].value.as < std::string > ())); } -#line 4611 "seclang-parser.cc" // lalr1.cc:919 +#line 4853 "seclang-parser.cc" break; case 343: -#line 2615 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2615 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RequestBodyProcessorXML(yystack_[0].value.as < std::string > ())); } -#line 4619 "seclang-parser.cc" // lalr1.cc:919 +#line 4861 "seclang-parser.cc" break; case 344: -#line 2619 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2619 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RequestBodyProcessorURLENCODED(yystack_[0].value.as < std::string > ())); } -#line 4627 "seclang-parser.cc" // lalr1.cc:919 +#line 4869 "seclang-parser.cc" break; case 345: -#line 2623 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2623 "seclang-parser.yy" + { //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Action(yystack_[1].value.as < std::string > ())); } -#line 4636 "seclang-parser.cc" // lalr1.cc:919 +#line 4878 "seclang-parser.cc" break; case 346: -#line 2628 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2628 "seclang-parser.yy" + { //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Action(yystack_[1].value.as < std::string > ())); } -#line 4645 "seclang-parser.cc" // lalr1.cc:919 +#line 4887 "seclang-parser.cc" break; case 347: -#line 2633 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2633 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as < std::string > () + "true")); } -#line 4653 "seclang-parser.cc" // lalr1.cc:919 +#line 4895 "seclang-parser.cc" break; case 348: -#line 2637 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2637 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as < std::string > () + "false")); } -#line 4661 "seclang-parser.cc" // lalr1.cc:919 +#line 4903 "seclang-parser.cc" break; case 349: -#line 2641 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2641 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); } -#line 4669 "seclang-parser.cc" // lalr1.cc:919 +#line 4911 "seclang-parser.cc" break; case 350: -#line 2645 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2645 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); } -#line 4677 "seclang-parser.cc" // lalr1.cc:919 +#line 4919 "seclang-parser.cc" break; case 351: -#line 2649 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2649 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); } -#line 4685 "seclang-parser.cc" // lalr1.cc:919 +#line 4927 "seclang-parser.cc" break; case 352: -#line 2653 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2653 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleRemoveById(yystack_[0].value.as < std::string > ())); } -#line 4693 "seclang-parser.cc" // lalr1.cc:919 +#line 4935 "seclang-parser.cc" break; case 353: -#line 2657 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2657 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleRemoveByTag(yystack_[0].value.as < std::string > ())); } -#line 4701 "seclang-parser.cc" // lalr1.cc:919 +#line 4943 "seclang-parser.cc" break; case 354: -#line 2661 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2661 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleRemoveTargetById(yystack_[0].value.as < std::string > ())); } -#line 4709 "seclang-parser.cc" // lalr1.cc:919 +#line 4951 "seclang-parser.cc" break; case 355: -#line 2665 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2665 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::ctl::RuleRemoveTargetByTag(yystack_[0].value.as < std::string > ())); } -#line 4717 "seclang-parser.cc" // lalr1.cc:919 +#line 4959 "seclang-parser.cc" break; case 356: -#line 2669 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2669 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::disruptive::Deny(yystack_[0].value.as < std::string > ())); } -#line 4725 "seclang-parser.cc" // lalr1.cc:919 +#line 4967 "seclang-parser.cc" break; case 357: -#line 2673 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2673 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("DeprecateVar", yystack_[1].location); } -#line 4733 "seclang-parser.cc" // lalr1.cc:919 +#line 4975 "seclang-parser.cc" break; case 358: -#line 2677 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2677 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::disruptive::Drop(yystack_[0].value.as < std::string > ())); } -#line 4741 "seclang-parser.cc" // lalr1.cc:919 +#line 4983 "seclang-parser.cc" break; case 359: -#line 2681 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2681 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Exec(yystack_[0].value.as < std::string > ())); } -#line 4749 "seclang-parser.cc" // lalr1.cc:919 +#line 4991 "seclang-parser.cc" break; case 360: -#line 2685 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2685 "seclang-parser.yy" + { //ACTION_NOT_SUPPORTED("ExpireVar", @0); ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Action(yystack_[0].value.as < std::string > ())); } -#line 4758 "seclang-parser.cc" // lalr1.cc:919 +#line 5000 "seclang-parser.cc" break; case 361: -#line 2690 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2690 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::RuleId(yystack_[0].value.as < std::string > ())); } -#line 4766 "seclang-parser.cc" // lalr1.cc:919 +#line 5008 "seclang-parser.cc" break; case 362: -#line 2694 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2694 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::InitCol(yystack_[1].value.as < std::string > (), std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4774 "seclang-parser.cc" // lalr1.cc:919 +#line 5016 "seclang-parser.cc" break; case 363: -#line 2698 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2698 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::LogData(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4782 "seclang-parser.cc" // lalr1.cc:919 +#line 5024 "seclang-parser.cc" break; case 364: -#line 2702 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2702 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Log(yystack_[0].value.as < std::string > ())); } -#line 4790 "seclang-parser.cc" // lalr1.cc:919 +#line 5032 "seclang-parser.cc" break; case 365: -#line 2706 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2706 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Maturity(yystack_[0].value.as < std::string > ())); } -#line 4798 "seclang-parser.cc" // lalr1.cc:919 +#line 5040 "seclang-parser.cc" break; case 366: -#line 2710 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2710 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Msg(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4806 "seclang-parser.cc" // lalr1.cc:919 +#line 5048 "seclang-parser.cc" break; case 367: -#line 2714 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2714 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::MultiMatch(yystack_[0].value.as < std::string > ())); } -#line 4814 "seclang-parser.cc" // lalr1.cc:919 +#line 5056 "seclang-parser.cc" break; case 368: -#line 2718 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2718 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::NoAuditLog(yystack_[0].value.as < std::string > ())); } -#line 4822 "seclang-parser.cc" // lalr1.cc:919 +#line 5064 "seclang-parser.cc" break; case 369: -#line 2722 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2722 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::NoLog(yystack_[0].value.as < std::string > ())); } -#line 4830 "seclang-parser.cc" // lalr1.cc:919 +#line 5072 "seclang-parser.cc" break; case 370: -#line 2726 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2726 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::disruptive::Pass(yystack_[0].value.as < std::string > ())); } -#line 4838 "seclang-parser.cc" // lalr1.cc:919 +#line 5080 "seclang-parser.cc" break; case 371: -#line 2730 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2730 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("Pause", yystack_[1].location); } -#line 4846 "seclang-parser.cc" // lalr1.cc:919 +#line 5088 "seclang-parser.cc" break; case 372: -#line 2734 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2734 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Phase(yystack_[0].value.as < std::string > ())); } -#line 4854 "seclang-parser.cc" // lalr1.cc:919 +#line 5096 "seclang-parser.cc" break; case 373: -#line 2738 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2738 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("Prepend", yystack_[1].location); } -#line 4862 "seclang-parser.cc" // lalr1.cc:919 +#line 5104 "seclang-parser.cc" break; case 374: -#line 2742 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2742 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("Proxy", yystack_[1].location); } -#line 4870 "seclang-parser.cc" // lalr1.cc:919 +#line 5112 "seclang-parser.cc" break; case 375: -#line 2746 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2746 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::disruptive::Redirect(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4878 "seclang-parser.cc" // lalr1.cc:919 +#line 5120 "seclang-parser.cc" break; case 376: -#line 2750 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2750 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Rev(yystack_[0].value.as < std::string > ())); } -#line 4886 "seclang-parser.cc" // lalr1.cc:919 +#line 5128 "seclang-parser.cc" break; case 377: -#line 2754 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2754 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("SanitiseArg", yystack_[1].location); } -#line 4894 "seclang-parser.cc" // lalr1.cc:919 +#line 5136 "seclang-parser.cc" break; case 378: -#line 2758 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2758 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("SanitiseMatched", yystack_[1].location); } -#line 4902 "seclang-parser.cc" // lalr1.cc:919 +#line 5144 "seclang-parser.cc" break; case 379: -#line 2762 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2762 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("SanitiseMatchedBytes", yystack_[1].location); } -#line 4910 "seclang-parser.cc" // lalr1.cc:919 +#line 5152 "seclang-parser.cc" break; case 380: -#line 2766 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2766 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("SanitiseRequestHeader", yystack_[1].location); } -#line 4918 "seclang-parser.cc" // lalr1.cc:919 +#line 5160 "seclang-parser.cc" break; case 381: -#line 2770 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2770 "seclang-parser.yy" + { ACTION_NOT_SUPPORTED("SanitiseResponseHeader", yystack_[1].location); } -#line 4926 "seclang-parser.cc" // lalr1.cc:919 +#line 5168 "seclang-parser.cc" break; case 382: -#line 2774 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2774 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetENV(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4934 "seclang-parser.cc" // lalr1.cc:919 +#line 5176 "seclang-parser.cc" break; case 383: -#line 2778 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2778 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetRSC(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4942 "seclang-parser.cc" // lalr1.cc:919 +#line 5184 "seclang-parser.cc" break; case 384: -#line 2782 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2782 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetSID(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4950 "seclang-parser.cc" // lalr1.cc:919 +#line 5192 "seclang-parser.cc" break; case 385: -#line 2786 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2786 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetUID(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 4958 "seclang-parser.cc" // lalr1.cc:919 +#line 5200 "seclang-parser.cc" break; case 386: -#line 2790 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2790 "seclang-parser.yy" + { yylhs.value.as < std::unique_ptr > () = std::move(yystack_[0].value.as < std::unique_ptr > ()); } -#line 4966 "seclang-parser.cc" // lalr1.cc:919 +#line 5208 "seclang-parser.cc" break; case 387: -#line 2794 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2794 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Severity(yystack_[0].value.as < std::string > ())); } -#line 4974 "seclang-parser.cc" // lalr1.cc:919 +#line 5216 "seclang-parser.cc" break; case 388: -#line 2798 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2798 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Skip(yystack_[0].value.as < std::string > ())); } -#line 4982 "seclang-parser.cc" // lalr1.cc:919 +#line 5224 "seclang-parser.cc" break; case 389: -#line 2802 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2802 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SkipAfter(yystack_[0].value.as < std::string > ())); } -#line 4990 "seclang-parser.cc" // lalr1.cc:919 +#line 5232 "seclang-parser.cc" break; case 390: -#line 2806 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2806 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::data::Status(yystack_[0].value.as < std::string > ())); } -#line 4998 "seclang-parser.cc" // lalr1.cc:919 +#line 5240 "seclang-parser.cc" break; case 391: -#line 2810 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2810 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Tag(std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 5006 "seclang-parser.cc" // lalr1.cc:919 +#line 5248 "seclang-parser.cc" break; case 392: -#line 2814 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2814 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::Ver(yystack_[0].value.as < std::string > ())); } -#line 5014 "seclang-parser.cc" // lalr1.cc:919 +#line 5256 "seclang-parser.cc" break; case 393: -#line 2818 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2818 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::XmlNS(yystack_[0].value.as < std::string > ())); } -#line 5022 "seclang-parser.cc" // lalr1.cc:919 +#line 5264 "seclang-parser.cc" break; case 394: -#line 2822 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2822 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::ParityZero7bit(yystack_[0].value.as < std::string > ())); } -#line 5030 "seclang-parser.cc" // lalr1.cc:919 +#line 5272 "seclang-parser.cc" break; case 395: -#line 2826 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2826 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::ParityOdd7bit(yystack_[0].value.as < std::string > ())); } -#line 5038 "seclang-parser.cc" // lalr1.cc:919 +#line 5280 "seclang-parser.cc" break; case 396: -#line 2830 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2830 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::ParityEven7bit(yystack_[0].value.as < std::string > ())); } -#line 5046 "seclang-parser.cc" // lalr1.cc:919 +#line 5288 "seclang-parser.cc" break; case 397: -#line 2834 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2834 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::SqlHexDecode(yystack_[0].value.as < std::string > ())); } -#line 5054 "seclang-parser.cc" // lalr1.cc:919 +#line 5296 "seclang-parser.cc" break; case 398: -#line 2838 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2838 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Base64Encode(yystack_[0].value.as < std::string > ())); } -#line 5062 "seclang-parser.cc" // lalr1.cc:919 +#line 5304 "seclang-parser.cc" break; case 399: -#line 2842 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2842 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Base64Decode(yystack_[0].value.as < std::string > ())); } -#line 5070 "seclang-parser.cc" // lalr1.cc:919 +#line 5312 "seclang-parser.cc" break; case 400: -#line 2846 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2846 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Base64DecodeExt(yystack_[0].value.as < std::string > ())); } -#line 5078 "seclang-parser.cc" // lalr1.cc:919 +#line 5320 "seclang-parser.cc" break; case 401: -#line 2850 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2850 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::CmdLine(yystack_[0].value.as < std::string > ())); } -#line 5086 "seclang-parser.cc" // lalr1.cc:919 +#line 5328 "seclang-parser.cc" break; case 402: -#line 2854 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2854 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Sha1(yystack_[0].value.as < std::string > ())); } -#line 5094 "seclang-parser.cc" // lalr1.cc:919 +#line 5336 "seclang-parser.cc" break; case 403: -#line 2858 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2858 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Md5(yystack_[0].value.as < std::string > ())); } -#line 5102 "seclang-parser.cc" // lalr1.cc:919 +#line 5344 "seclang-parser.cc" break; case 404: -#line 2862 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2862 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::EscapeSeqDecode(yystack_[0].value.as < std::string > ())); } -#line 5110 "seclang-parser.cc" // lalr1.cc:919 +#line 5352 "seclang-parser.cc" break; case 405: -#line 2866 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2866 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::HexEncode(yystack_[0].value.as < std::string > ())); } -#line 5118 "seclang-parser.cc" // lalr1.cc:919 +#line 5360 "seclang-parser.cc" break; case 406: -#line 2870 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2870 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::HexDecode(yystack_[0].value.as < std::string > ())); } -#line 5126 "seclang-parser.cc" // lalr1.cc:919 +#line 5368 "seclang-parser.cc" break; case 407: -#line 2874 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2874 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::LowerCase(yystack_[0].value.as < std::string > ())); } -#line 5134 "seclang-parser.cc" // lalr1.cc:919 +#line 5376 "seclang-parser.cc" break; case 408: -#line 2878 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2878 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::UpperCase(yystack_[0].value.as < std::string > ())); } -#line 5142 "seclang-parser.cc" // lalr1.cc:919 +#line 5384 "seclang-parser.cc" break; case 409: -#line 2882 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2882 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::UrlDecodeUni(yystack_[0].value.as < std::string > ())); } -#line 5150 "seclang-parser.cc" // lalr1.cc:919 +#line 5392 "seclang-parser.cc" break; case 410: -#line 2886 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2886 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::UrlDecode(yystack_[0].value.as < std::string > ())); } -#line 5158 "seclang-parser.cc" // lalr1.cc:919 +#line 5400 "seclang-parser.cc" break; case 411: -#line 2890 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2890 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::UrlEncode(yystack_[0].value.as < std::string > ())); } -#line 5166 "seclang-parser.cc" // lalr1.cc:919 +#line 5408 "seclang-parser.cc" break; case 412: -#line 2894 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2894 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::None(yystack_[0].value.as < std::string > ())); } -#line 5174 "seclang-parser.cc" // lalr1.cc:919 +#line 5416 "seclang-parser.cc" break; case 413: -#line 2898 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2898 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::CompressWhitespace(yystack_[0].value.as < std::string > ())); } -#line 5182 "seclang-parser.cc" // lalr1.cc:919 +#line 5424 "seclang-parser.cc" break; case 414: -#line 2902 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2902 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::RemoveWhitespace(yystack_[0].value.as < std::string > ())); } -#line 5190 "seclang-parser.cc" // lalr1.cc:919 +#line 5432 "seclang-parser.cc" break; case 415: -#line 2906 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2906 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::ReplaceNulls(yystack_[0].value.as < std::string > ())); } -#line 5198 "seclang-parser.cc" // lalr1.cc:919 +#line 5440 "seclang-parser.cc" break; case 416: -#line 2910 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2910 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::RemoveNulls(yystack_[0].value.as < std::string > ())); } -#line 5206 "seclang-parser.cc" // lalr1.cc:919 +#line 5448 "seclang-parser.cc" break; case 417: -#line 2914 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2914 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::HtmlEntityDecode(yystack_[0].value.as < std::string > ())); } -#line 5214 "seclang-parser.cc" // lalr1.cc:919 +#line 5456 "seclang-parser.cc" break; case 418: -#line 2918 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2918 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::JsDecode(yystack_[0].value.as < std::string > ())); } -#line 5222 "seclang-parser.cc" // lalr1.cc:919 +#line 5464 "seclang-parser.cc" break; case 419: -#line 2922 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2922 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::CssDecode(yystack_[0].value.as < std::string > ())); } -#line 5230 "seclang-parser.cc" // lalr1.cc:919 +#line 5472 "seclang-parser.cc" break; case 420: -#line 2926 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2926 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Trim(yystack_[0].value.as < std::string > ())); } -#line 5238 "seclang-parser.cc" // lalr1.cc:919 +#line 5480 "seclang-parser.cc" break; case 421: -#line 2930 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2930 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::TrimLeft(yystack_[0].value.as < std::string > ())); } -#line 5246 "seclang-parser.cc" // lalr1.cc:919 +#line 5488 "seclang-parser.cc" break; case 422: -#line 2934 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2934 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::TrimRight(yystack_[0].value.as < std::string > ())); } -#line 5254 "seclang-parser.cc" // lalr1.cc:919 +#line 5496 "seclang-parser.cc" break; case 423: -#line 2938 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2938 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::NormalisePathWin(yystack_[0].value.as < std::string > ())); } -#line 5262 "seclang-parser.cc" // lalr1.cc:919 +#line 5504 "seclang-parser.cc" break; case 424: -#line 2942 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2942 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::NormalisePath(yystack_[0].value.as < std::string > ())); } -#line 5270 "seclang-parser.cc" // lalr1.cc:919 +#line 5512 "seclang-parser.cc" break; case 425: -#line 2946 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2946 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Length(yystack_[0].value.as < std::string > ())); } -#line 5278 "seclang-parser.cc" // lalr1.cc:919 +#line 5520 "seclang-parser.cc" break; case 426: -#line 2950 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2950 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::Utf8ToUnicode(yystack_[0].value.as < std::string > ())); } -#line 5286 "seclang-parser.cc" // lalr1.cc:919 +#line 5528 "seclang-parser.cc" break; case 427: -#line 2954 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2954 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::RemoveCommentsChar(yystack_[0].value.as < std::string > ())); } -#line 5294 "seclang-parser.cc" // lalr1.cc:919 +#line 5536 "seclang-parser.cc" break; case 428: -#line 2958 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2958 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::RemoveComments(yystack_[0].value.as < std::string > ())); } -#line 5302 "seclang-parser.cc" // lalr1.cc:919 +#line 5544 "seclang-parser.cc" break; case 429: -#line 2962 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2962 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::transformations::ReplaceComments(yystack_[0].value.as < std::string > ())); } -#line 5310 "seclang-parser.cc" // lalr1.cc:919 +#line 5552 "seclang-parser.cc" break; case 430: -#line 2969 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2969 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::unsetOperation, std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 5318 "seclang-parser.cc" // lalr1.cc:919 +#line 5560 "seclang-parser.cc" break; case 431: -#line 2973 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2973 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setToOneOperation, std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 5326 "seclang-parser.cc" // lalr1.cc:919 +#line 5568 "seclang-parser.cc" break; case 432: -#line 2977 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2977 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setOperation, std::move(yystack_[2].value.as < std::unique_ptr > ()), std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 5334 "seclang-parser.cc" // lalr1.cc:919 +#line 5576 "seclang-parser.cc" break; case 433: -#line 2981 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2981 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::sumAndSetOperation, std::move(yystack_[2].value.as < std::unique_ptr > ()), std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 5342 "seclang-parser.cc" // lalr1.cc:919 +#line 5584 "seclang-parser.cc" break; case 434: -#line 2985 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2985 "seclang-parser.yy" + { ACTION_CONTAINER(yylhs.value.as < std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::substractAndSetOperation, std::move(yystack_[2].value.as < std::unique_ptr > ()), std::move(yystack_[0].value.as < std::unique_ptr > ()))); } -#line 5350 "seclang-parser.cc" // lalr1.cc:919 +#line 5592 "seclang-parser.cc" break; case 435: -#line 2992 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2992 "seclang-parser.yy" + { yystack_[1].value.as < std::unique_ptr > ()->appendText(yystack_[0].value.as < std::string > ()); yylhs.value.as < std::unique_ptr > () = std::move(yystack_[1].value.as < std::unique_ptr > ()); } -#line 5359 "seclang-parser.cc" // lalr1.cc:919 +#line 5601 "seclang-parser.cc" break; case 436: -#line 2997 "seclang-parser.yy" // lalr1.cc:919 - { +#line 2997 "seclang-parser.yy" + { yystack_[1].value.as < std::unique_ptr > ()->appendVar(std::move(yystack_[0].value.as < std::unique_ptr > ())); yylhs.value.as < std::unique_ptr > () = std::move(yystack_[1].value.as < std::unique_ptr > ()); } -#line 5368 "seclang-parser.cc" // lalr1.cc:919 +#line 5610 "seclang-parser.cc" break; case 437: -#line 3002 "seclang-parser.yy" // lalr1.cc:919 - { +#line 3002 "seclang-parser.yy" + { std::unique_ptr r(new RunTimeString()); r->appendText(yystack_[0].value.as < std::string > ()); yylhs.value.as < std::unique_ptr > () = std::move(r); } -#line 5378 "seclang-parser.cc" // lalr1.cc:919 +#line 5620 "seclang-parser.cc" break; case 438: -#line 3008 "seclang-parser.yy" // lalr1.cc:919 - { +#line 3008 "seclang-parser.yy" + { std::unique_ptr r(new RunTimeString()); r->appendVar(std::move(yystack_[0].value.as < std::unique_ptr > ())); yylhs.value.as < std::unique_ptr > () = std::move(r); } -#line 5388 "seclang-parser.cc" // lalr1.cc:919 +#line 5630 "seclang-parser.cc" break; -#line 5392 "seclang-parser.cc" // lalr1.cc:919 +#line 5634 "seclang-parser.cc" + default: break; } @@ -5469,11 +5712,11 @@ namespace yy { stack_symbol_type error_token; for (;;) { - yyn = yypact_[yystack_[0].state]; + yyn = yypact_[+yystack_[0].state]; if (!yy_pact_value_is_default_ (yyn)) { - yyn += yyterror_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) + yyn += yy_error_token_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yy_error_token_) { yyn = yytable_[yyn]; if (0 < yyn) @@ -5495,7 +5738,7 @@ namespace yy { YYLLOC_DEFAULT (error_token.location, yyerror_range, 2); // Shift the error token. - error_token.state = yyn; + error_token.state = state_type (yyn); yypush_ ("Shifting", YY_MOVE (error_token)); } goto yynewstate; @@ -5566,7 +5809,7 @@ namespace yy { { // Number of reported tokens (one for the "unexpected", one per // "expected"). - size_t yycount = 0; + std::ptrdiff_t yycount = 0; // Its maximum. enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; // Arguments of yyformat. @@ -5590,18 +5833,18 @@ namespace yy { - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the - scanner and before detecting a syntax error. Thus, state - merging (from LALR or IELR) and default reductions corrupt the - expected token list. However, the list is correct for - canonical LR with one exception: it will still contain any - token that will not be accepted due to an error action in a - later state. + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. */ if (!yyla.empty ()) { - int yytoken = yyla.type_get (); + symbol_number_type yytoken = yyla.type_get (); yyarg[yycount++] = yytname_[yytoken]; - int yyn = yypact_[yystate]; + + int yyn = yypact_[+yystate]; if (!yy_pact_value_is_default_ (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in @@ -5612,7 +5855,7 @@ namespace yy { int yychecklim = yylast_ - yyn + 1; int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; for (int yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_ + if (yycheck_[yyx + yyn] == yyx && yyx != yy_error_token_ && !yy_table_value_is_error_ (yytable_[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) @@ -5645,7 +5888,7 @@ namespace yy { std::string yyres; // Argument number. - size_t yyi = 0; + std::ptrdiff_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount) { @@ -5720,7 +5963,7 @@ namespace yy { -404, 2533, 2533, 2533, -404, -404 }; - const unsigned short + const short seclang_parser::yydefact_[] = { 0, 2, 0, 140, 0, 88, 0, 87, 91, 92, @@ -5792,7 +6035,7 @@ namespace yy { 320, 321, 352, 209, 340, 353 }; - const unsigned short + const short seclang_parser::yytable_[] = { 322, 322, 322, 213, 210, 323, 324, 363, 363, 354, @@ -6464,7 +6707,7 @@ namespace yy { 231, 232, 233, 234, 235 }; - const unsigned short + const short seclang_parser::yystos_[] = { 0, 0, 4, 5, 141, 236, 237, 238, 239, 240, @@ -6522,7 +6765,7 @@ namespace yy { 345, 356, 356, 356, 353, 353 }; - const unsigned short + const short seclang_parser::yyr1_[] = { 0, 341, 342, 342, 342, 343, 344, 344, 344, 344, @@ -6571,7 +6814,7 @@ namespace yy { 355, 355, 355, 355, 355, 356, 356, 356, 356 }; - const unsigned char + const signed char seclang_parser::yyr2_[] = { 0, 2, 1, 2, 1, 1, 1, 1, 2, 2, @@ -6802,7 +7045,7 @@ namespace yy { }; #if YYDEBUG - const unsigned short + const short seclang_parser::yyrline_[] = { 0, 707, 707, 711, 712, 715, 720, 726, 732, 736, @@ -6860,7 +7103,7 @@ namespace yy { i = yystack_.begin (), i_end = yystack_.end (); i != i_end; ++i) - *yycdebug_ << ' ' << i->state; + *yycdebug_ << ' ' << int (i->state); *yycdebug_ << '\n'; } @@ -6868,7 +7111,7 @@ namespace yy { void seclang_parser::yy_reduce_print_ (int yyrule) { - unsigned yylno = yyrline_[yyrule]; + int yylno = yyrline_[yyrule]; int yynrhs = yyr2_[yyrule]; // Print the symbols being reduced, and their result. *yycdebug_ << "Reducing stack by rule " << yyrule - 1 @@ -6881,10 +7124,10 @@ namespace yy { #endif // YYDEBUG - } // yy -#line 6887 "seclang-parser.cc" // lalr1.cc:1242 -#line 3014 "seclang-parser.yy" // lalr1.cc:1243 +#line 7129 "seclang-parser.cc" + +#line 3014 "seclang-parser.yy" void yy::seclang_parser::error (const location_type& l, const std::string& m) { diff --git a/src/parser/seclang-parser.hh b/src/parser/seclang-parser.hh index 30dbf76e..04de9f73 100644 --- a/src/parser/seclang-parser.hh +++ b/src/parser/seclang-parser.hh @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.3.2. +// A Bison parser, made by GNU Bison 3.5.1. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015, 2018-2019 Free Software Foundation, Inc. +// Copyright (C) 2002-2015, 2018-2020 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -43,8 +43,8 @@ #ifndef YY_YY_SECLANG_PARSER_HH_INCLUDED # define YY_YY_SECLANG_PARSER_HH_INCLUDED -// // "%code requires" blocks. -#line 10 "seclang-parser.yy" // lalr1.cc:401 +// "%code requires" blocks. +#line 10 "seclang-parser.yy" #include #include @@ -348,7 +348,7 @@ using namespace modsecurity::operators; a = std::move(c); -#line 352 "seclang-parser.hh" // lalr1.cc:401 +#line 352 "seclang-parser.hh" # include # include // std::abort @@ -395,28 +395,26 @@ using namespace modsecurity::operators; #endif # include "location.hh" #include -#ifndef YYASSERT +#ifndef YY_ASSERT # include -# define YYASSERT assert +# define YY_ASSERT assert #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else -# define YY_ATTRIBUTE(Spec) /* empty */ +# define YY_ATTRIBUTE_PURE # endif #endif -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - #ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif #endif /* Suppress unused-variable warnings by "using" E. */ @@ -428,11 +426,11 @@ using namespace modsecurity::operators; #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -445,6 +443,27 @@ using namespace modsecurity::operators; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus @@ -462,9 +481,9 @@ using namespace modsecurity::operators; # define YYDEBUG 1 #endif - namespace yy { -#line 468 "seclang-parser.hh" // lalr1.cc:401 +#line 486 "seclang-parser.hh" + @@ -495,14 +514,14 @@ namespace yy { semantic_type (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { - YYASSERT (sizeof (T) <= size); + YY_ASSERT (sizeof (T) <= size); new (yyas_ ()) T (YY_MOVE (t)); } /// Destruction, allowed only if empty. ~semantic_type () YY_NOEXCEPT { - YYASSERT (!yytypeid_); + YY_ASSERT (!yytypeid_); } # if 201103L <= YY_CPLUSPLUS @@ -511,8 +530,8 @@ namespace yy { T& emplace (U&&... u) { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::forward (u)...); } @@ -522,8 +541,8 @@ namespace yy { T& emplace () { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (); } @@ -533,8 +552,8 @@ namespace yy { T& emplace (const T& t) { - YYASSERT (!yytypeid_); - YYASSERT (sizeof (T) <= size); + YY_ASSERT (!yytypeid_); + YY_ASSERT (sizeof (T) <= size); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::move((T&)t)); } @@ -563,9 +582,9 @@ namespace yy { T& as () YY_NOEXCEPT { - YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -574,9 +593,9 @@ namespace yy { const T& as () const YY_NOEXCEPT { - YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == typeid (T)); - YYASSERT (sizeof (T) <= size); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == typeid (T)); + YY_ASSERT (sizeof (T) <= size); return *yyas_ (); } @@ -592,8 +611,8 @@ namespace yy { void swap (self_type& that) YY_NOEXCEPT { - YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == *that.yytypeid_); + YY_ASSERT (yytypeid_); + YY_ASSERT (*yytypeid_ == *that.yytypeid_); std::swap (as (), that.as ()); } @@ -1286,7 +1305,7 @@ namespace yy { enum { empty_symbol = -2 }; /// Internal symbol number for tokens (subsumed by symbol_number_type). - typedef unsigned short token_number_type; + typedef short token_number_type; /// A complete symbol. /// @@ -1724,9 +1743,6 @@ switch (yytype) /// \a empty when empty. symbol_number_type type_get () const YY_NOEXCEPT; - /// The token. - token_type token () const YY_NOEXCEPT; - /// The symbol type. /// \a empty_symbol when empty. /// An int, not token_number_type, to be able to store empty_symbol. @@ -1747,26 +1763,26 @@ switch (yytype) symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) { - YYASSERT (tok == token::TOK_END || tok == token::TOK_COMMA || tok == token::TOK_CONFIG_CONTENT_INJECTION || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR || tok == token::TOK_PIPE || tok == token::TOK_NEW_LINE || tok == token::TOK_VAR_COUNT || tok == token::TOK_VAR_EXCLUSION || tok == token::TOK_VARIABLE_ARGS || tok == token::TOK_VARIABLE_ARGS_POST || tok == token::TOK_VARIABLE_ARGS_GET || tok == token::TOK_VARIABLE_FILES_SIZES || tok == token::TOK_VARIABLE_FILES_NAMES || tok == token::TOK_VARIABLE_FILES_TMP_CONTENT || tok == token::TOK_VARIABLE_MULTIPART_FILENAME || tok == token::TOK_VARIABLE_MULTIPART_NAME || tok == token::TOK_VARIABLE_MATCHED_VARS_NAMES || tok == token::TOK_VARIABLE_MATCHED_VARS || tok == token::TOK_VARIABLE_FILES || tok == token::TOK_VARIABLE_REQUEST_COOKIES || tok == token::TOK_VARIABLE_REQUEST_HEADERS || tok == token::TOK_VARIABLE_RESPONSE_HEADERS || tok == token::TOK_VARIABLE_GEO || tok == token::TOK_VARIABLE_REQUEST_COOKIES_NAMES || tok == token::TOK_VARIABLE_ARGS_COMBINED_SIZE || tok == token::TOK_VARIABLE_ARGS_GET_NAMES || tok == token::TOK_VARIABLE_RULE || tok == token::TOK_VARIABLE_ARGS_NAMES || tok == token::TOK_VARIABLE_ARGS_POST_NAMES || tok == token::TOK_VARIABLE_AUTH_TYPE || tok == token::TOK_VARIABLE_FILES_COMBINED_SIZE || tok == token::TOK_VARIABLE_FILES_TMP_NAMES || tok == token::TOK_VARIABLE_FULL_REQUEST || tok == token::TOK_VARIABLE_FULL_REQUEST_LENGTH || tok == token::TOK_VARIABLE_INBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_MATCHED_VAR || tok == token::TOK_VARIABLE_MATCHED_VAR_NAME || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE || tok == token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES || tok == token::TOK_VARIABLE_MULTIPART_DATA_AFTER || tok == token::TOK_VARIABLE_MULTIPART_DATA_BEFORE || tok == token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED || tok == token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_PART || tok == token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING || tok == token::TOK_VARIABLE_MULTIPART_LF_LINE || tok == token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON || tok == token::TOK_VARIABLE_MULTIPART_SEMICOLON_MISSING || tok == token::TOK_VARIABLE_MULTIPART_STRICT_ERROR || tok == token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY || tok == token::TOK_VARIABLE_OUTBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_PATH_INFO || tok == token::TOK_VARIABLE_QUERY_STRING || tok == token::TOK_VARIABLE_REMOTE_ADDR || tok == token::TOK_VARIABLE_REMOTE_HOST || tok == token::TOK_VARIABLE_REMOTE_PORT || tok == token::TOK_VARIABLE_REQBODY_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR || tok == token::TOK_VARIABLE_REQUEST_BASENAME || tok == token::TOK_VARIABLE_REQUEST_BODY_LENGTH || tok == token::TOK_VARIABLE_REQUEST_BODY || tok == token::TOK_VARIABLE_REQUEST_FILE_NAME || tok == token::TOK_VARIABLE_REQUEST_HEADERS_NAMES || tok == token::TOK_VARIABLE_REQUEST_LINE || tok == token::TOK_VARIABLE_REQUEST_METHOD || tok == token::TOK_VARIABLE_REQUEST_PROTOCOL || tok == token::TOK_VARIABLE_REQUEST_URI_RAW || tok == token::TOK_VARIABLE_REQUEST_URI || tok == token::TOK_VARIABLE_RESOURCE || tok == token::TOK_VARIABLE_RESPONSE_BODY || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE || tok == token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES || tok == token::TOK_VARIABLE_RESPONSE_PROTOCOL || tok == token::TOK_VARIABLE_RESPONSE_STATUS || tok == token::TOK_VARIABLE_SERVER_ADDR || tok == token::TOK_VARIABLE_SERVER_NAME || tok == token::TOK_VARIABLE_SERVER_PORT || tok == token::TOK_VARIABLE_SESSION_ID || tok == token::TOK_VARIABLE_UNIQUE_ID || tok == token::TOK_VARIABLE_URL_ENCODED_ERROR || tok == token::TOK_VARIABLE_USER_ID || tok == token::TOK_VARIABLE_WEB_APP_ID || tok == token::TOK_VARIABLE_STATUS || tok == token::TOK_VARIABLE_STATUS_LINE || tok == token::TOK_VARIABLE_IP || tok == token::TOK_VARIABLE_GLOBAL || tok == token::TOK_VARIABLE_TX || tok == token::TOK_VARIABLE_SESSION || tok == token::TOK_VARIABLE_USER || tok == token::TOK_RUN_TIME_VAR_ENV || tok == token::TOK_RUN_TIME_VAR_XML || tok == token::TOK_ACTION_SETVAR || tok == token::TOK_SETVAR_OPERATION_EQUALS || tok == token::TOK_SETVAR_OPERATION_EQUALS_PLUS || tok == token::TOK_SETVAR_OPERATION_EQUALS_MINUS || tok == token::TOK_NOT || tok == token::TOK_OPERATOR_BEGINS_WITH || tok == token::TOK_OPERATOR_CONTAINS || tok == token::TOK_OPERATOR_CONTAINS_WORD || tok == token::TOK_OPERATOR_DETECT_SQLI || tok == token::TOK_OPERATOR_DETECT_XSS || tok == token::TOK_OPERATOR_ENDS_WITH || tok == token::TOK_OPERATOR_EQ || tok == token::TOK_OPERATOR_FUZZY_HASH || tok == token::TOK_OPERATOR_GEOLOOKUP || tok == token::TOK_OPERATOR_GE || tok == token::TOK_OPERATOR_GSB_LOOKUP || tok == token::TOK_OPERATOR_GT || tok == token::TOK_OPERATOR_INSPECT_FILE || tok == token::TOK_OPERATOR_IP_MATCH_FROM_FILE || tok == token::TOK_OPERATOR_IP_MATCH || tok == token::TOK_OPERATOR_LE || tok == token::TOK_OPERATOR_LT || tok == token::TOK_OPERATOR_PM_FROM_FILE || tok == token::TOK_OPERATOR_PM || tok == token::TOK_OPERATOR_RBL || tok == token::TOK_OPERATOR_RSUB || tok == token::TOK_OPERATOR_RX_CONTENT_ONLY || tok == token::TOK_OPERATOR_RX || tok == token::TOK_OPERATOR_STR_EQ || tok == token::TOK_OPERATOR_STR_MATCH || tok == token::TOK_OPERATOR_UNCONDITIONAL_MATCH || tok == token::TOK_OPERATOR_VALIDATE_BYTE_RANGE || tok == token::TOK_OPERATOR_VALIDATE_DTD || tok == token::TOK_OPERATOR_VALIDATE_HASH || tok == token::TOK_OPERATOR_VALIDATE_SCHEMA || tok == token::TOK_OPERATOR_VALIDATE_URL_ENCODING || tok == token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING || tok == token::TOK_OPERATOR_VERIFY_CC || tok == token::TOK_OPERATOR_VERIFY_CPF || tok == token::TOK_OPERATOR_VERIFY_SSN || tok == token::TOK_OPERATOR_VERIFY_SVNR || tok == token::TOK_OPERATOR_WITHIN || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_FMT || tok == token::TOK_JSON || tok == token::TOK_NATIVE || tok == token::TOK_ACTION_CTL_RULE_ENGINE); + YY_ASSERT (tok == token::TOK_END || tok == token::TOK_COMMA || tok == token::TOK_CONFIG_CONTENT_INJECTION || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR || tok == token::TOK_PIPE || tok == token::TOK_NEW_LINE || tok == token::TOK_VAR_COUNT || tok == token::TOK_VAR_EXCLUSION || tok == token::TOK_VARIABLE_ARGS || tok == token::TOK_VARIABLE_ARGS_POST || tok == token::TOK_VARIABLE_ARGS_GET || tok == token::TOK_VARIABLE_FILES_SIZES || tok == token::TOK_VARIABLE_FILES_NAMES || tok == token::TOK_VARIABLE_FILES_TMP_CONTENT || tok == token::TOK_VARIABLE_MULTIPART_FILENAME || tok == token::TOK_VARIABLE_MULTIPART_NAME || tok == token::TOK_VARIABLE_MATCHED_VARS_NAMES || tok == token::TOK_VARIABLE_MATCHED_VARS || tok == token::TOK_VARIABLE_FILES || tok == token::TOK_VARIABLE_REQUEST_COOKIES || tok == token::TOK_VARIABLE_REQUEST_HEADERS || tok == token::TOK_VARIABLE_RESPONSE_HEADERS || tok == token::TOK_VARIABLE_GEO || tok == token::TOK_VARIABLE_REQUEST_COOKIES_NAMES || tok == token::TOK_VARIABLE_ARGS_COMBINED_SIZE || tok == token::TOK_VARIABLE_ARGS_GET_NAMES || tok == token::TOK_VARIABLE_RULE || tok == token::TOK_VARIABLE_ARGS_NAMES || tok == token::TOK_VARIABLE_ARGS_POST_NAMES || tok == token::TOK_VARIABLE_AUTH_TYPE || tok == token::TOK_VARIABLE_FILES_COMBINED_SIZE || tok == token::TOK_VARIABLE_FILES_TMP_NAMES || tok == token::TOK_VARIABLE_FULL_REQUEST || tok == token::TOK_VARIABLE_FULL_REQUEST_LENGTH || tok == token::TOK_VARIABLE_INBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_MATCHED_VAR || tok == token::TOK_VARIABLE_MATCHED_VAR_NAME || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE || tok == token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES || tok == token::TOK_VARIABLE_MULTIPART_DATA_AFTER || tok == token::TOK_VARIABLE_MULTIPART_DATA_BEFORE || tok == token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED || tok == token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_PART || tok == token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING || tok == token::TOK_VARIABLE_MULTIPART_LF_LINE || tok == token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON || tok == token::TOK_VARIABLE_MULTIPART_SEMICOLON_MISSING || tok == token::TOK_VARIABLE_MULTIPART_STRICT_ERROR || tok == token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY || tok == token::TOK_VARIABLE_OUTBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_PATH_INFO || tok == token::TOK_VARIABLE_QUERY_STRING || tok == token::TOK_VARIABLE_REMOTE_ADDR || tok == token::TOK_VARIABLE_REMOTE_HOST || tok == token::TOK_VARIABLE_REMOTE_PORT || tok == token::TOK_VARIABLE_REQBODY_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR || tok == token::TOK_VARIABLE_REQUEST_BASENAME || tok == token::TOK_VARIABLE_REQUEST_BODY_LENGTH || tok == token::TOK_VARIABLE_REQUEST_BODY || tok == token::TOK_VARIABLE_REQUEST_FILE_NAME || tok == token::TOK_VARIABLE_REQUEST_HEADERS_NAMES || tok == token::TOK_VARIABLE_REQUEST_LINE || tok == token::TOK_VARIABLE_REQUEST_METHOD || tok == token::TOK_VARIABLE_REQUEST_PROTOCOL || tok == token::TOK_VARIABLE_REQUEST_URI_RAW || tok == token::TOK_VARIABLE_REQUEST_URI || tok == token::TOK_VARIABLE_RESOURCE || tok == token::TOK_VARIABLE_RESPONSE_BODY || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE || tok == token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES || tok == token::TOK_VARIABLE_RESPONSE_PROTOCOL || tok == token::TOK_VARIABLE_RESPONSE_STATUS || tok == token::TOK_VARIABLE_SERVER_ADDR || tok == token::TOK_VARIABLE_SERVER_NAME || tok == token::TOK_VARIABLE_SERVER_PORT || tok == token::TOK_VARIABLE_SESSION_ID || tok == token::TOK_VARIABLE_UNIQUE_ID || tok == token::TOK_VARIABLE_URL_ENCODED_ERROR || tok == token::TOK_VARIABLE_USER_ID || tok == token::TOK_VARIABLE_WEB_APP_ID || tok == token::TOK_VARIABLE_STATUS || tok == token::TOK_VARIABLE_STATUS_LINE || tok == token::TOK_VARIABLE_IP || tok == token::TOK_VARIABLE_GLOBAL || tok == token::TOK_VARIABLE_TX || tok == token::TOK_VARIABLE_SESSION || tok == token::TOK_VARIABLE_USER || tok == token::TOK_RUN_TIME_VAR_ENV || tok == token::TOK_RUN_TIME_VAR_XML || tok == token::TOK_ACTION_SETVAR || tok == token::TOK_SETVAR_OPERATION_EQUALS || tok == token::TOK_SETVAR_OPERATION_EQUALS_PLUS || tok == token::TOK_SETVAR_OPERATION_EQUALS_MINUS || tok == token::TOK_NOT || tok == token::TOK_OPERATOR_BEGINS_WITH || tok == token::TOK_OPERATOR_CONTAINS || tok == token::TOK_OPERATOR_CONTAINS_WORD || tok == token::TOK_OPERATOR_DETECT_SQLI || tok == token::TOK_OPERATOR_DETECT_XSS || tok == token::TOK_OPERATOR_ENDS_WITH || tok == token::TOK_OPERATOR_EQ || tok == token::TOK_OPERATOR_FUZZY_HASH || tok == token::TOK_OPERATOR_GEOLOOKUP || tok == token::TOK_OPERATOR_GE || tok == token::TOK_OPERATOR_GSB_LOOKUP || tok == token::TOK_OPERATOR_GT || tok == token::TOK_OPERATOR_INSPECT_FILE || tok == token::TOK_OPERATOR_IP_MATCH_FROM_FILE || tok == token::TOK_OPERATOR_IP_MATCH || tok == token::TOK_OPERATOR_LE || tok == token::TOK_OPERATOR_LT || tok == token::TOK_OPERATOR_PM_FROM_FILE || tok == token::TOK_OPERATOR_PM || tok == token::TOK_OPERATOR_RBL || tok == token::TOK_OPERATOR_RSUB || tok == token::TOK_OPERATOR_RX_CONTENT_ONLY || tok == token::TOK_OPERATOR_RX || tok == token::TOK_OPERATOR_STR_EQ || tok == token::TOK_OPERATOR_STR_MATCH || tok == token::TOK_OPERATOR_UNCONDITIONAL_MATCH || tok == token::TOK_OPERATOR_VALIDATE_BYTE_RANGE || tok == token::TOK_OPERATOR_VALIDATE_DTD || tok == token::TOK_OPERATOR_VALIDATE_HASH || tok == token::TOK_OPERATOR_VALIDATE_SCHEMA || tok == token::TOK_OPERATOR_VALIDATE_URL_ENCODING || tok == token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING || tok == token::TOK_OPERATOR_VERIFY_CC || tok == token::TOK_OPERATOR_VERIFY_CPF || tok == token::TOK_OPERATOR_VERIFY_SSN || tok == token::TOK_OPERATOR_VERIFY_SVNR || tok == token::TOK_OPERATOR_WITHIN || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_FMT || tok == token::TOK_JSON || tok == token::TOK_NATIVE || tok == token::TOK_ACTION_CTL_RULE_ENGINE); } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) { - YYASSERT (tok == token::TOK_END || tok == token::TOK_COMMA || tok == token::TOK_CONFIG_CONTENT_INJECTION || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR || tok == token::TOK_PIPE || tok == token::TOK_NEW_LINE || tok == token::TOK_VAR_COUNT || tok == token::TOK_VAR_EXCLUSION || tok == token::TOK_VARIABLE_ARGS || tok == token::TOK_VARIABLE_ARGS_POST || tok == token::TOK_VARIABLE_ARGS_GET || tok == token::TOK_VARIABLE_FILES_SIZES || tok == token::TOK_VARIABLE_FILES_NAMES || tok == token::TOK_VARIABLE_FILES_TMP_CONTENT || tok == token::TOK_VARIABLE_MULTIPART_FILENAME || tok == token::TOK_VARIABLE_MULTIPART_NAME || tok == token::TOK_VARIABLE_MATCHED_VARS_NAMES || tok == token::TOK_VARIABLE_MATCHED_VARS || tok == token::TOK_VARIABLE_FILES || tok == token::TOK_VARIABLE_REQUEST_COOKIES || tok == token::TOK_VARIABLE_REQUEST_HEADERS || tok == token::TOK_VARIABLE_RESPONSE_HEADERS || tok == token::TOK_VARIABLE_GEO || tok == token::TOK_VARIABLE_REQUEST_COOKIES_NAMES || tok == token::TOK_VARIABLE_ARGS_COMBINED_SIZE || tok == token::TOK_VARIABLE_ARGS_GET_NAMES || tok == token::TOK_VARIABLE_RULE || tok == token::TOK_VARIABLE_ARGS_NAMES || tok == token::TOK_VARIABLE_ARGS_POST_NAMES || tok == token::TOK_VARIABLE_AUTH_TYPE || tok == token::TOK_VARIABLE_FILES_COMBINED_SIZE || tok == token::TOK_VARIABLE_FILES_TMP_NAMES || tok == token::TOK_VARIABLE_FULL_REQUEST || tok == token::TOK_VARIABLE_FULL_REQUEST_LENGTH || tok == token::TOK_VARIABLE_INBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_MATCHED_VAR || tok == token::TOK_VARIABLE_MATCHED_VAR_NAME || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE || tok == token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES || tok == token::TOK_VARIABLE_MULTIPART_DATA_AFTER || tok == token::TOK_VARIABLE_MULTIPART_DATA_BEFORE || tok == token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED || tok == token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_PART || tok == token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING || tok == token::TOK_VARIABLE_MULTIPART_LF_LINE || tok == token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON || tok == token::TOK_VARIABLE_MULTIPART_SEMICOLON_MISSING || tok == token::TOK_VARIABLE_MULTIPART_STRICT_ERROR || tok == token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY || tok == token::TOK_VARIABLE_OUTBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_PATH_INFO || tok == token::TOK_VARIABLE_QUERY_STRING || tok == token::TOK_VARIABLE_REMOTE_ADDR || tok == token::TOK_VARIABLE_REMOTE_HOST || tok == token::TOK_VARIABLE_REMOTE_PORT || tok == token::TOK_VARIABLE_REQBODY_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR || tok == token::TOK_VARIABLE_REQUEST_BASENAME || tok == token::TOK_VARIABLE_REQUEST_BODY_LENGTH || tok == token::TOK_VARIABLE_REQUEST_BODY || tok == token::TOK_VARIABLE_REQUEST_FILE_NAME || tok == token::TOK_VARIABLE_REQUEST_HEADERS_NAMES || tok == token::TOK_VARIABLE_REQUEST_LINE || tok == token::TOK_VARIABLE_REQUEST_METHOD || tok == token::TOK_VARIABLE_REQUEST_PROTOCOL || tok == token::TOK_VARIABLE_REQUEST_URI_RAW || tok == token::TOK_VARIABLE_REQUEST_URI || tok == token::TOK_VARIABLE_RESOURCE || tok == token::TOK_VARIABLE_RESPONSE_BODY || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE || tok == token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES || tok == token::TOK_VARIABLE_RESPONSE_PROTOCOL || tok == token::TOK_VARIABLE_RESPONSE_STATUS || tok == token::TOK_VARIABLE_SERVER_ADDR || tok == token::TOK_VARIABLE_SERVER_NAME || tok == token::TOK_VARIABLE_SERVER_PORT || tok == token::TOK_VARIABLE_SESSION_ID || tok == token::TOK_VARIABLE_UNIQUE_ID || tok == token::TOK_VARIABLE_URL_ENCODED_ERROR || tok == token::TOK_VARIABLE_USER_ID || tok == token::TOK_VARIABLE_WEB_APP_ID || tok == token::TOK_VARIABLE_STATUS || tok == token::TOK_VARIABLE_STATUS_LINE || tok == token::TOK_VARIABLE_IP || tok == token::TOK_VARIABLE_GLOBAL || tok == token::TOK_VARIABLE_TX || tok == token::TOK_VARIABLE_SESSION || tok == token::TOK_VARIABLE_USER || tok == token::TOK_RUN_TIME_VAR_ENV || tok == token::TOK_RUN_TIME_VAR_XML || tok == token::TOK_ACTION_SETVAR || tok == token::TOK_SETVAR_OPERATION_EQUALS || tok == token::TOK_SETVAR_OPERATION_EQUALS_PLUS || tok == token::TOK_SETVAR_OPERATION_EQUALS_MINUS || tok == token::TOK_NOT || tok == token::TOK_OPERATOR_BEGINS_WITH || tok == token::TOK_OPERATOR_CONTAINS || tok == token::TOK_OPERATOR_CONTAINS_WORD || tok == token::TOK_OPERATOR_DETECT_SQLI || tok == token::TOK_OPERATOR_DETECT_XSS || tok == token::TOK_OPERATOR_ENDS_WITH || tok == token::TOK_OPERATOR_EQ || tok == token::TOK_OPERATOR_FUZZY_HASH || tok == token::TOK_OPERATOR_GEOLOOKUP || tok == token::TOK_OPERATOR_GE || tok == token::TOK_OPERATOR_GSB_LOOKUP || tok == token::TOK_OPERATOR_GT || tok == token::TOK_OPERATOR_INSPECT_FILE || tok == token::TOK_OPERATOR_IP_MATCH_FROM_FILE || tok == token::TOK_OPERATOR_IP_MATCH || tok == token::TOK_OPERATOR_LE || tok == token::TOK_OPERATOR_LT || tok == token::TOK_OPERATOR_PM_FROM_FILE || tok == token::TOK_OPERATOR_PM || tok == token::TOK_OPERATOR_RBL || tok == token::TOK_OPERATOR_RSUB || tok == token::TOK_OPERATOR_RX_CONTENT_ONLY || tok == token::TOK_OPERATOR_RX || tok == token::TOK_OPERATOR_STR_EQ || tok == token::TOK_OPERATOR_STR_MATCH || tok == token::TOK_OPERATOR_UNCONDITIONAL_MATCH || tok == token::TOK_OPERATOR_VALIDATE_BYTE_RANGE || tok == token::TOK_OPERATOR_VALIDATE_DTD || tok == token::TOK_OPERATOR_VALIDATE_HASH || tok == token::TOK_OPERATOR_VALIDATE_SCHEMA || tok == token::TOK_OPERATOR_VALIDATE_URL_ENCODING || tok == token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING || tok == token::TOK_OPERATOR_VERIFY_CC || tok == token::TOK_OPERATOR_VERIFY_CPF || tok == token::TOK_OPERATOR_VERIFY_SSN || tok == token::TOK_OPERATOR_VERIFY_SVNR || tok == token::TOK_OPERATOR_WITHIN || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_FMT || tok == token::TOK_JSON || tok == token::TOK_NATIVE || tok == token::TOK_ACTION_CTL_RULE_ENGINE); + YY_ASSERT (tok == token::TOK_END || tok == token::TOK_COMMA || tok == token::TOK_CONFIG_CONTENT_INJECTION || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR || tok == token::TOK_PIPE || tok == token::TOK_NEW_LINE || tok == token::TOK_VAR_COUNT || tok == token::TOK_VAR_EXCLUSION || tok == token::TOK_VARIABLE_ARGS || tok == token::TOK_VARIABLE_ARGS_POST || tok == token::TOK_VARIABLE_ARGS_GET || tok == token::TOK_VARIABLE_FILES_SIZES || tok == token::TOK_VARIABLE_FILES_NAMES || tok == token::TOK_VARIABLE_FILES_TMP_CONTENT || tok == token::TOK_VARIABLE_MULTIPART_FILENAME || tok == token::TOK_VARIABLE_MULTIPART_NAME || tok == token::TOK_VARIABLE_MATCHED_VARS_NAMES || tok == token::TOK_VARIABLE_MATCHED_VARS || tok == token::TOK_VARIABLE_FILES || tok == token::TOK_VARIABLE_REQUEST_COOKIES || tok == token::TOK_VARIABLE_REQUEST_HEADERS || tok == token::TOK_VARIABLE_RESPONSE_HEADERS || tok == token::TOK_VARIABLE_GEO || tok == token::TOK_VARIABLE_REQUEST_COOKIES_NAMES || tok == token::TOK_VARIABLE_ARGS_COMBINED_SIZE || tok == token::TOK_VARIABLE_ARGS_GET_NAMES || tok == token::TOK_VARIABLE_RULE || tok == token::TOK_VARIABLE_ARGS_NAMES || tok == token::TOK_VARIABLE_ARGS_POST_NAMES || tok == token::TOK_VARIABLE_AUTH_TYPE || tok == token::TOK_VARIABLE_FILES_COMBINED_SIZE || tok == token::TOK_VARIABLE_FILES_TMP_NAMES || tok == token::TOK_VARIABLE_FULL_REQUEST || tok == token::TOK_VARIABLE_FULL_REQUEST_LENGTH || tok == token::TOK_VARIABLE_INBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_MATCHED_VAR || tok == token::TOK_VARIABLE_MATCHED_VAR_NAME || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED || tok == token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE || tok == token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES || tok == token::TOK_VARIABLE_MULTIPART_DATA_AFTER || tok == token::TOK_VARIABLE_MULTIPART_DATA_BEFORE || tok == token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED || tok == token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING || tok == token::TOK_VARIABLE_MULTIPART_INVALID_PART || tok == token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING || tok == token::TOK_VARIABLE_MULTIPART_LF_LINE || tok == token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON || tok == token::TOK_VARIABLE_MULTIPART_SEMICOLON_MISSING || tok == token::TOK_VARIABLE_MULTIPART_STRICT_ERROR || tok == token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY || tok == token::TOK_VARIABLE_OUTBOUND_DATA_ERROR || tok == token::TOK_VARIABLE_PATH_INFO || tok == token::TOK_VARIABLE_QUERY_STRING || tok == token::TOK_VARIABLE_REMOTE_ADDR || tok == token::TOK_VARIABLE_REMOTE_HOST || tok == token::TOK_VARIABLE_REMOTE_PORT || tok == token::TOK_VARIABLE_REQBODY_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR || tok == token::TOK_VARIABLE_REQBODY_PROCESSOR || tok == token::TOK_VARIABLE_REQUEST_BASENAME || tok == token::TOK_VARIABLE_REQUEST_BODY_LENGTH || tok == token::TOK_VARIABLE_REQUEST_BODY || tok == token::TOK_VARIABLE_REQUEST_FILE_NAME || tok == token::TOK_VARIABLE_REQUEST_HEADERS_NAMES || tok == token::TOK_VARIABLE_REQUEST_LINE || tok == token::TOK_VARIABLE_REQUEST_METHOD || tok == token::TOK_VARIABLE_REQUEST_PROTOCOL || tok == token::TOK_VARIABLE_REQUEST_URI_RAW || tok == token::TOK_VARIABLE_REQUEST_URI || tok == token::TOK_VARIABLE_RESOURCE || tok == token::TOK_VARIABLE_RESPONSE_BODY || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH || tok == token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE || tok == token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES || tok == token::TOK_VARIABLE_RESPONSE_PROTOCOL || tok == token::TOK_VARIABLE_RESPONSE_STATUS || tok == token::TOK_VARIABLE_SERVER_ADDR || tok == token::TOK_VARIABLE_SERVER_NAME || tok == token::TOK_VARIABLE_SERVER_PORT || tok == token::TOK_VARIABLE_SESSION_ID || tok == token::TOK_VARIABLE_UNIQUE_ID || tok == token::TOK_VARIABLE_URL_ENCODED_ERROR || tok == token::TOK_VARIABLE_USER_ID || tok == token::TOK_VARIABLE_WEB_APP_ID || tok == token::TOK_VARIABLE_STATUS || tok == token::TOK_VARIABLE_STATUS_LINE || tok == token::TOK_VARIABLE_IP || tok == token::TOK_VARIABLE_GLOBAL || tok == token::TOK_VARIABLE_TX || tok == token::TOK_VARIABLE_SESSION || tok == token::TOK_VARIABLE_USER || tok == token::TOK_RUN_TIME_VAR_ENV || tok == token::TOK_RUN_TIME_VAR_XML || tok == token::TOK_ACTION_SETVAR || tok == token::TOK_SETVAR_OPERATION_EQUALS || tok == token::TOK_SETVAR_OPERATION_EQUALS_PLUS || tok == token::TOK_SETVAR_OPERATION_EQUALS_MINUS || tok == token::TOK_NOT || tok == token::TOK_OPERATOR_BEGINS_WITH || tok == token::TOK_OPERATOR_CONTAINS || tok == token::TOK_OPERATOR_CONTAINS_WORD || tok == token::TOK_OPERATOR_DETECT_SQLI || tok == token::TOK_OPERATOR_DETECT_XSS || tok == token::TOK_OPERATOR_ENDS_WITH || tok == token::TOK_OPERATOR_EQ || tok == token::TOK_OPERATOR_FUZZY_HASH || tok == token::TOK_OPERATOR_GEOLOOKUP || tok == token::TOK_OPERATOR_GE || tok == token::TOK_OPERATOR_GSB_LOOKUP || tok == token::TOK_OPERATOR_GT || tok == token::TOK_OPERATOR_INSPECT_FILE || tok == token::TOK_OPERATOR_IP_MATCH_FROM_FILE || tok == token::TOK_OPERATOR_IP_MATCH || tok == token::TOK_OPERATOR_LE || tok == token::TOK_OPERATOR_LT || tok == token::TOK_OPERATOR_PM_FROM_FILE || tok == token::TOK_OPERATOR_PM || tok == token::TOK_OPERATOR_RBL || tok == token::TOK_OPERATOR_RSUB || tok == token::TOK_OPERATOR_RX_CONTENT_ONLY || tok == token::TOK_OPERATOR_RX || tok == token::TOK_OPERATOR_STR_EQ || tok == token::TOK_OPERATOR_STR_MATCH || tok == token::TOK_OPERATOR_UNCONDITIONAL_MATCH || tok == token::TOK_OPERATOR_VALIDATE_BYTE_RANGE || tok == token::TOK_OPERATOR_VALIDATE_DTD || tok == token::TOK_OPERATOR_VALIDATE_HASH || tok == token::TOK_OPERATOR_VALIDATE_SCHEMA || tok == token::TOK_OPERATOR_VALIDATE_URL_ENCODING || tok == token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING || tok == token::TOK_OPERATOR_VERIFY_CC || tok == token::TOK_OPERATOR_VERIFY_CPF || tok == token::TOK_OPERATOR_VERIFY_SSN || tok == token::TOK_OPERATOR_VERIFY_SVNR || tok == token::TOK_OPERATOR_WITHIN || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_FMT || tok == token::TOK_JSON || tok == token::TOK_NATIVE || tok == token::TOK_ACTION_CTL_RULE_ENGINE); } #endif #if 201103L <= YY_CPLUSPLUS symbol_type (int tok, std::string v, location_type l) : super_type(token_type (tok), std::move (v), std::move (l)) { - YYASSERT (tok == token::TOK_ACTION_ACCURACY || tok == token::TOK_ACTION_ALLOW || tok == token::TOK_ACTION_APPEND || tok == token::TOK_ACTION_AUDIT_LOG || tok == token::TOK_ACTION_BLOCK || tok == token::TOK_ACTION_CAPTURE || tok == token::TOK_ACTION_CHAIN || tok == token::TOK_ACTION_CTL_AUDIT_ENGINE || tok == token::TOK_ACTION_CTL_AUDIT_LOG_PARTS || tok == token::TOK_ACTION_CTL_BDY_JSON || tok == token::TOK_ACTION_CTL_BDY_XML || tok == token::TOK_ACTION_CTL_BDY_URLENCODED || tok == token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR || tok == token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_TAG || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG || tok == token::TOK_ACTION_DENY || tok == token::TOK_ACTION_DEPRECATE_VAR || tok == token::TOK_ACTION_DROP || tok == token::TOK_ACTION_EXEC || tok == token::TOK_ACTION_EXPIRE_VAR || tok == token::TOK_ACTION_ID || tok == token::TOK_ACTION_INITCOL || tok == token::TOK_ACTION_LOG || tok == token::TOK_ACTION_LOG_DATA || tok == token::TOK_ACTION_MATURITY || tok == token::TOK_ACTION_MSG || tok == token::TOK_ACTION_MULTI_MATCH || tok == token::TOK_ACTION_NO_AUDIT_LOG || tok == token::TOK_ACTION_NO_LOG || tok == token::TOK_ACTION_PASS || tok == token::TOK_ACTION_PAUSE || tok == token::TOK_ACTION_PHASE || tok == token::TOK_ACTION_PREPEND || tok == token::TOK_ACTION_PROXY || tok == token::TOK_ACTION_REDIRECT || tok == token::TOK_ACTION_REV || tok == token::TOK_ACTION_SANITISE_ARG || tok == token::TOK_ACTION_SANITISE_MATCHED || tok == token::TOK_ACTION_SANITISE_MATCHED_BYTES || tok == token::TOK_ACTION_SANITISE_REQUEST_HEADER || tok == token::TOK_ACTION_SANITISE_RESPONSE_HEADER || tok == token::TOK_ACTION_SETENV || tok == token::TOK_ACTION_SETRSC || tok == token::TOK_ACTION_SETSID || tok == token::TOK_ACTION_SETUID || tok == token::TOK_ACTION_SEVERITY || tok == token::TOK_ACTION_SKIP || tok == token::TOK_ACTION_SKIP_AFTER || tok == token::TOK_ACTION_STATUS || tok == token::TOK_ACTION_TAG || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT || tok == token::TOK_ACTION_TRANSFORMATION_CMD_LINE || tok == token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_CSS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_JS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_LENGTH || tok == token::TOK_ACTION_TRANSFORMATION_LOWERCASE || tok == token::TOK_ACTION_TRANSFORMATION_MD5 || tok == token::TOK_ACTION_TRANSFORMATION_NONE || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_SHA1 || tok == token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_TRIM || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT || tok == token::TOK_ACTION_TRANSFORMATION_UPPERCASE || tok == token::TOK_ACTION_TRANSFORMATION_URL_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI || tok == token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE || tok == token::TOK_ACTION_VER || tok == token::TOK_ACTION_XMLNS || tok == token::TOK_CONFIG_COMPONENT_SIG || tok == token::TOK_CONFIG_CONN_ENGINE || tok == token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR || tok == token::TOK_CONFIG_SEC_WEB_APP_ID || tok == token::TOK_CONFIG_SEC_SERVER_SIG || tok == token::TOK_CONFIG_DIR_AUDIT_DIR || tok == token::TOK_CONFIG_DIR_AUDIT_DIR_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_ENG || tok == token::TOK_CONFIG_DIR_AUDIT_FLE_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_LOG || tok == token::TOK_CONFIG_DIR_AUDIT_LOG2 || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_P || tok == token::TOK_CONFIG_DIR_AUDIT_STS || tok == token::TOK_CONFIG_DIR_AUDIT_TPE || tok == token::TOK_CONFIG_DIR_DEBUG_LOG || tok == token::TOK_CONFIG_DIR_DEBUG_LVL || tok == token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS || tok == token::TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS || tok == token::TOK_CONFIG_SEC_HASH_ENGINE || tok == token::TOK_CONFIG_SEC_HASH_KEY || tok == token::TOK_CONFIG_SEC_HASH_PARAM || tok == token::TOK_CONFIG_SEC_HASH_METHOD_RX || tok == token::TOK_CONFIG_SEC_HASH_METHOD_PM || tok == token::TOK_CONFIG_SEC_CHROOT_DIR || tok == token::TOK_CONFIG_DIR_GEO_DB || tok == token::TOK_CONFIG_DIR_GSB_DB || tok == token::TOK_CONFIG_SEC_GUARDIAN_LOG || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION || tok == token::TOK_CONFIG_SEC_CONN_R_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_CONN_W_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_SENSOR_ID || tok == token::TOK_CONFIG_DIR_REQ_BODY || tok == token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_SEC_RULE_INHERITANCE || tok == token::TOK_CONFIG_SEC_RULE_PERF_TIME || tok == token::TOK_CONFIG_DIR_RULE_ENG || tok == token::TOK_CONFIG_DIR_SEC_ACTION || tok == token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION || tok == token::TOK_CONFIG_DIR_SEC_MARKER || tok == token::TOK_CONFIG_DIR_UNICODE_MAP_FILE || tok == token::TOK_CONFIG_DIR_UNICODE_CODE_PAGE || tok == token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT || tok == token::TOK_CONFIG_SEC_HTTP_BLKEY || tok == token::TOK_CONFIG_SEC_INTERCEPT_ON_ERROR || tok == token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID || tok == token::TOK_CONFIG_UPDLOAD_KEEP_FILES || tok == token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES || tok == token::TOK_CONFIG_UPLOAD_DIR || tok == token::TOK_CONFIG_UPLOAD_FILE_LIMIT || tok == token::TOK_CONFIG_UPLOAD_FILE_MODE || tok == token::TOK_CONFIG_VALUE_ABORT || tok == token::TOK_CONFIG_VALUE_DETC || tok == token::TOK_CONFIG_VALUE_HTTPS || tok == token::TOK_CONFIG_VALUE_OFF || tok == token::TOK_CONFIG_VALUE_ON || tok == token::TOK_CONFIG_VALUE_PARALLEL || tok == token::TOK_CONFIG_VALUE_PROCESS_PARTIAL || tok == token::TOK_CONFIG_VALUE_REJECT || tok == token::TOK_CONFIG_VALUE_RELEVANT_ONLY || tok == token::TOK_CONFIG_VALUE_SERIAL || tok == token::TOK_CONFIG_VALUE_WARN || tok == token::TOK_CONFIG_XML_EXTERNAL_ENTITY || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP || tok == token::TOK_CONGIG_DIR_SEC_ARG_SEP || tok == token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT || tok == token::TOK_CONFIG_SEC_COOKIEV0_SEPARATOR || tok == token::TOK_CONGIG_DIR_SEC_DATA_DIR || tok == token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE || tok == token::TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION || tok == token::TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION || tok == token::TOK_CONGIG_DIR_SEC_TMP_DIR || tok == token::TOK_DIRECTIVE || tok == token::TOK_DIRECTIVE_SECRULESCRIPT || tok == token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION || tok == token::TOK_QUOTATION_MARK || tok == token::TOK_RUN_TIME_VAR_BLD || tok == token::TOK_RUN_TIME_VAR_DUR || tok == token::TOK_RUN_TIME_VAR_HSV || tok == token::TOK_RUN_TIME_VAR_REMOTE_USER || tok == token::TOK_RUN_TIME_VAR_TIME || tok == token::TOK_RUN_TIME_VAR_TIME_DAY || tok == token::TOK_RUN_TIME_VAR_TIME_EPOCH || tok == token::TOK_RUN_TIME_VAR_TIME_HOUR || tok == token::TOK_RUN_TIME_VAR_TIME_MIN || tok == token::TOK_RUN_TIME_VAR_TIME_MON || tok == token::TOK_RUN_TIME_VAR_TIME_SEC || tok == token::TOK_RUN_TIME_VAR_TIME_WDAY || tok == token::TOK_RUN_TIME_VAR_TIME_YEAR || tok == token::TOK_VARIABLE || tok == token::TOK_DICT_ELEMENT || tok == token::TOK_DICT_ELEMENT_REGEXP); + YY_ASSERT (tok == token::TOK_ACTION_ACCURACY || tok == token::TOK_ACTION_ALLOW || tok == token::TOK_ACTION_APPEND || tok == token::TOK_ACTION_AUDIT_LOG || tok == token::TOK_ACTION_BLOCK || tok == token::TOK_ACTION_CAPTURE || tok == token::TOK_ACTION_CHAIN || tok == token::TOK_ACTION_CTL_AUDIT_ENGINE || tok == token::TOK_ACTION_CTL_AUDIT_LOG_PARTS || tok == token::TOK_ACTION_CTL_BDY_JSON || tok == token::TOK_ACTION_CTL_BDY_XML || tok == token::TOK_ACTION_CTL_BDY_URLENCODED || tok == token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR || tok == token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_TAG || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG || tok == token::TOK_ACTION_DENY || tok == token::TOK_ACTION_DEPRECATE_VAR || tok == token::TOK_ACTION_DROP || tok == token::TOK_ACTION_EXEC || tok == token::TOK_ACTION_EXPIRE_VAR || tok == token::TOK_ACTION_ID || tok == token::TOK_ACTION_INITCOL || tok == token::TOK_ACTION_LOG || tok == token::TOK_ACTION_LOG_DATA || tok == token::TOK_ACTION_MATURITY || tok == token::TOK_ACTION_MSG || tok == token::TOK_ACTION_MULTI_MATCH || tok == token::TOK_ACTION_NO_AUDIT_LOG || tok == token::TOK_ACTION_NO_LOG || tok == token::TOK_ACTION_PASS || tok == token::TOK_ACTION_PAUSE || tok == token::TOK_ACTION_PHASE || tok == token::TOK_ACTION_PREPEND || tok == token::TOK_ACTION_PROXY || tok == token::TOK_ACTION_REDIRECT || tok == token::TOK_ACTION_REV || tok == token::TOK_ACTION_SANITISE_ARG || tok == token::TOK_ACTION_SANITISE_MATCHED || tok == token::TOK_ACTION_SANITISE_MATCHED_BYTES || tok == token::TOK_ACTION_SANITISE_REQUEST_HEADER || tok == token::TOK_ACTION_SANITISE_RESPONSE_HEADER || tok == token::TOK_ACTION_SETENV || tok == token::TOK_ACTION_SETRSC || tok == token::TOK_ACTION_SETSID || tok == token::TOK_ACTION_SETUID || tok == token::TOK_ACTION_SEVERITY || tok == token::TOK_ACTION_SKIP || tok == token::TOK_ACTION_SKIP_AFTER || tok == token::TOK_ACTION_STATUS || tok == token::TOK_ACTION_TAG || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT || tok == token::TOK_ACTION_TRANSFORMATION_CMD_LINE || tok == token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_CSS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_JS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_LENGTH || tok == token::TOK_ACTION_TRANSFORMATION_LOWERCASE || tok == token::TOK_ACTION_TRANSFORMATION_MD5 || tok == token::TOK_ACTION_TRANSFORMATION_NONE || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_SHA1 || tok == token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_TRIM || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT || tok == token::TOK_ACTION_TRANSFORMATION_UPPERCASE || tok == token::TOK_ACTION_TRANSFORMATION_URL_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI || tok == token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE || tok == token::TOK_ACTION_VER || tok == token::TOK_ACTION_XMLNS || tok == token::TOK_CONFIG_COMPONENT_SIG || tok == token::TOK_CONFIG_CONN_ENGINE || tok == token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR || tok == token::TOK_CONFIG_SEC_WEB_APP_ID || tok == token::TOK_CONFIG_SEC_SERVER_SIG || tok == token::TOK_CONFIG_DIR_AUDIT_DIR || tok == token::TOK_CONFIG_DIR_AUDIT_DIR_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_ENG || tok == token::TOK_CONFIG_DIR_AUDIT_FLE_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_LOG || tok == token::TOK_CONFIG_DIR_AUDIT_LOG2 || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_P || tok == token::TOK_CONFIG_DIR_AUDIT_STS || tok == token::TOK_CONFIG_DIR_AUDIT_TPE || tok == token::TOK_CONFIG_DIR_DEBUG_LOG || tok == token::TOK_CONFIG_DIR_DEBUG_LVL || tok == token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS || tok == token::TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS || tok == token::TOK_CONFIG_SEC_HASH_ENGINE || tok == token::TOK_CONFIG_SEC_HASH_KEY || tok == token::TOK_CONFIG_SEC_HASH_PARAM || tok == token::TOK_CONFIG_SEC_HASH_METHOD_RX || tok == token::TOK_CONFIG_SEC_HASH_METHOD_PM || tok == token::TOK_CONFIG_SEC_CHROOT_DIR || tok == token::TOK_CONFIG_DIR_GEO_DB || tok == token::TOK_CONFIG_DIR_GSB_DB || tok == token::TOK_CONFIG_SEC_GUARDIAN_LOG || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION || tok == token::TOK_CONFIG_SEC_CONN_R_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_CONN_W_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_SENSOR_ID || tok == token::TOK_CONFIG_DIR_REQ_BODY || tok == token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_SEC_RULE_INHERITANCE || tok == token::TOK_CONFIG_SEC_RULE_PERF_TIME || tok == token::TOK_CONFIG_DIR_RULE_ENG || tok == token::TOK_CONFIG_DIR_SEC_ACTION || tok == token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION || tok == token::TOK_CONFIG_DIR_SEC_MARKER || tok == token::TOK_CONFIG_DIR_UNICODE_MAP_FILE || tok == token::TOK_CONFIG_DIR_UNICODE_CODE_PAGE || tok == token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT || tok == token::TOK_CONFIG_SEC_HTTP_BLKEY || tok == token::TOK_CONFIG_SEC_INTERCEPT_ON_ERROR || tok == token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID || tok == token::TOK_CONFIG_UPDLOAD_KEEP_FILES || tok == token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES || tok == token::TOK_CONFIG_UPLOAD_DIR || tok == token::TOK_CONFIG_UPLOAD_FILE_LIMIT || tok == token::TOK_CONFIG_UPLOAD_FILE_MODE || tok == token::TOK_CONFIG_VALUE_ABORT || tok == token::TOK_CONFIG_VALUE_DETC || tok == token::TOK_CONFIG_VALUE_HTTPS || tok == token::TOK_CONFIG_VALUE_OFF || tok == token::TOK_CONFIG_VALUE_ON || tok == token::TOK_CONFIG_VALUE_PARALLEL || tok == token::TOK_CONFIG_VALUE_PROCESS_PARTIAL || tok == token::TOK_CONFIG_VALUE_REJECT || tok == token::TOK_CONFIG_VALUE_RELEVANT_ONLY || tok == token::TOK_CONFIG_VALUE_SERIAL || tok == token::TOK_CONFIG_VALUE_WARN || tok == token::TOK_CONFIG_XML_EXTERNAL_ENTITY || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP || tok == token::TOK_CONGIG_DIR_SEC_ARG_SEP || tok == token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT || tok == token::TOK_CONFIG_SEC_COOKIEV0_SEPARATOR || tok == token::TOK_CONGIG_DIR_SEC_DATA_DIR || tok == token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE || tok == token::TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION || tok == token::TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION || tok == token::TOK_CONGIG_DIR_SEC_TMP_DIR || tok == token::TOK_DIRECTIVE || tok == token::TOK_DIRECTIVE_SECRULESCRIPT || tok == token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION || tok == token::TOK_QUOTATION_MARK || tok == token::TOK_RUN_TIME_VAR_BLD || tok == token::TOK_RUN_TIME_VAR_DUR || tok == token::TOK_RUN_TIME_VAR_HSV || tok == token::TOK_RUN_TIME_VAR_REMOTE_USER || tok == token::TOK_RUN_TIME_VAR_TIME || tok == token::TOK_RUN_TIME_VAR_TIME_DAY || tok == token::TOK_RUN_TIME_VAR_TIME_EPOCH || tok == token::TOK_RUN_TIME_VAR_TIME_HOUR || tok == token::TOK_RUN_TIME_VAR_TIME_MIN || tok == token::TOK_RUN_TIME_VAR_TIME_MON || tok == token::TOK_RUN_TIME_VAR_TIME_SEC || tok == token::TOK_RUN_TIME_VAR_TIME_WDAY || tok == token::TOK_RUN_TIME_VAR_TIME_YEAR || tok == token::TOK_VARIABLE || tok == token::TOK_DICT_ELEMENT || tok == token::TOK_DICT_ELEMENT_REGEXP); } #else symbol_type (int tok, const std::string& v, const location_type& l) : super_type(token_type (tok), v, l) { - YYASSERT (tok == token::TOK_ACTION_ACCURACY || tok == token::TOK_ACTION_ALLOW || tok == token::TOK_ACTION_APPEND || tok == token::TOK_ACTION_AUDIT_LOG || tok == token::TOK_ACTION_BLOCK || tok == token::TOK_ACTION_CAPTURE || tok == token::TOK_ACTION_CHAIN || tok == token::TOK_ACTION_CTL_AUDIT_ENGINE || tok == token::TOK_ACTION_CTL_AUDIT_LOG_PARTS || tok == token::TOK_ACTION_CTL_BDY_JSON || tok == token::TOK_ACTION_CTL_BDY_XML || tok == token::TOK_ACTION_CTL_BDY_URLENCODED || tok == token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR || tok == token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_TAG || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG || tok == token::TOK_ACTION_DENY || tok == token::TOK_ACTION_DEPRECATE_VAR || tok == token::TOK_ACTION_DROP || tok == token::TOK_ACTION_EXEC || tok == token::TOK_ACTION_EXPIRE_VAR || tok == token::TOK_ACTION_ID || tok == token::TOK_ACTION_INITCOL || tok == token::TOK_ACTION_LOG || tok == token::TOK_ACTION_LOG_DATA || tok == token::TOK_ACTION_MATURITY || tok == token::TOK_ACTION_MSG || tok == token::TOK_ACTION_MULTI_MATCH || tok == token::TOK_ACTION_NO_AUDIT_LOG || tok == token::TOK_ACTION_NO_LOG || tok == token::TOK_ACTION_PASS || tok == token::TOK_ACTION_PAUSE || tok == token::TOK_ACTION_PHASE || tok == token::TOK_ACTION_PREPEND || tok == token::TOK_ACTION_PROXY || tok == token::TOK_ACTION_REDIRECT || tok == token::TOK_ACTION_REV || tok == token::TOK_ACTION_SANITISE_ARG || tok == token::TOK_ACTION_SANITISE_MATCHED || tok == token::TOK_ACTION_SANITISE_MATCHED_BYTES || tok == token::TOK_ACTION_SANITISE_REQUEST_HEADER || tok == token::TOK_ACTION_SANITISE_RESPONSE_HEADER || tok == token::TOK_ACTION_SETENV || tok == token::TOK_ACTION_SETRSC || tok == token::TOK_ACTION_SETSID || tok == token::TOK_ACTION_SETUID || tok == token::TOK_ACTION_SEVERITY || tok == token::TOK_ACTION_SKIP || tok == token::TOK_ACTION_SKIP_AFTER || tok == token::TOK_ACTION_STATUS || tok == token::TOK_ACTION_TAG || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT || tok == token::TOK_ACTION_TRANSFORMATION_CMD_LINE || tok == token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_CSS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_JS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_LENGTH || tok == token::TOK_ACTION_TRANSFORMATION_LOWERCASE || tok == token::TOK_ACTION_TRANSFORMATION_MD5 || tok == token::TOK_ACTION_TRANSFORMATION_NONE || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_SHA1 || tok == token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_TRIM || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT || tok == token::TOK_ACTION_TRANSFORMATION_UPPERCASE || tok == token::TOK_ACTION_TRANSFORMATION_URL_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI || tok == token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE || tok == token::TOK_ACTION_VER || tok == token::TOK_ACTION_XMLNS || tok == token::TOK_CONFIG_COMPONENT_SIG || tok == token::TOK_CONFIG_CONN_ENGINE || tok == token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR || tok == token::TOK_CONFIG_SEC_WEB_APP_ID || tok == token::TOK_CONFIG_SEC_SERVER_SIG || tok == token::TOK_CONFIG_DIR_AUDIT_DIR || tok == token::TOK_CONFIG_DIR_AUDIT_DIR_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_ENG || tok == token::TOK_CONFIG_DIR_AUDIT_FLE_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_LOG || tok == token::TOK_CONFIG_DIR_AUDIT_LOG2 || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_P || tok == token::TOK_CONFIG_DIR_AUDIT_STS || tok == token::TOK_CONFIG_DIR_AUDIT_TPE || tok == token::TOK_CONFIG_DIR_DEBUG_LOG || tok == token::TOK_CONFIG_DIR_DEBUG_LVL || tok == token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS || tok == token::TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS || tok == token::TOK_CONFIG_SEC_HASH_ENGINE || tok == token::TOK_CONFIG_SEC_HASH_KEY || tok == token::TOK_CONFIG_SEC_HASH_PARAM || tok == token::TOK_CONFIG_SEC_HASH_METHOD_RX || tok == token::TOK_CONFIG_SEC_HASH_METHOD_PM || tok == token::TOK_CONFIG_SEC_CHROOT_DIR || tok == token::TOK_CONFIG_DIR_GEO_DB || tok == token::TOK_CONFIG_DIR_GSB_DB || tok == token::TOK_CONFIG_SEC_GUARDIAN_LOG || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION || tok == token::TOK_CONFIG_SEC_CONN_R_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_CONN_W_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_SENSOR_ID || tok == token::TOK_CONFIG_DIR_REQ_BODY || tok == token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_SEC_RULE_INHERITANCE || tok == token::TOK_CONFIG_SEC_RULE_PERF_TIME || tok == token::TOK_CONFIG_DIR_RULE_ENG || tok == token::TOK_CONFIG_DIR_SEC_ACTION || tok == token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION || tok == token::TOK_CONFIG_DIR_SEC_MARKER || tok == token::TOK_CONFIG_DIR_UNICODE_MAP_FILE || tok == token::TOK_CONFIG_DIR_UNICODE_CODE_PAGE || tok == token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT || tok == token::TOK_CONFIG_SEC_HTTP_BLKEY || tok == token::TOK_CONFIG_SEC_INTERCEPT_ON_ERROR || tok == token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID || tok == token::TOK_CONFIG_UPDLOAD_KEEP_FILES || tok == token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES || tok == token::TOK_CONFIG_UPLOAD_DIR || tok == token::TOK_CONFIG_UPLOAD_FILE_LIMIT || tok == token::TOK_CONFIG_UPLOAD_FILE_MODE || tok == token::TOK_CONFIG_VALUE_ABORT || tok == token::TOK_CONFIG_VALUE_DETC || tok == token::TOK_CONFIG_VALUE_HTTPS || tok == token::TOK_CONFIG_VALUE_OFF || tok == token::TOK_CONFIG_VALUE_ON || tok == token::TOK_CONFIG_VALUE_PARALLEL || tok == token::TOK_CONFIG_VALUE_PROCESS_PARTIAL || tok == token::TOK_CONFIG_VALUE_REJECT || tok == token::TOK_CONFIG_VALUE_RELEVANT_ONLY || tok == token::TOK_CONFIG_VALUE_SERIAL || tok == token::TOK_CONFIG_VALUE_WARN || tok == token::TOK_CONFIG_XML_EXTERNAL_ENTITY || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP || tok == token::TOK_CONGIG_DIR_SEC_ARG_SEP || tok == token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT || tok == token::TOK_CONFIG_SEC_COOKIEV0_SEPARATOR || tok == token::TOK_CONGIG_DIR_SEC_DATA_DIR || tok == token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE || tok == token::TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION || tok == token::TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION || tok == token::TOK_CONGIG_DIR_SEC_TMP_DIR || tok == token::TOK_DIRECTIVE || tok == token::TOK_DIRECTIVE_SECRULESCRIPT || tok == token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION || tok == token::TOK_QUOTATION_MARK || tok == token::TOK_RUN_TIME_VAR_BLD || tok == token::TOK_RUN_TIME_VAR_DUR || tok == token::TOK_RUN_TIME_VAR_HSV || tok == token::TOK_RUN_TIME_VAR_REMOTE_USER || tok == token::TOK_RUN_TIME_VAR_TIME || tok == token::TOK_RUN_TIME_VAR_TIME_DAY || tok == token::TOK_RUN_TIME_VAR_TIME_EPOCH || tok == token::TOK_RUN_TIME_VAR_TIME_HOUR || tok == token::TOK_RUN_TIME_VAR_TIME_MIN || tok == token::TOK_RUN_TIME_VAR_TIME_MON || tok == token::TOK_RUN_TIME_VAR_TIME_SEC || tok == token::TOK_RUN_TIME_VAR_TIME_WDAY || tok == token::TOK_RUN_TIME_VAR_TIME_YEAR || tok == token::TOK_VARIABLE || tok == token::TOK_DICT_ELEMENT || tok == token::TOK_DICT_ELEMENT_REGEXP); + YY_ASSERT (tok == token::TOK_ACTION_ACCURACY || tok == token::TOK_ACTION_ALLOW || tok == token::TOK_ACTION_APPEND || tok == token::TOK_ACTION_AUDIT_LOG || tok == token::TOK_ACTION_BLOCK || tok == token::TOK_ACTION_CAPTURE || tok == token::TOK_ACTION_CHAIN || tok == token::TOK_ACTION_CTL_AUDIT_ENGINE || tok == token::TOK_ACTION_CTL_AUDIT_LOG_PARTS || tok == token::TOK_ACTION_CTL_BDY_JSON || tok == token::TOK_ACTION_CTL_BDY_XML || tok == token::TOK_ACTION_CTL_BDY_URLENCODED || tok == token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR || tok == token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_BY_TAG || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID || tok == token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG || tok == token::TOK_ACTION_DENY || tok == token::TOK_ACTION_DEPRECATE_VAR || tok == token::TOK_ACTION_DROP || tok == token::TOK_ACTION_EXEC || tok == token::TOK_ACTION_EXPIRE_VAR || tok == token::TOK_ACTION_ID || tok == token::TOK_ACTION_INITCOL || tok == token::TOK_ACTION_LOG || tok == token::TOK_ACTION_LOG_DATA || tok == token::TOK_ACTION_MATURITY || tok == token::TOK_ACTION_MSG || tok == token::TOK_ACTION_MULTI_MATCH || tok == token::TOK_ACTION_NO_AUDIT_LOG || tok == token::TOK_ACTION_NO_LOG || tok == token::TOK_ACTION_PASS || tok == token::TOK_ACTION_PAUSE || tok == token::TOK_ACTION_PHASE || tok == token::TOK_ACTION_PREPEND || tok == token::TOK_ACTION_PROXY || tok == token::TOK_ACTION_REDIRECT || tok == token::TOK_ACTION_REV || tok == token::TOK_ACTION_SANITISE_ARG || tok == token::TOK_ACTION_SANITISE_MATCHED || tok == token::TOK_ACTION_SANITISE_MATCHED_BYTES || tok == token::TOK_ACTION_SANITISE_REQUEST_HEADER || tok == token::TOK_ACTION_SANITISE_RESPONSE_HEADER || tok == token::TOK_ACTION_SETENV || tok == token::TOK_ACTION_SETRSC || tok == token::TOK_ACTION_SETSID || tok == token::TOK_ACTION_SETUID || tok == token::TOK_ACTION_SEVERITY || tok == token::TOK_ACTION_SKIP || tok == token::TOK_ACTION_SKIP_AFTER || tok == token::TOK_ACTION_STATUS || tok == token::TOK_ACTION_TAG || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT || tok == token::TOK_ACTION_TRANSFORMATION_CMD_LINE || tok == token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_CSS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_JS_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_LENGTH || tok == token::TOK_ACTION_TRANSFORMATION_LOWERCASE || tok == token::TOK_ACTION_TRANSFORMATION_MD5 || tok == token::TOK_ACTION_TRANSFORMATION_NONE || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH || tok == token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS || tok == token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS || tok == token::TOK_ACTION_TRANSFORMATION_SHA1 || tok == token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_TRIM || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT || tok == token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT || tok == token::TOK_ACTION_TRANSFORMATION_UPPERCASE || tok == token::TOK_ACTION_TRANSFORMATION_URL_ENCODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE || tok == token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI || tok == token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE || tok == token::TOK_ACTION_VER || tok == token::TOK_ACTION_XMLNS || tok == token::TOK_CONFIG_COMPONENT_SIG || tok == token::TOK_CONFIG_CONN_ENGINE || tok == token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR || tok == token::TOK_CONFIG_SEC_WEB_APP_ID || tok == token::TOK_CONFIG_SEC_SERVER_SIG || tok == token::TOK_CONFIG_DIR_AUDIT_DIR || tok == token::TOK_CONFIG_DIR_AUDIT_DIR_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_ENG || tok == token::TOK_CONFIG_DIR_AUDIT_FLE_MOD || tok == token::TOK_CONFIG_DIR_AUDIT_LOG || tok == token::TOK_CONFIG_DIR_AUDIT_LOG2 || tok == token::TOK_CONFIG_DIR_AUDIT_LOG_P || tok == token::TOK_CONFIG_DIR_AUDIT_STS || tok == token::TOK_CONFIG_DIR_AUDIT_TPE || tok == token::TOK_CONFIG_DIR_DEBUG_LOG || tok == token::TOK_CONFIG_DIR_DEBUG_LVL || tok == token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS || tok == token::TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS || tok == token::TOK_CONFIG_SEC_HASH_ENGINE || tok == token::TOK_CONFIG_SEC_HASH_KEY || tok == token::TOK_CONFIG_SEC_HASH_PARAM || tok == token::TOK_CONFIG_SEC_HASH_METHOD_RX || tok == token::TOK_CONFIG_SEC_HASH_METHOD_PM || tok == token::TOK_CONFIG_SEC_CHROOT_DIR || tok == token::TOK_CONFIG_DIR_GEO_DB || tok == token::TOK_CONFIG_DIR_GSB_DB || tok == token::TOK_CONFIG_SEC_GUARDIAN_LOG || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT || tok == token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION || tok == token::TOK_CONFIG_SEC_CONN_R_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_CONN_W_STATE_LIMIT || tok == token::TOK_CONFIG_SEC_SENSOR_ID || tok == token::TOK_CONFIG_DIR_REQ_BODY || tok == token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT || tok == token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION || tok == token::TOK_CONFIG_SEC_RULE_INHERITANCE || tok == token::TOK_CONFIG_SEC_RULE_PERF_TIME || tok == token::TOK_CONFIG_DIR_RULE_ENG || tok == token::TOK_CONFIG_DIR_SEC_ACTION || tok == token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION || tok == token::TOK_CONFIG_DIR_SEC_MARKER || tok == token::TOK_CONFIG_DIR_UNICODE_MAP_FILE || tok == token::TOK_CONFIG_DIR_UNICODE_CODE_PAGE || tok == token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT || tok == token::TOK_CONFIG_SEC_HTTP_BLKEY || tok == token::TOK_CONFIG_SEC_INTERCEPT_ON_ERROR || tok == token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID || tok == token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID || tok == token::TOK_CONFIG_UPDLOAD_KEEP_FILES || tok == token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES || tok == token::TOK_CONFIG_UPLOAD_DIR || tok == token::TOK_CONFIG_UPLOAD_FILE_LIMIT || tok == token::TOK_CONFIG_UPLOAD_FILE_MODE || tok == token::TOK_CONFIG_VALUE_ABORT || tok == token::TOK_CONFIG_VALUE_DETC || tok == token::TOK_CONFIG_VALUE_HTTPS || tok == token::TOK_CONFIG_VALUE_OFF || tok == token::TOK_CONFIG_VALUE_ON || tok == token::TOK_CONFIG_VALUE_PARALLEL || tok == token::TOK_CONFIG_VALUE_PROCESS_PARTIAL || tok == token::TOK_CONFIG_VALUE_REJECT || tok == token::TOK_CONFIG_VALUE_RELEVANT_ONLY || tok == token::TOK_CONFIG_VALUE_SERIAL || tok == token::TOK_CONFIG_VALUE_WARN || tok == token::TOK_CONFIG_XML_EXTERNAL_ENTITY || tok == token::TOK_CONGIG_DIR_RESPONSE_BODY_MP || tok == token::TOK_CONGIG_DIR_SEC_ARG_SEP || tok == token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT || tok == token::TOK_CONFIG_SEC_COOKIEV0_SEPARATOR || tok == token::TOK_CONGIG_DIR_SEC_DATA_DIR || tok == token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE || tok == token::TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION || tok == token::TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION || tok == token::TOK_CONGIG_DIR_SEC_TMP_DIR || tok == token::TOK_DIRECTIVE || tok == token::TOK_DIRECTIVE_SECRULESCRIPT || tok == token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION || tok == token::TOK_QUOTATION_MARK || tok == token::TOK_RUN_TIME_VAR_BLD || tok == token::TOK_RUN_TIME_VAR_DUR || tok == token::TOK_RUN_TIME_VAR_HSV || tok == token::TOK_RUN_TIME_VAR_REMOTE_USER || tok == token::TOK_RUN_TIME_VAR_TIME || tok == token::TOK_RUN_TIME_VAR_TIME_DAY || tok == token::TOK_RUN_TIME_VAR_TIME_EPOCH || tok == token::TOK_RUN_TIME_VAR_TIME_HOUR || tok == token::TOK_RUN_TIME_VAR_TIME_MIN || tok == token::TOK_RUN_TIME_VAR_TIME_MON || tok == token::TOK_RUN_TIME_VAR_TIME_SEC || tok == token::TOK_RUN_TIME_VAR_TIME_WDAY || tok == token::TOK_RUN_TIME_VAR_TIME_YEAR || tok == token::TOK_VARIABLE || tok == token::TOK_DICT_ELEMENT || tok == token::TOK_DICT_ELEMENT_REGEXP); } #endif }; @@ -6898,8 +6914,8 @@ switch (yytype) seclang_parser (const seclang_parser&); seclang_parser& operator= (const seclang_parser&); - /// State numbers. - typedef int state_type; + /// Stored state numbers (used for stacks). + typedef short state_type; /// Generate an error message. /// \param yystate the state where the error occurred. @@ -6910,7 +6926,7 @@ switch (yytype) /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack - state_type yy_lr_goto_state_ (state_type yystate, int yysym); + static state_type yy_lr_goto_state_ (state_type yystate, int yysym); /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check @@ -6924,40 +6940,42 @@ switch (yytype) static const signed char yytable_ninf_; /// Convert a scanner token number \a t to a symbol number. - static token_number_type yytranslate_ (token_type t); + /// In theory \a t should be a token_type, but character literals + /// are valid, yet not members of the token_type enum. + static token_number_type yytranslate_ (int t); // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short yypact_[]; - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const unsigned short yydefact_[]; + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const short yydefact_[]; - // YYPGOTO[NTERM-NUM]. - static const short yypgoto_[]; + // YYPGOTO[NTERM-NUM]. + static const short yypgoto_[]; - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; + // YYDEFGOTO[NTERM-NUM]. + static const short yydefgoto_[]; - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const unsigned short yytable_[]; + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const short yytable_[]; - static const short yycheck_[]; + static const short yycheck_[]; - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const unsigned short yystos_[]; + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const short yystos_[]; - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const unsigned short yyr1_[]; + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const short yyr1_[]; - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const unsigned char yyr2_[]; + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const signed char yyr2_[]; /// Convert the symbol name \a n to a form suitable for a diagnostic. @@ -6967,8 +6985,8 @@ switch (yytype) /// For a symbol, its name in clear. static const char* const yytname_[]; #if YYDEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const unsigned short yyrline_[]; + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const short yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. @@ -7020,7 +7038,8 @@ switch (yytype) symbol_number_type type_get () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + /// We use the initial state, as it does not have a value. + enum { empty_state = 0 }; /// The state. /// \a empty when empty. @@ -7042,6 +7061,10 @@ switch (yytype) /// Assignment, needed by push_back by some old implementations. /// Moves the contents of that. stack_symbol_type& operator= (stack_symbol_type& that); + + /// Assignment, needed by push_back by other implementations. + /// Needed by some other old implementations. + stack_symbol_type& operator= (const stack_symbol_type& that); #endif }; @@ -7054,6 +7077,7 @@ switch (yytype) typedef typename S::reverse_iterator iterator; typedef typename S::const_reverse_iterator const_iterator; typedef typename S::size_type size_type; + typedef typename std::ptrdiff_t index_type; stack (size_type n = 200) : seq_ (n) @@ -7062,37 +7086,19 @@ switch (yytype) /// Random access. /// /// Index 0 returns the topmost element. - T& - operator[] (size_type i) + const T& + operator[] (index_type i) const { - return seq_[size () - 1 - i]; + return seq_[size_type (size () - 1 - i)]; } /// Random access. /// /// Index 0 returns the topmost element. T& - operator[] (int i) + operator[] (index_type i) { - return operator[] (size_type (i)); - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (size_type i) const - { - return seq_[size () - 1 - i]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (int i) const - { - return operator[] (size_type (i)); + return seq_[size_type (size () - 1 - i)]; } /// Steal the contents of \a t. @@ -7107,7 +7113,7 @@ switch (yytype) /// Pop elements from the stack. void - pop (int n = 1) YY_NOEXCEPT + pop (std::ptrdiff_t n = 1) YY_NOEXCEPT { for (; 0 < n; --n) seq_.pop_back (); @@ -7121,10 +7127,16 @@ switch (yytype) } /// Number of elements on the stack. - size_type + index_type size () const YY_NOEXCEPT { - return seq_.size (); + return index_type (seq_.size ()); + } + + std::ptrdiff_t + ssize () const YY_NOEXCEPT + { + return std::ptrdiff_t (size ()); } /// Iterator on top of the stack (going downwards). @@ -7145,20 +7157,20 @@ switch (yytype) class slice { public: - slice (const stack& stack, int range) + slice (const stack& stack, index_type range) : stack_ (stack) , range_ (range) {} const T& - operator[] (int i) const + operator[] (index_type i) const { return stack_[range_ - i]; } private: const stack& stack_; - int range_; + index_type range_; }; private: @@ -7193,6 +7205,10 @@ switch (yytype) /// Pop \a n symbols from the stack. void yypop_ (int n = 1); + /// Some specific tokens. + static const token_number_type yy_error_token_ = 1; + static const token_number_type yy_undef_token_ = 2; + /// Constants. enum { @@ -7200,8 +7216,6 @@ switch (yytype) yylast_ = 3304, ///< Last index in yytable_. yynnts_ = 16, ///< Number of nonterminal symbols. yyfinal_ = 336, ///< Termination state number. - yyterror_ = 1, - yyerrcode_ = 256, yyntokens_ = 341 ///< Number of tokens. }; @@ -7212,7 +7226,7 @@ switch (yytype) inline seclang_parser::token_number_type - seclang_parser::yytranslate_ (token_type t) + seclang_parser::yytranslate_ (int t) { // YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to // TOKEN-NUM as returned by yylex. @@ -7281,15 +7295,14 @@ switch (yytype) 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340 }; - const unsigned user_token_number_max_ = 595; - const token_number_type undef_token_ = 2; + const int user_token_number_max_ = 595; - if (static_cast (t) <= yyeof_) + if (t <= 0) return yyeof_; - else if (static_cast (t) <= user_token_number_max_) + else if (t <= user_token_number_max_) return translate_table[t]; else - return undef_token_; + return yy_undef_token_; } // basic_symbol. @@ -8077,58 +8090,9 @@ switch (yytype) return type; } - inline - seclang_parser::token_type - seclang_parser::by_type::token () const YY_NOEXCEPT - { - // YYTOKNUM[NUM] -- (External) token number corresponding to the - // (internal) symbol number NUM (which must be that of a token). */ - static - const unsigned short - yytoken_number_[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, - 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, - 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, - 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, - 595 - }; - return token_type (yytoken_number_[type]); - } - - } // yy -#line 8132 "seclang-parser.hh" // lalr1.cc:401 +#line 8095 "seclang-parser.hh" + diff --git a/src/parser/stack.hh b/src/parser/stack.hh index e9db4292..c15d84c7 100644 --- a/src/parser/stack.hh +++ b/src/parser/stack.hh @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.3.2. +// A Bison parser, made by GNU Bison 3.5.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. // // To get rid of this file: -// 1. add 'require "3.2"' (or newer) to your grammar file +// 1. add '%require "3.2"' (or newer) to your grammar file // 2. remove references to this file from your build system.