diff --git a/CHANGES b/CHANGES index ef212bb059..3d21698cc0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ v3.0.3 - YYYY-MMM-DD (to be released) ------------------------------------- + - Add missing escapeSeqDecode, urlEncode and trimLeft/Right tfns to parser + [@victorhora, @zimmerle] - Fix variable FILES_TMPNAMES [Issue #1646, #1610 - @victorhora, @zimmerle, @defanator] - Fix memory leak in Collections diff --git a/src/parser/seclang-parser.cc b/src/parser/seclang-parser.cc index 654039462d..93205e1d9a 100644 --- a/src/parser/seclang-parser.cc +++ b/src/parser/seclang-parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.0.2. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2013 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 @@ -33,7 +33,7 @@ // First part of user declarations. -#line 37 "seclang-parser.cc" // lalr1.cc:404 +#line 37 "seclang-parser.cc" // lalr1.cc:399 # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -47,13 +47,13 @@ // User implementation prologue. -#line 51 "seclang-parser.cc" // lalr1.cc:412 +#line 51 "seclang-parser.cc" // lalr1.cc:407 // Unqualified %code blocks. -#line 359 "seclang-parser.yy" // lalr1.cc:413 +#line 359 "seclang-parser.yy" // lalr1.cc:408 #include "src/parser/driver.h" -#line 57 "seclang-parser.cc" // lalr1.cc:413 +#line 57 "seclang-parser.cc" // lalr1.cc:408 #ifndef YY_ @@ -130,7 +130,7 @@ #endif // !YYDEBUG #define yyerrok (yyerrstatus_ = 0) -#define yyclearin (yyla.clear ()) +#define yyclearin (yyempty = true) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -139,7 +139,7 @@ namespace yy { -#line 143 "seclang-parser.cc" // lalr1.cc:479 +#line 143 "seclang-parser.cc" // lalr1.cc:474 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -202,7 +202,7 @@ namespace yy { // by_state. inline seclang_parser::by_state::by_state () - : state (empty_state) + : state (empty) {} inline @@ -210,19 +210,12 @@ namespace yy { : state (other.state) {} - inline - void - seclang_parser::by_state::clear () - { - state = empty_state; - } - inline void seclang_parser::by_state::move (by_state& that) { state = that.state; - that.clear (); + that.state = empty; } inline @@ -234,10 +227,7 @@ namespace yy { seclang_parser::symbol_number_type seclang_parser::by_state::type_get () const { - if (state == empty_state) - return empty_symbol; - else - return yystos_[state]; + return state == empty ? 0 : yystos_[state]; } inline @@ -309,166 +299,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" value.move< std::string > (that.value); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init value.move< std::unique_ptr > (that.value); break; - case 347: // run_time_string + case 351: // run_time_string value.move< std::unique_ptr > (that.value); break; - case 344: // var + case 348: // var value.move< std::unique_ptr > (that.value); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action value.move< std::unique_ptr > (that.value); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted value.move< std::unique_ptr > > > (that.value); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted value.move< std::unique_ptr > > > (that.value); break; @@ -477,7 +471,7 @@ namespace yy { } // that is emptied. - that.type = empty_symbol; + that.type = empty; } inline @@ -545,166 +539,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" value.copy< std::string > (that.value); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init value.copy< std::unique_ptr > (that.value); break; - case 347: // run_time_string + case 351: // run_time_string value.copy< std::unique_ptr > (that.value); break; - case 344: // var + case 348: // var value.copy< std::unique_ptr > (that.value); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action value.copy< std::unique_ptr > (that.value); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted value.copy< std::unique_ptr > > > (that.value); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted value.copy< std::unique_ptr > > > (that.value); break; @@ -735,10 +733,6 @@ namespace yy { std::ostream& yyoutput = yyo; YYUSE (yyoutput); symbol_number_type yytype = yysym.type_get (); - // Avoid a (spurious) G++ 4.8 warning about "array subscript is - // below array bounds". - if (yysym.empty ()) - std::abort (); yyo << (yytype < yyntokens_ ? "token" : "nterm") << ' ' << yytname_[yytype] << " (" << yysym.location << ": "; @@ -823,6 +817,9 @@ namespace yy { int seclang_parser::parse () { + /// Whether yyla contains a lookahead. + bool yyempty = true; + // State. int yyn; /// Length of the RHS of the rule being reduced. @@ -849,13 +846,13 @@ namespace yy { // User initialization code. - #line 352 "/home/zimmerle/core-trustwave/ModSecurity/src/parser/seclang-parser.yy" // lalr1.cc:741 + #line 352 "/home/vhora/ModSecurity-v3-victorhora-Apr/src/parser/seclang-parser.yy" // lalr1.cc:725 { // Initialize the initial location. yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } -#line 859 "seclang-parser.cc" // lalr1.cc:741 +#line 856 "seclang-parser.cc" // lalr1.cc:725 /* Initialize the stack. The initial state will be set in yynewstate, since the latter expects the semantical and the @@ -883,7 +880,7 @@ namespace yy { goto yydefault; // Read a lookahead token. - if (yyla.empty ()) + if (yyempty) { YYCDEBUG << "Reading a token: "; try @@ -896,6 +893,7 @@ namespace yy { error (yyexc); goto yyerrlab1; } + yyempty = false; } YY_SYMBOL_PRINT ("Next token is", yyla); @@ -915,6 +913,9 @@ namespace yy { goto yyreduce; } + // Discard the token being shifted. + yyempty = true; + // Count tokens shifted since error; after three, turn off error status. if (yyerrstatus_) --yyerrstatus_; @@ -1003,166 +1004,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" yylhs.value.build< std::string > (); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init yylhs.value.build< std::unique_ptr > (); break; - case 347: // run_time_string + case 351: // run_time_string yylhs.value.build< std::unique_ptr > (); break; - case 344: // var + case 348: // var yylhs.value.build< std::unique_ptr > (); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action yylhs.value.build< std::unique_ptr > (); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted yylhs.value.build< std::unique_ptr > > > (); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted yylhs.value.build< std::unique_ptr > > > (); break; @@ -1184,241 +1189,241 @@ namespace yy { switch (yyn) { case 2: -#line 735 "seclang-parser.yy" // lalr1.cc:859 +#line 739 "seclang-parser.yy" // lalr1.cc:847 { return 0; } -#line 1192 "seclang-parser.cc" // lalr1.cc:859 +#line 1197 "seclang-parser.cc" // lalr1.cc:847 break; case 6: -#line 748 "seclang-parser.yy" // lalr1.cc:859 +#line 752 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setStorageDirMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1200 "seclang-parser.cc" // lalr1.cc:859 +#line 1205 "seclang-parser.cc" // lalr1.cc:847 break; case 7: -#line 754 "seclang-parser.yy" // lalr1.cc:859 +#line 758 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setStorageDir(yystack_[0].value.as< std::string > ()); } -#line 1208 "seclang-parser.cc" // lalr1.cc:859 +#line 1213 "seclang-parser.cc" // lalr1.cc:847 break; case 8: -#line 760 "seclang-parser.yy" // lalr1.cc:859 +#line 764 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::RelevantOnlyAuditLogStatus); } -#line 1216 "seclang-parser.cc" // lalr1.cc:859 +#line 1221 "seclang-parser.cc" // lalr1.cc:847 break; case 9: -#line 764 "seclang-parser.yy" // lalr1.cc:859 +#line 768 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OffAuditLogStatus); } -#line 1224 "seclang-parser.cc" // lalr1.cc:859 +#line 1229 "seclang-parser.cc" // lalr1.cc:847 break; case 10: -#line 768 "seclang-parser.yy" // lalr1.cc:859 +#line 772 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OnAuditLogStatus); } -#line 1232 "seclang-parser.cc" // lalr1.cc:859 +#line 1237 "seclang-parser.cc" // lalr1.cc:847 break; case 11: -#line 774 "seclang-parser.yy" // lalr1.cc:859 +#line 778 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setFileMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1240 "seclang-parser.cc" // lalr1.cc:859 +#line 1245 "seclang-parser.cc" // lalr1.cc:847 break; case 12: -#line 780 "seclang-parser.yy" // lalr1.cc:859 +#line 784 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setFilePath2(yystack_[0].value.as< std::string > ()); } -#line 1248 "seclang-parser.cc" // lalr1.cc:859 +#line 1253 "seclang-parser.cc" // lalr1.cc:847 break; case 13: -#line 786 "seclang-parser.yy" // lalr1.cc:859 +#line 790 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setParts(yystack_[0].value.as< std::string > ()); } -#line 1256 "seclang-parser.cc" // lalr1.cc:859 +#line 1261 "seclang-parser.cc" // lalr1.cc:847 break; case 14: -#line 792 "seclang-parser.yy" // lalr1.cc:859 +#line 796 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setFilePath1(yystack_[0].value.as< std::string > ()); } -#line 1264 "seclang-parser.cc" // lalr1.cc:859 +#line 1269 "seclang-parser.cc" // lalr1.cc:847 break; case 15: -#line 797 "seclang-parser.yy" // lalr1.cc:859 +#line 801 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::JSONAuditLogFormat); } -#line 1272 "seclang-parser.cc" // lalr1.cc:859 +#line 1277 "seclang-parser.cc" // lalr1.cc:847 break; case 16: -#line 802 "seclang-parser.yy" // lalr1.cc:859 +#line 806 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::NativeAuditLogFormat); } -#line 1280 "seclang-parser.cc" // lalr1.cc:859 +#line 1285 "seclang-parser.cc" // lalr1.cc:847 break; case 17: -#line 808 "seclang-parser.yy" // lalr1.cc:859 +#line 812 "seclang-parser.yy" // lalr1.cc:847 { std::string relevant_status(yystack_[0].value.as< std::string > ()); driver.m_auditLog->setRelevantStatus(relevant_status); } -#line 1289 "seclang-parser.cc" // lalr1.cc:859 +#line 1294 "seclang-parser.cc" // lalr1.cc:847 break; case 18: -#line 815 "seclang-parser.yy" // lalr1.cc:859 +#line 819 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::SerialAuditLogType); } -#line 1297 "seclang-parser.cc" // lalr1.cc:859 +#line 1302 "seclang-parser.cc" // lalr1.cc:847 break; case 19: -#line 819 "seclang-parser.yy" // lalr1.cc:859 +#line 823 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::ParallelAuditLogType); } -#line 1305 "seclang-parser.cc" // lalr1.cc:859 +#line 1310 "seclang-parser.cc" // lalr1.cc:847 break; case 20: -#line 823 "seclang-parser.yy" // lalr1.cc:859 +#line 827 "seclang-parser.yy" // lalr1.cc:847 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::HttpsAuditLogType); } -#line 1313 "seclang-parser.cc" // lalr1.cc:859 +#line 1318 "seclang-parser.cc" // lalr1.cc:847 break; case 21: -#line 829 "seclang-parser.yy" // lalr1.cc:859 +#line 833 "seclang-parser.yy" // lalr1.cc:847 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1321 "seclang-parser.cc" // lalr1.cc:859 +#line 1326 "seclang-parser.cc" // lalr1.cc:847 break; case 22: -#line 833 "seclang-parser.yy" // lalr1.cc:859 +#line 837 "seclang-parser.yy" // lalr1.cc:847 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1329 "seclang-parser.cc" // lalr1.cc:859 +#line 1334 "seclang-parser.cc" // lalr1.cc:847 break; case 23: -#line 837 "seclang-parser.yy" // lalr1.cc:859 +#line 841 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecUploadKeepFiles RelevantOnly is not currently supported. Accepted values are On or Off"); YYERROR; } -#line 1338 "seclang-parser.cc" // lalr1.cc:859 +#line 1343 "seclang-parser.cc" // lalr1.cc:847 break; case 24: -#line 842 "seclang-parser.yy" // lalr1.cc:859 +#line 846 "seclang-parser.yy" // lalr1.cc:847 { driver.m_uploadFileLimit.m_set = true; driver.m_uploadFileLimit.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 10); } -#line 1347 "seclang-parser.cc" // lalr1.cc:859 +#line 1352 "seclang-parser.cc" // lalr1.cc:847 break; case 25: -#line 847 "seclang-parser.yy" // lalr1.cc:859 +#line 851 "seclang-parser.yy" // lalr1.cc:847 { driver.m_uploadFileMode.m_set = true; driver.m_uploadFileMode.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8); } -#line 1356 "seclang-parser.cc" // lalr1.cc:859 +#line 1361 "seclang-parser.cc" // lalr1.cc:847 break; case 26: -#line 852 "seclang-parser.yy" // lalr1.cc:859 +#line 856 "seclang-parser.yy" // lalr1.cc:847 { driver.m_uploadDirectory.m_set = true; driver.m_uploadDirectory.m_value = yystack_[0].value.as< std::string > (); } -#line 1365 "seclang-parser.cc" // lalr1.cc:859 +#line 1370 "seclang-parser.cc" // lalr1.cc:847 break; case 27: -#line 857 "seclang-parser.yy" // lalr1.cc:859 +#line 861 "seclang-parser.yy" // lalr1.cc:847 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1373 "seclang-parser.cc" // lalr1.cc:859 +#line 1378 "seclang-parser.cc" // lalr1.cc:847 break; case 28: -#line 861 "seclang-parser.yy" // lalr1.cc:859 +#line 865 "seclang-parser.yy" // lalr1.cc:847 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1381 "seclang-parser.cc" // lalr1.cc:859 +#line 1386 "seclang-parser.cc" // lalr1.cc:847 break; case 29: -#line 868 "seclang-parser.yy" // lalr1.cc:859 +#line 872 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 1389 "seclang-parser.cc" // lalr1.cc:859 +#line 1394 "seclang-parser.cc" // lalr1.cc:847 break; case 30: -#line 872 "seclang-parser.yy" // lalr1.cc:859 +#line 876 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 1397 "seclang-parser.cc" // lalr1.cc:859 +#line 1402 "seclang-parser.cc" // lalr1.cc:847 break; case 31: -#line 879 "seclang-parser.yy" // lalr1.cc:859 +#line 883 "seclang-parser.yy" // lalr1.cc:847 { ACTION_INIT(yystack_[0].value.as< std::unique_ptr > (), yystack_[3].location) yystack_[2].value.as< std::unique_ptr > > > ()->push_back(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[2].value.as< std::unique_ptr > > > ()); } -#line 1407 "seclang-parser.cc" // lalr1.cc:859 +#line 1412 "seclang-parser.cc" // lalr1.cc:847 break; case 32: -#line 885 "seclang-parser.yy" // lalr1.cc:859 +#line 889 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr>> b(new std::vector>()); ACTION_INIT(yystack_[0].value.as< std::unique_ptr > (), yystack_[1].location) b->push_back(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > > > () = std::move(b); } -#line 1418 "seclang-parser.cc" // lalr1.cc:859 +#line 1423 "seclang-parser.cc" // lalr1.cc:847 break; case 33: -#line 895 "seclang-parser.yy" // lalr1.cc:859 +#line 899 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); std::string error; @@ -1427,11 +1432,11 @@ namespace yy { YYERROR; } } -#line 1431 "seclang-parser.cc" // lalr1.cc:859 +#line 1436 "seclang-parser.cc" // lalr1.cc:847 break; case 34: -#line 904 "seclang-parser.yy" // lalr1.cc:859 +#line 908 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); yylhs.value.as< std::unique_ptr > ()->m_negation = true; @@ -1441,11 +1446,11 @@ namespace yy { YYERROR; } } -#line 1445 "seclang-parser.cc" // lalr1.cc:859 +#line 1450 "seclang-parser.cc" // lalr1.cc:847 break; case 35: -#line 914 "seclang-parser.yy" // lalr1.cc:859 +#line 918 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); std::string error; @@ -1454,11 +1459,11 @@ namespace yy { YYERROR; } } -#line 1458 "seclang-parser.cc" // lalr1.cc:859 +#line 1463 "seclang-parser.cc" // lalr1.cc:847 break; case 36: -#line 923 "seclang-parser.yy" // lalr1.cc:859 +#line 927 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); yylhs.value.as< std::unique_ptr > ()->m_negation = true; @@ -1468,286 +1473,286 @@ namespace yy { YYERROR; } } -#line 1472 "seclang-parser.cc" // lalr1.cc:859 +#line 1477 "seclang-parser.cc" // lalr1.cc:847 break; case 37: -#line 936 "seclang-parser.yy" // lalr1.cc:859 +#line 940 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::UnconditionalMatch()); } -#line 1480 "seclang-parser.cc" // lalr1.cc:859 +#line 1485 "seclang-parser.cc" // lalr1.cc:847 break; case 38: -#line 940 "seclang-parser.yy" // lalr1.cc:859 +#line 944 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectSQLi()); } -#line 1488 "seclang-parser.cc" // lalr1.cc:859 +#line 1493 "seclang-parser.cc" // lalr1.cc:847 break; case 39: -#line 944 "seclang-parser.yy" // lalr1.cc:859 +#line 948 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectXSS()); } -#line 1496 "seclang-parser.cc" // lalr1.cc:859 +#line 1501 "seclang-parser.cc" // lalr1.cc:847 break; case 40: -#line 948 "seclang-parser.yy" // lalr1.cc:859 +#line 952 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUrlEncoding()); } -#line 1504 "seclang-parser.cc" // lalr1.cc:859 +#line 1509 "seclang-parser.cc" // lalr1.cc:847 break; case 41: -#line 952 "seclang-parser.yy" // lalr1.cc:859 +#line 956 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUtf8Encoding()); } -#line 1512 "seclang-parser.cc" // lalr1.cc:859 +#line 1517 "seclang-parser.cc" // lalr1.cc:847 break; case 42: -#line 956 "seclang-parser.yy" // lalr1.cc:859 +#line 960 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::InspectFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1520 "seclang-parser.cc" // lalr1.cc:859 +#line 1525 "seclang-parser.cc" // lalr1.cc:847 break; case 43: -#line 960 "seclang-parser.yy" // lalr1.cc:859 +#line 964 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::FuzzyHash(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1528 "seclang-parser.cc" // lalr1.cc:859 +#line 1533 "seclang-parser.cc" // lalr1.cc:847 break; case 44: -#line 964 "seclang-parser.yy" // lalr1.cc:859 +#line 968 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateByteRange(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1536 "seclang-parser.cc" // lalr1.cc:859 +#line 1541 "seclang-parser.cc" // lalr1.cc:847 break; case 45: -#line 968 "seclang-parser.yy" // lalr1.cc:859 +#line 972 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateDTD(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1544 "seclang-parser.cc" // lalr1.cc:859 +#line 1549 "seclang-parser.cc" // lalr1.cc:847 break; case 46: -#line 972 "seclang-parser.yy" // lalr1.cc:859 +#line 976 "seclang-parser.yy" // lalr1.cc:847 { /* $$ = new operators::ValidateHash($1); */ OPERATOR_NOT_SUPPORTED("ValidateHash", yystack_[2].location); } -#line 1553 "seclang-parser.cc" // lalr1.cc:859 +#line 1558 "seclang-parser.cc" // lalr1.cc:847 break; case 47: -#line 977 "seclang-parser.yy" // lalr1.cc:859 +#line 981 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateSchema(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1561 "seclang-parser.cc" // lalr1.cc:859 +#line 1566 "seclang-parser.cc" // lalr1.cc:847 break; case 48: -#line 981 "seclang-parser.yy" // lalr1.cc:859 +#line 985 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1569 "seclang-parser.cc" // lalr1.cc:859 +#line 1574 "seclang-parser.cc" // lalr1.cc:847 break; case 49: -#line 985 "seclang-parser.yy" // lalr1.cc:859 +#line 989 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCPF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1577 "seclang-parser.cc" // lalr1.cc:859 +#line 1582 "seclang-parser.cc" // lalr1.cc:847 break; case 50: -#line 989 "seclang-parser.yy" // lalr1.cc:859 +#line 993 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifySSN(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1585 "seclang-parser.cc" // lalr1.cc:859 +#line 1590 "seclang-parser.cc" // lalr1.cc:847 break; case 51: -#line 993 "seclang-parser.yy" // lalr1.cc:859 +#line 997 "seclang-parser.yy" // lalr1.cc:847 { /* $$ = new operators::GsbLookup($1); */ OPERATOR_NOT_SUPPORTED("GsbLookup", yystack_[2].location); } -#line 1594 "seclang-parser.cc" // lalr1.cc:859 +#line 1599 "seclang-parser.cc" // lalr1.cc:847 break; case 52: -#line 998 "seclang-parser.yy" // lalr1.cc:859 +#line 1002 "seclang-parser.yy" // lalr1.cc:847 { /* $$ = new operators::Rsub($1); */ OPERATOR_NOT_SUPPORTED("Rsub", yystack_[2].location); } -#line 1603 "seclang-parser.cc" // lalr1.cc:859 +#line 1608 "seclang-parser.cc" // lalr1.cc:847 break; case 53: -#line 1003 "seclang-parser.yy" // lalr1.cc:859 +#line 1007 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Within(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1611 "seclang-parser.cc" // lalr1.cc:859 +#line 1616 "seclang-parser.cc" // lalr1.cc:847 break; case 54: -#line 1007 "seclang-parser.yy" // lalr1.cc:859 +#line 1011 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ContainsWord(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1619 "seclang-parser.cc" // lalr1.cc:859 +#line 1624 "seclang-parser.cc" // lalr1.cc:847 break; case 55: -#line 1011 "seclang-parser.yy" // lalr1.cc:859 +#line 1015 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Contains(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1627 "seclang-parser.cc" // lalr1.cc:859 +#line 1632 "seclang-parser.cc" // lalr1.cc:847 break; case 56: -#line 1015 "seclang-parser.yy" // lalr1.cc:859 +#line 1019 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::EndsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1635 "seclang-parser.cc" // lalr1.cc:859 +#line 1640 "seclang-parser.cc" // lalr1.cc:847 break; case 57: -#line 1019 "seclang-parser.yy" // lalr1.cc:859 +#line 1023 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Eq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1643 "seclang-parser.cc" // lalr1.cc:859 +#line 1648 "seclang-parser.cc" // lalr1.cc:847 break; case 58: -#line 1023 "seclang-parser.yy" // lalr1.cc:859 +#line 1027 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Ge(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1651 "seclang-parser.cc" // lalr1.cc:859 +#line 1656 "seclang-parser.cc" // lalr1.cc:847 break; case 59: -#line 1027 "seclang-parser.yy" // lalr1.cc:859 +#line 1031 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Gt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1659 "seclang-parser.cc" // lalr1.cc:859 +#line 1664 "seclang-parser.cc" // lalr1.cc:847 break; case 60: -#line 1031 "seclang-parser.yy" // lalr1.cc:859 +#line 1035 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatchF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1667 "seclang-parser.cc" // lalr1.cc:859 +#line 1672 "seclang-parser.cc" // lalr1.cc:847 break; case 61: -#line 1035 "seclang-parser.yy" // lalr1.cc:859 +#line 1039 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1675 "seclang-parser.cc" // lalr1.cc:859 +#line 1680 "seclang-parser.cc" // lalr1.cc:847 break; case 62: -#line 1039 "seclang-parser.yy" // lalr1.cc:859 +#line 1043 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Le(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1683 "seclang-parser.cc" // lalr1.cc:859 +#line 1688 "seclang-parser.cc" // lalr1.cc:847 break; case 63: -#line 1043 "seclang-parser.yy" // lalr1.cc:859 +#line 1047 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Lt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1691 "seclang-parser.cc" // lalr1.cc:859 +#line 1696 "seclang-parser.cc" // lalr1.cc:847 break; case 64: -#line 1047 "seclang-parser.yy" // lalr1.cc:859 +#line 1051 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::PmFromFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1699 "seclang-parser.cc" // lalr1.cc:859 +#line 1704 "seclang-parser.cc" // lalr1.cc:847 break; case 65: -#line 1051 "seclang-parser.yy" // lalr1.cc:859 +#line 1055 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Pm(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1707 "seclang-parser.cc" // lalr1.cc:859 +#line 1712 "seclang-parser.cc" // lalr1.cc:847 break; case 66: -#line 1055 "seclang-parser.yy" // lalr1.cc:859 +#line 1059 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rbl(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1715 "seclang-parser.cc" // lalr1.cc:859 +#line 1720 "seclang-parser.cc" // lalr1.cc:847 break; case 67: -#line 1059 "seclang-parser.yy" // lalr1.cc:859 +#line 1063 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1723 "seclang-parser.cc" // lalr1.cc:859 +#line 1728 "seclang-parser.cc" // lalr1.cc:847 break; case 68: -#line 1063 "seclang-parser.yy" // lalr1.cc:859 +#line 1067 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrEq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1731 "seclang-parser.cc" // lalr1.cc:859 +#line 1736 "seclang-parser.cc" // lalr1.cc:847 break; case 69: -#line 1067 "seclang-parser.yy" // lalr1.cc:859 +#line 1071 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1739 "seclang-parser.cc" // lalr1.cc:859 +#line 1744 "seclang-parser.cc" // lalr1.cc:847 break; case 70: -#line 1071 "seclang-parser.yy" // lalr1.cc:859 +#line 1075 "seclang-parser.yy" // lalr1.cc:847 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::BeginsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1747 "seclang-parser.cc" // lalr1.cc:859 +#line 1752 "seclang-parser.cc" // lalr1.cc:847 break; case 71: -#line 1075 "seclang-parser.yy" // lalr1.cc:859 +#line 1079 "seclang-parser.yy" // lalr1.cc:847 { #ifdef WITH_GEOIP OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::GeoLookup()); @@ -1758,11 +1763,11 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 1762 "seclang-parser.cc" // lalr1.cc:859 +#line 1767 "seclang-parser.cc" // lalr1.cc:847 break; case 73: -#line 1090 "seclang-parser.yy" // lalr1.cc:859 +#line 1094 "seclang-parser.yy" // lalr1.cc:847 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1786,11 +1791,11 @@ namespace yy { YYERROR; } } -#line 1790 "seclang-parser.cc" // lalr1.cc:859 +#line 1795 "seclang-parser.cc" // lalr1.cc:847 break; case 74: -#line 1114 "seclang-parser.yy" // lalr1.cc:859 +#line 1118 "seclang-parser.yy" // lalr1.cc:847 { std::vector *v = new std::vector(); for (auto &i : *yystack_[1].value.as< std::unique_ptr > > > ().get()) { @@ -1809,11 +1814,11 @@ namespace yy { YYERROR; } } -#line 1813 "seclang-parser.cc" // lalr1.cc:859 +#line 1818 "seclang-parser.cc" // lalr1.cc:847 break; case 75: -#line 1133 "seclang-parser.yy" // lalr1.cc:859 +#line 1137 "seclang-parser.yy" // lalr1.cc:847 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1828,11 +1833,11 @@ namespace yy { ); driver.addSecAction(rule); } -#line 1832 "seclang-parser.cc" // lalr1.cc:859 +#line 1837 "seclang-parser.cc" // lalr1.cc:847 break; case 76: -#line 1148 "seclang-parser.yy" // lalr1.cc:859 +#line 1152 "seclang-parser.yy" // lalr1.cc:847 { std::string err; std::vector *a = new std::vector(); @@ -1856,11 +1861,11 @@ namespace yy { YYERROR; } } -#line 1860 "seclang-parser.cc" // lalr1.cc:859 +#line 1865 "seclang-parser.cc" // lalr1.cc:847 break; case 77: -#line 1172 "seclang-parser.yy" // lalr1.cc:859 +#line 1176 "seclang-parser.yy" // lalr1.cc:847 { bool hasDisruptive = false; std::vector *actions = new std::vector(); @@ -1916,75 +1921,75 @@ namespace yy { delete actions; } -#line 1920 "seclang-parser.cc" // lalr1.cc:859 +#line 1925 "seclang-parser.cc" // lalr1.cc:847 break; case 78: -#line 1228 "seclang-parser.yy" // lalr1.cc:859 +#line 1232 "seclang-parser.yy" // lalr1.cc:847 { driver.addSecMarker(modsecurity::utils::string::removeBracketsIfNeeded(yystack_[0].value.as< std::string > ())); } -#line 1928 "seclang-parser.cc" // lalr1.cc:859 +#line 1933 "seclang-parser.cc" // lalr1.cc:847 break; case 79: -#line 1232 "seclang-parser.yy" // lalr1.cc:859 +#line 1236 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secRuleEngine = modsecurity::Rules::DisabledRuleEngine; } -#line 1936 "seclang-parser.cc" // lalr1.cc:859 +#line 1941 "seclang-parser.cc" // lalr1.cc:847 break; case 80: -#line 1236 "seclang-parser.yy" // lalr1.cc:859 +#line 1240 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secRuleEngine = modsecurity::Rules::EnabledRuleEngine; } -#line 1944 "seclang-parser.cc" // lalr1.cc:859 +#line 1949 "seclang-parser.cc" // lalr1.cc:847 break; case 81: -#line 1240 "seclang-parser.yy" // lalr1.cc:859 +#line 1244 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secRuleEngine = modsecurity::Rules::DetectionOnlyRuleEngine; } -#line 1952 "seclang-parser.cc" // lalr1.cc:859 +#line 1957 "seclang-parser.cc" // lalr1.cc:847 break; case 82: -#line 1244 "seclang-parser.yy" // lalr1.cc:859 +#line 1248 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1960 "seclang-parser.cc" // lalr1.cc:859 +#line 1965 "seclang-parser.cc" // lalr1.cc:847 break; case 83: -#line 1248 "seclang-parser.yy" // lalr1.cc:859 +#line 1252 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1968 "seclang-parser.cc" // lalr1.cc:859 +#line 1973 "seclang-parser.cc" // lalr1.cc:847 break; case 84: -#line 1252 "seclang-parser.yy" // lalr1.cc:859 +#line 1256 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1976 "seclang-parser.cc" // lalr1.cc:859 +#line 1981 "seclang-parser.cc" // lalr1.cc:847 break; case 85: -#line 1256 "seclang-parser.yy" // lalr1.cc:859 +#line 1260 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1984 "seclang-parser.cc" // lalr1.cc:859 +#line 1989 "seclang-parser.cc" // lalr1.cc:847 break; case 86: -#line 1260 "seclang-parser.yy" // lalr1.cc:859 +#line 1264 "seclang-parser.yy" // lalr1.cc:847 { if (yystack_[0].value.as< std::string > ().length() != 1) { driver.error(yystack_[1].location, "Argument separator should be set to a single character."); @@ -1993,259 +1998,259 @@ namespace yy { driver.m_secArgumentSeparator.m_value = yystack_[0].value.as< std::string > (); driver.m_secArgumentSeparator.m_set = true; } -#line 1997 "seclang-parser.cc" // lalr1.cc:859 +#line 2002 "seclang-parser.cc" // lalr1.cc:847 break; case 87: -#line 1269 "seclang-parser.yy" // lalr1.cc:859 +#line 1273 "seclang-parser.yy" // lalr1.cc:847 { driver.m_components.push_back(yystack_[0].value.as< std::string > ()); } -#line 2005 "seclang-parser.cc" // lalr1.cc:859 +#line 2010 "seclang-parser.cc" // lalr1.cc:847 break; case 88: -#line 1273 "seclang-parser.yy" // lalr1.cc:859 +#line 1277 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecConnEngine is not yet supported."); YYERROR; } -#line 2014 "seclang-parser.cc" // lalr1.cc:859 +#line 2019 "seclang-parser.cc" // lalr1.cc:847 break; case 89: -#line 1278 "seclang-parser.yy" // lalr1.cc:859 +#line 1282 "seclang-parser.yy" // lalr1.cc:847 { } -#line 2021 "seclang-parser.cc" // lalr1.cc:859 +#line 2026 "seclang-parser.cc" // lalr1.cc:847 break; case 90: -#line 1281 "seclang-parser.yy" // lalr1.cc:859 +#line 1285 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secWebAppId.m_value = yystack_[0].value.as< std::string > (); driver.m_secWebAppId.m_set = true; } -#line 2030 "seclang-parser.cc" // lalr1.cc:859 +#line 2035 "seclang-parser.cc" // lalr1.cc:847 break; case 91: -#line 1286 "seclang-parser.yy" // lalr1.cc:859 +#line 1290 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecServerSignature is not supported."); YYERROR; } -#line 2039 "seclang-parser.cc" // lalr1.cc:859 +#line 2044 "seclang-parser.cc" // lalr1.cc:847 break; case 92: -#line 1291 "seclang-parser.yy" // lalr1.cc:859 +#line 1295 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecCacheTransformations is not supported."); YYERROR; } -#line 2048 "seclang-parser.cc" // lalr1.cc:859 +#line 2053 "seclang-parser.cc" // lalr1.cc:847 break; case 93: -#line 1296 "seclang-parser.yy" // lalr1.cc:859 +#line 1300 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecDisableBackendCompression is not supported."); YYERROR; } -#line 2057 "seclang-parser.cc" // lalr1.cc:859 +#line 2062 "seclang-parser.cc" // lalr1.cc:847 break; case 94: -#line 1301 "seclang-parser.yy" // lalr1.cc:859 +#line 1305 "seclang-parser.yy" // lalr1.cc:847 { } -#line 2064 "seclang-parser.cc" // lalr1.cc:859 +#line 2069 "seclang-parser.cc" // lalr1.cc:847 break; case 95: -#line 1304 "seclang-parser.yy" // lalr1.cc:859 +#line 1308 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecContentInjection is not yet supported."); YYERROR; } -#line 2073 "seclang-parser.cc" // lalr1.cc:859 +#line 2078 "seclang-parser.cc" // lalr1.cc:847 break; case 96: -#line 1309 "seclang-parser.yy" // lalr1.cc:859 +#line 1313 "seclang-parser.yy" // lalr1.cc:847 { } -#line 2080 "seclang-parser.cc" // lalr1.cc:859 +#line 2085 "seclang-parser.cc" // lalr1.cc:847 break; case 97: -#line 1312 "seclang-parser.yy" // lalr1.cc:859 +#line 1316 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecChrootDir is not supported."); YYERROR; } -#line 2089 "seclang-parser.cc" // lalr1.cc:859 +#line 2094 "seclang-parser.cc" // lalr1.cc:847 break; case 98: -#line 1317 "seclang-parser.yy" // lalr1.cc:859 +#line 1321 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecHashEngine is not yet supported."); YYERROR; } -#line 2098 "seclang-parser.cc" // lalr1.cc:859 +#line 2103 "seclang-parser.cc" // lalr1.cc:847 break; case 99: -#line 1322 "seclang-parser.yy" // lalr1.cc:859 +#line 1326 "seclang-parser.yy" // lalr1.cc:847 { } -#line 2105 "seclang-parser.cc" // lalr1.cc:859 +#line 2110 "seclang-parser.cc" // lalr1.cc:847 break; case 100: -#line 1325 "seclang-parser.yy" // lalr1.cc:859 +#line 1329 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecHashKey is not yet supported."); YYERROR; } -#line 2114 "seclang-parser.cc" // lalr1.cc:859 +#line 2119 "seclang-parser.cc" // lalr1.cc:847 break; case 101: -#line 1330 "seclang-parser.yy" // lalr1.cc:859 +#line 1334 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecHashParam is not yet supported."); YYERROR; } -#line 2123 "seclang-parser.cc" // lalr1.cc:859 +#line 2128 "seclang-parser.cc" // lalr1.cc:847 break; case 102: -#line 1335 "seclang-parser.yy" // lalr1.cc:859 +#line 1339 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecHashMethodRx is not yet supported."); YYERROR; } -#line 2132 "seclang-parser.cc" // lalr1.cc:859 +#line 2137 "seclang-parser.cc" // lalr1.cc:847 break; case 103: -#line 1340 "seclang-parser.yy" // lalr1.cc:859 +#line 1344 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecHashMethodPm is not yet supported."); YYERROR; } -#line 2141 "seclang-parser.cc" // lalr1.cc:859 +#line 2146 "seclang-parser.cc" // lalr1.cc:847 break; case 104: -#line 1345 "seclang-parser.yy" // lalr1.cc:859 +#line 1349 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecGsbLookupDb is not supported."); YYERROR; } -#line 2150 "seclang-parser.cc" // lalr1.cc:859 +#line 2155 "seclang-parser.cc" // lalr1.cc:847 break; case 105: -#line 1350 "seclang-parser.yy" // lalr1.cc:859 +#line 1354 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecGuardianLog is not supported."); YYERROR; } -#line 2159 "seclang-parser.cc" // lalr1.cc:859 +#line 2164 "seclang-parser.cc" // lalr1.cc:847 break; case 106: -#line 1355 "seclang-parser.yy" // lalr1.cc:859 +#line 1359 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecInterceptOnError is not yet supported."); YYERROR; } -#line 2168 "seclang-parser.cc" // lalr1.cc:859 +#line 2173 "seclang-parser.cc" // lalr1.cc:847 break; case 107: -#line 1360 "seclang-parser.yy" // lalr1.cc:859 +#line 1364 "seclang-parser.yy" // lalr1.cc:847 { } -#line 2175 "seclang-parser.cc" // lalr1.cc:859 +#line 2180 "seclang-parser.cc" // lalr1.cc:847 break; case 108: -#line 1363 "seclang-parser.yy" // lalr1.cc:859 +#line 1367 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecConnReadStateLimit is not yet supported."); YYERROR; } -#line 2184 "seclang-parser.cc" // lalr1.cc:859 +#line 2189 "seclang-parser.cc" // lalr1.cc:847 break; case 109: -#line 1368 "seclang-parser.yy" // lalr1.cc:859 +#line 1372 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecConnWriteStateLimit is not yet supported."); YYERROR; } -#line 2193 "seclang-parser.cc" // lalr1.cc:859 +#line 2198 "seclang-parser.cc" // lalr1.cc:847 break; case 110: -#line 1373 "seclang-parser.yy" // lalr1.cc:859 +#line 1377 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecSensorId is not yet supported."); YYERROR; } -#line 2202 "seclang-parser.cc" // lalr1.cc:859 +#line 2207 "seclang-parser.cc" // lalr1.cc:847 break; case 111: -#line 1378 "seclang-parser.yy" // lalr1.cc:859 +#line 1382 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[2].location, "SecRuleInheritance is not yet supported."); YYERROR; } -#line 2211 "seclang-parser.cc" // lalr1.cc:859 +#line 2216 "seclang-parser.cc" // lalr1.cc:847 break; case 112: -#line 1383 "seclang-parser.yy" // lalr1.cc:859 +#line 1387 "seclang-parser.yy" // lalr1.cc:847 { } -#line 2218 "seclang-parser.cc" // lalr1.cc:859 +#line 2223 "seclang-parser.cc" // lalr1.cc:847 break; case 113: -#line 1386 "seclang-parser.yy" // lalr1.cc:859 +#line 1390 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecRulePerfTime is not yet supported."); YYERROR; } -#line 2227 "seclang-parser.cc" // lalr1.cc:859 +#line 2232 "seclang-parser.cc" // lalr1.cc:847 break; case 114: -#line 1391 "seclang-parser.yy" // lalr1.cc:859 +#line 1395 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecStreamInBodyInspection is not supported."); YYERROR; } -#line 2236 "seclang-parser.cc" // lalr1.cc:859 +#line 2241 "seclang-parser.cc" // lalr1.cc:847 break; case 115: -#line 1396 "seclang-parser.yy" // lalr1.cc:859 +#line 1400 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecStreamOutBodyInspection is not supported."); YYERROR; } -#line 2245 "seclang-parser.cc" // lalr1.cc:859 +#line 2250 "seclang-parser.cc" // lalr1.cc:847 break; case 116: -#line 1401 "seclang-parser.yy" // lalr1.cc:859 +#line 1405 "seclang-parser.yy" // lalr1.cc:847 { std::string error; if (driver.m_exceptions.load(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2258,11 +2263,11 @@ namespace yy { YYERROR; } } -#line 2262 "seclang-parser.cc" // lalr1.cc:859 +#line 2267 "seclang-parser.cc" // lalr1.cc:847 break; case 117: -#line 1414 "seclang-parser.yy" // lalr1.cc:859 +#line 1418 "seclang-parser.yy" // lalr1.cc:847 { std::string error; if (driver.m_exceptions.loadRemoveRuleByTag(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2275,11 +2280,11 @@ namespace yy { YYERROR; } } -#line 2279 "seclang-parser.cc" // lalr1.cc:859 +#line 2284 "seclang-parser.cc" // lalr1.cc:847 break; case 118: -#line 1427 "seclang-parser.yy" // lalr1.cc:859 +#line 1431 "seclang-parser.yy" // lalr1.cc:847 { std::string error; if (driver.m_exceptions.loadRemoveRuleByMsg(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2292,11 +2297,11 @@ namespace yy { YYERROR; } } -#line 2296 "seclang-parser.cc" // lalr1.cc:859 +#line 2301 "seclang-parser.cc" // lalr1.cc:847 break; case 119: -#line 1440 "seclang-parser.yy" // lalr1.cc:859 +#line 1444 "seclang-parser.yy" // lalr1.cc:847 { std::string error; if (driver.m_exceptions.loadUpdateTargetByTag(yystack_[1].value.as< std::string > (), std::move(yystack_[0].value.as< std::unique_ptr > > > ()), &error) == false) { @@ -2309,11 +2314,11 @@ namespace yy { YYERROR; } } -#line 2313 "seclang-parser.cc" // lalr1.cc:859 +#line 2318 "seclang-parser.cc" // lalr1.cc:847 break; case 120: -#line 1453 "seclang-parser.yy" // lalr1.cc:859 +#line 1457 "seclang-parser.yy" // lalr1.cc:847 { std::string error; if (driver.m_exceptions.loadUpdateTargetByMsg(yystack_[1].value.as< std::string > (), std::move(yystack_[0].value.as< std::unique_ptr > > > ()), &error) == false) { @@ -2326,11 +2331,11 @@ namespace yy { YYERROR; } } -#line 2330 "seclang-parser.cc" // lalr1.cc:859 +#line 2335 "seclang-parser.cc" // lalr1.cc:847 break; case 121: -#line 1466 "seclang-parser.yy" // lalr1.cc:859 +#line 1470 "seclang-parser.yy" // lalr1.cc:847 { std::string error; double ruleId; @@ -2356,11 +2361,11 @@ namespace yy { YYERROR; } } -#line 2360 "seclang-parser.cc" // lalr1.cc:859 +#line 2365 "seclang-parser.cc" // lalr1.cc:847 break; case 122: -#line 1492 "seclang-parser.yy" // lalr1.cc:859 +#line 1496 "seclang-parser.yy" // lalr1.cc:847 { std::string error; double ruleId; @@ -2385,11 +2390,11 @@ namespace yy { driver.error(yystack_[2].location, "SecRuleUpdateActionById is not yet supported"); YYERROR; } -#line 2389 "seclang-parser.cc" // lalr1.cc:859 +#line 2394 "seclang-parser.cc" // lalr1.cc:847 break; case 123: -#line 1518 "seclang-parser.yy" // lalr1.cc:859 +#line 1522 "seclang-parser.yy" // lalr1.cc:847 { if (driver.m_debugLog != NULL) { driver.m_debugLog->setDebugLogLevel(atoi(yystack_[0].value.as< std::string > ().c_str())); @@ -2401,11 +2406,11 @@ namespace yy { YYERROR; } } -#line 2405 "seclang-parser.cc" // lalr1.cc:859 +#line 2410 "seclang-parser.cc" // lalr1.cc:847 break; case 124: -#line 1530 "seclang-parser.yy" // lalr1.cc:859 +#line 1534 "seclang-parser.yy" // lalr1.cc:847 { if (driver.m_debugLog != NULL) { std::string error; @@ -2424,11 +2429,11 @@ namespace yy { YYERROR; } } -#line 2428 "seclang-parser.cc" // lalr1.cc:859 +#line 2433 "seclang-parser.cc" // lalr1.cc:847 break; case 125: -#line 1550 "seclang-parser.yy" // lalr1.cc:859 +#line 1554 "seclang-parser.yy" // lalr1.cc:847 { #ifdef WITH_GEOIP std::string err; @@ -2455,29 +2460,29 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2459 "seclang-parser.cc" // lalr1.cc:859 +#line 2464 "seclang-parser.cc" // lalr1.cc:847 break; case 126: -#line 1578 "seclang-parser.yy" // lalr1.cc:859 +#line 1582 "seclang-parser.yy" // lalr1.cc:847 { driver.m_requestBodyLimit.m_set = true; driver.m_requestBodyLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2468 "seclang-parser.cc" // lalr1.cc:859 +#line 2473 "seclang-parser.cc" // lalr1.cc:847 break; case 127: -#line 1583 "seclang-parser.yy" // lalr1.cc:859 +#line 1587 "seclang-parser.yy" // lalr1.cc:847 { driver.m_requestBodyNoFilesLimit.m_set = true; driver.m_requestBodyNoFilesLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2477 "seclang-parser.cc" // lalr1.cc:859 +#line 2482 "seclang-parser.cc" // lalr1.cc:847 break; case 128: -#line 1588 "seclang-parser.yy" // lalr1.cc:859 +#line 1592 "seclang-parser.yy" // lalr1.cc:847 { std::stringstream ss; ss << "As of ModSecurity version 3.0, SecRequestBodyInMemoryLimit is no longer "; @@ -2486,68 +2491,68 @@ namespace yy { driver.error(yystack_[1].location, ss.str()); YYERROR; } -#line 2490 "seclang-parser.cc" // lalr1.cc:859 +#line 2495 "seclang-parser.cc" // lalr1.cc:847 break; case 129: -#line 1597 "seclang-parser.yy" // lalr1.cc:859 +#line 1601 "seclang-parser.yy" // lalr1.cc:847 { driver.m_responseBodyLimit.m_set = true; driver.m_responseBodyLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2499 "seclang-parser.cc" // lalr1.cc:859 +#line 2504 "seclang-parser.cc" // lalr1.cc:847 break; case 130: -#line 1602 "seclang-parser.yy" // lalr1.cc:859 +#line 1606 "seclang-parser.yy" // lalr1.cc:847 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2507 "seclang-parser.cc" // lalr1.cc:859 +#line 2512 "seclang-parser.cc" // lalr1.cc:847 break; case 131: -#line 1606 "seclang-parser.yy" // lalr1.cc:859 +#line 1610 "seclang-parser.yy" // lalr1.cc:847 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2515 "seclang-parser.cc" // lalr1.cc:859 +#line 2520 "seclang-parser.cc" // lalr1.cc:847 break; case 132: -#line 1610 "seclang-parser.yy" // lalr1.cc:859 +#line 1614 "seclang-parser.yy" // lalr1.cc:847 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2523 "seclang-parser.cc" // lalr1.cc:859 +#line 2528 "seclang-parser.cc" // lalr1.cc:847 break; case 133: -#line 1614 "seclang-parser.yy" // lalr1.cc:859 +#line 1618 "seclang-parser.yy" // lalr1.cc:847 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2531 "seclang-parser.cc" // lalr1.cc:859 +#line 2536 "seclang-parser.cc" // lalr1.cc:847 break; case 134: -#line 1618 "seclang-parser.yy" // lalr1.cc:859 +#line 1622 "seclang-parser.yy" // lalr1.cc:847 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::AbortOnFailedRemoteRulesAction; } -#line 2539 "seclang-parser.cc" // lalr1.cc:859 +#line 2544 "seclang-parser.cc" // lalr1.cc:847 break; case 135: -#line 1622 "seclang-parser.yy" // lalr1.cc:859 +#line 1626 "seclang-parser.yy" // lalr1.cc:847 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::WarnOnFailedRemoteRulesAction; } -#line 2547 "seclang-parser.cc" // lalr1.cc:859 +#line 2552 "seclang-parser.cc" // lalr1.cc:847 break; case 138: -#line 1636 "seclang-parser.yy" // lalr1.cc:859 +#line 1640 "seclang-parser.yy" // lalr1.cc:847 { std::istringstream buf(yystack_[0].value.as< std::string > ()); std::istream_iterator beg(buf), end; @@ -2559,37 +2564,37 @@ namespace yy { driver.m_responseBodyTypeToBeInspected.m_value.insert(*it); } } -#line 2563 "seclang-parser.cc" // lalr1.cc:859 +#line 2568 "seclang-parser.cc" // lalr1.cc:847 break; case 139: -#line 1648 "seclang-parser.yy" // lalr1.cc:859 +#line 1652 "seclang-parser.yy" // lalr1.cc:847 { driver.m_responseBodyTypeToBeInspected.m_set = true; driver.m_responseBodyTypeToBeInspected.m_clear = true; driver.m_responseBodyTypeToBeInspected.m_value.clear(); } -#line 2573 "seclang-parser.cc" // lalr1.cc:859 +#line 2578 "seclang-parser.cc" // lalr1.cc:847 break; case 140: -#line 1654 "seclang-parser.yy" // lalr1.cc:859 +#line 1658 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2581 "seclang-parser.cc" // lalr1.cc:859 +#line 2586 "seclang-parser.cc" // lalr1.cc:847 break; case 141: -#line 1658 "seclang-parser.yy" // lalr1.cc:859 +#line 1662 "seclang-parser.yy" // lalr1.cc:847 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2589 "seclang-parser.cc" // lalr1.cc:859 +#line 2594 "seclang-parser.cc" // lalr1.cc:847 break; case 142: -#line 1662 "seclang-parser.yy" // lalr1.cc:859 +#line 1666 "seclang-parser.yy" // lalr1.cc:847 { /* Parser error disabled to avoid breaking default installations with modsecurity.conf-recommended std::stringstream ss; @@ -2600,2356 +2605,2388 @@ namespace yy { YYERROR; */ } -#line 2604 "seclang-parser.cc" // lalr1.cc:859 +#line 2609 "seclang-parser.cc" // lalr1.cc:847 break; case 145: -#line 1683 "seclang-parser.yy" // lalr1.cc:859 +#line 1687 "seclang-parser.yy" // lalr1.cc:847 { if (atoi(yystack_[0].value.as< std::string > ().c_str()) == 1) { driver.error(yystack_[1].location, "SecCookieFormat 1 is not yet supported."); YYERROR; } } -#line 2615 "seclang-parser.cc" // lalr1.cc:859 +#line 2620 "seclang-parser.cc" // lalr1.cc:847 break; case 146: -#line 1690 "seclang-parser.yy" // lalr1.cc:859 +#line 1694 "seclang-parser.yy" // lalr1.cc:847 { driver.error(yystack_[1].location, "SecCookieV0Separator is not yet supported."); YYERROR; } -#line 2624 "seclang-parser.cc" // lalr1.cc:859 +#line 2629 "seclang-parser.cc" // lalr1.cc:847 break; case 149: -#line 1705 "seclang-parser.yy" // lalr1.cc:859 +#line 1709 "seclang-parser.yy" // lalr1.cc:847 { /* Parser error disabled to avoid breaking default CRS installations with crs-setup.conf-recommended driver.error(@0, "SecCollectionTimeout is not yet supported."); YYERROR; */ } -#line 2635 "seclang-parser.cc" // lalr1.cc:859 +#line 2640 "seclang-parser.cc" // lalr1.cc:847 break; case 150: -#line 1712 "seclang-parser.yy" // lalr1.cc:859 +#line 1716 "seclang-parser.yy" // lalr1.cc:847 { driver.m_httpblKey.m_set = true; driver.m_httpblKey.m_value = yystack_[0].value.as< std::string > (); } -#line 2644 "seclang-parser.cc" // lalr1.cc:859 +#line 2649 "seclang-parser.cc" // lalr1.cc:847 break; case 151: -#line 1720 "seclang-parser.yy" // lalr1.cc:859 +#line 1724 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 2652 "seclang-parser.cc" // lalr1.cc:859 +#line 2657 "seclang-parser.cc" // lalr1.cc:847 break; case 152: -#line 1724 "seclang-parser.yy" // lalr1.cc:859 +#line 1728 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 2660 "seclang-parser.cc" // lalr1.cc:859 +#line 2665 "seclang-parser.cc" // lalr1.cc:847 break; case 153: -#line 1731 "seclang-parser.yy" // lalr1.cc:859 +#line 1735 "seclang-parser.yy" // lalr1.cc:847 { yystack_[2].value.as< std::unique_ptr > > > ()->push_back(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[2].value.as< std::unique_ptr > > > ()); } -#line 2669 "seclang-parser.cc" // lalr1.cc:859 +#line 2674 "seclang-parser.cc" // lalr1.cc:847 break; case 154: -#line 1736 "seclang-parser.yy" // lalr1.cc:859 +#line 1740 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr c(new VariableModificatorExclusion(std::move(yystack_[0].value.as< std::unique_ptr > ()))); yystack_[3].value.as< std::unique_ptr > > > ()->push_back(std::move(c)); yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[3].value.as< std::unique_ptr > > > ()); } -#line 2679 "seclang-parser.cc" // lalr1.cc:859 +#line 2684 "seclang-parser.cc" // lalr1.cc:847 break; case 155: -#line 1742 "seclang-parser.yy" // lalr1.cc:859 +#line 1746 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr c(new VariableModificatorCount(std::move(yystack_[0].value.as< std::unique_ptr > ()))); yystack_[3].value.as< std::unique_ptr > > > ()->push_back(std::move(c)); yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[3].value.as< std::unique_ptr > > > ()); } -#line 2689 "seclang-parser.cc" // lalr1.cc:859 +#line 2694 "seclang-parser.cc" // lalr1.cc:847 break; case 156: -#line 1748 "seclang-parser.yy" // lalr1.cc:859 +#line 1752 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr>> b(new std::vector>()); b->push_back(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > > > () = std::move(b); } -#line 2699 "seclang-parser.cc" // lalr1.cc:859 +#line 2704 "seclang-parser.cc" // lalr1.cc:847 break; case 157: -#line 1754 "seclang-parser.yy" // lalr1.cc:859 +#line 1758 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr>> b(new std::vector>()); std::unique_ptr c(new VariableModificatorExclusion(std::move(yystack_[0].value.as< std::unique_ptr > ()))); b->push_back(std::move(c)); yylhs.value.as< std::unique_ptr > > > () = std::move(b); } -#line 2710 "seclang-parser.cc" // lalr1.cc:859 +#line 2715 "seclang-parser.cc" // lalr1.cc:847 break; case 158: -#line 1761 "seclang-parser.yy" // lalr1.cc:859 +#line 1765 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr>> b(new std::vector>()); std::unique_ptr c(new VariableModificatorCount(std::move(yystack_[0].value.as< std::unique_ptr > ()))); b->push_back(std::move(c)); yylhs.value.as< std::unique_ptr > > > () = std::move(b); } -#line 2721 "seclang-parser.cc" // lalr1.cc:859 +#line 2726 "seclang-parser.cc" // lalr1.cc:847 break; case 159: -#line 1771 "seclang-parser.yy" // lalr1.cc:859 +#line 1775 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2729 "seclang-parser.cc" // lalr1.cc:859 +#line 2734 "seclang-parser.cc" // lalr1.cc:847 break; case 160: -#line 1775 "seclang-parser.yy" // lalr1.cc:859 +#line 1779 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2737 "seclang-parser.cc" // lalr1.cc:859 +#line 2742 "seclang-parser.cc" // lalr1.cc:847 break; case 161: -#line 1779 "seclang-parser.yy" // lalr1.cc:859 +#line 1783 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_NoDictElement()); } -#line 2745 "seclang-parser.cc" // lalr1.cc:859 +#line 2750 "seclang-parser.cc" // lalr1.cc:847 break; case 162: -#line 1783 "seclang-parser.yy" // lalr1.cc:859 +#line 1787 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2753 "seclang-parser.cc" // lalr1.cc:859 +#line 2758 "seclang-parser.cc" // lalr1.cc:847 break; case 163: -#line 1787 "seclang-parser.yy" // lalr1.cc:859 +#line 1791 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2761 "seclang-parser.cc" // lalr1.cc:859 +#line 2766 "seclang-parser.cc" // lalr1.cc:847 break; case 164: -#line 1791 "seclang-parser.yy" // lalr1.cc:859 +#line 1795 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_NoDictElement()); } -#line 2769 "seclang-parser.cc" // lalr1.cc:859 +#line 2774 "seclang-parser.cc" // lalr1.cc:847 break; case 165: -#line 1795 "seclang-parser.yy" // lalr1.cc:859 +#line 1799 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2777 "seclang-parser.cc" // lalr1.cc:859 +#line 2782 "seclang-parser.cc" // lalr1.cc:847 break; case 166: -#line 1799 "seclang-parser.yy" // lalr1.cc:859 +#line 1803 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2785 "seclang-parser.cc" // lalr1.cc:859 +#line 2790 "seclang-parser.cc" // lalr1.cc:847 break; case 167: -#line 1803 "seclang-parser.yy" // lalr1.cc:859 +#line 1807 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_NoDictElement()); } -#line 2793 "seclang-parser.cc" // lalr1.cc:859 +#line 2798 "seclang-parser.cc" // lalr1.cc:847 break; case 168: -#line 1807 "seclang-parser.yy" // lalr1.cc:859 +#line 1811 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2801 "seclang-parser.cc" // lalr1.cc:859 +#line 2806 "seclang-parser.cc" // lalr1.cc:847 break; case 169: -#line 1811 "seclang-parser.yy" // lalr1.cc:859 +#line 1815 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2809 "seclang-parser.cc" // lalr1.cc:859 +#line 2814 "seclang-parser.cc" // lalr1.cc:847 break; case 170: -#line 1815 "seclang-parser.yy" // lalr1.cc:859 +#line 1819 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_NoDictElement()); } -#line 2817 "seclang-parser.cc" // lalr1.cc:859 +#line 2822 "seclang-parser.cc" // lalr1.cc:847 break; case 171: -#line 1819 "seclang-parser.yy" // lalr1.cc:859 +#line 1823 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2825 "seclang-parser.cc" // lalr1.cc:859 +#line 2830 "seclang-parser.cc" // lalr1.cc:847 break; case 172: -#line 1823 "seclang-parser.yy" // lalr1.cc:859 +#line 1827 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2833 "seclang-parser.cc" // lalr1.cc:859 +#line 2838 "seclang-parser.cc" // lalr1.cc:847 break; case 173: -#line 1827 "seclang-parser.yy" // lalr1.cc:859 +#line 1831 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_NoDictElement()); } -#line 2841 "seclang-parser.cc" // lalr1.cc:859 +#line 2846 "seclang-parser.cc" // lalr1.cc:847 break; case 174: -#line 1831 "seclang-parser.yy" // lalr1.cc:859 +#line 1835 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2849 "seclang-parser.cc" // lalr1.cc:859 +#line 2854 "seclang-parser.cc" // lalr1.cc:847 break; case 175: -#line 1835 "seclang-parser.yy" // lalr1.cc:859 +#line 1839 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2857 "seclang-parser.cc" // lalr1.cc:859 +#line 2862 "seclang-parser.cc" // lalr1.cc:847 break; case 176: -#line 1839 "seclang-parser.yy" // lalr1.cc:859 +#line 1843 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_NoDictElement()); } -#line 2865 "seclang-parser.cc" // lalr1.cc:859 +#line 2870 "seclang-parser.cc" // lalr1.cc:847 break; case 177: -#line 1843 "seclang-parser.yy" // lalr1.cc:859 +#line 1847 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2873 "seclang-parser.cc" // lalr1.cc:859 +#line 2878 "seclang-parser.cc" // lalr1.cc:847 break; case 178: -#line 1847 "seclang-parser.yy" // lalr1.cc:859 +#line 1851 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2881 "seclang-parser.cc" // lalr1.cc:859 +#line 2886 "seclang-parser.cc" // lalr1.cc:847 break; case 179: -#line 1851 "seclang-parser.yy" // lalr1.cc:859 +#line 1855 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_NoDictElement()); } -#line 2889 "seclang-parser.cc" // lalr1.cc:859 +#line 2894 "seclang-parser.cc" // lalr1.cc:847 break; case 180: -#line 1855 "seclang-parser.yy" // lalr1.cc:859 +#line 1859 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2897 "seclang-parser.cc" // lalr1.cc:859 +#line 2902 "seclang-parser.cc" // lalr1.cc:847 break; case 181: -#line 1859 "seclang-parser.yy" // lalr1.cc:859 +#line 1863 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2905 "seclang-parser.cc" // lalr1.cc:859 +#line 2910 "seclang-parser.cc" // lalr1.cc:847 break; case 182: -#line 1863 "seclang-parser.yy" // lalr1.cc:859 +#line 1867 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_NoDictElement()); } -#line 2913 "seclang-parser.cc" // lalr1.cc:859 +#line 2918 "seclang-parser.cc" // lalr1.cc:847 break; case 183: -#line 1867 "seclang-parser.yy" // lalr1.cc:859 +#line 1871 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2921 "seclang-parser.cc" // lalr1.cc:859 +#line 2926 "seclang-parser.cc" // lalr1.cc:847 break; case 184: -#line 1871 "seclang-parser.yy" // lalr1.cc:859 +#line 1875 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2929 "seclang-parser.cc" // lalr1.cc:859 +#line 2934 "seclang-parser.cc" // lalr1.cc:847 break; case 185: -#line 1875 "seclang-parser.yy" // lalr1.cc:859 +#line 1879 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_NoDictElement()); } -#line 2937 "seclang-parser.cc" // lalr1.cc:859 +#line 2942 "seclang-parser.cc" // lalr1.cc:847 break; case 186: -#line 1879 "seclang-parser.yy" // lalr1.cc:859 +#line 1883 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2945 "seclang-parser.cc" // lalr1.cc:859 +#line 2950 "seclang-parser.cc" // lalr1.cc:847 break; case 187: -#line 1883 "seclang-parser.yy" // lalr1.cc:859 +#line 1887 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2953 "seclang-parser.cc" // lalr1.cc:859 +#line 2958 "seclang-parser.cc" // lalr1.cc:847 break; case 188: -#line 1887 "seclang-parser.yy" // lalr1.cc:859 +#line 1891 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_NoDictElement()); } -#line 2961 "seclang-parser.cc" // lalr1.cc:859 +#line 2966 "seclang-parser.cc" // lalr1.cc:847 break; case 189: -#line 1891 "seclang-parser.yy" // lalr1.cc:859 +#line 1895 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2969 "seclang-parser.cc" // lalr1.cc:859 +#line 2974 "seclang-parser.cc" // lalr1.cc:847 break; case 190: -#line 1895 "seclang-parser.yy" // lalr1.cc:859 +#line 1899 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2977 "seclang-parser.cc" // lalr1.cc:859 +#line 2982 "seclang-parser.cc" // lalr1.cc:847 break; case 191: -#line 1899 "seclang-parser.yy" // lalr1.cc:859 +#line 1903 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_NoDictElement()); } -#line 2985 "seclang-parser.cc" // lalr1.cc:859 +#line 2990 "seclang-parser.cc" // lalr1.cc:847 break; case 192: -#line 1903 "seclang-parser.yy" // lalr1.cc:859 +#line 1907 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2993 "seclang-parser.cc" // lalr1.cc:859 +#line 2998 "seclang-parser.cc" // lalr1.cc:847 break; case 193: -#line 1907 "seclang-parser.yy" // lalr1.cc:859 +#line 1911 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3001 "seclang-parser.cc" // lalr1.cc:859 +#line 3006 "seclang-parser.cc" // lalr1.cc:847 break; case 194: -#line 1911 "seclang-parser.yy" // lalr1.cc:859 +#line 1915 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_NoDictElement()); } -#line 3009 "seclang-parser.cc" // lalr1.cc:859 +#line 3014 "seclang-parser.cc" // lalr1.cc:847 break; case 195: -#line 1915 "seclang-parser.yy" // lalr1.cc:859 +#line 1919 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3017 "seclang-parser.cc" // lalr1.cc:859 +#line 3022 "seclang-parser.cc" // lalr1.cc:847 break; case 196: -#line 1919 "seclang-parser.yy" // lalr1.cc:859 +#line 1923 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3025 "seclang-parser.cc" // lalr1.cc:859 +#line 3030 "seclang-parser.cc" // lalr1.cc:847 break; case 197: -#line 1923 "seclang-parser.yy" // lalr1.cc:859 +#line 1927 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_NoDictElement()); } -#line 3033 "seclang-parser.cc" // lalr1.cc:859 +#line 3038 "seclang-parser.cc" // lalr1.cc:847 break; case 198: -#line 1927 "seclang-parser.yy" // lalr1.cc:859 +#line 1931 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3041 "seclang-parser.cc" // lalr1.cc:859 +#line 3046 "seclang-parser.cc" // lalr1.cc:847 break; case 199: -#line 1931 "seclang-parser.yy" // lalr1.cc:859 +#line 1935 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3049 "seclang-parser.cc" // lalr1.cc:859 +#line 3054 "seclang-parser.cc" // lalr1.cc:847 break; case 200: -#line 1935 "seclang-parser.yy" // lalr1.cc:859 +#line 1939 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_NoDictElement()); } -#line 3057 "seclang-parser.cc" // lalr1.cc:859 +#line 3062 "seclang-parser.cc" // lalr1.cc:847 break; case 201: -#line 1939 "seclang-parser.yy" // lalr1.cc:859 +#line 1943 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3065 "seclang-parser.cc" // lalr1.cc:859 +#line 3070 "seclang-parser.cc" // lalr1.cc:847 break; case 202: -#line 1943 "seclang-parser.yy" // lalr1.cc:859 +#line 1947 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3073 "seclang-parser.cc" // lalr1.cc:859 +#line 3078 "seclang-parser.cc" // lalr1.cc:847 break; case 203: -#line 1947 "seclang-parser.yy" // lalr1.cc:859 +#line 1951 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_NoDictElement()); } -#line 3081 "seclang-parser.cc" // lalr1.cc:859 +#line 3086 "seclang-parser.cc" // lalr1.cc:847 break; case 204: -#line 1951 "seclang-parser.yy" // lalr1.cc:859 +#line 1955 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3089 "seclang-parser.cc" // lalr1.cc:859 +#line 3094 "seclang-parser.cc" // lalr1.cc:847 break; case 205: -#line 1955 "seclang-parser.yy" // lalr1.cc:859 +#line 1959 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3097 "seclang-parser.cc" // lalr1.cc:859 +#line 3102 "seclang-parser.cc" // lalr1.cc:847 break; case 206: -#line 1959 "seclang-parser.yy" // lalr1.cc:859 +#line 1963 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_NoDictElement()); } -#line 3105 "seclang-parser.cc" // lalr1.cc:859 +#line 3110 "seclang-parser.cc" // lalr1.cc:847 break; case 207: -#line 1963 "seclang-parser.yy" // lalr1.cc:859 +#line 1967 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3113 "seclang-parser.cc" // lalr1.cc:859 +#line 3118 "seclang-parser.cc" // lalr1.cc:847 break; case 208: -#line 1967 "seclang-parser.yy" // lalr1.cc:859 +#line 1971 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3121 "seclang-parser.cc" // lalr1.cc:859 +#line 3126 "seclang-parser.cc" // lalr1.cc:847 break; case 209: -#line 1971 "seclang-parser.yy" // lalr1.cc:859 +#line 1975 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_NoDictElement()); } -#line 3129 "seclang-parser.cc" // lalr1.cc:859 +#line 3134 "seclang-parser.cc" // lalr1.cc:847 break; case 210: -#line 1975 "seclang-parser.yy" // lalr1.cc:859 +#line 1979 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV:" + yystack_[0].value.as< std::string > ())); } -#line 3137 "seclang-parser.cc" // lalr1.cc:859 +#line 3142 "seclang-parser.cc" // lalr1.cc:847 break; case 211: -#line 1979 "seclang-parser.yy" // lalr1.cc:859 +#line 1983 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV:" + yystack_[0].value.as< std::string > ())); } -#line 3145 "seclang-parser.cc" // lalr1.cc:859 +#line 3150 "seclang-parser.cc" // lalr1.cc:847 break; case 212: -#line 1983 "seclang-parser.yy" // lalr1.cc:859 +#line 1987 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV")); } -#line 3153 "seclang-parser.cc" // lalr1.cc:859 +#line 3158 "seclang-parser.cc" // lalr1.cc:847 break; case 213: -#line 1987 "seclang-parser.yy" // lalr1.cc:859 +#line 1991 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML("XML:" + yystack_[0].value.as< std::string > ())); } -#line 3161 "seclang-parser.cc" // lalr1.cc:859 +#line 3166 "seclang-parser.cc" // lalr1.cc:847 break; case 214: -#line 1991 "seclang-parser.yy" // lalr1.cc:859 +#line 1995 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML("XML:" + yystack_[0].value.as< std::string > ())); } -#line 3169 "seclang-parser.cc" // lalr1.cc:859 +#line 3174 "seclang-parser.cc" // lalr1.cc:847 break; case 215: -#line 1995 "seclang-parser.yy" // lalr1.cc:859 +#line 1999 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML_NoDictElement()); } -#line 3177 "seclang-parser.cc" // lalr1.cc:859 +#line 3182 "seclang-parser.cc" // lalr1.cc:847 break; case 216: -#line 1999 "seclang-parser.yy" // lalr1.cc:859 +#line 2003 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3185 "seclang-parser.cc" // lalr1.cc:859 +#line 3190 "seclang-parser.cc" // lalr1.cc:847 break; case 217: -#line 2003 "seclang-parser.yy" // lalr1.cc:859 +#line 2007 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3193 "seclang-parser.cc" // lalr1.cc:859 +#line 3198 "seclang-parser.cc" // lalr1.cc:847 break; case 218: -#line 2007 "seclang-parser.yy" // lalr1.cc:859 +#line 2011 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_NoDictElement()); } -#line 3201 "seclang-parser.cc" // lalr1.cc:859 +#line 3206 "seclang-parser.cc" // lalr1.cc:847 break; case 219: -#line 2011 "seclang-parser.yy" // lalr1.cc:859 +#line 2015 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3209 "seclang-parser.cc" // lalr1.cc:859 +#line 3214 "seclang-parser.cc" // lalr1.cc:847 break; case 220: -#line 2015 "seclang-parser.yy" // lalr1.cc:859 +#line 2019 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3217 "seclang-parser.cc" // lalr1.cc:859 +#line 3222 "seclang-parser.cc" // lalr1.cc:847 break; case 221: -#line 2019 "seclang-parser.yy" // lalr1.cc:859 +#line 2023 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3225 "seclang-parser.cc" // lalr1.cc:859 +#line 3230 "seclang-parser.cc" // lalr1.cc:847 break; case 222: -#line 2023 "seclang-parser.yy" // lalr1.cc:859 +#line 2027 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_NoDictElement()); } -#line 3233 "seclang-parser.cc" // lalr1.cc:859 +#line 3238 "seclang-parser.cc" // lalr1.cc:847 break; case 223: -#line 2027 "seclang-parser.yy" // lalr1.cc:859 +#line 2031 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3241 "seclang-parser.cc" // lalr1.cc:859 +#line 3246 "seclang-parser.cc" // lalr1.cc:847 break; case 224: -#line 2031 "seclang-parser.yy" // lalr1.cc:859 +#line 2035 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3249 "seclang-parser.cc" // lalr1.cc:859 +#line 3254 "seclang-parser.cc" // lalr1.cc:847 break; case 225: -#line 2035 "seclang-parser.yy" // lalr1.cc:859 +#line 2039 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3257 "seclang-parser.cc" // lalr1.cc:859 +#line 3262 "seclang-parser.cc" // lalr1.cc:847 break; case 226: -#line 2039 "seclang-parser.yy" // lalr1.cc:859 +#line 2043 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_NoDictElement()); } -#line 3265 "seclang-parser.cc" // lalr1.cc:859 +#line 3270 "seclang-parser.cc" // lalr1.cc:847 break; case 227: -#line 2043 "seclang-parser.yy" // lalr1.cc:859 +#line 2047 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3273 "seclang-parser.cc" // lalr1.cc:859 +#line 3278 "seclang-parser.cc" // lalr1.cc:847 break; case 228: -#line 2047 "seclang-parser.yy" // lalr1.cc:859 +#line 2051 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3281 "seclang-parser.cc" // lalr1.cc:859 +#line 3286 "seclang-parser.cc" // lalr1.cc:847 break; case 229: -#line 2051 "seclang-parser.yy" // lalr1.cc:859 +#line 2055 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3289 "seclang-parser.cc" // lalr1.cc:859 +#line 3294 "seclang-parser.cc" // lalr1.cc:847 break; case 230: -#line 2055 "seclang-parser.yy" // lalr1.cc:859 +#line 2059 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_NoDictElement()); } -#line 3297 "seclang-parser.cc" // lalr1.cc:859 +#line 3302 "seclang-parser.cc" // lalr1.cc:847 break; case 231: -#line 2059 "seclang-parser.yy" // lalr1.cc:859 +#line 2063 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3305 "seclang-parser.cc" // lalr1.cc:859 +#line 3310 "seclang-parser.cc" // lalr1.cc:847 break; case 232: -#line 2063 "seclang-parser.yy" // lalr1.cc:859 +#line 2067 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3313 "seclang-parser.cc" // lalr1.cc:859 +#line 3318 "seclang-parser.cc" // lalr1.cc:847 break; case 233: -#line 2067 "seclang-parser.yy" // lalr1.cc:859 +#line 2071 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3321 "seclang-parser.cc" // lalr1.cc:859 +#line 3326 "seclang-parser.cc" // lalr1.cc:847 break; case 234: -#line 2071 "seclang-parser.yy" // lalr1.cc:859 +#line 2075 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_NoDictElement()); } -#line 3329 "seclang-parser.cc" // lalr1.cc:859 +#line 3334 "seclang-parser.cc" // lalr1.cc:847 break; case 235: -#line 2075 "seclang-parser.yy" // lalr1.cc:859 +#line 2079 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3337 "seclang-parser.cc" // lalr1.cc:859 +#line 3342 "seclang-parser.cc" // lalr1.cc:847 break; case 236: -#line 2079 "seclang-parser.yy" // lalr1.cc:859 +#line 2083 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3345 "seclang-parser.cc" // lalr1.cc:859 +#line 3350 "seclang-parser.cc" // lalr1.cc:847 break; case 237: -#line 2083 "seclang-parser.yy" // lalr1.cc:859 +#line 2087 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3353 "seclang-parser.cc" // lalr1.cc:859 +#line 3358 "seclang-parser.cc" // lalr1.cc:847 break; case 238: -#line 2087 "seclang-parser.yy" // lalr1.cc:859 +#line 2091 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_NoDictElement()); } -#line 3361 "seclang-parser.cc" // lalr1.cc:859 +#line 3366 "seclang-parser.cc" // lalr1.cc:847 break; case 239: -#line 2091 "seclang-parser.yy" // lalr1.cc:859 +#line 2095 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3369 "seclang-parser.cc" // lalr1.cc:859 +#line 3374 "seclang-parser.cc" // lalr1.cc:847 break; case 240: -#line 2095 "seclang-parser.yy" // lalr1.cc:859 +#line 2099 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3377 "seclang-parser.cc" // lalr1.cc:859 +#line 3382 "seclang-parser.cc" // lalr1.cc:847 break; case 241: -#line 2099 "seclang-parser.yy" // lalr1.cc:859 +#line 2103 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3385 "seclang-parser.cc" // lalr1.cc:859 +#line 3390 "seclang-parser.cc" // lalr1.cc:847 break; case 242: -#line 2103 "seclang-parser.yy" // lalr1.cc:859 +#line 2107 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_NoDictElement()); } -#line 3393 "seclang-parser.cc" // lalr1.cc:859 +#line 3398 "seclang-parser.cc" // lalr1.cc:847 break; case 243: -#line 2107 "seclang-parser.yy" // lalr1.cc:859 +#line 2111 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3401 "seclang-parser.cc" // lalr1.cc:859 +#line 3406 "seclang-parser.cc" // lalr1.cc:847 break; case 244: -#line 2111 "seclang-parser.yy" // lalr1.cc:859 +#line 2115 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3409 "seclang-parser.cc" // lalr1.cc:859 +#line 3414 "seclang-parser.cc" // lalr1.cc:847 break; case 245: -#line 2115 "seclang-parser.yy" // lalr1.cc:859 +#line 2119 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_NoDictElement()); } -#line 3417 "seclang-parser.cc" // lalr1.cc:859 +#line 3422 "seclang-parser.cc" // lalr1.cc:847 break; case 246: -#line 2119 "seclang-parser.yy" // lalr1.cc:859 +#line 2123 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3425 "seclang-parser.cc" // lalr1.cc:859 +#line 3430 "seclang-parser.cc" // lalr1.cc:847 break; case 247: -#line 2123 "seclang-parser.yy" // lalr1.cc:859 +#line 2127 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3433 "seclang-parser.cc" // lalr1.cc:859 +#line 3438 "seclang-parser.cc" // lalr1.cc:847 break; case 248: -#line 2127 "seclang-parser.yy" // lalr1.cc:859 +#line 2131 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_NoDictElement()); } -#line 3441 "seclang-parser.cc" // lalr1.cc:859 +#line 3446 "seclang-parser.cc" // lalr1.cc:847 break; case 249: -#line 2132 "seclang-parser.yy" // lalr1.cc:859 +#line 2136 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3449 "seclang-parser.cc" // lalr1.cc:859 +#line 3454 "seclang-parser.cc" // lalr1.cc:847 break; case 250: -#line 2136 "seclang-parser.yy" // lalr1.cc:859 +#line 2140 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3457 "seclang-parser.cc" // lalr1.cc:859 +#line 3462 "seclang-parser.cc" // lalr1.cc:847 break; case 251: -#line 2140 "seclang-parser.yy" // lalr1.cc:859 +#line 2144 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_NoDictElement()); } -#line 3465 "seclang-parser.cc" // lalr1.cc:859 +#line 3470 "seclang-parser.cc" // lalr1.cc:847 break; case 252: -#line 2145 "seclang-parser.yy" // lalr1.cc:859 +#line 2149 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3473 "seclang-parser.cc" // lalr1.cc:859 +#line 3478 "seclang-parser.cc" // lalr1.cc:847 break; case 253: -#line 2149 "seclang-parser.yy" // lalr1.cc:859 +#line 2153 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3481 "seclang-parser.cc" // lalr1.cc:859 +#line 3486 "seclang-parser.cc" // lalr1.cc:847 break; case 254: -#line 2153 "seclang-parser.yy" // lalr1.cc:859 +#line 2157 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_NoDictElement()); } -#line 3489 "seclang-parser.cc" // lalr1.cc:859 +#line 3494 "seclang-parser.cc" // lalr1.cc:847 break; case 255: -#line 2158 "seclang-parser.yy" // lalr1.cc:859 +#line 2162 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentType()); } -#line 3497 "seclang-parser.cc" // lalr1.cc:859 +#line 3502 "seclang-parser.cc" // lalr1.cc:847 break; case 256: -#line 2163 "seclang-parser.yy" // lalr1.cc:859 +#line 2167 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3505 "seclang-parser.cc" // lalr1.cc:859 +#line 3510 "seclang-parser.cc" // lalr1.cc:847 break; case 257: -#line 2167 "seclang-parser.yy" // lalr1.cc:859 +#line 2171 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3513 "seclang-parser.cc" // lalr1.cc:859 +#line 3518 "seclang-parser.cc" // lalr1.cc:847 break; case 258: -#line 2171 "seclang-parser.yy" // lalr1.cc:859 +#line 2175 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_NoDictElement()); } -#line 3521 "seclang-parser.cc" // lalr1.cc:859 +#line 3526 "seclang-parser.cc" // lalr1.cc:847 break; case 259: -#line 2175 "seclang-parser.yy" // lalr1.cc:859 +#line 2179 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsCombinedSize()); } -#line 3529 "seclang-parser.cc" // lalr1.cc:859 +#line 3534 "seclang-parser.cc" // lalr1.cc:847 break; case 260: -#line 2179 "seclang-parser.yy" // lalr1.cc:859 +#line 2183 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::AuthType()); } -#line 3537 "seclang-parser.cc" // lalr1.cc:859 +#line 3542 "seclang-parser.cc" // lalr1.cc:847 break; case 261: -#line 2183 "seclang-parser.yy" // lalr1.cc:859 +#line 2187 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesCombinedSize()); } -#line 3545 "seclang-parser.cc" // lalr1.cc:859 +#line 3550 "seclang-parser.cc" // lalr1.cc:847 break; case 262: -#line 2187 "seclang-parser.yy" // lalr1.cc:859 +#line 2191 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequest()); } -#line 3553 "seclang-parser.cc" // lalr1.cc:859 +#line 3558 "seclang-parser.cc" // lalr1.cc:847 break; case 263: -#line 2191 "seclang-parser.yy" // lalr1.cc:859 +#line 2195 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequestLength()); } -#line 3561 "seclang-parser.cc" // lalr1.cc:859 +#line 3566 "seclang-parser.cc" // lalr1.cc:847 break; case 264: -#line 2195 "seclang-parser.yy" // lalr1.cc:859 +#line 2199 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::InboundDataError()); } -#line 3569 "seclang-parser.cc" // lalr1.cc:859 +#line 3574 "seclang-parser.cc" // lalr1.cc:847 break; case 265: -#line 2199 "seclang-parser.yy" // lalr1.cc:859 +#line 2203 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVar()); } -#line 3577 "seclang-parser.cc" // lalr1.cc:859 +#line 3582 "seclang-parser.cc" // lalr1.cc:847 break; case 266: -#line 2203 "seclang-parser.yy" // lalr1.cc:859 +#line 2207 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarName()); } -#line 3585 "seclang-parser.cc" // lalr1.cc:859 +#line 3590 "seclang-parser.cc" // lalr1.cc:847 break; case 267: -#line 2207 "seclang-parser.yy" // lalr1.cc:859 +#line 2211 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryQuoted()); } -#line 3593 "seclang-parser.cc" // lalr1.cc:859 +#line 3598 "seclang-parser.cc" // lalr1.cc:847 break; case 268: -#line 2211 "seclang-parser.yy" // lalr1.cc:859 +#line 2215 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryWhiteSpace()); } -#line 3601 "seclang-parser.cc" // lalr1.cc:859 +#line 3606 "seclang-parser.cc" // lalr1.cc:847 break; case 269: -#line 2215 "seclang-parser.yy" // lalr1.cc:859 +#line 2219 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartCrlfLFLines()); } -#line 3609 "seclang-parser.cc" // lalr1.cc:859 +#line 3614 "seclang-parser.cc" // lalr1.cc:847 break; case 270: -#line 2219 "seclang-parser.yy" // lalr1.cc:859 +#line 2223 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateAfter()); } -#line 3617 "seclang-parser.cc" // lalr1.cc:859 +#line 3622 "seclang-parser.cc" // lalr1.cc:847 break; case 271: -#line 2223 "seclang-parser.yy" // lalr1.cc:859 +#line 2227 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateBefore()); } -#line 3625 "seclang-parser.cc" // lalr1.cc:859 +#line 3630 "seclang-parser.cc" // lalr1.cc:847 break; case 272: -#line 2227 "seclang-parser.yy" // lalr1.cc:859 +#line 2231 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartFileLimitExceeded()); } -#line 3633 "seclang-parser.cc" // lalr1.cc:859 +#line 3638 "seclang-parser.cc" // lalr1.cc:847 break; case 273: -#line 2231 "seclang-parser.yy" // lalr1.cc:859 +#line 2235 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartHeaderFolding()); } -#line 3641 "seclang-parser.cc" // lalr1.cc:859 +#line 3646 "seclang-parser.cc" // lalr1.cc:847 break; case 274: -#line 2235 "seclang-parser.yy" // lalr1.cc:859 +#line 2239 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidHeaderFolding()); } -#line 3649 "seclang-parser.cc" // lalr1.cc:859 +#line 3654 "seclang-parser.cc" // lalr1.cc:847 break; case 275: -#line 2239 "seclang-parser.yy" // lalr1.cc:859 +#line 2243 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidPart()); } -#line 3657 "seclang-parser.cc" // lalr1.cc:859 +#line 3662 "seclang-parser.cc" // lalr1.cc:847 break; case 276: -#line 2243 "seclang-parser.yy" // lalr1.cc:859 +#line 2247 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidQuoting()); } -#line 3665 "seclang-parser.cc" // lalr1.cc:859 +#line 3670 "seclang-parser.cc" // lalr1.cc:847 break; case 277: -#line 2247 "seclang-parser.yy" // lalr1.cc:859 +#line 2251 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartLFLine()); } -#line 3673 "seclang-parser.cc" // lalr1.cc:859 +#line 3678 "seclang-parser.cc" // lalr1.cc:847 break; case 278: -#line 2251 "seclang-parser.yy" // lalr1.cc:859 +#line 2255 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 3681 "seclang-parser.cc" // lalr1.cc:859 +#line 3686 "seclang-parser.cc" // lalr1.cc:847 break; case 279: -#line 2255 "seclang-parser.yy" // lalr1.cc:859 +#line 2259 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 3689 "seclang-parser.cc" // lalr1.cc:859 +#line 3694 "seclang-parser.cc" // lalr1.cc:847 break; case 280: -#line 2259 "seclang-parser.yy" // lalr1.cc:859 +#line 2263 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartStrictError()); } -#line 3697 "seclang-parser.cc" // lalr1.cc:859 +#line 3702 "seclang-parser.cc" // lalr1.cc:847 break; case 281: -#line 2263 "seclang-parser.yy" // lalr1.cc:859 +#line 2267 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartUnmatchedBoundary()); } -#line 3705 "seclang-parser.cc" // lalr1.cc:859 +#line 3710 "seclang-parser.cc" // lalr1.cc:847 break; case 282: -#line 2267 "seclang-parser.yy" // lalr1.cc:859 +#line 2271 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::OutboundDataError()); } -#line 3713 "seclang-parser.cc" // lalr1.cc:859 +#line 3718 "seclang-parser.cc" // lalr1.cc:847 break; case 283: -#line 2271 "seclang-parser.yy" // lalr1.cc:859 +#line 2275 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::PathInfo()); } -#line 3721 "seclang-parser.cc" // lalr1.cc:859 +#line 3726 "seclang-parser.cc" // lalr1.cc:847 break; case 284: -#line 2275 "seclang-parser.yy" // lalr1.cc:859 +#line 2279 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::QueryString()); } -#line 3729 "seclang-parser.cc" // lalr1.cc:859 +#line 3734 "seclang-parser.cc" // lalr1.cc:847 break; case 285: -#line 2279 "seclang-parser.yy" // lalr1.cc:859 +#line 2283 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteAddr()); } -#line 3737 "seclang-parser.cc" // lalr1.cc:859 +#line 3742 "seclang-parser.cc" // lalr1.cc:847 break; case 286: -#line 2283 "seclang-parser.yy" // lalr1.cc:859 +#line 2287 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteHost()); } -#line 3745 "seclang-parser.cc" // lalr1.cc:859 +#line 3750 "seclang-parser.cc" // lalr1.cc:847 break; case 287: -#line 2287 "seclang-parser.yy" // lalr1.cc:859 +#line 2291 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemotePort()); } -#line 3753 "seclang-parser.cc" // lalr1.cc:859 +#line 3758 "seclang-parser.cc" // lalr1.cc:847 break; case 288: -#line 2291 "seclang-parser.yy" // lalr1.cc:859 +#line 2295 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyError()); } -#line 3761 "seclang-parser.cc" // lalr1.cc:859 +#line 3766 "seclang-parser.cc" // lalr1.cc:847 break; case 289: -#line 2295 "seclang-parser.yy" // lalr1.cc:859 +#line 2299 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyErrorMsg()); } -#line 3769 "seclang-parser.cc" // lalr1.cc:859 +#line 3774 "seclang-parser.cc" // lalr1.cc:847 break; case 290: -#line 2299 "seclang-parser.yy" // lalr1.cc:859 +#line 2303 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessor()); } -#line 3777 "seclang-parser.cc" // lalr1.cc:859 +#line 3782 "seclang-parser.cc" // lalr1.cc:847 break; case 291: -#line 2303 "seclang-parser.yy" // lalr1.cc:859 +#line 2307 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorError()); } -#line 3785 "seclang-parser.cc" // lalr1.cc:859 +#line 3790 "seclang-parser.cc" // lalr1.cc:847 break; case 292: -#line 2307 "seclang-parser.yy" // lalr1.cc:859 +#line 2311 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorErrorMsg()); } -#line 3793 "seclang-parser.cc" // lalr1.cc:859 +#line 3798 "seclang-parser.cc" // lalr1.cc:847 break; case 293: -#line 2311 "seclang-parser.yy" // lalr1.cc:859 +#line 2315 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBasename()); } -#line 3801 "seclang-parser.cc" // lalr1.cc:859 +#line 3806 "seclang-parser.cc" // lalr1.cc:847 break; case 294: -#line 2315 "seclang-parser.yy" // lalr1.cc:859 +#line 2319 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBody()); } -#line 3809 "seclang-parser.cc" // lalr1.cc:859 +#line 3814 "seclang-parser.cc" // lalr1.cc:847 break; case 295: -#line 2319 "seclang-parser.yy" // lalr1.cc:859 +#line 2323 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBodyLength()); } -#line 3817 "seclang-parser.cc" // lalr1.cc:859 +#line 3822 "seclang-parser.cc" // lalr1.cc:847 break; case 296: -#line 2323 "seclang-parser.yy" // lalr1.cc:859 +#line 2327 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestFilename()); } -#line 3825 "seclang-parser.cc" // lalr1.cc:859 +#line 3830 "seclang-parser.cc" // lalr1.cc:847 break; case 297: -#line 2327 "seclang-parser.yy" // lalr1.cc:859 +#line 2331 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestLine()); } -#line 3833 "seclang-parser.cc" // lalr1.cc:859 +#line 3838 "seclang-parser.cc" // lalr1.cc:847 break; case 298: -#line 2331 "seclang-parser.yy" // lalr1.cc:859 +#line 2335 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestMethod()); } -#line 3841 "seclang-parser.cc" // lalr1.cc:859 +#line 3846 "seclang-parser.cc" // lalr1.cc:847 break; case 299: -#line 2335 "seclang-parser.yy" // lalr1.cc:859 +#line 2339 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestProtocol()); } -#line 3849 "seclang-parser.cc" // lalr1.cc:859 +#line 3854 "seclang-parser.cc" // lalr1.cc:847 break; case 300: -#line 2339 "seclang-parser.yy" // lalr1.cc:859 +#line 2343 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURI()); } -#line 3857 "seclang-parser.cc" // lalr1.cc:859 +#line 3862 "seclang-parser.cc" // lalr1.cc:847 break; case 301: -#line 2343 "seclang-parser.yy" // lalr1.cc:859 +#line 2347 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURIRaw()); } -#line 3865 "seclang-parser.cc" // lalr1.cc:859 +#line 3870 "seclang-parser.cc" // lalr1.cc:847 break; case 302: -#line 2347 "seclang-parser.yy" // lalr1.cc:859 +#line 2351 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseBody()); } -#line 3873 "seclang-parser.cc" // lalr1.cc:859 +#line 3878 "seclang-parser.cc" // lalr1.cc:847 break; case 303: -#line 2351 "seclang-parser.yy" // lalr1.cc:859 +#line 2355 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentLength()); } -#line 3881 "seclang-parser.cc" // lalr1.cc:859 +#line 3886 "seclang-parser.cc" // lalr1.cc:847 break; case 304: -#line 2355 "seclang-parser.yy" // lalr1.cc:859 +#line 2359 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseProtocol()); } -#line 3889 "seclang-parser.cc" // lalr1.cc:859 +#line 3894 "seclang-parser.cc" // lalr1.cc:847 break; case 305: -#line 2359 "seclang-parser.yy" // lalr1.cc:859 +#line 2363 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseStatus()); } -#line 3897 "seclang-parser.cc" // lalr1.cc:859 +#line 3902 "seclang-parser.cc" // lalr1.cc:847 break; case 306: -#line 2363 "seclang-parser.yy" // lalr1.cc:859 +#line 2367 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerAddr()); } -#line 3905 "seclang-parser.cc" // lalr1.cc:859 +#line 3910 "seclang-parser.cc" // lalr1.cc:847 break; case 307: -#line 2367 "seclang-parser.yy" // lalr1.cc:859 +#line 2371 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerName()); } -#line 3913 "seclang-parser.cc" // lalr1.cc:859 +#line 3918 "seclang-parser.cc" // lalr1.cc:847 break; case 308: -#line 2371 "seclang-parser.yy" // lalr1.cc:859 +#line 2375 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerPort()); } -#line 3921 "seclang-parser.cc" // lalr1.cc:859 +#line 3926 "seclang-parser.cc" // lalr1.cc:847 break; case 309: -#line 2375 "seclang-parser.yy" // lalr1.cc:859 +#line 2379 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::SessionID()); } -#line 3929 "seclang-parser.cc" // lalr1.cc:859 +#line 3934 "seclang-parser.cc" // lalr1.cc:847 break; case 310: -#line 2379 "seclang-parser.yy" // lalr1.cc:859 +#line 2383 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UniqueID()); } -#line 3937 "seclang-parser.cc" // lalr1.cc:859 +#line 3942 "seclang-parser.cc" // lalr1.cc:847 break; case 311: -#line 2383 "seclang-parser.yy" // lalr1.cc:859 +#line 2387 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UrlEncodedError()); } -#line 3945 "seclang-parser.cc" // lalr1.cc:859 +#line 3950 "seclang-parser.cc" // lalr1.cc:847 break; case 312: -#line 2387 "seclang-parser.yy" // lalr1.cc:859 +#line 2391 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UserID()); } -#line 3953 "seclang-parser.cc" // lalr1.cc:859 +#line 3958 "seclang-parser.cc" // lalr1.cc:847 break; case 313: -#line 2391 "seclang-parser.yy" // lalr1.cc:859 +#line 2395 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 3961 "seclang-parser.cc" // lalr1.cc:859 +#line 3966 "seclang-parser.cc" // lalr1.cc:847 break; case 314: -#line 2395 "seclang-parser.yy" // lalr1.cc:859 +#line 2399 "seclang-parser.yy" // lalr1.cc:847 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::WebAppId()); } -#line 3969 "seclang-parser.cc" // lalr1.cc:859 +#line 3974 "seclang-parser.cc" // lalr1.cc:847 break; case 315: -#line 2399 "seclang-parser.yy" // lalr1.cc:859 +#line 2403 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new Duration(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 3980 "seclang-parser.cc" // lalr1.cc:859 +#line 3985 "seclang-parser.cc" // lalr1.cc:847 break; case 316: -#line 2407 "seclang-parser.yy" // lalr1.cc:859 +#line 2411 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new ModsecBuild(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 3991 "seclang-parser.cc" // lalr1.cc:859 +#line 3996 "seclang-parser.cc" // lalr1.cc:847 break; case 317: -#line 2414 "seclang-parser.yy" // lalr1.cc:859 +#line 2418 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new HighestSeverity(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4002 "seclang-parser.cc" // lalr1.cc:859 +#line 4007 "seclang-parser.cc" // lalr1.cc:847 break; case 318: -#line 2421 "seclang-parser.yy" // lalr1.cc:859 +#line 2425 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new RemoteUser(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4013 "seclang-parser.cc" // lalr1.cc:859 +#line 4018 "seclang-parser.cc" // lalr1.cc:847 break; case 319: -#line 2428 "seclang-parser.yy" // lalr1.cc:859 +#line 2432 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new Time(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4024 "seclang-parser.cc" // lalr1.cc:859 +#line 4029 "seclang-parser.cc" // lalr1.cc:847 break; case 320: -#line 2435 "seclang-parser.yy" // lalr1.cc:859 +#line 2439 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeDay(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4035 "seclang-parser.cc" // lalr1.cc:859 +#line 4040 "seclang-parser.cc" // lalr1.cc:847 break; case 321: -#line 2442 "seclang-parser.yy" // lalr1.cc:859 +#line 2446 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeEpoch(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4046 "seclang-parser.cc" // lalr1.cc:859 +#line 4051 "seclang-parser.cc" // lalr1.cc:847 break; case 322: -#line 2449 "seclang-parser.yy" // lalr1.cc:859 +#line 2453 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeHour(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4057 "seclang-parser.cc" // lalr1.cc:859 +#line 4062 "seclang-parser.cc" // lalr1.cc:847 break; case 323: -#line 2456 "seclang-parser.yy" // lalr1.cc:859 +#line 2460 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeMin(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4068 "seclang-parser.cc" // lalr1.cc:859 +#line 4073 "seclang-parser.cc" // lalr1.cc:847 break; case 324: -#line 2463 "seclang-parser.yy" // lalr1.cc:859 +#line 2467 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeMon(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4079 "seclang-parser.cc" // lalr1.cc:859 +#line 4084 "seclang-parser.cc" // lalr1.cc:847 break; case 325: -#line 2470 "seclang-parser.yy" // lalr1.cc:859 +#line 2474 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeSec(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4090 "seclang-parser.cc" // lalr1.cc:859 +#line 4095 "seclang-parser.cc" // lalr1.cc:847 break; case 326: -#line 2477 "seclang-parser.yy" // lalr1.cc:859 +#line 2481 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeWDay(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4101 "seclang-parser.cc" // lalr1.cc:859 +#line 4106 "seclang-parser.cc" // lalr1.cc:847 break; case 327: -#line 2484 "seclang-parser.yy" // lalr1.cc:859 +#line 2488 "seclang-parser.yy" // lalr1.cc:847 { std::string name(yystack_[0].value.as< std::string > ()); char z = name.at(0); std::unique_ptr c(new TimeYear(name)); yylhs.value.as< std::unique_ptr > () = std::move(c); } -#line 4112 "seclang-parser.cc" // lalr1.cc:859 +#line 4117 "seclang-parser.cc" // lalr1.cc:847 break; case 328: -#line 2494 "seclang-parser.yy" // lalr1.cc:859 +#line 2498 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Accuracy(yystack_[0].value.as< std::string > ())); } -#line 4120 "seclang-parser.cc" // lalr1.cc:859 +#line 4125 "seclang-parser.cc" // lalr1.cc:847 break; case 329: -#line 2498 "seclang-parser.yy" // lalr1.cc:859 +#line 2502 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Allow(yystack_[0].value.as< std::string > ())); } -#line 4128 "seclang-parser.cc" // lalr1.cc:859 +#line 4133 "seclang-parser.cc" // lalr1.cc:847 break; case 330: -#line 2502 "seclang-parser.yy" // lalr1.cc:859 +#line 2506 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("Append", yystack_[1].location); } -#line 4136 "seclang-parser.cc" // lalr1.cc:859 +#line 4141 "seclang-parser.cc" // lalr1.cc:847 break; case 331: -#line 2506 "seclang-parser.yy" // lalr1.cc:859 +#line 2510 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as< std::string > ())); } -#line 4144 "seclang-parser.cc" // lalr1.cc:859 +#line 4149 "seclang-parser.cc" // lalr1.cc:847 break; case 332: -#line 2510 "seclang-parser.yy" // lalr1.cc:859 +#line 2514 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Block(yystack_[0].value.as< std::string > ())); } -#line 4152 "seclang-parser.cc" // lalr1.cc:859 +#line 4157 "seclang-parser.cc" // lalr1.cc:847 break; case 333: -#line 2514 "seclang-parser.yy" // lalr1.cc:859 +#line 2518 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Capture(yystack_[0].value.as< std::string > ())); } -#line 4160 "seclang-parser.cc" // lalr1.cc:859 +#line 4165 "seclang-parser.cc" // lalr1.cc:847 break; case 334: -#line 2518 "seclang-parser.yy" // lalr1.cc:859 +#line 2522 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Chain(yystack_[0].value.as< std::string > ())); } -#line 4168 "seclang-parser.cc" // lalr1.cc:859 +#line 4173 "seclang-parser.cc" // lalr1.cc:847 break; case 335: -#line 2522 "seclang-parser.yy" // lalr1.cc:859 +#line 2526 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4177 "seclang-parser.cc" // lalr1.cc:859 +#line 4182 "seclang-parser.cc" // lalr1.cc:847 break; case 336: -#line 2527 "seclang-parser.yy" // lalr1.cc:859 +#line 2531 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4186 "seclang-parser.cc" // lalr1.cc:859 +#line 4191 "seclang-parser.cc" // lalr1.cc:847 break; case 337: -#line 2532 "seclang-parser.yy" // lalr1.cc:859 +#line 2536 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4195 "seclang-parser.cc" // lalr1.cc:859 +#line 4200 "seclang-parser.cc" // lalr1.cc:847 break; case 338: -#line 2537 "seclang-parser.yy" // lalr1.cc:859 +#line 2541 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::AuditLogParts(yystack_[0].value.as< std::string > ())); } -#line 4203 "seclang-parser.cc" // lalr1.cc:859 +#line 4208 "seclang-parser.cc" // lalr1.cc:847 break; case 339: -#line 2541 "seclang-parser.yy" // lalr1.cc:859 +#line 2545 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorJSON(yystack_[0].value.as< std::string > ())); } -#line 4211 "seclang-parser.cc" // lalr1.cc:859 +#line 4216 "seclang-parser.cc" // lalr1.cc:847 break; case 340: -#line 2545 "seclang-parser.yy" // lalr1.cc:859 +#line 2549 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorXML(yystack_[0].value.as< std::string > ())); } -#line 4219 "seclang-parser.cc" // lalr1.cc:859 +#line 4224 "seclang-parser.cc" // lalr1.cc:847 break; case 341: -#line 2549 "seclang-parser.yy" // lalr1.cc:859 +#line 2553 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4228 "seclang-parser.cc" // lalr1.cc:859 +#line 4233 "seclang-parser.cc" // lalr1.cc:847 break; case 342: -#line 2554 "seclang-parser.yy" // lalr1.cc:859 +#line 2558 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); } -#line 4237 "seclang-parser.cc" // lalr1.cc:859 +#line 4242 "seclang-parser.cc" // lalr1.cc:847 break; case 343: -#line 2559 "seclang-parser.yy" // lalr1.cc:859 +#line 2563 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "true")); } -#line 4245 "seclang-parser.cc" // lalr1.cc:859 +#line 4250 "seclang-parser.cc" // lalr1.cc:847 break; case 344: -#line 2563 "seclang-parser.yy" // lalr1.cc:859 +#line 2567 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "false")); } -#line 4253 "seclang-parser.cc" // lalr1.cc:859 +#line 4258 "seclang-parser.cc" // lalr1.cc:847 break; case 345: -#line 2567 "seclang-parser.yy" // lalr1.cc:859 +#line 2571 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); } -#line 4261 "seclang-parser.cc" // lalr1.cc:859 +#line 4266 "seclang-parser.cc" // lalr1.cc:847 break; case 346: -#line 2571 "seclang-parser.yy" // lalr1.cc:859 +#line 2575 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); } -#line 4269 "seclang-parser.cc" // lalr1.cc:859 +#line 4274 "seclang-parser.cc" // lalr1.cc:847 break; case 347: -#line 2575 "seclang-parser.yy" // lalr1.cc:859 +#line 2579 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); } -#line 4277 "seclang-parser.cc" // lalr1.cc:859 +#line 4282 "seclang-parser.cc" // lalr1.cc:847 break; case 348: -#line 2579 "seclang-parser.yy" // lalr1.cc:859 +#line 2583 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveById(yystack_[0].value.as< std::string > ())); } -#line 4285 "seclang-parser.cc" // lalr1.cc:859 +#line 4290 "seclang-parser.cc" // lalr1.cc:847 break; case 349: -#line 2583 "seclang-parser.yy" // lalr1.cc:859 +#line 2587 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveByTag(yystack_[0].value.as< std::string > ())); } -#line 4293 "seclang-parser.cc" // lalr1.cc:859 +#line 4298 "seclang-parser.cc" // lalr1.cc:847 break; case 350: -#line 2587 "seclang-parser.yy" // lalr1.cc:859 +#line 2591 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveTargetById(yystack_[0].value.as< std::string > ())); } -#line 4301 "seclang-parser.cc" // lalr1.cc:859 +#line 4306 "seclang-parser.cc" // lalr1.cc:847 break; case 351: -#line 2591 "seclang-parser.yy" // lalr1.cc:859 +#line 2595 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveTargetByTag(yystack_[0].value.as< std::string > ())); } -#line 4309 "seclang-parser.cc" // lalr1.cc:859 +#line 4314 "seclang-parser.cc" // lalr1.cc:847 break; case 352: -#line 2595 "seclang-parser.yy" // lalr1.cc:859 +#line 2599 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Deny(yystack_[0].value.as< std::string > ())); } -#line 4317 "seclang-parser.cc" // lalr1.cc:859 +#line 4322 "seclang-parser.cc" // lalr1.cc:847 break; case 353: -#line 2599 "seclang-parser.yy" // lalr1.cc:859 +#line 2603 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("DeprecateVar", yystack_[1].location); } -#line 4325 "seclang-parser.cc" // lalr1.cc:859 +#line 4330 "seclang-parser.cc" // lalr1.cc:847 break; case 354: -#line 2603 "seclang-parser.yy" // lalr1.cc:859 +#line 2607 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("Drop", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[0].value.as< std::string > ())); } -#line 4334 "seclang-parser.cc" // lalr1.cc:859 +#line 4339 "seclang-parser.cc" // lalr1.cc:847 break; case 355: -#line 2608 "seclang-parser.yy" // lalr1.cc:859 +#line 2612 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Exec(yystack_[0].value.as< std::string > ())); } -#line 4342 "seclang-parser.cc" // lalr1.cc:859 +#line 4347 "seclang-parser.cc" // lalr1.cc:847 break; case 356: -#line 2612 "seclang-parser.yy" // lalr1.cc:859 +#line 2616 "seclang-parser.yy" // lalr1.cc:847 { //ACTION_NOT_SUPPORTED("ExpireVar", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[0].value.as< std::string > ())); } -#line 4351 "seclang-parser.cc" // lalr1.cc:859 +#line 4356 "seclang-parser.cc" // lalr1.cc:847 break; case 357: -#line 2617 "seclang-parser.yy" // lalr1.cc:859 +#line 2621 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::RuleId(yystack_[0].value.as< std::string > ())); } -#line 4359 "seclang-parser.cc" // lalr1.cc:859 +#line 4364 "seclang-parser.cc" // lalr1.cc:847 break; case 358: -#line 2621 "seclang-parser.yy" // lalr1.cc:859 +#line 2625 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::InitCol(yystack_[1].value.as< std::string > (), std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4367 "seclang-parser.cc" // lalr1.cc:859 +#line 4372 "seclang-parser.cc" // lalr1.cc:847 break; case 359: -#line 2625 "seclang-parser.yy" // lalr1.cc:859 +#line 2629 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::LogData(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4375 "seclang-parser.cc" // lalr1.cc:859 +#line 4380 "seclang-parser.cc" // lalr1.cc:847 break; case 360: -#line 2629 "seclang-parser.yy" // lalr1.cc:859 +#line 2633 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Log(yystack_[0].value.as< std::string > ())); } -#line 4383 "seclang-parser.cc" // lalr1.cc:859 +#line 4388 "seclang-parser.cc" // lalr1.cc:847 break; case 361: -#line 2633 "seclang-parser.yy" // lalr1.cc:859 +#line 2637 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Maturity(yystack_[0].value.as< std::string > ())); } -#line 4391 "seclang-parser.cc" // lalr1.cc:859 +#line 4396 "seclang-parser.cc" // lalr1.cc:847 break; case 362: -#line 2637 "seclang-parser.yy" // lalr1.cc:859 +#line 2641 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Msg(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4399 "seclang-parser.cc" // lalr1.cc:859 +#line 4404 "seclang-parser.cc" // lalr1.cc:847 break; case 363: -#line 2641 "seclang-parser.yy" // lalr1.cc:859 +#line 2645 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::MultiMatch(yystack_[0].value.as< std::string > ())); } -#line 4407 "seclang-parser.cc" // lalr1.cc:859 +#line 4412 "seclang-parser.cc" // lalr1.cc:847 break; case 364: -#line 2645 "seclang-parser.yy" // lalr1.cc:859 +#line 2649 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoAuditLog(yystack_[0].value.as< std::string > ())); } -#line 4415 "seclang-parser.cc" // lalr1.cc:859 +#line 4420 "seclang-parser.cc" // lalr1.cc:847 break; case 365: -#line 2649 "seclang-parser.yy" // lalr1.cc:859 +#line 2653 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoLog(yystack_[0].value.as< std::string > ())); } -#line 4423 "seclang-parser.cc" // lalr1.cc:859 +#line 4428 "seclang-parser.cc" // lalr1.cc:847 break; case 366: -#line 2653 "seclang-parser.yy" // lalr1.cc:859 +#line 2657 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Pass(yystack_[0].value.as< std::string > ())); } -#line 4431 "seclang-parser.cc" // lalr1.cc:859 +#line 4436 "seclang-parser.cc" // lalr1.cc:847 break; case 367: -#line 2657 "seclang-parser.yy" // lalr1.cc:859 +#line 2661 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("Pause", yystack_[1].location); } -#line 4439 "seclang-parser.cc" // lalr1.cc:859 +#line 4444 "seclang-parser.cc" // lalr1.cc:847 break; case 368: -#line 2661 "seclang-parser.yy" // lalr1.cc:859 +#line 2665 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Phase(yystack_[0].value.as< std::string > ())); } -#line 4447 "seclang-parser.cc" // lalr1.cc:859 +#line 4452 "seclang-parser.cc" // lalr1.cc:847 break; case 369: -#line 2665 "seclang-parser.yy" // lalr1.cc:859 +#line 2669 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("Prepend", yystack_[1].location); } -#line 4455 "seclang-parser.cc" // lalr1.cc:859 +#line 4460 "seclang-parser.cc" // lalr1.cc:847 break; case 370: -#line 2669 "seclang-parser.yy" // lalr1.cc:859 +#line 2673 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("Proxy", yystack_[1].location); } -#line 4463 "seclang-parser.cc" // lalr1.cc:859 +#line 4468 "seclang-parser.cc" // lalr1.cc:847 break; case 371: -#line 2673 "seclang-parser.yy" // lalr1.cc:859 +#line 2677 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Redirect(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4471 "seclang-parser.cc" // lalr1.cc:859 +#line 4476 "seclang-parser.cc" // lalr1.cc:847 break; case 372: -#line 2677 "seclang-parser.yy" // lalr1.cc:859 +#line 2681 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Rev(yystack_[0].value.as< std::string > ())); } -#line 4479 "seclang-parser.cc" // lalr1.cc:859 +#line 4484 "seclang-parser.cc" // lalr1.cc:847 break; case 373: -#line 2681 "seclang-parser.yy" // lalr1.cc:859 +#line 2685 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("SanatiseArg", yystack_[1].location); } -#line 4487 "seclang-parser.cc" // lalr1.cc:859 +#line 4492 "seclang-parser.cc" // lalr1.cc:847 break; case 374: -#line 2685 "seclang-parser.yy" // lalr1.cc:859 +#line 2689 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("SanatiseMatched", yystack_[1].location); } -#line 4495 "seclang-parser.cc" // lalr1.cc:859 +#line 4500 "seclang-parser.cc" // lalr1.cc:847 break; case 375: -#line 2689 "seclang-parser.yy" // lalr1.cc:859 +#line 2693 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("SanatiseMatchedBytes", yystack_[1].location); } -#line 4503 "seclang-parser.cc" // lalr1.cc:859 +#line 4508 "seclang-parser.cc" // lalr1.cc:847 break; case 376: -#line 2693 "seclang-parser.yy" // lalr1.cc:859 +#line 2697 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("SanatiseRequestHeader", yystack_[1].location); } -#line 4511 "seclang-parser.cc" // lalr1.cc:859 +#line 4516 "seclang-parser.cc" // lalr1.cc:847 break; case 377: -#line 2697 "seclang-parser.yy" // lalr1.cc:859 +#line 2701 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("SanatiseResponseHeader", yystack_[1].location); } -#line 4519 "seclang-parser.cc" // lalr1.cc:859 +#line 4524 "seclang-parser.cc" // lalr1.cc:847 break; case 378: -#line 2701 "seclang-parser.yy" // lalr1.cc:859 +#line 2705 "seclang-parser.yy" // lalr1.cc:847 { ACTION_NOT_SUPPORTED("SetEnv", yystack_[1].location); } -#line 4527 "seclang-parser.cc" // lalr1.cc:859 +#line 4532 "seclang-parser.cc" // lalr1.cc:847 break; case 379: -#line 2705 "seclang-parser.yy" // lalr1.cc:859 +#line 2709 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetRSC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4535 "seclang-parser.cc" // lalr1.cc:859 +#line 4540 "seclang-parser.cc" // lalr1.cc:847 break; case 380: -#line 2709 "seclang-parser.yy" // lalr1.cc:859 +#line 2713 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetSID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4543 "seclang-parser.cc" // lalr1.cc:859 +#line 4548 "seclang-parser.cc" // lalr1.cc:847 break; case 381: -#line 2713 "seclang-parser.yy" // lalr1.cc:859 +#line 2717 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetUID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4551 "seclang-parser.cc" // lalr1.cc:859 +#line 4556 "seclang-parser.cc" // lalr1.cc:847 break; case 382: -#line 2717 "seclang-parser.yy" // lalr1.cc:859 +#line 2721 "seclang-parser.yy" // lalr1.cc:847 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); } -#line 4559 "seclang-parser.cc" // lalr1.cc:859 +#line 4564 "seclang-parser.cc" // lalr1.cc:847 break; case 383: -#line 2721 "seclang-parser.yy" // lalr1.cc:859 +#line 2725 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Severity(yystack_[0].value.as< std::string > ())); } -#line 4567 "seclang-parser.cc" // lalr1.cc:859 +#line 4572 "seclang-parser.cc" // lalr1.cc:847 break; case 384: -#line 2725 "seclang-parser.yy" // lalr1.cc:859 +#line 2729 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Skip(yystack_[0].value.as< std::string > ())); } -#line 4575 "seclang-parser.cc" // lalr1.cc:859 +#line 4580 "seclang-parser.cc" // lalr1.cc:847 break; case 385: -#line 2729 "seclang-parser.yy" // lalr1.cc:859 +#line 2733 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SkipAfter(yystack_[0].value.as< std::string > ())); } -#line 4583 "seclang-parser.cc" // lalr1.cc:859 +#line 4588 "seclang-parser.cc" // lalr1.cc:847 break; case 386: -#line 2733 "seclang-parser.yy" // lalr1.cc:859 +#line 2737 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::data::Status(yystack_[0].value.as< std::string > ())); } -#line 4591 "seclang-parser.cc" // lalr1.cc:859 +#line 4596 "seclang-parser.cc" // lalr1.cc:847 break; case 387: -#line 2737 "seclang-parser.yy" // lalr1.cc:859 +#line 2741 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Tag(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4599 "seclang-parser.cc" // lalr1.cc:859 +#line 4604 "seclang-parser.cc" // lalr1.cc:847 break; case 388: -#line 2741 "seclang-parser.yy" // lalr1.cc:859 +#line 2745 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Ver(yystack_[0].value.as< std::string > ())); } -#line 4607 "seclang-parser.cc" // lalr1.cc:859 +#line 4612 "seclang-parser.cc" // lalr1.cc:847 break; case 389: -#line 2745 "seclang-parser.yy" // lalr1.cc:859 +#line 2749 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::XmlNS(yystack_[0].value.as< std::string > ())); } -#line 4615 "seclang-parser.cc" // lalr1.cc:859 +#line 4620 "seclang-parser.cc" // lalr1.cc:847 break; case 390: -#line 2749 "seclang-parser.yy" // lalr1.cc:859 +#line 2753 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityZero7bit(yystack_[0].value.as< std::string > ())); } -#line 4623 "seclang-parser.cc" // lalr1.cc:859 +#line 4628 "seclang-parser.cc" // lalr1.cc:847 break; case 391: -#line 2753 "seclang-parser.yy" // lalr1.cc:859 +#line 2757 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityOdd7bit(yystack_[0].value.as< std::string > ())); } -#line 4631 "seclang-parser.cc" // lalr1.cc:859 +#line 4636 "seclang-parser.cc" // lalr1.cc:847 break; case 392: -#line 2757 "seclang-parser.yy" // lalr1.cc:859 +#line 2761 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityEven7bit(yystack_[0].value.as< std::string > ())); } -#line 4639 "seclang-parser.cc" // lalr1.cc:859 +#line 4644 "seclang-parser.cc" // lalr1.cc:847 break; case 393: -#line 2761 "seclang-parser.yy" // lalr1.cc:859 +#line 2765 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::SqlHexDecode(yystack_[0].value.as< std::string > ())); } -#line 4647 "seclang-parser.cc" // lalr1.cc:859 +#line 4652 "seclang-parser.cc" // lalr1.cc:847 break; case 394: -#line 2765 "seclang-parser.yy" // lalr1.cc:859 +#line 2769 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64Encode(yystack_[0].value.as< std::string > ())); } -#line 4655 "seclang-parser.cc" // lalr1.cc:859 +#line 4660 "seclang-parser.cc" // lalr1.cc:847 break; case 395: -#line 2769 "seclang-parser.yy" // lalr1.cc:859 +#line 2773 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64Decode(yystack_[0].value.as< std::string > ())); } -#line 4663 "seclang-parser.cc" // lalr1.cc:859 +#line 4668 "seclang-parser.cc" // lalr1.cc:847 break; case 396: -#line 2773 "seclang-parser.yy" // lalr1.cc:859 +#line 2777 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64DecodeExt(yystack_[0].value.as< std::string > ())); } -#line 4671 "seclang-parser.cc" // lalr1.cc:859 +#line 4676 "seclang-parser.cc" // lalr1.cc:847 break; case 397: -#line 2777 "seclang-parser.yy" // lalr1.cc:859 +#line 2781 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CmdLine(yystack_[0].value.as< std::string > ())); } -#line 4679 "seclang-parser.cc" // lalr1.cc:859 +#line 4684 "seclang-parser.cc" // lalr1.cc:847 break; case 398: -#line 2781 "seclang-parser.yy" // lalr1.cc:859 +#line 2785 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Sha1(yystack_[0].value.as< std::string > ())); } -#line 4687 "seclang-parser.cc" // lalr1.cc:859 +#line 4692 "seclang-parser.cc" // lalr1.cc:847 break; case 399: -#line 2785 "seclang-parser.yy" // lalr1.cc:859 +#line 2789 "seclang-parser.yy" // lalr1.cc:847 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Md5(yystack_[0].value.as< std::string > ())); } -#line 4695 "seclang-parser.cc" // lalr1.cc:859 +#line 4700 "seclang-parser.cc" // lalr1.cc:847 break; case 400: -#line 2789 "seclang-parser.yy" // lalr1.cc:859 +#line 2793 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexEncode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::EscapeSeqDecode(yystack_[0].value.as< std::string > ())); } -#line 4703 "seclang-parser.cc" // lalr1.cc:859 +#line 4708 "seclang-parser.cc" // lalr1.cc:847 break; case 401: -#line 2793 "seclang-parser.yy" // lalr1.cc:859 +#line 2797 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexDecode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexEncode(yystack_[0].value.as< std::string > ())); } -#line 4711 "seclang-parser.cc" // lalr1.cc:859 +#line 4716 "seclang-parser.cc" // lalr1.cc:847 break; case 402: -#line 2797 "seclang-parser.yy" // lalr1.cc:859 +#line 2801 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::LowerCase(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexDecode(yystack_[0].value.as< std::string > ())); } -#line 4719 "seclang-parser.cc" // lalr1.cc:859 +#line 4724 "seclang-parser.cc" // lalr1.cc:847 break; case 403: -#line 2801 "seclang-parser.yy" // lalr1.cc:859 +#line 2805 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UpperCase(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::LowerCase(yystack_[0].value.as< std::string > ())); } -#line 4727 "seclang-parser.cc" // lalr1.cc:859 +#line 4732 "seclang-parser.cc" // lalr1.cc:847 break; case 404: -#line 2805 "seclang-parser.yy" // lalr1.cc:859 +#line 2809 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecodeUni(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UpperCase(yystack_[0].value.as< std::string > ())); } -#line 4735 "seclang-parser.cc" // lalr1.cc:859 +#line 4740 "seclang-parser.cc" // lalr1.cc:847 break; case 405: -#line 2809 "seclang-parser.yy" // lalr1.cc:859 +#line 2813 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecodeUni(yystack_[0].value.as< std::string > ())); } -#line 4743 "seclang-parser.cc" // lalr1.cc:859 +#line 4748 "seclang-parser.cc" // lalr1.cc:847 break; case 406: -#line 2813 "seclang-parser.yy" // lalr1.cc:859 +#line 2817 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::None(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecode(yystack_[0].value.as< std::string > ())); } -#line 4751 "seclang-parser.cc" // lalr1.cc:859 +#line 4756 "seclang-parser.cc" // lalr1.cc:847 break; case 407: -#line 2817 "seclang-parser.yy" // lalr1.cc:859 +#line 2821 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CompressWhitespace(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlEncode(yystack_[0].value.as< std::string > ())); } -#line 4759 "seclang-parser.cc" // lalr1.cc:859 +#line 4764 "seclang-parser.cc" // lalr1.cc:847 break; case 408: -#line 2821 "seclang-parser.yy" // lalr1.cc:859 +#line 2825 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveWhitespace(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::None(yystack_[0].value.as< std::string > ())); } -#line 4767 "seclang-parser.cc" // lalr1.cc:859 +#line 4772 "seclang-parser.cc" // lalr1.cc:847 break; case 409: -#line 2825 "seclang-parser.yy" // lalr1.cc:859 +#line 2829 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceNulls(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CompressWhitespace(yystack_[0].value.as< std::string > ())); } -#line 4775 "seclang-parser.cc" // lalr1.cc:859 +#line 4780 "seclang-parser.cc" // lalr1.cc:847 break; case 410: -#line 2829 "seclang-parser.yy" // lalr1.cc:859 +#line 2833 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveNulls(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveWhitespace(yystack_[0].value.as< std::string > ())); } -#line 4783 "seclang-parser.cc" // lalr1.cc:859 +#line 4788 "seclang-parser.cc" // lalr1.cc:847 break; case 411: -#line 2833 "seclang-parser.yy" // lalr1.cc:859 +#line 2837 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HtmlEntityDecode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceNulls(yystack_[0].value.as< std::string > ())); } -#line 4791 "seclang-parser.cc" // lalr1.cc:859 +#line 4796 "seclang-parser.cc" // lalr1.cc:847 break; case 412: -#line 2837 "seclang-parser.yy" // lalr1.cc:859 +#line 2841 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::JsDecode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveNulls(yystack_[0].value.as< std::string > ())); } -#line 4799 "seclang-parser.cc" // lalr1.cc:859 +#line 4804 "seclang-parser.cc" // lalr1.cc:847 break; case 413: -#line 2841 "seclang-parser.yy" // lalr1.cc:859 +#line 2845 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CssDecode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HtmlEntityDecode(yystack_[0].value.as< std::string > ())); } -#line 4807 "seclang-parser.cc" // lalr1.cc:859 +#line 4812 "seclang-parser.cc" // lalr1.cc:847 break; case 414: -#line 2845 "seclang-parser.yy" // lalr1.cc:859 +#line 2849 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Trim(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::JsDecode(yystack_[0].value.as< std::string > ())); } -#line 4815 "seclang-parser.cc" // lalr1.cc:859 +#line 4820 "seclang-parser.cc" // lalr1.cc:847 break; case 415: -#line 2849 "seclang-parser.yy" // lalr1.cc:859 +#line 2853 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePathWin(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CssDecode(yystack_[0].value.as< std::string > ())); } -#line 4823 "seclang-parser.cc" // lalr1.cc:859 +#line 4828 "seclang-parser.cc" // lalr1.cc:847 break; case 416: -#line 2853 "seclang-parser.yy" // lalr1.cc:859 +#line 2857 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePath(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Trim(yystack_[0].value.as< std::string > ())); } -#line 4831 "seclang-parser.cc" // lalr1.cc:859 +#line 4836 "seclang-parser.cc" // lalr1.cc:847 break; case 417: -#line 2857 "seclang-parser.yy" // lalr1.cc:859 +#line 2861 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Length(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::TrimLeft(yystack_[0].value.as< std::string > ())); } -#line 4839 "seclang-parser.cc" // lalr1.cc:859 +#line 4844 "seclang-parser.cc" // lalr1.cc:847 break; case 418: -#line 2861 "seclang-parser.yy" // lalr1.cc:859 +#line 2865 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Utf8ToUnicode(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::TrimRight(yystack_[0].value.as< std::string > ())); } -#line 4847 "seclang-parser.cc" // lalr1.cc:859 +#line 4852 "seclang-parser.cc" // lalr1.cc:847 break; case 419: -#line 2865 "seclang-parser.yy" // lalr1.cc:859 +#line 2869 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveCommentsChar(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePathWin(yystack_[0].value.as< std::string > ())); } -#line 4855 "seclang-parser.cc" // lalr1.cc:859 +#line 4860 "seclang-parser.cc" // lalr1.cc:847 break; case 420: -#line 2869 "seclang-parser.yy" // lalr1.cc:859 +#line 2873 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveComments(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePath(yystack_[0].value.as< std::string > ())); } -#line 4863 "seclang-parser.cc" // lalr1.cc:859 +#line 4868 "seclang-parser.cc" // lalr1.cc:847 break; case 421: -#line 2873 "seclang-parser.yy" // lalr1.cc:859 +#line 2877 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceComments(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Length(yystack_[0].value.as< std::string > ())); } -#line 4871 "seclang-parser.cc" // lalr1.cc:859 +#line 4876 "seclang-parser.cc" // lalr1.cc:847 break; case 422: -#line 2880 "seclang-parser.yy" // lalr1.cc:859 +#line 2881 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::unsetOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Utf8ToUnicode(yystack_[0].value.as< std::string > ())); } -#line 4879 "seclang-parser.cc" // lalr1.cc:859 +#line 4884 "seclang-parser.cc" // lalr1.cc:847 break; case 423: -#line 2884 "seclang-parser.yy" // lalr1.cc:859 +#line 2885 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setToOneOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveCommentsChar(yystack_[0].value.as< std::string > ())); } -#line 4887 "seclang-parser.cc" // lalr1.cc:859 +#line 4892 "seclang-parser.cc" // lalr1.cc:847 break; case 424: -#line 2888 "seclang-parser.yy" // lalr1.cc:859 +#line 2889 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveComments(yystack_[0].value.as< std::string > ())); } -#line 4895 "seclang-parser.cc" // lalr1.cc:859 +#line 4900 "seclang-parser.cc" // lalr1.cc:847 break; case 425: -#line 2892 "seclang-parser.yy" // lalr1.cc:859 +#line 2893 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::sumAndSetOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceComments(yystack_[0].value.as< std::string > ())); } -#line 4903 "seclang-parser.cc" // lalr1.cc:859 +#line 4908 "seclang-parser.cc" // lalr1.cc:847 break; case 426: -#line 2896 "seclang-parser.yy" // lalr1.cc:859 +#line 2900 "seclang-parser.yy" // lalr1.cc:847 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::substractAndSetOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::unsetOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4911 "seclang-parser.cc" // lalr1.cc:859 +#line 4916 "seclang-parser.cc" // lalr1.cc:847 break; case 427: -#line 2903 "seclang-parser.yy" // lalr1.cc:859 +#line 2904 "seclang-parser.yy" // lalr1.cc:847 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setToOneOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); + } +#line 4924 "seclang-parser.cc" // lalr1.cc:847 + break; + + case 428: +#line 2908 "seclang-parser.yy" // lalr1.cc:847 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); + } +#line 4932 "seclang-parser.cc" // lalr1.cc:847 + break; + + case 429: +#line 2912 "seclang-parser.yy" // lalr1.cc:847 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::sumAndSetOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); + } +#line 4940 "seclang-parser.cc" // lalr1.cc:847 + break; + + case 430: +#line 2916 "seclang-parser.yy" // lalr1.cc:847 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::substractAndSetOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); + } +#line 4948 "seclang-parser.cc" // lalr1.cc:847 + break; + + case 431: +#line 2923 "seclang-parser.yy" // lalr1.cc:847 { yystack_[1].value.as< std::unique_ptr > ()->appendText(yystack_[0].value.as< std::string > ()); yylhs.value.as< std::unique_ptr > () = std::move(yystack_[1].value.as< std::unique_ptr > ()); } -#line 4920 "seclang-parser.cc" // lalr1.cc:859 +#line 4957 "seclang-parser.cc" // lalr1.cc:847 break; - case 428: -#line 2908 "seclang-parser.yy" // lalr1.cc:859 + case 432: +#line 2928 "seclang-parser.yy" // lalr1.cc:847 { yystack_[1].value.as< std::unique_ptr > ()->appendVar(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > () = std::move(yystack_[1].value.as< std::unique_ptr > ()); } -#line 4929 "seclang-parser.cc" // lalr1.cc:859 +#line 4966 "seclang-parser.cc" // lalr1.cc:847 break; - case 429: -#line 2913 "seclang-parser.yy" // lalr1.cc:859 + case 433: +#line 2933 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr r(new RunTimeString()); r->appendText(yystack_[0].value.as< std::string > ()); yylhs.value.as< std::unique_ptr > () = std::move(r); } -#line 4939 "seclang-parser.cc" // lalr1.cc:859 +#line 4976 "seclang-parser.cc" // lalr1.cc:847 break; - case 430: -#line 2919 "seclang-parser.yy" // lalr1.cc:859 + case 434: +#line 2939 "seclang-parser.yy" // lalr1.cc:847 { std::unique_ptr r(new RunTimeString()); r->appendVar(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > () = std::move(r); } -#line 4949 "seclang-parser.cc" // lalr1.cc:859 +#line 4986 "seclang-parser.cc" // lalr1.cc:847 break; -#line 4953 "seclang-parser.cc" // lalr1.cc:859 +#line 4990 "seclang-parser.cc" // lalr1.cc:847 default: break; } @@ -4977,7 +5014,8 @@ namespace yy { if (!yyerrstatus_) { ++yynerrs_; - error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); + error (yyla.location, yysyntax_error_ (yystack_[0].state, + yyempty ? yyempty_ : yyla.type_get ())); } @@ -4990,10 +5028,10 @@ namespace yy { // Return failure if at end of input. if (yyla.type_get () == yyeof_) YYABORT; - else if (!yyla.empty ()) + else if (!yyempty) { yy_destroy_ ("Error: discarding", yyla); - yyla.clear (); + yyempty = true; } } @@ -5069,7 +5107,7 @@ namespace yy { goto yyreturn; yyreturn: - if (!yyla.empty ()) + if (!yyempty) yy_destroy_ ("Cleanup: discarding lookahead", yyla); /* Do not reclaim the symbols of the rule whose action triggered @@ -5089,7 +5127,7 @@ namespace yy { << std::endl; // Do not try to display the values of the reclaimed symbols, // as their printer might throw an exception. - if (!yyla.empty ()) + if (!yyempty) yy_destroy_ (YY_NULLPTR, yyla); while (1 < yystack_.size ()) @@ -5109,8 +5147,9 @@ namespace yy { // Generate an error message. std::string - seclang_parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const + seclang_parser::yysyntax_error_ (state_type yystate, symbol_number_type yytoken) const { + std::string yyres; // Number of reported tokens (one for the "unexpected", one per // "expected"). size_t yycount = 0; @@ -5124,7 +5163,7 @@ namespace yy { the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - - The only way there can be no lookahead present (in yyla) is + - The only way there can be no lookahead present (in yytoken) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to @@ -5144,9 +5183,8 @@ namespace yy { token that will not be accepted due to an error action in a later state. */ - if (!yyla.empty ()) + if (yytoken != yyempty_) { - int yytoken = yyla.type_get (); yyarg[yycount++] = yytname_[yytoken]; int yyn = yypact_[yystate]; if (!yy_pact_value_is_default_ (yyn)) @@ -5189,7 +5227,6 @@ namespace yy { #undef YYCASE_ } - std::string yyres; // Argument number. size_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) @@ -5204,65 +5241,65 @@ namespace yy { } - const short int seclang_parser::yypact_ninf_ = -397; + const short int seclang_parser::yypact_ninf_ = -401; const signed char seclang_parser::yytable_ninf_ = -1; const short int seclang_parser::yypact_[] = { - 2686, -397, -257, -397, -89, -397, -153, -397, -397, -397, - -397, -397, -280, -397, -397, -397, -397, -397, -272, -397, - -397, -397, -150, -148, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -146, -397, -397, - -145, -397, -140, -397, -141, -130, -397, -253, -87, -87, - -397, -397, -397, -397, -128, -289, -397, -397, -397, 1445, - 1445, 1445, -87, -265, -126, -397, -397, -397, -124, -397, - -397, -397, -397, -397, -397, -397, -397, -397, 1445, -87, - 2839, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, 2265, -249, -397, -397, -397, -397, -397, - -397, -397, -259, -397, -397, -397, -122, -120, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, 2394, -397, - 2394, -397, 2394, -397, -397, -397, -397, -397, -397, -397, - -397, 2394, -397, -397, -397, -397, -397, -397, -397, 2394, - 2394, 2394, -397, -397, -397, -397, 2394, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, 3033, -397, 5, -397, -397, -397, -397, -397, -397, - 2585, 2585, -154, -152, -149, -147, -144, -142, -139, -136, - -134, -132, -129, -127, -125, -123, -121, -119, -397, -117, - -115, -113, -111, -397, -397, -109, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -107, -397, -397, -397, -397, -397, 445, -397, -397, - -397, -105, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, 533, 621, 944, 1032, 1120, -101, -99, - 1535, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, 8, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, 1945, -397, -397, - -397, 2585, -51, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, 2482, 2482, 2482, 2482, - 2482, 2482, 2482, 2482, 9, 3033, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, - -397, -397, -397, -397, 2482, -397, -397, -397, -397, 2482, - -397, -397, 2482, -397, -397, 2482, -397, -397, 2482, -397, - -397, 2482, -397, -397, -397, -397, 4, 1625, 2074, 2394, - 2394, 2394, -397, -397, 2394, 2394, 2394, -397, 2394, 2394, - 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, - 2394, 2394, 2394, -397, 2394, 2394, 2394, 2394, -397, -397, - 2394, 2394, 2394, 2394, -87, -397, 2482, -397, 2394, 2394, - 2394, -397, -397, -397, -397, -397, 2585, 2585, -397, -397, - 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, - 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, - 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, - -397, 2482, 2482, 2482, -397, -397 + 2710, -401, -261, -401, -89, -401, -153, -401, -401, -401, + -401, -401, -284, -401, -401, -401, -401, -401, -276, -401, + -401, -401, -150, -148, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -146, -401, -401, + -145, -401, -140, -401, -141, -130, -401, -257, -87, -87, + -401, -401, -401, -401, -128, -293, -401, -401, -401, 1457, + 1457, 1457, -87, -269, -126, -401, -401, -401, -124, -401, + -401, -401, -401, -401, -401, -401, -401, -401, 1457, -87, + 2867, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, 2285, -253, -401, -401, -401, -401, -401, + -401, -401, -263, -401, -401, -401, -122, -120, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, 2414, -401, + 2414, -401, 2414, -401, -401, -401, -401, -401, -401, -401, + -401, 2414, -401, -401, -401, -401, -401, -401, -401, 2414, + 2414, 2414, -401, -401, -401, -401, 2414, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, 3065, -401, 5, -401, -401, + -401, -401, -401, -401, 2609, 2609, -154, -152, -149, -147, + -144, -142, -139, -136, -134, -132, -129, -127, -125, -123, + -121, -119, -401, -117, -115, -113, -111, -401, -401, -109, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -107, -401, -401, -401, -401, + -401, 449, -401, -401, -401, -105, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, 537, 625, 952, + 1040, 1128, -101, -99, 1547, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, 8, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, 1961, -401, -401, -401, 2609, -51, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 9, 3065, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, + -401, -401, -401, -401, -401, -401, -401, -401, 2502, -401, + -401, -401, -401, 2502, -401, -401, 2502, -401, -401, 2502, + -401, -401, 2502, -401, -401, 2502, -401, -401, -401, -401, + 4, 1637, 2090, 2414, 2414, 2414, -401, -401, 2414, 2414, + 2414, -401, 2414, 2414, 2414, 2414, 2414, 2414, 2414, 2414, + 2414, 2414, 2414, 2414, 2414, 2414, 2414, -401, 2414, 2414, + 2414, 2414, -401, -401, 2414, 2414, 2414, 2414, -87, -401, + 2502, -401, 2414, 2414, 2414, -401, -401, -401, -401, -401, + 2609, 2609, -401, -401, 2502, 2502, 2502, 2502, 2502, 2502, + 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, + 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, 2502, + 2502, 2502, 2502, 2502, -401, 2502, 2502, 2502, -401, -401 }; const unsigned short int @@ -5285,66 +5322,66 @@ namespace yy { 0, 361, 0, 363, 364, 365, 366, 367, 368, 369, 370, 0, 372, 373, 374, 375, 376, 377, 378, 0, 0, 0, 383, 384, 385, 386, 0, 394, 395, 396, - 397, 407, 413, 400, 401, 411, 412, 417, 402, 399, - 406, 416, 415, 392, 391, 390, 420, 419, 410, 408, - 421, 409, 398, 393, 414, 403, 405, 404, 418, 388, - 389, 0, 75, 30, 32, 77, 107, 106, 134, 135, - 0, 0, 161, 164, 167, 170, 173, 176, 179, 182, - 185, 188, 191, 194, 197, 200, 203, 206, 259, 248, - 209, 245, 251, 260, 261, 218, 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, 289, 288, 292, 291, 290, 293, 295, 294, - 296, 254, 297, 298, 299, 301, 300, 222, 302, 303, - 255, 258, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 314, 313, 226, 230, 238, 242, 234, 212, 215, - 0, 316, 315, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 119, 151, 156, 120, 121, 122, - 22, 21, 23, 28, 27, 140, 141, 0, 76, 1, - 3, 0, 423, 382, 347, 346, 345, 336, 335, 337, - 342, 341, 344, 343, 429, 430, 358, 359, 362, 371, - 379, 380, 381, 387, 0, 0, 158, 157, 159, 160, - 162, 163, 165, 166, 168, 169, 171, 172, 174, 175, - 177, 178, 180, 181, 183, 184, 186, 187, 189, 190, - 192, 193, 195, 196, 198, 199, 201, 202, 204, 205, - 246, 247, 207, 208, 243, 244, 249, 250, 216, 217, - 252, 253, 220, 221, 219, 256, 257, 224, 225, 223, - 228, 229, 227, 236, 237, 235, 240, 241, 239, 232, - 233, 231, 210, 211, 213, 214, 0, 0, 0, 0, - 0, 0, 38, 39, 0, 0, 0, 71, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 0, 40, 41, - 0, 0, 0, 0, 74, 33, 35, 422, 0, 0, - 0, 427, 428, 29, 31, 152, 0, 0, 153, 34, - 36, 70, 55, 54, 56, 57, 43, 58, 51, 59, - 42, 60, 61, 62, 63, 64, 65, 66, 52, 67, - 68, 69, 44, 45, 46, 47, 48, 49, 50, 53, - 73, 424, 425, 426, 155, 154 + 397, 409, 415, 400, 401, 402, 413, 414, 421, 403, + 399, 408, 420, 419, 392, 391, 390, 424, 423, 412, + 410, 425, 411, 398, 393, 416, 417, 418, 404, 407, + 406, 405, 422, 388, 389, 0, 75, 30, 32, 77, + 107, 106, 134, 135, 0, 0, 161, 164, 167, 170, + 173, 176, 179, 182, 185, 188, 191, 194, 197, 200, + 203, 206, 259, 248, 209, 245, 251, 260, 261, 218, + 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, 289, 288, 292, 291, + 290, 293, 295, 294, 296, 254, 297, 298, 299, 301, + 300, 222, 302, 303, 255, 258, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 314, 313, 226, 230, 238, + 242, 234, 212, 215, 0, 316, 315, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 119, 151, + 156, 120, 121, 122, 22, 21, 23, 28, 27, 140, + 141, 0, 76, 1, 3, 0, 427, 382, 347, 346, + 345, 336, 335, 337, 342, 341, 344, 343, 433, 434, + 358, 359, 362, 371, 379, 380, 381, 387, 0, 0, + 158, 157, 159, 160, 162, 163, 165, 166, 168, 169, + 171, 172, 174, 175, 177, 178, 180, 181, 183, 184, + 186, 187, 189, 190, 192, 193, 195, 196, 198, 199, + 201, 202, 204, 205, 246, 247, 207, 208, 243, 244, + 249, 250, 216, 217, 252, 253, 220, 221, 219, 256, + 257, 224, 225, 223, 228, 229, 227, 236, 237, 235, + 240, 241, 239, 232, 233, 231, 210, 211, 213, 214, + 0, 0, 0, 0, 0, 0, 38, 39, 0, 0, + 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 0, 40, 41, 0, 0, 0, 0, 74, 33, + 35, 426, 0, 0, 0, 431, 432, 29, 31, 152, + 0, 0, 153, 34, 36, 70, 55, 54, 56, 57, + 43, 58, 51, 59, 42, 60, 61, 62, 63, 64, + 65, 66, 52, 67, 68, 69, 44, 45, 46, 47, + 48, 49, 50, 53, 73, 428, 429, 430, 155, 154 }; const short int seclang_parser::yypgoto_[] = { - -397, -397, -56, -397, -45, -180, -397, -396, -397, -55, - -255, -59, -302, -397, -133 + -401, -401, -56, -401, -45, -184, -401, -400, -401, -55, + -259, -59, -306, -401, -133 }; const short int seclang_parser::yydefgoto_[] = { - -1, 80, 81, 82, 202, 203, 464, 465, 83, 314, - 315, 345, 204, 333, 346 + -1, 80, 81, 82, 206, 207, 468, 469, 83, 318, + 319, 349, 208, 337, 350 }; const unsigned short int seclang_parser::yytable_[] = { - 316, 316, 316, 208, 205, 317, 318, 347, 355, 348, - 427, 113, 355, 209, 427, 90, 91, 319, 349, 316, - 92, 354, 93, 327, 330, 94, 350, 351, 352, 95, - 320, 321, 479, 353, 328, 322, 337, 338, 84, 85, - 110, 339, 111, 112, 334, 426, 335, 336, 468, 469, - 470, 86, 87, 474, 332, 114, 115, 116, 117, 118, + 320, 320, 320, 212, 209, 321, 322, 351, 359, 352, + 431, 113, 359, 213, 431, 90, 91, 323, 353, 320, + 92, 358, 93, 331, 334, 94, 354, 355, 356, 95, + 324, 325, 483, 357, 332, 326, 341, 342, 84, 85, + 110, 343, 111, 112, 338, 430, 339, 340, 472, 473, + 474, 86, 87, 478, 336, 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, @@ -5353,38 +5390,38 @@ namespace yy { 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, 88, 89, 404, 96, 97, 98, 99, 100, - 101, 356, 357, 102, 103, 104, 105, 106, 107, 0, - 409, 412, 415, 418, 421, 108, 109, 206, 207, 323, - 324, 325, 326, 340, 341, 342, 343, 358, 359, 360, - 361, 0, 362, 363, 364, 365, 0, 366, 367, 368, - 369, 0, 370, 371, 466, 372, 373, 374, 375, 376, - 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, + 199, 200, 201, 202, 203, 204, 88, 89, 408, 96, + 97, 98, 99, 100, 101, 360, 361, 102, 103, 104, + 105, 106, 107, 0, 413, 416, 419, 422, 425, 108, + 109, 210, 211, 327, 328, 329, 330, 344, 345, 346, + 347, 362, 363, 364, 365, 0, 366, 367, 368, 369, + 0, 370, 371, 372, 373, 0, 374, 375, 470, 376, + 377, 378, 379, 380, 381, 0, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 405, 406, 0, 201, - 422, 423, 424, 425, 0, 0, 0, 0, 0, 0, - 0, 316, 0, 0, 0, 0, 0, 0, 0, 0, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 409, 410, 0, 205, 426, 427, 428, 429, 0, 0, + 0, 0, 0, 0, 0, 320, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 471, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 467, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 472, 472, 472, - 472, 472, 472, 472, 472, 480, 481, 482, 483, 0, - 0, 484, 485, 486, 0, 487, 488, 489, 490, 491, + 0, 476, 476, 476, 476, 476, 476, 476, 476, 484, + 485, 486, 487, 0, 0, 488, 489, 490, 0, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 475, 502, 503, 504, 505, 473, 0, 506, 507, 508, - 509, 0, 0, 0, 0, 511, 512, 513, 0, 0, - 0, 0, 0, 0, 0, 472, 0, 0, 0, 0, - 472, 0, 0, 472, 0, 0, 472, 0, 0, 472, - 0, 0, 472, 0, 0, 0, 0, 0, 478, 0, + 502, 503, 504, 505, 479, 506, 507, 508, 509, 477, + 0, 510, 511, 512, 513, 0, 0, 0, 0, 515, + 516, 517, 0, 0, 0, 0, 0, 0, 0, 476, + 0, 0, 0, 0, 476, 0, 0, 476, 0, 0, + 476, 0, 0, 476, 0, 0, 476, 0, 0, 0, + 0, 0, 482, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 472, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 514, 515, 510, - 0, 472, 472, 472, 472, 472, 472, 472, 472, 472, - 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, - 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, - 472, 0, 472, 472, 472, 212, 213, 214, 215, 216, + 0, 476, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 518, 519, 514, 0, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 0, 476, 476, 476, 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, @@ -5393,7 +5430,7 @@ namespace yy { 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, 212, 213, 214, 215, 216, 217, 218, + 297, 298, 299, 300, 301, 302, 303, 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, @@ -5402,7 +5439,7 @@ namespace yy { 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, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 299, 300, 301, 302, 303, 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, @@ -5410,31 +5447,49 @@ namespace yy { 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, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 344, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 0, 402, 403, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 0, 406, 407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 344, 0, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 0, 407, 408, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 348, 0, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 0, 411, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 344, 0, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 0, 410, 411, 212, 213, 214, 215, 216, 217, + 0, 0, 0, 0, 348, 0, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 0, + 414, 415, 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, + 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, 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, @@ -5443,162 +5498,146 @@ namespace yy { 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, 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, - 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, 0, 0, + 298, 299, 300, 301, 302, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, - 0, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 0, 413, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 348, 0, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 0, 417, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 344, 0, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 0, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, + 0, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 0, 420, 421, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 344, 0, 301, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 0, 419, 420, 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, 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, 476, 477, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 348, 0, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 0, 423, 424, 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, 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, 480, 481, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 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, 0, + 0, 0, 0, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 0, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 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, 0, 0, + 0, 0, 0, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 0, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 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, 0, 0, 0, 0, 428, 429, 430, - 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 449, 0, - 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, - 460, 461, 462, 463, 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, 0, 0, 0, 0, 0, 429, 430, 431, - 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 449, 0, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 344, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 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, 0, 0, 0, 0, 331, 0, 0, + 348, 0, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 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, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, - 0, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 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, 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, - 0, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 212, 213, 214, 215, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, + 0, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 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, 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, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 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, @@ -5607,76 +5646,77 @@ namespace yy { 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, 0, 0, 0, 1, 0, 0, 0, - 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 344, - 0, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 0, 0, 0, 0, 0, 0, + 297, 298, 299, 300, 301, 302, 303, 0, 0, 0, + 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 348, 0, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 471, 0, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, - 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 475, 0, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 333, 0, 0, + 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 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, 4, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 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, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 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 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 113, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 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 }; const short int seclang_parser::yycheck_[] = { - 59, 60, 61, 292, 49, 60, 61, 140, 3, 142, - 6, 98, 3, 302, 6, 295, 296, 62, 151, 78, - 300, 201, 294, 78, 80, 297, 159, 160, 161, 301, - 295, 296, 428, 166, 79, 300, 295, 296, 295, 296, - 293, 300, 295, 296, 293, 300, 295, 296, 99, 100, - 101, 140, 141, 355, 113, 142, 143, 144, 145, 146, + 59, 60, 61, 296, 49, 60, 61, 140, 3, 142, + 6, 98, 3, 306, 6, 299, 300, 62, 151, 78, + 304, 205, 298, 78, 80, 301, 159, 160, 161, 305, + 299, 300, 432, 166, 79, 304, 299, 300, 299, 300, + 297, 304, 299, 300, 297, 304, 299, 300, 99, 100, + 101, 140, 141, 359, 113, 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, @@ -5685,38 +5725,56 @@ namespace yy { 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, 295, 296, 277, 295, 296, 295, 296, 295, - 296, 210, 211, 298, 299, 295, 296, 298, 299, -1, - 293, 294, 295, 296, 297, 295, 296, 295, 296, 295, - 296, 295, 296, 295, 296, 295, 296, 331, 332, 331, - 332, -1, 331, 332, 331, 332, -1, 331, 332, 331, - 332, -1, 331, 332, 327, 331, 332, 331, 332, 331, - 332, -1, 331, 332, 331, 332, 331, 332, 331, 332, - 331, 332, 331, 332, 331, 332, 331, 332, 331, 332, - 331, 332, 331, 332, 331, 332, 331, 332, -1, 316, - 331, 332, 331, 332, -1, -1, -1, -1, -1, -1, - -1, 300, -1, -1, -1, -1, -1, -1, -1, -1, + 227, 228, 229, 230, 231, 232, 299, 300, 281, 299, + 300, 299, 300, 299, 300, 214, 215, 302, 303, 299, + 300, 302, 303, -1, 297, 298, 299, 300, 301, 299, + 300, 299, 300, 299, 300, 299, 300, 299, 300, 299, + 300, 335, 336, 335, 336, -1, 335, 336, 335, 336, + -1, 335, 336, 335, 336, -1, 335, 336, 331, 335, + 336, 335, 336, 335, 336, -1, 335, 336, 335, 336, + 335, 336, 335, 336, 335, 336, 335, 336, 335, 336, + 335, 336, 335, 336, 335, 336, 335, 336, 335, 336, + 335, 336, -1, 320, 335, 336, 335, 336, -1, -1, + -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 331, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 346, 347, 348, - 349, 350, 351, 352, 353, 428, 429, 430, 431, -1, - -1, 434, 435, 436, -1, 438, 439, 440, 441, 442, + -1, -1, -1, -1, -1, -1, 335, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 350, 351, 352, 353, 354, 355, 356, 357, 432, + 433, 434, 435, -1, -1, 438, 439, 440, -1, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 316, 454, 455, 456, 457, 316, -1, 460, 461, 462, - 463, -1, -1, -1, -1, 468, 469, 470, -1, -1, - -1, -1, -1, -1, -1, 404, -1, -1, -1, -1, - 409, -1, -1, 412, -1, -1, 415, -1, -1, 418, - -1, -1, 421, -1, -1, -1, -1, -1, 427, -1, + 453, 454, 455, 456, 320, 458, 459, 460, 461, 320, + -1, 464, 465, 466, 467, -1, -1, -1, -1, 472, + 473, 474, -1, -1, -1, -1, -1, -1, -1, 408, + -1, -1, -1, -1, 413, -1, -1, 416, -1, -1, + 419, -1, -1, 422, -1, -1, 425, -1, -1, -1, + -1, -1, 431, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 466, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 476, 477, 464, - -1, 480, 481, 482, 483, 484, 485, 486, 487, 488, + -1, 470, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 480, 481, 468, -1, 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, -1, 511, 512, 513, 10, 11, 12, 13, 14, + 509, 510, 511, 512, 513, -1, 515, 516, 517, 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, 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, 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, @@ -5725,57 +5783,31 @@ namespace yy { 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, 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, 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, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 95, 96, 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, -1, 331, 332, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, -1, 335, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 315, -1, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 329, -1, 331, 332, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 319, -1, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, 335, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 315, -1, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, -1, 331, 332, 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, 10, 11, 12, 13, 14, 15, 16, 17, + -1, -1, -1, -1, 319, -1, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, -1, + 335, 336, 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, @@ -5792,113 +5824,123 @@ namespace yy { 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, -1, -1, + 90, 91, 92, 93, 94, 95, 96, 97, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, -1, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 319, -1, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, 335, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, -1, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, + -1, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, -1, 335, 336, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 315, -1, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - -1, 331, 332, 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, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 319, -1, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, -1, 335, 336, 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, 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, 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 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, -1, + -1, -1, -1, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 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, -1, -1, + -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, -1, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 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, -1, -1, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, -1, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 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, -1, -1, -1, -1, -1, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 315, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 10, 11, 12, 13, 14, + 319, -1, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 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, @@ -5909,9 +5951,9 @@ namespace yy { 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, -1, -1, -1, -1, 102, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 10, 11, 12, 13, 14, 15, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, + -1, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 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, @@ -5929,92 +5971,93 @@ namespace yy { 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, - -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 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, -1, -1, -1, 0, -1, -1, -1, - 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, - -1, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 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, -1, -1, -1, + 0, -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 319, -1, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 315, -1, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, - -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 319, -1, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, + -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 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, 139, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 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, 139, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 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, 98, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 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 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 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, 98, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 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 }; const unsigned short int seclang_parser::yystos_[] = { - 0, 0, 4, 5, 139, 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, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 334, 335, 336, 341, 295, 296, 140, 141, 295, 296, - 295, 296, 300, 294, 297, 301, 295, 296, 295, 296, - 295, 296, 298, 299, 295, 296, 298, 299, 295, 296, - 293, 295, 296, 98, 142, 143, 144, 145, 146, 147, + 0, 0, 4, 5, 139, 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, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 338, 339, 340, 345, 299, 300, 140, 141, 299, 300, + 299, 300, 304, 298, 301, 305, 299, 300, 299, 300, + 299, 300, 302, 303, 299, 300, 302, 303, 299, 300, + 297, 299, 300, 98, 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, @@ -6023,78 +6066,51 @@ namespace yy { 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, 316, 337, 338, 345, 337, 295, 296, 292, 302, - 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, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 342, 343, 344, 342, 342, 337, - 295, 296, 300, 295, 296, 295, 296, 342, 337, 0, - 335, 102, 344, 346, 293, 295, 296, 295, 296, 300, - 295, 296, 295, 296, 315, 344, 347, 347, 347, 347, - 347, 347, 347, 347, 338, 3, 344, 344, 331, 332, - 331, 332, 331, 332, 331, 332, 331, 332, 331, 332, - 331, 332, 331, 332, 331, 332, 331, 332, 331, 332, - 331, 332, 331, 332, 331, 332, 331, 332, 331, 332, - 331, 332, 331, 332, 331, 332, 331, 332, 331, 332, - 331, 332, 331, 332, 347, 331, 332, 331, 332, 347, - 331, 332, 347, 331, 332, 347, 331, 332, 347, 331, - 332, 347, 331, 332, 331, 332, 343, 6, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 339, 340, 347, 344, 99, 100, - 101, 315, 344, 316, 345, 316, 8, 9, 344, 340, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 337, 347, 347, 347, 344, 344 + 228, 229, 230, 231, 232, 320, 341, 342, 349, 341, + 299, 300, 296, 306, 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, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 346, 347, + 348, 346, 346, 341, 299, 300, 304, 299, 300, 299, + 300, 346, 341, 0, 339, 102, 348, 350, 297, 299, + 300, 299, 300, 304, 299, 300, 299, 300, 319, 348, + 351, 351, 351, 351, 351, 351, 351, 351, 342, 3, + 348, 348, 335, 336, 335, 336, 335, 336, 335, 336, + 335, 336, 335, 336, 335, 336, 335, 336, 335, 336, + 335, 336, 335, 336, 335, 336, 335, 336, 335, 336, + 335, 336, 335, 336, 335, 336, 335, 336, 335, 336, + 335, 336, 335, 336, 335, 336, 335, 336, 351, 335, + 336, 335, 336, 351, 335, 336, 351, 335, 336, 351, + 335, 336, 351, 335, 336, 351, 335, 336, 335, 336, + 347, 6, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 343, 344, + 351, 348, 99, 100, 101, 319, 348, 320, 349, 320, + 8, 9, 348, 344, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, + 351, 351, 351, 351, 341, 351, 351, 351, 348, 348 }; const unsigned short int seclang_parser::yyr1_[] = { - 0, 333, 334, 334, 334, 335, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 337, - 337, 338, 338, 339, 339, 339, 339, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 0, 337, 338, 338, 338, 339, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, - 341, 342, 342, 343, 343, 343, 343, 343, 343, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 341, + 341, 342, 342, 343, 343, 343, 343, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 344, 344, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, @@ -6102,8 +6118,35 @@ namespace yy { 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, - 345, 345, 346, 346, 346, 346, 346, 347, 347, 347, - 347 + 345, 346, 346, 347, 347, 347, 347, 347, 347, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 348, 348, 348, 348, 348, 348, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 350, 350, 350, 350, + 350, 351, 351, 351, 351 }; const unsigned char @@ -6151,8 +6194,8 @@ namespace yy { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 3, 3, 3, 2, 2, 1, - 1 + 1, 1, 1, 1, 1, 1, 2, 1, 3, 3, + 3, 2, 2, 1, 1 }; @@ -6242,6 +6285,7 @@ namespace yy { "\"ACTION_TRANSFORMATION_CMD_LINE\"", "\"ACTION_TRANSFORMATION_COMPRESS_WHITESPACE\"", "\"ACTION_TRANSFORMATION_CSS_DECODE\"", + "\"ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE\"", "\"ACTION_TRANSFORMATION_HEX_ENCODE\"", "\"ACTION_TRANSFORMATION_HEX_DECODE\"", "\"ACTION_TRANSFORMATION_HTML_ENTITY_DECODE\"", @@ -6262,7 +6306,10 @@ namespace yy { "\"ACTION_TRANSFORMATION_REPLACE_NULLS\"", "\"ACTION_TRANSFORMATION_SHA1\"", "\"ACTION_TRANSFORMATION_SQL_HEX_DECODE\"", - "\"ACTION_TRANSFORMATION_TRIM\"", "\"ACTION_TRANSFORMATION_UPPERCASE\"", + "\"ACTION_TRANSFORMATION_TRIM\"", "\"ACTION_TRANSFORMATION_TRIM_LEFT\"", + "\"ACTION_TRANSFORMATION_TRIM_RIGHT\"", + "\"ACTION_TRANSFORMATION_UPPERCASE\"", + "\"ACTION_TRANSFORMATION_URL_ENCODE\"", "\"ACTION_TRANSFORMATION_URL_DECODE\"", "\"ACTION_TRANSFORMATION_URL_DECODE_UNI\"", "\"ACTION_TRANSFORMATION_UTF8_TO_UNICODE\"", "\"Ver\"", "\"xmlns\"", @@ -6333,50 +6380,50 @@ namespace yy { const unsigned short int seclang_parser::yyrline_[] = { - 0, 734, 734, 738, 739, 742, 747, 753, 759, 763, - 767, 773, 779, 785, 791, 796, 801, 807, 814, 818, - 822, 828, 832, 836, 841, 846, 851, 856, 860, 867, - 871, 878, 884, 894, 903, 913, 922, 935, 939, 943, - 947, 951, 955, 959, 963, 967, 971, 976, 980, 984, - 988, 992, 997, 1002, 1006, 1010, 1014, 1018, 1022, 1026, - 1030, 1034, 1038, 1042, 1046, 1050, 1054, 1058, 1062, 1066, - 1070, 1074, 1088, 1089, 1113, 1132, 1147, 1171, 1227, 1231, - 1235, 1239, 1243, 1247, 1251, 1255, 1259, 1268, 1272, 1277, - 1280, 1285, 1290, 1295, 1300, 1303, 1308, 1311, 1316, 1321, - 1324, 1329, 1334, 1339, 1344, 1349, 1354, 1359, 1362, 1367, - 1372, 1377, 1382, 1385, 1390, 1395, 1400, 1413, 1426, 1439, - 1452, 1465, 1491, 1517, 1529, 1549, 1577, 1582, 1587, 1596, - 1601, 1605, 1609, 1613, 1617, 1621, 1625, 1630, 1635, 1647, - 1653, 1657, 1661, 1672, 1681, 1682, 1689, 1694, 1699, 1704, - 1711, 1719, 1723, 1730, 1735, 1741, 1747, 1753, 1760, 1770, - 1774, 1778, 1782, 1786, 1790, 1794, 1798, 1802, 1806, 1810, - 1814, 1818, 1822, 1826, 1830, 1834, 1838, 1842, 1846, 1850, - 1854, 1858, 1862, 1866, 1870, 1874, 1878, 1882, 1886, 1890, - 1894, 1898, 1902, 1906, 1910, 1914, 1918, 1922, 1926, 1930, - 1934, 1938, 1942, 1946, 1950, 1954, 1958, 1962, 1966, 1970, - 1974, 1978, 1982, 1986, 1990, 1994, 1998, 2002, 2006, 2010, - 2014, 2018, 2022, 2026, 2030, 2034, 2038, 2042, 2046, 2050, - 2054, 2058, 2062, 2066, 2070, 2074, 2078, 2082, 2086, 2090, - 2094, 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2131, - 2135, 2139, 2144, 2148, 2152, 2157, 2162, 2166, 2170, 2174, - 2178, 2182, 2186, 2190, 2194, 2198, 2202, 2206, 2210, 2214, - 2218, 2222, 2226, 2230, 2234, 2238, 2242, 2246, 2250, 2254, - 2258, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2294, - 2298, 2302, 2306, 2310, 2314, 2318, 2322, 2326, 2330, 2334, - 2338, 2342, 2346, 2350, 2354, 2358, 2362, 2366, 2370, 2374, - 2378, 2382, 2386, 2390, 2394, 2398, 2406, 2413, 2420, 2427, - 2434, 2441, 2448, 2455, 2462, 2469, 2476, 2483, 2493, 2497, - 2501, 2505, 2509, 2513, 2517, 2521, 2526, 2531, 2536, 2540, - 2544, 2548, 2553, 2558, 2562, 2566, 2570, 2574, 2578, 2582, - 2586, 2590, 2594, 2598, 2602, 2607, 2611, 2616, 2620, 2624, - 2628, 2632, 2636, 2640, 2644, 2648, 2652, 2656, 2660, 2664, - 2668, 2672, 2676, 2680, 2684, 2688, 2692, 2696, 2700, 2704, - 2708, 2712, 2716, 2720, 2724, 2728, 2732, 2736, 2740, 2744, - 2748, 2752, 2756, 2760, 2764, 2768, 2772, 2776, 2780, 2784, - 2788, 2792, 2796, 2800, 2804, 2808, 2812, 2816, 2820, 2824, - 2828, 2832, 2836, 2840, 2844, 2848, 2852, 2856, 2860, 2864, - 2868, 2872, 2879, 2883, 2887, 2891, 2895, 2902, 2907, 2912, - 2918 + 0, 738, 738, 742, 743, 746, 751, 757, 763, 767, + 771, 777, 783, 789, 795, 800, 805, 811, 818, 822, + 826, 832, 836, 840, 845, 850, 855, 860, 864, 871, + 875, 882, 888, 898, 907, 917, 926, 939, 943, 947, + 951, 955, 959, 963, 967, 971, 975, 980, 984, 988, + 992, 996, 1001, 1006, 1010, 1014, 1018, 1022, 1026, 1030, + 1034, 1038, 1042, 1046, 1050, 1054, 1058, 1062, 1066, 1070, + 1074, 1078, 1092, 1093, 1117, 1136, 1151, 1175, 1231, 1235, + 1239, 1243, 1247, 1251, 1255, 1259, 1263, 1272, 1276, 1281, + 1284, 1289, 1294, 1299, 1304, 1307, 1312, 1315, 1320, 1325, + 1328, 1333, 1338, 1343, 1348, 1353, 1358, 1363, 1366, 1371, + 1376, 1381, 1386, 1389, 1394, 1399, 1404, 1417, 1430, 1443, + 1456, 1469, 1495, 1521, 1533, 1553, 1581, 1586, 1591, 1600, + 1605, 1609, 1613, 1617, 1621, 1625, 1629, 1634, 1639, 1651, + 1657, 1661, 1665, 1676, 1685, 1686, 1693, 1698, 1703, 1708, + 1715, 1723, 1727, 1734, 1739, 1745, 1751, 1757, 1764, 1774, + 1778, 1782, 1786, 1790, 1794, 1798, 1802, 1806, 1810, 1814, + 1818, 1822, 1826, 1830, 1834, 1838, 1842, 1846, 1850, 1854, + 1858, 1862, 1866, 1870, 1874, 1878, 1882, 1886, 1890, 1894, + 1898, 1902, 1906, 1910, 1914, 1918, 1922, 1926, 1930, 1934, + 1938, 1942, 1946, 1950, 1954, 1958, 1962, 1966, 1970, 1974, + 1978, 1982, 1986, 1990, 1994, 1998, 2002, 2006, 2010, 2014, + 2018, 2022, 2026, 2030, 2034, 2038, 2042, 2046, 2050, 2054, + 2058, 2062, 2066, 2070, 2074, 2078, 2082, 2086, 2090, 2094, + 2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2135, + 2139, 2143, 2148, 2152, 2156, 2161, 2166, 2170, 2174, 2178, + 2182, 2186, 2190, 2194, 2198, 2202, 2206, 2210, 2214, 2218, + 2222, 2226, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 2258, + 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2294, 2298, + 2302, 2306, 2310, 2314, 2318, 2322, 2326, 2330, 2334, 2338, + 2342, 2346, 2350, 2354, 2358, 2362, 2366, 2370, 2374, 2378, + 2382, 2386, 2390, 2394, 2398, 2402, 2410, 2417, 2424, 2431, + 2438, 2445, 2452, 2459, 2466, 2473, 2480, 2487, 2497, 2501, + 2505, 2509, 2513, 2517, 2521, 2525, 2530, 2535, 2540, 2544, + 2548, 2552, 2557, 2562, 2566, 2570, 2574, 2578, 2582, 2586, + 2590, 2594, 2598, 2602, 2606, 2611, 2615, 2620, 2624, 2628, + 2632, 2636, 2640, 2644, 2648, 2652, 2656, 2660, 2664, 2668, + 2672, 2676, 2680, 2684, 2688, 2692, 2696, 2700, 2704, 2708, + 2712, 2716, 2720, 2724, 2728, 2732, 2736, 2740, 2744, 2748, + 2752, 2756, 2760, 2764, 2768, 2772, 2776, 2780, 2784, 2788, + 2792, 2796, 2800, 2804, 2808, 2812, 2816, 2820, 2824, 2828, + 2832, 2836, 2840, 2844, 2848, 2852, 2856, 2860, 2864, 2868, + 2872, 2876, 2880, 2884, 2888, 2892, 2899, 2903, 2907, 2911, + 2915, 2922, 2927, 2932, 2938 }; // Print the state stack on the debug stream. @@ -6411,8 +6458,8 @@ namespace yy { } // yy -#line 6415 "seclang-parser.cc" // lalr1.cc:1167 -#line 2925 "seclang-parser.yy" // lalr1.cc:1168 +#line 6462 "seclang-parser.cc" // lalr1.cc:1155 +#line 2945 "seclang-parser.yy" // lalr1.cc:1156 void yy::seclang_parser::error (const location_type& l, const std::string& m) { diff --git a/src/parser/seclang-parser.hh b/src/parser/seclang-parser.hh index e63c559618..03bd42e1a7 100644 --- a/src/parser/seclang-parser.hh +++ b/src/parser/seclang-parser.hh @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.4. +// A Bison parser, made by GNU Bison 3.0.2. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2015 Free Software Foundation, Inc. +// Copyright (C) 2002-2013 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 @@ -40,7 +40,7 @@ #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 +#line 10 "seclang-parser.yy" // lalr1.cc:372 #include #include @@ -379,14 +379,13 @@ using modsecurity::operators::Operator; -#line 383 "seclang-parser.hh" // lalr1.cc:377 +#line 383 "seclang-parser.hh" // lalr1.cc:372 # include -# include // std::abort +# include # include # include # include -# include # include "stack.hh" # include "location.hh" #include @@ -456,7 +455,7 @@ using modsecurity::operators::Operator; namespace yy { -#line 460 "seclang-parser.hh" // lalr1.cc:377 +#line 459 "seclang-parser.hh" // lalr1.cc:372 @@ -473,13 +472,13 @@ namespace yy { /// Empty construction. variant () - : yytypeid_ (YY_NULLPTR) + : yytname_ (YY_NULLPTR) {} /// Construct and fill. template variant (const T& t) - : yytypeid_ (&typeid (T)) + : yytname_ (typeid (T).name ()) { YYASSERT (sizeof (T) <= S); new (yyas_ ()) T (t); @@ -488,7 +487,7 @@ namespace yy { /// Destruction, allowed only if empty. ~variant () { - YYASSERT (!yytypeid_); + YYASSERT (!yytname_); } /// Instantiate an empty \a T in here. @@ -496,9 +495,9 @@ namespace yy { T& build () { - YYASSERT (!yytypeid_); + YYASSERT (!yytname_); YYASSERT (sizeof (T) <= S); - yytypeid_ = & typeid (T); + yytname_ = typeid (T).name (); return *new (yyas_ ()) T; } @@ -507,9 +506,9 @@ namespace yy { T& build (const T& t) { - YYASSERT (!yytypeid_); + YYASSERT (!yytname_); YYASSERT (sizeof (T) <= S); - yytypeid_ = & typeid (T); + yytname_ = typeid (T).name (); return *new (yyas_ ()) T (std::move((T&)t)); } @@ -518,7 +517,7 @@ namespace yy { T& as () { - YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (yytname_ == typeid (T).name ()); YYASSERT (sizeof (T) <= S); return *yyas_ (); } @@ -528,7 +527,7 @@ namespace yy { const T& as () const { - YYASSERT (*yytypeid_ == typeid (T)); + YYASSERT (yytname_ == typeid (T).name ()); YYASSERT (sizeof (T) <= S); return *yyas_ (); } @@ -545,8 +544,8 @@ namespace yy { void swap (self_type& other) { - YYASSERT (yytypeid_); - YYASSERT (*yytypeid_ == *other.yytypeid_); + YYASSERT (yytname_); + YYASSERT (yytname_ == other.yytname_); std::swap (as (), other.as ()); } @@ -576,7 +575,7 @@ namespace yy { destroy () { as ().~T (); - yytypeid_ = YY_NULLPTR; + yytname_ = YY_NULLPTR; } private: @@ -611,7 +610,7 @@ namespace yy { } yybuffer_; /// Whether the content is built: if defined, the name of the stored type. - const std::type_info *yytypeid_; + const char *yytname_; }; @@ -681,6 +680,7 @@ namespace yy { // "ACTION_TRANSFORMATION_CMD_LINE" // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" // "ACTION_TRANSFORMATION_CSS_DECODE" + // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" // "ACTION_TRANSFORMATION_HEX_ENCODE" // "ACTION_TRANSFORMATION_HEX_DECODE" // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" @@ -703,7 +703,10 @@ namespace yy { // "ACTION_TRANSFORMATION_SHA1" // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" // "ACTION_TRANSFORMATION_TRIM" + // "ACTION_TRANSFORMATION_TRIM_LEFT" + // "ACTION_TRANSFORMATION_TRIM_RIGHT" // "ACTION_TRANSFORMATION_UPPERCASE" + // "ACTION_TRANSFORMATION_URL_ENCODE" // "ACTION_TRANSFORMATION_URL_DECODE" // "ACTION_TRANSFORMATION_URL_DECODE_UNI" // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" @@ -1057,150 +1060,151 @@ namespace yy { TOK_ACTION_TRANSFORMATION_CMD_LINE = 453, TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE = 454, TOK_ACTION_TRANSFORMATION_CSS_DECODE = 455, - TOK_ACTION_TRANSFORMATION_HEX_ENCODE = 456, - TOK_ACTION_TRANSFORMATION_HEX_DECODE = 457, - TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE = 458, - TOK_ACTION_TRANSFORMATION_JS_DECODE = 459, - TOK_ACTION_TRANSFORMATION_LENGTH = 460, - TOK_ACTION_TRANSFORMATION_LOWERCASE = 461, - TOK_ACTION_TRANSFORMATION_MD5 = 462, - TOK_ACTION_TRANSFORMATION_NONE = 463, - TOK_ACTION_TRANSFORMATION_NORMALISE_PATH = 464, - TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN = 465, - TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT = 466, - TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT = 467, - TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT = 468, - TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS = 469, - TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR = 470, - TOK_ACTION_TRANSFORMATION_REMOVE_NULLS = 471, - TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE = 472, - TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS = 473, - TOK_ACTION_TRANSFORMATION_REPLACE_NULLS = 474, - TOK_ACTION_TRANSFORMATION_SHA1 = 475, - TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE = 476, - TOK_ACTION_TRANSFORMATION_TRIM = 477, - TOK_ACTION_TRANSFORMATION_UPPERCASE = 478, - TOK_ACTION_TRANSFORMATION_URL_DECODE = 479, - TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI = 480, - TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE = 481, - TOK_ACTION_VER = 482, - TOK_ACTION_XMLNS = 483, - TOK_CONFIG_COMPONENT_SIG = 484, - TOK_CONFIG_CONN_ENGINE = 485, - TOK_CONFIG_SEC_ARGUMENT_SEPARATOR = 486, - TOK_CONFIG_SEC_WEB_APP_ID = 487, - TOK_CONFIG_SEC_SERVER_SIG = 488, - TOK_CONFIG_DIR_AUDIT_DIR = 489, - TOK_CONFIG_DIR_AUDIT_DIR_MOD = 490, - TOK_CONFIG_DIR_AUDIT_ENG = 491, - TOK_CONFIG_DIR_AUDIT_FLE_MOD = 492, - TOK_CONFIG_DIR_AUDIT_LOG = 493, - TOK_CONFIG_DIR_AUDIT_LOG2 = 494, - TOK_CONFIG_DIR_AUDIT_LOG_P = 495, - TOK_CONFIG_DIR_AUDIT_STS = 496, - TOK_CONFIG_DIR_AUDIT_TPE = 497, - TOK_CONFIG_DIR_DEBUG_LOG = 498, - TOK_CONFIG_DIR_DEBUG_LVL = 499, - TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS = 500, - TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS = 501, - TOK_CONFIG_SEC_HASH_ENGINE = 502, - TOK_CONFIG_SEC_HASH_KEY = 503, - TOK_CONFIG_SEC_HASH_PARAM = 504, - TOK_CONFIG_SEC_HASH_METHOD_RX = 505, - TOK_CONFIG_SEC_HASH_METHOD_PM = 506, - TOK_CONFIG_SEC_CHROOT_DIR = 507, - TOK_CONFIG_DIR_GEO_DB = 508, - TOK_CONFIG_DIR_GSB_DB = 509, - TOK_CONFIG_SEC_GUARDIAN_LOG = 510, - TOK_CONFIG_DIR_PCRE_MATCH_LIMIT = 511, - TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION = 512, - TOK_CONFIG_SEC_CONN_R_STATE_LIMIT = 513, - TOK_CONFIG_SEC_CONN_W_STATE_LIMIT = 514, - TOK_CONFIG_SEC_SENSOR_ID = 515, - TOK_CONFIG_DIR_REQ_BODY = 516, - TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT = 517, - TOK_CONFIG_DIR_REQ_BODY_LIMIT = 518, - TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION = 519, - TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT = 520, - TOK_CONFIG_DIR_RES_BODY = 521, - TOK_CONFIG_DIR_RES_BODY_LIMIT = 522, - TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION = 523, - TOK_CONFIG_SEC_RULE_INHERITANCE = 524, - TOK_CONFIG_SEC_RULE_PERF_TIME = 525, - TOK_CONFIG_DIR_RULE_ENG = 526, - TOK_CONFIG_DIR_SEC_ACTION = 527, - TOK_CONFIG_DIR_SEC_DEFAULT_ACTION = 528, - TOK_CONFIG_DIR_SEC_MARKER = 529, - TOK_CONFIG_DIR_UNICODE_MAP_FILE = 530, - TOK_CONFIG_SEC_COLLECTION_TIMEOUT = 531, - TOK_CONFIG_SEC_HTTP_BLKEY = 532, - TOK_CONFIG_SEC_INTERCEPT_ON_ERROR = 533, - TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION = 534, - TOK_CONFIG_SEC_RULE_REMOVE_BY_ID = 535, - TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG = 536, - TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG = 537, - TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG = 538, - TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG = 539, - TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID = 540, - TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID = 541, - TOK_CONFIG_UPDLOAD_KEEP_FILES = 542, - TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES = 543, - TOK_CONFIG_UPLOAD_DIR = 544, - TOK_CONFIG_UPLOAD_FILE_LIMIT = 545, - TOK_CONFIG_UPLOAD_FILE_MODE = 546, - TOK_CONFIG_VALUE_ABORT = 547, - TOK_CONFIG_VALUE_DETC = 548, - TOK_CONFIG_VALUE_HTTPS = 549, - TOK_CONFIG_VALUE_OFF = 550, - TOK_CONFIG_VALUE_ON = 551, - TOK_CONFIG_VALUE_PARALLEL = 552, - TOK_CONFIG_VALUE_PROCESS_PARTIAL = 553, - TOK_CONFIG_VALUE_REJECT = 554, - TOK_CONFIG_VALUE_RELEVANT_ONLY = 555, - TOK_CONFIG_VALUE_SERIAL = 556, - TOK_CONFIG_VALUE_WARN = 557, - TOK_CONFIG_XML_EXTERNAL_ENTITY = 558, - TOK_CONGIG_DIR_RESPONSE_BODY_MP = 559, - TOK_CONGIG_DIR_SEC_ARG_SEP = 560, - TOK_CONGIG_DIR_SEC_COOKIE_FORMAT = 561, - TOK_CONFIG_SEC_COOKIEV0_SEPARATOR = 562, - TOK_CONGIG_DIR_SEC_DATA_DIR = 563, - TOK_CONGIG_DIR_SEC_STATUS_ENGINE = 564, - TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION = 565, - TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION = 566, - TOK_CONGIG_DIR_SEC_TMP_DIR = 567, - TOK_DIRECTIVE = 568, - TOK_DIRECTIVE_SECRULESCRIPT = 569, - TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION = 570, - TOK_QUOTATION_MARK = 571, - TOK_RUN_TIME_VAR_BLD = 572, - TOK_RUN_TIME_VAR_DUR = 573, - TOK_RUN_TIME_VAR_HSV = 574, - TOK_RUN_TIME_VAR_REMOTE_USER = 575, - TOK_RUN_TIME_VAR_TIME = 576, - TOK_RUN_TIME_VAR_TIME_DAY = 577, - TOK_RUN_TIME_VAR_TIME_EPOCH = 578, - TOK_RUN_TIME_VAR_TIME_HOUR = 579, - TOK_RUN_TIME_VAR_TIME_MIN = 580, - TOK_RUN_TIME_VAR_TIME_MON = 581, - TOK_RUN_TIME_VAR_TIME_SEC = 582, - TOK_RUN_TIME_VAR_TIME_WDAY = 583, - TOK_RUN_TIME_VAR_TIME_YEAR = 584, - TOK_VARIABLE = 585, - TOK_DICT_ELEMENT = 586, - TOK_DICT_ELEMENT_REGEXP = 587 + TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE = 456, + TOK_ACTION_TRANSFORMATION_HEX_ENCODE = 457, + TOK_ACTION_TRANSFORMATION_HEX_DECODE = 458, + TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE = 459, + TOK_ACTION_TRANSFORMATION_JS_DECODE = 460, + TOK_ACTION_TRANSFORMATION_LENGTH = 461, + TOK_ACTION_TRANSFORMATION_LOWERCASE = 462, + TOK_ACTION_TRANSFORMATION_MD5 = 463, + TOK_ACTION_TRANSFORMATION_NONE = 464, + TOK_ACTION_TRANSFORMATION_NORMALISE_PATH = 465, + TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN = 466, + TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT = 467, + TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT = 468, + TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT = 469, + TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS = 470, + TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR = 471, + TOK_ACTION_TRANSFORMATION_REMOVE_NULLS = 472, + TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE = 473, + TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS = 474, + TOK_ACTION_TRANSFORMATION_REPLACE_NULLS = 475, + TOK_ACTION_TRANSFORMATION_SHA1 = 476, + TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE = 477, + TOK_ACTION_TRANSFORMATION_TRIM = 478, + TOK_ACTION_TRANSFORMATION_TRIM_LEFT = 479, + TOK_ACTION_TRANSFORMATION_TRIM_RIGHT = 480, + TOK_ACTION_TRANSFORMATION_UPPERCASE = 481, + TOK_ACTION_TRANSFORMATION_URL_ENCODE = 482, + TOK_ACTION_TRANSFORMATION_URL_DECODE = 483, + TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI = 484, + TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE = 485, + TOK_ACTION_VER = 486, + TOK_ACTION_XMLNS = 487, + TOK_CONFIG_COMPONENT_SIG = 488, + TOK_CONFIG_CONN_ENGINE = 489, + TOK_CONFIG_SEC_ARGUMENT_SEPARATOR = 490, + TOK_CONFIG_SEC_WEB_APP_ID = 491, + TOK_CONFIG_SEC_SERVER_SIG = 492, + TOK_CONFIG_DIR_AUDIT_DIR = 493, + TOK_CONFIG_DIR_AUDIT_DIR_MOD = 494, + TOK_CONFIG_DIR_AUDIT_ENG = 495, + TOK_CONFIG_DIR_AUDIT_FLE_MOD = 496, + TOK_CONFIG_DIR_AUDIT_LOG = 497, + TOK_CONFIG_DIR_AUDIT_LOG2 = 498, + TOK_CONFIG_DIR_AUDIT_LOG_P = 499, + TOK_CONFIG_DIR_AUDIT_STS = 500, + TOK_CONFIG_DIR_AUDIT_TPE = 501, + TOK_CONFIG_DIR_DEBUG_LOG = 502, + TOK_CONFIG_DIR_DEBUG_LVL = 503, + TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS = 504, + TOK_CONFIG_SEC_DISABLE_BACKEND_COMPRESS = 505, + TOK_CONFIG_SEC_HASH_ENGINE = 506, + TOK_CONFIG_SEC_HASH_KEY = 507, + TOK_CONFIG_SEC_HASH_PARAM = 508, + TOK_CONFIG_SEC_HASH_METHOD_RX = 509, + TOK_CONFIG_SEC_HASH_METHOD_PM = 510, + TOK_CONFIG_SEC_CHROOT_DIR = 511, + TOK_CONFIG_DIR_GEO_DB = 512, + TOK_CONFIG_DIR_GSB_DB = 513, + TOK_CONFIG_SEC_GUARDIAN_LOG = 514, + TOK_CONFIG_DIR_PCRE_MATCH_LIMIT = 515, + TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION = 516, + TOK_CONFIG_SEC_CONN_R_STATE_LIMIT = 517, + TOK_CONFIG_SEC_CONN_W_STATE_LIMIT = 518, + TOK_CONFIG_SEC_SENSOR_ID = 519, + TOK_CONFIG_DIR_REQ_BODY = 520, + TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT = 521, + TOK_CONFIG_DIR_REQ_BODY_LIMIT = 522, + TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION = 523, + TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT = 524, + TOK_CONFIG_DIR_RES_BODY = 525, + TOK_CONFIG_DIR_RES_BODY_LIMIT = 526, + TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION = 527, + TOK_CONFIG_SEC_RULE_INHERITANCE = 528, + TOK_CONFIG_SEC_RULE_PERF_TIME = 529, + TOK_CONFIG_DIR_RULE_ENG = 530, + TOK_CONFIG_DIR_SEC_ACTION = 531, + TOK_CONFIG_DIR_SEC_DEFAULT_ACTION = 532, + TOK_CONFIG_DIR_SEC_MARKER = 533, + TOK_CONFIG_DIR_UNICODE_MAP_FILE = 534, + TOK_CONFIG_SEC_COLLECTION_TIMEOUT = 535, + TOK_CONFIG_SEC_HTTP_BLKEY = 536, + TOK_CONFIG_SEC_INTERCEPT_ON_ERROR = 537, + TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION = 538, + TOK_CONFIG_SEC_RULE_REMOVE_BY_ID = 539, + TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG = 540, + TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG = 541, + TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG = 542, + TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG = 543, + TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID = 544, + TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID = 545, + TOK_CONFIG_UPDLOAD_KEEP_FILES = 546, + TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES = 547, + TOK_CONFIG_UPLOAD_DIR = 548, + TOK_CONFIG_UPLOAD_FILE_LIMIT = 549, + TOK_CONFIG_UPLOAD_FILE_MODE = 550, + TOK_CONFIG_VALUE_ABORT = 551, + TOK_CONFIG_VALUE_DETC = 552, + TOK_CONFIG_VALUE_HTTPS = 553, + TOK_CONFIG_VALUE_OFF = 554, + TOK_CONFIG_VALUE_ON = 555, + TOK_CONFIG_VALUE_PARALLEL = 556, + TOK_CONFIG_VALUE_PROCESS_PARTIAL = 557, + TOK_CONFIG_VALUE_REJECT = 558, + TOK_CONFIG_VALUE_RELEVANT_ONLY = 559, + TOK_CONFIG_VALUE_SERIAL = 560, + TOK_CONFIG_VALUE_WARN = 561, + TOK_CONFIG_XML_EXTERNAL_ENTITY = 562, + TOK_CONGIG_DIR_RESPONSE_BODY_MP = 563, + TOK_CONGIG_DIR_SEC_ARG_SEP = 564, + TOK_CONGIG_DIR_SEC_COOKIE_FORMAT = 565, + TOK_CONFIG_SEC_COOKIEV0_SEPARATOR = 566, + TOK_CONGIG_DIR_SEC_DATA_DIR = 567, + TOK_CONGIG_DIR_SEC_STATUS_ENGINE = 568, + TOK_CONFIG_SEC_STREAM_IN_BODY_INSPECTION = 569, + TOK_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION = 570, + TOK_CONGIG_DIR_SEC_TMP_DIR = 571, + TOK_DIRECTIVE = 572, + TOK_DIRECTIVE_SECRULESCRIPT = 573, + TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION = 574, + TOK_QUOTATION_MARK = 575, + TOK_RUN_TIME_VAR_BLD = 576, + TOK_RUN_TIME_VAR_DUR = 577, + TOK_RUN_TIME_VAR_HSV = 578, + TOK_RUN_TIME_VAR_REMOTE_USER = 579, + TOK_RUN_TIME_VAR_TIME = 580, + TOK_RUN_TIME_VAR_TIME_DAY = 581, + TOK_RUN_TIME_VAR_TIME_EPOCH = 582, + TOK_RUN_TIME_VAR_TIME_HOUR = 583, + TOK_RUN_TIME_VAR_TIME_MIN = 584, + TOK_RUN_TIME_VAR_TIME_MON = 585, + TOK_RUN_TIME_VAR_TIME_SEC = 586, + TOK_RUN_TIME_VAR_TIME_WDAY = 587, + TOK_RUN_TIME_VAR_TIME_YEAR = 588, + TOK_VARIABLE = 589, + TOK_DICT_ELEMENT = 590, + TOK_DICT_ELEMENT_REGEXP = 591 }; }; /// (External) token type, as returned by yylex. typedef token::yytokentype token_type; - /// Symbol type: an internal symbol number. + /// 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; @@ -1246,15 +1250,8 @@ namespace yy { 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); @@ -1284,23 +1281,21 @@ namespace yy { /// 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. + /// -1 when this symbol is empty. symbol_number_type type_get () const; /// The token. token_type token () const; + enum { empty = 0 }; + /// The symbol type. - /// \a empty_symbol when empty. - /// An int, not token_number_type, to be able to store empty_symbol. - int type; + /// -1 when this symbol is empty. + token_number_type type; }; /// "External" symbols: returned by the scanner. @@ -2103,6 +2098,10 @@ namespace yy { symbol_type make_ACTION_TRANSFORMATION_CSS_DECODE (const std::string& v, const location_type& l); + static inline + symbol_type + make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (const std::string& v, const location_type& l); + static inline symbol_type make_ACTION_TRANSFORMATION_HEX_ENCODE (const std::string& v, const location_type& l); @@ -2191,10 +2190,22 @@ namespace yy { symbol_type make_ACTION_TRANSFORMATION_TRIM (const std::string& v, const location_type& l); + static inline + symbol_type + make_ACTION_TRANSFORMATION_TRIM_LEFT (const std::string& v, const location_type& l); + + static inline + symbol_type + make_ACTION_TRANSFORMATION_TRIM_RIGHT (const std::string& v, const location_type& l); + static inline symbol_type make_ACTION_TRANSFORMATION_UPPERCASE (const std::string& v, const location_type& l); + static inline + symbol_type + make_ACTION_TRANSFORMATION_URL_ENCODE (const std::string& v, const location_type& l); + static inline symbol_type make_ACTION_TRANSFORMATION_URL_DECODE (const std::string& v, const location_type& l); @@ -2672,9 +2683,9 @@ namespace yy { /// Generate an error message. /// \param yystate the state where the error occurred. - /// \param yyla the lookahead token. + /// \param yytoken the lookahead token type, or yyempty_. virtual std::string yysyntax_error_ (state_type yystate, - const symbol_type& yyla) const; + symbol_number_type yytoken) const; /// Compute post-reduction state. /// \param yystate the current state @@ -2777,21 +2788,16 @@ namespace yy { /// 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. + /// "empty" when empty. symbol_number_type type_get () const; - /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + enum { empty = 0 }; /// The state. - /// \a empty when empty. state_type state; }; @@ -2832,16 +2838,17 @@ namespace yy { /// Pop \a n symbols the three stacks. void yypop_ (unsigned int n = 1); - /// Constants. + // Constants. enum { yyeof_ = 0, - yylast_ = 3261, ///< Last index in yytable_. + yylast_ = 3297, ///< Last index in yytable_. yynnts_ = 15, ///< Number of nonterminal symbols. - yyfinal_ = 329, ///< Termination state number. + yyempty_ = -2, + yyfinal_ = 333, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 333 ///< Number of tokens. + yyntokens_ = 337 ///< Number of tokens. }; @@ -2916,9 +2923,10 @@ namespace yy { 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 + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336 }; - const unsigned int user_token_number_max_ = 587; + const unsigned int user_token_number_max_ = 591; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) @@ -3009,166 +3017,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" value.copy< std::string > (other.value); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init value.copy< std::unique_ptr > (other.value); break; - case 347: // run_time_string + case 351: // run_time_string value.copy< std::unique_ptr > (other.value); break; - case 344: // var + case 348: // var value.copy< std::unique_ptr > (other.value); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action value.copy< std::unique_ptr > (other.value); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted value.copy< std::unique_ptr > > > (other.value); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted value.copy< std::unique_ptr > > > (other.value); break; @@ -3247,166 +3259,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" value.copy< std::string > (v); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init value.copy< std::unique_ptr > (v); break; - case 347: // run_time_string + case 351: // run_time_string value.copy< std::unique_ptr > (v); break; - case 344: // var + case 348: // var value.copy< std::unique_ptr > (v); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action value.copy< std::unique_ptr > (v); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted value.copy< std::unique_ptr > > > (v); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted value.copy< std::unique_ptr > > > (v); break; @@ -3478,19 +3494,9 @@ namespace yy { 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: @@ -3558,166 +3564,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" value.template destroy< std::string > (); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init value.template destroy< std::unique_ptr > (); break; - case 347: // run_time_string + case 351: // run_time_string value.template destroy< std::unique_ptr > (); break; - case 344: // var + case 348: // var value.template destroy< std::unique_ptr > (); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action value.template destroy< std::unique_ptr > (); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted value.template destroy< std::unique_ptr > > > (); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted value.template destroy< std::unique_ptr > > > (); break; @@ -3725,15 +3735,6 @@ namespace yy { break; } - Base::clear (); - } - - template - inline - bool - seclang_parser::basic_symbol::empty () const - { - return Base::type_get () == empty_symbol; } template @@ -3802,166 +3803,170 @@ namespace yy { case 198: // "ACTION_TRANSFORMATION_CMD_LINE" case 199: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" case 200: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 201: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 202: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 203: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 204: // "ACTION_TRANSFORMATION_JS_DECODE" - case 205: // "ACTION_TRANSFORMATION_LENGTH" - case 206: // "ACTION_TRANSFORMATION_LOWERCASE" - case 207: // "ACTION_TRANSFORMATION_MD5" - case 208: // "ACTION_TRANSFORMATION_NONE" - case 209: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 211: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 212: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 213: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 214: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 216: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 217: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 218: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 219: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 220: // "ACTION_TRANSFORMATION_SHA1" - case 221: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 222: // "ACTION_TRANSFORMATION_TRIM" - case 223: // "ACTION_TRANSFORMATION_UPPERCASE" - case 224: // "ACTION_TRANSFORMATION_URL_DECODE" - case 225: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 226: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 227: // "Ver" - case 228: // "xmlns" - case 229: // "CONFIG_COMPONENT_SIG" - case 230: // "CONFIG_CONN_ENGINE" - case 231: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 232: // "CONFIG_SEC_WEB_APP_ID" - case 233: // "CONFIG_SEC_SERVER_SIG" - case 234: // "CONFIG_DIR_AUDIT_DIR" - case 235: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 236: // "CONFIG_DIR_AUDIT_ENG" - case 237: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 238: // "CONFIG_DIR_AUDIT_LOG" - case 239: // "CONFIG_DIR_AUDIT_LOG2" - case 240: // "CONFIG_DIR_AUDIT_LOG_P" - case 241: // "CONFIG_DIR_AUDIT_STS" - case 242: // "CONFIG_DIR_AUDIT_TPE" - case 243: // "CONFIG_DIR_DEBUG_LOG" - case 244: // "CONFIG_DIR_DEBUG_LVL" - case 245: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 246: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" - case 247: // "CONFIG_SEC_HASH_ENGINE" - case 248: // "CONFIG_SEC_HASH_KEY" - case 249: // "CONFIG_SEC_HASH_PARAM" - case 250: // "CONFIG_SEC_HASH_METHOD_RX" - case 251: // "CONFIG_SEC_HASH_METHOD_PM" - case 252: // "CONFIG_SEC_CHROOT_DIR" - case 253: // "CONFIG_DIR_GEO_DB" - case 254: // "CONFIG_DIR_GSB_DB" - case 255: // "CONFIG_SEC_GUARDIAN_LOG" - case 256: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 257: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 258: // "CONFIG_SEC_CONN_R_STATE_LIMIT" - case 259: // "CONFIG_SEC_CONN_W_STATE_LIMIT" - case 260: // "CONFIG_SEC_SENSOR_ID" - case 261: // "CONFIG_DIR_REQ_BODY" - case 262: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 263: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 264: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 265: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 266: // "CONFIG_DIR_RES_BODY" - case 267: // "CONFIG_DIR_RES_BODY_LIMIT" - case 268: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 269: // "CONFIG_SEC_RULE_INHERITANCE" - case 270: // "CONFIG_SEC_RULE_PERF_TIME" - case 271: // "CONFIG_DIR_RULE_ENG" - case 272: // "CONFIG_DIR_SEC_ACTION" - case 273: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 274: // "CONFIG_DIR_SEC_MARKER" - case 275: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 276: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 277: // "CONFIG_SEC_HTTP_BLKEY" - case 278: // "CONFIG_SEC_INTERCEPT_ON_ERROR" - case 279: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 280: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 281: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 282: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 283: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 284: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 285: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 286: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 287: // "CONFIG_UPDLOAD_KEEP_FILES" - case 288: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 289: // "CONFIG_UPLOAD_DIR" - case 290: // "CONFIG_UPLOAD_FILE_LIMIT" - case 291: // "CONFIG_UPLOAD_FILE_MODE" - case 292: // "CONFIG_VALUE_ABORT" - case 293: // "CONFIG_VALUE_DETC" - case 294: // "CONFIG_VALUE_HTTPS" - case 295: // "CONFIG_VALUE_OFF" - case 296: // "CONFIG_VALUE_ON" - case 297: // "CONFIG_VALUE_PARALLEL" - case 298: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 299: // "CONFIG_VALUE_REJECT" - case 300: // "CONFIG_VALUE_RELEVANT_ONLY" - case 301: // "CONFIG_VALUE_SERIAL" - case 302: // "CONFIG_VALUE_WARN" - case 303: // "CONFIG_XML_EXTERNAL_ENTITY" - case 304: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 305: // "CONGIG_DIR_SEC_ARG_SEP" - case 306: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 307: // "CONFIG_SEC_COOKIEV0_SEPARATOR" - case 308: // "CONGIG_DIR_SEC_DATA_DIR" - case 309: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 310: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" - case 311: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" - case 312: // "CONGIG_DIR_SEC_TMP_DIR" - case 313: // "DIRECTIVE" - case 314: // "DIRECTIVE_SECRULESCRIPT" - case 315: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 316: // "QUOTATION_MARK" - case 317: // "RUN_TIME_VAR_BLD" - case 318: // "RUN_TIME_VAR_DUR" - case 319: // "RUN_TIME_VAR_HSV" - case 320: // "RUN_TIME_VAR_REMOTE_USER" - case 321: // "RUN_TIME_VAR_TIME" - case 322: // "RUN_TIME_VAR_TIME_DAY" - case 323: // "RUN_TIME_VAR_TIME_EPOCH" - case 324: // "RUN_TIME_VAR_TIME_HOUR" - case 325: // "RUN_TIME_VAR_TIME_MIN" - case 326: // "RUN_TIME_VAR_TIME_MON" - case 327: // "RUN_TIME_VAR_TIME_SEC" - case 328: // "RUN_TIME_VAR_TIME_WDAY" - case 329: // "RUN_TIME_VAR_TIME_YEAR" - case 330: // "VARIABLE" - case 331: // "Dictionary element" - case 332: // "Dictionary element, selected by regexp" + case 201: // "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" + case 202: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 203: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 204: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 205: // "ACTION_TRANSFORMATION_JS_DECODE" + case 206: // "ACTION_TRANSFORMATION_LENGTH" + case 207: // "ACTION_TRANSFORMATION_LOWERCASE" + case 208: // "ACTION_TRANSFORMATION_MD5" + case 209: // "ACTION_TRANSFORMATION_NONE" + case 210: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 211: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 212: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 213: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 214: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 215: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 216: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 217: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 218: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 219: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 220: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 221: // "ACTION_TRANSFORMATION_SHA1" + case 222: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 223: // "ACTION_TRANSFORMATION_TRIM" + case 224: // "ACTION_TRANSFORMATION_TRIM_LEFT" + case 225: // "ACTION_TRANSFORMATION_TRIM_RIGHT" + case 226: // "ACTION_TRANSFORMATION_UPPERCASE" + case 227: // "ACTION_TRANSFORMATION_URL_ENCODE" + case 228: // "ACTION_TRANSFORMATION_URL_DECODE" + case 229: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 230: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 231: // "Ver" + case 232: // "xmlns" + case 233: // "CONFIG_COMPONENT_SIG" + case 234: // "CONFIG_CONN_ENGINE" + case 235: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 236: // "CONFIG_SEC_WEB_APP_ID" + case 237: // "CONFIG_SEC_SERVER_SIG" + case 238: // "CONFIG_DIR_AUDIT_DIR" + case 239: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 240: // "CONFIG_DIR_AUDIT_ENG" + case 241: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 242: // "CONFIG_DIR_AUDIT_LOG" + case 243: // "CONFIG_DIR_AUDIT_LOG2" + case 244: // "CONFIG_DIR_AUDIT_LOG_P" + case 245: // "CONFIG_DIR_AUDIT_STS" + case 246: // "CONFIG_DIR_AUDIT_TPE" + case 247: // "CONFIG_DIR_DEBUG_LOG" + case 248: // "CONFIG_DIR_DEBUG_LVL" + case 249: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 250: // "CONFIG_SEC_DISABLE_BACKEND_COMPRESS" + case 251: // "CONFIG_SEC_HASH_ENGINE" + case 252: // "CONFIG_SEC_HASH_KEY" + case 253: // "CONFIG_SEC_HASH_PARAM" + case 254: // "CONFIG_SEC_HASH_METHOD_RX" + case 255: // "CONFIG_SEC_HASH_METHOD_PM" + case 256: // "CONFIG_SEC_CHROOT_DIR" + case 257: // "CONFIG_DIR_GEO_DB" + case 258: // "CONFIG_DIR_GSB_DB" + case 259: // "CONFIG_SEC_GUARDIAN_LOG" + case 260: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 261: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 262: // "CONFIG_SEC_CONN_R_STATE_LIMIT" + case 263: // "CONFIG_SEC_CONN_W_STATE_LIMIT" + case 264: // "CONFIG_SEC_SENSOR_ID" + case 265: // "CONFIG_DIR_REQ_BODY" + case 266: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 267: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 268: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 269: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 270: // "CONFIG_DIR_RES_BODY" + case 271: // "CONFIG_DIR_RES_BODY_LIMIT" + case 272: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 273: // "CONFIG_SEC_RULE_INHERITANCE" + case 274: // "CONFIG_SEC_RULE_PERF_TIME" + case 275: // "CONFIG_DIR_RULE_ENG" + case 276: // "CONFIG_DIR_SEC_ACTION" + case 277: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 278: // "CONFIG_DIR_SEC_MARKER" + case 279: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 280: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 281: // "CONFIG_SEC_HTTP_BLKEY" + case 282: // "CONFIG_SEC_INTERCEPT_ON_ERROR" + case 283: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 284: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 285: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 286: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 287: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 288: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 289: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 290: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 291: // "CONFIG_UPDLOAD_KEEP_FILES" + case 292: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 293: // "CONFIG_UPLOAD_DIR" + case 294: // "CONFIG_UPLOAD_FILE_LIMIT" + case 295: // "CONFIG_UPLOAD_FILE_MODE" + case 296: // "CONFIG_VALUE_ABORT" + case 297: // "CONFIG_VALUE_DETC" + case 298: // "CONFIG_VALUE_HTTPS" + case 299: // "CONFIG_VALUE_OFF" + case 300: // "CONFIG_VALUE_ON" + case 301: // "CONFIG_VALUE_PARALLEL" + case 302: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 303: // "CONFIG_VALUE_REJECT" + case 304: // "CONFIG_VALUE_RELEVANT_ONLY" + case 305: // "CONFIG_VALUE_SERIAL" + case 306: // "CONFIG_VALUE_WARN" + case 307: // "CONFIG_XML_EXTERNAL_ENTITY" + case 308: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 309: // "CONGIG_DIR_SEC_ARG_SEP" + case 310: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 311: // "CONFIG_SEC_COOKIEV0_SEPARATOR" + case 312: // "CONGIG_DIR_SEC_DATA_DIR" + case 313: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 314: // "CONFIG_SEC_STREAM_IN_BODY_INSPECTION" + case 315: // "CONFIG_SEC_STREAM_OUT_BODY_INSPECTION" + case 316: // "CONGIG_DIR_SEC_TMP_DIR" + case 317: // "DIRECTIVE" + case 318: // "DIRECTIVE_SECRULESCRIPT" + case 319: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 320: // "QUOTATION_MARK" + case 321: // "RUN_TIME_VAR_BLD" + case 322: // "RUN_TIME_VAR_DUR" + case 323: // "RUN_TIME_VAR_HSV" + case 324: // "RUN_TIME_VAR_REMOTE_USER" + case 325: // "RUN_TIME_VAR_TIME" + case 326: // "RUN_TIME_VAR_TIME_DAY" + case 327: // "RUN_TIME_VAR_TIME_EPOCH" + case 328: // "RUN_TIME_VAR_TIME_HOUR" + case 329: // "RUN_TIME_VAR_TIME_MIN" + case 330: // "RUN_TIME_VAR_TIME_MON" + case 331: // "RUN_TIME_VAR_TIME_SEC" + case 332: // "RUN_TIME_VAR_TIME_WDAY" + case 333: // "RUN_TIME_VAR_TIME_YEAR" + case 334: // "VARIABLE" + case 335: // "Dictionary element" + case 336: // "Dictionary element, selected by regexp" value.move< std::string > (s.value); break; - case 339: // op - case 340: // op_before_init + case 343: // op + case 344: // op_before_init value.move< std::unique_ptr > (s.value); break; - case 347: // run_time_string + case 351: // run_time_string value.move< std::unique_ptr > (s.value); break; - case 344: // var + case 348: // var value.move< std::unique_ptr > (s.value); break; - case 345: // act - case 346: // setvar_action + case 349: // act + case 350: // setvar_action value.move< std::unique_ptr > (s.value); break; - case 342: // variables - case 343: // variables_may_be_quoted + case 346: // variables + case 347: // variables_may_be_quoted value.move< std::unique_ptr > > > (s.value); break; - case 337: // actions - case 338: // actions_may_quoted + case 341: // actions + case 342: // actions_may_quoted value.move< std::unique_ptr > > > (s.value); break; @@ -3975,7 +3980,7 @@ namespace yy { // by_type. inline seclang_parser::by_type::by_type () - : type (empty_symbol) + : type (empty) {} inline @@ -3988,19 +3993,12 @@ namespace yy { : 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 (); + that.type = empty; } inline @@ -4053,7 +4051,7 @@ namespace yy { 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, - 585, 586, 587 + 585, 586, 587, 588, 589, 590, 591 }; return static_cast (yytoken_number_[type]); } @@ -5252,6 +5250,12 @@ namespace yy { return symbol_type (token::TOK_ACTION_TRANSFORMATION_CSS_DECODE, v, l); } + seclang_parser::symbol_type + seclang_parser::make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (const std::string& v, const location_type& l) + { + return symbol_type (token::TOK_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE, v, l); + } + seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_HEX_ENCODE (const std::string& v, const location_type& l) { @@ -5384,12 +5388,30 @@ namespace yy { return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM, v, l); } + seclang_parser::symbol_type + seclang_parser::make_ACTION_TRANSFORMATION_TRIM_LEFT (const std::string& v, const location_type& l) + { + return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM_LEFT, v, l); + } + + seclang_parser::symbol_type + seclang_parser::make_ACTION_TRANSFORMATION_TRIM_RIGHT (const std::string& v, const location_type& l) + { + return symbol_type (token::TOK_ACTION_TRANSFORMATION_TRIM_RIGHT, 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_ENCODE (const std::string& v, const location_type& l) + { + return symbol_type (token::TOK_ACTION_TRANSFORMATION_URL_ENCODE, v, l); + } + seclang_parser::symbol_type seclang_parser::make_ACTION_TRANSFORMATION_URL_DECODE (const std::string& v, const location_type& l) { @@ -6047,7 +6069,7 @@ namespace yy { } // yy -#line 6051 "seclang-parser.hh" // lalr1.cc:377 +#line 6073 "seclang-parser.hh" // lalr1.cc:372 diff --git a/src/parser/seclang-parser.yy b/src/parser/seclang-parser.yy index 53b59a5b1e..b29b3fc7ab 100644 --- a/src/parser/seclang-parser.yy +++ b/src/parser/seclang-parser.yy @@ -569,6 +569,7 @@ using modsecurity::operators::Operator; ACTION_TRANSFORMATION_CMD_LINE "ACTION_TRANSFORMATION_CMD_LINE" ACTION_TRANSFORMATION_COMPRESS_WHITESPACE "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" ACTION_TRANSFORMATION_CSS_DECODE "ACTION_TRANSFORMATION_CSS_DECODE" + ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE "ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE" ACTION_TRANSFORMATION_HEX_ENCODE "ACTION_TRANSFORMATION_HEX_ENCODE" ACTION_TRANSFORMATION_HEX_DECODE "ACTION_TRANSFORMATION_HEX_DECODE" ACTION_TRANSFORMATION_HTML_ENTITY_DECODE "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" @@ -591,7 +592,10 @@ using modsecurity::operators::Operator; ACTION_TRANSFORMATION_SHA1 "ACTION_TRANSFORMATION_SHA1" ACTION_TRANSFORMATION_SQL_HEX_DECODE "ACTION_TRANSFORMATION_SQL_HEX_DECODE" ACTION_TRANSFORMATION_TRIM "ACTION_TRANSFORMATION_TRIM" + ACTION_TRANSFORMATION_TRIM_LEFT "ACTION_TRANSFORMATION_TRIM_LEFT" + ACTION_TRANSFORMATION_TRIM_RIGHT "ACTION_TRANSFORMATION_TRIM_RIGHT" ACTION_TRANSFORMATION_UPPERCASE "ACTION_TRANSFORMATION_UPPERCASE" + ACTION_TRANSFORMATION_URL_ENCODE "ACTION_TRANSFORMATION_URL_ENCODE" ACTION_TRANSFORMATION_URL_DECODE "ACTION_TRANSFORMATION_URL_DECODE" ACTION_TRANSFORMATION_URL_DECODE_UNI "ACTION_TRANSFORMATION_URL_DECODE_UNI" ACTION_TRANSFORMATION_UTF8_TO_UNICODE "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" @@ -2785,6 +2789,10 @@ act: { ACTION_CONTAINER($$, new actions::transformations::Md5($1)); } + | ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE + { + ACTION_CONTAINER($$, new actions::transformations::EscapeSeqDecode($1)); + } | ACTION_TRANSFORMATION_HEX_ENCODE { ACTION_CONTAINER($$, new actions::transformations::HexEncode($1)); @@ -2809,6 +2817,10 @@ act: { ACTION_CONTAINER($$, new actions::transformations::UrlDecode($1)); } + | ACTION_TRANSFORMATION_URL_ENCODE + { + ACTION_CONTAINER($$, new actions::transformations::UrlEncode($1)); + } | ACTION_TRANSFORMATION_NONE { ACTION_CONTAINER($$, new actions::transformations::None($1)); @@ -2845,6 +2857,14 @@ act: { ACTION_CONTAINER($$, new actions::transformations::Trim($1)); } + | ACTION_TRANSFORMATION_TRIM_LEFT + { + ACTION_CONTAINER($$, new actions::transformations::TrimLeft($1)); + } + | ACTION_TRANSFORMATION_TRIM_RIGHT + { + ACTION_CONTAINER($$, new actions::transformations::TrimRight($1)); + } | ACTION_TRANSFORMATION_NORMALISE_PATH_WIN { ACTION_CONTAINER($$, new actions::transformations::NormalisePathWin($1)); diff --git a/src/parser/seclang-scanner.ll b/src/parser/seclang-scanner.ll index 0d2ba9634d..746926c33f 100755 --- a/src/parser/seclang-scanner.ll +++ b/src/parser/seclang-scanner.ll @@ -139,6 +139,7 @@ ACTION_TRANSFORMATION_BASE_64_DECODE (?i:t:base64Decode) ACTION_TRANSFORMATION_BASE_64_DECODE_EXT (?i:t:base64DecodeExt) ACTION_TRANSFORMATION_CMD_LINE (?i:t:cmdLine) ACTION_TRANSFORMATION_COMPRESS_WHITESPACE (?i:t:compressWhitespace) +ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE (?i:t:escapeSeqDecode) ACTION_TRANSFORMATION_CSS_DECODE (?i:t:cssDecode) ACTION_TRANSFORMATION_HEX_ENCODE (?i:t:hexEncode) ACTION_TRANSFORMATION_HEX_DECODE (?i:t:hexDecode) @@ -162,7 +163,10 @@ ACTION_TRANSFORMATION_REPLACE_NULLS (?i:t:replaceNulls) ACTION_TRANSFORMATION_SHA1 (?i:t:sha1) ACTION_TRANSFORMATION_SQL_HEX_DECODE (?i:t:sqlHexDecode) ACTION_TRANSFORMATION_TRIM (?i:t:trim) +ACTION_TRANSFORMATION_TRIM_LEFT (?i:t:trimLeft) +ACTION_TRANSFORMATION_TRIM_RIGHT (?i:t:trimRight) ACTION_TRANSFORMATION_UPPERCASE (?i:t:uppercase) +ACTION_TRANSFORMATION_URL_ENCODE (?i:t:urlEncode) ACTION_TRANSFORMATION_URL_DECODE (?i:t:urlDecode) ACTION_TRANSFORMATION_URL_DECODE_UNI (?i:t:urlDecodeUni) ACTION_TRANSFORMATION_UTF8_TO_UNICODE (?i:t:utf8toUnicode) @@ -573,10 +577,12 @@ EQUALS_MINUS (?i:=\-) {ACTION_TRANSFORMATION_CMD_LINE} { return p::make_ACTION_TRANSFORMATION_CMD_LINE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_SHA1} { return p::make_ACTION_TRANSFORMATION_SHA1(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_MD5} { return p::make_ACTION_TRANSFORMATION_MD5(yytext, *driver.loc.back()); } +{ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE} { return p::make_ACTION_TRANSFORMATION_ESCAPE_SEQ_DECODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_HEX_ENCODE} { return p::make_ACTION_TRANSFORMATION_HEX_ENCODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_HEX_DECODE} { return p::make_ACTION_TRANSFORMATION_HEX_DECODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_LOWERCASE} { return p::make_ACTION_TRANSFORMATION_LOWERCASE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_UPPERCASE} { return p::make_ACTION_TRANSFORMATION_UPPERCASE(yytext, *driver.loc.back()); } +{ACTION_TRANSFORMATION_URL_ENCODE} { return p::make_ACTION_TRANSFORMATION_URL_ENCODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_URL_DECODE_UNI} { return p::make_ACTION_TRANSFORMATION_URL_DECODE_UNI(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_URL_DECODE} { return p::make_ACTION_TRANSFORMATION_URL_DECODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_NONE} { return p::make_ACTION_TRANSFORMATION_NONE(yytext, *driver.loc.back()); } @@ -588,6 +594,8 @@ EQUALS_MINUS (?i:=\-) {ACTION_TRANSFORMATION_JS_DECODE} { return p::make_ACTION_TRANSFORMATION_JS_DECODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_CSS_DECODE} { return p::make_ACTION_TRANSFORMATION_CSS_DECODE(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_TRIM} { return p::make_ACTION_TRANSFORMATION_TRIM(yytext, *driver.loc.back()); } +{ACTION_TRANSFORMATION_TRIM_LEFT} { return p::make_ACTION_TRANSFORMATION_TRIM_LEFT(yytext, *driver.loc.back()); } +{ACTION_TRANSFORMATION_TRIM_RIGHT} { return p::make_ACTION_TRANSFORMATION_TRIM_RIGHT(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_NORMALISE_PATH_WIN} { return p::make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_NORMALISE_PATH} { return p::make_ACTION_TRANSFORMATION_NORMALISE_PATH(yytext, *driver.loc.back()); } {ACTION_TRANSFORMATION_LENGTH} { return p::make_ACTION_TRANSFORMATION_LENGTH(yytext, *driver.loc.back()); }