2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-30 21:45:37 +00:00

[#3502] Regen flex/bison

This commit is contained in:
Francis Dupont
2024-08-07 19:49:42 +00:00
parent c64dcde713
commit fdc6409e55
2 changed files with 176 additions and 176 deletions

View File

@@ -1,4 +1,4 @@
// Generated 202408071933
// Generated 202408071949
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++

View File

@@ -869,78 +869,78 @@ namespace isc { namespace eval {
TokenPtr lab(new TokenLabel(target));
ctx.expression.push_back(lab);
}
#line 872 "parser.cc"
#line 873 "parser.cc"
break;
case 9: // bool_expr: bool_expr "sand" bool_expr
#line 171 "parser.yy"
#line 172 "parser.yy"
{
TokenPtr neg(new TokenAnd());
ctx.expression.push_back(neg);
}
#line 881 "parser.cc"
#line 882 "parser.cc"
break;
case 10: // $@2: %empty
#line 176 "parser.yy"
#line 177 "parser.yy"
{
unsigned target = ++ctx.label;
ctx.labels.push_back(target);
TokenPtr pobt(new TokenPopOrBranchTrue(target));
ctx.expression.push_back(pobt);
}
#line 892 "parser.cc"
#line 893 "parser.cc"
break;
case 11: // bool_expr: bool_expr "or" $@2 bool_expr
#line 181 "parser.yy"
#line 182 "parser.yy"
{
unsigned target = ctx.labels.back();
ctx.labels.pop_back();
TokenPtr lab(new TokenLabel(target));
ctx.expression.push_back(lab);
}
#line 902 "parser.cc"
#line 904 "parser.cc"
break;
case 12: // bool_expr: bool_expr "sor" bool_expr
#line 187 "parser.yy"
#line 189 "parser.yy"
{
TokenPtr neg(new TokenOr());
ctx.expression.push_back(neg);
}
#line 911 "parser.cc"
#line 913 "parser.cc"
break;
case 13: // bool_expr: string_expr "==" string_expr
#line 192 "parser.yy"
#line 194 "parser.yy"
{
TokenPtr eq(new TokenEqual());
ctx.expression.push_back(eq);
}
#line 920 "parser.cc"
#line 922 "parser.cc"
break;
case 14: // bool_expr: "option" "[" option_code "]" "." "exists"
#line 197 "parser.yy"
#line 199 "parser.yy"
{
TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS));
ctx.expression.push_back(opt);
}
#line 929 "parser.cc"
#line 931 "parser.cc"
break;
case 15: // bool_expr: "option" "[" option_code "]" "." "option" "[" sub_option_code "]" "." "exists"
#line 202 "parser.yy"
#line 204 "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 938 "parser.cc"
#line 940 "parser.cc"
break;
case 16: // bool_expr: "relay4" "[" sub_option_code "]" "." "exists"
#line 207 "parser.yy"
#line 209 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V4:
@@ -960,11 +960,11 @@ namespace isc { namespace eval {
error(yystack_[5].location, "relay4 can only be used in DHCPv4.");
}
}
#line 962 "parser.cc"
#line 964 "parser.cc"
break;
case 17: // bool_expr: "relay6" "[" nest_level "]" "." "option" "[" sub_option_code "]" "." "exists"
#line 227 "parser.yy"
#line 229 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V6:
@@ -978,11 +978,11 @@ namespace isc { namespace eval {
error(yystack_[10].location, "relay6 can only be used in DHCPv6.");
}
}
#line 980 "parser.cc"
#line 982 "parser.cc"
break;
case 18: // bool_expr: "vendor-class" "[" enterprise_id "]" "." "exists"
#line 241 "parser.yy"
#line 243 "parser.yy"
{
// Expression: vendor-class[1234].exists
//
@@ -991,11 +991,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 993 "parser.cc"
#line 995 "parser.cc"
break;
case 19: // bool_expr: "vendor" "[" enterprise_id "]" "." "exists"
#line 250 "parser.yy"
#line 252 "parser.yy"
{
// Expression: vendor[1234].exists
//
@@ -1004,11 +1004,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 1006 "parser.cc"
#line 1008 "parser.cc"
break;
case 20: // bool_expr: "vendor" "[" enterprise_id "]" "." "option" "[" sub_option_code "]" "." "exists"
#line 259 "parser.yy"
#line 261 "parser.yy"
{
// Expression vendor[1234].option[123].exists
//
@@ -1018,11 +1018,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 1020 "parser.cc"
#line 1022 "parser.cc"
break;
case 21: // bool_expr: "member" "(" "constant string" ")"
#line 269 "parser.yy"
#line 271 "parser.yy"
{
// Expression member('foo')
//
@@ -1037,11 +1037,11 @@ namespace isc { namespace eval {
TokenPtr member(new TokenMember(cc));
ctx.expression.push_back(member);
}
#line 1039 "parser.cc"
#line 1041 "parser.cc"
break;
case 22: // bool_expr: "match" "(" "constant string" "," string_expr ")"
#line 284 "parser.yy"
#line 286 "parser.yy"
{
// Expression match('<regex>', <string_expr>)
//
@@ -1050,56 +1050,56 @@ namespace isc { namespace eval {
TokenPtr match(new TokenMatch(yystack_[3].value.as < std::string > ()));
ctx.expression.push_back(match);
}
#line 1052 "parser.cc"
#line 1054 "parser.cc"
break;
case 23: // string_expr: "constant string"
#line 295 "parser.yy"
#line 297 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
ctx.expression.push_back(str);
}
#line 1061 "parser.cc"
#line 1063 "parser.cc"
break;
case 24: // string_expr: "constant hexstring"
#line 300 "parser.yy"
#line 302 "parser.yy"
{
TokenPtr hex(new TokenHexString(yystack_[0].value.as < std::string > ()));
ctx.expression.push_back(hex);
}
#line 1070 "parser.cc"
#line 1072 "parser.cc"
break;
case 25: // string_expr: "ip address"
#line 305 "parser.yy"
#line 307 "parser.yy"
{
TokenPtr ip(new TokenIpAddress(yystack_[0].value.as < std::string > ()));
ctx.expression.push_back(ip);
}
#line 1079 "parser.cc"
#line 1081 "parser.cc"
break;
case 26: // string_expr: "option" "[" option_code "]" "." option_repr_type
#line 310 "parser.yy"
#line 312 "parser.yy"
{
TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ()));
ctx.expression.push_back(opt);
}
#line 1088 "parser.cc"
#line 1090 "parser.cc"
break;
case 27: // string_expr: "option" "[" option_code "]" "." "option" "[" sub_option_code "]" "." option_repr_type
#line 315 "parser.yy"
#line 317 "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 1097 "parser.cc"
#line 1099 "parser.cc"
break;
case 28: // string_expr: "relay4" "[" sub_option_code "]" "." option_repr_type
#line 320 "parser.yy"
#line 322 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V4:
@@ -1119,11 +1119,11 @@ namespace isc { namespace eval {
error(yystack_[5].location, "relay4 can only be used in DHCPv4.");
}
}
#line 1121 "parser.cc"
#line 1123 "parser.cc"
break;
case 29: // string_expr: "relay6" "[" nest_level "]" "." "option" "[" sub_option_code "]" "." option_repr_type
#line 341 "parser.yy"
#line 343 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V6:
@@ -1137,20 +1137,20 @@ namespace isc { namespace eval {
error(yystack_[10].location, "relay6 can only be used in DHCPv6.");
}
}
#line 1139 "parser.cc"
#line 1141 "parser.cc"
break;
case 30: // string_expr: "pkt" "." pkt_metadata
#line 356 "parser.yy"
#line 358 "parser.yy"
{
TokenPtr pkt_metadata(new TokenPkt(yystack_[0].value.as < TokenPkt::MetadataType > ()));
ctx.expression.push_back(pkt_metadata);
}
#line 1148 "parser.cc"
#line 1150 "parser.cc"
break;
case 31: // string_expr: "pkt4" "." pkt4_field
#line 361 "parser.yy"
#line 363 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V4:
@@ -1164,11 +1164,11 @@ namespace isc { namespace eval {
error(yystack_[2].location, "pkt4 can only be used in DHCPv4.");
}
}
#line 1166 "parser.cc"
#line 1168 "parser.cc"
break;
case 32: // string_expr: "pkt6" "." pkt6_field
#line 375 "parser.yy"
#line 377 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V6:
@@ -1182,11 +1182,11 @@ namespace isc { namespace eval {
error(yystack_[2].location, "pkt6 can only be used in DHCPv6.");
}
}
#line 1184 "parser.cc"
#line 1186 "parser.cc"
break;
case 33: // string_expr: "relay6" "[" nest_level "]" "." relay6_field
#line 389 "parser.yy"
#line 391 "parser.yy"
{
switch (ctx.getUniverse()) {
case Option::V6:
@@ -1200,76 +1200,76 @@ namespace isc { namespace eval {
error(yystack_[5].location, "relay6 can only be used in DHCPv6.");
}
}
#line 1202 "parser.cc"
#line 1204 "parser.cc"
break;
case 34: // string_expr: "substring" "(" string_expr "," start_expr "," length_expr ")"
#line 404 "parser.yy"
#line 406 "parser.yy"
{
TokenPtr sub(new TokenSubstring());
ctx.expression.push_back(sub);
}
#line 1211 "parser.cc"
#line 1213 "parser.cc"
break;
case 35: // string_expr: "split" "(" string_expr "," string_expr "," int_expr ")"
#line 409 "parser.yy"
#line 411 "parser.yy"
{
TokenPtr split(new TokenSplit());
ctx.expression.push_back(split);
}
#line 1220 "parser.cc"
#line 1222 "parser.cc"
break;
case 36: // string_expr: "concat" "(" string_expr "," string_expr ")"
#line 414 "parser.yy"
#line 416 "parser.yy"
{
TokenPtr conc(new TokenConcat());
ctx.expression.push_back(conc);
}
#line 1229 "parser.cc"
#line 1231 "parser.cc"
break;
case 37: // string_expr: string_expr "+" string_expr
#line 419 "parser.yy"
#line 421 "parser.yy"
{
TokenPtr conc(new TokenConcat());
ctx.expression.push_back(conc);
}
#line 1238 "parser.cc"
#line 1240 "parser.cc"
break;
case 38: // string_expr: "lcase" "(" string_expr ")"
#line 424 "parser.yy"
#line 426 "parser.yy"
{
TokenPtr lcase(new TokenLowerCase());
ctx.expression.push_back(lcase);
}
#line 1247 "parser.cc"
#line 1249 "parser.cc"
break;
case 39: // string_expr: "ucase" "(" string_expr ")"
#line 429 "parser.yy"
#line 431 "parser.yy"
{
TokenPtr ucase(new TokenUpperCase());
ctx.expression.push_back(ucase);
}
#line 1256 "parser.cc"
#line 1258 "parser.cc"
break;
case 40: // $@3: %empty
#line 434 "parser.yy"
#line 436 "parser.yy"
{
unsigned target = ++ctx.label;
ctx.labels.push_back(target);
TokenPtr pabf(new TokenPopAndBranchFalse(target));
ctx.expression.push_back(pabf);
}
#line 1267 "parser.cc"
#line 1269 "parser.cc"
break;
case 41: // $@4: %empty
#line 439 "parser.yy"
#line 441 "parser.yy"
{
unsigned target = ctx.labels.back();
ctx.labels.pop_back();
@@ -1280,103 +1280,103 @@ namespace isc { namespace eval {
TokenPtr lab(new TokenLabel(target));
ctx.expression.push_back(lab);
}
#line 1281 "parser.cc"
#line 1284 "parser.cc"
break;
case 42: // string_expr: "ifelse" "(" bool_expr "," $@3 string_expr "," $@4 string_expr ")"
#line 447 "parser.yy"
#line 450 "parser.yy"
{
unsigned target = ctx.labels.back();
ctx.labels.pop_back();
TokenPtr lab(new TokenLabel(target));
ctx.expression.push_back(lab);
}
#line 1291 "parser.cc"
#line 1295 "parser.cc"
break;
case 43: // string_expr: "sifelse" "(" bool_expr "," string_expr "," string_expr ")"
#line 453 "parser.yy"
#line 457 "parser.yy"
{
TokenPtr cond(new TokenIfElse());
ctx.expression.push_back(cond);
}
#line 1300 "parser.cc"
#line 1304 "parser.cc"
break;
case 44: // string_expr: "hexstring" "(" string_expr "," string_expr ")"
#line 458 "parser.yy"
#line 462 "parser.yy"
{
TokenPtr tohex(new TokenToHexString());
ctx.expression.push_back(tohex);
}
#line 1309 "parser.cc"
#line 1313 "parser.cc"
break;
case 45: // string_expr: "addrtotext" "(" string_expr ")"
#line 463 "parser.yy"
#line 467 "parser.yy"
{
TokenPtr addrtotext(new TokenIpAddressToText());
ctx.expression.push_back(addrtotext);
}
#line 1318 "parser.cc"
#line 1322 "parser.cc"
break;
case 46: // string_expr: "int8totext" "(" string_expr ")"
#line 468 "parser.yy"
#line 472 "parser.yy"
{
TokenPtr int8totext(new TokenInt8ToText());
ctx.expression.push_back(int8totext);
}
#line 1327 "parser.cc"
#line 1331 "parser.cc"
break;
case 47: // string_expr: "int16totext" "(" string_expr ")"
#line 473 "parser.yy"
#line 477 "parser.yy"
{
TokenPtr int16totext(new TokenInt16ToText());
ctx.expression.push_back(int16totext);
}
#line 1336 "parser.cc"
#line 1340 "parser.cc"
break;
case 48: // string_expr: "int32totext" "(" string_expr ")"
#line 478 "parser.yy"
#line 482 "parser.yy"
{
TokenPtr int32totext(new TokenInt32ToText());
ctx.expression.push_back(int32totext);
}
#line 1345 "parser.cc"
#line 1349 "parser.cc"
break;
case 49: // string_expr: "uint8totext" "(" string_expr ")"
#line 483 "parser.yy"
#line 487 "parser.yy"
{
TokenPtr uint8totext(new TokenUInt8ToText());
ctx.expression.push_back(uint8totext);
}
#line 1354 "parser.cc"
#line 1358 "parser.cc"
break;
case 50: // string_expr: "uint16totext" "(" string_expr ")"
#line 488 "parser.yy"
#line 492 "parser.yy"
{
TokenPtr uint16totext(new TokenUInt16ToText());
ctx.expression.push_back(uint16totext);
}
#line 1363 "parser.cc"
#line 1367 "parser.cc"
break;
case 51: // string_expr: "uint32totext" "(" string_expr ")"
#line 493 "parser.yy"
#line 497 "parser.yy"
{
TokenPtr uint32totext(new TokenUInt32ToText());
ctx.expression.push_back(uint32totext);
}
#line 1372 "parser.cc"
#line 1376 "parser.cc"
break;
case 52: // string_expr: "vendor" "." "enterprise"
#line 498 "parser.yy"
#line 502 "parser.yy"
{
// expression: vendor.enterprise
//
@@ -1385,11 +1385,11 @@ namespace isc { namespace eval {
TokenPtr vendor(new TokenVendor(ctx.getUniverse(), 0, TokenVendor::ENTERPRISE_ID));
ctx.expression.push_back(vendor);
}
#line 1385 "parser.cc"
#line 1389 "parser.cc"
break;
case 53: // string_expr: "vendor-class" "." "enterprise"
#line 507 "parser.yy"
#line 511 "parser.yy"
{
// expression: vendor-class.enterprise
//
@@ -1399,11 +1399,11 @@ namespace isc { namespace eval {
TokenVendor::ENTERPRISE_ID));
ctx.expression.push_back(vendor);
}
#line 1399 "parser.cc"
#line 1403 "parser.cc"
break;
case 54: // string_expr: "vendor" "[" enterprise_id "]" "." "option" "[" sub_option_code "]" "." option_repr_type
#line 517 "parser.yy"
#line 521 "parser.yy"
{
// This token will search for vendor option with
// specified enterprise-id. If found, will search
@@ -1412,11 +1412,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 1412 "parser.cc"
#line 1416 "parser.cc"
break;
case 55: // string_expr: "vendor-class" "[" enterprise_id "]" "." "data"
#line 526 "parser.yy"
#line 530 "parser.yy"
{
// expression: vendor-class[1234].data
//
@@ -1429,11 +1429,11 @@ namespace isc { namespace eval {
TokenVendor::DATA, 0));
ctx.expression.push_back(vendor_class);
}
#line 1429 "parser.cc"
#line 1433 "parser.cc"
break;
case 56: // string_expr: "vendor-class" "[" enterprise_id "]" "." "data" "[" "integer" "]"
#line 539 "parser.yy"
#line 543 "parser.yy"
{
// expression: vendor-class[1234].data[5]
//
@@ -1446,264 +1446,264 @@ namespace isc { namespace eval {
TokenVendor::DATA, index));
ctx.expression.push_back(vendor_class);
}
#line 1446 "parser.cc"
#line 1450 "parser.cc"
break;
case 57: // string_expr: integer_expr
#line 552 "parser.yy"
#line 556 "parser.yy"
{
TokenPtr integer(new TokenInteger(yystack_[0].value.as < uint32_t > ()));
ctx.expression.push_back(integer);
}
#line 1455 "parser.cc"
#line 1459 "parser.cc"
break;
case 59: // integer_expr: "integer"
#line 560 "parser.yy"
#line 564 "parser.yy"
{
yylhs.value.as < uint32_t > () = ctx.convertUint32(yystack_[0].value.as < std::string > (), yystack_[0].location);
}
#line 1463 "parser.cc"
#line 1467 "parser.cc"
break;
case 60: // option_code: "integer"
#line 566 "parser.yy"
#line 570 "parser.yy"
{
yylhs.value.as < uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as < std::string > (), yystack_[0].location);
}
#line 1471 "parser.cc"
#line 1475 "parser.cc"
break;
case 61: // option_code: "option name"
#line 570 "parser.yy"
#line 574 "parser.yy"
{
yylhs.value.as < uint16_t > () = ctx.convertOptionName(yystack_[0].value.as < std::string > (), yystack_[0].location);
}
#line 1479 "parser.cc"
#line 1483 "parser.cc"
break;
case 62: // sub_option_code: "integer"
#line 576 "parser.yy"
#line 580 "parser.yy"
{
yylhs.value.as < uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as < std::string > (), yystack_[0].location);
}
#line 1487 "parser.cc"
#line 1491 "parser.cc"
break;
case 63: // option_repr_type: "text"
#line 582 "parser.yy"
#line 586 "parser.yy"
{
yylhs.value.as < TokenOption::RepresentationType > () = TokenOption::TEXTUAL;
}
#line 1495 "parser.cc"
#line 1499 "parser.cc"
break;
case 64: // option_repr_type: "hex"
#line 586 "parser.yy"
#line 590 "parser.yy"
{
yylhs.value.as < TokenOption::RepresentationType > () = TokenOption::HEXADECIMAL;
}
#line 1503 "parser.cc"
#line 1507 "parser.cc"
break;
case 65: // nest_level: "integer"
#line 592 "parser.yy"
#line 596 "parser.yy"
{
yylhs.value.as < int8_t > () = ctx.convertNestLevelNumber(yystack_[0].value.as < std::string > (), yystack_[0].location);
}
#line 1511 "parser.cc"
#line 1515 "parser.cc"
break;
case 66: // pkt_metadata: "iface"
#line 601 "parser.yy"
#line 605 "parser.yy"
{
yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::IFACE;
}
#line 1519 "parser.cc"
#line 1523 "parser.cc"
break;
case 67: // pkt_metadata: "src"
#line 605 "parser.yy"
#line 609 "parser.yy"
{
yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::SRC;
}
#line 1527 "parser.cc"
#line 1531 "parser.cc"
break;
case 68: // pkt_metadata: "dst"
#line 609 "parser.yy"
#line 613 "parser.yy"
{
yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::DST;
}
#line 1535 "parser.cc"
#line 1539 "parser.cc"
break;
case 69: // pkt_metadata: "len"
#line 613 "parser.yy"
#line 617 "parser.yy"
{
yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::LEN;
}
#line 1543 "parser.cc"
#line 1547 "parser.cc"
break;
case 70: // enterprise_id: "integer"
#line 619 "parser.yy"
#line 623 "parser.yy"
{
yylhs.value.as < uint32_t > () = ctx.convertUint32(yystack_[0].value.as < std::string > (), yystack_[0].location);
}
#line 1551 "parser.cc"
#line 1555 "parser.cc"
break;
case 71: // enterprise_id: "*"
#line 623 "parser.yy"
#line 627 "parser.yy"
{
yylhs.value.as < uint32_t > () = 0;
}
#line 1559 "parser.cc"
#line 1563 "parser.cc"
break;
case 72: // pkt4_field: "mac"
#line 629 "parser.yy"
#line 633 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::CHADDR;
}
#line 1567 "parser.cc"
#line 1571 "parser.cc"
break;
case 73: // pkt4_field: "hlen"
#line 633 "parser.yy"
#line 637 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::HLEN;
}
#line 1575 "parser.cc"
#line 1579 "parser.cc"
break;
case 74: // pkt4_field: "htype"
#line 637 "parser.yy"
#line 641 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::HTYPE;
}
#line 1583 "parser.cc"
#line 1587 "parser.cc"
break;
case 75: // pkt4_field: "ciaddr"
#line 641 "parser.yy"
#line 645 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::CIADDR;
}
#line 1591 "parser.cc"
#line 1595 "parser.cc"
break;
case 76: // pkt4_field: "giaddr"
#line 645 "parser.yy"
#line 649 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::GIADDR;
}
#line 1599 "parser.cc"
#line 1603 "parser.cc"
break;
case 77: // pkt4_field: "yiaddr"
#line 649 "parser.yy"
#line 653 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::YIADDR;
}
#line 1607 "parser.cc"
#line 1611 "parser.cc"
break;
case 78: // pkt4_field: "siaddr"
#line 653 "parser.yy"
#line 657 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::SIADDR;
}
#line 1615 "parser.cc"
#line 1619 "parser.cc"
break;
case 79: // pkt4_field: "msgtype"
#line 657 "parser.yy"
#line 661 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::MSGTYPE;
}
#line 1623 "parser.cc"
#line 1627 "parser.cc"
break;
case 80: // pkt4_field: "transid"
#line 661 "parser.yy"
#line 665 "parser.yy"
{
yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::TRANSID;
}
#line 1631 "parser.cc"
#line 1635 "parser.cc"
break;
case 81: // pkt6_field: "msgtype"
#line 667 "parser.yy"
#line 671 "parser.yy"
{
yylhs.value.as < TokenPkt6::FieldType > () = TokenPkt6::MSGTYPE;
}
#line 1639 "parser.cc"
#line 1643 "parser.cc"
break;
case 82: // pkt6_field: "transid"
#line 671 "parser.yy"
#line 675 "parser.yy"
{
yylhs.value.as < TokenPkt6::FieldType > () = TokenPkt6::TRANSID;
}
#line 1647 "parser.cc"
#line 1651 "parser.cc"
break;
case 83: // relay6_field: "peeraddr"
#line 677 "parser.yy"
#line 681 "parser.yy"
{
yylhs.value.as < TokenRelay6Field::FieldType > () = TokenRelay6Field::PEERADDR;
}
#line 1655 "parser.cc"
#line 1659 "parser.cc"
break;
case 84: // relay6_field: "linkaddr"
#line 681 "parser.yy"
#line 685 "parser.yy"
{
yylhs.value.as < TokenRelay6Field::FieldType > () = TokenRelay6Field::LINKADDR;
}
#line 1663 "parser.cc"
#line 1667 "parser.cc"
break;
case 85: // start_expr: "integer"
#line 687 "parser.yy"
#line 691 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
ctx.expression.push_back(str);
}
#line 1672 "parser.cc"
#line 1676 "parser.cc"
break;
case 86: // length_expr: "integer"
#line 694 "parser.yy"
#line 698 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
ctx.expression.push_back(str);
}
#line 1681 "parser.cc"
#line 1685 "parser.cc"
break;
case 87: // length_expr: "all"
#line 699 "parser.yy"
#line 703 "parser.yy"
{
TokenPtr str(new TokenString("all"));
ctx.expression.push_back(str);
}
#line 1690 "parser.cc"
#line 1694 "parser.cc"
break;
case 88: // int_expr: "integer"
#line 706 "parser.yy"
#line 710 "parser.yy"
{
TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ()));
ctx.expression.push_back(str);
}
#line 1699 "parser.cc"
#line 1703 "parser.cc"
break;
#line 1703 "parser.cc"
#line 1707 "parser.cc"
default:
break;
@@ -2314,15 +2314,15 @@ namespace isc { namespace eval {
const short
EvalParser::yyrline_[] =
{
0, 144, 144, 145, 150, 153, 154, 160, 159, 170,
176, 175, 186, 191, 196, 201, 206, 226, 240, 249,
258, 268, 283, 294, 299, 304, 309, 314, 319, 340,
355, 360, 374, 388, 403, 408, 413, 418, 423, 428,
434, 439, 433, 452, 457, 462, 467, 472, 477, 482,
487, 492, 497, 506, 516, 525, 538, 551, 556, 559,
565, 569, 575, 581, 585, 591, 600, 604, 608, 612,
618, 622, 628, 632, 636, 640, 644, 648, 652, 656,
660, 666, 670, 676, 680, 686, 693, 698, 705
0, 144, 144, 145, 150, 153, 154, 160, 159, 171,
177, 176, 188, 193, 198, 203, 208, 228, 242, 251,
260, 270, 285, 296, 301, 306, 311, 316, 321, 342,
357, 362, 376, 390, 405, 410, 415, 420, 425, 430,
436, 441, 435, 456, 461, 466, 471, 476, 481, 486,
491, 496, 501, 510, 520, 529, 542, 555, 560, 563,
569, 573, 579, 585, 589, 595, 604, 608, 612, 616,
622, 626, 632, 636, 640, 644, 648, 652, 656, 660,
664, 670, 674, 680, 684, 690, 697, 702, 709
};
void
@@ -2355,9 +2355,9 @@ namespace isc { namespace eval {
#line 14 "parser.yy"
} } // isc::eval
#line 2355 "parser.cc"
#line 2359 "parser.cc"
#line 712 "parser.yy"
#line 716 "parser.yy"
void
isc::eval::EvalParser::error(const location_type& loc,