diff --git a/src/parser/seclang-parser.cc b/src/parser/seclang-parser.cc index ec757bae..19e3820f 100644 --- a/src/parser/seclang-parser.cc +++ b/src/parser/seclang-parser.cc @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton implementation for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2013 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ // First part of user declarations. -#line 37 "seclang-parser.cc" // lalr1.cc:399 +#line 37 "seclang-parser.cc" // lalr1.cc:404 # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -47,13 +47,13 @@ // User implementation prologue. -#line 51 "seclang-parser.cc" // lalr1.cc:407 +#line 51 "seclang-parser.cc" // lalr1.cc:412 // Unqualified %code blocks. -#line 359 "seclang-parser.yy" // lalr1.cc:408 +#line 359 "seclang-parser.yy" // lalr1.cc:413 #include "src/parser/driver.h" -#line 57 "seclang-parser.cc" // lalr1.cc:408 +#line 57 "seclang-parser.cc" // lalr1.cc:413 #ifndef YY_ @@ -130,7 +130,7 @@ #endif // !YYDEBUG #define yyerrok (yyerrstatus_ = 0) -#define yyclearin (yyempty = true) +#define yyclearin (yyla.clear ()) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab @@ -139,7 +139,7 @@ namespace yy { -#line 143 "seclang-parser.cc" // lalr1.cc:474 +#line 143 "seclang-parser.cc" // lalr1.cc:479 /* Return YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is @@ -202,7 +202,7 @@ namespace yy { // by_state. inline seclang_parser::by_state::by_state () - : state (empty) + : state (empty_state) {} inline @@ -210,12 +210,19 @@ namespace yy { : state (other.state) {} + inline + void + seclang_parser::by_state::clear () + { + state = empty_state; + } + inline void seclang_parser::by_state::move (by_state& that) { state = that.state; - that.state = empty; + that.clear (); } inline @@ -227,7 +234,10 @@ namespace yy { seclang_parser::symbol_number_type seclang_parser::by_state::type_get () const { - return state == empty ? 0 : yystos_[state]; + if (state == empty_state) + return empty_symbol; + else + return yystos_[state]; } inline @@ -467,7 +477,7 @@ namespace yy { } // that is emptied. - that.type = empty; + that.type = empty_symbol; } inline @@ -725,6 +735,10 @@ namespace yy { std::ostream& yyoutput = yyo; YYUSE (yyoutput); symbol_number_type yytype = yysym.type_get (); + // Avoid a (spurious) G++ 4.8 warning about "array subscript is + // below array bounds". + if (yysym.empty ()) + std::abort (); yyo << (yytype < yyntokens_ ? "token" : "nterm") << ' ' << yytname_[yytype] << " (" << yysym.location << ": "; @@ -809,9 +823,6 @@ namespace yy { int seclang_parser::parse () { - /// Whether yyla contains a lookahead. - bool yyempty = true; - // State. int yyn; /// Length of the RHS of the rule being reduced. @@ -838,13 +849,13 @@ namespace yy { // User initialization code. - #line 352 "/home/vhora/modsecurity-v3.0.2/src/parser/seclang-parser.yy" // lalr1.cc:725 + #line 352 "/home/zimmerle/core-trustwave/ModSecurity/src/parser/seclang-parser.yy" // lalr1.cc:741 { // Initialize the initial location. yyla.location.begin.filename = yyla.location.end.filename = &driver.file; } -#line 848 "seclang-parser.cc" // lalr1.cc:725 +#line 859 "seclang-parser.cc" // lalr1.cc:741 /* Initialize the stack. The initial state will be set in yynewstate, since the latter expects the semantical and the @@ -872,7 +883,7 @@ namespace yy { goto yydefault; // Read a lookahead token. - if (yyempty) + if (yyla.empty ()) { YYCDEBUG << "Reading a token: "; try @@ -885,7 +896,6 @@ namespace yy { error (yyexc); goto yyerrlab1; } - yyempty = false; } YY_SYMBOL_PRINT ("Next token is", yyla); @@ -905,9 +915,6 @@ namespace yy { goto yyreduce; } - // Discard the token being shifted. - yyempty = true; - // Count tokens shifted since error; after three, turn off error status. if (yyerrstatus_) --yyerrstatus_; @@ -1177,241 +1184,241 @@ namespace yy { switch (yyn) { case 2: -#line 736 "seclang-parser.yy" // lalr1.cc:847 +#line 736 "seclang-parser.yy" // lalr1.cc:859 { return 0; } -#line 1185 "seclang-parser.cc" // lalr1.cc:847 +#line 1192 "seclang-parser.cc" // lalr1.cc:859 break; case 6: -#line 749 "seclang-parser.yy" // lalr1.cc:847 +#line 749 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStorageDirMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1193 "seclang-parser.cc" // lalr1.cc:847 +#line 1200 "seclang-parser.cc" // lalr1.cc:859 break; case 7: -#line 755 "seclang-parser.yy" // lalr1.cc:847 +#line 755 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStorageDir(yystack_[0].value.as< std::string > ()); } -#line 1201 "seclang-parser.cc" // lalr1.cc:847 +#line 1208 "seclang-parser.cc" // lalr1.cc:859 break; case 8: -#line 761 "seclang-parser.yy" // lalr1.cc:847 +#line 761 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::RelevantOnlyAuditLogStatus); } -#line 1209 "seclang-parser.cc" // lalr1.cc:847 +#line 1216 "seclang-parser.cc" // lalr1.cc:859 break; case 9: -#line 765 "seclang-parser.yy" // lalr1.cc:847 +#line 765 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OffAuditLogStatus); } -#line 1217 "seclang-parser.cc" // lalr1.cc:847 +#line 1224 "seclang-parser.cc" // lalr1.cc:859 break; case 10: -#line 769 "seclang-parser.yy" // lalr1.cc:847 +#line 769 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setStatus(modsecurity::audit_log::AuditLog::OnAuditLogStatus); } -#line 1225 "seclang-parser.cc" // lalr1.cc:847 +#line 1232 "seclang-parser.cc" // lalr1.cc:859 break; case 11: -#line 775 "seclang-parser.yy" // lalr1.cc:847 +#line 775 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFileMode(strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8)); } -#line 1233 "seclang-parser.cc" // lalr1.cc:847 +#line 1240 "seclang-parser.cc" // lalr1.cc:859 break; case 12: -#line 781 "seclang-parser.yy" // lalr1.cc:847 +#line 781 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFilePath2(yystack_[0].value.as< std::string > ()); } -#line 1241 "seclang-parser.cc" // lalr1.cc:847 +#line 1248 "seclang-parser.cc" // lalr1.cc:859 break; case 13: -#line 787 "seclang-parser.yy" // lalr1.cc:847 +#line 787 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setParts(yystack_[0].value.as< std::string > ()); } -#line 1249 "seclang-parser.cc" // lalr1.cc:847 +#line 1256 "seclang-parser.cc" // lalr1.cc:859 break; case 14: -#line 793 "seclang-parser.yy" // lalr1.cc:847 +#line 793 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFilePath1(yystack_[0].value.as< std::string > ()); } -#line 1257 "seclang-parser.cc" // lalr1.cc:847 +#line 1264 "seclang-parser.cc" // lalr1.cc:859 break; case 15: -#line 798 "seclang-parser.yy" // lalr1.cc:847 +#line 798 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::JSONAuditLogFormat); } -#line 1265 "seclang-parser.cc" // lalr1.cc:847 +#line 1272 "seclang-parser.cc" // lalr1.cc:859 break; case 16: -#line 803 "seclang-parser.yy" // lalr1.cc:847 +#line 803 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setFormat(modsecurity::audit_log::AuditLog::NativeAuditLogFormat); } -#line 1273 "seclang-parser.cc" // lalr1.cc:847 +#line 1280 "seclang-parser.cc" // lalr1.cc:859 break; case 17: -#line 809 "seclang-parser.yy" // lalr1.cc:847 +#line 809 "seclang-parser.yy" // lalr1.cc:859 { std::string relevant_status(yystack_[0].value.as< std::string > ()); driver.m_auditLog->setRelevantStatus(relevant_status); } -#line 1282 "seclang-parser.cc" // lalr1.cc:847 +#line 1289 "seclang-parser.cc" // lalr1.cc:859 break; case 18: -#line 816 "seclang-parser.yy" // lalr1.cc:847 +#line 816 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::SerialAuditLogType); } -#line 1290 "seclang-parser.cc" // lalr1.cc:847 +#line 1297 "seclang-parser.cc" // lalr1.cc:859 break; case 19: -#line 820 "seclang-parser.yy" // lalr1.cc:847 +#line 820 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::ParallelAuditLogType); } -#line 1298 "seclang-parser.cc" // lalr1.cc:847 +#line 1305 "seclang-parser.cc" // lalr1.cc:859 break; case 20: -#line 824 "seclang-parser.yy" // lalr1.cc:847 +#line 824 "seclang-parser.yy" // lalr1.cc:859 { driver.m_auditLog->setType(modsecurity::audit_log::AuditLog::HttpsAuditLogType); } -#line 1306 "seclang-parser.cc" // lalr1.cc:847 +#line 1313 "seclang-parser.cc" // lalr1.cc:859 break; case 21: -#line 830 "seclang-parser.yy" // lalr1.cc:847 +#line 830 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1314 "seclang-parser.cc" // lalr1.cc:847 +#line 1321 "seclang-parser.cc" // lalr1.cc:859 break; case 22: -#line 834 "seclang-parser.yy" // lalr1.cc:847 +#line 834 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadKeepFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1322 "seclang-parser.cc" // lalr1.cc:847 +#line 1329 "seclang-parser.cc" // lalr1.cc:859 break; case 23: -#line 838 "seclang-parser.yy" // lalr1.cc:847 +#line 838 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecUploadKeepFiles RelevantOnly is not currently supported. Accepted values are On or Off"); YYERROR; } -#line 1331 "seclang-parser.cc" // lalr1.cc:847 +#line 1338 "seclang-parser.cc" // lalr1.cc:859 break; case 24: -#line 843 "seclang-parser.yy" // lalr1.cc:847 +#line 843 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadFileLimit.m_set = true; driver.m_uploadFileLimit.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 10); } -#line 1340 "seclang-parser.cc" // lalr1.cc:847 +#line 1347 "seclang-parser.cc" // lalr1.cc:859 break; case 25: -#line 848 "seclang-parser.yy" // lalr1.cc:847 +#line 848 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadFileMode.m_set = true; driver.m_uploadFileMode.m_value = strtol(yystack_[0].value.as< std::string > ().c_str(), NULL, 8); } -#line 1349 "seclang-parser.cc" // lalr1.cc:847 +#line 1356 "seclang-parser.cc" // lalr1.cc:859 break; case 26: -#line 853 "seclang-parser.yy" // lalr1.cc:847 +#line 853 "seclang-parser.yy" // lalr1.cc:859 { driver.m_uploadDirectory.m_set = true; driver.m_uploadDirectory.m_value = yystack_[0].value.as< std::string > (); } -#line 1358 "seclang-parser.cc" // lalr1.cc:847 +#line 1365 "seclang-parser.cc" // lalr1.cc:859 break; case 27: -#line 858 "seclang-parser.yy" // lalr1.cc:847 +#line 858 "seclang-parser.yy" // lalr1.cc:859 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1366 "seclang-parser.cc" // lalr1.cc:847 +#line 1373 "seclang-parser.cc" // lalr1.cc:859 break; case 28: -#line 862 "seclang-parser.yy" // lalr1.cc:847 +#line 862 "seclang-parser.yy" // lalr1.cc:859 { driver.m_tmpSaveUploadedFiles = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1374 "seclang-parser.cc" // lalr1.cc:847 +#line 1381 "seclang-parser.cc" // lalr1.cc:859 break; case 29: -#line 869 "seclang-parser.yy" // lalr1.cc:847 +#line 869 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 1382 "seclang-parser.cc" // lalr1.cc:847 +#line 1389 "seclang-parser.cc" // lalr1.cc:859 break; case 30: -#line 873 "seclang-parser.yy" // lalr1.cc:847 +#line 873 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 1390 "seclang-parser.cc" // lalr1.cc:847 +#line 1397 "seclang-parser.cc" // lalr1.cc:859 break; case 31: -#line 880 "seclang-parser.yy" // lalr1.cc:847 +#line 880 "seclang-parser.yy" // lalr1.cc:859 { ACTION_INIT(yystack_[0].value.as< std::unique_ptr > (), yystack_[3].location) yystack_[2].value.as< std::unique_ptr > > > ()->push_back(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[2].value.as< std::unique_ptr > > > ()); } -#line 1400 "seclang-parser.cc" // lalr1.cc:847 +#line 1407 "seclang-parser.cc" // lalr1.cc:859 break; case 32: -#line 886 "seclang-parser.yy" // lalr1.cc:847 +#line 886 "seclang-parser.yy" // lalr1.cc:859 { std::unique_ptr>> b(new std::vector>()); ACTION_INIT(yystack_[0].value.as< std::unique_ptr > (), yystack_[1].location) b->push_back(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > > > () = std::move(b); } -#line 1411 "seclang-parser.cc" // lalr1.cc:847 +#line 1418 "seclang-parser.cc" // lalr1.cc:859 break; case 33: -#line 896 "seclang-parser.yy" // lalr1.cc:847 +#line 896 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); std::string error; @@ -1420,11 +1427,11 @@ namespace yy { YYERROR; } } -#line 1424 "seclang-parser.cc" // lalr1.cc:847 +#line 1431 "seclang-parser.cc" // lalr1.cc:859 break; case 34: -#line 905 "seclang-parser.yy" // lalr1.cc:847 +#line 905 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); yylhs.value.as< std::unique_ptr > ()->m_negation = true; @@ -1434,11 +1441,11 @@ namespace yy { YYERROR; } } -#line 1438 "seclang-parser.cc" // lalr1.cc:847 +#line 1445 "seclang-parser.cc" // lalr1.cc:859 break; case 35: -#line 915 "seclang-parser.yy" // lalr1.cc:847 +#line 915 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); std::string error; @@ -1447,11 +1454,11 @@ namespace yy { YYERROR; } } -#line 1451 "seclang-parser.cc" // lalr1.cc:847 +#line 1458 "seclang-parser.cc" // lalr1.cc:859 break; case 36: -#line 924 "seclang-parser.yy" // lalr1.cc:847 +#line 924 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); yylhs.value.as< std::unique_ptr > ()->m_negation = true; @@ -1461,286 +1468,286 @@ namespace yy { YYERROR; } } -#line 1465 "seclang-parser.cc" // lalr1.cc:847 +#line 1472 "seclang-parser.cc" // lalr1.cc:859 break; case 37: -#line 937 "seclang-parser.yy" // lalr1.cc:847 +#line 937 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::UnconditionalMatch()); } -#line 1473 "seclang-parser.cc" // lalr1.cc:847 +#line 1480 "seclang-parser.cc" // lalr1.cc:859 break; case 38: -#line 941 "seclang-parser.yy" // lalr1.cc:847 +#line 941 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectSQLi()); } -#line 1481 "seclang-parser.cc" // lalr1.cc:847 +#line 1488 "seclang-parser.cc" // lalr1.cc:859 break; case 39: -#line 945 "seclang-parser.yy" // lalr1.cc:847 +#line 945 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::DetectXSS()); } -#line 1489 "seclang-parser.cc" // lalr1.cc:847 +#line 1496 "seclang-parser.cc" // lalr1.cc:859 break; case 40: -#line 949 "seclang-parser.yy" // lalr1.cc:847 +#line 949 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUrlEncoding()); } -#line 1497 "seclang-parser.cc" // lalr1.cc:847 +#line 1504 "seclang-parser.cc" // lalr1.cc:859 break; case 41: -#line 953 "seclang-parser.yy" // lalr1.cc:847 +#line 953 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateUtf8Encoding()); } -#line 1505 "seclang-parser.cc" // lalr1.cc:847 +#line 1512 "seclang-parser.cc" // lalr1.cc:859 break; case 42: -#line 957 "seclang-parser.yy" // lalr1.cc:847 +#line 957 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::InspectFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1513 "seclang-parser.cc" // lalr1.cc:847 +#line 1520 "seclang-parser.cc" // lalr1.cc:859 break; case 43: -#line 961 "seclang-parser.yy" // lalr1.cc:847 +#line 961 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::FuzzyHash(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1521 "seclang-parser.cc" // lalr1.cc:847 +#line 1528 "seclang-parser.cc" // lalr1.cc:859 break; case 44: -#line 965 "seclang-parser.yy" // lalr1.cc:847 +#line 965 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateByteRange(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1529 "seclang-parser.cc" // lalr1.cc:847 +#line 1536 "seclang-parser.cc" // lalr1.cc:859 break; case 45: -#line 969 "seclang-parser.yy" // lalr1.cc:847 +#line 969 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateDTD(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1537 "seclang-parser.cc" // lalr1.cc:847 +#line 1544 "seclang-parser.cc" // lalr1.cc:859 break; case 46: -#line 973 "seclang-parser.yy" // lalr1.cc:847 +#line 973 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::ValidateHash($1); */ OPERATOR_NOT_SUPPORTED("ValidateHash", yystack_[2].location); } -#line 1546 "seclang-parser.cc" // lalr1.cc:847 +#line 1553 "seclang-parser.cc" // lalr1.cc:859 break; case 47: -#line 978 "seclang-parser.yy" // lalr1.cc:847 +#line 978 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ValidateSchema(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1554 "seclang-parser.cc" // lalr1.cc:847 +#line 1561 "seclang-parser.cc" // lalr1.cc:859 break; case 48: -#line 982 "seclang-parser.yy" // lalr1.cc:847 +#line 982 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1562 "seclang-parser.cc" // lalr1.cc:847 +#line 1569 "seclang-parser.cc" // lalr1.cc:859 break; case 49: -#line 986 "seclang-parser.yy" // lalr1.cc:847 +#line 986 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifyCPF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1570 "seclang-parser.cc" // lalr1.cc:847 +#line 1577 "seclang-parser.cc" // lalr1.cc:859 break; case 50: -#line 990 "seclang-parser.yy" // lalr1.cc:847 +#line 990 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::VerifySSN(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1578 "seclang-parser.cc" // lalr1.cc:847 +#line 1585 "seclang-parser.cc" // lalr1.cc:859 break; case 51: -#line 994 "seclang-parser.yy" // lalr1.cc:847 +#line 994 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::GsbLookup($1); */ OPERATOR_NOT_SUPPORTED("GsbLookup", yystack_[2].location); } -#line 1587 "seclang-parser.cc" // lalr1.cc:847 +#line 1594 "seclang-parser.cc" // lalr1.cc:859 break; case 52: -#line 999 "seclang-parser.yy" // lalr1.cc:847 +#line 999 "seclang-parser.yy" // lalr1.cc:859 { /* $$ = new operators::Rsub($1); */ OPERATOR_NOT_SUPPORTED("Rsub", yystack_[2].location); } -#line 1596 "seclang-parser.cc" // lalr1.cc:847 +#line 1603 "seclang-parser.cc" // lalr1.cc:859 break; case 53: -#line 1004 "seclang-parser.yy" // lalr1.cc:847 +#line 1004 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Within(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1604 "seclang-parser.cc" // lalr1.cc:847 +#line 1611 "seclang-parser.cc" // lalr1.cc:859 break; case 54: -#line 1008 "seclang-parser.yy" // lalr1.cc:847 +#line 1008 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::ContainsWord(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1612 "seclang-parser.cc" // lalr1.cc:847 +#line 1619 "seclang-parser.cc" // lalr1.cc:859 break; case 55: -#line 1012 "seclang-parser.yy" // lalr1.cc:847 +#line 1012 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Contains(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1620 "seclang-parser.cc" // lalr1.cc:847 +#line 1627 "seclang-parser.cc" // lalr1.cc:859 break; case 56: -#line 1016 "seclang-parser.yy" // lalr1.cc:847 +#line 1016 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::EndsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1628 "seclang-parser.cc" // lalr1.cc:847 +#line 1635 "seclang-parser.cc" // lalr1.cc:859 break; case 57: -#line 1020 "seclang-parser.yy" // lalr1.cc:847 +#line 1020 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Eq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1636 "seclang-parser.cc" // lalr1.cc:847 +#line 1643 "seclang-parser.cc" // lalr1.cc:859 break; case 58: -#line 1024 "seclang-parser.yy" // lalr1.cc:847 +#line 1024 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Ge(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1644 "seclang-parser.cc" // lalr1.cc:847 +#line 1651 "seclang-parser.cc" // lalr1.cc:859 break; case 59: -#line 1028 "seclang-parser.yy" // lalr1.cc:847 +#line 1028 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Gt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1652 "seclang-parser.cc" // lalr1.cc:847 +#line 1659 "seclang-parser.cc" // lalr1.cc:859 break; case 60: -#line 1032 "seclang-parser.yy" // lalr1.cc:847 +#line 1032 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatchF(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1660 "seclang-parser.cc" // lalr1.cc:847 +#line 1667 "seclang-parser.cc" // lalr1.cc:859 break; case 61: -#line 1036 "seclang-parser.yy" // lalr1.cc:847 +#line 1036 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::IpMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1668 "seclang-parser.cc" // lalr1.cc:847 +#line 1675 "seclang-parser.cc" // lalr1.cc:859 break; case 62: -#line 1040 "seclang-parser.yy" // lalr1.cc:847 +#line 1040 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Le(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1676 "seclang-parser.cc" // lalr1.cc:847 +#line 1683 "seclang-parser.cc" // lalr1.cc:859 break; case 63: -#line 1044 "seclang-parser.yy" // lalr1.cc:847 +#line 1044 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Lt(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1684 "seclang-parser.cc" // lalr1.cc:847 +#line 1691 "seclang-parser.cc" // lalr1.cc:859 break; case 64: -#line 1048 "seclang-parser.yy" // lalr1.cc:847 +#line 1048 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::PmFromFile(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1692 "seclang-parser.cc" // lalr1.cc:847 +#line 1699 "seclang-parser.cc" // lalr1.cc:859 break; case 65: -#line 1052 "seclang-parser.yy" // lalr1.cc:847 +#line 1052 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Pm(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1700 "seclang-parser.cc" // lalr1.cc:847 +#line 1707 "seclang-parser.cc" // lalr1.cc:859 break; case 66: -#line 1056 "seclang-parser.yy" // lalr1.cc:847 +#line 1056 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rbl(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1708 "seclang-parser.cc" // lalr1.cc:847 +#line 1715 "seclang-parser.cc" // lalr1.cc:859 break; case 67: -#line 1060 "seclang-parser.yy" // lalr1.cc:847 +#line 1060 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::Rx(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1716 "seclang-parser.cc" // lalr1.cc:847 +#line 1723 "seclang-parser.cc" // lalr1.cc:859 break; case 68: -#line 1064 "seclang-parser.yy" // lalr1.cc:847 +#line 1064 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrEq(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1724 "seclang-parser.cc" // lalr1.cc:847 +#line 1731 "seclang-parser.cc" // lalr1.cc:859 break; case 69: -#line 1068 "seclang-parser.yy" // lalr1.cc:847 +#line 1068 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::StrMatch(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1732 "seclang-parser.cc" // lalr1.cc:847 +#line 1739 "seclang-parser.cc" // lalr1.cc:859 break; case 70: -#line 1072 "seclang-parser.yy" // lalr1.cc:847 +#line 1072 "seclang-parser.yy" // lalr1.cc:859 { OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::BeginsWith(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 1740 "seclang-parser.cc" // lalr1.cc:847 +#line 1747 "seclang-parser.cc" // lalr1.cc:859 break; case 71: -#line 1076 "seclang-parser.yy" // lalr1.cc:847 +#line 1076 "seclang-parser.yy" // lalr1.cc:859 { #ifdef WITH_GEOIP OPERATOR_CONTAINER(yylhs.value.as< std::unique_ptr > (), new operators::GeoLookup()); @@ -1751,11 +1758,11 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 1755 "seclang-parser.cc" // lalr1.cc:847 +#line 1762 "seclang-parser.cc" // lalr1.cc:859 break; case 73: -#line 1091 "seclang-parser.yy" // lalr1.cc:847 +#line 1091 "seclang-parser.yy" // lalr1.cc:859 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1779,11 +1786,11 @@ namespace yy { YYERROR; } } -#line 1783 "seclang-parser.cc" // lalr1.cc:847 +#line 1790 "seclang-parser.cc" // lalr1.cc:859 break; case 74: -#line 1115 "seclang-parser.yy" // lalr1.cc:847 +#line 1115 "seclang-parser.yy" // lalr1.cc:859 { std::vector *v = new std::vector(); for (auto &i : *yystack_[1].value.as< std::unique_ptr > > > ().get()) { @@ -1802,11 +1809,11 @@ namespace yy { YYERROR; } } -#line 1806 "seclang-parser.cc" // lalr1.cc:847 +#line 1813 "seclang-parser.cc" // lalr1.cc:859 break; case 75: -#line 1134 "seclang-parser.yy" // lalr1.cc:847 +#line 1134 "seclang-parser.yy" // lalr1.cc:859 { std::vector *a = new std::vector(); for (auto &i : *yystack_[0].value.as< std::unique_ptr > > > ().get()) { @@ -1821,11 +1828,11 @@ namespace yy { ); driver.addSecAction(rule); } -#line 1825 "seclang-parser.cc" // lalr1.cc:847 +#line 1832 "seclang-parser.cc" // lalr1.cc:859 break; case 76: -#line 1149 "seclang-parser.yy" // lalr1.cc:847 +#line 1149 "seclang-parser.yy" // lalr1.cc:859 { std::string err; std::vector *a = new std::vector(); @@ -1849,11 +1856,11 @@ namespace yy { YYERROR; } } -#line 1853 "seclang-parser.cc" // lalr1.cc:847 +#line 1860 "seclang-parser.cc" // lalr1.cc:859 break; case 77: -#line 1173 "seclang-parser.yy" // lalr1.cc:847 +#line 1173 "seclang-parser.yy" // lalr1.cc:859 { bool hasDisruptive = false; std::vector *actions = new std::vector(); @@ -1909,75 +1916,75 @@ namespace yy { delete actions; } -#line 1913 "seclang-parser.cc" // lalr1.cc:847 +#line 1920 "seclang-parser.cc" // lalr1.cc:859 break; case 78: -#line 1229 "seclang-parser.yy" // lalr1.cc:847 +#line 1229 "seclang-parser.yy" // lalr1.cc:859 { driver.addSecMarker(modsecurity::utils::string::removeBracketsIfNeeded(yystack_[0].value.as< std::string > ())); } -#line 1921 "seclang-parser.cc" // lalr1.cc:847 +#line 1928 "seclang-parser.cc" // lalr1.cc:859 break; case 79: -#line 1233 "seclang-parser.yy" // lalr1.cc:847 +#line 1233 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::DisabledRuleEngine; } -#line 1929 "seclang-parser.cc" // lalr1.cc:847 +#line 1936 "seclang-parser.cc" // lalr1.cc:859 break; case 80: -#line 1237 "seclang-parser.yy" // lalr1.cc:847 +#line 1237 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::EnabledRuleEngine; } -#line 1937 "seclang-parser.cc" // lalr1.cc:847 +#line 1944 "seclang-parser.cc" // lalr1.cc:859 break; case 81: -#line 1241 "seclang-parser.yy" // lalr1.cc:847 +#line 1241 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRuleEngine = modsecurity::Rules::DetectionOnlyRuleEngine; } -#line 1945 "seclang-parser.cc" // lalr1.cc:847 +#line 1952 "seclang-parser.cc" // lalr1.cc:859 break; case 82: -#line 1245 "seclang-parser.yy" // lalr1.cc:847 +#line 1245 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1953 "seclang-parser.cc" // lalr1.cc:847 +#line 1960 "seclang-parser.cc" // lalr1.cc:859 break; case 83: -#line 1249 "seclang-parser.yy" // lalr1.cc:847 +#line 1249 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secRequestBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1961 "seclang-parser.cc" // lalr1.cc:847 +#line 1968 "seclang-parser.cc" // lalr1.cc:859 break; case 84: -#line 1253 "seclang-parser.yy" // lalr1.cc:847 +#line 1253 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 1969 "seclang-parser.cc" // lalr1.cc:847 +#line 1976 "seclang-parser.cc" // lalr1.cc:859 break; case 85: -#line 1257 "seclang-parser.yy" // lalr1.cc:847 +#line 1257 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secResponseBodyAccess = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 1977 "seclang-parser.cc" // lalr1.cc:847 +#line 1984 "seclang-parser.cc" // lalr1.cc:859 break; case 86: -#line 1261 "seclang-parser.yy" // lalr1.cc:847 +#line 1261 "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."); @@ -1986,259 +1993,259 @@ namespace yy { driver.m_secArgumentSeparator.m_value = yystack_[0].value.as< std::string > (); driver.m_secArgumentSeparator.m_set = true; } -#line 1990 "seclang-parser.cc" // lalr1.cc:847 +#line 1997 "seclang-parser.cc" // lalr1.cc:859 break; case 87: -#line 1270 "seclang-parser.yy" // lalr1.cc:847 +#line 1270 "seclang-parser.yy" // lalr1.cc:859 { driver.m_components.push_back(yystack_[0].value.as< std::string > ()); } -#line 1998 "seclang-parser.cc" // lalr1.cc:847 +#line 2005 "seclang-parser.cc" // lalr1.cc:859 break; case 88: -#line 1274 "seclang-parser.yy" // lalr1.cc:847 +#line 1274 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecConnEngine is not yet supported."); YYERROR; } -#line 2007 "seclang-parser.cc" // lalr1.cc:847 +#line 2014 "seclang-parser.cc" // lalr1.cc:859 break; case 89: -#line 1279 "seclang-parser.yy" // lalr1.cc:847 +#line 1279 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2014 "seclang-parser.cc" // lalr1.cc:847 +#line 2021 "seclang-parser.cc" // lalr1.cc:859 break; case 90: -#line 1282 "seclang-parser.yy" // lalr1.cc:847 +#line 1282 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secWebAppId.m_value = yystack_[0].value.as< std::string > (); driver.m_secWebAppId.m_set = true; } -#line 2023 "seclang-parser.cc" // lalr1.cc:847 +#line 2030 "seclang-parser.cc" // lalr1.cc:859 break; case 91: -#line 1287 "seclang-parser.yy" // lalr1.cc:847 +#line 1287 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecServerSignature is not supported."); YYERROR; } -#line 2032 "seclang-parser.cc" // lalr1.cc:847 +#line 2039 "seclang-parser.cc" // lalr1.cc:859 break; case 92: -#line 1292 "seclang-parser.yy" // lalr1.cc:847 +#line 1292 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecCacheTransformations is not supported."); YYERROR; } -#line 2041 "seclang-parser.cc" // lalr1.cc:847 +#line 2048 "seclang-parser.cc" // lalr1.cc:859 break; case 93: -#line 1297 "seclang-parser.yy" // lalr1.cc:847 +#line 1297 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecDisableBackendCompression is not supported."); YYERROR; } -#line 2050 "seclang-parser.cc" // lalr1.cc:847 +#line 2057 "seclang-parser.cc" // lalr1.cc:859 break; case 94: -#line 1302 "seclang-parser.yy" // lalr1.cc:847 +#line 1302 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2057 "seclang-parser.cc" // lalr1.cc:847 +#line 2064 "seclang-parser.cc" // lalr1.cc:859 break; case 95: -#line 1305 "seclang-parser.yy" // lalr1.cc:847 +#line 1305 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecContentInjection is not yet supported."); YYERROR; } -#line 2066 "seclang-parser.cc" // lalr1.cc:847 +#line 2073 "seclang-parser.cc" // lalr1.cc:859 break; case 96: -#line 1310 "seclang-parser.yy" // lalr1.cc:847 +#line 1310 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2073 "seclang-parser.cc" // lalr1.cc:847 +#line 2080 "seclang-parser.cc" // lalr1.cc:859 break; case 97: -#line 1313 "seclang-parser.yy" // lalr1.cc:847 +#line 1313 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecChrootDir is not supported."); YYERROR; } -#line 2082 "seclang-parser.cc" // lalr1.cc:847 +#line 2089 "seclang-parser.cc" // lalr1.cc:859 break; case 98: -#line 1318 "seclang-parser.yy" // lalr1.cc:847 +#line 1318 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecHashEngine is not yet supported."); YYERROR; } -#line 2091 "seclang-parser.cc" // lalr1.cc:847 +#line 2098 "seclang-parser.cc" // lalr1.cc:859 break; case 99: -#line 1323 "seclang-parser.yy" // lalr1.cc:847 +#line 1323 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2098 "seclang-parser.cc" // lalr1.cc:847 +#line 2105 "seclang-parser.cc" // lalr1.cc:859 break; case 100: -#line 1326 "seclang-parser.yy" // lalr1.cc:847 +#line 1326 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecHashKey is not yet supported."); YYERROR; } -#line 2107 "seclang-parser.cc" // lalr1.cc:847 +#line 2114 "seclang-parser.cc" // lalr1.cc:859 break; case 101: -#line 1331 "seclang-parser.yy" // lalr1.cc:847 +#line 1331 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecHashParam is not yet supported."); YYERROR; } -#line 2116 "seclang-parser.cc" // lalr1.cc:847 +#line 2123 "seclang-parser.cc" // lalr1.cc:859 break; case 102: -#line 1336 "seclang-parser.yy" // lalr1.cc:847 +#line 1336 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecHashMethodRx is not yet supported."); YYERROR; } -#line 2125 "seclang-parser.cc" // lalr1.cc:847 +#line 2132 "seclang-parser.cc" // lalr1.cc:859 break; case 103: -#line 1341 "seclang-parser.yy" // lalr1.cc:847 +#line 1341 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecHashMethodPm is not yet supported."); YYERROR; } -#line 2134 "seclang-parser.cc" // lalr1.cc:847 +#line 2141 "seclang-parser.cc" // lalr1.cc:859 break; case 104: -#line 1346 "seclang-parser.yy" // lalr1.cc:847 +#line 1346 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecGsbLookupDb is not supported."); YYERROR; } -#line 2143 "seclang-parser.cc" // lalr1.cc:847 +#line 2150 "seclang-parser.cc" // lalr1.cc:859 break; case 105: -#line 1351 "seclang-parser.yy" // lalr1.cc:847 +#line 1351 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecGuardianLog is not supported."); YYERROR; } -#line 2152 "seclang-parser.cc" // lalr1.cc:847 +#line 2159 "seclang-parser.cc" // lalr1.cc:859 break; case 106: -#line 1356 "seclang-parser.yy" // lalr1.cc:847 +#line 1356 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecInterceptOnError is not yet supported."); YYERROR; } -#line 2161 "seclang-parser.cc" // lalr1.cc:847 +#line 2168 "seclang-parser.cc" // lalr1.cc:859 break; case 107: -#line 1361 "seclang-parser.yy" // lalr1.cc:847 +#line 1361 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2168 "seclang-parser.cc" // lalr1.cc:847 +#line 2175 "seclang-parser.cc" // lalr1.cc:859 break; case 108: -#line 1364 "seclang-parser.yy" // lalr1.cc:847 +#line 1364 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecConnReadStateLimit is not yet supported."); YYERROR; } -#line 2177 "seclang-parser.cc" // lalr1.cc:847 +#line 2184 "seclang-parser.cc" // lalr1.cc:859 break; case 109: -#line 1369 "seclang-parser.yy" // lalr1.cc:847 +#line 1369 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecConnWriteStateLimit is not yet supported."); YYERROR; } -#line 2186 "seclang-parser.cc" // lalr1.cc:847 +#line 2193 "seclang-parser.cc" // lalr1.cc:859 break; case 110: -#line 1374 "seclang-parser.yy" // lalr1.cc:847 +#line 1374 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecSensorId is not yet supported."); YYERROR; } -#line 2195 "seclang-parser.cc" // lalr1.cc:847 +#line 2202 "seclang-parser.cc" // lalr1.cc:859 break; case 111: -#line 1379 "seclang-parser.yy" // lalr1.cc:847 +#line 1379 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[2].location, "SecRuleInheritance is not yet supported."); YYERROR; } -#line 2204 "seclang-parser.cc" // lalr1.cc:847 +#line 2211 "seclang-parser.cc" // lalr1.cc:859 break; case 112: -#line 1384 "seclang-parser.yy" // lalr1.cc:847 +#line 1384 "seclang-parser.yy" // lalr1.cc:859 { } -#line 2211 "seclang-parser.cc" // lalr1.cc:847 +#line 2218 "seclang-parser.cc" // lalr1.cc:859 break; case 113: -#line 1387 "seclang-parser.yy" // lalr1.cc:847 +#line 1387 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecRulePerfTime is not yet supported."); YYERROR; } -#line 2220 "seclang-parser.cc" // lalr1.cc:847 +#line 2227 "seclang-parser.cc" // lalr1.cc:859 break; case 114: -#line 1392 "seclang-parser.yy" // lalr1.cc:847 +#line 1392 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecStreamInBodyInspection is not supported."); YYERROR; } -#line 2229 "seclang-parser.cc" // lalr1.cc:847 +#line 2236 "seclang-parser.cc" // lalr1.cc:859 break; case 115: -#line 1397 "seclang-parser.yy" // lalr1.cc:847 +#line 1397 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecStreamOutBodyInspection is not supported."); YYERROR; } -#line 2238 "seclang-parser.cc" // lalr1.cc:847 +#line 2245 "seclang-parser.cc" // lalr1.cc:859 break; case 116: -#line 1402 "seclang-parser.yy" // lalr1.cc:847 +#line 1402 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.load(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2251,11 +2258,11 @@ namespace yy { YYERROR; } } -#line 2255 "seclang-parser.cc" // lalr1.cc:847 +#line 2262 "seclang-parser.cc" // lalr1.cc:859 break; case 117: -#line 1415 "seclang-parser.yy" // lalr1.cc:847 +#line 1415 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.loadRemoveRuleByTag(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2268,11 +2275,11 @@ namespace yy { YYERROR; } } -#line 2272 "seclang-parser.cc" // lalr1.cc:847 +#line 2279 "seclang-parser.cc" // lalr1.cc:859 break; case 118: -#line 1428 "seclang-parser.yy" // lalr1.cc:847 +#line 1428 "seclang-parser.yy" // lalr1.cc:859 { std::string error; if (driver.m_exceptions.loadRemoveRuleByMsg(yystack_[0].value.as< std::string > (), &error) == false) { @@ -2285,11 +2292,11 @@ namespace yy { YYERROR; } } -#line 2289 "seclang-parser.cc" // lalr1.cc:847 +#line 2296 "seclang-parser.cc" // lalr1.cc:859 break; case 119: -#line 1441 "seclang-parser.yy" // lalr1.cc:847 +#line 1441 "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) { @@ -2302,11 +2309,11 @@ namespace yy { YYERROR; } } -#line 2306 "seclang-parser.cc" // lalr1.cc:847 +#line 2313 "seclang-parser.cc" // lalr1.cc:859 break; case 120: -#line 1454 "seclang-parser.yy" // lalr1.cc:847 +#line 1454 "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) { @@ -2319,11 +2326,11 @@ namespace yy { YYERROR; } } -#line 2323 "seclang-parser.cc" // lalr1.cc:847 +#line 2330 "seclang-parser.cc" // lalr1.cc:859 break; case 121: -#line 1467 "seclang-parser.yy" // lalr1.cc:847 +#line 1467 "seclang-parser.yy" // lalr1.cc:859 { std::string error; double ruleId; @@ -2349,11 +2356,11 @@ namespace yy { YYERROR; } } -#line 2353 "seclang-parser.cc" // lalr1.cc:847 +#line 2360 "seclang-parser.cc" // lalr1.cc:859 break; case 122: -#line 1493 "seclang-parser.yy" // lalr1.cc:847 +#line 1493 "seclang-parser.yy" // lalr1.cc:859 { std::string error; double ruleId; @@ -2378,11 +2385,11 @@ namespace yy { driver.error(yystack_[2].location, "SecRuleUpdateActionById is not yet supported"); YYERROR; } -#line 2382 "seclang-parser.cc" // lalr1.cc:847 +#line 2389 "seclang-parser.cc" // lalr1.cc:859 break; case 123: -#line 1519 "seclang-parser.yy" // lalr1.cc:847 +#line 1519 "seclang-parser.yy" // lalr1.cc:859 { if (driver.m_debugLog != NULL) { driver.m_debugLog->setDebugLogLevel(atoi(yystack_[0].value.as< std::string > ().c_str())); @@ -2394,11 +2401,11 @@ namespace yy { YYERROR; } } -#line 2398 "seclang-parser.cc" // lalr1.cc:847 +#line 2405 "seclang-parser.cc" // lalr1.cc:859 break; case 124: -#line 1531 "seclang-parser.yy" // lalr1.cc:847 +#line 1531 "seclang-parser.yy" // lalr1.cc:859 { if (driver.m_debugLog != NULL) { std::string error; @@ -2417,11 +2424,11 @@ namespace yy { YYERROR; } } -#line 2421 "seclang-parser.cc" // lalr1.cc:847 +#line 2428 "seclang-parser.cc" // lalr1.cc:859 break; case 125: -#line 1551 "seclang-parser.yy" // lalr1.cc:847 +#line 1551 "seclang-parser.yy" // lalr1.cc:859 { #ifdef WITH_GEOIP std::string err; @@ -2448,29 +2455,29 @@ namespace yy { YYERROR; #endif // WITH_GEOIP } -#line 2452 "seclang-parser.cc" // lalr1.cc:847 +#line 2459 "seclang-parser.cc" // lalr1.cc:859 break; case 126: -#line 1579 "seclang-parser.yy" // lalr1.cc:847 +#line 1579 "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 2461 "seclang-parser.cc" // lalr1.cc:847 +#line 2468 "seclang-parser.cc" // lalr1.cc:859 break; case 127: -#line 1584 "seclang-parser.yy" // lalr1.cc:847 +#line 1584 "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 2470 "seclang-parser.cc" // lalr1.cc:847 +#line 2477 "seclang-parser.cc" // lalr1.cc:859 break; case 128: -#line 1589 "seclang-parser.yy" // lalr1.cc:847 +#line 1589 "seclang-parser.yy" // lalr1.cc:859 { std::stringstream ss; ss << "As of ModSecurity version 3.0, SecRequestBodyInMemoryLimit is no longer "; @@ -2479,68 +2486,68 @@ namespace yy { driver.error(yystack_[1].location, ss.str()); YYERROR; } -#line 2483 "seclang-parser.cc" // lalr1.cc:847 +#line 2490 "seclang-parser.cc" // lalr1.cc:859 break; case 129: -#line 1598 "seclang-parser.yy" // lalr1.cc:847 +#line 1598 "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 2492 "seclang-parser.cc" // lalr1.cc:847 +#line 2499 "seclang-parser.cc" // lalr1.cc:859 break; case 130: -#line 1603 "seclang-parser.yy" // lalr1.cc:847 +#line 1603 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2500 "seclang-parser.cc" // lalr1.cc:847 +#line 2507 "seclang-parser.cc" // lalr1.cc:859 break; case 131: -#line 1607 "seclang-parser.yy" // lalr1.cc:847 +#line 1607 "seclang-parser.yy" // lalr1.cc:859 { driver.m_requestBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2508 "seclang-parser.cc" // lalr1.cc:847 +#line 2515 "seclang-parser.cc" // lalr1.cc:859 break; case 132: -#line 1611 "seclang-parser.yy" // lalr1.cc:847 +#line 1611 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::ProcessPartialBodyLimitAction; } -#line 2516 "seclang-parser.cc" // lalr1.cc:847 +#line 2523 "seclang-parser.cc" // lalr1.cc:859 break; case 133: -#line 1615 "seclang-parser.yy" // lalr1.cc:847 +#line 1615 "seclang-parser.yy" // lalr1.cc:859 { driver.m_responseBodyLimitAction = modsecurity::Rules::BodyLimitAction::RejectBodyLimitAction; } -#line 2524 "seclang-parser.cc" // lalr1.cc:847 +#line 2531 "seclang-parser.cc" // lalr1.cc:859 break; case 134: -#line 1619 "seclang-parser.yy" // lalr1.cc:847 +#line 1619 "seclang-parser.yy" // lalr1.cc:859 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::AbortOnFailedRemoteRulesAction; } -#line 2532 "seclang-parser.cc" // lalr1.cc:847 +#line 2539 "seclang-parser.cc" // lalr1.cc:859 break; case 135: -#line 1623 "seclang-parser.yy" // lalr1.cc:847 +#line 1623 "seclang-parser.yy" // lalr1.cc:859 { driver.m_remoteRulesActionOnFailed = Rules::OnFailedRemoteRulesAction::WarnOnFailedRemoteRulesAction; } -#line 2540 "seclang-parser.cc" // lalr1.cc:847 +#line 2547 "seclang-parser.cc" // lalr1.cc:859 break; case 138: -#line 1637 "seclang-parser.yy" // lalr1.cc:847 +#line 1637 "seclang-parser.yy" // lalr1.cc:859 { std::istringstream buf(yystack_[0].value.as< std::string > ()); std::istream_iterator beg(buf), end; @@ -2552,37 +2559,37 @@ namespace yy { driver.m_responseBodyTypeToBeInspected.m_value.insert(*it); } } -#line 2556 "seclang-parser.cc" // lalr1.cc:847 +#line 2563 "seclang-parser.cc" // lalr1.cc:859 break; case 139: -#line 1649 "seclang-parser.yy" // lalr1.cc:847 +#line 1649 "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 2566 "seclang-parser.cc" // lalr1.cc:847 +#line 2573 "seclang-parser.cc" // lalr1.cc:859 break; case 140: -#line 1655 "seclang-parser.yy" // lalr1.cc:847 +#line 1655 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::FalseConfigBoolean; } -#line 2574 "seclang-parser.cc" // lalr1.cc:847 +#line 2581 "seclang-parser.cc" // lalr1.cc:859 break; case 141: -#line 1659 "seclang-parser.yy" // lalr1.cc:847 +#line 1659 "seclang-parser.yy" // lalr1.cc:859 { driver.m_secXMLExternalEntity = modsecurity::RulesProperties::TrueConfigBoolean; } -#line 2582 "seclang-parser.cc" // lalr1.cc:847 +#line 2589 "seclang-parser.cc" // lalr1.cc:859 break; case 142: -#line 1663 "seclang-parser.yy" // lalr1.cc:847 +#line 1663 "seclang-parser.yy" // lalr1.cc:859 { /* Parser error disabled to avoid breaking default installations with modsecurity.conf-recommended std::stringstream ss; @@ -2593,2364 +2600,2364 @@ namespace yy { YYERROR; */ } -#line 2597 "seclang-parser.cc" // lalr1.cc:847 +#line 2604 "seclang-parser.cc" // lalr1.cc:859 break; case 145: -#line 1684 "seclang-parser.yy" // lalr1.cc:847 +#line 1684 "seclang-parser.yy" // lalr1.cc:859 { if (atoi(yystack_[0].value.as< std::string > ().c_str()) == 1) { driver.error(yystack_[1].location, "SecCookieFormat 1 is not yet supported."); YYERROR; } } -#line 2608 "seclang-parser.cc" // lalr1.cc:847 +#line 2615 "seclang-parser.cc" // lalr1.cc:859 break; case 146: -#line 1691 "seclang-parser.yy" // lalr1.cc:847 +#line 1691 "seclang-parser.yy" // lalr1.cc:859 { driver.error(yystack_[1].location, "SecCookieV0Separator is not yet supported."); YYERROR; } -#line 2617 "seclang-parser.cc" // lalr1.cc:847 +#line 2624 "seclang-parser.cc" // lalr1.cc:859 break; case 149: -#line 1706 "seclang-parser.yy" // lalr1.cc:847 +#line 1706 "seclang-parser.yy" // lalr1.cc:859 { /* Parser error disabled to avoid breaking default CRS installations with crs-setup.conf-recommended driver.error(@0, "SecCollectionTimeout is not yet supported."); YYERROR; */ } -#line 2628 "seclang-parser.cc" // lalr1.cc:847 +#line 2635 "seclang-parser.cc" // lalr1.cc:859 break; case 150: -#line 1713 "seclang-parser.yy" // lalr1.cc:847 +#line 1713 "seclang-parser.yy" // lalr1.cc:859 { driver.m_httpblKey.m_set = true; driver.m_httpblKey.m_value = yystack_[0].value.as< std::string > (); } -#line 2637 "seclang-parser.cc" // lalr1.cc:847 +#line 2644 "seclang-parser.cc" // lalr1.cc:859 break; case 151: -#line 1721 "seclang-parser.yy" // lalr1.cc:847 +#line 1721 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[0].value.as< std::unique_ptr > > > ()); } -#line 2645 "seclang-parser.cc" // lalr1.cc:847 +#line 2652 "seclang-parser.cc" // lalr1.cc:859 break; case 152: -#line 1725 "seclang-parser.yy" // lalr1.cc:847 +#line 1725 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > > > () = std::move(yystack_[1].value.as< std::unique_ptr > > > ()); } -#line 2653 "seclang-parser.cc" // lalr1.cc:847 +#line 2660 "seclang-parser.cc" // lalr1.cc:859 break; case 153: -#line 1732 "seclang-parser.yy" // lalr1.cc:847 +#line 1732 "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 2662 "seclang-parser.cc" // lalr1.cc:847 +#line 2669 "seclang-parser.cc" // lalr1.cc:859 break; case 154: -#line 1737 "seclang-parser.yy" // lalr1.cc:847 +#line 1737 "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 2672 "seclang-parser.cc" // lalr1.cc:847 +#line 2679 "seclang-parser.cc" // lalr1.cc:859 break; case 155: -#line 1743 "seclang-parser.yy" // lalr1.cc:847 +#line 1743 "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 2682 "seclang-parser.cc" // lalr1.cc:847 +#line 2689 "seclang-parser.cc" // lalr1.cc:859 break; case 156: -#line 1749 "seclang-parser.yy" // lalr1.cc:847 +#line 1749 "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 2692 "seclang-parser.cc" // lalr1.cc:847 +#line 2699 "seclang-parser.cc" // lalr1.cc:859 break; case 157: -#line 1755 "seclang-parser.yy" // lalr1.cc:847 +#line 1755 "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 2703 "seclang-parser.cc" // lalr1.cc:847 +#line 2710 "seclang-parser.cc" // lalr1.cc:859 break; case 158: -#line 1762 "seclang-parser.yy" // lalr1.cc:847 +#line 1762 "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 2714 "seclang-parser.cc" // lalr1.cc:847 +#line 2721 "seclang-parser.cc" // lalr1.cc:859 break; case 159: -#line 1772 "seclang-parser.yy" // lalr1.cc:847 +#line 1772 "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 2722 "seclang-parser.cc" // lalr1.cc:847 +#line 2729 "seclang-parser.cc" // lalr1.cc:859 break; case 160: -#line 1776 "seclang-parser.yy" // lalr1.cc:847 +#line 1776 "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 2730 "seclang-parser.cc" // lalr1.cc:847 +#line 2737 "seclang-parser.cc" // lalr1.cc:859 break; case 161: -#line 1780 "seclang-parser.yy" // lalr1.cc:847 +#line 1780 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Args_NoDictElement()); } -#line 2738 "seclang-parser.cc" // lalr1.cc:847 +#line 2745 "seclang-parser.cc" // lalr1.cc:859 break; case 162: -#line 1784 "seclang-parser.yy" // lalr1.cc:847 +#line 1784 "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 2746 "seclang-parser.cc" // lalr1.cc:847 +#line 2753 "seclang-parser.cc" // lalr1.cc:859 break; case 163: -#line 1788 "seclang-parser.yy" // lalr1.cc:847 +#line 1788 "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 2754 "seclang-parser.cc" // lalr1.cc:847 +#line 2761 "seclang-parser.cc" // lalr1.cc:859 break; case 164: -#line 1792 "seclang-parser.yy" // lalr1.cc:847 +#line 1792 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPost_NoDictElement()); } -#line 2762 "seclang-parser.cc" // lalr1.cc:847 +#line 2769 "seclang-parser.cc" // lalr1.cc:859 break; case 165: -#line 1796 "seclang-parser.yy" // lalr1.cc:847 +#line 1796 "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 2770 "seclang-parser.cc" // lalr1.cc:847 +#line 2777 "seclang-parser.cc" // lalr1.cc:859 break; case 166: -#line 1800 "seclang-parser.yy" // lalr1.cc:847 +#line 1800 "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 2778 "seclang-parser.cc" // lalr1.cc:847 +#line 2785 "seclang-parser.cc" // lalr1.cc:859 break; case 167: -#line 1804 "seclang-parser.yy" // lalr1.cc:847 +#line 1804 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGet_NoDictElement()); } -#line 2786 "seclang-parser.cc" // lalr1.cc:847 +#line 2793 "seclang-parser.cc" // lalr1.cc:859 break; case 168: -#line 1808 "seclang-parser.yy" // lalr1.cc:847 +#line 1808 "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 2794 "seclang-parser.cc" // lalr1.cc:847 +#line 2801 "seclang-parser.cc" // lalr1.cc:859 break; case 169: -#line 1812 "seclang-parser.yy" // lalr1.cc:847 +#line 1812 "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 2802 "seclang-parser.cc" // lalr1.cc:847 +#line 2809 "seclang-parser.cc" // lalr1.cc:859 break; case 170: -#line 1816 "seclang-parser.yy" // lalr1.cc:847 +#line 1816 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesSizes_NoDictElement()); } -#line 2810 "seclang-parser.cc" // lalr1.cc:847 +#line 2817 "seclang-parser.cc" // lalr1.cc:859 break; case 171: -#line 1820 "seclang-parser.yy" // lalr1.cc:847 +#line 1820 "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 2818 "seclang-parser.cc" // lalr1.cc:847 +#line 2825 "seclang-parser.cc" // lalr1.cc:859 break; case 172: -#line 1824 "seclang-parser.yy" // lalr1.cc:847 +#line 1824 "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 2826 "seclang-parser.cc" // lalr1.cc:847 +#line 2833 "seclang-parser.cc" // lalr1.cc:859 break; case 173: -#line 1828 "seclang-parser.yy" // lalr1.cc:847 +#line 1828 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesNames_NoDictElement()); } -#line 2834 "seclang-parser.cc" // lalr1.cc:847 +#line 2841 "seclang-parser.cc" // lalr1.cc:859 break; case 174: -#line 1832 "seclang-parser.yy" // lalr1.cc:847 +#line 1832 "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 2842 "seclang-parser.cc" // lalr1.cc:847 +#line 2849 "seclang-parser.cc" // lalr1.cc:859 break; case 175: -#line 1836 "seclang-parser.yy" // lalr1.cc:847 +#line 1836 "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 2850 "seclang-parser.cc" // lalr1.cc:847 +#line 2857 "seclang-parser.cc" // lalr1.cc:859 break; case 176: -#line 1840 "seclang-parser.yy" // lalr1.cc:847 +#line 1840 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpContent_NoDictElement()); } -#line 2858 "seclang-parser.cc" // lalr1.cc:847 +#line 2865 "seclang-parser.cc" // lalr1.cc:859 break; case 177: -#line 1844 "seclang-parser.yy" // lalr1.cc:847 +#line 1844 "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 2866 "seclang-parser.cc" // lalr1.cc:847 +#line 2873 "seclang-parser.cc" // lalr1.cc:859 break; case 178: -#line 1848 "seclang-parser.yy" // lalr1.cc:847 +#line 1848 "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 2874 "seclang-parser.cc" // lalr1.cc:847 +#line 2881 "seclang-parser.cc" // lalr1.cc:859 break; case 179: -#line 1852 "seclang-parser.yy" // lalr1.cc:847 +#line 1852 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartFileName_NoDictElement()); } -#line 2882 "seclang-parser.cc" // lalr1.cc:847 +#line 2889 "seclang-parser.cc" // lalr1.cc:859 break; case 180: -#line 1856 "seclang-parser.yy" // lalr1.cc:847 +#line 1856 "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 2890 "seclang-parser.cc" // lalr1.cc:847 +#line 2897 "seclang-parser.cc" // lalr1.cc:859 break; case 181: -#line 1860 "seclang-parser.yy" // lalr1.cc:847 +#line 1860 "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 2898 "seclang-parser.cc" // lalr1.cc:847 +#line 2905 "seclang-parser.cc" // lalr1.cc:859 break; case 182: -#line 1864 "seclang-parser.yy" // lalr1.cc:847 +#line 1864 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultiPartName_NoDictElement()); } -#line 2906 "seclang-parser.cc" // lalr1.cc:847 +#line 2913 "seclang-parser.cc" // lalr1.cc:859 break; case 183: -#line 1868 "seclang-parser.yy" // lalr1.cc:847 +#line 1868 "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 2914 "seclang-parser.cc" // lalr1.cc:847 +#line 2921 "seclang-parser.cc" // lalr1.cc:859 break; case 184: -#line 1872 "seclang-parser.yy" // lalr1.cc:847 +#line 1872 "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 2922 "seclang-parser.cc" // lalr1.cc:847 +#line 2929 "seclang-parser.cc" // lalr1.cc:859 break; case 185: -#line 1876 "seclang-parser.yy" // lalr1.cc:847 +#line 1876 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarsNames_NoDictElement()); } -#line 2930 "seclang-parser.cc" // lalr1.cc:847 +#line 2937 "seclang-parser.cc" // lalr1.cc:859 break; case 186: -#line 1880 "seclang-parser.yy" // lalr1.cc:847 +#line 1880 "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 2938 "seclang-parser.cc" // lalr1.cc:847 +#line 2945 "seclang-parser.cc" // lalr1.cc:859 break; case 187: -#line 1884 "seclang-parser.yy" // lalr1.cc:847 +#line 1884 "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 2946 "seclang-parser.cc" // lalr1.cc:847 +#line 2953 "seclang-parser.cc" // lalr1.cc:859 break; case 188: -#line 1888 "seclang-parser.yy" // lalr1.cc:847 +#line 1888 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVars_NoDictElement()); } -#line 2954 "seclang-parser.cc" // lalr1.cc:847 +#line 2961 "seclang-parser.cc" // lalr1.cc:859 break; case 189: -#line 1892 "seclang-parser.yy" // lalr1.cc:847 +#line 1892 "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 2962 "seclang-parser.cc" // lalr1.cc:847 +#line 2969 "seclang-parser.cc" // lalr1.cc:859 break; case 190: -#line 1896 "seclang-parser.yy" // lalr1.cc:847 +#line 1896 "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 2970 "seclang-parser.cc" // lalr1.cc:847 +#line 2977 "seclang-parser.cc" // lalr1.cc:859 break; case 191: -#line 1900 "seclang-parser.yy" // lalr1.cc:847 +#line 1900 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Files_NoDictElement()); } -#line 2978 "seclang-parser.cc" // lalr1.cc:847 +#line 2985 "seclang-parser.cc" // lalr1.cc:859 break; case 192: -#line 1904 "seclang-parser.yy" // lalr1.cc:847 +#line 1904 "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 2986 "seclang-parser.cc" // lalr1.cc:847 +#line 2993 "seclang-parser.cc" // lalr1.cc:859 break; case 193: -#line 1908 "seclang-parser.yy" // lalr1.cc:847 +#line 1908 "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 2994 "seclang-parser.cc" // lalr1.cc:847 +#line 3001 "seclang-parser.cc" // lalr1.cc:859 break; case 194: -#line 1912 "seclang-parser.yy" // lalr1.cc:847 +#line 1912 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookies_NoDictElement()); } -#line 3002 "seclang-parser.cc" // lalr1.cc:847 +#line 3009 "seclang-parser.cc" // lalr1.cc:859 break; case 195: -#line 1916 "seclang-parser.yy" // lalr1.cc:847 +#line 1916 "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 3010 "seclang-parser.cc" // lalr1.cc:847 +#line 3017 "seclang-parser.cc" // lalr1.cc:859 break; case 196: -#line 1920 "seclang-parser.yy" // lalr1.cc:847 +#line 1920 "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 3018 "seclang-parser.cc" // lalr1.cc:847 +#line 3025 "seclang-parser.cc" // lalr1.cc:859 break; case 197: -#line 1924 "seclang-parser.yy" // lalr1.cc:847 +#line 1924 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeaders_NoDictElement()); } -#line 3026 "seclang-parser.cc" // lalr1.cc:847 +#line 3033 "seclang-parser.cc" // lalr1.cc:859 break; case 198: -#line 1928 "seclang-parser.yy" // lalr1.cc:847 +#line 1928 "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 3034 "seclang-parser.cc" // lalr1.cc:847 +#line 3041 "seclang-parser.cc" // lalr1.cc:859 break; case 199: -#line 1932 "seclang-parser.yy" // lalr1.cc:847 +#line 1932 "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 3042 "seclang-parser.cc" // lalr1.cc:847 +#line 3049 "seclang-parser.cc" // lalr1.cc:859 break; case 200: -#line 1936 "seclang-parser.yy" // lalr1.cc:847 +#line 1936 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeaders_NoDictElement()); } -#line 3050 "seclang-parser.cc" // lalr1.cc:847 +#line 3057 "seclang-parser.cc" // lalr1.cc:859 break; case 201: -#line 1940 "seclang-parser.yy" // lalr1.cc:847 +#line 1940 "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 3058 "seclang-parser.cc" // lalr1.cc:847 +#line 3065 "seclang-parser.cc" // lalr1.cc:859 break; case 202: -#line 1944 "seclang-parser.yy" // lalr1.cc:847 +#line 1944 "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 3066 "seclang-parser.cc" // lalr1.cc:847 +#line 3073 "seclang-parser.cc" // lalr1.cc:859 break; case 203: -#line 1948 "seclang-parser.yy" // lalr1.cc:847 +#line 1948 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Geo_NoDictElement()); } -#line 3074 "seclang-parser.cc" // lalr1.cc:847 +#line 3081 "seclang-parser.cc" // lalr1.cc:859 break; case 204: -#line 1952 "seclang-parser.yy" // lalr1.cc:847 +#line 1952 "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 3082 "seclang-parser.cc" // lalr1.cc:847 +#line 3089 "seclang-parser.cc" // lalr1.cc:859 break; case 205: -#line 1956 "seclang-parser.yy" // lalr1.cc:847 +#line 1956 "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 3090 "seclang-parser.cc" // lalr1.cc:847 +#line 3097 "seclang-parser.cc" // lalr1.cc:859 break; case 206: -#line 1960 "seclang-parser.yy" // lalr1.cc:847 +#line 1960 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestCookiesNames_NoDictElement()); } -#line 3098 "seclang-parser.cc" // lalr1.cc:847 +#line 3105 "seclang-parser.cc" // lalr1.cc:859 break; case 207: -#line 1964 "seclang-parser.yy" // lalr1.cc:847 +#line 1964 "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 3106 "seclang-parser.cc" // lalr1.cc:847 +#line 3113 "seclang-parser.cc" // lalr1.cc:859 break; case 208: -#line 1968 "seclang-parser.yy" // lalr1.cc:847 +#line 1968 "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 3114 "seclang-parser.cc" // lalr1.cc:847 +#line 3121 "seclang-parser.cc" // lalr1.cc:859 break; case 209: -#line 1972 "seclang-parser.yy" // lalr1.cc:847 +#line 1972 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Rule_NoDictElement()); } -#line 3122 "seclang-parser.cc" // lalr1.cc:847 +#line 3129 "seclang-parser.cc" // lalr1.cc:859 break; case 210: -#line 1976 "seclang-parser.yy" // lalr1.cc:847 +#line 1976 "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 3130 "seclang-parser.cc" // lalr1.cc:847 +#line 3137 "seclang-parser.cc" // lalr1.cc:859 break; case 211: -#line 1980 "seclang-parser.yy" // lalr1.cc:847 +#line 1980 "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 3138 "seclang-parser.cc" // lalr1.cc:847 +#line 3145 "seclang-parser.cc" // lalr1.cc:859 break; case 212: -#line 1984 "seclang-parser.yy" // lalr1.cc:847 +#line 1984 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Env("ENV")); } -#line 3146 "seclang-parser.cc" // lalr1.cc:847 +#line 3153 "seclang-parser.cc" // lalr1.cc:859 break; case 213: -#line 1988 "seclang-parser.yy" // lalr1.cc:847 +#line 1988 "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 3154 "seclang-parser.cc" // lalr1.cc:847 +#line 3161 "seclang-parser.cc" // lalr1.cc:859 break; case 214: -#line 1992 "seclang-parser.yy" // lalr1.cc:847 +#line 1992 "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 3162 "seclang-parser.cc" // lalr1.cc:847 +#line 3169 "seclang-parser.cc" // lalr1.cc:859 break; case 215: -#line 1996 "seclang-parser.yy" // lalr1.cc:847 +#line 1996 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::XML_NoDictElement()); } -#line 3170 "seclang-parser.cc" // lalr1.cc:847 +#line 3177 "seclang-parser.cc" // lalr1.cc:859 break; case 216: -#line 2000 "seclang-parser.yy" // lalr1.cc:847 +#line 2000 "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 3178 "seclang-parser.cc" // lalr1.cc:847 +#line 3185 "seclang-parser.cc" // lalr1.cc:859 break; case 217: -#line 2004 "seclang-parser.yy" // lalr1.cc:847 +#line 2004 "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 3186 "seclang-parser.cc" // lalr1.cc:847 +#line 3193 "seclang-parser.cc" // lalr1.cc:859 break; case 218: -#line 2008 "seclang-parser.yy" // lalr1.cc:847 +#line 2008 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesTmpNames_NoDictElement()); } -#line 3194 "seclang-parser.cc" // lalr1.cc:847 +#line 3201 "seclang-parser.cc" // lalr1.cc:859 break; case 219: -#line 2012 "seclang-parser.yy" // lalr1.cc:847 +#line 2012 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3202 "seclang-parser.cc" // lalr1.cc:847 +#line 3209 "seclang-parser.cc" // lalr1.cc:859 break; case 220: -#line 2016 "seclang-parser.yy" // lalr1.cc:847 +#line 2016 "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 3210 "seclang-parser.cc" // lalr1.cc:847 +#line 3217 "seclang-parser.cc" // lalr1.cc:859 break; case 221: -#line 2020 "seclang-parser.yy" // lalr1.cc:847 +#line 2020 "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 3218 "seclang-parser.cc" // lalr1.cc:847 +#line 3225 "seclang-parser.cc" // lalr1.cc:859 break; case 222: -#line 2024 "seclang-parser.yy" // lalr1.cc:847 +#line 2024 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Resource_NoDictElement()); } -#line 3226 "seclang-parser.cc" // lalr1.cc:847 +#line 3233 "seclang-parser.cc" // lalr1.cc:859 break; case 223: -#line 2028 "seclang-parser.yy" // lalr1.cc:847 +#line 2028 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3234 "seclang-parser.cc" // lalr1.cc:847 +#line 3241 "seclang-parser.cc" // lalr1.cc:859 break; case 224: -#line 2032 "seclang-parser.yy" // lalr1.cc:847 +#line 2032 "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 3242 "seclang-parser.cc" // lalr1.cc:847 +#line 3249 "seclang-parser.cc" // lalr1.cc:859 break; case 225: -#line 2036 "seclang-parser.yy" // lalr1.cc:847 +#line 2036 "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 3250 "seclang-parser.cc" // lalr1.cc:847 +#line 3257 "seclang-parser.cc" // lalr1.cc:859 break; case 226: -#line 2040 "seclang-parser.yy" // lalr1.cc:847 +#line 2040 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Ip_NoDictElement()); } -#line 3258 "seclang-parser.cc" // lalr1.cc:847 +#line 3265 "seclang-parser.cc" // lalr1.cc:859 break; case 227: -#line 2044 "seclang-parser.yy" // lalr1.cc:847 +#line 2044 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3266 "seclang-parser.cc" // lalr1.cc:847 +#line 3273 "seclang-parser.cc" // lalr1.cc:859 break; case 228: -#line 2048 "seclang-parser.yy" // lalr1.cc:847 +#line 2048 "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 3274 "seclang-parser.cc" // lalr1.cc:847 +#line 3281 "seclang-parser.cc" // lalr1.cc:859 break; case 229: -#line 2052 "seclang-parser.yy" // lalr1.cc:847 +#line 2052 "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 3282 "seclang-parser.cc" // lalr1.cc:847 +#line 3289 "seclang-parser.cc" // lalr1.cc:859 break; case 230: -#line 2056 "seclang-parser.yy" // lalr1.cc:847 +#line 2056 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Global_NoDictElement()); } -#line 3290 "seclang-parser.cc" // lalr1.cc:847 +#line 3297 "seclang-parser.cc" // lalr1.cc:859 break; case 231: -#line 2060 "seclang-parser.yy" // lalr1.cc:847 +#line 2060 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3298 "seclang-parser.cc" // lalr1.cc:847 +#line 3305 "seclang-parser.cc" // lalr1.cc:859 break; case 232: -#line 2064 "seclang-parser.yy" // lalr1.cc:847 +#line 2064 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DictElement(yystack_[0].value.as< std::string > ())); } -#line 3306 "seclang-parser.cc" // lalr1.cc:847 +#line 3313 "seclang-parser.cc" // lalr1.cc:859 break; case 233: -#line 2068 "seclang-parser.yy" // lalr1.cc:847 +#line 2068 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_DictElementRegexp(yystack_[0].value.as< std::string > ())); } -#line 3314 "seclang-parser.cc" // lalr1.cc:847 +#line 3321 "seclang-parser.cc" // lalr1.cc:859 break; case 234: -#line 2072 "seclang-parser.yy" // lalr1.cc:847 +#line 2072 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::User_NoDictElement()); } -#line 3322 "seclang-parser.cc" // lalr1.cc:847 +#line 3329 "seclang-parser.cc" // lalr1.cc:859 break; case 235: -#line 2076 "seclang-parser.yy" // lalr1.cc:847 +#line 2076 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3330 "seclang-parser.cc" // lalr1.cc:847 +#line 3337 "seclang-parser.cc" // lalr1.cc:859 break; case 236: -#line 2080 "seclang-parser.yy" // lalr1.cc:847 +#line 2080 "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 3338 "seclang-parser.cc" // lalr1.cc:847 +#line 3345 "seclang-parser.cc" // lalr1.cc:859 break; case 237: -#line 2084 "seclang-parser.yy" // lalr1.cc:847 +#line 2084 "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 3346 "seclang-parser.cc" // lalr1.cc:847 +#line 3353 "seclang-parser.cc" // lalr1.cc:859 break; case 238: -#line 2088 "seclang-parser.yy" // lalr1.cc:847 +#line 2088 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Tx_NoDictElement()); } -#line 3354 "seclang-parser.cc" // lalr1.cc:847 +#line 3361 "seclang-parser.cc" // lalr1.cc:859 break; case 239: -#line 2092 "seclang-parser.yy" // lalr1.cc:847 +#line 2092 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_DynamicElement(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 3362 "seclang-parser.cc" // lalr1.cc:847 +#line 3369 "seclang-parser.cc" // lalr1.cc:859 break; case 240: -#line 2096 "seclang-parser.yy" // lalr1.cc:847 +#line 2096 "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 3370 "seclang-parser.cc" // lalr1.cc:847 +#line 3377 "seclang-parser.cc" // lalr1.cc:859 break; case 241: -#line 2100 "seclang-parser.yy" // lalr1.cc:847 +#line 2100 "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 3378 "seclang-parser.cc" // lalr1.cc:847 +#line 3385 "seclang-parser.cc" // lalr1.cc:859 break; case 242: -#line 2104 "seclang-parser.yy" // lalr1.cc:847 +#line 2104 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Session_NoDictElement()); } -#line 3386 "seclang-parser.cc" // lalr1.cc:847 +#line 3393 "seclang-parser.cc" // lalr1.cc:859 break; case 243: -#line 2108 "seclang-parser.yy" // lalr1.cc:847 +#line 2108 "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 3394 "seclang-parser.cc" // lalr1.cc:847 +#line 3401 "seclang-parser.cc" // lalr1.cc:859 break; case 244: -#line 2112 "seclang-parser.yy" // lalr1.cc:847 +#line 2112 "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 3402 "seclang-parser.cc" // lalr1.cc:847 +#line 3409 "seclang-parser.cc" // lalr1.cc:859 break; case 245: -#line 2116 "seclang-parser.yy" // lalr1.cc:847 +#line 2116 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsNames_NoDictElement()); } -#line 3410 "seclang-parser.cc" // lalr1.cc:847 +#line 3417 "seclang-parser.cc" // lalr1.cc:859 break; case 246: -#line 2120 "seclang-parser.yy" // lalr1.cc:847 +#line 2120 "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 3418 "seclang-parser.cc" // lalr1.cc:847 +#line 3425 "seclang-parser.cc" // lalr1.cc:859 break; case 247: -#line 2124 "seclang-parser.yy" // lalr1.cc:847 +#line 2124 "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 3426 "seclang-parser.cc" // lalr1.cc:847 +#line 3433 "seclang-parser.cc" // lalr1.cc:859 break; case 248: -#line 2128 "seclang-parser.yy" // lalr1.cc:847 +#line 2128 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsGetNames_NoDictElement()); } -#line 3434 "seclang-parser.cc" // lalr1.cc:847 +#line 3441 "seclang-parser.cc" // lalr1.cc:859 break; case 249: -#line 2133 "seclang-parser.yy" // lalr1.cc:847 +#line 2133 "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 3442 "seclang-parser.cc" // lalr1.cc:847 +#line 3449 "seclang-parser.cc" // lalr1.cc:859 break; case 250: -#line 2137 "seclang-parser.yy" // lalr1.cc:847 +#line 2137 "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 3450 "seclang-parser.cc" // lalr1.cc:847 +#line 3457 "seclang-parser.cc" // lalr1.cc:859 break; case 251: -#line 2141 "seclang-parser.yy" // lalr1.cc:847 +#line 2141 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsPostNames_NoDictElement()); } -#line 3458 "seclang-parser.cc" // lalr1.cc:847 +#line 3465 "seclang-parser.cc" // lalr1.cc:859 break; case 252: -#line 2146 "seclang-parser.yy" // lalr1.cc:847 +#line 2146 "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 3466 "seclang-parser.cc" // lalr1.cc:847 +#line 3473 "seclang-parser.cc" // lalr1.cc:859 break; case 253: -#line 2150 "seclang-parser.yy" // lalr1.cc:847 +#line 2150 "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 3474 "seclang-parser.cc" // lalr1.cc:847 +#line 3481 "seclang-parser.cc" // lalr1.cc:859 break; case 254: -#line 2154 "seclang-parser.yy" // lalr1.cc:847 +#line 2154 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestHeadersNames_NoDictElement()); } -#line 3482 "seclang-parser.cc" // lalr1.cc:847 +#line 3489 "seclang-parser.cc" // lalr1.cc:859 break; case 255: -#line 2159 "seclang-parser.yy" // lalr1.cc:847 +#line 2159 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentType()); } -#line 3490 "seclang-parser.cc" // lalr1.cc:847 +#line 3497 "seclang-parser.cc" // lalr1.cc:859 break; case 256: -#line 2164 "seclang-parser.yy" // lalr1.cc:847 +#line 2164 "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 3498 "seclang-parser.cc" // lalr1.cc:847 +#line 3505 "seclang-parser.cc" // lalr1.cc:859 break; case 257: -#line 2168 "seclang-parser.yy" // lalr1.cc:847 +#line 2168 "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 3506 "seclang-parser.cc" // lalr1.cc:847 +#line 3513 "seclang-parser.cc" // lalr1.cc:859 break; case 258: -#line 2172 "seclang-parser.yy" // lalr1.cc:847 +#line 2172 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseHeadersNames_NoDictElement()); } -#line 3514 "seclang-parser.cc" // lalr1.cc:847 +#line 3521 "seclang-parser.cc" // lalr1.cc:859 break; case 259: -#line 2176 "seclang-parser.yy" // lalr1.cc:847 +#line 2176 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ArgsCombinedSize()); } -#line 3522 "seclang-parser.cc" // lalr1.cc:847 +#line 3529 "seclang-parser.cc" // lalr1.cc:859 break; case 260: -#line 2180 "seclang-parser.yy" // lalr1.cc:847 +#line 2180 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::AuthType()); } -#line 3530 "seclang-parser.cc" // lalr1.cc:847 +#line 3537 "seclang-parser.cc" // lalr1.cc:859 break; case 261: -#line 2184 "seclang-parser.yy" // lalr1.cc:847 +#line 2184 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FilesCombinedSize()); } -#line 3538 "seclang-parser.cc" // lalr1.cc:847 +#line 3545 "seclang-parser.cc" // lalr1.cc:859 break; case 262: -#line 2188 "seclang-parser.yy" // lalr1.cc:847 +#line 2188 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequest()); } -#line 3546 "seclang-parser.cc" // lalr1.cc:847 +#line 3553 "seclang-parser.cc" // lalr1.cc:859 break; case 263: -#line 2192 "seclang-parser.yy" // lalr1.cc:847 +#line 2192 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::FullRequestLength()); } -#line 3554 "seclang-parser.cc" // lalr1.cc:847 +#line 3561 "seclang-parser.cc" // lalr1.cc:859 break; case 264: -#line 2196 "seclang-parser.yy" // lalr1.cc:847 +#line 2196 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::InboundDataError()); } -#line 3562 "seclang-parser.cc" // lalr1.cc:847 +#line 3569 "seclang-parser.cc" // lalr1.cc:859 break; case 265: -#line 2200 "seclang-parser.yy" // lalr1.cc:847 +#line 2200 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVar()); } -#line 3570 "seclang-parser.cc" // lalr1.cc:847 +#line 3577 "seclang-parser.cc" // lalr1.cc:859 break; case 266: -#line 2204 "seclang-parser.yy" // lalr1.cc:847 +#line 2204 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MatchedVarName()); } -#line 3578 "seclang-parser.cc" // lalr1.cc:847 +#line 3585 "seclang-parser.cc" // lalr1.cc:859 break; case 267: -#line 2208 "seclang-parser.yy" // lalr1.cc:847 +#line 2208 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryQuoted()); } -#line 3586 "seclang-parser.cc" // lalr1.cc:847 +#line 3593 "seclang-parser.cc" // lalr1.cc:859 break; case 268: -#line 2212 "seclang-parser.yy" // lalr1.cc:847 +#line 2212 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartBoundaryWhiteSpace()); } -#line 3594 "seclang-parser.cc" // lalr1.cc:847 +#line 3601 "seclang-parser.cc" // lalr1.cc:859 break; case 269: -#line 2216 "seclang-parser.yy" // lalr1.cc:847 +#line 2216 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartCrlfLFLines()); } -#line 3602 "seclang-parser.cc" // lalr1.cc:847 +#line 3609 "seclang-parser.cc" // lalr1.cc:859 break; case 270: -#line 2220 "seclang-parser.yy" // lalr1.cc:847 +#line 2220 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateAfter()); } -#line 3610 "seclang-parser.cc" // lalr1.cc:847 +#line 3617 "seclang-parser.cc" // lalr1.cc:859 break; case 271: -#line 2224 "seclang-parser.yy" // lalr1.cc:847 +#line 2224 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartDateBefore()); } -#line 3618 "seclang-parser.cc" // lalr1.cc:847 +#line 3625 "seclang-parser.cc" // lalr1.cc:859 break; case 272: -#line 2228 "seclang-parser.yy" // lalr1.cc:847 +#line 2228 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartFileLimitExceeded()); } -#line 3626 "seclang-parser.cc" // lalr1.cc:847 +#line 3633 "seclang-parser.cc" // lalr1.cc:859 break; case 273: -#line 2232 "seclang-parser.yy" // lalr1.cc:847 +#line 2232 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartHeaderFolding()); } -#line 3634 "seclang-parser.cc" // lalr1.cc:847 +#line 3641 "seclang-parser.cc" // lalr1.cc:859 break; case 274: -#line 2236 "seclang-parser.yy" // lalr1.cc:847 +#line 2236 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidHeaderFolding()); } -#line 3642 "seclang-parser.cc" // lalr1.cc:847 +#line 3649 "seclang-parser.cc" // lalr1.cc:859 break; case 275: -#line 2240 "seclang-parser.yy" // lalr1.cc:847 +#line 2240 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidPart()); } -#line 3650 "seclang-parser.cc" // lalr1.cc:847 +#line 3657 "seclang-parser.cc" // lalr1.cc:859 break; case 276: -#line 2244 "seclang-parser.yy" // lalr1.cc:847 +#line 2244 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartInvalidQuoting()); } -#line 3658 "seclang-parser.cc" // lalr1.cc:847 +#line 3665 "seclang-parser.cc" // lalr1.cc:859 break; case 277: -#line 2248 "seclang-parser.yy" // lalr1.cc:847 +#line 2248 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartLFLine()); } -#line 3666 "seclang-parser.cc" // lalr1.cc:847 +#line 3673 "seclang-parser.cc" // lalr1.cc:859 break; case 278: -#line 2252 "seclang-parser.yy" // lalr1.cc:847 +#line 2252 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 3674 "seclang-parser.cc" // lalr1.cc:847 +#line 3681 "seclang-parser.cc" // lalr1.cc:859 break; case 279: -#line 2256 "seclang-parser.yy" // lalr1.cc:847 +#line 2256 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartMissingSemicolon()); } -#line 3682 "seclang-parser.cc" // lalr1.cc:847 +#line 3689 "seclang-parser.cc" // lalr1.cc:859 break; case 280: -#line 2260 "seclang-parser.yy" // lalr1.cc:847 +#line 2260 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartStrictError()); } -#line 3690 "seclang-parser.cc" // lalr1.cc:847 +#line 3697 "seclang-parser.cc" // lalr1.cc:859 break; case 281: -#line 2264 "seclang-parser.yy" // lalr1.cc:847 +#line 2264 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::MultipartUnmatchedBoundary()); } -#line 3698 "seclang-parser.cc" // lalr1.cc:847 +#line 3705 "seclang-parser.cc" // lalr1.cc:859 break; case 282: -#line 2268 "seclang-parser.yy" // lalr1.cc:847 +#line 2268 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::OutboundDataError()); } -#line 3706 "seclang-parser.cc" // lalr1.cc:847 +#line 3713 "seclang-parser.cc" // lalr1.cc:859 break; case 283: -#line 2272 "seclang-parser.yy" // lalr1.cc:847 +#line 2272 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::PathInfo()); } -#line 3714 "seclang-parser.cc" // lalr1.cc:847 +#line 3721 "seclang-parser.cc" // lalr1.cc:859 break; case 284: -#line 2276 "seclang-parser.yy" // lalr1.cc:847 +#line 2276 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::QueryString()); } -#line 3722 "seclang-parser.cc" // lalr1.cc:847 +#line 3729 "seclang-parser.cc" // lalr1.cc:859 break; case 285: -#line 2280 "seclang-parser.yy" // lalr1.cc:847 +#line 2280 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteAddr()); } -#line 3730 "seclang-parser.cc" // lalr1.cc:847 +#line 3737 "seclang-parser.cc" // lalr1.cc:859 break; case 286: -#line 2284 "seclang-parser.yy" // lalr1.cc:847 +#line 2284 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemoteHost()); } -#line 3738 "seclang-parser.cc" // lalr1.cc:847 +#line 3745 "seclang-parser.cc" // lalr1.cc:859 break; case 287: -#line 2288 "seclang-parser.yy" // lalr1.cc:847 +#line 2288 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RemotePort()); } -#line 3746 "seclang-parser.cc" // lalr1.cc:847 +#line 3753 "seclang-parser.cc" // lalr1.cc:859 break; case 288: -#line 2292 "seclang-parser.yy" // lalr1.cc:847 +#line 2292 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyError()); } -#line 3754 "seclang-parser.cc" // lalr1.cc:847 +#line 3761 "seclang-parser.cc" // lalr1.cc:859 break; case 289: -#line 2296 "seclang-parser.yy" // lalr1.cc:847 +#line 2296 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyErrorMsg()); } -#line 3762 "seclang-parser.cc" // lalr1.cc:847 +#line 3769 "seclang-parser.cc" // lalr1.cc:859 break; case 290: -#line 2300 "seclang-parser.yy" // lalr1.cc:847 +#line 2300 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessor()); } -#line 3770 "seclang-parser.cc" // lalr1.cc:847 +#line 3777 "seclang-parser.cc" // lalr1.cc:859 break; case 291: -#line 2304 "seclang-parser.yy" // lalr1.cc:847 +#line 2304 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorError()); } -#line 3778 "seclang-parser.cc" // lalr1.cc:847 +#line 3785 "seclang-parser.cc" // lalr1.cc:859 break; case 292: -#line 2308 "seclang-parser.yy" // lalr1.cc:847 +#line 2308 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ReqbodyProcessorErrorMsg()); } -#line 3786 "seclang-parser.cc" // lalr1.cc:847 +#line 3793 "seclang-parser.cc" // lalr1.cc:859 break; case 293: -#line 2312 "seclang-parser.yy" // lalr1.cc:847 +#line 2312 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBasename()); } -#line 3794 "seclang-parser.cc" // lalr1.cc:847 +#line 3801 "seclang-parser.cc" // lalr1.cc:859 break; case 294: -#line 2316 "seclang-parser.yy" // lalr1.cc:847 +#line 2316 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBody()); } -#line 3802 "seclang-parser.cc" // lalr1.cc:847 +#line 3809 "seclang-parser.cc" // lalr1.cc:859 break; case 295: -#line 2320 "seclang-parser.yy" // lalr1.cc:847 +#line 2320 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestBodyLength()); } -#line 3810 "seclang-parser.cc" // lalr1.cc:847 +#line 3817 "seclang-parser.cc" // lalr1.cc:859 break; case 296: -#line 2324 "seclang-parser.yy" // lalr1.cc:847 +#line 2324 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestFilename()); } -#line 3818 "seclang-parser.cc" // lalr1.cc:847 +#line 3825 "seclang-parser.cc" // lalr1.cc:859 break; case 297: -#line 2328 "seclang-parser.yy" // lalr1.cc:847 +#line 2328 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestLine()); } -#line 3826 "seclang-parser.cc" // lalr1.cc:847 +#line 3833 "seclang-parser.cc" // lalr1.cc:859 break; case 298: -#line 2332 "seclang-parser.yy" // lalr1.cc:847 +#line 2332 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestMethod()); } -#line 3834 "seclang-parser.cc" // lalr1.cc:847 +#line 3841 "seclang-parser.cc" // lalr1.cc:859 break; case 299: -#line 2336 "seclang-parser.yy" // lalr1.cc:847 +#line 2336 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestProtocol()); } -#line 3842 "seclang-parser.cc" // lalr1.cc:847 +#line 3849 "seclang-parser.cc" // lalr1.cc:859 break; case 300: -#line 2340 "seclang-parser.yy" // lalr1.cc:847 +#line 2340 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURI()); } -#line 3850 "seclang-parser.cc" // lalr1.cc:847 +#line 3857 "seclang-parser.cc" // lalr1.cc:859 break; case 301: -#line 2344 "seclang-parser.yy" // lalr1.cc:847 +#line 2344 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::RequestURIRaw()); } -#line 3858 "seclang-parser.cc" // lalr1.cc:847 +#line 3865 "seclang-parser.cc" // lalr1.cc:859 break; case 302: -#line 2348 "seclang-parser.yy" // lalr1.cc:847 +#line 2348 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseBody()); } -#line 3866 "seclang-parser.cc" // lalr1.cc:847 +#line 3873 "seclang-parser.cc" // lalr1.cc:859 break; case 303: -#line 2352 "seclang-parser.yy" // lalr1.cc:847 +#line 2352 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseContentLength()); } -#line 3874 "seclang-parser.cc" // lalr1.cc:847 +#line 3881 "seclang-parser.cc" // lalr1.cc:859 break; case 304: -#line 2356 "seclang-parser.yy" // lalr1.cc:847 +#line 2356 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseProtocol()); } -#line 3882 "seclang-parser.cc" // lalr1.cc:847 +#line 3889 "seclang-parser.cc" // lalr1.cc:859 break; case 305: -#line 2360 "seclang-parser.yy" // lalr1.cc:847 +#line 2360 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ResponseStatus()); } -#line 3890 "seclang-parser.cc" // lalr1.cc:847 +#line 3897 "seclang-parser.cc" // lalr1.cc:859 break; case 306: -#line 2364 "seclang-parser.yy" // lalr1.cc:847 +#line 2364 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerAddr()); } -#line 3898 "seclang-parser.cc" // lalr1.cc:847 +#line 3905 "seclang-parser.cc" // lalr1.cc:859 break; case 307: -#line 2368 "seclang-parser.yy" // lalr1.cc:847 +#line 2368 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerName()); } -#line 3906 "seclang-parser.cc" // lalr1.cc:847 +#line 3913 "seclang-parser.cc" // lalr1.cc:859 break; case 308: -#line 2372 "seclang-parser.yy" // lalr1.cc:847 +#line 2372 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::ServerPort()); } -#line 3914 "seclang-parser.cc" // lalr1.cc:847 +#line 3921 "seclang-parser.cc" // lalr1.cc:859 break; case 309: -#line 2376 "seclang-parser.yy" // lalr1.cc:847 +#line 2376 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::SessionID()); } -#line 3922 "seclang-parser.cc" // lalr1.cc:847 +#line 3929 "seclang-parser.cc" // lalr1.cc:859 break; case 310: -#line 2380 "seclang-parser.yy" // lalr1.cc:847 +#line 2380 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UniqueID()); } -#line 3930 "seclang-parser.cc" // lalr1.cc:847 +#line 3937 "seclang-parser.cc" // lalr1.cc:859 break; case 311: -#line 2384 "seclang-parser.yy" // lalr1.cc:847 +#line 2384 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UrlEncodedError()); } -#line 3938 "seclang-parser.cc" // lalr1.cc:847 +#line 3945 "seclang-parser.cc" // lalr1.cc:859 break; case 312: -#line 2388 "seclang-parser.yy" // lalr1.cc:847 +#line 2388 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::UserID()); } -#line 3946 "seclang-parser.cc" // lalr1.cc:847 +#line 3953 "seclang-parser.cc" // lalr1.cc:859 break; case 313: -#line 2392 "seclang-parser.yy" // lalr1.cc:847 +#line 2392 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 3954 "seclang-parser.cc" // lalr1.cc:847 +#line 3961 "seclang-parser.cc" // lalr1.cc:859 break; case 314: -#line 2396 "seclang-parser.yy" // lalr1.cc:847 +#line 2396 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::Status()); } -#line 3962 "seclang-parser.cc" // lalr1.cc:847 +#line 3969 "seclang-parser.cc" // lalr1.cc:859 break; case 315: -#line 2400 "seclang-parser.yy" // lalr1.cc:847 +#line 2400 "seclang-parser.yy" // lalr1.cc:859 { VARIABLE_CONTAINER(yylhs.value.as< std::unique_ptr > (), new Variables::WebAppId()); } -#line 3970 "seclang-parser.cc" // lalr1.cc:847 +#line 3977 "seclang-parser.cc" // lalr1.cc:859 break; case 316: -#line 2404 "seclang-parser.yy" // lalr1.cc:847 +#line 2404 "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 3981 "seclang-parser.cc" // lalr1.cc:847 +#line 3988 "seclang-parser.cc" // lalr1.cc:859 break; case 317: -#line 2412 "seclang-parser.yy" // lalr1.cc:847 +#line 2412 "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 3992 "seclang-parser.cc" // lalr1.cc:847 +#line 3999 "seclang-parser.cc" // lalr1.cc:859 break; case 318: -#line 2419 "seclang-parser.yy" // lalr1.cc:847 +#line 2419 "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 4003 "seclang-parser.cc" // lalr1.cc:847 +#line 4010 "seclang-parser.cc" // lalr1.cc:859 break; case 319: -#line 2426 "seclang-parser.yy" // lalr1.cc:847 +#line 2426 "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 4014 "seclang-parser.cc" // lalr1.cc:847 +#line 4021 "seclang-parser.cc" // lalr1.cc:859 break; case 320: -#line 2433 "seclang-parser.yy" // lalr1.cc:847 +#line 2433 "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 4025 "seclang-parser.cc" // lalr1.cc:847 +#line 4032 "seclang-parser.cc" // lalr1.cc:859 break; case 321: -#line 2440 "seclang-parser.yy" // lalr1.cc:847 +#line 2440 "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 4036 "seclang-parser.cc" // lalr1.cc:847 +#line 4043 "seclang-parser.cc" // lalr1.cc:859 break; case 322: -#line 2447 "seclang-parser.yy" // lalr1.cc:847 +#line 2447 "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 4047 "seclang-parser.cc" // lalr1.cc:847 +#line 4054 "seclang-parser.cc" // lalr1.cc:859 break; case 323: -#line 2454 "seclang-parser.yy" // lalr1.cc:847 +#line 2454 "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 4058 "seclang-parser.cc" // lalr1.cc:847 +#line 4065 "seclang-parser.cc" // lalr1.cc:859 break; case 324: -#line 2461 "seclang-parser.yy" // lalr1.cc:847 +#line 2461 "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 4069 "seclang-parser.cc" // lalr1.cc:847 +#line 4076 "seclang-parser.cc" // lalr1.cc:859 break; case 325: -#line 2468 "seclang-parser.yy" // lalr1.cc:847 +#line 2468 "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 4080 "seclang-parser.cc" // lalr1.cc:847 +#line 4087 "seclang-parser.cc" // lalr1.cc:859 break; case 326: -#line 2475 "seclang-parser.yy" // lalr1.cc:847 +#line 2475 "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 4091 "seclang-parser.cc" // lalr1.cc:847 +#line 4098 "seclang-parser.cc" // lalr1.cc:859 break; case 327: -#line 2482 "seclang-parser.yy" // lalr1.cc:847 +#line 2482 "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 4102 "seclang-parser.cc" // lalr1.cc:847 +#line 4109 "seclang-parser.cc" // lalr1.cc:859 break; case 328: -#line 2489 "seclang-parser.yy" // lalr1.cc:847 +#line 2489 "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 4113 "seclang-parser.cc" // lalr1.cc:847 +#line 4120 "seclang-parser.cc" // lalr1.cc:859 break; case 329: -#line 2499 "seclang-parser.yy" // lalr1.cc:847 +#line 2499 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Accuracy(yystack_[0].value.as< std::string > ())); } -#line 4121 "seclang-parser.cc" // lalr1.cc:847 +#line 4128 "seclang-parser.cc" // lalr1.cc:859 break; case 330: -#line 2503 "seclang-parser.yy" // lalr1.cc:847 +#line 2503 "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 4129 "seclang-parser.cc" // lalr1.cc:847 +#line 4136 "seclang-parser.cc" // lalr1.cc:859 break; case 331: -#line 2507 "seclang-parser.yy" // lalr1.cc:847 +#line 2507 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Append", yystack_[1].location); } -#line 4137 "seclang-parser.cc" // lalr1.cc:847 +#line 4144 "seclang-parser.cc" // lalr1.cc:859 break; case 332: -#line 2511 "seclang-parser.yy" // lalr1.cc:847 +#line 2511 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::AuditLog(yystack_[0].value.as< std::string > ())); } -#line 4145 "seclang-parser.cc" // lalr1.cc:847 +#line 4152 "seclang-parser.cc" // lalr1.cc:859 break; case 333: -#line 2515 "seclang-parser.yy" // lalr1.cc:847 +#line 2515 "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 4153 "seclang-parser.cc" // lalr1.cc:847 +#line 4160 "seclang-parser.cc" // lalr1.cc:859 break; case 334: -#line 2519 "seclang-parser.yy" // lalr1.cc:847 +#line 2519 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Capture(yystack_[0].value.as< std::string > ())); } -#line 4161 "seclang-parser.cc" // lalr1.cc:847 +#line 4168 "seclang-parser.cc" // lalr1.cc:859 break; case 335: -#line 2523 "seclang-parser.yy" // lalr1.cc:847 +#line 2523 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Chain(yystack_[0].value.as< std::string > ())); } -#line 4169 "seclang-parser.cc" // lalr1.cc:847 +#line 4176 "seclang-parser.cc" // lalr1.cc:859 break; case 336: -#line 2527 "seclang-parser.yy" // lalr1.cc:847 +#line 2527 "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 4178 "seclang-parser.cc" // lalr1.cc:847 +#line 4185 "seclang-parser.cc" // lalr1.cc:859 break; case 337: -#line 2532 "seclang-parser.yy" // lalr1.cc:847 +#line 2532 "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 4187 "seclang-parser.cc" // lalr1.cc:847 +#line 4194 "seclang-parser.cc" // lalr1.cc:859 break; case 338: -#line 2537 "seclang-parser.yy" // lalr1.cc:847 +#line 2537 "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 4196 "seclang-parser.cc" // lalr1.cc:847 +#line 4203 "seclang-parser.cc" // lalr1.cc:859 break; case 339: -#line 2542 "seclang-parser.yy" // lalr1.cc:847 +#line 2542 "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 4204 "seclang-parser.cc" // lalr1.cc:847 +#line 4211 "seclang-parser.cc" // lalr1.cc:859 break; case 340: -#line 2546 "seclang-parser.yy" // lalr1.cc:847 +#line 2546 "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 4212 "seclang-parser.cc" // lalr1.cc:847 +#line 4219 "seclang-parser.cc" // lalr1.cc:859 break; case 341: -#line 2550 "seclang-parser.yy" // lalr1.cc:847 +#line 2550 "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 4220 "seclang-parser.cc" // lalr1.cc:847 +#line 4227 "seclang-parser.cc" // lalr1.cc:859 break; case 342: -#line 2554 "seclang-parser.yy" // lalr1.cc:847 +#line 2554 "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 4229 "seclang-parser.cc" // lalr1.cc:847 +#line 4236 "seclang-parser.cc" // lalr1.cc:859 break; case 343: -#line 2559 "seclang-parser.yy" // lalr1.cc:847 +#line 2559 "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 4238 "seclang-parser.cc" // lalr1.cc:847 +#line 4245 "seclang-parser.cc" // lalr1.cc:859 break; case 344: -#line 2564 "seclang-parser.yy" // lalr1.cc:847 +#line 2564 "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 4246 "seclang-parser.cc" // lalr1.cc:847 +#line 4253 "seclang-parser.cc" // lalr1.cc:859 break; case 345: -#line 2568 "seclang-parser.yy" // lalr1.cc:847 +#line 2568 "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 4254 "seclang-parser.cc" // lalr1.cc:847 +#line 4261 "seclang-parser.cc" // lalr1.cc:859 break; case 346: -#line 2572 "seclang-parser.yy" // lalr1.cc:847 +#line 2572 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=on")); } -#line 4262 "seclang-parser.cc" // lalr1.cc:847 +#line 4269 "seclang-parser.cc" // lalr1.cc:859 break; case 347: -#line 2576 "seclang-parser.yy" // lalr1.cc:847 +#line 2576 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=off")); } -#line 4270 "seclang-parser.cc" // lalr1.cc:847 +#line 4277 "seclang-parser.cc" // lalr1.cc:859 break; case 348: -#line 2580 "seclang-parser.yy" // lalr1.cc:847 +#line 2580 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleEngine("ctl:RuleEngine=detectiononly")); } -#line 4278 "seclang-parser.cc" // lalr1.cc:847 +#line 4285 "seclang-parser.cc" // lalr1.cc:859 break; case 349: -#line 2584 "seclang-parser.yy" // lalr1.cc:847 +#line 2584 "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 4286 "seclang-parser.cc" // lalr1.cc:847 +#line 4293 "seclang-parser.cc" // lalr1.cc:859 break; case 350: -#line 2588 "seclang-parser.yy" // lalr1.cc:847 +#line 2588 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::ctl::RuleRemoveByTag(yystack_[0].value.as< std::string > ())); } -#line 4294 "seclang-parser.cc" // lalr1.cc:847 +#line 4301 "seclang-parser.cc" // lalr1.cc:859 break; case 351: -#line 2592 "seclang-parser.yy" // lalr1.cc:847 +#line 2592 "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 4302 "seclang-parser.cc" // lalr1.cc:847 +#line 4309 "seclang-parser.cc" // lalr1.cc:859 break; case 352: -#line 2596 "seclang-parser.yy" // lalr1.cc:847 +#line 2596 "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 4310 "seclang-parser.cc" // lalr1.cc:847 +#line 4317 "seclang-parser.cc" // lalr1.cc:859 break; case 353: -#line 2600 "seclang-parser.yy" // lalr1.cc:847 +#line 2600 "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 4318 "seclang-parser.cc" // lalr1.cc:847 +#line 4325 "seclang-parser.cc" // lalr1.cc:859 break; case 354: -#line 2604 "seclang-parser.yy" // lalr1.cc:847 +#line 2604 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("DeprecateVar", yystack_[1].location); } -#line 4326 "seclang-parser.cc" // lalr1.cc:847 +#line 4333 "seclang-parser.cc" // lalr1.cc:859 break; case 355: -#line 2608 "seclang-parser.yy" // lalr1.cc:847 +#line 2608 "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 4335 "seclang-parser.cc" // lalr1.cc:847 +#line 4342 "seclang-parser.cc" // lalr1.cc:859 break; case 356: -#line 2613 "seclang-parser.yy" // lalr1.cc:847 +#line 2613 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Exec(yystack_[0].value.as< std::string > ())); } -#line 4343 "seclang-parser.cc" // lalr1.cc:847 +#line 4350 "seclang-parser.cc" // lalr1.cc:859 break; case 357: -#line 2617 "seclang-parser.yy" // lalr1.cc:847 +#line 2617 "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 4352 "seclang-parser.cc" // lalr1.cc:847 +#line 4359 "seclang-parser.cc" // lalr1.cc:859 break; case 358: -#line 2622 "seclang-parser.yy" // lalr1.cc:847 +#line 2622 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::RuleId(yystack_[0].value.as< std::string > ())); } -#line 4360 "seclang-parser.cc" // lalr1.cc:847 +#line 4367 "seclang-parser.cc" // lalr1.cc:859 break; case 359: -#line 2626 "seclang-parser.yy" // lalr1.cc:847 +#line 2626 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::InitCol(yystack_[1].value.as< std::string > (), std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4368 "seclang-parser.cc" // lalr1.cc:847 +#line 4375 "seclang-parser.cc" // lalr1.cc:859 break; case 360: -#line 2630 "seclang-parser.yy" // lalr1.cc:847 +#line 2630 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::LogData(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4376 "seclang-parser.cc" // lalr1.cc:847 +#line 4383 "seclang-parser.cc" // lalr1.cc:859 break; case 361: -#line 2634 "seclang-parser.yy" // lalr1.cc:847 +#line 2634 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Log(yystack_[0].value.as< std::string > ())); } -#line 4384 "seclang-parser.cc" // lalr1.cc:847 +#line 4391 "seclang-parser.cc" // lalr1.cc:859 break; case 362: -#line 2638 "seclang-parser.yy" // lalr1.cc:847 +#line 2638 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Maturity(yystack_[0].value.as< std::string > ())); } -#line 4392 "seclang-parser.cc" // lalr1.cc:847 +#line 4399 "seclang-parser.cc" // lalr1.cc:859 break; case 363: -#line 2642 "seclang-parser.yy" // lalr1.cc:847 +#line 2642 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Msg(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4400 "seclang-parser.cc" // lalr1.cc:847 +#line 4407 "seclang-parser.cc" // lalr1.cc:859 break; case 364: -#line 2646 "seclang-parser.yy" // lalr1.cc:847 +#line 2646 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::MultiMatch(yystack_[0].value.as< std::string > ())); } -#line 4408 "seclang-parser.cc" // lalr1.cc:847 +#line 4415 "seclang-parser.cc" // lalr1.cc:859 break; case 365: -#line 2650 "seclang-parser.yy" // lalr1.cc:847 +#line 2650 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoAuditLog(yystack_[0].value.as< std::string > ())); } -#line 4416 "seclang-parser.cc" // lalr1.cc:847 +#line 4423 "seclang-parser.cc" // lalr1.cc:859 break; case 366: -#line 2654 "seclang-parser.yy" // lalr1.cc:847 +#line 2654 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::NoLog(yystack_[0].value.as< std::string > ())); } -#line 4424 "seclang-parser.cc" // lalr1.cc:847 +#line 4431 "seclang-parser.cc" // lalr1.cc:859 break; case 367: -#line 2658 "seclang-parser.yy" // lalr1.cc:847 +#line 2658 "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 4432 "seclang-parser.cc" // lalr1.cc:847 +#line 4439 "seclang-parser.cc" // lalr1.cc:859 break; case 368: -#line 2662 "seclang-parser.yy" // lalr1.cc:847 +#line 2662 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Pause", yystack_[1].location); } -#line 4440 "seclang-parser.cc" // lalr1.cc:847 +#line 4447 "seclang-parser.cc" // lalr1.cc:859 break; case 369: -#line 2666 "seclang-parser.yy" // lalr1.cc:847 +#line 2666 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Phase(yystack_[0].value.as< std::string > ())); } -#line 4448 "seclang-parser.cc" // lalr1.cc:847 +#line 4455 "seclang-parser.cc" // lalr1.cc:859 break; case 370: -#line 2670 "seclang-parser.yy" // lalr1.cc:847 +#line 2670 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Prepend", yystack_[1].location); } -#line 4456 "seclang-parser.cc" // lalr1.cc:847 +#line 4463 "seclang-parser.cc" // lalr1.cc:859 break; case 371: -#line 2674 "seclang-parser.yy" // lalr1.cc:847 +#line 2674 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("Proxy", yystack_[1].location); } -#line 4464 "seclang-parser.cc" // lalr1.cc:847 +#line 4471 "seclang-parser.cc" // lalr1.cc:859 break; case 372: -#line 2678 "seclang-parser.yy" // lalr1.cc:847 +#line 2678 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::disruptive::Redirect(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4472 "seclang-parser.cc" // lalr1.cc:847 +#line 4479 "seclang-parser.cc" // lalr1.cc:859 break; case 373: -#line 2682 "seclang-parser.yy" // lalr1.cc:847 +#line 2682 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Rev(yystack_[0].value.as< std::string > ())); } -#line 4480 "seclang-parser.cc" // lalr1.cc:847 +#line 4487 "seclang-parser.cc" // lalr1.cc:859 break; case 374: -#line 2686 "seclang-parser.yy" // lalr1.cc:847 +#line 2686 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseArg", yystack_[1].location); } -#line 4488 "seclang-parser.cc" // lalr1.cc:847 +#line 4495 "seclang-parser.cc" // lalr1.cc:859 break; case 375: -#line 2690 "seclang-parser.yy" // lalr1.cc:847 +#line 2690 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseMatched", yystack_[1].location); } -#line 4496 "seclang-parser.cc" // lalr1.cc:847 +#line 4503 "seclang-parser.cc" // lalr1.cc:859 break; case 376: -#line 2694 "seclang-parser.yy" // lalr1.cc:847 +#line 2694 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseMatchedBytes", yystack_[1].location); } -#line 4504 "seclang-parser.cc" // lalr1.cc:847 +#line 4511 "seclang-parser.cc" // lalr1.cc:859 break; case 377: -#line 2698 "seclang-parser.yy" // lalr1.cc:847 +#line 2698 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseRequestHeader", yystack_[1].location); } -#line 4512 "seclang-parser.cc" // lalr1.cc:847 +#line 4519 "seclang-parser.cc" // lalr1.cc:859 break; case 378: -#line 2702 "seclang-parser.yy" // lalr1.cc:847 +#line 2702 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SanatiseResponseHeader", yystack_[1].location); } -#line 4520 "seclang-parser.cc" // lalr1.cc:847 +#line 4527 "seclang-parser.cc" // lalr1.cc:859 break; case 379: -#line 2706 "seclang-parser.yy" // lalr1.cc:847 +#line 2706 "seclang-parser.yy" // lalr1.cc:859 { ACTION_NOT_SUPPORTED("SetEnv", yystack_[1].location); } -#line 4528 "seclang-parser.cc" // lalr1.cc:847 +#line 4535 "seclang-parser.cc" // lalr1.cc:859 break; case 380: -#line 2710 "seclang-parser.yy" // lalr1.cc:847 +#line 2710 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetRSC(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4536 "seclang-parser.cc" // lalr1.cc:847 +#line 4543 "seclang-parser.cc" // lalr1.cc:859 break; case 381: -#line 2714 "seclang-parser.yy" // lalr1.cc:847 +#line 2714 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetSID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4544 "seclang-parser.cc" // lalr1.cc:847 +#line 4551 "seclang-parser.cc" // lalr1.cc:859 break; case 382: -#line 2718 "seclang-parser.yy" // lalr1.cc:847 +#line 2718 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetUID(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4552 "seclang-parser.cc" // lalr1.cc:847 +#line 4559 "seclang-parser.cc" // lalr1.cc:859 break; case 383: -#line 2722 "seclang-parser.yy" // lalr1.cc:847 +#line 2722 "seclang-parser.yy" // lalr1.cc:859 { yylhs.value.as< std::unique_ptr > () = std::move(yystack_[0].value.as< std::unique_ptr > ()); } -#line 4560 "seclang-parser.cc" // lalr1.cc:847 +#line 4567 "seclang-parser.cc" // lalr1.cc:859 break; case 384: -#line 2726 "seclang-parser.yy" // lalr1.cc:847 +#line 2726 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Severity(yystack_[0].value.as< std::string > ())); } -#line 4568 "seclang-parser.cc" // lalr1.cc:847 +#line 4575 "seclang-parser.cc" // lalr1.cc:859 break; case 385: -#line 2730 "seclang-parser.yy" // lalr1.cc:847 +#line 2730 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Skip(yystack_[0].value.as< std::string > ())); } -#line 4576 "seclang-parser.cc" // lalr1.cc:847 +#line 4583 "seclang-parser.cc" // lalr1.cc:859 break; case 386: -#line 2734 "seclang-parser.yy" // lalr1.cc:847 +#line 2734 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SkipAfter(yystack_[0].value.as< std::string > ())); } -#line 4584 "seclang-parser.cc" // lalr1.cc:847 +#line 4591 "seclang-parser.cc" // lalr1.cc:859 break; case 387: -#line 2738 "seclang-parser.yy" // lalr1.cc:847 +#line 2738 "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 4592 "seclang-parser.cc" // lalr1.cc:847 +#line 4599 "seclang-parser.cc" // lalr1.cc:859 break; case 388: -#line 2742 "seclang-parser.yy" // lalr1.cc:847 +#line 2742 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Tag(std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4600 "seclang-parser.cc" // lalr1.cc:847 +#line 4607 "seclang-parser.cc" // lalr1.cc:859 break; case 389: -#line 2746 "seclang-parser.yy" // lalr1.cc:847 +#line 2746 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::Ver(yystack_[0].value.as< std::string > ())); } -#line 4608 "seclang-parser.cc" // lalr1.cc:847 +#line 4615 "seclang-parser.cc" // lalr1.cc:859 break; case 390: -#line 2750 "seclang-parser.yy" // lalr1.cc:847 +#line 2750 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::XmlNS(yystack_[0].value.as< std::string > ())); } -#line 4616 "seclang-parser.cc" // lalr1.cc:847 +#line 4623 "seclang-parser.cc" // lalr1.cc:859 break; case 391: -#line 2754 "seclang-parser.yy" // lalr1.cc:847 +#line 2754 "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 4624 "seclang-parser.cc" // lalr1.cc:847 +#line 4631 "seclang-parser.cc" // lalr1.cc:859 break; case 392: -#line 2758 "seclang-parser.yy" // lalr1.cc:847 +#line 2758 "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 4632 "seclang-parser.cc" // lalr1.cc:847 +#line 4639 "seclang-parser.cc" // lalr1.cc:859 break; case 393: -#line 2762 "seclang-parser.yy" // lalr1.cc:847 +#line 2762 "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 4640 "seclang-parser.cc" // lalr1.cc:847 +#line 4647 "seclang-parser.cc" // lalr1.cc:859 break; case 394: -#line 2766 "seclang-parser.yy" // lalr1.cc:847 +#line 2766 "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 4648 "seclang-parser.cc" // lalr1.cc:847 +#line 4655 "seclang-parser.cc" // lalr1.cc:859 break; case 395: -#line 2770 "seclang-parser.yy" // lalr1.cc:847 +#line 2770 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64Encode(yystack_[0].value.as< std::string > ())); } -#line 4656 "seclang-parser.cc" // lalr1.cc:847 +#line 4663 "seclang-parser.cc" // lalr1.cc:859 break; case 396: -#line 2774 "seclang-parser.yy" // lalr1.cc:847 +#line 2774 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64Decode(yystack_[0].value.as< std::string > ())); } -#line 4664 "seclang-parser.cc" // lalr1.cc:847 +#line 4671 "seclang-parser.cc" // lalr1.cc:859 break; case 397: -#line 2778 "seclang-parser.yy" // lalr1.cc:847 +#line 2778 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::transformations::Base64DecodeExt(yystack_[0].value.as< std::string > ())); } -#line 4672 "seclang-parser.cc" // lalr1.cc:847 +#line 4679 "seclang-parser.cc" // lalr1.cc:859 break; case 398: -#line 2782 "seclang-parser.yy" // lalr1.cc:847 +#line 2782 "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 4680 "seclang-parser.cc" // lalr1.cc:847 +#line 4687 "seclang-parser.cc" // lalr1.cc:859 break; case 399: -#line 2786 "seclang-parser.yy" // lalr1.cc:847 +#line 2786 "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 4688 "seclang-parser.cc" // lalr1.cc:847 +#line 4695 "seclang-parser.cc" // lalr1.cc:859 break; case 400: -#line 2790 "seclang-parser.yy" // lalr1.cc:847 +#line 2790 "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 4696 "seclang-parser.cc" // lalr1.cc:847 +#line 4703 "seclang-parser.cc" // lalr1.cc:859 break; case 401: -#line 2794 "seclang-parser.yy" // lalr1.cc:847 +#line 2794 "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 4704 "seclang-parser.cc" // lalr1.cc:847 +#line 4711 "seclang-parser.cc" // lalr1.cc:859 break; case 402: -#line 2798 "seclang-parser.yy" // lalr1.cc:847 +#line 2798 "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 4712 "seclang-parser.cc" // lalr1.cc:847 +#line 4719 "seclang-parser.cc" // lalr1.cc:859 break; case 403: -#line 2802 "seclang-parser.yy" // lalr1.cc:847 +#line 2802 "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 4720 "seclang-parser.cc" // lalr1.cc:847 +#line 4727 "seclang-parser.cc" // lalr1.cc:859 break; case 404: -#line 2806 "seclang-parser.yy" // lalr1.cc:847 +#line 2806 "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 4728 "seclang-parser.cc" // lalr1.cc:847 +#line 4735 "seclang-parser.cc" // lalr1.cc:859 break; case 405: -#line 2810 "seclang-parser.yy" // lalr1.cc:847 +#line 2810 "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 4736 "seclang-parser.cc" // lalr1.cc:847 +#line 4743 "seclang-parser.cc" // lalr1.cc:859 break; case 406: -#line 2814 "seclang-parser.yy" // lalr1.cc:847 +#line 2814 "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 4744 "seclang-parser.cc" // lalr1.cc:847 +#line 4751 "seclang-parser.cc" // lalr1.cc:859 break; case 407: -#line 2818 "seclang-parser.yy" // lalr1.cc:847 +#line 2818 "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 4752 "seclang-parser.cc" // lalr1.cc:847 +#line 4759 "seclang-parser.cc" // lalr1.cc:859 break; case 408: -#line 2822 "seclang-parser.yy" // lalr1.cc:847 +#line 2822 "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 4760 "seclang-parser.cc" // lalr1.cc:847 +#line 4767 "seclang-parser.cc" // lalr1.cc:859 break; case 409: -#line 2826 "seclang-parser.yy" // lalr1.cc:847 +#line 2826 "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 4768 "seclang-parser.cc" // lalr1.cc:847 +#line 4775 "seclang-parser.cc" // lalr1.cc:859 break; case 410: -#line 2830 "seclang-parser.yy" // lalr1.cc:847 +#line 2830 "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 4776 "seclang-parser.cc" // lalr1.cc:847 +#line 4783 "seclang-parser.cc" // lalr1.cc:859 break; case 411: -#line 2834 "seclang-parser.yy" // lalr1.cc:847 +#line 2834 "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 4784 "seclang-parser.cc" // lalr1.cc:847 +#line 4791 "seclang-parser.cc" // lalr1.cc:859 break; case 412: -#line 2838 "seclang-parser.yy" // lalr1.cc:847 +#line 2838 "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 4792 "seclang-parser.cc" // lalr1.cc:847 +#line 4799 "seclang-parser.cc" // lalr1.cc:859 break; case 413: -#line 2842 "seclang-parser.yy" // lalr1.cc:847 +#line 2842 "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 4800 "seclang-parser.cc" // lalr1.cc:847 +#line 4807 "seclang-parser.cc" // lalr1.cc:859 break; case 414: -#line 2846 "seclang-parser.yy" // lalr1.cc:847 +#line 2846 "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 4808 "seclang-parser.cc" // lalr1.cc:847 +#line 4815 "seclang-parser.cc" // lalr1.cc:859 break; case 415: -#line 2850 "seclang-parser.yy" // lalr1.cc:847 +#line 2850 "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 4816 "seclang-parser.cc" // lalr1.cc:847 +#line 4823 "seclang-parser.cc" // lalr1.cc:859 break; case 416: -#line 2854 "seclang-parser.yy" // lalr1.cc:847 +#line 2854 "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 4824 "seclang-parser.cc" // lalr1.cc:847 +#line 4831 "seclang-parser.cc" // lalr1.cc:859 break; case 417: -#line 2858 "seclang-parser.yy" // lalr1.cc:847 +#line 2858 "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 4832 "seclang-parser.cc" // lalr1.cc:847 +#line 4839 "seclang-parser.cc" // lalr1.cc:859 break; case 418: -#line 2862 "seclang-parser.yy" // lalr1.cc:847 +#line 2862 "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 4840 "seclang-parser.cc" // lalr1.cc:847 +#line 4847 "seclang-parser.cc" // lalr1.cc:859 break; case 419: -#line 2866 "seclang-parser.yy" // lalr1.cc:847 +#line 2866 "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 4848 "seclang-parser.cc" // lalr1.cc:847 +#line 4855 "seclang-parser.cc" // lalr1.cc:859 break; case 420: -#line 2870 "seclang-parser.yy" // lalr1.cc:847 +#line 2870 "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 4856 "seclang-parser.cc" // lalr1.cc:847 +#line 4863 "seclang-parser.cc" // lalr1.cc:859 break; case 421: -#line 2874 "seclang-parser.yy" // lalr1.cc:847 +#line 2874 "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 4864 "seclang-parser.cc" // lalr1.cc:847 +#line 4871 "seclang-parser.cc" // lalr1.cc:859 break; case 422: -#line 2878 "seclang-parser.yy" // lalr1.cc:847 +#line 2878 "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 4872 "seclang-parser.cc" // lalr1.cc:847 +#line 4879 "seclang-parser.cc" // lalr1.cc:859 break; case 423: -#line 2885 "seclang-parser.yy" // lalr1.cc:847 +#line 2885 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::unsetOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4880 "seclang-parser.cc" // lalr1.cc:847 +#line 4887 "seclang-parser.cc" // lalr1.cc:859 break; case 424: -#line 2889 "seclang-parser.yy" // lalr1.cc:847 +#line 2889 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setToOneOperation, std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4888 "seclang-parser.cc" // lalr1.cc:847 +#line 4895 "seclang-parser.cc" // lalr1.cc:859 break; case 425: -#line 2893 "seclang-parser.yy" // lalr1.cc:847 +#line 2893 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::setOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4896 "seclang-parser.cc" // lalr1.cc:847 +#line 4903 "seclang-parser.cc" // lalr1.cc:859 break; case 426: -#line 2897 "seclang-parser.yy" // lalr1.cc:847 +#line 2897 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::sumAndSetOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4904 "seclang-parser.cc" // lalr1.cc:847 +#line 4911 "seclang-parser.cc" // lalr1.cc:859 break; case 427: -#line 2901 "seclang-parser.yy" // lalr1.cc:847 +#line 2901 "seclang-parser.yy" // lalr1.cc:859 { ACTION_CONTAINER(yylhs.value.as< std::unique_ptr > (), new actions::SetVar(actions::SetVarOperation::substractAndSetOperation, std::move(yystack_[2].value.as< std::unique_ptr > ()), std::move(yystack_[0].value.as< std::unique_ptr > ()))); } -#line 4912 "seclang-parser.cc" // lalr1.cc:847 +#line 4919 "seclang-parser.cc" // lalr1.cc:859 break; case 428: -#line 2908 "seclang-parser.yy" // lalr1.cc:847 +#line 2908 "seclang-parser.yy" // lalr1.cc:859 { yystack_[1].value.as< std::unique_ptr > ()->appendText(yystack_[0].value.as< std::string > ()); yylhs.value.as< std::unique_ptr > () = std::move(yystack_[1].value.as< std::unique_ptr > ()); } -#line 4921 "seclang-parser.cc" // lalr1.cc:847 +#line 4928 "seclang-parser.cc" // lalr1.cc:859 break; case 429: -#line 2913 "seclang-parser.yy" // lalr1.cc:847 +#line 2913 "seclang-parser.yy" // lalr1.cc:859 { yystack_[1].value.as< std::unique_ptr > ()->appendVar(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > () = std::move(yystack_[1].value.as< std::unique_ptr > ()); } -#line 4930 "seclang-parser.cc" // lalr1.cc:847 +#line 4937 "seclang-parser.cc" // lalr1.cc:859 break; case 430: -#line 2918 "seclang-parser.yy" // lalr1.cc:847 +#line 2918 "seclang-parser.yy" // lalr1.cc:859 { std::unique_ptr r(new RunTimeString()); r->appendText(yystack_[0].value.as< std::string > ()); yylhs.value.as< std::unique_ptr > () = std::move(r); } -#line 4940 "seclang-parser.cc" // lalr1.cc:847 +#line 4947 "seclang-parser.cc" // lalr1.cc:859 break; case 431: -#line 2924 "seclang-parser.yy" // lalr1.cc:847 +#line 2924 "seclang-parser.yy" // lalr1.cc:859 { std::unique_ptr r(new RunTimeString()); r->appendVar(std::move(yystack_[0].value.as< std::unique_ptr > ())); yylhs.value.as< std::unique_ptr > () = std::move(r); } -#line 4950 "seclang-parser.cc" // lalr1.cc:847 +#line 4957 "seclang-parser.cc" // lalr1.cc:859 break; -#line 4954 "seclang-parser.cc" // lalr1.cc:847 +#line 4961 "seclang-parser.cc" // lalr1.cc:859 default: break; } @@ -4978,8 +4985,7 @@ namespace yy { if (!yyerrstatus_) { ++yynerrs_; - error (yyla.location, yysyntax_error_ (yystack_[0].state, - yyempty ? yyempty_ : yyla.type_get ())); + error (yyla.location, yysyntax_error_ (yystack_[0].state, yyla)); } @@ -4992,10 +4998,10 @@ namespace yy { // Return failure if at end of input. if (yyla.type_get () == yyeof_) YYABORT; - else if (!yyempty) + else if (!yyla.empty ()) { yy_destroy_ ("Error: discarding", yyla); - yyempty = true; + yyla.clear (); } } @@ -5071,7 +5077,7 @@ namespace yy { goto yyreturn; yyreturn: - if (!yyempty) + if (!yyla.empty ()) yy_destroy_ ("Cleanup: discarding lookahead", yyla); /* Do not reclaim the symbols of the rule whose action triggered @@ -5091,7 +5097,7 @@ namespace yy { << std::endl; // Do not try to display the values of the reclaimed symbols, // as their printer might throw an exception. - if (!yyempty) + if (!yyla.empty ()) yy_destroy_ (YY_NULLPTR, yyla); while (1 < yystack_.size ()) @@ -5111,9 +5117,8 @@ namespace yy { // Generate an error message. std::string - seclang_parser::yysyntax_error_ (state_type yystate, symbol_number_type yytoken) const + seclang_parser::yysyntax_error_ (state_type yystate, const symbol_type& yyla) const { - std::string yyres; // Number of reported tokens (one for the "unexpected", one per // "expected"). size_t yycount = 0; @@ -5127,7 +5132,7 @@ namespace yy { the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - - The only way there can be no lookahead present (in yytoken) is + - The only way there can be no lookahead present (in yyla) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to @@ -5147,8 +5152,9 @@ namespace yy { token that will not be accepted due to an error action in a later state. */ - if (yytoken != yyempty_) + if (!yyla.empty ()) { + int yytoken = yyla.type_get (); yyarg[yycount++] = yytname_[yytoken]; int yyn = yypact_[yystate]; if (!yy_pact_value_is_default_ (yyn)) @@ -5191,6 +5197,7 @@ namespace yy { #undef YYCASE_ } + std::string yyres; // Argument number. size_t yyi = 0; for (char const* yyp = yyformat; *yyp; ++yyp) @@ -6414,8 +6421,8 @@ namespace yy { } // yy -#line 6418 "seclang-parser.cc" // lalr1.cc:1155 -#line 2930 "seclang-parser.yy" // lalr1.cc:1156 +#line 6425 "seclang-parser.cc" // lalr1.cc:1167 +#line 2930 "seclang-parser.yy" // lalr1.cc:1168 void yy::seclang_parser::error (const location_type& l, const std::string& m) { diff --git a/src/parser/seclang-parser.hh b/src/parser/seclang-parser.hh index 6319185e..44bfb7fa 100644 --- a/src/parser/seclang-parser.hh +++ b/src/parser/seclang-parser.hh @@ -1,8 +1,8 @@ -// A Bison parser, made by GNU Bison 3.0.2. +// A Bison parser, made by GNU Bison 3.0.4. // Skeleton interface for Bison LALR(1) parsers in C++ -// Copyright (C) 2002-2013 Free Software Foundation, Inc. +// Copyright (C) 2002-2015 Free Software Foundation, Inc. // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ #ifndef YY_YY_SECLANG_PARSER_HH_INCLUDED # define YY_YY_SECLANG_PARSER_HH_INCLUDED // // "%code requires" blocks. -#line 10 "seclang-parser.yy" // lalr1.cc:372 +#line 10 "seclang-parser.yy" // lalr1.cc:377 #include #include @@ -379,13 +379,14 @@ using modsecurity::operators::Operator; -#line 383 "seclang-parser.hh" // lalr1.cc:372 +#line 383 "seclang-parser.hh" // lalr1.cc:377 # include -# include +# include // std::abort # include # include # include +# include # include "stack.hh" # include "location.hh" #include @@ -455,7 +456,7 @@ using modsecurity::operators::Operator; namespace yy { -#line 459 "seclang-parser.hh" // lalr1.cc:372 +#line 460 "seclang-parser.hh" // lalr1.cc:377 @@ -472,13 +473,13 @@ namespace yy { /// Empty construction. variant () - : yytname_ (YY_NULLPTR) + : yytypeid_ (YY_NULLPTR) {} /// Construct and fill. template variant (const T& t) - : yytname_ (typeid (T).name ()) + : yytypeid_ (&typeid (T)) { YYASSERT (sizeof (T) <= S); new (yyas_ ()) T (t); @@ -487,7 +488,7 @@ namespace yy { /// Destruction, allowed only if empty. ~variant () { - YYASSERT (!yytname_); + YYASSERT (!yytypeid_); } /// Instantiate an empty \a T in here. @@ -495,9 +496,9 @@ namespace yy { T& build () { - YYASSERT (!yytname_); + YYASSERT (!yytypeid_); YYASSERT (sizeof (T) <= S); - yytname_ = typeid (T).name (); + yytypeid_ = & typeid (T); return *new (yyas_ ()) T; } @@ -506,9 +507,9 @@ namespace yy { T& build (const T& t) { - YYASSERT (!yytname_); + YYASSERT (!yytypeid_); YYASSERT (sizeof (T) <= S); - yytname_ = typeid (T).name (); + yytypeid_ = & typeid (T); return *new (yyas_ ()) T (std::move((T&)t)); } @@ -517,7 +518,7 @@ namespace yy { T& as () { - YYASSERT (yytname_ == typeid (T).name ()); + YYASSERT (*yytypeid_ == typeid (T)); YYASSERT (sizeof (T) <= S); return *yyas_ (); } @@ -527,7 +528,7 @@ namespace yy { const T& as () const { - YYASSERT (yytname_ == typeid (T).name ()); + YYASSERT (*yytypeid_ == typeid (T)); YYASSERT (sizeof (T) <= S); return *yyas_ (); } @@ -544,8 +545,8 @@ namespace yy { void swap (self_type& other) { - YYASSERT (yytname_); - YYASSERT (yytname_ == other.yytname_); + YYASSERT (yytypeid_); + YYASSERT (*yytypeid_ == *other.yytypeid_); std::swap (as (), other.as ()); } @@ -575,7 +576,7 @@ namespace yy { destroy () { as ().~T (); - yytname_ = YY_NULLPTR; + yytypeid_ = YY_NULLPTR; } private: @@ -610,7 +611,7 @@ namespace yy { } yybuffer_; /// Whether the content is built: if defined, the name of the stored type. - const char *yytname_; + const std::type_info *yytypeid_; }; @@ -1195,9 +1196,12 @@ namespace yy { /// (External) token type, as returned by yylex. typedef token::yytokentype token_type; - /// Internal symbol number. + /// Symbol type: an internal symbol number. typedef int symbol_number_type; + /// The symbol type number to denote an empty symbol. + enum { empty_symbol = -2 }; + /// Internal symbol number for tokens (subsumed by symbol_number_type). typedef unsigned short int token_number_type; @@ -1243,8 +1247,15 @@ namespace yy { const semantic_type& v, const location_type& l); + /// Destroy the symbol. ~basic_symbol (); + /// Destroy contents, and record that is empty. + void clear (); + + /// Whether empty. + bool empty () const; + /// Destructive move, \a s is emptied into this. void move (basic_symbol& s); @@ -1274,21 +1285,23 @@ namespace yy { /// Constructor from (external) token numbers. by_type (kind_type t); + /// Record that this symbol is empty. + void clear (); + /// Steal the symbol type from \a that. void move (by_type& that); /// The (internal) type number (corresponding to \a type). - /// -1 when this symbol is empty. + /// \a empty when empty. symbol_number_type type_get () const; /// The token. token_type token () const; - enum { empty = 0 }; - /// The symbol type. - /// -1 when this symbol is empty. - token_number_type type; + /// \a empty_symbol when empty. + /// An int, not token_number_type, to be able to store empty_symbol. + int type; }; /// "External" symbols: returned by the scanner. @@ -2664,9 +2677,9 @@ namespace yy { /// Generate an error message. /// \param yystate the state where the error occurred. - /// \param yytoken the lookahead token type, or yyempty_. + /// \param yyla the lookahead token. virtual std::string yysyntax_error_ (state_type yystate, - symbol_number_type yytoken) const; + const symbol_type& yyla) const; /// Compute post-reduction state. /// \param yystate the current state @@ -2769,16 +2782,21 @@ namespace yy { /// Copy constructor. by_state (const by_state& other); + /// Record that this symbol is empty. + void clear (); + /// Steal the symbol type from \a that. void move (by_state& that); /// The (internal) type number (corresponding to \a state). - /// "empty" when empty. + /// \a empty_symbol when empty. symbol_number_type type_get () const; - enum { empty = 0 }; + /// The state number used to denote an empty symbol. + enum { empty_state = -1 }; /// The state. + /// \a empty when empty. state_type state; }; @@ -2819,13 +2837,12 @@ namespace yy { /// Pop \a n symbols the three stacks. void yypop_ (unsigned int n = 1); - // Constants. + /// Constants. enum { yyeof_ = 0, yylast_ = 3274, ///< Last index in yytable_. yynnts_ = 15, ///< Number of nonterminal symbols. - yyempty_ = -2, yyfinal_ = 330, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, @@ -3466,9 +3483,19 @@ namespace yy { template inline seclang_parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + inline + void + seclang_parser::basic_symbol::clear () { // User destructor. symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; switch (yytype) { default: @@ -3703,6 +3730,15 @@ namespace yy { break; } + Base::clear (); + } + + template + inline + bool + seclang_parser::basic_symbol::empty () const + { + return Base::type_get () == empty_symbol; } template @@ -3944,7 +3980,7 @@ namespace yy { // by_type. inline seclang_parser::by_type::by_type () - : type (empty) + : type (empty_symbol) {} inline @@ -3957,12 +3993,19 @@ namespace yy { : type (yytranslate_ (t)) {} + inline + void + seclang_parser::by_type::clear () + { + type = empty_symbol; + } + inline void seclang_parser::by_type::move (by_type& that) { type = that.type; - that.type = empty; + that.clear (); } inline @@ -6015,7 +6058,7 @@ namespace yy { } // yy -#line 6019 "seclang-parser.hh" // lalr1.cc:372 +#line 6062 "seclang-parser.hh" // lalr1.cc:377 diff --git a/src/parser/seclang-scanner.cc b/src/parser/seclang-scanner.cc index 43d8458c..48b4950b 100644 --- a/src/parser/seclang-scanner.cc +++ b/src/parser/seclang-scanner.cc @@ -1,12 +1,11 @@ -#line 3 "seclang-scanner.cc" +#line 2 "seclang-scanner.cc" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ /* %not-for-header */ - /* %if-c-only */ /* %if-not-reentrant */ @@ -16,8 +15,8 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 39 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -26,7 +25,7 @@ /* %endif */ /* %if-c-only */ - + /* %endif */ /* %if-c-only */ @@ -108,50 +107,39 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* %endif */ +/* begin standard C++ headers. */ /* %if-c++-only */ /* %endif */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* %not-for-header */ - /* Returned upon end-of-file. */ #define YY_NULL 0 /* %ok-for-header */ /* %not-for-header */ - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* %ok-for-header */ /* %if-reentrant */ @@ -166,20 +154,16 @@ typedef unsigned int flex_uint32_t; * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE yyrestart(yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -210,7 +194,7 @@ typedef size_t yy_size_t; #endif /* %if-not-reentrant */ -extern yy_size_t yyleng; +extern int yyleng; /* %endif */ /* %if-c-only */ @@ -222,7 +206,7 @@ extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -239,7 +223,6 @@ extern FILE *yyin, *yyout; YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -259,12 +242,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -287,7 +270,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -314,13 +297,12 @@ struct yy_buffer_state /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ - /* %if-not-reentrant */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* %endif */ /* %ok-for-header */ @@ -335,7 +317,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ @@ -345,14 +326,13 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* %if-not-reentrant */ /* %not-for-header */ - /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -364,83 +344,80 @@ static int yy_did_buffer_switch_on_eof; /* %endif */ -void yyrestart (FILE *input_file ); -void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); -void yy_delete_buffer (YY_BUFFER_STATE b ); -void yy_flush_buffer (YY_BUFFER_STATE b ); -void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void yypop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void yyensure_buffer_stack (void ); -static void yy_load_buffer_state (void ); -static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); /* %endif */ -void *yyalloc (yy_size_t ); -void *yyrealloc (void *,yy_size_t ); -void yyfree (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); #define yy_new_buffer yy_create_buffer - #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - yy_create_buffer(yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ /* Begin user sect3 */ -#define yywrap() 1 +#define yywrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP #define FLEX_DEBUG +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; - int yylineno = 1; extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif #define yytext_ptr yytext /* %% [1.5] DFA */ /* %if-c-only Standard (non-C++) definition */ -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* %endif */ @@ -450,12 +427,11 @@ static void yy_fatal_error (yyconst char msg[] ); #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ - yyleng = (size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; - /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ #define YY_NUM_RULES 522 #define YY_END_OF_BUFFER 523 @@ -466,7 +442,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[3916] = +static const flex_int16_t yy_accept[3916] = { 0, 0, 0, 0, 0, 267, 267, 275, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -901,7 +877,7 @@ static yyconst flex_int16_t yy_accept[3916] = 30, 0, 0, 308, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, @@ -933,7 +909,7 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[88] = +static const YY_CHAR yy_meta[88] = { 0, 1, 2, 3, 4, 5, 1, 6, 1, 7, 1, 1, 8, 9, 1, 10, 9, 9, 9, 11, 11, @@ -946,7 +922,7 @@ static yyconst flex_int32_t yy_meta[88] = 15, 15, 15, 15, 17, 18, 1 } ; -static yyconst flex_int16_t yy_base[4283] = +static const flex_int16_t yy_base[4283] = { 0, 0, 80, 161, 0, 4, 8, 14, 247, 21, 87, 101, 254, 25, 40, 53, 261, 265, 275, 284, 290, @@ -1421,7 +1397,7 @@ static yyconst flex_int16_t yy_base[4283] = 15503,15519 } ; -static yyconst flex_int16_t yy_def[4283] = +static const flex_int16_t yy_def[4283] = { 0, 3916, 3916, 3915, 3, 3917, 3917, 3, 3, 3918, 3918, 3918, 3918, 3919, 3919, 3920, 3920, 3921, 3921, 3922, 3922, @@ -1896,7 +1872,7 @@ static yyconst flex_int16_t yy_def[4283] = 3915, 3915 } ; -static yyconst flex_int16_t yy_nxt[15626] = +static const flex_int16_t yy_nxt[15626] = { 0, 3915, 77, 78, 79, 77, 118, 80, 81, 118, 118, 283, 284, 118, 3915, 82, 119, 120, 121, 119, 122, @@ -3619,7 +3595,7 @@ static yyconst flex_int16_t yy_nxt[15626] = 3915, 3915, 3915, 3915, 3915 } ; -static yyconst flex_int16_t yy_chk[15626] = +static const flex_int16_t yy_chk[15626] = { 0, 0, 1, 1, 1, 1, 5, 1, 1, 5, 6, 95, 95, 6, 0, 1, 7, 7, 7, 7, 7, @@ -5348,66 +5324,66 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[522] = +static const flex_int16_t yy_rule_linenum[522] = { 0, - 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 518, 519, 520, 521, 522, 523, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, - 546, 547, 548, 549, 550, 551, 552, 553, 555, 556, - 559, 560, 561, 562, 563, 564, 565, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, - 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 519, 520, 521, 522, 523, 524, 525, 526, + 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 556, 557, + 560, 561, 562, 563, 564, 565, 566, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, + 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 609, 614, 615, 620, 621, - 622, 627, 628, 629, 634, 639, 640, 641, 646, 647, - 651, 652, 656, 657, 661, 662, 666, 667, 668, 672, - 673, 677, 678, 683, 684, 685, 689, 693, 694, 702, - 707, 708, 713, 714, 715, 724, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, - 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, - 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, - 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, + 602, 603, 604, 605, 606, 610, 615, 616, 621, 622, + 623, 628, 629, 630, 635, 640, 641, 642, 647, 648, + 652, 653, 657, 658, 662, 663, 667, 668, 669, 673, + 674, 678, 679, 684, 685, 686, 690, 694, 695, 703, + 708, 709, 714, 715, 716, 725, 728, 729, 730, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, + 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, + 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, - 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, - 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, - 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, - 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, - 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, - 831, 832, 833, 835, 836, 837, 839, 840, 841, 842, - 843, 844, 845, 846, 847, 848, 851, 855, 856, 857, - 858, 859, 863, 864, 865, 866, 867, 868, 872, 873, - 874, 875, 880, 881, 882, 883, 884, 885, 886, 887, - 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, + 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, + 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, + 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, + 832, 833, 834, 836, 837, 838, 840, 841, 842, 843, + 844, 845, 846, 847, 848, 849, 852, 856, 857, 858, + 859, 860, 864, 865, 866, 867, 868, 869, 873, 874, + 875, 876, 881, 882, 883, 884, 885, 886, 887, 888, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, - 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, - 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, - 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, - 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, - 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, - 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, - 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, - 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, - 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, + 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, + 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, + 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, + 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, + 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, + 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, + 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, + 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, - 998, 999, 1000, 1003, 1004, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1015, 1016, 1017, 1018, 1019, 1020, 1025, 1026, - 1027, 1028, 1029, 1030, 1031, 1032, 1034, 1035, 1036, 1037, - 1038, 1043, 1044, 1045, 1046, 1047, 1049, 1050, 1052, 1053, - 1059, 1060, 1061, 1062, 1063, 1064, 1067, 1068, 1069, 1070, - 1071, 1072, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, - 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, - 1104, 1106, 1107, 1112, 1116, 1120, 1121, 1125, 1126, 1129, - 1130, 1134, 1135, 1139, 1140, 1144, 1145, 1150, 1151, 1152, + 999, 1000, 1001, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1016, 1017, 1018, 1019, 1020, 1021, 1026, 1027, + 1028, 1029, 1030, 1031, 1032, 1033, 1035, 1036, 1037, 1038, + 1039, 1044, 1045, 1046, 1047, 1048, 1050, 1051, 1053, 1054, + 1060, 1061, 1062, 1063, 1064, 1065, 1068, 1069, 1070, 1071, + 1072, 1073, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, + 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, + 1105, 1107, 1108, 1113, 1117, 1121, 1122, 1126, 1127, 1130, + 1131, 1135, 1136, 1140, 1141, 1145, 1146, 1151, 1152, 1153, - 1153, 1154, 1155, 1157, 1158, 1160, 1161, 1162, 1167, 1168, - 1169, 1173, 1174, 1175, 1180, 1182, 1183, 1184, 1209, 1235, - 1263 + 1154, 1155, 1156, 1158, 1159, 1161, 1162, 1163, 1168, 1169, + 1170, 1174, 1175, 1176, 1181, 1183, 1184, 1185, 1210, 1236, + 1264 } ; /* The intent behind this definition is that it'll catch @@ -5493,38 +5469,15 @@ static std::stack YY_PREVIOUS_STATE; #define BEGIN_PREVIOUS() { BEGIN(YY_PREVIOUS_STATE.top()); YY_PREVIOUS_STATE.pop(); } // The location of the current token. +#line 5472 "seclang-scanner.cc" #define YY_NO_INPUT 1 - - - - - - - - - - - - - - - - - - - - - - - - - #line 483 "seclang-scanner.ll" // Code run each time a pattern is matched. # define YY_USER_ACTION driver.loc.back()->columns (yyleng); -#line 5528 "seclang-scanner.cc" +#line 5479 "seclang-scanner.cc" +#line 5480 "seclang-scanner.cc" #define INITIAL 0 #define EXPECTING_ACTION_PREDICATE_VARIABLE 1 @@ -5584,7 +5537,7 @@ static std::stack YY_PREVIOUS_STATE; /* %if-reentrant */ /* %if-c-only */ -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* %endif */ /* %if-reentrant */ @@ -5594,31 +5547,31 @@ static int yy_init_globals (void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int yylex_destroy (void ); +int yylex_destroy ( void ); -int yyget_debug (void ); +int yyget_debug ( void ); -void yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *yyget_in (void ); +FILE *yyget_in ( void ); -void yyset_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *yyget_out (void ); +FILE *yyget_out ( void ); -void yyset_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng ( void ); -char *yyget_text (void ); +char *yyget_text ( void ); -int yyget_lineno (void ); +int yyget_lineno ( void ); -void yyset_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* %if-bison-bridge */ /* %endif */ @@ -5629,34 +5582,35 @@ void yyset_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int yywrap (void ); +extern int yywrap ( void ); #endif #endif /* %not-for-header */ - +#ifndef YY_NO_UNPUT + +#endif /* %ok-for-header */ /* %endif */ #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif /* %ok-for-header */ @@ -5683,7 +5637,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ @@ -5711,7 +5665,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -5752,11 +5706,9 @@ static int input (void ); /* %if-tables-serialization structures and prototypes */ /* %not-for-header */ - /* %ok-for-header */ /* %not-for-header */ - /* %tables-yydmap generated elements */ /* %endif */ /* end tables serialization structures and prototypes */ @@ -5787,7 +5739,7 @@ extern int yylex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif /* %% [6.0] YY_RULE_SETUP definition goes here */ @@ -5795,14 +5747,13 @@ extern int yylex (void); YY_USER_ACTION /* %not-for-header */ - /** The main scanner function which does all the work. */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; if ( !(yy_init) ) { @@ -5832,10 +5783,10 @@ YY_DECL if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_load_buffer_state( ); + yy_load_buffer_state( ); } { @@ -5844,12 +5795,13 @@ YY_DECL +#line 492 "seclang-scanner.ll" // Code run each time yylex is called. driver.loc.back()->step(); -#line 5851 "seclang-scanner.cc" +#line 5802 "seclang-scanner.cc" - while ( 1 ) /* loops until end-of-file is reached */ + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { /* %% [8.0] yymore()-related code goes here */ yy_cp = (yy_c_buf_p); @@ -5867,7 +5819,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -5877,9 +5829,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 3916 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 3915 ); @@ -5925,553 +5877,553 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 495 "seclang-scanner.ll" +#line 496 "seclang-scanner.ll" { return p::make_ACTION_APPEND(yytext, *driver.loc.back()); } YY_BREAK case 2: YY_RULE_SETUP -#line 496 "seclang-scanner.ll" +#line 497 "seclang-scanner.ll" { return p::make_ACTION_BLOCK(yytext, *driver.loc.back()); } YY_BREAK case 3: YY_RULE_SETUP -#line 497 "seclang-scanner.ll" +#line 498 "seclang-scanner.ll" { return p::make_ACTION_CAPTURE(yytext, *driver.loc.back()); } YY_BREAK case 4: YY_RULE_SETUP -#line 498 "seclang-scanner.ll" +#line 499 "seclang-scanner.ll" { return p::make_ACTION_CHAIN(yytext, *driver.loc.back()); } YY_BREAK case 5: YY_RULE_SETUP -#line 499 "seclang-scanner.ll" +#line 500 "seclang-scanner.ll" { return p::make_ACTION_DENY(yytext, *driver.loc.back()); } YY_BREAK case 6: YY_RULE_SETUP -#line 500 "seclang-scanner.ll" +#line 501 "seclang-scanner.ll" { return p::make_ACTION_DEPRECATE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 7: YY_RULE_SETUP -#line 501 "seclang-scanner.ll" +#line 502 "seclang-scanner.ll" { return p::make_ACTION_DROP(yytext, *driver.loc.back()); } YY_BREAK case 8: YY_RULE_SETUP -#line 502 "seclang-scanner.ll" +#line 503 "seclang-scanner.ll" { return p::make_ACTION_ID(yytext, *driver.loc.back()); } YY_BREAK case 9: YY_RULE_SETUP -#line 503 "seclang-scanner.ll" +#line 504 "seclang-scanner.ll" { return p::make_ACTION_LOG(yytext, *driver.loc.back()); } YY_BREAK case 10: YY_RULE_SETUP -#line 504 "seclang-scanner.ll" +#line 505 "seclang-scanner.ll" { return p::make_ACTION_MULTI_MATCH(yytext, *driver.loc.back()); } YY_BREAK case 11: YY_RULE_SETUP -#line 505 "seclang-scanner.ll" +#line 506 "seclang-scanner.ll" { return p::make_ACTION_NO_AUDIT_LOG(yytext, *driver.loc.back()); } YY_BREAK case 12: YY_RULE_SETUP -#line 506 "seclang-scanner.ll" +#line 507 "seclang-scanner.ll" { return p::make_ACTION_NO_LOG(yytext, *driver.loc.back()); } YY_BREAK case 13: YY_RULE_SETUP -#line 507 "seclang-scanner.ll" +#line 508 "seclang-scanner.ll" { return p::make_ACTION_PASS(yytext, *driver.loc.back()); } YY_BREAK case 14: YY_RULE_SETUP -#line 508 "seclang-scanner.ll" +#line 509 "seclang-scanner.ll" { return p::make_ACTION_PAUSE(yytext, *driver.loc.back()); } YY_BREAK case 15: YY_RULE_SETUP -#line 509 "seclang-scanner.ll" +#line 510 "seclang-scanner.ll" { return p::make_ACTION_PREPEND(yytext, *driver.loc.back()); } YY_BREAK case 16: YY_RULE_SETUP -#line 510 "seclang-scanner.ll" +#line 511 "seclang-scanner.ll" { return p::make_ACTION_PROXY(yytext, *driver.loc.back()); } YY_BREAK case 17: YY_RULE_SETUP -#line 511 "seclang-scanner.ll" +#line 512 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_ARG(yytext, *driver.loc.back()); } YY_BREAK case 18: YY_RULE_SETUP -#line 512 "seclang-scanner.ll" +#line 513 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_MATCHED(yytext, *driver.loc.back()); } YY_BREAK case 19: YY_RULE_SETUP -#line 513 "seclang-scanner.ll" +#line 514 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_MATCHED_BYTES(yytext, *driver.loc.back()); } YY_BREAK case 20: YY_RULE_SETUP -#line 514 "seclang-scanner.ll" +#line 515 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_REQUEST_HEADER(yytext, *driver.loc.back()); } YY_BREAK case 21: YY_RULE_SETUP -#line 515 "seclang-scanner.ll" +#line 516 "seclang-scanner.ll" { return p::make_ACTION_SANATISE_RESPONSE_HEADER(yytext, *driver.loc.back()); } YY_BREAK case 22: YY_RULE_SETUP -#line 516 "seclang-scanner.ll" +#line 517 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETRSC(yytext, *driver.loc.back()); } YY_BREAK case 23: YY_RULE_SETUP -#line 518 "seclang-scanner.ll" +#line 519 "seclang-scanner.ll" { return p::make_ACTION_STATUS(yytext, *driver.loc.back()); } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 519 "seclang-scanner.ll" +#line 520 "seclang-scanner.ll" { return p::make_ACTION_ACCURACY(yytext, *driver.loc.back()); } YY_BREAK case 25: /* rule 25 can match eol */ YY_RULE_SETUP -#line 520 "seclang-scanner.ll" +#line 521 "seclang-scanner.ll" { return p::make_ACTION_ACCURACY(yytext, *driver.loc.back()); } YY_BREAK case 26: YY_RULE_SETUP -#line 521 "seclang-scanner.ll" +#line 522 "seclang-scanner.ll" { return p::make_ACTION_ALLOW(yytext, *driver.loc.back()); } YY_BREAK case 27: YY_RULE_SETUP -#line 522 "seclang-scanner.ll" +#line 523 "seclang-scanner.ll" { return p::make_ACTION_AUDIT_LOG(yytext, *driver.loc.back()); } YY_BREAK case 28: YY_RULE_SETUP -#line 523 "seclang-scanner.ll" +#line 524 "seclang-scanner.ll" { return p::make_ACTION_CTL_AUDIT_ENGINE(yytext, *driver.loc.back()); } YY_BREAK case 29: YY_RULE_SETUP -#line 524 "seclang-scanner.ll" +#line 525 "seclang-scanner.ll" { return p::make_ACTION_CTL_AUDIT_LOG_PARTS(yytext, *driver.loc.back()); } YY_BREAK case 30: YY_RULE_SETUP -#line 525 "seclang-scanner.ll" +#line 526 "seclang-scanner.ll" { return p::make_ACTION_CTL_BDY_JSON(yytext, *driver.loc.back()); } YY_BREAK case 31: YY_RULE_SETUP -#line 526 "seclang-scanner.ll" +#line 527 "seclang-scanner.ll" { return p::make_ACTION_CTL_BDY_XML(yytext, *driver.loc.back()); } YY_BREAK case 32: YY_RULE_SETUP -#line 527 "seclang-scanner.ll" +#line 528 "seclang-scanner.ll" { return p::make_ACTION_CTL_FORCE_REQ_BODY_VAR(yytext, *driver.loc.back()); } YY_BREAK case 33: YY_RULE_SETUP -#line 528 "seclang-scanner.ll" +#line 529 "seclang-scanner.ll" { return p::make_ACTION_CTL_REQUEST_BODY_ACCESS(yytext, *driver.loc.back()); } YY_BREAK case 34: YY_RULE_SETUP -#line 529 "seclang-scanner.ll" +#line 530 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_ENGINE(*driver.loc.back()); } YY_BREAK case 35: YY_RULE_SETUP -#line 530 "seclang-scanner.ll" +#line 531 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_BY_ID(yytext, *driver.loc.back()); } YY_BREAK case 36: YY_RULE_SETUP -#line 531 "seclang-scanner.ll" +#line 532 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_BY_TAG(yytext, *driver.loc.back()); } YY_BREAK case 37: YY_RULE_SETUP -#line 532 "seclang-scanner.ll" +#line 533 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_ID(yytext, *driver.loc.back()); } YY_BREAK case 38: YY_RULE_SETUP -#line 533 "seclang-scanner.ll" +#line 534 "seclang-scanner.ll" { return p::make_ACTION_CTL_RULE_REMOVE_TARGET_BY_TAG(yytext, *driver.loc.back()); } YY_BREAK case 39: /* rule 39 can match eol */ YY_RULE_SETUP -#line 534 "seclang-scanner.ll" +#line 535 "seclang-scanner.ll" { return p::make_ACTION_EXEC(yytext, *driver.loc.back()); } YY_BREAK case 40: /* rule 40 can match eol */ YY_RULE_SETUP -#line 535 "seclang-scanner.ll" +#line 536 "seclang-scanner.ll" { return p::make_ACTION_EXEC(yytext, *driver.loc.back()); } YY_BREAK case 41: /* rule 41 can match eol */ YY_RULE_SETUP -#line 536 "seclang-scanner.ll" +#line 537 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP -#line 537 "seclang-scanner.ll" +#line 538 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 43: /* rule 43 can match eol */ YY_RULE_SETUP -#line 538 "seclang-scanner.ll" +#line 539 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP -#line 539 "seclang-scanner.ll" +#line 540 "seclang-scanner.ll" { return p::make_ACTION_EXPIRE_VAR(yytext, *driver.loc.back()); } YY_BREAK case 45: YY_RULE_SETUP -#line 540 "seclang-scanner.ll" +#line 541 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_INITCOL(yytext, *driver.loc.back()); } YY_BREAK case 46: /* rule 46 can match eol */ YY_RULE_SETUP -#line 541 "seclang-scanner.ll" +#line 542 "seclang-scanner.ll" { return p::make_ACTION_MATURITY(yytext, *driver.loc.back()); } YY_BREAK case 47: /* rule 47 can match eol */ YY_RULE_SETUP -#line 542 "seclang-scanner.ll" +#line 543 "seclang-scanner.ll" { return p::make_ACTION_MATURITY(yytext, *driver.loc.back()); } YY_BREAK case 48: YY_RULE_SETUP -#line 543 "seclang-scanner.ll" +#line 544 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_MSG(yytext, *driver.loc.back()); } YY_BREAK case 49: YY_RULE_SETUP -#line 544 "seclang-scanner.ll" +#line 545 "seclang-scanner.ll" { return p::make_ACTION_PHASE(yytext, *driver.loc.back()); } YY_BREAK case 50: YY_RULE_SETUP -#line 545 "seclang-scanner.ll" +#line 546 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_REDIRECT(yytext, *driver.loc.back()); } YY_BREAK case 51: /* rule 51 can match eol */ YY_RULE_SETUP -#line 546 "seclang-scanner.ll" +#line 547 "seclang-scanner.ll" { return p::make_ACTION_REV(yytext, *driver.loc.back()); } YY_BREAK case 52: /* rule 52 can match eol */ YY_RULE_SETUP -#line 547 "seclang-scanner.ll" +#line 548 "seclang-scanner.ll" { return p::make_ACTION_REV(yytext, *driver.loc.back()); } YY_BREAK case 53: /* rule 53 can match eol */ YY_RULE_SETUP -#line 548 "seclang-scanner.ll" +#line 549 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 54: /* rule 54 can match eol */ YY_RULE_SETUP -#line 549 "seclang-scanner.ll" +#line 550 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 55: /* rule 55 can match eol */ YY_RULE_SETUP -#line 550 "seclang-scanner.ll" +#line 551 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 56: /* rule 56 can match eol */ YY_RULE_SETUP -#line 551 "seclang-scanner.ll" +#line 552 "seclang-scanner.ll" { return p::make_ACTION_SETENV(yytext, *driver.loc.back()); } YY_BREAK case 57: YY_RULE_SETUP -#line 552 "seclang-scanner.ll" +#line 553 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETSID(yytext, *driver.loc.back()); } YY_BREAK case 58: YY_RULE_SETUP -#line 553 "seclang-scanner.ll" +#line 554 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_SETUID(yytext, *driver.loc.back()); } YY_BREAK case 59: YY_RULE_SETUP -#line 555 "seclang-scanner.ll" +#line 556 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_QUOTED); return p::make_ACTION_SETVAR(*driver.loc.back()); } YY_BREAK case 60: YY_RULE_SETUP -#line 556 "seclang-scanner.ll" +#line 557 "seclang-scanner.ll" { BEGIN(SETVAR_ACTION_NONQUOTED); return p::make_ACTION_SETVAR(*driver.loc.back()); } YY_BREAK case 61: YY_RULE_SETUP -#line 559 "seclang-scanner.ll" +#line 560 "seclang-scanner.ll" { return p::make_ACTION_SEVERITY(yytext, *driver.loc.back()); } YY_BREAK case 62: YY_RULE_SETUP -#line 560 "seclang-scanner.ll" +#line 561 "seclang-scanner.ll" { return p::make_ACTION_SEVERITY(yytext, *driver.loc.back()); } YY_BREAK case 63: YY_RULE_SETUP -#line 561 "seclang-scanner.ll" +#line 562 "seclang-scanner.ll" { return p::make_ACTION_SKIP_AFTER(yytext, *driver.loc.back()); } YY_BREAK case 64: YY_RULE_SETUP -#line 562 "seclang-scanner.ll" +#line 563 "seclang-scanner.ll" { return p::make_ACTION_SKIP(yytext, *driver.loc.back()); } YY_BREAK case 65: YY_RULE_SETUP -#line 563 "seclang-scanner.ll" +#line 564 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_TAG(yytext, *driver.loc.back()); } YY_BREAK case 66: /* rule 66 can match eol */ YY_RULE_SETUP -#line 564 "seclang-scanner.ll" +#line 565 "seclang-scanner.ll" { return p::make_ACTION_VER(yytext, *driver.loc.back()); } YY_BREAK case 67: YY_RULE_SETUP -#line 565 "seclang-scanner.ll" +#line 566 "seclang-scanner.ll" { return p::make_ACTION_XMLNS(yytext, *driver.loc.back()); } YY_BREAK case 68: YY_RULE_SETUP -#line 567 "seclang-scanner.ll" +#line 568 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_PARITY_ZERO_7_BIT(yytext, *driver.loc.back()); } YY_BREAK case 69: YY_RULE_SETUP -#line 568 "seclang-scanner.ll" +#line 569 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_PARITY_ODD_7_BIT(yytext, *driver.loc.back()); } YY_BREAK case 70: YY_RULE_SETUP -#line 569 "seclang-scanner.ll" +#line 570 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_PARITY_EVEN_7_BIT(yytext, *driver.loc.back()); } YY_BREAK case 71: YY_RULE_SETUP -#line 570 "seclang-scanner.ll" +#line 571 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_SQL_HEX_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 72: YY_RULE_SETUP -#line 571 "seclang-scanner.ll" +#line 572 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_BASE_64_ENCODE(yytext, *driver.loc.back()); } YY_BREAK case 73: YY_RULE_SETUP -#line 572 "seclang-scanner.ll" +#line 573 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_BASE_64_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 74: YY_RULE_SETUP -#line 573 "seclang-scanner.ll" +#line 574 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_BASE_64_DECODE_EXT(yytext, *driver.loc.back()); } YY_BREAK case 75: YY_RULE_SETUP -#line 574 "seclang-scanner.ll" +#line 575 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_CMD_LINE(yytext, *driver.loc.back()); } YY_BREAK case 76: YY_RULE_SETUP -#line 575 "seclang-scanner.ll" +#line 576 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_SHA1(yytext, *driver.loc.back()); } YY_BREAK case 77: YY_RULE_SETUP -#line 576 "seclang-scanner.ll" +#line 577 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_MD5(yytext, *driver.loc.back()); } YY_BREAK case 78: YY_RULE_SETUP -#line 577 "seclang-scanner.ll" +#line 578 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_HEX_ENCODE(yytext, *driver.loc.back()); } YY_BREAK case 79: YY_RULE_SETUP -#line 578 "seclang-scanner.ll" +#line 579 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_HEX_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 80: YY_RULE_SETUP -#line 579 "seclang-scanner.ll" +#line 580 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_LOWERCASE(yytext, *driver.loc.back()); } YY_BREAK case 81: YY_RULE_SETUP -#line 580 "seclang-scanner.ll" +#line 581 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_UPPERCASE(yytext, *driver.loc.back()); } YY_BREAK case 82: YY_RULE_SETUP -#line 581 "seclang-scanner.ll" +#line 582 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_URL_DECODE_UNI(yytext, *driver.loc.back()); } YY_BREAK case 83: YY_RULE_SETUP -#line 582 "seclang-scanner.ll" +#line 583 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_URL_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 84: YY_RULE_SETUP -#line 583 "seclang-scanner.ll" +#line 584 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_NONE(yytext, *driver.loc.back()); } YY_BREAK case 85: YY_RULE_SETUP -#line 584 "seclang-scanner.ll" +#line 585 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_COMPRESS_WHITESPACE(yytext, *driver.loc.back()); } YY_BREAK case 86: YY_RULE_SETUP -#line 585 "seclang-scanner.ll" +#line 586 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_WHITESPACE(yytext, *driver.loc.back()); } YY_BREAK case 87: YY_RULE_SETUP -#line 586 "seclang-scanner.ll" +#line 587 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REPLACE_NULLS(yytext, *driver.loc.back()); } YY_BREAK case 88: YY_RULE_SETUP -#line 587 "seclang-scanner.ll" +#line 588 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_NULLS(yytext, *driver.loc.back()); } YY_BREAK case 89: YY_RULE_SETUP -#line 588 "seclang-scanner.ll" +#line 589 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_HTML_ENTITY_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 90: YY_RULE_SETUP -#line 589 "seclang-scanner.ll" +#line 590 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_JS_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 91: YY_RULE_SETUP -#line 590 "seclang-scanner.ll" +#line 591 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_CSS_DECODE(yytext, *driver.loc.back()); } YY_BREAK case 92: YY_RULE_SETUP -#line 591 "seclang-scanner.ll" +#line 592 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_TRIM(yytext, *driver.loc.back()); } YY_BREAK case 93: YY_RULE_SETUP -#line 592 "seclang-scanner.ll" +#line 593 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_NORMALISE_PATH_WIN(yytext, *driver.loc.back()); } YY_BREAK case 94: YY_RULE_SETUP -#line 593 "seclang-scanner.ll" +#line 594 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_NORMALISE_PATH(yytext, *driver.loc.back()); } YY_BREAK case 95: YY_RULE_SETUP -#line 594 "seclang-scanner.ll" +#line 595 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_LENGTH(yytext, *driver.loc.back()); } YY_BREAK case 96: YY_RULE_SETUP -#line 595 "seclang-scanner.ll" +#line 596 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_UTF8_TO_UNICODE(yytext, *driver.loc.back()); } YY_BREAK case 97: YY_RULE_SETUP -#line 596 "seclang-scanner.ll" +#line 597 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS_CHAR(yytext, *driver.loc.back()); } YY_BREAK case 98: YY_RULE_SETUP -#line 597 "seclang-scanner.ll" +#line 598 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REMOVE_COMMENTS(yytext, *driver.loc.back()); } YY_BREAK case 99: YY_RULE_SETUP -#line 598 "seclang-scanner.ll" +#line 599 "seclang-scanner.ll" { return p::make_ACTION_TRANSFORMATION_REPLACE_COMMENTS(yytext, *driver.loc.back()); } YY_BREAK case 100: YY_RULE_SETUP -#line 599 "seclang-scanner.ll" +#line 600 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTION_PREDICATE); return p::make_ACTION_LOG_DATA(yytext, *driver.loc.back()); } YY_BREAK case 101: YY_RULE_SETUP -#line 601 "seclang-scanner.ll" +#line 602 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_DETC(yytext, *driver.loc.back()); } YY_BREAK case 102: YY_RULE_SETUP -#line 602 "seclang-scanner.ll" +#line 603 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_OFF(yytext, *driver.loc.back()); } YY_BREAK case 103: YY_RULE_SETUP -#line 603 "seclang-scanner.ll" +#line 604 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_ON(yytext, *driver.loc.back()); } YY_BREAK case 104: /* rule 104 can match eol */ YY_RULE_SETUP -#line 604 "seclang-scanner.ll" +#line 605 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 105: /* rule 105 can match eol */ YY_RULE_SETUP -#line 605 "seclang-scanner.ll" +#line 606 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 106: YY_RULE_SETUP -#line 609 "seclang-scanner.ll" +#line 610 "seclang-scanner.ll" { return p::make_COMMA(*driver.loc.back()); } YY_BREAK @@ -6479,75 +6431,75 @@ YY_RULE_SETUP case 107: /* rule 107 can match eol */ YY_RULE_SETUP -#line 614 "seclang-scanner.ll" +#line 615 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 108: /* rule 108 can match eol */ YY_RULE_SETUP -#line 615 "seclang-scanner.ll" +#line 616 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 109: YY_RULE_SETUP -#line 620 "seclang-scanner.ll" +#line 621 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); } YY_BREAK case 110: /* rule 110 can match eol */ YY_RULE_SETUP -#line 621 "seclang-scanner.ll" +#line 622 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(1); } YY_BREAK case 111: /* rule 111 can match eol */ YY_RULE_SETUP -#line 622 "seclang-scanner.ll" +#line 623 "seclang-scanner.ll" { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 112: YY_RULE_SETUP -#line 627 "seclang-scanner.ll" +#line 628 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(yyleng); p::make_NEW_LINE(*driver.loc.back()); } YY_BREAK case 113: /* rule 113 can match eol */ YY_RULE_SETUP -#line 628 "seclang-scanner.ll" +#line 629 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(1); } YY_BREAK case 114: /* rule 114 can match eol */ YY_RULE_SETUP -#line 629 "seclang-scanner.ll" +#line 630 "seclang-scanner.ll" { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 115: YY_RULE_SETUP -#line 634 "seclang-scanner.ll" +#line 635 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK case 116: YY_RULE_SETUP -#line 639 "seclang-scanner.ll" +#line 640 "seclang-scanner.ll" { BEGIN(ACTION_PREDICATE_ENDS_WITH_QUOTE); } YY_BREAK case 117: YY_RULE_SETUP -#line 640 "seclang-scanner.ll" +#line 641 "seclang-scanner.ll" { BEGIN(ACTION_PREDICATE_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 118: YY_RULE_SETUP -#line 641 "seclang-scanner.ll" +#line 642 "seclang-scanner.ll" { BEGIN(ACTION_PREDICATE_ENDS_WITH_COMMA_OR_DOUBLE_QUOTE); yyless(0); } YY_BREAK @@ -6555,111 +6507,111 @@ YY_RULE_SETUP case 119: /* rule 119 can match eol */ YY_RULE_SETUP -#line 646 "seclang-scanner.ll" +#line 647 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 120: /* rule 120 can match eol */ YY_RULE_SETUP -#line 647 "seclang-scanner.ll" +#line 648 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 121: YY_RULE_SETUP -#line 651 "seclang-scanner.ll" +#line 652 "seclang-scanner.ll" { BEGIN_PREVIOUS(); } YY_BREAK case 122: YY_RULE_SETUP -#line 652 "seclang-scanner.ll" +#line 653 "seclang-scanner.ll" { BEGIN_PREVIOUS(); } YY_BREAK case 123: YY_RULE_SETUP -#line 656 "seclang-scanner.ll" +#line 657 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(yyleng); } YY_BREAK case 124: /* rule 124 can match eol */ YY_RULE_SETUP -#line 657 "seclang-scanner.ll" +#line 658 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 125: YY_RULE_SETUP -#line 661 "seclang-scanner.ll" +#line 662 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(yyleng); } YY_BREAK case 126: /* rule 126 can match eol */ YY_RULE_SETUP -#line 662 "seclang-scanner.ll" +#line 663 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 127: YY_RULE_SETUP -#line 666 "seclang-scanner.ll" +#line 667 "seclang-scanner.ll" { yyless(0); BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 128: YY_RULE_SETUP -#line 667 "seclang-scanner.ll" +#line 668 "seclang-scanner.ll" { yyless(0); BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE);} YY_BREAK case 129: /* rule 129 can match eol */ YY_RULE_SETUP -#line 668 "seclang-scanner.ll" +#line 669 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 130: YY_RULE_SETUP -#line 672 "seclang-scanner.ll" +#line 673 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK case 131: YY_RULE_SETUP -#line 673 "seclang-scanner.ll" +#line 674 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); } YY_BREAK case 132: YY_RULE_SETUP -#line 677 "seclang-scanner.ll" +#line 678 "seclang-scanner.ll" { return p::make_NOT(*driver.loc.back()); } YY_BREAK case 133: /* rule 133 can match eol */ YY_RULE_SETUP -#line 678 "seclang-scanner.ll" +#line 679 "seclang-scanner.ll" { BEGIN_ACTION_OPERATION(); yyless(0); } YY_BREAK case 134: YY_RULE_SETUP -#line 683 "seclang-scanner.ll" +#line 684 "seclang-scanner.ll" { BEGIN_ACTION_WAITING_CONTENT(); return p::make_SETVAR_OPERATION_EQUALS_PLUS(*driver.loc.back()); } YY_BREAK case 135: YY_RULE_SETUP -#line 684 "seclang-scanner.ll" +#line 685 "seclang-scanner.ll" { BEGIN_ACTION_WAITING_CONTENT(); return p::make_SETVAR_OPERATION_EQUALS_MINUS(*driver.loc.back()); } YY_BREAK case 136: YY_RULE_SETUP -#line 685 "seclang-scanner.ll" +#line 686 "seclang-scanner.ll" { BEGIN_ACTION_WAITING_CONTENT(); return p::make_SETVAR_OPERATION_EQUALS(*driver.loc.back()); } YY_BREAK @@ -6667,27 +6619,27 @@ YY_RULE_SETUP case 137: /* rule 137 can match eol */ YY_RULE_SETUP -#line 689 "seclang-scanner.ll" +#line 690 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(0);} YY_BREAK case 138: YY_RULE_SETUP -#line 693 "seclang-scanner.ll" +#line 694 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 139: /* rule 139 can match eol */ YY_RULE_SETUP -#line 694 "seclang-scanner.ll" +#line 695 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK case 140: YY_RULE_SETUP -#line 702 "seclang-scanner.ll" +#line 703 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK @@ -6695,13 +6647,13 @@ YY_RULE_SETUP case 141: /* rule 141 can match eol */ YY_RULE_SETUP -#line 707 "seclang-scanner.ll" +#line 708 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 142: /* rule 142 can match eol */ YY_RULE_SETUP -#line 708 "seclang-scanner.ll" +#line 709 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(0); } YY_BREAK @@ -6709,1487 +6661,1487 @@ YY_RULE_SETUP case 143: /* rule 143 can match eol */ YY_RULE_SETUP -#line 713 "seclang-scanner.ll" +#line 714 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 144: YY_RULE_SETUP -#line 714 "seclang-scanner.ll" +#line 715 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 145: /* rule 145 can match eol */ YY_RULE_SETUP -#line 715 "seclang-scanner.ll" +#line 716 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); yyless(0); } YY_BREAK case YY_STATE_EOF(FINISH_ACTIONS): -#line 723 "seclang-scanner.ll" +#line 724 "seclang-scanner.ll" { BEGIN(INITIAL); yyless(0); p::make_NEW_LINE(*driver.loc.back()); } YY_BREAK case 146: YY_RULE_SETUP -#line 724 "seclang-scanner.ll" +#line 725 "seclang-scanner.ll" { BEGIN(INITIAL); } YY_BREAK case 147: /* rule 147 can match eol */ YY_RULE_SETUP -#line 727 "seclang-scanner.ll" +#line 728 "seclang-scanner.ll" { return p::make_CONFIG_COMPONENT_SIG(strchr(yytext, ' ') + 2, *driver.loc.back()); } YY_BREAK case 148: /* rule 148 can match eol */ YY_RULE_SETUP -#line 728 "seclang-scanner.ll" +#line 729 "seclang-scanner.ll" { return p::make_CONFIG_SEC_SERVER_SIG(strchr(yytext, ' ') + 2, *driver.loc.back()); } YY_BREAK case 149: /* rule 149 can match eol */ YY_RULE_SETUP -#line 729 "seclang-scanner.ll" +#line 730 "seclang-scanner.ll" { return p::make_CONFIG_SEC_WEB_APP_ID(parserSanitizer(strchr(yytext, ' ') + 2), *driver.loc.back()); } YY_BREAK case 150: YY_RULE_SETUP -#line 730 "seclang-scanner.ll" +#line 731 "seclang-scanner.ll" { return p::make_CONFIG_SEC_WEB_APP_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 151: YY_RULE_SETUP -#line 731 "seclang-scanner.ll" +#line 732 "seclang-scanner.ll" { return p::make_CONFIG_CONTENT_INJECTION(*driver.loc.back()); } YY_BREAK case 152: YY_RULE_SETUP -#line 732 "seclang-scanner.ll" +#line 733 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR_MOD(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 153: YY_RULE_SETUP -#line 733 "seclang-scanner.ll" +#line 734 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR_MOD(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 154: YY_RULE_SETUP -#line 734 "seclang-scanner.ll" +#line 735 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 155: YY_RULE_SETUP -#line 735 "seclang-scanner.ll" +#line 736 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 156: YY_RULE_SETUP -#line 736 "seclang-scanner.ll" +#line 737 "seclang-scanner.ll" { return p::make_CONFIG_SEC_ARGUMENT_SEPARATOR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 157: YY_RULE_SETUP -#line 737 "seclang-scanner.ll" +#line 738 "seclang-scanner.ll" { return p::make_CONFIG_SEC_ARGUMENT_SEPARATOR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 158: YY_RULE_SETUP -#line 738 "seclang-scanner.ll" +#line 739 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_ENG(yytext, *driver.loc.back()); } YY_BREAK case 159: YY_RULE_SETUP -#line 739 "seclang-scanner.ll" +#line 740 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_FLE_MOD(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 160: YY_RULE_SETUP -#line 740 "seclang-scanner.ll" +#line 741 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG2(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 161: YY_RULE_SETUP -#line 741 "seclang-scanner.ll" +#line 742 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG_P(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 162: YY_RULE_SETUP -#line 742 "seclang-scanner.ll" +#line 743 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG_P(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 163: YY_RULE_SETUP -#line 743 "seclang-scanner.ll" +#line 744 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 164: YY_RULE_SETUP -#line 744 "seclang-scanner.ll" +#line 745 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG_FMT(*driver.loc.back()); } YY_BREAK case 165: YY_RULE_SETUP -#line 745 "seclang-scanner.ll" +#line 746 "seclang-scanner.ll" { return p::make_JSON(*driver.loc.back()); } YY_BREAK case 166: YY_RULE_SETUP -#line 746 "seclang-scanner.ll" +#line 747 "seclang-scanner.ll" { return p::make_NATIVE(*driver.loc.back()); } YY_BREAK case 167: YY_RULE_SETUP -#line 747 "seclang-scanner.ll" +#line 748 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_LOG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 168: YY_RULE_SETUP -#line 748 "seclang-scanner.ll" +#line 749 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_STS(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 169: YY_RULE_SETUP -#line 749 "seclang-scanner.ll" +#line 750 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_STS(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 170: YY_RULE_SETUP -#line 750 "seclang-scanner.ll" +#line 751 "seclang-scanner.ll" { return p::make_CONFIG_DIR_AUDIT_TPE(yytext, *driver.loc.back()); } YY_BREAK case 171: YY_RULE_SETUP -#line 751 "seclang-scanner.ll" +#line 752 "seclang-scanner.ll" { return p::make_CONFIG_DIR_DEBUG_LOG(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 172: YY_RULE_SETUP -#line 752 "seclang-scanner.ll" +#line 753 "seclang-scanner.ll" { return p::make_CONFIG_DIR_DEBUG_LOG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 173: YY_RULE_SETUP -#line 753 "seclang-scanner.ll" +#line 754 "seclang-scanner.ll" { return p::make_CONFIG_DIR_DEBUG_LVL(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 174: YY_RULE_SETUP -#line 754 "seclang-scanner.ll" +#line 755 "seclang-scanner.ll" { return p::make_CONFIG_DIR_GEO_DB(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 175: YY_RULE_SETUP -#line 755 "seclang-scanner.ll" +#line 756 "seclang-scanner.ll" { return p::make_CONFIG_DIR_PCRE_MATCH_LIMIT_RECURSION(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 176: YY_RULE_SETUP -#line 756 "seclang-scanner.ll" +#line 757 "seclang-scanner.ll" { return p::make_CONFIG_DIR_PCRE_MATCH_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 177: YY_RULE_SETUP -#line 757 "seclang-scanner.ll" +#line 758 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_IN_MEMORY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 178: YY_RULE_SETUP -#line 758 "seclang-scanner.ll" +#line 759 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); } YY_BREAK case 179: YY_RULE_SETUP -#line 759 "seclang-scanner.ll" +#line 760 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 180: YY_RULE_SETUP -#line 760 "seclang-scanner.ll" +#line 761 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY_NO_FILES_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 181: YY_RULE_SETUP -#line 761 "seclang-scanner.ll" +#line 762 "seclang-scanner.ll" { return p::make_CONFIG_DIR_REQ_BODY(yytext, *driver.loc.back()); } YY_BREAK case 182: YY_RULE_SETUP -#line 762 "seclang-scanner.ll" +#line 763 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RES_BODY_LIMIT_ACTION(yytext, *driver.loc.back()); } YY_BREAK case 183: YY_RULE_SETUP -#line 763 "seclang-scanner.ll" +#line 764 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RES_BODY_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 184: YY_RULE_SETUP -#line 764 "seclang-scanner.ll" +#line 765 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RES_BODY(yytext, *driver.loc.back()); } YY_BREAK case 185: YY_RULE_SETUP -#line 765 "seclang-scanner.ll" +#line 766 "seclang-scanner.ll" { return p::make_CONFIG_DIR_RULE_ENG(yytext, *driver.loc.back()); } YY_BREAK case 186: YY_RULE_SETUP -#line 766 "seclang-scanner.ll" +#line 767 "seclang-scanner.ll" { return p::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 187: YY_RULE_SETUP -#line 767 "seclang-scanner.ll" +#line 768 "seclang-scanner.ll" { return p::make_CONFIG_DIR_SEC_MARKER(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 188: YY_RULE_SETUP -#line 768 "seclang-scanner.ll" +#line 769 "seclang-scanner.ll" { return p::make_CONFIG_DIR_UNICODE_MAP_FILE(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 189: YY_RULE_SETUP -#line 769 "seclang-scanner.ll" +#line 770 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 190: YY_RULE_SETUP -#line 770 "seclang-scanner.ll" +#line 771 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 191: YY_RULE_SETUP -#line 771 "seclang-scanner.ll" +#line 772 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 192: YY_RULE_SETUP -#line 772 "seclang-scanner.ll" +#line 773 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 193: YY_RULE_SETUP -#line 773 "seclang-scanner.ll" +#line 774 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_REMOVE_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 194: YY_RULE_SETUP -#line 774 "seclang-scanner.ll" +#line 775 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 195: YY_RULE_SETUP -#line 775 "seclang-scanner.ll" +#line 776 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_TAG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 196: YY_RULE_SETUP -#line 776 "seclang-scanner.ll" +#line 777 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 197: YY_RULE_SETUP -#line 777 "seclang-scanner.ll" +#line 778 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_MSG(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 198: YY_RULE_SETUP -#line 778 "seclang-scanner.ll" +#line 779 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 199: YY_RULE_SETUP -#line 779 "seclang-scanner.ll" +#line 780 "seclang-scanner.ll" { state_variable_from = 1; BEGIN(TRANSACTION_TO_VARIABLE); return p::make_CONFIG_SEC_RULE_UPDATE_TARGET_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 200: YY_RULE_SETUP -#line 780 "seclang-scanner.ll" +#line 781 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 201: YY_RULE_SETUP -#line 781 "seclang-scanner.ll" +#line 782 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_CONFIG_SEC_RULE_UPDATE_ACTION_BY_ID(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 202: YY_RULE_SETUP -#line 782 "seclang-scanner.ll" +#line 783 "seclang-scanner.ll" { return p::make_CONFIG_UPDLOAD_KEEP_FILES(yytext, *driver.loc.back()); } YY_BREAK case 203: YY_RULE_SETUP -#line 783 "seclang-scanner.ll" +#line 784 "seclang-scanner.ll" { return p::make_CONFIG_UPDLOAD_SAVE_TMP_FILES(yytext, *driver.loc.back()); } YY_BREAK case 204: YY_RULE_SETUP -#line 784 "seclang-scanner.ll" +#line 785 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 205: YY_RULE_SETUP -#line 785 "seclang-scanner.ll" +#line 786 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 206: YY_RULE_SETUP -#line 786 "seclang-scanner.ll" +#line 787 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_FILE_LIMIT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 207: YY_RULE_SETUP -#line 787 "seclang-scanner.ll" +#line 788 "seclang-scanner.ll" { return p::make_CONFIG_UPLOAD_FILE_MODE(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 208: YY_RULE_SETUP -#line 788 "seclang-scanner.ll" +#line 789 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_ABORT(yytext, *driver.loc.back()); } YY_BREAK case 209: YY_RULE_SETUP -#line 789 "seclang-scanner.ll" +#line 790 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_DETC(yytext, *driver.loc.back()); } YY_BREAK case 210: YY_RULE_SETUP -#line 790 "seclang-scanner.ll" +#line 791 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_HTTPS(yytext, *driver.loc.back()); } YY_BREAK case 211: YY_RULE_SETUP -#line 791 "seclang-scanner.ll" +#line 792 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_OFF(yytext, *driver.loc.back()); } YY_BREAK case 212: YY_RULE_SETUP -#line 792 "seclang-scanner.ll" +#line 793 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_ON(yytext, *driver.loc.back()); } YY_BREAK case 213: YY_RULE_SETUP -#line 793 "seclang-scanner.ll" +#line 794 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_PARALLEL(yytext, *driver.loc.back()); } YY_BREAK case 214: YY_RULE_SETUP -#line 794 "seclang-scanner.ll" +#line 795 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_PROCESS_PARTIAL(yytext, *driver.loc.back()); } YY_BREAK case 215: YY_RULE_SETUP -#line 795 "seclang-scanner.ll" +#line 796 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_REJECT(yytext, *driver.loc.back()); } YY_BREAK case 216: YY_RULE_SETUP -#line 796 "seclang-scanner.ll" +#line 797 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_RELEVANT_ONLY(yytext, *driver.loc.back()); } YY_BREAK case 217: YY_RULE_SETUP -#line 797 "seclang-scanner.ll" +#line 798 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_SERIAL(yytext, *driver.loc.back()); } YY_BREAK case 218: YY_RULE_SETUP -#line 798 "seclang-scanner.ll" +#line 799 "seclang-scanner.ll" { return p::make_CONFIG_VALUE_WARN(yytext, *driver.loc.back()); } YY_BREAK case 219: YY_RULE_SETUP -#line 799 "seclang-scanner.ll" +#line 800 "seclang-scanner.ll" { return p::make_CONFIG_XML_EXTERNAL_ENTITY(yytext, *driver.loc.back()); } YY_BREAK case 220: YY_RULE_SETUP -#line 800 "seclang-scanner.ll" +#line 801 "seclang-scanner.ll" { return p::make_CONGIG_DIR_RESPONSE_BODY_MP(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 221: YY_RULE_SETUP -#line 801 "seclang-scanner.ll" +#line 802 "seclang-scanner.ll" { return p::make_CONGIG_DIR_RESPONSE_BODY_MP_CLEAR(*driver.loc.back()); } YY_BREAK case 222: YY_RULE_SETUP -#line 802 "seclang-scanner.ll" +#line 803 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_ARG_SEP(yytext, *driver.loc.back()); } YY_BREAK case 223: YY_RULE_SETUP -#line 803 "seclang-scanner.ll" +#line 804 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_COOKIE_FORMAT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 224: YY_RULE_SETUP -#line 804 "seclang-scanner.ll" +#line 805 "seclang-scanner.ll" { return p::make_CONFIG_SEC_COOKIEV0_SEPARATOR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 225: YY_RULE_SETUP -#line 805 "seclang-scanner.ll" +#line 806 "seclang-scanner.ll" { return p::make_CONFIG_SEC_COOKIEV0_SEPARATOR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 226: YY_RULE_SETUP -#line 806 "seclang-scanner.ll" +#line 807 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_DATA_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 227: YY_RULE_SETUP -#line 807 "seclang-scanner.ll" +#line 808 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_DATA_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 228: YY_RULE_SETUP -#line 808 "seclang-scanner.ll" +#line 809 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_STATUS_ENGINE(yytext, *driver.loc.back()); } YY_BREAK case 229: YY_RULE_SETUP -#line 809 "seclang-scanner.ll" +#line 810 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_TMP_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 230: YY_RULE_SETUP -#line 810 "seclang-scanner.ll" +#line 811 "seclang-scanner.ll" { return p::make_CONGIG_DIR_SEC_TMP_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 231: YY_RULE_SETUP -#line 811 "seclang-scanner.ll" +#line 812 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_DIRECTIVE_SECRULESCRIPT(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 232: YY_RULE_SETUP -#line 812 "seclang-scanner.ll" +#line 813 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_DIRECTIVE_SECRULESCRIPT(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 233: YY_RULE_SETUP -#line 813 "seclang-scanner.ll" +#line 814 "seclang-scanner.ll" { return p::make_CONFIG_SEC_CACHE_TRANSFORMATIONS(yytext, *driver.loc.back()); } YY_BREAK case 234: YY_RULE_SETUP -#line 814 "seclang-scanner.ll" +#line 815 "seclang-scanner.ll" { return p::make_CONFIG_SEC_CHROOT_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 235: YY_RULE_SETUP -#line 815 "seclang-scanner.ll" +#line 816 "seclang-scanner.ll" { return p::make_CONFIG_SEC_CHROOT_DIR(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 236: YY_RULE_SETUP -#line 816 "seclang-scanner.ll" +#line 817 "seclang-scanner.ll" { return p::make_CONFIG_CONN_ENGINE(yytext, *driver.loc.back()); } YY_BREAK case 237: YY_RULE_SETUP -#line 817 "seclang-scanner.ll" +#line 818 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HASH_ENGINE(yytext, *driver.loc.back()); } YY_BREAK case 238: YY_RULE_SETUP -#line 818 "seclang-scanner.ll" +#line 819 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HASH_KEY(yytext, *driver.loc.back()); } YY_BREAK case 239: YY_RULE_SETUP -#line 819 "seclang-scanner.ll" +#line 820 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HASH_PARAM(yytext, *driver.loc.back()); } YY_BREAK case 240: YY_RULE_SETUP -#line 820 "seclang-scanner.ll" +#line 821 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HASH_METHOD_RX(yytext, *driver.loc.back()); } YY_BREAK case 241: YY_RULE_SETUP -#line 821 "seclang-scanner.ll" +#line 822 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HASH_METHOD_PM(yytext, *driver.loc.back()); } YY_BREAK case 242: YY_RULE_SETUP -#line 822 "seclang-scanner.ll" +#line 823 "seclang-scanner.ll" { return p::make_CONFIG_DIR_GSB_DB(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 243: YY_RULE_SETUP -#line 823 "seclang-scanner.ll" +#line 824 "seclang-scanner.ll" { return p::make_CONFIG_DIR_GSB_DB(parserSanitizer(strchr(yytext, ' ') + 1), *driver.loc.back()); } YY_BREAK case 244: YY_RULE_SETUP -#line 824 "seclang-scanner.ll" +#line 825 "seclang-scanner.ll" { return p::make_CONFIG_SEC_GUARDIAN_LOG(yytext, *driver.loc.back()); } YY_BREAK case 245: YY_RULE_SETUP -#line 825 "seclang-scanner.ll" +#line 826 "seclang-scanner.ll" { return p::make_CONFIG_SEC_INTERCEPT_ON_ERROR(yytext, *driver.loc.back()); } YY_BREAK case 246: YY_RULE_SETUP -#line 826 "seclang-scanner.ll" +#line 827 "seclang-scanner.ll" { return p::make_CONFIG_SEC_CONN_R_STATE_LIMIT(yytext, *driver.loc.back()); } YY_BREAK case 247: YY_RULE_SETUP -#line 827 "seclang-scanner.ll" +#line 828 "seclang-scanner.ll" { return p::make_CONFIG_SEC_CONN_W_STATE_LIMIT(yytext, *driver.loc.back()); } YY_BREAK case 248: YY_RULE_SETUP -#line 828 "seclang-scanner.ll" +#line 829 "seclang-scanner.ll" { return p::make_CONFIG_SEC_SENSOR_ID(yytext, *driver.loc.back()); } YY_BREAK case 249: YY_RULE_SETUP -#line 829 "seclang-scanner.ll" +#line 830 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_INHERITANCE(yytext, *driver.loc.back()); } YY_BREAK case 250: YY_RULE_SETUP -#line 830 "seclang-scanner.ll" +#line 831 "seclang-scanner.ll" { return p::make_CONFIG_SEC_RULE_PERF_TIME(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 251: YY_RULE_SETUP -#line 831 "seclang-scanner.ll" +#line 832 "seclang-scanner.ll" { return p::make_CONFIG_SEC_STREAM_IN_BODY_INSPECTION(yytext, *driver.loc.back()); } YY_BREAK case 252: YY_RULE_SETUP -#line 832 "seclang-scanner.ll" +#line 833 "seclang-scanner.ll" { return p::make_CONFIG_SEC_STREAM_OUT_BODY_INSPECTION(yytext, *driver.loc.back()); } YY_BREAK case 253: YY_RULE_SETUP -#line 833 "seclang-scanner.ll" +#line 834 "seclang-scanner.ll" { return p::make_CONFIG_SEC_DISABLE_BACKEND_COMPRESS(yytext, *driver.loc.back()); } YY_BREAK case 254: YY_RULE_SETUP -#line 835 "seclang-scanner.ll" +#line 836 "seclang-scanner.ll" { BEGIN(TRANSACTION_TO_VARIABLE); return p::make_DIRECTIVE(yytext, *driver.loc.back()); } YY_BREAK case 255: YY_RULE_SETUP -#line 836 "seclang-scanner.ll" +#line 837 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_CONFIG_DIR_SEC_DEFAULT_ACTION(yytext, *driver.loc.back()); } YY_BREAK case 256: YY_RULE_SETUP -#line 837 "seclang-scanner.ll" +#line 838 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_DIRECTIVE_TO_ACTIONS); return p::make_CONFIG_DIR_SEC_ACTION(yytext, *driver.loc.back()); } YY_BREAK case 257: YY_RULE_SETUP -#line 839 "seclang-scanner.ll" +#line 840 "seclang-scanner.ll" { return p::make_CONFIG_SEC_REMOTE_RULES_FAIL_ACTION(yytext, *driver.loc.back()); } YY_BREAK case 258: YY_RULE_SETUP -#line 840 "seclang-scanner.ll" +#line 841 "seclang-scanner.ll" { return p::make_CONFIG_SEC_COLLECTION_TIMEOUT(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 259: YY_RULE_SETUP -#line 841 "seclang-scanner.ll" +#line 842 "seclang-scanner.ll" { return p::make_CONFIG_SEC_HTTP_BLKEY(strchr(yytext, ' ') + 1, *driver.loc.back()); } YY_BREAK case 260: /* rule 260 can match eol */ YY_RULE_SETUP -#line 842 "seclang-scanner.ll" +#line 843 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 261: /* rule 261 can match eol */ YY_RULE_SETUP -#line 843 "seclang-scanner.ll" +#line 844 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); BEGIN(COMMENT); } YY_BREAK case 262: /* rule 262 can match eol */ YY_RULE_SETUP -#line 844 "seclang-scanner.ll" +#line 845 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); BEGIN(COMMENT); } YY_BREAK case 263: YY_RULE_SETUP -#line 845 "seclang-scanner.ll" +#line 846 "seclang-scanner.ll" { driver.loc.back()->step(); /* comment, just ignore. */ } YY_BREAK case 264: YY_RULE_SETUP -#line 846 "seclang-scanner.ll" +#line 847 "seclang-scanner.ll" { driver.loc.back()->step(); /* carriage return, just ignore. */} YY_BREAK case 265: YY_RULE_SETUP -#line 847 "seclang-scanner.ll" +#line 848 "seclang-scanner.ll" { return p::make_QUOTATION_MARK(yytext, *driver.loc.back()); } YY_BREAK case 266: YY_RULE_SETUP -#line 848 "seclang-scanner.ll" +#line 849 "seclang-scanner.ll" { return p::make_COMMA(*driver.loc.back()); } YY_BREAK case 267: YY_RULE_SETUP -#line 851 "seclang-scanner.ll" +#line 852 "seclang-scanner.ll" { BEGIN(EXPECTING_VARIABLE); } YY_BREAK case 268: YY_RULE_SETUP -#line 855 "seclang-scanner.ll" +#line 856 "seclang-scanner.ll" { return p::make_PIPE(*driver.loc.back()); } YY_BREAK case 269: YY_RULE_SETUP -#line 856 "seclang-scanner.ll" +#line 857 "seclang-scanner.ll" { return p::make_PIPE(*driver.loc.back()); } YY_BREAK case 270: YY_RULE_SETUP -#line 857 "seclang-scanner.ll" +#line 858 "seclang-scanner.ll" { return p::make_QUOTATION_MARK(yytext, *driver.loc.back()); } YY_BREAK case 271: YY_RULE_SETUP -#line 858 "seclang-scanner.ll" +#line 859 "seclang-scanner.ll" { return p::make_VAR_EXCLUSION(*driver.loc.back()); } YY_BREAK case 272: YY_RULE_SETUP -#line 859 "seclang-scanner.ll" +#line 860 "seclang-scanner.ll" { return p::make_VAR_COUNT(*driver.loc.back()); } YY_BREAK case 273: YY_RULE_SETUP -#line 863 "seclang-scanner.ll" +#line 864 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_SPACE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK case 274: YY_RULE_SETUP -#line 864 "seclang-scanner.ll" +#line 865 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_QUOTE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK case 275: /* rule 275 can match eol */ YY_RULE_SETUP -#line 865 "seclang-scanner.ll" +#line 866 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_SPACE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK case 276: /* rule 276 can match eol */ YY_RULE_SETUP -#line 866 "seclang-scanner.ll" +#line 867 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_QUOTE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK case 277: /* rule 277 can match eol */ YY_RULE_SETUP -#line 867 "seclang-scanner.ll" +#line 868 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_SPACE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK case 278: /* rule 278 can match eol */ YY_RULE_SETUP -#line 868 "seclang-scanner.ll" +#line 869 "seclang-scanner.ll" { if (state_variable_from == 0) { BEGIN(EXPECTING_OPERATOR_ENDS_WITH_QUOTE); } else { state_variable_from = 0; BEGIN(INITIAL);} } YY_BREAK case 279: YY_RULE_SETUP -#line 872 "seclang-scanner.ll" +#line 873 "seclang-scanner.ll" { } YY_BREAK case 280: YY_RULE_SETUP -#line 873 "seclang-scanner.ll" +#line 874 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 281: /* rule 281 can match eol */ YY_RULE_SETUP -#line 874 "seclang-scanner.ll" +#line 875 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 282: /* rule 282 can match eol */ YY_RULE_SETUP -#line 875 "seclang-scanner.ll" +#line 876 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 283: YY_RULE_SETUP -#line 880 "seclang-scanner.ll" +#line 881 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); } YY_BREAK case 284: YY_RULE_SETUP -#line 881 "seclang-scanner.ll" +#line 882 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_COMBINED_SIZE(*driver.loc.back()); } YY_BREAK case 285: YY_RULE_SETUP -#line 882 "seclang-scanner.ll" +#line 883 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_GET_NAMES(*driver.loc.back()); } YY_BREAK case 286: YY_RULE_SETUP -#line 883 "seclang-scanner.ll" +#line 884 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_GET_NAMES(*driver.loc.back()); } YY_BREAK case 287: YY_RULE_SETUP -#line 884 "seclang-scanner.ll" +#line 885 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_NAMES(*driver.loc.back()); } YY_BREAK case 288: YY_RULE_SETUP -#line 885 "seclang-scanner.ll" +#line 886 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_NAMES(*driver.loc.back()); } YY_BREAK case 289: YY_RULE_SETUP -#line 886 "seclang-scanner.ll" +#line 887 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_POST_NAMES(*driver.loc.back()); } YY_BREAK case 290: YY_RULE_SETUP -#line 887 "seclang-scanner.ll" +#line 888 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_POST_NAMES(*driver.loc.back()); } YY_BREAK case 291: YY_RULE_SETUP -#line 888 "seclang-scanner.ll" +#line 889 "seclang-scanner.ll" { return p::make_VARIABLE_AUTH_TYPE(*driver.loc.back()); } YY_BREAK case 292: YY_RULE_SETUP -#line 889 "seclang-scanner.ll" +#line 890 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_COMBINED_SIZE(*driver.loc.back()); } YY_BREAK case 293: YY_RULE_SETUP -#line 890 "seclang-scanner.ll" +#line 891 "seclang-scanner.ll" { return p::make_VARIABLE_FULL_REQUEST_LENGTH(*driver.loc.back()); } YY_BREAK case 294: YY_RULE_SETUP -#line 891 "seclang-scanner.ll" +#line 892 "seclang-scanner.ll" { return p::make_VARIABLE_FULL_REQUEST(*driver.loc.back()); } YY_BREAK case 295: YY_RULE_SETUP -#line 892 "seclang-scanner.ll" +#line 893 "seclang-scanner.ll" { return p::make_VARIABLE_INBOUND_DATA_ERROR(*driver.loc.back()); } YY_BREAK case 296: YY_RULE_SETUP -#line 893 "seclang-scanner.ll" +#line 894 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VAR_NAME(*driver.loc.back()); } YY_BREAK case 297: YY_RULE_SETUP -#line 894 "seclang-scanner.ll" +#line 895 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VAR(*driver.loc.back()); } YY_BREAK case 298: YY_RULE_SETUP -#line 895 "seclang-scanner.ll" +#line 896 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_BOUNDARY_QUOTED(*driver.loc.back()); } YY_BREAK case 299: YY_RULE_SETUP -#line 896 "seclang-scanner.ll" +#line 897 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_BOUNDARY_WHITESPACE(*driver.loc.back()); } YY_BREAK case 300: YY_RULE_SETUP -#line 897 "seclang-scanner.ll" +#line 898 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_CRLF_LF_LINES(*driver.loc.back()); } YY_BREAK case 301: YY_RULE_SETUP -#line 898 "seclang-scanner.ll" +#line 899 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_DATA_AFTER(*driver.loc.back()); } YY_BREAK case 302: YY_RULE_SETUP -#line 899 "seclang-scanner.ll" +#line 900 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_DATA_BEFORE(*driver.loc.back()); } YY_BREAK case 303: YY_RULE_SETUP -#line 900 "seclang-scanner.ll" +#line 901 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_FILE_LIMIT_EXCEEDED(*driver.loc.back()); } YY_BREAK case 304: YY_RULE_SETUP -#line 901 "seclang-scanner.ll" +#line 902 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MULTIPART_FILENAME(*driver.loc.back()); } YY_BREAK case 305: YY_RULE_SETUP -#line 902 "seclang-scanner.ll" +#line 903 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_FILENAME(*driver.loc.back()); } YY_BREAK case 306: YY_RULE_SETUP -#line 903 "seclang-scanner.ll" +#line 904 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_HEADER_FOLDING(*driver.loc.back()); } YY_BREAK case 307: YY_RULE_SETUP -#line 904 "seclang-scanner.ll" +#line 905 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_HEADER_FOLDING(*driver.loc.back()); } YY_BREAK case 308: YY_RULE_SETUP -#line 905 "seclang-scanner.ll" +#line 906 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_INVALID_HEADER_FOLDING(*driver.loc.back()); } YY_BREAK case 309: YY_RULE_SETUP -#line 906 "seclang-scanner.ll" +#line 907 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_INVALID_PART(*driver.loc.back()); } YY_BREAK case 310: YY_RULE_SETUP -#line 907 "seclang-scanner.ll" +#line 908 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_INVALID_QUOTING(*driver.loc.back()); } YY_BREAK case 311: YY_RULE_SETUP -#line 908 "seclang-scanner.ll" +#line 909 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_LF_LINE(*driver.loc.back()); } YY_BREAK case 312: YY_RULE_SETUP -#line 909 "seclang-scanner.ll" +#line 910 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_MISSING_SEMICOLON(*driver.loc.back()); } YY_BREAK case 313: YY_RULE_SETUP -#line 910 "seclang-scanner.ll" +#line 911 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_SEMICOLON_MISSING(*driver.loc.back()); } YY_BREAK case 314: YY_RULE_SETUP -#line 911 "seclang-scanner.ll" +#line 912 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MULTIPART_NAME(*driver.loc.back()); } YY_BREAK case 315: YY_RULE_SETUP -#line 912 "seclang-scanner.ll" +#line 913 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_NAME(*driver.loc.back()); } YY_BREAK case 316: YY_RULE_SETUP -#line 913 "seclang-scanner.ll" +#line 914 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_STRICT_ERROR(*driver.loc.back()); } YY_BREAK case 317: YY_RULE_SETUP -#line 914 "seclang-scanner.ll" +#line 915 "seclang-scanner.ll" { return p::make_VARIABLE_MULTIPART_UNMATCHED_BOUNDARY(*driver.loc.back()); } YY_BREAK case 318: YY_RULE_SETUP -#line 915 "seclang-scanner.ll" +#line 916 "seclang-scanner.ll" { return p::make_VARIABLE_OUTBOUND_DATA_ERROR(*driver.loc.back()); } YY_BREAK case 319: YY_RULE_SETUP -#line 916 "seclang-scanner.ll" +#line 917 "seclang-scanner.ll" { return p::make_VARIABLE_PATH_INFO(*driver.loc.back()); } YY_BREAK case 320: YY_RULE_SETUP -#line 917 "seclang-scanner.ll" +#line 918 "seclang-scanner.ll" { return p::make_VARIABLE_QUERY_STRING(*driver.loc.back()); } YY_BREAK case 321: YY_RULE_SETUP -#line 918 "seclang-scanner.ll" +#line 919 "seclang-scanner.ll" { return p::make_VARIABLE_REMOTE_ADDR(*driver.loc.back()); } YY_BREAK case 322: YY_RULE_SETUP -#line 919 "seclang-scanner.ll" +#line 920 "seclang-scanner.ll" { return p::make_VARIABLE_REMOTE_HOST(*driver.loc.back()); } YY_BREAK case 323: YY_RULE_SETUP -#line 920 "seclang-scanner.ll" +#line 921 "seclang-scanner.ll" { return p::make_VARIABLE_REMOTE_PORT(*driver.loc.back()); } YY_BREAK case 324: YY_RULE_SETUP -#line 921 "seclang-scanner.ll" +#line 922 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_ERROR_MSG(*driver.loc.back()); } YY_BREAK case 325: YY_RULE_SETUP -#line 922 "seclang-scanner.ll" +#line 923 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_ERROR(*driver.loc.back()); } YY_BREAK case 326: YY_RULE_SETUP -#line 923 "seclang-scanner.ll" +#line 924 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_PROCESSOR_ERROR_MSG(*driver.loc.back()); } YY_BREAK case 327: YY_RULE_SETUP -#line 924 "seclang-scanner.ll" +#line 925 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_PROCESSOR_ERROR(*driver.loc.back()); } YY_BREAK case 328: YY_RULE_SETUP -#line 925 "seclang-scanner.ll" +#line 926 "seclang-scanner.ll" { return p::make_VARIABLE_REQBODY_PROCESSOR(*driver.loc.back()); } YY_BREAK case 329: YY_RULE_SETUP -#line 926 "seclang-scanner.ll" +#line 927 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_BASENAME(*driver.loc.back()); } YY_BREAK case 330: YY_RULE_SETUP -#line 927 "seclang-scanner.ll" +#line 928 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_BODY_LENGTH(*driver.loc.back()); } YY_BREAK case 331: YY_RULE_SETUP -#line 928 "seclang-scanner.ll" +#line 929 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_BODY(*driver.loc.back()); } YY_BREAK case 332: YY_RULE_SETUP -#line 929 "seclang-scanner.ll" +#line 930 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_FILE_NAME(*driver.loc.back()); } YY_BREAK case 333: YY_RULE_SETUP -#line 930 "seclang-scanner.ll" +#line 931 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK case 334: YY_RULE_SETUP -#line 931 "seclang-scanner.ll" +#line 932 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK case 335: YY_RULE_SETUP -#line 932 "seclang-scanner.ll" +#line 933 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_LINE(*driver.loc.back()); } YY_BREAK case 336: YY_RULE_SETUP -#line 933 "seclang-scanner.ll" +#line 934 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_METHOD(*driver.loc.back()); } YY_BREAK case 337: YY_RULE_SETUP -#line 934 "seclang-scanner.ll" +#line 935 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_PROTOCOL(*driver.loc.back()); } YY_BREAK case 338: YY_RULE_SETUP -#line 935 "seclang-scanner.ll" +#line 936 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_URI_RAW(*driver.loc.back()); } YY_BREAK case 339: YY_RULE_SETUP -#line 936 "seclang-scanner.ll" +#line 937 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_URI(*driver.loc.back()); } YY_BREAK case 340: YY_RULE_SETUP -#line 937 "seclang-scanner.ll" +#line 938 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_BODY(*driver.loc.back()); } YY_BREAK case 341: YY_RULE_SETUP -#line 938 "seclang-scanner.ll" +#line 939 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_CONTENT_LENGTH(*driver.loc.back()); } YY_BREAK case 342: YY_RULE_SETUP -#line 939 "seclang-scanner.ll" +#line 940 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_CONTENT_TYPE(*driver.loc.back()); } YY_BREAK case 343: YY_RULE_SETUP -#line 940 "seclang-scanner.ll" +#line 941 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK case 344: YY_RULE_SETUP -#line 941 "seclang-scanner.ll" +#line 942 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RESPONSE_HEADERS_NAMES(*driver.loc.back()); } YY_BREAK case 345: YY_RULE_SETUP -#line 942 "seclang-scanner.ll" +#line 943 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_PROTOCOL(*driver.loc.back()); } YY_BREAK case 346: YY_RULE_SETUP -#line 943 "seclang-scanner.ll" +#line 944 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_STATUS(*driver.loc.back()); } YY_BREAK case 347: YY_RULE_SETUP -#line 944 "seclang-scanner.ll" +#line 945 "seclang-scanner.ll" { return p::make_VARIABLE_SERVER_ADDR(*driver.loc.back()); } YY_BREAK case 348: YY_RULE_SETUP -#line 945 "seclang-scanner.ll" +#line 946 "seclang-scanner.ll" { return p::make_VARIABLE_SERVER_NAME(*driver.loc.back()); } YY_BREAK case 349: YY_RULE_SETUP -#line 946 "seclang-scanner.ll" +#line 947 "seclang-scanner.ll" { return p::make_VARIABLE_SERVER_PORT(*driver.loc.back()); } YY_BREAK case 350: YY_RULE_SETUP -#line 947 "seclang-scanner.ll" +#line 948 "seclang-scanner.ll" { return p::make_VARIABLE_SESSION_ID(*driver.loc.back()); } YY_BREAK case 351: YY_RULE_SETUP -#line 948 "seclang-scanner.ll" +#line 949 "seclang-scanner.ll" { return p::make_VARIABLE_UNIQUE_ID(*driver.loc.back()); } YY_BREAK case 352: YY_RULE_SETUP -#line 949 "seclang-scanner.ll" +#line 950 "seclang-scanner.ll" { return p::make_VARIABLE_URL_ENCODED_ERROR(*driver.loc.back()); } YY_BREAK case 353: YY_RULE_SETUP -#line 950 "seclang-scanner.ll" +#line 951 "seclang-scanner.ll" { return p::make_VARIABLE_USER_ID(*driver.loc.back()); } YY_BREAK case 354: YY_RULE_SETUP -#line 951 "seclang-scanner.ll" +#line 952 "seclang-scanner.ll" { return p::make_VARIABLE_WEB_APP_ID(*driver.loc.back()); } YY_BREAK case 355: YY_RULE_SETUP -#line 952 "seclang-scanner.ll" +#line 953 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS(*driver.loc.back()); } YY_BREAK case 356: YY_RULE_SETUP -#line 953 "seclang-scanner.ll" +#line 954 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS(*driver.loc.back()); } YY_BREAK case 357: YY_RULE_SETUP -#line 954 "seclang-scanner.ll" +#line 955 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_GET(*driver.loc.back()); } YY_BREAK case 358: YY_RULE_SETUP -#line 955 "seclang-scanner.ll" +#line 956 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_GET(*driver.loc.back()); } YY_BREAK case 359: YY_RULE_SETUP -#line 956 "seclang-scanner.ll" +#line 957 "seclang-scanner.ll" { return p::make_VARIABLE_ARGS_POST(*driver.loc.back()); } YY_BREAK case 360: YY_RULE_SETUP -#line 957 "seclang-scanner.ll" +#line 958 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_ARGS_POST(*driver.loc.back()); } YY_BREAK case 361: YY_RULE_SETUP -#line 958 "seclang-scanner.ll" +#line 959 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_SIZES(*driver.loc.back()); } YY_BREAK case 362: YY_RULE_SETUP -#line 959 "seclang-scanner.ll" +#line 960 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_SIZES(*driver.loc.back()); } YY_BREAK case 363: YY_RULE_SETUP -#line 960 "seclang-scanner.ll" +#line 961 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_NAMES(*driver.loc.back()); } YY_BREAK case 364: YY_RULE_SETUP -#line 961 "seclang-scanner.ll" +#line 962 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_NAMES(*driver.loc.back()); } YY_BREAK case 365: YY_RULE_SETUP -#line 962 "seclang-scanner.ll" +#line 963 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_TMP_CONTENT(*driver.loc.back()); } YY_BREAK case 366: YY_RULE_SETUP -#line 963 "seclang-scanner.ll" +#line 964 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_TMP_CONTENT(*driver.loc.back()); } YY_BREAK case 367: YY_RULE_SETUP -#line 964 "seclang-scanner.ll" +#line 965 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VARS_NAMES(*driver.loc.back()); } YY_BREAK case 368: YY_RULE_SETUP -#line 965 "seclang-scanner.ll" +#line 966 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MATCHED_VARS_NAMES(*driver.loc.back()); } YY_BREAK case 369: YY_RULE_SETUP -#line 966 "seclang-scanner.ll" +#line 967 "seclang-scanner.ll" { return p::make_VARIABLE_MATCHED_VARS(*driver.loc.back()); } YY_BREAK case 370: YY_RULE_SETUP -#line 967 "seclang-scanner.ll" +#line 968 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_MATCHED_VARS(*driver.loc.back()); } YY_BREAK case 371: YY_RULE_SETUP -#line 968 "seclang-scanner.ll" +#line 969 "seclang-scanner.ll" { return p::make_VARIABLE_FILES(*driver.loc.back()); } YY_BREAK case 372: YY_RULE_SETUP -#line 969 "seclang-scanner.ll" +#line 970 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES(*driver.loc.back()); } YY_BREAK case 373: YY_RULE_SETUP -#line 970 "seclang-scanner.ll" +#line 971 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_COOKIES(*driver.loc.back()); } YY_BREAK case 374: YY_RULE_SETUP -#line 971 "seclang-scanner.ll" +#line 972 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_COOKIES(*driver.loc.back()); } YY_BREAK case 375: YY_RULE_SETUP -#line 972 "seclang-scanner.ll" +#line 973 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_HEADERS(*driver.loc.back()); } YY_BREAK case 376: YY_RULE_SETUP -#line 973 "seclang-scanner.ll" +#line 974 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_HEADERS(*driver.loc.back()); } YY_BREAK case 377: YY_RULE_SETUP -#line 974 "seclang-scanner.ll" +#line 975 "seclang-scanner.ll" { return p::make_VARIABLE_RESPONSE_HEADERS(*driver.loc.back()); } YY_BREAK case 378: YY_RULE_SETUP -#line 975 "seclang-scanner.ll" +#line 976 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RESPONSE_HEADERS(*driver.loc.back()); } YY_BREAK case 379: YY_RULE_SETUP -#line 976 "seclang-scanner.ll" +#line 977 "seclang-scanner.ll" { return p::make_VARIABLE_GEO(*driver.loc.back()); } YY_BREAK case 380: YY_RULE_SETUP -#line 977 "seclang-scanner.ll" +#line 978 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_GEO(*driver.loc.back()); } YY_BREAK case 381: YY_RULE_SETUP -#line 978 "seclang-scanner.ll" +#line 979 "seclang-scanner.ll" { return p::make_VARIABLE_REQUEST_COOKIES_NAMES(*driver.loc.back()); } YY_BREAK case 382: YY_RULE_SETUP -#line 979 "seclang-scanner.ll" +#line 980 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_REQUEST_COOKIES_NAMES(*driver.loc.back()); } YY_BREAK case 383: YY_RULE_SETUP -#line 980 "seclang-scanner.ll" +#line 981 "seclang-scanner.ll" { return p::make_VARIABLE_RULE(*driver.loc.back()); } YY_BREAK case 384: YY_RULE_SETUP -#line 981 "seclang-scanner.ll" +#line 982 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_RULE(*driver.loc.back()); } YY_BREAK case 385: YY_RULE_SETUP -#line 982 "seclang-scanner.ll" +#line 983 "seclang-scanner.ll" { return p::make_VARIABLE_FILES_TMP_NAMES(*driver.loc.back()); } YY_BREAK case 386: YY_RULE_SETUP -#line 983 "seclang-scanner.ll" +#line 984 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_VARIABLE_FILES_TMP_NAMES(*driver.loc.back()); } YY_BREAK case 387: YY_RULE_SETUP -#line 984 "seclang-scanner.ll" +#line 985 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_XML(*driver.loc.back()); } YY_BREAK case 388: YY_RULE_SETUP -#line 985 "seclang-scanner.ll" +#line 986 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_RUN_TIME_VAR_XML(*driver.loc.back()); } YY_BREAK case 389: YY_RULE_SETUP -#line 986 "seclang-scanner.ll" +#line 987 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_ENV(*driver.loc.back()); } YY_BREAK case 390: YY_RULE_SETUP -#line 987 "seclang-scanner.ll" +#line 988 "seclang-scanner.ll" { BEGINX(EXPECTING_VAR_PARAMETER); return p::make_RUN_TIME_VAR_ENV(*driver.loc.back()); } YY_BREAK case 391: YY_RULE_SETUP -#line 988 "seclang-scanner.ll" +#line 989 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_BLD(yytext, *driver.loc.back()); } YY_BREAK case 392: YY_RULE_SETUP -#line 989 "seclang-scanner.ll" +#line 990 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_DUR(yytext, *driver.loc.back()); } YY_BREAK case 393: YY_RULE_SETUP -#line 990 "seclang-scanner.ll" +#line 991 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_HSV(yytext, *driver.loc.back()); } YY_BREAK case 394: YY_RULE_SETUP -#line 991 "seclang-scanner.ll" +#line 992 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_REMOTE_USER(yytext, *driver.loc.back()); } YY_BREAK case 395: YY_RULE_SETUP -#line 992 "seclang-scanner.ll" +#line 993 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_DAY(yytext, *driver.loc.back()); } YY_BREAK case 396: YY_RULE_SETUP -#line 993 "seclang-scanner.ll" +#line 994 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_EPOCH(yytext, *driver.loc.back()); } YY_BREAK case 397: YY_RULE_SETUP -#line 994 "seclang-scanner.ll" +#line 995 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_HOUR(yytext, *driver.loc.back()); } YY_BREAK case 398: YY_RULE_SETUP -#line 995 "seclang-scanner.ll" +#line 996 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_MIN(yytext, *driver.loc.back()); } YY_BREAK case 399: YY_RULE_SETUP -#line 996 "seclang-scanner.ll" +#line 997 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_MON(yytext, *driver.loc.back()); } YY_BREAK case 400: YY_RULE_SETUP -#line 997 "seclang-scanner.ll" +#line 998 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_SEC(yytext, *driver.loc.back()); } YY_BREAK case 401: YY_RULE_SETUP -#line 998 "seclang-scanner.ll" +#line 999 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_YEAR(yytext, *driver.loc.back()); } YY_BREAK case 402: YY_RULE_SETUP -#line 999 "seclang-scanner.ll" +#line 1000 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME(yytext, *driver.loc.back()); } YY_BREAK case 403: YY_RULE_SETUP -#line 1000 "seclang-scanner.ll" +#line 1001 "seclang-scanner.ll" { return p::make_RUN_TIME_VAR_TIME_WDAY(yytext, *driver.loc.back()); } YY_BREAK case 404: YY_RULE_SETUP -#line 1003 "seclang-scanner.ll" +#line 1004 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Variable VARIABLE_WEBSERVER_ERROR_LOG is not supported by libModSecurity", ""); throw p::syntax_error(*driver.loc.back(), "");} YY_BREAK case 405: YY_RULE_SETUP -#line 1004 "seclang-scanner.ll" +#line 1005 "seclang-scanner.ll" { return p::make_VARIABLE_GLOBAL(*driver.loc.back()); } YY_BREAK case 406: YY_RULE_SETUP -#line 1005 "seclang-scanner.ll" +#line 1006 "seclang-scanner.ll" { return p::make_VARIABLE_IP(*driver.loc.back()); } YY_BREAK case 407: YY_RULE_SETUP -#line 1006 "seclang-scanner.ll" +#line 1007 "seclang-scanner.ll" { return p::make_VARIABLE_RESOURCE(*driver.loc.back()); } YY_BREAK case 408: YY_RULE_SETUP -#line 1007 "seclang-scanner.ll" +#line 1008 "seclang-scanner.ll" { return p::make_VARIABLE_SESSION(*driver.loc.back()); } YY_BREAK case 409: YY_RULE_SETUP -#line 1008 "seclang-scanner.ll" +#line 1009 "seclang-scanner.ll" { return p::make_VARIABLE_STATUS(*driver.loc.back()); } YY_BREAK case 410: YY_RULE_SETUP -#line 1009 "seclang-scanner.ll" +#line 1010 "seclang-scanner.ll" { return p::make_VARIABLE_STATUS_LINE(*driver.loc.back()); } YY_BREAK case 411: YY_RULE_SETUP -#line 1010 "seclang-scanner.ll" +#line 1011 "seclang-scanner.ll" { return p::make_VARIABLE_TX(*driver.loc.back()); } YY_BREAK case 412: YY_RULE_SETUP -#line 1011 "seclang-scanner.ll" +#line 1012 "seclang-scanner.ll" { return p::make_VARIABLE_USER(*driver.loc.back()); } YY_BREAK case 413: YY_RULE_SETUP -#line 1015 "seclang-scanner.ll" +#line 1016 "seclang-scanner.ll" { BEGINX_(); return p::make_VARIABLE_GLOBAL(*driver.loc.back()); } YY_BREAK case 414: YY_RULE_SETUP -#line 1016 "seclang-scanner.ll" +#line 1017 "seclang-scanner.ll" { BEGINX_(); return p::make_VARIABLE_IP(*driver.loc.back()); } YY_BREAK case 415: YY_RULE_SETUP -#line 1017 "seclang-scanner.ll" +#line 1018 "seclang-scanner.ll" { BEGINX_(); return p::make_VARIABLE_RESOURCE(*driver.loc.back()); } YY_BREAK case 416: YY_RULE_SETUP -#line 1018 "seclang-scanner.ll" +#line 1019 "seclang-scanner.ll" { BEGINX_(); return p::make_VARIABLE_SESSION(*driver.loc.back()); } YY_BREAK case 417: YY_RULE_SETUP -#line 1019 "seclang-scanner.ll" +#line 1020 "seclang-scanner.ll" { BEGINX_(); return p::make_VARIABLE_TX(*driver.loc.back()); } YY_BREAK case 418: YY_RULE_SETUP -#line 1020 "seclang-scanner.ll" +#line 1021 "seclang-scanner.ll" { BEGINX_(); return p::make_VARIABLE_USER(*driver.loc.back()); } YY_BREAK case 419: YY_RULE_SETUP -#line 1025 "seclang-scanner.ll" +#line 1026 "seclang-scanner.ll" { BEGIN_ACTION_WAITING_CONTENT(); return p::make_SETVAR_OPERATION_EQUALS_PLUS(*driver.loc.back()); } YY_BREAK case 420: YY_RULE_SETUP -#line 1026 "seclang-scanner.ll" +#line 1027 "seclang-scanner.ll" { BEGIN_ACTION_WAITING_CONTENT(); return p::make_SETVAR_OPERATION_EQUALS_MINUS(*driver.loc.back()); } YY_BREAK case 421: YY_RULE_SETUP -#line 1027 "seclang-scanner.ll" +#line 1028 "seclang-scanner.ll" { BEGIN_ACTION_WAITING_CONTENT(); return p::make_SETVAR_OPERATION_EQUALS(*driver.loc.back()); } YY_BREAK case 422: /* rule 422 can match eol */ YY_RULE_SETUP -#line 1028 "seclang-scanner.ll" +#line 1029 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 423: /* rule 423 can match eol */ YY_RULE_SETUP -#line 1029 "seclang-scanner.ll" +#line 1030 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 424: /* rule 424 can match eol */ YY_RULE_SETUP -#line 1030 "seclang-scanner.ll" +#line 1031 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 0); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 425: /* rule 425 can match eol */ YY_RULE_SETUP -#line 1031 "seclang-scanner.ll" +#line 1032 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 426: /* rule 426 can match eol */ YY_RULE_SETUP -#line 1032 "seclang-scanner.ll" +#line 1033 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 427: /* rule 427 can match eol */ YY_RULE_SETUP -#line 1034 "seclang-scanner.ll" +#line 1035 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 428: /* rule 428 can match eol */ YY_RULE_SETUP -#line 1035 "seclang-scanner.ll" +#line 1036 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 429: YY_RULE_SETUP -#line 1036 "seclang-scanner.ll" +#line 1037 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(0); } YY_BREAK case 430: YY_RULE_SETUP -#line 1037 "seclang-scanner.ll" +#line 1038 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(0); } YY_BREAK case 431: YY_RULE_SETUP -#line 1038 "seclang-scanner.ll" +#line 1039 "seclang-scanner.ll" { BEGINX(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK @@ -8197,448 +8149,448 @@ YY_RULE_SETUP case 432: /* rule 432 can match eol */ YY_RULE_SETUP -#line 1043 "seclang-scanner.ll" +#line 1044 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 433: /* rule 433 can match eol */ YY_RULE_SETUP -#line 1044 "seclang-scanner.ll" +#line 1045 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 434: /* rule 434 can match eol */ YY_RULE_SETUP -#line 1045 "seclang-scanner.ll" +#line 1046 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 0); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 435: /* rule 435 can match eol */ YY_RULE_SETUP -#line 1046 "seclang-scanner.ll" +#line 1047 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 436: /* rule 436 can match eol */ YY_RULE_SETUP -#line 1047 "seclang-scanner.ll" +#line 1048 "seclang-scanner.ll" { BEGIN_PREVIOUS(); return p::make_DICT_ELEMENT(yytext, *driver.loc.back()); } YY_BREAK case 437: /* rule 437 can match eol */ YY_RULE_SETUP -#line 1049 "seclang-scanner.ll" +#line 1050 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 1, yyleng-2), *driver.loc.back()); } YY_BREAK case 438: /* rule 438 can match eol */ YY_RULE_SETUP -#line 1050 "seclang-scanner.ll" +#line 1051 "seclang-scanner.ll" { BEGIN_PREVIOUS(); yyless(yyleng - 1); return p::make_DICT_ELEMENT_REGEXP(std::string(yytext, 2, yyleng-4), *driver.loc.back()); } YY_BREAK case 439: YY_RULE_SETUP -#line 1052 "seclang-scanner.ll" +#line 1053 "seclang-scanner.ll" { BEGINX(LEXING_ERROR_ACTION); yyless(0); } YY_BREAK case 440: YY_RULE_SETUP -#line 1053 "seclang-scanner.ll" +#line 1054 "seclang-scanner.ll" { return p::make_QUOTATION_MARK(yytext, *driver.loc.back()); } YY_BREAK case 441: YY_RULE_SETUP -#line 1059 "seclang-scanner.ll" +#line 1060 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(*driver.loc.back()); } YY_BREAK case 442: YY_RULE_SETUP -#line 1060 "seclang-scanner.ll" +#line 1061 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(*driver.loc.back()); } YY_BREAK case 443: YY_RULE_SETUP -#line 1061 "seclang-scanner.ll" +#line 1062 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(*driver.loc.back()); } YY_BREAK case 444: YY_RULE_SETUP -#line 1062 "seclang-scanner.ll" +#line 1063 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(*driver.loc.back()); } YY_BREAK case 445: YY_RULE_SETUP -#line 1063 "seclang-scanner.ll" +#line 1064 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(*driver.loc.back()); } YY_BREAK case 446: YY_RULE_SETUP -#line 1064 "seclang-scanner.ll" +#line 1065 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(*driver.loc.back()); } YY_BREAK case 447: YY_RULE_SETUP -#line 1067 "seclang-scanner.ll" +#line 1068 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_GEOLOOKUP(*driver.loc.back()); } YY_BREAK case 448: YY_RULE_SETUP -#line 1068 "seclang-scanner.ll" +#line 1069 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_UNCONDITIONAL_MATCH(*driver.loc.back()); } YY_BREAK case 449: YY_RULE_SETUP -#line 1069 "seclang-scanner.ll" +#line 1070 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_SQLI(*driver.loc.back()); } YY_BREAK case 450: YY_RULE_SETUP -#line 1070 "seclang-scanner.ll" +#line 1071 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_DETECT_XSS(*driver.loc.back()); } YY_BREAK case 451: YY_RULE_SETUP -#line 1071 "seclang-scanner.ll" +#line 1072 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_URL_ENCODING(*driver.loc.back()); } YY_BREAK case 452: YY_RULE_SETUP -#line 1072 "seclang-scanner.ll" +#line 1073 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_TO_ACTIONS); return p::make_OPERATOR_VALIDATE_UTF8_ENCODING(*driver.loc.back()); } YY_BREAK case 453: YY_RULE_SETUP -#line 1076 "seclang-scanner.ll" +#line 1077 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_WITHIN(*driver.loc.back()); } YY_BREAK case 454: YY_RULE_SETUP -#line 1077 "seclang-scanner.ll" +#line 1078 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS_WORD(*driver.loc.back()); } YY_BREAK case 455: YY_RULE_SETUP -#line 1078 "seclang-scanner.ll" +#line 1079 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_CONTAINS(*driver.loc.back()); } YY_BREAK case 456: YY_RULE_SETUP -#line 1079 "seclang-scanner.ll" +#line 1080 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_ENDS_WITH(*driver.loc.back()); } YY_BREAK case 457: YY_RULE_SETUP -#line 1080 "seclang-scanner.ll" +#line 1081 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_EQ(*driver.loc.back()); } YY_BREAK case 458: YY_RULE_SETUP -#line 1081 "seclang-scanner.ll" +#line 1082 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_GE(*driver.loc.back()); } YY_BREAK case 459: YY_RULE_SETUP -#line 1082 "seclang-scanner.ll" +#line 1083 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_GT(*driver.loc.back()); } YY_BREAK case 460: YY_RULE_SETUP -#line 1083 "seclang-scanner.ll" +#line 1084 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH_FROM_FILE(*driver.loc.back()); } YY_BREAK case 461: YY_RULE_SETUP -#line 1084 "seclang-scanner.ll" +#line 1085 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_IP_MATCH(*driver.loc.back()); } YY_BREAK case 462: YY_RULE_SETUP -#line 1085 "seclang-scanner.ll" +#line 1086 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_LE(*driver.loc.back()); } YY_BREAK case 463: YY_RULE_SETUP -#line 1086 "seclang-scanner.ll" +#line 1087 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_LT(*driver.loc.back()); } YY_BREAK case 464: YY_RULE_SETUP -#line 1087 "seclang-scanner.ll" +#line 1088 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_PM_FROM_FILE(*driver.loc.back()); } YY_BREAK case 465: YY_RULE_SETUP -#line 1088 "seclang-scanner.ll" +#line 1089 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_PM(*driver.loc.back()); } YY_BREAK case 466: YY_RULE_SETUP -#line 1089 "seclang-scanner.ll" +#line 1090 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_RBL( *driver.loc.back()); } YY_BREAK case 467: YY_RULE_SETUP -#line 1090 "seclang-scanner.ll" +#line 1091 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_RX(*driver.loc.back()); } YY_BREAK case 468: YY_RULE_SETUP -#line 1091 "seclang-scanner.ll" +#line 1092 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_STR_EQ(*driver.loc.back()); } YY_BREAK case 469: YY_RULE_SETUP -#line 1092 "seclang-scanner.ll" +#line 1093 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_STR_MATCH(*driver.loc.back()); } YY_BREAK case 470: YY_RULE_SETUP -#line 1093 "seclang-scanner.ll" +#line 1094 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_BEGINS_WITH(*driver.loc.back()); } YY_BREAK case 471: YY_RULE_SETUP -#line 1094 "seclang-scanner.ll" +#line 1095 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_INSPECT_FILE(*driver.loc.back()); } YY_BREAK case 472: YY_RULE_SETUP -#line 1095 "seclang-scanner.ll" +#line 1096 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_FUZZY_HASH(*driver.loc.back()); } YY_BREAK case 473: YY_RULE_SETUP -#line 1096 "seclang-scanner.ll" +#line 1097 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_BYTE_RANGE(*driver.loc.back()); } YY_BREAK case 474: YY_RULE_SETUP -#line 1097 "seclang-scanner.ll" +#line 1098 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_DTD(*driver.loc.back()); } YY_BREAK case 475: YY_RULE_SETUP -#line 1098 "seclang-scanner.ll" +#line 1099 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_HASH(*driver.loc.back()); } YY_BREAK case 476: YY_RULE_SETUP -#line 1099 "seclang-scanner.ll" +#line 1100 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VALIDATE_SCHEMA(*driver.loc.back()); } YY_BREAK case 477: YY_RULE_SETUP -#line 1100 "seclang-scanner.ll" +#line 1101 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CC(*driver.loc.back()); } YY_BREAK case 478: YY_RULE_SETUP -#line 1101 "seclang-scanner.ll" +#line 1102 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_CPF(*driver.loc.back()); } YY_BREAK case 479: YY_RULE_SETUP -#line 1102 "seclang-scanner.ll" +#line 1103 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_VERIFY_SSN(*driver.loc.back()); } YY_BREAK case 480: YY_RULE_SETUP -#line 1103 "seclang-scanner.ll" +#line 1104 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_GSB_LOOKUP(*driver.loc.back()); } YY_BREAK case 481: YY_RULE_SETUP -#line 1104 "seclang-scanner.ll" +#line 1105 "seclang-scanner.ll" { BEGIN_PARAMETER(); return p::make_OPERATOR_RSUB(*driver.loc.back()); } YY_BREAK case 482: YY_RULE_SETUP -#line 1106 "seclang-scanner.ll" +#line 1107 "seclang-scanner.ll" { return p::make_NOT(*driver.loc.back()); } YY_BREAK case 483: YY_RULE_SETUP -#line 1107 "seclang-scanner.ll" +#line 1108 "seclang-scanner.ll" { BEGIN_NO_OP_INFORMED(); yyless(0); } YY_BREAK case 484: YY_RULE_SETUP -#line 1112 "seclang-scanner.ll" +#line 1113 "seclang-scanner.ll" { BEGIN(EXPECTING_PARAMETER_ENDS_WITH_SPACE); } YY_BREAK case 485: YY_RULE_SETUP -#line 1116 "seclang-scanner.ll" +#line 1117 "seclang-scanner.ll" { BEGIN(EXPECTING_PARAMETER_ENDS_WITH_QUOTE); } YY_BREAK case 486: YY_RULE_SETUP -#line 1120 "seclang-scanner.ll" +#line 1121 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK case 487: /* rule 487 can match eol */ YY_RULE_SETUP -#line 1121 "seclang-scanner.ll" +#line 1122 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 488: YY_RULE_SETUP -#line 1125 "seclang-scanner.ll" +#line 1126 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK case 489: /* rule 489 can match eol */ YY_RULE_SETUP -#line 1126 "seclang-scanner.ll" +#line 1127 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 490: YY_RULE_SETUP -#line 1129 "seclang-scanner.ll" +#line 1130 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK case 491: YY_RULE_SETUP -#line 1130 "seclang-scanner.ll" +#line 1131 "seclang-scanner.ll" { BEGIN(LEXING_ERROR); yyless(0); } YY_BREAK case 492: YY_RULE_SETUP -#line 1134 "seclang-scanner.ll" +#line 1135 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK case 493: /* rule 493 can match eol */ YY_RULE_SETUP -#line 1135 "seclang-scanner.ll" +#line 1136 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 494: YY_RULE_SETUP -#line 1139 "seclang-scanner.ll" +#line 1140 "seclang-scanner.ll" { BEGIN(TRANSACTION_FROM_OPERATOR_PARAMETERS_TO_ACTIONS); } YY_BREAK case 495: /* rule 495 can match eol */ YY_RULE_SETUP -#line 1140 "seclang-scanner.ll" +#line 1141 "seclang-scanner.ll" { return p::make_FREE_TEXT_QUOTE_MACRO_EXPANSION(yytext, *driver.loc.back()); } YY_BREAK case 496: YY_RULE_SETUP -#line 1144 "seclang-scanner.ll" +#line 1145 "seclang-scanner.ll" { BEGINX(EXPECTING_ACTION_PREDICATE_VARIABLE); } YY_BREAK case 497: YY_RULE_SETUP -#line 1145 "seclang-scanner.ll" +#line 1146 "seclang-scanner.ll" { BEGIN(LEXING_ERROR_VARIABLE); yyless(0); } YY_BREAK case 498: YY_RULE_SETUP -#line 1150 "seclang-scanner.ll" +#line 1151 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 499: YY_RULE_SETUP -#line 1151 "seclang-scanner.ll" +#line 1152 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 500: /* rule 500 can match eol */ YY_RULE_SETUP -#line 1152 "seclang-scanner.ll" +#line 1153 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 501: /* rule 501 can match eol */ YY_RULE_SETUP -#line 1153 "seclang-scanner.ll" +#line 1154 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 502: /* rule 502 can match eol */ YY_RULE_SETUP -#line 1154 "seclang-scanner.ll" +#line 1155 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 503: /* rule 503 can match eol */ YY_RULE_SETUP -#line 1155 "seclang-scanner.ll" +#line 1156 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ENDS_WITH_DOUBLE_QUOTE); } YY_BREAK case 504: /* rule 504 can match eol */ YY_RULE_SETUP -#line 1157 "seclang-scanner.ll" +#line 1158 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK case 505: /* rule 505 can match eol */ YY_RULE_SETUP -#line 1158 "seclang-scanner.ll" +#line 1159 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK case 506: YY_RULE_SETUP -#line 1160 "seclang-scanner.ll" +#line 1161 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK case 507: /* rule 507 can match eol */ YY_RULE_SETUP -#line 1161 "seclang-scanner.ll" +#line 1162 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK case 508: /* rule 508 can match eol */ YY_RULE_SETUP -#line 1162 "seclang-scanner.ll" +#line 1163 "seclang-scanner.ll" { BEGIN(EXPECTING_ACTIONS_ONLY_ONE); } YY_BREAK case 509: YY_RULE_SETUP -#line 1167 "seclang-scanner.ll" +#line 1168 "seclang-scanner.ll" { } YY_BREAK case 510: /* rule 510 can match eol */ YY_RULE_SETUP -#line 1168 "seclang-scanner.ll" +#line 1169 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 511: /* rule 511 can match eol */ YY_RULE_SETUP -#line 1169 "seclang-scanner.ll" +#line 1170 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK @@ -8646,40 +8598,40 @@ YY_RULE_SETUP case 512: /* rule 512 can match eol */ YY_RULE_SETUP -#line 1173 "seclang-scanner.ll" +#line 1174 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 513: /* rule 513 can match eol */ YY_RULE_SETUP -#line 1174 "seclang-scanner.ll" +#line 1175 "seclang-scanner.ll" { driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 514: /* rule 514 can match eol */ YY_RULE_SETUP -#line 1175 "seclang-scanner.ll" +#line 1176 "seclang-scanner.ll" { BEGIN(INITIAL); driver.loc.back()->lines(1); driver.loc.back()->step(); } YY_BREAK case 515: YY_RULE_SETUP -#line 1180 "seclang-scanner.ll" +#line 1181 "seclang-scanner.ll" { BEGIN(LEXING_ERROR); yyless(0); } YY_BREAK case 516: YY_RULE_SETUP -#line 1182 "seclang-scanner.ll" +#line 1183 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Invalid input: ", yytext); throw p::syntax_error(*driver.loc.back(), ""); } YY_BREAK case 517: YY_RULE_SETUP -#line 1183 "seclang-scanner.ll" +#line 1184 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Expecting an action, got: ", yytext); throw p::syntax_error(*driver.loc.back(), ""); } YY_BREAK case 518: YY_RULE_SETUP -#line 1184 "seclang-scanner.ll" +#line 1185 "seclang-scanner.ll" { driver.error (*driver.loc.back(), "Expecting a variable, got: : ", yytext); throw p::syntax_error(*driver.loc.back(), ""); } YY_BREAK case YY_STATE_EOF(INITIAL): @@ -8718,7 +8670,7 @@ case YY_STATE_EOF(SETVAR_ACTION_QUOTED): case YY_STATE_EOF(SETVAR_ACTION_QUOTED_WAITING_COLLECTION_ELEM): case YY_STATE_EOF(SETVAR_ACTION_QUOTED_WAITING_OPERATION): case YY_STATE_EOF(SETVAR_ACTION_QUOTED_WAITING_CONTENT): -#line 1187 "seclang-scanner.ll" +#line 1188 "seclang-scanner.ll" { if (driver.ref.size() > 1) { driver.ref.pop_back(); @@ -8742,7 +8694,7 @@ case YY_STATE_EOF(SETVAR_ACTION_QUOTED_WAITING_CONTENT): YY_BREAK case 519: YY_RULE_SETUP -#line 1209 "seclang-scanner.ll" +#line 1210 "seclang-scanner.ll" { std::string err; const char *file = strchr(yytext, ' ') + 1; @@ -8765,13 +8717,13 @@ YY_RULE_SETUP } driver.ref.push_back(f); driver.loc.push_back(new yy::location()); - yypush_buffer_state(yy_create_buffer(yyin,YY_BUF_SIZE )); + yypush_buffer_state(yy_create_buffer( yyin, YY_BUF_SIZE )); } } YY_BREAK case 520: YY_RULE_SETUP -#line 1235 "seclang-scanner.ll" +#line 1236 "seclang-scanner.ll" { std::string err; const char *file = strchr(yytext, ' ') + 1; @@ -8795,7 +8747,7 @@ YY_RULE_SETUP } driver.ref.push_back(f.c_str()); driver.loc.push_back(new yy::location()); - yypush_buffer_state(yy_create_buffer(yyin,YY_BUF_SIZE )); + yypush_buffer_state(yy_create_buffer( yyin, YY_BUF_SIZE )); } free(f); } @@ -8803,7 +8755,7 @@ YY_RULE_SETUP case 521: /* rule 521 can match eol */ YY_RULE_SETUP -#line 1263 "seclang-scanner.ll" +#line 1264 "seclang-scanner.ll" { HttpsClient c; std::string key; @@ -8841,10 +8793,10 @@ YY_RULE_SETUP YY_BREAK case 522: YY_RULE_SETUP -#line 1299 "seclang-scanner.ll" +#line 1300 "seclang-scanner.ll" ECHO; YY_BREAK -#line 8848 "seclang-scanner.cc" +#line 8799 "seclang-scanner.cc" case YY_END_OF_BUFFER: { @@ -8867,7 +8819,11 @@ ECHO; * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; +/* %if-c-only */ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; +/* %endif */ +/* %if-c++-only */ +/* %endif */ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -8922,7 +8878,7 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up @@ -8981,7 +8937,6 @@ ECHO; /* %if-c++-only */ /* %not-for-header */ - /* %ok-for-header */ /* %endif */ @@ -8999,9 +8954,9 @@ static int yy_get_next_buffer (void) /* %if-c++-only */ /* %endif */ { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -9030,7 +8985,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -9057,7 +9012,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -9066,11 +9021,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -9098,7 +9054,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - yyrestart(yyin ); + yyrestart( yyin ); } else @@ -9112,12 +9068,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -9133,14 +9092,13 @@ static int yy_get_next_buffer (void) /* %if-c-only */ /* %not-for-header */ - static yy_state_type yy_get_previous_state (void) /* %endif */ /* %if-c++-only */ /* %endif */ { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; /* %% [15.0] code to get the start state into yy_current_state goes here */ yy_current_state = (yy_start); @@ -9148,7 +9106,7 @@ static int yy_get_next_buffer (void) for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { /* %% [16.0] code to find the next state goes here */ - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -9158,9 +9116,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 3916 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -9177,11 +9135,11 @@ static int yy_get_next_buffer (void) /* %if-c++-only */ /* %endif */ { - register int yy_is_jam; + int yy_is_jam; /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ - register char *yy_cp = (yy_c_buf_p); + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -9191,17 +9149,19 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 3916 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 3915); return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT /* %if-c-only */ /* %endif */ +#endif /* %if-c-only */ #ifndef YY_NO_INPUT @@ -9231,7 +9191,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -9248,14 +9208,14 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - yyrestart(yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( yywrap( ) ) - return EOF; + if ( yywrap( ) ) + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -9300,13 +9260,16 @@ static int yy_get_next_buffer (void) if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - yy_create_buffer(yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } +/* %if-c++-only */ +/* %endif */ + /** Switch to a different input buffer. * @param new_buffer The new input buffer. * @@ -9336,7 +9299,7 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag @@ -9354,7 +9317,11 @@ static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; +/* %if-c-only */ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; +/* %endif */ +/* %if-c++-only */ +/* %endif */ (yy_hold_char) = *(yy_c_buf_p); } @@ -9372,7 +9339,7 @@ static void yy_load_buffer_state (void) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); @@ -9381,17 +9348,20 @@ static void yy_load_buffer_state (void) /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } +/* %if-c++-only */ +/* %endif */ + /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * @@ -9410,9 +9380,9 @@ static void yy_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - yyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. @@ -9428,9 +9398,13 @@ static void yy_load_buffer_state (void) { int oerrno = errno; - yy_flush_buffer(b ); + yy_flush_buffer( b ); +/* %if-c-only */ b->yy_input_file = file; +/* %endif */ +/* %if-c++-only */ +/* %endif */ b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ @@ -9480,7 +9454,7 @@ static void yy_load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - yy_load_buffer_state( ); + yy_load_buffer_state( ); } /* %if-c-or-c++ */ @@ -9516,7 +9490,7 @@ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /* %endif */ @@ -9541,7 +9515,7 @@ void yypop_buffer_state (void) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -9565,15 +9539,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -9582,7 +9556,7 @@ static void yyensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc @@ -9604,7 +9578,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -9614,23 +9588,23 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } @@ -9645,10 +9619,10 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ -YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /* %endif */ @@ -9660,16 +9634,16 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) yyalloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -9678,7 +9652,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); @@ -9696,9 +9670,9 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #endif /* %if-c-only */ -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* %endif */ @@ -9733,7 +9707,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -9756,7 +9730,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -9774,29 +9748,29 @@ char *yyget_text (void) /* %endif */ /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void yyset_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - yylineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ -void yyset_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - yyin = in_str ; + yyin = _in_str ; } -void yyset_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - yyout = out_str ; + yyout = _out_str ; } int yyget_debug (void) @@ -9804,9 +9778,9 @@ int yyget_debug (void) return yy_flex_debug; } -void yyset_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - yy_flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } /* %endif */ @@ -9823,10 +9797,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -9835,8 +9809,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -9853,7 +9827,7 @@ int yylex_destroy (void) /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } @@ -9877,18 +9851,19 @@ int yylex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -9898,11 +9873,12 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -9910,12 +9886,12 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) { - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } /* %if-tables-serialization definitions */ @@ -9925,8 +9901,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 1298 "seclang-scanner.ll" - +#line 1300 "seclang-scanner.ll" namespace modsecurity {