// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ // Copyright (C) 2002-2015 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 y.tab.h ** Define the yy::parser class. */ // C++ LALR(1) parser skeleton written by Akim Demaille. #ifndef YY_YY_SECLANG_PARSER_HH_INCLUDED # define YY_YY_SECLANG_PARSER_HH_INCLUDED // // "%code requires" blocks. #line 10 "seclang-parser.yy" // lalr1.cc:377 #include #include namespace ModSecurity { namespace Parser { class Driver; } } #include "src/rule_script.h" #include "src/actions/accuracy.h" #include "src/actions/audit_log.h" #include "src/actions/capture.h" #include "src/actions/chain.h" #include "src/actions/ctl/audit_log_parts.h" #include "src/actions/ctl/request_body_access.h" #include "src/actions/ctl/rule_engine.h" #include "src/actions/ctl/request_body_processor_json.h" #include "src/actions/ctl/request_body_processor_xml.h" #include "src/actions/ctl/rule_remove_by_id.h" #include "src/actions/ctl/rule_remove_target_by_id.h" #include "src/actions/ctl/rule_remove_target_by_tag.h" #include "src/actions/data/status.h" #include "src/actions/disruptive/allow.h" #include "src/actions/disruptive/block.h" #include "src/actions/disruptive/deny.h" #include "src/actions/disruptive/pass.h" #include "src/actions/disruptive/redirect.h" #include "src/actions/init_col.h" #include "src/actions/exec.h" #include "src/actions/log_data.h" #include "src/actions/log.h" #include "src/actions/maturity.h" #include "src/actions/msg.h" #include "src/actions/multi_match.h" #include "src/actions/no_audit_log.h" #include "src/actions/no_log.h" #include "src/actions/phase.h" #include "src/actions/rev.h" #include "src/actions/rule_id.h" #include "src/actions/set_rsc.h" #include "src/actions/set_sid.h" #include "src/actions/set_uid.h" #include "src/actions/set_var.h" #include "src/actions/severity.h" #include "src/actions/skip_after.h" #include "src/actions/skip.h" #include "src/actions/tag.h" #include "src/actions/transformations/none.h" #include "src/actions/transformations/transformation.h" #include "src/actions/ver.h" #include "src/actions/xmlns.h" #include "src/actions/transformations/hex_encode.h" #include "src/actions/transformations/parity_even_7bit.h" #include "src/actions/transformations/utf8_to_unicode.h" #include "src/actions/transformations/parity_zero_7bit.h" #include "src/actions/transformations/sql_hex_decode.h" #include "src/actions/transformations/replace_comments.h" #include "src/actions/transformations/none.h" #include "src/actions/transformations/url_decode.h" #include "src/actions/transformations/lower_case.h" #include "src/actions/transformations/upper_case.h" #include "src/actions/transformations/hex_decode.h" #include "src/actions/transformations/url_encode.h" #include "src/actions/transformations/js_decode.h" #include "src/actions/transformations/url_decode_uni.h" #include "src/actions/transformations/parity_odd_7bit.h" #include "src/actions/transformations/transformation.h" #include "src/actions/transformations/trim_right.h" #include "src/actions/transformations/escape_seq_decode.h" #include "src/actions/transformations/base64_decode_ext.h" #include "src/actions/transformations/base64_decode.h" #include "src/actions/transformations/trim.h" #include "src/actions/transformations/cmd_line.h" #include "src/actions/transformations/replace_nulls.h" #include "src/actions/transformations/md5.h" #include "src/actions/transformations/length.h" #include "src/actions/transformations/sha1.h" #include "src/actions/transformations/compress_whitespace.h" #include "src/actions/transformations/normalise_path_win.h" #include "src/actions/transformations/remove_nulls.h" #include "src/actions/transformations/remove_comments.h" #include "src/actions/transformations/normalise_path.h" #include "src/actions/transformations/html_entity_decode.h" #include "src/actions/transformations/trim_left.h" #include "src/actions/transformations/remove_comments_char.h" #include "src/actions/transformations/base64_encode.h" #include "src/actions/transformations/remove_whitespace.h" #include "src/actions/transformations/css_decode.h" #include "src/operators/begins_with.h" #include "src/operators/contains.h" #include "src/operators/contains_word.h" #include "src/operators/detect_sqli.h" #include "src/operators/detect_xss.h" #include "src/operators/ends_with.h" #include "src/operators/eq.h" #include "src/operators/fuzzy_hash.h" #include "src/operators/ge.h" #include "src/operators/geo_lookup.h" #include "src/operators/gsblookup.h" #include "src/operators/gt.h" #include "src/operators/inspect_file.h" #include "src/operators/ip_match_f.h" #include "src/operators/ip_match_from_file.h" #include "src/operators/ip_match.h" #include "src/operators/le.h" #include "src/operators/lt.h" #include "src/operators/no_match.h" #include "src/operators/operator.h" #include "src/operators/pm_f.h" #include "src/operators/pm_from_file.h" #include "src/operators/pm.h" #include "src/operators/rbl.h" #include "src/operators/rsub.h" #include "src/operators/rx.h" #include "src/operators/str_eq.h" #include "src/operators/str_match.h" #include "src/operators/unconditional_match.h" #include "src/operators/validate_byte_range.h" #include "src/operators/validate_dtd.h" #include "src/operators/validate_hash.h" #include "src/operators/validate_schema.h" #include "src/operators/validate_url_encoding.h" #include "src/operators/validate_utf8_encoding.h" #include "src/operators/verify_cc.h" #include "src/operators/verify_cpf.h" #include "src/operators/verify_ssn.h" #include "src/operators/within.h" #include "modsecurity/audit_log.h" #include "modsecurity/modsecurity.h" #include "modsecurity/rules_properties.h" #include "modsecurity/rule.h" #include "src/operators/operator.h" #include "src/utils/geo_lookup.h" #include "src/utils/string.h" #include "src/utils/system.h" #include "src/variables/args_combined_size.h" #include "src/variables/args_get.h" #include "src/variables/args_get_names.h" #include "src/variables/args.h" #include "src/variables/args_names.h" #include "src/variables/args_post.h" #include "src/variables/args_post_names.h" #include "src/variables/auth_type.h" #include "src/variables/duration.h" #include "src/variables/env.h" #include "src/variables/files_combined_size.h" #include "src/variables/files.h" #include "src/variables/files_names.h" #include "src/variables/files_sizes.h" #include "src/variables/files_tmp_content.h" #include "src/variables/files_tmp_names.h" #include "src/variables/full_request.h" #include "src/variables/full_request_length.h" #include "src/variables/geo.h" #include "src/variables/highest_severity.h" #include "src/variables/inbound_data_error.h" #include "src/variables/matched_var.h" #include "src/variables/matched_var_name.h" #include "src/variables/matched_vars.h" #include "src/variables/matched_vars_names.h" #include "src/variables/modsec_build.h" #include "src/variables/multipart_boundary_quoted.h" #include "src/variables/multipart_boundary_whitespace.h" #include "src/variables/multipart_crlf_lf_lines.h" #include "src/variables/multipart_data_after.h" #include "src/variables/multipart_data_before.h" #include "src/variables/multipart_file_limit_exceeded.h" #include "src/variables/multipart_file_name.h" #include "src/variables/multipart_header_folding.h" #include "src/variables/multipart_invalid_header_folding.h" #include "src/variables/multipart_invalid_part.h" #include "src/variables/multipart_invalid_quoting.h" #include "src/variables/multipart_lf_line.h" #include "src/variables/multipart_missing_semicolon.h" #include "src/variables/multipart_name.h" #include "src/variables/multipart_strict_error.h" #include "src/variables/multipart_unmatched_boundary.h" #include "src/variables/outbound_data_error.h" #include "src/variables/path_info.h" #include "src/variables/query_string.h" #include "src/variables/remote_addr.h" #include "src/variables/remote_host.h" #include "src/variables/remote_port.h" #include "src/variables/remote_user.h" #include "src/variables/reqbody_error.h" #include "src/variables/reqbody_error_msg.h" #include "src/variables/reqbody_processor_error.h" #include "src/variables/reqbody_processor_error_msg.h" #include "src/variables/reqbody_processor.h" #include "src/variables/request_base_name.h" #include "src/variables/request_body.h" #include "src/variables/request_body_length.h" #include "src/variables/request_cookies.h" #include "src/variables/request_cookies_names.h" #include "src/variables/request_file_name.h" #include "src/variables/request_headers.h" #include "src/variables/request_headers_names.h" #include "src/variables/request_line.h" #include "src/variables/request_method.h" #include "src/variables/request_protocol.h" #include "src/variables/request_uri.h" #include "src/variables/request_uri_raw.h" #include "src/variables/resource.h" #include "src/variables/response_body.h" #include "src/variables/response_content_length.h" #include "src/variables/response_content_type.h" #include "src/variables/response_headers.h" #include "src/variables/response_headers_names.h" #include "src/variables/response_protocol.h" #include "src/variables/response_status.h" #include "src/variables/rule.h" #include "src/variables/server_addr.h" #include "src/variables/server_name.h" #include "src/variables/server_port.h" #include "src/variables/session_id.h" #include "src/variables/web_app_id.h" #include "src/variables/time_day.h" #include "src/variables/time_epoch.h" #include "src/variables/time.h" #include "src/variables/time_hour.h" #include "src/variables/time_min.h" #include "src/variables/time_mon.h" #include "src/variables/time_sec.h" #include "src/variables/time_wday.h" #include "src/variables/time_year.h" #include "src/variables/tx.h" #include "src/variables/unique_id.h" #include "src/variables/url_encoded_error.h" #include "src/variables/user.h" #include "src/variables/user_id.h" #include "src/variables/variable.h" #include "src/variables/xml.h" #include "src/variables/ip.h" #include "src/variables/global.h" #include "src/variables/session.h" #include "src/variables/status.h" using modsecurity::ModSecurity; using modsecurity::Rule; using modsecurity::Utils::GeoLookup; using modsecurity::Variables::Duration; using modsecurity::Variables::Env; using modsecurity::Variables::HighestSeverity; using modsecurity::Variables::ModsecBuild; using modsecurity::Variables::RemoteUser; using modsecurity::Variables::TimeDay; using modsecurity::Variables::TimeEpoch; using modsecurity::Variables::TimeHour; using modsecurity::Variables::TimeMin; using modsecurity::Variables::TimeMon; using modsecurity::Variables::TimeSec; using modsecurity::Variables::TimeWDay; using modsecurity::Variables::TimeYear; using modsecurity::Variables::Time; using modsecurity::Variables::Tx_DictElement; using modsecurity::Variables::Tx_NoDictElement; using modsecurity::Variables::Tx_DictElementRegexp; using modsecurity::Variables::Ip_DictElement; using modsecurity::Variables::Ip_NoDictElement; using modsecurity::Variables::Ip_DictElementRegexp; using modsecurity::Variables::Global_DictElement; using modsecurity::Variables::Global_NoDictElement; using modsecurity::Variables::Global_DictElementRegexp; using modsecurity::Variables::Session_DictElement; using modsecurity::Variables::Session_NoDictElement; using modsecurity::Variables::Session_DictElementRegexp; using modsecurity::Variables::Variable; using modsecurity::Variables::VariableModificatorExclusion; using modsecurity::Variables::VariableModificatorCount; using modsecurity::Variables::XML; using namespace modsecurity; using modsecurity::operators::Operator; #define CHECK_VARIATION_DECL \ Variable *var = NULL; \ bool t = false; #define CHECK_VARIATION(a) \ if (var == NULL) { \ if (name.at(0) == std::string(#a).at(0)) { \ name.erase(0, 1); \ t = true ; \ } \ } else { \ t = false; \ } \ if (t) #define ACTION_NOT_SUPPORTED(a, b) \ driver.error(b, "Action: " + std::string(a) + " is not yet supported."); \ YYERROR; #define OPERATOR_NOT_SUPPORTED(a, b) \ driver.error(b, "Operator: " + std::string(a) + " is not yet supported."); \ YYERROR; #define ACTION_INIT(a, b) \ std::string error; \ if (a->init(&error) == false) { \ driver.error(b, error); \ YYERROR; \ } #define OPERATOR_CONTAINER(a, b) \ std::unique_ptr c(b); \ a = std::move(c); #define ACTION_CONTAINER(a, b) \ std::unique_ptr c(b); \ a = std::move(c); #define VARIABLE_CONTAINER(a, b) \ std::unique_ptr c(b); \ a = std::move(c); #line 382 "seclang-parser.hh" // lalr1.cc:377 # include # include // std::abort # include # include # include # include # include "stack.hh" # include "location.hh" #include #ifndef YYASSERT # include # define YYASSERT assert #endif #ifndef YY_ATTRIBUTE # if (defined __GNUC__ \ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C # define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else # define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif #ifndef YY_ATTRIBUTE_PURE # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) #endif #ifndef YY_ATTRIBUTE_UNUSED # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #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)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif namespace yy { #line 459 "seclang-parser.hh" // lalr1.cc:377 /// A char[S] buffer to store and retrieve objects. /// /// Sort of a variant, but does not keep track of the nature /// of the stored data, since that knowledge is available /// via the current state. template struct variant { /// Type of *this. typedef variant self_type; /// Empty construction. variant () : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template variant (const T& t) : yytypeid_ (&typeid (T)) { YYASSERT (sizeof (T) <= S); new (yyas_ ()) T (t); } /// Destruction, allowed only if empty. ~variant () { YYASSERT (!yytypeid_); } /// Instantiate an empty \a T in here. template T& build () { YYASSERT (!yytypeid_); YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_ ()) T; } /// Instantiate a \a T in here from \a t. template T& build (const T& t) { YYASSERT (!yytypeid_); YYASSERT (sizeof (T) <= S); yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::move((T&)t)); } /// Accessor to a built \a T. template T& as () { YYASSERT (*yytypeid_ == typeid (T)); YYASSERT (sizeof (T) <= S); return *yyas_ (); } /// Const accessor to a built \a T (for %printer). template const T& as () const { YYASSERT (*yytypeid_ == typeid (T)); YYASSERT (sizeof (T) <= S); return *yyas_ (); } /// Swap the content with \a other, of same type. /// /// 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. /// Swapping between built and (possibly) non-built is done with /// variant::move (). template void swap (self_type& other) { YYASSERT (yytypeid_); YYASSERT (*yytypeid_ == *other.yytypeid_); std::swap (as (), other.as ()); } /// Move the content of \a other to this. /// /// Destroys \a other. template void move (self_type& other) { build (); swap (other); other.destroy (); } /// Copy the content of \a other to this. template void copy (const self_type& other) { build (other.as ()); } /// Destroy the stored \a T. template void destroy () { as ().~T (); yytypeid_ = YY_NULLPTR; } private: /// Prohibit blind copies. self_type& operator=(const self_type&); variant (const self_type&); /// Accessor to raw memory as \a T. template T* yyas_ () { void *yyp = yybuffer_.yyraw; return static_cast (yyp); } /// Const accessor to raw memory as \a T. template const T* yyas_ () const { const void *yyp = yybuffer_.yyraw; return static_cast (yyp); } union { /// Strongest alignment constraints. long double yyalign_me; /// A buffer large enough to store any of the semantic values. char yyraw[S]; } yybuffer_; /// Whether the content is built: if defined, the name of the stored type. const std::type_info *yytypeid_; }; /// A Bison parser. class seclang_parser { public: #ifndef YYSTYPE /// An auxiliary type to compute the largest semantic type. union union_type { // "Accuracy" // "Allow" // "Append" // "AuditLog" // "Block" // "Capture" // "Chain" // "ACTION_CTL_AUDIT_ENGINE" // "ACTION_CTL_AUDIT_LOG_PARTS" // "ACTION_CTL_BDY_JSON" // "ACTION_CTL_BDY_XML" // "ACTION_CTL_FORCE_REQ_BODY_VAR" // "ACTION_CTL_REQUEST_BODY_ACCESS" // "ACTION_CTL_RULE_REMOVE_BY_ID" // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" // "Deny" // "DeprecateVar" // "Drop" // "Exec" // "ExpireVar" // "Id" // "InitCol" // "Log" // "LogData" // "Maturity" // "Msg" // "MultiMatch" // "NoAuditLog" // "NoLog" // "Pass" // "Pause" // "Phase" // "Prepend" // "Proxy" // "Redirect" // "Rev" // "SanatiseArg" // "SanatiseMatched" // "SanatiseMatchedBytes" // "SanatiseRequestHeader" // "SanatiseResponseHeader" // "SetEnv" // "SetRsc" // "SetSid" // "SetUID" // "Severity" // "Skip" // "SkipAfter" // "Status" // "Tag" // "ACTION_TRANSFORMATION_CMD_LINE" // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" // "ACTION_TRANSFORMATION_CSS_DECODE" // "ACTION_TRANSFORMATION_HEX_ENCODE" // "ACTION_TRANSFORMATION_HEX_DECODE" // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" // "ACTION_TRANSFORMATION_JS_DECODE" // "ACTION_TRANSFORMATION_LENGTH" // "ACTION_TRANSFORMATION_LOWERCASE" // "ACTION_TRANSFORMATION_MD5" // "ACTION_TRANSFORMATION_NONE" // "ACTION_TRANSFORMATION_NORMALISE_PATH" // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" // "ACTION_TRANSFORMATION_REMOVE_NULLS" // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" // "ACTION_TRANSFORMATION_REPLACE_NULLS" // "ACTION_TRANSFORMATION_SHA1" // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" // "ACTION_TRANSFORMATION_TRIM" // "ACTION_TRANSFORMATION_UPPERCASE" // "ACTION_TRANSFORMATION_URL_DECODE" // "ACTION_TRANSFORMATION_URL_DECODE_UNI" // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" // "Ver" // "xmlns" // "CONFIG_COMPONENT_SIG" // "CONFIG_SEC_ARGUMENT_SEPARATOR" // "CONFIG_SEC_WEB_APP_ID" // "CONFIG_SEC_SERVER_SIG" // "CONFIG_DIR_AUDIT_DIR" // "CONFIG_DIR_AUDIT_DIR_MOD" // "CONFIG_DIR_AUDIT_ENG" // "CONFIG_DIR_AUDIT_FLE_MOD" // "CONFIG_DIR_AUDIT_LOG" // "CONFIG_DIR_AUDIT_LOG2" // "CONFIG_DIR_AUDIT_LOG_P" // "CONFIG_DIR_AUDIT_STS" // "CONFIG_DIR_AUDIT_TPE" // "CONFIG_DIR_DEBUG_LOG" // "CONFIG_DIR_DEBUG_LVL" // "CONFIG_SEC_CACHE_TRANSFORMATIONS" // "CONFIG_DIR_GEO_DB" // "CONFIG_DIR_PCRE_MATCH_LIMIT" // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" // "CONFIG_DIR_REQ_BODY" // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" // "CONFIG_DIR_REQ_BODY_LIMIT" // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" // "CONFIG_DIR_RES_BODY" // "CONFIG_DIR_RES_BODY_LIMIT" // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" // "CONFIG_DIR_RULE_ENG" // "CONFIG_DIR_SEC_ACTION" // "CONFIG_DIR_SEC_DEFAULT_ACTION" // "CONFIG_DIR_SEC_MARKER" // "CONFIG_DIR_UNICODE_MAP_FILE" // "CONFIG_SEC_COLLECTION_TIMEOUT" // "CONFIG_SEC_HTTP_BLKEY" // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" // "CONFIG_SEC_RULE_REMOVE_BY_ID" // "CONFIG_SEC_RULE_REMOVE_BY_MSG" // "CONFIG_SEC_RULE_REMOVE_BY_TAG" // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" // "CONFIG_UPDLOAD_KEEP_FILES" // "CONFIG_UPDLOAD_SAVE_TMP_FILES" // "CONFIG_UPLOAD_DIR" // "CONFIG_UPLOAD_FILE_LIMIT" // "CONFIG_UPLOAD_FILE_MODE" // "CONFIG_VALUE_ABORT" // "CONFIG_VALUE_DETC" // "CONFIG_VALUE_HTTPS" // "CONFIG_VALUE_OFF" // "CONFIG_VALUE_ON" // "CONFIG_VALUE_PARALLEL" // "CONFIG_VALUE_PROCESS_PARTIAL" // "CONFIG_VALUE_REJECT" // "CONFIG_VALUE_RELEVANT_ONLY" // "CONFIG_VALUE_SERIAL" // "CONFIG_VALUE_WARN" // "CONFIG_XML_EXTERNAL_ENTITY" // "CONGIG_DIR_RESPONSE_BODY_MP" // "CONGIG_DIR_SEC_ARG_SEP" // "CONGIG_DIR_SEC_COOKIE_FORMAT" // "CONGIG_DIR_SEC_DATA_DIR" // "CONGIG_DIR_SEC_STATUS_ENGINE" // "CONGIG_DIR_SEC_TMP_DIR" // "DIRECTIVE" // "DIRECTIVE_SECRULESCRIPT" // "FREE_TEXT_QUOTE_MACRO_EXPANSION" // "QUOTATION_MARK" // "RUN_TIME_VAR_BLD" // "RUN_TIME_VAR_DUR" // "RUN_TIME_VAR_HSV" // "RUN_TIME_VAR_REMOTE_USER" // "RUN_TIME_VAR_TIME" // "RUN_TIME_VAR_TIME_DAY" // "RUN_TIME_VAR_TIME_EPOCH" // "RUN_TIME_VAR_TIME_HOUR" // "RUN_TIME_VAR_TIME_MIN" // "RUN_TIME_VAR_TIME_MON" // "RUN_TIME_VAR_TIME_SEC" // "RUN_TIME_VAR_TIME_WDAY" // "RUN_TIME_VAR_TIME_YEAR" // "VARIABLE" // "Dictionary element" // "Dictionary element, selected by regexp" char dummy1[sizeof(std::string)]; // op // op_before_init char dummy2[sizeof(std::unique_ptr)]; // run_time_string char dummy3[sizeof(std::unique_ptr)]; // var char dummy4[sizeof(std::unique_ptr)]; // act // setvar_action char dummy5[sizeof(std::unique_ptr)]; // variables // variables_may_be_quoted char dummy6[sizeof(std::unique_ptr > > )]; // actions // actions_may_quoted char dummy7[sizeof(std::unique_ptr > > )]; }; /// Symbol semantic values. typedef variant semantic_type; #else typedef YYSTYPE semantic_type; #endif /// Symbol locations. typedef location location_type; /// Syntax errors thrown from user actions. struct syntax_error : std::runtime_error { syntax_error (const location_type& l, const std::string& m); location_type location; }; /// Tokens. struct token { enum yytokentype { TOK_END = 0, TOK_COMMA = 258, TOK_CONFIG_CONTENT_INJECTION = 259, TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR = 260, TOK_PIPE = 261, TOK_NEW_LINE = 262, TOK_VAR_COUNT = 263, TOK_VAR_EXCLUSION = 264, TOK_VARIABLE_ARGS = 265, TOK_VARIABLE_ARGS_POST = 266, TOK_VARIABLE_ARGS_GET = 267, TOK_VARIABLE_FILES_SIZES = 268, TOK_VARIABLE_FILES_NAMES = 269, TOK_VARIABLE_FILES_TMP_CONTENT = 270, TOK_VARIABLE_MULTIPART_FILENAME = 271, TOK_VARIABLE_MULTIPART_NAME = 272, TOK_VARIABLE_MATCHED_VARS_NAMES = 273, TOK_VARIABLE_MATCHED_VARS = 274, TOK_VARIABLE_FILES = 275, TOK_VARIABLE_REQUEST_COOKIES = 276, TOK_VARIABLE_REQUEST_HEADERS = 277, TOK_VARIABLE_RESPONSE_HEADERS = 278, TOK_VARIABLE_GEO = 279, TOK_VARIABLE_REQUEST_COOKIES_NAMES = 280, TOK_VARIABLE_ARGS_COMBINED_SIZE = 281, TOK_VARIABLE_ARGS_GET_NAMES = 282, TOK_VARIABLE_RULE = 283, TOK_VARIABLE_ARGS_NAMES = 284, TOK_VARIABLE_ARGS_POST_NAMES = 285, TOK_VARIABLE_AUTH_TYPE = 286, TOK_VARIABLE_FILES_COMBINED_SIZE = 287, TOK_VARIABLE_FILES_TMP_NAMES = 288, TOK_VARIABLE_FULL_REQUEST = 289, TOK_VARIABLE_FULL_REQUEST_LENGTH = 290, TOK_VARIABLE_INBOUND_DATA_ERROR = 291, TOK_VARIABLE_MATCHED_VAR = 292, TOK_VARIABLE_MATCHED_VAR_NAME = 293, TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED = 294, TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE = 295, TOK_VARIABLE_MULTIPART_CRLF_LF_LINES = 296, TOK_VARIABLE_MULTIPART_DATA_AFTER = 297, TOK_VARIABLE_MULTIPART_DATA_BEFORE = 298, TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED = 299, TOK_VARIABLE_MULTIPART_HEADER_FOLDING = 300, TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING = 301, TOK_VARIABLE_MULTIPART_INVALID_PART = 302, TOK_VARIABLE_MULTIPART_INVALID_QUOTING = 303, TOK_VARIABLE_MULTIPART_LF_LINE = 304, TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON = 305, TOK_VARIABLE_MULTIPART_STRICT_ERROR = 306, TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY = 307, TOK_VARIABLE_OUTBOUND_DATA_ERROR = 308, TOK_VARIABLE_PATH_INFO = 309, TOK_VARIABLE_QUERY_STRING = 310, TOK_VARIABLE_REMOTE_ADDR = 311, TOK_VARIABLE_REMOTE_HOST = 312, TOK_VARIABLE_REMOTE_PORT = 313, TOK_VARIABLE_REQBODY_ERROR_MSG = 314, TOK_VARIABLE_REQBODY_ERROR = 315, TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG = 316, TOK_VARIABLE_REQBODY_PROCESSOR_ERROR = 317, TOK_VARIABLE_REQBODY_PROCESSOR = 318, TOK_VARIABLE_REQUEST_BASENAME = 319, TOK_VARIABLE_REQUEST_BODY_LENGTH = 320, TOK_VARIABLE_REQUEST_BODY = 321, TOK_VARIABLE_REQUEST_FILE_NAME = 322, TOK_VARIABLE_REQUEST_HEADERS_NAMES = 323, TOK_VARIABLE_REQUEST_LINE = 324, TOK_VARIABLE_REQUEST_METHOD = 325, TOK_VARIABLE_REQUEST_PROTOCOL = 326, TOK_VARIABLE_REQUEST_URI_RAW = 327, TOK_VARIABLE_REQUEST_URI = 328, TOK_VARIABLE_RESOURCE = 329, TOK_VARIABLE_RESPONSE_BODY = 330, TOK_VARIABLE_RESPONSE_CONTENT_LENGTH = 331, TOK_VARIABLE_RESPONSE_CONTENT_TYPE = 332, TOK_VARIABLE_RESPONSE_HEADERS_NAMES = 333, TOK_VARIABLE_RESPONSE_PROTOCOL = 334, TOK_VARIABLE_RESPONSE_STATUS = 335, TOK_VARIABLE_SERVER_ADDR = 336, TOK_VARIABLE_SERVER_NAME = 337, TOK_VARIABLE_SERVER_PORT = 338, TOK_VARIABLE_SESSION_ID = 339, TOK_VARIABLE_UNIQUE_ID = 340, TOK_VARIABLE_URL_ENCODED_ERROR = 341, TOK_VARIABLE_USER_ID = 342, TOK_VARIABLE_WEB_APP_ID = 343, TOK_VARIABLE_STATUS = 344, TOK_VARIABLE_IP = 345, TOK_VARIABLE_GLOBAL = 346, TOK_VARIABLE_TX = 347, TOK_VARIABLE_SESSION = 348, TOK_VARIABLE_USER = 349, TOK_RUN_TIME_VAR_ENV = 350, TOK_RUN_TIME_VAR_XML = 351, TOK_ACTION_SETVAR = 352, TOK_SETVAR_OPERATION_EQUALS = 353, TOK_SETVAR_OPERATION_EQUALS_PLUS = 354, TOK_SETVAR_OPERATION_EQUALS_MINUS = 355, TOK_NOT = 356, TOK_OPERATOR_BEGINS_WITH = 357, TOK_OPERATOR_CONTAINS = 358, TOK_OPERATOR_CONTAINS_WORD = 359, TOK_OPERATOR_DETECT_SQLI = 360, TOK_OPERATOR_DETECT_XSS = 361, TOK_OPERATOR_ENDS_WITH = 362, TOK_OPERATOR_EQ = 363, TOK_OPERATOR_FUZZY_HASH = 364, TOK_OPERATOR_GEOLOOKUP = 365, TOK_OPERATOR_GE = 366, TOK_OPERATOR_GSB_LOOKUP = 367, TOK_OPERATOR_GT = 368, TOK_OPERATOR_INSPECT_FILE = 369, TOK_OPERATOR_IP_MATCH_FROM_FILE = 370, TOK_OPERATOR_IP_MATCH = 371, TOK_OPERATOR_LE = 372, TOK_OPERATOR_LT = 373, TOK_OPERATOR_PM_FROM_FILE = 374, TOK_OPERATOR_PM = 375, TOK_OPERATOR_RBL = 376, TOK_OPERATOR_RSUB = 377, TOK_OPERATOR_RX_CONTENT_ONLY = 378, TOK_OPERATOR_RX = 379, TOK_OPERATOR_STR_EQ = 380, TOK_OPERATOR_STR_MATCH = 381, TOK_OPERATOR_UNCONDITIONAL_MATCH = 382, TOK_OPERATOR_VALIDATE_BYTE_RANGE = 383, TOK_OPERATOR_VALIDATE_DTD = 384, TOK_OPERATOR_VALIDATE_HASH = 385, TOK_OPERATOR_VALIDATE_SCHEMA = 386, TOK_OPERATOR_VALIDATE_URL_ENCODING = 387, TOK_OPERATOR_VALIDATE_UTF8_ENCODING = 388, TOK_OPERATOR_VERIFY_CC = 389, TOK_OPERATOR_VERIFY_CPF = 390, TOK_OPERATOR_VERIFY_SSN = 391, TOK_OPERATOR_WITHIN = 392, TOK_CONFIG_DIR_AUDIT_LOG_FMT = 393, TOK_JSON = 394, TOK_NATIVE = 395, TOK_ACTION_CTL_RULE_ENGINE = 396, TOK_ACTION_ACCURACY = 397, TOK_ACTION_ALLOW = 398, TOK_ACTION_APPEND = 399, TOK_ACTION_AUDIT_LOG = 400, TOK_ACTION_BLOCK = 401, TOK_ACTION_CAPTURE = 402, TOK_ACTION_CHAIN = 403, TOK_ACTION_CTL_AUDIT_ENGINE = 404, TOK_ACTION_CTL_AUDIT_LOG_PARTS = 405, TOK_ACTION_CTL_BDY_JSON = 406, TOK_ACTION_CTL_BDY_XML = 407, TOK_ACTION_CTL_FORCE_REQ_BODY_VAR = 408, TOK_ACTION_CTL_REQUEST_BODY_ACCESS = 409, TOK_ACTION_CTL_RULE_REMOVE_BY_ID = 410, TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID = 411, TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG = 412, TOK_ACTION_DENY = 413, TOK_ACTION_DEPRECATE_VAR = 414, TOK_ACTION_DROP = 415, TOK_ACTION_EXEC = 416, TOK_ACTION_EXPIRE_VAR = 417, TOK_ACTION_ID = 418, TOK_ACTION_INITCOL = 419, TOK_ACTION_LOG = 420, TOK_ACTION_LOG_DATA = 421, TOK_ACTION_MATURITY = 422, TOK_ACTION_MSG = 423, TOK_ACTION_MULTI_MATCH = 424, TOK_ACTION_NO_AUDIT_LOG = 425, TOK_ACTION_NO_LOG = 426, TOK_ACTION_PASS = 427, TOK_ACTION_PAUSE = 428, TOK_ACTION_PHASE = 429, TOK_ACTION_PREPEND = 430, TOK_ACTION_PROXY = 431, TOK_ACTION_REDIRECT = 432, TOK_ACTION_REV = 433, TOK_ACTION_SANATISE_ARG = 434, TOK_ACTION_SANATISE_MATCHED = 435, TOK_ACTION_SANATISE_MATCHED_BYTES = 436, TOK_ACTION_SANATISE_REQUEST_HEADER = 437, TOK_ACTION_SANATISE_RESPONSE_HEADER = 438, TOK_ACTION_SETENV = 439, TOK_ACTION_SETRSC = 440, TOK_ACTION_SETSID = 441, TOK_ACTION_SETUID = 442, TOK_ACTION_SEVERITY = 443, TOK_ACTION_SKIP = 444, TOK_ACTION_SKIP_AFTER = 445, TOK_ACTION_STATUS = 446, TOK_ACTION_TAG = 447, TOK_ACTION_TRANSFORMATION_CMD_LINE = 448, TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE = 449, TOK_ACTION_TRANSFORMATION_CSS_DECODE = 450, TOK_ACTION_TRANSFORMATION_HEX_ENCODE = 451, TOK_ACTION_TRANSFORMATION_HEX_DECODE = 452, TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE = 453, TOK_ACTION_TRANSFORMATION_JS_DECODE = 454, TOK_ACTION_TRANSFORMATION_LENGTH = 455, TOK_ACTION_TRANSFORMATION_LOWERCASE = 456, TOK_ACTION_TRANSFORMATION_MD5 = 457, TOK_ACTION_TRANSFORMATION_NONE = 458, TOK_ACTION_TRANSFORMATION_NORMALISE_PATH = 459, TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN = 460, TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT = 461, TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT = 462, TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT = 463, TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS = 464, TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR = 465, TOK_ACTION_TRANSFORMATION_REMOVE_NULLS = 466, TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE = 467, TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS = 468, TOK_ACTION_TRANSFORMATION_REPLACE_NULLS = 469, TOK_ACTION_TRANSFORMATION_SHA1 = 470, TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE = 471, TOK_ACTION_TRANSFORMATION_TRIM = 472, TOK_ACTION_TRANSFORMATION_UPPERCASE = 473, TOK_ACTION_TRANSFORMATION_URL_DECODE = 474, TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI = 475, TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE = 476, TOK_ACTION_VER = 477, TOK_ACTION_XMLNS = 478, TOK_CONFIG_COMPONENT_SIG = 479, TOK_CONFIG_SEC_ARGUMENT_SEPARATOR = 480, TOK_CONFIG_SEC_WEB_APP_ID = 481, TOK_CONFIG_SEC_SERVER_SIG = 482, TOK_CONFIG_DIR_AUDIT_DIR = 483, TOK_CONFIG_DIR_AUDIT_DIR_MOD = 484, TOK_CONFIG_DIR_AUDIT_ENG = 485, TOK_CONFIG_DIR_AUDIT_FLE_MOD = 486, TOK_CONFIG_DIR_AUDIT_LOG = 487, TOK_CONFIG_DIR_AUDIT_LOG2 = 488, TOK_CONFIG_DIR_AUDIT_LOG_P = 489, TOK_CONFIG_DIR_AUDIT_STS = 490, TOK_CONFIG_DIR_AUDIT_TPE = 491, TOK_CONFIG_DIR_DEBUG_LOG = 492, TOK_CONFIG_DIR_DEBUG_LVL = 493, TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS = 494, TOK_CONFIG_DIR_GEO_DB = 495, TOK_CONFIG_DIR_PCRE_MATCH_LIMIT = 496, TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION = 497, TOK_CONFIG_DIR_REQ_BODY = 498, TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT = 499, TOK_CONFIG_DIR_REQ_BODY_LIMIT = 500, TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION = 501, TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT = 502, TOK_CONFIG_DIR_RES_BODY = 503, TOK_CONFIG_DIR_RES_BODY_LIMIT = 504, TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION = 505, TOK_CONFIG_DIR_RULE_ENG = 506, TOK_CONFIG_DIR_SEC_ACTION = 507, TOK_CONFIG_DIR_SEC_DEFAULT_ACTION = 508, TOK_CONFIG_DIR_SEC_MARKER = 509, TOK_CONFIG_DIR_UNICODE_MAP_FILE = 510, TOK_CONFIG_SEC_COLLECTION_TIMEOUT = 511, TOK_CONFIG_SEC_HTTP_BLKEY = 512, TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION = 513, TOK_CONFIG_SEC_RULE_REMOVE_BY_ID = 514, TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG = 515, TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG = 516, TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG = 517, TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG = 518, TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID = 519, TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID = 520, TOK_CONFIG_UPDLOAD_KEEP_FILES = 521, TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES = 522, TOK_CONFIG_UPLOAD_DIR = 523, TOK_CONFIG_UPLOAD_FILE_LIMIT = 524, TOK_CONFIG_UPLOAD_FILE_MODE = 525, TOK_CONFIG_VALUE_ABORT = 526, TOK_CONFIG_VALUE_DETC = 527, TOK_CONFIG_VALUE_HTTPS = 528, TOK_CONFIG_VALUE_OFF = 529, TOK_CONFIG_VALUE_ON = 530, TOK_CONFIG_VALUE_PARALLEL = 531, TOK_CONFIG_VALUE_PROCESS_PARTIAL = 532, TOK_CONFIG_VALUE_REJECT = 533, TOK_CONFIG_VALUE_RELEVANT_ONLY = 534, TOK_CONFIG_VALUE_SERIAL = 535, TOK_CONFIG_VALUE_WARN = 536, TOK_CONFIG_XML_EXTERNAL_ENTITY = 537, TOK_CONGIG_DIR_RESPONSE_BODY_MP = 538, TOK_CONGIG_DIR_SEC_ARG_SEP = 539, TOK_CONGIG_DIR_SEC_COOKIE_FORMAT = 540, TOK_CONGIG_DIR_SEC_DATA_DIR = 541, TOK_CONGIG_DIR_SEC_STATUS_ENGINE = 542, TOK_CONGIG_DIR_SEC_TMP_DIR = 543, TOK_DIRECTIVE = 544, TOK_DIRECTIVE_SECRULESCRIPT = 545, TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION = 546, TOK_QUOTATION_MARK = 547, TOK_RUN_TIME_VAR_BLD = 548, TOK_RUN_TIME_VAR_DUR = 549, TOK_RUN_TIME_VAR_HSV = 550, TOK_RUN_TIME_VAR_REMOTE_USER = 551, TOK_RUN_TIME_VAR_TIME = 552, TOK_RUN_TIME_VAR_TIME_DAY = 553, TOK_RUN_TIME_VAR_TIME_EPOCH = 554, TOK_RUN_TIME_VAR_TIME_HOUR = 555, TOK_RUN_TIME_VAR_TIME_MIN = 556, TOK_RUN_TIME_VAR_TIME_MON = 557, TOK_RUN_TIME_VAR_TIME_SEC = 558, TOK_RUN_TIME_VAR_TIME_WDAY = 559, TOK_RUN_TIME_VAR_TIME_YEAR = 560, TOK_VARIABLE = 561, TOK_DICT_ELEMENT = 562, TOK_DICT_ELEMENT_REGEXP = 563 }; }; /// (External) token type, as returned by yylex. typedef token::yytokentype token_type; /// Symbol type: an internal symbol number. typedef int symbol_number_type; /// The symbol type number to denote an empty symbol. enum { empty_symbol = -2 }; /// Internal symbol number for tokens (subsumed by symbol_number_type). typedef unsigned short int token_number_type; /// A complete symbol. /// /// Expects its Base type to provide access to the symbol type /// via type_get(). /// /// Provide access to semantic value and location. template struct basic_symbol : Base { /// Alias to Base. typedef Base super_type; /// Default constructor. basic_symbol (); /// Copy constructor. basic_symbol (const basic_symbol& other); /// Constructor for valueless symbols, and symbols from each type. 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 (); /// Destroy contents, and record that is empty. void clear (); /// Whether empty. bool empty () const; /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); /// The semantic value. semantic_type value; /// The location. location_type location; private: /// Assignment operator. basic_symbol& operator= (const basic_symbol& other); }; /// Type access provider for token (enum) based symbols. struct by_type { /// Default constructor. by_type (); /// Copy constructor. by_type (const by_type& other); /// The symbol type as needed by the constructor. typedef token_type kind_type; /// Constructor from (external) token numbers. by_type (kind_type t); /// Record that this symbol is empty. void clear (); /// Steal the symbol type from \a that. void move (by_type& that); /// The (internal) type number (corresponding to \a type). /// \a empty when empty. symbol_number_type type_get () const; /// The token. token_type token () const; /// The symbol type. /// \a empty_symbol when empty. /// An int, not token_number_type, to be able to store empty_symbol. int type; }; /// "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_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_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_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_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_SANATISE_ARG (const std::string& v, const location_type& l); static inline symbol_type make_ACTION_SANATISE_MATCHED (const std::string& v, const location_type& l); static inline symbol_type make_ACTION_SANATISE_MATCHED_BYTES (const std::string& v, const location_type& l); static inline symbol_type make_ACTION_SANATISE_REQUEST_HEADER (const std::string& v, const location_type& l); static inline symbol_type make_ACTION_SANATISE_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_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_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_UPPERCASE (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_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_DIR_GEO_DB (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_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_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_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_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_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_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. /// \returns 0 iff parsing succeeded. virtual int parse (); #if YYDEBUG /// The current debugging stream. std::ostream& debug_stream () const YY_ATTRIBUTE_PURE; /// Set the current debugging stream. void set_debug_stream (std::ostream &); /// Type for debugging levels. typedef int debug_level_type; /// The current debugging level. debug_level_type debug_level () const YY_ATTRIBUTE_PURE; /// Set the current debugging level. void set_debug_level (debug_level_type l); #endif /// Report a syntax error. /// \param loc where the syntax error is found. /// \param msg a description of the syntax error. virtual void error (const location_type& loc, const std::string& msg); /// Report a syntax error. void error (const syntax_error& err); private: /// This class is not copyable. seclang_parser (const seclang_parser&); seclang_parser& operator= (const seclang_parser&); /// State numbers. typedef int state_type; /// Generate an error message. /// \param yystate the state where the error occurred. /// \param yyla the lookahead token. virtual std::string yysyntax_error_ (state_type yystate, const symbol_type& yyla) const; /// Compute post-reduction state. /// \param yystate the current state /// \param yysym the nonterminal to push on the stack state_type yy_lr_goto_state_ (state_type yystate, int yysym); /// Whether the given \c yypact_ value indicates a defaulted state. /// \param yyvalue the value to check static bool yy_pact_value_is_default_ (int yyvalue); /// Whether the given \c yytable_ value indicates a syntax error. /// \param yyvalue the value to check static bool yy_table_value_is_error_ (int yyvalue); static const short int yypact_ninf_; static const signed char yytable_ninf_; /// Convert a scanner token number \a t to a symbol number. static token_number_type yytranslate_ (token_type t); // Tables. // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing // STATE-NUM. static const short int yypact_[]; // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. // Performed when YYTABLE does not specify something else to do. Zero // means the default is an error. static const unsigned short int yydefact_[]; // YYPGOTO[NTERM-NUM]. static const short int yypgoto_[]; // YYDEFGOTO[NTERM-NUM]. static const short int yydefgoto_[]; // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If // positive, shift that token. If negative, reduce the rule whose // number is the opposite. If YYTABLE_NINF, syntax error. static const unsigned short int yytable_[]; static const short int yycheck_[]; // YYSTOS[STATE-NUM] -- The (internal number of the) accessing // symbol of state STATE-NUM. static const unsigned short int yystos_[]; // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. static const unsigned short int yyr1_[]; // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. static const unsigned char yyr2_[]; /// Convert the symbol name \a n to a form suitable for a diagnostic. static std::string yytnamerr_ (const char *n); /// For a symbol, its name in clear. static const char* const yytname_[]; #if YYDEBUG // YYRLINE[YYN] -- Source line where rule number YYN was defined. static const unsigned short int yyrline_[]; /// Report on the debug stream that the rule \a r is going to be reduced. virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. virtual void yystack_print_ (); // Debugging. int yydebug_; std::ostream* yycdebug_; /// \brief Display a symbol type, value and location. /// \param yyo The output stream. /// \param yysym The symbol. template void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; #endif /// \brief Reclaim the memory associated to a symbol. /// \param yymsg Why this token is reclaimed. /// If null, print nothing. /// \param yysym The symbol. template void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; private: /// Type access provider for state based symbols. struct by_state { /// Default constructor. by_state (); /// The symbol type as needed by the constructor. typedef state_type kind_type; /// Constructor. by_state (kind_type s); /// Copy constructor. by_state (const by_state& other); /// Record that this symbol is empty. void clear (); /// Steal the symbol type from \a that. void move (by_state& that); /// The (internal) type number (corresponding to \a state). /// \a empty_symbol when empty. symbol_number_type type_get () const; /// The state number used to denote an empty symbol. enum { empty_state = -1 }; /// The state. /// \a empty when empty. state_type state; }; /// "Internal" symbol: element of the stack. struct stack_symbol_type : basic_symbol { /// Superclass. typedef basic_symbol super_type; /// Construct an empty symbol. stack_symbol_type (); /// 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 type. typedef stack stack_type; /// The stack. stack_type yystack_; /// Push a new state on the stack. /// \param m a debug message to display /// if null, no trace is output. /// \param s the symbol /// \warning the contents of \a s.value is stolen. void yypush_ (const char* m, stack_symbol_type& s); /// 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); /// Pop \a n symbols the three stacks. void yypop_ (unsigned int n = 1); /// Constants. enum { yyeof_ = 0, yylast_ = 3069, ///< Last index in yytable_. yynnts_ = 15, ///< Number of nonterminal symbols. yyfinal_ = 294, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, yyntokens_ = 309 ///< Number of tokens. }; // User arguments. modsecurity::Parser::Driver& driver; }; // Symbol number corresponding to token number t. inline seclang_parser::token_number_type seclang_parser::yytranslate_ (token_type t) { static const token_number_type translate_table[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308 }; const unsigned int user_token_number_max_ = 563; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) return yyeof_; else if (static_cast (t) <= user_token_number_max_) return translate_table[t]; else return undef_token_; } inline seclang_parser::syntax_error::syntax_error (const location_type& l, const std::string& m) : std::runtime_error (m) , location (l) {} // basic_symbol. template inline seclang_parser::basic_symbol::basic_symbol () : value () {} template inline seclang_parser::basic_symbol::basic_symbol (const basic_symbol& other) : Base (other) , value () , location (other.location) { switch (other.type_get ()) { case 142: // "Accuracy" case 143: // "Allow" case 144: // "Append" case 145: // "AuditLog" case 146: // "Block" case 147: // "Capture" case 148: // "Chain" case 149: // "ACTION_CTL_AUDIT_ENGINE" case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" case 151: // "ACTION_CTL_BDY_JSON" case 152: // "ACTION_CTL_BDY_XML" case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" case 158: // "Deny" case 159: // "DeprecateVar" case 160: // "Drop" case 161: // "Exec" case 162: // "ExpireVar" case 163: // "Id" case 164: // "InitCol" case 165: // "Log" case 166: // "LogData" case 167: // "Maturity" case 168: // "Msg" case 169: // "MultiMatch" case 170: // "NoAuditLog" case 171: // "NoLog" case 172: // "Pass" case 173: // "Pause" case 174: // "Phase" case 175: // "Prepend" case 176: // "Proxy" case 177: // "Redirect" case 178: // "Rev" case 179: // "SanatiseArg" case 180: // "SanatiseMatched" case 181: // "SanatiseMatchedBytes" case 182: // "SanatiseRequestHeader" case 183: // "SanatiseResponseHeader" case 184: // "SetEnv" case 185: // "SetRsc" case 186: // "SetSid" case 187: // "SetUID" case 188: // "Severity" case 189: // "Skip" case 190: // "SkipAfter" case 191: // "Status" case 192: // "Tag" case 193: // "ACTION_TRANSFORMATION_CMD_LINE" case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" case 199: // "ACTION_TRANSFORMATION_JS_DECODE" case 200: // "ACTION_TRANSFORMATION_LENGTH" case 201: // "ACTION_TRANSFORMATION_LOWERCASE" case 202: // "ACTION_TRANSFORMATION_MD5" case 203: // "ACTION_TRANSFORMATION_NONE" case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" case 215: // "ACTION_TRANSFORMATION_SHA1" case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" case 217: // "ACTION_TRANSFORMATION_TRIM" case 218: // "ACTION_TRANSFORMATION_UPPERCASE" case 219: // "ACTION_TRANSFORMATION_URL_DECODE" case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" case 222: // "Ver" case 223: // "xmlns" case 224: // "CONFIG_COMPONENT_SIG" case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" case 226: // "CONFIG_SEC_WEB_APP_ID" case 227: // "CONFIG_SEC_SERVER_SIG" case 228: // "CONFIG_DIR_AUDIT_DIR" case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" case 230: // "CONFIG_DIR_AUDIT_ENG" case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" case 232: // "CONFIG_DIR_AUDIT_LOG" case 233: // "CONFIG_DIR_AUDIT_LOG2" case 234: // "CONFIG_DIR_AUDIT_LOG_P" case 235: // "CONFIG_DIR_AUDIT_STS" case 236: // "CONFIG_DIR_AUDIT_TPE" case 237: // "CONFIG_DIR_DEBUG_LOG" case 238: // "CONFIG_DIR_DEBUG_LVL" case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" case 240: // "CONFIG_DIR_GEO_DB" case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" case 243: // "CONFIG_DIR_REQ_BODY" case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" case 248: // "CONFIG_DIR_RES_BODY" case 249: // "CONFIG_DIR_RES_BODY_LIMIT" case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" case 251: // "CONFIG_DIR_RULE_ENG" case 252: // "CONFIG_DIR_SEC_ACTION" case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" case 254: // "CONFIG_DIR_SEC_MARKER" case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" case 257: // "CONFIG_SEC_HTTP_BLKEY" case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" case 266: // "CONFIG_UPDLOAD_KEEP_FILES" case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" case 268: // "CONFIG_UPLOAD_DIR" case 269: // "CONFIG_UPLOAD_FILE_LIMIT" case 270: // "CONFIG_UPLOAD_FILE_MODE" case 271: // "CONFIG_VALUE_ABORT" case 272: // "CONFIG_VALUE_DETC" case 273: // "CONFIG_VALUE_HTTPS" case 274: // "CONFIG_VALUE_OFF" case 275: // "CONFIG_VALUE_ON" case 276: // "CONFIG_VALUE_PARALLEL" case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" case 278: // "CONFIG_VALUE_REJECT" case 279: // "CONFIG_VALUE_RELEVANT_ONLY" case 280: // "CONFIG_VALUE_SERIAL" case 281: // "CONFIG_VALUE_WARN" case 282: // "CONFIG_XML_EXTERNAL_ENTITY" case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" case 284: // "CONGIG_DIR_SEC_ARG_SEP" case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" case 286: // "CONGIG_DIR_SEC_DATA_DIR" case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" case 288: // "CONGIG_DIR_SEC_TMP_DIR" case 289: // "DIRECTIVE" case 290: // "DIRECTIVE_SECRULESCRIPT" case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" case 292: // "QUOTATION_MARK" case 293: // "RUN_TIME_VAR_BLD" case 294: // "RUN_TIME_VAR_DUR" case 295: // "RUN_TIME_VAR_HSV" case 296: // "RUN_TIME_VAR_REMOTE_USER" case 297: // "RUN_TIME_VAR_TIME" case 298: // "RUN_TIME_VAR_TIME_DAY" case 299: // "RUN_TIME_VAR_TIME_EPOCH" case 300: // "RUN_TIME_VAR_TIME_HOUR" case 301: // "RUN_TIME_VAR_TIME_MIN" case 302: // "RUN_TIME_VAR_TIME_MON" case 303: // "RUN_TIME_VAR_TIME_SEC" case 304: // "RUN_TIME_VAR_TIME_WDAY" case 305: // "RUN_TIME_VAR_TIME_YEAR" case 306: // "VARIABLE" case 307: // "Dictionary element" case 308: // "Dictionary element, selected by regexp" value.copy< std::string > (other.value); break; case 315: // op case 316: // op_before_init value.copy< std::unique_ptr > (other.value); break; case 323: // run_time_string value.copy< std::unique_ptr > (other.value); break; case 320: // var value.copy< std::unique_ptr > (other.value); break; case 321: // act case 322: // setvar_action value.copy< std::unique_ptr > (other.value); break; case 318: // variables case 319: // variables_may_be_quoted value.copy< std::unique_ptr > > > (other.value); break; case 313: // actions case 314: // actions_may_quoted value.copy< std::unique_ptr > > > (other.value); break; default: break; } } template inline 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 142: // "Accuracy" case 143: // "Allow" case 144: // "Append" case 145: // "AuditLog" case 146: // "Block" case 147: // "Capture" case 148: // "Chain" case 149: // "ACTION_CTL_AUDIT_ENGINE" case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" case 151: // "ACTION_CTL_BDY_JSON" case 152: // "ACTION_CTL_BDY_XML" case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" case 158: // "Deny" case 159: // "DeprecateVar" case 160: // "Drop" case 161: // "Exec" case 162: // "ExpireVar" case 163: // "Id" case 164: // "InitCol" case 165: // "Log" case 166: // "LogData" case 167: // "Maturity" case 168: // "Msg" case 169: // "MultiMatch" case 170: // "NoAuditLog" case 171: // "NoLog" case 172: // "Pass" case 173: // "Pause" case 174: // "Phase" case 175: // "Prepend" case 176: // "Proxy" case 177: // "Redirect" case 178: // "Rev" case 179: // "SanatiseArg" case 180: // "SanatiseMatched" case 181: // "SanatiseMatchedBytes" case 182: // "SanatiseRequestHeader" case 183: // "SanatiseResponseHeader" case 184: // "SetEnv" case 185: // "SetRsc" case 186: // "SetSid" case 187: // "SetUID" case 188: // "Severity" case 189: // "Skip" case 190: // "SkipAfter" case 191: // "Status" case 192: // "Tag" case 193: // "ACTION_TRANSFORMATION_CMD_LINE" case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" case 199: // "ACTION_TRANSFORMATION_JS_DECODE" case 200: // "ACTION_TRANSFORMATION_LENGTH" case 201: // "ACTION_TRANSFORMATION_LOWERCASE" case 202: // "ACTION_TRANSFORMATION_MD5" case 203: // "ACTION_TRANSFORMATION_NONE" case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" case 215: // "ACTION_TRANSFORMATION_SHA1" case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" case 217: // "ACTION_TRANSFORMATION_TRIM" case 218: // "ACTION_TRANSFORMATION_UPPERCASE" case 219: // "ACTION_TRANSFORMATION_URL_DECODE" case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" case 222: // "Ver" case 223: // "xmlns" case 224: // "CONFIG_COMPONENT_SIG" case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" case 226: // "CONFIG_SEC_WEB_APP_ID" case 227: // "CONFIG_SEC_SERVER_SIG" case 228: // "CONFIG_DIR_AUDIT_DIR" case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" case 230: // "CONFIG_DIR_AUDIT_ENG" case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" case 232: // "CONFIG_DIR_AUDIT_LOG" case 233: // "CONFIG_DIR_AUDIT_LOG2" case 234: // "CONFIG_DIR_AUDIT_LOG_P" case 235: // "CONFIG_DIR_AUDIT_STS" case 236: // "CONFIG_DIR_AUDIT_TPE" case 237: // "CONFIG_DIR_DEBUG_LOG" case 238: // "CONFIG_DIR_DEBUG_LVL" case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" case 240: // "CONFIG_DIR_GEO_DB" case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" case 243: // "CONFIG_DIR_REQ_BODY" case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" case 248: // "CONFIG_DIR_RES_BODY" case 249: // "CONFIG_DIR_RES_BODY_LIMIT" case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" case 251: // "CONFIG_DIR_RULE_ENG" case 252: // "CONFIG_DIR_SEC_ACTION" case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" case 254: // "CONFIG_DIR_SEC_MARKER" case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" case 257: // "CONFIG_SEC_HTTP_BLKEY" case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" case 266: // "CONFIG_UPDLOAD_KEEP_FILES" case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" case 268: // "CONFIG_UPLOAD_DIR" case 269: // "CONFIG_UPLOAD_FILE_LIMIT" case 270: // "CONFIG_UPLOAD_FILE_MODE" case 271: // "CONFIG_VALUE_ABORT" case 272: // "CONFIG_VALUE_DETC" case 273: // "CONFIG_VALUE_HTTPS" case 274: // "CONFIG_VALUE_OFF" case 275: // "CONFIG_VALUE_ON" case 276: // "CONFIG_VALUE_PARALLEL" case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" case 278: // "CONFIG_VALUE_REJECT" case 279: // "CONFIG_VALUE_RELEVANT_ONLY" case 280: // "CONFIG_VALUE_SERIAL" case 281: // "CONFIG_VALUE_WARN" case 282: // "CONFIG_XML_EXTERNAL_ENTITY" case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" case 284: // "CONGIG_DIR_SEC_ARG_SEP" case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" case 286: // "CONGIG_DIR_SEC_DATA_DIR" case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" case 288: // "CONGIG_DIR_SEC_TMP_DIR" case 289: // "DIRECTIVE" case 290: // "DIRECTIVE_SECRULESCRIPT" case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" case 292: // "QUOTATION_MARK" case 293: // "RUN_TIME_VAR_BLD" case 294: // "RUN_TIME_VAR_DUR" case 295: // "RUN_TIME_VAR_HSV" case 296: // "RUN_TIME_VAR_REMOTE_USER" case 297: // "RUN_TIME_VAR_TIME" case 298: // "RUN_TIME_VAR_TIME_DAY" case 299: // "RUN_TIME_VAR_TIME_EPOCH" case 300: // "RUN_TIME_VAR_TIME_HOUR" case 301: // "RUN_TIME_VAR_TIME_MIN" case 302: // "RUN_TIME_VAR_TIME_MON" case 303: // "RUN_TIME_VAR_TIME_SEC" case 304: // "RUN_TIME_VAR_TIME_WDAY" case 305: // "RUN_TIME_VAR_TIME_YEAR" case 306: // "VARIABLE" case 307: // "Dictionary element" case 308: // "Dictionary element, selected by regexp" value.copy< std::string > (v); break; case 315: // op case 316: // op_before_init value.copy< std::unique_ptr > (v); break; case 323: // run_time_string value.copy< std::unique_ptr > (v); break; case 320: // var value.copy< std::unique_ptr > (v); break; case 321: // act case 322: // setvar_action value.copy< std::unique_ptr > (v); break; case 318: // variables case 319: // variables_may_be_quoted value.copy< std::unique_ptr > > > (v); break; case 313: // actions case 314: // 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) : Base (t) , value () , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l) : Base (t) , value (v) , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr v, const location_type& l) : Base (t) , value (v) , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr v, const location_type& l) : Base (t) , value (v) , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr v, const location_type& l) : Base (t) , value (v) , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr v, const location_type& l) : Base (t) , value (v) , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr > > v, const location_type& l) : Base (t) , value (v) , location (l) {} template seclang_parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::unique_ptr > > v, const location_type& l) : Base (t) , value (v) , location (l) {} template inline seclang_parser::basic_symbol::~basic_symbol () { clear (); } template inline void seclang_parser::basic_symbol::clear () { // User destructor. symbol_number_type yytype = this->type_get (); basic_symbol& yysym = *this; (void) yysym; switch (yytype) { default: break; } // Type destructor. switch (yytype) { case 142: // "Accuracy" case 143: // "Allow" case 144: // "Append" case 145: // "AuditLog" case 146: // "Block" case 147: // "Capture" case 148: // "Chain" case 149: // "ACTION_CTL_AUDIT_ENGINE" case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" case 151: // "ACTION_CTL_BDY_JSON" case 152: // "ACTION_CTL_BDY_XML" case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" case 158: // "Deny" case 159: // "DeprecateVar" case 160: // "Drop" case 161: // "Exec" case 162: // "ExpireVar" case 163: // "Id" case 164: // "InitCol" case 165: // "Log" case 166: // "LogData" case 167: // "Maturity" case 168: // "Msg" case 169: // "MultiMatch" case 170: // "NoAuditLog" case 171: // "NoLog" case 172: // "Pass" case 173: // "Pause" case 174: // "Phase" case 175: // "Prepend" case 176: // "Proxy" case 177: // "Redirect" case 178: // "Rev" case 179: // "SanatiseArg" case 180: // "SanatiseMatched" case 181: // "SanatiseMatchedBytes" case 182: // "SanatiseRequestHeader" case 183: // "SanatiseResponseHeader" case 184: // "SetEnv" case 185: // "SetRsc" case 186: // "SetSid" case 187: // "SetUID" case 188: // "Severity" case 189: // "Skip" case 190: // "SkipAfter" case 191: // "Status" case 192: // "Tag" case 193: // "ACTION_TRANSFORMATION_CMD_LINE" case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" case 199: // "ACTION_TRANSFORMATION_JS_DECODE" case 200: // "ACTION_TRANSFORMATION_LENGTH" case 201: // "ACTION_TRANSFORMATION_LOWERCASE" case 202: // "ACTION_TRANSFORMATION_MD5" case 203: // "ACTION_TRANSFORMATION_NONE" case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" case 215: // "ACTION_TRANSFORMATION_SHA1" case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" case 217: // "ACTION_TRANSFORMATION_TRIM" case 218: // "ACTION_TRANSFORMATION_UPPERCASE" case 219: // "ACTION_TRANSFORMATION_URL_DECODE" case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" case 222: // "Ver" case 223: // "xmlns" case 224: // "CONFIG_COMPONENT_SIG" case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" case 226: // "CONFIG_SEC_WEB_APP_ID" case 227: // "CONFIG_SEC_SERVER_SIG" case 228: // "CONFIG_DIR_AUDIT_DIR" case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" case 230: // "CONFIG_DIR_AUDIT_ENG" case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" case 232: // "CONFIG_DIR_AUDIT_LOG" case 233: // "CONFIG_DIR_AUDIT_LOG2" case 234: // "CONFIG_DIR_AUDIT_LOG_P" case 235: // "CONFIG_DIR_AUDIT_STS" case 236: // "CONFIG_DIR_AUDIT_TPE" case 237: // "CONFIG_DIR_DEBUG_LOG" case 238: // "CONFIG_DIR_DEBUG_LVL" case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" case 240: // "CONFIG_DIR_GEO_DB" case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" case 243: // "CONFIG_DIR_REQ_BODY" case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" case 248: // "CONFIG_DIR_RES_BODY" case 249: // "CONFIG_DIR_RES_BODY_LIMIT" case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" case 251: // "CONFIG_DIR_RULE_ENG" case 252: // "CONFIG_DIR_SEC_ACTION" case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" case 254: // "CONFIG_DIR_SEC_MARKER" case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" case 257: // "CONFIG_SEC_HTTP_BLKEY" case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" case 266: // "CONFIG_UPDLOAD_KEEP_FILES" case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" case 268: // "CONFIG_UPLOAD_DIR" case 269: // "CONFIG_UPLOAD_FILE_LIMIT" case 270: // "CONFIG_UPLOAD_FILE_MODE" case 271: // "CONFIG_VALUE_ABORT" case 272: // "CONFIG_VALUE_DETC" case 273: // "CONFIG_VALUE_HTTPS" case 274: // "CONFIG_VALUE_OFF" case 275: // "CONFIG_VALUE_ON" case 276: // "CONFIG_VALUE_PARALLEL" case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" case 278: // "CONFIG_VALUE_REJECT" case 279: // "CONFIG_VALUE_RELEVANT_ONLY" case 280: // "CONFIG_VALUE_SERIAL" case 281: // "CONFIG_VALUE_WARN" case 282: // "CONFIG_XML_EXTERNAL_ENTITY" case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" case 284: // "CONGIG_DIR_SEC_ARG_SEP" case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" case 286: // "CONGIG_DIR_SEC_DATA_DIR" case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" case 288: // "CONGIG_DIR_SEC_TMP_DIR" case 289: // "DIRECTIVE" case 290: // "DIRECTIVE_SECRULESCRIPT" case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" case 292: // "QUOTATION_MARK" case 293: // "RUN_TIME_VAR_BLD" case 294: // "RUN_TIME_VAR_DUR" case 295: // "RUN_TIME_VAR_HSV" case 296: // "RUN_TIME_VAR_REMOTE_USER" case 297: // "RUN_TIME_VAR_TIME" case 298: // "RUN_TIME_VAR_TIME_DAY" case 299: // "RUN_TIME_VAR_TIME_EPOCH" case 300: // "RUN_TIME_VAR_TIME_HOUR" case 301: // "RUN_TIME_VAR_TIME_MIN" case 302: // "RUN_TIME_VAR_TIME_MON" case 303: // "RUN_TIME_VAR_TIME_SEC" case 304: // "RUN_TIME_VAR_TIME_WDAY" case 305: // "RUN_TIME_VAR_TIME_YEAR" case 306: // "VARIABLE" case 307: // "Dictionary element" case 308: // "Dictionary element, selected by regexp" value.template destroy< std::string > (); break; case 315: // op case 316: // op_before_init value.template destroy< std::unique_ptr > (); break; case 323: // run_time_string value.template destroy< std::unique_ptr > (); break; case 320: // var value.template destroy< std::unique_ptr > (); break; case 321: // act case 322: // setvar_action value.template destroy< std::unique_ptr > (); break; case 318: // variables case 319: // variables_may_be_quoted value.template destroy< std::unique_ptr > > > (); break; case 313: // actions case 314: // actions_may_quoted value.template destroy< std::unique_ptr > > > (); break; default: break; } Base::clear (); } template inline bool seclang_parser::basic_symbol::empty () const { return Base::type_get () == empty_symbol; } template inline void seclang_parser::basic_symbol::move (basic_symbol& s) { super_type::move(s); switch (this->type_get ()) { case 142: // "Accuracy" case 143: // "Allow" case 144: // "Append" case 145: // "AuditLog" case 146: // "Block" case 147: // "Capture" case 148: // "Chain" case 149: // "ACTION_CTL_AUDIT_ENGINE" case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" case 151: // "ACTION_CTL_BDY_JSON" case 152: // "ACTION_CTL_BDY_XML" case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" case 158: // "Deny" case 159: // "DeprecateVar" case 160: // "Drop" case 161: // "Exec" case 162: // "ExpireVar" case 163: // "Id" case 164: // "InitCol" case 165: // "Log" case 166: // "LogData" case 167: // "Maturity" case 168: // "Msg" case 169: // "MultiMatch" case 170: // "NoAuditLog" case 171: // "NoLog" case 172: // "Pass" case 173: // "Pause" case 174: // "Phase" case 175: // "Prepend" case 176: // "Proxy" case 177: // "Redirect" case 178: // "Rev" case 179: // "SanatiseArg" case 180: // "SanatiseMatched" case 181: // "SanatiseMatchedBytes" case 182: // "SanatiseRequestHeader" case 183: // "SanatiseResponseHeader" case 184: // "SetEnv" case 185: // "SetRsc" case 186: // "SetSid" case 187: // "SetUID" case 188: // "Severity" case 189: // "Skip" case 190: // "SkipAfter" case 191: // "Status" case 192: // "Tag" case 193: // "ACTION_TRANSFORMATION_CMD_LINE" case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" case 199: // "ACTION_TRANSFORMATION_JS_DECODE" case 200: // "ACTION_TRANSFORMATION_LENGTH" case 201: // "ACTION_TRANSFORMATION_LOWERCASE" case 202: // "ACTION_TRANSFORMATION_MD5" case 203: // "ACTION_TRANSFORMATION_NONE" case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" case 215: // "ACTION_TRANSFORMATION_SHA1" case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" case 217: // "ACTION_TRANSFORMATION_TRIM" case 218: // "ACTION_TRANSFORMATION_UPPERCASE" case 219: // "ACTION_TRANSFORMATION_URL_DECODE" case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" case 222: // "Ver" case 223: // "xmlns" case 224: // "CONFIG_COMPONENT_SIG" case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" case 226: // "CONFIG_SEC_WEB_APP_ID" case 227: // "CONFIG_SEC_SERVER_SIG" case 228: // "CONFIG_DIR_AUDIT_DIR" case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" case 230: // "CONFIG_DIR_AUDIT_ENG" case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" case 232: // "CONFIG_DIR_AUDIT_LOG" case 233: // "CONFIG_DIR_AUDIT_LOG2" case 234: // "CONFIG_DIR_AUDIT_LOG_P" case 235: // "CONFIG_DIR_AUDIT_STS" case 236: // "CONFIG_DIR_AUDIT_TPE" case 237: // "CONFIG_DIR_DEBUG_LOG" case 238: // "CONFIG_DIR_DEBUG_LVL" case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" case 240: // "CONFIG_DIR_GEO_DB" case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" case 243: // "CONFIG_DIR_REQ_BODY" case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" case 248: // "CONFIG_DIR_RES_BODY" case 249: // "CONFIG_DIR_RES_BODY_LIMIT" case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" case 251: // "CONFIG_DIR_RULE_ENG" case 252: // "CONFIG_DIR_SEC_ACTION" case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" case 254: // "CONFIG_DIR_SEC_MARKER" case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" case 257: // "CONFIG_SEC_HTTP_BLKEY" case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" case 266: // "CONFIG_UPDLOAD_KEEP_FILES" case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" case 268: // "CONFIG_UPLOAD_DIR" case 269: // "CONFIG_UPLOAD_FILE_LIMIT" case 270: // "CONFIG_UPLOAD_FILE_MODE" case 271: // "CONFIG_VALUE_ABORT" case 272: // "CONFIG_VALUE_DETC" case 273: // "CONFIG_VALUE_HTTPS" case 274: // "CONFIG_VALUE_OFF" case 275: // "CONFIG_VALUE_ON" case 276: // "CONFIG_VALUE_PARALLEL" case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" case 278: // "CONFIG_VALUE_REJECT" case 279: // "CONFIG_VALUE_RELEVANT_ONLY" case 280: // "CONFIG_VALUE_SERIAL" case 281: // "CONFIG_VALUE_WARN" case 282: // "CONFIG_XML_EXTERNAL_ENTITY" case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" case 284: // "CONGIG_DIR_SEC_ARG_SEP" case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" case 286: // "CONGIG_DIR_SEC_DATA_DIR" case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" case 288: // "CONGIG_DIR_SEC_TMP_DIR" case 289: // "DIRECTIVE" case 290: // "DIRECTIVE_SECRULESCRIPT" case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" case 292: // "QUOTATION_MARK" case 293: // "RUN_TIME_VAR_BLD" case 294: // "RUN_TIME_VAR_DUR" case 295: // "RUN_TIME_VAR_HSV" case 296: // "RUN_TIME_VAR_REMOTE_USER" case 297: // "RUN_TIME_VAR_TIME" case 298: // "RUN_TIME_VAR_TIME_DAY" case 299: // "RUN_TIME_VAR_TIME_EPOCH" case 300: // "RUN_TIME_VAR_TIME_HOUR" case 301: // "RUN_TIME_VAR_TIME_MIN" case 302: // "RUN_TIME_VAR_TIME_MON" case 303: // "RUN_TIME_VAR_TIME_SEC" case 304: // "RUN_TIME_VAR_TIME_WDAY" case 305: // "RUN_TIME_VAR_TIME_YEAR" case 306: // "VARIABLE" case 307: // "Dictionary element" case 308: // "Dictionary element, selected by regexp" value.move< std::string > (s.value); break; case 315: // op case 316: // op_before_init value.move< std::unique_ptr > (s.value); break; case 323: // run_time_string value.move< std::unique_ptr > (s.value); break; case 320: // var value.move< std::unique_ptr > (s.value); break; case 321: // act case 322: // setvar_action value.move< std::unique_ptr > (s.value); break; case 318: // variables case 319: // variables_may_be_quoted value.move< std::unique_ptr > > > (s.value); break; case 313: // actions case 314: // actions_may_quoted value.move< std::unique_ptr > > > (s.value); break; default: break; } location = s.location; } // by_type. inline seclang_parser::by_type::by_type () : type (empty_symbol) {} inline seclang_parser::by_type::by_type (const by_type& other) : type (other.type) {} inline seclang_parser::by_type::by_type (token_type t) : type (yytranslate_ (t)) {} inline void seclang_parser::by_type::clear () { type = empty_symbol; } inline void seclang_parser::by_type::move (by_type& that) { type = that.type; that.clear (); } inline int seclang_parser::by_type::type_get () const { return type; } inline seclang_parser::token_type seclang_parser::by_type::token () const { // YYTOKNUM[NUM] -- (External) token number corresponding to the // (internal) symbol number NUM (which must be that of a token). */ static const unsigned short int yytoken_number_[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563 }; return static_cast (yytoken_number_[type]); } // Implementation of make_symbol for each symbol type. seclang_parser::symbol_type seclang_parser::make_END (const location_type& l) { return symbol_type (token::TOK_END, l); } seclang_parser::symbol_type seclang_parser::make_COMMA (const location_type& l) { return symbol_type (token::TOK_COMMA, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_CONTENT_INJECTION (const location_type& l) { return symbol_type (token::TOK_CONFIG_CONTENT_INJECTION, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR (const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR, l); } seclang_parser::symbol_type seclang_parser::make_PIPE (const location_type& l) { return symbol_type (token::TOK_PIPE, l); } seclang_parser::symbol_type seclang_parser::make_NEW_LINE (const location_type& l) { return symbol_type (token::TOK_NEW_LINE, l); } seclang_parser::symbol_type seclang_parser::make_VAR_COUNT (const location_type& l) { return symbol_type (token::TOK_VAR_COUNT, l); } seclang_parser::symbol_type seclang_parser::make_VAR_EXCLUSION (const location_type& l) { return symbol_type (token::TOK_VAR_EXCLUSION, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS_POST (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS_POST, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS_GET (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS_GET, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FILES_SIZES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FILES_SIZES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FILES_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FILES_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FILES_TMP_CONTENT (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FILES_TMP_CONTENT, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_FILENAME (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_FILENAME, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_NAME (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_NAME, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MATCHED_VARS_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MATCHED_VARS_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MATCHED_VARS (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MATCHED_VARS, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FILES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FILES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_COOKIES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_COOKIES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_HEADERS (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_HEADERS, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_HEADERS (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_HEADERS, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_GEO (const location_type& l) { return symbol_type (token::TOK_VARIABLE_GEO, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_COOKIES_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_COOKIES_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS_COMBINED_SIZE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS_COMBINED_SIZE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS_GET_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS_GET_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RULE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RULE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_ARGS_POST_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_ARGS_POST_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_AUTH_TYPE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_AUTH_TYPE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FILES_COMBINED_SIZE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FILES_COMBINED_SIZE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FILES_TMP_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FILES_TMP_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FULL_REQUEST (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FULL_REQUEST, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_FULL_REQUEST_LENGTH (const location_type& l) { return symbol_type (token::TOK_VARIABLE_FULL_REQUEST_LENGTH, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_INBOUND_DATA_ERROR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_INBOUND_DATA_ERROR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MATCHED_VAR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MATCHED_VAR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MATCHED_VAR_NAME (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MATCHED_VAR_NAME, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_BOUNDARY_QUOTED (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_BOUNDARY_QUOTED, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_CRLF_LF_LINES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_CRLF_LF_LINES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_DATA_AFTER (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_DATA_AFTER, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_DATA_BEFORE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_DATA_BEFORE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_HEADER_FOLDING (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_HEADER_FOLDING, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_INVALID_PART (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_PART, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_INVALID_QUOTING (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_INVALID_QUOTING, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_LF_LINE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_LF_LINE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_MISSING_SEMICOLON (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_MISSING_SEMICOLON, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_STRICT_ERROR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_STRICT_ERROR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY (const location_type& l) { return symbol_type (token::TOK_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_OUTBOUND_DATA_ERROR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_OUTBOUND_DATA_ERROR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_PATH_INFO (const location_type& l) { return symbol_type (token::TOK_VARIABLE_PATH_INFO, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_QUERY_STRING (const location_type& l) { return symbol_type (token::TOK_VARIABLE_QUERY_STRING, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REMOTE_ADDR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REMOTE_ADDR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REMOTE_HOST (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REMOTE_HOST, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REMOTE_PORT (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REMOTE_PORT, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQBODY_ERROR_MSG (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQBODY_ERROR_MSG, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQBODY_ERROR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQBODY_ERROR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQBODY_PROCESSOR_ERROR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR_ERROR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQBODY_PROCESSOR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQBODY_PROCESSOR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_BASENAME (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_BASENAME, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_BODY_LENGTH (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_BODY_LENGTH, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_BODY (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_BODY, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_FILE_NAME (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_FILE_NAME, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_HEADERS_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_HEADERS_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_LINE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_LINE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_METHOD (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_METHOD, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_PROTOCOL (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_PROTOCOL, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_URI_RAW (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_URI_RAW, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_REQUEST_URI (const location_type& l) { return symbol_type (token::TOK_VARIABLE_REQUEST_URI, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESOURCE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESOURCE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_BODY (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_BODY, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_CONTENT_LENGTH (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_CONTENT_LENGTH, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_CONTENT_TYPE (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_CONTENT_TYPE, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_HEADERS_NAMES (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_HEADERS_NAMES, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_PROTOCOL (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_PROTOCOL, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_RESPONSE_STATUS (const location_type& l) { return symbol_type (token::TOK_VARIABLE_RESPONSE_STATUS, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_SERVER_ADDR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_SERVER_ADDR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_SERVER_NAME (const location_type& l) { return symbol_type (token::TOK_VARIABLE_SERVER_NAME, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_SERVER_PORT (const location_type& l) { return symbol_type (token::TOK_VARIABLE_SERVER_PORT, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_SESSION_ID (const location_type& l) { return symbol_type (token::TOK_VARIABLE_SESSION_ID, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_UNIQUE_ID (const location_type& l) { return symbol_type (token::TOK_VARIABLE_UNIQUE_ID, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_URL_ENCODED_ERROR (const location_type& l) { return symbol_type (token::TOK_VARIABLE_URL_ENCODED_ERROR, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_USER_ID (const location_type& l) { return symbol_type (token::TOK_VARIABLE_USER_ID, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_WEB_APP_ID (const location_type& l) { return symbol_type (token::TOK_VARIABLE_WEB_APP_ID, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_STATUS (const location_type& l) { return symbol_type (token::TOK_VARIABLE_STATUS, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_IP (const location_type& l) { return symbol_type (token::TOK_VARIABLE_IP, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_GLOBAL (const location_type& l) { return symbol_type (token::TOK_VARIABLE_GLOBAL, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_TX (const location_type& l) { return symbol_type (token::TOK_VARIABLE_TX, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_SESSION (const location_type& l) { return symbol_type (token::TOK_VARIABLE_SESSION, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE_USER (const location_type& l) { return symbol_type (token::TOK_VARIABLE_USER, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_ENV (const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_ENV, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_XML (const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_XML, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SETVAR (const location_type& l) { return symbol_type (token::TOK_ACTION_SETVAR, l); } seclang_parser::symbol_type seclang_parser::make_SETVAR_OPERATION_EQUALS (const location_type& l) { return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS, l); } seclang_parser::symbol_type seclang_parser::make_SETVAR_OPERATION_EQUALS_PLUS (const location_type& l) { return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS_PLUS, l); } seclang_parser::symbol_type seclang_parser::make_SETVAR_OPERATION_EQUALS_MINUS (const location_type& l) { return symbol_type (token::TOK_SETVAR_OPERATION_EQUALS_MINUS, l); } seclang_parser::symbol_type seclang_parser::make_NOT (const location_type& l) { return symbol_type (token::TOK_NOT, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_BEGINS_WITH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_BEGINS_WITH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_CONTAINS (const location_type& l) { return symbol_type (token::TOK_OPERATOR_CONTAINS, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_CONTAINS_WORD (const location_type& l) { return symbol_type (token::TOK_OPERATOR_CONTAINS_WORD, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_DETECT_SQLI (const location_type& l) { return symbol_type (token::TOK_OPERATOR_DETECT_SQLI, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_DETECT_XSS (const location_type& l) { return symbol_type (token::TOK_OPERATOR_DETECT_XSS, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_ENDS_WITH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_ENDS_WITH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_EQ (const location_type& l) { return symbol_type (token::TOK_OPERATOR_EQ, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_FUZZY_HASH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_FUZZY_HASH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_GEOLOOKUP (const location_type& l) { return symbol_type (token::TOK_OPERATOR_GEOLOOKUP, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_GE (const location_type& l) { return symbol_type (token::TOK_OPERATOR_GE, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_GSB_LOOKUP (const location_type& l) { return symbol_type (token::TOK_OPERATOR_GSB_LOOKUP, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_GT (const location_type& l) { return symbol_type (token::TOK_OPERATOR_GT, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_INSPECT_FILE (const location_type& l) { return symbol_type (token::TOK_OPERATOR_INSPECT_FILE, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_IP_MATCH_FROM_FILE (const location_type& l) { return symbol_type (token::TOK_OPERATOR_IP_MATCH_FROM_FILE, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_IP_MATCH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_IP_MATCH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_LE (const location_type& l) { return symbol_type (token::TOK_OPERATOR_LE, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_LT (const location_type& l) { return symbol_type (token::TOK_OPERATOR_LT, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_PM_FROM_FILE (const location_type& l) { return symbol_type (token::TOK_OPERATOR_PM_FROM_FILE, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_PM (const location_type& l) { return symbol_type (token::TOK_OPERATOR_PM, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_RBL (const location_type& l) { return symbol_type (token::TOK_OPERATOR_RBL, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_RSUB (const location_type& l) { return symbol_type (token::TOK_OPERATOR_RSUB, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_RX_CONTENT_ONLY (const location_type& l) { return symbol_type (token::TOK_OPERATOR_RX_CONTENT_ONLY, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_RX (const location_type& l) { return symbol_type (token::TOK_OPERATOR_RX, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_STR_EQ (const location_type& l) { return symbol_type (token::TOK_OPERATOR_STR_EQ, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_STR_MATCH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_STR_MATCH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_UNCONDITIONAL_MATCH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_UNCONDITIONAL_MATCH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VALIDATE_BYTE_RANGE (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VALIDATE_BYTE_RANGE, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VALIDATE_DTD (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VALIDATE_DTD, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VALIDATE_HASH (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VALIDATE_HASH, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VALIDATE_SCHEMA (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VALIDATE_SCHEMA, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VALIDATE_URL_ENCODING (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VALIDATE_URL_ENCODING, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VALIDATE_UTF8_ENCODING (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VERIFY_CC (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VERIFY_CC, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VERIFY_CPF (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VERIFY_CPF, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_VERIFY_SSN (const location_type& l) { return symbol_type (token::TOK_OPERATOR_VERIFY_SSN, l); } seclang_parser::symbol_type seclang_parser::make_OPERATOR_WITHIN (const location_type& l) { return symbol_type (token::TOK_OPERATOR_WITHIN, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_LOG_FMT (const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG_FMT, l); } seclang_parser::symbol_type seclang_parser::make_JSON (const location_type& l) { return symbol_type (token::TOK_JSON, l); } seclang_parser::symbol_type seclang_parser::make_NATIVE (const location_type& l) { return symbol_type (token::TOK_NATIVE, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_RULE_ENGINE (const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_RULE_ENGINE, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_ACCURACY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_ACCURACY, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_ALLOW (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_ALLOW, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_APPEND (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_APPEND, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_AUDIT_LOG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_AUDIT_LOG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_BLOCK (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_BLOCK, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CAPTURE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CAPTURE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CHAIN (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CHAIN, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_AUDIT_ENGINE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_AUDIT_ENGINE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_AUDIT_LOG_PARTS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_AUDIT_LOG_PARTS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_BDY_JSON (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_BDY_JSON, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_BDY_XML (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_BDY_XML, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_FORCE_REQ_BODY_VAR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_FORCE_REQ_BODY_VAR, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_REQUEST_BODY_ACCESS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_REQUEST_BODY_ACCESS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_RULE_REMOVE_BY_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_BY_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_DENY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_DENY, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_DEPRECATE_VAR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_DEPRECATE_VAR, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_DROP (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_DROP, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_EXEC (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_EXEC, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_EXPIRE_VAR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_EXPIRE_VAR, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_INITCOL (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_INITCOL, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_LOG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_LOG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_LOG_DATA (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_LOG_DATA, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_MATURITY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_MATURITY, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_MSG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_MSG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_MULTI_MATCH (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_MULTI_MATCH, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_NO_AUDIT_LOG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_NO_AUDIT_LOG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_NO_LOG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_NO_LOG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_PASS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_PASS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_PAUSE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_PAUSE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_PHASE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_PHASE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_PREPEND (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_PREPEND, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_PROXY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_PROXY, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_REDIRECT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_REDIRECT, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_REV (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_REV, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SANATISE_ARG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SANATISE_ARG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SANATISE_MATCHED (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SANATISE_MATCHED, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SANATISE_MATCHED_BYTES (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SANATISE_MATCHED_BYTES, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SANATISE_REQUEST_HEADER (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SANATISE_REQUEST_HEADER, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SANATISE_RESPONSE_HEADER (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SANATISE_RESPONSE_HEADER, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SETENV (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SETENV, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SETRSC (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SETRSC, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SETSID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SETSID, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SETUID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SETUID, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SEVERITY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SEVERITY, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SKIP (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SKIP, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_SKIP_AFTER (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_SKIP_AFTER, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_STATUS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_STATUS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TAG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TAG, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_CMD_LINE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_CMD_LINE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_CSS_DECODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_CSS_DECODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_HEX_ENCODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_HEX_ENCODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_HEX_DECODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_HEX_DECODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_JS_DECODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_JS_DECODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_LENGTH (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_LENGTH, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_LOWERCASE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_LOWERCASE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_MD5 (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_MD5, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_NONE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_NONE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_NORMALISE_PATH (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_NULLS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_NULLS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_REPLACE_COMMENTS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_REPLACE_NULLS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_REPLACE_NULLS, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_SHA1 (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_SHA1, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_SQL_HEX_DECODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_TRIM (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_UPPERCASE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_UPPERCASE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_DECODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE_UNI (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_VER (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_VER, v, l); } seclang_parser::symbol_type seclang_parser::make_ACTION_XMLNS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_ACTION_XMLNS, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_COMPONENT_SIG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_COMPONENT_SIG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_ARGUMENT_SEPARATOR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_ARGUMENT_SEPARATOR, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_WEB_APP_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_WEB_APP_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_SERVER_SIG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_SERVER_SIG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_DIR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_DIR, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_DIR_MOD (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_DIR_MOD, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_ENG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_ENG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_FLE_MOD (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_FLE_MOD, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_LOG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_LOG2 (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG2, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_LOG_P (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_LOG_P, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_STS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_STS, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_TPE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_AUDIT_TPE, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_DEBUG_LOG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_DEBUG_LOG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_DEBUG_LVL (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_DEBUG_LVL, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_CACHE_TRANSFORMATIONS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_GEO_DB (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_GEO_DB, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_PCRE_MATCH_LIMIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_REQ_BODY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_LIMIT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_RES_BODY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_RES_BODY, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_RES_BODY_LIMIT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_RULE_ENG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_RULE_ENG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_SEC_ACTION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_SEC_ACTION, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_SEC_DEFAULT_ACTION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_SEC_DEFAULT_ACTION, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_SEC_MARKER (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_SEC_MARKER, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_UNICODE_MAP_FILE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_DIR_UNICODE_MAP_FILE, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_COLLECTION_TIMEOUT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_COLLECTION_TIMEOUT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_HTTP_BLKEY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_HTTP_BLKEY, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_MSG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_REMOVE_BY_TAG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_UPDLOAD_KEEP_FILES (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_UPDLOAD_KEEP_FILES, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_UPDLOAD_SAVE_TMP_FILES (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_UPLOAD_DIR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_UPLOAD_DIR, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_UPLOAD_FILE_LIMIT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_UPLOAD_FILE_LIMIT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_UPLOAD_FILE_MODE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_UPLOAD_FILE_MODE, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_ABORT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_ABORT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_DETC (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_DETC, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_HTTPS (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_HTTPS, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_OFF (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_OFF, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_ON (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_ON, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_PARALLEL (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_PARALLEL, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_PROCESS_PARTIAL (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_PROCESS_PARTIAL, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_REJECT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_REJECT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_RELEVANT_ONLY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_RELEVANT_ONLY, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_SERIAL (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_SERIAL, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_VALUE_WARN (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_VALUE_WARN, v, l); } seclang_parser::symbol_type seclang_parser::make_CONFIG_XML_EXTERNAL_ENTITY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONFIG_XML_EXTERNAL_ENTITY, v, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_RESPONSE_BODY_MP (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_RESPONSE_BODY_MP, v, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_SEC_ARG_SEP (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_SEC_ARG_SEP, v, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_SEC_COOKIE_FORMAT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_SEC_COOKIE_FORMAT, v, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_SEC_DATA_DIR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_SEC_DATA_DIR, v, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_SEC_STATUS_ENGINE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_SEC_STATUS_ENGINE, v, l); } seclang_parser::symbol_type seclang_parser::make_CONGIG_DIR_SEC_TMP_DIR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_CONGIG_DIR_SEC_TMP_DIR, v, l); } seclang_parser::symbol_type seclang_parser::make_DIRECTIVE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_DIRECTIVE, v, l); } seclang_parser::symbol_type seclang_parser::make_DIRECTIVE_SECRULESCRIPT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_DIRECTIVE_SECRULESCRIPT, v, l); } seclang_parser::symbol_type seclang_parser::make_FREE_TEXT_QUOTE_MACRO_EXPANSION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION, v, l); } seclang_parser::symbol_type seclang_parser::make_QUOTATION_MARK (const std::string& v, const location_type& l) { return symbol_type (token::TOK_QUOTATION_MARK, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_BLD (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_BLD, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_DUR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_DUR, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_HSV (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_HSV, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_REMOTE_USER (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_REMOTE_USER, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_DAY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_DAY, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_EPOCH (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_EPOCH, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_HOUR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_HOUR, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_MIN (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_MIN, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_MON (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_MON, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_SEC (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_SEC, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_WDAY (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_WDAY, v, l); } seclang_parser::symbol_type seclang_parser::make_RUN_TIME_VAR_TIME_YEAR (const std::string& v, const location_type& l) { return symbol_type (token::TOK_RUN_TIME_VAR_TIME_YEAR, v, l); } seclang_parser::symbol_type seclang_parser::make_VARIABLE (const std::string& v, const location_type& l) { return symbol_type (token::TOK_VARIABLE, v, l); } seclang_parser::symbol_type seclang_parser::make_DICT_ELEMENT (const std::string& v, const location_type& l) { return symbol_type (token::TOK_DICT_ELEMENT, v, l); } seclang_parser::symbol_type seclang_parser::make_DICT_ELEMENT_REGEXP (const std::string& v, const location_type& l) { return symbol_type (token::TOK_DICT_ELEMENT_REGEXP, v, l); } } // yy #line 5666 "seclang-parser.hh" // lalr1.cc:377 #endif // !YY_YY_SECLANG_PARSER_HH_INCLUDED