diff --git a/src/parser/seclang-parser.cc b/src/parser/seclang-parser.cc index ecb689a669..3a13348b0f 100644 --- a/src/parser/seclang-parser.cc +++ b/src/parser/seclang-parser.cc @@ -877,7 +877,7 @@ namespace yy { // User initialization code. - #line 343 "/home/zimmerle/core-trustwave/ModSecurity/src/parser/seclang-parser.yy" // lalr1.cc:741 + #line 343 "/home/michael/public-ModSecurity/src/parser/seclang-parser.yy" // lalr1.cc:741 { // Initialize the initial location. yyla.location.begin.filename = yyla.location.end.filename = &driver.file; @@ -1926,6 +1926,11 @@ namespace yy { driver.error(yystack_[2].location, "The transformation none is not suitable to be part of the SecDefaultActions"); YYERROR; } + actions::disruptive::Block *block = dynamic_cast(a); + if (block != NULL) { + driver.error(yystack_[2].location, "The 'block' action cannot be used as a default action"); + YYERROR; + } checkedActions.push_back(a); } else { driver.error(yystack_[2].location, "The action '" + a->m_name + "' is not suitable to be part of the SecDefaultActions"); @@ -1951,75 +1956,75 @@ namespace yy { delete actions; } -#line 1955 "seclang-parser.cc" // lalr1.cc:859 +#line 1960 "seclang-parser.cc" // lalr1.cc:859 break; case 77: -#line 1185 "seclang-parser.yy" // lalr1.cc:859 +#line 1190 "seclang-parser.yy" // lalr1.cc:859 { driver.addSecMarker(modsecurity::utils::string::removeBracketsIfNeeded(yystack_[0].value.as< std::string > ())); } -#line 1963 "seclang-parser.cc" // lalr1.cc:859 +#line 1968 "seclang-parser.cc" // lalr1.cc:859 break; case 78: -#line 1189 "seclang-parser.yy" // lalr1.cc:859 +#line 1194 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::DisabledRuleEngine; } -#line 1971 "seclang-parser.cc" // lalr1.cc:859 +#line 1976 "seclang-parser.cc" // lalr1.cc:859 break; case 79: -#line 1193 "seclang-parser.yy" // lalr1.cc:859 +#line 1198 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::EnabledRuleEngine; } -#line 1979 "seclang-parser.cc" // lalr1.cc:859 +#line 1984 "seclang-parser.cc" // lalr1.cc:859 break; case 80: -#line 1197 "seclang-parser.yy" // lalr1.cc:859 +#line 1202 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::DetectionOnlyRuleEngine; } -#line 1987 "seclang-parser.cc" // lalr1.cc:859 +#line 1992 "seclang-parser.cc" // lalr1.cc:859 break; case 81: -#line 1201 "seclang-parser.yy" // lalr1.cc:859 +#line 1206 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1995 "seclang-parser.cc" // lalr1.cc:859 +#line 2000 "seclang-parser.cc" // lalr1.cc:859 break; case 82: -#line 1205 "seclang-parser.yy" // lalr1.cc:859 +#line 1210 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2003 "seclang-parser.cc" // lalr1.cc:859 +#line 2008 "seclang-parser.cc" // lalr1.cc:859 break; case 83: -#line 1209 "seclang-parser.yy" // lalr1.cc:859 +#line 1214 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2011 "seclang-parser.cc" // lalr1.cc:859 +#line 2016 "seclang-parser.cc" // lalr1.cc:859 break; case 84: -#line 1213 "seclang-parser.yy" // lalr1.cc:859 +#line 1218 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2019 "seclang-parser.cc" // lalr1.cc:859 +#line 2024 "seclang-parser.cc" // lalr1.cc:859 break; case 85: -#line 1217 "seclang-parser.yy" // lalr1.cc:859 +#line 1222 "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."); @@ -2028,64 +2033,64 @@ namespace yy { driver.m_secArgumentSeparator.m_value = yystack_[0].value.as< std::string > (); driver.m_secArgumentSeparator.m_set = true; } -#line 2032 "seclang-parser.cc" // lalr1.cc:859 +#line 2037 "seclang-parser.cc" // lalr1.cc:859 break; case 86: -#line 1226 "seclang-parser.yy" // lalr1.cc:859 +#line 1231 "seclang-parser.yy" // lalr1.cc:859 { driver.m_components.push_back(yystack_[0].value.as< std::string > ()); } -#line 2040 "seclang-parser.cc" // lalr1.cc:859 +#line 2045 "seclang-parser.cc" // lalr1.cc:859 break; case 87: -#line 1230 "seclang-parser.yy" // lalr1.cc:859 +#line 1235 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecWebAppId is not supported."); YYERROR; } -#line 2049 "seclang-parser.cc" // lalr1.cc:859 +#line 2054 "seclang-parser.cc" // lalr1.cc:859 break; case 88: -#line 1235 "seclang-parser.yy" // lalr1.cc:859 +#line 1240 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecServerSignature is not supported."); YYERROR; } -#line 2058 "seclang-parser.cc" // lalr1.cc:859 +#line 2063 "seclang-parser.cc" // lalr1.cc:859 break; case 89: -#line 1240 "seclang-parser.yy" // lalr1.cc:859 +#line 1245 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "ContentInjection is not yet supported."); YYERROR; } -#line 2067 "seclang-parser.cc" // lalr1.cc:859 +#line 2072 "seclang-parser.cc" // lalr1.cc:859 break; case 90: -#line 1245 "seclang-parser.yy" // lalr1.cc:859 +#line 1250 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecCacheTransformations is not supported."); YYERROR; } -#line 2076 "seclang-parser.cc" // lalr1.cc:859 +#line 2081 "seclang-parser.cc" // lalr1.cc:859 break; case 91: -#line 1250 "seclang-parser.yy" // lalr1.cc:859 +#line 1255 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "ContentInjection is not yet supported."); YYERROR; } -#line 2085 "seclang-parser.cc" // lalr1.cc:859 +#line 2090 "seclang-parser.cc" // lalr1.cc:859 break; case 92: -#line 1255 "seclang-parser.yy" // lalr1.cc:859 +#line 1260 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.load(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2098,11 +2103,11 @@ namespace yy { YYERROR; } } -#line 2102 "seclang-parser.cc" // lalr1.cc:859 +#line 2107 "seclang-parser.cc" // lalr1.cc:859 break; case 93: -#line 1268 "seclang-parser.yy" // lalr1.cc:859 +#line 1273 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.loadRemoveRuleByMsg(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2115,11 +2120,11 @@ namespace yy { YYERROR; } } -#line 2119 "seclang-parser.cc" // lalr1.cc:859 +#line 2124 "seclang-parser.cc" // lalr1.cc:859 break; case 94: -#line 1281 "seclang-parser.yy" // lalr1.cc:859 +#line 1286 "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) { @@ -2132,11 +2137,11 @@ namespace yy { YYERROR; } } -#line 2136 "seclang-parser.cc" // lalr1.cc:859 +#line 2141 "seclang-parser.cc" // lalr1.cc:859 break; case 95: -#line 1294 "seclang-parser.yy" // lalr1.cc:859 +#line 1299 "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) { @@ -2149,11 +2154,11 @@ namespace yy { YYERROR; } } -#line 2153 "seclang-parser.cc" // lalr1.cc:859 +#line 2158 "seclang-parser.cc" // lalr1.cc:859 break; case 96: -#line 1307 "seclang-parser.yy" // lalr1.cc:859 +#line 1312 "seclang-parser.yy" // lalr1.cc:859 { std::string error; double ruleId; @@ -2179,11 +2184,11 @@ namespace yy { YYERROR; } } -#line 2183 "seclang-parser.cc" // lalr1.cc:859 +#line 2188 "seclang-parser.cc" // lalr1.cc:859 break; case 97: -#line 1333 "seclang-parser.yy" // lalr1.cc:859 +#line 1338 "seclang-parser.yy" // lalr1.cc:859 { std::string error; double ruleId; @@ -2208,11 +2213,11 @@ namespace yy { driver.error(yystack_[2].location, "SecRuleUpdateActionById is not yet supported"); YYERROR; } -#line 2212 "seclang-parser.cc" // lalr1.cc:859 +#line 2217 "seclang-parser.cc" // lalr1.cc:859 break; case 98: -#line 1359 "seclang-parser.yy" // lalr1.cc:859 +#line 1364 "seclang-parser.yy" // lalr1.cc:859 { if (driver.m_debugLog != NULL) { driver.m_debugLog->setDebugLogLevel(atoi(yystack_[0].value.as< std::string > ().c_str())); @@ -2224,11 +2229,11 @@ namespace yy { YYERROR; } } -#line 2228 "seclang-parser.cc" // lalr1.cc:859 +#line 2233 "seclang-parser.cc" // lalr1.cc:859 break; case 99: -#line 1371 "seclang-parser.yy" // lalr1.cc:859 +#line 1376 "seclang-parser.yy" // lalr1.cc:859 { if (driver.m_debugLog != NULL) { std::string error; @@ -2247,11 +2252,11 @@ namespace yy { YYERROR; } } -#line 2251 "seclang-parser.cc" // lalr1.cc:859 +#line 2256 "seclang-parser.cc" // lalr1.cc:859 break; case 100: -#line 1391 "seclang-parser.yy" // lalr1.cc:859 +#line 1396 "seclang-parser.yy" // lalr1.cc:859 { #ifdef WITH_GEOIP std::string err; @@ -2278,29 +2283,29 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2282 "seclang-parser.cc" // lalr1.cc:859 +#line 2287 "seclang-parser.cc" // lalr1.cc:859 break; case 101: -#line 1419 "seclang-parser.yy" // lalr1.cc:859 +#line 1424 "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 2291 "seclang-parser.cc" // lalr1.cc:859 +#line 2296 "seclang-parser.cc" // lalr1.cc:859 break; case 102: -#line 1424 "seclang-parser.yy" // lalr1.cc:859 +#line 1429 "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 2300 "seclang-parser.cc" // lalr1.cc:859 +#line 2305 "seclang-parser.cc" // lalr1.cc:859 break; case 103: -#line 1429 "seclang-parser.yy" // lalr1.cc:859 +#line 1434 "seclang-parser.yy" // lalr1.cc:859 { std::stringstream ss; ss << "As of ModSecurity version 3.0, SecRequestBodyInMemoryLimit is no longer "; @@ -2309,68 +2314,68 @@ namespace yy { driver.error(yystack_[1].location, ss.str()); YYERROR; } -#line 2313 "seclang-parser.cc" // lalr1.cc:859 +#line 2318 "seclang-parser.cc" // lalr1.cc:859 break; case 104: -#line 1438 "seclang-parser.yy" // lalr1.cc:859 +#line 1443 "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 2322 "seclang-parser.cc" // lalr1.cc:859 +#line 2327 "seclang-parser.cc" // lalr1.cc:859 break; case 105: -#line 1443 "seclang-parser.yy" // lalr1.cc:859 +#line 1448 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2330 "seclang-parser.cc" // lalr1.cc:859 +#line 2335 "seclang-parser.cc" // lalr1.cc:859 break; case 106: -#line 1447 "seclang-parser.yy" // lalr1.cc:859 +#line 1452 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2338 "seclang-parser.cc" // lalr1.cc:859 +#line 2343 "seclang-parser.cc" // lalr1.cc:859 break; case 107: -#line 1451 "seclang-parser.yy" // lalr1.cc:859 +#line 1456 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2346 "seclang-parser.cc" // lalr1.cc:859 +#line 2351 "seclang-parser.cc" // lalr1.cc:859 break; case 108: -#line 1455 "seclang-parser.yy" // lalr1.cc:859 +#line 1460 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2354 "seclang-parser.cc" // lalr1.cc:859 +#line 2359 "seclang-parser.cc" // lalr1.cc:859 break; case 109: -#line 1459 "seclang-parser.yy" // lalr1.cc:859 +#line 1464 "seclang-parser.yy" // lalr1.cc:859 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::AbortOnFailedRemoteRulesAction; } -#line 2362 "seclang-parser.cc" // lalr1.cc:859 +#line 2367 "seclang-parser.cc" // lalr1.cc:859 break; case 110: -#line 1463 "seclang-parser.yy" // lalr1.cc:859 +#line 1468 "seclang-parser.yy" // lalr1.cc:859 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::WarnOnFailedRemoteRulesAction; } -#line 2370 "seclang-parser.cc" // lalr1.cc:859 +#line 2375 "seclang-parser.cc" // lalr1.cc:859 break; case 113: -#line 1469 "seclang-parser.yy" // lalr1.cc:859 +#line 1474 "seclang-parser.yy" // lalr1.cc:859 { std::istringstream buf(yystack_[0].value.as< std::string > ()); std::istream_iterator beg(buf), end; @@ -2382,2184 +2387,2184 @@ namespace yy { driver.m_responseBodyTypeToBeInspected.m_value.insert(*it); } } -#line 2386 "seclang-parser.cc" // lalr1.cc:859 +#line 2391 "seclang-parser.cc" // lalr1.cc:859 break; case 114: -#line 1481 "seclang-parser.yy" // lalr1.cc:859 +#line 1486 "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 2396 "seclang-parser.cc" // lalr1.cc:859 +#line 2401 "seclang-parser.cc" // lalr1.cc:859 break; case 115: -#line 1487 "seclang-parser.yy" // lalr1.cc:859 +#line 1492 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2404 "seclang-parser.cc" // lalr1.cc:859 +#line 2409 "seclang-parser.cc" // lalr1.cc:859 break; case 116: -#line 1491 "seclang-parser.yy" // lalr1.cc:859 +#line 1496 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2412 "seclang-parser.cc" // lalr1.cc:859 +#line 2417 "seclang-parser.cc" // lalr1.cc:859 break; case 123: -#line 1501 "seclang-parser.yy" // lalr1.cc:859 +#line 1506 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2419 "seclang-parser.cc" // lalr1.cc:859 +#line 2424 "seclang-parser.cc" // lalr1.cc:859 break; case 124: -#line 1504 "seclang-parser.yy" // lalr1.cc:859 +#line 1509 "seclang-parser.yy" // lalr1.cc:859 { driver.m_httpblKey.m_set = true; driver.m_httpblKey.m_value = yystack_[0].value.as< std::string > (); } -#line 2428 "seclang-parser.cc" // lalr1.cc:859 +#line 2433 "seclang-parser.cc" // lalr1.cc:859 break; case 125: -#line 1512 "seclang-parser.yy" // lalr1.cc:859 +#line 1517 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 2436 "seclang-parser.cc" // lalr1.cc:859 +#line 2441 "seclang-parser.cc" // lalr1.cc:859 break; case 126: -#line 1516 "seclang-parser.yy" // lalr1.cc:859 +#line 1521 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 2444 "seclang-parser.cc" // lalr1.cc:859 +#line 2449 "seclang-parser.cc" // lalr1.cc:859 break; case 127: -#line 1523 "seclang-parser.yy" // lalr1.cc:859 +#line 1528 "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 2453 "seclang-parser.cc" // lalr1.cc:859 +#line 2458 "seclang-parser.cc" // lalr1.cc:859 break; case 128: -#line 1528 "seclang-parser.yy" // lalr1.cc:859 +#line 1533 "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 2463 "seclang-parser.cc" // lalr1.cc:859 +#line 2468 "seclang-parser.cc" // lalr1.cc:859 break; case 129: -#line 1534 "seclang-parser.yy" // lalr1.cc:859 +#line 1539 "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 2473 "seclang-parser.cc" // lalr1.cc:859 +#line 2478 "seclang-parser.cc" // lalr1.cc:859 break; case 130: -#line 1540 "seclang-parser.yy" // lalr1.cc:859 +#line 1545 "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 2483 "seclang-parser.cc" // lalr1.cc:859 +#line 2488 "seclang-parser.cc" // lalr1.cc:859 break; case 131: -#line 1546 "seclang-parser.yy" // lalr1.cc:859 +#line 1551 "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 2494 "seclang-parser.cc" // lalr1.cc:859 +#line 2499 "seclang-parser.cc" // lalr1.cc:859 break; case 132: -#line 1553 "seclang-parser.yy" // lalr1.cc:859 +#line 1558 "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 2505 "seclang-parser.cc" // lalr1.cc:859 +#line 2510 "seclang-parser.cc" // lalr1.cc:859 break; case 133: -#line 1563 "seclang-parser.yy" // lalr1.cc:859 +#line 1568 "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 2513 "seclang-parser.cc" // lalr1.cc:859 +#line 2518 "seclang-parser.cc" // lalr1.cc:859 break; case 134: -#line 1567 "seclang-parser.yy" // lalr1.cc:859 +#line 1572 "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 2521 "seclang-parser.cc" // lalr1.cc:859 +#line 2526 "seclang-parser.cc" // lalr1.cc:859 break; case 135: -#line 1571 "seclang-parser.yy" // lalr1.cc:859 +#line 1576 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_NoDictElement()); } -#line 2529 "seclang-parser.cc" // lalr1.cc:859 +#line 2534 "seclang-parser.cc" // lalr1.cc:859 break; case 136: -#line 1575 "seclang-parser.yy" // lalr1.cc:859 +#line 1580 "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 2537 "seclang-parser.cc" // lalr1.cc:859 +#line 2542 "seclang-parser.cc" // lalr1.cc:859 break; case 137: -#line 1579 "seclang-parser.yy" // lalr1.cc:859 +#line 1584 "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 2545 "seclang-parser.cc" // lalr1.cc:859 +#line 2550 "seclang-parser.cc" // lalr1.cc:859 break; case 138: -#line 1583 "seclang-parser.yy" // lalr1.cc:859 +#line 1588 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_NoDictElement()); } -#line 2553 "seclang-parser.cc" // lalr1.cc:859 +#line 2558 "seclang-parser.cc" // lalr1.cc:859 break; case 139: -#line 1587 "seclang-parser.yy" // lalr1.cc:859 +#line 1592 "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 2561 "seclang-parser.cc" // lalr1.cc:859 +#line 2566 "seclang-parser.cc" // lalr1.cc:859 break; case 140: -#line 1591 "seclang-parser.yy" // lalr1.cc:859 +#line 1596 "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 2569 "seclang-parser.cc" // lalr1.cc:859 +#line 2574 "seclang-parser.cc" // lalr1.cc:859 break; case 141: -#line 1595 "seclang-parser.yy" // lalr1.cc:859 +#line 1600 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_NoDictElement()); } -#line 2577 "seclang-parser.cc" // lalr1.cc:859 +#line 2582 "seclang-parser.cc" // lalr1.cc:859 break; case 142: -#line 1599 "seclang-parser.yy" // lalr1.cc:859 +#line 1604 "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 2585 "seclang-parser.cc" // lalr1.cc:859 +#line 2590 "seclang-parser.cc" // lalr1.cc:859 break; case 143: -#line 1603 "seclang-parser.yy" // lalr1.cc:859 +#line 1608 "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 2593 "seclang-parser.cc" // lalr1.cc:859 +#line 2598 "seclang-parser.cc" // lalr1.cc:859 break; case 144: -#line 1607 "seclang-parser.yy" // lalr1.cc:859 +#line 1612 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_NoDictElement()); } -#line 2601 "seclang-parser.cc" // lalr1.cc:859 +#line 2606 "seclang-parser.cc" // lalr1.cc:859 break; case 145: -#line 1611 "seclang-parser.yy" // lalr1.cc:859 +#line 1616 "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 2609 "seclang-parser.cc" // lalr1.cc:859 +#line 2614 "seclang-parser.cc" // lalr1.cc:859 break; case 146: -#line 1615 "seclang-parser.yy" // lalr1.cc:859 +#line 1620 "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 2617 "seclang-parser.cc" // lalr1.cc:859 +#line 2622 "seclang-parser.cc" // lalr1.cc:859 break; case 147: -#line 1619 "seclang-parser.yy" // lalr1.cc:859 +#line 1624 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_NoDictElement()); } -#line 2625 "seclang-parser.cc" // lalr1.cc:859 +#line 2630 "seclang-parser.cc" // lalr1.cc:859 break; case 148: -#line 1623 "seclang-parser.yy" // lalr1.cc:859 +#line 1628 "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 2633 "seclang-parser.cc" // lalr1.cc:859 +#line 2638 "seclang-parser.cc" // lalr1.cc:859 break; case 149: -#line 1627 "seclang-parser.yy" // lalr1.cc:859 +#line 1632 "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 2641 "seclang-parser.cc" // lalr1.cc:859 +#line 2646 "seclang-parser.cc" // lalr1.cc:859 break; case 150: -#line 1631 "seclang-parser.yy" // lalr1.cc:859 +#line 1636 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_NoDictElement()); } -#line 2649 "seclang-parser.cc" // lalr1.cc:859 +#line 2654 "seclang-parser.cc" // lalr1.cc:859 break; case 151: -#line 1635 "seclang-parser.yy" // lalr1.cc:859 +#line 1640 "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 2657 "seclang-parser.cc" // lalr1.cc:859 +#line 2662 "seclang-parser.cc" // lalr1.cc:859 break; case 152: -#line 1639 "seclang-parser.yy" // lalr1.cc:859 +#line 1644 "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 2665 "seclang-parser.cc" // lalr1.cc:859 +#line 2670 "seclang-parser.cc" // lalr1.cc:859 break; case 153: -#line 1643 "seclang-parser.yy" // lalr1.cc:859 +#line 1648 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_NoDictElement()); } -#line 2673 "seclang-parser.cc" // lalr1.cc:859 +#line 2678 "seclang-parser.cc" // lalr1.cc:859 break; case 154: -#line 1647 "seclang-parser.yy" // lalr1.cc:859 +#line 1652 "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 2681 "seclang-parser.cc" // lalr1.cc:859 +#line 2686 "seclang-parser.cc" // lalr1.cc:859 break; case 155: -#line 1651 "seclang-parser.yy" // lalr1.cc:859 +#line 1656 "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 2689 "seclang-parser.cc" // lalr1.cc:859 +#line 2694 "seclang-parser.cc" // lalr1.cc:859 break; case 156: -#line 1655 "seclang-parser.yy" // lalr1.cc:859 +#line 1660 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_NoDictElement()); } -#line 2697 "seclang-parser.cc" // lalr1.cc:859 +#line 2702 "seclang-parser.cc" // lalr1.cc:859 break; case 157: -#line 1659 "seclang-parser.yy" // lalr1.cc:859 +#line 1664 "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 2705 "seclang-parser.cc" // lalr1.cc:859 +#line 2710 "seclang-parser.cc" // lalr1.cc:859 break; case 158: -#line 1663 "seclang-parser.yy" // lalr1.cc:859 +#line 1668 "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 2713 "seclang-parser.cc" // lalr1.cc:859 +#line 2718 "seclang-parser.cc" // lalr1.cc:859 break; case 159: -#line 1667 "seclang-parser.yy" // lalr1.cc:859 +#line 1672 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_NoDictElement()); } -#line 2721 "seclang-parser.cc" // lalr1.cc:859 +#line 2726 "seclang-parser.cc" // lalr1.cc:859 break; case 160: -#line 1671 "seclang-parser.yy" // lalr1.cc:859 +#line 1676 "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 2729 "seclang-parser.cc" // lalr1.cc:859 +#line 2734 "seclang-parser.cc" // lalr1.cc:859 break; case 161: -#line 1675 "seclang-parser.yy" // lalr1.cc:859 +#line 1680 "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 2737 "seclang-parser.cc" // lalr1.cc:859 +#line 2742 "seclang-parser.cc" // lalr1.cc:859 break; case 162: -#line 1679 "seclang-parser.yy" // lalr1.cc:859 +#line 1684 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_NoDictElement()); } -#line 2745 "seclang-parser.cc" // lalr1.cc:859 +#line 2750 "seclang-parser.cc" // lalr1.cc:859 break; case 163: -#line 1683 "seclang-parser.yy" // lalr1.cc:859 +#line 1688 "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 2753 "seclang-parser.cc" // lalr1.cc:859 +#line 2758 "seclang-parser.cc" // lalr1.cc:859 break; case 164: -#line 1687 "seclang-parser.yy" // lalr1.cc:859 +#line 1692 "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 2761 "seclang-parser.cc" // lalr1.cc:859 +#line 2766 "seclang-parser.cc" // lalr1.cc:859 break; case 165: -#line 1691 "seclang-parser.yy" // lalr1.cc:859 +#line 1696 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_NoDictElement()); } -#line 2769 "seclang-parser.cc" // lalr1.cc:859 +#line 2774 "seclang-parser.cc" // lalr1.cc:859 break; case 166: -#line 1695 "seclang-parser.yy" // lalr1.cc:859 +#line 1700 "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 2777 "seclang-parser.cc" // lalr1.cc:859 +#line 2782 "seclang-parser.cc" // lalr1.cc:859 break; case 167: -#line 1699 "seclang-parser.yy" // lalr1.cc:859 +#line 1704 "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 2785 "seclang-parser.cc" // lalr1.cc:859 +#line 2790 "seclang-parser.cc" // lalr1.cc:859 break; case 168: -#line 1703 "seclang-parser.yy" // lalr1.cc:859 +#line 1708 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_NoDictElement()); } -#line 2793 "seclang-parser.cc" // lalr1.cc:859 +#line 2798 "seclang-parser.cc" // lalr1.cc:859 break; case 169: -#line 1707 "seclang-parser.yy" // lalr1.cc:859 +#line 1712 "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 2801 "seclang-parser.cc" // lalr1.cc:859 +#line 2806 "seclang-parser.cc" // lalr1.cc:859 break; case 170: -#line 1711 "seclang-parser.yy" // lalr1.cc:859 +#line 1716 "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 2809 "seclang-parser.cc" // lalr1.cc:859 +#line 2814 "seclang-parser.cc" // lalr1.cc:859 break; case 171: -#line 1715 "seclang-parser.yy" // lalr1.cc:859 +#line 1720 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_NoDictElement()); } -#line 2817 "seclang-parser.cc" // lalr1.cc:859 +#line 2822 "seclang-parser.cc" // lalr1.cc:859 break; case 172: -#line 1719 "seclang-parser.yy" // lalr1.cc:859 +#line 1724 "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 2825 "seclang-parser.cc" // lalr1.cc:859 +#line 2830 "seclang-parser.cc" // lalr1.cc:859 break; case 173: -#line 1723 "seclang-parser.yy" // lalr1.cc:859 +#line 1728 "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 2833 "seclang-parser.cc" // lalr1.cc:859 +#line 2838 "seclang-parser.cc" // lalr1.cc:859 break; case 174: -#line 1727 "seclang-parser.yy" // lalr1.cc:859 +#line 1732 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_NoDictElement()); } -#line 2841 "seclang-parser.cc" // lalr1.cc:859 +#line 2846 "seclang-parser.cc" // lalr1.cc:859 break; case 175: -#line 1731 "seclang-parser.yy" // lalr1.cc:859 +#line 1736 "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 2849 "seclang-parser.cc" // lalr1.cc:859 +#line 2854 "seclang-parser.cc" // lalr1.cc:859 break; case 176: -#line 1735 "seclang-parser.yy" // lalr1.cc:859 +#line 1740 "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 2857 "seclang-parser.cc" // lalr1.cc:859 +#line 2862 "seclang-parser.cc" // lalr1.cc:859 break; case 177: -#line 1739 "seclang-parser.yy" // lalr1.cc:859 +#line 1744 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_NoDictElement()); } -#line 2865 "seclang-parser.cc" // lalr1.cc:859 +#line 2870 "seclang-parser.cc" // lalr1.cc:859 break; case 178: -#line 1743 "seclang-parser.yy" // lalr1.cc:859 +#line 1748 "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 2873 "seclang-parser.cc" // lalr1.cc:859 +#line 2878 "seclang-parser.cc" // lalr1.cc:859 break; case 179: -#line 1747 "seclang-parser.yy" // lalr1.cc:859 +#line 1752 "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 2881 "seclang-parser.cc" // lalr1.cc:859 +#line 2886 "seclang-parser.cc" // lalr1.cc:859 break; case 180: -#line 1751 "seclang-parser.yy" // lalr1.cc:859 +#line 1756 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_NoDictElement()); } -#line 2889 "seclang-parser.cc" // lalr1.cc:859 +#line 2894 "seclang-parser.cc" // lalr1.cc:859 break; case 181: -#line 1755 "seclang-parser.yy" // lalr1.cc:859 +#line 1760 "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 2897 "seclang-parser.cc" // lalr1.cc:859 +#line 2902 "seclang-parser.cc" // lalr1.cc:859 break; case 182: -#line 1759 "seclang-parser.yy" // lalr1.cc:859 +#line 1764 "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 2905 "seclang-parser.cc" // lalr1.cc:859 +#line 2910 "seclang-parser.cc" // lalr1.cc:859 break; case 183: -#line 1763 "seclang-parser.yy" // lalr1.cc:859 +#line 1768 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_NoDictElement()); } -#line 2913 "seclang-parser.cc" // lalr1.cc:859 +#line 2918 "seclang-parser.cc" // lalr1.cc:859 break; case 184: -#line 1767 "seclang-parser.yy" // lalr1.cc:859 +#line 1772 "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 2921 "seclang-parser.cc" // lalr1.cc:859 +#line 2926 "seclang-parser.cc" // lalr1.cc:859 break; case 185: -#line 1771 "seclang-parser.yy" // lalr1.cc:859 +#line 1776 "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 2929 "seclang-parser.cc" // lalr1.cc:859 +#line 2934 "seclang-parser.cc" // lalr1.cc:859 break; case 186: -#line 1775 "seclang-parser.yy" // lalr1.cc:859 +#line 1780 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV")); } -#line 2937 "seclang-parser.cc" // lalr1.cc:859 +#line 2942 "seclang-parser.cc" // lalr1.cc:859 break; case 187: -#line 1779 "seclang-parser.yy" // lalr1.cc:859 +#line 1784 "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 2945 "seclang-parser.cc" // lalr1.cc:859 +#line 2950 "seclang-parser.cc" // lalr1.cc:859 break; case 188: -#line 1783 "seclang-parser.yy" // lalr1.cc:859 +#line 1788 "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 2953 "seclang-parser.cc" // lalr1.cc:859 +#line 2958 "seclang-parser.cc" // lalr1.cc:859 break; case 189: -#line 1787 "seclang-parser.yy" // lalr1.cc:859 +#line 1792 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML_NoDictElement()); } -#line 2961 "seclang-parser.cc" // lalr1.cc:859 +#line 2966 "seclang-parser.cc" // lalr1.cc:859 break; case 190: -#line 1791 "seclang-parser.yy" // lalr1.cc:859 +#line 1796 "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 2969 "seclang-parser.cc" // lalr1.cc:859 +#line 2974 "seclang-parser.cc" // lalr1.cc:859 break; case 191: -#line 1795 "seclang-parser.yy" // lalr1.cc:859 +#line 1800 "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 2977 "seclang-parser.cc" // lalr1.cc:859 +#line 2982 "seclang-parser.cc" // lalr1.cc:859 break; case 192: -#line 1799 "seclang-parser.yy" // lalr1.cc:859 +#line 1804 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_NoDictElement()); } -#line 2985 "seclang-parser.cc" // lalr1.cc:859 +#line 2990 "seclang-parser.cc" // lalr1.cc:859 break; case 193: -#line 1803 "seclang-parser.yy" // lalr1.cc:859 +#line 1808 "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 2993 "seclang-parser.cc" // lalr1.cc:859 +#line 2998 "seclang-parser.cc" // lalr1.cc:859 break; case 194: -#line 1807 "seclang-parser.yy" // lalr1.cc:859 +#line 1812 "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 3001 "seclang-parser.cc" // lalr1.cc:859 +#line 3006 "seclang-parser.cc" // lalr1.cc:859 break; case 195: -#line 1811 "seclang-parser.yy" // lalr1.cc:859 +#line 1816 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_NoDictElement()); } -#line 3009 "seclang-parser.cc" // lalr1.cc:859 +#line 3014 "seclang-parser.cc" // lalr1.cc:859 break; case 196: -#line 1816 "seclang-parser.yy" // lalr1.cc:859 +#line 1821 "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 3017 "seclang-parser.cc" // lalr1.cc:859 +#line 3022 "seclang-parser.cc" // lalr1.cc:859 break; case 197: -#line 1820 "seclang-parser.yy" // lalr1.cc:859 +#line 1825 "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 3025 "seclang-parser.cc" // lalr1.cc:859 +#line 3030 "seclang-parser.cc" // lalr1.cc:859 break; case 198: -#line 1824 "seclang-parser.yy" // lalr1.cc:859 +#line 1829 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_NoDictElement()); } -#line 3033 "seclang-parser.cc" // lalr1.cc:859 +#line 3038 "seclang-parser.cc" // lalr1.cc:859 break; case 199: -#line 1829 "seclang-parser.yy" // lalr1.cc:859 +#line 1834 "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 3041 "seclang-parser.cc" // lalr1.cc:859 +#line 3046 "seclang-parser.cc" // lalr1.cc:859 break; case 200: -#line 1833 "seclang-parser.yy" // lalr1.cc:859 +#line 1838 "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 3049 "seclang-parser.cc" // lalr1.cc:859 +#line 3054 "seclang-parser.cc" // lalr1.cc:859 break; case 201: -#line 1837 "seclang-parser.yy" // lalr1.cc:859 +#line 1842 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_NoDictElement()); } -#line 3057 "seclang-parser.cc" // lalr1.cc:859 +#line 3062 "seclang-parser.cc" // lalr1.cc:859 break; case 202: -#line 1842 "seclang-parser.yy" // lalr1.cc:859 +#line 1847 "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 3065 "seclang-parser.cc" // lalr1.cc:859 +#line 3070 "seclang-parser.cc" // lalr1.cc:859 break; case 203: -#line 1846 "seclang-parser.yy" // lalr1.cc:859 +#line 1851 "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 3073 "seclang-parser.cc" // lalr1.cc:859 +#line 3078 "seclang-parser.cc" // lalr1.cc:859 break; case 204: -#line 1850 "seclang-parser.yy" // lalr1.cc:859 +#line 1855 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_NoDictElement()); } -#line 3081 "seclang-parser.cc" // lalr1.cc:859 +#line 3086 "seclang-parser.cc" // lalr1.cc:859 break; case 205: -#line 1855 "seclang-parser.yy" // lalr1.cc:859 +#line 1860 "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 3089 "seclang-parser.cc" // lalr1.cc:859 +#line 3094 "seclang-parser.cc" // lalr1.cc:859 break; case 206: -#line 1859 "seclang-parser.yy" // lalr1.cc:859 +#line 1864 "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 3097 "seclang-parser.cc" // lalr1.cc:859 +#line 3102 "seclang-parser.cc" // lalr1.cc:859 break; case 207: -#line 1863 "seclang-parser.yy" // lalr1.cc:859 +#line 1868 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_NoDictElement()); } -#line 3105 "seclang-parser.cc" // lalr1.cc:859 +#line 3110 "seclang-parser.cc" // lalr1.cc:859 break; case 208: -#line 1868 "seclang-parser.yy" // lalr1.cc:859 +#line 1873 "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 3113 "seclang-parser.cc" // lalr1.cc:859 +#line 3118 "seclang-parser.cc" // lalr1.cc:859 break; case 209: -#line 1872 "seclang-parser.yy" // lalr1.cc:859 +#line 1877 "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 3121 "seclang-parser.cc" // lalr1.cc:859 +#line 3126 "seclang-parser.cc" // lalr1.cc:859 break; case 210: -#line 1876 "seclang-parser.yy" // lalr1.cc:859 +#line 1881 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_NoDictElement()); } -#line 3129 "seclang-parser.cc" // lalr1.cc:859 +#line 3134 "seclang-parser.cc" // lalr1.cc:859 break; case 211: -#line 1880 "seclang-parser.yy" // lalr1.cc:859 +#line 1885 "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 3137 "seclang-parser.cc" // lalr1.cc:859 +#line 3142 "seclang-parser.cc" // lalr1.cc:859 break; case 212: -#line 1884 "seclang-parser.yy" // lalr1.cc:859 +#line 1889 "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 3145 "seclang-parser.cc" // lalr1.cc:859 +#line 3150 "seclang-parser.cc" // lalr1.cc:859 break; case 213: -#line 1888 "seclang-parser.yy" // lalr1.cc:859 +#line 1893 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_NoDictElement()); } -#line 3153 "seclang-parser.cc" // lalr1.cc:859 +#line 3158 "seclang-parser.cc" // lalr1.cc:859 break; case 214: -#line 1893 "seclang-parser.yy" // lalr1.cc:859 +#line 1898 "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 3161 "seclang-parser.cc" // lalr1.cc:859 +#line 3166 "seclang-parser.cc" // lalr1.cc:859 break; case 215: -#line 1897 "seclang-parser.yy" // lalr1.cc:859 +#line 1902 "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 3169 "seclang-parser.cc" // lalr1.cc:859 +#line 3174 "seclang-parser.cc" // lalr1.cc:859 break; case 216: -#line 1901 "seclang-parser.yy" // lalr1.cc:859 +#line 1906 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_NoDictElement()); } -#line 3177 "seclang-parser.cc" // lalr1.cc:859 +#line 3182 "seclang-parser.cc" // lalr1.cc:859 break; case 217: -#line 1906 "seclang-parser.yy" // lalr1.cc:859 +#line 1911 "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 3185 "seclang-parser.cc" // lalr1.cc:859 +#line 3190 "seclang-parser.cc" // lalr1.cc:859 break; case 218: -#line 1910 "seclang-parser.yy" // lalr1.cc:859 +#line 1915 "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 3193 "seclang-parser.cc" // lalr1.cc:859 +#line 3198 "seclang-parser.cc" // lalr1.cc:859 break; case 219: -#line 1914 "seclang-parser.yy" // lalr1.cc:859 +#line 1919 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_NoDictElement()); } -#line 3201 "seclang-parser.cc" // lalr1.cc:859 +#line 3206 "seclang-parser.cc" // lalr1.cc:859 break; case 220: -#line 1919 "seclang-parser.yy" // lalr1.cc:859 +#line 1924 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentType()); } -#line 3209 "seclang-parser.cc" // lalr1.cc:859 +#line 3214 "seclang-parser.cc" // lalr1.cc:859 break; case 221: -#line 1924 "seclang-parser.yy" // lalr1.cc:859 +#line 1929 "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 3217 "seclang-parser.cc" // lalr1.cc:859 +#line 3222 "seclang-parser.cc" // lalr1.cc:859 break; case 222: -#line 1928 "seclang-parser.yy" // lalr1.cc:859 +#line 1933 "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 3225 "seclang-parser.cc" // lalr1.cc:859 +#line 3230 "seclang-parser.cc" // lalr1.cc:859 break; case 223: -#line 1932 "seclang-parser.yy" // lalr1.cc:859 +#line 1937 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_NoDictElement()); } -#line 3233 "seclang-parser.cc" // lalr1.cc:859 +#line 3238 "seclang-parser.cc" // lalr1.cc:859 break; case 224: -#line 1936 "seclang-parser.yy" // lalr1.cc:859 +#line 1941 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsCombinedSize()); } -#line 3241 "seclang-parser.cc" // lalr1.cc:859 +#line 3246 "seclang-parser.cc" // lalr1.cc:859 break; case 225: -#line 1940 "seclang-parser.yy" // lalr1.cc:859 +#line 1945 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::AuthType()); } -#line 3249 "seclang-parser.cc" // lalr1.cc:859 +#line 3254 "seclang-parser.cc" // lalr1.cc:859 break; case 226: -#line 1944 "seclang-parser.yy" // lalr1.cc:859 +#line 1949 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesCombinedSize()); } -#line 3257 "seclang-parser.cc" // lalr1.cc:859 +#line 3262 "seclang-parser.cc" // lalr1.cc:859 break; case 227: -#line 1948 "seclang-parser.yy" // lalr1.cc:859 +#line 1953 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequest()); } -#line 3265 "seclang-parser.cc" // lalr1.cc:859 +#line 3270 "seclang-parser.cc" // lalr1.cc:859 break; case 228: -#line 1952 "seclang-parser.yy" // lalr1.cc:859 +#line 1957 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequestLength()); } -#line 3273 "seclang-parser.cc" // lalr1.cc:859 +#line 3278 "seclang-parser.cc" // lalr1.cc:859 break; case 229: -#line 1956 "seclang-parser.yy" // lalr1.cc:859 +#line 1961 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::InboundDataError()); } -#line 3281 "seclang-parser.cc" // lalr1.cc:859 +#line 3286 "seclang-parser.cc" // lalr1.cc:859 break; case 230: -#line 1960 "seclang-parser.yy" // lalr1.cc:859 +#line 1965 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVar()); } -#line 3289 "seclang-parser.cc" // lalr1.cc:859 +#line 3294 "seclang-parser.cc" // lalr1.cc:859 break; case 231: -#line 1964 "seclang-parser.yy" // lalr1.cc:859 +#line 1969 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarName()); } -#line 3297 "seclang-parser.cc" // lalr1.cc:859 +#line 3302 "seclang-parser.cc" // lalr1.cc:859 break; case 232: -#line 1968 "seclang-parser.yy" // lalr1.cc:859 +#line 1973 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartCrlfLFLines()); } -#line 3305 "seclang-parser.cc" // lalr1.cc:859 +#line 3310 "seclang-parser.cc" // lalr1.cc:859 break; case 233: -#line 1972 "seclang-parser.yy" // lalr1.cc:859 +#line 1977 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateAfter()); } -#line 3313 "seclang-parser.cc" // lalr1.cc:859 +#line 3318 "seclang-parser.cc" // lalr1.cc:859 break; case 234: -#line 1976 "seclang-parser.yy" // lalr1.cc:859 +#line 1981 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartFileLimitExceeded()); } -#line 3321 "seclang-parser.cc" // lalr1.cc:859 +#line 3326 "seclang-parser.cc" // lalr1.cc:859 break; case 235: -#line 1980 "seclang-parser.yy" // lalr1.cc:859 +#line 1985 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartHeaderFolding()); } -#line 3329 "seclang-parser.cc" // lalr1.cc:859 +#line 3334 "seclang-parser.cc" // lalr1.cc:859 break; case 236: -#line 1984 "seclang-parser.yy" // lalr1.cc:859 +#line 1989 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidHeaderFolding()); } -#line 3337 "seclang-parser.cc" // lalr1.cc:859 +#line 3342 "seclang-parser.cc" // lalr1.cc:859 break; case 237: -#line 1988 "seclang-parser.yy" // lalr1.cc:859 +#line 1993 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidQuoting()); } -#line 3345 "seclang-parser.cc" // lalr1.cc:859 +#line 3350 "seclang-parser.cc" // lalr1.cc:859 break; case 238: -#line 1992 "seclang-parser.yy" // lalr1.cc:859 +#line 1997 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartStrictError()); } -#line 3353 "seclang-parser.cc" // lalr1.cc:859 +#line 3358 "seclang-parser.cc" // lalr1.cc:859 break; case 239: -#line 1996 "seclang-parser.yy" // lalr1.cc:859 +#line 2001 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartUnmatchedBoundary()); } -#line 3361 "seclang-parser.cc" // lalr1.cc:859 +#line 3366 "seclang-parser.cc" // lalr1.cc:859 break; case 240: -#line 2000 "seclang-parser.yy" // lalr1.cc:859 +#line 2005 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::OutboundDataError()); } -#line 3369 "seclang-parser.cc" // lalr1.cc:859 +#line 3374 "seclang-parser.cc" // lalr1.cc:859 break; case 241: -#line 2004 "seclang-parser.yy" // lalr1.cc:859 +#line 2009 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::PathInfo()); } -#line 3377 "seclang-parser.cc" // lalr1.cc:859 +#line 3382 "seclang-parser.cc" // lalr1.cc:859 break; case 242: -#line 2008 "seclang-parser.yy" // lalr1.cc:859 +#line 2013 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::QueryString()); } -#line 3385 "seclang-parser.cc" // lalr1.cc:859 +#line 3390 "seclang-parser.cc" // lalr1.cc:859 break; case 243: -#line 2012 "seclang-parser.yy" // lalr1.cc:859 +#line 2017 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteAddr()); } -#line 3393 "seclang-parser.cc" // lalr1.cc:859 +#line 3398 "seclang-parser.cc" // lalr1.cc:859 break; case 244: -#line 2016 "seclang-parser.yy" // lalr1.cc:859 +#line 2021 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteHost()); } -#line 3401 "seclang-parser.cc" // lalr1.cc:859 +#line 3406 "seclang-parser.cc" // lalr1.cc:859 break; case 245: -#line 2020 "seclang-parser.yy" // lalr1.cc:859 +#line 2025 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemotePort()); } -#line 3409 "seclang-parser.cc" // lalr1.cc:859 +#line 3414 "seclang-parser.cc" // lalr1.cc:859 break; case 246: -#line 2024 "seclang-parser.yy" // lalr1.cc:859 +#line 2029 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyError()); } -#line 3417 "seclang-parser.cc" // lalr1.cc:859 +#line 3422 "seclang-parser.cc" // lalr1.cc:859 break; case 247: -#line 2028 "seclang-parser.yy" // lalr1.cc:859 +#line 2033 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyErrorMsg()); } -#line 3425 "seclang-parser.cc" // lalr1.cc:859 +#line 3430 "seclang-parser.cc" // lalr1.cc:859 break; case 248: -#line 2032 "seclang-parser.yy" // lalr1.cc:859 +#line 2037 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessor()); } -#line 3433 "seclang-parser.cc" // lalr1.cc:859 +#line 3438 "seclang-parser.cc" // lalr1.cc:859 break; case 249: -#line 2036 "seclang-parser.yy" // lalr1.cc:859 +#line 2041 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorError()); } -#line 3441 "seclang-parser.cc" // lalr1.cc:859 +#line 3446 "seclang-parser.cc" // lalr1.cc:859 break; case 250: -#line 2040 "seclang-parser.yy" // lalr1.cc:859 +#line 2045 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorErrorMsg()); } -#line 3449 "seclang-parser.cc" // lalr1.cc:859 +#line 3454 "seclang-parser.cc" // lalr1.cc:859 break; case 251: -#line 2044 "seclang-parser.yy" // lalr1.cc:859 +#line 2049 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBasename()); } -#line 3457 "seclang-parser.cc" // lalr1.cc:859 +#line 3462 "seclang-parser.cc" // lalr1.cc:859 break; case 252: -#line 2048 "seclang-parser.yy" // lalr1.cc:859 +#line 2053 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBody()); } -#line 3465 "seclang-parser.cc" // lalr1.cc:859 +#line 3470 "seclang-parser.cc" // lalr1.cc:859 break; case 253: -#line 2052 "seclang-parser.yy" // lalr1.cc:859 +#line 2057 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBodyLength()); } -#line 3473 "seclang-parser.cc" // lalr1.cc:859 +#line 3478 "seclang-parser.cc" // lalr1.cc:859 break; case 254: -#line 2056 "seclang-parser.yy" // lalr1.cc:859 +#line 2061 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestFilename()); } -#line 3481 "seclang-parser.cc" // lalr1.cc:859 +#line 3486 "seclang-parser.cc" // lalr1.cc:859 break; case 255: -#line 2060 "seclang-parser.yy" // lalr1.cc:859 +#line 2065 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestLine()); } -#line 3489 "seclang-parser.cc" // lalr1.cc:859 +#line 3494 "seclang-parser.cc" // lalr1.cc:859 break; case 256: -#line 2064 "seclang-parser.yy" // lalr1.cc:859 +#line 2069 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestMethod()); } -#line 3497 "seclang-parser.cc" // lalr1.cc:859 +#line 3502 "seclang-parser.cc" // lalr1.cc:859 break; case 257: -#line 2068 "seclang-parser.yy" // lalr1.cc:859 +#line 2073 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestProtocol()); } -#line 3505 "seclang-parser.cc" // lalr1.cc:859 +#line 3510 "seclang-parser.cc" // lalr1.cc:859 break; case 258: -#line 2072 "seclang-parser.yy" // lalr1.cc:859 +#line 2077 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURI()); } -#line 3513 "seclang-parser.cc" // lalr1.cc:859 +#line 3518 "seclang-parser.cc" // lalr1.cc:859 break; case 259: -#line 2076 "seclang-parser.yy" // lalr1.cc:859 +#line 2081 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURIRaw()); } -#line 3521 "seclang-parser.cc" // lalr1.cc:859 +#line 3526 "seclang-parser.cc" // lalr1.cc:859 break; case 260: -#line 2080 "seclang-parser.yy" // lalr1.cc:859 +#line 2085 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseBody()); } -#line 3529 "seclang-parser.cc" // lalr1.cc:859 +#line 3534 "seclang-parser.cc" // lalr1.cc:859 break; case 261: -#line 2084 "seclang-parser.yy" // lalr1.cc:859 +#line 2089 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentLength()); } -#line 3537 "seclang-parser.cc" // lalr1.cc:859 +#line 3542 "seclang-parser.cc" // lalr1.cc:859 break; case 262: -#line 2088 "seclang-parser.yy" // lalr1.cc:859 +#line 2093 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseProtocol()); } -#line 3545 "seclang-parser.cc" // lalr1.cc:859 +#line 3550 "seclang-parser.cc" // lalr1.cc:859 break; case 263: -#line 2092 "seclang-parser.yy" // lalr1.cc:859 +#line 2097 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseStatus()); } -#line 3553 "seclang-parser.cc" // lalr1.cc:859 +#line 3558 "seclang-parser.cc" // lalr1.cc:859 break; case 264: -#line 2096 "seclang-parser.yy" // lalr1.cc:859 +#line 2101 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerAddr()); } -#line 3561 "seclang-parser.cc" // lalr1.cc:859 +#line 3566 "seclang-parser.cc" // lalr1.cc:859 break; case 265: -#line 2100 "seclang-parser.yy" // lalr1.cc:859 +#line 2105 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerName()); } -#line 3569 "seclang-parser.cc" // lalr1.cc:859 +#line 3574 "seclang-parser.cc" // lalr1.cc:859 break; case 266: -#line 2104 "seclang-parser.yy" // lalr1.cc:859 +#line 2109 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerPort()); } -#line 3577 "seclang-parser.cc" // lalr1.cc:859 +#line 3582 "seclang-parser.cc" // lalr1.cc:859 break; case 267: -#line 2108 "seclang-parser.yy" // lalr1.cc:859 +#line 2113 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::SessionID()); } -#line 3585 "seclang-parser.cc" // lalr1.cc:859 +#line 3590 "seclang-parser.cc" // lalr1.cc:859 break; case 268: -#line 2112 "seclang-parser.yy" // lalr1.cc:859 +#line 2117 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UniqueID()); } -#line 3593 "seclang-parser.cc" // lalr1.cc:859 +#line 3598 "seclang-parser.cc" // lalr1.cc:859 break; case 269: -#line 2116 "seclang-parser.yy" // lalr1.cc:859 +#line 2121 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UrlEncodedError()); } -#line 3601 "seclang-parser.cc" // lalr1.cc:859 +#line 3606 "seclang-parser.cc" // lalr1.cc:859 break; case 270: -#line 2120 "seclang-parser.yy" // lalr1.cc:859 +#line 2125 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UserID()); } -#line 3609 "seclang-parser.cc" // lalr1.cc:859 +#line 3614 "seclang-parser.cc" // lalr1.cc:859 break; case 271: -#line 2124 "seclang-parser.yy" // lalr1.cc:859 +#line 2129 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 3617 "seclang-parser.cc" // lalr1.cc:859 +#line 3622 "seclang-parser.cc" // lalr1.cc:859 break; case 272: -#line 2128 "seclang-parser.yy" // lalr1.cc:859 +#line 2133 "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 3628 "seclang-parser.cc" // lalr1.cc:859 +#line 3633 "seclang-parser.cc" // lalr1.cc:859 break; case 273: -#line 2136 "seclang-parser.yy" // lalr1.cc:859 +#line 2141 "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 3639 "seclang-parser.cc" // lalr1.cc:859 +#line 3644 "seclang-parser.cc" // lalr1.cc:859 break; case 274: -#line 2143 "seclang-parser.yy" // lalr1.cc:859 +#line 2148 "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 3650 "seclang-parser.cc" // lalr1.cc:859 +#line 3655 "seclang-parser.cc" // lalr1.cc:859 break; case 275: -#line 2150 "seclang-parser.yy" // lalr1.cc:859 +#line 2155 "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 3661 "seclang-parser.cc" // lalr1.cc:859 +#line 3666 "seclang-parser.cc" // lalr1.cc:859 break; case 276: -#line 2157 "seclang-parser.yy" // lalr1.cc:859 +#line 2162 "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 3672 "seclang-parser.cc" // lalr1.cc:859 +#line 3677 "seclang-parser.cc" // lalr1.cc:859 break; case 277: -#line 2164 "seclang-parser.yy" // lalr1.cc:859 +#line 2169 "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 3683 "seclang-parser.cc" // lalr1.cc:859 +#line 3688 "seclang-parser.cc" // lalr1.cc:859 break; case 278: -#line 2171 "seclang-parser.yy" // lalr1.cc:859 +#line 2176 "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 3694 "seclang-parser.cc" // lalr1.cc:859 +#line 3699 "seclang-parser.cc" // lalr1.cc:859 break; case 279: -#line 2178 "seclang-parser.yy" // lalr1.cc:859 +#line 2183 "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 3705 "seclang-parser.cc" // lalr1.cc:859 +#line 3710 "seclang-parser.cc" // lalr1.cc:859 break; case 280: -#line 2185 "seclang-parser.yy" // lalr1.cc:859 +#line 2190 "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 3716 "seclang-parser.cc" // lalr1.cc:859 +#line 3721 "seclang-parser.cc" // lalr1.cc:859 break; case 281: -#line 2192 "seclang-parser.yy" // lalr1.cc:859 +#line 2197 "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 3727 "seclang-parser.cc" // lalr1.cc:859 +#line 3732 "seclang-parser.cc" // lalr1.cc:859 break; case 282: -#line 2199 "seclang-parser.yy" // lalr1.cc:859 +#line 2204 "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 3738 "seclang-parser.cc" // lalr1.cc:859 +#line 3743 "seclang-parser.cc" // lalr1.cc:859 break; case 283: -#line 2206 "seclang-parser.yy" // lalr1.cc:859 +#line 2211 "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 3749 "seclang-parser.cc" // lalr1.cc:859 +#line 3754 "seclang-parser.cc" // lalr1.cc:859 break; case 284: -#line 2213 "seclang-parser.yy" // lalr1.cc:859 +#line 2218 "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 3760 "seclang-parser.cc" // lalr1.cc:859 +#line 3765 "seclang-parser.cc" // lalr1.cc:859 break; case 285: -#line 2223 "seclang-parser.yy" // lalr1.cc:859 +#line 2228 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Accuracy(yystack_[0].value.as< std::string > ())); } -#line 3768 "seclang-parser.cc" // lalr1.cc:859 +#line 3773 "seclang-parser.cc" // lalr1.cc:859 break; case 286: -#line 2227 "seclang-parser.yy" // lalr1.cc:859 +#line 2232 "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 3776 "seclang-parser.cc" // lalr1.cc:859 +#line 3781 "seclang-parser.cc" // lalr1.cc:859 break; case 287: -#line 2231 "seclang-parser.yy" // lalr1.cc:859 +#line 2236 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Append", yystack_[1].location); } -#line 3784 "seclang-parser.cc" // lalr1.cc:859 +#line 3789 "seclang-parser.cc" // lalr1.cc:859 break; case 288: -#line 2235 "seclang-parser.yy" // lalr1.cc:859 +#line 2240 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as< std::string > ())); } -#line 3792 "seclang-parser.cc" // lalr1.cc:859 +#line 3797 "seclang-parser.cc" // lalr1.cc:859 break; case 289: -#line 2239 "seclang-parser.yy" // lalr1.cc:859 +#line 2244 "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 3800 "seclang-parser.cc" // lalr1.cc:859 +#line 3805 "seclang-parser.cc" // lalr1.cc:859 break; case 290: -#line 2243 "seclang-parser.yy" // lalr1.cc:859 +#line 2248 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Capture(yystack_[0].value.as< std::string > ())); } -#line 3808 "seclang-parser.cc" // lalr1.cc:859 +#line 3813 "seclang-parser.cc" // lalr1.cc:859 break; case 291: -#line 2247 "seclang-parser.yy" // lalr1.cc:859 +#line 2252 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Chain(yystack_[0].value.as< std::string > ())); } -#line 3816 "seclang-parser.cc" // lalr1.cc:859 +#line 3821 "seclang-parser.cc" // lalr1.cc:859 break; case 292: -#line 2251 "seclang-parser.yy" // lalr1.cc:859 +#line 2256 "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 3825 "seclang-parser.cc" // lalr1.cc:859 +#line 3830 "seclang-parser.cc" // lalr1.cc:859 break; case 293: -#line 2256 "seclang-parser.yy" // lalr1.cc:859 +#line 2261 "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 3834 "seclang-parser.cc" // lalr1.cc:859 +#line 3839 "seclang-parser.cc" // lalr1.cc:859 break; case 294: -#line 2261 "seclang-parser.yy" // lalr1.cc:859 +#line 2266 "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 3843 "seclang-parser.cc" // lalr1.cc:859 +#line 3848 "seclang-parser.cc" // lalr1.cc:859 break; case 295: -#line 2266 "seclang-parser.yy" // lalr1.cc:859 +#line 2271 "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 3851 "seclang-parser.cc" // lalr1.cc:859 +#line 3856 "seclang-parser.cc" // lalr1.cc:859 break; case 296: -#line 2270 "seclang-parser.yy" // lalr1.cc:859 +#line 2275 "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 3859 "seclang-parser.cc" // lalr1.cc:859 +#line 3864 "seclang-parser.cc" // lalr1.cc:859 break; case 297: -#line 2274 "seclang-parser.yy" // lalr1.cc:859 +#line 2279 "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 3867 "seclang-parser.cc" // lalr1.cc:859 +#line 3872 "seclang-parser.cc" // lalr1.cc:859 break; case 298: -#line 2278 "seclang-parser.yy" // lalr1.cc:859 +#line 2283 "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 3876 "seclang-parser.cc" // lalr1.cc:859 +#line 3881 "seclang-parser.cc" // lalr1.cc:859 break; case 299: -#line 2283 "seclang-parser.yy" // lalr1.cc:859 +#line 2288 "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 3885 "seclang-parser.cc" // lalr1.cc:859 +#line 3890 "seclang-parser.cc" // lalr1.cc:859 break; case 300: -#line 2288 "seclang-parser.yy" // lalr1.cc:859 +#line 2293 "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 3893 "seclang-parser.cc" // lalr1.cc:859 +#line 3898 "seclang-parser.cc" // lalr1.cc:859 break; case 301: -#line 2292 "seclang-parser.yy" // lalr1.cc:859 +#line 2297 "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 3901 "seclang-parser.cc" // lalr1.cc:859 +#line 3906 "seclang-parser.cc" // lalr1.cc:859 break; case 302: -#line 2296 "seclang-parser.yy" // lalr1.cc:859 +#line 2301 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); } -#line 3909 "seclang-parser.cc" // lalr1.cc:859 +#line 3914 "seclang-parser.cc" // lalr1.cc:859 break; case 303: -#line 2300 "seclang-parser.yy" // lalr1.cc:859 +#line 2305 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); } -#line 3917 "seclang-parser.cc" // lalr1.cc:859 +#line 3922 "seclang-parser.cc" // lalr1.cc:859 break; case 304: -#line 2304 "seclang-parser.yy" // lalr1.cc:859 +#line 2309 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); } -#line 3925 "seclang-parser.cc" // lalr1.cc:859 +#line 3930 "seclang-parser.cc" // lalr1.cc:859 break; case 305: -#line 2308 "seclang-parser.yy" // lalr1.cc:859 +#line 2313 "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 3933 "seclang-parser.cc" // lalr1.cc:859 +#line 3938 "seclang-parser.cc" // lalr1.cc:859 break; case 306: -#line 2312 "seclang-parser.yy" // lalr1.cc:859 +#line 2317 "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 3941 "seclang-parser.cc" // lalr1.cc:859 +#line 3946 "seclang-parser.cc" // lalr1.cc:859 break; case 307: -#line 2316 "seclang-parser.yy" // lalr1.cc:859 +#line 2321 "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 3949 "seclang-parser.cc" // lalr1.cc:859 +#line 3954 "seclang-parser.cc" // lalr1.cc:859 break; case 308: -#line 2320 "seclang-parser.yy" // lalr1.cc:859 +#line 2325 "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 3957 "seclang-parser.cc" // lalr1.cc:859 +#line 3962 "seclang-parser.cc" // lalr1.cc:859 break; case 309: -#line 2324 "seclang-parser.yy" // lalr1.cc:859 +#line 2329 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("DeprecateVar", yystack_[1].location); } -#line 3965 "seclang-parser.cc" // lalr1.cc:859 +#line 3970 "seclang-parser.cc" // lalr1.cc:859 break; case 310: -#line 2328 "seclang-parser.yy" // lalr1.cc:859 +#line 2333 "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 3974 "seclang-parser.cc" // lalr1.cc:859 +#line 3979 "seclang-parser.cc" // lalr1.cc:859 break; case 311: -#line 2333 "seclang-parser.yy" // lalr1.cc:859 +#line 2338 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Exec(yystack_[0].value.as< std::string > ())); } -#line 3982 "seclang-parser.cc" // lalr1.cc:859 +#line 3987 "seclang-parser.cc" // lalr1.cc:859 break; case 312: -#line 2337 "seclang-parser.yy" // lalr1.cc:859 +#line 2342 "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 3991 "seclang-parser.cc" // lalr1.cc:859 +#line 3996 "seclang-parser.cc" // lalr1.cc:859 break; case 313: -#line 2342 "seclang-parser.yy" // lalr1.cc:859 +#line 2347 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::RuleId(yystack_[0].value.as< std::string > ())); } -#line 3999 "seclang-parser.cc" // lalr1.cc:859 +#line 4004 "seclang-parser.cc" // lalr1.cc:859 break; case 314: -#line 2346 "seclang-parser.yy" // lalr1.cc:859 +#line 2351 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::InitCol(yystack_[0].value.as< std::string > ())); } -#line 4007 "seclang-parser.cc" // lalr1.cc:859 +#line 4012 "seclang-parser.cc" // lalr1.cc:859 break; case 315: -#line 2350 "seclang-parser.yy" // lalr1.cc:859 +#line 2355 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::LogData(yystack_[0].value.as< std::string > ())); } -#line 4015 "seclang-parser.cc" // lalr1.cc:859 +#line 4020 "seclang-parser.cc" // lalr1.cc:859 break; case 316: -#line 2354 "seclang-parser.yy" // lalr1.cc:859 +#line 2359 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Log(yystack_[0].value.as< std::string > ())); } -#line 4023 "seclang-parser.cc" // lalr1.cc:859 +#line 4028 "seclang-parser.cc" // lalr1.cc:859 break; case 317: -#line 2358 "seclang-parser.yy" // lalr1.cc:859 +#line 2363 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Maturity(yystack_[0].value.as< std::string > ())); } -#line 4031 "seclang-parser.cc" // lalr1.cc:859 +#line 4036 "seclang-parser.cc" // lalr1.cc:859 break; case 318: -#line 2362 "seclang-parser.yy" // lalr1.cc:859 +#line 2367 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Msg(yystack_[0].value.as< std::string > ())); } -#line 4039 "seclang-parser.cc" // lalr1.cc:859 +#line 4044 "seclang-parser.cc" // lalr1.cc:859 break; case 319: -#line 2366 "seclang-parser.yy" // lalr1.cc:859 +#line 2371 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::MultiMatch(yystack_[0].value.as< std::string > ())); } -#line 4047 "seclang-parser.cc" // lalr1.cc:859 +#line 4052 "seclang-parser.cc" // lalr1.cc:859 break; case 320: -#line 2370 "seclang-parser.yy" // lalr1.cc:859 +#line 2375 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoAuditLog(yystack_[0].value.as< std::string > ())); } -#line 4055 "seclang-parser.cc" // lalr1.cc:859 +#line 4060 "seclang-parser.cc" // lalr1.cc:859 break; case 321: -#line 2374 "seclang-parser.yy" // lalr1.cc:859 +#line 2379 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoLog(yystack_[0].value.as< std::string > ())); } -#line 4063 "seclang-parser.cc" // lalr1.cc:859 +#line 4068 "seclang-parser.cc" // lalr1.cc:859 break; case 322: -#line 2378 "seclang-parser.yy" // lalr1.cc:859 +#line 2383 "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 4071 "seclang-parser.cc" // lalr1.cc:859 +#line 4076 "seclang-parser.cc" // lalr1.cc:859 break; case 323: -#line 2382 "seclang-parser.yy" // lalr1.cc:859 +#line 2387 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Pause", yystack_[1].location); } -#line 4079 "seclang-parser.cc" // lalr1.cc:859 +#line 4084 "seclang-parser.cc" // lalr1.cc:859 break; case 324: -#line 2386 "seclang-parser.yy" // lalr1.cc:859 +#line 2391 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Phase(yystack_[0].value.as< std::string > ())); } -#line 4087 "seclang-parser.cc" // lalr1.cc:859 +#line 4092 "seclang-parser.cc" // lalr1.cc:859 break; case 325: -#line 2390 "seclang-parser.yy" // lalr1.cc:859 +#line 2395 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Prepend", yystack_[1].location); } -#line 4095 "seclang-parser.cc" // lalr1.cc:859 +#line 4100 "seclang-parser.cc" // lalr1.cc:859 break; case 326: -#line 2394 "seclang-parser.yy" // lalr1.cc:859 +#line 2399 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Proxy", yystack_[1].location); } -#line 4103 "seclang-parser.cc" // lalr1.cc:859 +#line 4108 "seclang-parser.cc" // lalr1.cc:859 break; case 327: -#line 2398 "seclang-parser.yy" // lalr1.cc:859 +#line 2403 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Redirect(yystack_[0].value.as< std::string > ())); } -#line 4111 "seclang-parser.cc" // lalr1.cc:859 +#line 4116 "seclang-parser.cc" // lalr1.cc:859 break; case 328: -#line 2402 "seclang-parser.yy" // lalr1.cc:859 +#line 2407 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Rev(yystack_[0].value.as< std::string > ())); } -#line 4119 "seclang-parser.cc" // lalr1.cc:859 +#line 4124 "seclang-parser.cc" // lalr1.cc:859 break; case 329: -#line 2406 "seclang-parser.yy" // lalr1.cc:859 +#line 2411 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseArg", yystack_[1].location); } -#line 4127 "seclang-parser.cc" // lalr1.cc:859 +#line 4132 "seclang-parser.cc" // lalr1.cc:859 break; case 330: -#line 2410 "seclang-parser.yy" // lalr1.cc:859 +#line 2415 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseMatched", yystack_[1].location); } -#line 4135 "seclang-parser.cc" // lalr1.cc:859 +#line 4140 "seclang-parser.cc" // lalr1.cc:859 break; case 331: -#line 2414 "seclang-parser.yy" // lalr1.cc:859 +#line 2419 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseMatchedBytes", yystack_[1].location); } -#line 4143 "seclang-parser.cc" // lalr1.cc:859 +#line 4148 "seclang-parser.cc" // lalr1.cc:859 break; case 332: -#line 2418 "seclang-parser.yy" // lalr1.cc:859 +#line 2423 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseRequestHeader", yystack_[1].location); } -#line 4151 "seclang-parser.cc" // lalr1.cc:859 +#line 4156 "seclang-parser.cc" // lalr1.cc:859 break; case 333: -#line 2422 "seclang-parser.yy" // lalr1.cc:859 +#line 2427 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseResponseHeader", yystack_[1].location); } -#line 4159 "seclang-parser.cc" // lalr1.cc:859 +#line 4164 "seclang-parser.cc" // lalr1.cc:859 break; case 334: -#line 2426 "seclang-parser.yy" // lalr1.cc:859 +#line 2431 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SetEnv", yystack_[1].location); } -#line 4167 "seclang-parser.cc" // lalr1.cc:859 +#line 4172 "seclang-parser.cc" // lalr1.cc:859 break; case 335: -#line 2430 "seclang-parser.yy" // lalr1.cc:859 +#line 2435 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetRSC(yystack_[0].value.as< std::string > ())); } -#line 4175 "seclang-parser.cc" // lalr1.cc:859 +#line 4180 "seclang-parser.cc" // lalr1.cc:859 break; case 336: -#line 2434 "seclang-parser.yy" // lalr1.cc:859 +#line 2439 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetSID(yystack_[0].value.as< std::string > ())); } -#line 4183 "seclang-parser.cc" // lalr1.cc:859 +#line 4188 "seclang-parser.cc" // lalr1.cc:859 break; case 337: -#line 2438 "seclang-parser.yy" // lalr1.cc:859 +#line 2443 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetUID(yystack_[0].value.as< std::string > ())); } -#line 4191 "seclang-parser.cc" // lalr1.cc:859 +#line 4196 "seclang-parser.cc" // lalr1.cc:859 break; case 338: -#line 2442 "seclang-parser.yy" // lalr1.cc:859 +#line 2447 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); } -#line 4199 "seclang-parser.cc" // lalr1.cc:859 +#line 4204 "seclang-parser.cc" // lalr1.cc:859 break; case 339: -#line 2446 "seclang-parser.yy" // lalr1.cc:859 +#line 2451 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Severity(yystack_[0].value.as< std::string > ())); } -#line 4207 "seclang-parser.cc" // lalr1.cc:859 +#line 4212 "seclang-parser.cc" // lalr1.cc:859 break; case 340: -#line 2450 "seclang-parser.yy" // lalr1.cc:859 +#line 2455 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Skip(yystack_[0].value.as< std::string > ())); } -#line 4215 "seclang-parser.cc" // lalr1.cc:859 +#line 4220 "seclang-parser.cc" // lalr1.cc:859 break; case 341: -#line 2454 "seclang-parser.yy" // lalr1.cc:859 +#line 2459 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SkipAfter(yystack_[0].value.as< std::string > ())); } -#line 4223 "seclang-parser.cc" // lalr1.cc:859 +#line 4228 "seclang-parser.cc" // lalr1.cc:859 break; case 342: -#line 2458 "seclang-parser.yy" // lalr1.cc:859 +#line 2463 "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 4231 "seclang-parser.cc" // lalr1.cc:859 +#line 4236 "seclang-parser.cc" // lalr1.cc:859 break; case 343: -#line 2462 "seclang-parser.yy" // lalr1.cc:859 +#line 2467 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Tag(yystack_[0].value.as< std::string > ())); } -#line 4239 "seclang-parser.cc" // lalr1.cc:859 +#line 4244 "seclang-parser.cc" // lalr1.cc:859 break; case 344: -#line 2466 "seclang-parser.yy" // lalr1.cc:859 +#line 2471 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Ver(yystack_[0].value.as< std::string > ())); } -#line 4247 "seclang-parser.cc" // lalr1.cc:859 +#line 4252 "seclang-parser.cc" // lalr1.cc:859 break; case 345: -#line 2470 "seclang-parser.yy" // lalr1.cc:859 +#line 2475 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::XmlNS(yystack_[0].value.as< std::string > ())); } -#line 4255 "seclang-parser.cc" // lalr1.cc:859 +#line 4260 "seclang-parser.cc" // lalr1.cc:859 break; case 346: -#line 2474 "seclang-parser.yy" // lalr1.cc:859 +#line 2479 "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 4263 "seclang-parser.cc" // lalr1.cc:859 +#line 4268 "seclang-parser.cc" // lalr1.cc:859 break; case 347: -#line 2478 "seclang-parser.yy" // lalr1.cc:859 +#line 2483 "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 4271 "seclang-parser.cc" // lalr1.cc:859 +#line 4276 "seclang-parser.cc" // lalr1.cc:859 break; case 348: -#line 2482 "seclang-parser.yy" // lalr1.cc:859 +#line 2487 "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 4279 "seclang-parser.cc" // lalr1.cc:859 +#line 4284 "seclang-parser.cc" // lalr1.cc:859 break; case 349: -#line 2486 "seclang-parser.yy" // lalr1.cc:859 +#line 2491 "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 4287 "seclang-parser.cc" // lalr1.cc:859 +#line 4292 "seclang-parser.cc" // lalr1.cc:859 break; case 350: -#line 2490 "seclang-parser.yy" // lalr1.cc:859 +#line 2495 "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 4295 "seclang-parser.cc" // lalr1.cc:859 +#line 4300 "seclang-parser.cc" // lalr1.cc:859 break; case 351: -#line 2494 "seclang-parser.yy" // lalr1.cc:859 +#line 2499 "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 4303 "seclang-parser.cc" // lalr1.cc:859 +#line 4308 "seclang-parser.cc" // lalr1.cc:859 break; case 352: -#line 2498 "seclang-parser.yy" // lalr1.cc:859 +#line 2503 "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 4311 "seclang-parser.cc" // lalr1.cc:859 +#line 4316 "seclang-parser.cc" // lalr1.cc:859 break; case 353: -#line 2502 "seclang-parser.yy" // lalr1.cc:859 +#line 2507 "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 4319 "seclang-parser.cc" // lalr1.cc:859 +#line 4324 "seclang-parser.cc" // lalr1.cc:859 break; case 354: -#line 2506 "seclang-parser.yy" // lalr1.cc:859 +#line 2511 "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 4327 "seclang-parser.cc" // lalr1.cc:859 +#line 4332 "seclang-parser.cc" // lalr1.cc:859 break; case 355: -#line 2510 "seclang-parser.yy" // lalr1.cc:859 +#line 2515 "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 4335 "seclang-parser.cc" // lalr1.cc:859 +#line 4340 "seclang-parser.cc" // lalr1.cc:859 break; case 356: -#line 2514 "seclang-parser.yy" // lalr1.cc:859 +#line 2519 "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 4343 "seclang-parser.cc" // lalr1.cc:859 +#line 4348 "seclang-parser.cc" // lalr1.cc:859 break; case 357: -#line 2518 "seclang-parser.yy" // lalr1.cc:859 +#line 2523 "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 4351 "seclang-parser.cc" // lalr1.cc:859 +#line 4356 "seclang-parser.cc" // lalr1.cc:859 break; case 358: -#line 2522 "seclang-parser.yy" // lalr1.cc:859 +#line 2527 "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 4359 "seclang-parser.cc" // lalr1.cc:859 +#line 4364 "seclang-parser.cc" // lalr1.cc:859 break; case 359: -#line 2526 "seclang-parser.yy" // lalr1.cc:859 +#line 2531 "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 4367 "seclang-parser.cc" // lalr1.cc:859 +#line 4372 "seclang-parser.cc" // lalr1.cc:859 break; case 360: -#line 2530 "seclang-parser.yy" // lalr1.cc:859 +#line 2535 "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 4375 "seclang-parser.cc" // lalr1.cc:859 +#line 4380 "seclang-parser.cc" // lalr1.cc:859 break; case 361: -#line 2534 "seclang-parser.yy" // lalr1.cc:859 +#line 2539 "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 4383 "seclang-parser.cc" // lalr1.cc:859 +#line 4388 "seclang-parser.cc" // lalr1.cc:859 break; case 362: -#line 2538 "seclang-parser.yy" // lalr1.cc:859 +#line 2543 "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 4391 "seclang-parser.cc" // lalr1.cc:859 +#line 4396 "seclang-parser.cc" // lalr1.cc:859 break; case 363: -#line 2542 "seclang-parser.yy" // lalr1.cc:859 +#line 2547 "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 4399 "seclang-parser.cc" // lalr1.cc:859 +#line 4404 "seclang-parser.cc" // lalr1.cc:859 break; case 364: -#line 2546 "seclang-parser.yy" // lalr1.cc:859 +#line 2551 "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 4407 "seclang-parser.cc" // lalr1.cc:859 +#line 4412 "seclang-parser.cc" // lalr1.cc:859 break; case 365: -#line 2550 "seclang-parser.yy" // lalr1.cc:859 +#line 2555 "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 4415 "seclang-parser.cc" // lalr1.cc:859 +#line 4420 "seclang-parser.cc" // lalr1.cc:859 break; case 366: -#line 2554 "seclang-parser.yy" // lalr1.cc:859 +#line 2559 "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 4423 "seclang-parser.cc" // lalr1.cc:859 +#line 4428 "seclang-parser.cc" // lalr1.cc:859 break; case 367: -#line 2558 "seclang-parser.yy" // lalr1.cc:859 +#line 2563 "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 4431 "seclang-parser.cc" // lalr1.cc:859 +#line 4436 "seclang-parser.cc" // lalr1.cc:859 break; case 368: -#line 2562 "seclang-parser.yy" // lalr1.cc:859 +#line 2567 "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 4439 "seclang-parser.cc" // lalr1.cc:859 +#line 4444 "seclang-parser.cc" // lalr1.cc:859 break; case 369: -#line 2566 "seclang-parser.yy" // lalr1.cc:859 +#line 2571 "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 4447 "seclang-parser.cc" // lalr1.cc:859 +#line 4452 "seclang-parser.cc" // lalr1.cc:859 break; case 370: -#line 2570 "seclang-parser.yy" // lalr1.cc:859 +#line 2575 "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 4455 "seclang-parser.cc" // lalr1.cc:859 +#line 4460 "seclang-parser.cc" // lalr1.cc:859 break; case 371: -#line 2574 "seclang-parser.yy" // lalr1.cc:859 +#line 2579 "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 4463 "seclang-parser.cc" // lalr1.cc:859 +#line 4468 "seclang-parser.cc" // lalr1.cc:859 break; case 372: -#line 2578 "seclang-parser.yy" // lalr1.cc:859 +#line 2583 "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 4471 "seclang-parser.cc" // lalr1.cc:859 +#line 4476 "seclang-parser.cc" // lalr1.cc:859 break; case 373: -#line 2582 "seclang-parser.yy" // lalr1.cc:859 +#line 2587 "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 4479 "seclang-parser.cc" // lalr1.cc:859 +#line 4484 "seclang-parser.cc" // lalr1.cc:859 break; case 374: -#line 2586 "seclang-parser.yy" // lalr1.cc:859 +#line 2591 "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 4487 "seclang-parser.cc" // lalr1.cc:859 +#line 4492 "seclang-parser.cc" // lalr1.cc:859 break; case 375: -#line 2593 "seclang-parser.yy" // lalr1.cc:859 +#line 2598 "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 4495 "seclang-parser.cc" // lalr1.cc:859 +#line 4500 "seclang-parser.cc" // lalr1.cc:859 break; case 376: -#line 2597 "seclang-parser.yy" // lalr1.cc:859 +#line 2602 "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 4503 "seclang-parser.cc" // lalr1.cc:859 +#line 4508 "seclang-parser.cc" // lalr1.cc:859 break; case 377: -#line 2601 "seclang-parser.yy" // lalr1.cc:859 +#line 2606 "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 4511 "seclang-parser.cc" // lalr1.cc:859 +#line 4516 "seclang-parser.cc" // lalr1.cc:859 break; case 378: -#line 2605 "seclang-parser.yy" // lalr1.cc:859 +#line 2610 "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 4519 "seclang-parser.cc" // lalr1.cc:859 +#line 4524 "seclang-parser.cc" // lalr1.cc:859 break; case 379: -#line 2609 "seclang-parser.yy" // lalr1.cc:859 +#line 2614 "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 4527 "seclang-parser.cc" // lalr1.cc:859 +#line 4532 "seclang-parser.cc" // lalr1.cc:859 break; case 380: -#line 2616 "seclang-parser.yy" // lalr1.cc:859 +#line 2621 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > (); } -#line 4535 "seclang-parser.cc" // lalr1.cc:859 +#line 4540 "seclang-parser.cc" // lalr1.cc:859 break; case 381: -#line 2621 "seclang-parser.yy" // lalr1.cc:859 +#line 2626 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[1].value.as< std::string > () + yystack_[0].value.as< std::string > (); } -#line 4543 "seclang-parser.cc" // lalr1.cc:859 +#line 4548 "seclang-parser.cc" // lalr1.cc:859 break; case 382: -#line 2628 "seclang-parser.yy" // lalr1.cc:859 +#line 2633 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[0].value.as< std::string > (); } -#line 4551 "seclang-parser.cc" // lalr1.cc:859 +#line 4556 "seclang-parser.cc" // lalr1.cc:859 break; case 383: -#line 2633 "seclang-parser.yy" // lalr1.cc:859 +#line 2638 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::string > () = yystack_[1].value.as< std::string > () + yystack_[0].value.as< std::string > (); } -#line 4559 "seclang-parser.cc" // lalr1.cc:859 +#line 4564 "seclang-parser.cc" // lalr1.cc:859 break; -#line 4563 "seclang-parser.cc" // lalr1.cc:859 +#line 4568 "seclang-parser.cc" // lalr1.cc:859 default: break; } @@ -5469,38 +5474,38 @@ namespace yy { 905, 909, 918, 927, 931, 935, 940, 944, 948, 953, 958, 963, 968, 972, 976, 980, 984, 988, 992, 996, 1000, 1004, 1008, 1012, 1016, 1020, 1024, 1028, 1032, 1036, - 1040, 1054, 1055, 1079, 1098, 1113, 1137, 1184, 1188, 1192, - 1196, 1200, 1204, 1208, 1212, 1216, 1225, 1229, 1234, 1239, - 1244, 1249, 1254, 1267, 1280, 1293, 1306, 1332, 1358, 1370, - 1390, 1418, 1423, 1428, 1437, 1442, 1446, 1450, 1454, 1458, - 1462, 1466, 1467, 1468, 1480, 1486, 1490, 1494, 1495, 1496, - 1497, 1498, 1499, 1500, 1503, 1511, 1515, 1522, 1527, 1533, - 1539, 1545, 1552, 1562, 1566, 1570, 1574, 1578, 1582, 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, 1815, 1819, 1823, 1828, - 1832, 1836, 1841, 1845, 1849, 1854, 1858, 1862, 1867, 1871, - 1875, 1879, 1883, 1887, 1892, 1896, 1900, 1905, 1909, 1913, - 1918, 1923, 1927, 1931, 1935, 1939, 1943, 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, 2135, 2142, 2149, 2156, 2163, 2170, 2177, - 2184, 2191, 2198, 2205, 2212, 2222, 2226, 2230, 2234, 2238, - 2242, 2246, 2250, 2255, 2260, 2265, 2269, 2273, 2277, 2282, - 2287, 2291, 2295, 2299, 2303, 2307, 2311, 2315, 2319, 2323, - 2327, 2332, 2336, 2341, 2345, 2349, 2353, 2357, 2361, 2365, - 2369, 2373, 2377, 2381, 2385, 2389, 2393, 2397, 2401, 2405, - 2409, 2413, 2417, 2421, 2425, 2429, 2433, 2437, 2441, 2445, - 2449, 2453, 2457, 2461, 2465, 2469, 2473, 2477, 2481, 2485, - 2489, 2493, 2497, 2501, 2505, 2509, 2513, 2517, 2521, 2525, - 2529, 2533, 2537, 2541, 2545, 2549, 2553, 2557, 2561, 2565, - 2569, 2573, 2577, 2581, 2585, 2592, 2596, 2600, 2604, 2608, - 2615, 2620, 2627, 2632 + 1040, 1054, 1055, 1079, 1098, 1113, 1137, 1189, 1193, 1197, + 1201, 1205, 1209, 1213, 1217, 1221, 1230, 1234, 1239, 1244, + 1249, 1254, 1259, 1272, 1285, 1298, 1311, 1337, 1363, 1375, + 1395, 1423, 1428, 1433, 1442, 1447, 1451, 1455, 1459, 1463, + 1467, 1471, 1472, 1473, 1485, 1491, 1495, 1499, 1500, 1501, + 1502, 1503, 1504, 1505, 1508, 1516, 1520, 1527, 1532, 1538, + 1544, 1550, 1557, 1567, 1571, 1575, 1579, 1583, 1587, 1591, + 1595, 1599, 1603, 1607, 1611, 1615, 1619, 1623, 1627, 1631, + 1635, 1639, 1643, 1647, 1651, 1655, 1659, 1663, 1667, 1671, + 1675, 1679, 1683, 1687, 1691, 1695, 1699, 1703, 1707, 1711, + 1715, 1719, 1723, 1727, 1731, 1735, 1739, 1743, 1747, 1751, + 1755, 1759, 1763, 1767, 1771, 1775, 1779, 1783, 1787, 1791, + 1795, 1799, 1803, 1807, 1811, 1815, 1820, 1824, 1828, 1833, + 1837, 1841, 1846, 1850, 1854, 1859, 1863, 1867, 1872, 1876, + 1880, 1884, 1888, 1892, 1897, 1901, 1905, 1910, 1914, 1918, + 1923, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960, + 1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, + 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040, + 2044, 2048, 2052, 2056, 2060, 2064, 2068, 2072, 2076, 2080, + 2084, 2088, 2092, 2096, 2100, 2104, 2108, 2112, 2116, 2120, + 2124, 2128, 2132, 2140, 2147, 2154, 2161, 2168, 2175, 2182, + 2189, 2196, 2203, 2210, 2217, 2227, 2231, 2235, 2239, 2243, + 2247, 2251, 2255, 2260, 2265, 2270, 2274, 2278, 2282, 2287, + 2292, 2296, 2300, 2304, 2308, 2312, 2316, 2320, 2324, 2328, + 2332, 2337, 2341, 2346, 2350, 2354, 2358, 2362, 2366, 2370, + 2374, 2378, 2382, 2386, 2390, 2394, 2398, 2402, 2406, 2410, + 2414, 2418, 2422, 2426, 2430, 2434, 2438, 2442, 2446, 2450, + 2454, 2458, 2462, 2466, 2470, 2474, 2478, 2482, 2486, 2490, + 2494, 2498, 2502, 2506, 2510, 2514, 2518, 2522, 2526, 2530, + 2534, 2538, 2542, 2546, 2550, 2554, 2558, 2562, 2566, 2570, + 2574, 2578, 2582, 2586, 2590, 2597, 2601, 2605, 2609, 2613, + 2620, 2625, 2632, 2637 }; // Print the state stack on the debug stream. @@ -5535,8 +5540,8 @@ namespace yy { } // yy -#line 5539 "seclang-parser.cc" // lalr1.cc:1167 -#line 2638 "seclang-parser.yy" // lalr1.cc:1168 +#line 5544 "seclang-parser.cc" // lalr1.cc:1167 +#line 2643 "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.yy b/src/parser/seclang-parser.yy index 580f48a339..75a33eb3c7 100644 --- a/src/parser/seclang-parser.yy +++ b/src/parser/seclang-parser.yy @@ -1156,6 +1156,11 @@ expression: driver.error(@0, "The transformation none is not suitable to be part of the SecDefaultActions"); YYERROR; } + actions::disruptive::Block *block = dynamic_cast(a); + if (block != NULL) { + driver.error(@0, "The 'block' action cannot be used as a default action"); + YYERROR; + } checkedActions.push_back(a); } else { driver.error(@0, "The action '" + a->m_name + "' is not suitable to be part of the SecDefaultActions"); diff --git a/test/test-cases/regression/action-block.json b/test/test-cases/regression/action-block.json new file mode 100644 index 0000000000..926a55f4ce --- /dev/null +++ b/test/test-cases/regression/action-block.json @@ -0,0 +1,34 @@ +[ + { + "enabled":1, + "version_min":300000, + "title":"Testing 'block' action as default action is rejected by the parser", + "expected":{ + "parser_error": "The 'block' action cannot be used as a default action" + }, + "client":{ + "ip":"200.249.12.31", + "port":12300 + }, + "request":{ + "headers":{ + "Host":"a.b.com", + "User-Agent":"curl/7.38.0", + "Accept":"*/*", + "User-Agent":"My sweet little browser", + "Cookie": "PHPSESSID=rAAAAAAA2t5uvjq435r4q7ib3vtdjq120" + }, + "uri":"/path1", + "method":"GET" + }, + "server":{ + "ip":"200.249.12.31", + "port":80 + }, + "rules":[ + "SecRuleEngine On", + "SecDefaultAction \"phase:1,log,block\"", + "SecRule REQUEST_URI \"@contains path1\" \"phase:1,block,msg:'block',id:500065\"" + ] + } +]