From 02156177289f288da23c255287641cc9a026125e Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Thu, 25 Jan 2018 11:43:39 -0300 Subject: [PATCH] parser refactoring: ops no longer carry a payload --- src/parser/seclang-parser.cc | 3784 ++++++++++++++++----------------- src/parser/seclang-parser.hh | 2826 +++++++++++------------- src/parser/seclang-parser.yy | 76 +- src/parser/seclang-scanner.cc | 1755 ++++++++------- src/parser/seclang-scanner.ll | 128 +- 5 files changed, 4112 insertions(+), 4457 deletions(-) diff --git a/src/parser/seclang-parser.cc b/src/parser/seclang-parser.cc index 088e7a68..1fa72c44 100644 --- a/src/parser/seclang-parser.cc +++ b/src/parser/seclang-parser.cc @@ -251,244 +251,205 @@ namespace yy { { switch (that.type_get ()) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content value.move< std::string > (that.value); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init value.move< std::unique_ptr > (that.value); break; - case 330: // run_time_string + case 327: // run_time_string value.move< std::unique_ptr > (that.value); break; - case 325: // var + case 322: // var value.move< std::unique_ptr > (that.value); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action value.move< std::unique_ptr > (that.value); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted value.move< std::unique_ptr > > > (that.value); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted value.move< std::unique_ptr > > > (that.value); break; @@ -507,244 +468,205 @@ namespace yy { state = that.state; switch (that.type_get ()) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content value.copy< std::string > (that.value); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init value.copy< std::unique_ptr > (that.value); break; - case 330: // run_time_string + case 327: // run_time_string value.copy< std::unique_ptr > (that.value); break; - case 325: // var + case 322: // var value.copy< std::unique_ptr > (that.value); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action value.copy< std::unique_ptr > (that.value); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted value.copy< std::unique_ptr > > > (that.value); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted value.copy< std::unique_ptr > > > (that.value); break; @@ -895,7 +817,7 @@ namespace yy { yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } -#line 899 "seclang-parser.cc" // lalr1.cc:741 +#line 821 "seclang-parser.cc" // lalr1.cc:741 /* Initialize the stack. The initial state will be set in yynewstate, since the latter expects the semantical and the @@ -985,244 +907,205 @@ namespace yy { when using variants. */ switch (yyr1_[yyn]) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content yylhs.value.build< std::string > (); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init yylhs.value.build< std::unique_ptr > (); break; - case 330: // run_time_string + case 327: // run_time_string yylhs.value.build< std::unique_ptr > (); break; - case 325: // var + case 322: // var yylhs.value.build< std::unique_ptr > (); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action yylhs.value.build< std::unique_ptr > (); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted yylhs.value.build< std::unique_ptr > > > (); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted yylhs.value.build< std::unique_ptr > > > (); break; @@ -1244,232 +1127,232 @@ namespace yy { switch (yyn) { case 2: -#line 715 "seclang-parser.yy" // lalr1.cc:859 +#line 713 "seclang-parser.yy" // lalr1.cc:859 { return 0; } -#line 1252 "seclang-parser.cc" // lalr1.cc:859 +#line 1135 "seclang-parser.cc" // lalr1.cc:859 break; case 6: -#line 728 "seclang-parser.yy" // lalr1.cc:859 +#line 726 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStorageDirMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1260 "seclang-parser.cc" // lalr1.cc:859 +#line 1143 "seclang-parser.cc" // lalr1.cc:859 break; case 7: -#line 734 "seclang-parser.yy" // lalr1.cc:859 +#line 732 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStorageDir(yystack_[0].value.as< std::string > ()); } -#line 1268 "seclang-parser.cc" // lalr1.cc:859 +#line 1151 "seclang-parser.cc" // lalr1.cc:859 break; case 8: -#line 740 "seclang-parser.yy" // lalr1.cc:859 +#line 738 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::RelevantOnlyAuditLogStatus); } -#line 1276 "seclang-parser.cc" // lalr1.cc:859 +#line 1159 "seclang-parser.cc" // lalr1.cc:859 break; case 9: -#line 744 "seclang-parser.yy" // lalr1.cc:859 +#line 742 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OffAuditLogStatus); } -#line 1284 "seclang-parser.cc" // lalr1.cc:859 +#line 1167 "seclang-parser.cc" // lalr1.cc:859 break; case 10: -#line 748 "seclang-parser.yy" // lalr1.cc:859 +#line 746 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OnAuditLogStatus); } -#line 1292 "seclang-parser.cc" // lalr1.cc:859 +#line 1175 "seclang-parser.cc" // lalr1.cc:859 break; case 11: -#line 754 "seclang-parser.yy" // lalr1.cc:859 +#line 752 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFileMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1300 "seclang-parser.cc" // lalr1.cc:859 +#line 1183 "seclang-parser.cc" // lalr1.cc:859 break; case 12: -#line 760 "seclang-parser.yy" // lalr1.cc:859 +#line 758 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFilePath2(yystack_[0].value.as< std::string > ()); } -#line 1308 "seclang-parser.cc" // lalr1.cc:859 +#line 1191 "seclang-parser.cc" // lalr1.cc:859 break; case 13: -#line 766 "seclang-parser.yy" // lalr1.cc:859 +#line 764 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setParts(yystack_[0].value.as< std::string > ()); } -#line 1316 "seclang-parser.cc" // lalr1.cc:859 +#line 1199 "seclang-parser.cc" // lalr1.cc:859 break; case 14: -#line 772 "seclang-parser.yy" // lalr1.cc:859 +#line 770 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFilePath1(yystack_[0].value.as< std::string > ()); } -#line 1324 "seclang-parser.cc" // lalr1.cc:859 +#line 1207 "seclang-parser.cc" // lalr1.cc:859 break; case 15: -#line 777 "seclang-parser.yy" // lalr1.cc:859 +#line 775 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::JSONAuditLogFormat); } -#line 1332 "seclang-parser.cc" // lalr1.cc:859 +#line 1215 "seclang-parser.cc" // lalr1.cc:859 break; case 16: -#line 782 "seclang-parser.yy" // lalr1.cc:859 +#line 780 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::NativeAuditLogFormat); } -#line 1340 "seclang-parser.cc" // lalr1.cc:859 +#line 1223 "seclang-parser.cc" // lalr1.cc:859 break; case 17: -#line 788 "seclang-parser.yy" // lalr1.cc:859 +#line 786 "seclang-parser.yy" // lalr1.cc:859 { std::string relevant_status(yystack_[0].value.as< std::string > ()); driver.m_auditLog->setRelevantStatus(relevant_status); } -#line 1349 "seclang-parser.cc" // lalr1.cc:859 +#line 1232 "seclang-parser.cc" // lalr1.cc:859 break; case 18: -#line 795 "seclang-parser.yy" // lalr1.cc:859 +#line 793 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::SerialAuditLogType); } -#line 1357 "seclang-parser.cc" // lalr1.cc:859 +#line 1240 "seclang-parser.cc" // lalr1.cc:859 break; case 19: -#line 799 "seclang-parser.yy" // lalr1.cc:859 +#line 797 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::ParallelAuditLogType); } -#line 1365 "seclang-parser.cc" // lalr1.cc:859 +#line 1248 "seclang-parser.cc" // lalr1.cc:859 break; case 20: -#line 803 "seclang-parser.yy" // lalr1.cc:859 +#line 801 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::HttpsAuditLogType); } -#line 1373 "seclang-parser.cc" // lalr1.cc:859 +#line 1256 "seclang-parser.cc" // lalr1.cc:859 break; case 21: -#line 809 "seclang-parser.yy" // lalr1.cc:859 +#line 807 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1381 "seclang-parser.cc" // lalr1.cc:859 +#line 1264 "seclang-parser.cc" // lalr1.cc:859 break; case 22: -#line 813 "seclang-parser.yy" // lalr1.cc:859 +#line 811 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1389 "seclang-parser.cc" // lalr1.cc:859 +#line 1272 "seclang-parser.cc" // lalr1.cc:859 break; case 23: -#line 817 "seclang-parser.yy" // lalr1.cc:859 +#line 815 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadFileLimit.m_set = true; driver.m_uploadFileLimit.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 10); } -#line 1398 "seclang-parser.cc" // lalr1.cc:859 +#line 1281 "seclang-parser.cc" // lalr1.cc:859 break; case 24: -#line 822 "seclang-parser.yy" // lalr1.cc:859 +#line 820 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadFileMode.m_set = true; driver.m_uploadFileMode.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8); } -#line 1407 "seclang-parser.cc" // lalr1.cc:859 +#line 1290 "seclang-parser.cc" // lalr1.cc:859 break; case 25: -#line 827 "seclang-parser.yy" // lalr1.cc:859 +#line 825 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadDirectory.m_set = true; driver.m_uploadDirectory.m_value = yystack_[0].value.as< std::string > (); } -#line 1416 "seclang-parser.cc" // lalr1.cc:859 +#line 1299 "seclang-parser.cc" // lalr1.cc:859 break; case 26: -#line 832 "seclang-parser.yy" // lalr1.cc:859 +#line 830 "seclang-parser.yy" // lalr1.cc:859 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1424 "seclang-parser.cc" // lalr1.cc:859 +#line 1307 "seclang-parser.cc" // lalr1.cc:859 break; case 27: -#line 836 "seclang-parser.yy" // lalr1.cc:859 +#line 834 "seclang-parser.yy" // lalr1.cc:859 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1432 "seclang-parser.cc" // lalr1.cc:859 +#line 1315 "seclang-parser.cc" // lalr1.cc:859 break; case 28: -#line 843 "seclang-parser.yy" // lalr1.cc:859 +#line 841 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 1440 "seclang-parser.cc" // lalr1.cc:859 +#line 1323 "seclang-parser.cc" // lalr1.cc:859 break; case 29: -#line 847 "seclang-parser.yy" // lalr1.cc:859 +#line 845 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 1448 "seclang-parser.cc" // lalr1.cc:859 +#line 1331 "seclang-parser.cc" // lalr1.cc:859 break; case 30: -#line 854 "seclang-parser.yy" // lalr1.cc:859 +#line 852 "seclang-parser.yy" // lalr1.cc:859 { 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 1458 "seclang-parser.cc" // lalr1.cc:859 +#line 1341 "seclang-parser.cc" // lalr1.cc:859 break; case 31: -#line 860 "seclang-parser.yy" // lalr1.cc:859 +#line 858 "seclang-parser.yy" // lalr1.cc:859 { 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 1469 "seclang-parser.cc" // lalr1.cc:859 +#line 1352 "seclang-parser.cc" // lalr1.cc:859 break; case 32: -#line 870 "seclang-parser.yy" // lalr1.cc:859 +#line 868 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); std::string error; @@ -1478,11 +1361,11 @@ namespace yy { YYERROR; } } -#line 1482 "seclang-parser.cc" // lalr1.cc:859 +#line 1365 "seclang-parser.cc" // lalr1.cc:859 break; case 33: -#line 879 "seclang-parser.yy" // lalr1.cc:859 +#line 877 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); yylhs.value.as< std::unique_ptr > ()->m_negation = true; @@ -1492,11 +1375,11 @@ namespace yy { YYERROR; } } -#line 1496 "seclang-parser.cc" // lalr1.cc:859 +#line 1379 "seclang-parser.cc" // lalr1.cc:859 break; case 34: -#line 889 "seclang-parser.yy" // lalr1.cc:859 +#line 887 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); std::string error; @@ -1505,11 +1388,11 @@ namespace yy { YYERROR; } } -#line 1509 "seclang-parser.cc" // lalr1.cc:859 +#line 1392 "seclang-parser.cc" // lalr1.cc:859 break; case 35: -#line 898 "seclang-parser.yy" // lalr1.cc:859 +#line 896 "seclang-parser.yy" // lalr1.cc:859 { 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; @@ -1519,288 +1402,288 @@ namespace yy { YYERROR; } } -#line 1523 "seclang-parser.cc" // lalr1.cc:859 +#line 1406 "seclang-parser.cc" // lalr1.cc:859 break; case 36: -#line 911 "seclang-parser.yy" // lalr1.cc:859 +#line 909 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::UnconditionalMatch()); } -#line 1531 "seclang-parser.cc" // lalr1.cc:859 +#line 1414 "seclang-parser.cc" // lalr1.cc:859 break; case 37: -#line 915 "seclang-parser.yy" // lalr1.cc:859 +#line 913 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectSQLi()); } -#line 1539 "seclang-parser.cc" // lalr1.cc:859 +#line 1422 "seclang-parser.cc" // lalr1.cc:859 break; case 38: -#line 919 "seclang-parser.yy" // lalr1.cc:859 +#line 917 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectXSS()); } -#line 1547 "seclang-parser.cc" // lalr1.cc:859 +#line 1430 "seclang-parser.cc" // lalr1.cc:859 break; case 39: -#line 923 "seclang-parser.yy" // lalr1.cc:859 +#line 921 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUrlEncoding()); } -#line 1555 "seclang-parser.cc" // lalr1.cc:859 +#line 1438 "seclang-parser.cc" // lalr1.cc:859 break; case 40: -#line 927 "seclang-parser.yy" // lalr1.cc:859 +#line 925 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUtf8Encoding()); } -#line 1563 "seclang-parser.cc" // lalr1.cc:859 +#line 1446 "seclang-parser.cc" // lalr1.cc:859 break; case 41: -#line 931 "seclang-parser.yy" // lalr1.cc:859 +#line 929 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::InspectFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1571 "seclang-parser.cc" // lalr1.cc:859 +#line 1454 "seclang-parser.cc" // lalr1.cc:859 break; case 42: -#line 935 "seclang-parser.yy" // lalr1.cc:859 +#line 933 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::FuzzyHash(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1579 "seclang-parser.cc" // lalr1.cc:859 +#line 1462 "seclang-parser.cc" // lalr1.cc:859 break; case 43: -#line 939 "seclang-parser.yy" // lalr1.cc:859 +#line 937 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateByteRange(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1587 "seclang-parser.cc" // lalr1.cc:859 +#line 1470 "seclang-parser.cc" // lalr1.cc:859 break; case 44: -#line 943 "seclang-parser.yy" // lalr1.cc:859 +#line 941 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateDTD(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1595 "seclang-parser.cc" // lalr1.cc:859 +#line 1478 "seclang-parser.cc" // lalr1.cc:859 break; case 45: -#line 947 "seclang-parser.yy" // lalr1.cc:859 +#line 945 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::ValidateHash($1); */ OPERATOR_NOT_SUPPORTED("ValidateHash", yystack_[2].location); } -#line 1604 "seclang-parser.cc" // lalr1.cc:859 +#line 1487 "seclang-parser.cc" // lalr1.cc:859 break; case 46: -#line 952 "seclang-parser.yy" // lalr1.cc:859 +#line 950 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateSchema(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1612 "seclang-parser.cc" // lalr1.cc:859 +#line 1495 "seclang-parser.cc" // lalr1.cc:859 break; case 47: -#line 956 "seclang-parser.yy" // lalr1.cc:859 +#line 954 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1620 "seclang-parser.cc" // lalr1.cc:859 +#line 1503 "seclang-parser.cc" // lalr1.cc:859 break; case 48: -#line 960 "seclang-parser.yy" // lalr1.cc:859 +#line 958 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::VerifyCPF($1); */ OPERATOR_NOT_SUPPORTED("VerifyCPF", yystack_[2].location); } -#line 1629 "seclang-parser.cc" // lalr1.cc:859 +#line 1512 "seclang-parser.cc" // lalr1.cc:859 break; case 49: -#line 965 "seclang-parser.yy" // lalr1.cc:859 +#line 963 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::VerifySSN($1); */ OPERATOR_NOT_SUPPORTED("VerifySSN", yystack_[2].location); } -#line 1638 "seclang-parser.cc" // lalr1.cc:859 +#line 1521 "seclang-parser.cc" // lalr1.cc:859 break; case 50: -#line 970 "seclang-parser.yy" // lalr1.cc:859 +#line 968 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::GsbLookup($1); */ OPERATOR_NOT_SUPPORTED("GsbLookup", yystack_[2].location); } -#line 1647 "seclang-parser.cc" // lalr1.cc:859 +#line 1530 "seclang-parser.cc" // lalr1.cc:859 break; case 51: -#line 975 "seclang-parser.yy" // lalr1.cc:859 +#line 973 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::Rsub($1); */ OPERATOR_NOT_SUPPORTED("Rsub", yystack_[2].location); } -#line 1656 "seclang-parser.cc" // lalr1.cc:859 +#line 1539 "seclang-parser.cc" // lalr1.cc:859 break; case 52: -#line 980 "seclang-parser.yy" // lalr1.cc:859 +#line 978 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Within(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1664 "seclang-parser.cc" // lalr1.cc:859 +#line 1547 "seclang-parser.cc" // lalr1.cc:859 break; case 53: -#line 984 "seclang-parser.yy" // lalr1.cc:859 +#line 982 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ContainsWord(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1672 "seclang-parser.cc" // lalr1.cc:859 +#line 1555 "seclang-parser.cc" // lalr1.cc:859 break; case 54: -#line 988 "seclang-parser.yy" // lalr1.cc:859 +#line 986 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Contains(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1680 "seclang-parser.cc" // lalr1.cc:859 +#line 1563 "seclang-parser.cc" // lalr1.cc:859 break; case 55: -#line 992 "seclang-parser.yy" // lalr1.cc:859 +#line 990 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::EndsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1688 "seclang-parser.cc" // lalr1.cc:859 +#line 1571 "seclang-parser.cc" // lalr1.cc:859 break; case 56: -#line 996 "seclang-parser.yy" // lalr1.cc:859 +#line 994 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Eq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1696 "seclang-parser.cc" // lalr1.cc:859 +#line 1579 "seclang-parser.cc" // lalr1.cc:859 break; case 57: -#line 1000 "seclang-parser.yy" // lalr1.cc:859 +#line 998 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Ge(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1704 "seclang-parser.cc" // lalr1.cc:859 +#line 1587 "seclang-parser.cc" // lalr1.cc:859 break; case 58: -#line 1004 "seclang-parser.yy" // lalr1.cc:859 +#line 1002 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Gt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1712 "seclang-parser.cc" // lalr1.cc:859 +#line 1595 "seclang-parser.cc" // lalr1.cc:859 break; case 59: -#line 1008 "seclang-parser.yy" // lalr1.cc:859 +#line 1006 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatchF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1720 "seclang-parser.cc" // lalr1.cc:859 +#line 1603 "seclang-parser.cc" // lalr1.cc:859 break; case 60: -#line 1012 "seclang-parser.yy" // lalr1.cc:859 +#line 1010 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1728 "seclang-parser.cc" // lalr1.cc:859 +#line 1611 "seclang-parser.cc" // lalr1.cc:859 break; case 61: -#line 1016 "seclang-parser.yy" // lalr1.cc:859 +#line 1014 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Le(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1736 "seclang-parser.cc" // lalr1.cc:859 +#line 1619 "seclang-parser.cc" // lalr1.cc:859 break; case 62: -#line 1020 "seclang-parser.yy" // lalr1.cc:859 +#line 1018 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Lt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1744 "seclang-parser.cc" // lalr1.cc:859 +#line 1627 "seclang-parser.cc" // lalr1.cc:859 break; case 63: -#line 1024 "seclang-parser.yy" // lalr1.cc:859 +#line 1022 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::PmFromFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1752 "seclang-parser.cc" // lalr1.cc:859 +#line 1635 "seclang-parser.cc" // lalr1.cc:859 break; case 64: -#line 1028 "seclang-parser.yy" // lalr1.cc:859 +#line 1026 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Pm(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1760 "seclang-parser.cc" // lalr1.cc:859 +#line 1643 "seclang-parser.cc" // lalr1.cc:859 break; case 65: -#line 1032 "seclang-parser.yy" // lalr1.cc:859 +#line 1030 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rbl(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1768 "seclang-parser.cc" // lalr1.cc:859 +#line 1651 "seclang-parser.cc" // lalr1.cc:859 break; case 66: -#line 1036 "seclang-parser.yy" // lalr1.cc:859 +#line 1034 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1776 "seclang-parser.cc" // lalr1.cc:859 +#line 1659 "seclang-parser.cc" // lalr1.cc:859 break; case 67: -#line 1040 "seclang-parser.yy" // lalr1.cc:859 +#line 1038 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrEq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1784 "seclang-parser.cc" // lalr1.cc:859 +#line 1667 "seclang-parser.cc" // lalr1.cc:859 break; case 68: -#line 1044 "seclang-parser.yy" // lalr1.cc:859 +#line 1042 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1792 "seclang-parser.cc" // lalr1.cc:859 +#line 1675 "seclang-parser.cc" // lalr1.cc:859 break; case 69: -#line 1048 "seclang-parser.yy" // lalr1.cc:859 +#line 1046 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::BeginsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1800 "seclang-parser.cc" // lalr1.cc:859 +#line 1683 "seclang-parser.cc" // lalr1.cc:859 break; case 70: -#line 1052 "seclang-parser.yy" // lalr1.cc:859 +#line 1050 "seclang-parser.yy" // lalr1.cc:859 { #ifdef WITH_GEOIP OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::GeoLookup()); @@ -1811,11 +1694,11 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 1815 "seclang-parser.cc" // lalr1.cc:859 +#line 1698 "seclang-parser.cc" // lalr1.cc:859 break; case 72: -#line 1067 "seclang-parser.yy" // lalr1.cc:859 +#line 1065 "seclang-parser.yy" // lalr1.cc:859 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1839,11 +1722,11 @@ namespace yy { YYERROR; } } -#line 1843 "seclang-parser.cc" // lalr1.cc:859 +#line 1726 "seclang-parser.cc" // lalr1.cc:859 break; case 73: -#line 1091 "seclang-parser.yy" // lalr1.cc:859 +#line 1089 "seclang-parser.yy" // lalr1.cc:859 { std::vector *v = new std::vector(); for (auto &i : *yystack_[1].value.as< std::unique_ptr > > > ().get()) { @@ -1862,11 +1745,11 @@ namespace yy { YYERROR; } } -#line 1866 "seclang-parser.cc" // lalr1.cc:859 +#line 1749 "seclang-parser.cc" // lalr1.cc:859 break; case 74: -#line 1110 "seclang-parser.yy" // lalr1.cc:859 +#line 1108 "seclang-parser.yy" // lalr1.cc:859 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1881,11 +1764,11 @@ namespace yy { ); driver.addSecAction(rule); } -#line 1885 "seclang-parser.cc" // lalr1.cc:859 +#line 1768 "seclang-parser.cc" // lalr1.cc:859 break; case 75: -#line 1125 "seclang-parser.yy" // lalr1.cc:859 +#line 1123 "seclang-parser.yy" // lalr1.cc:859 { std::string err; std::vector *a = new std::vector(); @@ -1909,11 +1792,11 @@ namespace yy { YYERROR; } } -#line 1913 "seclang-parser.cc" // lalr1.cc:859 +#line 1796 "seclang-parser.cc" // lalr1.cc:859 break; case 76: -#line 1149 "seclang-parser.yy" // lalr1.cc:859 +#line 1147 "seclang-parser.yy" // lalr1.cc:859 { std::vector *actions = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1960,75 +1843,75 @@ namespace yy { delete actions; } -#line 1964 "seclang-parser.cc" // lalr1.cc:859 +#line 1847 "seclang-parser.cc" // lalr1.cc:859 break; case 77: -#line 1196 "seclang-parser.yy" // lalr1.cc:859 +#line 1194 "seclang-parser.yy" // lalr1.cc:859 { driver.addSecMarker(modsecurity::utils::string::removeBracketsIfNeeded(yystack_[0].value.as< std::string > ())); } -#line 1972 "seclang-parser.cc" // lalr1.cc:859 +#line 1855 "seclang-parser.cc" // lalr1.cc:859 break; case 78: -#line 1200 "seclang-parser.yy" // lalr1.cc:859 +#line 1198 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::DisabledRuleEngine; } -#line 1980 "seclang-parser.cc" // lalr1.cc:859 +#line 1863 "seclang-parser.cc" // lalr1.cc:859 break; case 79: -#line 1204 "seclang-parser.yy" // lalr1.cc:859 +#line 1202 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::EnabledRuleEngine; } -#line 1988 "seclang-parser.cc" // lalr1.cc:859 +#line 1871 "seclang-parser.cc" // lalr1.cc:859 break; case 80: -#line 1208 "seclang-parser.yy" // lalr1.cc:859 +#line 1206 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::DetectionOnlyRuleEngine; } -#line 1996 "seclang-parser.cc" // lalr1.cc:859 +#line 1879 "seclang-parser.cc" // lalr1.cc:859 break; case 81: -#line 1212 "seclang-parser.yy" // lalr1.cc:859 +#line 1210 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2004 "seclang-parser.cc" // lalr1.cc:859 +#line 1887 "seclang-parser.cc" // lalr1.cc:859 break; case 82: -#line 1216 "seclang-parser.yy" // lalr1.cc:859 +#line 1214 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2012 "seclang-parser.cc" // lalr1.cc:859 +#line 1895 "seclang-parser.cc" // lalr1.cc:859 break; case 83: -#line 1220 "seclang-parser.yy" // lalr1.cc:859 +#line 1218 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2020 "seclang-parser.cc" // lalr1.cc:859 +#line 1903 "seclang-parser.cc" // lalr1.cc:859 break; case 84: -#line 1224 "seclang-parser.yy" // lalr1.cc:859 +#line 1222 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2028 "seclang-parser.cc" // lalr1.cc:859 +#line 1911 "seclang-parser.cc" // lalr1.cc:859 break; case 85: -#line 1228 "seclang-parser.yy" // lalr1.cc:859 +#line 1226 "seclang-parser.yy" // lalr1.cc:859 { if (yystack_[0].value.as< std::string > ().length() != 1) { driver.error(yystack_[1].location, "Argument separator should be set to a single character."); @@ -2037,64 +1920,64 @@ namespace yy { driver.m_secArgumentSeparator.m_value = yystack_[0].value.as< std::string > (); driver.m_secArgumentSeparator.m_set = true; } -#line 2041 "seclang-parser.cc" // lalr1.cc:859 +#line 1924 "seclang-parser.cc" // lalr1.cc:859 break; case 86: -#line 1237 "seclang-parser.yy" // lalr1.cc:859 +#line 1235 "seclang-parser.yy" // lalr1.cc:859 { driver.m_components.push_back(yystack_[0].value.as< std::string > ()); } -#line 2049 "seclang-parser.cc" // lalr1.cc:859 +#line 1932 "seclang-parser.cc" // lalr1.cc:859 break; case 87: -#line 1241 "seclang-parser.yy" // lalr1.cc:859 +#line 1239 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secWebAppId.m_value = yystack_[0].value.as< std::string > (); driver.m_secWebAppId.m_set = true; } -#line 2058 "seclang-parser.cc" // lalr1.cc:859 +#line 1941 "seclang-parser.cc" // lalr1.cc:859 break; case 88: -#line 1246 "seclang-parser.yy" // lalr1.cc:859 +#line 1244 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecServerSignature is not supported."); YYERROR; } -#line 2067 "seclang-parser.cc" // lalr1.cc:859 +#line 1950 "seclang-parser.cc" // lalr1.cc:859 break; case 89: -#line 1251 "seclang-parser.yy" // lalr1.cc:859 +#line 1249 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "ContentInjection is not yet supported."); YYERROR; } -#line 2076 "seclang-parser.cc" // lalr1.cc:859 +#line 1959 "seclang-parser.cc" // lalr1.cc:859 break; case 90: -#line 1256 "seclang-parser.yy" // lalr1.cc:859 +#line 1254 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecCacheTransformations is not supported."); YYERROR; } -#line 2085 "seclang-parser.cc" // lalr1.cc:859 +#line 1968 "seclang-parser.cc" // lalr1.cc:859 break; case 91: -#line 1261 "seclang-parser.yy" // lalr1.cc:859 +#line 1259 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "ContentInjection is not yet supported."); YYERROR; } -#line 2094 "seclang-parser.cc" // lalr1.cc:859 +#line 1977 "seclang-parser.cc" // lalr1.cc:859 break; case 92: -#line 1266 "seclang-parser.yy" // lalr1.cc:859 +#line 1264 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.load(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2107,11 +1990,11 @@ namespace yy { YYERROR; } } -#line 2111 "seclang-parser.cc" // lalr1.cc:859 +#line 1994 "seclang-parser.cc" // lalr1.cc:859 break; case 93: -#line 1279 "seclang-parser.yy" // lalr1.cc:859 +#line 1277 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.loadRemoveRuleByTag(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2124,11 +2007,11 @@ namespace yy { YYERROR; } } -#line 2128 "seclang-parser.cc" // lalr1.cc:859 +#line 2011 "seclang-parser.cc" // lalr1.cc:859 break; case 94: -#line 1292 "seclang-parser.yy" // lalr1.cc:859 +#line 1290 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.loadRemoveRuleByMsg(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2141,11 +2024,11 @@ namespace yy { YYERROR; } } -#line 2145 "seclang-parser.cc" // lalr1.cc:859 +#line 2028 "seclang-parser.cc" // lalr1.cc:859 break; case 95: -#line 1305 "seclang-parser.yy" // lalr1.cc:859 +#line 1303 "seclang-parser.yy" // lalr1.cc:859 { 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) { @@ -2158,11 +2041,11 @@ namespace yy { YYERROR; } } -#line 2162 "seclang-parser.cc" // lalr1.cc:859 +#line 2045 "seclang-parser.cc" // lalr1.cc:859 break; case 96: -#line 1318 "seclang-parser.yy" // lalr1.cc:859 +#line 1316 "seclang-parser.yy" // lalr1.cc:859 { 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) { @@ -2175,11 +2058,11 @@ namespace yy { YYERROR; } } -#line 2179 "seclang-parser.cc" // lalr1.cc:859 +#line 2062 "seclang-parser.cc" // lalr1.cc:859 break; case 97: -#line 1331 "seclang-parser.yy" // lalr1.cc:859 +#line 1329 "seclang-parser.yy" // lalr1.cc:859 { std::string error; double ruleId; @@ -2205,11 +2088,11 @@ namespace yy { YYERROR; } } -#line 2209 "seclang-parser.cc" // lalr1.cc:859 +#line 2092 "seclang-parser.cc" // lalr1.cc:859 break; case 98: -#line 1357 "seclang-parser.yy" // lalr1.cc:859 +#line 1355 "seclang-parser.yy" // lalr1.cc:859 { std::string error; double ruleId; @@ -2234,11 +2117,11 @@ namespace yy { driver.error(yystack_[2].location, "SecRuleUpdateActionById is not yet supported"); YYERROR; } -#line 2238 "seclang-parser.cc" // lalr1.cc:859 +#line 2121 "seclang-parser.cc" // lalr1.cc:859 break; case 99: -#line 1383 "seclang-parser.yy" // lalr1.cc:859 +#line 1381 "seclang-parser.yy" // lalr1.cc:859 { if (driver.m_debugLog != NULL) { driver.m_debugLog->setDebugLogLevel(atoi(yystack_[0].value.as< std::string > ().c_str())); @@ -2250,11 +2133,11 @@ namespace yy { YYERROR; } } -#line 2254 "seclang-parser.cc" // lalr1.cc:859 +#line 2137 "seclang-parser.cc" // lalr1.cc:859 break; case 100: -#line 1395 "seclang-parser.yy" // lalr1.cc:859 +#line 1393 "seclang-parser.yy" // lalr1.cc:859 { if (driver.m_debugLog != NULL) { std::string error; @@ -2273,11 +2156,11 @@ namespace yy { YYERROR; } } -#line 2277 "seclang-parser.cc" // lalr1.cc:859 +#line 2160 "seclang-parser.cc" // lalr1.cc:859 break; case 101: -#line 1415 "seclang-parser.yy" // lalr1.cc:859 +#line 1413 "seclang-parser.yy" // lalr1.cc:859 { #ifdef WITH_GEOIP std::string err; @@ -2304,29 +2187,29 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2308 "seclang-parser.cc" // lalr1.cc:859 +#line 2191 "seclang-parser.cc" // lalr1.cc:859 break; case 102: -#line 1443 "seclang-parser.yy" // lalr1.cc:859 +#line 1441 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimit.m_set = true; driver.m_requestBodyLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2317 "seclang-parser.cc" // lalr1.cc:859 +#line 2200 "seclang-parser.cc" // lalr1.cc:859 break; case 103: -#line 1448 "seclang-parser.yy" // lalr1.cc:859 +#line 1446 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyNoFilesLimit.m_set = true; driver.m_requestBodyNoFilesLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2326 "seclang-parser.cc" // lalr1.cc:859 +#line 2209 "seclang-parser.cc" // lalr1.cc:859 break; case 104: -#line 1453 "seclang-parser.yy" // lalr1.cc:859 +#line 1451 "seclang-parser.yy" // lalr1.cc:859 { std::stringstream ss; ss << "As of ModSecurity version 3.0, SecRequestBodyInMemoryLimit is no longer "; @@ -2335,68 +2218,68 @@ namespace yy { driver.error(yystack_[1].location, ss.str()); YYERROR; } -#line 2339 "seclang-parser.cc" // lalr1.cc:859 +#line 2222 "seclang-parser.cc" // lalr1.cc:859 break; case 105: -#line 1462 "seclang-parser.yy" // lalr1.cc:859 +#line 1460 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimit.m_set = true; driver.m_responseBodyLimit.m_value = atoi(yystack_[0].value.as< std::string > ().c_str()); } -#line 2348 "seclang-parser.cc" // lalr1.cc:859 +#line 2231 "seclang-parser.cc" // lalr1.cc:859 break; case 106: -#line 1467 "seclang-parser.yy" // lalr1.cc:859 +#line 1465 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2356 "seclang-parser.cc" // lalr1.cc:859 +#line 2239 "seclang-parser.cc" // lalr1.cc:859 break; case 107: -#line 1471 "seclang-parser.yy" // lalr1.cc:859 +#line 1469 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2364 "seclang-parser.cc" // lalr1.cc:859 +#line 2247 "seclang-parser.cc" // lalr1.cc:859 break; case 108: -#line 1475 "seclang-parser.yy" // lalr1.cc:859 +#line 1473 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2372 "seclang-parser.cc" // lalr1.cc:859 +#line 2255 "seclang-parser.cc" // lalr1.cc:859 break; case 109: -#line 1479 "seclang-parser.yy" // lalr1.cc:859 +#line 1477 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2380 "seclang-parser.cc" // lalr1.cc:859 +#line 2263 "seclang-parser.cc" // lalr1.cc:859 break; case 110: -#line 1483 "seclang-parser.yy" // lalr1.cc:859 +#line 1481 "seclang-parser.yy" // lalr1.cc:859 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::AbortOnFailedRemoteRulesAction; } -#line 2388 "seclang-parser.cc" // lalr1.cc:859 +#line 2271 "seclang-parser.cc" // lalr1.cc:859 break; case 111: -#line 1487 "seclang-parser.yy" // lalr1.cc:859 +#line 1485 "seclang-parser.yy" // lalr1.cc:859 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::WarnOnFailedRemoteRulesAction; } -#line 2396 "seclang-parser.cc" // lalr1.cc:859 +#line 2279 "seclang-parser.cc" // lalr1.cc:859 break; case 114: -#line 1493 "seclang-parser.yy" // lalr1.cc:859 +#line 1491 "seclang-parser.yy" // lalr1.cc:859 { std::istringstream buf(yystack_[0].value.as< std::string > ()); std::istream_iterator beg(buf), end; @@ -2408,2278 +2291,2278 @@ namespace yy { driver.m_responseBodyTypeToBeInspected.m_value.insert(*it); } } -#line 2412 "seclang-parser.cc" // lalr1.cc:859 +#line 2295 "seclang-parser.cc" // lalr1.cc:859 break; case 115: -#line 1505 "seclang-parser.yy" // lalr1.cc:859 +#line 1503 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyTypeToBeInspected.m_set = true; driver.m_responseBodyTypeToBeInspected.m_clear = true; driver.m_responseBodyTypeToBeInspected.m_value.clear(); } -#line 2422 "seclang-parser.cc" // lalr1.cc:859 +#line 2305 "seclang-parser.cc" // lalr1.cc:859 break; case 116: -#line 1511 "seclang-parser.yy" // lalr1.cc:859 +#line 1509 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2430 "seclang-parser.cc" // lalr1.cc:859 +#line 2313 "seclang-parser.cc" // lalr1.cc:859 break; case 117: -#line 1515 "seclang-parser.yy" // lalr1.cc:859 +#line 1513 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2438 "seclang-parser.cc" // lalr1.cc:859 +#line 2321 "seclang-parser.cc" // lalr1.cc:859 break; case 124: -#line 1525 "seclang-parser.yy" // lalr1.cc:859 +#line 1523 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2445 "seclang-parser.cc" // lalr1.cc:859 +#line 2328 "seclang-parser.cc" // lalr1.cc:859 break; case 125: -#line 1528 "seclang-parser.yy" // lalr1.cc:859 +#line 1526 "seclang-parser.yy" // lalr1.cc:859 { driver.m_httpblKey.m_set = true; driver.m_httpblKey.m_value = yystack_[0].value.as< std::string > (); } -#line 2454 "seclang-parser.cc" // lalr1.cc:859 +#line 2337 "seclang-parser.cc" // lalr1.cc:859 break; case 126: -#line 1536 "seclang-parser.yy" // lalr1.cc:859 +#line 1534 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 2462 "seclang-parser.cc" // lalr1.cc:859 +#line 2345 "seclang-parser.cc" // lalr1.cc:859 break; case 127: -#line 1540 "seclang-parser.yy" // lalr1.cc:859 +#line 1538 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 2470 "seclang-parser.cc" // lalr1.cc:859 +#line 2353 "seclang-parser.cc" // lalr1.cc:859 break; case 128: -#line 1547 "seclang-parser.yy" // lalr1.cc:859 +#line 1545 "seclang-parser.yy" // lalr1.cc:859 { 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 2479 "seclang-parser.cc" // lalr1.cc:859 +#line 2362 "seclang-parser.cc" // lalr1.cc:859 break; case 129: -#line 1552 "seclang-parser.yy" // lalr1.cc:859 +#line 1550 "seclang-parser.yy" // lalr1.cc:859 { 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 2489 "seclang-parser.cc" // lalr1.cc:859 +#line 2372 "seclang-parser.cc" // lalr1.cc:859 break; case 130: -#line 1558 "seclang-parser.yy" // lalr1.cc:859 +#line 1556 "seclang-parser.yy" // lalr1.cc:859 { 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 2499 "seclang-parser.cc" // lalr1.cc:859 +#line 2382 "seclang-parser.cc" // lalr1.cc:859 break; case 131: -#line 1564 "seclang-parser.yy" // lalr1.cc:859 +#line 1562 "seclang-parser.yy" // lalr1.cc:859 { 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 2509 "seclang-parser.cc" // lalr1.cc:859 +#line 2392 "seclang-parser.cc" // lalr1.cc:859 break; case 132: -#line 1570 "seclang-parser.yy" // lalr1.cc:859 +#line 1568 "seclang-parser.yy" // lalr1.cc:859 { 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 2520 "seclang-parser.cc" // lalr1.cc:859 +#line 2403 "seclang-parser.cc" // lalr1.cc:859 break; case 133: -#line 1577 "seclang-parser.yy" // lalr1.cc:859 +#line 1575 "seclang-parser.yy" // lalr1.cc:859 { 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 2531 "seclang-parser.cc" // lalr1.cc:859 +#line 2414 "seclang-parser.cc" // lalr1.cc:859 break; case 134: -#line 1587 "seclang-parser.yy" // lalr1.cc:859 +#line 1585 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2539 "seclang-parser.cc" // lalr1.cc:859 +#line 2422 "seclang-parser.cc" // lalr1.cc:859 break; case 135: -#line 1591 "seclang-parser.yy" // lalr1.cc:859 +#line 1589 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2547 "seclang-parser.cc" // lalr1.cc:859 +#line 2430 "seclang-parser.cc" // lalr1.cc:859 break; case 136: -#line 1595 "seclang-parser.yy" // lalr1.cc:859 +#line 1593 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_NoDictElement()); } -#line 2555 "seclang-parser.cc" // lalr1.cc:859 +#line 2438 "seclang-parser.cc" // lalr1.cc:859 break; case 137: -#line 1599 "seclang-parser.yy" // lalr1.cc:859 +#line 1597 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2563 "seclang-parser.cc" // lalr1.cc:859 +#line 2446 "seclang-parser.cc" // lalr1.cc:859 break; case 138: -#line 1603 "seclang-parser.yy" // lalr1.cc:859 +#line 1601 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2571 "seclang-parser.cc" // lalr1.cc:859 +#line 2454 "seclang-parser.cc" // lalr1.cc:859 break; case 139: -#line 1607 "seclang-parser.yy" // lalr1.cc:859 +#line 1605 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_NoDictElement()); } -#line 2579 "seclang-parser.cc" // lalr1.cc:859 +#line 2462 "seclang-parser.cc" // lalr1.cc:859 break; case 140: -#line 1611 "seclang-parser.yy" // lalr1.cc:859 +#line 1609 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2587 "seclang-parser.cc" // lalr1.cc:859 +#line 2470 "seclang-parser.cc" // lalr1.cc:859 break; case 141: -#line 1615 "seclang-parser.yy" // lalr1.cc:859 +#line 1613 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2595 "seclang-parser.cc" // lalr1.cc:859 +#line 2478 "seclang-parser.cc" // lalr1.cc:859 break; case 142: -#line 1619 "seclang-parser.yy" // lalr1.cc:859 +#line 1617 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_NoDictElement()); } -#line 2603 "seclang-parser.cc" // lalr1.cc:859 +#line 2486 "seclang-parser.cc" // lalr1.cc:859 break; case 143: -#line 1623 "seclang-parser.yy" // lalr1.cc:859 +#line 1621 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2611 "seclang-parser.cc" // lalr1.cc:859 +#line 2494 "seclang-parser.cc" // lalr1.cc:859 break; case 144: -#line 1627 "seclang-parser.yy" // lalr1.cc:859 +#line 1625 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2619 "seclang-parser.cc" // lalr1.cc:859 +#line 2502 "seclang-parser.cc" // lalr1.cc:859 break; case 145: -#line 1631 "seclang-parser.yy" // lalr1.cc:859 +#line 1629 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_NoDictElement()); } -#line 2627 "seclang-parser.cc" // lalr1.cc:859 +#line 2510 "seclang-parser.cc" // lalr1.cc:859 break; case 146: -#line 1635 "seclang-parser.yy" // lalr1.cc:859 +#line 1633 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2635 "seclang-parser.cc" // lalr1.cc:859 +#line 2518 "seclang-parser.cc" // lalr1.cc:859 break; case 147: -#line 1639 "seclang-parser.yy" // lalr1.cc:859 +#line 1637 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2643 "seclang-parser.cc" // lalr1.cc:859 +#line 2526 "seclang-parser.cc" // lalr1.cc:859 break; case 148: -#line 1643 "seclang-parser.yy" // lalr1.cc:859 +#line 1641 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_NoDictElement()); } -#line 2651 "seclang-parser.cc" // lalr1.cc:859 +#line 2534 "seclang-parser.cc" // lalr1.cc:859 break; case 149: -#line 1647 "seclang-parser.yy" // lalr1.cc:859 +#line 1645 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2659 "seclang-parser.cc" // lalr1.cc:859 +#line 2542 "seclang-parser.cc" // lalr1.cc:859 break; case 150: -#line 1651 "seclang-parser.yy" // lalr1.cc:859 +#line 1649 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2667 "seclang-parser.cc" // lalr1.cc:859 +#line 2550 "seclang-parser.cc" // lalr1.cc:859 break; case 151: -#line 1655 "seclang-parser.yy" // lalr1.cc:859 +#line 1653 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_NoDictElement()); } -#line 2675 "seclang-parser.cc" // lalr1.cc:859 +#line 2558 "seclang-parser.cc" // lalr1.cc:859 break; case 152: -#line 1659 "seclang-parser.yy" // lalr1.cc:859 +#line 1657 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2683 "seclang-parser.cc" // lalr1.cc:859 +#line 2566 "seclang-parser.cc" // lalr1.cc:859 break; case 153: -#line 1663 "seclang-parser.yy" // lalr1.cc:859 +#line 1661 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2691 "seclang-parser.cc" // lalr1.cc:859 +#line 2574 "seclang-parser.cc" // lalr1.cc:859 break; case 154: -#line 1667 "seclang-parser.yy" // lalr1.cc:859 +#line 1665 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_NoDictElement()); } -#line 2699 "seclang-parser.cc" // lalr1.cc:859 +#line 2582 "seclang-parser.cc" // lalr1.cc:859 break; case 155: -#line 1671 "seclang-parser.yy" // lalr1.cc:859 +#line 1669 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2707 "seclang-parser.cc" // lalr1.cc:859 +#line 2590 "seclang-parser.cc" // lalr1.cc:859 break; case 156: -#line 1675 "seclang-parser.yy" // lalr1.cc:859 +#line 1673 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2715 "seclang-parser.cc" // lalr1.cc:859 +#line 2598 "seclang-parser.cc" // lalr1.cc:859 break; case 157: -#line 1679 "seclang-parser.yy" // lalr1.cc:859 +#line 1677 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_NoDictElement()); } -#line 2723 "seclang-parser.cc" // lalr1.cc:859 +#line 2606 "seclang-parser.cc" // lalr1.cc:859 break; case 158: -#line 1683 "seclang-parser.yy" // lalr1.cc:859 +#line 1681 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2731 "seclang-parser.cc" // lalr1.cc:859 +#line 2614 "seclang-parser.cc" // lalr1.cc:859 break; case 159: -#line 1687 "seclang-parser.yy" // lalr1.cc:859 +#line 1685 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2739 "seclang-parser.cc" // lalr1.cc:859 +#line 2622 "seclang-parser.cc" // lalr1.cc:859 break; case 160: -#line 1691 "seclang-parser.yy" // lalr1.cc:859 +#line 1689 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_NoDictElement()); } -#line 2747 "seclang-parser.cc" // lalr1.cc:859 +#line 2630 "seclang-parser.cc" // lalr1.cc:859 break; case 161: -#line 1695 "seclang-parser.yy" // lalr1.cc:859 +#line 1693 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2755 "seclang-parser.cc" // lalr1.cc:859 +#line 2638 "seclang-parser.cc" // lalr1.cc:859 break; case 162: -#line 1699 "seclang-parser.yy" // lalr1.cc:859 +#line 1697 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2763 "seclang-parser.cc" // lalr1.cc:859 +#line 2646 "seclang-parser.cc" // lalr1.cc:859 break; case 163: -#line 1703 "seclang-parser.yy" // lalr1.cc:859 +#line 1701 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_NoDictElement()); } -#line 2771 "seclang-parser.cc" // lalr1.cc:859 +#line 2654 "seclang-parser.cc" // lalr1.cc:859 break; case 164: -#line 1707 "seclang-parser.yy" // lalr1.cc:859 +#line 1705 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2779 "seclang-parser.cc" // lalr1.cc:859 +#line 2662 "seclang-parser.cc" // lalr1.cc:859 break; case 165: -#line 1711 "seclang-parser.yy" // lalr1.cc:859 +#line 1709 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2787 "seclang-parser.cc" // lalr1.cc:859 +#line 2670 "seclang-parser.cc" // lalr1.cc:859 break; case 166: -#line 1715 "seclang-parser.yy" // lalr1.cc:859 +#line 1713 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_NoDictElement()); } -#line 2795 "seclang-parser.cc" // lalr1.cc:859 +#line 2678 "seclang-parser.cc" // lalr1.cc:859 break; case 167: -#line 1719 "seclang-parser.yy" // lalr1.cc:859 +#line 1717 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2803 "seclang-parser.cc" // lalr1.cc:859 +#line 2686 "seclang-parser.cc" // lalr1.cc:859 break; case 168: -#line 1723 "seclang-parser.yy" // lalr1.cc:859 +#line 1721 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2811 "seclang-parser.cc" // lalr1.cc:859 +#line 2694 "seclang-parser.cc" // lalr1.cc:859 break; case 169: -#line 1727 "seclang-parser.yy" // lalr1.cc:859 +#line 1725 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_NoDictElement()); } -#line 2819 "seclang-parser.cc" // lalr1.cc:859 +#line 2702 "seclang-parser.cc" // lalr1.cc:859 break; case 170: -#line 1731 "seclang-parser.yy" // lalr1.cc:859 +#line 1729 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2827 "seclang-parser.cc" // lalr1.cc:859 +#line 2710 "seclang-parser.cc" // lalr1.cc:859 break; case 171: -#line 1735 "seclang-parser.yy" // lalr1.cc:859 +#line 1733 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2835 "seclang-parser.cc" // lalr1.cc:859 +#line 2718 "seclang-parser.cc" // lalr1.cc:859 break; case 172: -#line 1739 "seclang-parser.yy" // lalr1.cc:859 +#line 1737 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_NoDictElement()); } -#line 2843 "seclang-parser.cc" // lalr1.cc:859 +#line 2726 "seclang-parser.cc" // lalr1.cc:859 break; case 173: -#line 1743 "seclang-parser.yy" // lalr1.cc:859 +#line 1741 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2851 "seclang-parser.cc" // lalr1.cc:859 +#line 2734 "seclang-parser.cc" // lalr1.cc:859 break; case 174: -#line 1747 "seclang-parser.yy" // lalr1.cc:859 +#line 1745 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2859 "seclang-parser.cc" // lalr1.cc:859 +#line 2742 "seclang-parser.cc" // lalr1.cc:859 break; case 175: -#line 1751 "seclang-parser.yy" // lalr1.cc:859 +#line 1749 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_NoDictElement()); } -#line 2867 "seclang-parser.cc" // lalr1.cc:859 +#line 2750 "seclang-parser.cc" // lalr1.cc:859 break; case 176: -#line 1755 "seclang-parser.yy" // lalr1.cc:859 +#line 1753 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2875 "seclang-parser.cc" // lalr1.cc:859 +#line 2758 "seclang-parser.cc" // lalr1.cc:859 break; case 177: -#line 1759 "seclang-parser.yy" // lalr1.cc:859 +#line 1757 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2883 "seclang-parser.cc" // lalr1.cc:859 +#line 2766 "seclang-parser.cc" // lalr1.cc:859 break; case 178: -#line 1763 "seclang-parser.yy" // lalr1.cc:859 +#line 1761 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_NoDictElement()); } -#line 2891 "seclang-parser.cc" // lalr1.cc:859 +#line 2774 "seclang-parser.cc" // lalr1.cc:859 break; case 179: -#line 1767 "seclang-parser.yy" // lalr1.cc:859 +#line 1765 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2899 "seclang-parser.cc" // lalr1.cc:859 +#line 2782 "seclang-parser.cc" // lalr1.cc:859 break; case 180: -#line 1771 "seclang-parser.yy" // lalr1.cc:859 +#line 1769 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2907 "seclang-parser.cc" // lalr1.cc:859 +#line 2790 "seclang-parser.cc" // lalr1.cc:859 break; case 181: -#line 1775 "seclang-parser.yy" // lalr1.cc:859 +#line 1773 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_NoDictElement()); } -#line 2915 "seclang-parser.cc" // lalr1.cc:859 +#line 2798 "seclang-parser.cc" // lalr1.cc:859 break; case 182: -#line 1779 "seclang-parser.yy" // lalr1.cc:859 +#line 1777 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2923 "seclang-parser.cc" // lalr1.cc:859 +#line 2806 "seclang-parser.cc" // lalr1.cc:859 break; case 183: -#line 1783 "seclang-parser.yy" // lalr1.cc:859 +#line 1781 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 2931 "seclang-parser.cc" // lalr1.cc:859 +#line 2814 "seclang-parser.cc" // lalr1.cc:859 break; case 184: -#line 1787 "seclang-parser.yy" // lalr1.cc:859 +#line 1785 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_NoDictElement()); } -#line 2939 "seclang-parser.cc" // lalr1.cc:859 +#line 2822 "seclang-parser.cc" // lalr1.cc:859 break; case 185: -#line 1791 "seclang-parser.yy" // lalr1.cc:859 +#line 1789 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV:" + yystack_[0].value.as< std::string > ())); } -#line 2947 "seclang-parser.cc" // lalr1.cc:859 +#line 2830 "seclang-parser.cc" // lalr1.cc:859 break; case 186: -#line 1795 "seclang-parser.yy" // lalr1.cc:859 +#line 1793 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV:" + yystack_[0].value.as< std::string > ())); } -#line 2955 "seclang-parser.cc" // lalr1.cc:859 +#line 2838 "seclang-parser.cc" // lalr1.cc:859 break; case 187: -#line 1799 "seclang-parser.yy" // lalr1.cc:859 +#line 1797 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV")); } -#line 2963 "seclang-parser.cc" // lalr1.cc:859 +#line 2846 "seclang-parser.cc" // lalr1.cc:859 break; case 188: -#line 1803 "seclang-parser.yy" // lalr1.cc:859 +#line 1801 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML("XML:" + yystack_[0].value.as< std::string > ())); } -#line 2971 "seclang-parser.cc" // lalr1.cc:859 +#line 2854 "seclang-parser.cc" // lalr1.cc:859 break; case 189: -#line 1807 "seclang-parser.yy" // lalr1.cc:859 +#line 1805 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML("XML:" + yystack_[0].value.as< std::string > ())); } -#line 2979 "seclang-parser.cc" // lalr1.cc:859 +#line 2862 "seclang-parser.cc" // lalr1.cc:859 break; case 190: -#line 1811 "seclang-parser.yy" // lalr1.cc:859 +#line 1809 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML_NoDictElement()); } -#line 2987 "seclang-parser.cc" // lalr1.cc:859 +#line 2870 "seclang-parser.cc" // lalr1.cc:859 break; case 191: -#line 1815 "seclang-parser.yy" // lalr1.cc:859 +#line 1813 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 2995 "seclang-parser.cc" // lalr1.cc:859 +#line 2878 "seclang-parser.cc" // lalr1.cc:859 break; case 192: -#line 1819 "seclang-parser.yy" // lalr1.cc:859 +#line 1817 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3003 "seclang-parser.cc" // lalr1.cc:859 +#line 2886 "seclang-parser.cc" // lalr1.cc:859 break; case 193: -#line 1823 "seclang-parser.yy" // lalr1.cc:859 +#line 1821 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_NoDictElement()); } -#line 3011 "seclang-parser.cc" // lalr1.cc:859 +#line 2894 "seclang-parser.cc" // lalr1.cc:859 break; case 194: -#line 1827 "seclang-parser.yy" // lalr1.cc:859 +#line 1825 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3019 "seclang-parser.cc" // lalr1.cc:859 +#line 2902 "seclang-parser.cc" // lalr1.cc:859 break; case 195: -#line 1831 "seclang-parser.yy" // lalr1.cc:859 +#line 1829 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3027 "seclang-parser.cc" // lalr1.cc:859 +#line 2910 "seclang-parser.cc" // lalr1.cc:859 break; case 196: -#line 1835 "seclang-parser.yy" // lalr1.cc:859 +#line 1833 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_NoDictElement()); } -#line 3035 "seclang-parser.cc" // lalr1.cc:859 +#line 2918 "seclang-parser.cc" // lalr1.cc:859 break; case 197: -#line 1840 "seclang-parser.yy" // lalr1.cc:859 +#line 1838 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3043 "seclang-parser.cc" // lalr1.cc:859 +#line 2926 "seclang-parser.cc" // lalr1.cc:859 break; case 198: -#line 1844 "seclang-parser.yy" // lalr1.cc:859 +#line 1842 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3051 "seclang-parser.cc" // lalr1.cc:859 +#line 2934 "seclang-parser.cc" // lalr1.cc:859 break; case 199: -#line 1848 "seclang-parser.yy" // lalr1.cc:859 +#line 1846 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_NoDictElement()); } -#line 3059 "seclang-parser.cc" // lalr1.cc:859 +#line 2942 "seclang-parser.cc" // lalr1.cc:859 break; case 200: -#line 1853 "seclang-parser.yy" // lalr1.cc:859 +#line 1851 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3067 "seclang-parser.cc" // lalr1.cc:859 +#line 2950 "seclang-parser.cc" // lalr1.cc:859 break; case 201: -#line 1857 "seclang-parser.yy" // lalr1.cc:859 +#line 1855 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3075 "seclang-parser.cc" // lalr1.cc:859 +#line 2958 "seclang-parser.cc" // lalr1.cc:859 break; case 202: -#line 1861 "seclang-parser.yy" // lalr1.cc:859 +#line 1859 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_NoDictElement()); } -#line 3083 "seclang-parser.cc" // lalr1.cc:859 +#line 2966 "seclang-parser.cc" // lalr1.cc:859 break; case 203: -#line 1866 "seclang-parser.yy" // lalr1.cc:859 +#line 1864 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3091 "seclang-parser.cc" // lalr1.cc:859 +#line 2974 "seclang-parser.cc" // lalr1.cc:859 break; case 204: -#line 1870 "seclang-parser.yy" // lalr1.cc:859 +#line 1868 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3099 "seclang-parser.cc" // lalr1.cc:859 +#line 2982 "seclang-parser.cc" // lalr1.cc:859 break; case 205: -#line 1874 "seclang-parser.yy" // lalr1.cc:859 +#line 1872 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_NoDictElement()); } -#line 3107 "seclang-parser.cc" // lalr1.cc:859 +#line 2990 "seclang-parser.cc" // lalr1.cc:859 break; case 206: -#line 1879 "seclang-parser.yy" // lalr1.cc:859 +#line 1877 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3115 "seclang-parser.cc" // lalr1.cc:859 +#line 2998 "seclang-parser.cc" // lalr1.cc:859 break; case 207: -#line 1883 "seclang-parser.yy" // lalr1.cc:859 +#line 1881 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3123 "seclang-parser.cc" // lalr1.cc:859 +#line 3006 "seclang-parser.cc" // lalr1.cc:859 break; case 208: -#line 1887 "seclang-parser.yy" // lalr1.cc:859 +#line 1885 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_NoDictElement()); } -#line 3131 "seclang-parser.cc" // lalr1.cc:859 +#line 3014 "seclang-parser.cc" // lalr1.cc:859 break; case 209: -#line 1892 "seclang-parser.yy" // lalr1.cc:859 +#line 1890 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3139 "seclang-parser.cc" // lalr1.cc:859 +#line 3022 "seclang-parser.cc" // lalr1.cc:859 break; case 210: -#line 1896 "seclang-parser.yy" // lalr1.cc:859 +#line 1894 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3147 "seclang-parser.cc" // lalr1.cc:859 +#line 3030 "seclang-parser.cc" // lalr1.cc:859 break; case 211: -#line 1900 "seclang-parser.yy" // lalr1.cc:859 +#line 1898 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_NoDictElement()); } -#line 3155 "seclang-parser.cc" // lalr1.cc:859 +#line 3038 "seclang-parser.cc" // lalr1.cc:859 break; case 212: -#line 1904 "seclang-parser.yy" // lalr1.cc:859 +#line 1902 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3163 "seclang-parser.cc" // lalr1.cc:859 +#line 3046 "seclang-parser.cc" // lalr1.cc:859 break; case 213: -#line 1908 "seclang-parser.yy" // lalr1.cc:859 +#line 1906 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3171 "seclang-parser.cc" // lalr1.cc:859 +#line 3054 "seclang-parser.cc" // lalr1.cc:859 break; case 214: -#line 1912 "seclang-parser.yy" // lalr1.cc:859 +#line 1910 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_NoDictElement()); } -#line 3179 "seclang-parser.cc" // lalr1.cc:859 +#line 3062 "seclang-parser.cc" // lalr1.cc:859 break; case 215: -#line 1917 "seclang-parser.yy" // lalr1.cc:859 +#line 1915 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3187 "seclang-parser.cc" // lalr1.cc:859 +#line 3070 "seclang-parser.cc" // lalr1.cc:859 break; case 216: -#line 1921 "seclang-parser.yy" // lalr1.cc:859 +#line 1919 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3195 "seclang-parser.cc" // lalr1.cc:859 +#line 3078 "seclang-parser.cc" // lalr1.cc:859 break; case 217: -#line 1925 "seclang-parser.yy" // lalr1.cc:859 +#line 1923 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_NoDictElement()); } -#line 3203 "seclang-parser.cc" // lalr1.cc:859 +#line 3086 "seclang-parser.cc" // lalr1.cc:859 break; case 218: -#line 1930 "seclang-parser.yy" // lalr1.cc:859 +#line 1928 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3211 "seclang-parser.cc" // lalr1.cc:859 +#line 3094 "seclang-parser.cc" // lalr1.cc:859 break; case 219: -#line 1934 "seclang-parser.yy" // lalr1.cc:859 +#line 1932 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3219 "seclang-parser.cc" // lalr1.cc:859 +#line 3102 "seclang-parser.cc" // lalr1.cc:859 break; case 220: -#line 1938 "seclang-parser.yy" // lalr1.cc:859 +#line 1936 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_NoDictElement()); } -#line 3227 "seclang-parser.cc" // lalr1.cc:859 +#line 3110 "seclang-parser.cc" // lalr1.cc:859 break; case 221: -#line 1943 "seclang-parser.yy" // lalr1.cc:859 +#line 1941 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentType()); } -#line 3235 "seclang-parser.cc" // lalr1.cc:859 +#line 3118 "seclang-parser.cc" // lalr1.cc:859 break; case 222: -#line 1948 "seclang-parser.yy" // lalr1.cc:859 +#line 1946 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3243 "seclang-parser.cc" // lalr1.cc:859 +#line 3126 "seclang-parser.cc" // lalr1.cc:859 break; case 223: -#line 1952 "seclang-parser.yy" // lalr1.cc:859 +#line 1950 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3251 "seclang-parser.cc" // lalr1.cc:859 +#line 3134 "seclang-parser.cc" // lalr1.cc:859 break; case 224: -#line 1956 "seclang-parser.yy" // lalr1.cc:859 +#line 1954 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_NoDictElement()); } -#line 3259 "seclang-parser.cc" // lalr1.cc:859 +#line 3142 "seclang-parser.cc" // lalr1.cc:859 break; case 225: -#line 1960 "seclang-parser.yy" // lalr1.cc:859 +#line 1958 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsCombinedSize()); } -#line 3267 "seclang-parser.cc" // lalr1.cc:859 +#line 3150 "seclang-parser.cc" // lalr1.cc:859 break; case 226: -#line 1964 "seclang-parser.yy" // lalr1.cc:859 +#line 1962 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::AuthType()); } -#line 3275 "seclang-parser.cc" // lalr1.cc:859 +#line 3158 "seclang-parser.cc" // lalr1.cc:859 break; case 227: -#line 1968 "seclang-parser.yy" // lalr1.cc:859 +#line 1966 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesCombinedSize()); } -#line 3283 "seclang-parser.cc" // lalr1.cc:859 +#line 3166 "seclang-parser.cc" // lalr1.cc:859 break; case 228: -#line 1972 "seclang-parser.yy" // lalr1.cc:859 +#line 1970 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequest()); } -#line 3291 "seclang-parser.cc" // lalr1.cc:859 +#line 3174 "seclang-parser.cc" // lalr1.cc:859 break; case 229: -#line 1976 "seclang-parser.yy" // lalr1.cc:859 +#line 1974 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequestLength()); } -#line 3299 "seclang-parser.cc" // lalr1.cc:859 +#line 3182 "seclang-parser.cc" // lalr1.cc:859 break; case 230: -#line 1980 "seclang-parser.yy" // lalr1.cc:859 +#line 1978 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::InboundDataError()); } -#line 3307 "seclang-parser.cc" // lalr1.cc:859 +#line 3190 "seclang-parser.cc" // lalr1.cc:859 break; case 231: -#line 1984 "seclang-parser.yy" // lalr1.cc:859 +#line 1982 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVar()); } -#line 3315 "seclang-parser.cc" // lalr1.cc:859 +#line 3198 "seclang-parser.cc" // lalr1.cc:859 break; case 232: -#line 1988 "seclang-parser.yy" // lalr1.cc:859 +#line 1986 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarName()); } -#line 3323 "seclang-parser.cc" // lalr1.cc:859 +#line 3206 "seclang-parser.cc" // lalr1.cc:859 break; case 233: -#line 1992 "seclang-parser.yy" // lalr1.cc:859 +#line 1990 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryQuoted()); } -#line 3331 "seclang-parser.cc" // lalr1.cc:859 +#line 3214 "seclang-parser.cc" // lalr1.cc:859 break; case 234: -#line 1996 "seclang-parser.yy" // lalr1.cc:859 +#line 1994 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryWhiteSpace()); } -#line 3339 "seclang-parser.cc" // lalr1.cc:859 +#line 3222 "seclang-parser.cc" // lalr1.cc:859 break; case 235: -#line 2000 "seclang-parser.yy" // lalr1.cc:859 +#line 1998 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartCrlfLFLines()); } -#line 3347 "seclang-parser.cc" // lalr1.cc:859 +#line 3230 "seclang-parser.cc" // lalr1.cc:859 break; case 236: -#line 2004 "seclang-parser.yy" // lalr1.cc:859 +#line 2002 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateAfter()); } -#line 3355 "seclang-parser.cc" // lalr1.cc:859 +#line 3238 "seclang-parser.cc" // lalr1.cc:859 break; case 237: -#line 2008 "seclang-parser.yy" // lalr1.cc:859 +#line 2006 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateBefore()); } -#line 3363 "seclang-parser.cc" // lalr1.cc:859 +#line 3246 "seclang-parser.cc" // lalr1.cc:859 break; case 238: -#line 2012 "seclang-parser.yy" // lalr1.cc:859 +#line 2010 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartFileLimitExceeded()); } -#line 3371 "seclang-parser.cc" // lalr1.cc:859 +#line 3254 "seclang-parser.cc" // lalr1.cc:859 break; case 239: -#line 2016 "seclang-parser.yy" // lalr1.cc:859 +#line 2014 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartHeaderFolding()); } -#line 3379 "seclang-parser.cc" // lalr1.cc:859 +#line 3262 "seclang-parser.cc" // lalr1.cc:859 break; case 240: -#line 2020 "seclang-parser.yy" // lalr1.cc:859 +#line 2018 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidHeaderFolding()); } -#line 3387 "seclang-parser.cc" // lalr1.cc:859 +#line 3270 "seclang-parser.cc" // lalr1.cc:859 break; case 241: -#line 2024 "seclang-parser.yy" // lalr1.cc:859 +#line 2022 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidPart()); } -#line 3395 "seclang-parser.cc" // lalr1.cc:859 +#line 3278 "seclang-parser.cc" // lalr1.cc:859 break; case 242: -#line 2028 "seclang-parser.yy" // lalr1.cc:859 +#line 2026 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidQuoting()); } -#line 3403 "seclang-parser.cc" // lalr1.cc:859 +#line 3286 "seclang-parser.cc" // lalr1.cc:859 break; case 243: -#line 2032 "seclang-parser.yy" // lalr1.cc:859 +#line 2030 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartLFLine()); } -#line 3411 "seclang-parser.cc" // lalr1.cc:859 +#line 3294 "seclang-parser.cc" // lalr1.cc:859 break; case 244: -#line 2036 "seclang-parser.yy" // lalr1.cc:859 +#line 2034 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 3419 "seclang-parser.cc" // lalr1.cc:859 +#line 3302 "seclang-parser.cc" // lalr1.cc:859 break; case 245: -#line 2040 "seclang-parser.yy" // lalr1.cc:859 +#line 2038 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartStrictError()); } -#line 3427 "seclang-parser.cc" // lalr1.cc:859 +#line 3310 "seclang-parser.cc" // lalr1.cc:859 break; case 246: -#line 2044 "seclang-parser.yy" // lalr1.cc:859 +#line 2042 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartUnmatchedBoundary()); } -#line 3435 "seclang-parser.cc" // lalr1.cc:859 +#line 3318 "seclang-parser.cc" // lalr1.cc:859 break; case 247: -#line 2048 "seclang-parser.yy" // lalr1.cc:859 +#line 2046 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::OutboundDataError()); } -#line 3443 "seclang-parser.cc" // lalr1.cc:859 +#line 3326 "seclang-parser.cc" // lalr1.cc:859 break; case 248: -#line 2052 "seclang-parser.yy" // lalr1.cc:859 +#line 2050 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::PathInfo()); } -#line 3451 "seclang-parser.cc" // lalr1.cc:859 +#line 3334 "seclang-parser.cc" // lalr1.cc:859 break; case 249: -#line 2056 "seclang-parser.yy" // lalr1.cc:859 +#line 2054 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::QueryString()); } -#line 3459 "seclang-parser.cc" // lalr1.cc:859 +#line 3342 "seclang-parser.cc" // lalr1.cc:859 break; case 250: -#line 2060 "seclang-parser.yy" // lalr1.cc:859 +#line 2058 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteAddr()); } -#line 3467 "seclang-parser.cc" // lalr1.cc:859 +#line 3350 "seclang-parser.cc" // lalr1.cc:859 break; case 251: -#line 2064 "seclang-parser.yy" // lalr1.cc:859 +#line 2062 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteHost()); } -#line 3475 "seclang-parser.cc" // lalr1.cc:859 +#line 3358 "seclang-parser.cc" // lalr1.cc:859 break; case 252: -#line 2068 "seclang-parser.yy" // lalr1.cc:859 +#line 2066 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemotePort()); } -#line 3483 "seclang-parser.cc" // lalr1.cc:859 +#line 3366 "seclang-parser.cc" // lalr1.cc:859 break; case 253: -#line 2072 "seclang-parser.yy" // lalr1.cc:859 +#line 2070 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyError()); } -#line 3491 "seclang-parser.cc" // lalr1.cc:859 +#line 3374 "seclang-parser.cc" // lalr1.cc:859 break; case 254: -#line 2076 "seclang-parser.yy" // lalr1.cc:859 +#line 2074 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyErrorMsg()); } -#line 3499 "seclang-parser.cc" // lalr1.cc:859 +#line 3382 "seclang-parser.cc" // lalr1.cc:859 break; case 255: -#line 2080 "seclang-parser.yy" // lalr1.cc:859 +#line 2078 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessor()); } -#line 3507 "seclang-parser.cc" // lalr1.cc:859 +#line 3390 "seclang-parser.cc" // lalr1.cc:859 break; case 256: -#line 2084 "seclang-parser.yy" // lalr1.cc:859 +#line 2082 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorError()); } -#line 3515 "seclang-parser.cc" // lalr1.cc:859 +#line 3398 "seclang-parser.cc" // lalr1.cc:859 break; case 257: -#line 2088 "seclang-parser.yy" // lalr1.cc:859 +#line 2086 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorErrorMsg()); } -#line 3523 "seclang-parser.cc" // lalr1.cc:859 +#line 3406 "seclang-parser.cc" // lalr1.cc:859 break; case 258: -#line 2092 "seclang-parser.yy" // lalr1.cc:859 +#line 2090 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBasename()); } -#line 3531 "seclang-parser.cc" // lalr1.cc:859 +#line 3414 "seclang-parser.cc" // lalr1.cc:859 break; case 259: -#line 2096 "seclang-parser.yy" // lalr1.cc:859 +#line 2094 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBody()); } -#line 3539 "seclang-parser.cc" // lalr1.cc:859 +#line 3422 "seclang-parser.cc" // lalr1.cc:859 break; case 260: -#line 2100 "seclang-parser.yy" // lalr1.cc:859 +#line 2098 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBodyLength()); } -#line 3547 "seclang-parser.cc" // lalr1.cc:859 +#line 3430 "seclang-parser.cc" // lalr1.cc:859 break; case 261: -#line 2104 "seclang-parser.yy" // lalr1.cc:859 +#line 2102 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestFilename()); } -#line 3555 "seclang-parser.cc" // lalr1.cc:859 +#line 3438 "seclang-parser.cc" // lalr1.cc:859 break; case 262: -#line 2108 "seclang-parser.yy" // lalr1.cc:859 +#line 2106 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestLine()); } -#line 3563 "seclang-parser.cc" // lalr1.cc:859 +#line 3446 "seclang-parser.cc" // lalr1.cc:859 break; case 263: -#line 2112 "seclang-parser.yy" // lalr1.cc:859 +#line 2110 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestMethod()); } -#line 3571 "seclang-parser.cc" // lalr1.cc:859 +#line 3454 "seclang-parser.cc" // lalr1.cc:859 break; case 264: -#line 2116 "seclang-parser.yy" // lalr1.cc:859 +#line 2114 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestProtocol()); } -#line 3579 "seclang-parser.cc" // lalr1.cc:859 +#line 3462 "seclang-parser.cc" // lalr1.cc:859 break; case 265: -#line 2120 "seclang-parser.yy" // lalr1.cc:859 +#line 2118 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURI()); } -#line 3587 "seclang-parser.cc" // lalr1.cc:859 +#line 3470 "seclang-parser.cc" // lalr1.cc:859 break; case 266: -#line 2124 "seclang-parser.yy" // lalr1.cc:859 +#line 2122 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURIRaw()); } -#line 3595 "seclang-parser.cc" // lalr1.cc:859 +#line 3478 "seclang-parser.cc" // lalr1.cc:859 break; case 267: -#line 2128 "seclang-parser.yy" // lalr1.cc:859 +#line 2126 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseBody()); } -#line 3603 "seclang-parser.cc" // lalr1.cc:859 +#line 3486 "seclang-parser.cc" // lalr1.cc:859 break; case 268: -#line 2132 "seclang-parser.yy" // lalr1.cc:859 +#line 2130 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentLength()); } -#line 3611 "seclang-parser.cc" // lalr1.cc:859 +#line 3494 "seclang-parser.cc" // lalr1.cc:859 break; case 269: -#line 2136 "seclang-parser.yy" // lalr1.cc:859 +#line 2134 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseProtocol()); } -#line 3619 "seclang-parser.cc" // lalr1.cc:859 +#line 3502 "seclang-parser.cc" // lalr1.cc:859 break; case 270: -#line 2140 "seclang-parser.yy" // lalr1.cc:859 +#line 2138 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseStatus()); } -#line 3627 "seclang-parser.cc" // lalr1.cc:859 +#line 3510 "seclang-parser.cc" // lalr1.cc:859 break; case 271: -#line 2144 "seclang-parser.yy" // lalr1.cc:859 +#line 2142 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerAddr()); } -#line 3635 "seclang-parser.cc" // lalr1.cc:859 +#line 3518 "seclang-parser.cc" // lalr1.cc:859 break; case 272: -#line 2148 "seclang-parser.yy" // lalr1.cc:859 +#line 2146 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerName()); } -#line 3643 "seclang-parser.cc" // lalr1.cc:859 +#line 3526 "seclang-parser.cc" // lalr1.cc:859 break; case 273: -#line 2152 "seclang-parser.yy" // lalr1.cc:859 +#line 2150 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerPort()); } -#line 3651 "seclang-parser.cc" // lalr1.cc:859 +#line 3534 "seclang-parser.cc" // lalr1.cc:859 break; case 274: -#line 2156 "seclang-parser.yy" // lalr1.cc:859 +#line 2154 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::SessionID()); } -#line 3659 "seclang-parser.cc" // lalr1.cc:859 +#line 3542 "seclang-parser.cc" // lalr1.cc:859 break; case 275: -#line 2160 "seclang-parser.yy" // lalr1.cc:859 +#line 2158 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UniqueID()); } -#line 3667 "seclang-parser.cc" // lalr1.cc:859 +#line 3550 "seclang-parser.cc" // lalr1.cc:859 break; case 276: -#line 2164 "seclang-parser.yy" // lalr1.cc:859 +#line 2162 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UrlEncodedError()); } -#line 3675 "seclang-parser.cc" // lalr1.cc:859 +#line 3558 "seclang-parser.cc" // lalr1.cc:859 break; case 277: -#line 2168 "seclang-parser.yy" // lalr1.cc:859 +#line 2166 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UserID()); } -#line 3683 "seclang-parser.cc" // lalr1.cc:859 +#line 3566 "seclang-parser.cc" // lalr1.cc:859 break; case 278: -#line 2172 "seclang-parser.yy" // lalr1.cc:859 +#line 2170 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 3691 "seclang-parser.cc" // lalr1.cc:859 +#line 3574 "seclang-parser.cc" // lalr1.cc:859 break; case 279: -#line 2176 "seclang-parser.yy" // lalr1.cc:859 +#line 2174 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::WebAppId()); } -#line 3699 "seclang-parser.cc" // lalr1.cc:859 +#line 3582 "seclang-parser.cc" // lalr1.cc:859 break; case 280: -#line 2180 "seclang-parser.yy" // lalr1.cc:859 +#line 2178 "seclang-parser.yy" // lalr1.cc:859 { 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 3710 "seclang-parser.cc" // lalr1.cc:859 +#line 3593 "seclang-parser.cc" // lalr1.cc:859 break; case 281: -#line 2188 "seclang-parser.yy" // lalr1.cc:859 +#line 2186 "seclang-parser.yy" // lalr1.cc:859 { 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 3721 "seclang-parser.cc" // lalr1.cc:859 +#line 3604 "seclang-parser.cc" // lalr1.cc:859 break; case 282: -#line 2195 "seclang-parser.yy" // lalr1.cc:859 +#line 2193 "seclang-parser.yy" // lalr1.cc:859 { 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 3732 "seclang-parser.cc" // lalr1.cc:859 +#line 3615 "seclang-parser.cc" // lalr1.cc:859 break; case 283: -#line 2202 "seclang-parser.yy" // lalr1.cc:859 +#line 2200 "seclang-parser.yy" // lalr1.cc:859 { 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 3743 "seclang-parser.cc" // lalr1.cc:859 +#line 3626 "seclang-parser.cc" // lalr1.cc:859 break; case 284: -#line 2209 "seclang-parser.yy" // lalr1.cc:859 +#line 2207 "seclang-parser.yy" // lalr1.cc:859 { 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 3754 "seclang-parser.cc" // lalr1.cc:859 +#line 3637 "seclang-parser.cc" // lalr1.cc:859 break; case 285: -#line 2216 "seclang-parser.yy" // lalr1.cc:859 +#line 2214 "seclang-parser.yy" // lalr1.cc:859 { 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 3765 "seclang-parser.cc" // lalr1.cc:859 +#line 3648 "seclang-parser.cc" // lalr1.cc:859 break; case 286: -#line 2223 "seclang-parser.yy" // lalr1.cc:859 +#line 2221 "seclang-parser.yy" // lalr1.cc:859 { 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 3776 "seclang-parser.cc" // lalr1.cc:859 +#line 3659 "seclang-parser.cc" // lalr1.cc:859 break; case 287: -#line 2230 "seclang-parser.yy" // lalr1.cc:859 +#line 2228 "seclang-parser.yy" // lalr1.cc:859 { 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 3787 "seclang-parser.cc" // lalr1.cc:859 +#line 3670 "seclang-parser.cc" // lalr1.cc:859 break; case 288: -#line 2237 "seclang-parser.yy" // lalr1.cc:859 +#line 2235 "seclang-parser.yy" // lalr1.cc:859 { 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 3798 "seclang-parser.cc" // lalr1.cc:859 +#line 3681 "seclang-parser.cc" // lalr1.cc:859 break; case 289: -#line 2244 "seclang-parser.yy" // lalr1.cc:859 +#line 2242 "seclang-parser.yy" // lalr1.cc:859 { 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 3809 "seclang-parser.cc" // lalr1.cc:859 +#line 3692 "seclang-parser.cc" // lalr1.cc:859 break; case 290: -#line 2251 "seclang-parser.yy" // lalr1.cc:859 +#line 2249 "seclang-parser.yy" // lalr1.cc:859 { 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 3820 "seclang-parser.cc" // lalr1.cc:859 +#line 3703 "seclang-parser.cc" // lalr1.cc:859 break; case 291: -#line 2258 "seclang-parser.yy" // lalr1.cc:859 +#line 2256 "seclang-parser.yy" // lalr1.cc:859 { 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 3831 "seclang-parser.cc" // lalr1.cc:859 +#line 3714 "seclang-parser.cc" // lalr1.cc:859 break; case 292: -#line 2265 "seclang-parser.yy" // lalr1.cc:859 +#line 2263 "seclang-parser.yy" // lalr1.cc:859 { 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 3842 "seclang-parser.cc" // lalr1.cc:859 +#line 3725 "seclang-parser.cc" // lalr1.cc:859 break; case 293: -#line 2275 "seclang-parser.yy" // lalr1.cc:859 +#line 2273 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Accuracy(yystack_[0].value.as< std::string > ())); } +#line 3733 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 294: +#line 2277 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Allow(yystack_[0].value.as< std::string > ())); + } +#line 3741 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 295: +#line 2281 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_NOT_SUPPORTED("Append", yystack_[1].location); + } +#line 3749 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 296: +#line 2285 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as< std::string > ())); + } +#line 3757 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 297: +#line 2289 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Block(yystack_[0].value.as< std::string > ())); + } +#line 3765 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 298: +#line 2293 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Capture(yystack_[0].value.as< std::string > ())); + } +#line 3773 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 299: +#line 2297 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Chain(yystack_[0].value.as< std::string > ())); + } +#line 3781 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 300: +#line 2301 "seclang-parser.yy" // lalr1.cc:859 + { + //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); + } +#line 3790 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 301: +#line 2306 "seclang-parser.yy" // lalr1.cc:859 + { + //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); + } +#line 3799 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 302: +#line 2311 "seclang-parser.yy" // lalr1.cc:859 + { + //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); + } +#line 3808 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 303: +#line 2316 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::AuditLogParts(yystack_[0].value.as< std::string > ())); + } +#line 3816 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 304: +#line 2320 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorJSON(yystack_[0].value.as< std::string > ())); + } +#line 3824 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 305: +#line 2324 "seclang-parser.yy" // lalr1.cc:859 + { + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorXML(yystack_[0].value.as< std::string > ())); + } +#line 3832 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 306: +#line 2328 "seclang-parser.yy" // lalr1.cc:859 + { + //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); + } +#line 3841 "seclang-parser.cc" // lalr1.cc:859 + break; + + case 307: +#line 2333 "seclang-parser.yy" // lalr1.cc:859 + { + //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); + } #line 3850 "seclang-parser.cc" // lalr1.cc:859 break; - case 294: -#line 2279 "seclang-parser.yy" // lalr1.cc:859 + case 308: +#line 2338 "seclang-parser.yy" // lalr1.cc:859 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Allow(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "true")); } #line 3858 "seclang-parser.cc" // lalr1.cc:859 break; - case 295: -#line 2283 "seclang-parser.yy" // lalr1.cc:859 + case 309: +#line 2342 "seclang-parser.yy" // lalr1.cc:859 { - ACTION_NOT_SUPPORTED("Append", yystack_[1].location); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "false")); } #line 3866 "seclang-parser.cc" // lalr1.cc:859 break; - case 296: -#line 2287 "seclang-parser.yy" // lalr1.cc:859 + case 310: +#line 2346 "seclang-parser.yy" // lalr1.cc:859 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); } #line 3874 "seclang-parser.cc" // lalr1.cc:859 break; - case 297: -#line 2291 "seclang-parser.yy" // lalr1.cc:859 + case 311: +#line 2350 "seclang-parser.yy" // lalr1.cc:859 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Block(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); } #line 3882 "seclang-parser.cc" // lalr1.cc:859 break; - case 298: -#line 2295 "seclang-parser.yy" // lalr1.cc:859 + case 312: +#line 2354 "seclang-parser.yy" // lalr1.cc:859 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Capture(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); } #line 3890 "seclang-parser.cc" // lalr1.cc:859 break; - case 299: -#line 2299 "seclang-parser.yy" // lalr1.cc:859 + case 313: +#line 2358 "seclang-parser.yy" // lalr1.cc:859 { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Chain(yystack_[0].value.as< std::string > ())); + ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveById(yystack_[0].value.as< std::string > ())); } #line 3898 "seclang-parser.cc" // lalr1.cc:859 break; - case 300: -#line 2303 "seclang-parser.yy" // lalr1.cc:859 - { - //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); - } -#line 3907 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 301: -#line 2308 "seclang-parser.yy" // lalr1.cc:859 - { - //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); - } -#line 3916 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 302: -#line 2313 "seclang-parser.yy" // lalr1.cc:859 - { - //ACTION_NOT_SUPPORTED("CtlAuditEngine", @0); - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); - } -#line 3925 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 303: -#line 2318 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::AuditLogParts(yystack_[0].value.as< std::string > ())); - } -#line 3933 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 304: -#line 2322 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorJSON(yystack_[0].value.as< std::string > ())); - } -#line 3941 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 305: -#line 2326 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyProcessorXML(yystack_[0].value.as< std::string > ())); - } -#line 3949 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 306: -#line 2330 "seclang-parser.yy" // lalr1.cc:859 - { - //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); - } -#line 3958 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 307: -#line 2335 "seclang-parser.yy" // lalr1.cc:859 - { - //ACTION_NOT_SUPPORTED("CtlForceReequestBody", @0); - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[1].value.as< std::string > ())); - } -#line 3967 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 308: -#line 2340 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "true")); - } -#line 3975 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 309: -#line 2344 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RequestBodyAccess(yystack_[1].value.as< std::string > () + "false")); - } -#line 3983 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 310: -#line 2348 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); - } -#line 3991 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 311: -#line 2352 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); - } -#line 3999 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 312: -#line 2356 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); - } -#line 4007 "seclang-parser.cc" // lalr1.cc:859 - break; - - case 313: -#line 2360 "seclang-parser.yy" // lalr1.cc:859 - { - ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveById(yystack_[0].value.as< std::string > ())); - } -#line 4015 "seclang-parser.cc" // lalr1.cc:859 - break; - case 314: -#line 2364 "seclang-parser.yy" // lalr1.cc:859 +#line 2362 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveTargetById(yystack_[0].value.as< std::string > ())); } -#line 4023 "seclang-parser.cc" // lalr1.cc:859 +#line 3906 "seclang-parser.cc" // lalr1.cc:859 break; case 315: -#line 2368 "seclang-parser.yy" // lalr1.cc:859 +#line 2366 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveTargetByTag(yystack_[0].value.as< std::string > ())); } -#line 4031 "seclang-parser.cc" // lalr1.cc:859 +#line 3914 "seclang-parser.cc" // lalr1.cc:859 break; case 316: -#line 2372 "seclang-parser.yy" // lalr1.cc:859 +#line 2370 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Deny(yystack_[0].value.as< std::string > ())); } -#line 4039 "seclang-parser.cc" // lalr1.cc:859 +#line 3922 "seclang-parser.cc" // lalr1.cc:859 break; case 317: -#line 2376 "seclang-parser.yy" // lalr1.cc:859 +#line 2374 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("DeprecateVar", yystack_[1].location); } -#line 4047 "seclang-parser.cc" // lalr1.cc:859 +#line 3930 "seclang-parser.cc" // lalr1.cc:859 break; case 318: -#line 2380 "seclang-parser.yy" // lalr1.cc:859 +#line 2378 "seclang-parser.yy" // lalr1.cc:859 { //ACTION_NOT_SUPPORTED("Drop", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[0].value.as< std::string > ())); } -#line 4056 "seclang-parser.cc" // lalr1.cc:859 +#line 3939 "seclang-parser.cc" // lalr1.cc:859 break; case 319: -#line 2385 "seclang-parser.yy" // lalr1.cc:859 +#line 2383 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Exec(yystack_[0].value.as< std::string > ())); } -#line 4064 "seclang-parser.cc" // lalr1.cc:859 +#line 3947 "seclang-parser.cc" // lalr1.cc:859 break; case 320: -#line 2389 "seclang-parser.yy" // lalr1.cc:859 +#line 2387 "seclang-parser.yy" // lalr1.cc:859 { //ACTION_NOT_SUPPORTED("ExpireVar", @0); ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Action(yystack_[0].value.as< std::string > ())); } -#line 4073 "seclang-parser.cc" // lalr1.cc:859 +#line 3956 "seclang-parser.cc" // lalr1.cc:859 break; case 321: -#line 2394 "seclang-parser.yy" // lalr1.cc:859 +#line 2392 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::RuleId(yystack_[0].value.as< std::string > ())); } -#line 4081 "seclang-parser.cc" // lalr1.cc:859 +#line 3964 "seclang-parser.cc" // lalr1.cc:859 break; case 322: -#line 2398 "seclang-parser.yy" // lalr1.cc:859 +#line 2396 "seclang-parser.yy" // lalr1.cc:859 { 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 4089 "seclang-parser.cc" // lalr1.cc:859 +#line 3972 "seclang-parser.cc" // lalr1.cc:859 break; case 323: -#line 2402 "seclang-parser.yy" // lalr1.cc:859 +#line 2400 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::LogData(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4097 "seclang-parser.cc" // lalr1.cc:859 +#line 3980 "seclang-parser.cc" // lalr1.cc:859 break; case 324: -#line 2406 "seclang-parser.yy" // lalr1.cc:859 +#line 2404 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Log(yystack_[0].value.as< std::string > ())); } -#line 4105 "seclang-parser.cc" // lalr1.cc:859 +#line 3988 "seclang-parser.cc" // lalr1.cc:859 break; case 325: -#line 2410 "seclang-parser.yy" // lalr1.cc:859 +#line 2408 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Maturity(yystack_[0].value.as< std::string > ())); } -#line 4113 "seclang-parser.cc" // lalr1.cc:859 +#line 3996 "seclang-parser.cc" // lalr1.cc:859 break; case 326: -#line 2414 "seclang-parser.yy" // lalr1.cc:859 +#line 2412 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Msg(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4121 "seclang-parser.cc" // lalr1.cc:859 +#line 4004 "seclang-parser.cc" // lalr1.cc:859 break; case 327: -#line 2418 "seclang-parser.yy" // lalr1.cc:859 +#line 2416 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::MultiMatch(yystack_[0].value.as< std::string > ())); } -#line 4129 "seclang-parser.cc" // lalr1.cc:859 +#line 4012 "seclang-parser.cc" // lalr1.cc:859 break; case 328: -#line 2422 "seclang-parser.yy" // lalr1.cc:859 +#line 2420 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoAuditLog(yystack_[0].value.as< std::string > ())); } -#line 4137 "seclang-parser.cc" // lalr1.cc:859 +#line 4020 "seclang-parser.cc" // lalr1.cc:859 break; case 329: -#line 2426 "seclang-parser.yy" // lalr1.cc:859 +#line 2424 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoLog(yystack_[0].value.as< std::string > ())); } -#line 4145 "seclang-parser.cc" // lalr1.cc:859 +#line 4028 "seclang-parser.cc" // lalr1.cc:859 break; case 330: -#line 2430 "seclang-parser.yy" // lalr1.cc:859 +#line 2428 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Pass(yystack_[0].value.as< std::string > ())); } -#line 4153 "seclang-parser.cc" // lalr1.cc:859 +#line 4036 "seclang-parser.cc" // lalr1.cc:859 break; case 331: -#line 2434 "seclang-parser.yy" // lalr1.cc:859 +#line 2432 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Pause", yystack_[1].location); } -#line 4161 "seclang-parser.cc" // lalr1.cc:859 +#line 4044 "seclang-parser.cc" // lalr1.cc:859 break; case 332: -#line 2438 "seclang-parser.yy" // lalr1.cc:859 +#line 2436 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Phase(yystack_[0].value.as< std::string > ())); } -#line 4169 "seclang-parser.cc" // lalr1.cc:859 +#line 4052 "seclang-parser.cc" // lalr1.cc:859 break; case 333: -#line 2442 "seclang-parser.yy" // lalr1.cc:859 +#line 2440 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Prepend", yystack_[1].location); } -#line 4177 "seclang-parser.cc" // lalr1.cc:859 +#line 4060 "seclang-parser.cc" // lalr1.cc:859 break; case 334: -#line 2446 "seclang-parser.yy" // lalr1.cc:859 +#line 2444 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Proxy", yystack_[1].location); } -#line 4185 "seclang-parser.cc" // lalr1.cc:859 +#line 4068 "seclang-parser.cc" // lalr1.cc:859 break; case 335: -#line 2450 "seclang-parser.yy" // lalr1.cc:859 +#line 2448 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Redirect(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4193 "seclang-parser.cc" // lalr1.cc:859 +#line 4076 "seclang-parser.cc" // lalr1.cc:859 break; case 336: -#line 2454 "seclang-parser.yy" // lalr1.cc:859 +#line 2452 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Rev(yystack_[0].value.as< std::string > ())); } -#line 4201 "seclang-parser.cc" // lalr1.cc:859 +#line 4084 "seclang-parser.cc" // lalr1.cc:859 break; case 337: -#line 2458 "seclang-parser.yy" // lalr1.cc:859 +#line 2456 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseArg", yystack_[1].location); } -#line 4209 "seclang-parser.cc" // lalr1.cc:859 +#line 4092 "seclang-parser.cc" // lalr1.cc:859 break; case 338: -#line 2462 "seclang-parser.yy" // lalr1.cc:859 +#line 2460 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseMatched", yystack_[1].location); } -#line 4217 "seclang-parser.cc" // lalr1.cc:859 +#line 4100 "seclang-parser.cc" // lalr1.cc:859 break; case 339: -#line 2466 "seclang-parser.yy" // lalr1.cc:859 +#line 2464 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseMatchedBytes", yystack_[1].location); } -#line 4225 "seclang-parser.cc" // lalr1.cc:859 +#line 4108 "seclang-parser.cc" // lalr1.cc:859 break; case 340: -#line 2470 "seclang-parser.yy" // lalr1.cc:859 +#line 2468 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseRequestHeader", yystack_[1].location); } -#line 4233 "seclang-parser.cc" // lalr1.cc:859 +#line 4116 "seclang-parser.cc" // lalr1.cc:859 break; case 341: -#line 2474 "seclang-parser.yy" // lalr1.cc:859 +#line 2472 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseResponseHeader", yystack_[1].location); } -#line 4241 "seclang-parser.cc" // lalr1.cc:859 +#line 4124 "seclang-parser.cc" // lalr1.cc:859 break; case 342: -#line 2478 "seclang-parser.yy" // lalr1.cc:859 +#line 2476 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SetEnv", yystack_[1].location); } -#line 4249 "seclang-parser.cc" // lalr1.cc:859 +#line 4132 "seclang-parser.cc" // lalr1.cc:859 break; case 343: -#line 2482 "seclang-parser.yy" // lalr1.cc:859 +#line 2480 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetRSC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4257 "seclang-parser.cc" // lalr1.cc:859 +#line 4140 "seclang-parser.cc" // lalr1.cc:859 break; case 344: -#line 2486 "seclang-parser.yy" // lalr1.cc:859 +#line 2484 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetSID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4265 "seclang-parser.cc" // lalr1.cc:859 +#line 4148 "seclang-parser.cc" // lalr1.cc:859 break; case 345: -#line 2490 "seclang-parser.yy" // lalr1.cc:859 +#line 2488 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetUID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4273 "seclang-parser.cc" // lalr1.cc:859 +#line 4156 "seclang-parser.cc" // lalr1.cc:859 break; case 346: -#line 2494 "seclang-parser.yy" // lalr1.cc:859 +#line 2492 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); } -#line 4281 "seclang-parser.cc" // lalr1.cc:859 +#line 4164 "seclang-parser.cc" // lalr1.cc:859 break; case 347: -#line 2498 "seclang-parser.yy" // lalr1.cc:859 +#line 2496 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Severity(yystack_[0].value.as< std::string > ())); } -#line 4289 "seclang-parser.cc" // lalr1.cc:859 +#line 4172 "seclang-parser.cc" // lalr1.cc:859 break; case 348: -#line 2502 "seclang-parser.yy" // lalr1.cc:859 +#line 2500 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Skip(yystack_[0].value.as< std::string > ())); } -#line 4297 "seclang-parser.cc" // lalr1.cc:859 +#line 4180 "seclang-parser.cc" // lalr1.cc:859 break; case 349: -#line 2506 "seclang-parser.yy" // lalr1.cc:859 +#line 2504 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SkipAfter(yystack_[0].value.as< std::string > ())); } -#line 4305 "seclang-parser.cc" // lalr1.cc:859 +#line 4188 "seclang-parser.cc" // lalr1.cc:859 break; case 350: -#line 2510 "seclang-parser.yy" // lalr1.cc:859 +#line 2508 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::data::Status(yystack_[0].value.as< std::string > ())); } -#line 4313 "seclang-parser.cc" // lalr1.cc:859 +#line 4196 "seclang-parser.cc" // lalr1.cc:859 break; case 351: -#line 2514 "seclang-parser.yy" // lalr1.cc:859 +#line 2512 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Tag(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4321 "seclang-parser.cc" // lalr1.cc:859 +#line 4204 "seclang-parser.cc" // lalr1.cc:859 break; case 352: -#line 2518 "seclang-parser.yy" // lalr1.cc:859 +#line 2516 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Ver(yystack_[0].value.as< std::string > ())); } -#line 4329 "seclang-parser.cc" // lalr1.cc:859 +#line 4212 "seclang-parser.cc" // lalr1.cc:859 break; case 353: -#line 2522 "seclang-parser.yy" // lalr1.cc:859 +#line 2520 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::XmlNS(yystack_[0].value.as< std::string > ())); } -#line 4337 "seclang-parser.cc" // lalr1.cc:859 +#line 4220 "seclang-parser.cc" // lalr1.cc:859 break; case 354: -#line 2526 "seclang-parser.yy" // lalr1.cc:859 +#line 2524 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityZero7bit(yystack_[0].value.as< std::string > ())); } -#line 4345 "seclang-parser.cc" // lalr1.cc:859 +#line 4228 "seclang-parser.cc" // lalr1.cc:859 break; case 355: -#line 2530 "seclang-parser.yy" // lalr1.cc:859 +#line 2528 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityOdd7bit(yystack_[0].value.as< std::string > ())); } -#line 4353 "seclang-parser.cc" // lalr1.cc:859 +#line 4236 "seclang-parser.cc" // lalr1.cc:859 break; case 356: -#line 2534 "seclang-parser.yy" // lalr1.cc:859 +#line 2532 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ParityEven7bit(yystack_[0].value.as< std::string > ())); } -#line 4361 "seclang-parser.cc" // lalr1.cc:859 +#line 4244 "seclang-parser.cc" // lalr1.cc:859 break; case 357: -#line 2538 "seclang-parser.yy" // lalr1.cc:859 +#line 2536 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::SqlHexDecode(yystack_[0].value.as< std::string > ())); } -#line 4369 "seclang-parser.cc" // lalr1.cc:859 +#line 4252 "seclang-parser.cc" // lalr1.cc:859 break; case 358: -#line 2542 "seclang-parser.yy" // lalr1.cc:859 +#line 2540 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CmdLine(yystack_[0].value.as< std::string > ())); } -#line 4377 "seclang-parser.cc" // lalr1.cc:859 +#line 4260 "seclang-parser.cc" // lalr1.cc:859 break; case 359: -#line 2546 "seclang-parser.yy" // lalr1.cc:859 +#line 2544 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Sha1(yystack_[0].value.as< std::string > ())); } -#line 4385 "seclang-parser.cc" // lalr1.cc:859 +#line 4268 "seclang-parser.cc" // lalr1.cc:859 break; case 360: -#line 2550 "seclang-parser.yy" // lalr1.cc:859 +#line 2548 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Md5(yystack_[0].value.as< std::string > ())); } -#line 4393 "seclang-parser.cc" // lalr1.cc:859 +#line 4276 "seclang-parser.cc" // lalr1.cc:859 break; case 361: -#line 2554 "seclang-parser.yy" // lalr1.cc:859 +#line 2552 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexEncode(yystack_[0].value.as< std::string > ())); } -#line 4401 "seclang-parser.cc" // lalr1.cc:859 +#line 4284 "seclang-parser.cc" // lalr1.cc:859 break; case 362: -#line 2558 "seclang-parser.yy" // lalr1.cc:859 +#line 2556 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HexDecode(yystack_[0].value.as< std::string > ())); } -#line 4409 "seclang-parser.cc" // lalr1.cc:859 +#line 4292 "seclang-parser.cc" // lalr1.cc:859 break; case 363: -#line 2562 "seclang-parser.yy" // lalr1.cc:859 +#line 2560 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::LowerCase(yystack_[0].value.as< std::string > ())); } -#line 4417 "seclang-parser.cc" // lalr1.cc:859 +#line 4300 "seclang-parser.cc" // lalr1.cc:859 break; case 364: -#line 2566 "seclang-parser.yy" // lalr1.cc:859 +#line 2564 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UpperCase(yystack_[0].value.as< std::string > ())); } -#line 4425 "seclang-parser.cc" // lalr1.cc:859 +#line 4308 "seclang-parser.cc" // lalr1.cc:859 break; case 365: -#line 2570 "seclang-parser.yy" // lalr1.cc:859 +#line 2568 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecodeUni(yystack_[0].value.as< std::string > ())); } -#line 4433 "seclang-parser.cc" // lalr1.cc:859 +#line 4316 "seclang-parser.cc" // lalr1.cc:859 break; case 366: -#line 2574 "seclang-parser.yy" // lalr1.cc:859 +#line 2572 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::UrlDecode(yystack_[0].value.as< std::string > ())); } -#line 4441 "seclang-parser.cc" // lalr1.cc:859 +#line 4324 "seclang-parser.cc" // lalr1.cc:859 break; case 367: -#line 2578 "seclang-parser.yy" // lalr1.cc:859 +#line 2576 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::None(yystack_[0].value.as< std::string > ())); } -#line 4449 "seclang-parser.cc" // lalr1.cc:859 +#line 4332 "seclang-parser.cc" // lalr1.cc:859 break; case 368: -#line 2582 "seclang-parser.yy" // lalr1.cc:859 +#line 2580 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CompressWhitespace(yystack_[0].value.as< std::string > ())); } -#line 4457 "seclang-parser.cc" // lalr1.cc:859 +#line 4340 "seclang-parser.cc" // lalr1.cc:859 break; case 369: -#line 2586 "seclang-parser.yy" // lalr1.cc:859 +#line 2584 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveWhitespace(yystack_[0].value.as< std::string > ())); } -#line 4465 "seclang-parser.cc" // lalr1.cc:859 +#line 4348 "seclang-parser.cc" // lalr1.cc:859 break; case 370: -#line 2590 "seclang-parser.yy" // lalr1.cc:859 +#line 2588 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceNulls(yystack_[0].value.as< std::string > ())); } -#line 4473 "seclang-parser.cc" // lalr1.cc:859 +#line 4356 "seclang-parser.cc" // lalr1.cc:859 break; case 371: -#line 2594 "seclang-parser.yy" // lalr1.cc:859 +#line 2592 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveNulls(yystack_[0].value.as< std::string > ())); } -#line 4481 "seclang-parser.cc" // lalr1.cc:859 +#line 4364 "seclang-parser.cc" // lalr1.cc:859 break; case 372: -#line 2598 "seclang-parser.yy" // lalr1.cc:859 +#line 2596 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::HtmlEntityDecode(yystack_[0].value.as< std::string > ())); } -#line 4489 "seclang-parser.cc" // lalr1.cc:859 +#line 4372 "seclang-parser.cc" // lalr1.cc:859 break; case 373: -#line 2602 "seclang-parser.yy" // lalr1.cc:859 +#line 2600 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::JsDecode(yystack_[0].value.as< std::string > ())); } -#line 4497 "seclang-parser.cc" // lalr1.cc:859 +#line 4380 "seclang-parser.cc" // lalr1.cc:859 break; case 374: -#line 2606 "seclang-parser.yy" // lalr1.cc:859 +#line 2604 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::CssDecode(yystack_[0].value.as< std::string > ())); } -#line 4505 "seclang-parser.cc" // lalr1.cc:859 +#line 4388 "seclang-parser.cc" // lalr1.cc:859 break; case 375: -#line 2610 "seclang-parser.yy" // lalr1.cc:859 +#line 2608 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Trim(yystack_[0].value.as< std::string > ())); } -#line 4513 "seclang-parser.cc" // lalr1.cc:859 +#line 4396 "seclang-parser.cc" // lalr1.cc:859 break; case 376: -#line 2614 "seclang-parser.yy" // lalr1.cc:859 +#line 2612 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePathWin(yystack_[0].value.as< std::string > ())); } -#line 4521 "seclang-parser.cc" // lalr1.cc:859 +#line 4404 "seclang-parser.cc" // lalr1.cc:859 break; case 377: -#line 2618 "seclang-parser.yy" // lalr1.cc:859 +#line 2616 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::NormalisePath(yystack_[0].value.as< std::string > ())); } -#line 4529 "seclang-parser.cc" // lalr1.cc:859 +#line 4412 "seclang-parser.cc" // lalr1.cc:859 break; case 378: -#line 2622 "seclang-parser.yy" // lalr1.cc:859 +#line 2620 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Length(yystack_[0].value.as< std::string > ())); } -#line 4537 "seclang-parser.cc" // lalr1.cc:859 +#line 4420 "seclang-parser.cc" // lalr1.cc:859 break; case 379: -#line 2626 "seclang-parser.yy" // lalr1.cc:859 +#line 2624 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Utf8ToUnicode(yystack_[0].value.as< std::string > ())); } -#line 4545 "seclang-parser.cc" // lalr1.cc:859 +#line 4428 "seclang-parser.cc" // lalr1.cc:859 break; case 380: -#line 2630 "seclang-parser.yy" // lalr1.cc:859 +#line 2628 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveCommentsChar(yystack_[0].value.as< std::string > ())); } -#line 4553 "seclang-parser.cc" // lalr1.cc:859 +#line 4436 "seclang-parser.cc" // lalr1.cc:859 break; case 381: -#line 2634 "seclang-parser.yy" // lalr1.cc:859 +#line 2632 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::RemoveComments(yystack_[0].value.as< std::string > ())); } -#line 4561 "seclang-parser.cc" // lalr1.cc:859 +#line 4444 "seclang-parser.cc" // lalr1.cc:859 break; case 382: -#line 2638 "seclang-parser.yy" // lalr1.cc:859 +#line 2636 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::ReplaceComments(yystack_[0].value.as< std::string > ())); } -#line 4569 "seclang-parser.cc" // lalr1.cc:859 +#line 4452 "seclang-parser.cc" // lalr1.cc:859 break; case 383: -#line 2645 "seclang-parser.yy" // lalr1.cc:859 +#line 2643 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::unsetOperation, yystack_[0].value.as< std::string > ())); } -#line 4577 "seclang-parser.cc" // lalr1.cc:859 +#line 4460 "seclang-parser.cc" // lalr1.cc:859 break; case 384: -#line 2649 "seclang-parser.yy" // lalr1.cc:859 +#line 2647 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setToOneOperation, yystack_[0].value.as< std::string > ())); } -#line 4585 "seclang-parser.cc" // lalr1.cc:859 +#line 4468 "seclang-parser.cc" // lalr1.cc:859 break; case 385: -#line 2653 "seclang-parser.yy" // lalr1.cc:859 +#line 2651 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setOperation, yystack_[2].value.as< std::string > (), yystack_[0].value.as< std::string > ())); } -#line 4593 "seclang-parser.cc" // lalr1.cc:859 +#line 4476 "seclang-parser.cc" // lalr1.cc:859 break; case 386: -#line 2657 "seclang-parser.yy" // lalr1.cc:859 +#line 2655 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::sumAndSetOperation, yystack_[2].value.as< std::string > (), yystack_[0].value.as< std::string > ())); } -#line 4601 "seclang-parser.cc" // lalr1.cc:859 +#line 4484 "seclang-parser.cc" // lalr1.cc:859 break; case 387: -#line 2661 "seclang-parser.yy" // lalr1.cc:859 +#line 2659 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::substractAndSetOperation, yystack_[2].value.as< std::string > (), yystack_[0].value.as< std::string > ())); } -#line 4609 "seclang-parser.cc" // lalr1.cc:859 +#line 4492 "seclang-parser.cc" // lalr1.cc:859 break; case 388: -#line 2668 "seclang-parser.yy" // lalr1.cc:859 +#line 2666 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > (); } -#line 4617 "seclang-parser.cc" // lalr1.cc:859 +#line 4500 "seclang-parser.cc" // lalr1.cc:859 break; case 389: -#line 2673 "seclang-parser.yy" // lalr1.cc:859 +#line 2671 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[1].value.as< std::string > () + yystack_[0].value.as< std::string > (); } -#line 4625 "seclang-parser.cc" // lalr1.cc:859 +#line 4508 "seclang-parser.cc" // lalr1.cc:859 break; case 390: -#line 2680 "seclang-parser.yy" // lalr1.cc:859 +#line 2678 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > (); } -#line 4633 "seclang-parser.cc" // lalr1.cc:859 +#line 4516 "seclang-parser.cc" // lalr1.cc:859 break; case 391: -#line 2685 "seclang-parser.yy" // lalr1.cc:859 +#line 2683 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[1].value.as< std::string > () + yystack_[0].value.as< std::string > (); } -#line 4641 "seclang-parser.cc" // lalr1.cc:859 +#line 4524 "seclang-parser.cc" // lalr1.cc:859 break; case 392: -#line 2692 "seclang-parser.yy" // lalr1.cc:859 +#line 2690 "seclang-parser.yy" // lalr1.cc:859 { 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 4650 "seclang-parser.cc" // lalr1.cc:859 +#line 4533 "seclang-parser.cc" // lalr1.cc:859 break; case 393: -#line 2697 "seclang-parser.yy" // lalr1.cc:859 +#line 2695 "seclang-parser.yy" // lalr1.cc:859 { 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 4659 "seclang-parser.cc" // lalr1.cc:859 +#line 4542 "seclang-parser.cc" // lalr1.cc:859 break; case 394: -#line 2702 "seclang-parser.yy" // lalr1.cc:859 +#line 2700 "seclang-parser.yy" // lalr1.cc:859 { std::unique_ptr r(new RunTimeString()); r->appendText(yystack_[0].value.as< std::string > ()); yylhs.value.as< std::unique_ptr > () = std::move(r); } -#line 4669 "seclang-parser.cc" // lalr1.cc:859 +#line 4552 "seclang-parser.cc" // lalr1.cc:859 break; case 395: -#line 2708 "seclang-parser.yy" // lalr1.cc:859 +#line 2706 "seclang-parser.yy" // lalr1.cc:859 { 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 4679 "seclang-parser.cc" // lalr1.cc:859 +#line 4562 "seclang-parser.cc" // lalr1.cc:859 break; -#line 4683 "seclang-parser.cc" // lalr1.cc:859 +#line 4566 "seclang-parser.cc" // lalr1.cc:859 default: break; } @@ -4941,53 +4824,53 @@ namespace yy { const short int seclang_parser::yypact_[] = { - 1486, -306, -216, -306, 22, -306, -306, -306, -306, -306, - -306, -225, -306, -306, -306, -306, -306, -113, -306, -306, - -306, -306, -306, -306, -95, -306, -306, -96, -306, -91, - -306, -92, -208, 1711, 1711, -306, -306, -306, -306, -224, - -306, -306, -306, 25, 25, 25, 1711, -87, -85, -306, - -306, -306, -83, -306, -306, -306, -306, -306, -306, 25, - 1711, 1553, -306, -306, -306, -306, -306, -306, -306, -306, + 1350, -306, -252, -306, -14, -306, -306, -306, -306, -306, + -306, -146, -306, -306, -306, -306, -306, -149, -306, -306, + -306, -306, -306, -306, -136, -306, -306, -133, -306, -128, + -306, -129, -244, 1665, 1665, -306, -306, -306, -306, -260, + -306, -306, -306, 25, 25, 25, 1665, -124, -122, -306, + -306, -306, -120, -306, -306, -306, -306, -306, -306, 25, + 1665, 1491, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, - -306, -306, -306, -306, -306, -306, -97, -100, -306, -306, - -306, -306, -306, -306, -306, -110, -306, -306, -306, -81, - -79, -306, -306, -306, -306, -306, -306, -306, -306, -306, - 979, -306, 979, -306, 979, -306, -306, -306, -306, -306, - -306, -306, -306, 979, -306, -306, -306, -306, -306, -306, - -306, 979, 979, 979, -306, -306, -306, -306, 979, -306, + -306, -306, -306, -306, -306, -306, -97, -132, -306, -306, + -306, -306, -306, -306, -306, -138, -306, -306, -306, -118, + -116, -306, -306, -306, -306, -306, -306, -306, -306, -306, + 1098, -306, 1098, -306, 1098, -306, -306, -306, -306, -306, + -306, -306, -306, 1098, -306, -306, -306, -306, -306, -306, + -306, 1098, 1098, 1098, -306, -306, -306, -306, 1098, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, - 1802, -306, 2, -306, -306, -306, -306, 1365, 1365, -151, - -147, -145, -143, -141, -139, -137, -135, -133, -131, -129, - -126, -124, -122, -120, -118, -306, -116, -114, -112, -109, - -306, -306, -107, -306, -306, -306, -306, -306, -306, -306, + 1817, -306, 2, -306, -306, -306, -306, 1394, 1394, -148, + -144, -142, -140, -137, -135, -131, -127, -123, -121, -119, + -117, -115, -113, -111, -109, -306, -107, -105, -103, -99, + -306, -306, -96, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, - -306, -306, -306, -306, -306, -306, -306, -105, -306, -306, - -306, -306, -306, -103, -306, -306, -306, -99, -306, -306, - -306, -306, -306, -306, -306, -306, -306, -306, -306, -94, - -89, -86, -84, -82, -80, 417, -306, -306, -306, -306, + -306, -306, -306, -306, -306, -306, -306, -94, -306, -306, + -306, -306, -306, -92, -306, -306, -306, -90, -306, -306, + -306, -306, -306, -306, -306, -306, -306, -306, -306, -85, + -83, -81, -79, -77, -75, 417, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 1, -306, -306, -306, -306, -306, -306, -306, -306, -306, - -306, 593, -306, -306, -306, -290, -290, -306, 42, -306, + -306, 802, -306, -306, -306, -287, -287, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, - -306, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 9, - 1802, -306, -306, -306, -306, -306, -306, -306, -306, -306, + -306, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 17, + 1817, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, - -306, -306, -306, 14, 506, 892, 979, 979, 979, -306, - -306, 979, 979, 979, 979, -306, 979, 979, 979, 979, - 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, - -306, 979, 979, 979, 979, -306, -306, 979, 979, 979, - 979, 1711, -306, 1278, -306, -306, -191, -191, -191, -306, - -306, -306, -306, -306, 1365, 1365, -306, -306, 1278, 1278, - 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, - 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, - 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, -306, -191, + -306, -306, -306, 12, 506, 930, 1098, 1098, 1098, -306, + -306, 1098, 1098, 1098, -306, 1098, 1098, 1098, 1098, 1098, + 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, + -306, 1098, 1098, 1098, 1098, -306, -306, 1098, 1098, 1098, + 1098, 1665, -306, 1226, -306, -306, -188, -188, -188, -306, + -306, -306, -306, -306, 1394, 1394, -306, -306, 1226, 1226, + 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, + 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, + 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, -306, -188, -306, -306, -306, -306, -306, -306 }; @@ -5033,13 +4916,13 @@ namespace yy { 210, 215, 216, 191, 192, 218, 219, 194, 195, 222, 223, 197, 198, 200, 201, 203, 204, 206, 207, 185, 186, 188, 189, 0, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 70, 0, 0, 0, 0, + 38, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, 73, 32, 34, 383, 389, 0, 0, 0, 392, 393, 28, 30, 127, 0, 0, 128, 33, 35, 69, - 54, 53, 55, 56, 42, 57, 50, 58, 41, 60, - 59, 61, 62, 64, 63, 65, 51, 66, 67, 68, + 54, 53, 55, 56, 42, 57, 50, 58, 41, 59, + 60, 61, 62, 63, 64, 65, 51, 66, 67, 68, 43, 44, 45, 46, 47, 48, 49, 52, 72, 390, 385, 386, 387, 130, 129, 391 }; @@ -5047,8 +4930,8 @@ namespace yy { const short int seclang_parser::yypgoto_[] = { - -306, -306, 69, -306, -31, -38, -306, -248, -306, -35, - -102, -43, -104, -306, -75, -305, -106 + -306, -306, 69, -306, -31, -38, -306, -225, -306, -35, + -102, -43, -143, -306, -59, -305, -106 }; const short int @@ -5062,8 +4945,8 @@ namespace yy { seclang_parser::yytable_[] = { 281, 281, 281, 174, 295, 320, 312, 384, 313, 282, - 283, 175, 320, 69, 70, 284, 281, 314, 71, 296, - 384, 176, 65, 66, 291, 315, 316, 317, 83, 292, + 283, 175, 426, 427, 428, 284, 281, 314, 384, 296, + 320, 176, 65, 66, 291, 315, 316, 317, 83, 292, 84, 85, 318, 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, @@ -5073,28 +4956,28 @@ namespace yy { 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, 469, - 263, 264, 471, 472, 72, 67, 68, 73, 302, 303, - 294, 74, 319, 304, 321, 322, 299, 437, 300, 301, - 426, 427, 428, 75, 76, 77, 78, 79, 80, 81, - 82, 285, 286, 287, 288, 289, 290, 305, 306, 307, - 308, 323, 324, 383, 475, 325, 326, 327, 328, 329, - 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, - 340, 341, 342, 343, 344, 423, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 0, 361, 362, 363, 364, 365, 366, 367, - 368, 0, 296, 369, 370, 0, 432, 0, 371, 372, - 424, 425, 281, 373, 374, 0, 375, 376, 377, 378, - 379, 380, 381, 382, 0, 0, 0, 0, 0, 0, + 263, 264, 471, 472, 72, 67, 68, 73, 69, 70, + 294, 74, 319, 71, 321, 322, 302, 303, 75, 76, + 299, 304, 300, 301, 77, 78, 79, 80, 81, 82, + 285, 286, 287, 288, 289, 290, 305, 306, 307, 308, + 437, 323, 324, 383, 475, 325, 326, 327, 328, 329, + 330, 0, 331, 332, 333, 334, 0, 432, 335, 336, + 0, 0, 337, 338, 0, 423, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 0, 296, + 361, 362, 0, 363, 364, 365, 366, 367, 368, 369, + 370, 0, 281, 0, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, 382, 424, 425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 430, 430, 430, 430, 430, 430, 430, 430, 0, 0, 0, 438, - 439, 440, 441, 0, 0, 442, 443, 444, 445, 0, + 439, 440, 441, 0, 0, 442, 443, 444, 0, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 431, 460, 461, 462, 463, 433, - 0, 464, 465, 466, 467, 0, 0, 0, 0, 0, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, + 456, 457, 458, 459, 433, 460, 461, 462, 463, 431, + 0, 464, 465, 466, 467, 0, 0, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5121,19 +5004,7 @@ namespace yy { 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, - 0, 263, 264, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 0, 263, 264, - 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 0, 0, 0, 0, + 0, 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5141,15 +5012,18 @@ namespace yy { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, - 0, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 0, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 0, 0, 266, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, @@ -5159,36 +5033,27 @@ namespace yy { 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, 0, 263, 264, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 0, 263, 264, 0, 0, 0, 0, + 257, 258, 259, 260, 261, 262, 0, 263, 264, 0, + 0, 0, 0, 385, 386, 387, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, + 402, 403, 404, 405, 406, 0, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 0, 263, 264, 0, 0, 0, + 0, 0, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 0, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 0, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 309, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 266, 267, 268, 269, 270, + 0, 0, 0, 309, 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, @@ -5198,50 +5063,67 @@ namespace yy { 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, 0, 263, 264, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 0, - 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 261, 262, 0, 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 293, 0, 0, 0, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 0, 4, 0, + 0, 309, 0, 266, 267, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 278, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 0, 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 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, 309, 0, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 5, 6, 7, 8, 9, 10, + 275, 276, 277, 278, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 4, 263, + 264, 293, 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, 429, 0, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 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, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 86, 0, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 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, 86, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, @@ -5250,27 +5132,32 @@ namespace yy { 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, 86, - 0, 0, 0, 0, 0, 0, 0, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169 }; const short int seclang_parser::yycheck_[] = { 43, 44, 45, 34, 101, 3, 112, 6, 114, 44, - 45, 235, 3, 238, 239, 46, 59, 123, 243, 309, - 6, 245, 238, 239, 59, 131, 132, 133, 236, 60, - 238, 239, 138, 8, 9, 10, 11, 12, 13, 14, + 45, 271, 98, 99, 100, 46, 59, 123, 6, 306, + 3, 281, 274, 275, 59, 131, 132, 133, 272, 60, + 274, 275, 138, 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, @@ -5278,29 +5165,29 @@ namespace yy { 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, 310, - 95, 96, 427, 428, 237, 103, 104, 240, 238, 239, - 61, 244, 170, 243, 177, 178, 236, 385, 238, 239, - 98, 99, 100, 238, 239, 241, 242, 238, 239, 241, - 242, 238, 239, 238, 239, 238, 239, 238, 239, 238, - 239, 312, 313, 265, 469, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 291, 312, 313, 312, 313, - 312, 313, 312, 313, 312, 313, 312, 313, 312, 313, - 312, 313, -1, 312, 313, 312, 313, 312, 313, 312, - 313, -1, 309, 312, 313, -1, 320, -1, 312, 313, - 295, 296, 265, 312, 313, -1, 312, 313, 312, 313, - 312, 313, 312, 313, -1, -1, -1, -1, -1, -1, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 307, + 95, 96, 427, 428, 273, 139, 140, 276, 274, 275, + 61, 280, 170, 279, 177, 178, 274, 275, 274, 275, + 272, 279, 274, 275, 277, 278, 274, 275, 277, 278, + 274, 275, 274, 275, 274, 275, 274, 275, 274, 275, + 385, 309, 310, 265, 469, 309, 310, 309, 310, 309, + 310, -1, 309, 310, 309, 310, -1, 320, 309, 310, + -1, -1, 309, 310, -1, 291, 309, 310, 309, 310, + 309, 310, 309, 310, 309, 310, 309, 310, 309, 310, + 309, 310, 309, 310, 309, 310, 309, 310, -1, 306, + 309, 310, -1, 309, 310, 309, 310, 309, 310, 309, + 310, -1, 265, -1, 309, 310, 309, 310, 309, 310, + 309, 310, 309, 310, 309, 310, 295, 296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, 312, 313, 314, 315, 316, 317, 318, -1, -1, -1, 385, - 386, 387, 388, -1, -1, 391, 392, 393, 394, -1, + 386, 387, 388, -1, -1, 391, 392, 393, -1, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 295, 411, 412, 413, 414, 295, - -1, 417, 418, 419, 420, -1, -1, -1, -1, -1, + 406, 407, 408, 409, 292, 411, 412, 413, 414, 292, + -1, 417, 418, 419, 420, -1, -1, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, -1, -1, -1, -1, -1, -1, + 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -5327,19 +5214,7 @@ namespace yy { 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, - -1, 95, 96, 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, -1, 95, 96, - -1, -1, -1, -1, 101, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 296, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, -1, -1, -1, -1, + -1, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -5347,17 +5222,20 @@ 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, 296, 297, 298, 299, 300, 301, 302, 303, - 304, 305, 306, 307, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 256, - -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, -1, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 290, 291, 292, 293, -1, -1, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 10, 11, 12, 13, 14, 15, 16, 17, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 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, @@ -5365,37 +5243,28 @@ namespace yy { 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, -1, 95, 96, 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, -1, 95, 96, -1, -1, -1, -1, + 88, 89, 90, 91, 92, 93, -1, 95, 96, -1, + -1, -1, -1, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, -1, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 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, -1, 95, 96, -1, -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, -1, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 256, -1, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, -1, -1, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 256, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 10, 11, + -1, -1, -1, 291, -1, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 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, @@ -5404,93 +5273,115 @@ namespace yy { 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, -1, 95, 96, 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, -1, - 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + 92, 93, -1, 95, 96, -1, -1, -1, -1, -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, 291, -1, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 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, + -1, 95, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -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, -1, -1, -1, -1, 291, + -1, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 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, 138, 95, + 96, 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, 291, -1, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 256, -1, -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, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, -1, 102, -1, + -1, -1, -1, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, 138, + -1, -1, 282, 283, 284, 285, 286, 287, 288, 289, + 290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 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, 97, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 282, 283, 284, 285, 286, 287, 288, + 289, 290, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 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, 102, -1, -1, -1, -1, - -1, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, 232, 233, 234, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 97, -1, - -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 97, - -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 295 + -1, -1, -1, -1, -1, -1, -1, 292, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223 }; const unsigned short int seclang_parser::yystos_[] = { - 0, 0, 4, 5, 102, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 315, 316, 317, 322, 238, 239, 103, 104, 238, - 239, 243, 237, 240, 244, 238, 239, 241, 242, 238, - 239, 241, 242, 236, 238, 239, 97, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 295, 318, 319, 326, 318, 235, 245, 8, 9, 10, + 0, 0, 4, 5, 138, 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, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 312, 313, 314, 319, 274, 275, 139, 140, 274, + 275, 279, 273, 276, 280, 274, 275, 277, 278, 274, + 275, 277, 278, 272, 274, 275, 97, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 292, 315, 316, 323, 315, 271, 281, 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, @@ -5499,73 +5390,73 @@ namespace yy { 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, 95, 96, 295, 296, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 323, - 324, 325, 323, 323, 318, 238, 239, 238, 239, 238, - 239, 323, 318, 0, 316, 101, 309, 327, 328, 236, - 238, 239, 238, 239, 243, 238, 239, 238, 239, 256, - 325, 330, 330, 330, 330, 330, 330, 330, 330, 319, - 3, 325, 325, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 312, 313, 312, 313, 312, 313, 312, - 313, 312, 313, 324, 6, 101, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 320, 321, 330, 328, 328, 98, 99, 100, 256, - 325, 295, 326, 295, 8, 9, 325, 321, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 330, 318, 310, - 329, 329, 329, 325, 325, 329 + 91, 92, 93, 95, 96, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 303, 304, 305, 320, + 321, 322, 320, 320, 315, 274, 275, 274, 275, 274, + 275, 320, 315, 0, 313, 101, 306, 324, 325, 272, + 274, 275, 274, 275, 279, 274, 275, 274, 275, 291, + 322, 327, 327, 327, 327, 327, 327, 327, 327, 316, + 3, 322, 322, 309, 310, 309, 310, 309, 310, 309, + 310, 309, 310, 309, 310, 309, 310, 309, 310, 309, + 310, 309, 310, 309, 310, 309, 310, 309, 310, 309, + 310, 309, 310, 309, 310, 309, 310, 309, 310, 309, + 310, 309, 310, 309, 310, 309, 310, 309, 310, 309, + 310, 309, 310, 309, 310, 309, 310, 309, 310, 309, + 310, 309, 310, 321, 6, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 317, 318, 327, 325, 325, 98, 99, 100, 291, + 322, 292, 323, 292, 8, 9, 322, 318, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, + 327, 327, 327, 327, 327, 327, 327, 327, 315, 307, + 326, 326, 326, 322, 322, 326 }; const unsigned short int seclang_parser::yyr1_[] = { - 0, 314, 315, 315, 315, 316, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 317, 317, 317, 317, 318, 318, - 319, 319, 320, 320, 320, 320, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, - 321, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 0, 311, 312, 312, 312, 313, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 315, 315, + 316, 316, 317, 317, 317, 317, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 320, 320, 321, 321, + 321, 321, 321, 321, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, - 322, 322, 322, 322, 322, 322, 323, 323, 324, 324, - 324, 324, 324, 324, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 325, 325, 325, 325, 325, 325, 325, - 325, 325, 325, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 327, 327, 327, 327, 327, 328, 328, - 329, 329, 330, 330, 330, 330 + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 322, 322, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, + 323, 323, 323, 324, 324, 324, 324, 324, 325, 325, + 326, 326, 327, 327, 327, 327 }; const unsigned char @@ -5660,12 +5551,28 @@ namespace yy { "\"VARIABLE_TX\"", "\"VARIABLE_SESSION\"", "\"VARIABLE_USER\"", "\"RUN_TIME_VAR_ENV\"", "\"RUN_TIME_VAR_XML\"", "\"SetVar\"", "SETVAR_OPERATION_EQUALS", "SETVAR_OPERATION_EQUALS_PLUS", - "SETVAR_OPERATION_EQUALS_MINUS", "\"NOT\"", "CONFIG_DIR_AUDIT_LOG_FMT", - "JSON", "NATIVE", "\"ACTION_CTL_RULE_ENGINE\"", "\"Accuracy\"", - "\"Allow\"", "\"Append\"", "\"AuditLog\"", "\"Block\"", "\"Capture\"", - "\"Chain\"", "\"ACTION_CTL_AUDIT_ENGINE\"", - "\"ACTION_CTL_AUDIT_LOG_PARTS\"", "\"ACTION_CTL_BDY_JSON\"", - "\"ACTION_CTL_BDY_XML\"", "\"ACTION_CTL_FORCE_REQ_BODY_VAR\"", + "SETVAR_OPERATION_EQUALS_MINUS", "\"NOT\"", "\"OPERATOR_BEGINS_WITH\"", + "\"OPERATOR_CONTAINS\"", "\"OPERATOR_CONTAINS_WORD\"", + "\"OPERATOR_DETECT_SQLI\"", "\"OPERATOR_DETECT_XSS\"", + "\"OPERATOR_ENDS_WITH\"", "\"OPERATOR_EQ\"", "\"OPERATOR_FUZZY_HASH\"", + "\"OPERATOR_GEOLOOKUP\"", "\"OPERATOR_GE\"", "\"OPERATOR_GSB_LOOKUP\"", + "\"OPERATOR_GT\"", "\"OPERATOR_INSPECT_FILE\"", + "\"OPERATOR_IP_MATCH_FROM_FILE\"", "\"OPERATOR_IP_MATCH\"", + "\"OPERATOR_LE\"", "\"OPERATOR_LT\"", "\"OPERATOR_PM_FROM_FILE\"", + "\"OPERATOR_PM\"", "\"OPERATOR_RBL\"", "\"OPERATOR_RSUB\"", + "\"Operator RX (content only)\"", "\"OPERATOR_RX\"", + "\"OPERATOR_STR_EQ\"", "\"OPERATOR_STR_MATCH\"", + "\"OPERATOR_UNCONDITIONAL_MATCH\"", "\"OPERATOR_VALIDATE_BYTE_RANGE\"", + "\"OPERATOR_VALIDATE_DTD\"", "\"OPERATOR_VALIDATE_HASH\"", + "\"OPERATOR_VALIDATE_SCHEMA\"", "\"OPERATOR_VALIDATE_URL_ENCODING\"", + "\"OPERATOR_VALIDATE_UTF8_ENCODING\"", "\"OPERATOR_VERIFY_CC\"", + "\"OPERATOR_VERIFY_CPF\"", "\"OPERATOR_VERIFY_SSN\"", + "\"OPERATOR_WITHIN\"", "CONFIG_DIR_AUDIT_LOG_FMT", "JSON", "NATIVE", + "\"ACTION_CTL_RULE_ENGINE\"", "\"Accuracy\"", "\"Allow\"", "\"Append\"", + "\"AuditLog\"", "\"Block\"", "\"Capture\"", "\"Chain\"", + "\"ACTION_CTL_AUDIT_ENGINE\"", "\"ACTION_CTL_AUDIT_LOG_PARTS\"", + "\"ACTION_CTL_BDY_JSON\"", "\"ACTION_CTL_BDY_XML\"", + "\"ACTION_CTL_FORCE_REQ_BODY_VAR\"", "\"ACTION_CTL_REQUEST_BODY_ACCESS\"", "\"ACTION_CTL_RULE_REMOVE_BY_ID\"", "\"ACTION_CTL_RULE_REMOVE_TARGET_BY_ID\"", "\"ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG\"", "\"Deny\"", @@ -5740,82 +5647,65 @@ namespace yy { "\"CONGIG_DIR_SEC_ARG_SEP\"", "\"CONGIG_DIR_SEC_COOKIE_FORMAT\"", "\"CONGIG_DIR_SEC_DATA_DIR\"", "\"CONGIG_DIR_SEC_STATUS_ENGINE\"", "\"CONGIG_DIR_SEC_TMP_DIR\"", "\"DIRECTIVE\"", - "\"DIRECTIVE_SECRULESCRIPT\"", "\"FREE_TEXT\"", - "\"FREE_TEXT_QUOTE_MACRO_EXPANSION\"", "\"OPERATOR\"", - "\"OPERATOR_BEGINS_WITH\"", "\"OPERATOR_CONTAINS\"", - "\"OPERATOR_CONTAINS_WORD\"", "\"OPERATOR_DETECT_SQLI\"", - "\"OPERATOR_DETECT_XSS\"", "\"OPERATOR_ENDS_WITH\"", "\"OPERATOR_EQ\"", - "\"OPERATOR_FUZZY_HASH\"", "\"OPERATOR_GE\"", "\"OPERATOR_GEOLOOKUP\"", - "\"OPERATOR_GSB_LOOKUP\"", "\"OPERATOR_GT\"", - "\"OPERATOR_INSPECT_FILE\"", "\"OPERATOR_IP_MATCH\"", - "\"OPERATOR_IP_MATCH_FROM_FILE\"", "\"OPERATOR_LE\"", "\"OPERATOR_LT\"", - "\"OPERATOR_PM\"", "\"OPERATOR_PM_FROM_FILE\"", "\"OPERATOR_RBL\"", - "\"OPERATOR_RSUB\"", "\"OPERATOR_RX\"", "\"Operator RX (content only)\"", - "\"OPERATOR_STR_EQ\"", "\"OPERATOR_STR_MATCH\"", - "\"OPERATOR_UNCONDITIONAL_MATCH\"", "\"OPERATOR_VALIDATE_BYTE_RANGE\"", - "\"OPERATOR_VALIDATE_DTD\"", "\"OPERATOR_VALIDATE_HASH\"", - "\"OPERATOR_VALIDATE_SCHEMA\"", "\"OPERATOR_VALIDATE_URL_ENCODING\"", - "\"OPERATOR_VALIDATE_UTF8_ENCODING\"", "\"OPERATOR_VERIFY_CC\"", - "\"OPERATOR_VERIFY_CPF\"", "\"OPERATOR_VERIFY_SSN\"", - "\"OPERATOR_WITHIN\"", "\"OP_QUOTE\"", "\"QUOTATION_MARK\"", - "\"RUN_TIME_VAR_BLD\"", "\"RUN_TIME_VAR_DUR\"", "\"RUN_TIME_VAR_HSV\"", - "\"RUN_TIME_VAR_REMOTE_USER\"", "\"RUN_TIME_VAR_TIME\"", - "\"RUN_TIME_VAR_TIME_DAY\"", "\"RUN_TIME_VAR_TIME_EPOCH\"", - "\"RUN_TIME_VAR_TIME_HOUR\"", "\"RUN_TIME_VAR_TIME_MIN\"", - "\"RUN_TIME_VAR_TIME_MON\"", "\"RUN_TIME_VAR_TIME_SEC\"", - "\"RUN_TIME_VAR_TIME_WDAY\"", "\"RUN_TIME_VAR_TIME_YEAR\"", - "\"SETVAR_VARIABLE_PART\"", "\"SETVAR_CONTENT_PART\"", "\"VARIABLE\"", - "\"Dictionary element\"", "\"Dictionary element, selected by regexp\"", - "$accept", "input", "line", "audit_log", "actions", "actions_may_quoted", - "op", "op_before_init", "expression", "variables", - "variables_may_be_quoted", "var", "act", "setvar_action", - "setvar_variable", "setvar_content", "run_time_string", YY_NULLPTR + "\"DIRECTIVE_SECRULESCRIPT\"", "\"FREE_TEXT_QUOTE_MACRO_EXPANSION\"", + "\"QUOTATION_MARK\"", "\"RUN_TIME_VAR_BLD\"", "\"RUN_TIME_VAR_DUR\"", + "\"RUN_TIME_VAR_HSV\"", "\"RUN_TIME_VAR_REMOTE_USER\"", + "\"RUN_TIME_VAR_TIME\"", "\"RUN_TIME_VAR_TIME_DAY\"", + "\"RUN_TIME_VAR_TIME_EPOCH\"", "\"RUN_TIME_VAR_TIME_HOUR\"", + "\"RUN_TIME_VAR_TIME_MIN\"", "\"RUN_TIME_VAR_TIME_MON\"", + "\"RUN_TIME_VAR_TIME_SEC\"", "\"RUN_TIME_VAR_TIME_WDAY\"", + "\"RUN_TIME_VAR_TIME_YEAR\"", "\"SETVAR_VARIABLE_PART\"", + "\"SETVAR_CONTENT_PART\"", "\"VARIABLE\"", "\"Dictionary element\"", + "\"Dictionary element, selected by regexp\"", "$accept", "input", "line", + "audit_log", "actions", "actions_may_quoted", "op", "op_before_init", + "expression", "variables", "variables_may_be_quoted", "var", "act", + "setvar_action", "setvar_variable", "setvar_content", "run_time_string", YY_NULLPTR }; #if YYDEBUG const unsigned short int seclang_parser::yyrline_[] = { - 0, 714, 714, 718, 719, 722, 727, 733, 739, 743, - 747, 753, 759, 765, 771, 776, 781, 787, 794, 798, - 802, 808, 812, 816, 821, 826, 831, 835, 842, 846, - 853, 859, 869, 878, 888, 897, 910, 914, 918, 922, - 926, 930, 934, 938, 942, 946, 951, 955, 959, 964, - 969, 974, 979, 983, 987, 991, 995, 999, 1003, 1007, - 1011, 1015, 1019, 1023, 1027, 1031, 1035, 1039, 1043, 1047, - 1051, 1065, 1066, 1090, 1109, 1124, 1148, 1195, 1199, 1203, - 1207, 1211, 1215, 1219, 1223, 1227, 1236, 1240, 1245, 1250, - 1255, 1260, 1265, 1278, 1291, 1304, 1317, 1330, 1356, 1382, - 1394, 1414, 1442, 1447, 1452, 1461, 1466, 1470, 1474, 1478, - 1482, 1486, 1490, 1491, 1492, 1504, 1510, 1514, 1518, 1519, - 1520, 1521, 1522, 1523, 1524, 1527, 1535, 1539, 1546, 1551, - 1557, 1563, 1569, 1576, 1586, 1590, 1594, 1598, 1602, 1606, - 1610, 1614, 1618, 1622, 1626, 1630, 1634, 1638, 1642, 1646, - 1650, 1654, 1658, 1662, 1666, 1670, 1674, 1678, 1682, 1686, - 1690, 1694, 1698, 1702, 1706, 1710, 1714, 1718, 1722, 1726, - 1730, 1734, 1738, 1742, 1746, 1750, 1754, 1758, 1762, 1766, - 1770, 1774, 1778, 1782, 1786, 1790, 1794, 1798, 1802, 1806, - 1810, 1814, 1818, 1822, 1826, 1830, 1834, 1839, 1843, 1847, - 1852, 1856, 1860, 1865, 1869, 1873, 1878, 1882, 1886, 1891, - 1895, 1899, 1903, 1907, 1911, 1916, 1920, 1924, 1929, 1933, - 1937, 1942, 1947, 1951, 1955, 1959, 1963, 1967, 1971, 1975, - 1979, 1983, 1987, 1991, 1995, 1999, 2003, 2007, 2011, 2015, - 2019, 2023, 2027, 2031, 2035, 2039, 2043, 2047, 2051, 2055, - 2059, 2063, 2067, 2071, 2075, 2079, 2083, 2087, 2091, 2095, - 2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, - 2139, 2143, 2147, 2151, 2155, 2159, 2163, 2167, 2171, 2175, - 2179, 2187, 2194, 2201, 2208, 2215, 2222, 2229, 2236, 2243, - 2250, 2257, 2264, 2274, 2278, 2282, 2286, 2290, 2294, 2298, - 2302, 2307, 2312, 2317, 2321, 2325, 2329, 2334, 2339, 2343, - 2347, 2351, 2355, 2359, 2363, 2367, 2371, 2375, 2379, 2384, - 2388, 2393, 2397, 2401, 2405, 2409, 2413, 2417, 2421, 2425, - 2429, 2433, 2437, 2441, 2445, 2449, 2453, 2457, 2461, 2465, - 2469, 2473, 2477, 2481, 2485, 2489, 2493, 2497, 2501, 2505, - 2509, 2513, 2517, 2521, 2525, 2529, 2533, 2537, 2541, 2545, - 2549, 2553, 2557, 2561, 2565, 2569, 2573, 2577, 2581, 2585, - 2589, 2593, 2597, 2601, 2605, 2609, 2613, 2617, 2621, 2625, - 2629, 2633, 2637, 2644, 2648, 2652, 2656, 2660, 2667, 2672, - 2679, 2684, 2691, 2696, 2701, 2707 + 0, 712, 712, 716, 717, 720, 725, 731, 737, 741, + 745, 751, 757, 763, 769, 774, 779, 785, 792, 796, + 800, 806, 810, 814, 819, 824, 829, 833, 840, 844, + 851, 857, 867, 876, 886, 895, 908, 912, 916, 920, + 924, 928, 932, 936, 940, 944, 949, 953, 957, 962, + 967, 972, 977, 981, 985, 989, 993, 997, 1001, 1005, + 1009, 1013, 1017, 1021, 1025, 1029, 1033, 1037, 1041, 1045, + 1049, 1063, 1064, 1088, 1107, 1122, 1146, 1193, 1197, 1201, + 1205, 1209, 1213, 1217, 1221, 1225, 1234, 1238, 1243, 1248, + 1253, 1258, 1263, 1276, 1289, 1302, 1315, 1328, 1354, 1380, + 1392, 1412, 1440, 1445, 1450, 1459, 1464, 1468, 1472, 1476, + 1480, 1484, 1488, 1489, 1490, 1502, 1508, 1512, 1516, 1517, + 1518, 1519, 1520, 1521, 1522, 1525, 1533, 1537, 1544, 1549, + 1555, 1561, 1567, 1574, 1584, 1588, 1592, 1596, 1600, 1604, + 1608, 1612, 1616, 1620, 1624, 1628, 1632, 1636, 1640, 1644, + 1648, 1652, 1656, 1660, 1664, 1668, 1672, 1676, 1680, 1684, + 1688, 1692, 1696, 1700, 1704, 1708, 1712, 1716, 1720, 1724, + 1728, 1732, 1736, 1740, 1744, 1748, 1752, 1756, 1760, 1764, + 1768, 1772, 1776, 1780, 1784, 1788, 1792, 1796, 1800, 1804, + 1808, 1812, 1816, 1820, 1824, 1828, 1832, 1837, 1841, 1845, + 1850, 1854, 1858, 1863, 1867, 1871, 1876, 1880, 1884, 1889, + 1893, 1897, 1901, 1905, 1909, 1914, 1918, 1922, 1927, 1931, + 1935, 1940, 1945, 1949, 1953, 1957, 1961, 1965, 1969, 1973, + 1977, 1981, 1985, 1989, 1993, 1997, 2001, 2005, 2009, 2013, + 2017, 2021, 2025, 2029, 2033, 2037, 2041, 2045, 2049, 2053, + 2057, 2061, 2065, 2069, 2073, 2077, 2081, 2085, 2089, 2093, + 2097, 2101, 2105, 2109, 2113, 2117, 2121, 2125, 2129, 2133, + 2137, 2141, 2145, 2149, 2153, 2157, 2161, 2165, 2169, 2173, + 2177, 2185, 2192, 2199, 2206, 2213, 2220, 2227, 2234, 2241, + 2248, 2255, 2262, 2272, 2276, 2280, 2284, 2288, 2292, 2296, + 2300, 2305, 2310, 2315, 2319, 2323, 2327, 2332, 2337, 2341, + 2345, 2349, 2353, 2357, 2361, 2365, 2369, 2373, 2377, 2382, + 2386, 2391, 2395, 2399, 2403, 2407, 2411, 2415, 2419, 2423, + 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2459, 2463, + 2467, 2471, 2475, 2479, 2483, 2487, 2491, 2495, 2499, 2503, + 2507, 2511, 2515, 2519, 2523, 2527, 2531, 2535, 2539, 2543, + 2547, 2551, 2555, 2559, 2563, 2567, 2571, 2575, 2579, 2583, + 2587, 2591, 2595, 2599, 2603, 2607, 2611, 2615, 2619, 2623, + 2627, 2631, 2635, 2642, 2646, 2650, 2654, 2658, 2665, 2670, + 2677, 2682, 2689, 2694, 2699, 2705 }; // Print the state stack on the debug stream. @@ -5850,8 +5740,8 @@ namespace yy { } // yy -#line 5854 "seclang-parser.cc" // lalr1.cc:1167 -#line 2714 "seclang-parser.yy" // lalr1.cc:1168 +#line 5744 "seclang-parser.cc" // lalr1.cc:1167 +#line 2712 "seclang-parser.yy" // lalr1.cc:1168 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 5f6b721b..c24645e9 100644 --- a/src/parser/seclang-parser.hh +++ b/src/parser/seclang-parser.hh @@ -770,46 +770,7 @@ namespace yy { // "CONGIG_DIR_SEC_TMP_DIR" // "DIRECTIVE" // "DIRECTIVE_SECRULESCRIPT" - // "FREE_TEXT" // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - // "OPERATOR" - // "OPERATOR_BEGINS_WITH" - // "OPERATOR_CONTAINS" - // "OPERATOR_CONTAINS_WORD" - // "OPERATOR_DETECT_SQLI" - // "OPERATOR_DETECT_XSS" - // "OPERATOR_ENDS_WITH" - // "OPERATOR_EQ" - // "OPERATOR_FUZZY_HASH" - // "OPERATOR_GE" - // "OPERATOR_GEOLOOKUP" - // "OPERATOR_GSB_LOOKUP" - // "OPERATOR_GT" - // "OPERATOR_INSPECT_FILE" - // "OPERATOR_IP_MATCH" - // "OPERATOR_IP_MATCH_FROM_FILE" - // "OPERATOR_LE" - // "OPERATOR_LT" - // "OPERATOR_PM" - // "OPERATOR_PM_FROM_FILE" - // "OPERATOR_RBL" - // "OPERATOR_RSUB" - // "OPERATOR_RX" - // "Operator RX (content only)" - // "OPERATOR_STR_EQ" - // "OPERATOR_STR_MATCH" - // "OPERATOR_UNCONDITIONAL_MATCH" - // "OPERATOR_VALIDATE_BYTE_RANGE" - // "OPERATOR_VALIDATE_DTD" - // "OPERATOR_VALIDATE_HASH" - // "OPERATOR_VALIDATE_SCHEMA" - // "OPERATOR_VALIDATE_URL_ENCODING" - // "OPERATOR_VALIDATE_UTF8_ENCODING" - // "OPERATOR_VERIFY_CC" - // "OPERATOR_VERIFY_CPF" - // "OPERATOR_VERIFY_SSN" - // "OPERATOR_WITHIN" - // "OP_QUOTE" // "QUOTATION_MARK" // "RUN_TIME_VAR_BLD" // "RUN_TIME_VAR_DUR" @@ -976,218 +937,215 @@ namespace yy { TOK_SETVAR_OPERATION_EQUALS_PLUS = 354, TOK_SETVAR_OPERATION_EQUALS_MINUS = 355, TOK_NOT = 356, - TOK_CONFIG_DIR_AUDIT_LOG_FMT = 357, - TOK_JSON = 358, - TOK_NATIVE = 359, - TOK_ACTION_CTL_RULE_ENGINE = 360, - TOK_ACTION_ACCURACY = 361, - TOK_ACTION_ALLOW = 362, - TOK_ACTION_APPEND = 363, - TOK_ACTION_AUDIT_LOG = 364, - TOK_ACTION_BLOCK = 365, - TOK_ACTION_CAPTURE = 366, - TOK_ACTION_CHAIN = 367, - TOK_ACTION_CTL_AUDIT_ENGINE = 368, - TOK_ACTION_CTL_AUDIT_LOG_PARTS = 369, - TOK_ACTION_CTL_BDY_JSON = 370, - TOK_ACTION_CTL_BDY_XML = 371, - TOK_ACTION_CTL_FORCE_REQ_BODY_VAR = 372, - TOK_ACTION_CTL_REQUEST_BODY_ACCESS = 373, - TOK_ACTION_CTL_RULE_REMOVE_BY_ID = 374, - TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID = 375, - TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG = 376, - TOK_ACTION_DENY = 377, - TOK_ACTION_DEPRECATE_VAR = 378, - TOK_ACTION_DROP = 379, - TOK_ACTION_EXEC = 380, - TOK_ACTION_EXPIRE_VAR = 381, - TOK_ACTION_ID = 382, - TOK_ACTION_INITCOL = 383, - TOK_ACTION_LOG = 384, - TOK_ACTION_LOG_DATA = 385, - TOK_ACTION_MATURITY = 386, - TOK_ACTION_MSG = 387, - TOK_ACTION_MULTI_MATCH = 388, - TOK_ACTION_NO_AUDIT_LOG = 389, - TOK_ACTION_NO_LOG = 390, - TOK_ACTION_PASS = 391, - TOK_ACTION_PAUSE = 392, - TOK_ACTION_PHASE = 393, - TOK_ACTION_PREPEND = 394, - TOK_ACTION_PROXY = 395, - TOK_ACTION_REDIRECT = 396, - TOK_ACTION_REV = 397, - TOK_ACTION_SANATISE_ARG = 398, - TOK_ACTION_SANATISE_MATCHED = 399, - TOK_ACTION_SANATISE_MATCHED_BYTES = 400, - TOK_ACTION_SANATISE_REQUEST_HEADER = 401, - TOK_ACTION_SANATISE_RESPONSE_HEADER = 402, - TOK_ACTION_SETENV = 403, - TOK_ACTION_SETRSC = 404, - TOK_ACTION_SETSID = 405, - TOK_ACTION_SETUID = 406, - TOK_ACTION_SEVERITY = 407, - TOK_ACTION_SKIP = 408, - TOK_ACTION_SKIP_AFTER = 409, - TOK_ACTION_STATUS = 410, - TOK_ACTION_TAG = 411, - TOK_ACTION_TRANSFORMATION_CMD_LINE = 412, - TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE = 413, - TOK_ACTION_TRANSFORMATION_CSS_DECODE = 414, - TOK_ACTION_TRANSFORMATION_HEX_ENCODE = 415, - TOK_ACTION_TRANSFORMATION_HEX_DECODE = 416, - TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE = 417, - TOK_ACTION_TRANSFORMATION_JS_DECODE = 418, - TOK_ACTION_TRANSFORMATION_LENGTH = 419, - TOK_ACTION_TRANSFORMATION_LOWERCASE = 420, - TOK_ACTION_TRANSFORMATION_MD5 = 421, - TOK_ACTION_TRANSFORMATION_NONE = 422, - TOK_ACTION_TRANSFORMATION_NORMALISE_PATH = 423, - TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN = 424, - TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT = 425, - TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT = 426, - TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT = 427, - TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS = 428, - TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR = 429, - TOK_ACTION_TRANSFORMATION_REMOVE_NULLS = 430, - TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE = 431, - TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS = 432, - TOK_ACTION_TRANSFORMATION_REPLACE_NULLS = 433, - TOK_ACTION_TRANSFORMATION_SHA1 = 434, - TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE = 435, - TOK_ACTION_TRANSFORMATION_TRIM = 436, - TOK_ACTION_TRANSFORMATION_UPPERCASE = 437, - TOK_ACTION_TRANSFORMATION_URL_DECODE = 438, - TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI = 439, - TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE = 440, - TOK_ACTION_VER = 441, - TOK_ACTION_XMLNS = 442, - TOK_CONFIG_COMPONENT_SIG = 443, - TOK_CONFIG_SEC_ARGUMENT_SEPARATOR = 444, - TOK_CONFIG_SEC_WEB_APP_ID = 445, - TOK_CONFIG_SEC_SERVER_SIG = 446, - TOK_CONFIG_DIR_AUDIT_DIR = 447, - TOK_CONFIG_DIR_AUDIT_DIR_MOD = 448, - TOK_CONFIG_DIR_AUDIT_ENG = 449, - TOK_CONFIG_DIR_AUDIT_FLE_MOD = 450, - TOK_CONFIG_DIR_AUDIT_LOG = 451, - TOK_CONFIG_DIR_AUDIT_LOG2 = 452, - TOK_CONFIG_DIR_AUDIT_LOG_P = 453, - TOK_CONFIG_DIR_AUDIT_STS = 454, - TOK_CONFIG_DIR_AUDIT_TPE = 455, - TOK_CONFIG_DIR_DEBUG_LOG = 456, - TOK_CONFIG_DIR_DEBUG_LVL = 457, - TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS = 458, - TOK_CONFIG_DIR_GEO_DB = 459, - TOK_CONFIG_DIR_PCRE_MATCH_LIMIT = 460, - TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION = 461, - TOK_CONFIG_DIR_REQ_BODY = 462, - TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT = 463, - TOK_CONFIG_DIR_REQ_BODY_LIMIT = 464, - TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION = 465, - TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT = 466, - TOK_CONFIG_DIR_RES_BODY = 467, - TOK_CONFIG_DIR_RES_BODY_LIMIT = 468, - TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION = 469, - TOK_CONFIG_DIR_RULE_ENG = 470, - TOK_CONFIG_DIR_SEC_ACTION = 471, - TOK_CONFIG_DIR_SEC_DEFAULT_ACTION = 472, - TOK_CONFIG_DIR_SEC_MARKER = 473, - TOK_CONFIG_DIR_UNICODE_MAP_FILE = 474, - TOK_CONFIG_SEC_COLLECTION_TIMEOUT = 475, - TOK_CONFIG_SEC_HTTP_BLKEY = 476, - TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION = 477, - TOK_CONFIG_SEC_RULE_REMOVE_BY_ID = 478, - TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG = 479, - TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG = 480, - TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG = 481, - TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG = 482, - TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID = 483, - TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID = 484, - TOK_CONFIG_UPDLOAD_KEEP_FILES = 485, - TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES = 486, - TOK_CONFIG_UPLOAD_DIR = 487, - TOK_CONFIG_UPLOAD_FILE_LIMIT = 488, - TOK_CONFIG_UPLOAD_FILE_MODE = 489, - TOK_CONFIG_VALUE_ABORT = 490, - TOK_CONFIG_VALUE_DETC = 491, - TOK_CONFIG_VALUE_HTTPS = 492, - TOK_CONFIG_VALUE_OFF = 493, - TOK_CONFIG_VALUE_ON = 494, - TOK_CONFIG_VALUE_PARALLEL = 495, - TOK_CONFIG_VALUE_PROCESS_PARTIAL = 496, - TOK_CONFIG_VALUE_REJECT = 497, - TOK_CONFIG_VALUE_RELEVANT_ONLY = 498, - TOK_CONFIG_VALUE_SERIAL = 499, - TOK_CONFIG_VALUE_WARN = 500, - TOK_CONFIG_XML_EXTERNAL_ENTITY = 501, - TOK_CONGIG_DIR_RESPONSE_BODY_MP = 502, - TOK_CONGIG_DIR_SEC_ARG_SEP = 503, - TOK_CONGIG_DIR_SEC_COOKIE_FORMAT = 504, - TOK_CONGIG_DIR_SEC_DATA_DIR = 505, - TOK_CONGIG_DIR_SEC_STATUS_ENGINE = 506, - TOK_CONGIG_DIR_SEC_TMP_DIR = 507, - TOK_DIRECTIVE = 508, - TOK_DIRECTIVE_SECRULESCRIPT = 509, - TOK_FREE_TEXT = 510, - TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION = 511, - TOK_OPERATOR = 512, - TOK_OPERATOR_BEGINS_WITH = 513, - TOK_OPERATOR_CONTAINS = 514, - TOK_OPERATOR_CONTAINS_WORD = 515, - TOK_OPERATOR_DETECT_SQLI = 516, - TOK_OPERATOR_DETECT_XSS = 517, - TOK_OPERATOR_ENDS_WITH = 518, - TOK_OPERATOR_EQ = 519, - TOK_OPERATOR_FUZZY_HASH = 520, - TOK_OPERATOR_GE = 521, - TOK_OPERATOR_GEOLOOKUP = 522, - TOK_OPERATOR_GSB_LOOKUP = 523, - TOK_OPERATOR_GT = 524, - TOK_OPERATOR_INSPECT_FILE = 525, - TOK_OPERATOR_IP_MATCH = 526, - TOK_OPERATOR_IP_MATCH_FROM_FILE = 527, - TOK_OPERATOR_LE = 528, - TOK_OPERATOR_LT = 529, - TOK_OPERATOR_PM = 530, - TOK_OPERATOR_PM_FROM_FILE = 531, - TOK_OPERATOR_RBL = 532, - TOK_OPERATOR_RSUB = 533, - TOK_OPERATOR_RX = 534, - TOK_OPERATOR_RX_CONTENT_ONLY = 535, - TOK_OPERATOR_STR_EQ = 536, - TOK_OPERATOR_STR_MATCH = 537, - TOK_OPERATOR_UNCONDITIONAL_MATCH = 538, - TOK_OPERATOR_VALIDATE_BYTE_RANGE = 539, - TOK_OPERATOR_VALIDATE_DTD = 540, - TOK_OPERATOR_VALIDATE_HASH = 541, - TOK_OPERATOR_VALIDATE_SCHEMA = 542, - TOK_OPERATOR_VALIDATE_URL_ENCODING = 543, - TOK_OPERATOR_VALIDATE_UTF8_ENCODING = 544, - TOK_OPERATOR_VERIFY_CC = 545, - TOK_OPERATOR_VERIFY_CPF = 546, - TOK_OPERATOR_VERIFY_SSN = 547, - TOK_OPERATOR_WITHIN = 548, - TOK_OP_QUOTE = 549, - TOK_QUOTATION_MARK = 550, - TOK_RUN_TIME_VAR_BLD = 551, - TOK_RUN_TIME_VAR_DUR = 552, - TOK_RUN_TIME_VAR_HSV = 553, - TOK_RUN_TIME_VAR_REMOTE_USER = 554, - TOK_RUN_TIME_VAR_TIME = 555, - TOK_RUN_TIME_VAR_TIME_DAY = 556, - TOK_RUN_TIME_VAR_TIME_EPOCH = 557, - TOK_RUN_TIME_VAR_TIME_HOUR = 558, - TOK_RUN_TIME_VAR_TIME_MIN = 559, - TOK_RUN_TIME_VAR_TIME_MON = 560, - TOK_RUN_TIME_VAR_TIME_SEC = 561, - TOK_RUN_TIME_VAR_TIME_WDAY = 562, - TOK_RUN_TIME_VAR_TIME_YEAR = 563, - TOK_SETVAR_VARIABLE_PART = 564, - TOK_SETVAR_CONTENT_PART = 565, - TOK_VARIABLE = 566, - TOK_DICT_ELEMENT = 567, - TOK_DICT_ELEMENT_REGEXP = 568 + TOK_OPERATOR_BEGINS_WITH = 357, + TOK_OPERATOR_CONTAINS = 358, + TOK_OPERATOR_CONTAINS_WORD = 359, + TOK_OPERATOR_DETECT_SQLI = 360, + TOK_OPERATOR_DETECT_XSS = 361, + TOK_OPERATOR_ENDS_WITH = 362, + TOK_OPERATOR_EQ = 363, + TOK_OPERATOR_FUZZY_HASH = 364, + TOK_OPERATOR_GEOLOOKUP = 365, + TOK_OPERATOR_GE = 366, + TOK_OPERATOR_GSB_LOOKUP = 367, + TOK_OPERATOR_GT = 368, + TOK_OPERATOR_INSPECT_FILE = 369, + TOK_OPERATOR_IP_MATCH_FROM_FILE = 370, + TOK_OPERATOR_IP_MATCH = 371, + TOK_OPERATOR_LE = 372, + TOK_OPERATOR_LT = 373, + TOK_OPERATOR_PM_FROM_FILE = 374, + TOK_OPERATOR_PM = 375, + TOK_OPERATOR_RBL = 376, + TOK_OPERATOR_RSUB = 377, + TOK_OPERATOR_RX_CONTENT_ONLY = 378, + TOK_OPERATOR_RX = 379, + TOK_OPERATOR_STR_EQ = 380, + TOK_OPERATOR_STR_MATCH = 381, + TOK_OPERATOR_UNCONDITIONAL_MATCH = 382, + TOK_OPERATOR_VALIDATE_BYTE_RANGE = 383, + TOK_OPERATOR_VALIDATE_DTD = 384, + TOK_OPERATOR_VALIDATE_HASH = 385, + TOK_OPERATOR_VALIDATE_SCHEMA = 386, + TOK_OPERATOR_VALIDATE_URL_ENCODING = 387, + TOK_OPERATOR_VALIDATE_UTF8_ENCODING = 388, + TOK_OPERATOR_VERIFY_CC = 389, + TOK_OPERATOR_VERIFY_CPF = 390, + TOK_OPERATOR_VERIFY_SSN = 391, + TOK_OPERATOR_WITHIN = 392, + TOK_CONFIG_DIR_AUDIT_LOG_FMT = 393, + TOK_JSON = 394, + TOK_NATIVE = 395, + TOK_ACTION_CTL_RULE_ENGINE = 396, + TOK_ACTION_ACCURACY = 397, + TOK_ACTION_ALLOW = 398, + TOK_ACTION_APPEND = 399, + TOK_ACTION_AUDIT_LOG = 400, + TOK_ACTION_BLOCK = 401, + TOK_ACTION_CAPTURE = 402, + TOK_ACTION_CHAIN = 403, + TOK_ACTION_CTL_AUDIT_ENGINE = 404, + TOK_ACTION_CTL_AUDIT_LOG_PARTS = 405, + TOK_ACTION_CTL_BDY_JSON = 406, + TOK_ACTION_CTL_BDY_XML = 407, + TOK_ACTION_CTL_FORCE_REQ_BODY_VAR = 408, + TOK_ACTION_CTL_REQUEST_BODY_ACCESS = 409, + TOK_ACTION_CTL_RULE_REMOVE_BY_ID = 410, + TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID = 411, + TOK_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG = 412, + TOK_ACTION_DENY = 413, + TOK_ACTION_DEPRECATE_VAR = 414, + TOK_ACTION_DROP = 415, + TOK_ACTION_EXEC = 416, + TOK_ACTION_EXPIRE_VAR = 417, + TOK_ACTION_ID = 418, + TOK_ACTION_INITCOL = 419, + TOK_ACTION_LOG = 420, + TOK_ACTION_LOG_DATA = 421, + TOK_ACTION_MATURITY = 422, + TOK_ACTION_MSG = 423, + TOK_ACTION_MULTI_MATCH = 424, + TOK_ACTION_NO_AUDIT_LOG = 425, + TOK_ACTION_NO_LOG = 426, + TOK_ACTION_PASS = 427, + TOK_ACTION_PAUSE = 428, + TOK_ACTION_PHASE = 429, + TOK_ACTION_PREPEND = 430, + TOK_ACTION_PROXY = 431, + TOK_ACTION_REDIRECT = 432, + TOK_ACTION_REV = 433, + TOK_ACTION_SANATISE_ARG = 434, + TOK_ACTION_SANATISE_MATCHED = 435, + TOK_ACTION_SANATISE_MATCHED_BYTES = 436, + TOK_ACTION_SANATISE_REQUEST_HEADER = 437, + TOK_ACTION_SANATISE_RESPONSE_HEADER = 438, + TOK_ACTION_SETENV = 439, + TOK_ACTION_SETRSC = 440, + TOK_ACTION_SETSID = 441, + TOK_ACTION_SETUID = 442, + TOK_ACTION_SEVERITY = 443, + TOK_ACTION_SKIP = 444, + TOK_ACTION_SKIP_AFTER = 445, + TOK_ACTION_STATUS = 446, + TOK_ACTION_TAG = 447, + TOK_ACTION_TRANSFORMATION_CMD_LINE = 448, + TOK_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE = 449, + TOK_ACTION_TRANSFORMATION_CSS_DECODE = 450, + TOK_ACTION_TRANSFORMATION_HEX_ENCODE = 451, + TOK_ACTION_TRANSFORMATION_HEX_DECODE = 452, + TOK_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE = 453, + TOK_ACTION_TRANSFORMATION_JS_DECODE = 454, + TOK_ACTION_TRANSFORMATION_LENGTH = 455, + TOK_ACTION_TRANSFORMATION_LOWERCASE = 456, + TOK_ACTION_TRANSFORMATION_MD5 = 457, + TOK_ACTION_TRANSFORMATION_NONE = 458, + TOK_ACTION_TRANSFORMATION_NORMALISE_PATH = 459, + TOK_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN = 460, + TOK_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT = 461, + TOK_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT = 462, + TOK_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT = 463, + TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS = 464, + TOK_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR = 465, + TOK_ACTION_TRANSFORMATION_REMOVE_NULLS = 466, + TOK_ACTION_TRANSFORMATION_REMOVE_WHITESPACE = 467, + TOK_ACTION_TRANSFORMATION_REPLACE_COMMENTS = 468, + TOK_ACTION_TRANSFORMATION_REPLACE_NULLS = 469, + TOK_ACTION_TRANSFORMATION_SHA1 = 470, + TOK_ACTION_TRANSFORMATION_SQL_HEX_DECODE = 471, + TOK_ACTION_TRANSFORMATION_TRIM = 472, + TOK_ACTION_TRANSFORMATION_UPPERCASE = 473, + TOK_ACTION_TRANSFORMATION_URL_DECODE = 474, + TOK_ACTION_TRANSFORMATION_URL_DECODE_UNI = 475, + TOK_ACTION_TRANSFORMATION_UTF8_TO_UNICODE = 476, + TOK_ACTION_VER = 477, + TOK_ACTION_XMLNS = 478, + TOK_CONFIG_COMPONENT_SIG = 479, + TOK_CONFIG_SEC_ARGUMENT_SEPARATOR = 480, + TOK_CONFIG_SEC_WEB_APP_ID = 481, + TOK_CONFIG_SEC_SERVER_SIG = 482, + TOK_CONFIG_DIR_AUDIT_DIR = 483, + TOK_CONFIG_DIR_AUDIT_DIR_MOD = 484, + TOK_CONFIG_DIR_AUDIT_ENG = 485, + TOK_CONFIG_DIR_AUDIT_FLE_MOD = 486, + TOK_CONFIG_DIR_AUDIT_LOG = 487, + TOK_CONFIG_DIR_AUDIT_LOG2 = 488, + TOK_CONFIG_DIR_AUDIT_LOG_P = 489, + TOK_CONFIG_DIR_AUDIT_STS = 490, + TOK_CONFIG_DIR_AUDIT_TPE = 491, + TOK_CONFIG_DIR_DEBUG_LOG = 492, + TOK_CONFIG_DIR_DEBUG_LVL = 493, + TOK_CONFIG_SEC_CACHE_TRANSFORMATIONS = 494, + TOK_CONFIG_DIR_GEO_DB = 495, + TOK_CONFIG_DIR_PCRE_MATCH_LIMIT = 496, + TOK_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION = 497, + TOK_CONFIG_DIR_REQ_BODY = 498, + TOK_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT = 499, + TOK_CONFIG_DIR_REQ_BODY_LIMIT = 500, + TOK_CONFIG_DIR_REQ_BODY_LIMIT_ACTION = 501, + TOK_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT = 502, + TOK_CONFIG_DIR_RES_BODY = 503, + TOK_CONFIG_DIR_RES_BODY_LIMIT = 504, + TOK_CONFIG_DIR_RES_BODY_LIMIT_ACTION = 505, + TOK_CONFIG_DIR_RULE_ENG = 506, + TOK_CONFIG_DIR_SEC_ACTION = 507, + TOK_CONFIG_DIR_SEC_DEFAULT_ACTION = 508, + TOK_CONFIG_DIR_SEC_MARKER = 509, + TOK_CONFIG_DIR_UNICODE_MAP_FILE = 510, + TOK_CONFIG_SEC_COLLECTION_TIMEOUT = 511, + TOK_CONFIG_SEC_HTTP_BLKEY = 512, + TOK_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION = 513, + TOK_CONFIG_SEC_RULE_REMOVE_BY_ID = 514, + TOK_CONFIG_SEC_RULE_REMOVE_BY_MSG = 515, + TOK_CONFIG_SEC_RULE_REMOVE_BY_TAG = 516, + TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG = 517, + TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG = 518, + TOK_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID = 519, + TOK_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID = 520, + TOK_CONFIG_UPDLOAD_KEEP_FILES = 521, + TOK_CONFIG_UPDLOAD_SAVE_TMP_FILES = 522, + TOK_CONFIG_UPLOAD_DIR = 523, + TOK_CONFIG_UPLOAD_FILE_LIMIT = 524, + TOK_CONFIG_UPLOAD_FILE_MODE = 525, + TOK_CONFIG_VALUE_ABORT = 526, + TOK_CONFIG_VALUE_DETC = 527, + TOK_CONFIG_VALUE_HTTPS = 528, + TOK_CONFIG_VALUE_OFF = 529, + TOK_CONFIG_VALUE_ON = 530, + TOK_CONFIG_VALUE_PARALLEL = 531, + TOK_CONFIG_VALUE_PROCESS_PARTIAL = 532, + TOK_CONFIG_VALUE_REJECT = 533, + TOK_CONFIG_VALUE_RELEVANT_ONLY = 534, + TOK_CONFIG_VALUE_SERIAL = 535, + TOK_CONFIG_VALUE_WARN = 536, + TOK_CONFIG_XML_EXTERNAL_ENTITY = 537, + TOK_CONGIG_DIR_RESPONSE_BODY_MP = 538, + TOK_CONGIG_DIR_SEC_ARG_SEP = 539, + TOK_CONGIG_DIR_SEC_COOKIE_FORMAT = 540, + TOK_CONGIG_DIR_SEC_DATA_DIR = 541, + TOK_CONGIG_DIR_SEC_STATUS_ENGINE = 542, + TOK_CONGIG_DIR_SEC_TMP_DIR = 543, + TOK_DIRECTIVE = 544, + TOK_DIRECTIVE_SECRULESCRIPT = 545, + TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION = 546, + TOK_QUOTATION_MARK = 547, + TOK_RUN_TIME_VAR_BLD = 548, + TOK_RUN_TIME_VAR_DUR = 549, + TOK_RUN_TIME_VAR_HSV = 550, + TOK_RUN_TIME_VAR_REMOTE_USER = 551, + TOK_RUN_TIME_VAR_TIME = 552, + TOK_RUN_TIME_VAR_TIME_DAY = 553, + TOK_RUN_TIME_VAR_TIME_EPOCH = 554, + TOK_RUN_TIME_VAR_TIME_HOUR = 555, + TOK_RUN_TIME_VAR_TIME_MIN = 556, + TOK_RUN_TIME_VAR_TIME_MON = 557, + TOK_RUN_TIME_VAR_TIME_SEC = 558, + TOK_RUN_TIME_VAR_TIME_WDAY = 559, + TOK_RUN_TIME_VAR_TIME_YEAR = 560, + TOK_SETVAR_VARIABLE_PART = 561, + TOK_SETVAR_CONTENT_PART = 562, + TOK_VARIABLE = 563, + TOK_DICT_ELEMENT = 564, + TOK_DICT_ELEMENT_REGEXP = 565 }; }; @@ -1706,6 +1664,150 @@ namespace yy { symbol_type make_NOT (const location_type& l); + static inline + symbol_type + make_OPERATOR_BEGINS_WITH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_CONTAINS (const location_type& l); + + static inline + symbol_type + make_OPERATOR_CONTAINS_WORD (const location_type& l); + + static inline + symbol_type + make_OPERATOR_DETECT_SQLI (const location_type& l); + + static inline + symbol_type + make_OPERATOR_DETECT_XSS (const location_type& l); + + static inline + symbol_type + make_OPERATOR_ENDS_WITH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_EQ (const location_type& l); + + static inline + symbol_type + make_OPERATOR_FUZZY_HASH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_GEOLOOKUP (const location_type& l); + + static inline + symbol_type + make_OPERATOR_GE (const location_type& l); + + static inline + symbol_type + make_OPERATOR_GSB_LOOKUP (const location_type& l); + + static inline + symbol_type + make_OPERATOR_GT (const location_type& l); + + static inline + symbol_type + make_OPERATOR_INSPECT_FILE (const location_type& l); + + static inline + symbol_type + make_OPERATOR_IP_MATCH_FROM_FILE (const location_type& l); + + static inline + symbol_type + make_OPERATOR_IP_MATCH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_LE (const location_type& l); + + static inline + symbol_type + make_OPERATOR_LT (const location_type& l); + + static inline + symbol_type + make_OPERATOR_PM_FROM_FILE (const location_type& l); + + static inline + symbol_type + make_OPERATOR_PM (const location_type& l); + + static inline + symbol_type + make_OPERATOR_RBL (const location_type& l); + + static inline + symbol_type + make_OPERATOR_RSUB (const location_type& l); + + static inline + symbol_type + make_OPERATOR_RX_CONTENT_ONLY (const location_type& l); + + static inline + symbol_type + make_OPERATOR_RX (const location_type& l); + + static inline + symbol_type + make_OPERATOR_STR_EQ (const location_type& l); + + static inline + symbol_type + make_OPERATOR_STR_MATCH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_UNCONDITIONAL_MATCH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VALIDATE_BYTE_RANGE (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VALIDATE_DTD (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VALIDATE_HASH (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VALIDATE_SCHEMA (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VALIDATE_URL_ENCODING (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VALIDATE_UTF8_ENCODING (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VERIFY_CC (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VERIFY_CPF (const location_type& l); + + static inline + symbol_type + make_OPERATOR_VERIFY_SSN (const location_type& l); + + static inline + symbol_type + make_OPERATOR_WITHIN (const location_type& l); + static inline symbol_type make_CONFIG_DIR_AUDIT_LOG_FMT (const location_type& l); @@ -2318,166 +2420,10 @@ namespace yy { symbol_type make_DIRECTIVE_SECRULESCRIPT (const std::string& v, const location_type& l); - static inline - symbol_type - make_FREE_TEXT (const std::string& v, const location_type& l); - static inline symbol_type make_FREE_TEXT_QUOTE_MACRO_EXPANSION (const std::string& v, const location_type& l); - static inline - symbol_type - make_OPERATOR (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_BEGINS_WITH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_CONTAINS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_CONTAINS_WORD (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_DETECT_SQLI (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_DETECT_XSS (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_ENDS_WITH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_EQ (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_FUZZY_HASH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_GE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_GEOLOOKUP (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_GSB_LOOKUP (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_GT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_INSPECT_FILE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_IP_MATCH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_IP_MATCH_FROM_FILE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_LE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_LT (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_PM (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_PM_FROM_FILE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_RBL (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_RSUB (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_RX (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_RX_CONTENT_ONLY (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_STR_EQ (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_STR_MATCH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_UNCONDITIONAL_MATCH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_BYTE_RANGE (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_DTD (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_HASH (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_SCHEMA (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_URL_ENCODING (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VALIDATE_UTF8_ENCODING (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VERIFY_CC (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VERIFY_CPF (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_VERIFY_SSN (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OPERATOR_WITHIN (const std::string& v, const location_type& l); - - static inline - symbol_type - make_OP_QUOTE (const std::string& v, const location_type& l); - static inline symbol_type make_QUOTATION_MARK (const std::string& v, const location_type& l); @@ -2759,12 +2705,12 @@ namespace yy { enum { yyeof_ = 0, - yylast_ = 2006, ///< Last index in yytable_. + yylast_ = 2040, ///< Last index in yytable_. yynnts_ = 17, ///< Number of nonterminal symbols. yyfinal_ = 293, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 314 ///< Number of tokens. + yyntokens_ = 311 ///< Number of tokens. }; @@ -2837,9 +2783,9 @@ namespace yy { 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313 + 305, 306, 307, 308, 309, 310 }; - const unsigned int user_token_number_max_ = 568; + const unsigned int user_token_number_max_ = 565; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) @@ -2872,244 +2818,205 @@ namespace yy { { switch (other.type_get ()) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content value.copy< std::string > (other.value); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init value.copy< std::unique_ptr > (other.value); break; - case 330: // run_time_string + case 327: // run_time_string value.copy< std::unique_ptr > (other.value); break; - case 325: // var + case 322: // var value.copy< std::unique_ptr > (other.value); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action value.copy< std::unique_ptr > (other.value); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted value.copy< std::unique_ptr > > > (other.value); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted value.copy< std::unique_ptr > > > (other.value); break; @@ -3130,244 +3037,205 @@ namespace yy { (void) v; switch (this->type_get ()) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content value.copy< std::string > (v); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init value.copy< std::unique_ptr > (v); break; - case 330: // run_time_string + case 327: // run_time_string value.copy< std::unique_ptr > (v); break; - case 325: // var + case 322: // var value.copy< std::unique_ptr > (v); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action value.copy< std::unique_ptr > (v); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted value.copy< std::unique_ptr > > > (v); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted value.copy< std::unique_ptr > > > (v); break; @@ -3461,244 +3329,205 @@ namespace yy { // Type destructor. switch (yytype) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content value.template destroy< std::string > (); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init value.template destroy< std::unique_ptr > (); break; - case 330: // run_time_string + case 327: // run_time_string value.template destroy< std::unique_ptr > (); break; - case 325: // var + case 322: // var value.template destroy< std::unique_ptr > (); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action value.template destroy< std::unique_ptr > (); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted value.template destroy< std::unique_ptr > > > (); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted value.template destroy< std::unique_ptr > > > (); break; @@ -3725,244 +3554,205 @@ namespace yy { super_type::move(s); switch (this->type_get ()) { - case 106: // "Accuracy" - case 107: // "Allow" - case 108: // "Append" - case 109: // "AuditLog" - case 110: // "Block" - case 111: // "Capture" - case 112: // "Chain" - case 113: // "ACTION_CTL_AUDIT_ENGINE" - case 114: // "ACTION_CTL_AUDIT_LOG_PARTS" - case 115: // "ACTION_CTL_BDY_JSON" - case 116: // "ACTION_CTL_BDY_XML" - case 117: // "ACTION_CTL_FORCE_REQ_BODY_VAR" - case 118: // "ACTION_CTL_REQUEST_BODY_ACCESS" - case 119: // "ACTION_CTL_RULE_REMOVE_BY_ID" - case 120: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" - case 121: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" - case 122: // "Deny" - case 123: // "DeprecateVar" - case 124: // "Drop" - case 125: // "Exec" - case 126: // "ExpireVar" - case 127: // "Id" - case 128: // "InitCol" - case 129: // "Log" - case 130: // "LogData" - case 131: // "Maturity" - case 132: // "Msg" - case 133: // "MultiMatch" - case 134: // "NoAuditLog" - case 135: // "NoLog" - case 136: // "Pass" - case 137: // "Pause" - case 138: // "Phase" - case 139: // "Prepend" - case 140: // "Proxy" - case 141: // "Redirect" - case 142: // "Rev" - case 143: // "SanatiseArg" - case 144: // "SanatiseMatched" - case 145: // "SanatiseMatchedBytes" - case 146: // "SanatiseRequestHeader" - case 147: // "SanatiseResponseHeader" - case 148: // "SetEnv" - case 149: // "SetRsc" - case 150: // "SetSid" - case 151: // "SetUID" - case 152: // "Severity" - case 153: // "Skip" - case 154: // "SkipAfter" - case 155: // "Status" - case 156: // "Tag" - case 157: // "ACTION_TRANSFORMATION_CMD_LINE" - case 158: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" - case 159: // "ACTION_TRANSFORMATION_CSS_DECODE" - case 160: // "ACTION_TRANSFORMATION_HEX_ENCODE" - case 161: // "ACTION_TRANSFORMATION_HEX_DECODE" - case 162: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" - case 163: // "ACTION_TRANSFORMATION_JS_DECODE" - case 164: // "ACTION_TRANSFORMATION_LENGTH" - case 165: // "ACTION_TRANSFORMATION_LOWERCASE" - case 166: // "ACTION_TRANSFORMATION_MD5" - case 167: // "ACTION_TRANSFORMATION_NONE" - case 168: // "ACTION_TRANSFORMATION_NORMALISE_PATH" - case 169: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" - case 170: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" - case 171: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" - case 172: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" - case 173: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" - case 174: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" - case 175: // "ACTION_TRANSFORMATION_REMOVE_NULLS" - case 176: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" - case 177: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" - case 178: // "ACTION_TRANSFORMATION_REPLACE_NULLS" - case 179: // "ACTION_TRANSFORMATION_SHA1" - case 180: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" - case 181: // "ACTION_TRANSFORMATION_TRIM" - case 182: // "ACTION_TRANSFORMATION_UPPERCASE" - case 183: // "ACTION_TRANSFORMATION_URL_DECODE" - case 184: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" - case 185: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" - case 186: // "Ver" - case 187: // "xmlns" - case 188: // "CONFIG_COMPONENT_SIG" - case 189: // "CONFIG_SEC_ARGUMENT_SEPARATOR" - case 190: // "CONFIG_SEC_WEB_APP_ID" - case 191: // "CONFIG_SEC_SERVER_SIG" - case 192: // "CONFIG_DIR_AUDIT_DIR" - case 193: // "CONFIG_DIR_AUDIT_DIR_MOD" - case 194: // "CONFIG_DIR_AUDIT_ENG" - case 195: // "CONFIG_DIR_AUDIT_FLE_MOD" - case 196: // "CONFIG_DIR_AUDIT_LOG" - case 197: // "CONFIG_DIR_AUDIT_LOG2" - case 198: // "CONFIG_DIR_AUDIT_LOG_P" - case 199: // "CONFIG_DIR_AUDIT_STS" - case 200: // "CONFIG_DIR_AUDIT_TPE" - case 201: // "CONFIG_DIR_DEBUG_LOG" - case 202: // "CONFIG_DIR_DEBUG_LVL" - case 203: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" - case 204: // "CONFIG_DIR_GEO_DB" - case 205: // "CONFIG_DIR_PCRE_MATCH_LIMIT" - case 206: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" - case 207: // "CONFIG_DIR_REQ_BODY" - case 208: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" - case 209: // "CONFIG_DIR_REQ_BODY_LIMIT" - case 210: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" - case 211: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" - case 212: // "CONFIG_DIR_RES_BODY" - case 213: // "CONFIG_DIR_RES_BODY_LIMIT" - case 214: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" - case 215: // "CONFIG_DIR_RULE_ENG" - case 216: // "CONFIG_DIR_SEC_ACTION" - case 217: // "CONFIG_DIR_SEC_DEFAULT_ACTION" - case 218: // "CONFIG_DIR_SEC_MARKER" - case 219: // "CONFIG_DIR_UNICODE_MAP_FILE" - case 220: // "CONFIG_SEC_COLLECTION_TIMEOUT" - case 221: // "CONFIG_SEC_HTTP_BLKEY" - case 222: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" - case 223: // "CONFIG_SEC_RULE_REMOVE_BY_ID" - case 224: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" - case 225: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" - case 226: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" - case 227: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" - case 228: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" - case 229: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" - case 230: // "CONFIG_UPDLOAD_KEEP_FILES" - case 231: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" - case 232: // "CONFIG_UPLOAD_DIR" - case 233: // "CONFIG_UPLOAD_FILE_LIMIT" - case 234: // "CONFIG_UPLOAD_FILE_MODE" - case 235: // "CONFIG_VALUE_ABORT" - case 236: // "CONFIG_VALUE_DETC" - case 237: // "CONFIG_VALUE_HTTPS" - case 238: // "CONFIG_VALUE_OFF" - case 239: // "CONFIG_VALUE_ON" - case 240: // "CONFIG_VALUE_PARALLEL" - case 241: // "CONFIG_VALUE_PROCESS_PARTIAL" - case 242: // "CONFIG_VALUE_REJECT" - case 243: // "CONFIG_VALUE_RELEVANT_ONLY" - case 244: // "CONFIG_VALUE_SERIAL" - case 245: // "CONFIG_VALUE_WARN" - case 246: // "CONFIG_XML_EXTERNAL_ENTITY" - case 247: // "CONGIG_DIR_RESPONSE_BODY_MP" - case 248: // "CONGIG_DIR_SEC_ARG_SEP" - case 249: // "CONGIG_DIR_SEC_COOKIE_FORMAT" - case 250: // "CONGIG_DIR_SEC_DATA_DIR" - case 251: // "CONGIG_DIR_SEC_STATUS_ENGINE" - case 252: // "CONGIG_DIR_SEC_TMP_DIR" - case 253: // "DIRECTIVE" - case 254: // "DIRECTIVE_SECRULESCRIPT" - case 255: // "FREE_TEXT" - case 256: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" - case 257: // "OPERATOR" - case 258: // "OPERATOR_BEGINS_WITH" - case 259: // "OPERATOR_CONTAINS" - case 260: // "OPERATOR_CONTAINS_WORD" - case 261: // "OPERATOR_DETECT_SQLI" - case 262: // "OPERATOR_DETECT_XSS" - case 263: // "OPERATOR_ENDS_WITH" - case 264: // "OPERATOR_EQ" - case 265: // "OPERATOR_FUZZY_HASH" - case 266: // "OPERATOR_GE" - case 267: // "OPERATOR_GEOLOOKUP" - case 268: // "OPERATOR_GSB_LOOKUP" - case 269: // "OPERATOR_GT" - case 270: // "OPERATOR_INSPECT_FILE" - case 271: // "OPERATOR_IP_MATCH" - case 272: // "OPERATOR_IP_MATCH_FROM_FILE" - case 273: // "OPERATOR_LE" - case 274: // "OPERATOR_LT" - case 275: // "OPERATOR_PM" - case 276: // "OPERATOR_PM_FROM_FILE" - case 277: // "OPERATOR_RBL" - case 278: // "OPERATOR_RSUB" - case 279: // "OPERATOR_RX" - case 280: // "Operator RX (content only)" - case 281: // "OPERATOR_STR_EQ" - case 282: // "OPERATOR_STR_MATCH" - case 283: // "OPERATOR_UNCONDITIONAL_MATCH" - case 284: // "OPERATOR_VALIDATE_BYTE_RANGE" - case 285: // "OPERATOR_VALIDATE_DTD" - case 286: // "OPERATOR_VALIDATE_HASH" - case 287: // "OPERATOR_VALIDATE_SCHEMA" - case 288: // "OPERATOR_VALIDATE_URL_ENCODING" - case 289: // "OPERATOR_VALIDATE_UTF8_ENCODING" - case 290: // "OPERATOR_VERIFY_CC" - case 291: // "OPERATOR_VERIFY_CPF" - case 292: // "OPERATOR_VERIFY_SSN" - case 293: // "OPERATOR_WITHIN" - case 294: // "OP_QUOTE" - case 295: // "QUOTATION_MARK" - case 296: // "RUN_TIME_VAR_BLD" - case 297: // "RUN_TIME_VAR_DUR" - case 298: // "RUN_TIME_VAR_HSV" - case 299: // "RUN_TIME_VAR_REMOTE_USER" - case 300: // "RUN_TIME_VAR_TIME" - case 301: // "RUN_TIME_VAR_TIME_DAY" - case 302: // "RUN_TIME_VAR_TIME_EPOCH" - case 303: // "RUN_TIME_VAR_TIME_HOUR" - case 304: // "RUN_TIME_VAR_TIME_MIN" - case 305: // "RUN_TIME_VAR_TIME_MON" - case 306: // "RUN_TIME_VAR_TIME_SEC" - case 307: // "RUN_TIME_VAR_TIME_WDAY" - case 308: // "RUN_TIME_VAR_TIME_YEAR" - case 309: // "SETVAR_VARIABLE_PART" - case 310: // "SETVAR_CONTENT_PART" - case 311: // "VARIABLE" - case 312: // "Dictionary element" - case 313: // "Dictionary element, selected by regexp" - case 328: // setvar_variable - case 329: // setvar_content + case 142: // "Accuracy" + case 143: // "Allow" + case 144: // "Append" + case 145: // "AuditLog" + case 146: // "Block" + case 147: // "Capture" + case 148: // "Chain" + case 149: // "ACTION_CTL_AUDIT_ENGINE" + case 150: // "ACTION_CTL_AUDIT_LOG_PARTS" + case 151: // "ACTION_CTL_BDY_JSON" + case 152: // "ACTION_CTL_BDY_XML" + case 153: // "ACTION_CTL_FORCE_REQ_BODY_VAR" + case 154: // "ACTION_CTL_REQUEST_BODY_ACCESS" + case 155: // "ACTION_CTL_RULE_REMOVE_BY_ID" + case 156: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_ID" + case 157: // "ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG" + case 158: // "Deny" + case 159: // "DeprecateVar" + case 160: // "Drop" + case 161: // "Exec" + case 162: // "ExpireVar" + case 163: // "Id" + case 164: // "InitCol" + case 165: // "Log" + case 166: // "LogData" + case 167: // "Maturity" + case 168: // "Msg" + case 169: // "MultiMatch" + case 170: // "NoAuditLog" + case 171: // "NoLog" + case 172: // "Pass" + case 173: // "Pause" + case 174: // "Phase" + case 175: // "Prepend" + case 176: // "Proxy" + case 177: // "Redirect" + case 178: // "Rev" + case 179: // "SanatiseArg" + case 180: // "SanatiseMatched" + case 181: // "SanatiseMatchedBytes" + case 182: // "SanatiseRequestHeader" + case 183: // "SanatiseResponseHeader" + case 184: // "SetEnv" + case 185: // "SetRsc" + case 186: // "SetSid" + case 187: // "SetUID" + case 188: // "Severity" + case 189: // "Skip" + case 190: // "SkipAfter" + case 191: // "Status" + case 192: // "Tag" + case 193: // "ACTION_TRANSFORMATION_CMD_LINE" + case 194: // "ACTION_TRANSFORMATION_COMPRESS_WHITESPACE" + case 195: // "ACTION_TRANSFORMATION_CSS_DECODE" + case 196: // "ACTION_TRANSFORMATION_HEX_ENCODE" + case 197: // "ACTION_TRANSFORMATION_HEX_DECODE" + case 198: // "ACTION_TRANSFORMATION_HTML_ENTITY_DECODE" + case 199: // "ACTION_TRANSFORMATION_JS_DECODE" + case 200: // "ACTION_TRANSFORMATION_LENGTH" + case 201: // "ACTION_TRANSFORMATION_LOWERCASE" + case 202: // "ACTION_TRANSFORMATION_MD5" + case 203: // "ACTION_TRANSFORMATION_NONE" + case 204: // "ACTION_TRANSFORMATION_NORMALISE_PATH" + case 205: // "ACTION_TRANSFORMATION_NORMALISE_PATH_WIN" + case 206: // "ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT" + case 207: // "ACTION_TRANSFORMATION_PARITY_ODD_7_BIT" + case 208: // "ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT" + case 209: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS" + case 210: // "ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR" + case 211: // "ACTION_TRANSFORMATION_REMOVE_NULLS" + case 212: // "ACTION_TRANSFORMATION_REMOVE_WHITESPACE" + case 213: // "ACTION_TRANSFORMATION_REPLACE_COMMENTS" + case 214: // "ACTION_TRANSFORMATION_REPLACE_NULLS" + case 215: // "ACTION_TRANSFORMATION_SHA1" + case 216: // "ACTION_TRANSFORMATION_SQL_HEX_DECODE" + case 217: // "ACTION_TRANSFORMATION_TRIM" + case 218: // "ACTION_TRANSFORMATION_UPPERCASE" + case 219: // "ACTION_TRANSFORMATION_URL_DECODE" + case 220: // "ACTION_TRANSFORMATION_URL_DECODE_UNI" + case 221: // "ACTION_TRANSFORMATION_UTF8_TO_UNICODE" + case 222: // "Ver" + case 223: // "xmlns" + case 224: // "CONFIG_COMPONENT_SIG" + case 225: // "CONFIG_SEC_ARGUMENT_SEPARATOR" + case 226: // "CONFIG_SEC_WEB_APP_ID" + case 227: // "CONFIG_SEC_SERVER_SIG" + case 228: // "CONFIG_DIR_AUDIT_DIR" + case 229: // "CONFIG_DIR_AUDIT_DIR_MOD" + case 230: // "CONFIG_DIR_AUDIT_ENG" + case 231: // "CONFIG_DIR_AUDIT_FLE_MOD" + case 232: // "CONFIG_DIR_AUDIT_LOG" + case 233: // "CONFIG_DIR_AUDIT_LOG2" + case 234: // "CONFIG_DIR_AUDIT_LOG_P" + case 235: // "CONFIG_DIR_AUDIT_STS" + case 236: // "CONFIG_DIR_AUDIT_TPE" + case 237: // "CONFIG_DIR_DEBUG_LOG" + case 238: // "CONFIG_DIR_DEBUG_LVL" + case 239: // "CONFIG_SEC_CACHE_TRANSFORMATIONS" + case 240: // "CONFIG_DIR_GEO_DB" + case 241: // "CONFIG_DIR_PCRE_MATCH_LIMIT" + case 242: // "CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION" + case 243: // "CONFIG_DIR_REQ_BODY" + case 244: // "CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT" + case 245: // "CONFIG_DIR_REQ_BODY_LIMIT" + case 246: // "CONFIG_DIR_REQ_BODY_LIMIT_ACTION" + case 247: // "CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT" + case 248: // "CONFIG_DIR_RES_BODY" + case 249: // "CONFIG_DIR_RES_BODY_LIMIT" + case 250: // "CONFIG_DIR_RES_BODY_LIMIT_ACTION" + case 251: // "CONFIG_DIR_RULE_ENG" + case 252: // "CONFIG_DIR_SEC_ACTION" + case 253: // "CONFIG_DIR_SEC_DEFAULT_ACTION" + case 254: // "CONFIG_DIR_SEC_MARKER" + case 255: // "CONFIG_DIR_UNICODE_MAP_FILE" + case 256: // "CONFIG_SEC_COLLECTION_TIMEOUT" + case 257: // "CONFIG_SEC_HTTP_BLKEY" + case 258: // "CONFIG_SEC_REMOTE_RULES_FAIL_ACTION" + case 259: // "CONFIG_SEC_RULE_REMOVE_BY_ID" + case 260: // "CONFIG_SEC_RULE_REMOVE_BY_MSG" + case 261: // "CONFIG_SEC_RULE_REMOVE_BY_TAG" + case 262: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG" + case 263: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG" + case 264: // "CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID" + case 265: // "CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID" + case 266: // "CONFIG_UPDLOAD_KEEP_FILES" + case 267: // "CONFIG_UPDLOAD_SAVE_TMP_FILES" + case 268: // "CONFIG_UPLOAD_DIR" + case 269: // "CONFIG_UPLOAD_FILE_LIMIT" + case 270: // "CONFIG_UPLOAD_FILE_MODE" + case 271: // "CONFIG_VALUE_ABORT" + case 272: // "CONFIG_VALUE_DETC" + case 273: // "CONFIG_VALUE_HTTPS" + case 274: // "CONFIG_VALUE_OFF" + case 275: // "CONFIG_VALUE_ON" + case 276: // "CONFIG_VALUE_PARALLEL" + case 277: // "CONFIG_VALUE_PROCESS_PARTIAL" + case 278: // "CONFIG_VALUE_REJECT" + case 279: // "CONFIG_VALUE_RELEVANT_ONLY" + case 280: // "CONFIG_VALUE_SERIAL" + case 281: // "CONFIG_VALUE_WARN" + case 282: // "CONFIG_XML_EXTERNAL_ENTITY" + case 283: // "CONGIG_DIR_RESPONSE_BODY_MP" + case 284: // "CONGIG_DIR_SEC_ARG_SEP" + case 285: // "CONGIG_DIR_SEC_COOKIE_FORMAT" + case 286: // "CONGIG_DIR_SEC_DATA_DIR" + case 287: // "CONGIG_DIR_SEC_STATUS_ENGINE" + case 288: // "CONGIG_DIR_SEC_TMP_DIR" + case 289: // "DIRECTIVE" + case 290: // "DIRECTIVE_SECRULESCRIPT" + case 291: // "FREE_TEXT_QUOTE_MACRO_EXPANSION" + case 292: // "QUOTATION_MARK" + case 293: // "RUN_TIME_VAR_BLD" + case 294: // "RUN_TIME_VAR_DUR" + case 295: // "RUN_TIME_VAR_HSV" + case 296: // "RUN_TIME_VAR_REMOTE_USER" + case 297: // "RUN_TIME_VAR_TIME" + case 298: // "RUN_TIME_VAR_TIME_DAY" + case 299: // "RUN_TIME_VAR_TIME_EPOCH" + case 300: // "RUN_TIME_VAR_TIME_HOUR" + case 301: // "RUN_TIME_VAR_TIME_MIN" + case 302: // "RUN_TIME_VAR_TIME_MON" + case 303: // "RUN_TIME_VAR_TIME_SEC" + case 304: // "RUN_TIME_VAR_TIME_WDAY" + case 305: // "RUN_TIME_VAR_TIME_YEAR" + case 306: // "SETVAR_VARIABLE_PART" + case 307: // "SETVAR_CONTENT_PART" + case 308: // "VARIABLE" + case 309: // "Dictionary element" + case 310: // "Dictionary element, selected by regexp" + case 325: // setvar_variable + case 326: // setvar_content value.move< std::string > (s.value); break; - case 320: // op - case 321: // op_before_init + case 317: // op + case 318: // op_before_init value.move< std::unique_ptr > (s.value); break; - case 330: // run_time_string + case 327: // run_time_string value.move< std::unique_ptr > (s.value); break; - case 325: // var + case 322: // var value.move< std::unique_ptr > (s.value); break; - case 326: // act - case 327: // setvar_action + case 323: // act + case 324: // setvar_action value.move< std::unique_ptr > (s.value); break; - case 323: // variables - case 324: // variables_may_be_quoted + case 320: // variables + case 321: // variables_may_be_quoted value.move< std::unique_ptr > > > (s.value); break; - case 318: // actions - case 319: // actions_may_quoted + case 315: // actions + case 316: // actions_may_quoted value.move< std::unique_ptr > > > (s.value); break; @@ -4052,7 +3842,7 @@ namespace yy { 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, - 565, 566, 567, 568 + 565 }; return static_cast (yytoken_number_[type]); } @@ -4657,6 +4447,222 @@ namespace yy { return symbol_type (token::TOK_NOT, l); } + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_BEGINS_WITH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_BEGINS_WITH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_CONTAINS (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_CONTAINS, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_CONTAINS_WORD (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_CONTAINS_WORD, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_DETECT_SQLI (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_DETECT_SQLI, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_DETECT_XSS (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_DETECT_XSS, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_ENDS_WITH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_ENDS_WITH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_EQ (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_EQ, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_FUZZY_HASH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_FUZZY_HASH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_GEOLOOKUP (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_GEOLOOKUP, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_GE (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_GE, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_GSB_LOOKUP (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_GSB_LOOKUP, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_GT (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_GT, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_INSPECT_FILE (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_INSPECT_FILE, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_IP_MATCH_FROM_FILE (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_IP_MATCH_FROM_FILE, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_IP_MATCH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_IP_MATCH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_LE (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_LE, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_LT (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_LT, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_PM_FROM_FILE (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_PM_FROM_FILE, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_PM (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_PM, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_RBL (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_RBL, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_RSUB (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_RSUB, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_RX_CONTENT_ONLY (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_RX_CONTENT_ONLY, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_RX (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_RX, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_STR_EQ (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_STR_EQ, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_STR_MATCH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_STR_MATCH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_UNCONDITIONAL_MATCH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_UNCONDITIONAL_MATCH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VALIDATE_BYTE_RANGE (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VALIDATE_BYTE_RANGE, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VALIDATE_DTD (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VALIDATE_DTD, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VALIDATE_HASH (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VALIDATE_HASH, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VALIDATE_SCHEMA (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VALIDATE_SCHEMA, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VALIDATE_URL_ENCODING (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VALIDATE_URL_ENCODING, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VALIDATE_UTF8_ENCODING (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VERIFY_CC (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VERIFY_CC, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VERIFY_CPF (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VERIFY_CPF, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_VERIFY_SSN (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_VERIFY_SSN, l); + } + + seclang_parser::symbol_type + seclang_parser::make_OPERATOR_WITHIN (const location_type& l) + { + return symbol_type (token::TOK_OPERATOR_WITHIN, l); + } + seclang_parser::symbol_type seclang_parser::make_CONFIG_DIR_AUDIT_LOG_FMT (const location_type& l) { @@ -5575,246 +5581,12 @@ namespace yy { return symbol_type (token::TOK_DIRECTIVE_SECRULESCRIPT, v, l); } - seclang_parser::symbol_type - seclang_parser::make_FREE_TEXT (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_FREE_TEXT, v, l); - } - seclang_parser::symbol_type seclang_parser::make_FREE_TEXT_QUOTE_MACRO_EXPANSION (const std::string& v, const location_type& l) { return symbol_type (token::TOK_FREE_TEXT_QUOTE_MACRO_EXPANSION, v, l); } - seclang_parser::symbol_type - seclang_parser::make_OPERATOR (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_BEGINS_WITH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_BEGINS_WITH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_CONTAINS (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_CONTAINS, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_CONTAINS_WORD (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_CONTAINS_WORD, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_DETECT_SQLI (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_DETECT_SQLI, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_DETECT_XSS (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_DETECT_XSS, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_ENDS_WITH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_ENDS_WITH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_EQ (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_EQ, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_FUZZY_HASH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_FUZZY_HASH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_GE, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GEOLOOKUP (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_GEOLOOKUP, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GSB_LOOKUP (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_GSB_LOOKUP, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_GT (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_GT, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_INSPECT_FILE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_INSPECT_FILE, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_IP_MATCH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_IP_MATCH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_IP_MATCH_FROM_FILE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_IP_MATCH_FROM_FILE, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_LE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_LE, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_LT (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_LT, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_PM (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_PM, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_PM_FROM_FILE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_PM_FROM_FILE, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RBL (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_RBL, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RSUB (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_RSUB, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RX (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_RX, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_RX_CONTENT_ONLY (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_RX_CONTENT_ONLY, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_STR_EQ (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_STR_EQ, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_STR_MATCH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_STR_MATCH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_UNCONDITIONAL_MATCH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_UNCONDITIONAL_MATCH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_BYTE_RANGE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VALIDATE_BYTE_RANGE, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_DTD (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VALIDATE_DTD, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_HASH (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VALIDATE_HASH, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_SCHEMA (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VALIDATE_SCHEMA, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_URL_ENCODING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VALIDATE_URL_ENCODING, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VALIDATE_UTF8_ENCODING (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VALIDATE_UTF8_ENCODING, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VERIFY_CC (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VERIFY_CC, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VERIFY_CPF (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VERIFY_CPF, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_VERIFY_SSN (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_VERIFY_SSN, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OPERATOR_WITHIN (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OPERATOR_WITHIN, v, l); - } - - seclang_parser::symbol_type - seclang_parser::make_OP_QUOTE (const std::string& v, const location_type& l) - { - return symbol_type (token::TOK_OP_QUOTE, v, l); - } - seclang_parser::symbol_type seclang_parser::make_QUOTATION_MARK (const std::string& v, const location_type& l) { @@ -5932,7 +5704,7 @@ namespace yy { } // yy -#line 5936 "seclang-parser.hh" // lalr1.cc:377 +#line 5708 "seclang-parser.hh" // lalr1.cc:377 diff --git a/src/parser/seclang-parser.yy b/src/parser/seclang-parser.yy index e42e270a..b1f44ddc 100644 --- a/src/parser/seclang-parser.yy +++ b/src/parser/seclang-parser.yy @@ -463,6 +463,43 @@ using modsecurity::operators::Operator; SETVAR_OPERATION_EQUALS_MINUS NOT "NOT" + OPERATOR_BEGINS_WITH "OPERATOR_BEGINS_WITH" + OPERATOR_CONTAINS "OPERATOR_CONTAINS" + OPERATOR_CONTAINS_WORD "OPERATOR_CONTAINS_WORD" + OPERATOR_DETECT_SQLI "OPERATOR_DETECT_SQLI" + OPERATOR_DETECT_XSS "OPERATOR_DETECT_XSS" + OPERATOR_ENDS_WITH "OPERATOR_ENDS_WITH" + OPERATOR_EQ "OPERATOR_EQ" + OPERATOR_FUZZY_HASH "OPERATOR_FUZZY_HASH" + OPERATOR_GEOLOOKUP "OPERATOR_GEOLOOKUP" + OPERATOR_GE "OPERATOR_GE" + OPERATOR_GSB_LOOKUP "OPERATOR_GSB_LOOKUP" + OPERATOR_GT "OPERATOR_GT" + OPERATOR_INSPECT_FILE "OPERATOR_INSPECT_FILE" + OPERATOR_IP_MATCH_FROM_FILE "OPERATOR_IP_MATCH_FROM_FILE" + OPERATOR_IP_MATCH "OPERATOR_IP_MATCH" + OPERATOR_LE "OPERATOR_LE" + OPERATOR_LT "OPERATOR_LT" + OPERATOR_PM_FROM_FILE "OPERATOR_PM_FROM_FILE" + OPERATOR_PM "OPERATOR_PM" + OPERATOR_RBL "OPERATOR_RBL" + OPERATOR_RSUB "OPERATOR_RSUB" + OPERATOR_RX_CONTENT_ONLY "Operator RX (content only)" + OPERATOR_RX "OPERATOR_RX" + OPERATOR_STR_EQ "OPERATOR_STR_EQ" + OPERATOR_STR_MATCH "OPERATOR_STR_MATCH" + OPERATOR_UNCONDITIONAL_MATCH "OPERATOR_UNCONDITIONAL_MATCH" + OPERATOR_VALIDATE_BYTE_RANGE "OPERATOR_VALIDATE_BYTE_RANGE" + OPERATOR_VALIDATE_DTD "OPERATOR_VALIDATE_DTD" + OPERATOR_VALIDATE_HASH "OPERATOR_VALIDATE_HASH" + OPERATOR_VALIDATE_SCHEMA "OPERATOR_VALIDATE_SCHEMA" + OPERATOR_VALIDATE_URL_ENCODING "OPERATOR_VALIDATE_URL_ENCODING" + OPERATOR_VALIDATE_UTF8_ENCODING "OPERATOR_VALIDATE_UTF8_ENCODING" + OPERATOR_VERIFY_CC "OPERATOR_VERIFY_CC" + OPERATOR_VERIFY_CPF "OPERATOR_VERIFY_CPF" + OPERATOR_VERIFY_SSN "OPERATOR_VERIFY_SSN" + OPERATOR_WITHIN "OPERATOR_WITHIN" + CONFIG_DIR_AUDIT_LOG_FMT JSON NATIVE @@ -620,46 +657,7 @@ using modsecurity::operators::Operator; CONGIG_DIR_SEC_TMP_DIR "CONGIG_DIR_SEC_TMP_DIR" DIRECTIVE "DIRECTIVE" DIRECTIVE_SECRULESCRIPT "DIRECTIVE_SECRULESCRIPT" - FREE_TEXT "FREE_TEXT" FREE_TEXT_QUOTE_MACRO_EXPANSION "FREE_TEXT_QUOTE_MACRO_EXPANSION" - OPERATOR "OPERATOR" - OPERATOR_BEGINS_WITH "OPERATOR_BEGINS_WITH" - OPERATOR_CONTAINS "OPERATOR_CONTAINS" - OPERATOR_CONTAINS_WORD "OPERATOR_CONTAINS_WORD" - OPERATOR_DETECT_SQLI "OPERATOR_DETECT_SQLI" - OPERATOR_DETECT_XSS "OPERATOR_DETECT_XSS" - OPERATOR_ENDS_WITH "OPERATOR_ENDS_WITH" - OPERATOR_EQ "OPERATOR_EQ" - OPERATOR_FUZZY_HASH "OPERATOR_FUZZY_HASH" - OPERATOR_GE "OPERATOR_GE" - OPERATOR_GEOLOOKUP "OPERATOR_GEOLOOKUP" - OPERATOR_GSB_LOOKUP "OPERATOR_GSB_LOOKUP" - OPERATOR_GT "OPERATOR_GT" - OPERATOR_INSPECT_FILE "OPERATOR_INSPECT_FILE" - OPERATOR_IP_MATCH "OPERATOR_IP_MATCH" - OPERATOR_IP_MATCH_FROM_FILE "OPERATOR_IP_MATCH_FROM_FILE" - OPERATOR_LE "OPERATOR_LE" - OPERATOR_LT "OPERATOR_LT" - OPERATOR_PM "OPERATOR_PM" - OPERATOR_PM_FROM_FILE "OPERATOR_PM_FROM_FILE" - OPERATOR_RBL "OPERATOR_RBL" - OPERATOR_RSUB "OPERATOR_RSUB" - OPERATOR_RX "OPERATOR_RX" - OPERATOR_RX_CONTENT_ONLY "Operator RX (content only)" - OPERATOR_STR_EQ "OPERATOR_STR_EQ" - OPERATOR_STR_MATCH "OPERATOR_STR_MATCH" - OPERATOR_UNCONDITIONAL_MATCH "OPERATOR_UNCONDITIONAL_MATCH" - OPERATOR_VALIDATE_BYTE_RANGE "OPERATOR_VALIDATE_BYTE_RANGE" - OPERATOR_VALIDATE_DTD "OPERATOR_VALIDATE_DTD" - OPERATOR_VALIDATE_HASH "OPERATOR_VALIDATE_HASH" - OPERATOR_VALIDATE_SCHEMA "OPERATOR_VALIDATE_SCHEMA" - OPERATOR_VALIDATE_URL_ENCODING "OPERATOR_VALIDATE_URL_ENCODING" - OPERATOR_VALIDATE_UTF8_ENCODING "OPERATOR_VALIDATE_UTF8_ENCODING" - OPERATOR_VERIFY_CC "OPERATOR_VERIFY_CC" - OPERATOR_VERIFY_CPF "OPERATOR_VERIFY_CPF" - OPERATOR_VERIFY_SSN "OPERATOR_VERIFY_SSN" - OPERATOR_WITHIN "OPERATOR_WITHIN" - OP_QUOTE "OP_QUOTE" QUOTATION_MARK "QUOTATION_MARK" RUN_TIME_VAR_BLD "RUN_TIME_VAR_BLD" RUN_TIME_VAR_DUR "RUN_TIME_VAR_DUR" diff --git a/src/parser/seclang-scanner.cc b/src/parser/seclang-scanner.cc index 19de7b1f..6a63bf04 100644 --- a/src/parser/seclang-scanner.cc +++ b/src/parser/seclang-scanner.cc @@ -433,8 +433,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 499 -#define YY_END_OF_BUFFER 500 +#define YY_NUM_RULES 498 +#define YY_END_OF_BUFFER 499 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -444,153 +444,153 @@ struct yy_trans_info }; static const flex_int16_t yy_accept[3558] = { 0, - 0, 0, 0, 0, 258, 258, 266, 266, 0, 0, + 0, 0, 0, 0, 257, 257, 265, 265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 270, 270, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 133, 133, 0, 0, - 0, 0, 0, 0, 147, 147, 0, 0, 156, 156, - 500, 492, 486, 251, 255, 256, 254, 257, 492, 492, - 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, - 492, 274, 274, 499, 274, 274, 274, 274, 274, 274, + 269, 269, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 132, 0, 0, + 0, 0, 0, 0, 146, 146, 0, 0, 155, 155, + 499, 491, 485, 250, 254, 255, 253, 256, 491, 491, + 491, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 491, 273, 273, 498, 273, 273, 273, 273, 273, 273, - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 118, 258, 264, 266, 268, 262, 261, 263, - 260, 266, 259, 460, 460, 459, 460, 460, 460, 115, - 114, 113, 121, 121, 121, 128, 120, 121, 123, 123, - 123, 122, 128, 123, 126, 126, 126, 125, 128, 124, - 126, 491, 491, 491, 499, 462, 461, 413, 416, 499, - 416, 413, 413, 413, 470, 470, 470, 469, 474, 470, - 472, 472, 472, 471, 474, 472, 112, 112, 103, 112, - 108, 102, 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 117, 257, 263, 265, 267, 261, 260, 262, + 259, 265, 258, 459, 459, 458, 459, 459, 459, 114, + 113, 112, 120, 120, 120, 127, 119, 120, 122, 122, + 122, 121, 127, 122, 125, 125, 125, 124, 127, 123, + 125, 490, 490, 490, 498, 461, 460, 412, 415, 498, + 415, 412, 412, 412, 469, 469, 469, 468, 473, 469, + 471, 471, 471, 470, 473, 471, 111, 111, 103, 111, + 108, 102, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 106, 112, 105, 499, 485, 499, 483, 475, 499, 270, - 271, 499, 466, 466, 465, 468, 466, 464, 464, 463, - 468, 464, 159, 493, 494, 495, 132, 129, 132, 132, - 132, 132, 132, 132, 133, 135, 135, 139, 138, 141, - 142, 142, 146, 143, 146, 146, 146, 146, 146, 146, - 147, 149, 149, 154, 153, 152, 156, 158, 157, 158, - 486, 251, 0, 254, 254, 254, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, - 487, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, + 106, 111, 105, 498, 484, 498, 482, 474, 498, 269, + 270, 498, 465, 465, 464, 467, 465, 463, 463, 462, + 467, 463, 158, 492, 493, 494, 131, 128, 131, 131, + 131, 131, 131, 131, 132, 134, 134, 138, 137, 140, + 141, 141, 145, 142, 145, 145, 145, 145, 145, 145, + 146, 148, 148, 153, 152, 151, 155, 157, 156, 157, + 485, 250, 0, 253, 253, 253, 0, 0, 0, 0, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, + 486, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 381, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, - 0, 0, 116, 0, 119, 258, 264, 266, 268, 265, - 266, 267, 268, 269, 486, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, + 0, 0, 115, 0, 118, 257, 263, 265, 267, 264, + 265, 266, 267, 268, 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 121, 0, 121, 121, 121, 0, 127, - 116, 121, 121, 123, 0, 0, 123, 123, 123, 0, - 123, 116, 123, 126, 0, 0, 126, 126, 126, 0, - 126, 116, 126, 491, 491, 491, 0, 489, 491, 413, - 0, 413, 0, 413, 413, 0, 413, 413, 470, 0, - 0, 470, 470, 470, 0, 470, 473, 116, 470, 472, + 0, 0, 0, 120, 0, 120, 120, 120, 0, 126, + 115, 120, 120, 122, 0, 0, 122, 122, 122, 0, + 122, 115, 122, 125, 0, 0, 125, 125, 125, 0, + 125, 115, 125, 490, 490, 490, 0, 488, 490, 412, + 0, 412, 0, 412, 412, 0, 412, 412, 469, 0, + 0, 469, 469, 469, 0, 469, 472, 115, 469, 471, - 0, 472, 472, 0, 472, 0, 0, 116, 472, 472, + 0, 471, 471, 0, 471, 0, 0, 115, 471, 471, 0, 103, 0, 102, 0, 104, 108, 109, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 106, 0, 107, 105, 105, - 0, 485, 0, 475, 0, 485, 484, 483, 475, 476, - 0, 481, 0, 270, 271, 0, 271, 0, 0, 466, - 0, 466, 0, 467, 466, 464, 0, 0, 464, 0, - 464, 493, 494, 495, 0, 130, 0, 0, 130, 0, + 0, 484, 0, 474, 0, 484, 483, 482, 474, 475, + 0, 480, 0, 269, 270, 0, 270, 0, 0, 465, + 0, 465, 0, 466, 465, 463, 0, 0, 463, 0, + 463, 492, 493, 494, 0, 129, 0, 0, 129, 0, - 133, 134, 136, 137, 141, 140, 0, 144, 0, 0, - 144, 0, 147, 148, 150, 151, 156, 155, 254, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 0, 0, 0, 487, 488, 0, 0, 0, 380, - 0, 0, 370, 0, 0, 0, 383, 0, 0, 0, + 132, 133, 135, 136, 140, 139, 0, 143, 0, 0, + 143, 0, 146, 147, 149, 150, 155, 154, 253, 0, + 0, 0, 0, 0, 0, 0, 223, 0, 0, 0, + 0, 0, 0, 0, 486, 487, 0, 0, 0, 379, + 0, 0, 369, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 393, 0, 0, 0, 0, 378, 116, 117, 0, - 0, 0, 0, 434, 0, 435, 0, 436, 0, 0, - 439, 440, 442, 0, 0, 444, 0, 0, 0, 0, - 0, 0, 435, 0, 0, 0, 121, 0, 0, 116, + 0, 392, 0, 0, 0, 0, 377, 115, 116, 0, + 0, 0, 0, 433, 0, 434, 0, 435, 0, 0, + 438, 439, 441, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 434, 0, 0, 0, 120, 0, 0, 115, - 117, 0, 123, 0, 0, 116, 117, 0, 126, 0, - 0, 116, 117, 489, 490, 413, 0, 413, 0, 413, - 0, 0, 0, 413, 0, 470, 0, 0, 116, 117, - 0, 472, 0, 0, 116, 116, 117, 110, 0, 0, + 116, 0, 122, 0, 0, 115, 116, 0, 125, 0, + 0, 115, 116, 488, 489, 412, 0, 412, 0, 412, + 0, 0, 0, 412, 0, 469, 0, 0, 115, 116, + 0, 471, 0, 0, 115, 115, 116, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 100, 101, 481, - 484, 476, 0, 0, 481, 478, 482, 0, 272, 0, + 0, 0, 0, 0, 0, 0, 0, 100, 101, 480, + 483, 475, 0, 0, 480, 477, 481, 0, 271, 0, - 0, 466, 0, 0, 0, 464, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, - 0, 0, 178, 0, 0, 0, 0, 0, 0, 0, + 0, 465, 0, 0, 0, 463, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 253, 0, 0, 0, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 231, 488, 346, 0, 0, 381, 0, 0, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 374, 0, 0, 0, 405, - 0, 0, 390, 0, 0, 379, 117, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 441, 443, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, + 0, 0, 230, 487, 345, 0, 0, 380, 0, 0, + 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 373, 0, 0, 0, 404, + 0, 0, 389, 0, 0, 378, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 440, 442, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, - 117, 123, 0, 117, 126, 0, 117, 490, 413, 0, - 0, 0, 0, 413, 0, 0, 409, 414, 410, 409, - 414, 410, 470, 0, 117, 472, 0, 117, 117, 0, + 116, 122, 0, 116, 125, 0, 116, 489, 412, 0, + 0, 0, 0, 412, 0, 0, 408, 413, 409, 408, + 413, 409, 469, 0, 116, 471, 0, 116, 116, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 47, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 101, - 481, 480, 0, 477, 0, 478, 482, 272, 0, 273, + 480, 479, 0, 476, 0, 477, 481, 271, 0, 272, - 466, 0, 464, 0, 0, 0, 0, 130, 0, 0, - 0, 144, 254, 254, 221, 0, 0, 223, 0, 0, + 465, 0, 463, 0, 0, 0, 0, 129, 0, 0, + 0, 143, 253, 253, 220, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 347, 0, 0, 0, 362, + 0, 0, 0, 0, 0, 346, 0, 0, 0, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, - 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 458, 0, 0, 0, + 0, 0, 0, 0, 0, 374, 0, 0, 0, 0, + 0, 0, 390, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 411, 411, 411, 0, 0, 0, 0, + 0, 0, 0, 410, 410, 410, 0, 0, 0, 0, 0, 26, 0, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 14, 0, 0, 16, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 480, 477, 0, 479, 273, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 254, 254, 0, 0, 0, - 179, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 479, 476, 0, 478, 272, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 253, 253, 0, 0, 0, + 178, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 230, 0, 0, 0, 0, 0, 0, 363, 0, - 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 362, 0, + 0, 385, 0, 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, 0, + 0, 0, 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 445, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 415, 412, 415, 412, 0, 0, 1, 0, 0, 0, + 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 414, 411, 414, 411, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 39, 39, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 72, 0, 88, 0, 0, 0, 0, 0, - 0, 0, 479, 131, 0, 0, 145, 0, 0, 254, - 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 478, 130, 0, 0, 144, 0, 0, 253, + 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 245, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 387, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 388, 408, 0, 0, 0, 0, 0, 0, 0, 0, + 387, 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, 430, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 39, 0, 39, 39, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 15, 0, @@ -598,16 +598,16 @@ static const flex_int16_t yy_accept[3558] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, - 66, 130, 0, 130, 144, 0, 144, 254, 254, 0, - 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 66, 129, 0, 129, 143, 0, 143, 253, 253, 0, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, - 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 347, 0, 0, 0, + 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 330, 0, 0, 0, 0, 389, 0, 398, 0, 0, - 401, 402, 403, 0, 0, 0, 0, 345, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 438, 0, + 329, 0, 0, 0, 0, 388, 0, 397, 0, 0, + 400, 401, 402, 0, 0, 0, 0, 344, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, @@ -615,18 +615,18 @@ static const flex_int16_t yy_accept[3558] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 54, 0, 58, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65, 130, 144, 254, 254, 0, 0, - 0, 0, 496, 0, 0, 247, 0, 0, 0, 0, + 0, 0, 0, 65, 129, 143, 253, 253, 0, 0, + 0, 0, 495, 0, 0, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 349, 0, 0, - 350, 282, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 385, - 0, 0, 0, 0, 341, 0, 400, 406, 404, 342, - 0, 0, 0, 432, 0, 0, 433, 0, 0, 0, - 0, 437, 0, 446, 0, 0, 454, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 348, 0, 0, + 349, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, + 0, 0, 0, 0, 340, 0, 399, 405, 403, 341, + 0, 0, 0, 431, 0, 0, 432, 0, 0, 0, + 0, 436, 0, 445, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 38, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, @@ -634,18 +634,18 @@ static const flex_int16_t yy_accept[3558] = 49, 0, 0, 0, 54, 54, 0, 54, 0, 54, 54, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 254, 254, 252, 0, 252, 226, + 0, 0, 0, 0, 253, 253, 251, 0, 251, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 278, 351, + 0, 0, 0, 0, 0, 0, 0, 0, 277, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 399, 0, 0, - 0, 0, 0, 0, 449, 0, 457, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 455, 456, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 398, 0, 0, + 0, 0, 0, 0, 448, 0, 456, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 454, 455, 0, 0, 0, 0, 0, 25, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 46, 0, 46, 10, 11, 0, 0, 0, 0, 0, 0, 0, @@ -655,19 +655,19 @@ static const flex_int16_t yy_accept[3558] = 0, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 254, 0, 252, 252, 252, 252, 252, 0, 497, 0, + 253, 0, 251, 251, 251, 251, 251, 0, 496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 200, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, - 354, 352, 0, 0, 0, 0, 0, 288, 0, 0, + 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 239, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 278, 0, 0, + 353, 351, 0, 0, 0, 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 311, 312, 313, 397, 0, 0, 0, 0, + 0, 0, 310, 311, 312, 396, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 329, 0, 0, 0, - 0, 0, 338, 339, 340, 0, 0, 447, 0, 0, - 421, 418, 0, 0, 441, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 427, 0, 424, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, + 0, 0, 337, 338, 339, 0, 0, 446, 0, 0, + 420, 417, 0, 0, 440, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 426, 0, 423, 0, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 42, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -678,18 +678,18 @@ static const flex_int16_t yy_accept[3558] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 87, 75, 74, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 79, 0, 254, 254, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 0, + 0, 77, 79, 0, 253, 253, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 355, 353, 0, 0, - 285, 0, 0, 360, 0, 394, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 354, 352, 0, 0, + 284, 0, 0, 359, 0, 393, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, - 0, 0, 321, 0, 0, 0, 325, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 420, 448, - 0, 0, 0, 451, 0, 0, 0, 0, 0, 426, + 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, + 0, 0, 320, 0, 0, 0, 324, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 419, 447, + 0, 0, 0, 450, 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 24, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 42, 42, 0, 42, 0, 42, 42, 0, 0, 45, 0, 0, @@ -700,17 +700,17 @@ static const flex_int16_t yy_accept[3558] = 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 253, 253, 253, 253, 253, 222, 0, 0, - 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 184, 0, - 0, 0, 0, 199, 0, 0, 0, 0, 198, 0, - 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, - 163, 163, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 361, 0, 0, 0, 0, 0, 0, + 0, 0, 252, 252, 252, 252, 252, 221, 0, 0, + 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, + 0, 0, 0, 198, 0, 0, 0, 0, 197, 0, + 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, + 162, 162, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 315, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, - 0, 0, 0, 0, 0, 431, 0, 0, 0, 452, + 0, 0, 0, 0, 0, 0, 0, 0, 314, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, + 0, 0, 0, 0, 0, 430, 0, 0, 0, 451, 0, 0, 0, 0, 0, 0, 24, 25, 26, 0, 0, 0, 0, 0, 0, 97, 42, 41, 42, 42, 41, 0, 0, 42, 41, 0, 0, 42, 41, 42, @@ -720,14 +720,14 @@ static const flex_int16_t yy_accept[3558] = 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, - 0, 0, 0, 0, 0, 227, 0, 171, 0, 173, + 0, 0, 0, 0, 0, 226, 0, 170, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 0, 0, 250, 0, 0, + 0, 0, 237, 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, - 276, 0, 0, 376, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 305, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 326, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 275, 0, 0, 375, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -738,16 +738,16 @@ static const flex_int16_t yy_accept[3558] = 55, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 61, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 70, 78, 0, - 0, 180, 0, 0, 0, 0, 0, 0, 183, 0, - 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, + 0, 179, 0, 0, 0, 0, 0, 0, 182, 0, + 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 242, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, - 0, 0, 0, 0, 277, 280, 0, 377, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 241, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, + 0, 0, 0, 0, 276, 279, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 304, 0, 0, 0, 0, 0, 0, - 0, 364, 0, 366, 0, 328, 0, 0, 0, 337, - 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 363, 0, 365, 0, 327, 0, 0, 0, 336, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 40, 42, 40, 0, 42, 40, 0, 0, 40, 42, 0, 40, 0, 40, 43, 43, 40, 43, 26, 0, 18, 0, @@ -755,86 +755,86 @@ static const flex_int16_t yy_accept[3558] = 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 90, 90, 0, 68, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 246, 187, 0, + 0, 0, 0, 0, 0, 0, 0, 245, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, - 0, 0, 0, 162, 0, 0, 281, 0, 0, 0, - 396, 0, 0, 287, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, - 0, 365, 0, 322, 367, 0, 327, 0, 368, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, + 0, 0, 0, 161, 0, 0, 280, 0, 0, 0, + 395, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 364, 0, 321, 366, 0, 326, 0, 367, 0, - 343, 0, 437, 0, 0, 0, 0, 0, 0, 0, + 342, 0, 436, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 40, 40, 0, 40, 0, 42, 0, 40, 43, 41, 43, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 69, 67, 94, 0, 0, 0, 0, - 0, 177, 0, 0, 0, 0, 0, 0, 0, 236, + 0, 176, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 243, 0, 0, 0, 239, 0, - 0, 0, 0, 0, 0, 0, 0, 356, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 302, + 0, 0, 0, 0, 242, 0, 0, 0, 238, 0, + 0, 0, 0, 0, 0, 0, 0, 355, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, - 0, 0, 0, 0, 314, 318, 0, 0, 0, 0, - 369, 0, 336, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 317, 0, 0, 0, 0, + 368, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 41, 43, 43, 41, 43, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, - 0, 0, 174, 0, 0, 0, 0, 0, 0, 186, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 173, 0, 0, 0, 0, 0, 0, 185, + 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 215, 0, 275, 0, 357, 0, 286, 358, 0, - 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 214, 0, 274, 0, 356, 0, 285, 357, 0, + 0, 0, 0, 295, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 450, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 61, 0, 85, 89, 89, 0, 82, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 164, 189, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 202, 202, 0, 0, 0, - 0, 0, 0, 201, 0, 220, 0, 283, 284, 359, - 0, 0, 0, 0, 295, 0, 0, 0, 0, 0, - 0, 0, 0, 308, 0, 320, 0, 0, 0, 0, - 0, 407, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 163, 188, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 201, 201, 0, 0, 0, + 0, 0, 0, 200, 0, 219, 0, 282, 283, 358, + 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, + 0, 0, 0, 307, 0, 319, 0, 0, 0, 0, + 0, 406, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 165, 0, 175, 0, 0, 0, 0, 0, - 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, - 203, 203, 0, 205, 205, 0, 0, 0, 0, 0, - 219, 232, 0, 0, 0, 292, 0, 0, 0, 0, + 0, 0, 164, 0, 174, 0, 0, 0, 0, 0, + 0, 0, 193, 0, 0, 0, 0, 0, 0, 0, + 202, 202, 0, 204, 204, 0, 0, 0, 0, 0, + 218, 231, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 419, 0, 0, 0, 425, 0, 0, 29, 0, + 0, 418, 0, 0, 0, 424, 0, 0, 29, 0, 0, 0, 35, 0, 19, 0, 0, 81, 93, 0, - 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 0, 197, 0, 0, 0, 0, 0, + 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 191, 0, 0, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 372, - 323, 0, 333, 0, 422, 0, 0, 428, 0, 0, - 0, 0, 0, 20, 0, 170, 0, 170, 235, 235, - 166, 0, 0, 0, 249, 0, 0, 0, 0, 0, - 0, 196, 0, 0, 204, 206, 0, 0, 0, 0, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 0, 0, 306, 0, 0, 373, 324, 0, 334, - 423, 0, 429, 0, 33, 0, 0, 21, 0, 0, - 0, 167, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 292, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 371, + 322, 0, 332, 0, 421, 0, 0, 427, 0, 0, + 0, 0, 0, 20, 0, 169, 0, 169, 234, 234, + 165, 0, 0, 0, 248, 0, 0, 0, 0, 0, + 0, 195, 0, 0, 203, 205, 0, 0, 0, 0, + 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 299, 0, 0, 305, 0, 0, 372, 323, 0, 333, + 422, 0, 428, 0, 33, 0, 0, 21, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 216, 0, 0, 291, - 0, 0, 0, 0, 0, 0, 317, 332, 335, 0, - 0, 0, 0, 169, 0, 0, 244, 0, 0, 0, - 0, 248, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 160, 0, 0, - 0, 0, 191, 0, 0, 233, 0, 214, 0, 212, - 0, 0, 0, 289, 0, 0, 0, 301, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, - 0, 195, 0, 0, 0, 210, 0, 208, 0, 0, + 0, 0, 0, 0, 0, 160, 215, 0, 0, 290, + 0, 0, 0, 0, 0, 0, 316, 331, 334, 0, + 0, 0, 0, 168, 0, 0, 243, 0, 0, 0, + 0, 247, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 167, 159, 0, 0, + 0, 0, 190, 0, 0, 232, 0, 213, 0, 211, + 0, 0, 0, 288, 0, 0, 0, 300, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 194, 0, 0, 0, 209, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, - 0, 181, 181, 0, 0, 0, 0, 213, 211, 0, - 0, 0, 0, 0, 303, 0, 316, 0, 0, 0, - 37, 0, 188, 0, 193, 0, 209, 207, 0, 0, - 0, 307, 0, 0, 31, 182, 190, 234, 290, 294, - 0, 32, 30, 0, 0, 299, 0 + 0, 180, 180, 0, 0, 0, 0, 212, 210, 0, + 0, 0, 0, 0, 302, 0, 315, 0, 0, 0, + 37, 0, 187, 0, 192, 0, 208, 206, 0, 0, + 0, 306, 0, 0, 31, 181, 189, 233, 289, 293, + 0, 32, 30, 0, 0, 298, 0 } ; static const YY_CHAR yy_ec[256] = @@ -4552,62 +4552,62 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[499] = +static const flex_int16_t yy_rule_linenum[498] = { 0, - 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, - 450, 451, 453, 454, 455, 456, 457, 458, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, - 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 489, 490, 493, - 494, 495, 496, 497, 498, 499, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525, 526, 527, 528, 529, 530, 532, 533, 534, 535, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 487, 488, 491, + 492, 493, 494, 495, 496, 497, 499, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 530, 531, 532, 533, - 536, 540, 545, 546, 551, 552, 553, 558, 559, 560, - 561, 564, 569, 570, 571, 575, 576, 580, 581, 585, - 586, 590, 591, 595, 596, 597, 601, 602, 606, 607, - 608, 609, 613, 614, 615, 619, 620, 621, 622, 626, - 627, 628, 632, 633, 634, 635, 639, 640, 641, 645, - 646, 647, 648, 649, 653, 654, 655, 656, 662, 665, - 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, - 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, + 534, 538, 543, 544, 549, 550, 551, 556, 557, 558, + 563, 568, 569, 570, 575, 576, 580, 581, 585, 586, + 590, 591, 595, 596, 597, 601, 602, 606, 607, 608, + 609, 613, 614, 615, 619, 620, 621, 622, 626, 627, + 628, 632, 633, 634, 635, 639, 640, 641, 645, 646, + 647, 648, 649, 653, 654, 655, 656, 662, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, - 706, 707, 708, 709, 710, 711, 713, 714, 715, 716, - 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, - 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, - 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, - 747, 748, 749, 750, 753, 754, 755, 757, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 769, 773, 774, - 775, 776, 777, 781, 782, 783, 784, 785, 786, 790, - 791, 792, 793, 798, 799, 800, 801, 802, 803, 804, - 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, - 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, + 707, 708, 709, 710, 711, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, + 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, + 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 753, 754, 755, 757, 758, 759, 760, + 761, 762, 763, 764, 765, 766, 769, 773, 774, 775, + 776, 777, 781, 782, 783, 784, 785, 786, 790, 791, + 792, 793, 798, 799, 800, 801, 802, 803, 804, 805, + 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, + 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, - 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, - 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, - 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, - 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, - 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, - 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, - 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, - 905, 908, 909, 910, 911, 912, 913, 914, 915, 916, - 917, 918, 919, 921, 922, 923, 924, 925, 926, 927, + 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, + 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, + 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, + 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, + 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, + 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, + 918, 919, 921, 922, 923, 924, 925, 926, 927, 928, - 928, 929, 930, 931, 932, 933, 936, 937, 942, 943, - 944, 945, 946, 948, 949, 951, 952, 956, 957, 958, - 959, 960, 961, 964, 965, 966, 967, 968, 969, 973, - 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, - 994, 995, 996, 997, 998, 999, 1000, 1001, 1003, 1004, - 1009, 1013, 1017, 1018, 1022, 1023, 1026, 1027, 1032, 1033, - 1037, 1038, 1042, 1043, 1048, 1049, 1050, 1051, 1052, 1053, - 1055, 1056, 1058, 1059, 1060, 1065, 1066, 1067, 1071, 1072, - 1073, 1078, 1080, 1081, 1082, 1107, 1133, 1161 + 929, 930, 931, 932, 933, 936, 937, 942, 943, 944, + 945, 946, 948, 949, 951, 952, 956, 957, 958, 959, + 960, 961, 964, 965, 966, 967, 968, 969, 973, 974, + 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1000, 1001, 1003, 1004, 1009, + 1013, 1017, 1018, 1022, 1023, 1026, 1027, 1032, 1033, 1037, + 1038, 1042, 1043, 1048, 1049, 1050, 1051, 1052, 1053, 1055, + 1056, 1058, 1059, 1060, 1065, 1066, 1067, 1071, 1072, 1073, + 1078, 1080, 1081, 1082, 1107, 1133, 1161 } ; @@ -4656,7 +4656,7 @@ static std::stack YY_PREVIOUS_STATE; #line 4656 "seclang-scanner.cc" #define YY_NO_INPUT 1 -#line 417 "seclang-scanner.ll" +#line 415 "seclang-scanner.ll" // Code run each time a pattern is matched. # define YY_USER_ACTION driver.loc.back()->columns (yyleng); @@ -4973,11 +4973,11 @@ YY_DECL { /* %% [7.0] user's declarations go here */ -#line 422 "seclang-scanner.ll" +#line 420 "seclang-scanner.ll" -#line 426 "seclang-scanner.ll" +#line 424 "seclang-scanner.ll" // Code run each time yylex is called. driver.loc.back()->step(); @@ -5035,13 +5035,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 499 ) + else if ( yy_act < 498 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 499 ) + else if ( yy_act == 498 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 500 ) + else if ( yy_act == 499 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -5059,533 +5059,533 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 430 "seclang-scanner.ll" +#line 428 "seclang-scanner.ll" { return p::make_ACTION_APPEND(yytext, *driver.loc.back()); } YY_BREAK case 2: YY_RULE_SETUP -#line 431 "seclang-scanner.ll" +#line 429 "seclang-scanner.ll" { return p::make_ACTION_BLOCK(yytext, *driver.loc.back()); } YY_BREAK case 3: YY_RULE_SETUP -#line 432 "seclang-scanner.ll" +#line 430 "seclang-scanner.ll" { return p::make_ACTION_CAPTURE(yytext, *driver.loc.back()); } YY_BREAK case 4: YY_RULE_SETUP -#line 433 "seclang-scanner.ll" +#line 431 "seclang-scanner.ll" { return p::make_ACTION_CHAIN(yytext, *driver.loc.back()); } YY_BREAK case 5: YY_RULE_SETUP -#line 434 "seclang-scanner.ll" +#line 432 "seclang-scanner.ll" { return p::make_ACTION_DENY(yytext, *driver.loc.back()); } YY_BREAK case 6: YY_RULE_SETUP -#line 435 "seclang-scanner.ll" +#line 433 "seclang-scanner.ll" { return p::make_ACTION_DEPRECATE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 7: YY_RULE_SETUP -#line 436 "seclang-scanner.ll" +#line 434 "seclang-scanner.ll" { return p::make_ACTION_DROP(yytext, *driver.loc.back()); } YY_BREAK case 8: YY_RULE_SETUP -#line 437 "seclang-scanner.ll" +#line 435 "seclang-scanner.ll" { return p::make_ACTION_ID(yytext, *driver.loc.back()); } YY_BREAK case 9: YY_RULE_SETUP -#line 438 "seclang-scanner.ll" +#line 436 "seclang-scanner.ll" { return p::make_ACTION_LOG(yytext, *driver.loc.back()); } YY_BREAK case 10: YY_RULE_SETUP -#line 439 "seclang-scanner.ll" +#line 437 "seclang-scanner.ll" { return p::make_ACTION_MULTI_MATCH(yytext, *driver.loc.back()); } YY_BREAK case 11: YY_RULE_SETUP -#line 440 "seclang-scanner.ll" +#line 438 "seclang-scanner.ll" { return p::make_ACTION_NO_AUDIT_LOG(yytext, *driver.loc.back()); } YY_BREAK case 12: YY_RULE_SETUP -#line 441 "seclang-scanner.ll" +#line 439 "seclang-scanner.ll" { return p::make_ACTION_NO_LOG(yytext, *driver.loc.back()); } YY_BREAK case 13: YY_RULE_SETUP -#line 442 "seclang-scanner.ll" +#line 440 "seclang-scanner.ll" { return p::make_ACTION_PASS(yytext, *driver.loc.back()); } YY_BREAK case 14: YY_RULE_SETUP -#line 443 "seclang-scanner.ll" +#line 441 "seclang-scanner.ll" { return p::make_ACTION_PAUSE(yytext, *driver.loc.back()); } YY_BREAK case 15: YY_RULE_SETUP -#line 444 "seclang-scanner.ll" +#line 442 "seclang-scanner.ll" { return p::make_ACTION_PREPEND(yytext, *driver.loc.back()); } YY_BREAK case 16: YY_RULE_SETUP -#line 445 "seclang-scanner.ll" +#line 443 "seclang-scanner.ll" { return p::make_ACTION_PROXY(yytext, *driver.loc.back()); } YY_BREAK case 17: YY_RULE_SETUP -#line 446 "seclang-scanner.ll" +#line 444 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_ARG(yytext, *driver.loc.back()); } YY_BREAK case 18: YY_RULE_SETUP -#line 447 "seclang-scanner.ll" +#line 445 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_MATCHED(yytext, *driver.loc.back()); } YY_BREAK case 19: YY_RULE_SETUP -#line 448 "seclang-scanner.ll" +#line 446 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_MATCHED_BYTES(yytext, *driver.loc.back()); } YY_BREAK case 20: YY_RULE_SETUP -#line 449 "seclang-scanner.ll" +#line 447 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_REQUEST_HEADER(yytext, *driver.loc.back()); } YY_BREAK case 21: YY_RULE_SETUP -#line 450 "seclang-scanner.ll" +#line 448 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_RESPONSE_HEADER(yytext, *driver.loc.back()); } YY_BREAK case 22: YY_RULE_SETUP -#line 451 "seclang-scanner.ll" +#line 449 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETRSC(yytext, *driver.loc.back()); } YY_BREAK case 23: YY_RULE_SETUP -#line 453 "seclang-scanner.ll" +#line 451 "seclang-scanner.ll" { return p::make_ACTION_STATUS(yytext, *driver.loc.back()); } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 454 "seclang-scanner.ll" +#line 452 "seclang-scanner.ll" { return p::make_ACTION_ACCURACY(yytext, *driver.loc.back()); } YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP -#line 455 "seclang-scanner.ll" +#line 453 "seclang-scanner.ll" { return p::make_ACTION_ACCURACY(yytext, *driver.loc.back()); } YY_BREAK case 26: YY_RULE_SETUP -#line 456 "seclang-scanner.ll" +#line 454 "seclang-scanner.ll" { return p::make_ACTION_ALLOW(yytext, *driver.loc.back()); } YY_BREAK case 27: YY_RULE_SETUP -#line 457 "seclang-scanner.ll" +#line 455 "seclang-scanner.ll" { return p::make_ACTION_AUDIT_LOG(yytext, *driver.loc.back()); } YY_BREAK case 28: YY_RULE_SETUP -#line 458 "seclang-scanner.ll" +#line 456 "seclang-scanner.ll" { return p::make_ACTION_CTL_AUDIT_ENGINE(yytext, *driver.loc.back()); } YY_BREAK case 29: YY_RULE_SETUP -#line 459 "seclang-scanner.ll" +#line 457 "seclang-scanner.ll" { return p::make_ACTION_CTL_AUDIT_LOG_PARTS(yytext, *driver.loc.back()); } YY_BREAK case 30: YY_RULE_SETUP -#line 460 "seclang-scanner.ll" +#line 458 "seclang-scanner.ll" { return p::make_ACTION_CTL_BDY_JSON(yytext, *driver.loc.back()); } YY_BREAK case 31: YY_RULE_SETUP -#line 461 "seclang-scanner.ll" +#line 459 "seclang-scanner.ll" { return p::make_ACTION_CTL_BDY_XML(yytext, *driver.loc.back()); } YY_BREAK case 32: YY_RULE_SETUP -#line 462 "seclang-scanner.ll" +#line 460 "seclang-scanner.ll" { return p::make_ACTION_CTL_FORCE_REQ_BODY_VAR(yytext, *driver.loc.back()); } YY_BREAK case 33: YY_RULE_SETUP -#line 463 "seclang-scanner.ll" +#line 461 "seclang-scanner.ll" { return p::make_ACTION_CTL_REQUEST_BODY_ACCESS(yytext, *driver.loc.back()); } YY_BREAK case 34: YY_RULE_SETUP -#line 464 "seclang-scanner.ll" +#line 462 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_ENGINE(*driver.loc.back()); } YY_BREAK case 35: YY_RULE_SETUP -#line 465 "seclang-scanner.ll" +#line 463 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_BY_ID(yytext, *driver.loc.back()); } YY_BREAK case 36: YY_RULE_SETUP -#line 466 "seclang-scanner.ll" +#line 464 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID(yytext, *driver.loc.back()); } YY_BREAK case 37: YY_RULE_SETUP -#line 467 "seclang-scanner.ll" +#line 465 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG(yytext, *driver.loc.back()); } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP -#line 468 "seclang-scanner.ll" +#line 466 "seclang-scanner.ll" { return p::make_ACTION_EXEC(yytext, *driver.loc.back()); } YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 469 "seclang-scanner.ll" +#line 467 "seclang-scanner.ll" { return p::make_ACTION_EXEC(yytext, *driver.loc.back()); } YY_BREAK case 40: /* rule 40 can match eol */ YY_RULE_SETUP -#line 470 "seclang-scanner.ll" +#line 468 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 41: /* rule 41 can match eol */ YY_RULE_SETUP -#line 471 "seclang-scanner.ll" +#line 469 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP -#line 472 "seclang-scanner.ll" +#line 470 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 43: /* rule 43 can match eol */ YY_RULE_SETUP -#line 473 "seclang-scanner.ll" +#line 471 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 44: YY_RULE_SETUP -#line 474 "seclang-scanner.ll" +#line 472 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_INITCOL(yytext, *driver.loc.back()); } YY_BREAK case 45: /* rule 45 can match eol */ YY_RULE_SETUP -#line 475 "seclang-scanner.ll" +#line 473 "seclang-scanner.ll" { return p::make_ACTION_MATURITY(yytext, *driver.loc.back()); } YY_BREAK case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 476 "seclang-scanner.ll" +#line 474 "seclang-scanner.ll" { return p::make_ACTION_MATURITY(yytext, *driver.loc.back()); } YY_BREAK case 47: YY_RULE_SETUP -#line 477 "seclang-scanner.ll" +#line 475 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_MSG(yytext, *driver.loc.back()); } YY_BREAK case 48: YY_RULE_SETUP -#line 478 "seclang-scanner.ll" +#line 476 "seclang-scanner.ll" { return p::make_ACTION_PHASE(yytext, *driver.loc.back()); } YY_BREAK case 49: YY_RULE_SETUP -#line 479 "seclang-scanner.ll" +#line 477 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_REDIRECT(yytext, *driver.loc.back()); } YY_BREAK case 50: /* rule 50 can match eol */ YY_RULE_SETUP -#line 480 "seclang-scanner.ll" +#line 478 "seclang-scanner.ll" { return p::make_ACTION_REV(yytext, *driver.loc.back()); } YY_BREAK case 51: /* rule 51 can match eol */ YY_RULE_SETUP -#line 481 "seclang-scanner.ll" +#line 479 "seclang-scanner.ll" { return p::make_ACTION_REV(yytext, *driver.loc.back()); } YY_BREAK case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 482 "seclang-scanner.ll" +#line 480 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 483 "seclang-scanner.ll" +#line 481 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 54: /* rule 54 can match eol */ YY_RULE_SETUP -#line 484 "seclang-scanner.ll" +#line 482 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 485 "seclang-scanner.ll" +#line 483 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 56: YY_RULE_SETUP -#line 486 "seclang-scanner.ll" +#line 484 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETSID(yytext, *driver.loc.back()); } YY_BREAK case 57: YY_RULE_SETUP -#line 487 "seclang-scanner.ll" +#line 485 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETUID(yytext, *driver.loc.back()); } YY_BREAK case 58: YY_RULE_SETUP -#line 489 "seclang-scanner.ll" +#line 487 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED); return p::make_ACTION_SETVAR(*driver.loc.back()); } YY_BREAK case 59: YY_RULE_SETUP -#line 490 "seclang-scanner.ll" +#line 488 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED); return p::make_ACTION_SETVAR(*driver.loc.back()); } YY_BREAK case 60: YY_RULE_SETUP -#line 493 "seclang-scanner.ll" +#line 491 "seclang-scanner.ll" { return p::make_ACTION_SEVERITY(yytext, *driver.loc.back()); } YY_BREAK case 61: YY_RULE_SETUP -#line 494 "seclang-scanner.ll" +#line 492 "seclang-scanner.ll" { return p::make_ACTION_SEVERITY(yytext, *driver.loc.back()); } YY_BREAK case 62: YY_RULE_SETUP -#line 495 "seclang-scanner.ll" +#line 493 "seclang-scanner.ll" { return p::make_ACTION_SKIP_AFTER(yytext, *driver.loc.back()); } YY_BREAK case 63: YY_RULE_SETUP -#line 496 "seclang-scanner.ll" +#line 494 "seclang-scanner.ll" { return p::make_ACTION_SKIP(yytext, *driver.loc.back()); } YY_BREAK case 64: YY_RULE_SETUP -#line 497 "seclang-scanner.ll" +#line 495 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_TAG(yytext, *driver.loc.back()); } YY_BREAK case 65: /* rule 65 can match eol */ YY_RULE_SETUP -#line 498 "seclang-scanner.ll" +#line 496 "seclang-scanner.ll" { return p::make_ACTION_VER(yytext, *driver.loc.back()); } YY_BREAK case 66: YY_RULE_SETUP -#line 499 "seclang-scanner.ll" +#line 497 "seclang-scanner.ll" { return p::make_ACTION_XMLNS(yytext, *driver.loc.back()); } YY_BREAK case 67: YY_RULE_SETUP -#line 501 "seclang-scanner.ll" +#line 499 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT(yytext, *driver.loc.back()); } YY_BREAK case 68: YY_RULE_SETUP -#line 502 "seclang-scanner.ll" +#line 500 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT(yytext, *driver.loc.back()); } YY_BREAK case 69: YY_RULE_SETUP -#line 503 "seclang-scanner.ll" +#line 501 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT(yytext, *driver.loc.back()); } YY_BREAK case 70: YY_RULE_SETUP -#line 504 "seclang-scanner.ll" +#line 502 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_SQL_HEX_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 71: YY_RULE_SETUP -#line 505 "seclang-scanner.ll" +#line 503 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_CMD_LINE(yytext, *driver.loc.back()); } YY_BREAK case 72: YY_RULE_SETUP -#line 506 "seclang-scanner.ll" +#line 504 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_SHA1(yytext, *driver.loc.back()); } YY_BREAK case 73: YY_RULE_SETUP -#line 507 "seclang-scanner.ll" +#line 505 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_MD5(yytext, *driver.loc.back()); } YY_BREAK case 74: YY_RULE_SETUP -#line 508 "seclang-scanner.ll" +#line 506 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_HEX_ENCODE(yytext, *driver.loc.back()); } YY_BREAK case 75: YY_RULE_SETUP -#line 509 "seclang-scanner.ll" +#line 507 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_HEX_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 76: YY_RULE_SETUP -#line 510 "seclang-scanner.ll" +#line 508 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_LOWERCASE(yytext, *driver.loc.back()); } YY_BREAK case 77: YY_RULE_SETUP -#line 511 "seclang-scanner.ll" +#line 509 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_UPPERCASE(yytext, *driver.loc.back()); } YY_BREAK case 78: YY_RULE_SETUP -#line 512 "seclang-scanner.ll" +#line 510 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_URL_DECODE_UNI(yytext, *driver.loc.back()); } YY_BREAK case 79: YY_RULE_SETUP -#line 513 "seclang-scanner.ll" +#line 511 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_URL_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 80: YY_RULE_SETUP -#line 514 "seclang-scanner.ll" +#line 512 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_NONE(yytext, *driver.loc.back()); } YY_BREAK case 81: YY_RULE_SETUP -#line 515 "seclang-scanner.ll" +#line 513 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE(yytext, *driver.loc.back()); } YY_BREAK case 82: YY_RULE_SETUP -#line 516 "seclang-scanner.ll" +#line 514 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE(yytext, *driver.loc.back()); } YY_BREAK case 83: YY_RULE_SETUP -#line 517 "seclang-scanner.ll" +#line 515 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REPLACE_NULLS(yytext, *driver.loc.back()); } YY_BREAK case 84: YY_RULE_SETUP -#line 518 "seclang-scanner.ll" +#line 516 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_NULLS(yytext, *driver.loc.back()); } YY_BREAK case 85: YY_RULE_SETUP -#line 519 "seclang-scanner.ll" +#line 517 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 86: YY_RULE_SETUP -#line 520 "seclang-scanner.ll" +#line 518 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_JS_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 87: YY_RULE_SETUP -#line 521 "seclang-scanner.ll" +#line 519 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_CSS_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 88: YY_RULE_SETUP -#line 522 "seclang-scanner.ll" +#line 520 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_TRIM(yytext, *driver.loc.back()); } YY_BREAK case 89: YY_RULE_SETUP -#line 523 "seclang-scanner.ll" +#line 521 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN(yytext, *driver.loc.back()); } YY_BREAK case 90: YY_RULE_SETUP -#line 524 "seclang-scanner.ll" +#line 522 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_NORMALISE_PATH(yytext, *driver.loc.back()); } YY_BREAK case 91: YY_RULE_SETUP -#line 525 "seclang-scanner.ll" +#line 523 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_LENGTH(yytext, *driver.loc.back()); } YY_BREAK case 92: YY_RULE_SETUP -#line 526 "seclang-scanner.ll" +#line 524 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE(yytext, *driver.loc.back()); } YY_BREAK case 93: YY_RULE_SETUP -#line 527 "seclang-scanner.ll" +#line 525 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR(yytext, *driver.loc.back()); } YY_BREAK case 94: YY_RULE_SETUP -#line 528 "seclang-scanner.ll" +#line 526 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS(yytext, *driver.loc.back()); } YY_BREAK case 95: YY_RULE_SETUP -#line 529 "seclang-scanner.ll" +#line 527 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REPLACE_COMMENTS(yytext, *driver.loc.back()); } YY_BREAK case 96: YY_RULE_SETUP -#line 530 "seclang-scanner.ll" +#line 528 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_LOG_DATA(yytext, *driver.loc.back()); } YY_BREAK case 97: YY_RULE_SETUP -#line 532 "seclang-scanner.ll" +#line 530 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_DETC(yytext, *driver.loc.back()); } YY_BREAK case 98: YY_RULE_SETUP -#line 533 "seclang-scanner.ll" +#line 531 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_OFF(yytext, *driver.loc.back()); } YY_BREAK case 99: YY_RULE_SETUP -#line 534 "seclang-scanner.ll" +#line 532 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_ON(yytext, *driver.loc.back()); } YY_BREAK case 100: /* rule 100 can match eol */ YY_RULE_SETUP -#line 535 "seclang-scanner.ll" +#line 533 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 101: /* rule 101 can match eol */ YY_RULE_SETUP -#line 536 "seclang-scanner.ll" +#line 534 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 102: YY_RULE_SETUP -#line 540 "seclang-scanner.ll" +#line 538 "seclang-scanner.ll" { return p::make_COMMA(*driver.loc.back()); } YY_BREAK @@ -5593,338 +5593,333 @@ YY_RULE_SETUP case 103: /* rule 103 can match eol */ YY_RULE_SETUP -#line 545 "seclang-scanner.ll" +#line 543 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 104: /* rule 104 can match eol */ YY_RULE_SETUP -#line 546 "seclang-scanner.ll" +#line 544 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 105: YY_RULE_SETUP -#line 551 "seclang-scanner.ll" +#line 549 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); } YY_BREAK case 106: /* rule 106 can match eol */ YY_RULE_SETUP -#line 552 "seclang-scanner.ll" +#line 550 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(1); } YY_BREAK case 107: /* rule 107 can match eol */ YY_RULE_SETUP -#line 553 "seclang-scanner.ll" +#line 551 "seclang-scanner.ll" { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 108: YY_RULE_SETUP -#line 558 "seclang-scanner.ll" -{ BEGIN(INITIAL); yyless(yyleng); } +#line 556 "seclang-scanner.ll" +{ BEGIN(INITIAL); yyless(yyleng); p::make_NEW_LINE(*driver.loc.back()); } YY_BREAK case 109: /* rule 109 can match eol */ YY_RULE_SETUP -#line 559 "seclang-scanner.ll" +#line 557 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(1); } YY_BREAK case 110: /* rule 110 can match eol */ YY_RULE_SETUP -#line 560 "seclang-scanner.ll" +#line 558 "seclang-scanner.ll" { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK + + case 111: YY_RULE_SETUP -#line 561 "seclang-scanner.ll" -{ BEGIN(INITIAL); p::make_NEW_LINE(*driver.loc.back()); } +#line 563 "seclang-scanner.ll" +{ BEGIN(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK case 112: YY_RULE_SETUP -#line 564 "seclang-scanner.ll" -{ BEGIN(LEXING_ERROR_ACTION); yyless(0); } +#line 568 "seclang-scanner.ll" +{ BEGIN(ACTION_PREDICATE_ENDS_WITH_QUOTE); } YY_BREAK - - case 113: YY_RULE_SETUP #line 569 "seclang-scanner.ll" -{ BEGIN(ACTION_PREDICATE_ENDS_WITH_QUOTE); } +{ BEGIN(ACTION_PREDICATE_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 114: YY_RULE_SETUP #line 570 "seclang-scanner.ll" -{ BEGIN(ACTION_PREDICATE_ENDS_WITH_DOUBLE_QUOTE); } - YY_BREAK -case 115: -YY_RULE_SETUP -#line 571 "seclang-scanner.ll" { BEGIN(ACTION_PREDICATE_ENDS_WITH_COMMA_OR_DOUBLE_QUOTE); yyless(0); } YY_BREAK -case 116: -/* rule 116 can match eol */ +case 115: +/* rule 115 can match eol */ YY_RULE_SETUP #line 575 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK -case 117: -/* rule 117 can match eol */ +case 116: +/* rule 116 can match eol */ YY_RULE_SETUP #line 576 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK -case 118: +case 117: YY_RULE_SETUP #line 580 "seclang-scanner.ll" { BEGIN_PREVIOUS(); } YY_BREAK -case 119: +case 118: YY_RULE_SETUP #line 581 "seclang-scanner.ll" { BEGIN_PREVIOUS(); } YY_BREAK -case 120: +case 119: YY_RULE_SETUP #line 585 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(yyleng); } YY_BREAK -case 121: -/* rule 121 can match eol */ +case 120: +/* rule 120 can match eol */ YY_RULE_SETUP #line 586 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 122: +case 121: YY_RULE_SETUP #line 590 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(yyleng); } YY_BREAK -case 123: -/* rule 123 can match eol */ +case 122: +/* rule 122 can match eol */ YY_RULE_SETUP #line 591 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 124: +case 123: YY_RULE_SETUP #line 595 "seclang-scanner.ll" { yyless(0); BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 125: +case 124: YY_RULE_SETUP #line 596 "seclang-scanner.ll" { yyless(0); BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE);} YY_BREAK -case 126: -/* rule 126 can match eol */ +case 125: +/* rule 125 can match eol */ YY_RULE_SETUP #line 597 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 127: +case 126: YY_RULE_SETUP #line 601 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK -case 128: +case 127: YY_RULE_SETUP #line 602 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); } YY_BREAK -case 129: +case 128: YY_RULE_SETUP #line 606 "seclang-scanner.ll" { return p::make_NOT(*driver.loc.back()); } YY_BREAK -case 130: +case 129: YY_RULE_SETUP #line 607 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED_WAITING_COLLECTION_ELEM); return p::make_SETVAR_VARIABLE_PART(yytext, *driver.loc.back());} YY_BREAK -case 131: +case 130: YY_RULE_SETUP #line 608 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED_WAITING_OPERATION); return p::make_SETVAR_VARIABLE_PART(yytext, *driver.loc.back());} YY_BREAK -case 132: -/* rule 132 can match eol */ +case 131: +/* rule 131 can match eol */ YY_RULE_SETUP #line 609 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK -case 133: +case 132: YY_RULE_SETUP #line 613 "seclang-scanner.ll" { return p::make_SETVAR_VARIABLE_PART(yytext, *driver.loc.back()); } YY_BREAK -case 134: -/* rule 134 can match eol */ +case 133: +/* rule 133 can match eol */ YY_RULE_SETUP #line 614 "seclang-scanner.ll" { return p::make_SETVAR_VARIABLE_PART(yytext + 1, *driver.loc.back()); } YY_BREAK -case 135: -/* rule 135 can match eol */ +case 134: +/* rule 134 can match eol */ YY_RULE_SETUP #line 615 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED_WAITING_OPERATION); yyless(0); } YY_BREAK -case 136: +case 135: YY_RULE_SETUP #line 619 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED_WAITING_CONTENT); return p::make_SETVAR_OPERATION_EQUALS_PLUS(*driver.loc.back()); } YY_BREAK -case 137: +case 136: YY_RULE_SETUP #line 620 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED_WAITING_CONTENT); return p::make_SETVAR_OPERATION_EQUALS_MINUS(*driver.loc.back()); } YY_BREAK -case 138: +case 137: YY_RULE_SETUP #line 621 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED_WAITING_CONTENT); return p::make_SETVAR_OPERATION_EQUALS(*driver.loc.back()); } YY_BREAK -case 139: -/* rule 139 can match eol */ +case 138: +/* rule 138 can match eol */ YY_RULE_SETUP #line 622 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(0);} YY_BREAK -case 140: -/* rule 140 can match eol */ +case 139: +/* rule 139 can match eol */ YY_RULE_SETUP #line 626 "seclang-scanner.ll" { return p::make_SETVAR_CONTENT_PART(yytext + 1, *driver.loc.back()); } YY_BREAK -case 141: +case 140: YY_RULE_SETUP #line 627 "seclang-scanner.ll" { return p::make_SETVAR_CONTENT_PART(yytext, *driver.loc.back()); } YY_BREAK -case 142: -/* rule 142 can match eol */ +case 141: +/* rule 141 can match eol */ YY_RULE_SETUP #line 628 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(0); } YY_BREAK -case 143: +case 142: YY_RULE_SETUP #line 632 "seclang-scanner.ll" { return p::make_NOT(*driver.loc.back()); } YY_BREAK -case 144: +case 143: YY_RULE_SETUP #line 633 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED_WAITING_COLLECTION_ELEM); return p::make_SETVAR_VARIABLE_PART(yytext, *driver.loc.back());} YY_BREAK -case 145: +case 144: YY_RULE_SETUP #line 634 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED_WAITING_OPERATION); return p::make_SETVAR_VARIABLE_PART(yytext, *driver.loc.back());} YY_BREAK -case 146: -/* rule 146 can match eol */ +case 145: +/* rule 145 can match eol */ YY_RULE_SETUP #line 635 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK -case 147: +case 146: YY_RULE_SETUP #line 639 "seclang-scanner.ll" { return p::make_SETVAR_VARIABLE_PART(yytext, *driver.loc.back()); } YY_BREAK -case 148: -/* rule 148 can match eol */ +case 147: +/* rule 147 can match eol */ YY_RULE_SETUP #line 640 "seclang-scanner.ll" { return p::make_SETVAR_VARIABLE_PART(yytext + 1, *driver.loc.back()); } YY_BREAK -case 149: -/* rule 149 can match eol */ +case 148: +/* rule 148 can match eol */ YY_RULE_SETUP #line 641 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED_WAITING_OPERATION); yyless(0); } YY_BREAK -case 150: +case 149: YY_RULE_SETUP #line 645 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED_WAITING_CONTENT); return p::make_SETVAR_OPERATION_EQUALS_PLUS(*driver.loc.back()); } YY_BREAK -case 151: +case 150: YY_RULE_SETUP #line 646 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED_WAITING_CONTENT); return p::make_SETVAR_OPERATION_EQUALS_MINUS(*driver.loc.back()); } YY_BREAK -case 152: +case 151: YY_RULE_SETUP #line 647 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED_WAITING_CONTENT); return p::make_SETVAR_OPERATION_EQUALS(*driver.loc.back()); } YY_BREAK -case 153: +case 152: YY_RULE_SETUP #line 648 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 154: -/* rule 154 can match eol */ +case 153: +/* rule 153 can match eol */ YY_RULE_SETUP #line 649 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK -case 155: -/* rule 155 can match eol */ +case 154: +/* rule 154 can match eol */ YY_RULE_SETUP #line 653 "seclang-scanner.ll" { return p::make_SETVAR_CONTENT_PART(yytext + 1, *driver.loc.back()); } YY_BREAK -case 156: +case 155: YY_RULE_SETUP #line 654 "seclang-scanner.ll" { return p::make_SETVAR_CONTENT_PART(yytext, *driver.loc.back()); } YY_BREAK -case 157: +case 156: YY_RULE_SETUP #line 655 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 158: -/* rule 158 can match eol */ +case 157: +/* rule 157 can match eol */ YY_RULE_SETUP #line 656 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_ACTION); yyless(0); } @@ -5935,1766 +5930,1766 @@ case YY_STATE_EOF(FINISH_ACTIONS): #line 661 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(0); p::make_NEW_LINE(*driver.loc.back()); } YY_BREAK -case 159: +case 158: YY_RULE_SETUP #line 662 "seclang-scanner.ll" { BEGIN(INITIAL); } YY_BREAK -case 160: -/* rule 160 can match eol */ +case 159: +/* rule 159 can match eol */ YY_RULE_SETUP #line 665 "seclang-scanner.ll" { return p::make_CONFIG_COMPONENT_SIG(strchr(yytext, ' ') + 2, *driver.loc.back()); } YY_BREAK -case 161: -/* rule 161 can match eol */ +case 160: +/* rule 160 can match eol */ YY_RULE_SETUP #line 666 "seclang-scanner.ll" { return p::make_CONFIG_SEC_SERVER_SIG(strchr(yytext, ' ') + 2, *driver.loc.back()); } YY_BREAK -case 162: -/* rule 162 can match eol */ +case 161: +/* rule 161 can match eol */ YY_RULE_SETUP #line 667 "seclang-scanner.ll" { return p::make_CONFIG_SEC_WEB_APP_ID(parserSanitizer(strchr(yytext, ' ') + 2), *driver.loc.back()); } YY_BREAK -case 163: +case 162: YY_RULE_SETUP #line 668 "seclang-scanner.ll" { return p::make_CONFIG_SEC_WEB_APP_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 164: +case 163: YY_RULE_SETUP #line 669 "seclang-scanner.ll" { return p::make_CONFIG_CONTENT_INJECTION(*driver.loc.back()); } YY_BREAK -case 165: +case 164: YY_RULE_SETUP #line 670 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR_MOD(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 166: +case 165: YY_RULE_SETUP #line 671 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR_MOD(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 167: +case 166: YY_RULE_SETUP #line 672 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 168: +case 167: YY_RULE_SETUP #line 673 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 169: +case 168: YY_RULE_SETUP #line 674 "seclang-scanner.ll" { return p::make_CONFIG_SEC_ARGUMENT_SEPARATOR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 170: +case 169: YY_RULE_SETUP #line 675 "seclang-scanner.ll" { return p::make_CONFIG_SEC_ARGUMENT_SEPARATOR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 171: +case 170: YY_RULE_SETUP #line 676 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_ENG(yytext, *driver.loc.back()); } YY_BREAK -case 172: +case 171: YY_RULE_SETUP #line 677 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_FLE_MOD(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 173: +case 172: YY_RULE_SETUP #line 678 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG2(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 174: +case 173: YY_RULE_SETUP #line 679 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG_P(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 175: +case 174: YY_RULE_SETUP #line 680 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG_P(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 176: +case 175: YY_RULE_SETUP #line 681 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 177: +case 176: YY_RULE_SETUP #line 682 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG_FMT(*driver.loc.back()); } YY_BREAK -case 178: +case 177: YY_RULE_SETUP #line 683 "seclang-scanner.ll" { return p::make_JSON(*driver.loc.back()); } YY_BREAK -case 179: +case 178: YY_RULE_SETUP #line 684 "seclang-scanner.ll" { return p::make_NATIVE(*driver.loc.back()); } YY_BREAK -case 180: +case 179: YY_RULE_SETUP #line 685 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 181: +case 180: YY_RULE_SETUP #line 686 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_STS(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 182: +case 181: YY_RULE_SETUP #line 687 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_STS(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 183: +case 182: YY_RULE_SETUP #line 688 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_TPE(yytext, *driver.loc.back()); } YY_BREAK -case 184: +case 183: YY_RULE_SETUP #line 689 "seclang-scanner.ll" { return p::make_CONFIG_DIR_DEBUG_LOG(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 185: +case 184: YY_RULE_SETUP #line 690 "seclang-scanner.ll" { return p::make_CONFIG_DIR_DEBUG_LOG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 186: +case 185: YY_RULE_SETUP #line 691 "seclang-scanner.ll" { return p::make_CONFIG_DIR_DEBUG_LVL(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 187: +case 186: YY_RULE_SETUP #line 692 "seclang-scanner.ll" { return p::make_CONFIG_DIR_GEO_DB(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 188: +case 187: YY_RULE_SETUP #line 693 "seclang-scanner.ll" { return p::make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 189: +case 188: YY_RULE_SETUP #line 694 "seclang-scanner.ll" { return p::make_CONFIG_DIR_PCRE_MATCH_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 190: +case 189: YY_RULE_SETUP #line 695 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 191: +case 190: YY_RULE_SETUP #line 696 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); } YY_BREAK -case 192: +case 191: YY_RULE_SETUP #line 697 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 193: +case 192: YY_RULE_SETUP #line 698 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 194: +case 193: YY_RULE_SETUP #line 699 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY(yytext, *driver.loc.back()); } YY_BREAK -case 195: +case 194: YY_RULE_SETUP #line 700 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); } YY_BREAK -case 196: +case 195: YY_RULE_SETUP #line 701 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RES_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 197: +case 196: YY_RULE_SETUP #line 702 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RES_BODY(yytext, *driver.loc.back()); } YY_BREAK -case 198: +case 197: YY_RULE_SETUP #line 703 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RULE_ENG(yytext, *driver.loc.back()); } YY_BREAK -case 199: +case 198: YY_RULE_SETUP #line 704 "seclang-scanner.ll" { return p::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 200: +case 199: YY_RULE_SETUP #line 705 "seclang-scanner.ll" { return p::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 201: +case 200: YY_RULE_SETUP #line 706 "seclang-scanner.ll" { return p::make_CONFIG_DIR_UNICODE_MAP_FILE(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 202: +case 201: YY_RULE_SETUP #line 707 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 203: +case 202: YY_RULE_SETUP #line 708 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 204: +case 203: YY_RULE_SETUP #line 709 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 205: +case 204: YY_RULE_SETUP #line 710 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 206: +case 205: YY_RULE_SETUP #line 711 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 207: +case 206: YY_RULE_SETUP #line 713 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 208: +case 207: YY_RULE_SETUP #line 714 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 209: +case 208: YY_RULE_SETUP #line 715 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 210: +case 209: YY_RULE_SETUP #line 716 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 211: +case 210: YY_RULE_SETUP #line 717 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 212: +case 211: YY_RULE_SETUP #line 718 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 213: +case 212: YY_RULE_SETUP #line 719 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 214: +case 213: YY_RULE_SETUP #line 720 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 215: +case 214: YY_RULE_SETUP #line 721 "seclang-scanner.ll" { return p::make_CONFIG_UPDLOAD_KEEP_FILES(yytext, *driver.loc.back()); } YY_BREAK -case 216: +case 215: YY_RULE_SETUP #line 722 "seclang-scanner.ll" { return p::make_CONFIG_UPDLOAD_SAVE_TMP_FILES(yytext, *driver.loc.back()); } YY_BREAK -case 217: +case 216: YY_RULE_SETUP #line 723 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 218: +case 217: YY_RULE_SETUP #line 724 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 219: +case 218: YY_RULE_SETUP #line 725 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_FILE_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 220: +case 219: YY_RULE_SETUP #line 726 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_FILE_MODE(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 221: +case 220: YY_RULE_SETUP #line 727 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_ABORT(yytext, *driver.loc.back()); } YY_BREAK -case 222: +case 221: YY_RULE_SETUP #line 728 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_DETC(yytext, *driver.loc.back()); } YY_BREAK -case 223: +case 222: YY_RULE_SETUP #line 729 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_HTTPS(yytext, *driver.loc.back()); } YY_BREAK -case 224: +case 223: YY_RULE_SETUP #line 730 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_OFF(yytext, *driver.loc.back()); } YY_BREAK -case 225: +case 224: YY_RULE_SETUP #line 731 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_ON(yytext, *driver.loc.back()); } YY_BREAK -case 226: +case 225: YY_RULE_SETUP #line 732 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_PARALLEL(yytext, *driver.loc.back()); } YY_BREAK -case 227: +case 226: YY_RULE_SETUP #line 733 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_PROCESS_PARTIAL(yytext, *driver.loc.back()); } YY_BREAK -case 228: +case 227: YY_RULE_SETUP #line 734 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_REJECT(yytext, *driver.loc.back()); } YY_BREAK -case 229: +case 228: YY_RULE_SETUP #line 735 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_RELEVANT_ONLY(yytext, *driver.loc.back()); } YY_BREAK -case 230: +case 229: YY_RULE_SETUP #line 736 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_SERIAL(yytext, *driver.loc.back()); } YY_BREAK -case 231: +case 230: YY_RULE_SETUP #line 737 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_WARN(yytext, *driver.loc.back()); } YY_BREAK -case 232: +case 231: YY_RULE_SETUP #line 738 "seclang-scanner.ll" { return p::make_CONFIG_XML_EXTERNAL_ENTITY(yytext, *driver.loc.back()); } YY_BREAK -case 233: +case 232: YY_RULE_SETUP #line 739 "seclang-scanner.ll" { return p::make_CONGIG_DIR_RESPONSE_BODY_MP(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 234: +case 233: YY_RULE_SETUP #line 740 "seclang-scanner.ll" { return p::make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR(*driver.loc.back()); } YY_BREAK -case 235: +case 234: YY_RULE_SETUP #line 741 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_ARG_SEP(yytext, *driver.loc.back()); } YY_BREAK -case 236: +case 235: YY_RULE_SETUP #line 742 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_COOKIE_FORMAT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 237: +case 236: YY_RULE_SETUP #line 743 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_DATA_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 238: +case 237: YY_RULE_SETUP #line 744 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_DATA_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 239: +case 238: YY_RULE_SETUP #line 745 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_STATUS_ENGINE(yytext, *driver.loc.back()); } YY_BREAK -case 240: +case 239: YY_RULE_SETUP #line 746 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_TMP_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 241: +case 240: YY_RULE_SETUP #line 747 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_TMP_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 242: +case 241: YY_RULE_SETUP #line 748 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_DIRECTIVE_SECRULESCRIPT(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 243: +case 242: YY_RULE_SETUP #line 749 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_DIRECTIVE_SECRULESCRIPT(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK -case 244: +case 243: YY_RULE_SETUP #line 750 "seclang-scanner.ll" { return p::make_CONFIG_SEC_CACHE_TRANSFORMATIONS(yytext, *driver.loc.back()); } YY_BREAK -case 245: +case 244: YY_RULE_SETUP #line 753 "seclang-scanner.ll" { BEGIN(TRANSACTION_TO_VARIABLE); return p::make_DIRECTIVE(yytext, *driver.loc.back()); } YY_BREAK -case 246: +case 245: YY_RULE_SETUP #line 754 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_CONFIG_DIR_SEC_DEFAULT_ACTION(yytext, *driver.loc.back()); } YY_BREAK -case 247: +case 246: YY_RULE_SETUP #line 755 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_CONFIG_DIR_SEC_ACTION(yytext, *driver.loc.back()); } YY_BREAK -case 248: +case 247: YY_RULE_SETUP #line 757 "seclang-scanner.ll" { return p::make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION(yytext, *driver.loc.back()); } YY_BREAK -case 249: +case 248: YY_RULE_SETUP #line 758 "seclang-scanner.ll" { return p::make_CONFIG_SEC_COLLECTION_TIMEOUT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 250: +case 249: YY_RULE_SETUP #line 759 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HTTP_BLKEY(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK -case 251: -/* rule 251 can match eol */ +case 250: +/* rule 250 can match eol */ YY_RULE_SETUP #line 760 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK -case 252: -/* rule 252 can match eol */ +case 251: +/* rule 251 can match eol */ YY_RULE_SETUP #line 761 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); BEGIN(COMMENT); } YY_BREAK -case 253: -/* rule 253 can match eol */ +case 252: +/* rule 252 can match eol */ YY_RULE_SETUP #line 762 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); BEGIN(COMMENT); } YY_BREAK -case 254: +case 253: YY_RULE_SETUP #line 763 "seclang-scanner.ll" { driver.loc.back()->step(); /* comment, just ignore. */ } YY_BREAK -case 255: +case 254: YY_RULE_SETUP #line 764 "seclang-scanner.ll" { driver.loc.back()->step(); /* carriage return, just ignore. */} YY_BREAK -case 256: +case 255: YY_RULE_SETUP #line 765 "seclang-scanner.ll" { return p::make_QUOTATION_MARK(yytext, *driver.loc.back()); } YY_BREAK -case 257: +case 256: YY_RULE_SETUP #line 766 "seclang-scanner.ll" { return p::make_COMMA(*driver.loc.back()); } YY_BREAK -case 258: +case 257: YY_RULE_SETUP #line 769 "seclang-scanner.ll" { BEGIN(EXPECTING_VARIABLE); } YY_BREAK -case 259: +case 258: YY_RULE_SETUP #line 773 "seclang-scanner.ll" { return p::make_PIPE(*driver.loc.back()); } YY_BREAK -case 260: +case 259: YY_RULE_SETUP #line 774 "seclang-scanner.ll" { return p::make_PIPE(*driver.loc.back()); } YY_BREAK -case 261: +case 260: YY_RULE_SETUP #line 775 "seclang-scanner.ll" { return p::make_QUOTATION_MARK(yytext, *driver.loc.back()); } YY_BREAK -case 262: +case 261: YY_RULE_SETUP #line 776 "seclang-scanner.ll" { return p::make_VAR_EXCLUSION(*driver.loc.back()); } YY_BREAK -case 263: +case 262: YY_RULE_SETUP #line 777 "seclang-scanner.ll" { return p::make_VAR_COUNT(*driver.loc.back()); } YY_BREAK -case 264: +case 263: YY_RULE_SETUP #line 781 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_SPACE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK -case 265: +case 264: YY_RULE_SETUP #line 782 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_QUOTE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK -case 266: -/* rule 266 can match eol */ +case 265: +/* rule 265 can match eol */ YY_RULE_SETUP #line 783 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_SPACE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK -case 267: -/* rule 267 can match eol */ +case 266: +/* rule 266 can match eol */ YY_RULE_SETUP #line 784 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_QUOTE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK -case 268: -/* rule 268 can match eol */ +case 267: +/* rule 267 can match eol */ YY_RULE_SETUP #line 785 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_SPACE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK -case 269: -/* rule 269 can match eol */ +case 268: +/* rule 268 can match eol */ YY_RULE_SETUP #line 786 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_QUOTE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK -case 270: +case 269: YY_RULE_SETUP #line 790 "seclang-scanner.ll" { } YY_BREAK -case 271: +case 270: YY_RULE_SETUP #line 791 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 272: -/* rule 272 can match eol */ +case 271: +/* rule 271 can match eol */ YY_RULE_SETUP #line 792 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 273: -/* rule 273 can match eol */ +case 272: +/* rule 272 can match eol */ YY_RULE_SETUP #line 793 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 274: +case 273: YY_RULE_SETUP #line 798 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); } YY_BREAK -case 275: +case 274: YY_RULE_SETUP #line 799 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_COMBINED_SIZE(*driver.loc.back()); } YY_BREAK -case 276: +case 275: YY_RULE_SETUP #line 800 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_GET_NAMES(*driver.loc.back()); } YY_BREAK -case 277: +case 276: YY_RULE_SETUP #line 801 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_GET_NAMES(*driver.loc.back()); } YY_BREAK -case 278: +case 277: YY_RULE_SETUP #line 802 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_NAMES(*driver.loc.back()); } YY_BREAK -case 279: +case 278: YY_RULE_SETUP #line 803 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_NAMES(*driver.loc.back()); } YY_BREAK -case 280: +case 279: YY_RULE_SETUP #line 804 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_POST_NAMES(*driver.loc.back()); } YY_BREAK -case 281: +case 280: YY_RULE_SETUP #line 805 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_POST_NAMES(*driver.loc.back()); } YY_BREAK -case 282: +case 281: YY_RULE_SETUP #line 806 "seclang-scanner.ll" { return p::make_VARIABLE_AUTH_TYPE(*driver.loc.back()); } YY_BREAK -case 283: +case 282: YY_RULE_SETUP #line 807 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_COMBINED_SIZE(*driver.loc.back()); } YY_BREAK -case 284: +case 283: YY_RULE_SETUP #line 808 "seclang-scanner.ll" { return p::make_VARIABLE_FULL_REQUEST_LENGTH(*driver.loc.back()); } YY_BREAK -case 285: +case 284: YY_RULE_SETUP #line 809 "seclang-scanner.ll" { return p::make_VARIABLE_FULL_REQUEST(*driver.loc.back()); } YY_BREAK -case 286: +case 285: YY_RULE_SETUP #line 810 "seclang-scanner.ll" { return p::make_VARIABLE_INBOUND_DATA_ERROR(*driver.loc.back()); } YY_BREAK -case 287: +case 286: YY_RULE_SETUP #line 811 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VAR_NAME(*driver.loc.back()); } YY_BREAK -case 288: +case 287: YY_RULE_SETUP #line 812 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VAR(*driver.loc.back()); } YY_BREAK -case 289: +case 288: YY_RULE_SETUP #line 813 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_BOUNDARY_QUOTED(*driver.loc.back()); } YY_BREAK -case 290: +case 289: YY_RULE_SETUP #line 814 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE(*driver.loc.back()); } YY_BREAK -case 291: +case 290: YY_RULE_SETUP #line 815 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_CRLF_LF_LINES(*driver.loc.back()); } YY_BREAK -case 292: +case 291: YY_RULE_SETUP #line 816 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_DATA_AFTER(*driver.loc.back()); } YY_BREAK -case 293: +case 292: YY_RULE_SETUP #line 817 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_DATA_BEFORE(*driver.loc.back()); } YY_BREAK -case 294: +case 293: YY_RULE_SETUP #line 818 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED(*driver.loc.back()); } YY_BREAK -case 295: +case 294: YY_RULE_SETUP #line 819 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MULTIPART_FILENAME(*driver.loc.back()); } YY_BREAK -case 296: +case 295: YY_RULE_SETUP #line 820 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_FILENAME(*driver.loc.back()); } YY_BREAK -case 297: +case 296: YY_RULE_SETUP #line 821 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_HEADER_FOLDING(*driver.loc.back()); } YY_BREAK -case 298: +case 297: YY_RULE_SETUP #line 822 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_HEADER_FOLDING(*driver.loc.back()); } YY_BREAK -case 299: +case 298: YY_RULE_SETUP #line 823 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING(*driver.loc.back()); } YY_BREAK -case 300: +case 299: YY_RULE_SETUP #line 824 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_INVALID_PART(*driver.loc.back()); } YY_BREAK -case 301: +case 300: YY_RULE_SETUP #line 825 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_INVALID_QUOTING(*driver.loc.back()); } YY_BREAK -case 302: +case 301: YY_RULE_SETUP #line 826 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_LF_LINE(*driver.loc.back()); } YY_BREAK -case 303: +case 302: YY_RULE_SETUP #line 827 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_MISSING_SEMICOLON(*driver.loc.back()); } YY_BREAK -case 304: +case 303: YY_RULE_SETUP #line 828 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MULTIPART_NAME(*driver.loc.back()); } YY_BREAK -case 305: +case 304: YY_RULE_SETUP #line 829 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_NAME(*driver.loc.back()); } YY_BREAK -case 306: +case 305: YY_RULE_SETUP #line 830 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_STRICT_ERROR(*driver.loc.back()); } YY_BREAK -case 307: +case 306: YY_RULE_SETUP #line 831 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY(*driver.loc.back()); } YY_BREAK -case 308: +case 307: YY_RULE_SETUP #line 832 "seclang-scanner.ll" { return p::make_VARIABLE_OUTBOUND_DATA_ERROR(*driver.loc.back()); } YY_BREAK -case 309: +case 308: YY_RULE_SETUP #line 833 "seclang-scanner.ll" { return p::make_VARIABLE_PATH_INFO(*driver.loc.back()); } YY_BREAK -case 310: +case 309: YY_RULE_SETUP #line 834 "seclang-scanner.ll" { return p::make_VARIABLE_QUERY_STRING(*driver.loc.back()); } YY_BREAK -case 311: +case 310: YY_RULE_SETUP #line 835 "seclang-scanner.ll" { return p::make_VARIABLE_REMOTE_ADDR(*driver.loc.back()); } YY_BREAK -case 312: +case 311: YY_RULE_SETUP #line 836 "seclang-scanner.ll" { return p::make_VARIABLE_REMOTE_HOST(*driver.loc.back()); } YY_BREAK -case 313: +case 312: YY_RULE_SETUP #line 837 "seclang-scanner.ll" { return p::make_VARIABLE_REMOTE_PORT(*driver.loc.back()); } YY_BREAK -case 314: +case 313: YY_RULE_SETUP #line 838 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_ERROR_MSG(*driver.loc.back()); } YY_BREAK -case 315: +case 314: YY_RULE_SETUP #line 839 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_ERROR(*driver.loc.back()); } YY_BREAK -case 316: +case 315: YY_RULE_SETUP #line 840 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG(*driver.loc.back()); } YY_BREAK -case 317: +case 316: YY_RULE_SETUP #line 841 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_PROCESSOR_ERROR(*driver.loc.back()); } YY_BREAK -case 318: +case 317: YY_RULE_SETUP #line 842 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_PROCESSOR(*driver.loc.back()); } YY_BREAK -case 319: +case 318: YY_RULE_SETUP #line 843 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_BASENAME(*driver.loc.back()); } YY_BREAK -case 320: +case 319: YY_RULE_SETUP #line 844 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_BODY_LENGTH(*driver.loc.back()); } YY_BREAK -case 321: +case 320: YY_RULE_SETUP #line 845 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_BODY(*driver.loc.back()); } YY_BREAK -case 322: +case 321: YY_RULE_SETUP #line 846 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_FILE_NAME(*driver.loc.back()); } YY_BREAK -case 323: +case 322: YY_RULE_SETUP #line 847 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK -case 324: +case 323: YY_RULE_SETUP #line 848 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK -case 325: +case 324: YY_RULE_SETUP #line 849 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_LINE(*driver.loc.back()); } YY_BREAK -case 326: +case 325: YY_RULE_SETUP #line 850 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_METHOD(*driver.loc.back()); } YY_BREAK -case 327: +case 326: YY_RULE_SETUP #line 851 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_PROTOCOL(*driver.loc.back()); } YY_BREAK -case 328: +case 327: YY_RULE_SETUP #line 852 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_URI_RAW(*driver.loc.back()); } YY_BREAK -case 329: +case 328: YY_RULE_SETUP #line 853 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_URI(*driver.loc.back()); } YY_BREAK -case 330: +case 329: YY_RULE_SETUP #line 854 "seclang-scanner.ll" { return p::make_VARIABLE_RESOURCE(*driver.loc.back()); } YY_BREAK -case 331: +case 330: YY_RULE_SETUP #line 855 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_BODY(*driver.loc.back()); } YY_BREAK -case 332: +case 331: YY_RULE_SETUP #line 856 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_CONTENT_LENGTH(*driver.loc.back()); } YY_BREAK -case 333: +case 332: YY_RULE_SETUP #line 857 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_CONTENT_TYPE(*driver.loc.back()); } YY_BREAK -case 334: +case 333: YY_RULE_SETUP #line 858 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK -case 335: +case 334: YY_RULE_SETUP #line 859 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RESPONSE_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK -case 336: +case 335: YY_RULE_SETUP #line 860 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_PROTOCOL(*driver.loc.back()); } YY_BREAK -case 337: +case 336: YY_RULE_SETUP #line 861 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_STATUS(*driver.loc.back()); } YY_BREAK -case 338: +case 337: YY_RULE_SETUP #line 862 "seclang-scanner.ll" { return p::make_VARIABLE_SERVER_ADDR(*driver.loc.back()); } YY_BREAK -case 339: +case 338: YY_RULE_SETUP #line 863 "seclang-scanner.ll" { return p::make_VARIABLE_SERVER_NAME(*driver.loc.back()); } YY_BREAK -case 340: +case 339: YY_RULE_SETUP #line 864 "seclang-scanner.ll" { return p::make_VARIABLE_SERVER_PORT(*driver.loc.back()); } YY_BREAK -case 341: +case 340: YY_RULE_SETUP #line 865 "seclang-scanner.ll" { return p::make_VARIABLE_SESSION_ID(*driver.loc.back()); } YY_BREAK -case 342: +case 341: YY_RULE_SETUP #line 866 "seclang-scanner.ll" { return p::make_VARIABLE_UNIQUE_ID(*driver.loc.back()); } YY_BREAK -case 343: +case 342: YY_RULE_SETUP #line 867 "seclang-scanner.ll" { return p::make_VARIABLE_URL_ENCODED_ERROR(*driver.loc.back()); } YY_BREAK -case 344: +case 343: YY_RULE_SETUP #line 868 "seclang-scanner.ll" { return p::make_VARIABLE_USER_ID(*driver.loc.back()); } YY_BREAK -case 345: +case 344: YY_RULE_SETUP #line 869 "seclang-scanner.ll" { return p::make_VARIABLE_WEB_APP_ID(*driver.loc.back()); } YY_BREAK -case 346: +case 345: YY_RULE_SETUP #line 870 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS(*driver.loc.back()); } YY_BREAK -case 347: +case 346: YY_RULE_SETUP #line 871 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS(*driver.loc.back()); } YY_BREAK -case 348: +case 347: YY_RULE_SETUP #line 872 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_GET(*driver.loc.back()); } YY_BREAK -case 349: +case 348: YY_RULE_SETUP #line 873 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_GET(*driver.loc.back()); } YY_BREAK -case 350: +case 349: YY_RULE_SETUP #line 874 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_POST(*driver.loc.back()); } YY_BREAK -case 351: +case 350: YY_RULE_SETUP #line 875 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_POST(*driver.loc.back()); } YY_BREAK -case 352: +case 351: YY_RULE_SETUP #line 876 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_SIZES(*driver.loc.back()); } YY_BREAK -case 353: +case 352: YY_RULE_SETUP #line 877 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_SIZES(*driver.loc.back()); } YY_BREAK -case 354: +case 353: YY_RULE_SETUP #line 878 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_NAMES(*driver.loc.back()); } YY_BREAK -case 355: +case 354: YY_RULE_SETUP #line 879 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_NAMES(*driver.loc.back()); } YY_BREAK -case 356: +case 355: YY_RULE_SETUP #line 880 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_TMP_CONTENT(*driver.loc.back()); } YY_BREAK -case 357: +case 356: YY_RULE_SETUP #line 881 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_TMP_CONTENT(*driver.loc.back()); } YY_BREAK -case 358: +case 357: YY_RULE_SETUP #line 882 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VARS_NAMES(*driver.loc.back()); } YY_BREAK -case 359: +case 358: YY_RULE_SETUP #line 883 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MATCHED_VARS_NAMES(*driver.loc.back()); } YY_BREAK -case 360: +case 359: YY_RULE_SETUP #line 884 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VARS(*driver.loc.back()); } YY_BREAK -case 361: +case 360: YY_RULE_SETUP #line 885 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MATCHED_VARS(*driver.loc.back()); } YY_BREAK -case 362: +case 361: YY_RULE_SETUP #line 886 "seclang-scanner.ll" { return p::make_VARIABLE_FILES(*driver.loc.back()); } YY_BREAK -case 363: +case 362: YY_RULE_SETUP #line 887 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES(*driver.loc.back()); } YY_BREAK -case 364: +case 363: YY_RULE_SETUP #line 888 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_COOKIES(*driver.loc.back()); } YY_BREAK -case 365: +case 364: YY_RULE_SETUP #line 889 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_COOKIES(*driver.loc.back()); } YY_BREAK -case 366: +case 365: YY_RULE_SETUP #line 890 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_HEADERS(*driver.loc.back()); } YY_BREAK -case 367: +case 366: YY_RULE_SETUP #line 891 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_HEADERS(*driver.loc.back()); } YY_BREAK -case 368: +case 367: YY_RULE_SETUP #line 892 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_HEADERS(*driver.loc.back()); } YY_BREAK -case 369: +case 368: YY_RULE_SETUP #line 893 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RESPONSE_HEADERS(*driver.loc.back()); } YY_BREAK -case 370: +case 369: YY_RULE_SETUP #line 894 "seclang-scanner.ll" { return p::make_VARIABLE_GEO(*driver.loc.back()); } YY_BREAK -case 371: +case 370: YY_RULE_SETUP #line 895 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_GEO(*driver.loc.back()); } YY_BREAK -case 372: +case 371: YY_RULE_SETUP #line 896 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_COOKIES_NAMES(*driver.loc.back()); } YY_BREAK -case 373: +case 372: YY_RULE_SETUP #line 897 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_COOKIES_NAMES(*driver.loc.back()); } YY_BREAK -case 374: +case 373: YY_RULE_SETUP #line 898 "seclang-scanner.ll" { return p::make_VARIABLE_RULE(*driver.loc.back()); } YY_BREAK -case 375: +case 374: YY_RULE_SETUP #line 899 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RULE(*driver.loc.back()); } YY_BREAK -case 376: +case 375: YY_RULE_SETUP #line 900 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_TMP_NAMES(*driver.loc.back()); } YY_BREAK -case 377: +case 376: YY_RULE_SETUP #line 901 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_TMP_NAMES(*driver.loc.back()); } YY_BREAK -case 378: +case 377: YY_RULE_SETUP #line 902 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_XML(*driver.loc.back()); } YY_BREAK -case 379: +case 378: YY_RULE_SETUP #line 903 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_RUN_TIME_VAR_XML(*driver.loc.back()); } YY_BREAK -case 380: +case 379: YY_RULE_SETUP #line 904 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_ENV(*driver.loc.back()); } YY_BREAK -case 381: +case 380: YY_RULE_SETUP #line 905 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_RUN_TIME_VAR_ENV(*driver.loc.back()); } YY_BREAK -case 382: +case 381: YY_RULE_SETUP #line 908 "seclang-scanner.ll" { return p::make_VARIABLE_IP(*driver.loc.back()); } YY_BREAK -case 383: +case 382: YY_RULE_SETUP #line 909 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_IP(*driver.loc.back()); } YY_BREAK -case 384: +case 383: YY_RULE_SETUP #line 910 "seclang-scanner.ll" { return p::make_VARIABLE_RESOURCE(*driver.loc.back()); } YY_BREAK -case 385: +case 384: YY_RULE_SETUP #line 911 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RESOURCE(*driver.loc.back()); } YY_BREAK -case 386: +case 385: YY_RULE_SETUP #line 912 "seclang-scanner.ll" { return p::make_VARIABLE_GLOBAL(*driver.loc.back()); } YY_BREAK -case 387: +case 386: YY_RULE_SETUP #line 913 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_GLOBAL(*driver.loc.back()); } YY_BREAK -case 388: +case 387: YY_RULE_SETUP #line 914 "seclang-scanner.ll" { return p::make_VARIABLE_SESSION(*driver.loc.back()); } YY_BREAK -case 389: +case 388: YY_RULE_SETUP #line 915 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_SESSION(*driver.loc.back()); } YY_BREAK -case 390: +case 389: YY_RULE_SETUP #line 916 "seclang-scanner.ll" { return p::make_VARIABLE_USER(*driver.loc.back()); } YY_BREAK -case 391: +case 390: YY_RULE_SETUP #line 917 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_USER(*driver.loc.back()); } YY_BREAK -case 392: +case 391: YY_RULE_SETUP #line 918 "seclang-scanner.ll" { return p::make_VARIABLE_TX(*driver.loc.back()); } YY_BREAK -case 393: +case 392: YY_RULE_SETUP #line 919 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_TX(*driver.loc.back()); } YY_BREAK -case 394: +case 393: YY_RULE_SETUP #line 921 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_BLD(yytext, *driver.loc.back()); } YY_BREAK -case 395: +case 394: YY_RULE_SETUP #line 922 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_DUR(yytext, *driver.loc.back()); } YY_BREAK -case 396: +case 395: YY_RULE_SETUP #line 923 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_HSV(yytext, *driver.loc.back()); } YY_BREAK -case 397: +case 396: YY_RULE_SETUP #line 924 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_REMOTE_USER(yytext, *driver.loc.back()); } YY_BREAK -case 398: +case 397: YY_RULE_SETUP #line 925 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_DAY(yytext, *driver.loc.back()); } YY_BREAK -case 399: +case 398: YY_RULE_SETUP #line 926 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_EPOCH(yytext, *driver.loc.back()); } YY_BREAK -case 400: +case 399: YY_RULE_SETUP #line 927 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_HOUR(yytext, *driver.loc.back()); } YY_BREAK -case 401: +case 400: YY_RULE_SETUP #line 928 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_MIN(yytext, *driver.loc.back()); } YY_BREAK -case 402: +case 401: YY_RULE_SETUP #line 929 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_MON(yytext, *driver.loc.back()); } YY_BREAK -case 403: +case 402: YY_RULE_SETUP #line 930 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_SEC(yytext, *driver.loc.back()); } YY_BREAK -case 404: +case 403: YY_RULE_SETUP #line 931 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_YEAR(yytext, *driver.loc.back()); } YY_BREAK -case 405: +case 404: YY_RULE_SETUP #line 932 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME(yytext, *driver.loc.back()); } YY_BREAK -case 406: +case 405: YY_RULE_SETUP #line 933 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_WDAY(yytext, *driver.loc.back()); } YY_BREAK -case 407: +case 406: YY_RULE_SETUP #line 936 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Variable VARIABLE_WEBSERVER_ERROR_LOG is not supported by libModSecurity", ""); throw p::syntax_error(*driver.loc.back(), "");} YY_BREAK -case 408: -/* rule 408 can match eol */ +case 407: +/* rule 407 can match eol */ YY_RULE_SETUP #line 937 "seclang-scanner.ll" { return p::make_VARIABLE_STATUS(*driver.loc.back()); } YY_BREAK +case 408: +/* rule 408 can match eol */ +YY_RULE_SETUP +#line 942 "seclang-scanner.ll" +{ BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } + YY_BREAK case 409: /* rule 409 can match eol */ YY_RULE_SETUP -#line 942 "seclang-scanner.ll" +#line 943 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 410: /* rule 410 can match eol */ YY_RULE_SETUP -#line 943 "seclang-scanner.ll" -{ BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } +#line 944 "seclang-scanner.ll" +{ BEGIN_PREVIOUS(); yyless(yyleng - 0); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 411: /* rule 411 can match eol */ YY_RULE_SETUP -#line 944 "seclang-scanner.ll" -{ BEGIN_PREVIOUS(); yyless(yyleng - 0); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } +#line 945 "seclang-scanner.ll" +{ BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 412: /* rule 412 can match eol */ YY_RULE_SETUP -#line 945 "seclang-scanner.ll" -{ BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } +#line 946 "seclang-scanner.ll" +{ BEGIN_PREVIOUS(); return p::make_DICT_ELEMENT(yytext, *driver.loc.back()); } YY_BREAK case 413: /* rule 413 can match eol */ YY_RULE_SETUP -#line 946 "seclang-scanner.ll" -{ BEGIN_PREVIOUS(); return p::make_DICT_ELEMENT(yytext, *driver.loc.back()); } +#line 948 "seclang-scanner.ll" +{ BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 414: /* rule 414 can match eol */ YY_RULE_SETUP -#line 948 "seclang-scanner.ll" -{ BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } - YY_BREAK -case 415: -/* rule 415 can match eol */ -YY_RULE_SETUP #line 949 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK -case 416: +case 415: YY_RULE_SETUP #line 951 "seclang-scanner.ll" { BEGINX(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK -case 417: +case 416: YY_RULE_SETUP #line 952 "seclang-scanner.ll" { return p::make_QUOTATION_MARK(yytext, *driver.loc.back()); } YY_BREAK -case 418: +case 417: YY_RULE_SETUP #line 956 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(yytext, *driver.loc.back()); } +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(*driver.loc.back()); } + YY_BREAK +case 418: +YY_RULE_SETUP +#line 957 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(*driver.loc.back()); } YY_BREAK case 419: YY_RULE_SETUP -#line 957 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(yytext, *driver.loc.back()); } +#line 958 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(*driver.loc.back()); } YY_BREAK case 420: YY_RULE_SETUP -#line 958 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(yytext, *driver.loc.back()); } +#line 959 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(*driver.loc.back()); } YY_BREAK case 421: YY_RULE_SETUP -#line 959 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(yytext, *driver.loc.back()); } +#line 960 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(*driver.loc.back()); } YY_BREAK case 422: YY_RULE_SETUP -#line 960 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(yytext, *driver.loc.back()); } +#line 961 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(*driver.loc.back()); } YY_BREAK + + case 423: YY_RULE_SETUP -#line 961 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(yytext, *driver.loc.back()); } +#line 964 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(*driver.loc.back()); } YY_BREAK - - case 424: YY_RULE_SETUP -#line 964 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(yytext, *driver.loc.back()); } +#line 965 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(*driver.loc.back()); } YY_BREAK case 425: YY_RULE_SETUP -#line 965 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(yytext, *driver.loc.back()); } +#line 966 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(*driver.loc.back()); } YY_BREAK case 426: YY_RULE_SETUP -#line 966 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(yytext, *driver.loc.back()); } +#line 967 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(*driver.loc.back()); } YY_BREAK case 427: YY_RULE_SETUP -#line 967 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(yytext, *driver.loc.back()); } +#line 968 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(*driver.loc.back()); } YY_BREAK case 428: YY_RULE_SETUP -#line 968 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(yytext, *driver.loc.back()); } +#line 969 "seclang-scanner.ll" +{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(*driver.loc.back()); } YY_BREAK + + case 429: YY_RULE_SETUP -#line 969 "seclang-scanner.ll" -{ BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(yytext, *driver.loc.back()); } +#line 973 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_WITHIN(*driver.loc.back()); } YY_BREAK - - case 430: YY_RULE_SETUP -#line 973 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_WITHIN(yytext, *driver.loc.back()); } +#line 974 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS_WORD(*driver.loc.back()); } YY_BREAK case 431: YY_RULE_SETUP -#line 974 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS_WORD(yytext, *driver.loc.back()); } +#line 975 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS(*driver.loc.back()); } YY_BREAK case 432: YY_RULE_SETUP -#line 975 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS(yytext, *driver.loc.back()); } +#line 976 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_ENDS_WITH(*driver.loc.back()); } YY_BREAK case 433: YY_RULE_SETUP -#line 976 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_ENDS_WITH(yytext, *driver.loc.back()); } +#line 977 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_EQ(*driver.loc.back()); } YY_BREAK case 434: YY_RULE_SETUP -#line 977 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_EQ(yytext, *driver.loc.back()); } +#line 978 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_GE(*driver.loc.back()); } YY_BREAK case 435: YY_RULE_SETUP -#line 978 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_GE(yytext, *driver.loc.back()); } +#line 979 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_GT(*driver.loc.back()); } YY_BREAK case 436: YY_RULE_SETUP -#line 979 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_GT(yytext, *driver.loc.back()); } +#line 980 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH_FROM_FILE(*driver.loc.back()); } YY_BREAK case 437: YY_RULE_SETUP -#line 980 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH_FROM_FILE(yytext, *driver.loc.back()); } +#line 981 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH(*driver.loc.back()); } YY_BREAK case 438: YY_RULE_SETUP -#line 981 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH(yytext, *driver.loc.back()); } +#line 982 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_LE(*driver.loc.back()); } YY_BREAK case 439: YY_RULE_SETUP -#line 982 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_LE(yytext, *driver.loc.back()); } +#line 983 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_LT(*driver.loc.back()); } YY_BREAK case 440: YY_RULE_SETUP -#line 983 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_LT(yytext, *driver.loc.back()); } +#line 984 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_PM_FROM_FILE(*driver.loc.back()); } YY_BREAK case 441: YY_RULE_SETUP -#line 984 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_PM_FROM_FILE(yytext, *driver.loc.back()); } +#line 985 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_PM(*driver.loc.back()); } YY_BREAK case 442: YY_RULE_SETUP -#line 985 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_PM(yytext, *driver.loc.back()); } +#line 986 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_RBL( *driver.loc.back()); } YY_BREAK case 443: YY_RULE_SETUP -#line 986 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_RBL(yytext, *driver.loc.back()); } +#line 987 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_RX(*driver.loc.back()); } YY_BREAK case 444: YY_RULE_SETUP -#line 987 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_RX(yytext, *driver.loc.back()); } +#line 988 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_STR_EQ(*driver.loc.back()); } YY_BREAK case 445: YY_RULE_SETUP -#line 988 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_STR_EQ(yytext, *driver.loc.back()); } +#line 989 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_STR_MATCH(*driver.loc.back()); } YY_BREAK case 446: YY_RULE_SETUP -#line 989 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_STR_MATCH(yytext, *driver.loc.back()); } +#line 990 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_BEGINS_WITH(*driver.loc.back()); } YY_BREAK case 447: YY_RULE_SETUP -#line 990 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_BEGINS_WITH(yytext, *driver.loc.back()); } +#line 991 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_INSPECT_FILE(*driver.loc.back()); } YY_BREAK case 448: YY_RULE_SETUP -#line 991 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_INSPECT_FILE(yytext, *driver.loc.back()); } +#line 992 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_FUZZY_HASH(*driver.loc.back()); } YY_BREAK case 449: YY_RULE_SETUP -#line 992 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_FUZZY_HASH(yytext, *driver.loc.back()); } +#line 993 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_BYTE_RANGE(*driver.loc.back()); } YY_BREAK case 450: YY_RULE_SETUP -#line 993 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_BYTE_RANGE(yytext, *driver.loc.back()); } +#line 994 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_DTD(*driver.loc.back()); } YY_BREAK case 451: YY_RULE_SETUP -#line 994 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_DTD(yytext, *driver.loc.back()); } +#line 995 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_HASH(*driver.loc.back()); } YY_BREAK case 452: YY_RULE_SETUP -#line 995 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_HASH(yytext, *driver.loc.back()); } +#line 996 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_SCHEMA(*driver.loc.back()); } YY_BREAK case 453: YY_RULE_SETUP -#line 996 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_SCHEMA(yytext, *driver.loc.back()); } +#line 997 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CC(*driver.loc.back()); } YY_BREAK case 454: YY_RULE_SETUP -#line 997 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CC(yytext, *driver.loc.back()); } +#line 998 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CPF(*driver.loc.back()); } YY_BREAK case 455: YY_RULE_SETUP -#line 998 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CPF(yytext, *driver.loc.back()); } +#line 999 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_SSN(*driver.loc.back()); } YY_BREAK case 456: YY_RULE_SETUP -#line 999 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_SSN(yytext, *driver.loc.back()); } +#line 1000 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_GSB_LOOKUP(*driver.loc.back()); } YY_BREAK case 457: YY_RULE_SETUP -#line 1000 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_GSB_LOOKUP(yytext, *driver.loc.back()); } +#line 1001 "seclang-scanner.ll" +{ BEGIN_PARAMETER(); return p::make_OPERATOR_RSUB(*driver.loc.back()); } YY_BREAK case 458: YY_RULE_SETUP -#line 1001 "seclang-scanner.ll" -{ BEGIN_PARAMETER(); return p::make_OPERATOR_RSUB(yytext, *driver.loc.back()); } - YY_BREAK -case 459: -YY_RULE_SETUP #line 1003 "seclang-scanner.ll" { return p::make_NOT(*driver.loc.back()); } YY_BREAK -case 460: +case 459: YY_RULE_SETUP #line 1004 "seclang-scanner.ll" { BEGIN_NO_OP_INFORMED(); yyless(0); } YY_BREAK -case 461: +case 460: YY_RULE_SETUP #line 1009 "seclang-scanner.ll" { BEGIN(EXPECTING_PARAMETER_ENDS_WITH_SPACE); } YY_BREAK -case 462: +case 461: YY_RULE_SETUP #line 1013 "seclang-scanner.ll" { BEGIN(EXPECTING_PARAMETER_ENDS_WITH_QUOTE); } YY_BREAK -case 463: +case 462: YY_RULE_SETUP #line 1017 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK -case 464: -/* rule 464 can match eol */ +case 463: +/* rule 463 can match eol */ YY_RULE_SETUP #line 1018 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 465: +case 464: YY_RULE_SETUP #line 1022 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK -case 466: -/* rule 466 can match eol */ +case 465: +/* rule 465 can match eol */ YY_RULE_SETUP #line 1023 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 467: +case 466: YY_RULE_SETUP #line 1026 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK -case 468: +case 467: YY_RULE_SETUP #line 1027 "seclang-scanner.ll" { BEGIN(LEXING_ERROR); yyless(0); } YY_BREAK -case 469: +case 468: YY_RULE_SETUP #line 1032 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK -case 470: -/* rule 470 can match eol */ +case 469: +/* rule 469 can match eol */ YY_RULE_SETUP #line 1033 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 471: +case 470: YY_RULE_SETUP #line 1037 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK -case 472: -/* rule 472 can match eol */ +case 471: +/* rule 471 can match eol */ YY_RULE_SETUP #line 1038 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK -case 473: +case 472: YY_RULE_SETUP #line 1042 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK -case 474: +case 473: YY_RULE_SETUP #line 1043 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); } YY_BREAK -case 475: +case 474: YY_RULE_SETUP #line 1048 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK -case 476: +case 475: YY_RULE_SETUP #line 1049 "seclang-scanner.ll" +{ BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } + YY_BREAK +case 476: +/* rule 476 can match eol */ +YY_RULE_SETUP +#line 1050 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 477: /* rule 477 can match eol */ YY_RULE_SETUP -#line 1050 "seclang-scanner.ll" +#line 1051 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 478: /* rule 478 can match eol */ YY_RULE_SETUP -#line 1051 "seclang-scanner.ll" +#line 1052 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 479: /* rule 479 can match eol */ YY_RULE_SETUP -#line 1052 "seclang-scanner.ll" +#line 1053 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 480: /* rule 480 can match eol */ YY_RULE_SETUP -#line 1053 "seclang-scanner.ll" -{ BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } +#line 1055 "seclang-scanner.ll" +{ BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK case 481: /* rule 481 can match eol */ YY_RULE_SETUP -#line 1055 "seclang-scanner.ll" -{ BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } - YY_BREAK -case 482: -/* rule 482 can match eol */ -YY_RULE_SETUP #line 1056 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK -case 483: +case 482: YY_RULE_SETUP #line 1058 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK -case 484: -/* rule 484 can match eol */ +case 483: +/* rule 483 can match eol */ YY_RULE_SETUP #line 1059 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK -case 485: -/* rule 485 can match eol */ +case 484: +/* rule 484 can match eol */ YY_RULE_SETUP #line 1060 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK -case 486: +case 485: YY_RULE_SETUP #line 1065 "seclang-scanner.ll" { } YY_BREAK -case 487: -/* rule 487 can match eol */ +case 486: +/* rule 486 can match eol */ YY_RULE_SETUP #line 1066 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK -case 488: -/* rule 488 can match eol */ +case 487: +/* rule 487 can match eol */ YY_RULE_SETUP #line 1067 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK +case 488: +/* rule 488 can match eol */ +YY_RULE_SETUP +#line 1071 "seclang-scanner.ll" +{ driver.loc.back()->lines(1); driver.loc.back()->step(); } + YY_BREAK case 489: /* rule 489 can match eol */ YY_RULE_SETUP -#line 1071 "seclang-scanner.ll" +#line 1072 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 490: /* rule 490 can match eol */ YY_RULE_SETUP -#line 1072 "seclang-scanner.ll" -{ driver.loc.back()->lines(1); driver.loc.back()->step(); } - YY_BREAK -case 491: -/* rule 491 can match eol */ -YY_RULE_SETUP #line 1073 "seclang-scanner.ll" { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK -case 492: +case 491: YY_RULE_SETUP #line 1078 "seclang-scanner.ll" { BEGIN(LEXING_ERROR); yyless(0); } YY_BREAK -case 493: +case 492: YY_RULE_SETUP #line 1080 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Invalid input: ", yytext); throw p::syntax_error(*driver.loc.back(), ""); } YY_BREAK -case 494: +case 493: YY_RULE_SETUP #line 1081 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Expecting an action, got: ", yytext); throw p::syntax_error(*driver.loc.back(), ""); } YY_BREAK -case 495: +case 494: YY_RULE_SETUP #line 1082 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Expecting a variable, got: : ", yytext); throw p::syntax_error(*driver.loc.back(), ""); } @@ -7755,7 +7750,7 @@ case YY_STATE_EOF(SETVAR_ACTION_QUOTED_WAITING_CONTENT): } } YY_BREAK -case 496: +case 495: YY_RULE_SETUP #line 1107 "seclang-scanner.ll" { @@ -7784,7 +7779,7 @@ YY_RULE_SETUP } } YY_BREAK -case 497: +case 496: YY_RULE_SETUP #line 1133 "seclang-scanner.ll" { @@ -7815,8 +7810,8 @@ YY_RULE_SETUP free(f); } YY_BREAK -case 498: -/* rule 498 can match eol */ +case 497: +/* rule 497 can match eol */ YY_RULE_SETUP #line 1161 "seclang-scanner.ll" { @@ -7854,12 +7849,12 @@ YY_RULE_SETUP yy_scan_string(c.content.c_str()); } YY_BREAK -case 499: +case 498: YY_RULE_SETUP #line 1197 "seclang-scanner.ll" ECHO; YY_BREAK -#line 7862 "seclang-scanner.cc" +#line 7857 "seclang-scanner.cc" case YY_END_OF_BUFFER: { diff --git a/src/parser/seclang-scanner.ll b/src/parser/seclang-scanner.ll index 9d21e557..878cb24a 100755 --- a/src/parser/seclang-scanner.ll +++ b/src/parser/seclang-scanner.ll @@ -228,29 +228,19 @@ VAR_EXCLUSION ! VAR_COUNT & -OPERATOR_UNCONDITIONAL_MATCH (?i:@unconditionalMatch) +OPERATOR_BEGINS_WITH (?i:@beginsWith) +OPERATOR_CONTAINS (?i:@contains) +OPERATOR_CONTAINS_WORD (?i:@containsWord) OPERATOR_DETECT_SQLI (?i:@detectSQLi) OPERATOR_DETECT_XSS (?i:@detectXSS) -OPERATOR_VALIDATE_URL_ENCODING (?i:@validateUrlEncoding) -OPERATOR_VALIDATE_UTF8_ENCODING (?i:@validateUtf8Encoding) -OPERATOR_INSPECT_FILE (?i:@inspectFile) -OPERATOR_FUZZY_HASH (?i:@fuzzyHash) -OPERATOR_VALIDATE_BYTE_RANGE (?i:@validateByteRange) -OPERATOR_VALIDATE_DTD (?i:@validateDTD) -OPERATOR_VALIDATE_HASH (?i:@validateHash) -OPERATOR_VALIDATE_SCHEMA (?i:@validateSchema) -OPERATOR_VERIFY_CC (?i:@verifyCC) -OPERATOR_VERIFY_CPF (?i:@verifyCPF) -OPERATOR_VERIFY_SSN (?i:@verifySSN) -OPERATOR_GSB_LOOKUP (?i:@gsbLookup) -OPERATOR_RSUB (?i:@rsub) -OPERATOR_WITHIN (?i:@within) -OPERATOR_CONTAINS_WORD (?i:@containsWord) -OPERATOR_CONTAINS (?i:@contains) OPERATOR_ENDS_WITH (?i:@endsWith) OPERATOR_EQ (?i:@eq) +OPERATOR_FUZZY_HASH (?i:@fuzzyHash) OPERATOR_GE (?i:@ge) +OPERATOR_GEOLOOKUP (?i:@geoLookup) +OPERATOR_GSB_LOOKUP (?i:@gsbLookup) OPERATOR_GT (?i:@gt) +OPERATOR_INSPECT_FILE (?i:@inspectFile) OPERATOR_IP_MATCH_FROM_FILE (?i:(@ipMatchF|@ipMatchFromFile)) OPERATOR_IP_MATCH (?i:@ipMatch) OPERATOR_LE (?i:@le) @@ -258,12 +248,21 @@ OPERATOR_LT (?i:@lt) OPERATOR_PM_FROM_FILE (?i:(@pmf|@pmFromFile)) OPERATOR_PM (?i:@pm) OPERATOR_RBL (?i:@rbl) +OPERATOR_RSUB (?i:@rsub) OPERATOR_RX (?i:@rx) OPERATOR_STR_EQ (?i:@streq) OPERATOR_STR_MATCH (?i:@strmatch) -OPERATOR_BEGINS_WITH (?i:@beginsWith) -OPERATOR_GEOLOOKUP (?i:@geoLookup) -OPERATOR_RX_CONTENT_ONLY ([^\"]|([^\\]\\\"))+ +OPERATOR_UNCONDITIONAL_MATCH (?i:@unconditionalMatch) +OPERATOR_VALIDATE_BYTE_RANGE (?i:@validateByteRange) +OPERATOR_VALIDATE_DTD (?i:@validateDTD) +OPERATOR_VALIDATE_HASH (?i:@validateHash) +OPERATOR_VALIDATE_SCHEMA (?i:@validateSchema) +OPERATOR_VALIDATE_URL_ENCODING (?i:@validateUrlEncoding) +OPERATOR_VALIDATE_UTF8_ENCODING (?i:@validateUtf8Encoding) +OPERATOR_VERIFY_CC (?i:@verifyCC) +OPERATOR_VERIFY_CPF (?i:@verifyCPF) +OPERATOR_VERIFY_SSN (?i:@verifySSN) +OPERATOR_WITHIN (?i:@within) AUDIT_PARTS [ABCDEFGHJKIZ]+ @@ -369,7 +368,6 @@ FREE_TEXT_SPACE_COMMA_QUOTE [^, \t\"\n\r]+ FREE_TEXT_COMMA_QUOTE [^,\"\\n\\r]+ NEW_LINE_FREE_TEXT [^, \t\"\n\r]+ NOT ! -OP_QUOTE \" FREE_TEXT ([^\"]|([^\\]\\\"))+ REMOVE_RULE_BY [0-9A-Za-z_\/\.\-\*\:\;\]\[\$]+ @@ -554,11 +552,12 @@ EQUALS_MINUS (?i:=\-) { -["][ \t]* { BEGIN(INITIAL); yyless(yyleng); } +["][ \t]* { BEGIN(INITIAL); yyless(yyleng); p::make_NEW_LINE(*driver.loc.back()); } ["][ \t]*\n { BEGIN(INITIAL); yyless(1); } ["][ \t]*\r\n { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } -["] { BEGIN(INITIAL); p::make_NEW_LINE(*driver.loc.back()); } } + + { . { BEGIN(LEXING_ERROR_ACTION); yyless(0); } } @@ -570,6 +569,7 @@ EQUALS_MINUS (?i:=\-) . { BEGIN(ACTION_PREDICATE_ENDS_WITH_COMMA_OR_DOUBLE_QUOTE); yyless(0); } } + { [ \t]*\\\n[ \t]* { driver.loc.back()->lines(1); driver.loc.back()->step(); } [ \t]*\\\r\n[ \t]* { driver.loc.back()->lines(1); driver.loc.back()->step(); } @@ -952,52 +952,52 @@ p::make_CONFIG_SEC_RULE_REMOVE_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), } { -{OPERATOR_GEOLOOKUP}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(yytext, *driver.loc.back()); } -{OPERATOR_UNCONDITIONAL_MATCH}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(yytext, *driver.loc.back()); } -{OPERATOR_DETECT_SQLI}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(yytext, *driver.loc.back()); } -{OPERATOR_DETECT_XSS}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_URL_ENCODING}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_UTF8_ENCODING}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(yytext, *driver.loc.back()); } +{OPERATOR_GEOLOOKUP}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(*driver.loc.back()); } +{OPERATOR_UNCONDITIONAL_MATCH}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(*driver.loc.back()); } +{OPERATOR_DETECT_SQLI}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(*driver.loc.back()); } +{OPERATOR_DETECT_XSS}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(*driver.loc.back()); } +{OPERATOR_VALIDATE_URL_ENCODING}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(*driver.loc.back()); } +{OPERATOR_VALIDATE_UTF8_ENCODING}[ ] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(*driver.loc.back()); } } { -{OPERATOR_GEOLOOKUP}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(yytext, *driver.loc.back()); } -{OPERATOR_UNCONDITIONAL_MATCH}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(yytext, *driver.loc.back()); } -{OPERATOR_DETECT_SQLI}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(yytext, *driver.loc.back()); } -{OPERATOR_DETECT_XSS}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_URL_ENCODING}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_UTF8_ENCODING}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(yytext, *driver.loc.back()); } +{OPERATOR_GEOLOOKUP}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(*driver.loc.back()); } +{OPERATOR_UNCONDITIONAL_MATCH}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(*driver.loc.back()); } +{OPERATOR_DETECT_SQLI}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(*driver.loc.back()); } +{OPERATOR_DETECT_XSS}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(*driver.loc.back()); } +{OPERATOR_VALIDATE_URL_ENCODING}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(*driver.loc.back()); } +{OPERATOR_VALIDATE_UTF8_ENCODING}[ ]*["] { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(*driver.loc.back()); } } { -{OPERATOR_WITHIN} { BEGIN_PARAMETER(); return p::make_OPERATOR_WITHIN(yytext, *driver.loc.back()); } -{OPERATOR_CONTAINS_WORD} { BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS_WORD(yytext, *driver.loc.back()); } -{OPERATOR_CONTAINS} { BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS(yytext, *driver.loc.back()); } -{OPERATOR_ENDS_WITH} { BEGIN_PARAMETER(); return p::make_OPERATOR_ENDS_WITH(yytext, *driver.loc.back()); } -{OPERATOR_EQ} { BEGIN_PARAMETER(); return p::make_OPERATOR_EQ(yytext, *driver.loc.back()); } -{OPERATOR_GE} { BEGIN_PARAMETER(); return p::make_OPERATOR_GE(yytext, *driver.loc.back()); } -{OPERATOR_GT} { BEGIN_PARAMETER(); return p::make_OPERATOR_GT(yytext, *driver.loc.back()); } -{OPERATOR_IP_MATCH_FROM_FILE} { BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH_FROM_FILE(yytext, *driver.loc.back()); } -{OPERATOR_IP_MATCH} { BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH(yytext, *driver.loc.back()); } -{OPERATOR_LE} { BEGIN_PARAMETER(); return p::make_OPERATOR_LE(yytext, *driver.loc.back()); } -{OPERATOR_LT} { BEGIN_PARAMETER(); return p::make_OPERATOR_LT(yytext, *driver.loc.back()); } -{OPERATOR_PM_FROM_FILE} { BEGIN_PARAMETER(); return p::make_OPERATOR_PM_FROM_FILE(yytext, *driver.loc.back()); } -{OPERATOR_PM} { BEGIN_PARAMETER(); return p::make_OPERATOR_PM(yytext, *driver.loc.back()); } -{OPERATOR_RBL} { BEGIN_PARAMETER(); return p::make_OPERATOR_RBL(yytext, *driver.loc.back()); } -{OPERATOR_RX} { BEGIN_PARAMETER(); return p::make_OPERATOR_RX(yytext, *driver.loc.back()); } -{OPERATOR_STR_EQ} { BEGIN_PARAMETER(); return p::make_OPERATOR_STR_EQ(yytext, *driver.loc.back()); } -{OPERATOR_STR_MATCH} { BEGIN_PARAMETER(); return p::make_OPERATOR_STR_MATCH(yytext, *driver.loc.back()); } -{OPERATOR_BEGINS_WITH} { BEGIN_PARAMETER(); return p::make_OPERATOR_BEGINS_WITH(yytext, *driver.loc.back()); } -{OPERATOR_INSPECT_FILE} { BEGIN_PARAMETER(); return p::make_OPERATOR_INSPECT_FILE(yytext, *driver.loc.back()); } -{OPERATOR_FUZZY_HASH} { BEGIN_PARAMETER(); return p::make_OPERATOR_FUZZY_HASH(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_BYTE_RANGE} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_BYTE_RANGE(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_DTD} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_DTD(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_HASH} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_HASH(yytext, *driver.loc.back()); } -{OPERATOR_VALIDATE_SCHEMA} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_SCHEMA(yytext, *driver.loc.back()); } -{OPERATOR_VERIFY_CC} { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CC(yytext, *driver.loc.back()); } -{OPERATOR_VERIFY_CPF} { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CPF(yytext, *driver.loc.back()); } -{OPERATOR_VERIFY_SSN} { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_SSN(yytext, *driver.loc.back()); } -{OPERATOR_GSB_LOOKUP} { BEGIN_PARAMETER(); return p::make_OPERATOR_GSB_LOOKUP(yytext, *driver.loc.back()); } -{OPERATOR_RSUB} { BEGIN_PARAMETER(); return p::make_OPERATOR_RSUB(yytext, *driver.loc.back()); } +{OPERATOR_WITHIN} { BEGIN_PARAMETER(); return p::make_OPERATOR_WITHIN(*driver.loc.back()); } +{OPERATOR_CONTAINS_WORD} { BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS_WORD(*driver.loc.back()); } +{OPERATOR_CONTAINS} { BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS(*driver.loc.back()); } +{OPERATOR_ENDS_WITH} { BEGIN_PARAMETER(); return p::make_OPERATOR_ENDS_WITH(*driver.loc.back()); } +{OPERATOR_EQ} { BEGIN_PARAMETER(); return p::make_OPERATOR_EQ(*driver.loc.back()); } +{OPERATOR_GE} { BEGIN_PARAMETER(); return p::make_OPERATOR_GE(*driver.loc.back()); } +{OPERATOR_GT} { BEGIN_PARAMETER(); return p::make_OPERATOR_GT(*driver.loc.back()); } +{OPERATOR_IP_MATCH_FROM_FILE} { BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH_FROM_FILE(*driver.loc.back()); } +{OPERATOR_IP_MATCH} { BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH(*driver.loc.back()); } +{OPERATOR_LE} { BEGIN_PARAMETER(); return p::make_OPERATOR_LE(*driver.loc.back()); } +{OPERATOR_LT} { BEGIN_PARAMETER(); return p::make_OPERATOR_LT(*driver.loc.back()); } +{OPERATOR_PM_FROM_FILE} { BEGIN_PARAMETER(); return p::make_OPERATOR_PM_FROM_FILE(*driver.loc.back()); } +{OPERATOR_PM} { BEGIN_PARAMETER(); return p::make_OPERATOR_PM(*driver.loc.back()); } +{OPERATOR_RBL} { BEGIN_PARAMETER(); return p::make_OPERATOR_RBL( *driver.loc.back()); } +{OPERATOR_RX} { BEGIN_PARAMETER(); return p::make_OPERATOR_RX(*driver.loc.back()); } +{OPERATOR_STR_EQ} { BEGIN_PARAMETER(); return p::make_OPERATOR_STR_EQ(*driver.loc.back()); } +{OPERATOR_STR_MATCH} { BEGIN_PARAMETER(); return p::make_OPERATOR_STR_MATCH(*driver.loc.back()); } +{OPERATOR_BEGINS_WITH} { BEGIN_PARAMETER(); return p::make_OPERATOR_BEGINS_WITH(*driver.loc.back()); } +{OPERATOR_INSPECT_FILE} { BEGIN_PARAMETER(); return p::make_OPERATOR_INSPECT_FILE(*driver.loc.back()); } +{OPERATOR_FUZZY_HASH} { BEGIN_PARAMETER(); return p::make_OPERATOR_FUZZY_HASH(*driver.loc.back()); } +{OPERATOR_VALIDATE_BYTE_RANGE} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_BYTE_RANGE(*driver.loc.back()); } +{OPERATOR_VALIDATE_DTD} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_DTD(*driver.loc.back()); } +{OPERATOR_VALIDATE_HASH} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_HASH(*driver.loc.back()); } +{OPERATOR_VALIDATE_SCHEMA} { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_SCHEMA(*driver.loc.back()); } +{OPERATOR_VERIFY_CC} { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CC(*driver.loc.back()); } +{OPERATOR_VERIFY_CPF} { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CPF(*driver.loc.back()); } +{OPERATOR_VERIFY_SSN} { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_SSN(*driver.loc.back()); } +{OPERATOR_GSB_LOOKUP} { BEGIN_PARAMETER(); return p::make_OPERATOR_GSB_LOOKUP(*driver.loc.back()); } +{OPERATOR_RSUB} { BEGIN_PARAMETER(); return p::make_OPERATOR_RSUB(*driver.loc.back()); } {NOT} { return p::make_NOT(*driver.loc.back()); } . { BEGIN_NO_OP_INFORMED(); yyless(0); }