diff options
author | Francis Dupont <fdupont@isc.org> | 2023-05-17 14:53:19 +0200 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2023-05-17 19:04:26 +0200 |
commit | 5319dcf9782600f799bc28ca77047dc732da8fd1 (patch) | |
tree | 2c057655c67001b0f5f53bc6f64f03ba93dda702 /src/lib/eval | |
parent | [#2862] Push before regen (diff) | |
download | kea-5319dcf9782600f799bc28ca77047dc732da8fd1.tar.xz kea-5319dcf9782600f799bc28ca77047dc732da8fd1.zip |
[#2862] Regen bison files
Diffstat (limited to 'src/lib/eval')
-rw-r--r-- | src/lib/eval/location.hh | 1 | ||||
-rw-r--r-- | src/lib/eval/parser.cc | 379 |
2 files changed, 193 insertions, 187 deletions
diff --git a/src/lib/eval/location.hh b/src/lib/eval/location.hh index 5bde47985a..2331490b4c 100644 --- a/src/lib/eval/location.hh +++ b/src/lib/eval/location.hh @@ -1,3 +1,4 @@ +// Generated 202305171251 // A Bison parser, made by GNU Bison 3.8.2. // Locations for Bison parsers in C++ diff --git a/src/lib/eval/parser.cc b/src/lib/eval/parser.cc index bb206c85d6..e73d694df4 100644 --- a/src/lib/eval/parser.cc +++ b/src/lib/eval/parser.cc @@ -48,7 +48,12 @@ # include "eval_context.h" -#line 52 "parser.cc" +// Avoid warnings with the error counter. +#if defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif + +#line 57 "parser.cc" #ifndef YY_ @@ -141,7 +146,7 @@ #line 14 "parser.yy" namespace isc { namespace eval { -#line 145 "parser.cc" +#line 150 "parser.cc" /// Build a parser object. EvalParser::EvalParser (EvalContext& ctx_yyarg) @@ -458,93 +463,93 @@ namespace isc { namespace eval { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 464 "parser.cc" +#line 469 "parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 470 "parser.cc" +#line 475 "parser.cc" break; case symbol_kind::S_HEXSTRING: // "constant hexstring" -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 476 "parser.cc" +#line 481 "parser.cc" break; case symbol_kind::S_OPTION_NAME: // "option name" -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 482 "parser.cc" +#line 487 "parser.cc" break; case symbol_kind::S_IP_ADDRESS: // "ip address" -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 488 "parser.cc" +#line 493 "parser.cc" break; case symbol_kind::S_integer_expr: // integer_expr -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < uint32_t > (); } -#line 494 "parser.cc" +#line 499 "parser.cc" break; case symbol_kind::S_option_code: // option_code -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < uint16_t > (); } -#line 500 "parser.cc" +#line 505 "parser.cc" break; case symbol_kind::S_sub_option_code: // sub_option_code -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < uint16_t > (); } -#line 506 "parser.cc" +#line 511 "parser.cc" break; case symbol_kind::S_option_repr_type: // option_repr_type -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < TokenOption::RepresentationType > (); } -#line 512 "parser.cc" +#line 517 "parser.cc" break; case symbol_kind::S_nest_level: // nest_level -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < int8_t > (); } -#line 518 "parser.cc" +#line 523 "parser.cc" break; case symbol_kind::S_pkt_metadata: // pkt_metadata -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < TokenPkt::MetadataType > (); } -#line 524 "parser.cc" +#line 529 "parser.cc" break; case symbol_kind::S_enterprise_id: // enterprise_id -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < uint32_t > (); } -#line 530 "parser.cc" +#line 535 "parser.cc" break; case symbol_kind::S_pkt4_field: // pkt4_field -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < TokenPkt4::FieldType > (); } -#line 536 "parser.cc" +#line 541 "parser.cc" break; case symbol_kind::S_pkt6_field: // pkt6_field -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < TokenPkt6::FieldType > (); } -#line 542 "parser.cc" +#line 547 "parser.cc" break; case symbol_kind::S_relay6_field: // relay6_field -#line 122 "parser.yy" +#line 127 "parser.yy" { yyoutput << yysym.value.template as < TokenRelay6Field::FieldType > (); } -#line 548 "parser.cc" +#line 553 "parser.cc" break; default: @@ -837,61 +842,61 @@ namespace isc { namespace eval { switch (yyn) { case 6: // bool_expr: "not" bool_expr -#line 142 "parser.yy" +#line 147 "parser.yy" { TokenPtr neg(new TokenNot()); ctx.expression.push_back(neg); } -#line 846 "parser.cc" +#line 851 "parser.cc" break; case 7: // bool_expr: bool_expr "and" bool_expr -#line 147 "parser.yy" +#line 152 "parser.yy" { TokenPtr neg(new TokenAnd()); ctx.expression.push_back(neg); } -#line 855 "parser.cc" +#line 860 "parser.cc" break; case 8: // bool_expr: bool_expr "or" bool_expr -#line 152 "parser.yy" +#line 157 "parser.yy" { TokenPtr neg(new TokenOr()); ctx.expression.push_back(neg); } -#line 864 "parser.cc" +#line 869 "parser.cc" break; case 9: // bool_expr: string_expr "==" string_expr -#line 157 "parser.yy" +#line 162 "parser.yy" { TokenPtr eq(new TokenEqual()); ctx.expression.push_back(eq); } -#line 873 "parser.cc" +#line 878 "parser.cc" break; case 10: // bool_expr: "option" "[" option_code "]" "." "exists" -#line 162 "parser.yy" +#line 167 "parser.yy" { TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS)); ctx.expression.push_back(opt); } -#line 882 "parser.cc" +#line 887 "parser.cc" break; case 11: // bool_expr: "option" "[" option_code "]" "." "option" "[" sub_option_code "]" "." "exists" -#line 167 "parser.yy" +#line 172 "parser.yy" { TokenPtr opt(new TokenSubOption(yystack_[8].value.as < uint16_t > (), yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS)); ctx.expression.push_back(opt); } -#line 891 "parser.cc" +#line 896 "parser.cc" break; case 12: // bool_expr: "relay4" "[" sub_option_code "]" "." "exists" -#line 172 "parser.yy" +#line 177 "parser.yy" { switch (ctx.getUniverse()) { case Option::V4: @@ -911,11 +916,11 @@ namespace isc { namespace eval { error(yystack_[5].location, "relay4 can only be used in DHCPv4."); } } -#line 915 "parser.cc" +#line 920 "parser.cc" break; case 13: // bool_expr: "relay6" "[" nest_level "]" "." "option" "[" sub_option_code "]" "." "exists" -#line 192 "parser.yy" +#line 197 "parser.yy" { switch (ctx.getUniverse()) { case Option::V6: @@ -929,11 +934,11 @@ namespace isc { namespace eval { error(yystack_[10].location, "relay6 can only be used in DHCPv6."); } } -#line 933 "parser.cc" +#line 938 "parser.cc" break; case 14: // bool_expr: "vendor-class" "[" enterprise_id "]" "." "exists" -#line 206 "parser.yy" +#line 211 "parser.yy" { // Expression: vendor-class[1234].exists // @@ -942,11 +947,11 @@ namespace isc { namespace eval { TokenPtr exist(new TokenVendorClass(ctx.getUniverse(), yystack_[3].value.as < uint32_t > (), TokenOption::EXISTS)); ctx.expression.push_back(exist); } -#line 946 "parser.cc" +#line 951 "parser.cc" break; case 15: // bool_expr: "vendor" "[" enterprise_id "]" "." "exists" -#line 215 "parser.yy" +#line 220 "parser.yy" { // Expression: vendor[1234].exists // @@ -955,11 +960,11 @@ namespace isc { namespace eval { TokenPtr exist(new TokenVendor(ctx.getUniverse(), yystack_[3].value.as < uint32_t > (), TokenOption::EXISTS)); ctx.expression.push_back(exist); } -#line 959 "parser.cc" +#line 964 "parser.cc" break; case 16: // bool_expr: "vendor" "[" enterprise_id "]" "." "option" "[" sub_option_code "]" "." "exists" -#line 224 "parser.yy" +#line 229 "parser.yy" { // Expression vendor[1234].option[123].exists // @@ -969,11 +974,11 @@ namespace isc { namespace eval { TokenPtr exist(new TokenVendor(ctx.getUniverse(), yystack_[8].value.as < uint32_t > (), TokenOption::EXISTS, yystack_[3].value.as < uint16_t > ())); ctx.expression.push_back(exist); } -#line 973 "parser.cc" +#line 978 "parser.cc" break; case 17: // bool_expr: "member" "(" "constant string" ")" -#line 234 "parser.yy" +#line 239 "parser.yy" { // Expression member('foo') // @@ -988,56 +993,56 @@ namespace isc { namespace eval { TokenPtr member(new TokenMember(cc)); ctx.expression.push_back(member); } -#line 992 "parser.cc" +#line 997 "parser.cc" break; case 18: // string_expr: "constant string" -#line 251 "parser.yy" +#line 256 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); ctx.expression.push_back(str); } -#line 1001 "parser.cc" +#line 1006 "parser.cc" break; case 19: // string_expr: "constant hexstring" -#line 256 "parser.yy" +#line 261 "parser.yy" { TokenPtr hex(new TokenHexString(yystack_[0].value.as < std::string > ())); ctx.expression.push_back(hex); } -#line 1010 "parser.cc" +#line 1015 "parser.cc" break; case 20: // string_expr: "ip address" -#line 261 "parser.yy" +#line 266 "parser.yy" { TokenPtr ip(new TokenIpAddress(yystack_[0].value.as < std::string > ())); ctx.expression.push_back(ip); } -#line 1019 "parser.cc" +#line 1024 "parser.cc" break; case 21: // string_expr: "option" "[" option_code "]" "." option_repr_type -#line 266 "parser.yy" +#line 271 "parser.yy" { TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ())); ctx.expression.push_back(opt); } -#line 1028 "parser.cc" +#line 1033 "parser.cc" break; case 22: // string_expr: "option" "[" option_code "]" "." "option" "[" sub_option_code "]" "." option_repr_type -#line 271 "parser.yy" +#line 276 "parser.yy" { TokenPtr opt(new TokenSubOption(yystack_[8].value.as < uint16_t > (), yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ())); ctx.expression.push_back(opt); } -#line 1037 "parser.cc" +#line 1042 "parser.cc" break; case 23: // string_expr: "relay4" "[" sub_option_code "]" "." option_repr_type -#line 276 "parser.yy" +#line 281 "parser.yy" { switch (ctx.getUniverse()) { case Option::V4: @@ -1057,11 +1062,11 @@ namespace isc { namespace eval { error(yystack_[5].location, "relay4 can only be used in DHCPv4."); } } -#line 1061 "parser.cc" +#line 1066 "parser.cc" break; case 24: // string_expr: "relay6" "[" nest_level "]" "." "option" "[" sub_option_code "]" "." option_repr_type -#line 297 "parser.yy" +#line 302 "parser.yy" { switch (ctx.getUniverse()) { case Option::V6: @@ -1075,20 +1080,20 @@ namespace isc { namespace eval { error(yystack_[10].location, "relay6 can only be used in DHCPv6."); } } -#line 1079 "parser.cc" +#line 1084 "parser.cc" break; case 25: // string_expr: "pkt" "." pkt_metadata -#line 312 "parser.yy" +#line 317 "parser.yy" { TokenPtr pkt_metadata(new TokenPkt(yystack_[0].value.as < TokenPkt::MetadataType > ())); ctx.expression.push_back(pkt_metadata); } -#line 1088 "parser.cc" +#line 1093 "parser.cc" break; case 26: // string_expr: "pkt4" "." pkt4_field -#line 317 "parser.yy" +#line 322 "parser.yy" { switch (ctx.getUniverse()) { case Option::V4: @@ -1102,11 +1107,11 @@ namespace isc { namespace eval { error(yystack_[2].location, "pkt4 can only be used in DHCPv4."); } } -#line 1106 "parser.cc" +#line 1111 "parser.cc" break; case 27: // string_expr: "pkt6" "." pkt6_field -#line 331 "parser.yy" +#line 336 "parser.yy" { switch (ctx.getUniverse()) { case Option::V6: @@ -1120,11 +1125,11 @@ namespace isc { namespace eval { error(yystack_[2].location, "pkt6 can only be used in DHCPv6."); } } -#line 1124 "parser.cc" +#line 1129 "parser.cc" break; case 28: // string_expr: "relay6" "[" nest_level "]" "." relay6_field -#line 345 "parser.yy" +#line 350 "parser.yy" { switch (ctx.getUniverse()) { case Option::V6: @@ -1138,128 +1143,128 @@ namespace isc { namespace eval { error(yystack_[5].location, "relay6 can only be used in DHCPv6."); } } -#line 1142 "parser.cc" +#line 1147 "parser.cc" break; case 29: // string_expr: "substring" "(" string_expr "," start_expr "," length_expr ")" -#line 360 "parser.yy" +#line 365 "parser.yy" { TokenPtr sub(new TokenSubstring()); ctx.expression.push_back(sub); } -#line 1151 "parser.cc" +#line 1156 "parser.cc" break; case 30: // string_expr: "split" "(" string_expr "," string_expr "," int_expr ")" -#line 365 "parser.yy" +#line 370 "parser.yy" { TokenPtr split(new TokenSplit()); ctx.expression.push_back(split); } -#line 1160 "parser.cc" +#line 1165 "parser.cc" break; case 31: // string_expr: "concat" "(" string_expr "," string_expr ")" -#line 370 "parser.yy" +#line 375 "parser.yy" { TokenPtr conc(new TokenConcat()); ctx.expression.push_back(conc); } -#line 1169 "parser.cc" +#line 1174 "parser.cc" break; case 32: // string_expr: string_expr "+" string_expr -#line 375 "parser.yy" +#line 380 "parser.yy" { TokenPtr conc(new TokenConcat()); ctx.expression.push_back(conc); } -#line 1178 "parser.cc" +#line 1183 "parser.cc" break; case 33: // string_expr: "ifelse" "(" bool_expr "," string_expr "," string_expr ")" -#line 380 "parser.yy" +#line 385 "parser.yy" { TokenPtr cond(new TokenIfElse()); ctx.expression.push_back(cond); } -#line 1187 "parser.cc" +#line 1192 "parser.cc" break; case 34: // string_expr: "hexstring" "(" string_expr "," string_expr ")" -#line 385 "parser.yy" +#line 390 "parser.yy" { TokenPtr tohex(new TokenToHexString()); ctx.expression.push_back(tohex); } -#line 1196 "parser.cc" +#line 1201 "parser.cc" break; case 35: // string_expr: "addrtotext" "(" string_expr ")" -#line 390 "parser.yy" +#line 395 "parser.yy" { TokenPtr addrtotext(new TokenIpAddressToText()); ctx.expression.push_back(addrtotext); } -#line 1205 "parser.cc" +#line 1210 "parser.cc" break; case 36: // string_expr: "int8totext" "(" string_expr ")" -#line 395 "parser.yy" +#line 400 "parser.yy" { TokenPtr int8totext(new TokenInt8ToText()); ctx.expression.push_back(int8totext); } -#line 1214 "parser.cc" +#line 1219 "parser.cc" break; case 37: // string_expr: "int16totext" "(" string_expr ")" -#line 400 "parser.yy" +#line 405 "parser.yy" { TokenPtr int16totext(new TokenInt16ToText()); ctx.expression.push_back(int16totext); } -#line 1223 "parser.cc" +#line 1228 "parser.cc" break; case 38: // string_expr: "int32totext" "(" string_expr ")" -#line 405 "parser.yy" +#line 410 "parser.yy" { TokenPtr int32totext(new TokenInt32ToText()); ctx.expression.push_back(int32totext); } -#line 1232 "parser.cc" +#line 1237 "parser.cc" break; case 39: // string_expr: "uint8totext" "(" string_expr ")" -#line 410 "parser.yy" +#line 415 "parser.yy" { TokenPtr uint8totext(new TokenUInt8ToText()); ctx.expression.push_back(uint8totext); } -#line 1241 "parser.cc" +#line 1246 "parser.cc" break; case 40: // string_expr: "uint16totext" "(" string_expr ")" -#line 415 "parser.yy" +#line 420 "parser.yy" { TokenPtr uint16totext(new TokenUInt16ToText()); ctx.expression.push_back(uint16totext); } -#line 1250 "parser.cc" +#line 1255 "parser.cc" break; case 41: // string_expr: "uint32totext" "(" string_expr ")" -#line 420 "parser.yy" +#line 425 "parser.yy" { TokenPtr uint32totext(new TokenUInt32ToText()); ctx.expression.push_back(uint32totext); } -#line 1259 "parser.cc" +#line 1264 "parser.cc" break; case 42: // string_expr: "vendor" "." "enterprise" -#line 425 "parser.yy" +#line 430 "parser.yy" { // expression: vendor.enterprise // @@ -1268,11 +1273,11 @@ namespace isc { namespace eval { TokenPtr vendor(new TokenVendor(ctx.getUniverse(), 0, TokenVendor::ENTERPRISE_ID)); ctx.expression.push_back(vendor); } -#line 1272 "parser.cc" +#line 1277 "parser.cc" break; case 43: // string_expr: "vendor-class" "." "enterprise" -#line 434 "parser.yy" +#line 439 "parser.yy" { // expression: vendor-class.enterprise // @@ -1282,11 +1287,11 @@ namespace isc { namespace eval { TokenVendor::ENTERPRISE_ID)); ctx.expression.push_back(vendor); } -#line 1286 "parser.cc" +#line 1291 "parser.cc" break; case 44: // string_expr: "vendor" "[" enterprise_id "]" "." "option" "[" sub_option_code "]" "." option_repr_type -#line 444 "parser.yy" +#line 449 "parser.yy" { // This token will search for vendor option with // specified enterprise-id. If found, will search @@ -1295,11 +1300,11 @@ namespace isc { namespace eval { TokenPtr opt(new TokenVendor(ctx.getUniverse(), yystack_[8].value.as < uint32_t > (), yystack_[0].value.as < TokenOption::RepresentationType > (), yystack_[3].value.as < uint16_t > ())); ctx.expression.push_back(opt); } -#line 1299 "parser.cc" +#line 1304 "parser.cc" break; case 45: // string_expr: "vendor-class" "[" enterprise_id "]" "." "data" -#line 453 "parser.yy" +#line 458 "parser.yy" { // expression: vendor-class[1234].data // @@ -1312,11 +1317,11 @@ namespace isc { namespace eval { TokenVendor::DATA, 0)); ctx.expression.push_back(vendor_class); } -#line 1316 "parser.cc" +#line 1321 "parser.cc" break; case 46: // string_expr: "vendor-class" "[" enterprise_id "]" "." "data" "[" "integer" "]" -#line 466 "parser.yy" +#line 471 "parser.yy" { // expression: vendor-class[1234].data[5] // @@ -1329,264 +1334,264 @@ namespace isc { namespace eval { TokenVendor::DATA, index)); ctx.expression.push_back(vendor_class); } -#line 1333 "parser.cc" +#line 1338 "parser.cc" break; case 47: // string_expr: integer_expr -#line 479 "parser.yy" +#line 484 "parser.yy" { TokenPtr integer(new TokenInteger(yystack_[0].value.as < uint32_t > ())); ctx.expression.push_back(integer); } -#line 1342 "parser.cc" +#line 1347 "parser.cc" break; case 49: // integer_expr: "integer" -#line 487 "parser.yy" +#line 492 "parser.yy" { yylhs.value.as < uint32_t > () = ctx.convertUint32(yystack_[0].value.as < std::string > (), yystack_[0].location); } -#line 1350 "parser.cc" +#line 1355 "parser.cc" break; case 50: // option_code: "integer" -#line 493 "parser.yy" +#line 498 "parser.yy" { yylhs.value.as < uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as < std::string > (), yystack_[0].location); } -#line 1358 "parser.cc" +#line 1363 "parser.cc" break; case 51: // option_code: "option name" -#line 497 "parser.yy" +#line 502 "parser.yy" { yylhs.value.as < uint16_t > () = ctx.convertOptionName(yystack_[0].value.as < std::string > (), yystack_[0].location); } -#line 1366 "parser.cc" +#line 1371 "parser.cc" break; case 52: // sub_option_code: "integer" -#line 503 "parser.yy" +#line 508 "parser.yy" { yylhs.value.as < uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as < std::string > (), yystack_[0].location); } -#line 1374 "parser.cc" +#line 1379 "parser.cc" break; case 53: // option_repr_type: "text" -#line 509 "parser.yy" +#line 514 "parser.yy" { yylhs.value.as < TokenOption::RepresentationType > () = TokenOption::TEXTUAL; } -#line 1382 "parser.cc" +#line 1387 "parser.cc" break; case 54: // option_repr_type: "hex" -#line 513 "parser.yy" +#line 518 "parser.yy" { yylhs.value.as < TokenOption::RepresentationType > () = TokenOption::HEXADECIMAL; } -#line 1390 "parser.cc" +#line 1395 "parser.cc" break; case 55: // nest_level: "integer" -#line 519 "parser.yy" +#line 524 "parser.yy" { yylhs.value.as < int8_t > () = ctx.convertNestLevelNumber(yystack_[0].value.as < std::string > (), yystack_[0].location); } -#line 1398 "parser.cc" +#line 1403 "parser.cc" break; case 56: // pkt_metadata: "iface" -#line 528 "parser.yy" +#line 533 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::IFACE; } -#line 1406 "parser.cc" +#line 1411 "parser.cc" break; case 57: // pkt_metadata: "src" -#line 532 "parser.yy" +#line 537 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::SRC; } -#line 1414 "parser.cc" +#line 1419 "parser.cc" break; case 58: // pkt_metadata: "dst" -#line 536 "parser.yy" +#line 541 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::DST; } -#line 1422 "parser.cc" +#line 1427 "parser.cc" break; case 59: // pkt_metadata: "len" -#line 540 "parser.yy" +#line 545 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::LEN; } -#line 1430 "parser.cc" +#line 1435 "parser.cc" break; case 60: // enterprise_id: "integer" -#line 546 "parser.yy" +#line 551 "parser.yy" { yylhs.value.as < uint32_t > () = ctx.convertUint32(yystack_[0].value.as < std::string > (), yystack_[0].location); } -#line 1438 "parser.cc" +#line 1443 "parser.cc" break; case 61: // enterprise_id: "*" -#line 550 "parser.yy" +#line 555 "parser.yy" { yylhs.value.as < uint32_t > () = 0; } -#line 1446 "parser.cc" +#line 1451 "parser.cc" break; case 62: // pkt4_field: "mac" -#line 556 "parser.yy" +#line 561 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::CHADDR; } -#line 1454 "parser.cc" +#line 1459 "parser.cc" break; case 63: // pkt4_field: "hlen" -#line 560 "parser.yy" +#line 565 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::HLEN; } -#line 1462 "parser.cc" +#line 1467 "parser.cc" break; case 64: // pkt4_field: "htype" -#line 564 "parser.yy" +#line 569 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::HTYPE; } -#line 1470 "parser.cc" +#line 1475 "parser.cc" break; case 65: // pkt4_field: "ciaddr" -#line 568 "parser.yy" +#line 573 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::CIADDR; } -#line 1478 "parser.cc" +#line 1483 "parser.cc" break; case 66: // pkt4_field: "giaddr" -#line 572 "parser.yy" +#line 577 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::GIADDR; } -#line 1486 "parser.cc" +#line 1491 "parser.cc" break; case 67: // pkt4_field: "yiaddr" -#line 576 "parser.yy" +#line 581 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::YIADDR; } -#line 1494 "parser.cc" +#line 1499 "parser.cc" break; case 68: // pkt4_field: "siaddr" -#line 580 "parser.yy" +#line 585 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::SIADDR; } -#line 1502 "parser.cc" +#line 1507 "parser.cc" break; case 69: // pkt4_field: "msgtype" -#line 584 "parser.yy" +#line 589 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::MSGTYPE; } -#line 1510 "parser.cc" +#line 1515 "parser.cc" break; case 70: // pkt4_field: "transid" -#line 588 "parser.yy" +#line 593 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::TRANSID; } -#line 1518 "parser.cc" +#line 1523 "parser.cc" break; case 71: // pkt6_field: "msgtype" -#line 594 "parser.yy" +#line 599 "parser.yy" { yylhs.value.as < TokenPkt6::FieldType > () = TokenPkt6::MSGTYPE; } -#line 1526 "parser.cc" +#line 1531 "parser.cc" break; case 72: // pkt6_field: "transid" -#line 598 "parser.yy" +#line 603 "parser.yy" { yylhs.value.as < TokenPkt6::FieldType > () = TokenPkt6::TRANSID; } -#line 1534 "parser.cc" +#line 1539 "parser.cc" break; case 73: // relay6_field: "peeraddr" -#line 604 "parser.yy" +#line 609 "parser.yy" { yylhs.value.as < TokenRelay6Field::FieldType > () = TokenRelay6Field::PEERADDR; } -#line 1542 "parser.cc" +#line 1547 "parser.cc" break; case 74: // relay6_field: "linkaddr" -#line 608 "parser.yy" +#line 613 "parser.yy" { yylhs.value.as < TokenRelay6Field::FieldType > () = TokenRelay6Field::LINKADDR; } -#line 1550 "parser.cc" +#line 1555 "parser.cc" break; case 75: // start_expr: "integer" -#line 614 "parser.yy" +#line 619 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); ctx.expression.push_back(str); } -#line 1559 "parser.cc" +#line 1564 "parser.cc" break; case 76: // length_expr: "integer" -#line 621 "parser.yy" +#line 626 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); ctx.expression.push_back(str); } -#line 1568 "parser.cc" +#line 1573 "parser.cc" break; case 77: // length_expr: "all" -#line 626 "parser.yy" +#line 631 "parser.yy" { TokenPtr str(new TokenString("all")); ctx.expression.push_back(str); } -#line 1577 "parser.cc" +#line 1582 "parser.cc" break; case 78: // int_expr: "integer" -#line 632 "parser.yy" +#line 637 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); ctx.expression.push_back(str); } -#line 1586 "parser.cc" +#line 1591 "parser.cc" break; -#line 1590 "parser.cc" +#line 1595 "parser.cc" default: break; @@ -2170,14 +2175,14 @@ namespace isc { namespace eval { const short EvalParser::yyrline_[] = { - 0, 131, 131, 132, 137, 140, 141, 146, 151, 156, - 161, 166, 171, 191, 205, 214, 223, 233, 250, 255, - 260, 265, 270, 275, 296, 311, 316, 330, 344, 359, - 364, 369, 374, 379, 384, 389, 394, 399, 404, 409, - 414, 419, 424, 433, 443, 452, 465, 478, 483, 486, - 492, 496, 502, 508, 512, 518, 527, 531, 535, 539, - 545, 549, 555, 559, 563, 567, 571, 575, 579, 583, - 587, 593, 597, 603, 607, 613, 620, 625, 631 + 0, 136, 136, 137, 142, 145, 146, 151, 156, 161, + 166, 171, 176, 196, 210, 219, 228, 238, 255, 260, + 265, 270, 275, 280, 301, 316, 321, 335, 349, 364, + 369, 374, 379, 384, 389, 394, 399, 404, 409, 414, + 419, 424, 429, 438, 448, 457, 470, 483, 488, 491, + 497, 501, 507, 513, 517, 523, 532, 536, 540, 544, + 550, 554, 560, 564, 568, 572, 576, 580, 584, 588, + 592, 598, 602, 608, 612, 618, 625, 630, 636 }; void @@ -2210,9 +2215,9 @@ namespace isc { namespace eval { #line 14 "parser.yy" } } // isc::eval -#line 2214 "parser.cc" +#line 2219 "parser.cc" -#line 638 "parser.yy" +#line 643 "parser.yy" void isc::eval::EvalParser::error(const location_type& loc, |