diff --git a/CHANGES b/CHANGES index 3732af75..a09935ac 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ v3.0.4 - YYYY-MMM-DD (to be released) ------------------------------------- + - Adds initially support to the drop action. + [@zimmerle] - Complete merging of particular rule properties [Issue #1978 - @defanator] - Replaces AC_CHECK_FILE with 'test -f' diff --git a/src/Makefile.am b/src/Makefile.am index a2ba020d..b6d23b01 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -121,6 +121,7 @@ ACTIONS = \ actions/ctl/request_body_access.cc\ actions/disruptive/allow.cc \ actions/disruptive/deny.cc \ + actions/disruptive/drop.cc \ actions/disruptive/redirect.cc \ actions/disruptive/pass.cc \ actions/exec.cc \ diff --git a/src/actions/disruptive/drop.cc b/src/actions/disruptive/drop.cc new file mode 100644 index 00000000..4af751b9 --- /dev/null +++ b/src/actions/disruptive/drop.cc @@ -0,0 +1,52 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include "src/actions/disruptive/drop.h" + +#include +#include +#include +#include +#include + +#include "modsecurity/transaction.h" + +namespace modsecurity { +namespace actions { +namespace disruptive { + + +bool Drop::evaluate(Rule *rule, Transaction *transaction, + std::shared_ptr rm) { + ms_dbg_a(transaction, 8, "Running action drop " \ + "[executing deny instead of drop.]"); + + if (transaction->m_it.status == 200) { + transaction->m_it.status = 403; + } + + transaction->m_it.disruptive = true; + intervention::freeLog(&transaction->m_it); + rm->m_isDisruptive = true; + transaction->m_it.log = strdup( + rm->log(RuleMessage::LogMessageInfo::ClientLogMessageInfo).c_str()); + + return true; +} + + +} // namespace disruptive +} // namespace actions +} // namespace modsecurity diff --git a/src/parser/location.hh b/src/parser/location.hh index 1f8c13be..49c002be 100644 --- a/src/parser/location.hh +++ b/src/parser/location.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.1. +// A Bison parser, made by GNU Bison 3.2. // Locations for Bison parsers in C++ @@ -38,11 +38,144 @@ #ifndef YY_YY_LOCATION_HH_INCLUDED # define YY_YY_LOCATION_HH_INCLUDED -# include "position.hh" +# include // std::max +# include +# include + +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif namespace yy { -#line 46 "location.hh" // location.cc:290 +#line 60 "location.hh" // location.cc:339 + /// Abstract a position. + class position + { + public: + /// Construct a position. + explicit position (std::string* f = YY_NULLPTR, + unsigned l = 1u, + unsigned c = 1u) + : filename (f) + , line (l) + , column (c) + {} + + + /// Initialization. + void initialize (std::string* fn = YY_NULLPTR, + unsigned l = 1u, + unsigned c = 1u) + { + filename = fn; + line = l; + column = c; + } + + /** \name Line and Column related manipulators + ** \{ */ + /// (line related) Advance to the COUNT next lines. + void lines (int count = 1) + { + if (count) + { + column = 1u; + line = add_ (line, count, 1); + } + } + + /// (column related) Advance to the COUNT next columns. + void columns (int count = 1) + { + column = add_ (column, count, 1); + } + /** \} */ + + /// File name to which this position refers. + std::string* filename; + /// Current line number. + unsigned line; + /// Current column number. + unsigned column; + + private: + /// Compute max (min, lhs+rhs). + static unsigned add_ (unsigned lhs, int rhs, int min) + { + return static_cast (std::max (min, + static_cast (lhs) + rhs)); + } + }; + + /// Add \a width columns, in place. + inline position& + operator+= (position& res, int width) + { + res.columns (width); + return res; + } + + /// Add \a width columns. + inline position + operator+ (position res, int width) + { + return res += width; + } + + /// Subtract \a width columns, in place. + inline position& + operator-= (position& res, int width) + { + return res += -width; + } + + /// Subtract \a width columns. + inline position + operator- (position res, int width) + { + return res -= width; + } + + /// Compare two position objects. + inline bool + operator== (const position& pos1, const position& pos2) + { + return (pos1.line == pos2.line + && pos1.column == pos2.column + && (pos1.filename == pos2.filename + || (pos1.filename && pos2.filename + && *pos1.filename == *pos2.filename))); + } + + /// Compare two position objects. + inline bool + operator!= (const position& pos1, const position& pos2) + { + return !(pos1 == pos2); + } + + /** \brief Intercept output stream redirection. + ** \param ostr the destination output stream + ** \param pos a reference to the position to redirect + */ + template + std::basic_ostream& + operator<< (std::basic_ostream& ostr, const position& pos) + { + if (pos.filename) + ostr << *pos.filename << ':'; + return ostr << pos.line << '.' << pos.column; + } + /// Abstract a location. class location { @@ -185,5 +318,5 @@ namespace yy { } // yy -#line 189 "location.hh" // location.cc:290 +#line 322 "location.hh" // location.cc:339 #endif // !YY_YY_LOCATION_HH_INCLUDED diff --git a/src/parser/position.hh b/src/parser/position.hh index 141a2583..8d071218 100644 --- a/src/parser/position.hh +++ b/src/parser/position.hh @@ -1,177 +1,11 @@ -// A Bison parser, made by GNU Bison 3.1. +// A Bison parser, made by GNU Bison 3.2. -// Positions for Bison parsers in C++ +// 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 +// 2. remove references to this file from your build system +// 3. if you used to include it, include "location.hh" instead. -// Copyright (C) 2002-2015, 2018 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 -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// As a special exception, you may create a larger work that contains -// part or all of the Bison parser skeleton and distribute that work -// under terms of your choice, so long as that work isn't itself a -// parser generator using the skeleton or a modified version thereof -// as a parser skeleton. Alternatively, if you modify or redistribute -// the parser skeleton itself, you may (at your option) remove this -// special exception, which will cause the skeleton and the resulting -// Bison output files to be licensed under the GNU General Public -// License without this special exception. - -// This special exception was added by the Free Software Foundation in -// version 2.2 of Bison. - -/** - ** \file position.hh - ** Define the yy::position class. - */ - -#ifndef YY_YY_POSITION_HH_INCLUDED -# define YY_YY_POSITION_HH_INCLUDED - -# include // std::max -# include -# include - -# ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# endif - - -namespace yy { -#line 56 "position.hh" // location.cc:290 - /// Abstract a position. - class position - { - public: - /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, - unsigned l = 1u, - unsigned c = 1u) - : filename (f) - , line (l) - , column (c) - {} - - - /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, - unsigned l = 1u, - unsigned c = 1u) - { - filename = fn; - line = l; - column = c; - } - - /** \name Line and Column related manipulators - ** \{ */ - /// (line related) Advance to the COUNT next lines. - void lines (int count = 1) - { - if (count) - { - column = 1u; - line = add_ (line, count, 1); - } - } - - /// (column related) Advance to the COUNT next columns. - void columns (int count = 1) - { - column = add_ (column, count, 1); - } - /** \} */ - - /// File name to which this position refers. - std::string* filename; - /// Current line number. - unsigned line; - /// Current column number. - unsigned column; - - private: - /// Compute max(min, lhs+rhs). - static unsigned add_ (unsigned lhs, int rhs, int min) - { - return static_cast(std::max(min, static_cast(lhs) + rhs)); - } - }; - - /// Add \a width columns, in place. - inline position& - operator+= (position& res, int width) - { - res.columns (width); - return res; - } - - /// Add \a width columns. - inline position - operator+ (position res, int width) - { - return res += width; - } - - /// Subtract \a width columns, in place. - inline position& - operator-= (position& res, int width) - { - return res += -width; - } - - /// Subtract \a width columns. - inline position - operator- (position res, int width) - { - return res -= width; - } - - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - - /** \brief Intercept output stream redirection. - ** \param ostr the destination output stream - ** \param pos a reference to the position to redirect - */ - template - std::basic_ostream& - operator<< (std::basic_ostream& ostr, const position& pos) - { - if (pos.filename) - ostr << *pos.filename << ':'; - return ostr << pos.line << '.' << pos.column; - } - - -} // yy -#line 177 "position.hh" // location.cc:290 -#endif // !YY_YY_POSITION_HH_INCLUDED +#include "location.hh" diff --git a/src/parser/seclang-parser.cc b/src/parser/seclang-parser.cc index 10ee627a..5dd9f878 100644 --- a/src/parser/seclang-parser.cc +++ b/src/parser/seclang-parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.1. +// A Bison parser, made by GNU Bison 3.2. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -30,30 +30,22 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. + -// First part of user declarations. -#line 37 "seclang-parser.cc" // lalr1.cc:407 -# ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif -# endif #include "seclang-parser.hh" -// User implementation prologue. -#line 51 "seclang-parser.cc" // lalr1.cc:415 // Unqualified %code blocks. -#line 361 "seclang-parser.yy" // lalr1.cc:416 +#line 362 "seclang-parser.yy" // lalr1.cc:437 #include "src/parser/driver.h" -#line 57 "seclang-parser.cc" // lalr1.cc:416 +#line 49 "seclang-parser.cc" // lalr1.cc:437 #ifndef YY_ @@ -148,7 +140,7 @@ namespace yy { -#line 152 "seclang-parser.cc" // lalr1.cc:491 +#line 144 "seclang-parser.cc" // lalr1.cc:512 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -246,8 +238,8 @@ namespace yy { seclang_parser::stack_symbol_type::stack_symbol_type () {} - seclang_parser::stack_symbol_type::stack_symbol_type (const stack_symbol_type& that) - : super_type (that.state, that.location) + seclang_parser::stack_symbol_type::stack_symbol_type (YY_RVREF (stack_symbol_type) that) + : super_type (YY_MOVE (that.state), YY_MOVE (that.location)) { switch (that.type_get ()) { @@ -447,46 +439,50 @@ namespace yy { case 337: // "VARIABLE" case 338: // "Dictionary element" case 339: // "Dictionary element, selected by regexp" - value.copy< std::string > (that.value); + value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; case 346: // op case 347: // op_before_init - value.copy< std::unique_ptr > (that.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (that.value)); break; case 355: // run_time_string - value.copy< std::unique_ptr > (that.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (that.value)); break; case 352: // var - value.copy< std::unique_ptr > (that.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (that.value)); break; case 353: // act case 354: // setvar_action - value.copy< std::unique_ptr > (that.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (that.value)); break; case 349: // variables case 350: // variables_pre_process case 351: // variables_may_be_quoted - value.copy< std::unique_ptr > > > (that.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > > > (YY_MOVE (that.value)); break; case 344: // actions case 345: // actions_may_quoted - value.copy< std::unique_ptr > > > (that.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > > > (YY_MOVE (that.value)); break; default: break; } +#if defined __cplusplus && 201103L <= __cplusplus + // that is emptied. + that.state = empty_state; +#endif } - seclang_parser::stack_symbol_type::stack_symbol_type (state_type s, symbol_type& that) - : super_type (s, that.location) + seclang_parser::stack_symbol_type::stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) that) + : super_type (s, YY_MOVE (that.location)) { switch (that.type_get ()) { @@ -685,6 +681,249 @@ namespace yy { case 336: // "RUN_TIME_VAR_TIME_YEAR" case 337: // "VARIABLE" case 338: // "Dictionary element" + case 339: // "Dictionary element, selected by regexp" + value.move< std::string > (YY_MOVE (that.value)); + break; + + case 346: // op + case 347: // op_before_init + value.move< std::unique_ptr > (YY_MOVE (that.value)); + break; + + case 355: // run_time_string + value.move< std::unique_ptr > (YY_MOVE (that.value)); + break; + + case 352: // var + value.move< std::unique_ptr > (YY_MOVE (that.value)); + break; + + case 353: // act + case 354: // setvar_action + value.move< std::unique_ptr > (YY_MOVE (that.value)); + break; + + case 349: // variables + case 350: // variables_pre_process + case 351: // variables_may_be_quoted + value.move< std::unique_ptr > > > (YY_MOVE (that.value)); + break; + + case 344: // actions + case 345: // actions_may_quoted + value.move< std::unique_ptr > > > (YY_MOVE (that.value)); + break; + + default: + break; + } + + // that is emptied. + that.type = empty_symbol; + } + +#if defined __cplusplus && __cplusplus < 201103L + seclang_parser::stack_symbol_type& + seclang_parser::stack_symbol_type::operator= (stack_symbol_type& that) + { + state = that.state; + switch (that.type_get ()) + { + case 144: // "Accuracy" + case 145: // "Allow" + case 146: // "Append" + case 147: // "AuditLog" + case 148: // "Block" + case 149: // "Capture" + case 150: // "Chain" + case 151: // "ACTION_CTL_AUDIT_ENGINE" + case 152: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 153: // "ACTION_CTL_BDY_JSON" + case 154: // "ACTION_CTL_BDY_XML" + case 155: // "ACTION_CTL_BDY_URLENCODED" + case 156: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 157: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 158: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 159: // "ACTION_CTL_RULE_REMOVE_BY_TAG" + case 160: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 161: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 162: // "Deny" + case 163: // "DeprecateVar" + case 164: // "Drop" + case 165: // "Exec" + case 166: // "ExpireVar" + case 167: // "Id" + case 168: // "InitCol" + case 169: // "Log" + case 170: // "LogData" + case 171: // "Maturity" + case 172: // "Msg" + case 173: // "MultiMatch" + case 174: // "NoAuditLog" + case 175: // "NoLog" + case 176: // "Pass" + case 177: // "Pause" + case 178: // "Phase" + case 179: // "Prepend" + case 180: // "Proxy" + case 181: // "Redirect" + case 182: // "Rev" + case 183: // "SanitiseArg" + case 184: // "SanitiseMatched" + case 185: // "SanitiseMatchedBytes" + case 186: // "SanitiseRequestHeader" + case 187: // "SanitiseResponseHeader" + case 188: // "SetEnv" + case 189: // "SetRsc" + case 190: // "SetSid" + case 191: // "SetUID" + case 192: // "Severity" + case 193: // "Skip" + case 194: // "SkipAfter" + case 195: // "Status" + case 196: // "Tag" + case 197: // "ACTION_TRANSFORMATION_BASE_64_ENCODE" + case 198: // "ACTION_TRANSFORMATION_BASE_64_DECODE" + case 199: // "ACTION_TRANSFORMATION_BASE_64_DECODE_EXT" + case 200: // "ACTION_TRANSFORMATION_CMD_LINE" + case 201: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 202: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 203: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 204: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 205: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 206: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 207: // "ACTION_TRANSFORMATION_JS_DECODE" + case 208: // "ACTION_TRANSFORMATION_LENGTH" + case 209: // "ACTION_TRANSFORMATION_LOWERCASE" + case 210: // "ACTION_TRANSFORMATION_MD5" + case 211: // "ACTION_TRANSFORMATION_NONE" + case 212: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 213: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 214: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 215: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 216: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 217: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 219: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 220: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 221: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 222: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 223: // "ACTION_TRANSFORMATION_SHA1" + case 224: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 225: // "ACTION_TRANSFORMATION_TRIM" + case 226: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 227: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 228: // "ACTION_TRANSFORMATION_UPPERCASE" + case 229: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 230: // "ACTION_TRANSFORMATION_URL_DECODE" + case 231: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 232: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 233: // "Ver" + case 234: // "xmlns" + case 235: // "CONFIG_COMPONENT_SIG" + case 236: // "CONFIG_CONN_ENGINE" + case 237: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 238: // "CONFIG_SEC_WEB_APP_ID" + case 239: // "CONFIG_SEC_SERVER_SIG" + case 240: // "CONFIG_DIR_AUDIT_DIR" + case 241: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 242: // "CONFIG_DIR_AUDIT_ENG" + case 243: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 244: // "CONFIG_DIR_AUDIT_LOG" + case 245: // "CONFIG_DIR_AUDIT_LOG2" + case 246: // "CONFIG_DIR_AUDIT_LOG_P" + case 247: // "CONFIG_DIR_AUDIT_STS" + case 248: // "CONFIG_DIR_AUDIT_TPE" + case 249: // "CONFIG_DIR_DEBUG_LOG" + case 250: // "CONFIG_DIR_DEBUG_LVL" + case 251: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 252: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 253: // "CONFIG_SEC_HASH_ENGINE" + case 254: // "CONFIG_SEC_HASH_KEY" + case 255: // "CONFIG_SEC_HASH_PARAM" + case 256: // "CONFIG_SEC_HASH_METHOD_RX" + case 257: // "CONFIG_SEC_HASH_METHOD_PM" + case 258: // "CONFIG_SEC_CHROOT_DIR" + case 259: // "CONFIG_DIR_GEO_DB" + case 260: // "CONFIG_DIR_GSB_DB" + case 261: // "CONFIG_SEC_GUARDIAN_LOG" + case 262: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 263: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 264: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 265: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 266: // "CONFIG_SEC_SENSOR_ID" + case 267: // "CONFIG_DIR_REQ_BODY" + case 268: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 269: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 270: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 271: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY" + case 273: // "CONFIG_DIR_RES_BODY_LIMIT" + case 274: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 275: // "CONFIG_SEC_RULE_INHERITANCE" + case 276: // "CONFIG_SEC_RULE_PERF_TIME" + case 277: // "CONFIG_DIR_RULE_ENG" + case 278: // "CONFIG_DIR_SEC_ACTION" + case 279: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 280: // "CONFIG_DIR_SEC_MARKER" + case 281: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 282: // "CONFIG_DIR_UNICODE_CODE_PAGE" + case 283: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 284: // "CONFIG_SEC_HTTP_BLKEY" + case 285: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 286: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 287: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 288: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 289: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 290: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 291: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 292: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 293: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 294: // "CONFIG_UPDLOAD_KEEP_FILES" + case 295: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 296: // "CONFIG_UPLOAD_DIR" + case 297: // "CONFIG_UPLOAD_FILE_LIMIT" + case 298: // "CONFIG_UPLOAD_FILE_MODE" + case 299: // "CONFIG_VALUE_ABORT" + case 300: // "CONFIG_VALUE_DETC" + case 301: // "CONFIG_VALUE_HTTPS" + case 302: // "CONFIG_VALUE_OFF" + case 303: // "CONFIG_VALUE_ON" + case 304: // "CONFIG_VALUE_PARALLEL" + case 305: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 306: // "CONFIG_VALUE_REJECT" + case 307: // "CONFIG_VALUE_RELEVANT_ONLY" + case 308: // "CONFIG_VALUE_SERIAL" + case 309: // "CONFIG_VALUE_WARN" + case 310: // "CONFIG_XML_EXTERNAL_ENTITY" + case 311: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 312: // "CONGIG_DIR_SEC_ARG_SEP" + case 313: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 314: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 315: // "CONGIG_DIR_SEC_DATA_DIR" + case 316: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 317: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 318: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 319: // "CONGIG_DIR_SEC_TMP_DIR" + case 320: // "DIRECTIVE" + case 321: // "DIRECTIVE_SECRULESCRIPT" + case 322: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 323: // "QUOTATION_MARK" + case 324: // "RUN_TIME_VAR_BLD" + case 325: // "RUN_TIME_VAR_DUR" + case 326: // "RUN_TIME_VAR_HSV" + case 327: // "RUN_TIME_VAR_REMOTE_USER" + case 328: // "RUN_TIME_VAR_TIME" + case 329: // "RUN_TIME_VAR_TIME_DAY" + case 330: // "RUN_TIME_VAR_TIME_EPOCH" + case 331: // "RUN_TIME_VAR_TIME_HOUR" + case 332: // "RUN_TIME_VAR_TIME_MIN" + case 333: // "RUN_TIME_VAR_TIME_MON" + case 334: // "RUN_TIME_VAR_TIME_SEC" + case 335: // "RUN_TIME_VAR_TIME_WDAY" + case 336: // "RUN_TIME_VAR_TIME_YEAR" + case 337: // "VARIABLE" + case 338: // "Dictionary element" case 339: // "Dictionary element, selected by regexp" value.move< std::string > (that.value); break; @@ -722,252 +961,12 @@ namespace yy { break; } - // that is emptied. - that.type = empty_symbol; - } - - seclang_parser::stack_symbol_type& - seclang_parser::stack_symbol_type::operator= (const stack_symbol_type& that) - { - state = that.state; - switch (that.type_get ()) - { - case 144: // "Accuracy" - case 145: // "Allow" - case 146: // "Append" - case 147: // "AuditLog" - case 148: // "Block" - case 149: // "Capture" - case 150: // "Chain" - case 151: // "ACTION_CTL_AUDIT_ENGINE" - case 152: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 153: // "ACTION_CTL_BDY_JSON" - case 154: // "ACTION_CTL_BDY_XML" - case 155: // "ACTION_CTL_BDY_URLENCODED" - case 156: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 157: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 158: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 159: // "ACTION_CTL_RULE_REMOVE_BY_TAG" - case 160: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 161: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 162: // "Deny" - case 163: // "DeprecateVar" - case 164: // "Drop" - case 165: // "Exec" - case 166: // "ExpireVar" - case 167: // "Id" - case 168: // "InitCol" - case 169: // "Log" - case 170: // "LogData" - case 171: // "Maturity" - case 172: // "Msg" - case 173: // "MultiMatch" - case 174: // "NoAuditLog" - case 175: // "NoLog" - case 176: // "Pass" - case 177: // "Pause" - case 178: // "Phase" - case 179: // "Prepend" - case 180: // "Proxy" - case 181: // "Redirect" - case 182: // "Rev" - case 183: // "SanitiseArg" - case 184: // "SanitiseMatched" - case 185: // "SanitiseMatchedBytes" - case 186: // "SanitiseRequestHeader" - case 187: // "SanitiseResponseHeader" - case 188: // "SetEnv" - case 189: // "SetRsc" - case 190: // "SetSid" - case 191: // "SetUID" - case 192: // "Severity" - case 193: // "Skip" - case 194: // "SkipAfter" - case 195: // "Status" - case 196: // "Tag" - case 197: // "ACTION_TRANSFORMATION_BASE_64_ENCODE" - case 198: // "ACTION_TRANSFORMATION_BASE_64_DECODE" - case 199: // "ACTION_TRANSFORMATION_BASE_64_DECODE_EXT" - case 200: // "ACTION_TRANSFORMATION_CMD_LINE" - case 201: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 202: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 203: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" - case 204: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 205: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 206: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 207: // "ACTION_TRANSFORMATION_JS_DECODE" - case 208: // "ACTION_TRANSFORMATION_LENGTH" - case 209: // "ACTION_TRANSFORMATION_LOWERCASE" - case 210: // "ACTION_TRANSFORMATION_MD5" - case 211: // "ACTION_TRANSFORMATION_NONE" - case 212: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 213: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 214: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 215: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 216: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 217: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 218: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 219: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 220: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 221: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 222: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 223: // "ACTION_TRANSFORMATION_SHA1" - case 224: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 225: // "ACTION_TRANSFORMATION_TRIM" - case 226: // "ACTION_TRANSFORMATION_TRIM_LEFT" - case 227: // "ACTION_TRANSFORMATION_TRIM_RIGHT" - case 228: // "ACTION_TRANSFORMATION_UPPERCASE" - case 229: // "ACTION_TRANSFORMATION_URL_ENCODE" - case 230: // "ACTION_TRANSFORMATION_URL_DECODE" - case 231: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 232: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 233: // "Ver" - case 234: // "xmlns" - case 235: // "CONFIG_COMPONENT_SIG" - case 236: // "CONFIG_CONN_ENGINE" - case 237: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 238: // "CONFIG_SEC_WEB_APP_ID" - case 239: // "CONFIG_SEC_SERVER_SIG" - case 240: // "CONFIG_DIR_AUDIT_DIR" - case 241: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 242: // "CONFIG_DIR_AUDIT_ENG" - case 243: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 244: // "CONFIG_DIR_AUDIT_LOG" - case 245: // "CONFIG_DIR_AUDIT_LOG2" - case 246: // "CONFIG_DIR_AUDIT_LOG_P" - case 247: // "CONFIG_DIR_AUDIT_STS" - case 248: // "CONFIG_DIR_AUDIT_TPE" - case 249: // "CONFIG_DIR_DEBUG_LOG" - case 250: // "CONFIG_DIR_DEBUG_LVL" - case 251: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 252: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 253: // "CONFIG_SEC_HASH_ENGINE" - case 254: // "CONFIG_SEC_HASH_KEY" - case 255: // "CONFIG_SEC_HASH_PARAM" - case 256: // "CONFIG_SEC_HASH_METHOD_RX" - case 257: // "CONFIG_SEC_HASH_METHOD_PM" - case 258: // "CONFIG_SEC_CHROOT_DIR" - case 259: // "CONFIG_DIR_GEO_DB" - case 260: // "CONFIG_DIR_GSB_DB" - case 261: // "CONFIG_SEC_GUARDIAN_LOG" - case 262: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 263: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 264: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 265: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 266: // "CONFIG_SEC_SENSOR_ID" - case 267: // "CONFIG_DIR_REQ_BODY" - case 268: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 269: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 270: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 271: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 272: // "CONFIG_DIR_RES_BODY" - case 273: // "CONFIG_DIR_RES_BODY_LIMIT" - case 274: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 275: // "CONFIG_SEC_RULE_INHERITANCE" - case 276: // "CONFIG_SEC_RULE_PERF_TIME" - case 277: // "CONFIG_DIR_RULE_ENG" - case 278: // "CONFIG_DIR_SEC_ACTION" - case 279: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 280: // "CONFIG_DIR_SEC_MARKER" - case 281: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 282: // "CONFIG_DIR_UNICODE_CODE_PAGE" - case 283: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 284: // "CONFIG_SEC_HTTP_BLKEY" - case 285: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 286: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 287: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 288: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 289: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 290: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 291: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 292: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 293: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 294: // "CONFIG_UPDLOAD_KEEP_FILES" - case 295: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 296: // "CONFIG_UPLOAD_DIR" - case 297: // "CONFIG_UPLOAD_FILE_LIMIT" - case 298: // "CONFIG_UPLOAD_FILE_MODE" - case 299: // "CONFIG_VALUE_ABORT" - case 300: // "CONFIG_VALUE_DETC" - case 301: // "CONFIG_VALUE_HTTPS" - case 302: // "CONFIG_VALUE_OFF" - case 303: // "CONFIG_VALUE_ON" - case 304: // "CONFIG_VALUE_PARALLEL" - case 305: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 306: // "CONFIG_VALUE_REJECT" - case 307: // "CONFIG_VALUE_RELEVANT_ONLY" - case 308: // "CONFIG_VALUE_SERIAL" - case 309: // "CONFIG_VALUE_WARN" - case 310: // "CONFIG_XML_EXTERNAL_ENTITY" - case 311: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 312: // "CONGIG_DIR_SEC_ARG_SEP" - case 313: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 314: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 315: // "CONGIG_DIR_SEC_DATA_DIR" - case 316: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 317: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 318: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 319: // "CONGIG_DIR_SEC_TMP_DIR" - case 320: // "DIRECTIVE" - case 321: // "DIRECTIVE_SECRULESCRIPT" - case 322: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 323: // "QUOTATION_MARK" - case 324: // "RUN_TIME_VAR_BLD" - case 325: // "RUN_TIME_VAR_DUR" - case 326: // "RUN_TIME_VAR_HSV" - case 327: // "RUN_TIME_VAR_REMOTE_USER" - case 328: // "RUN_TIME_VAR_TIME" - case 329: // "RUN_TIME_VAR_TIME_DAY" - case 330: // "RUN_TIME_VAR_TIME_EPOCH" - case 331: // "RUN_TIME_VAR_TIME_HOUR" - case 332: // "RUN_TIME_VAR_TIME_MIN" - case 333: // "RUN_TIME_VAR_TIME_MON" - case 334: // "RUN_TIME_VAR_TIME_SEC" - case 335: // "RUN_TIME_VAR_TIME_WDAY" - case 336: // "RUN_TIME_VAR_TIME_YEAR" - case 337: // "VARIABLE" - case 338: // "Dictionary element" - case 339: // "Dictionary element, selected by regexp" - value.copy< std::string > (that.value); - break; - - case 346: // op - case 347: // op_before_init - value.copy< std::unique_ptr > (that.value); - break; - - case 355: // run_time_string - value.copy< std::unique_ptr > (that.value); - break; - - case 352: // var - value.copy< std::unique_ptr > (that.value); - break; - - case 353: // act - case 354: // setvar_action - value.copy< std::unique_ptr > (that.value); - break; - - case 349: // variables - case 350: // variables_pre_process - case 351: // variables_may_be_quoted - value.copy< std::unique_ptr > > > (that.value); - break; - - case 344: // actions - case 345: // actions_may_quoted - value.copy< std::unique_ptr > > > (that.value); - break; - - default: - break; - } - location = that.location; + // that is emptied. + that.state = empty_state; return *this; } - +#endif template void @@ -999,22 +998,26 @@ namespace yy { #endif void - seclang_parser::yypush_ (const char* m, state_type s, symbol_type& sym) - { - stack_symbol_type t (s, sym); - yypush_ (m, t); - } - - void - seclang_parser::yypush_ (const char* m, stack_symbol_type& s) + seclang_parser::yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym) { if (m) - YY_SYMBOL_PRINT (m, s); - yystack_.push (s); + YY_SYMBOL_PRINT (m, sym); + yystack_.push (YY_MOVE (sym)); } void - seclang_parser::yypop_ (unsigned n) + seclang_parser::yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym) + { +#if defined __cplusplus && 201103L <= __cplusplus + yypush_ (m, stack_symbol_type (s, std::move (sym))); +#else + stack_symbol_type ss (s, sym); + yypush_ (m, ss); +#endif + } + + void + seclang_parser::yypop_ (int n) { yystack_.pop (n); } @@ -1068,6 +1071,12 @@ namespace yy { return yyvalue == yytable_ninf_; } + int + seclang_parser::operator() () + { + return parse (); + } + int seclang_parser::parse () { @@ -1097,20 +1106,20 @@ namespace yy { // User initialization code. - #line 354 "/home/zimmerle/core-trustwave/ModSecurity/src/parser/seclang-parser.yy" // lalr1.cc:746 +#line 355 "seclang-parser.yy" // lalr1.cc:783 { // Initialize the initial location. yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } -#line 1107 "seclang-parser.cc" // lalr1.cc:746 +#line 1116 "seclang-parser.cc" // lalr1.cc:783 /* Initialize the stack. The initial state will be set in yynewstate, since the latter expects the semantical and the location values to have been already stored, initialize these stacks with a primary value. */ yystack_.clear (); - yypush_ (YY_NULLPTR, 0, yyla); + yypush_ (YY_NULLPTR, 0, YY_MOVE (yyla)); // A new symbol was pushed on the stack. yynewstate: @@ -1171,7 +1180,7 @@ namespace yy { --yyerrstatus_; // Shift the lookahead token. - yypush_ ("Shifting", yyn, yyla); + yypush_ ("Shifting", yyn, YY_MOVE (yyla)); goto yynewstate; /*-----------------------------------------------------------. @@ -1392,36 +1401,36 @@ namespace yy { case 337: // "VARIABLE" case 338: // "Dictionary element" case 339: // "Dictionary element, selected by regexp" - yylhs.value.build< std::string > (); + yylhs.value.emplace< std::string > (); break; case 346: // op case 347: // op_before_init - yylhs.value.build< std::unique_ptr > (); + yylhs.value.emplace< std::unique_ptr > (); break; case 355: // run_time_string - yylhs.value.build< std::unique_ptr > (); + yylhs.value.emplace< std::unique_ptr > (); break; case 352: // var - yylhs.value.build< std::unique_ptr > (); + yylhs.value.emplace< std::unique_ptr > (); break; case 353: // act case 354: // setvar_action - yylhs.value.build< std::unique_ptr > (); + yylhs.value.emplace< std::unique_ptr > (); break; case 349: // variables case 350: // variables_pre_process case 351: // variables_may_be_quoted - yylhs.value.build< std::unique_ptr > > > (); + yylhs.value.emplace< std::unique_ptr > > > (); break; case 344: // actions case 345: // actions_may_quoted - yylhs.value.build< std::unique_ptr > > > (); + yylhs.value.emplace< std::unique_ptr > > > (); break; default: @@ -1445,241 +1454,241 @@ namespace yy { switch (yyn) { case 2: -#line 744 "seclang-parser.yy" // lalr1.cc:870 +#line 745 "seclang-parser.yy" // lalr1.cc:906 { return 0; } -#line 1453 "seclang-parser.cc" // lalr1.cc:870 +#line 1462 "seclang-parser.cc" // lalr1.cc:906 break; case 6: -#line 757 "seclang-parser.yy" // lalr1.cc:870 +#line 758 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setStorageDirMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1461 "seclang-parser.cc" // lalr1.cc:870 +#line 1470 "seclang-parser.cc" // lalr1.cc:906 break; case 7: -#line 763 "seclang-parser.yy" // lalr1.cc:870 +#line 764 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setStorageDir(yystack_[0].value.as< std::string > ()); } -#line 1469 "seclang-parser.cc" // lalr1.cc:870 +#line 1478 "seclang-parser.cc" // lalr1.cc:906 break; case 8: -#line 769 "seclang-parser.yy" // lalr1.cc:870 +#line 770 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::RelevantOnlyAuditLogStatus); } -#line 1477 "seclang-parser.cc" // lalr1.cc:870 +#line 1486 "seclang-parser.cc" // lalr1.cc:906 break; case 9: -#line 773 "seclang-parser.yy" // lalr1.cc:870 +#line 774 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OffAuditLogStatus); } -#line 1485 "seclang-parser.cc" // lalr1.cc:870 +#line 1494 "seclang-parser.cc" // lalr1.cc:906 break; case 10: -#line 777 "seclang-parser.yy" // lalr1.cc:870 +#line 778 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OnAuditLogStatus); } -#line 1493 "seclang-parser.cc" // lalr1.cc:870 +#line 1502 "seclang-parser.cc" // lalr1.cc:906 break; case 11: -#line 783 "seclang-parser.yy" // lalr1.cc:870 +#line 784 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setFileMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1501 "seclang-parser.cc" // lalr1.cc:870 +#line 1510 "seclang-parser.cc" // lalr1.cc:906 break; case 12: -#line 789 "seclang-parser.yy" // lalr1.cc:870 +#line 790 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setFilePath2(yystack_[0].value.as< std::string > ()); } -#line 1509 "seclang-parser.cc" // lalr1.cc:870 +#line 1518 "seclang-parser.cc" // lalr1.cc:906 break; case 13: -#line 795 "seclang-parser.yy" // lalr1.cc:870 +#line 796 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setParts(yystack_[0].value.as< std::string > ()); } -#line 1517 "seclang-parser.cc" // lalr1.cc:870 +#line 1526 "seclang-parser.cc" // lalr1.cc:906 break; case 14: -#line 801 "seclang-parser.yy" // lalr1.cc:870 +#line 802 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setFilePath1(yystack_[0].value.as< std::string > ()); } -#line 1525 "seclang-parser.cc" // lalr1.cc:870 +#line 1534 "seclang-parser.cc" // lalr1.cc:906 break; case 15: -#line 806 "seclang-parser.yy" // lalr1.cc:870 +#line 807 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::JSONAuditLogFormat); } -#line 1533 "seclang-parser.cc" // lalr1.cc:870 +#line 1542 "seclang-parser.cc" // lalr1.cc:906 break; case 16: -#line 811 "seclang-parser.yy" // lalr1.cc:870 +#line 812 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::NativeAuditLogFormat); } -#line 1541 "seclang-parser.cc" // lalr1.cc:870 +#line 1550 "seclang-parser.cc" // lalr1.cc:906 break; case 17: -#line 817 "seclang-parser.yy" // lalr1.cc:870 +#line 818 "seclang-parser.yy" // lalr1.cc:906 { std::string relevant_status(yystack_[0].value.as< std::string > ()); driver.m_auditLog->setRelevantStatus(relevant_status); } -#line 1550 "seclang-parser.cc" // lalr1.cc:870 +#line 1559 "seclang-parser.cc" // lalr1.cc:906 break; case 18: -#line 824 "seclang-parser.yy" // lalr1.cc:870 +#line 825 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::SerialAuditLogType); } -#line 1558 "seclang-parser.cc" // lalr1.cc:870 +#line 1567 "seclang-parser.cc" // lalr1.cc:906 break; case 19: -#line 828 "seclang-parser.yy" // lalr1.cc:870 +#line 829 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::ParallelAuditLogType); } -#line 1566 "seclang-parser.cc" // lalr1.cc:870 +#line 1575 "seclang-parser.cc" // lalr1.cc:906 break; case 20: -#line 832 "seclang-parser.yy" // lalr1.cc:870 +#line 833 "seclang-parser.yy" // lalr1.cc:906 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::HttpsAuditLogType); } -#line 1574 "seclang-parser.cc" // lalr1.cc:870 +#line 1583 "seclang-parser.cc" // lalr1.cc:906 break; case 21: -#line 838 "seclang-parser.yy" // lalr1.cc:870 +#line 839 "seclang-parser.yy" // lalr1.cc:906 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1582 "seclang-parser.cc" // lalr1.cc:870 +#line 1591 "seclang-parser.cc" // lalr1.cc:906 break; case 22: -#line 842 "seclang-parser.yy" // lalr1.cc:870 +#line 843 "seclang-parser.yy" // lalr1.cc:906 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1590 "seclang-parser.cc" // lalr1.cc:870 +#line 1599 "seclang-parser.cc" // lalr1.cc:906 break; case 23: -#line 846 "seclang-parser.yy" // lalr1.cc:870 +#line 847 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecUploadKeepFiles RelevantOnly is not currently supported. Accepted values are On or Off"); YYERROR; } -#line 1599 "seclang-parser.cc" // lalr1.cc:870 +#line 1608 "seclang-parser.cc" // lalr1.cc:906 break; case 24: -#line 851 "seclang-parser.yy" // lalr1.cc:870 +#line 852 "seclang-parser.yy" // lalr1.cc:906 { driver.m_uploadFileLimit.m_set = true; driver.m_uploadFileLimit.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 10); } -#line 1608 "seclang-parser.cc" // lalr1.cc:870 +#line 1617 "seclang-parser.cc" // lalr1.cc:906 break; case 25: -#line 856 "seclang-parser.yy" // lalr1.cc:870 +#line 857 "seclang-parser.yy" // lalr1.cc:906 { driver.m_uploadFileMode.m_set = true; driver.m_uploadFileMode.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8); } -#line 1617 "seclang-parser.cc" // lalr1.cc:870 +#line 1626 "seclang-parser.cc" // lalr1.cc:906 break; case 26: -#line 861 "seclang-parser.yy" // lalr1.cc:870 +#line 862 "seclang-parser.yy" // lalr1.cc:906 { driver.m_uploadDirectory.m_set = true; driver.m_uploadDirectory.m_value = yystack_[0].value.as< std::string > (); } -#line 1626 "seclang-parser.cc" // lalr1.cc:870 +#line 1635 "seclang-parser.cc" // lalr1.cc:906 break; case 27: -#line 866 "seclang-parser.yy" // lalr1.cc:870 +#line 867 "seclang-parser.yy" // lalr1.cc:906 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1634 "seclang-parser.cc" // lalr1.cc:870 +#line 1643 "seclang-parser.cc" // lalr1.cc:906 break; case 28: -#line 870 "seclang-parser.yy" // lalr1.cc:870 +#line 871 "seclang-parser.yy" // lalr1.cc:906 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1642 "seclang-parser.cc" // lalr1.cc:870 +#line 1651 "seclang-parser.cc" // lalr1.cc:906 break; case 29: -#line 877 "seclang-parser.yy" // lalr1.cc:870 +#line 878 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 1650 "seclang-parser.cc" // lalr1.cc:870 +#line 1659 "seclang-parser.cc" // lalr1.cc:906 break; case 30: -#line 881 "seclang-parser.yy" // lalr1.cc:870 +#line 882 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 1658 "seclang-parser.cc" // lalr1.cc:870 +#line 1667 "seclang-parser.cc" // lalr1.cc:906 break; case 31: -#line 888 "seclang-parser.yy" // lalr1.cc:870 +#line 889 "seclang-parser.yy" // lalr1.cc:906 { 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 1668 "seclang-parser.cc" // lalr1.cc:870 +#line 1677 "seclang-parser.cc" // lalr1.cc:906 break; case 32: -#line 894 "seclang-parser.yy" // lalr1.cc:870 +#line 895 "seclang-parser.yy" // lalr1.cc:906 { 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 1679 "seclang-parser.cc" // lalr1.cc:870 +#line 1688 "seclang-parser.cc" // lalr1.cc:906 break; case 33: -#line 904 "seclang-parser.yy" // lalr1.cc:870 +#line 905 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); std::string error; @@ -1688,11 +1697,11 @@ namespace yy { YYERROR; } } -#line 1692 "seclang-parser.cc" // lalr1.cc:870 +#line 1701 "seclang-parser.cc" // lalr1.cc:906 break; case 34: -#line 913 "seclang-parser.yy" // lalr1.cc:870 +#line 914 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); yylhs.value.as< std::unique_ptr > ()->m_negation = true; @@ -1702,11 +1711,11 @@ namespace yy { YYERROR; } } -#line 1706 "seclang-parser.cc" // lalr1.cc:870 +#line 1715 "seclang-parser.cc" // lalr1.cc:906 break; case 35: -#line 923 "seclang-parser.yy" // lalr1.cc:870 +#line 924 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); std::string error; @@ -1715,11 +1724,11 @@ namespace yy { YYERROR; } } -#line 1719 "seclang-parser.cc" // lalr1.cc:870 +#line 1728 "seclang-parser.cc" // lalr1.cc:906 break; case 36: -#line 932 "seclang-parser.yy" // lalr1.cc:870 +#line 933 "seclang-parser.yy" // lalr1.cc:906 { 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; @@ -1729,286 +1738,286 @@ namespace yy { YYERROR; } } -#line 1733 "seclang-parser.cc" // lalr1.cc:870 +#line 1742 "seclang-parser.cc" // lalr1.cc:906 break; case 37: -#line 945 "seclang-parser.yy" // lalr1.cc:870 +#line 946 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::UnconditionalMatch()); } -#line 1741 "seclang-parser.cc" // lalr1.cc:870 +#line 1750 "seclang-parser.cc" // lalr1.cc:906 break; case 38: -#line 949 "seclang-parser.yy" // lalr1.cc:870 +#line 950 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectSQLi()); } -#line 1749 "seclang-parser.cc" // lalr1.cc:870 +#line 1758 "seclang-parser.cc" // lalr1.cc:906 break; case 39: -#line 953 "seclang-parser.yy" // lalr1.cc:870 +#line 954 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectXSS()); } -#line 1757 "seclang-parser.cc" // lalr1.cc:870 +#line 1766 "seclang-parser.cc" // lalr1.cc:906 break; case 40: -#line 957 "seclang-parser.yy" // lalr1.cc:870 +#line 958 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUrlEncoding()); } -#line 1765 "seclang-parser.cc" // lalr1.cc:870 +#line 1774 "seclang-parser.cc" // lalr1.cc:906 break; case 41: -#line 961 "seclang-parser.yy" // lalr1.cc:870 +#line 962 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUtf8Encoding()); } -#line 1773 "seclang-parser.cc" // lalr1.cc:870 +#line 1782 "seclang-parser.cc" // lalr1.cc:906 break; case 42: -#line 965 "seclang-parser.yy" // lalr1.cc:870 +#line 966 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::InspectFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1781 "seclang-parser.cc" // lalr1.cc:870 +#line 1790 "seclang-parser.cc" // lalr1.cc:906 break; case 43: -#line 969 "seclang-parser.yy" // lalr1.cc:870 +#line 970 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::FuzzyHash(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1789 "seclang-parser.cc" // lalr1.cc:870 +#line 1798 "seclang-parser.cc" // lalr1.cc:906 break; case 44: -#line 973 "seclang-parser.yy" // lalr1.cc:870 +#line 974 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateByteRange(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1797 "seclang-parser.cc" // lalr1.cc:870 +#line 1806 "seclang-parser.cc" // lalr1.cc:906 break; case 45: -#line 977 "seclang-parser.yy" // lalr1.cc:870 +#line 978 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateDTD(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1805 "seclang-parser.cc" // lalr1.cc:870 +#line 1814 "seclang-parser.cc" // lalr1.cc:906 break; case 46: -#line 981 "seclang-parser.yy" // lalr1.cc:870 +#line 982 "seclang-parser.yy" // lalr1.cc:906 { /* $$ = new operators::ValidateHash($1); */ OPERATOR_NOT_SUPPORTED("ValidateHash", yystack_[2].location); } -#line 1814 "seclang-parser.cc" // lalr1.cc:870 +#line 1823 "seclang-parser.cc" // lalr1.cc:906 break; case 47: -#line 986 "seclang-parser.yy" // lalr1.cc:870 +#line 987 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateSchema(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1822 "seclang-parser.cc" // lalr1.cc:870 +#line 1831 "seclang-parser.cc" // lalr1.cc:906 break; case 48: -#line 990 "seclang-parser.yy" // lalr1.cc:870 +#line 991 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1830 "seclang-parser.cc" // lalr1.cc:870 +#line 1839 "seclang-parser.cc" // lalr1.cc:906 break; case 49: -#line 994 "seclang-parser.yy" // lalr1.cc:870 +#line 995 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCPF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1838 "seclang-parser.cc" // lalr1.cc:870 +#line 1847 "seclang-parser.cc" // lalr1.cc:906 break; case 50: -#line 998 "seclang-parser.yy" // lalr1.cc:870 +#line 999 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifySSN(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1846 "seclang-parser.cc" // lalr1.cc:870 +#line 1855 "seclang-parser.cc" // lalr1.cc:906 break; case 51: -#line 1002 "seclang-parser.yy" // lalr1.cc:870 +#line 1003 "seclang-parser.yy" // lalr1.cc:906 { /* $$ = new operators::GsbLookup($1); */ OPERATOR_NOT_SUPPORTED("GsbLookup", yystack_[2].location); } -#line 1855 "seclang-parser.cc" // lalr1.cc:870 +#line 1864 "seclang-parser.cc" // lalr1.cc:906 break; case 52: -#line 1007 "seclang-parser.yy" // lalr1.cc:870 +#line 1008 "seclang-parser.yy" // lalr1.cc:906 { /* $$ = new operators::Rsub($1); */ OPERATOR_NOT_SUPPORTED("Rsub", yystack_[2].location); } -#line 1864 "seclang-parser.cc" // lalr1.cc:870 +#line 1873 "seclang-parser.cc" // lalr1.cc:906 break; case 53: -#line 1012 "seclang-parser.yy" // lalr1.cc:870 +#line 1013 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Within(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1872 "seclang-parser.cc" // lalr1.cc:870 +#line 1881 "seclang-parser.cc" // lalr1.cc:906 break; case 54: -#line 1016 "seclang-parser.yy" // lalr1.cc:870 +#line 1017 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ContainsWord(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1880 "seclang-parser.cc" // lalr1.cc:870 +#line 1889 "seclang-parser.cc" // lalr1.cc:906 break; case 55: -#line 1020 "seclang-parser.yy" // lalr1.cc:870 +#line 1021 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Contains(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1888 "seclang-parser.cc" // lalr1.cc:870 +#line 1897 "seclang-parser.cc" // lalr1.cc:906 break; case 56: -#line 1024 "seclang-parser.yy" // lalr1.cc:870 +#line 1025 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::EndsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1896 "seclang-parser.cc" // lalr1.cc:870 +#line 1905 "seclang-parser.cc" // lalr1.cc:906 break; case 57: -#line 1028 "seclang-parser.yy" // lalr1.cc:870 +#line 1029 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Eq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1904 "seclang-parser.cc" // lalr1.cc:870 +#line 1913 "seclang-parser.cc" // lalr1.cc:906 break; case 58: -#line 1032 "seclang-parser.yy" // lalr1.cc:870 +#line 1033 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Ge(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1912 "seclang-parser.cc" // lalr1.cc:870 +#line 1921 "seclang-parser.cc" // lalr1.cc:906 break; case 59: -#line 1036 "seclang-parser.yy" // lalr1.cc:870 +#line 1037 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Gt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1920 "seclang-parser.cc" // lalr1.cc:870 +#line 1929 "seclang-parser.cc" // lalr1.cc:906 break; case 60: -#line 1040 "seclang-parser.yy" // lalr1.cc:870 +#line 1041 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatchF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1928 "seclang-parser.cc" // lalr1.cc:870 +#line 1937 "seclang-parser.cc" // lalr1.cc:906 break; case 61: -#line 1044 "seclang-parser.yy" // lalr1.cc:870 +#line 1045 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1936 "seclang-parser.cc" // lalr1.cc:870 +#line 1945 "seclang-parser.cc" // lalr1.cc:906 break; case 62: -#line 1048 "seclang-parser.yy" // lalr1.cc:870 +#line 1049 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Le(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1944 "seclang-parser.cc" // lalr1.cc:870 +#line 1953 "seclang-parser.cc" // lalr1.cc:906 break; case 63: -#line 1052 "seclang-parser.yy" // lalr1.cc:870 +#line 1053 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Lt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1952 "seclang-parser.cc" // lalr1.cc:870 +#line 1961 "seclang-parser.cc" // lalr1.cc:906 break; case 64: -#line 1056 "seclang-parser.yy" // lalr1.cc:870 +#line 1057 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::PmFromFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1960 "seclang-parser.cc" // lalr1.cc:870 +#line 1969 "seclang-parser.cc" // lalr1.cc:906 break; case 65: -#line 1060 "seclang-parser.yy" // lalr1.cc:870 +#line 1061 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Pm(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1968 "seclang-parser.cc" // lalr1.cc:870 +#line 1977 "seclang-parser.cc" // lalr1.cc:906 break; case 66: -#line 1064 "seclang-parser.yy" // lalr1.cc:870 +#line 1065 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rbl(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1976 "seclang-parser.cc" // lalr1.cc:870 +#line 1985 "seclang-parser.cc" // lalr1.cc:906 break; case 67: -#line 1068 "seclang-parser.yy" // lalr1.cc:870 +#line 1069 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1984 "seclang-parser.cc" // lalr1.cc:870 +#line 1993 "seclang-parser.cc" // lalr1.cc:906 break; case 68: -#line 1072 "seclang-parser.yy" // lalr1.cc:870 +#line 1073 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrEq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1992 "seclang-parser.cc" // lalr1.cc:870 +#line 2001 "seclang-parser.cc" // lalr1.cc:906 break; case 69: -#line 1076 "seclang-parser.yy" // lalr1.cc:870 +#line 1077 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 2000 "seclang-parser.cc" // lalr1.cc:870 +#line 2009 "seclang-parser.cc" // lalr1.cc:906 break; case 70: -#line 1080 "seclang-parser.yy" // lalr1.cc:870 +#line 1081 "seclang-parser.yy" // lalr1.cc:906 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::BeginsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 2008 "seclang-parser.cc" // lalr1.cc:870 +#line 2017 "seclang-parser.cc" // lalr1.cc:906 break; case 71: -#line 1084 "seclang-parser.yy" // lalr1.cc:870 +#line 1085 "seclang-parser.yy" // lalr1.cc:906 { #if defined(WITH_GEOIP) or defined(WITH_MAXMIND) OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::GeoLookup()); @@ -2019,11 +2028,11 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2023 "seclang-parser.cc" // lalr1.cc:870 +#line 2032 "seclang-parser.cc" // lalr1.cc:906 break; case 73: -#line 1099 "seclang-parser.yy" // lalr1.cc:870 +#line 1100 "seclang-parser.yy" // lalr1.cc:906 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -2048,11 +2057,11 @@ namespace yy { YYERROR; } } -#line 2052 "seclang-parser.cc" // lalr1.cc:870 +#line 2061 "seclang-parser.cc" // lalr1.cc:906 break; case 74: -#line 1124 "seclang-parser.yy" // lalr1.cc:870 +#line 1125 "seclang-parser.yy" // lalr1.cc:906 { Variables::Variables *v = new Variables::Variables(); for (auto &i : *yystack_[1].value.as< std::unique_ptr > > > ().get()) { @@ -2071,11 +2080,11 @@ namespace yy { YYERROR; } } -#line 2075 "seclang-parser.cc" // lalr1.cc:870 +#line 2084 "seclang-parser.cc" // lalr1.cc:906 break; case 75: -#line 1143 "seclang-parser.yy" // lalr1.cc:870 +#line 1144 "seclang-parser.yy" // lalr1.cc:906 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -2090,11 +2099,11 @@ namespace yy { ); driver.addSecAction(rule); } -#line 2094 "seclang-parser.cc" // lalr1.cc:870 +#line 2103 "seclang-parser.cc" // lalr1.cc:906 break; case 76: -#line 1158 "seclang-parser.yy" // lalr1.cc:870 +#line 1159 "seclang-parser.yy" // lalr1.cc:906 { std::string err; std::vector *a = new std::vector(); @@ -2118,11 +2127,11 @@ namespace yy { YYERROR; } } -#line 2122 "seclang-parser.cc" // lalr1.cc:870 +#line 2131 "seclang-parser.cc" // lalr1.cc:906 break; case 77: -#line 1182 "seclang-parser.yy" // lalr1.cc:870 +#line 1183 "seclang-parser.yy" // lalr1.cc:906 { bool hasDisruptive = false; std::vector *actions = new std::vector(); @@ -2178,75 +2187,75 @@ namespace yy { delete actions; } -#line 2182 "seclang-parser.cc" // lalr1.cc:870 +#line 2191 "seclang-parser.cc" // lalr1.cc:906 break; case 78: -#line 1238 "seclang-parser.yy" // lalr1.cc:870 +#line 1239 "seclang-parser.yy" // lalr1.cc:906 { driver.addSecMarker(modsecurity::utils::string::removeBracketsIfNeeded(yystack_[0].value.as< std::string > ())); } -#line 2190 "seclang-parser.cc" // lalr1.cc:870 +#line 2199 "seclang-parser.cc" // lalr1.cc:906 break; case 79: -#line 1242 "seclang-parser.yy" // lalr1.cc:870 +#line 1243 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secRuleEngine = modsecurity::Rules::DisabledRuleEngine; } -#line 2198 "seclang-parser.cc" // lalr1.cc:870 +#line 2207 "seclang-parser.cc" // lalr1.cc:906 break; case 80: -#line 1246 "seclang-parser.yy" // lalr1.cc:870 +#line 1247 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secRuleEngine = modsecurity::Rules::EnabledRuleEngine; } -#line 2206 "seclang-parser.cc" // lalr1.cc:870 +#line 2215 "seclang-parser.cc" // lalr1.cc:906 break; case 81: -#line 1250 "seclang-parser.yy" // lalr1.cc:870 +#line 1251 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secRuleEngine = modsecurity::Rules::DetectionOnlyRuleEngine; } -#line 2214 "seclang-parser.cc" // lalr1.cc:870 +#line 2223 "seclang-parser.cc" // lalr1.cc:906 break; case 82: -#line 1254 "seclang-parser.yy" // lalr1.cc:870 +#line 1255 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2222 "seclang-parser.cc" // lalr1.cc:870 +#line 2231 "seclang-parser.cc" // lalr1.cc:906 break; case 83: -#line 1258 "seclang-parser.yy" // lalr1.cc:870 +#line 1259 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2230 "seclang-parser.cc" // lalr1.cc:870 +#line 2239 "seclang-parser.cc" // lalr1.cc:906 break; case 84: -#line 1262 "seclang-parser.yy" // lalr1.cc:870 +#line 1263 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2238 "seclang-parser.cc" // lalr1.cc:870 +#line 2247 "seclang-parser.cc" // lalr1.cc:906 break; case 85: -#line 1266 "seclang-parser.yy" // lalr1.cc:870 +#line 1267 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2246 "seclang-parser.cc" // lalr1.cc:870 +#line 2255 "seclang-parser.cc" // lalr1.cc:906 break; case 86: -#line 1270 "seclang-parser.yy" // lalr1.cc:870 +#line 1271 "seclang-parser.yy" // lalr1.cc:906 { if (yystack_[0].value.as< std::string > ().length() != 1) { driver.error(yystack_[1].location, "Argument separator should be set to a single character."); @@ -2255,259 +2264,259 @@ namespace yy { driver.m_secArgumentSeparator.m_value = yystack_[0].value.as< std::string > (); driver.m_secArgumentSeparator.m_set = true; } -#line 2259 "seclang-parser.cc" // lalr1.cc:870 +#line 2268 "seclang-parser.cc" // lalr1.cc:906 break; case 87: -#line 1279 "seclang-parser.yy" // lalr1.cc:870 +#line 1280 "seclang-parser.yy" // lalr1.cc:906 { driver.m_components.push_back(yystack_[0].value.as< std::string > ()); } -#line 2267 "seclang-parser.cc" // lalr1.cc:870 +#line 2276 "seclang-parser.cc" // lalr1.cc:906 break; case 88: -#line 1283 "seclang-parser.yy" // lalr1.cc:870 +#line 1284 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecConnEngine is not yet supported."); YYERROR; } -#line 2276 "seclang-parser.cc" // lalr1.cc:870 +#line 2285 "seclang-parser.cc" // lalr1.cc:906 break; case 89: -#line 1288 "seclang-parser.yy" // lalr1.cc:870 +#line 1289 "seclang-parser.yy" // lalr1.cc:906 { } -#line 2283 "seclang-parser.cc" // lalr1.cc:870 +#line 2292 "seclang-parser.cc" // lalr1.cc:906 break; case 90: -#line 1291 "seclang-parser.yy" // lalr1.cc:870 +#line 1292 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secWebAppId.m_value = yystack_[0].value.as< std::string > (); driver.m_secWebAppId.m_set = true; } -#line 2292 "seclang-parser.cc" // lalr1.cc:870 +#line 2301 "seclang-parser.cc" // lalr1.cc:906 break; case 91: -#line 1296 "seclang-parser.yy" // lalr1.cc:870 +#line 1297 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecServerSignature is not supported."); YYERROR; } -#line 2301 "seclang-parser.cc" // lalr1.cc:870 +#line 2310 "seclang-parser.cc" // lalr1.cc:906 break; case 92: -#line 1301 "seclang-parser.yy" // lalr1.cc:870 +#line 1302 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecCacheTransformations is not supported."); YYERROR; } -#line 2310 "seclang-parser.cc" // lalr1.cc:870 +#line 2319 "seclang-parser.cc" // lalr1.cc:906 break; case 93: -#line 1306 "seclang-parser.yy" // lalr1.cc:870 +#line 1307 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecDisableBackendCompression is not supported."); YYERROR; } -#line 2319 "seclang-parser.cc" // lalr1.cc:870 +#line 2328 "seclang-parser.cc" // lalr1.cc:906 break; case 94: -#line 1311 "seclang-parser.yy" // lalr1.cc:870 +#line 1312 "seclang-parser.yy" // lalr1.cc:906 { } -#line 2326 "seclang-parser.cc" // lalr1.cc:870 +#line 2335 "seclang-parser.cc" // lalr1.cc:906 break; case 95: -#line 1314 "seclang-parser.yy" // lalr1.cc:870 +#line 1315 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecContentInjection is not yet supported."); YYERROR; } -#line 2335 "seclang-parser.cc" // lalr1.cc:870 +#line 2344 "seclang-parser.cc" // lalr1.cc:906 break; case 96: -#line 1319 "seclang-parser.yy" // lalr1.cc:870 +#line 1320 "seclang-parser.yy" // lalr1.cc:906 { } -#line 2342 "seclang-parser.cc" // lalr1.cc:870 +#line 2351 "seclang-parser.cc" // lalr1.cc:906 break; case 97: -#line 1322 "seclang-parser.yy" // lalr1.cc:870 +#line 1323 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecChrootDir is not supported."); YYERROR; } -#line 2351 "seclang-parser.cc" // lalr1.cc:870 +#line 2360 "seclang-parser.cc" // lalr1.cc:906 break; case 98: -#line 1327 "seclang-parser.yy" // lalr1.cc:870 +#line 1328 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecHashEngine is not yet supported."); YYERROR; } -#line 2360 "seclang-parser.cc" // lalr1.cc:870 +#line 2369 "seclang-parser.cc" // lalr1.cc:906 break; case 99: -#line 1332 "seclang-parser.yy" // lalr1.cc:870 +#line 1333 "seclang-parser.yy" // lalr1.cc:906 { } -#line 2367 "seclang-parser.cc" // lalr1.cc:870 +#line 2376 "seclang-parser.cc" // lalr1.cc:906 break; case 100: -#line 1335 "seclang-parser.yy" // lalr1.cc:870 +#line 1336 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecHashKey is not yet supported."); YYERROR; } -#line 2376 "seclang-parser.cc" // lalr1.cc:870 +#line 2385 "seclang-parser.cc" // lalr1.cc:906 break; case 101: -#line 1340 "seclang-parser.yy" // lalr1.cc:870 +#line 1341 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecHashParam is not yet supported."); YYERROR; } -#line 2385 "seclang-parser.cc" // lalr1.cc:870 +#line 2394 "seclang-parser.cc" // lalr1.cc:906 break; case 102: -#line 1345 "seclang-parser.yy" // lalr1.cc:870 +#line 1346 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecHashMethodRx is not yet supported."); YYERROR; } -#line 2394 "seclang-parser.cc" // lalr1.cc:870 +#line 2403 "seclang-parser.cc" // lalr1.cc:906 break; case 103: -#line 1350 "seclang-parser.yy" // lalr1.cc:870 +#line 1351 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecHashMethodPm is not yet supported."); YYERROR; } -#line 2403 "seclang-parser.cc" // lalr1.cc:870 +#line 2412 "seclang-parser.cc" // lalr1.cc:906 break; case 104: -#line 1355 "seclang-parser.yy" // lalr1.cc:870 +#line 1356 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecGsbLookupDb is not supported."); YYERROR; } -#line 2412 "seclang-parser.cc" // lalr1.cc:870 +#line 2421 "seclang-parser.cc" // lalr1.cc:906 break; case 105: -#line 1360 "seclang-parser.yy" // lalr1.cc:870 +#line 1361 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecGuardianLog is not supported."); YYERROR; } -#line 2421 "seclang-parser.cc" // lalr1.cc:870 +#line 2430 "seclang-parser.cc" // lalr1.cc:906 break; case 106: -#line 1365 "seclang-parser.yy" // lalr1.cc:870 +#line 1366 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecInterceptOnError is not yet supported."); YYERROR; } -#line 2430 "seclang-parser.cc" // lalr1.cc:870 +#line 2439 "seclang-parser.cc" // lalr1.cc:906 break; case 107: -#line 1370 "seclang-parser.yy" // lalr1.cc:870 +#line 1371 "seclang-parser.yy" // lalr1.cc:906 { } -#line 2437 "seclang-parser.cc" // lalr1.cc:870 +#line 2446 "seclang-parser.cc" // lalr1.cc:906 break; case 108: -#line 1373 "seclang-parser.yy" // lalr1.cc:870 +#line 1374 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecConnReadStateLimit is not yet supported."); YYERROR; } -#line 2446 "seclang-parser.cc" // lalr1.cc:870 +#line 2455 "seclang-parser.cc" // lalr1.cc:906 break; case 109: -#line 1378 "seclang-parser.yy" // lalr1.cc:870 +#line 1379 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecConnWriteStateLimit is not yet supported."); YYERROR; } -#line 2455 "seclang-parser.cc" // lalr1.cc:870 +#line 2464 "seclang-parser.cc" // lalr1.cc:906 break; case 110: -#line 1383 "seclang-parser.yy" // lalr1.cc:870 +#line 1384 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecSensorId is not yet supported."); YYERROR; } -#line 2464 "seclang-parser.cc" // lalr1.cc:870 +#line 2473 "seclang-parser.cc" // lalr1.cc:906 break; case 111: -#line 1388 "seclang-parser.yy" // lalr1.cc:870 +#line 1389 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[2].location, "SecRuleInheritance is not yet supported."); YYERROR; } -#line 2473 "seclang-parser.cc" // lalr1.cc:870 +#line 2482 "seclang-parser.cc" // lalr1.cc:906 break; case 112: -#line 1393 "seclang-parser.yy" // lalr1.cc:870 +#line 1394 "seclang-parser.yy" // lalr1.cc:906 { } -#line 2480 "seclang-parser.cc" // lalr1.cc:870 +#line 2489 "seclang-parser.cc" // lalr1.cc:906 break; case 113: -#line 1396 "seclang-parser.yy" // lalr1.cc:870 +#line 1397 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecRulePerfTime is not yet supported."); YYERROR; } -#line 2489 "seclang-parser.cc" // lalr1.cc:870 +#line 2498 "seclang-parser.cc" // lalr1.cc:906 break; case 114: -#line 1401 "seclang-parser.yy" // lalr1.cc:870 +#line 1402 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecStreamInBodyInspection is not supported."); YYERROR; } -#line 2498 "seclang-parser.cc" // lalr1.cc:870 +#line 2507 "seclang-parser.cc" // lalr1.cc:906 break; case 115: -#line 1406 "seclang-parser.yy" // lalr1.cc:870 +#line 1407 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecStreamOutBodyInspection is not supported."); YYERROR; } -#line 2507 "seclang-parser.cc" // lalr1.cc:870 +#line 2516 "seclang-parser.cc" // lalr1.cc:906 break; case 116: -#line 1411 "seclang-parser.yy" // lalr1.cc:870 +#line 1412 "seclang-parser.yy" // lalr1.cc:906 { std::string error; if (driver.m_exceptions.load(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2520,11 +2529,11 @@ namespace yy { YYERROR; } } -#line 2524 "seclang-parser.cc" // lalr1.cc:870 +#line 2533 "seclang-parser.cc" // lalr1.cc:906 break; case 117: -#line 1424 "seclang-parser.yy" // lalr1.cc:870 +#line 1425 "seclang-parser.yy" // lalr1.cc:906 { std::string error; if (driver.m_exceptions.loadRemoveRuleByTag(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2537,11 +2546,11 @@ namespace yy { YYERROR; } } -#line 2541 "seclang-parser.cc" // lalr1.cc:870 +#line 2550 "seclang-parser.cc" // lalr1.cc:906 break; case 118: -#line 1437 "seclang-parser.yy" // lalr1.cc:870 +#line 1438 "seclang-parser.yy" // lalr1.cc:906 { std::string error; if (driver.m_exceptions.loadRemoveRuleByMsg(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2554,11 +2563,11 @@ namespace yy { YYERROR; } } -#line 2558 "seclang-parser.cc" // lalr1.cc:870 +#line 2567 "seclang-parser.cc" // lalr1.cc:906 break; case 119: -#line 1450 "seclang-parser.yy" // lalr1.cc:870 +#line 1451 "seclang-parser.yy" // lalr1.cc:906 { 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) { @@ -2571,11 +2580,11 @@ namespace yy { YYERROR; } } -#line 2575 "seclang-parser.cc" // lalr1.cc:870 +#line 2584 "seclang-parser.cc" // lalr1.cc:906 break; case 120: -#line 1463 "seclang-parser.yy" // lalr1.cc:870 +#line 1464 "seclang-parser.yy" // lalr1.cc:906 { 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) { @@ -2588,11 +2597,11 @@ namespace yy { YYERROR; } } -#line 2592 "seclang-parser.cc" // lalr1.cc:870 +#line 2601 "seclang-parser.cc" // lalr1.cc:906 break; case 121: -#line 1476 "seclang-parser.yy" // lalr1.cc:870 +#line 1477 "seclang-parser.yy" // lalr1.cc:906 { std::string error; double ruleId; @@ -2618,11 +2627,11 @@ namespace yy { YYERROR; } } -#line 2622 "seclang-parser.cc" // lalr1.cc:870 +#line 2631 "seclang-parser.cc" // lalr1.cc:906 break; case 122: -#line 1502 "seclang-parser.yy" // lalr1.cc:870 +#line 1503 "seclang-parser.yy" // lalr1.cc:906 { std::string error; double ruleId; @@ -2649,11 +2658,11 @@ namespace yy { YYERROR; } } -#line 2653 "seclang-parser.cc" // lalr1.cc:870 +#line 2662 "seclang-parser.cc" // lalr1.cc:906 break; case 123: -#line 1530 "seclang-parser.yy" // lalr1.cc:870 +#line 1531 "seclang-parser.yy" // lalr1.cc:906 { if (driver.m_debugLog != NULL) { driver.m_debugLog->setDebugLogLevel(atoi(yystack_[0].value.as< std::string > ().c_str())); @@ -2665,11 +2674,11 @@ namespace yy { YYERROR; } } -#line 2669 "seclang-parser.cc" // lalr1.cc:870 +#line 2678 "seclang-parser.cc" // lalr1.cc:906 break; case 124: -#line 1542 "seclang-parser.yy" // lalr1.cc:870 +#line 1543 "seclang-parser.yy" // lalr1.cc:906 { if (driver.m_debugLog != NULL) { std::string error; @@ -2688,11 +2697,11 @@ namespace yy { YYERROR; } } -#line 2692 "seclang-parser.cc" // lalr1.cc:870 +#line 2701 "seclang-parser.cc" // lalr1.cc:906 break; case 125: -#line 1562 "seclang-parser.yy" // lalr1.cc:870 +#line 1563 "seclang-parser.yy" // lalr1.cc:906 { #if defined(WITH_GEOIP) or defined(WITH_MAXMIND) std::string err; @@ -2719,29 +2728,29 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2723 "seclang-parser.cc" // lalr1.cc:870 +#line 2732 "seclang-parser.cc" // lalr1.cc:906 break; case 126: -#line 1590 "seclang-parser.yy" // lalr1.cc:870 +#line 1591 "seclang-parser.yy" // lalr1.cc:906 { driver.m_requestBodyLimit.m_set = true; driver.m_requestBodyLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2732 "seclang-parser.cc" // lalr1.cc:870 +#line 2741 "seclang-parser.cc" // lalr1.cc:906 break; case 127: -#line 1595 "seclang-parser.yy" // lalr1.cc:870 +#line 1596 "seclang-parser.yy" // lalr1.cc:906 { driver.m_requestBodyNoFilesLimit.m_set = true; driver.m_requestBodyNoFilesLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2741 "seclang-parser.cc" // lalr1.cc:870 +#line 2750 "seclang-parser.cc" // lalr1.cc:906 break; case 128: -#line 1600 "seclang-parser.yy" // lalr1.cc:870 +#line 1601 "seclang-parser.yy" // lalr1.cc:906 { std::stringstream ss; ss << "As of ModSecurity version 3.0, SecRequestBodyInMemoryLimit is no longer "; @@ -2750,68 +2759,68 @@ namespace yy { driver.error(yystack_[1].location, ss.str()); YYERROR; } -#line 2754 "seclang-parser.cc" // lalr1.cc:870 +#line 2763 "seclang-parser.cc" // lalr1.cc:906 break; case 129: -#line 1609 "seclang-parser.yy" // lalr1.cc:870 +#line 1610 "seclang-parser.yy" // lalr1.cc:906 { driver.m_responseBodyLimit.m_set = true; driver.m_responseBodyLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2763 "seclang-parser.cc" // lalr1.cc:870 +#line 2772 "seclang-parser.cc" // lalr1.cc:906 break; case 130: -#line 1614 "seclang-parser.yy" // lalr1.cc:870 +#line 1615 "seclang-parser.yy" // lalr1.cc:906 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2771 "seclang-parser.cc" // lalr1.cc:870 +#line 2780 "seclang-parser.cc" // lalr1.cc:906 break; case 131: -#line 1618 "seclang-parser.yy" // lalr1.cc:870 +#line 1619 "seclang-parser.yy" // lalr1.cc:906 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2779 "seclang-parser.cc" // lalr1.cc:870 +#line 2788 "seclang-parser.cc" // lalr1.cc:906 break; case 132: -#line 1622 "seclang-parser.yy" // lalr1.cc:870 +#line 1623 "seclang-parser.yy" // lalr1.cc:906 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2787 "seclang-parser.cc" // lalr1.cc:870 +#line 2796 "seclang-parser.cc" // lalr1.cc:906 break; case 133: -#line 1626 "seclang-parser.yy" // lalr1.cc:870 +#line 1627 "seclang-parser.yy" // lalr1.cc:906 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2795 "seclang-parser.cc" // lalr1.cc:870 +#line 2804 "seclang-parser.cc" // lalr1.cc:906 break; case 134: -#line 1630 "seclang-parser.yy" // lalr1.cc:870 +#line 1631 "seclang-parser.yy" // lalr1.cc:906 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::AbortOnFailedRemoteRulesAction; } -#line 2803 "seclang-parser.cc" // lalr1.cc:870 +#line 2812 "seclang-parser.cc" // lalr1.cc:906 break; case 135: -#line 1634 "seclang-parser.yy" // lalr1.cc:870 +#line 1635 "seclang-parser.yy" // lalr1.cc:906 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::WarnOnFailedRemoteRulesAction; } -#line 2811 "seclang-parser.cc" // lalr1.cc:870 +#line 2820 "seclang-parser.cc" // lalr1.cc:906 break; case 138: -#line 1648 "seclang-parser.yy" // lalr1.cc:870 +#line 1649 "seclang-parser.yy" // lalr1.cc:906 { std::istringstream buf(yystack_[0].value.as< std::string > ()); std::istream_iterator beg(buf), end; @@ -2823,37 +2832,37 @@ namespace yy { driver.m_responseBodyTypeToBeInspected.m_value.insert(*it); } } -#line 2827 "seclang-parser.cc" // lalr1.cc:870 +#line 2836 "seclang-parser.cc" // lalr1.cc:906 break; case 139: -#line 1660 "seclang-parser.yy" // lalr1.cc:870 +#line 1661 "seclang-parser.yy" // lalr1.cc:906 { driver.m_responseBodyTypeToBeInspected.m_set = true; driver.m_responseBodyTypeToBeInspected.m_clear = true; driver.m_responseBodyTypeToBeInspected.m_value.clear(); } -#line 2837 "seclang-parser.cc" // lalr1.cc:870 +#line 2846 "seclang-parser.cc" // lalr1.cc:906 break; case 140: -#line 1666 "seclang-parser.yy" // lalr1.cc:870 +#line 1667 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2845 "seclang-parser.cc" // lalr1.cc:870 +#line 2854 "seclang-parser.cc" // lalr1.cc:906 break; case 141: -#line 1670 "seclang-parser.yy" // lalr1.cc:870 +#line 1671 "seclang-parser.yy" // lalr1.cc:906 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2853 "seclang-parser.cc" // lalr1.cc:870 +#line 2862 "seclang-parser.cc" // lalr1.cc:906 break; case 142: -#line 1674 "seclang-parser.yy" // lalr1.cc:870 +#line 1675 "seclang-parser.yy" // lalr1.cc:906 { /* Parser error disabled to avoid breaking default installations with modsecurity.conf-recommended std::stringstream ss; @@ -2864,31 +2873,31 @@ namespace yy { YYERROR; */ } -#line 2868 "seclang-parser.cc" // lalr1.cc:870 +#line 2877 "seclang-parser.cc" // lalr1.cc:906 break; case 145: -#line 1695 "seclang-parser.yy" // lalr1.cc:870 +#line 1696 "seclang-parser.yy" // lalr1.cc:906 { if (atoi(yystack_[0].value.as< std::string > ().c_str()) == 1) { driver.error(yystack_[1].location, "SecCookieFormat 1 is not yet supported."); YYERROR; } } -#line 2879 "seclang-parser.cc" // lalr1.cc:870 +#line 2888 "seclang-parser.cc" // lalr1.cc:906 break; case 146: -#line 1702 "seclang-parser.yy" // lalr1.cc:870 +#line 1703 "seclang-parser.yy" // lalr1.cc:906 { driver.error(yystack_[1].location, "SecCookieV0Separator is not yet supported."); YYERROR; } -#line 2888 "seclang-parser.cc" // lalr1.cc:870 +#line 2897 "seclang-parser.cc" // lalr1.cc:906 break; case 148: -#line 1712 "seclang-parser.yy" // lalr1.cc:870 +#line 1713 "seclang-parser.yy" // lalr1.cc:906 { std::string error; std::vector param; @@ -2942,31 +2951,31 @@ namespace yy { } } -#line 2946 "seclang-parser.cc" // lalr1.cc:870 +#line 2955 "seclang-parser.cc" // lalr1.cc:906 break; case 149: -#line 1766 "seclang-parser.yy" // lalr1.cc:870 +#line 1767 "seclang-parser.yy" // lalr1.cc:906 { /* Parser error disabled to avoid breaking default CRS installations with crs-setup.conf-recommended driver.error(@0, "SecCollectionTimeout is not yet supported."); YYERROR; */ } -#line 2957 "seclang-parser.cc" // lalr1.cc:870 +#line 2966 "seclang-parser.cc" // lalr1.cc:906 break; case 150: -#line 1773 "seclang-parser.yy" // lalr1.cc:870 +#line 1774 "seclang-parser.yy" // lalr1.cc:906 { driver.m_httpblKey.m_set = true; driver.m_httpblKey.m_value = yystack_[0].value.as< std::string > (); } -#line 2966 "seclang-parser.cc" // lalr1.cc:870 +#line 2975 "seclang-parser.cc" // lalr1.cc:906 break; case 151: -#line 1781 "seclang-parser.yy" // lalr1.cc:870 +#line 1782 "seclang-parser.yy" // lalr1.cc:906 { std::unique_ptr > > originalList = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); std::unique_ptr>> newList(new std::vector>()); @@ -3000,2364 +3009,2363 @@ namespace yy { } yylhs.value.as< std::unique_ptr > > > () = std::move(newNewList); } -#line 3004 "seclang-parser.cc" // lalr1.cc:870 +#line 3013 "seclang-parser.cc" // lalr1.cc:906 break; case 152: -#line 1818 "seclang-parser.yy" // lalr1.cc:870 +#line 1819 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 3012 "seclang-parser.cc" // lalr1.cc:870 +#line 3021 "seclang-parser.cc" // lalr1.cc:906 break; case 153: -#line 1822 "seclang-parser.yy" // lalr1.cc:870 +#line 1823 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 3020 "seclang-parser.cc" // lalr1.cc:870 +#line 3029 "seclang-parser.cc" // lalr1.cc:906 break; case 154: -#line 1829 "seclang-parser.yy" // lalr1.cc:870 +#line 1830 "seclang-parser.yy" // lalr1.cc:906 { 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 3029 "seclang-parser.cc" // lalr1.cc:870 +#line 3038 "seclang-parser.cc" // lalr1.cc:906 break; case 155: -#line 1834 "seclang-parser.yy" // lalr1.cc:870 +#line 1835 "seclang-parser.yy" // lalr1.cc:906 { 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 3039 "seclang-parser.cc" // lalr1.cc:870 +#line 3048 "seclang-parser.cc" // lalr1.cc:906 break; case 156: -#line 1840 "seclang-parser.yy" // lalr1.cc:870 +#line 1841 "seclang-parser.yy" // lalr1.cc:906 { 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 3049 "seclang-parser.cc" // lalr1.cc:870 +#line 3058 "seclang-parser.cc" // lalr1.cc:906 break; case 157: -#line 1846 "seclang-parser.yy" // lalr1.cc:870 +#line 1847 "seclang-parser.yy" // lalr1.cc:906 { 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 3059 "seclang-parser.cc" // lalr1.cc:870 +#line 3068 "seclang-parser.cc" // lalr1.cc:906 break; case 158: -#line 1852 "seclang-parser.yy" // lalr1.cc:870 +#line 1853 "seclang-parser.yy" // lalr1.cc:906 { 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 3070 "seclang-parser.cc" // lalr1.cc:870 +#line 3079 "seclang-parser.cc" // lalr1.cc:906 break; case 159: -#line 1859 "seclang-parser.yy" // lalr1.cc:870 +#line 1860 "seclang-parser.yy" // lalr1.cc:906 { 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 3081 "seclang-parser.cc" // lalr1.cc:870 +#line 3090 "seclang-parser.cc" // lalr1.cc:906 break; case 160: -#line 1869 "seclang-parser.yy" // lalr1.cc:870 +#line 1870 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3089 "seclang-parser.cc" // lalr1.cc:870 +#line 3098 "seclang-parser.cc" // lalr1.cc:906 break; case 161: -#line 1873 "seclang-parser.yy" // lalr1.cc:870 +#line 1874 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3097 "seclang-parser.cc" // lalr1.cc:870 +#line 3106 "seclang-parser.cc" // lalr1.cc:906 break; case 162: -#line 1877 "seclang-parser.yy" // lalr1.cc:870 +#line 1878 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_NoDictElement()); } -#line 3105 "seclang-parser.cc" // lalr1.cc:870 +#line 3114 "seclang-parser.cc" // lalr1.cc:906 break; case 163: -#line 1881 "seclang-parser.yy" // lalr1.cc:870 +#line 1882 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3113 "seclang-parser.cc" // lalr1.cc:870 +#line 3122 "seclang-parser.cc" // lalr1.cc:906 break; case 164: -#line 1885 "seclang-parser.yy" // lalr1.cc:870 +#line 1886 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3121 "seclang-parser.cc" // lalr1.cc:870 +#line 3130 "seclang-parser.cc" // lalr1.cc:906 break; case 165: -#line 1889 "seclang-parser.yy" // lalr1.cc:870 +#line 1890 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_NoDictElement()); } -#line 3129 "seclang-parser.cc" // lalr1.cc:870 +#line 3138 "seclang-parser.cc" // lalr1.cc:906 break; case 166: -#line 1893 "seclang-parser.yy" // lalr1.cc:870 +#line 1894 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3137 "seclang-parser.cc" // lalr1.cc:870 +#line 3146 "seclang-parser.cc" // lalr1.cc:906 break; case 167: -#line 1897 "seclang-parser.yy" // lalr1.cc:870 +#line 1898 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3145 "seclang-parser.cc" // lalr1.cc:870 +#line 3154 "seclang-parser.cc" // lalr1.cc:906 break; case 168: -#line 1901 "seclang-parser.yy" // lalr1.cc:870 +#line 1902 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_NoDictElement()); } -#line 3153 "seclang-parser.cc" // lalr1.cc:870 +#line 3162 "seclang-parser.cc" // lalr1.cc:906 break; case 169: -#line 1905 "seclang-parser.yy" // lalr1.cc:870 +#line 1906 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3161 "seclang-parser.cc" // lalr1.cc:870 +#line 3170 "seclang-parser.cc" // lalr1.cc:906 break; case 170: -#line 1909 "seclang-parser.yy" // lalr1.cc:870 +#line 1910 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3169 "seclang-parser.cc" // lalr1.cc:870 +#line 3178 "seclang-parser.cc" // lalr1.cc:906 break; case 171: -#line 1913 "seclang-parser.yy" // lalr1.cc:870 +#line 1914 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_NoDictElement()); } -#line 3177 "seclang-parser.cc" // lalr1.cc:870 +#line 3186 "seclang-parser.cc" // lalr1.cc:906 break; case 172: -#line 1917 "seclang-parser.yy" // lalr1.cc:870 +#line 1918 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3185 "seclang-parser.cc" // lalr1.cc:870 +#line 3194 "seclang-parser.cc" // lalr1.cc:906 break; case 173: -#line 1921 "seclang-parser.yy" // lalr1.cc:870 +#line 1922 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3193 "seclang-parser.cc" // lalr1.cc:870 +#line 3202 "seclang-parser.cc" // lalr1.cc:906 break; case 174: -#line 1925 "seclang-parser.yy" // lalr1.cc:870 +#line 1926 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_NoDictElement()); } -#line 3201 "seclang-parser.cc" // lalr1.cc:870 +#line 3210 "seclang-parser.cc" // lalr1.cc:906 break; case 175: -#line 1929 "seclang-parser.yy" // lalr1.cc:870 +#line 1930 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3209 "seclang-parser.cc" // lalr1.cc:870 +#line 3218 "seclang-parser.cc" // lalr1.cc:906 break; case 176: -#line 1933 "seclang-parser.yy" // lalr1.cc:870 +#line 1934 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3217 "seclang-parser.cc" // lalr1.cc:870 +#line 3226 "seclang-parser.cc" // lalr1.cc:906 break; case 177: -#line 1937 "seclang-parser.yy" // lalr1.cc:870 +#line 1938 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_NoDictElement()); } -#line 3225 "seclang-parser.cc" // lalr1.cc:870 +#line 3234 "seclang-parser.cc" // lalr1.cc:906 break; case 178: -#line 1941 "seclang-parser.yy" // lalr1.cc:870 +#line 1942 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3233 "seclang-parser.cc" // lalr1.cc:870 +#line 3242 "seclang-parser.cc" // lalr1.cc:906 break; case 179: -#line 1945 "seclang-parser.yy" // lalr1.cc:870 +#line 1946 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3241 "seclang-parser.cc" // lalr1.cc:870 +#line 3250 "seclang-parser.cc" // lalr1.cc:906 break; case 180: -#line 1949 "seclang-parser.yy" // lalr1.cc:870 +#line 1950 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_NoDictElement()); } -#line 3249 "seclang-parser.cc" // lalr1.cc:870 +#line 3258 "seclang-parser.cc" // lalr1.cc:906 break; case 181: -#line 1953 "seclang-parser.yy" // lalr1.cc:870 +#line 1954 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3257 "seclang-parser.cc" // lalr1.cc:870 +#line 3266 "seclang-parser.cc" // lalr1.cc:906 break; case 182: -#line 1957 "seclang-parser.yy" // lalr1.cc:870 +#line 1958 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3265 "seclang-parser.cc" // lalr1.cc:870 +#line 3274 "seclang-parser.cc" // lalr1.cc:906 break; case 183: -#line 1961 "seclang-parser.yy" // lalr1.cc:870 +#line 1962 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_NoDictElement()); } -#line 3273 "seclang-parser.cc" // lalr1.cc:870 +#line 3282 "seclang-parser.cc" // lalr1.cc:906 break; case 184: -#line 1965 "seclang-parser.yy" // lalr1.cc:870 +#line 1966 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3281 "seclang-parser.cc" // lalr1.cc:870 +#line 3290 "seclang-parser.cc" // lalr1.cc:906 break; case 185: -#line 1969 "seclang-parser.yy" // lalr1.cc:870 +#line 1970 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3289 "seclang-parser.cc" // lalr1.cc:870 +#line 3298 "seclang-parser.cc" // lalr1.cc:906 break; case 186: -#line 1973 "seclang-parser.yy" // lalr1.cc:870 +#line 1974 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_NoDictElement()); } -#line 3297 "seclang-parser.cc" // lalr1.cc:870 +#line 3306 "seclang-parser.cc" // lalr1.cc:906 break; case 187: -#line 1977 "seclang-parser.yy" // lalr1.cc:870 +#line 1978 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3305 "seclang-parser.cc" // lalr1.cc:870 +#line 3314 "seclang-parser.cc" // lalr1.cc:906 break; case 188: -#line 1981 "seclang-parser.yy" // lalr1.cc:870 +#line 1982 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3313 "seclang-parser.cc" // lalr1.cc:870 +#line 3322 "seclang-parser.cc" // lalr1.cc:906 break; case 189: -#line 1985 "seclang-parser.yy" // lalr1.cc:870 +#line 1986 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_NoDictElement()); } -#line 3321 "seclang-parser.cc" // lalr1.cc:870 +#line 3330 "seclang-parser.cc" // lalr1.cc:906 break; case 190: -#line 1989 "seclang-parser.yy" // lalr1.cc:870 +#line 1990 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3329 "seclang-parser.cc" // lalr1.cc:870 +#line 3338 "seclang-parser.cc" // lalr1.cc:906 break; case 191: -#line 1993 "seclang-parser.yy" // lalr1.cc:870 +#line 1994 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3337 "seclang-parser.cc" // lalr1.cc:870 +#line 3346 "seclang-parser.cc" // lalr1.cc:906 break; case 192: -#line 1997 "seclang-parser.yy" // lalr1.cc:870 +#line 1998 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_NoDictElement()); } -#line 3345 "seclang-parser.cc" // lalr1.cc:870 +#line 3354 "seclang-parser.cc" // lalr1.cc:906 break; case 193: -#line 2001 "seclang-parser.yy" // lalr1.cc:870 +#line 2002 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3353 "seclang-parser.cc" // lalr1.cc:870 +#line 3362 "seclang-parser.cc" // lalr1.cc:906 break; case 194: -#line 2005 "seclang-parser.yy" // lalr1.cc:870 +#line 2006 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3361 "seclang-parser.cc" // lalr1.cc:870 +#line 3370 "seclang-parser.cc" // lalr1.cc:906 break; case 195: -#line 2009 "seclang-parser.yy" // lalr1.cc:870 +#line 2010 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_NoDictElement()); } -#line 3369 "seclang-parser.cc" // lalr1.cc:870 +#line 3378 "seclang-parser.cc" // lalr1.cc:906 break; case 196: -#line 2013 "seclang-parser.yy" // lalr1.cc:870 +#line 2014 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3377 "seclang-parser.cc" // lalr1.cc:870 +#line 3386 "seclang-parser.cc" // lalr1.cc:906 break; case 197: -#line 2017 "seclang-parser.yy" // lalr1.cc:870 +#line 2018 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3385 "seclang-parser.cc" // lalr1.cc:870 +#line 3394 "seclang-parser.cc" // lalr1.cc:906 break; case 198: -#line 2021 "seclang-parser.yy" // lalr1.cc:870 +#line 2022 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_NoDictElement()); } -#line 3393 "seclang-parser.cc" // lalr1.cc:870 +#line 3402 "seclang-parser.cc" // lalr1.cc:906 break; case 199: -#line 2025 "seclang-parser.yy" // lalr1.cc:870 +#line 2026 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3401 "seclang-parser.cc" // lalr1.cc:870 +#line 3410 "seclang-parser.cc" // lalr1.cc:906 break; case 200: -#line 2029 "seclang-parser.yy" // lalr1.cc:870 +#line 2030 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3409 "seclang-parser.cc" // lalr1.cc:870 +#line 3418 "seclang-parser.cc" // lalr1.cc:906 break; case 201: -#line 2033 "seclang-parser.yy" // lalr1.cc:870 +#line 2034 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_NoDictElement()); } -#line 3417 "seclang-parser.cc" // lalr1.cc:870 +#line 3426 "seclang-parser.cc" // lalr1.cc:906 break; case 202: -#line 2037 "seclang-parser.yy" // lalr1.cc:870 +#line 2038 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3425 "seclang-parser.cc" // lalr1.cc:870 +#line 3434 "seclang-parser.cc" // lalr1.cc:906 break; case 203: -#line 2041 "seclang-parser.yy" // lalr1.cc:870 +#line 2042 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3433 "seclang-parser.cc" // lalr1.cc:870 +#line 3442 "seclang-parser.cc" // lalr1.cc:906 break; case 204: -#line 2045 "seclang-parser.yy" // lalr1.cc:870 +#line 2046 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_NoDictElement()); } -#line 3441 "seclang-parser.cc" // lalr1.cc:870 +#line 3450 "seclang-parser.cc" // lalr1.cc:906 break; case 205: -#line 2049 "seclang-parser.yy" // lalr1.cc:870 +#line 2050 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3449 "seclang-parser.cc" // lalr1.cc:870 +#line 3458 "seclang-parser.cc" // lalr1.cc:906 break; case 206: -#line 2053 "seclang-parser.yy" // lalr1.cc:870 +#line 2054 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3457 "seclang-parser.cc" // lalr1.cc:870 +#line 3466 "seclang-parser.cc" // lalr1.cc:906 break; case 207: -#line 2057 "seclang-parser.yy" // lalr1.cc:870 +#line 2058 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_NoDictElement()); } -#line 3465 "seclang-parser.cc" // lalr1.cc:870 +#line 3474 "seclang-parser.cc" // lalr1.cc:906 break; case 208: -#line 2061 "seclang-parser.yy" // lalr1.cc:870 +#line 2062 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3473 "seclang-parser.cc" // lalr1.cc:870 +#line 3482 "seclang-parser.cc" // lalr1.cc:906 break; case 209: -#line 2065 "seclang-parser.yy" // lalr1.cc:870 +#line 2066 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3481 "seclang-parser.cc" // lalr1.cc:870 +#line 3490 "seclang-parser.cc" // lalr1.cc:906 break; case 210: -#line 2069 "seclang-parser.yy" // lalr1.cc:870 +#line 2070 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_NoDictElement()); } -#line 3489 "seclang-parser.cc" // lalr1.cc:870 +#line 3498 "seclang-parser.cc" // lalr1.cc:906 break; case 211: -#line 2073 "seclang-parser.yy" // lalr1.cc:870 +#line 2074 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV:" + yystack_[0].value.as< std::string > ())); } -#line 3497 "seclang-parser.cc" // lalr1.cc:870 +#line 3506 "seclang-parser.cc" // lalr1.cc:906 break; case 212: -#line 2077 "seclang-parser.yy" // lalr1.cc:870 +#line 2078 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV:" + yystack_[0].value.as< std::string > ())); } -#line 3505 "seclang-parser.cc" // lalr1.cc:870 +#line 3514 "seclang-parser.cc" // lalr1.cc:906 break; case 213: -#line 2081 "seclang-parser.yy" // lalr1.cc:870 +#line 2082 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV")); } -#line 3513 "seclang-parser.cc" // lalr1.cc:870 +#line 3522 "seclang-parser.cc" // lalr1.cc:906 break; case 214: -#line 2085 "seclang-parser.yy" // lalr1.cc:870 +#line 2086 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML("XML:" + yystack_[0].value.as< std::string > ())); } -#line 3521 "seclang-parser.cc" // lalr1.cc:870 +#line 3530 "seclang-parser.cc" // lalr1.cc:906 break; case 215: -#line 2089 "seclang-parser.yy" // lalr1.cc:870 +#line 2090 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML("XML:" + yystack_[0].value.as< std::string > ())); } -#line 3529 "seclang-parser.cc" // lalr1.cc:870 +#line 3538 "seclang-parser.cc" // lalr1.cc:906 break; case 216: -#line 2093 "seclang-parser.yy" // lalr1.cc:870 +#line 2094 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML_NoDictElement()); } -#line 3537 "seclang-parser.cc" // lalr1.cc:870 +#line 3546 "seclang-parser.cc" // lalr1.cc:906 break; case 217: -#line 2097 "seclang-parser.yy" // lalr1.cc:870 +#line 2098 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3545 "seclang-parser.cc" // lalr1.cc:870 +#line 3554 "seclang-parser.cc" // lalr1.cc:906 break; case 218: -#line 2101 "seclang-parser.yy" // lalr1.cc:870 +#line 2102 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3553 "seclang-parser.cc" // lalr1.cc:870 +#line 3562 "seclang-parser.cc" // lalr1.cc:906 break; case 219: -#line 2105 "seclang-parser.yy" // lalr1.cc:870 +#line 2106 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_NoDictElement()); } -#line 3561 "seclang-parser.cc" // lalr1.cc:870 +#line 3570 "seclang-parser.cc" // lalr1.cc:906 break; case 220: -#line 2109 "seclang-parser.yy" // lalr1.cc:870 +#line 2110 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3569 "seclang-parser.cc" // lalr1.cc:870 +#line 3578 "seclang-parser.cc" // lalr1.cc:906 break; case 221: -#line 2113 "seclang-parser.yy" // lalr1.cc:870 +#line 2114 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3577 "seclang-parser.cc" // lalr1.cc:870 +#line 3586 "seclang-parser.cc" // lalr1.cc:906 break; case 222: -#line 2117 "seclang-parser.yy" // lalr1.cc:870 +#line 2118 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3585 "seclang-parser.cc" // lalr1.cc:870 +#line 3594 "seclang-parser.cc" // lalr1.cc:906 break; case 223: -#line 2121 "seclang-parser.yy" // lalr1.cc:870 +#line 2122 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_NoDictElement()); } -#line 3593 "seclang-parser.cc" // lalr1.cc:870 +#line 3602 "seclang-parser.cc" // lalr1.cc:906 break; case 224: -#line 2125 "seclang-parser.yy" // lalr1.cc:870 +#line 2126 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3601 "seclang-parser.cc" // lalr1.cc:870 +#line 3610 "seclang-parser.cc" // lalr1.cc:906 break; case 225: -#line 2129 "seclang-parser.yy" // lalr1.cc:870 +#line 2130 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3609 "seclang-parser.cc" // lalr1.cc:870 +#line 3618 "seclang-parser.cc" // lalr1.cc:906 break; case 226: -#line 2133 "seclang-parser.yy" // lalr1.cc:870 +#line 2134 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3617 "seclang-parser.cc" // lalr1.cc:870 +#line 3626 "seclang-parser.cc" // lalr1.cc:906 break; case 227: -#line 2137 "seclang-parser.yy" // lalr1.cc:870 +#line 2138 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_NoDictElement()); } -#line 3625 "seclang-parser.cc" // lalr1.cc:870 +#line 3634 "seclang-parser.cc" // lalr1.cc:906 break; case 228: -#line 2141 "seclang-parser.yy" // lalr1.cc:870 +#line 2142 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3633 "seclang-parser.cc" // lalr1.cc:870 +#line 3642 "seclang-parser.cc" // lalr1.cc:906 break; case 229: -#line 2145 "seclang-parser.yy" // lalr1.cc:870 +#line 2146 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3641 "seclang-parser.cc" // lalr1.cc:870 +#line 3650 "seclang-parser.cc" // lalr1.cc:906 break; case 230: -#line 2149 "seclang-parser.yy" // lalr1.cc:870 +#line 2150 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3649 "seclang-parser.cc" // lalr1.cc:870 +#line 3658 "seclang-parser.cc" // lalr1.cc:906 break; case 231: -#line 2153 "seclang-parser.yy" // lalr1.cc:870 +#line 2154 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_NoDictElement()); } -#line 3657 "seclang-parser.cc" // lalr1.cc:870 +#line 3666 "seclang-parser.cc" // lalr1.cc:906 break; case 232: -#line 2157 "seclang-parser.yy" // lalr1.cc:870 +#line 2158 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3665 "seclang-parser.cc" // lalr1.cc:870 +#line 3674 "seclang-parser.cc" // lalr1.cc:906 break; case 233: -#line 2161 "seclang-parser.yy" // lalr1.cc:870 +#line 2162 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3673 "seclang-parser.cc" // lalr1.cc:870 +#line 3682 "seclang-parser.cc" // lalr1.cc:906 break; case 234: -#line 2165 "seclang-parser.yy" // lalr1.cc:870 +#line 2166 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3681 "seclang-parser.cc" // lalr1.cc:870 +#line 3690 "seclang-parser.cc" // lalr1.cc:906 break; case 235: -#line 2169 "seclang-parser.yy" // lalr1.cc:870 +#line 2170 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_NoDictElement()); } -#line 3689 "seclang-parser.cc" // lalr1.cc:870 +#line 3698 "seclang-parser.cc" // lalr1.cc:906 break; case 236: -#line 2173 "seclang-parser.yy" // lalr1.cc:870 +#line 2174 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3697 "seclang-parser.cc" // lalr1.cc:870 +#line 3706 "seclang-parser.cc" // lalr1.cc:906 break; case 237: -#line 2177 "seclang-parser.yy" // lalr1.cc:870 +#line 2178 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3705 "seclang-parser.cc" // lalr1.cc:870 +#line 3714 "seclang-parser.cc" // lalr1.cc:906 break; case 238: -#line 2181 "seclang-parser.yy" // lalr1.cc:870 +#line 2182 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3713 "seclang-parser.cc" // lalr1.cc:870 +#line 3722 "seclang-parser.cc" // lalr1.cc:906 break; case 239: -#line 2185 "seclang-parser.yy" // lalr1.cc:870 +#line 2186 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_NoDictElement()); } -#line 3721 "seclang-parser.cc" // lalr1.cc:870 +#line 3730 "seclang-parser.cc" // lalr1.cc:906 break; case 240: -#line 2189 "seclang-parser.yy" // lalr1.cc:870 +#line 2190 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3729 "seclang-parser.cc" // lalr1.cc:870 +#line 3738 "seclang-parser.cc" // lalr1.cc:906 break; case 241: -#line 2193 "seclang-parser.yy" // lalr1.cc:870 +#line 2194 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3737 "seclang-parser.cc" // lalr1.cc:870 +#line 3746 "seclang-parser.cc" // lalr1.cc:906 break; case 242: -#line 2197 "seclang-parser.yy" // lalr1.cc:870 +#line 2198 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3745 "seclang-parser.cc" // lalr1.cc:870 +#line 3754 "seclang-parser.cc" // lalr1.cc:906 break; case 243: -#line 2201 "seclang-parser.yy" // lalr1.cc:870 +#line 2202 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_NoDictElement()); } -#line 3753 "seclang-parser.cc" // lalr1.cc:870 +#line 3762 "seclang-parser.cc" // lalr1.cc:906 break; case 244: -#line 2205 "seclang-parser.yy" // lalr1.cc:870 +#line 2206 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3761 "seclang-parser.cc" // lalr1.cc:870 +#line 3770 "seclang-parser.cc" // lalr1.cc:906 break; case 245: -#line 2209 "seclang-parser.yy" // lalr1.cc:870 +#line 2210 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3769 "seclang-parser.cc" // lalr1.cc:870 +#line 3778 "seclang-parser.cc" // lalr1.cc:906 break; case 246: -#line 2213 "seclang-parser.yy" // lalr1.cc:870 +#line 2214 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_NoDictElement()); } -#line 3777 "seclang-parser.cc" // lalr1.cc:870 +#line 3786 "seclang-parser.cc" // lalr1.cc:906 break; case 247: -#line 2217 "seclang-parser.yy" // lalr1.cc:870 +#line 2218 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3785 "seclang-parser.cc" // lalr1.cc:870 +#line 3794 "seclang-parser.cc" // lalr1.cc:906 break; case 248: -#line 2221 "seclang-parser.yy" // lalr1.cc:870 +#line 2222 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3793 "seclang-parser.cc" // lalr1.cc:870 +#line 3802 "seclang-parser.cc" // lalr1.cc:906 break; case 249: -#line 2225 "seclang-parser.yy" // lalr1.cc:870 +#line 2226 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_NoDictElement()); } -#line 3801 "seclang-parser.cc" // lalr1.cc:870 +#line 3810 "seclang-parser.cc" // lalr1.cc:906 break; case 250: -#line 2230 "seclang-parser.yy" // lalr1.cc:870 +#line 2231 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3809 "seclang-parser.cc" // lalr1.cc:870 +#line 3818 "seclang-parser.cc" // lalr1.cc:906 break; case 251: -#line 2234 "seclang-parser.yy" // lalr1.cc:870 +#line 2235 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3817 "seclang-parser.cc" // lalr1.cc:870 +#line 3826 "seclang-parser.cc" // lalr1.cc:906 break; case 252: -#line 2238 "seclang-parser.yy" // lalr1.cc:870 +#line 2239 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_NoDictElement()); } -#line 3825 "seclang-parser.cc" // lalr1.cc:870 +#line 3834 "seclang-parser.cc" // lalr1.cc:906 break; case 253: -#line 2243 "seclang-parser.yy" // lalr1.cc:870 +#line 2244 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3833 "seclang-parser.cc" // lalr1.cc:870 +#line 3842 "seclang-parser.cc" // lalr1.cc:906 break; case 254: -#line 2247 "seclang-parser.yy" // lalr1.cc:870 +#line 2248 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3841 "seclang-parser.cc" // lalr1.cc:870 +#line 3850 "seclang-parser.cc" // lalr1.cc:906 break; case 255: -#line 2251 "seclang-parser.yy" // lalr1.cc:870 +#line 2252 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_NoDictElement()); } -#line 3849 "seclang-parser.cc" // lalr1.cc:870 +#line 3858 "seclang-parser.cc" // lalr1.cc:906 break; case 256: -#line 2256 "seclang-parser.yy" // lalr1.cc:870 +#line 2257 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentType()); } -#line 3857 "seclang-parser.cc" // lalr1.cc:870 +#line 3866 "seclang-parser.cc" // lalr1.cc:906 break; case 257: -#line 2261 "seclang-parser.yy" // lalr1.cc:870 +#line 2262 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3865 "seclang-parser.cc" // lalr1.cc:870 +#line 3874 "seclang-parser.cc" // lalr1.cc:906 break; case 258: -#line 2265 "seclang-parser.yy" // lalr1.cc:870 +#line 2266 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3873 "seclang-parser.cc" // lalr1.cc:870 +#line 3882 "seclang-parser.cc" // lalr1.cc:906 break; case 259: -#line 2269 "seclang-parser.yy" // lalr1.cc:870 +#line 2270 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_NoDictElement()); } -#line 3881 "seclang-parser.cc" // lalr1.cc:870 +#line 3890 "seclang-parser.cc" // lalr1.cc:906 break; case 260: -#line 2273 "seclang-parser.yy" // lalr1.cc:870 +#line 2274 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsCombinedSize()); } -#line 3889 "seclang-parser.cc" // lalr1.cc:870 +#line 3898 "seclang-parser.cc" // lalr1.cc:906 break; case 261: -#line 2277 "seclang-parser.yy" // lalr1.cc:870 +#line 2278 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::AuthType()); } -#line 3897 "seclang-parser.cc" // lalr1.cc:870 +#line 3906 "seclang-parser.cc" // lalr1.cc:906 break; case 262: -#line 2281 "seclang-parser.yy" // lalr1.cc:870 +#line 2282 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesCombinedSize()); } -#line 3905 "seclang-parser.cc" // lalr1.cc:870 +#line 3914 "seclang-parser.cc" // lalr1.cc:906 break; case 263: -#line 2285 "seclang-parser.yy" // lalr1.cc:870 +#line 2286 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequest()); } -#line 3913 "seclang-parser.cc" // lalr1.cc:870 +#line 3922 "seclang-parser.cc" // lalr1.cc:906 break; case 264: -#line 2289 "seclang-parser.yy" // lalr1.cc:870 +#line 2290 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequestLength()); } -#line 3921 "seclang-parser.cc" // lalr1.cc:870 +#line 3930 "seclang-parser.cc" // lalr1.cc:906 break; case 265: -#line 2293 "seclang-parser.yy" // lalr1.cc:870 +#line 2294 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::InboundDataError()); } -#line 3929 "seclang-parser.cc" // lalr1.cc:870 +#line 3938 "seclang-parser.cc" // lalr1.cc:906 break; case 266: -#line 2297 "seclang-parser.yy" // lalr1.cc:870 +#line 2298 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVar()); } -#line 3937 "seclang-parser.cc" // lalr1.cc:870 +#line 3946 "seclang-parser.cc" // lalr1.cc:906 break; case 267: -#line 2301 "seclang-parser.yy" // lalr1.cc:870 +#line 2302 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarName()); } -#line 3945 "seclang-parser.cc" // lalr1.cc:870 +#line 3954 "seclang-parser.cc" // lalr1.cc:906 break; case 268: -#line 2305 "seclang-parser.yy" // lalr1.cc:870 +#line 2306 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryQuoted()); } -#line 3953 "seclang-parser.cc" // lalr1.cc:870 +#line 3962 "seclang-parser.cc" // lalr1.cc:906 break; case 269: -#line 2309 "seclang-parser.yy" // lalr1.cc:870 +#line 2310 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryWhiteSpace()); } -#line 3961 "seclang-parser.cc" // lalr1.cc:870 +#line 3970 "seclang-parser.cc" // lalr1.cc:906 break; case 270: -#line 2313 "seclang-parser.yy" // lalr1.cc:870 +#line 2314 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartCrlfLFLines()); } -#line 3969 "seclang-parser.cc" // lalr1.cc:870 +#line 3978 "seclang-parser.cc" // lalr1.cc:906 break; case 271: -#line 2317 "seclang-parser.yy" // lalr1.cc:870 +#line 2318 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateAfter()); } -#line 3977 "seclang-parser.cc" // lalr1.cc:870 +#line 3986 "seclang-parser.cc" // lalr1.cc:906 break; case 272: -#line 2321 "seclang-parser.yy" // lalr1.cc:870 +#line 2322 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateBefore()); } -#line 3985 "seclang-parser.cc" // lalr1.cc:870 +#line 3994 "seclang-parser.cc" // lalr1.cc:906 break; case 273: -#line 2325 "seclang-parser.yy" // lalr1.cc:870 +#line 2326 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartFileLimitExceeded()); } -#line 3993 "seclang-parser.cc" // lalr1.cc:870 +#line 4002 "seclang-parser.cc" // lalr1.cc:906 break; case 274: -#line 2329 "seclang-parser.yy" // lalr1.cc:870 +#line 2330 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartHeaderFolding()); } -#line 4001 "seclang-parser.cc" // lalr1.cc:870 +#line 4010 "seclang-parser.cc" // lalr1.cc:906 break; case 275: -#line 2333 "seclang-parser.yy" // lalr1.cc:870 +#line 2334 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidHeaderFolding()); } -#line 4009 "seclang-parser.cc" // lalr1.cc:870 +#line 4018 "seclang-parser.cc" // lalr1.cc:906 break; case 276: -#line 2337 "seclang-parser.yy" // lalr1.cc:870 +#line 2338 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidPart()); } -#line 4017 "seclang-parser.cc" // lalr1.cc:870 +#line 4026 "seclang-parser.cc" // lalr1.cc:906 break; case 277: -#line 2341 "seclang-parser.yy" // lalr1.cc:870 +#line 2342 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidQuoting()); } -#line 4025 "seclang-parser.cc" // lalr1.cc:870 +#line 4034 "seclang-parser.cc" // lalr1.cc:906 break; case 278: -#line 2345 "seclang-parser.yy" // lalr1.cc:870 +#line 2346 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartLFLine()); } -#line 4033 "seclang-parser.cc" // lalr1.cc:870 +#line 4042 "seclang-parser.cc" // lalr1.cc:906 break; case 279: -#line 2349 "seclang-parser.yy" // lalr1.cc:870 +#line 2350 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 4041 "seclang-parser.cc" // lalr1.cc:870 +#line 4050 "seclang-parser.cc" // lalr1.cc:906 break; case 280: -#line 2353 "seclang-parser.yy" // lalr1.cc:870 +#line 2354 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 4049 "seclang-parser.cc" // lalr1.cc:870 +#line 4058 "seclang-parser.cc" // lalr1.cc:906 break; case 281: -#line 2357 "seclang-parser.yy" // lalr1.cc:870 +#line 2358 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartStrictError()); } -#line 4057 "seclang-parser.cc" // lalr1.cc:870 +#line 4066 "seclang-parser.cc" // lalr1.cc:906 break; case 282: -#line 2361 "seclang-parser.yy" // lalr1.cc:870 +#line 2362 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartUnmatchedBoundary()); } -#line 4065 "seclang-parser.cc" // lalr1.cc:870 +#line 4074 "seclang-parser.cc" // lalr1.cc:906 break; case 283: -#line 2365 "seclang-parser.yy" // lalr1.cc:870 +#line 2366 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::OutboundDataError()); } -#line 4073 "seclang-parser.cc" // lalr1.cc:870 +#line 4082 "seclang-parser.cc" // lalr1.cc:906 break; case 284: -#line 2369 "seclang-parser.yy" // lalr1.cc:870 +#line 2370 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::PathInfo()); } -#line 4081 "seclang-parser.cc" // lalr1.cc:870 +#line 4090 "seclang-parser.cc" // lalr1.cc:906 break; case 285: -#line 2373 "seclang-parser.yy" // lalr1.cc:870 +#line 2374 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::QueryString()); } -#line 4089 "seclang-parser.cc" // lalr1.cc:870 +#line 4098 "seclang-parser.cc" // lalr1.cc:906 break; case 286: -#line 2377 "seclang-parser.yy" // lalr1.cc:870 +#line 2378 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteAddr()); } -#line 4097 "seclang-parser.cc" // lalr1.cc:870 +#line 4106 "seclang-parser.cc" // lalr1.cc:906 break; case 287: -#line 2381 "seclang-parser.yy" // lalr1.cc:870 +#line 2382 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteHost()); } -#line 4105 "seclang-parser.cc" // lalr1.cc:870 +#line 4114 "seclang-parser.cc" // lalr1.cc:906 break; case 288: -#line 2385 "seclang-parser.yy" // lalr1.cc:870 +#line 2386 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemotePort()); } -#line 4113 "seclang-parser.cc" // lalr1.cc:870 +#line 4122 "seclang-parser.cc" // lalr1.cc:906 break; case 289: -#line 2389 "seclang-parser.yy" // lalr1.cc:870 +#line 2390 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyError()); } -#line 4121 "seclang-parser.cc" // lalr1.cc:870 +#line 4130 "seclang-parser.cc" // lalr1.cc:906 break; case 290: -#line 2393 "seclang-parser.yy" // lalr1.cc:870 +#line 2394 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyErrorMsg()); } -#line 4129 "seclang-parser.cc" // lalr1.cc:870 +#line 4138 "seclang-parser.cc" // lalr1.cc:906 break; case 291: -#line 2397 "seclang-parser.yy" // lalr1.cc:870 +#line 2398 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessor()); } -#line 4137 "seclang-parser.cc" // lalr1.cc:870 +#line 4146 "seclang-parser.cc" // lalr1.cc:906 break; case 292: -#line 2401 "seclang-parser.yy" // lalr1.cc:870 +#line 2402 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorError()); } -#line 4145 "seclang-parser.cc" // lalr1.cc:870 +#line 4154 "seclang-parser.cc" // lalr1.cc:906 break; case 293: -#line 2405 "seclang-parser.yy" // lalr1.cc:870 +#line 2406 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorErrorMsg()); } -#line 4153 "seclang-parser.cc" // lalr1.cc:870 +#line 4162 "seclang-parser.cc" // lalr1.cc:906 break; case 294: -#line 2409 "seclang-parser.yy" // lalr1.cc:870 +#line 2410 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBasename()); } -#line 4161 "seclang-parser.cc" // lalr1.cc:870 +#line 4170 "seclang-parser.cc" // lalr1.cc:906 break; case 295: -#line 2413 "seclang-parser.yy" // lalr1.cc:870 +#line 2414 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBody()); } -#line 4169 "seclang-parser.cc" // lalr1.cc:870 +#line 4178 "seclang-parser.cc" // lalr1.cc:906 break; case 296: -#line 2417 "seclang-parser.yy" // lalr1.cc:870 +#line 2418 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBodyLength()); } -#line 4177 "seclang-parser.cc" // lalr1.cc:870 +#line 4186 "seclang-parser.cc" // lalr1.cc:906 break; case 297: -#line 2421 "seclang-parser.yy" // lalr1.cc:870 +#line 2422 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestFilename()); } -#line 4185 "seclang-parser.cc" // lalr1.cc:870 +#line 4194 "seclang-parser.cc" // lalr1.cc:906 break; case 298: -#line 2425 "seclang-parser.yy" // lalr1.cc:870 +#line 2426 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestLine()); } -#line 4193 "seclang-parser.cc" // lalr1.cc:870 +#line 4202 "seclang-parser.cc" // lalr1.cc:906 break; case 299: -#line 2429 "seclang-parser.yy" // lalr1.cc:870 +#line 2430 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestMethod()); } -#line 4201 "seclang-parser.cc" // lalr1.cc:870 +#line 4210 "seclang-parser.cc" // lalr1.cc:906 break; case 300: -#line 2433 "seclang-parser.yy" // lalr1.cc:870 +#line 2434 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestProtocol()); } -#line 4209 "seclang-parser.cc" // lalr1.cc:870 +#line 4218 "seclang-parser.cc" // lalr1.cc:906 break; case 301: -#line 2437 "seclang-parser.yy" // lalr1.cc:870 +#line 2438 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURI()); } -#line 4217 "seclang-parser.cc" // lalr1.cc:870 +#line 4226 "seclang-parser.cc" // lalr1.cc:906 break; case 302: -#line 2441 "seclang-parser.yy" // lalr1.cc:870 +#line 2442 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURIRaw()); } -#line 4225 "seclang-parser.cc" // lalr1.cc:870 +#line 4234 "seclang-parser.cc" // lalr1.cc:906 break; case 303: -#line 2445 "seclang-parser.yy" // lalr1.cc:870 +#line 2446 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseBody()); } -#line 4233 "seclang-parser.cc" // lalr1.cc:870 +#line 4242 "seclang-parser.cc" // lalr1.cc:906 break; case 304: -#line 2449 "seclang-parser.yy" // lalr1.cc:870 +#line 2450 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentLength()); } -#line 4241 "seclang-parser.cc" // lalr1.cc:870 +#line 4250 "seclang-parser.cc" // lalr1.cc:906 break; case 305: -#line 2453 "seclang-parser.yy" // lalr1.cc:870 +#line 2454 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseProtocol()); } -#line 4249 "seclang-parser.cc" // lalr1.cc:870 +#line 4258 "seclang-parser.cc" // lalr1.cc:906 break; case 306: -#line 2457 "seclang-parser.yy" // lalr1.cc:870 +#line 2458 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseStatus()); } -#line 4257 "seclang-parser.cc" // lalr1.cc:870 +#line 4266 "seclang-parser.cc" // lalr1.cc:906 break; case 307: -#line 2461 "seclang-parser.yy" // lalr1.cc:870 +#line 2462 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerAddr()); } -#line 4265 "seclang-parser.cc" // lalr1.cc:870 +#line 4274 "seclang-parser.cc" // lalr1.cc:906 break; case 308: -#line 2465 "seclang-parser.yy" // lalr1.cc:870 +#line 2466 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerName()); } -#line 4273 "seclang-parser.cc" // lalr1.cc:870 +#line 4282 "seclang-parser.cc" // lalr1.cc:906 break; case 309: -#line 2469 "seclang-parser.yy" // lalr1.cc:870 +#line 2470 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerPort()); } -#line 4281 "seclang-parser.cc" // lalr1.cc:870 +#line 4290 "seclang-parser.cc" // lalr1.cc:906 break; case 310: -#line 2473 "seclang-parser.yy" // lalr1.cc:870 +#line 2474 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::SessionID()); } -#line 4289 "seclang-parser.cc" // lalr1.cc:870 +#line 4298 "seclang-parser.cc" // lalr1.cc:906 break; case 311: -#line 2477 "seclang-parser.yy" // lalr1.cc:870 +#line 2478 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UniqueID()); } -#line 4297 "seclang-parser.cc" // lalr1.cc:870 +#line 4306 "seclang-parser.cc" // lalr1.cc:906 break; case 312: -#line 2481 "seclang-parser.yy" // lalr1.cc:870 +#line 2482 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UrlEncodedError()); } -#line 4305 "seclang-parser.cc" // lalr1.cc:870 +#line 4314 "seclang-parser.cc" // lalr1.cc:906 break; case 313: -#line 2485 "seclang-parser.yy" // lalr1.cc:870 +#line 2486 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UserID()); } -#line 4313 "seclang-parser.cc" // lalr1.cc:870 +#line 4322 "seclang-parser.cc" // lalr1.cc:906 break; case 314: -#line 2489 "seclang-parser.yy" // lalr1.cc:870 +#line 2490 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 4321 "seclang-parser.cc" // lalr1.cc:870 +#line 4330 "seclang-parser.cc" // lalr1.cc:906 break; case 315: -#line 2493 "seclang-parser.yy" // lalr1.cc:870 +#line 2494 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 4329 "seclang-parser.cc" // lalr1.cc:870 +#line 4338 "seclang-parser.cc" // lalr1.cc:906 break; case 316: -#line 2497 "seclang-parser.yy" // lalr1.cc:870 +#line 2498 "seclang-parser.yy" // lalr1.cc:906 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::WebAppId()); } -#line 4337 "seclang-parser.cc" // lalr1.cc:870 +#line 4346 "seclang-parser.cc" // lalr1.cc:906 break; case 317: -#line 2501 "seclang-parser.yy" // lalr1.cc:870 +#line 2502 "seclang-parser.yy" // lalr1.cc:906 { 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 4348 "seclang-parser.cc" // lalr1.cc:870 +#line 4357 "seclang-parser.cc" // lalr1.cc:906 break; case 318: -#line 2509 "seclang-parser.yy" // lalr1.cc:870 +#line 2510 "seclang-parser.yy" // lalr1.cc:906 { 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 4359 "seclang-parser.cc" // lalr1.cc:870 +#line 4368 "seclang-parser.cc" // lalr1.cc:906 break; case 319: -#line 2516 "seclang-parser.yy" // lalr1.cc:870 +#line 2517 "seclang-parser.yy" // lalr1.cc:906 { 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 4370 "seclang-parser.cc" // lalr1.cc:870 +#line 4379 "seclang-parser.cc" // lalr1.cc:906 break; case 320: -#line 2523 "seclang-parser.yy" // lalr1.cc:870 +#line 2524 "seclang-parser.yy" // lalr1.cc:906 { 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 4381 "seclang-parser.cc" // lalr1.cc:870 +#line 4390 "seclang-parser.cc" // lalr1.cc:906 break; case 321: -#line 2530 "seclang-parser.yy" // lalr1.cc:870 +#line 2531 "seclang-parser.yy" // lalr1.cc:906 { 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 4392 "seclang-parser.cc" // lalr1.cc:870 +#line 4401 "seclang-parser.cc" // lalr1.cc:906 break; case 322: -#line 2537 "seclang-parser.yy" // lalr1.cc:870 +#line 2538 "seclang-parser.yy" // lalr1.cc:906 { 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 4403 "seclang-parser.cc" // lalr1.cc:870 +#line 4412 "seclang-parser.cc" // lalr1.cc:906 break; case 323: -#line 2544 "seclang-parser.yy" // lalr1.cc:870 +#line 2545 "seclang-parser.yy" // lalr1.cc:906 { 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 4414 "seclang-parser.cc" // lalr1.cc:870 +#line 4423 "seclang-parser.cc" // lalr1.cc:906 break; case 324: -#line 2551 "seclang-parser.yy" // lalr1.cc:870 +#line 2552 "seclang-parser.yy" // lalr1.cc:906 { 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 4425 "seclang-parser.cc" // lalr1.cc:870 +#line 4434 "seclang-parser.cc" // lalr1.cc:906 break; case 325: -#line 2558 "seclang-parser.yy" // lalr1.cc:870 +#line 2559 "seclang-parser.yy" // lalr1.cc:906 { 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 4436 "seclang-parser.cc" // lalr1.cc:870 +#line 4445 "seclang-parser.cc" // lalr1.cc:906 break; case 326: -#line 2565 "seclang-parser.yy" // lalr1.cc:870 +#line 2566 "seclang-parser.yy" // lalr1.cc:906 { 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 4447 "seclang-parser.cc" // lalr1.cc:870 +#line 4456 "seclang-parser.cc" // lalr1.cc:906 break; case 327: -#line 2572 "seclang-parser.yy" // lalr1.cc:870 +#line 2573 "seclang-parser.yy" // lalr1.cc:906 { 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 4458 "seclang-parser.cc" // lalr1.cc:870 +#line 4467 "seclang-parser.cc" // lalr1.cc:906 break; case 328: -#line 2579 "seclang-parser.yy" // lalr1.cc:870 +#line 2580 "seclang-parser.yy" // lalr1.cc:906 { 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 4469 "seclang-parser.cc" // lalr1.cc:870 +#line 4478 "seclang-parser.cc" // lalr1.cc:906 break; case 329: -#line 2586 "seclang-parser.yy" // lalr1.cc:870 +#line 2587 "seclang-parser.yy" // lalr1.cc:906 { 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 4480 "seclang-parser.cc" // lalr1.cc:870 +#line 4489 "seclang-parser.cc" // lalr1.cc:906 break; case 330: -#line 2596 "seclang-parser.yy" // lalr1.cc:870 +#line 2597 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Accuracy(yystack_[0].value.as< std::string > ())); } -#line 4488 "seclang-parser.cc" // lalr1.cc:870 +#line 4497 "seclang-parser.cc" // lalr1.cc:906 break; case 331: -#line 2600 "seclang-parser.yy" // lalr1.cc:870 +#line 2601 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Allow(yystack_[0].value.as< std::string > ())); } -#line 4496 "seclang-parser.cc" // lalr1.cc:870 +#line 4505 "seclang-parser.cc" // lalr1.cc:906 break; case 332: -#line 2604 "seclang-parser.yy" // lalr1.cc:870 +#line 2605 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("Append", yystack_[1].location); } -#line 4504 "seclang-parser.cc" // lalr1.cc:870 +#line 4513 "seclang-parser.cc" // lalr1.cc:906 break; case 333: -#line 2608 "seclang-parser.yy" // lalr1.cc:870 +#line 2609 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as< std::string > ())); } -#line 4512 "seclang-parser.cc" // lalr1.cc:870 +#line 4521 "seclang-parser.cc" // lalr1.cc:906 break; case 334: -#line 2612 "seclang-parser.yy" // lalr1.cc:870 +#line 2613 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Block(yystack_[0].value.as< std::string > ())); } -#line 4520 "seclang-parser.cc" // lalr1.cc:870 +#line 4529 "seclang-parser.cc" // lalr1.cc:906 break; case 335: -#line 2616 "seclang-parser.yy" // lalr1.cc:870 +#line 2617 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Capture(yystack_[0].value.as< std::string > ())); } -#line 4528 "seclang-parser.cc" // lalr1.cc:870 +#line 4537 "seclang-parser.cc" // lalr1.cc:906 break; case 336: -#line 2620 "seclang-parser.yy" // lalr1.cc:870 +#line 2621 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Chain(yystack_[0].value.as< std::string > ())); } -#line 4536 "seclang-parser.cc" // lalr1.cc:870 +#line 4545 "seclang-parser.cc" // lalr1.cc:906 break; case 337: -#line 2624 "seclang-parser.yy" // lalr1.cc:870 +#line 2625 "seclang-parser.yy" // lalr1.cc:906 { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4545 "seclang-parser.cc" // lalr1.cc:870 +#line 4554 "seclang-parser.cc" // lalr1.cc:906 break; case 338: -#line 2629 "seclang-parser.yy" // lalr1.cc:870 +#line 2630 "seclang-parser.yy" // lalr1.cc:906 { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4554 "seclang-parser.cc" // lalr1.cc:870 +#line 4563 "seclang-parser.cc" // lalr1.cc:906 break; case 339: -#line 2634 "seclang-parser.yy" // lalr1.cc:870 +#line 2635 "seclang-parser.yy" // lalr1.cc:906 { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4563 "seclang-parser.cc" // lalr1.cc:870 +#line 4572 "seclang-parser.cc" // lalr1.cc:906 break; case 340: -#line 2639 "seclang-parser.yy" // lalr1.cc:870 +#line 2640 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::AuditLogParts(yystack_[0].value.as< std::string > ())); } -#line 4571 "seclang-parser.cc" // lalr1.cc:870 +#line 4580 "seclang-parser.cc" // lalr1.cc:906 break; case 341: -#line 2643 "seclang-parser.yy" // lalr1.cc:870 +#line 2644 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorJSON(yystack_[0].value.as< std::string > ())); } -#line 4579 "seclang-parser.cc" // lalr1.cc:870 +#line 4588 "seclang-parser.cc" // lalr1.cc:906 break; case 342: -#line 2647 "seclang-parser.yy" // lalr1.cc:870 +#line 2648 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorXML(yystack_[0].value.as< std::string > ())); } -#line 4587 "seclang-parser.cc" // lalr1.cc:870 +#line 4596 "seclang-parser.cc" // lalr1.cc:906 break; case 343: -#line 2651 "seclang-parser.yy" // lalr1.cc:870 +#line 2652 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorURLENCODED(yystack_[0].value.as< std::string > ())); } -#line 4595 "seclang-parser.cc" // lalr1.cc:870 +#line 4604 "seclang-parser.cc" // lalr1.cc:906 break; case 344: -#line 2655 "seclang-parser.yy" // lalr1.cc:870 +#line 2656 "seclang-parser.yy" // lalr1.cc:906 { //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4604 "seclang-parser.cc" // lalr1.cc:870 +#line 4613 "seclang-parser.cc" // lalr1.cc:906 break; case 345: -#line 2660 "seclang-parser.yy" // lalr1.cc:870 +#line 2661 "seclang-parser.yy" // lalr1.cc:906 { //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4613 "seclang-parser.cc" // lalr1.cc:870 +#line 4622 "seclang-parser.cc" // lalr1.cc:906 break; case 346: -#line 2665 "seclang-parser.yy" // lalr1.cc:870 +#line 2666 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "true")); } -#line 4621 "seclang-parser.cc" // lalr1.cc:870 +#line 4630 "seclang-parser.cc" // lalr1.cc:906 break; case 347: -#line 2669 "seclang-parser.yy" // lalr1.cc:870 +#line 2670 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "false")); } -#line 4629 "seclang-parser.cc" // lalr1.cc:870 +#line 4638 "seclang-parser.cc" // lalr1.cc:906 break; case 348: -#line 2673 "seclang-parser.yy" // lalr1.cc:870 +#line 2674 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); } -#line 4637 "seclang-parser.cc" // lalr1.cc:870 +#line 4646 "seclang-parser.cc" // lalr1.cc:906 break; case 349: -#line 2677 "seclang-parser.yy" // lalr1.cc:870 +#line 2678 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); } -#line 4645 "seclang-parser.cc" // lalr1.cc:870 +#line 4654 "seclang-parser.cc" // lalr1.cc:906 break; case 350: -#line 2681 "seclang-parser.yy" // lalr1.cc:870 +#line 2682 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); } -#line 4653 "seclang-parser.cc" // lalr1.cc:870 +#line 4662 "seclang-parser.cc" // lalr1.cc:906 break; case 351: -#line 2685 "seclang-parser.yy" // lalr1.cc:870 +#line 2686 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveById(yystack_[0].value.as< std::string > ())); } -#line 4661 "seclang-parser.cc" // lalr1.cc:870 +#line 4670 "seclang-parser.cc" // lalr1.cc:906 break; case 352: -#line 2689 "seclang-parser.yy" // lalr1.cc:870 +#line 2690 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveByTag(yystack_[0].value.as< std::string > ())); } -#line 4669 "seclang-parser.cc" // lalr1.cc:870 +#line 4678 "seclang-parser.cc" // lalr1.cc:906 break; case 353: -#line 2693 "seclang-parser.yy" // lalr1.cc:870 +#line 2694 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveTargetById(yystack_[0].value.as< std::string > ())); } -#line 4677 "seclang-parser.cc" // lalr1.cc:870 +#line 4686 "seclang-parser.cc" // lalr1.cc:906 break; case 354: -#line 2697 "seclang-parser.yy" // lalr1.cc:870 +#line 2698 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveTargetByTag(yystack_[0].value.as< std::string > ())); } -#line 4685 "seclang-parser.cc" // lalr1.cc:870 +#line 4694 "seclang-parser.cc" // lalr1.cc:906 break; case 355: -#line 2701 "seclang-parser.yy" // lalr1.cc:870 +#line 2702 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Deny(yystack_[0].value.as< std::string > ())); } -#line 4693 "seclang-parser.cc" // lalr1.cc:870 +#line 4702 "seclang-parser.cc" // lalr1.cc:906 break; case 356: -#line 2705 "seclang-parser.yy" // lalr1.cc:870 +#line 2706 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("DeprecateVar", yystack_[1].location); } -#line 4701 "seclang-parser.cc" // lalr1.cc:870 +#line 4710 "seclang-parser.cc" // lalr1.cc:906 break; case 357: -#line 2709 "seclang-parser.yy" // lalr1.cc:870 +#line 2710 "seclang-parser.yy" // lalr1.cc:906 { - //ACTION_NOT_SUPPORTED("Drop", @0); - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Drop(yystack_[0].value.as< std::string > ())); } -#line 4710 "seclang-parser.cc" // lalr1.cc:870 +#line 4718 "seclang-parser.cc" // lalr1.cc:906 break; case 358: -#line 2714 "seclang-parser.yy" // lalr1.cc:870 +#line 2714 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Exec(yystack_[0].value.as< std::string > ())); } -#line 4718 "seclang-parser.cc" // lalr1.cc:870 +#line 4726 "seclang-parser.cc" // lalr1.cc:906 break; case 359: -#line 2718 "seclang-parser.yy" // lalr1.cc:870 +#line 2718 "seclang-parser.yy" // lalr1.cc:906 { //ACTION_NOT_SUPPORTED("ExpireVar", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[0].value.as< std::string > ())); } -#line 4727 "seclang-parser.cc" // lalr1.cc:870 +#line 4735 "seclang-parser.cc" // lalr1.cc:906 break; case 360: -#line 2723 "seclang-parser.yy" // lalr1.cc:870 +#line 2723 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::RuleId(yystack_[0].value.as< std::string > ())); } -#line 4735 "seclang-parser.cc" // lalr1.cc:870 +#line 4743 "seclang-parser.cc" // lalr1.cc:906 break; case 361: -#line 2727 "seclang-parser.yy" // lalr1.cc:870 +#line 2727 "seclang-parser.yy" // lalr1.cc:906 { 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 4743 "seclang-parser.cc" // lalr1.cc:870 +#line 4751 "seclang-parser.cc" // lalr1.cc:906 break; case 362: -#line 2731 "seclang-parser.yy" // lalr1.cc:870 +#line 2731 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::LogData(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4751 "seclang-parser.cc" // lalr1.cc:870 +#line 4759 "seclang-parser.cc" // lalr1.cc:906 break; case 363: -#line 2735 "seclang-parser.yy" // lalr1.cc:870 +#line 2735 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Log(yystack_[0].value.as< std::string > ())); } -#line 4759 "seclang-parser.cc" // lalr1.cc:870 +#line 4767 "seclang-parser.cc" // lalr1.cc:906 break; case 364: -#line 2739 "seclang-parser.yy" // lalr1.cc:870 +#line 2739 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Maturity(yystack_[0].value.as< std::string > ())); } -#line 4767 "seclang-parser.cc" // lalr1.cc:870 +#line 4775 "seclang-parser.cc" // lalr1.cc:906 break; case 365: -#line 2743 "seclang-parser.yy" // lalr1.cc:870 +#line 2743 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Msg(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4775 "seclang-parser.cc" // lalr1.cc:870 +#line 4783 "seclang-parser.cc" // lalr1.cc:906 break; case 366: -#line 2747 "seclang-parser.yy" // lalr1.cc:870 +#line 2747 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::MultiMatch(yystack_[0].value.as< std::string > ())); } -#line 4783 "seclang-parser.cc" // lalr1.cc:870 +#line 4791 "seclang-parser.cc" // lalr1.cc:906 break; case 367: -#line 2751 "seclang-parser.yy" // lalr1.cc:870 +#line 2751 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoAuditLog(yystack_[0].value.as< std::string > ())); } -#line 4791 "seclang-parser.cc" // lalr1.cc:870 +#line 4799 "seclang-parser.cc" // lalr1.cc:906 break; case 368: -#line 2755 "seclang-parser.yy" // lalr1.cc:870 +#line 2755 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoLog(yystack_[0].value.as< std::string > ())); } -#line 4799 "seclang-parser.cc" // lalr1.cc:870 +#line 4807 "seclang-parser.cc" // lalr1.cc:906 break; case 369: -#line 2759 "seclang-parser.yy" // lalr1.cc:870 +#line 2759 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Pass(yystack_[0].value.as< std::string > ())); } -#line 4807 "seclang-parser.cc" // lalr1.cc:870 +#line 4815 "seclang-parser.cc" // lalr1.cc:906 break; case 370: -#line 2763 "seclang-parser.yy" // lalr1.cc:870 +#line 2763 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("Pause", yystack_[1].location); } -#line 4815 "seclang-parser.cc" // lalr1.cc:870 +#line 4823 "seclang-parser.cc" // lalr1.cc:906 break; case 371: -#line 2767 "seclang-parser.yy" // lalr1.cc:870 +#line 2767 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Phase(yystack_[0].value.as< std::string > ())); } -#line 4823 "seclang-parser.cc" // lalr1.cc:870 +#line 4831 "seclang-parser.cc" // lalr1.cc:906 break; case 372: -#line 2771 "seclang-parser.yy" // lalr1.cc:870 +#line 2771 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("Prepend", yystack_[1].location); } -#line 4831 "seclang-parser.cc" // lalr1.cc:870 +#line 4839 "seclang-parser.cc" // lalr1.cc:906 break; case 373: -#line 2775 "seclang-parser.yy" // lalr1.cc:870 +#line 2775 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("Proxy", yystack_[1].location); } -#line 4839 "seclang-parser.cc" // lalr1.cc:870 +#line 4847 "seclang-parser.cc" // lalr1.cc:906 break; case 374: -#line 2779 "seclang-parser.yy" // lalr1.cc:870 +#line 2779 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Redirect(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4847 "seclang-parser.cc" // lalr1.cc:870 +#line 4855 "seclang-parser.cc" // lalr1.cc:906 break; case 375: -#line 2783 "seclang-parser.yy" // lalr1.cc:870 +#line 2783 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Rev(yystack_[0].value.as< std::string > ())); } -#line 4855 "seclang-parser.cc" // lalr1.cc:870 +#line 4863 "seclang-parser.cc" // lalr1.cc:906 break; case 376: -#line 2787 "seclang-parser.yy" // lalr1.cc:870 +#line 2787 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("SanitiseArg", yystack_[1].location); } -#line 4863 "seclang-parser.cc" // lalr1.cc:870 +#line 4871 "seclang-parser.cc" // lalr1.cc:906 break; case 377: -#line 2791 "seclang-parser.yy" // lalr1.cc:870 +#line 2791 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("SanitiseMatched", yystack_[1].location); } -#line 4871 "seclang-parser.cc" // lalr1.cc:870 +#line 4879 "seclang-parser.cc" // lalr1.cc:906 break; case 378: -#line 2795 "seclang-parser.yy" // lalr1.cc:870 +#line 2795 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("SanitiseMatchedBytes", yystack_[1].location); } -#line 4879 "seclang-parser.cc" // lalr1.cc:870 +#line 4887 "seclang-parser.cc" // lalr1.cc:906 break; case 379: -#line 2799 "seclang-parser.yy" // lalr1.cc:870 +#line 2799 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("SanitiseRequestHeader", yystack_[1].location); } -#line 4887 "seclang-parser.cc" // lalr1.cc:870 +#line 4895 "seclang-parser.cc" // lalr1.cc:906 break; case 380: -#line 2803 "seclang-parser.yy" // lalr1.cc:870 +#line 2803 "seclang-parser.yy" // lalr1.cc:906 { ACTION_NOT_SUPPORTED("SanitiseResponseHeader", yystack_[1].location); } -#line 4895 "seclang-parser.cc" // lalr1.cc:870 +#line 4903 "seclang-parser.cc" // lalr1.cc:906 break; case 381: -#line 2807 "seclang-parser.yy" // lalr1.cc:870 +#line 2807 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetENV(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4903 "seclang-parser.cc" // lalr1.cc:870 +#line 4911 "seclang-parser.cc" // lalr1.cc:906 break; case 382: -#line 2811 "seclang-parser.yy" // lalr1.cc:870 +#line 2811 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetRSC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4911 "seclang-parser.cc" // lalr1.cc:870 +#line 4919 "seclang-parser.cc" // lalr1.cc:906 break; case 383: -#line 2815 "seclang-parser.yy" // lalr1.cc:870 +#line 2815 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetSID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4919 "seclang-parser.cc" // lalr1.cc:870 +#line 4927 "seclang-parser.cc" // lalr1.cc:906 break; case 384: -#line 2819 "seclang-parser.yy" // lalr1.cc:870 +#line 2819 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetUID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4927 "seclang-parser.cc" // lalr1.cc:870 +#line 4935 "seclang-parser.cc" // lalr1.cc:906 break; case 385: -#line 2823 "seclang-parser.yy" // lalr1.cc:870 +#line 2823 "seclang-parser.yy" // lalr1.cc:906 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); } -#line 4935 "seclang-parser.cc" // lalr1.cc:870 +#line 4943 "seclang-parser.cc" // lalr1.cc:906 break; case 386: -#line 2827 "seclang-parser.yy" // lalr1.cc:870 +#line 2827 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Severity(yystack_[0].value.as< std::string > ())); } -#line 4943 "seclang-parser.cc" // lalr1.cc:870 +#line 4951 "seclang-parser.cc" // lalr1.cc:906 break; case 387: -#line 2831 "seclang-parser.yy" // lalr1.cc:870 +#line 2831 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Skip(yystack_[0].value.as< std::string > ())); } -#line 4951 "seclang-parser.cc" // lalr1.cc:870 +#line 4959 "seclang-parser.cc" // lalr1.cc:906 break; case 388: -#line 2835 "seclang-parser.yy" // lalr1.cc:870 +#line 2835 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SkipAfter(yystack_[0].value.as< std::string > ())); } -#line 4959 "seclang-parser.cc" // lalr1.cc:870 +#line 4967 "seclang-parser.cc" // lalr1.cc:906 break; case 389: -#line 2839 "seclang-parser.yy" // lalr1.cc:870 +#line 2839 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::data::Status(yystack_[0].value.as< std::string > ())); } -#line 4967 "seclang-parser.cc" // lalr1.cc:870 +#line 4975 "seclang-parser.cc" // lalr1.cc:906 break; case 390: -#line 2843 "seclang-parser.yy" // lalr1.cc:870 +#line 2843 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Tag(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4975 "seclang-parser.cc" // lalr1.cc:870 +#line 4983 "seclang-parser.cc" // lalr1.cc:906 break; case 391: -#line 2847 "seclang-parser.yy" // lalr1.cc:870 +#line 2847 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Ver(yystack_[0].value.as< std::string > ())); } -#line 4983 "seclang-parser.cc" // lalr1.cc:870 +#line 4991 "seclang-parser.cc" // lalr1.cc:906 break; case 392: -#line 2851 "seclang-parser.yy" // lalr1.cc:870 +#line 2851 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::XmlNS(yystack_[0].value.as< std::string > ())); } -#line 4991 "seclang-parser.cc" // lalr1.cc:870 +#line 4999 "seclang-parser.cc" // lalr1.cc:906 break; case 393: -#line 2855 "seclang-parser.yy" // lalr1.cc:870 +#line 2855 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityZero7bit(yystack_[0].value.as< std::string > ())); } -#line 4999 "seclang-parser.cc" // lalr1.cc:870 +#line 5007 "seclang-parser.cc" // lalr1.cc:906 break; case 394: -#line 2859 "seclang-parser.yy" // lalr1.cc:870 +#line 2859 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityOdd7bit(yystack_[0].value.as< std::string > ())); } -#line 5007 "seclang-parser.cc" // lalr1.cc:870 +#line 5015 "seclang-parser.cc" // lalr1.cc:906 break; case 395: -#line 2863 "seclang-parser.yy" // lalr1.cc:870 +#line 2863 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityEven7bit(yystack_[0].value.as< std::string > ())); } -#line 5015 "seclang-parser.cc" // lalr1.cc:870 +#line 5023 "seclang-parser.cc" // lalr1.cc:906 break; case 396: -#line 2867 "seclang-parser.yy" // lalr1.cc:870 +#line 2867 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::SqlHexDecode(yystack_[0].value.as< std::string > ())); } -#line 5023 "seclang-parser.cc" // lalr1.cc:870 +#line 5031 "seclang-parser.cc" // lalr1.cc:906 break; case 397: -#line 2871 "seclang-parser.yy" // lalr1.cc:870 +#line 2871 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64Encode(yystack_[0].value.as< std::string > ())); } -#line 5031 "seclang-parser.cc" // lalr1.cc:870 +#line 5039 "seclang-parser.cc" // lalr1.cc:906 break; case 398: -#line 2875 "seclang-parser.yy" // lalr1.cc:870 +#line 2875 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64Decode(yystack_[0].value.as< std::string > ())); } -#line 5039 "seclang-parser.cc" // lalr1.cc:870 +#line 5047 "seclang-parser.cc" // lalr1.cc:906 break; case 399: -#line 2879 "seclang-parser.yy" // lalr1.cc:870 +#line 2879 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64DecodeExt(yystack_[0].value.as< std::string > ())); } -#line 5047 "seclang-parser.cc" // lalr1.cc:870 +#line 5055 "seclang-parser.cc" // lalr1.cc:906 break; case 400: -#line 2883 "seclang-parser.yy" // lalr1.cc:870 +#line 2883 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CmdLine(yystack_[0].value.as< std::string > ())); } -#line 5055 "seclang-parser.cc" // lalr1.cc:870 +#line 5063 "seclang-parser.cc" // lalr1.cc:906 break; case 401: -#line 2887 "seclang-parser.yy" // lalr1.cc:870 +#line 2887 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Sha1(yystack_[0].value.as< std::string > ())); } -#line 5063 "seclang-parser.cc" // lalr1.cc:870 +#line 5071 "seclang-parser.cc" // lalr1.cc:906 break; case 402: -#line 2891 "seclang-parser.yy" // lalr1.cc:870 +#line 2891 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Md5(yystack_[0].value.as< std::string > ())); } -#line 5071 "seclang-parser.cc" // lalr1.cc:870 +#line 5079 "seclang-parser.cc" // lalr1.cc:906 break; case 403: -#line 2895 "seclang-parser.yy" // lalr1.cc:870 +#line 2895 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::EscapeSeqDecode(yystack_[0].value.as< std::string > ())); } -#line 5079 "seclang-parser.cc" // lalr1.cc:870 +#line 5087 "seclang-parser.cc" // lalr1.cc:906 break; case 404: -#line 2899 "seclang-parser.yy" // lalr1.cc:870 +#line 2899 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexEncode(yystack_[0].value.as< std::string > ())); } -#line 5087 "seclang-parser.cc" // lalr1.cc:870 +#line 5095 "seclang-parser.cc" // lalr1.cc:906 break; case 405: -#line 2903 "seclang-parser.yy" // lalr1.cc:870 +#line 2903 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexDecode(yystack_[0].value.as< std::string > ())); } -#line 5095 "seclang-parser.cc" // lalr1.cc:870 +#line 5103 "seclang-parser.cc" // lalr1.cc:906 break; case 406: -#line 2907 "seclang-parser.yy" // lalr1.cc:870 +#line 2907 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::LowerCase(yystack_[0].value.as< std::string > ())); } -#line 5103 "seclang-parser.cc" // lalr1.cc:870 +#line 5111 "seclang-parser.cc" // lalr1.cc:906 break; case 407: -#line 2911 "seclang-parser.yy" // lalr1.cc:870 +#line 2911 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UpperCase(yystack_[0].value.as< std::string > ())); } -#line 5111 "seclang-parser.cc" // lalr1.cc:870 +#line 5119 "seclang-parser.cc" // lalr1.cc:906 break; case 408: -#line 2915 "seclang-parser.yy" // lalr1.cc:870 +#line 2915 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecodeUni(yystack_[0].value.as< std::string > ())); } -#line 5119 "seclang-parser.cc" // lalr1.cc:870 +#line 5127 "seclang-parser.cc" // lalr1.cc:906 break; case 409: -#line 2919 "seclang-parser.yy" // lalr1.cc:870 +#line 2919 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecode(yystack_[0].value.as< std::string > ())); } -#line 5127 "seclang-parser.cc" // lalr1.cc:870 +#line 5135 "seclang-parser.cc" // lalr1.cc:906 break; case 410: -#line 2923 "seclang-parser.yy" // lalr1.cc:870 +#line 2923 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlEncode(yystack_[0].value.as< std::string > ())); } -#line 5135 "seclang-parser.cc" // lalr1.cc:870 +#line 5143 "seclang-parser.cc" // lalr1.cc:906 break; case 411: -#line 2927 "seclang-parser.yy" // lalr1.cc:870 +#line 2927 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::None(yystack_[0].value.as< std::string > ())); } -#line 5143 "seclang-parser.cc" // lalr1.cc:870 +#line 5151 "seclang-parser.cc" // lalr1.cc:906 break; case 412: -#line 2931 "seclang-parser.yy" // lalr1.cc:870 +#line 2931 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CompressWhitespace(yystack_[0].value.as< std::string > ())); } -#line 5151 "seclang-parser.cc" // lalr1.cc:870 +#line 5159 "seclang-parser.cc" // lalr1.cc:906 break; case 413: -#line 2935 "seclang-parser.yy" // lalr1.cc:870 +#line 2935 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveWhitespace(yystack_[0].value.as< std::string > ())); } -#line 5159 "seclang-parser.cc" // lalr1.cc:870 +#line 5167 "seclang-parser.cc" // lalr1.cc:906 break; case 414: -#line 2939 "seclang-parser.yy" // lalr1.cc:870 +#line 2939 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceNulls(yystack_[0].value.as< std::string > ())); } -#line 5167 "seclang-parser.cc" // lalr1.cc:870 +#line 5175 "seclang-parser.cc" // lalr1.cc:906 break; case 415: -#line 2943 "seclang-parser.yy" // lalr1.cc:870 +#line 2943 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveNulls(yystack_[0].value.as< std::string > ())); } -#line 5175 "seclang-parser.cc" // lalr1.cc:870 +#line 5183 "seclang-parser.cc" // lalr1.cc:906 break; case 416: -#line 2947 "seclang-parser.yy" // lalr1.cc:870 +#line 2947 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HtmlEntityDecode(yystack_[0].value.as< std::string > ())); } -#line 5183 "seclang-parser.cc" // lalr1.cc:870 +#line 5191 "seclang-parser.cc" // lalr1.cc:906 break; case 417: -#line 2951 "seclang-parser.yy" // lalr1.cc:870 +#line 2951 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::JsDecode(yystack_[0].value.as< std::string > ())); } -#line 5191 "seclang-parser.cc" // lalr1.cc:870 +#line 5199 "seclang-parser.cc" // lalr1.cc:906 break; case 418: -#line 2955 "seclang-parser.yy" // lalr1.cc:870 +#line 2955 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CssDecode(yystack_[0].value.as< std::string > ())); } -#line 5199 "seclang-parser.cc" // lalr1.cc:870 +#line 5207 "seclang-parser.cc" // lalr1.cc:906 break; case 419: -#line 2959 "seclang-parser.yy" // lalr1.cc:870 +#line 2959 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Trim(yystack_[0].value.as< std::string > ())); } -#line 5207 "seclang-parser.cc" // lalr1.cc:870 +#line 5215 "seclang-parser.cc" // lalr1.cc:906 break; case 420: -#line 2963 "seclang-parser.yy" // lalr1.cc:870 +#line 2963 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::TrimLeft(yystack_[0].value.as< std::string > ())); } -#line 5215 "seclang-parser.cc" // lalr1.cc:870 +#line 5223 "seclang-parser.cc" // lalr1.cc:906 break; case 421: -#line 2967 "seclang-parser.yy" // lalr1.cc:870 +#line 2967 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::TrimRight(yystack_[0].value.as< std::string > ())); } -#line 5223 "seclang-parser.cc" // lalr1.cc:870 +#line 5231 "seclang-parser.cc" // lalr1.cc:906 break; case 422: -#line 2971 "seclang-parser.yy" // lalr1.cc:870 +#line 2971 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePathWin(yystack_[0].value.as< std::string > ())); } -#line 5231 "seclang-parser.cc" // lalr1.cc:870 +#line 5239 "seclang-parser.cc" // lalr1.cc:906 break; case 423: -#line 2975 "seclang-parser.yy" // lalr1.cc:870 +#line 2975 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePath(yystack_[0].value.as< std::string > ())); } -#line 5239 "seclang-parser.cc" // lalr1.cc:870 +#line 5247 "seclang-parser.cc" // lalr1.cc:906 break; case 424: -#line 2979 "seclang-parser.yy" // lalr1.cc:870 +#line 2979 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Length(yystack_[0].value.as< std::string > ())); } -#line 5247 "seclang-parser.cc" // lalr1.cc:870 +#line 5255 "seclang-parser.cc" // lalr1.cc:906 break; case 425: -#line 2983 "seclang-parser.yy" // lalr1.cc:870 +#line 2983 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Utf8ToUnicode(yystack_[0].value.as< std::string > ())); } -#line 5255 "seclang-parser.cc" // lalr1.cc:870 +#line 5263 "seclang-parser.cc" // lalr1.cc:906 break; case 426: -#line 2987 "seclang-parser.yy" // lalr1.cc:870 +#line 2987 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveCommentsChar(yystack_[0].value.as< std::string > ())); } -#line 5263 "seclang-parser.cc" // lalr1.cc:870 +#line 5271 "seclang-parser.cc" // lalr1.cc:906 break; case 427: -#line 2991 "seclang-parser.yy" // lalr1.cc:870 +#line 2991 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveComments(yystack_[0].value.as< std::string > ())); } -#line 5271 "seclang-parser.cc" // lalr1.cc:870 +#line 5279 "seclang-parser.cc" // lalr1.cc:906 break; case 428: -#line 2995 "seclang-parser.yy" // lalr1.cc:870 +#line 2995 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceComments(yystack_[0].value.as< std::string > ())); } -#line 5279 "seclang-parser.cc" // lalr1.cc:870 +#line 5287 "seclang-parser.cc" // lalr1.cc:906 break; case 429: -#line 3002 "seclang-parser.yy" // lalr1.cc:870 +#line 3002 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::unsetOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 5287 "seclang-parser.cc" // lalr1.cc:870 +#line 5295 "seclang-parser.cc" // lalr1.cc:906 break; case 430: -#line 3006 "seclang-parser.yy" // lalr1.cc:870 +#line 3006 "seclang-parser.yy" // lalr1.cc:906 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setToOneOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 5295 "seclang-parser.cc" // lalr1.cc:870 +#line 5303 "seclang-parser.cc" // lalr1.cc:906 break; case 431: -#line 3010 "seclang-parser.yy" // lalr1.cc:870 +#line 3010 "seclang-parser.yy" // lalr1.cc:906 { 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 5303 "seclang-parser.cc" // lalr1.cc:870 +#line 5311 "seclang-parser.cc" // lalr1.cc:906 break; case 432: -#line 3014 "seclang-parser.yy" // lalr1.cc:870 +#line 3014 "seclang-parser.yy" // lalr1.cc:906 { 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 5311 "seclang-parser.cc" // lalr1.cc:870 +#line 5319 "seclang-parser.cc" // lalr1.cc:906 break; case 433: -#line 3018 "seclang-parser.yy" // lalr1.cc:870 +#line 3018 "seclang-parser.yy" // lalr1.cc:906 { 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 5319 "seclang-parser.cc" // lalr1.cc:870 +#line 5327 "seclang-parser.cc" // lalr1.cc:906 break; case 434: -#line 3025 "seclang-parser.yy" // lalr1.cc:870 +#line 3025 "seclang-parser.yy" // lalr1.cc:906 { 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 5328 "seclang-parser.cc" // lalr1.cc:870 +#line 5336 "seclang-parser.cc" // lalr1.cc:906 break; case 435: -#line 3030 "seclang-parser.yy" // lalr1.cc:870 +#line 3030 "seclang-parser.yy" // lalr1.cc:906 { 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 5337 "seclang-parser.cc" // lalr1.cc:870 +#line 5345 "seclang-parser.cc" // lalr1.cc:906 break; case 436: -#line 3035 "seclang-parser.yy" // lalr1.cc:870 +#line 3035 "seclang-parser.yy" // lalr1.cc:906 { std::unique_ptr r(new RunTimeString()); r->appendText(yystack_[0].value.as< std::string > ()); yylhs.value.as< std::unique_ptr > () = std::move(r); } -#line 5347 "seclang-parser.cc" // lalr1.cc:870 +#line 5355 "seclang-parser.cc" // lalr1.cc:906 break; case 437: -#line 3041 "seclang-parser.yy" // lalr1.cc:870 +#line 3041 "seclang-parser.yy" // lalr1.cc:906 { 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 5357 "seclang-parser.cc" // lalr1.cc:870 +#line 5365 "seclang-parser.cc" // lalr1.cc:906 break; -#line 5361 "seclang-parser.cc" // lalr1.cc:870 +#line 5369 "seclang-parser.cc" // lalr1.cc:906 default: break; } @@ -5375,7 +5383,7 @@ namespace yy { YY_STACK_PRINT (); // Shift the result of the reduction. - yypush_ (YY_NULLPTR, yylhs); + yypush_ (YY_NULLPTR, YY_MOVE (yylhs)); } goto yynewstate; @@ -5463,7 +5471,7 @@ namespace yy { // Shift the error token. error_token.state = yyn; - yypush_ ("Shifting", error_token); + yypush_ ("Shifting", YY_MOVE (error_token)); } goto yynewstate; @@ -6759,42 +6767,42 @@ namespace yy { const unsigned short seclang_parser::yyrline_[] = { - 0, 743, 743, 747, 748, 751, 756, 762, 768, 772, - 776, 782, 788, 794, 800, 805, 810, 816, 823, 827, - 831, 837, 841, 845, 850, 855, 860, 865, 869, 876, - 880, 887, 893, 903, 912, 922, 931, 944, 948, 952, - 956, 960, 964, 968, 972, 976, 980, 985, 989, 993, - 997, 1001, 1006, 1011, 1015, 1019, 1023, 1027, 1031, 1035, - 1039, 1043, 1047, 1051, 1055, 1059, 1063, 1067, 1071, 1075, - 1079, 1083, 1097, 1098, 1123, 1142, 1157, 1181, 1237, 1241, - 1245, 1249, 1253, 1257, 1261, 1265, 1269, 1278, 1282, 1287, - 1290, 1295, 1300, 1305, 1310, 1313, 1318, 1321, 1326, 1331, - 1334, 1339, 1344, 1349, 1354, 1359, 1364, 1369, 1372, 1377, - 1382, 1387, 1392, 1395, 1400, 1405, 1410, 1423, 1436, 1449, - 1462, 1475, 1501, 1529, 1541, 1561, 1589, 1594, 1599, 1608, - 1613, 1617, 1621, 1625, 1629, 1633, 1637, 1642, 1647, 1659, - 1665, 1669, 1673, 1684, 1693, 1694, 1701, 1706, 1711, 1765, - 1772, 1780, 1817, 1821, 1828, 1833, 1839, 1845, 1851, 1858, - 1868, 1872, 1876, 1880, 1884, 1888, 1892, 1896, 1900, 1904, - 1908, 1912, 1916, 1920, 1924, 1928, 1932, 1936, 1940, 1944, - 1948, 1952, 1956, 1960, 1964, 1968, 1972, 1976, 1980, 1984, - 1988, 1992, 1996, 2000, 2004, 2008, 2012, 2016, 2020, 2024, - 2028, 2032, 2036, 2040, 2044, 2048, 2052, 2056, 2060, 2064, - 2068, 2072, 2076, 2080, 2084, 2088, 2092, 2096, 2100, 2104, - 2108, 2112, 2116, 2120, 2124, 2128, 2132, 2136, 2140, 2144, - 2148, 2152, 2156, 2160, 2164, 2168, 2172, 2176, 2180, 2184, - 2188, 2192, 2196, 2200, 2204, 2208, 2212, 2216, 2220, 2224, - 2229, 2233, 2237, 2242, 2246, 2250, 2255, 2260, 2264, 2268, - 2272, 2276, 2280, 2284, 2288, 2292, 2296, 2300, 2304, 2308, - 2312, 2316, 2320, 2324, 2328, 2332, 2336, 2340, 2344, 2348, - 2352, 2356, 2360, 2364, 2368, 2372, 2376, 2380, 2384, 2388, - 2392, 2396, 2400, 2404, 2408, 2412, 2416, 2420, 2424, 2428, - 2432, 2436, 2440, 2444, 2448, 2452, 2456, 2460, 2464, 2468, - 2472, 2476, 2480, 2484, 2488, 2492, 2496, 2500, 2508, 2515, - 2522, 2529, 2536, 2543, 2550, 2557, 2564, 2571, 2578, 2585, - 2595, 2599, 2603, 2607, 2611, 2615, 2619, 2623, 2628, 2633, - 2638, 2642, 2646, 2650, 2654, 2659, 2664, 2668, 2672, 2676, - 2680, 2684, 2688, 2692, 2696, 2700, 2704, 2708, 2713, 2717, + 0, 744, 744, 748, 749, 752, 757, 763, 769, 773, + 777, 783, 789, 795, 801, 806, 811, 817, 824, 828, + 832, 838, 842, 846, 851, 856, 861, 866, 870, 877, + 881, 888, 894, 904, 913, 923, 932, 945, 949, 953, + 957, 961, 965, 969, 973, 977, 981, 986, 990, 994, + 998, 1002, 1007, 1012, 1016, 1020, 1024, 1028, 1032, 1036, + 1040, 1044, 1048, 1052, 1056, 1060, 1064, 1068, 1072, 1076, + 1080, 1084, 1098, 1099, 1124, 1143, 1158, 1182, 1238, 1242, + 1246, 1250, 1254, 1258, 1262, 1266, 1270, 1279, 1283, 1288, + 1291, 1296, 1301, 1306, 1311, 1314, 1319, 1322, 1327, 1332, + 1335, 1340, 1345, 1350, 1355, 1360, 1365, 1370, 1373, 1378, + 1383, 1388, 1393, 1396, 1401, 1406, 1411, 1424, 1437, 1450, + 1463, 1476, 1502, 1530, 1542, 1562, 1590, 1595, 1600, 1609, + 1614, 1618, 1622, 1626, 1630, 1634, 1638, 1643, 1648, 1660, + 1666, 1670, 1674, 1685, 1694, 1695, 1702, 1707, 1712, 1766, + 1773, 1781, 1818, 1822, 1829, 1834, 1840, 1846, 1852, 1859, + 1869, 1873, 1877, 1881, 1885, 1889, 1893, 1897, 1901, 1905, + 1909, 1913, 1917, 1921, 1925, 1929, 1933, 1937, 1941, 1945, + 1949, 1953, 1957, 1961, 1965, 1969, 1973, 1977, 1981, 1985, + 1989, 1993, 1997, 2001, 2005, 2009, 2013, 2017, 2021, 2025, + 2029, 2033, 2037, 2041, 2045, 2049, 2053, 2057, 2061, 2065, + 2069, 2073, 2077, 2081, 2085, 2089, 2093, 2097, 2101, 2105, + 2109, 2113, 2117, 2121, 2125, 2129, 2133, 2137, 2141, 2145, + 2149, 2153, 2157, 2161, 2165, 2169, 2173, 2177, 2181, 2185, + 2189, 2193, 2197, 2201, 2205, 2209, 2213, 2217, 2221, 2225, + 2230, 2234, 2238, 2243, 2247, 2251, 2256, 2261, 2265, 2269, + 2273, 2277, 2281, 2285, 2289, 2293, 2297, 2301, 2305, 2309, + 2313, 2317, 2321, 2325, 2329, 2333, 2337, 2341, 2345, 2349, + 2353, 2357, 2361, 2365, 2369, 2373, 2377, 2381, 2385, 2389, + 2393, 2397, 2401, 2405, 2409, 2413, 2417, 2421, 2425, 2429, + 2433, 2437, 2441, 2445, 2449, 2453, 2457, 2461, 2465, 2469, + 2473, 2477, 2481, 2485, 2489, 2493, 2497, 2501, 2509, 2516, + 2523, 2530, 2537, 2544, 2551, 2558, 2565, 2572, 2579, 2586, + 2596, 2600, 2604, 2608, 2612, 2616, 2620, 2624, 2629, 2634, + 2639, 2643, 2647, 2651, 2655, 2660, 2665, 2669, 2673, 2677, + 2681, 2685, 2689, 2693, 2697, 2701, 2705, 2709, 2713, 2717, 2722, 2726, 2730, 2734, 2738, 2742, 2746, 2750, 2754, 2758, 2762, 2766, 2770, 2774, 2778, 2782, 2786, 2790, 2794, 2798, 2802, 2806, 2810, 2814, 2818, 2822, 2826, 2830, 2834, 2838, @@ -6837,8 +6845,8 @@ namespace yy { } // yy -#line 6841 "seclang-parser.cc" // lalr1.cc:1181 -#line 3047 "seclang-parser.yy" // lalr1.cc:1182 +#line 6849 "seclang-parser.cc" // lalr1.cc:1217 +#line 3047 "seclang-parser.yy" // lalr1.cc:1218 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 b97f390d..e82347db 100644 --- a/src/parser/seclang-parser.hh +++ b/src/parser/seclang-parser.hh @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.1. +// A Bison parser, made by GNU Bison 3.2. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -30,6 +30,7 @@ // This special exception was added by the Free Software Foundation in // version 2.2 of Bison. + /** ** \file y.tab.h ** Define the yy::parser class. @@ -37,10 +38,13 @@ // C++ LALR(1) parser skeleton written by Akim Demaille. +// Undocumented macros, especially those whose name start with YY_, +// are private implementation details. Do not rely on them. + #ifndef YY_YY_SECLANG_PARSER_HH_INCLUDED # define YY_YY_SECLANG_PARSER_HH_INCLUDED // // "%code requires" blocks. -#line 10 "seclang-parser.yy" // lalr1.cc:380 +#line 10 "seclang-parser.yy" // lalr1.cc:403 #include #include @@ -71,6 +75,7 @@ class Driver; #include "src/actions/data/status.h" #include "src/actions/disruptive/allow.h" #include "src/actions/disruptive/deny.h" +#include "src/actions/disruptive/drop.h" #include "src/actions/disruptive/pass.h" #include "src/actions/disruptive/redirect.h" #include "src/actions/init_col.h" @@ -381,7 +386,7 @@ using modsecurity::operators::Operator; a = std::move(c); -#line 385 "seclang-parser.hh" // lalr1.cc:380 +#line 390 "seclang-parser.hh" // lalr1.cc:403 # include # include // std::abort @@ -389,7 +394,21 @@ using modsecurity::operators::Operator; # include # include # include -# include "stack.hh" + +// Support move semantics when possible. +#if defined __cplusplus && 201103L <= __cplusplus +# define YY_MOVE std::move +# define YY_MOVE_OR_COPY move +# define YY_MOVE_REF(Type) Type&& +# define YY_RVREF(Type) Type&& +# define YY_COPY(Type) Type +#else +# define YY_MOVE +# define YY_MOVE_OR_COPY copy +# define YY_MOVE_REF(Type) Type& +# define YY_RVREF(Type) const Type& +# define YY_COPY(Type) const Type& +#endif # include "location.hh" #include #ifndef YYASSERT @@ -416,15 +435,6 @@ using modsecurity::operators::Operator; # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -452,12 +462,17 @@ using modsecurity::operators::Operator; #endif # ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif # else -# define YY_NULLPTR 0 +# define YY_NULLPTR ((void*)0) # endif # endif + /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 @@ -465,7 +480,126 @@ using modsecurity::operators::Operator; namespace yy { -#line 469 "seclang-parser.hh" // lalr1.cc:380 +#line 484 "seclang-parser.hh" // lalr1.cc:403 + + /// A stack with random access from its top. + template > + class stack + { + public: + // Hide our reversed order. + typedef typename S::reverse_iterator iterator; + typedef typename S::const_reverse_iterator const_iterator; + typedef typename S::size_type size_type; + + stack (size_type n = 200) + : seq_ (n) + {} + + /// Random access. + /// + /// Index 0 returns the topmost element. + T& + operator[] (size_type i) + { + return seq_[size () - 1 - i]; + } + + /// Random access. + /// + /// Index 0 returns the topmost element. + T& + operator[] (int 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)); + } + + /// Steal the contents of \a t. + /// + /// Close to move-semantics. + void + push (YY_MOVE_REF (T) t) + { + seq_.push_back (T ()); + operator[](0).move (t); + } + + void + pop (int n = 1) + { + for (; 0 < n; --n) + seq_.pop_back (); + } + + void + clear () + { + seq_.clear (); + } + + size_type + size () const + { + return seq_.size (); + } + + const_iterator + begin () const + { + return seq_.rbegin (); + } + + const_iterator + end () const + { + return seq_.rend (); + } + + private: + stack (const stack&); + stack& operator= (const stack&); + /// The wrapped container. + S seq_; + }; + + /// Present a slice of the top of a stack. + template > + class slice + { + public: + slice (const S& stack, int range) + : stack_ (stack) + , range_ (range) + {} + + const T& + operator[] (int i) const + { + return stack_[range_ - i]; + } + + private: + const S& stack_; + int range_; + }; @@ -488,11 +622,11 @@ namespace yy { /// Construct and fill. template - variant (const T& t) + variant (YY_RVREF (T) t) : yytypeid_ (&typeid (T)) { YYASSERT (sizeof (T) <= S); - new (yyas_ ()) T (t); + new (yyas_ ()) T (YY_MOVE (t)); } /// Destruction, allowed only if empty. @@ -504,7 +638,7 @@ namespace yy { /// Instantiate an empty \a T in here. template T& - build () + emplace () { YYASSERT (!yytypeid_); YYASSERT (sizeof (T) <= S); @@ -512,16 +646,47 @@ namespace yy { return *new (yyas_ ()) T (); } +# if defined __cplusplus && 201103L <= __cplusplus + /// Instantiate a \a T in here from \a t. + template + T& + emplace (U&& u) + { + YYASSERT (!yytypeid_); + YYASSERT (sizeof (T) <= S); + yytypeid_ = & typeid (T); + return *new (yyas_ ()) T (std::forward (u)); + } +# else /// Instantiate a \a T in here from \a t. template T& - build (const T& t) + emplace (const T& t) { YYASSERT (!yytypeid_); YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::move((T&)t)); } +# endif + + /// Instantiate an empty \a T in here. + /// Obsolete, use emplace. + template + T& + build () + { + return emplace (); + } + + /// Instantiate a \a T in here from \a t. + /// Obsolete, use emplace. + template + T& + build (const T& t) + { + return emplace (t); + } /// Accessor to a built \a T. template @@ -550,7 +715,7 @@ namespace yy { /// Both variants must be built beforehand, because swapping the actual /// data requires reading it (with as()), and this is not possible on /// unconstructed variants: it would require some dynamic testing, which - /// should not be the variant's responsability. + /// should not be the variant's responsibility. /// Swapping between built and (possibly) non-built is done with /// variant::move (). template @@ -569,17 +734,32 @@ namespace yy { void move (self_type& other) { - build (); +# if defined __cplusplus && 201103L <= __cplusplus + emplace (std::move (other.as ())); +# else + emplace (); swap (other); +# endif other.destroy (); } +# if defined __cplusplus && 201103L <= __cplusplus + /// Move the content of \a other to this. + template + void + move (self_type&& other) + { + emplace (std::move (other.as ())); + other.destroy (); + } +#endif + /// Copy the content of \a other to this. template void copy (const self_type& other) { - build (other.as ()); + emplace (other.as ()); } /// Destroy the stored \a T. @@ -593,7 +773,7 @@ namespace yy { private: /// Prohibit blind copies. - self_type& operator=(const self_type&); + self_type& operator= (const self_type&); variant (const self_type&); /// Accessor to raw memory as \a T. @@ -831,34 +1011,34 @@ namespace yy { // "VARIABLE" // "Dictionary element" // "Dictionary element, selected by regexp" - char dummy1[sizeof(std::string)]; + char dummy1[sizeof (std::string)]; // op // op_before_init - char dummy2[sizeof(std::unique_ptr)]; + char dummy2[sizeof (std::unique_ptr)]; // run_time_string - char dummy3[sizeof(std::unique_ptr)]; + char dummy3[sizeof (std::unique_ptr)]; // var - char dummy4[sizeof(std::unique_ptr)]; + char dummy4[sizeof (std::unique_ptr)]; // act // setvar_action - char dummy5[sizeof(std::unique_ptr)]; + char dummy5[sizeof (std::unique_ptr)]; // variables // variables_pre_process // variables_may_be_quoted - char dummy6[sizeof(std::unique_ptr > > )]; + char dummy6[sizeof (std::unique_ptr > > )]; // actions // actions_may_quoted - char dummy7[sizeof(std::unique_ptr > > )]; + char dummy7[sizeof (std::unique_ptr > > )]; }; /// Symbol semantic values. - typedef variant semantic_type; + typedef variant semantic_type; #else typedef YYSTYPE semantic_type; #endif @@ -1233,7 +1413,7 @@ namespace yy { /// A complete symbol. /// /// Expects its Base type to provide access to the symbol type - /// via type_get(). + /// via type_get (). /// /// Provide access to semantic value and location. template @@ -1245,32 +1425,20 @@ namespace yy { /// Default constructor. basic_symbol (); - /// Copy constructor. - basic_symbol (const basic_symbol& other); + /// Move or copy constructor. + basic_symbol (YY_RVREF (basic_symbol) other); + /// Constructor for valueless symbols, and symbols from each type. + basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr > > ) v, YY_RVREF (location_type) l); + basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr > > ) v, YY_RVREF (location_type) l); - basic_symbol (typename Base::kind_type t, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::unique_ptr > > & v, const location_type& l); - - basic_symbol (typename Base::kind_type t, const std::unique_ptr > > & v, const location_type& l); - - - /// Constructor for symbols with semantic value. - basic_symbol (typename Base::kind_type t, - const semantic_type& v, - const location_type& l); /// Destroy the symbol. ~basic_symbol (); @@ -1291,8 +1459,10 @@ namespace yy { location_type location; private: +#if defined __cplusplus && __cplusplus < 201103L /// Assignment operator. basic_symbol& operator= (const basic_symbol& other); +#endif }; /// Type access provider for token (enum) based symbols. @@ -1332,1364 +1502,14 @@ namespace yy { /// "External" symbols: returned by the scanner. typedef basic_symbol symbol_type; - // Symbol constructors declarations. - static inline - symbol_type - make_END (const location_type& l); - - static inline - symbol_type - make_COMMA (const location_type& l); - - static inline - symbol_type - make_CONFIG_CONTENT_INJECTION (const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR (const location_type& l); - - static inline - symbol_type - make_PIPE (const location_type& l); - - static inline - symbol_type - make_NEW_LINE (const location_type& l); - - static inline - symbol_type - make_VAR_COUNT (const location_type& l); - - static inline - symbol_type - make_VAR_EXCLUSION (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS_POST (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS_GET (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FILES_SIZES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FILES_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FILES_TMP_CONTENT (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_FILENAME (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_NAME (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MATCHED_VARS_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MATCHED_VARS (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FILES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_COOKIES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_HEADERS (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_HEADERS (const location_type& l); - - static inline - symbol_type - make_VARIABLE_GEO (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_COOKIES_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS_COMBINED_SIZE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS_GET_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RULE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_ARGS_POST_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_AUTH_TYPE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FILES_COMBINED_SIZE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FILES_TMP_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FULL_REQUEST (const location_type& l); - - static inline - symbol_type - make_VARIABLE_FULL_REQUEST_LENGTH (const location_type& l); - - static inline - symbol_type - make_VARIABLE_INBOUND_DATA_ERROR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MATCHED_VAR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MATCHED_VAR_NAME (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_BOUNDARY_QUOTED (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_CRLF_LF_LINES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_DATA_AFTER (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_DATA_BEFORE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_HEADER_FOLDING (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_INVALID_PART (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_INVALID_QUOTING (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_LF_LINE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_MISSING_SEMICOLON (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_SEMICOLON_MISSING (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_STRICT_ERROR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY (const location_type& l); - - static inline - symbol_type - make_VARIABLE_OUTBOUND_DATA_ERROR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_PATH_INFO (const location_type& l); - - static inline - symbol_type - make_VARIABLE_QUERY_STRING (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REMOTE_ADDR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REMOTE_HOST (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REMOTE_PORT (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQBODY_ERROR_MSG (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQBODY_ERROR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQBODY_PROCESSOR_ERROR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQBODY_PROCESSOR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_BASENAME (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_BODY_LENGTH (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_BODY (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_FILE_NAME (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_HEADERS_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_LINE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_METHOD (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_PROTOCOL (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_URI_RAW (const location_type& l); - - static inline - symbol_type - make_VARIABLE_REQUEST_URI (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESOURCE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_BODY (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_CONTENT_LENGTH (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_CONTENT_TYPE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_HEADERS_NAMES (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_PROTOCOL (const location_type& l); - - static inline - symbol_type - make_VARIABLE_RESPONSE_STATUS (const location_type& l); - - static inline - symbol_type - make_VARIABLE_SERVER_ADDR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_SERVER_NAME (const location_type& l); - - static inline - symbol_type - make_VARIABLE_SERVER_PORT (const location_type& l); - - static inline - symbol_type - make_VARIABLE_SESSION_ID (const location_type& l); - - static inline - symbol_type - make_VARIABLE_UNIQUE_ID (const location_type& l); - - static inline - symbol_type - make_VARIABLE_URL_ENCODED_ERROR (const location_type& l); - - static inline - symbol_type - make_VARIABLE_USER_ID (const location_type& l); - - static inline - symbol_type - make_VARIABLE_WEB_APP_ID (const location_type& l); - - static inline - symbol_type - make_VARIABLE_STATUS (const location_type& l); - - static inline - symbol_type - make_VARIABLE_STATUS_LINE (const location_type& l); - - static inline - symbol_type - make_VARIABLE_IP (const location_type& l); - - static inline - symbol_type - make_VARIABLE_GLOBAL (const location_type& l); - - static inline - symbol_type - make_VARIABLE_TX (const location_type& l); - - static inline - symbol_type - make_VARIABLE_SESSION (const location_type& l); - - static inline - symbol_type - make_VARIABLE_USER (const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_ENV (const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_XML (const location_type& l); - - static inline - symbol_type - make_ACTION_SETVAR (const location_type& l); - - static inline - symbol_type - make_SETVAR_OPERATION_EQUALS (const location_type& l); - - static inline - symbol_type - make_SETVAR_OPERATION_EQUALS_PLUS (const location_type& l); - - static inline - symbol_type - make_SETVAR_OPERATION_EQUALS_MINUS (const location_type& l); - - static inline - symbol_type - make_NOT (const location_type& l); - - static inline - symbol_type - make_OPERATOR_BEGINS_WITH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_CONTAINS (const location_type& l); - - static inline - symbol_type - make_OPERATOR_CONTAINS_WORD (const location_type& l); - - static inline - symbol_type - make_OPERATOR_DETECT_SQLI (const location_type& l); - - static inline - symbol_type - make_OPERATOR_DETECT_XSS (const location_type& l); - - static inline - symbol_type - make_OPERATOR_ENDS_WITH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_EQ (const location_type& l); - - static inline - symbol_type - make_OPERATOR_FUZZY_HASH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_GEOLOOKUP (const location_type& l); - - static inline - symbol_type - make_OPERATOR_GE (const location_type& l); - - static inline - symbol_type - make_OPERATOR_GSB_LOOKUP (const location_type& l); - - static inline - symbol_type - make_OPERATOR_GT (const location_type& l); - - static inline - symbol_type - make_OPERATOR_INSPECT_FILE (const location_type& l); - - static inline - symbol_type - make_OPERATOR_IP_MATCH_FROM_FILE (const location_type& l); - - static inline - symbol_type - make_OPERATOR_IP_MATCH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_LE (const location_type& l); - - static inline - symbol_type - make_OPERATOR_LT (const location_type& l); - - static inline - symbol_type - make_OPERATOR_PM_FROM_FILE (const location_type& l); - - static inline - symbol_type - make_OPERATOR_PM (const location_type& l); - - static inline - symbol_type - make_OPERATOR_RBL (const location_type& l); - - static inline - symbol_type - make_OPERATOR_RSUB (const location_type& l); - - static inline - symbol_type - make_OPERATOR_RX_CONTENT_ONLY (const location_type& l); - - static inline - symbol_type - make_OPERATOR_RX (const location_type& l); - - static inline - symbol_type - make_OPERATOR_STR_EQ (const location_type& l); - - static inline - symbol_type - make_OPERATOR_STR_MATCH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_UNCONDITIONAL_MATCH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_BYTE_RANGE (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_DTD (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_HASH (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_SCHEMA (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_URL_ENCODING (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_UTF8_ENCODING (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VERIFY_CC (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VERIFY_CPF (const location_type& l); - - static inline - symbol_type - make_OPERATOR_VERIFY_SSN (const location_type& l); - - static inline - symbol_type - make_OPERATOR_WITHIN (const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_LOG_FMT (const location_type& l); - - static inline - symbol_type - make_JSON (const location_type& l); - - static inline - symbol_type - make_NATIVE (const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_RULE_ENGINE (const location_type& l); - - static inline - symbol_type - make_ACTION_ACCURACY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_ALLOW (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_APPEND (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_AUDIT_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_BLOCK (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CAPTURE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CHAIN (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_AUDIT_ENGINE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_AUDIT_LOG_PARTS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_BDY_JSON (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_BDY_XML (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_BDY_URLENCODED (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_FORCE_REQ_BODY_VAR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_REQUEST_BODY_ACCESS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_RULE_REMOVE_BY_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_RULE_REMOVE_BY_TAG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_DENY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_DEPRECATE_VAR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_DROP (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_EXEC (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_EXPIRE_VAR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_INITCOL (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_LOG_DATA (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_MATURITY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_MSG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_MULTI_MATCH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_NO_AUDIT_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_NO_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_PASS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_PAUSE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_PHASE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_PREPEND (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_PROXY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_REDIRECT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_REV (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SANITISE_ARG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SANITISE_MATCHED (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SANITISE_MATCHED_BYTES (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SANITISE_REQUEST_HEADER (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SANITISE_RESPONSE_HEADER (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SETENV (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SETRSC (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SETSID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SETUID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SEVERITY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SKIP (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_SKIP_AFTER (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_STATUS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TAG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_BASE_64_ENCODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_BASE_64_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_CMD_LINE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_CSS_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_HEX_ENCODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_HEX_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_JS_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_LENGTH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_LOWERCASE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_MD5 (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_NONE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_NORMALISE_PATH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_REMOVE_COMMENTS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_REMOVE_NULLS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_REPLACE_COMMENTS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_REPLACE_NULLS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_SHA1 (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_SQL_HEX_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_TRIM (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_TRIM_LEFT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_TRIM_RIGHT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_UPPERCASE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_URL_ENCODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_URL_DECODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_URL_DECODE_UNI (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_VER (const std::string& v, const location_type& l); - - static inline - symbol_type - make_ACTION_XMLNS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_COMPONENT_SIG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_CONN_ENGINE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_ARGUMENT_SEPARATOR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_WEB_APP_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_SERVER_SIG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_DIR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_DIR_MOD (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_ENG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_FLE_MOD (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_LOG2 (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_LOG_P (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_STS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_AUDIT_TPE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_DEBUG_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_DEBUG_LVL (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_CACHE_TRANSFORMATIONS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_DISABLE_BACKEND_COMPRESS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_HASH_ENGINE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_HASH_KEY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_HASH_PARAM (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_HASH_METHOD_RX (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_HASH_METHOD_PM (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_CHROOT_DIR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_GEO_DB (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_GSB_DB (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_GUARDIAN_LOG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_PCRE_MATCH_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_CONN_R_STATE_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_CONN_W_STATE_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_SENSOR_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_REQ_BODY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_REQ_BODY_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_RES_BODY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_RES_BODY_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_RES_BODY_LIMIT_ACTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_INHERITANCE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_PERF_TIME (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_RULE_ENG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_SEC_ACTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_SEC_DEFAULT_ACTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_SEC_MARKER (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_UNICODE_MAP_FILE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_DIR_UNICODE_CODE_PAGE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_COLLECTION_TIMEOUT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_HTTP_BLKEY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_INTERCEPT_ON_ERROR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_REMOVE_BY_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_REMOVE_BY_MSG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_REMOVE_BY_TAG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_UPDLOAD_KEEP_FILES (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_UPDLOAD_SAVE_TMP_FILES (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_UPLOAD_DIR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_UPLOAD_FILE_LIMIT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_UPLOAD_FILE_MODE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_ABORT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_DETC (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_HTTPS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_OFF (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_ON (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_PARALLEL (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_PROCESS_PARTIAL (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_REJECT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_RELEVANT_ONLY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_SERIAL (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_VALUE_WARN (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_XML_EXTERNAL_ENTITY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_RESPONSE_BODY_MP (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_SEC_ARG_SEP (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_SEC_COOKIE_FORMAT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_COOKIEV0_SEPARATOR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_SEC_DATA_DIR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_SEC_STATUS_ENGINE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_STREAM_IN_BODY_INSPECTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_CONGIG_DIR_SEC_TMP_DIR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_DIRECTIVE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_DIRECTIVE_SECRULESCRIPT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_FREE_TEXT_QUOTE_MACRO_EXPANSION (const std::string& v, const location_type& l); - - static inline - symbol_type - make_QUOTATION_MARK (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_BLD (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_DUR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_HSV (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_REMOTE_USER (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_DAY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_EPOCH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_HOUR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_MIN (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_MON (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_SEC (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_WDAY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_RUN_TIME_VAR_TIME_YEAR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_VARIABLE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_DICT_ELEMENT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_DICT_ELEMENT_REGEXP (const std::string& v, const location_type& l); - - /// Build a parser object. seclang_parser (modsecurity::Parser::Driver& driver_yyarg); virtual ~seclang_parser (); + /// Parse. An alias for parse (). + /// \returns 0 iff parsing succeeded. + int operator() (); + /// Parse. /// \returns 0 iff parsing succeeded. virtual int parse (); @@ -2716,6 +1536,1361 @@ namespace yy { /// Report a syntax error. void error (const syntax_error& err); + // Symbol constructors declarations. + static + symbol_type + make_END (YY_COPY (location_type) l); + + static + symbol_type + make_COMMA (YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_CONTENT_INJECTION (YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR (YY_COPY (location_type) l); + + static + symbol_type + make_PIPE (YY_COPY (location_type) l); + + static + symbol_type + make_NEW_LINE (YY_COPY (location_type) l); + + static + symbol_type + make_VAR_COUNT (YY_COPY (location_type) l); + + static + symbol_type + make_VAR_EXCLUSION (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS_POST (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS_GET (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FILES_SIZES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FILES_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FILES_TMP_CONTENT (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_FILENAME (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MATCHED_VARS_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MATCHED_VARS (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FILES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_COOKIES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_HEADERS (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_HEADERS (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_GEO (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_COOKIES_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS_COMBINED_SIZE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS_GET_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RULE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_ARGS_POST_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_AUTH_TYPE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FILES_COMBINED_SIZE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FILES_TMP_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FULL_REQUEST (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_FULL_REQUEST_LENGTH (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_INBOUND_DATA_ERROR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MATCHED_VAR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MATCHED_VAR_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_BOUNDARY_QUOTED (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_CRLF_LF_LINES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_DATA_AFTER (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_DATA_BEFORE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_HEADER_FOLDING (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_INVALID_PART (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_INVALID_QUOTING (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_LF_LINE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_MISSING_SEMICOLON (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_SEMICOLON_MISSING (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_STRICT_ERROR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_OUTBOUND_DATA_ERROR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_PATH_INFO (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_QUERY_STRING (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REMOTE_ADDR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REMOTE_HOST (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REMOTE_PORT (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQBODY_ERROR_MSG (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQBODY_ERROR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQBODY_PROCESSOR_ERROR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQBODY_PROCESSOR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_BASENAME (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_BODY_LENGTH (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_BODY (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_FILE_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_HEADERS_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_LINE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_METHOD (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_PROTOCOL (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_URI_RAW (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_REQUEST_URI (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESOURCE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_BODY (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_CONTENT_LENGTH (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_CONTENT_TYPE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_HEADERS_NAMES (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_PROTOCOL (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_RESPONSE_STATUS (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_SERVER_ADDR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_SERVER_NAME (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_SERVER_PORT (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_SESSION_ID (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_UNIQUE_ID (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_URL_ENCODED_ERROR (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_USER_ID (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_WEB_APP_ID (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_STATUS (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_STATUS_LINE (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_IP (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_GLOBAL (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_TX (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_SESSION (YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE_USER (YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_ENV (YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_XML (YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SETVAR (YY_COPY (location_type) l); + + static + symbol_type + make_SETVAR_OPERATION_EQUALS (YY_COPY (location_type) l); + + static + symbol_type + make_SETVAR_OPERATION_EQUALS_PLUS (YY_COPY (location_type) l); + + static + symbol_type + make_SETVAR_OPERATION_EQUALS_MINUS (YY_COPY (location_type) l); + + static + symbol_type + make_NOT (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_BEGINS_WITH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_CONTAINS (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_CONTAINS_WORD (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_DETECT_SQLI (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_DETECT_XSS (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_ENDS_WITH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_EQ (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_FUZZY_HASH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_GEOLOOKUP (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_GE (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_GSB_LOOKUP (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_GT (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_INSPECT_FILE (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_IP_MATCH_FROM_FILE (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_IP_MATCH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_LE (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_LT (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_PM_FROM_FILE (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_PM (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_RBL (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_RSUB (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_RX_CONTENT_ONLY (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_RX (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_STR_EQ (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_STR_MATCH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_UNCONDITIONAL_MATCH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VALIDATE_BYTE_RANGE (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VALIDATE_DTD (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VALIDATE_HASH (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VALIDATE_SCHEMA (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VALIDATE_URL_ENCODING (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VALIDATE_UTF8_ENCODING (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VERIFY_CC (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VERIFY_CPF (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_VERIFY_SSN (YY_COPY (location_type) l); + + static + symbol_type + make_OPERATOR_WITHIN (YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_LOG_FMT (YY_COPY (location_type) l); + + static + symbol_type + make_JSON (YY_COPY (location_type) l); + + static + symbol_type + make_NATIVE (YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_RULE_ENGINE (YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_ACCURACY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_ALLOW (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_APPEND (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_AUDIT_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_BLOCK (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CAPTURE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CHAIN (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_AUDIT_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_AUDIT_LOG_PARTS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_BDY_JSON (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_BDY_XML (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_BDY_URLENCODED (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_FORCE_REQ_BODY_VAR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_REQUEST_BODY_ACCESS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_RULE_REMOVE_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_RULE_REMOVE_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_DENY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_DEPRECATE_VAR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_DROP (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_EXEC (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_EXPIRE_VAR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_INITCOL (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_LOG_DATA (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_MATURITY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_MSG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_MULTI_MATCH (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_NO_AUDIT_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_NO_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_PASS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_PAUSE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_PHASE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_PREPEND (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_PROXY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_REDIRECT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_REV (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SANITISE_ARG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SANITISE_MATCHED (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SANITISE_MATCHED_BYTES (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SANITISE_REQUEST_HEADER (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SANITISE_RESPONSE_HEADER (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SETENV (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SETRSC (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SETSID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SETUID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SEVERITY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SKIP (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_SKIP_AFTER (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_STATUS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_BASE_64_ENCODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_BASE_64_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_CMD_LINE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_CSS_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_HEX_ENCODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_HEX_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_JS_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_LENGTH (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_LOWERCASE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_MD5 (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_NONE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_NORMALISE_PATH (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_REMOVE_COMMENTS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_REMOVE_NULLS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_REPLACE_COMMENTS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_REPLACE_NULLS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_SHA1 (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_SQL_HEX_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_TRIM (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_TRIM_LEFT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_TRIM_RIGHT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_UPPERCASE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_URL_ENCODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_URL_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_URL_DECODE_UNI (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_VER (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_ACTION_XMLNS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_COMPONENT_SIG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_CONN_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_ARGUMENT_SEPARATOR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_WEB_APP_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_SERVER_SIG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_DIR_MOD (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_ENG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_FLE_MOD (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_LOG2 (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_LOG_P (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_STS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_AUDIT_TPE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_DEBUG_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_DEBUG_LVL (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_CACHE_TRANSFORMATIONS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_DISABLE_BACKEND_COMPRESS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_HASH_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_HASH_KEY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_HASH_PARAM (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_HASH_METHOD_RX (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_HASH_METHOD_PM (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_CHROOT_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_GEO_DB (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_GSB_DB (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_GUARDIAN_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_PCRE_MATCH_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_CONN_R_STATE_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_CONN_W_STATE_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_SENSOR_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_REQ_BODY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_REQ_BODY_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_RES_BODY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_RES_BODY_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_RES_BODY_LIMIT_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_INHERITANCE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_PERF_TIME (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_RULE_ENG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_SEC_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_SEC_DEFAULT_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_SEC_MARKER (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_UNICODE_MAP_FILE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_DIR_UNICODE_CODE_PAGE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_COLLECTION_TIMEOUT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_HTTP_BLKEY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_INTERCEPT_ON_ERROR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_REMOVE_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_REMOVE_BY_MSG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_REMOVE_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_UPDLOAD_KEEP_FILES (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_UPDLOAD_SAVE_TMP_FILES (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_UPLOAD_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_UPLOAD_FILE_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_UPLOAD_FILE_MODE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_ABORT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_DETC (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_HTTPS (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_OFF (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_ON (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_PARALLEL (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_PROCESS_PARTIAL (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_REJECT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_RELEVANT_ONLY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_SERIAL (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_VALUE_WARN (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_XML_EXTERNAL_ENTITY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_RESPONSE_BODY_MP (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_SEC_ARG_SEP (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_SEC_COOKIE_FORMAT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_COOKIEV0_SEPARATOR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_SEC_DATA_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_SEC_STATUS_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_STREAM_IN_BODY_INSPECTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_CONGIG_DIR_SEC_TMP_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_DIRECTIVE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_DIRECTIVE_SECRULESCRIPT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_FREE_TEXT_QUOTE_MACRO_EXPANSION (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_QUOTATION_MARK (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_BLD (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_DUR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_HSV (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_REMOTE_USER (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_DAY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_EPOCH (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_HOUR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_MIN (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_MON (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_SEC (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_WDAY (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_RUN_TIME_VAR_TIME_YEAR (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_VARIABLE (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_DICT_ELEMENT (YY_COPY (std::string) v, YY_COPY (location_type) l); + + static + symbol_type + make_DICT_ELEMENT_REGEXP (YY_COPY (std::string) v, YY_COPY (location_type) l); + + + private: /// This class is not copyable. seclang_parser (const seclang_parser&); @@ -2856,12 +3031,15 @@ namespace yy { typedef basic_symbol super_type; /// Construct an empty symbol. stack_symbol_type (); - /// Copy construct (for efficiency). - stack_symbol_type (const stack_symbol_type& that); + /// Move or copy construction. + stack_symbol_type (YY_RVREF (stack_symbol_type) that); /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, symbol_type& sym); - /// Assignment, needed by push_back. - stack_symbol_type& operator= (const stack_symbol_type& that); + stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); +#if defined __cplusplus && __cplusplus < 201103L + /// Assignment, needed by push_back by some old implementations. + /// Moves the contents of that. + stack_symbol_type& operator= (stack_symbol_type& that); +#endif }; /// Stack type. @@ -2873,20 +3051,20 @@ namespace yy { /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. - /// \param s the symbol + /// \param sym the symbol /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, stack_symbol_type& s); + void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); /// Push a new look ahead token on the state on the stack. /// \param m a debug message to display /// if null, no trace is output. /// \param s the state /// \param sym the symbol (for its value and location). - /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, state_type s, symbol_type& sym); + /// \warning the contents of \a sym.value is stolen. + void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); - /// Pop \a n symbols the three stacks. - void yypop_ (unsigned n = 1); + /// Pop \a n symbols from the stack. + void yypop_ (int n = 1); /// Constants. enum @@ -3000,10 +3178,10 @@ namespace yy { {} template - seclang_parser::basic_symbol::basic_symbol (const basic_symbol& other) - : Base (other) + seclang_parser::basic_symbol::basic_symbol (YY_RVREF (basic_symbol) other) + : Base (YY_MOVE (other)) , value () - , location (other.location) + , location (YY_MOVE (other.location)) { switch (other.type_get ()) { @@ -3203,36 +3381,36 @@ namespace yy { case 337: // "VARIABLE" case 338: // "Dictionary element" case 339: // "Dictionary element, selected by regexp" - value.copy< std::string > (other.value); + value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value)); break; case 346: // op case 347: // op_before_init - value.copy< std::unique_ptr > (other.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (other.value)); break; case 355: // run_time_string - value.copy< std::unique_ptr > (other.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (other.value)); break; case 352: // var - value.copy< std::unique_ptr > (other.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (other.value)); break; case 353: // act case 354: // setvar_action - value.copy< std::unique_ptr > (other.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > (YY_MOVE (other.value)); break; case 349: // variables case 350: // variables_pre_process case 351: // variables_may_be_quoted - value.copy< std::unique_ptr > > > (other.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > > > (YY_MOVE (other.value)); break; case 344: // actions case 345: // actions_may_quoted - value.copy< std::unique_ptr > > > (other.value); + value.YY_MOVE_OR_COPY< std::unique_ptr > > > (YY_MOVE (other.value)); break; default: @@ -3241,307 +3419,65 @@ namespace yy { } - template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const semantic_type& v, const location_type& l) - : Base (t) - , value () - , location (l) - { - (void) v; - switch (this->type_get ()) - { - case 144: // "Accuracy" - case 145: // "Allow" - case 146: // "Append" - case 147: // "AuditLog" - case 148: // "Block" - case 149: // "Capture" - case 150: // "Chain" - case 151: // "ACTION_CTL_AUDIT_ENGINE" - case 152: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 153: // "ACTION_CTL_BDY_JSON" - case 154: // "ACTION_CTL_BDY_XML" - case 155: // "ACTION_CTL_BDY_URLENCODED" - case 156: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 157: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 158: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 159: // "ACTION_CTL_RULE_REMOVE_BY_TAG" - case 160: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 161: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 162: // "Deny" - case 163: // "DeprecateVar" - case 164: // "Drop" - case 165: // "Exec" - case 166: // "ExpireVar" - case 167: // "Id" - case 168: // "InitCol" - case 169: // "Log" - case 170: // "LogData" - case 171: // "Maturity" - case 172: // "Msg" - case 173: // "MultiMatch" - case 174: // "NoAuditLog" - case 175: // "NoLog" - case 176: // "Pass" - case 177: // "Pause" - case 178: // "Phase" - case 179: // "Prepend" - case 180: // "Proxy" - case 181: // "Redirect" - case 182: // "Rev" - case 183: // "SanitiseArg" - case 184: // "SanitiseMatched" - case 185: // "SanitiseMatchedBytes" - case 186: // "SanitiseRequestHeader" - case 187: // "SanitiseResponseHeader" - case 188: // "SetEnv" - case 189: // "SetRsc" - case 190: // "SetSid" - case 191: // "SetUID" - case 192: // "Severity" - case 193: // "Skip" - case 194: // "SkipAfter" - case 195: // "Status" - case 196: // "Tag" - case 197: // "ACTION_TRANSFORMATION_BASE_64_ENCODE" - case 198: // "ACTION_TRANSFORMATION_BASE_64_DECODE" - case 199: // "ACTION_TRANSFORMATION_BASE_64_DECODE_EXT" - case 200: // "ACTION_TRANSFORMATION_CMD_LINE" - case 201: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 202: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 203: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" - case 204: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 205: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 206: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 207: // "ACTION_TRANSFORMATION_JS_DECODE" - case 208: // "ACTION_TRANSFORMATION_LENGTH" - case 209: // "ACTION_TRANSFORMATION_LOWERCASE" - case 210: // "ACTION_TRANSFORMATION_MD5" - case 211: // "ACTION_TRANSFORMATION_NONE" - case 212: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 213: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 214: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 215: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 216: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 217: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 218: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 219: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 220: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 221: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 222: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 223: // "ACTION_TRANSFORMATION_SHA1" - case 224: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 225: // "ACTION_TRANSFORMATION_TRIM" - case 226: // "ACTION_TRANSFORMATION_TRIM_LEFT" - case 227: // "ACTION_TRANSFORMATION_TRIM_RIGHT" - case 228: // "ACTION_TRANSFORMATION_UPPERCASE" - case 229: // "ACTION_TRANSFORMATION_URL_ENCODE" - case 230: // "ACTION_TRANSFORMATION_URL_DECODE" - case 231: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 232: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 233: // "Ver" - case 234: // "xmlns" - case 235: // "CONFIG_COMPONENT_SIG" - case 236: // "CONFIG_CONN_ENGINE" - case 237: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 238: // "CONFIG_SEC_WEB_APP_ID" - case 239: // "CONFIG_SEC_SERVER_SIG" - case 240: // "CONFIG_DIR_AUDIT_DIR" - case 241: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 242: // "CONFIG_DIR_AUDIT_ENG" - case 243: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 244: // "CONFIG_DIR_AUDIT_LOG" - case 245: // "CONFIG_DIR_AUDIT_LOG2" - case 246: // "CONFIG_DIR_AUDIT_LOG_P" - case 247: // "CONFIG_DIR_AUDIT_STS" - case 248: // "CONFIG_DIR_AUDIT_TPE" - case 249: // "CONFIG_DIR_DEBUG_LOG" - case 250: // "CONFIG_DIR_DEBUG_LVL" - case 251: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 252: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 253: // "CONFIG_SEC_HASH_ENGINE" - case 254: // "CONFIG_SEC_HASH_KEY" - case 255: // "CONFIG_SEC_HASH_PARAM" - case 256: // "CONFIG_SEC_HASH_METHOD_RX" - case 257: // "CONFIG_SEC_HASH_METHOD_PM" - case 258: // "CONFIG_SEC_CHROOT_DIR" - case 259: // "CONFIG_DIR_GEO_DB" - case 260: // "CONFIG_DIR_GSB_DB" - case 261: // "CONFIG_SEC_GUARDIAN_LOG" - case 262: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 263: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 264: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 265: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 266: // "CONFIG_SEC_SENSOR_ID" - case 267: // "CONFIG_DIR_REQ_BODY" - case 268: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 269: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 270: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 271: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 272: // "CONFIG_DIR_RES_BODY" - case 273: // "CONFIG_DIR_RES_BODY_LIMIT" - case 274: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 275: // "CONFIG_SEC_RULE_INHERITANCE" - case 276: // "CONFIG_SEC_RULE_PERF_TIME" - case 277: // "CONFIG_DIR_RULE_ENG" - case 278: // "CONFIG_DIR_SEC_ACTION" - case 279: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 280: // "CONFIG_DIR_SEC_MARKER" - case 281: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 282: // "CONFIG_DIR_UNICODE_CODE_PAGE" - case 283: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 284: // "CONFIG_SEC_HTTP_BLKEY" - case 285: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 286: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 287: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 288: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 289: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 290: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 291: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 292: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 293: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 294: // "CONFIG_UPDLOAD_KEEP_FILES" - case 295: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 296: // "CONFIG_UPLOAD_DIR" - case 297: // "CONFIG_UPLOAD_FILE_LIMIT" - case 298: // "CONFIG_UPLOAD_FILE_MODE" - case 299: // "CONFIG_VALUE_ABORT" - case 300: // "CONFIG_VALUE_DETC" - case 301: // "CONFIG_VALUE_HTTPS" - case 302: // "CONFIG_VALUE_OFF" - case 303: // "CONFIG_VALUE_ON" - case 304: // "CONFIG_VALUE_PARALLEL" - case 305: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 306: // "CONFIG_VALUE_REJECT" - case 307: // "CONFIG_VALUE_RELEVANT_ONLY" - case 308: // "CONFIG_VALUE_SERIAL" - case 309: // "CONFIG_VALUE_WARN" - case 310: // "CONFIG_XML_EXTERNAL_ENTITY" - case 311: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 312: // "CONGIG_DIR_SEC_ARG_SEP" - case 313: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 314: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 315: // "CONGIG_DIR_SEC_DATA_DIR" - case 316: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 317: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 318: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 319: // "CONGIG_DIR_SEC_TMP_DIR" - case 320: // "DIRECTIVE" - case 321: // "DIRECTIVE_SECRULESCRIPT" - case 322: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 323: // "QUOTATION_MARK" - case 324: // "RUN_TIME_VAR_BLD" - case 325: // "RUN_TIME_VAR_DUR" - case 326: // "RUN_TIME_VAR_HSV" - case 327: // "RUN_TIME_VAR_REMOTE_USER" - case 328: // "RUN_TIME_VAR_TIME" - case 329: // "RUN_TIME_VAR_TIME_DAY" - case 330: // "RUN_TIME_VAR_TIME_EPOCH" - case 331: // "RUN_TIME_VAR_TIME_HOUR" - case 332: // "RUN_TIME_VAR_TIME_MIN" - case 333: // "RUN_TIME_VAR_TIME_MON" - case 334: // "RUN_TIME_VAR_TIME_SEC" - case 335: // "RUN_TIME_VAR_TIME_WDAY" - case 336: // "RUN_TIME_VAR_TIME_YEAR" - case 337: // "VARIABLE" - case 338: // "Dictionary element" - case 339: // "Dictionary element, selected by regexp" - value.copy< std::string > (v); - break; - - case 346: // op - case 347: // op_before_init - value.copy< std::unique_ptr > (v); - break; - - case 355: // run_time_string - value.copy< std::unique_ptr > (v); - break; - - case 352: // var - value.copy< std::unique_ptr > (v); - break; - - case 353: // act - case 354: // setvar_action - value.copy< std::unique_ptr > (v); - break; - - case 349: // variables - case 350: // variables_pre_process - case 351: // variables_may_be_quoted - value.copy< std::unique_ptr > > > (v); - break; - - case 344: // actions - case 345: // actions_may_quoted - value.copy< std::unique_ptr > > > (v); - break; - - default: - break; - } -} - // Implementation of basic_symbol constructor for each type. - template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (location_type) l) : Base (t) - , location (l) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::string) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr& v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr > > & v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr > > ) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} template - seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr > > & v, const location_type& l) + seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, YY_RVREF (std::unique_ptr > > ) v, YY_RVREF (location_type) l) : Base (t) - , value (v) - , location (l) + , value (YY_MOVE (v)) + , location (YY_MOVE (l)) {} + template seclang_parser::basic_symbol::~basic_symbol () { @@ -4010,43 +3946,43 @@ namespace yy { case 337: // "VARIABLE" case 338: // "Dictionary element" case 339: // "Dictionary element, selected by regexp" - value.move< std::string > (s.value); + value.move< std::string > (YY_MOVE (s.value)); break; case 346: // op case 347: // op_before_init - value.move< std::unique_ptr > (s.value); + value.move< std::unique_ptr > (YY_MOVE (s.value)); break; case 355: // run_time_string - value.move< std::unique_ptr > (s.value); + value.move< std::unique_ptr > (YY_MOVE (s.value)); break; case 352: // var - value.move< std::unique_ptr > (s.value); + value.move< std::unique_ptr > (YY_MOVE (s.value)); break; case 353: // act case 354: // setvar_action - value.move< std::unique_ptr > (s.value); + value.move< std::unique_ptr > (YY_MOVE (s.value)); break; case 349: // variables case 350: // variables_pre_process case 351: // variables_may_be_quoted - value.move< std::unique_ptr > > > (s.value); + value.move< std::unique_ptr > > > (YY_MOVE (s.value)); break; case 344: // actions case 345: // actions_may_quoted - value.move< std::unique_ptr > > > (s.value); + value.move< std::unique_ptr > > > (YY_MOVE (s.value)); break; default: break; } - location = s.location; + location = YY_MOVE (s.location); } // by_type. @@ -4134,2039 +4070,2378 @@ namespace yy { }; return static_cast (yytoken_number_[type]); } + // Implementation of make_symbol for each symbol type. + inline seclang_parser::symbol_type - seclang_parser::make_END (const location_type& l) + seclang_parser::make_END (YY_COPY (location_type) l) { - return symbol_type (token::TOK_END, l); + return symbol_type (token::TOK_END, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_COMMA (const location_type& l) + seclang_parser::make_COMMA (YY_COPY (location_type) l) { - return symbol_type (token::TOK_COMMA, l); + return symbol_type (token::TOK_COMMA, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_CONTENT_INJECTION (const location_type& l) + seclang_parser::make_CONFIG_CONTENT_INJECTION (YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_CONTENT_INJECTION, l); + return symbol_type (token::TOK_CONFIG_CONTENT_INJECTION, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR (const location_type& l) + seclang_parser::make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR, l); + return symbol_type (token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_PIPE (const location_type& l) + seclang_parser::make_PIPE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_PIPE, l); + return symbol_type (token::TOK_PIPE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_NEW_LINE (const location_type& l) + seclang_parser::make_NEW_LINE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_NEW_LINE, l); + return symbol_type (token::TOK_NEW_LINE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VAR_COUNT (const location_type& l) + seclang_parser::make_VAR_COUNT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VAR_COUNT, l); + return symbol_type (token::TOK_VAR_COUNT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VAR_EXCLUSION (const location_type& l) + seclang_parser::make_VAR_EXCLUSION (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VAR_EXCLUSION, l); + return symbol_type (token::TOK_VAR_EXCLUSION, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS (const location_type& l) + seclang_parser::make_VARIABLE_ARGS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS, l); + return symbol_type (token::TOK_VARIABLE_ARGS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS_POST (const location_type& l) + seclang_parser::make_VARIABLE_ARGS_POST (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS_POST, l); + return symbol_type (token::TOK_VARIABLE_ARGS_POST, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS_GET (const location_type& l) + seclang_parser::make_VARIABLE_ARGS_GET (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS_GET, l); + return symbol_type (token::TOK_VARIABLE_ARGS_GET, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FILES_SIZES (const location_type& l) + seclang_parser::make_VARIABLE_FILES_SIZES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FILES_SIZES, l); + return symbol_type (token::TOK_VARIABLE_FILES_SIZES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FILES_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_FILES_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FILES_NAMES, l); + return symbol_type (token::TOK_VARIABLE_FILES_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FILES_TMP_CONTENT (const location_type& l) + seclang_parser::make_VARIABLE_FILES_TMP_CONTENT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FILES_TMP_CONTENT, l); + return symbol_type (token::TOK_VARIABLE_FILES_TMP_CONTENT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_FILENAME (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_FILENAME (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_FILENAME, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_FILENAME, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_NAME (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_NAME (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_NAME, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_NAME, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MATCHED_VARS_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_MATCHED_VARS_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MATCHED_VARS_NAMES, l); + return symbol_type (token::TOK_VARIABLE_MATCHED_VARS_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MATCHED_VARS (const location_type& l) + seclang_parser::make_VARIABLE_MATCHED_VARS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MATCHED_VARS, l); + return symbol_type (token::TOK_VARIABLE_MATCHED_VARS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FILES (const location_type& l) + seclang_parser::make_VARIABLE_FILES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FILES, l); + return symbol_type (token::TOK_VARIABLE_FILES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_COOKIES (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_COOKIES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_COOKIES, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_COOKIES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_HEADERS (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_HEADERS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_HEADERS, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_HEADERS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_HEADERS (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_HEADERS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_HEADERS, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_HEADERS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_GEO (const location_type& l) + seclang_parser::make_VARIABLE_GEO (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_GEO, l); + return symbol_type (token::TOK_VARIABLE_GEO, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_COOKIES_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_COOKIES_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_COOKIES_NAMES, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_COOKIES_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS_COMBINED_SIZE (const location_type& l) + seclang_parser::make_VARIABLE_ARGS_COMBINED_SIZE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS_COMBINED_SIZE, l); + return symbol_type (token::TOK_VARIABLE_ARGS_COMBINED_SIZE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS_GET_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_ARGS_GET_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS_GET_NAMES, l); + return symbol_type (token::TOK_VARIABLE_ARGS_GET_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RULE (const location_type& l) + seclang_parser::make_VARIABLE_RULE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RULE, l); + return symbol_type (token::TOK_VARIABLE_RULE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_ARGS_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS_NAMES, l); + return symbol_type (token::TOK_VARIABLE_ARGS_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_ARGS_POST_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_ARGS_POST_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_ARGS_POST_NAMES, l); + return symbol_type (token::TOK_VARIABLE_ARGS_POST_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_AUTH_TYPE (const location_type& l) + seclang_parser::make_VARIABLE_AUTH_TYPE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_AUTH_TYPE, l); + return symbol_type (token::TOK_VARIABLE_AUTH_TYPE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FILES_COMBINED_SIZE (const location_type& l) + seclang_parser::make_VARIABLE_FILES_COMBINED_SIZE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FILES_COMBINED_SIZE, l); + return symbol_type (token::TOK_VARIABLE_FILES_COMBINED_SIZE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FILES_TMP_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_FILES_TMP_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FILES_TMP_NAMES, l); + return symbol_type (token::TOK_VARIABLE_FILES_TMP_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FULL_REQUEST (const location_type& l) + seclang_parser::make_VARIABLE_FULL_REQUEST (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FULL_REQUEST, l); + return symbol_type (token::TOK_VARIABLE_FULL_REQUEST, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_FULL_REQUEST_LENGTH (const location_type& l) + seclang_parser::make_VARIABLE_FULL_REQUEST_LENGTH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_FULL_REQUEST_LENGTH, l); + return symbol_type (token::TOK_VARIABLE_FULL_REQUEST_LENGTH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_INBOUND_DATA_ERROR (const location_type& l) + seclang_parser::make_VARIABLE_INBOUND_DATA_ERROR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_INBOUND_DATA_ERROR, l); + return symbol_type (token::TOK_VARIABLE_INBOUND_DATA_ERROR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MATCHED_VAR (const location_type& l) + seclang_parser::make_VARIABLE_MATCHED_VAR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MATCHED_VAR, l); + return symbol_type (token::TOK_VARIABLE_MATCHED_VAR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MATCHED_VAR_NAME (const location_type& l) + seclang_parser::make_VARIABLE_MATCHED_VAR_NAME (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MATCHED_VAR_NAME, l); + return symbol_type (token::TOK_VARIABLE_MATCHED_VAR_NAME, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_BOUNDARY_QUOTED (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_BOUNDARY_QUOTED (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_CRLF_LF_LINES (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_CRLF_LF_LINES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_DATA_AFTER (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_DATA_AFTER (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_DATA_AFTER, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_DATA_AFTER, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_DATA_BEFORE (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_DATA_BEFORE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_DATA_BEFORE, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_DATA_BEFORE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_HEADER_FOLDING (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_HEADER_FOLDING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_INVALID_PART (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_INVALID_PART (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_PART, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_PART, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_INVALID_QUOTING (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_INVALID_QUOTING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_LF_LINE (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_LF_LINE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_LF_LINE, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_LF_LINE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_MISSING_SEMICOLON (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_MISSING_SEMICOLON (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_SEMICOLON_MISSING (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_SEMICOLON_MISSING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_SEMICOLON_MISSING, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_SEMICOLON_MISSING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_STRICT_ERROR (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_STRICT_ERROR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_STRICT_ERROR, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_STRICT_ERROR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY (const location_type& l) + seclang_parser::make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY, l); + return symbol_type (token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_OUTBOUND_DATA_ERROR (const location_type& l) + seclang_parser::make_VARIABLE_OUTBOUND_DATA_ERROR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_OUTBOUND_DATA_ERROR, l); + return symbol_type (token::TOK_VARIABLE_OUTBOUND_DATA_ERROR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_PATH_INFO (const location_type& l) + seclang_parser::make_VARIABLE_PATH_INFO (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_PATH_INFO, l); + return symbol_type (token::TOK_VARIABLE_PATH_INFO, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_QUERY_STRING (const location_type& l) + seclang_parser::make_VARIABLE_QUERY_STRING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_QUERY_STRING, l); + return symbol_type (token::TOK_VARIABLE_QUERY_STRING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REMOTE_ADDR (const location_type& l) + seclang_parser::make_VARIABLE_REMOTE_ADDR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REMOTE_ADDR, l); + return symbol_type (token::TOK_VARIABLE_REMOTE_ADDR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REMOTE_HOST (const location_type& l) + seclang_parser::make_VARIABLE_REMOTE_HOST (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REMOTE_HOST, l); + return symbol_type (token::TOK_VARIABLE_REMOTE_HOST, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REMOTE_PORT (const location_type& l) + seclang_parser::make_VARIABLE_REMOTE_PORT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REMOTE_PORT, l); + return symbol_type (token::TOK_VARIABLE_REMOTE_PORT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQBODY_ERROR_MSG (const location_type& l) + seclang_parser::make_VARIABLE_REQBODY_ERROR_MSG (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQBODY_ERROR_MSG, l); + return symbol_type (token::TOK_VARIABLE_REQBODY_ERROR_MSG, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQBODY_ERROR (const location_type& l) + seclang_parser::make_VARIABLE_REQBODY_ERROR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQBODY_ERROR, l); + return symbol_type (token::TOK_VARIABLE_REQBODY_ERROR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG (const location_type& l) + seclang_parser::make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG, l); + return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQBODY_PROCESSOR_ERROR (const location_type& l) + seclang_parser::make_VARIABLE_REQBODY_PROCESSOR_ERROR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR, l); + return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQBODY_PROCESSOR (const location_type& l) + seclang_parser::make_VARIABLE_REQBODY_PROCESSOR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR, l); + return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_BASENAME (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_BASENAME (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_BASENAME, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_BASENAME, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_BODY_LENGTH (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_BODY_LENGTH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_BODY_LENGTH, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_BODY_LENGTH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_BODY (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_BODY (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_BODY, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_BODY, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_FILE_NAME (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_FILE_NAME (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_FILE_NAME, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_FILE_NAME, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_HEADERS_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_HEADERS_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_HEADERS_NAMES, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_HEADERS_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_LINE (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_LINE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_LINE, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_LINE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_METHOD (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_METHOD (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_METHOD, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_METHOD, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_PROTOCOL (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_PROTOCOL (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_PROTOCOL, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_PROTOCOL, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_URI_RAW (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_URI_RAW (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_URI_RAW, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_URI_RAW, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_REQUEST_URI (const location_type& l) + seclang_parser::make_VARIABLE_REQUEST_URI (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_REQUEST_URI, l); + return symbol_type (token::TOK_VARIABLE_REQUEST_URI, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESOURCE (const location_type& l) + seclang_parser::make_VARIABLE_RESOURCE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESOURCE, l); + return symbol_type (token::TOK_VARIABLE_RESOURCE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_BODY (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_BODY (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_BODY, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_BODY, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_CONTENT_LENGTH (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_CONTENT_LENGTH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_CONTENT_TYPE (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_CONTENT_TYPE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_HEADERS_NAMES (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_HEADERS_NAMES (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_PROTOCOL (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_PROTOCOL (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_PROTOCOL, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_PROTOCOL, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_RESPONSE_STATUS (const location_type& l) + seclang_parser::make_VARIABLE_RESPONSE_STATUS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_RESPONSE_STATUS, l); + return symbol_type (token::TOK_VARIABLE_RESPONSE_STATUS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_SERVER_ADDR (const location_type& l) + seclang_parser::make_VARIABLE_SERVER_ADDR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_SERVER_ADDR, l); + return symbol_type (token::TOK_VARIABLE_SERVER_ADDR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_SERVER_NAME (const location_type& l) + seclang_parser::make_VARIABLE_SERVER_NAME (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_SERVER_NAME, l); + return symbol_type (token::TOK_VARIABLE_SERVER_NAME, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_SERVER_PORT (const location_type& l) + seclang_parser::make_VARIABLE_SERVER_PORT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_SERVER_PORT, l); + return symbol_type (token::TOK_VARIABLE_SERVER_PORT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_SESSION_ID (const location_type& l) + seclang_parser::make_VARIABLE_SESSION_ID (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_SESSION_ID, l); + return symbol_type (token::TOK_VARIABLE_SESSION_ID, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_UNIQUE_ID (const location_type& l) + seclang_parser::make_VARIABLE_UNIQUE_ID (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_UNIQUE_ID, l); + return symbol_type (token::TOK_VARIABLE_UNIQUE_ID, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_URL_ENCODED_ERROR (const location_type& l) + seclang_parser::make_VARIABLE_URL_ENCODED_ERROR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_URL_ENCODED_ERROR, l); + return symbol_type (token::TOK_VARIABLE_URL_ENCODED_ERROR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_USER_ID (const location_type& l) + seclang_parser::make_VARIABLE_USER_ID (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_USER_ID, l); + return symbol_type (token::TOK_VARIABLE_USER_ID, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_WEB_APP_ID (const location_type& l) + seclang_parser::make_VARIABLE_WEB_APP_ID (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_WEB_APP_ID, l); + return symbol_type (token::TOK_VARIABLE_WEB_APP_ID, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_STATUS (const location_type& l) + seclang_parser::make_VARIABLE_STATUS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_STATUS, l); + return symbol_type (token::TOK_VARIABLE_STATUS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_STATUS_LINE (const location_type& l) + seclang_parser::make_VARIABLE_STATUS_LINE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_STATUS_LINE, l); + return symbol_type (token::TOK_VARIABLE_STATUS_LINE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_IP (const location_type& l) + seclang_parser::make_VARIABLE_IP (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_IP, l); + return symbol_type (token::TOK_VARIABLE_IP, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_GLOBAL (const location_type& l) + seclang_parser::make_VARIABLE_GLOBAL (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_GLOBAL, l); + return symbol_type (token::TOK_VARIABLE_GLOBAL, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_TX (const location_type& l) + seclang_parser::make_VARIABLE_TX (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_TX, l); + return symbol_type (token::TOK_VARIABLE_TX, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_SESSION (const location_type& l) + seclang_parser::make_VARIABLE_SESSION (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_SESSION, l); + return symbol_type (token::TOK_VARIABLE_SESSION, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE_USER (const location_type& l) + seclang_parser::make_VARIABLE_USER (YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE_USER, l); + return symbol_type (token::TOK_VARIABLE_USER, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_ENV (const location_type& l) + seclang_parser::make_RUN_TIME_VAR_ENV (YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_ENV, l); + return symbol_type (token::TOK_RUN_TIME_VAR_ENV, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_XML (const location_type& l) + seclang_parser::make_RUN_TIME_VAR_XML (YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_XML, l); + return symbol_type (token::TOK_RUN_TIME_VAR_XML, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SETVAR (const location_type& l) + seclang_parser::make_ACTION_SETVAR (YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SETVAR, l); + return symbol_type (token::TOK_ACTION_SETVAR, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_SETVAR_OPERATION_EQUALS (const location_type& l) + seclang_parser::make_SETVAR_OPERATION_EQUALS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS, l); + return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_SETVAR_OPERATION_EQUALS_PLUS (const location_type& l) + seclang_parser::make_SETVAR_OPERATION_EQUALS_PLUS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS_PLUS, l); + return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS_PLUS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_SETVAR_OPERATION_EQUALS_MINUS (const location_type& l) + seclang_parser::make_SETVAR_OPERATION_EQUALS_MINUS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS_MINUS, l); + return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS_MINUS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_NOT (const location_type& l) + seclang_parser::make_NOT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_NOT, l); + return symbol_type (token::TOK_NOT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_BEGINS_WITH (const location_type& l) + seclang_parser::make_OPERATOR_BEGINS_WITH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_BEGINS_WITH, l); + return symbol_type (token::TOK_OPERATOR_BEGINS_WITH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_CONTAINS (const location_type& l) + seclang_parser::make_OPERATOR_CONTAINS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_CONTAINS, l); + return symbol_type (token::TOK_OPERATOR_CONTAINS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_CONTAINS_WORD (const location_type& l) + seclang_parser::make_OPERATOR_CONTAINS_WORD (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_CONTAINS_WORD, l); + return symbol_type (token::TOK_OPERATOR_CONTAINS_WORD, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_DETECT_SQLI (const location_type& l) + seclang_parser::make_OPERATOR_DETECT_SQLI (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_DETECT_SQLI, l); + return symbol_type (token::TOK_OPERATOR_DETECT_SQLI, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_DETECT_XSS (const location_type& l) + seclang_parser::make_OPERATOR_DETECT_XSS (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_DETECT_XSS, l); + return symbol_type (token::TOK_OPERATOR_DETECT_XSS, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_ENDS_WITH (const location_type& l) + seclang_parser::make_OPERATOR_ENDS_WITH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_ENDS_WITH, l); + return symbol_type (token::TOK_OPERATOR_ENDS_WITH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_EQ (const location_type& l) + seclang_parser::make_OPERATOR_EQ (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_EQ, l); + return symbol_type (token::TOK_OPERATOR_EQ, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_FUZZY_HASH (const location_type& l) + seclang_parser::make_OPERATOR_FUZZY_HASH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_FUZZY_HASH, l); + return symbol_type (token::TOK_OPERATOR_FUZZY_HASH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GEOLOOKUP (const location_type& l) + seclang_parser::make_OPERATOR_GEOLOOKUP (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_GEOLOOKUP, l); + return symbol_type (token::TOK_OPERATOR_GEOLOOKUP, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GE (const location_type& l) + seclang_parser::make_OPERATOR_GE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_GE, l); + return symbol_type (token::TOK_OPERATOR_GE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GSB_LOOKUP (const location_type& l) + seclang_parser::make_OPERATOR_GSB_LOOKUP (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_GSB_LOOKUP, l); + return symbol_type (token::TOK_OPERATOR_GSB_LOOKUP, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GT (const location_type& l) + seclang_parser::make_OPERATOR_GT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_GT, l); + return symbol_type (token::TOK_OPERATOR_GT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_INSPECT_FILE (const location_type& l) + seclang_parser::make_OPERATOR_INSPECT_FILE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_INSPECT_FILE, l); + return symbol_type (token::TOK_OPERATOR_INSPECT_FILE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_IP_MATCH_FROM_FILE (const location_type& l) + seclang_parser::make_OPERATOR_IP_MATCH_FROM_FILE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_IP_MATCH_FROM_FILE, l); + return symbol_type (token::TOK_OPERATOR_IP_MATCH_FROM_FILE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_IP_MATCH (const location_type& l) + seclang_parser::make_OPERATOR_IP_MATCH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_IP_MATCH, l); + return symbol_type (token::TOK_OPERATOR_IP_MATCH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_LE (const location_type& l) + seclang_parser::make_OPERATOR_LE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_LE, l); + return symbol_type (token::TOK_OPERATOR_LE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_LT (const location_type& l) + seclang_parser::make_OPERATOR_LT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_LT, l); + return symbol_type (token::TOK_OPERATOR_LT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_PM_FROM_FILE (const location_type& l) + seclang_parser::make_OPERATOR_PM_FROM_FILE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_PM_FROM_FILE, l); + return symbol_type (token::TOK_OPERATOR_PM_FROM_FILE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_PM (const location_type& l) + seclang_parser::make_OPERATOR_PM (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_PM, l); + return symbol_type (token::TOK_OPERATOR_PM, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RBL (const location_type& l) + seclang_parser::make_OPERATOR_RBL (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_RBL, l); + return symbol_type (token::TOK_OPERATOR_RBL, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RSUB (const location_type& l) + seclang_parser::make_OPERATOR_RSUB (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_RSUB, l); + return symbol_type (token::TOK_OPERATOR_RSUB, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RX_CONTENT_ONLY (const location_type& l) + seclang_parser::make_OPERATOR_RX_CONTENT_ONLY (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_RX_CONTENT_ONLY, l); + return symbol_type (token::TOK_OPERATOR_RX_CONTENT_ONLY, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RX (const location_type& l) + seclang_parser::make_OPERATOR_RX (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_RX, l); + return symbol_type (token::TOK_OPERATOR_RX, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_STR_EQ (const location_type& l) + seclang_parser::make_OPERATOR_STR_EQ (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_STR_EQ, l); + return symbol_type (token::TOK_OPERATOR_STR_EQ, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_STR_MATCH (const location_type& l) + seclang_parser::make_OPERATOR_STR_MATCH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_STR_MATCH, l); + return symbol_type (token::TOK_OPERATOR_STR_MATCH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_UNCONDITIONAL_MATCH (const location_type& l) + seclang_parser::make_OPERATOR_UNCONDITIONAL_MATCH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_UNCONDITIONAL_MATCH, l); + return symbol_type (token::TOK_OPERATOR_UNCONDITIONAL_MATCH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_BYTE_RANGE (const location_type& l) + seclang_parser::make_OPERATOR_VALIDATE_BYTE_RANGE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VALIDATE_BYTE_RANGE, l); + return symbol_type (token::TOK_OPERATOR_VALIDATE_BYTE_RANGE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_DTD (const location_type& l) + seclang_parser::make_OPERATOR_VALIDATE_DTD (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VALIDATE_DTD, l); + return symbol_type (token::TOK_OPERATOR_VALIDATE_DTD, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_HASH (const location_type& l) + seclang_parser::make_OPERATOR_VALIDATE_HASH (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VALIDATE_HASH, l); + return symbol_type (token::TOK_OPERATOR_VALIDATE_HASH, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_SCHEMA (const location_type& l) + seclang_parser::make_OPERATOR_VALIDATE_SCHEMA (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VALIDATE_SCHEMA, l); + return symbol_type (token::TOK_OPERATOR_VALIDATE_SCHEMA, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_URL_ENCODING (const location_type& l) + seclang_parser::make_OPERATOR_VALIDATE_URL_ENCODING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VALIDATE_URL_ENCODING, l); + return symbol_type (token::TOK_OPERATOR_VALIDATE_URL_ENCODING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_UTF8_ENCODING (const location_type& l) + seclang_parser::make_OPERATOR_VALIDATE_UTF8_ENCODING (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING, l); + return symbol_type (token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VERIFY_CC (const location_type& l) + seclang_parser::make_OPERATOR_VERIFY_CC (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VERIFY_CC, l); + return symbol_type (token::TOK_OPERATOR_VERIFY_CC, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VERIFY_CPF (const location_type& l) + seclang_parser::make_OPERATOR_VERIFY_CPF (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VERIFY_CPF, l); + return symbol_type (token::TOK_OPERATOR_VERIFY_CPF, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VERIFY_SSN (const location_type& l) + seclang_parser::make_OPERATOR_VERIFY_SSN (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_VERIFY_SSN, l); + return symbol_type (token::TOK_OPERATOR_VERIFY_SSN, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_OPERATOR_WITHIN (const location_type& l) + seclang_parser::make_OPERATOR_WITHIN (YY_COPY (location_type) l) { - return symbol_type (token::TOK_OPERATOR_WITHIN, l); + return symbol_type (token::TOK_OPERATOR_WITHIN, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_LOG_FMT (const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_LOG_FMT (YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG_FMT, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG_FMT, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_JSON (const location_type& l) + seclang_parser::make_JSON (YY_COPY (location_type) l) { - return symbol_type (token::TOK_JSON, l); + return symbol_type (token::TOK_JSON, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_NATIVE (const location_type& l) + seclang_parser::make_NATIVE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_NATIVE, l); + return symbol_type (token::TOK_NATIVE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_RULE_ENGINE (const location_type& l) + seclang_parser::make_ACTION_CTL_RULE_ENGINE (YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_RULE_ENGINE, l); + return symbol_type (token::TOK_ACTION_CTL_RULE_ENGINE, YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_ACCURACY (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_ACCURACY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_ACCURACY, v, l); + return symbol_type (token::TOK_ACTION_ACCURACY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_ALLOW (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_ALLOW (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_ALLOW, v, l); + return symbol_type (token::TOK_ACTION_ALLOW, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_APPEND (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_APPEND (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_APPEND, v, l); + return symbol_type (token::TOK_ACTION_APPEND, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_AUDIT_LOG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_AUDIT_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_AUDIT_LOG, v, l); + return symbol_type (token::TOK_ACTION_AUDIT_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_BLOCK (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_BLOCK (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_BLOCK, v, l); + return symbol_type (token::TOK_ACTION_BLOCK, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CAPTURE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CAPTURE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CAPTURE, v, l); + return symbol_type (token::TOK_ACTION_CAPTURE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CHAIN (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CHAIN (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CHAIN, v, l); + return symbol_type (token::TOK_ACTION_CHAIN, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_AUDIT_ENGINE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_AUDIT_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_AUDIT_ENGINE, v, l); + return symbol_type (token::TOK_ACTION_CTL_AUDIT_ENGINE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_AUDIT_LOG_PARTS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_AUDIT_LOG_PARTS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_AUDIT_LOG_PARTS, v, l); + return symbol_type (token::TOK_ACTION_CTL_AUDIT_LOG_PARTS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_BDY_JSON (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_BDY_JSON (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_BDY_JSON, v, l); + return symbol_type (token::TOK_ACTION_CTL_BDY_JSON, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_BDY_XML (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_BDY_XML (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_BDY_XML, v, l); + return symbol_type (token::TOK_ACTION_CTL_BDY_XML, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_BDY_URLENCODED (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_BDY_URLENCODED (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_BDY_URLENCODED, v, l); + return symbol_type (token::TOK_ACTION_CTL_BDY_URLENCODED, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_FORCE_REQ_BODY_VAR (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_FORCE_REQ_BODY_VAR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR, v, l); + return symbol_type (token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_REQUEST_BODY_ACCESS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_REQUEST_BODY_ACCESS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS, v, l); + return symbol_type (token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_RULE_REMOVE_BY_ID (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_RULE_REMOVE_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID, v, l); + return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_RULE_REMOVE_BY_TAG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_RULE_REMOVE_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_BY_TAG, v, l); + return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_BY_TAG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID, v, l); + return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG, v, l); + return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_DENY (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_DENY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_DENY, v, l); + return symbol_type (token::TOK_ACTION_DENY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_DEPRECATE_VAR (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_DEPRECATE_VAR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_DEPRECATE_VAR, v, l); + return symbol_type (token::TOK_ACTION_DEPRECATE_VAR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_DROP (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_DROP (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_DROP, v, l); + return symbol_type (token::TOK_ACTION_DROP, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_EXEC (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_EXEC (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_EXEC, v, l); + return symbol_type (token::TOK_ACTION_EXEC, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_EXPIRE_VAR (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_EXPIRE_VAR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_EXPIRE_VAR, v, l); + return symbol_type (token::TOK_ACTION_EXPIRE_VAR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_ID (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_ID, v, l); + return symbol_type (token::TOK_ACTION_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_INITCOL (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_INITCOL (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_INITCOL, v, l); + return symbol_type (token::TOK_ACTION_INITCOL, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_LOG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_LOG, v, l); + return symbol_type (token::TOK_ACTION_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_LOG_DATA (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_LOG_DATA (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_LOG_DATA, v, l); + return symbol_type (token::TOK_ACTION_LOG_DATA, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_MATURITY (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_MATURITY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_MATURITY, v, l); + return symbol_type (token::TOK_ACTION_MATURITY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_MSG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_MSG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_MSG, v, l); + return symbol_type (token::TOK_ACTION_MSG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_MULTI_MATCH (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_MULTI_MATCH (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_MULTI_MATCH, v, l); + return symbol_type (token::TOK_ACTION_MULTI_MATCH, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_NO_AUDIT_LOG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_NO_AUDIT_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_NO_AUDIT_LOG, v, l); + return symbol_type (token::TOK_ACTION_NO_AUDIT_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_NO_LOG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_NO_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_NO_LOG, v, l); + return symbol_type (token::TOK_ACTION_NO_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_PASS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_PASS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_PASS, v, l); + return symbol_type (token::TOK_ACTION_PASS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_PAUSE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_PAUSE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_PAUSE, v, l); + return symbol_type (token::TOK_ACTION_PAUSE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_PHASE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_PHASE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_PHASE, v, l); + return symbol_type (token::TOK_ACTION_PHASE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_PREPEND (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_PREPEND (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_PREPEND, v, l); + return symbol_type (token::TOK_ACTION_PREPEND, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_PROXY (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_PROXY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_PROXY, v, l); + return symbol_type (token::TOK_ACTION_PROXY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_REDIRECT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_REDIRECT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_REDIRECT, v, l); + return symbol_type (token::TOK_ACTION_REDIRECT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_REV (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_REV (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_REV, v, l); + return symbol_type (token::TOK_ACTION_REV, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SANITISE_ARG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SANITISE_ARG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SANITISE_ARG, v, l); + return symbol_type (token::TOK_ACTION_SANITISE_ARG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SANITISE_MATCHED (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SANITISE_MATCHED (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SANITISE_MATCHED, v, l); + return symbol_type (token::TOK_ACTION_SANITISE_MATCHED, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SANITISE_MATCHED_BYTES (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SANITISE_MATCHED_BYTES (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SANITISE_MATCHED_BYTES, v, l); + return symbol_type (token::TOK_ACTION_SANITISE_MATCHED_BYTES, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SANITISE_REQUEST_HEADER (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SANITISE_REQUEST_HEADER (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SANITISE_REQUEST_HEADER, v, l); + return symbol_type (token::TOK_ACTION_SANITISE_REQUEST_HEADER, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SANITISE_RESPONSE_HEADER (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SANITISE_RESPONSE_HEADER (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SANITISE_RESPONSE_HEADER, v, l); + return symbol_type (token::TOK_ACTION_SANITISE_RESPONSE_HEADER, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SETENV (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SETENV (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SETENV, v, l); + return symbol_type (token::TOK_ACTION_SETENV, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SETRSC (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SETRSC (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SETRSC, v, l); + return symbol_type (token::TOK_ACTION_SETRSC, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SETSID (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SETSID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SETSID, v, l); + return symbol_type (token::TOK_ACTION_SETSID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SETUID (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SETUID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SETUID, v, l); + return symbol_type (token::TOK_ACTION_SETUID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SEVERITY (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SEVERITY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SEVERITY, v, l); + return symbol_type (token::TOK_ACTION_SEVERITY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SKIP (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SKIP (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SKIP, v, l); + return symbol_type (token::TOK_ACTION_SKIP, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_SKIP_AFTER (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_SKIP_AFTER (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_SKIP_AFTER, v, l); + return symbol_type (token::TOK_ACTION_SKIP_AFTER, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_STATUS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_STATUS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_STATUS, v, l); + return symbol_type (token::TOK_ACTION_STATUS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TAG (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TAG, v, l); + return symbol_type (token::TOK_ACTION_TAG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_BASE_64_ENCODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_BASE_64_ENCODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_BASE_64_ENCODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_BASE_64_ENCODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_BASE_64_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_BASE_64_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_CMD_LINE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_CMD_LINE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_CMD_LINE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_CMD_LINE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_CSS_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_CSS_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_CSS_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_CSS_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_HEX_ENCODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_HEX_ENCODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_HEX_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_HEX_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_HEX_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_HEX_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_JS_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_JS_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_JS_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_JS_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_LENGTH (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_LENGTH (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_LENGTH, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_LENGTH, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_LOWERCASE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_LOWERCASE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_LOWERCASE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_LOWERCASE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_MD5 (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_MD5 (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_MD5, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_MD5, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_NONE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_NONE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_NONE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_NONE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_NORMALISE_PATH (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_NORMALISE_PATH (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_NULLS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_NULLS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_REPLACE_COMMENTS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_REPLACE_COMMENTS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_REPLACE_NULLS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_REPLACE_NULLS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_SHA1 (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_SHA1 (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_SHA1, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_SHA1, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_SQL_HEX_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_SQL_HEX_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_TRIM (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_TRIM (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_TRIM_LEFT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_TRIM_LEFT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_TRIM_RIGHT (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_TRIM_RIGHT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_UPPERCASE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_UPPERCASE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_UPPERCASE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_UPPERCASE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_URL_ENCODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_URL_ENCODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_ENCODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_ENCODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_DECODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_DECODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE_UNI (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE_UNI (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE, v, l); + return symbol_type (token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_VER (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_VER (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_VER, v, l); + return symbol_type (token::TOK_ACTION_VER, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_ACTION_XMLNS (const std::string& v, const location_type& l) + seclang_parser::make_ACTION_XMLNS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_ACTION_XMLNS, v, l); + return symbol_type (token::TOK_ACTION_XMLNS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_COMPONENT_SIG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_COMPONENT_SIG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_COMPONENT_SIG, v, l); + return symbol_type (token::TOK_CONFIG_COMPONENT_SIG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_CONN_ENGINE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_CONN_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_CONN_ENGINE, v, l); + return symbol_type (token::TOK_CONFIG_CONN_ENGINE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_ARGUMENT_SEPARATOR (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_ARGUMENT_SEPARATOR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR, v, l); + return symbol_type (token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_WEB_APP_ID (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_WEB_APP_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_WEB_APP_ID, v, l); + return symbol_type (token::TOK_CONFIG_SEC_WEB_APP_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_SERVER_SIG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_SERVER_SIG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_SERVER_SIG, v, l); + return symbol_type (token::TOK_CONFIG_SEC_SERVER_SIG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_DIR (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_DIR, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_DIR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_DIR_MOD (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_DIR_MOD (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_DIR_MOD, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_DIR_MOD, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_ENG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_ENG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_ENG, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_ENG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_FLE_MOD (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_FLE_MOD (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_FLE_MOD, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_FLE_MOD, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_LOG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_LOG2 (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_LOG2 (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG2, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG2, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_LOG_P (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_LOG_P (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG_P, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG_P, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_STS (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_STS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_STS, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_STS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_AUDIT_TPE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_AUDIT_TPE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_AUDIT_TPE, v, l); + return symbol_type (token::TOK_CONFIG_DIR_AUDIT_TPE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_DEBUG_LOG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_DEBUG_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_DEBUG_LOG, v, l); + return symbol_type (token::TOK_CONFIG_DIR_DEBUG_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_DEBUG_LVL (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_DEBUG_LVL (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_DEBUG_LVL, v, l); + return symbol_type (token::TOK_CONFIG_DIR_DEBUG_LVL, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_CACHE_TRANSFORMATIONS (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_CACHE_TRANSFORMATIONS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS, v, l); + return symbol_type (token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_DISABLE_BACKEND_COMPRESS (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_DISABLE_BACKEND_COMPRESS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS, v, l); + return symbol_type (token::TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_HASH_ENGINE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_HASH_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_HASH_ENGINE, v, l); + return symbol_type (token::TOK_CONFIG_SEC_HASH_ENGINE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_HASH_KEY (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_HASH_KEY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_HASH_KEY, v, l); + return symbol_type (token::TOK_CONFIG_SEC_HASH_KEY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_HASH_PARAM (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_HASH_PARAM (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_HASH_PARAM, v, l); + return symbol_type (token::TOK_CONFIG_SEC_HASH_PARAM, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_HASH_METHOD_RX (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_HASH_METHOD_RX (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_HASH_METHOD_RX, v, l); + return symbol_type (token::TOK_CONFIG_SEC_HASH_METHOD_RX, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_HASH_METHOD_PM (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_HASH_METHOD_PM (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_HASH_METHOD_PM, v, l); + return symbol_type (token::TOK_CONFIG_SEC_HASH_METHOD_PM, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_CHROOT_DIR (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_CHROOT_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_CHROOT_DIR, v, l); + return symbol_type (token::TOK_CONFIG_SEC_CHROOT_DIR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_GEO_DB (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_GEO_DB (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_GEO_DB, v, l); + return symbol_type (token::TOK_CONFIG_DIR_GEO_DB, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_GSB_DB (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_GSB_DB (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_GSB_DB, v, l); + return symbol_type (token::TOK_CONFIG_DIR_GSB_DB, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_GUARDIAN_LOG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_GUARDIAN_LOG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_GUARDIAN_LOG, v, l); + return symbol_type (token::TOK_CONFIG_SEC_GUARDIAN_LOG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_PCRE_MATCH_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_PCRE_MATCH_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION, v, l); + return symbol_type (token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_CONN_R_STATE_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_CONN_R_STATE_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_CONN_R_STATE_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_SEC_CONN_R_STATE_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_CONN_W_STATE_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_CONN_W_STATE_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_CONN_W_STATE_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_SEC_CONN_W_STATE_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_SENSOR_ID (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_SENSOR_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_SENSOR_ID, v, l); + return symbol_type (token::TOK_CONFIG_SEC_SENSOR_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_REQ_BODY (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_REQ_BODY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY, v, l); + return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION, v, l); + return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_RES_BODY (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_RES_BODY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_RES_BODY, v, l); + return symbol_type (token::TOK_CONFIG_DIR_RES_BODY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_RES_BODY_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_DIR_RES_BODY_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION, v, l); + return symbol_type (token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_INHERITANCE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_INHERITANCE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_INHERITANCE, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_INHERITANCE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_PERF_TIME (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_PERF_TIME (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_PERF_TIME, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_PERF_TIME, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_RULE_ENG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_RULE_ENG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_RULE_ENG, v, l); + return symbol_type (token::TOK_CONFIG_DIR_RULE_ENG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_SEC_ACTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_SEC_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_SEC_ACTION, v, l); + return symbol_type (token::TOK_CONFIG_DIR_SEC_ACTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_SEC_DEFAULT_ACTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_SEC_DEFAULT_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION, v, l); + return symbol_type (token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_SEC_MARKER (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_SEC_MARKER (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_SEC_MARKER, v, l); + return symbol_type (token::TOK_CONFIG_DIR_SEC_MARKER, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_UNICODE_MAP_FILE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_UNICODE_MAP_FILE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_UNICODE_MAP_FILE, v, l); + return symbol_type (token::TOK_CONFIG_DIR_UNICODE_MAP_FILE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_DIR_UNICODE_CODE_PAGE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_DIR_UNICODE_CODE_PAGE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_DIR_UNICODE_CODE_PAGE, v, l); + return symbol_type (token::TOK_CONFIG_DIR_UNICODE_CODE_PAGE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_COLLECTION_TIMEOUT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_COLLECTION_TIMEOUT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT, v, l); + return symbol_type (token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_HTTP_BLKEY (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_HTTP_BLKEY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_HTTP_BLKEY, v, l); + return symbol_type (token::TOK_CONFIG_SEC_HTTP_BLKEY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_INTERCEPT_ON_ERROR (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_INTERCEPT_ON_ERROR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_INTERCEPT_ON_ERROR, v, l); + return symbol_type (token::TOK_CONFIG_SEC_INTERCEPT_ON_ERROR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION, v, l); + return symbol_type (token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_ID (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_MSG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_MSG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_TAG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID, v, l); + return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_UPDLOAD_KEEP_FILES (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_UPDLOAD_KEEP_FILES (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_UPDLOAD_KEEP_FILES, v, l); + return symbol_type (token::TOK_CONFIG_UPDLOAD_KEEP_FILES, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_UPDLOAD_SAVE_TMP_FILES (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_UPDLOAD_SAVE_TMP_FILES (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES, v, l); + return symbol_type (token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_UPLOAD_DIR (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_UPLOAD_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_UPLOAD_DIR, v, l); + return symbol_type (token::TOK_CONFIG_UPLOAD_DIR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_UPLOAD_FILE_LIMIT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_UPLOAD_FILE_LIMIT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_UPLOAD_FILE_LIMIT, v, l); + return symbol_type (token::TOK_CONFIG_UPLOAD_FILE_LIMIT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_UPLOAD_FILE_MODE (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_UPLOAD_FILE_MODE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_UPLOAD_FILE_MODE, v, l); + return symbol_type (token::TOK_CONFIG_UPLOAD_FILE_MODE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_ABORT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_ABORT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_ABORT, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_ABORT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_DETC (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_DETC (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_DETC, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_DETC, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_HTTPS (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_HTTPS (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_HTTPS, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_HTTPS, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_OFF (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_OFF (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_OFF, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_OFF, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_ON (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_ON (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_ON, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_ON, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_PARALLEL (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_PARALLEL (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_PARALLEL, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_PARALLEL, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_PROCESS_PARTIAL (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_PROCESS_PARTIAL (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_PROCESS_PARTIAL, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_PROCESS_PARTIAL, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_REJECT (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_REJECT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_REJECT, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_REJECT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_RELEVANT_ONLY (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_RELEVANT_ONLY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_RELEVANT_ONLY, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_RELEVANT_ONLY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_SERIAL (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_SERIAL (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_SERIAL, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_SERIAL, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_VALUE_WARN (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_VALUE_WARN (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_VALUE_WARN, v, l); + return symbol_type (token::TOK_CONFIG_VALUE_WARN, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_XML_EXTERNAL_ENTITY (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_XML_EXTERNAL_ENTITY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_XML_EXTERNAL_ENTITY, v, l); + return symbol_type (token::TOK_CONFIG_XML_EXTERNAL_ENTITY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_RESPONSE_BODY_MP (const std::string& v, const location_type& l) + seclang_parser::make_CONGIG_DIR_RESPONSE_BODY_MP (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_RESPONSE_BODY_MP, v, l); + return symbol_type (token::TOK_CONGIG_DIR_RESPONSE_BODY_MP, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_SEC_ARG_SEP (const std::string& v, const location_type& l) + seclang_parser::make_CONGIG_DIR_SEC_ARG_SEP (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_SEC_ARG_SEP, v, l); + return symbol_type (token::TOK_CONGIG_DIR_SEC_ARG_SEP, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_SEC_COOKIE_FORMAT (const std::string& v, const location_type& l) + seclang_parser::make_CONGIG_DIR_SEC_COOKIE_FORMAT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT, v, l); + return symbol_type (token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_COOKIEV0_SEPARATOR (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_COOKIEV0_SEPARATOR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_COOKIEV0_SEPARATOR, v, l); + return symbol_type (token::TOK_CONFIG_SEC_COOKIEV0_SEPARATOR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_SEC_DATA_DIR (const std::string& v, const location_type& l) + seclang_parser::make_CONGIG_DIR_SEC_DATA_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_SEC_DATA_DIR, v, l); + return symbol_type (token::TOK_CONGIG_DIR_SEC_DATA_DIR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_SEC_STATUS_ENGINE (const std::string& v, const location_type& l) + seclang_parser::make_CONGIG_DIR_SEC_STATUS_ENGINE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE, v, l); + return symbol_type (token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_STREAM_IN_BODY_INSPECTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_STREAM_IN_BODY_INSPECTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION, v, l); + return symbol_type (token::TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION (const std::string& v, const location_type& l) + seclang_parser::make_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION, v, l); + return symbol_type (token::TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_CONGIG_DIR_SEC_TMP_DIR (const std::string& v, const location_type& l) + seclang_parser::make_CONGIG_DIR_SEC_TMP_DIR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_CONGIG_DIR_SEC_TMP_DIR, v, l); + return symbol_type (token::TOK_CONGIG_DIR_SEC_TMP_DIR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_DIRECTIVE (const std::string& v, const location_type& l) + seclang_parser::make_DIRECTIVE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_DIRECTIVE, v, l); + return symbol_type (token::TOK_DIRECTIVE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_DIRECTIVE_SECRULESCRIPT (const std::string& v, const location_type& l) + seclang_parser::make_DIRECTIVE_SECRULESCRIPT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_DIRECTIVE_SECRULESCRIPT, v, l); + return symbol_type (token::TOK_DIRECTIVE_SECRULESCRIPT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_FREE_TEXT_QUOTE_MACRO_EXPANSION (const std::string& v, const location_type& l) + seclang_parser::make_FREE_TEXT_QUOTE_MACRO_EXPANSION (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION, v, l); + return symbol_type (token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_QUOTATION_MARK (const std::string& v, const location_type& l) + seclang_parser::make_QUOTATION_MARK (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_QUOTATION_MARK, v, l); + return symbol_type (token::TOK_QUOTATION_MARK, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_BLD (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_BLD (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_BLD, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_BLD, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_DUR (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_DUR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_DUR, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_DUR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_HSV (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_HSV (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_HSV, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_HSV, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_REMOTE_USER (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_REMOTE_USER (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_REMOTE_USER, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_REMOTE_USER, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_DAY (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_DAY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_DAY, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_DAY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_EPOCH (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_EPOCH (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_EPOCH, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_EPOCH, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_HOUR (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_HOUR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_HOUR, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_HOUR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_MIN (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_MIN (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_MIN, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_MIN, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_MON (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_MON (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_MON, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_MON, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_SEC (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_SEC (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_SEC, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_SEC, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_WDAY (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_WDAY (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_WDAY, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_WDAY, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_RUN_TIME_VAR_TIME_YEAR (const std::string& v, const location_type& l) + seclang_parser::make_RUN_TIME_VAR_TIME_YEAR (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_RUN_TIME_VAR_TIME_YEAR, v, l); + return symbol_type (token::TOK_RUN_TIME_VAR_TIME_YEAR, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_VARIABLE (const std::string& v, const location_type& l) + seclang_parser::make_VARIABLE (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_VARIABLE, v, l); + return symbol_type (token::TOK_VARIABLE, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_DICT_ELEMENT (const std::string& v, const location_type& l) + seclang_parser::make_DICT_ELEMENT (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_DICT_ELEMENT, v, l); + return symbol_type (token::TOK_DICT_ELEMENT, YY_MOVE (v), YY_MOVE (l)); } + inline seclang_parser::symbol_type - seclang_parser::make_DICT_ELEMENT_REGEXP (const std::string& v, const location_type& l) + seclang_parser::make_DICT_ELEMENT_REGEXP (YY_COPY (std::string) v, YY_COPY (location_type) l) { - return symbol_type (token::TOK_DICT_ELEMENT_REGEXP, v, l); + return symbol_type (token::TOK_DICT_ELEMENT_REGEXP, YY_MOVE (v), YY_MOVE (l)); } } // yy -#line 6170 "seclang-parser.hh" // lalr1.cc:380 +#line 6445 "seclang-parser.hh" // lalr1.cc:403 diff --git a/src/parser/seclang-parser.yy b/src/parser/seclang-parser.yy index 9187f358..55487591 100644 --- a/src/parser/seclang-parser.yy +++ b/src/parser/seclang-parser.yy @@ -37,6 +37,7 @@ class Driver; #include "src/actions/data/status.h" #include "src/actions/disruptive/allow.h" #include "src/actions/disruptive/deny.h" +#include "src/actions/disruptive/drop.h" #include "src/actions/disruptive/pass.h" #include "src/actions/disruptive/redirect.h" #include "src/actions/init_col.h" @@ -2707,8 +2708,7 @@ act: } | ACTION_DROP { - //ACTION_NOT_SUPPORTED("Drop", @0); - ACTION_CONTAINER($$, new actions::Action($1)); + ACTION_CONTAINER($$, new actions::disruptive::Drop($1)); } | ACTION_EXEC { diff --git a/src/parser/stack.hh b/src/parser/stack.hh index 180cdc88..1ea27022 100644 --- a/src/parser/stack.hh +++ b/src/parser/stack.hh @@ -1,157 +1,8 @@ -// A Bison parser, made by GNU Bison 3.1. +// A Bison parser, made by GNU Bison 3.2. -// Stack handling for Bison parsers in C++ - -// Copyright (C) 2002-2015, 2018 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 -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// As a special exception, you may create a larger work that contains -// part or all of the Bison parser skeleton and distribute that work -// under terms of your choice, so long as that work isn't itself a -// parser generator using the skeleton or a modified version thereof -// as a parser skeleton. Alternatively, if you modify or redistribute -// the parser skeleton itself, you may (at your option) remove this -// special exception, which will cause the skeleton and the resulting -// Bison output files to be licensed under the GNU General Public -// License without this special exception. - -// This special exception was added by the Free Software Foundation in -// version 2.2 of Bison. - -/** - ** \file stack.hh - ** Define the yy::stack class. - */ - -#ifndef YY_YY_STACK_HH_INCLUDED -# define YY_YY_STACK_HH_INCLUDED - -# include - - -namespace yy { -#line 46 "stack.hh" // stack.hh:132 - /// A stack with random access from its top. - template > - class stack - { - public: - // Hide our reversed order. - typedef typename S::reverse_iterator iterator; - typedef typename S::const_reverse_iterator const_iterator; - typedef typename S::size_type size_type; - - stack () - { - seq_.reserve (200); - } - - stack (size_type n) - : seq_ (n) - {} - - /// Random access. - /// - /// Index 0 returns the topmost element. - T& - operator[] (size_type i) - { - return seq_[seq_.size () - 1 - i]; - } - - /// Random access. - /// - /// Index 0 returns the topmost element. - const T& - operator[] (size_type i) const - { - return seq_[seq_.size () - 1 - i]; - } - - /// Steal the contents of \a t. - /// - /// Close to move-semantics. - void - push (T& t) - { - seq_.push_back (T()); - operator[](0).move (t); - } - - void - pop (size_type n = 1) - { - for (; n; --n) - seq_.pop_back (); - } - - void - clear () - { - seq_.clear (); - } - - size_type - size () const - { - return seq_.size (); - } - - const_iterator - begin () const - { - return seq_.rbegin (); - } - - const_iterator - end () const - { - return seq_.rend (); - } - - private: - stack (const stack&); - stack& operator= (const stack&); - /// The wrapped container. - S seq_; - }; - - /// Present a slice of the top of a stack. - template > - class slice - { - public: - typedef typename S::size_type size_type; - slice (const S& stack, size_type range) - : stack_ (stack) - , range_ (range) - {} - - const T& - operator[] (size_type i) const - { - return stack_[range_ - i]; - } - - private: - const S& stack_; - size_type range_; - }; - - -} // yy -#line 156 "stack.hh" // stack.hh:132 - -#endif // !YY_YY_STACK_HH_INCLUDED +// 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 +// 2. remove references to this file from your build system. diff --git a/test/test-cases/regression/action-disruptive.json b/test/test-cases/regression/action-disruptive.json index 2812501b..da39b1c3 100644 --- a/test/test-cases/regression/action-disruptive.json +++ b/test/test-cases/regression/action-disruptive.json @@ -64,5 +64,17 @@ "SecDefaultAction \"phase:2,deny,status:404\"", "SecAction \"id:'1',phase:request,nolog,pass,t:none\"" ] + }, + { + "enabled":1, + "version_min":300000, + "title":"Testing Disruptive actions (6/n)", + "expected":{ + "http_code":403 + }, + "rules":[ + "SecRuleEngine On", + "SecAction \"id:'1',phase:request,drop,nolog,t:none\"" + ] } ]