case 316: // ssl_mode: "disable"
#line 1316 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disable", ctx.loc2pos(yystack_[0].location))); }
-#line 2390 "dhcp4_parser.cc"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disable", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2392 "dhcp4_parser.cc"
break;
case 317: // ssl_mode: "prefer"
-#line 1317 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("prefer", ctx.loc2pos(yystack_[0].location))); }
-#line 2396 "dhcp4_parser.cc"
+#line 1319 "dhcp4_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("prefer", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2400 "dhcp4_parser.cc"
break;
case 318: // ssl_mode: "require"
-#line 1318 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("require", ctx.loc2pos(yystack_[0].location))); }
-#line 2402 "dhcp4_parser.cc"
+#line 1322 "dhcp4_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("require", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2408 "dhcp4_parser.cc"
break;
case 319: // ssl_mode: "verify-ca"
-#line 1319 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(yystack_[0].location))); }
-#line 2408 "dhcp4_parser.cc"
+#line 1325 "dhcp4_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2416 "dhcp4_parser.cc"
break;
case 320: // ssl_mode: "verify-full"
-#line 1320 "dhcp4_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-full", ctx.loc2pos(yystack_[0].location))); }
-#line 2414 "dhcp4_parser.cc"
+#line 1328 "dhcp4_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-full", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2424 "dhcp4_parser.cc"
break;
case 321: // $@50: %empty
-#line 1323 "dhcp4_parser.yy"
+#line 1333 "dhcp4_parser.yy"
{
ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2423 "dhcp4_parser.cc"
+#line 2433 "dhcp4_parser.cc"
break;
case 322: // cipher_list: "cipher-list" $@50 ":" "constant string"
-#line 1326 "dhcp4_parser.yy"
+#line 1336 "dhcp4_parser.yy"
{
ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cipher-list", cl);
ctx.leave();
}
-#line 2433 "dhcp4_parser.cc"
+#line 2443 "dhcp4_parser.cc"
break;
case 323: // $@51: %empty
-#line 1332 "dhcp4_parser.yy"
+#line 1342 "dhcp4_parser.yy"
{
ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
}
-#line 2445 "dhcp4_parser.cc"
+#line 2455 "dhcp4_parser.cc"
break;
case 324: // host_reservation_identifiers: "host-reservation-identifiers" $@51 ":" "[" host_reservation_identifiers_list "]"
-#line 1338 "dhcp4_parser.yy"
+#line 1348 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2454 "dhcp4_parser.cc"
+#line 2464 "dhcp4_parser.cc"
break;
case 327: // host_reservation_identifiers_list: host_reservation_identifiers_list ","
-#line 1345 "dhcp4_parser.yy"
+#line 1355 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2462 "dhcp4_parser.cc"
+#line 2472 "dhcp4_parser.cc"
break;
case 333: // duid_id: "duid"
-#line 1357 "dhcp4_parser.yy"
+#line 1367 "dhcp4_parser.yy"
{
ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 2471 "dhcp4_parser.cc"
+#line 2481 "dhcp4_parser.cc"
break;
case 334: // hw_address_id: "hw-address"
-#line 1362 "dhcp4_parser.yy"
+#line 1372 "dhcp4_parser.yy"
{
ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(hwaddr);
}
-#line 2480 "dhcp4_parser.cc"
+#line 2490 "dhcp4_parser.cc"
break;
case 335: // circuit_id: "circuit-id"
-#line 1367 "dhcp4_parser.yy"
+#line 1377 "dhcp4_parser.yy"
{
ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(circuit);
}
-#line 2489 "dhcp4_parser.cc"
+#line 2499 "dhcp4_parser.cc"
break;
case 336: // client_id: "client-id"
-#line 1372 "dhcp4_parser.yy"
+#line 1382 "dhcp4_parser.yy"
{
ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(client);
}
-#line 2498 "dhcp4_parser.cc"
+#line 2508 "dhcp4_parser.cc"
break;
case 337: // flex_id: "flex-id"
-#line 1377 "dhcp4_parser.yy"
+#line 1387 "dhcp4_parser.yy"
{
ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(flex_id);
}
-#line 2507 "dhcp4_parser.cc"
+#line 2517 "dhcp4_parser.cc"
break;
case 338: // $@52: %empty
-#line 1384 "dhcp4_parser.yy"
+#line 1394 "dhcp4_parser.yy"
{
ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location));
ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(mt);
ctx.enter(ctx.DHCP_MULTI_THREADING);
}
-#line 2519 "dhcp4_parser.cc"
+#line 2529 "dhcp4_parser.cc"
break;
case 339: // dhcp_multi_threading: "multi-threading" $@52 ":" "{" multi_threading_params "}"
-#line 1390 "dhcp4_parser.yy"
+#line 1400 "dhcp4_parser.yy"
{
// The enable parameter is required.
ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2530 "dhcp4_parser.cc"
+#line 2540 "dhcp4_parser.cc"
break;
case 342: // multi_threading_params: multi_threading_params ","
-#line 1399 "dhcp4_parser.yy"
+#line 1409 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2538 "dhcp4_parser.cc"
+#line 2548 "dhcp4_parser.cc"
break;
case 349: // enable_multi_threading: "enable-multi-threading" ":" "boolean"
-#line 1412 "dhcp4_parser.yy"
+#line 1422 "dhcp4_parser.yy"
{
ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-multi-threading", b);
}
-#line 2548 "dhcp4_parser.cc"
+#line 2558 "dhcp4_parser.cc"
break;
case 350: // thread_pool_size: "thread-pool-size" ":" "integer"
-#line 1418 "dhcp4_parser.yy"
+#line 1428 "dhcp4_parser.yy"
{
ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location));
ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("thread-pool-size", prf);
}
-#line 2558 "dhcp4_parser.cc"
+#line 2568 "dhcp4_parser.cc"
break;
case 351: // packet_queue_size: "packet-queue-size" ":" "integer"
-#line 1424 "dhcp4_parser.yy"
+#line 1434 "dhcp4_parser.yy"
{
ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location));
ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("packet-queue-size", prf);
}
-#line 2568 "dhcp4_parser.cc"
+#line 2578 "dhcp4_parser.cc"
break;
case 352: // $@53: %empty
-#line 1430 "dhcp4_parser.yy"
+#line 1440 "dhcp4_parser.yy"
{
ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 2580 "dhcp4_parser.cc"
+#line 2590 "dhcp4_parser.cc"
break;
case 353: // hooks_libraries: "hooks-libraries" $@53 ":" "[" hooks_libraries_list "]"
-#line 1436 "dhcp4_parser.yy"
+#line 1446 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2589 "dhcp4_parser.cc"
+#line 2599 "dhcp4_parser.cc"
break;
case 358: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list ","
-#line 1447 "dhcp4_parser.yy"
+#line 1457 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2597 "dhcp4_parser.cc"
+#line 2607 "dhcp4_parser.cc"
break;
case 359: // $@54: %empty
-#line 1452 "dhcp4_parser.yy"
+#line 1462 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2607 "dhcp4_parser.cc"
+#line 2617 "dhcp4_parser.cc"
break;
case 360: // hooks_library: "{" $@54 hooks_params "}"
-#line 1456 "dhcp4_parser.yy"
+#line 1466 "dhcp4_parser.yy"
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2617 "dhcp4_parser.cc"
+#line 2627 "dhcp4_parser.cc"
break;
case 361: // $@55: %empty
-#line 1462 "dhcp4_parser.yy"
+#line 1472 "dhcp4_parser.yy"
{
// Parse the hooks-libraries list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2627 "dhcp4_parser.cc"
+#line 2637 "dhcp4_parser.cc"
break;
case 362: // sub_hooks_library: "{" $@55 hooks_params "}"
-#line 1466 "dhcp4_parser.yy"
+#line 1476 "dhcp4_parser.yy"
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2637 "dhcp4_parser.cc"
+#line 2647 "dhcp4_parser.cc"
break;
case 365: // hooks_params: hooks_params ","
-#line 1474 "dhcp4_parser.yy"
+#line 1484 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2645 "dhcp4_parser.cc"
+#line 2655 "dhcp4_parser.cc"
break;
case 369: // $@56: %empty
-#line 1484 "dhcp4_parser.yy"
+#line 1494 "dhcp4_parser.yy"
{
ctx.unique("library", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2654 "dhcp4_parser.cc"
+#line 2664 "dhcp4_parser.cc"
break;
case 370: // library: "library" $@56 ":" "constant string"
-#line 1487 "dhcp4_parser.yy"
+#line 1497 "dhcp4_parser.yy"
{
ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 2664 "dhcp4_parser.cc"
+#line 2674 "dhcp4_parser.cc"
break;
case 371: // $@57: %empty
-#line 1493 "dhcp4_parser.yy"
+#line 1503 "dhcp4_parser.yy"
{
ctx.unique("parameters", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2673 "dhcp4_parser.cc"
+#line 2683 "dhcp4_parser.cc"
break;
case 372: // parameters: "parameters" $@57 ":" map_value
-#line 1496 "dhcp4_parser.yy"
+#line 1506 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 2682 "dhcp4_parser.cc"
+#line 2692 "dhcp4_parser.cc"
break;
case 373: // $@58: %empty
-#line 1502 "dhcp4_parser.yy"
+#line 1512 "dhcp4_parser.yy"
{
ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
}
-#line 2694 "dhcp4_parser.cc"
+#line 2704 "dhcp4_parser.cc"
break;
case 374: // expired_leases_processing: "expired-leases-processing" $@58 ":" "{" expired_leases_params "}"
-#line 1508 "dhcp4_parser.yy"
+#line 1518 "dhcp4_parser.yy"
{
// No expired lease parameter is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2704 "dhcp4_parser.cc"
+#line 2714 "dhcp4_parser.cc"
break;
case 377: // expired_leases_params: expired_leases_params ","
-#line 1516 "dhcp4_parser.yy"
+#line 1526 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2712 "dhcp4_parser.cc"
+#line 2722 "dhcp4_parser.cc"
break;
case 384: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer"
-#line 1529 "dhcp4_parser.yy"
+#line 1539 "dhcp4_parser.yy"
{
ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reclaim-timer-wait-time", value);
}
-#line 2722 "dhcp4_parser.cc"
+#line 2732 "dhcp4_parser.cc"
break;
case 385: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer"
-#line 1535 "dhcp4_parser.yy"
+#line 1545 "dhcp4_parser.yy"
{
ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
}
-#line 2732 "dhcp4_parser.cc"
+#line 2742 "dhcp4_parser.cc"
break;
case 386: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer"
-#line 1541 "dhcp4_parser.yy"
+#line 1551 "dhcp4_parser.yy"
{
ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hold-reclaimed-time", value);
}
-#line 2742 "dhcp4_parser.cc"
+#line 2752 "dhcp4_parser.cc"
break;
case 387: // max_reclaim_leases: "max-reclaim-leases" ":" "integer"
-#line 1547 "dhcp4_parser.yy"
+#line 1557 "dhcp4_parser.yy"
{
ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reclaim-leases", value);
}
-#line 2752 "dhcp4_parser.cc"
+#line 2762 "dhcp4_parser.cc"
break;
case 388: // max_reclaim_time: "max-reclaim-time" ":" "integer"
-#line 1553 "dhcp4_parser.yy"
+#line 1563 "dhcp4_parser.yy"
{
ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reclaim-time", value);
}
-#line 2762 "dhcp4_parser.cc"
+#line 2772 "dhcp4_parser.cc"
break;
case 389: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer"
-#line 1559 "dhcp4_parser.yy"
+#line 1569 "dhcp4_parser.yy"
{
ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
}
-#line 2772 "dhcp4_parser.cc"
+#line 2782 "dhcp4_parser.cc"
break;
case 390: // $@59: %empty
-#line 1568 "dhcp4_parser.yy"
+#line 1578 "dhcp4_parser.yy"
{
ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.SUBNET4);
}
-#line 2784 "dhcp4_parser.cc"
+#line 2794 "dhcp4_parser.cc"
break;
case 391: // subnet4_list: "subnet4" $@59 ":" "[" subnet4_list_content "]"
-#line 1574 "dhcp4_parser.yy"
+#line 1584 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2793 "dhcp4_parser.cc"
+#line 2803 "dhcp4_parser.cc"
break;
case 396: // not_empty_subnet4_list: not_empty_subnet4_list ","
-#line 1588 "dhcp4_parser.yy"
+#line 1598 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2801 "dhcp4_parser.cc"
+#line 2811 "dhcp4_parser.cc"
break;
case 397: // $@60: %empty
-#line 1597 "dhcp4_parser.yy"
+#line 1607 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2811 "dhcp4_parser.cc"
+#line 2821 "dhcp4_parser.cc"
break;
case 398: // subnet4: "{" $@60 subnet4_params "}"
-#line 1601 "dhcp4_parser.yy"
+#line 1611 "dhcp4_parser.yy"
{
// Once we reached this place, the subnet parsing is now complete.
// If we want to, we can implement default values here.
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2837 "dhcp4_parser.cc"
+#line 2847 "dhcp4_parser.cc"
break;
case 399: // $@61: %empty
-#line 1623 "dhcp4_parser.yy"
+#line 1633 "dhcp4_parser.yy"
{
// Parse the subnet4 list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2847 "dhcp4_parser.cc"
+#line 2857 "dhcp4_parser.cc"
break;
case 400: // sub_subnet4: "{" $@61 subnet4_params "}"
-#line 1627 "dhcp4_parser.yy"
+#line 1637 "dhcp4_parser.yy"
{
// The subnet subnet4 parameter is required
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2857 "dhcp4_parser.cc"
+#line 2867 "dhcp4_parser.cc"
break;
case 403: // subnet4_params: subnet4_params ","
-#line 1636 "dhcp4_parser.yy"
+#line 1646 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2865 "dhcp4_parser.cc"
+#line 2875 "dhcp4_parser.cc"
break;
case 457: // $@62: %empty
-#line 1697 "dhcp4_parser.yy"
+#line 1707 "dhcp4_parser.yy"
{
ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2874 "dhcp4_parser.cc"
+#line 2884 "dhcp4_parser.cc"
break;
case 458: // subnet: "subnet" $@62 ":" "constant string"
-#line 1700 "dhcp4_parser.yy"
+#line 1710 "dhcp4_parser.yy"
{
ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet", subnet);
ctx.leave();
}
-#line 2884 "dhcp4_parser.cc"
+#line 2894 "dhcp4_parser.cc"
break;
case 459: // $@63: %empty
-#line 1706 "dhcp4_parser.yy"
+#line 1716 "dhcp4_parser.yy"
{
ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2893 "dhcp4_parser.cc"
+#line 2903 "dhcp4_parser.cc"
break;
case 460: // subnet_4o6_interface: "4o6-interface" $@63 ":" "constant string"
-#line 1709 "dhcp4_parser.yy"
+#line 1719 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-interface", iface);
ctx.leave();
}
-#line 2903 "dhcp4_parser.cc"
+#line 2913 "dhcp4_parser.cc"
break;
case 461: // $@64: %empty
-#line 1715 "dhcp4_parser.yy"
+#line 1725 "dhcp4_parser.yy"
{
ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2912 "dhcp4_parser.cc"
+#line 2922 "dhcp4_parser.cc"
break;
case 462: // subnet_4o6_interface_id: "4o6-interface-id" $@64 ":" "constant string"
-#line 1718 "dhcp4_parser.yy"
+#line 1728 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-interface-id", iface);
ctx.leave();
}
-#line 2922 "dhcp4_parser.cc"
+#line 2932 "dhcp4_parser.cc"
break;
case 463: // $@65: %empty
-#line 1724 "dhcp4_parser.yy"
+#line 1734 "dhcp4_parser.yy"
{
ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2931 "dhcp4_parser.cc"
+#line 2941 "dhcp4_parser.cc"
break;
case 464: // subnet_4o6_subnet: "4o6-subnet" $@65 ":" "constant string"
-#line 1727 "dhcp4_parser.yy"
+#line 1737 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-subnet", iface);
ctx.leave();
}
-#line 2941 "dhcp4_parser.cc"
+#line 2951 "dhcp4_parser.cc"
break;
case 465: // $@66: %empty
-#line 1733 "dhcp4_parser.yy"
+#line 1743 "dhcp4_parser.yy"
{
ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2950 "dhcp4_parser.cc"
+#line 2960 "dhcp4_parser.cc"
break;
case 466: // interface: "interface" $@66 ":" "constant string"
-#line 1736 "dhcp4_parser.yy"
+#line 1746 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface", iface);
ctx.leave();
}
-#line 2960 "dhcp4_parser.cc"
+#line 2970 "dhcp4_parser.cc"
break;
case 467: // $@67: %empty
-#line 1742 "dhcp4_parser.yy"
+#line 1752 "dhcp4_parser.yy"
{
ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2969 "dhcp4_parser.cc"
+#line 2979 "dhcp4_parser.cc"
break;
case 468: // client_class: "client-class" $@67 ":" "constant string"
-#line 1745 "dhcp4_parser.yy"
+#line 1755 "dhcp4_parser.yy"
{
ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-class", cls);
ctx.leave();
}
-#line 2979 "dhcp4_parser.cc"
+#line 2989 "dhcp4_parser.cc"
break;
case 469: // $@68: %empty
-#line 1752 "dhcp4_parser.yy"
+#line 1762 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2991 "dhcp4_parser.cc"
+#line 3001 "dhcp4_parser.cc"
break;
case 470: // network_client_classes: "client-classes" $@68 ":" list_strings
-#line 1758 "dhcp4_parser.yy"
+#line 1768 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3000 "dhcp4_parser.cc"
+#line 3010 "dhcp4_parser.cc"
break;
case 471: // $@69: %empty
-#line 1764 "dhcp4_parser.yy"
+#line 1774 "dhcp4_parser.yy"
{
ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3012 "dhcp4_parser.cc"
+#line 3022 "dhcp4_parser.cc"
break;
case 472: // require_client_classes: "require-client-classes" $@69 ":" list_strings
-#line 1770 "dhcp4_parser.yy"
+#line 1780 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3021 "dhcp4_parser.cc"
+#line 3031 "dhcp4_parser.cc"
break;
case 473: // $@70: %empty
-#line 1775 "dhcp4_parser.yy"
+#line 1785 "dhcp4_parser.yy"
{
ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3033 "dhcp4_parser.cc"
+#line 3043 "dhcp4_parser.cc"
break;
case 474: // evaluate_additional_classes: "evaluate-additional-classes" $@70 ":" list_strings
-#line 1781 "dhcp4_parser.yy"
+#line 1791 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3042 "dhcp4_parser.cc"
+#line 3052 "dhcp4_parser.cc"
break;
case 475: // reservations_global: "reservations-global" ":" "boolean"
-#line 1786 "dhcp4_parser.yy"
+#line 1796 "dhcp4_parser.yy"
{
ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-global", b);
}
-#line 3052 "dhcp4_parser.cc"
+#line 3062 "dhcp4_parser.cc"
break;
case 476: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
-#line 1792 "dhcp4_parser.yy"
+#line 1802 "dhcp4_parser.yy"
{
ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-in-subnet", b);
}
-#line 3062 "dhcp4_parser.cc"
+#line 3072 "dhcp4_parser.cc"
break;
case 477: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
-#line 1798 "dhcp4_parser.yy"
+#line 1808 "dhcp4_parser.yy"
{
ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-out-of-pool", b);
}
-#line 3072 "dhcp4_parser.cc"
+#line 3082 "dhcp4_parser.cc"
break;
case 478: // id: "id" ":" "integer"
-#line 1804 "dhcp4_parser.yy"
+#line 1814 "dhcp4_parser.yy"
{
ctx.unique("id", ctx.loc2pos(yystack_[2].location));
ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("id", id);
}
-#line 3082 "dhcp4_parser.cc"
+#line 3092 "dhcp4_parser.cc"
break;
case 479: // $@71: %empty
-#line 1812 "dhcp4_parser.yy"
+#line 1822 "dhcp4_parser.yy"
{
ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.SHARED_NETWORK);
}
-#line 3094 "dhcp4_parser.cc"
+#line 3104 "dhcp4_parser.cc"
break;
case 480: // shared_networks: "shared-networks" $@71 ":" "[" shared_networks_content "]"
-#line 1818 "dhcp4_parser.yy"
+#line 1828 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3103 "dhcp4_parser.cc"
+#line 3113 "dhcp4_parser.cc"
break;
case 485: // shared_networks_list: shared_networks_list ","
-#line 1831 "dhcp4_parser.yy"
+#line 1841 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3111 "dhcp4_parser.cc"
+#line 3121 "dhcp4_parser.cc"
break;
case 486: // $@72: %empty
-#line 1836 "dhcp4_parser.yy"
+#line 1846 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3121 "dhcp4_parser.cc"
+#line 3131 "dhcp4_parser.cc"
break;
case 487: // shared_network: "{" $@72 shared_network_params "}"
-#line 1840 "dhcp4_parser.yy"
+#line 1850 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 3129 "dhcp4_parser.cc"
+#line 3139 "dhcp4_parser.cc"
break;
case 490: // shared_network_params: shared_network_params ","
-#line 1846 "dhcp4_parser.yy"
+#line 1856 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3137 "dhcp4_parser.cc"
+#line 3147 "dhcp4_parser.cc"
break;
case 539: // $@73: %empty
-#line 1905 "dhcp4_parser.yy"
+#line 1915 "dhcp4_parser.yy"
{
ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DEF);
}
-#line 3149 "dhcp4_parser.cc"
+#line 3159 "dhcp4_parser.cc"
break;
case 540: // option_def_list: "option-def" $@73 ":" "[" option_def_list_content "]"
-#line 1911 "dhcp4_parser.yy"
+#line 1921 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3158 "dhcp4_parser.cc"
+#line 3168 "dhcp4_parser.cc"
break;
case 541: // $@74: %empty
-#line 1919 "dhcp4_parser.yy"
+#line 1929 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3167 "dhcp4_parser.cc"
+#line 3177 "dhcp4_parser.cc"
break;
case 542: // sub_option_def_list: "{" $@74 option_def_list "}"
-#line 1922 "dhcp4_parser.yy"
+#line 1932 "dhcp4_parser.yy"
{
// parsing completed
}
-#line 3175 "dhcp4_parser.cc"
+#line 3185 "dhcp4_parser.cc"
break;
case 547: // not_empty_option_def_list: not_empty_option_def_list ","
-#line 1934 "dhcp4_parser.yy"
+#line 1944 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3183 "dhcp4_parser.cc"
+#line 3193 "dhcp4_parser.cc"
break;
case 548: // $@75: %empty
-#line 1941 "dhcp4_parser.yy"
+#line 1951 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3193 "dhcp4_parser.cc"
+#line 3203 "dhcp4_parser.cc"
break;
case 549: // option_def_entry: "{" $@75 option_def_params "}"
-#line 1945 "dhcp4_parser.yy"
+#line 1955 "dhcp4_parser.yy"
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 3205 "dhcp4_parser.cc"
+#line 3215 "dhcp4_parser.cc"
break;
case 550: // $@76: %empty
-#line 1956 "dhcp4_parser.yy"
+#line 1966 "dhcp4_parser.yy"
{
// Parse the option-def list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3215 "dhcp4_parser.cc"
+#line 3225 "dhcp4_parser.cc"
break;
case 551: // sub_option_def: "{" $@76 option_def_params "}"
-#line 1960 "dhcp4_parser.yy"
+#line 1970 "dhcp4_parser.yy"
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3227 "dhcp4_parser.cc"
+#line 3237 "dhcp4_parser.cc"
break;
case 556: // not_empty_option_def_params: not_empty_option_def_params ","
-#line 1976 "dhcp4_parser.yy"
+#line 1986 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3235 "dhcp4_parser.cc"
+#line 3245 "dhcp4_parser.cc"
break;
case 568: // code: "code" ":" "integer"
-#line 1995 "dhcp4_parser.yy"
+#line 2005 "dhcp4_parser.yy"
{
ctx.unique("code", ctx.loc2pos(yystack_[2].location));
ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("code", code);
}
-#line 3245 "dhcp4_parser.cc"
+#line 3255 "dhcp4_parser.cc"
break;
case 570: // $@77: %empty
-#line 2003 "dhcp4_parser.yy"
+#line 2013 "dhcp4_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3254 "dhcp4_parser.cc"
+#line 3264 "dhcp4_parser.cc"
break;
case 571: // option_def_type: "type" $@77 ":" "constant string"
-#line 2006 "dhcp4_parser.yy"
+#line 2016 "dhcp4_parser.yy"
{
ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("type", prf);
ctx.leave();
}
-#line 3264 "dhcp4_parser.cc"
+#line 3274 "dhcp4_parser.cc"
break;
case 572: // $@78: %empty
-#line 2012 "dhcp4_parser.yy"
+#line 2022 "dhcp4_parser.yy"
{
ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3273 "dhcp4_parser.cc"
+#line 3283 "dhcp4_parser.cc"
break;
case 573: // option_def_record_types: "record-types" $@78 ":" "constant string"
-#line 2015 "dhcp4_parser.yy"
+#line 2025 "dhcp4_parser.yy"
{
ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("record-types", rtypes);
ctx.leave();
}
-#line 3283 "dhcp4_parser.cc"
+#line 3293 "dhcp4_parser.cc"
break;
case 574: // $@79: %empty
-#line 2021 "dhcp4_parser.yy"
+#line 2031 "dhcp4_parser.yy"
{
ctx.unique("space", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3292 "dhcp4_parser.cc"
+#line 3302 "dhcp4_parser.cc"
break;
case 575: // space: "space" $@79 ":" "constant string"
-#line 2024 "dhcp4_parser.yy"
+#line 2034 "dhcp4_parser.yy"
{
ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("space", space);
ctx.leave();
}
-#line 3302 "dhcp4_parser.cc"
+#line 3312 "dhcp4_parser.cc"
break;
case 577: // $@80: %empty
-#line 2032 "dhcp4_parser.yy"
+#line 2042 "dhcp4_parser.yy"
{
ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3311 "dhcp4_parser.cc"
+#line 3321 "dhcp4_parser.cc"
break;
case 578: // option_def_encapsulate: "encapsulate" $@80 ":" "constant string"
-#line 2035 "dhcp4_parser.yy"
+#line 2045 "dhcp4_parser.yy"
{
ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("encapsulate", encap);
ctx.leave();
}
-#line 3321 "dhcp4_parser.cc"
+#line 3331 "dhcp4_parser.cc"
break;
case 579: // option_def_array: "array" ":" "boolean"
-#line 2041 "dhcp4_parser.yy"
+#line 2051 "dhcp4_parser.yy"
{
ctx.unique("array", ctx.loc2pos(yystack_[2].location));
ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("array", array);
}
-#line 3331 "dhcp4_parser.cc"
+#line 3341 "dhcp4_parser.cc"
break;
case 580: // $@81: %empty
-#line 2051 "dhcp4_parser.yy"
+#line 2061 "dhcp4_parser.yy"
{
ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DATA);
}
-#line 3343 "dhcp4_parser.cc"
+#line 3353 "dhcp4_parser.cc"
break;
case 581: // option_data_list: "option-data" $@81 ":" "[" option_data_list_content "]"
-#line 2057 "dhcp4_parser.yy"
+#line 2067 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3352 "dhcp4_parser.cc"
+#line 3362 "dhcp4_parser.cc"
break;
case 586: // not_empty_option_data_list: not_empty_option_data_list ","
-#line 2072 "dhcp4_parser.yy"
+#line 2082 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3360 "dhcp4_parser.cc"
+#line 3370 "dhcp4_parser.cc"
break;
case 587: // $@82: %empty
-#line 2079 "dhcp4_parser.yy"
+#line 2089 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3370 "dhcp4_parser.cc"
+#line 3380 "dhcp4_parser.cc"
break;
case 588: // option_data_entry: "{" $@82 option_data_params "}"
-#line 2083 "dhcp4_parser.yy"
+#line 2093 "dhcp4_parser.yy"
{
/// @todo: the code or name parameters are required.
ctx.stack_.pop_back();
}
-#line 3379 "dhcp4_parser.cc"
+#line 3389 "dhcp4_parser.cc"
break;
case 589: // $@83: %empty
-#line 2091 "dhcp4_parser.yy"
+#line 2101 "dhcp4_parser.yy"
{
// Parse the option-data list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3389 "dhcp4_parser.cc"
+#line 3399 "dhcp4_parser.cc"
break;
case 590: // sub_option_data: "{" $@83 option_data_params "}"
-#line 2095 "dhcp4_parser.yy"
+#line 2105 "dhcp4_parser.yy"
{
/// @todo: the code or name parameters are required.
// parsing completed
}
-#line 3398 "dhcp4_parser.cc"
+#line 3408 "dhcp4_parser.cc"
break;
case 595: // not_empty_option_data_params: not_empty_option_data_params ","
-#line 2111 "dhcp4_parser.yy"
+#line 2121 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3406 "dhcp4_parser.cc"
+#line 3416 "dhcp4_parser.cc"
break;
case 608: // $@84: %empty
-#line 2133 "dhcp4_parser.yy"
+#line 2143 "dhcp4_parser.yy"
{
ctx.unique("data", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3415 "dhcp4_parser.cc"
+#line 3425 "dhcp4_parser.cc"
break;
case 609: // option_data_data: "data" $@84 ":" "constant string"
-#line 2136 "dhcp4_parser.yy"
+#line 2146 "dhcp4_parser.yy"
{
ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data", data);
ctx.leave();
}
-#line 3425 "dhcp4_parser.cc"
+#line 3435 "dhcp4_parser.cc"
break;
case 612: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 2146 "dhcp4_parser.yy"
+#line 2156 "dhcp4_parser.yy"
{
ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("csv-format", csv);
}
-#line 3435 "dhcp4_parser.cc"
+#line 3445 "dhcp4_parser.cc"
break;
case 613: // option_data_always_send: "always-send" ":" "boolean"
-#line 2152 "dhcp4_parser.yy"
+#line 2162 "dhcp4_parser.yy"
{
ctx.unique("always-send", ctx.loc2pos(yystack_[2].location));
ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("always-send", persist);
}
-#line 3445 "dhcp4_parser.cc"
+#line 3455 "dhcp4_parser.cc"
break;
case 614: // option_data_never_send: "never-send" ":" "boolean"
-#line 2158 "dhcp4_parser.yy"
+#line 2168 "dhcp4_parser.yy"
{
ctx.unique("never-send", ctx.loc2pos(yystack_[2].location));
ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("never-send", cancel);
}
-#line 3455 "dhcp4_parser.cc"
+#line 3465 "dhcp4_parser.cc"
break;
case 615: // $@85: %empty
-#line 2164 "dhcp4_parser.yy"
+#line 2174 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3467 "dhcp4_parser.cc"
+#line 3477 "dhcp4_parser.cc"
break;
case 616: // option_data_client_classes: "client-classes" $@85 ":" list_strings
-#line 2170 "dhcp4_parser.yy"
+#line 2180 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3476 "dhcp4_parser.cc"
+#line 3486 "dhcp4_parser.cc"
break;
case 617: // $@86: %empty
-#line 2178 "dhcp4_parser.yy"
+#line 2188 "dhcp4_parser.yy"
{
ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.POOLS);
}
-#line 3488 "dhcp4_parser.cc"
+#line 3498 "dhcp4_parser.cc"
break;
case 618: // pools_list: "pools" $@86 ":" "[" pools_list_content "]"
-#line 2184 "dhcp4_parser.yy"
+#line 2194 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3497 "dhcp4_parser.cc"
+#line 3507 "dhcp4_parser.cc"
break;
case 623: // not_empty_pools_list: not_empty_pools_list ","
-#line 2197 "dhcp4_parser.yy"
+#line 2207 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3505 "dhcp4_parser.cc"
+#line 3515 "dhcp4_parser.cc"
break;
case 624: // $@87: %empty
-#line 2202 "dhcp4_parser.yy"
+#line 2212 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3515 "dhcp4_parser.cc"
+#line 3525 "dhcp4_parser.cc"
break;
case 625: // pool_list_entry: "{" $@87 pool_params "}"
-#line 2206 "dhcp4_parser.yy"
+#line 2216 "dhcp4_parser.yy"
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 3525 "dhcp4_parser.cc"
+#line 3535 "dhcp4_parser.cc"
break;
case 626: // $@88: %empty
-#line 2212 "dhcp4_parser.yy"
+#line 2222 "dhcp4_parser.yy"
{
// Parse the pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3535 "dhcp4_parser.cc"
+#line 3545 "dhcp4_parser.cc"
break;
case 627: // sub_pool4: "{" $@88 pool_params "}"
-#line 2216 "dhcp4_parser.yy"
+#line 2226 "dhcp4_parser.yy"
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3545 "dhcp4_parser.cc"
+#line 3555 "dhcp4_parser.cc"
break;
case 630: // pool_params: pool_params ","
-#line 2224 "dhcp4_parser.yy"
+#line 2234 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3553 "dhcp4_parser.cc"
+#line 3563 "dhcp4_parser.cc"
break;
case 655: // $@89: %empty
-#line 2255 "dhcp4_parser.yy"
+#line 2265 "dhcp4_parser.yy"
{
ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3562 "dhcp4_parser.cc"
+#line 3572 "dhcp4_parser.cc"
break;
case 656: // pool_entry: "pool" $@89 ":" "constant string"
-#line 2258 "dhcp4_parser.yy"
+#line 2268 "dhcp4_parser.yy"
{
ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool", pool);
ctx.leave();
}
-#line 3572 "dhcp4_parser.cc"
+#line 3582 "dhcp4_parser.cc"
break;
case 657: // pool_id: "pool-id" ":" "integer"
-#line 2264 "dhcp4_parser.yy"
+#line 2274 "dhcp4_parser.yy"
{
ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location));
ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool-id", id);
}
-#line 3582 "dhcp4_parser.cc"
+#line 3592 "dhcp4_parser.cc"
break;
case 658: // $@90: %empty
-#line 2270 "dhcp4_parser.yy"
+#line 2280 "dhcp4_parser.yy"
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3590 "dhcp4_parser.cc"
+#line 3600 "dhcp4_parser.cc"
break;
case 659: // user_context: "user-context" $@90 ":" map_value
-#line 2272 "dhcp4_parser.yy"
+#line 2282 "dhcp4_parser.yy"
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
parent->set("user-context", user_context);
ctx.leave();
}
-#line 3617 "dhcp4_parser.cc"
+#line 3627 "dhcp4_parser.cc"
break;
case 660: // $@91: %empty
-#line 2295 "dhcp4_parser.yy"
+#line 2305 "dhcp4_parser.yy"
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3625 "dhcp4_parser.cc"
+#line 3635 "dhcp4_parser.cc"
break;
case 661: // comment: "comment" $@91 ":" "constant string"
-#line 2297 "dhcp4_parser.yy"
+#line 2307 "dhcp4_parser.yy"
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
parent->set("user-context", user_context);
ctx.leave();
}
-#line 3654 "dhcp4_parser.cc"
+#line 3664 "dhcp4_parser.cc"
break;
case 662: // $@92: %empty
-#line 2325 "dhcp4_parser.yy"
+#line 2335 "dhcp4_parser.yy"
{
ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.RESERVATIONS);
}
-#line 3666 "dhcp4_parser.cc"
+#line 3676 "dhcp4_parser.cc"
break;
case 663: // reservations: "reservations" $@92 ":" "[" reservations_list "]"
-#line 2331 "dhcp4_parser.yy"
+#line 2341 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3675 "dhcp4_parser.cc"
+#line 3685 "dhcp4_parser.cc"
break;
case 668: // not_empty_reservations_list: not_empty_reservations_list ","
-#line 2342 "dhcp4_parser.yy"
+#line 2352 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3683 "dhcp4_parser.cc"
+#line 3693 "dhcp4_parser.cc"
break;
case 669: // $@93: %empty
-#line 2347 "dhcp4_parser.yy"
+#line 2357 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3693 "dhcp4_parser.cc"
+#line 3703 "dhcp4_parser.cc"
break;
case 670: // reservation: "{" $@93 reservation_params "}"
-#line 2351 "dhcp4_parser.yy"
+#line 2361 "dhcp4_parser.yy"
{
/// @todo: an identifier parameter is required.
ctx.stack_.pop_back();
}
-#line 3702 "dhcp4_parser.cc"
+#line 3712 "dhcp4_parser.cc"
break;
case 671: // $@94: %empty
-#line 2356 "dhcp4_parser.yy"
+#line 2366 "dhcp4_parser.yy"
{
// Parse the reservations list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3712 "dhcp4_parser.cc"
+#line 3722 "dhcp4_parser.cc"
break;
case 672: // sub_reservation: "{" $@94 reservation_params "}"
-#line 2360 "dhcp4_parser.yy"
+#line 2370 "dhcp4_parser.yy"
{
/// @todo: an identifier parameter is required.
// parsing completed
}
-#line 3721 "dhcp4_parser.cc"
+#line 3731 "dhcp4_parser.cc"
break;
case 677: // not_empty_reservation_params: not_empty_reservation_params ","
-#line 2371 "dhcp4_parser.yy"
+#line 2381 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3729 "dhcp4_parser.cc"
+#line 3739 "dhcp4_parser.cc"
break;
case 693: // $@95: %empty
-#line 2394 "dhcp4_parser.yy"
+#line 2404 "dhcp4_parser.yy"
{
ctx.unique("next-server", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3738 "dhcp4_parser.cc"
+#line 3748 "dhcp4_parser.cc"
break;
case 694: // next_server: "next-server" $@95 ":" "constant string"
-#line 2397 "dhcp4_parser.yy"
+#line 2407 "dhcp4_parser.yy"
{
ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("next-server", next_server);
ctx.leave();
}
-#line 3748 "dhcp4_parser.cc"
+#line 3758 "dhcp4_parser.cc"
break;
case 695: // $@96: %empty
-#line 2403 "dhcp4_parser.yy"
+#line 2413 "dhcp4_parser.yy"
{
ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3757 "dhcp4_parser.cc"
+#line 3767 "dhcp4_parser.cc"
break;
case 696: // server_hostname: "server-hostname" $@96 ":" "constant string"
-#line 2406 "dhcp4_parser.yy"
+#line 2416 "dhcp4_parser.yy"
{
ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-hostname", srv);
ctx.leave();
}
-#line 3767 "dhcp4_parser.cc"
+#line 3777 "dhcp4_parser.cc"
break;
case 697: // $@97: %empty
-#line 2412 "dhcp4_parser.yy"
+#line 2422 "dhcp4_parser.yy"
{
ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3776 "dhcp4_parser.cc"
+#line 3786 "dhcp4_parser.cc"
break;
case 698: // boot_file_name: "boot-file-name" $@97 ":" "constant string"
-#line 2415 "dhcp4_parser.yy"
+#line 2425 "dhcp4_parser.yy"
{
ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("boot-file-name", bootfile);
ctx.leave();
}
-#line 3786 "dhcp4_parser.cc"
+#line 3796 "dhcp4_parser.cc"
break;
case 699: // $@98: %empty
-#line 2421 "dhcp4_parser.yy"
+#line 2431 "dhcp4_parser.yy"
{
ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3795 "dhcp4_parser.cc"
+#line 3805 "dhcp4_parser.cc"
break;
case 700: // ip_address: "ip-address" $@98 ":" "constant string"
-#line 2424 "dhcp4_parser.yy"
+#line 2434 "dhcp4_parser.yy"
{
ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", addr);
ctx.leave();
}
-#line 3805 "dhcp4_parser.cc"
+#line 3815 "dhcp4_parser.cc"
break;
case 701: // $@99: %empty
-#line 2430 "dhcp4_parser.yy"
+#line 2440 "dhcp4_parser.yy"
{
ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3814 "dhcp4_parser.cc"
+#line 3824 "dhcp4_parser.cc"
break;
case 702: // duid: "duid" $@99 ":" "constant string"
-#line 2433 "dhcp4_parser.yy"
+#line 2443 "dhcp4_parser.yy"
{
ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("duid", d);
ctx.leave();
}
-#line 3824 "dhcp4_parser.cc"
+#line 3834 "dhcp4_parser.cc"
break;
case 703: // $@100: %empty
-#line 2439 "dhcp4_parser.yy"
+#line 2449 "dhcp4_parser.yy"
{
ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3833 "dhcp4_parser.cc"
+#line 3843 "dhcp4_parser.cc"
break;
case 704: // hw_address: "hw-address" $@100 ":" "constant string"
-#line 2442 "dhcp4_parser.yy"
+#line 2452 "dhcp4_parser.yy"
{
ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hw-address", hw);
ctx.leave();
}
-#line 3843 "dhcp4_parser.cc"
+#line 3853 "dhcp4_parser.cc"
break;
case 705: // $@101: %empty
-#line 2448 "dhcp4_parser.yy"
+#line 2458 "dhcp4_parser.yy"
{
ctx.unique("client-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3852 "dhcp4_parser.cc"
+#line 3862 "dhcp4_parser.cc"
break;
case 706: // client_id_value: "client-id" $@101 ":" "constant string"
-#line 2451 "dhcp4_parser.yy"
+#line 2461 "dhcp4_parser.yy"
{
ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-id", hw);
ctx.leave();
}
-#line 3862 "dhcp4_parser.cc"
+#line 3872 "dhcp4_parser.cc"
break;
case 707: // $@102: %empty
-#line 2457 "dhcp4_parser.yy"
+#line 2467 "dhcp4_parser.yy"
{
ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3871 "dhcp4_parser.cc"
+#line 3881 "dhcp4_parser.cc"
break;
case 708: // circuit_id_value: "circuit-id" $@102 ":" "constant string"
-#line 2460 "dhcp4_parser.yy"
+#line 2470 "dhcp4_parser.yy"
{
ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("circuit-id", hw);
ctx.leave();
}
-#line 3881 "dhcp4_parser.cc"
+#line 3891 "dhcp4_parser.cc"
break;
case 709: // $@103: %empty
-#line 2466 "dhcp4_parser.yy"
+#line 2476 "dhcp4_parser.yy"
{
ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3890 "dhcp4_parser.cc"
+#line 3900 "dhcp4_parser.cc"
break;
case 710: // flex_id_value: "flex-id" $@103 ":" "constant string"
-#line 2469 "dhcp4_parser.yy"
+#line 2479 "dhcp4_parser.yy"
{
ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flex-id", hw);
ctx.leave();
}
-#line 3900 "dhcp4_parser.cc"
+#line 3910 "dhcp4_parser.cc"
break;
case 711: // $@104: %empty
-#line 2475 "dhcp4_parser.yy"
+#line 2485 "dhcp4_parser.yy"
{
ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3909 "dhcp4_parser.cc"
+#line 3919 "dhcp4_parser.cc"
break;
case 712: // hostname: "hostname" $@104 ":" "constant string"
-#line 2478 "dhcp4_parser.yy"
+#line 2488 "dhcp4_parser.yy"
{
ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname", host);
ctx.leave();
}
-#line 3919 "dhcp4_parser.cc"
+#line 3929 "dhcp4_parser.cc"
break;
case 713: // $@105: %empty
-#line 2484 "dhcp4_parser.yy"
+#line 2494 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3931 "dhcp4_parser.cc"
+#line 3941 "dhcp4_parser.cc"
break;
case 714: // reservation_client_classes: "client-classes" $@105 ":" list_strings
-#line 2490 "dhcp4_parser.yy"
+#line 2500 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3940 "dhcp4_parser.cc"
+#line 3950 "dhcp4_parser.cc"
break;
case 715: // $@106: %empty
-#line 2498 "dhcp4_parser.yy"
+#line 2508 "dhcp4_parser.yy"
{
ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.RELAY);
}
-#line 3952 "dhcp4_parser.cc"
+#line 3962 "dhcp4_parser.cc"
break;
case 716: // relay: "relay" $@106 ":" "{" relay_map "}"
-#line 2504 "dhcp4_parser.yy"
+#line 2514 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3961 "dhcp4_parser.cc"
+#line 3971 "dhcp4_parser.cc"
break;
case 718: // $@107: %empty
-#line 2512 "dhcp4_parser.yy"
+#line 2522 "dhcp4_parser.yy"
{
ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3973 "dhcp4_parser.cc"
+#line 3983 "dhcp4_parser.cc"
break;
case 719: // ip_addresses: "ip-addresses" $@107 ":" list_strings
-#line 2518 "dhcp4_parser.yy"
+#line 2528 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3982 "dhcp4_parser.cc"
+#line 3992 "dhcp4_parser.cc"
break;
case 720: // $@108: %empty
-#line 2526 "dhcp4_parser.yy"
+#line 2536 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENT_CLASSES);
}
-#line 3994 "dhcp4_parser.cc"
+#line 4004 "dhcp4_parser.cc"
break;
case 721: // client_classes: "client-classes" $@108 ":" "[" client_classes_list "]"
-#line 2532 "dhcp4_parser.yy"
+#line 2542 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4003 "dhcp4_parser.cc"
+#line 4013 "dhcp4_parser.cc"
break;
case 724: // client_classes_list: client_classes_list ","
-#line 2539 "dhcp4_parser.yy"
+#line 2549 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4011 "dhcp4_parser.cc"
+#line 4021 "dhcp4_parser.cc"
break;
case 725: // $@109: %empty
-#line 2544 "dhcp4_parser.yy"
+#line 2554 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4021 "dhcp4_parser.cc"
+#line 4031 "dhcp4_parser.cc"
break;
case 726: // client_class_entry: "{" $@109 client_class_params "}"
-#line 2548 "dhcp4_parser.yy"
+#line 2558 "dhcp4_parser.yy"
{
// The name client class parameter is required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 4031 "dhcp4_parser.cc"
+#line 4041 "dhcp4_parser.cc"
break;
case 731: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2560 "dhcp4_parser.yy"
+#line 2570 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4039 "dhcp4_parser.cc"
+#line 4049 "dhcp4_parser.cc"
break;
case 750: // $@110: %empty
-#line 2586 "dhcp4_parser.yy"
+#line 2596 "dhcp4_parser.yy"
{
ctx.unique("test", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4048 "dhcp4_parser.cc"
+#line 4058 "dhcp4_parser.cc"
break;
case 751: // client_class_test: "test" $@110 ":" "constant string"
-#line 2589 "dhcp4_parser.yy"
+#line 2599 "dhcp4_parser.yy"
{
ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("test", test);
ctx.leave();
}
-#line 4058 "dhcp4_parser.cc"
+#line 4068 "dhcp4_parser.cc"
break;
case 752: // $@111: %empty
-#line 2595 "dhcp4_parser.yy"
+#line 2605 "dhcp4_parser.yy"
{
ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4067 "dhcp4_parser.cc"
+#line 4077 "dhcp4_parser.cc"
break;
case 753: // client_class_template_test: "template-test" $@111 ":" "constant string"
-#line 2598 "dhcp4_parser.yy"
+#line 2608 "dhcp4_parser.yy"
{
ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("template-test", template_test);
ctx.leave();
}
-#line 4077 "dhcp4_parser.cc"
+#line 4087 "dhcp4_parser.cc"
break;
case 754: // only_if_required: "only-if-required" ":" "boolean"
-#line 2605 "dhcp4_parser.yy"
+#line 2615 "dhcp4_parser.yy"
{
ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("only-if-required", b);
}
-#line 4087 "dhcp4_parser.cc"
+#line 4097 "dhcp4_parser.cc"
break;
case 755: // only_in_additional_list: "only-in-additional-list" ":" "boolean"
-#line 2611 "dhcp4_parser.yy"
+#line 2621 "dhcp4_parser.yy"
{
ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("only-in-additional-list", b);
}
-#line 4097 "dhcp4_parser.cc"
+#line 4107 "dhcp4_parser.cc"
break;
case 756: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2619 "dhcp4_parser.yy"
+#line 2629 "dhcp4_parser.yy"
{
ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp4o6-port", time);
}
-#line 4107 "dhcp4_parser.cc"
+#line 4117 "dhcp4_parser.cc"
break;
case 757: // $@112: %empty
-#line 2627 "dhcp4_parser.yy"
+#line 2637 "dhcp4_parser.yy"
{
ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location));
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 4120 "dhcp4_parser.cc"
+#line 4130 "dhcp4_parser.cc"
break;
case 758: // control_socket: "control-socket" $@112 ":" "{" control_socket_params "}"
-#line 2634 "dhcp4_parser.yy"
+#line 2644 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4129 "dhcp4_parser.cc"
+#line 4139 "dhcp4_parser.cc"
break;
case 759: // $@113: %empty
-#line 2639 "dhcp4_parser.yy"
+#line 2649 "dhcp4_parser.yy"
{
ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location));
ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
ctx.stack_.push_back(l);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 4142 "dhcp4_parser.cc"
+#line 4152 "dhcp4_parser.cc"
break;
case 760: // control_sockets: "control-sockets" $@113 ":" "[" control_socket_list "]"
-#line 2646 "dhcp4_parser.yy"
+#line 2656 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4151 "dhcp4_parser.cc"
+#line 4161 "dhcp4_parser.cc"
break;
case 765: // not_empty_control_socket_list: not_empty_control_socket_list ","
-#line 2657 "dhcp4_parser.yy"
+#line 2667 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4159 "dhcp4_parser.cc"
+#line 4169 "dhcp4_parser.cc"
break;
case 766: // $@114: %empty
-#line 2662 "dhcp4_parser.yy"
+#line 2672 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4169 "dhcp4_parser.cc"
+#line 4179 "dhcp4_parser.cc"
break;
case 767: // control_socket_entry: "{" $@114 control_socket_params "}"
-#line 2666 "dhcp4_parser.yy"
+#line 2676 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4177 "dhcp4_parser.cc"
+#line 4187 "dhcp4_parser.cc"
break;
case 770: // control_socket_params: control_socket_params ","
-#line 2672 "dhcp4_parser.yy"
+#line 2682 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4185 "dhcp4_parser.cc"
+#line 4195 "dhcp4_parser.cc"
break;
case 784: // $@115: %empty
-#line 2692 "dhcp4_parser.yy"
+#line 2702 "dhcp4_parser.yy"
{
ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.CONTROL_SOCKET_TYPE);
}
-#line 4194 "dhcp4_parser.cc"
+#line 4204 "dhcp4_parser.cc"
break;
case 785: // control_socket_type: "socket-type" $@115 ":" control_socket_type_value
-#line 2695 "dhcp4_parser.yy"
+#line 2705 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4203 "dhcp4_parser.cc"
+#line 4213 "dhcp4_parser.cc"
break;
case 786: // control_socket_type_value: "unix"
-#line 2701 "dhcp4_parser.yy"
+#line 2711 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); }
-#line 4209 "dhcp4_parser.cc"
+#line 4219 "dhcp4_parser.cc"
break;
case 787: // control_socket_type_value: "http"
-#line 2702 "dhcp4_parser.yy"
+#line 2712 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); }
-#line 4215 "dhcp4_parser.cc"
+#line 4225 "dhcp4_parser.cc"
break;
case 788: // control_socket_type_value: "https"
-#line 2703 "dhcp4_parser.yy"
+#line 2713 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); }
-#line 4221 "dhcp4_parser.cc"
+#line 4231 "dhcp4_parser.cc"
break;
case 789: // $@116: %empty
-#line 2706 "dhcp4_parser.yy"
+#line 2716 "dhcp4_parser.yy"
{
ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4231 "dhcp4_parser.cc"
+#line 4241 "dhcp4_parser.cc"
break;
case 790: // control_socket_name: "socket-name" $@116 ":" "constant string"
-#line 2710 "dhcp4_parser.yy"
+#line 2720 "dhcp4_parser.yy"
{
ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 4241 "dhcp4_parser.cc"
+#line 4251 "dhcp4_parser.cc"
break;
case 791: // $@117: %empty
-#line 2716 "dhcp4_parser.yy"
+#line 2726 "dhcp4_parser.yy"
{
ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4251 "dhcp4_parser.cc"
+#line 4261 "dhcp4_parser.cc"
break;
case 792: // control_socket_address: "socket-address" $@117 ":" "constant string"
-#line 2720 "dhcp4_parser.yy"
+#line 2730 "dhcp4_parser.yy"
{
ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-address", address);
ctx.leave();
}
-#line 4261 "dhcp4_parser.cc"
+#line 4271 "dhcp4_parser.cc"
break;
case 793: // control_socket_port: "socket-port" ":" "integer"
-#line 2726 "dhcp4_parser.yy"
+#line 2736 "dhcp4_parser.yy"
{
ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location));
ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-port", port);
}
-#line 4271 "dhcp4_parser.cc"
+#line 4281 "dhcp4_parser.cc"
break;
case 794: // cert_required: "cert-required" ":" "boolean"
-#line 2732 "dhcp4_parser.yy"
+#line 2742 "dhcp4_parser.yy"
{
ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location));
ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cert-required", req);
}
-#line 4281 "dhcp4_parser.cc"
+#line 4291 "dhcp4_parser.cc"
break;
case 795: // $@118: %empty
-#line 2738 "dhcp4_parser.yy"
+#line 2748 "dhcp4_parser.yy"
{
ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HTTP_HEADERS);
}
-#line 4293 "dhcp4_parser.cc"
+#line 4303 "dhcp4_parser.cc"
break;
case 796: // http_headers: "http-headers" $@118 ":" "[" http_header_list "]"
-#line 2744 "dhcp4_parser.yy"
+#line 2754 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4302 "dhcp4_parser.cc"
+#line 4312 "dhcp4_parser.cc"
break;
case 801: // not_empty_http_header_list: not_empty_http_header_list ","
-#line 2755 "dhcp4_parser.yy"
+#line 2765 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4310 "dhcp4_parser.cc"
+#line 4320 "dhcp4_parser.cc"
break;
case 802: // $@119: %empty
-#line 2760 "dhcp4_parser.yy"
+#line 2770 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4320 "dhcp4_parser.cc"
+#line 4330 "dhcp4_parser.cc"
break;
case 803: // http_header: "{" $@119 http_header_params "}"
-#line 2764 "dhcp4_parser.yy"
+#line 2774 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4328 "dhcp4_parser.cc"
+#line 4338 "dhcp4_parser.cc"
break;
case 806: // http_header_params: http_header_params ","
-#line 2770 "dhcp4_parser.yy"
+#line 2780 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4336 "dhcp4_parser.cc"
+#line 4346 "dhcp4_parser.cc"
break;
case 812: // $@120: %empty
-#line 2782 "dhcp4_parser.yy"
+#line 2792 "dhcp4_parser.yy"
{
ctx.unique("value", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4345 "dhcp4_parser.cc"
+#line 4355 "dhcp4_parser.cc"
break;
case 813: // header_value: "value" $@120 ":" "constant string"
-#line 2785 "dhcp4_parser.yy"
+#line 2795 "dhcp4_parser.yy"
{
ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("value", value);
ctx.leave();
}
-#line 4355 "dhcp4_parser.cc"
+#line 4365 "dhcp4_parser.cc"
break;
case 814: // $@121: %empty
-#line 2793 "dhcp4_parser.yy"
+#line 2803 "dhcp4_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4367 "dhcp4_parser.cc"
+#line 4377 "dhcp4_parser.cc"
break;
case 815: // authentication: "authentication" $@121 ":" "{" auth_params "}"
-#line 2799 "dhcp4_parser.yy"
+#line 2809 "dhcp4_parser.yy"
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4378 "dhcp4_parser.cc"
+#line 4388 "dhcp4_parser.cc"
break;
case 818: // auth_params: auth_params ","
-#line 2808 "dhcp4_parser.yy"
+#line 2818 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4386 "dhcp4_parser.cc"
+#line 4396 "dhcp4_parser.cc"
break;
case 826: // $@122: %empty
-#line 2822 "dhcp4_parser.yy"
+#line 2832 "dhcp4_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4395 "dhcp4_parser.cc"
+#line 4405 "dhcp4_parser.cc"
break;
case 827: // auth_type: "type" $@122 ":" auth_type_value
-#line 2825 "dhcp4_parser.yy"
+#line 2835 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4404 "dhcp4_parser.cc"
+#line 4414 "dhcp4_parser.cc"
break;
case 828: // auth_type_value: "basic"
-#line 2830 "dhcp4_parser.yy"
+#line 2840 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4410 "dhcp4_parser.cc"
+#line 4420 "dhcp4_parser.cc"
break;
case 829: // $@123: %empty
-#line 2833 "dhcp4_parser.yy"
+#line 2843 "dhcp4_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4419 "dhcp4_parser.cc"
+#line 4429 "dhcp4_parser.cc"
break;
case 830: // realm: "realm" $@123 ":" "constant string"
-#line 2836 "dhcp4_parser.yy"
+#line 2846 "dhcp4_parser.yy"
{
ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("realm", realm);
ctx.leave();
}
-#line 4429 "dhcp4_parser.cc"
+#line 4439 "dhcp4_parser.cc"
break;
case 831: // $@124: %empty
-#line 2842 "dhcp4_parser.yy"
+#line 2852 "dhcp4_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4438 "dhcp4_parser.cc"
+#line 4448 "dhcp4_parser.cc"
break;
case 832: // directory: "directory" $@124 ":" "constant string"
-#line 2845 "dhcp4_parser.yy"
+#line 2855 "dhcp4_parser.yy"
{
ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("directory", directory);
ctx.leave();
}
-#line 4448 "dhcp4_parser.cc"
+#line 4458 "dhcp4_parser.cc"
break;
case 833: // $@125: %empty
-#line 2851 "dhcp4_parser.yy"
+#line 2861 "dhcp4_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4460 "dhcp4_parser.cc"
+#line 4470 "dhcp4_parser.cc"
break;
case 834: // clients: "clients" $@125 ":" "[" clients_list "]"
-#line 2857 "dhcp4_parser.yy"
+#line 2867 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4469 "dhcp4_parser.cc"
+#line 4479 "dhcp4_parser.cc"
break;
case 839: // not_empty_clients_list: not_empty_clients_list ","
-#line 2868 "dhcp4_parser.yy"
+#line 2878 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4477 "dhcp4_parser.cc"
+#line 4487 "dhcp4_parser.cc"
break;
case 840: // $@126: %empty
-#line 2873 "dhcp4_parser.yy"
+#line 2883 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4487 "dhcp4_parser.cc"
+#line 4497 "dhcp4_parser.cc"
break;
case 841: // basic_auth: "{" $@126 clients_params "}"
-#line 2877 "dhcp4_parser.yy"
+#line 2887 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4495 "dhcp4_parser.cc"
+#line 4505 "dhcp4_parser.cc"
break;
case 844: // clients_params: clients_params ","
-#line 2883 "dhcp4_parser.yy"
+#line 2893 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4503 "dhcp4_parser.cc"
+#line 4513 "dhcp4_parser.cc"
break;
case 852: // $@127: %empty
-#line 2897 "dhcp4_parser.yy"
+#line 2907 "dhcp4_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4512 "dhcp4_parser.cc"
+#line 4522 "dhcp4_parser.cc"
break;
case 853: // user_file: "user-file" $@127 ":" "constant string"
-#line 2900 "dhcp4_parser.yy"
+#line 2910 "dhcp4_parser.yy"
{
ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user-file", user);
ctx.leave();
}
-#line 4522 "dhcp4_parser.cc"
+#line 4532 "dhcp4_parser.cc"
break;
case 854: // $@128: %empty
-#line 2906 "dhcp4_parser.yy"
+#line 2916 "dhcp4_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4531 "dhcp4_parser.cc"
+#line 4541 "dhcp4_parser.cc"
break;
case 855: // password_file: "password-file" $@128 ":" "constant string"
-#line 2909 "dhcp4_parser.yy"
+#line 2919 "dhcp4_parser.yy"
{
ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password-file", password);
ctx.leave();
}
-#line 4541 "dhcp4_parser.cc"
+#line 4551 "dhcp4_parser.cc"
break;
case 856: // $@129: %empty
-#line 2917 "dhcp4_parser.yy"
+#line 2927 "dhcp4_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4553 "dhcp4_parser.cc"
+#line 4563 "dhcp4_parser.cc"
break;
case 857: // dhcp_queue_control: "dhcp-queue-control" $@129 ":" "{" queue_control_params "}"
-#line 2923 "dhcp4_parser.yy"
+#line 2933 "dhcp4_parser.yy"
{
// The enable queue parameter is required.
ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4564 "dhcp4_parser.cc"
+#line 4574 "dhcp4_parser.cc"
break;
case 860: // queue_control_params: queue_control_params ","
-#line 2932 "dhcp4_parser.yy"
+#line 2942 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4572 "dhcp4_parser.cc"
+#line 4582 "dhcp4_parser.cc"
break;
case 867: // enable_queue: "enable-queue" ":" "boolean"
-#line 2945 "dhcp4_parser.yy"
+#line 2955 "dhcp4_parser.yy"
{
ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-queue", b);
}
-#line 4582 "dhcp4_parser.cc"
+#line 4592 "dhcp4_parser.cc"
break;
case 868: // $@130: %empty
-#line 2951 "dhcp4_parser.yy"
+#line 2961 "dhcp4_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4591 "dhcp4_parser.cc"
+#line 4601 "dhcp4_parser.cc"
break;
case 869: // queue_type: "queue-type" $@130 ":" "constant string"
-#line 2954 "dhcp4_parser.yy"
+#line 2964 "dhcp4_parser.yy"
{
ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("queue-type", qt);
ctx.leave();
}
-#line 4601 "dhcp4_parser.cc"
+#line 4611 "dhcp4_parser.cc"
break;
case 870: // capacity: "capacity" ":" "integer"
-#line 2960 "dhcp4_parser.yy"
+#line 2970 "dhcp4_parser.yy"
{
ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("capacity", c);
}
-#line 4611 "dhcp4_parser.cc"
+#line 4621 "dhcp4_parser.cc"
break;
case 871: // $@131: %empty
-#line 2966 "dhcp4_parser.yy"
+#line 2976 "dhcp4_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4620 "dhcp4_parser.cc"
+#line 4630 "dhcp4_parser.cc"
break;
case 872: // arbitrary_map_entry: "constant string" $@131 ":" value
-#line 2969 "dhcp4_parser.yy"
+#line 2979 "dhcp4_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4629 "dhcp4_parser.cc"
+#line 4639 "dhcp4_parser.cc"
break;
case 873: // $@132: %empty
-#line 2976 "dhcp4_parser.yy"
+#line 2986 "dhcp4_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4641 "dhcp4_parser.cc"
+#line 4651 "dhcp4_parser.cc"
break;
case 874: // dhcp_ddns: "dhcp-ddns" $@132 ":" "{" dhcp_ddns_params "}"
-#line 2982 "dhcp4_parser.yy"
+#line 2992 "dhcp4_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4652 "dhcp4_parser.cc"
+#line 4662 "dhcp4_parser.cc"
break;
case 875: // $@133: %empty
-#line 2989 "dhcp4_parser.yy"
+#line 2999 "dhcp4_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4662 "dhcp4_parser.cc"
+#line 4672 "dhcp4_parser.cc"
break;
case 876: // sub_dhcp_ddns: "{" $@133 dhcp_ddns_params "}"
-#line 2993 "dhcp4_parser.yy"
+#line 3003 "dhcp4_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 4672 "dhcp4_parser.cc"
+#line 4682 "dhcp4_parser.cc"
break;
case 879: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 3001 "dhcp4_parser.yy"
+#line 3011 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4680 "dhcp4_parser.cc"
+#line 4690 "dhcp4_parser.cc"
break;
case 891: // enable_updates: "enable-updates" ":" "boolean"
-#line 3019 "dhcp4_parser.yy"
+#line 3029 "dhcp4_parser.yy"
{
ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-updates", b);
}
-#line 4690 "dhcp4_parser.cc"
+#line 4700 "dhcp4_parser.cc"
break;
case 892: // $@134: %empty
-#line 3025 "dhcp4_parser.yy"
+#line 3035 "dhcp4_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4699 "dhcp4_parser.cc"
+#line 4709 "dhcp4_parser.cc"
break;
case 893: // server_ip: "server-ip" $@134 ":" "constant string"
-#line 3028 "dhcp4_parser.yy"
+#line 3038 "dhcp4_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-ip", s);
ctx.leave();
}
-#line 4709 "dhcp4_parser.cc"
+#line 4719 "dhcp4_parser.cc"
break;
case 894: // server_port: "server-port" ":" "integer"
-#line 3034 "dhcp4_parser.yy"
+#line 3044 "dhcp4_parser.yy"
{
ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-port", i);
}
-#line 4719 "dhcp4_parser.cc"
+#line 4729 "dhcp4_parser.cc"
break;
case 895: // $@135: %empty
-#line 3040 "dhcp4_parser.yy"
+#line 3050 "dhcp4_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4728 "dhcp4_parser.cc"
+#line 4738 "dhcp4_parser.cc"
break;
case 896: // sender_ip: "sender-ip" $@135 ":" "constant string"
-#line 3043 "dhcp4_parser.yy"
+#line 3053 "dhcp4_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-ip", s);
ctx.leave();
}
-#line 4738 "dhcp4_parser.cc"
+#line 4748 "dhcp4_parser.cc"
break;
case 897: // sender_port: "sender-port" ":" "integer"
-#line 3049 "dhcp4_parser.yy"
+#line 3059 "dhcp4_parser.yy"
{
ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-port", i);
}
-#line 4748 "dhcp4_parser.cc"
+#line 4758 "dhcp4_parser.cc"
break;
case 898: // max_queue_size: "max-queue-size" ":" "integer"
-#line 3055 "dhcp4_parser.yy"
+#line 3065 "dhcp4_parser.yy"
{
ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-queue-size", i);
}
-#line 4758 "dhcp4_parser.cc"
+#line 4768 "dhcp4_parser.cc"
break;
case 899: // $@136: %empty
-#line 3061 "dhcp4_parser.yy"
+#line 3071 "dhcp4_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4767 "dhcp4_parser.cc"
+#line 4777 "dhcp4_parser.cc"
break;
case 900: // ncr_protocol: "ncr-protocol" $@136 ":" ncr_protocol_value
-#line 3064 "dhcp4_parser.yy"
+#line 3074 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4776 "dhcp4_parser.cc"
+#line 4786 "dhcp4_parser.cc"
break;
case 901: // ncr_protocol_value: "udp"
-#line 3070 "dhcp4_parser.yy"
+#line 3080 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4782 "dhcp4_parser.cc"
+#line 4792 "dhcp4_parser.cc"
break;
case 902: // ncr_protocol_value: "tcp"
-#line 3071 "dhcp4_parser.yy"
+#line 3081 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4788 "dhcp4_parser.cc"
+#line 4798 "dhcp4_parser.cc"
break;
case 903: // $@137: %empty
-#line 3074 "dhcp4_parser.yy"
+#line 3084 "dhcp4_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4797 "dhcp4_parser.cc"
+#line 4807 "dhcp4_parser.cc"
break;
case 904: // ncr_format: "ncr-format" $@137 ":" "JSON"
-#line 3077 "dhcp4_parser.yy"
+#line 3087 "dhcp4_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4807 "dhcp4_parser.cc"
+#line 4817 "dhcp4_parser.cc"
break;
case 905: // $@138: %empty
-#line 3085 "dhcp4_parser.yy"
+#line 3095 "dhcp4_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 4819 "dhcp4_parser.cc"
+#line 4829 "dhcp4_parser.cc"
break;
case 906: // config_control: "config-control" $@138 ":" "{" config_control_params "}"
-#line 3091 "dhcp4_parser.yy"
+#line 3101 "dhcp4_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4829 "dhcp4_parser.cc"
+#line 4839 "dhcp4_parser.cc"
break;
case 907: // $@139: %empty
-#line 3097 "dhcp4_parser.yy"
+#line 3107 "dhcp4_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4839 "dhcp4_parser.cc"
+#line 4849 "dhcp4_parser.cc"
break;
case 908: // sub_config_control: "{" $@139 config_control_params "}"
-#line 3101 "dhcp4_parser.yy"
+#line 3111 "dhcp4_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 4848 "dhcp4_parser.cc"
+#line 4858 "dhcp4_parser.cc"
break;
case 911: // config_control_params: config_control_params ","
-#line 3109 "dhcp4_parser.yy"
+#line 3119 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4856 "dhcp4_parser.cc"
+#line 4866 "dhcp4_parser.cc"
break;
case 914: // $@140: %empty
-#line 3119 "dhcp4_parser.yy"
+#line 3129 "dhcp4_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 4868 "dhcp4_parser.cc"
+#line 4878 "dhcp4_parser.cc"
break;
case 915: // config_databases: "config-databases" $@140 ":" "[" database_list "]"
-#line 3125 "dhcp4_parser.yy"
+#line 3135 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4877 "dhcp4_parser.cc"
+#line 4887 "dhcp4_parser.cc"
break;
case 916: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 3130 "dhcp4_parser.yy"
+#line 3140 "dhcp4_parser.yy"
{
ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-fetch-wait-time", value);
}
-#line 4887 "dhcp4_parser.cc"
+#line 4897 "dhcp4_parser.cc"
break;
case 917: // $@141: %empty
-#line 3138 "dhcp4_parser.yy"
+#line 3148 "dhcp4_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 4899 "dhcp4_parser.cc"
+#line 4909 "dhcp4_parser.cc"
break;
case 918: // loggers: "loggers" $@141 ":" "[" loggers_entries "]"
-#line 3144 "dhcp4_parser.yy"
+#line 3154 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4908 "dhcp4_parser.cc"
+#line 4918 "dhcp4_parser.cc"
break;
case 921: // loggers_entries: loggers_entries ","
-#line 3153 "dhcp4_parser.yy"
+#line 3163 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4916 "dhcp4_parser.cc"
+#line 4926 "dhcp4_parser.cc"
break;
case 922: // $@142: %empty
-#line 3159 "dhcp4_parser.yy"
+#line 3169 "dhcp4_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 4926 "dhcp4_parser.cc"
+#line 4936 "dhcp4_parser.cc"
break;
case 923: // logger_entry: "{" $@142 logger_params "}"
-#line 3163 "dhcp4_parser.yy"
+#line 3173 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4934 "dhcp4_parser.cc"
+#line 4944 "dhcp4_parser.cc"
break;
case 926: // logger_params: logger_params ","
-#line 3169 "dhcp4_parser.yy"
+#line 3179 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4942 "dhcp4_parser.cc"
+#line 4952 "dhcp4_parser.cc"
break;
case 934: // debuglevel: "debuglevel" ":" "integer"
-#line 3183 "dhcp4_parser.yy"
+#line 3193 "dhcp4_parser.yy"
{
ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 4952 "dhcp4_parser.cc"
+#line 4962 "dhcp4_parser.cc"
break;
case 935: // $@143: %empty
-#line 3189 "dhcp4_parser.yy"
+#line 3199 "dhcp4_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4961 "dhcp4_parser.cc"
+#line 4971 "dhcp4_parser.cc"
break;
case 936: // severity: "severity" $@143 ":" "constant string"
-#line 3192 "dhcp4_parser.yy"
+#line 3202 "dhcp4_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 4971 "dhcp4_parser.cc"
+#line 4981 "dhcp4_parser.cc"
break;
case 937: // $@144: %empty
-#line 3198 "dhcp4_parser.yy"
+#line 3208 "dhcp4_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 4983 "dhcp4_parser.cc"
+#line 4993 "dhcp4_parser.cc"
break;
case 938: // output_options_list: "output-options" $@144 ":" "[" output_options_list_content "]"
-#line 3204 "dhcp4_parser.yy"
+#line 3214 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4992 "dhcp4_parser.cc"
+#line 5002 "dhcp4_parser.cc"
break;
case 941: // output_options_list_content: output_options_list_content ","
-#line 3211 "dhcp4_parser.yy"
+#line 3221 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5000 "dhcp4_parser.cc"
+#line 5010 "dhcp4_parser.cc"
break;
case 942: // $@145: %empty
-#line 3216 "dhcp4_parser.yy"
+#line 3226 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 5010 "dhcp4_parser.cc"
+#line 5020 "dhcp4_parser.cc"
break;
case 943: // output_entry: "{" $@145 output_params_list "}"
-#line 3220 "dhcp4_parser.yy"
+#line 3230 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 5018 "dhcp4_parser.cc"
+#line 5028 "dhcp4_parser.cc"
break;
case 946: // output_params_list: output_params_list ","
-#line 3226 "dhcp4_parser.yy"
+#line 3236 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5026 "dhcp4_parser.cc"
+#line 5036 "dhcp4_parser.cc"
break;
case 952: // $@146: %empty
-#line 3238 "dhcp4_parser.yy"
+#line 3248 "dhcp4_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5035 "dhcp4_parser.cc"
+#line 5045 "dhcp4_parser.cc"
break;
case 953: // output: "output" $@146 ":" "constant string"
-#line 3241 "dhcp4_parser.yy"
+#line 3251 "dhcp4_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 5045 "dhcp4_parser.cc"
+#line 5055 "dhcp4_parser.cc"
break;
case 954: // flush: "flush" ":" "boolean"
-#line 3247 "dhcp4_parser.yy"
+#line 3257 "dhcp4_parser.yy"
{
ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 5055 "dhcp4_parser.cc"
+#line 5065 "dhcp4_parser.cc"
break;
case 955: // maxsize: "maxsize" ":" "integer"
-#line 3253 "dhcp4_parser.yy"
+#line 3263 "dhcp4_parser.yy"
{
ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 5065 "dhcp4_parser.cc"
+#line 5075 "dhcp4_parser.cc"
break;
case 956: // maxver: "maxver" ":" "integer"
-#line 3259 "dhcp4_parser.yy"
+#line 3269 "dhcp4_parser.yy"
{
ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 5075 "dhcp4_parser.cc"
+#line 5085 "dhcp4_parser.cc"
break;
case 957: // $@147: %empty
-#line 3265 "dhcp4_parser.yy"
+#line 3275 "dhcp4_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5084 "dhcp4_parser.cc"
+#line 5094 "dhcp4_parser.cc"
break;
case 958: // pattern: "pattern" $@147 ":" "constant string"
-#line 3268 "dhcp4_parser.yy"
+#line 3278 "dhcp4_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pattern", sev);
ctx.leave();
}
-#line 5094 "dhcp4_parser.cc"
+#line 5104 "dhcp4_parser.cc"
break;
case 959: // $@148: %empty
-#line 3274 "dhcp4_parser.yy"
+#line 3284 "dhcp4_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 5106 "dhcp4_parser.cc"
+#line 5116 "dhcp4_parser.cc"
break;
case 960: // compatibility: "compatibility" $@148 ":" "{" compatibility_params "}"
-#line 3280 "dhcp4_parser.yy"
+#line 3290 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5115 "dhcp4_parser.cc"
+#line 5125 "dhcp4_parser.cc"
break;
case 963: // compatibility_params: compatibility_params ","
-#line 3287 "dhcp4_parser.yy"
+#line 3297 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5123 "dhcp4_parser.cc"
+#line 5133 "dhcp4_parser.cc"
break;
case 969: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3299 "dhcp4_parser.yy"
+#line 3309 "dhcp4_parser.yy"
{
ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lenient-option-parsing", b);
}
-#line 5133 "dhcp4_parser.cc"
+#line 5143 "dhcp4_parser.cc"
break;
case 970: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
-#line 3305 "dhcp4_parser.yy"
+#line 3315 "dhcp4_parser.yy"
{
ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ignore-dhcp-server-identifier", b);
}
-#line 5143 "dhcp4_parser.cc"
+#line 5153 "dhcp4_parser.cc"
break;
case 971: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
-#line 3311 "dhcp4_parser.yy"
+#line 3321 "dhcp4_parser.yy"
{
ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ignore-rai-link-selection", b);
}
-#line 5153 "dhcp4_parser.cc"
+#line 5163 "dhcp4_parser.cc"
break;
case 972: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
-#line 3317 "dhcp4_parser.yy"
+#line 3327 "dhcp4_parser.yy"
{
ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("exclude-first-last-24", b);
}
-#line 5163 "dhcp4_parser.cc"
+#line 5173 "dhcp4_parser.cc"
break;
-#line 5167 "dhcp4_parser.cc"
+#line 5177 "dhcp4_parser.cc"
default:
break;
1148, 1151, 1151, 1160, 1160, 1169, 1169, 1178, 1178, 1187,
1193, 1193, 1202, 1208, 1214, 1220, 1226, 1232, 1238, 1244,
1250, 1256, 1256, 1264, 1265, 1266, 1269, 1275, 1281, 1281,
- 1290, 1290, 1299, 1299, 1308, 1308, 1316, 1317, 1318, 1319,
- 1320, 1323, 1323, 1332, 1332, 1343, 1344, 1345, 1350, 1351,
- 1352, 1353, 1354, 1357, 1362, 1367, 1372, 1377, 1384, 1384,
- 1397, 1398, 1399, 1404, 1405, 1406, 1407, 1408, 1409, 1412,
- 1418, 1424, 1430, 1430, 1441, 1442, 1445, 1446, 1447, 1452,
- 1452, 1462, 1462, 1472, 1473, 1474, 1477, 1480, 1481, 1484,
- 1484, 1493, 1493, 1502, 1502, 1514, 1515, 1516, 1521, 1522,
- 1523, 1524, 1525, 1526, 1529, 1535, 1541, 1547, 1553, 1559,
- 1568, 1568, 1582, 1583, 1586, 1587, 1588, 1597, 1597, 1623,
- 1623, 1634, 1635, 1636, 1642, 1643, 1644, 1645, 1646, 1647,
- 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
+ 1290, 1290, 1299, 1299, 1308, 1308, 1316, 1319, 1322, 1325,
+ 1328, 1333, 1333, 1342, 1342, 1353, 1354, 1355, 1360, 1361,
+ 1362, 1363, 1364, 1367, 1372, 1377, 1382, 1387, 1394, 1394,
+ 1407, 1408, 1409, 1414, 1415, 1416, 1417, 1418, 1419, 1422,
+ 1428, 1434, 1440, 1440, 1451, 1452, 1455, 1456, 1457, 1462,
+ 1462, 1472, 1472, 1482, 1483, 1484, 1487, 1490, 1491, 1494,
+ 1494, 1503, 1503, 1512, 1512, 1524, 1525, 1526, 1531, 1532,
+ 1533, 1534, 1535, 1536, 1539, 1545, 1551, 1557, 1563, 1569,
+ 1578, 1578, 1592, 1593, 1596, 1597, 1598, 1607, 1607, 1633,
+ 1633, 1644, 1645, 1646, 1652, 1653, 1654, 1655, 1656, 1657,
1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687,
- 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1697, 1697, 1706,
- 1706, 1715, 1715, 1724, 1724, 1733, 1733, 1742, 1742, 1752,
- 1752, 1764, 1764, 1775, 1775, 1786, 1792, 1798, 1804, 1812,
- 1812, 1824, 1825, 1829, 1830, 1831, 1836, 1836, 1844, 1845,
- 1846, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859,
- 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869,
+ 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697,
+ 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1707, 1707, 1716,
+ 1716, 1725, 1725, 1734, 1734, 1743, 1743, 1752, 1752, 1762,
+ 1762, 1774, 1774, 1785, 1785, 1796, 1802, 1808, 1814, 1822,
+ 1822, 1834, 1835, 1839, 1840, 1841, 1846, 1846, 1854, 1855,
+ 1856, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869,
1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879,
1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889,
- 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1905,
- 1905, 1919, 1919, 1928, 1929, 1932, 1933, 1934, 1941, 1941,
- 1956, 1956, 1970, 1971, 1974, 1975, 1976, 1981, 1982, 1983,
- 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1993, 1995, 2001,
- 2003, 2003, 2012, 2012, 2021, 2021, 2030, 2032, 2032, 2041,
- 2051, 2051, 2064, 2065, 2070, 2071, 2072, 2079, 2079, 2091,
- 2091, 2103, 2104, 2109, 2110, 2111, 2118, 2119, 2120, 2121,
- 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2131, 2133, 2133,
- 2142, 2144, 2146, 2152, 2158, 2164, 2164, 2178, 2178, 2191,
- 2192, 2195, 2196, 2197, 2202, 2202, 2212, 2212, 2222, 2223,
- 2224, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
- 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247,
- 2248, 2249, 2250, 2251, 2252, 2255, 2255, 2264, 2270, 2270,
- 2295, 2295, 2325, 2325, 2336, 2337, 2340, 2341, 2342, 2347,
- 2347, 2356, 2356, 2365, 2366, 2369, 2370, 2371, 2377, 2378,
- 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388,
- 2389, 2390, 2391, 2394, 2394, 2403, 2403, 2412, 2412, 2421,
- 2421, 2430, 2430, 2439, 2439, 2448, 2448, 2457, 2457, 2466,
- 2466, 2475, 2475, 2484, 2484, 2498, 2498, 2509, 2512, 2512,
- 2526, 2526, 2537, 2538, 2539, 2544, 2544, 2554, 2555, 2558,
- 2559, 2560, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572,
- 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2584,
- 2586, 2586, 2595, 2595, 2605, 2611, 2619, 2627, 2627, 2639,
- 2639, 2651, 2652, 2655, 2656, 2657, 2662, 2662, 2670, 2671,
- 2672, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685,
- 2686, 2687, 2688, 2689, 2692, 2692, 2701, 2702, 2703, 2706,
- 2706, 2716, 2716, 2726, 2732, 2738, 2738, 2749, 2750, 2753,
- 2754, 2755, 2760, 2760, 2768, 2769, 2770, 2775, 2776, 2777,
- 2778, 2779, 2782, 2782, 2793, 2793, 2806, 2807, 2808, 2813,
- 2814, 2815, 2816, 2817, 2818, 2819, 2822, 2822, 2830, 2833,
- 2833, 2842, 2842, 2851, 2851, 2862, 2863, 2866, 2867, 2868,
- 2873, 2873, 2881, 2882, 2883, 2888, 2889, 2890, 2891, 2892,
- 2893, 2894, 2897, 2897, 2906, 2906, 2917, 2917, 2930, 2931,
- 2932, 2937, 2938, 2939, 2940, 2941, 2942, 2945, 2951, 2951,
- 2960, 2966, 2966, 2976, 2976, 2989, 2989, 2999, 3000, 3001,
- 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015,
- 3016, 3019, 3025, 3025, 3034, 3040, 3040, 3049, 3055, 3061,
- 3061, 3070, 3071, 3074, 3074, 3085, 3085, 3097, 3097, 3107,
- 3108, 3109, 3115, 3116, 3119, 3119, 3130, 3138, 3138, 3151,
- 3152, 3153, 3159, 3159, 3167, 3168, 3169, 3174, 3175, 3176,
- 3177, 3178, 3179, 3180, 3183, 3189, 3189, 3198, 3198, 3209,
- 3210, 3211, 3216, 3216, 3224, 3225, 3226, 3231, 3232, 3233,
- 3234, 3235, 3238, 3238, 3247, 3253, 3259, 3265, 3265, 3274,
- 3274, 3285, 3286, 3287, 3292, 3293, 3294, 3295, 3296, 3299,
- 3305, 3311, 3317
+ 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
+ 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1915,
+ 1915, 1929, 1929, 1938, 1939, 1942, 1943, 1944, 1951, 1951,
+ 1966, 1966, 1980, 1981, 1984, 1985, 1986, 1991, 1992, 1993,
+ 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2003, 2005, 2011,
+ 2013, 2013, 2022, 2022, 2031, 2031, 2040, 2042, 2042, 2051,
+ 2061, 2061, 2074, 2075, 2080, 2081, 2082, 2089, 2089, 2101,
+ 2101, 2113, 2114, 2119, 2120, 2121, 2128, 2129, 2130, 2131,
+ 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2141, 2143, 2143,
+ 2152, 2154, 2156, 2162, 2168, 2174, 2174, 2188, 2188, 2201,
+ 2202, 2205, 2206, 2207, 2212, 2212, 2222, 2222, 2232, 2233,
+ 2234, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247,
+ 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257,
+ 2258, 2259, 2260, 2261, 2262, 2265, 2265, 2274, 2280, 2280,
+ 2305, 2305, 2335, 2335, 2346, 2347, 2350, 2351, 2352, 2357,
+ 2357, 2366, 2366, 2375, 2376, 2379, 2380, 2381, 2387, 2388,
+ 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398,
+ 2399, 2400, 2401, 2404, 2404, 2413, 2413, 2422, 2422, 2431,
+ 2431, 2440, 2440, 2449, 2449, 2458, 2458, 2467, 2467, 2476,
+ 2476, 2485, 2485, 2494, 2494, 2508, 2508, 2519, 2522, 2522,
+ 2536, 2536, 2547, 2548, 2549, 2554, 2554, 2564, 2565, 2568,
+ 2569, 2570, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
+ 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2594,
+ 2596, 2596, 2605, 2605, 2615, 2621, 2629, 2637, 2637, 2649,
+ 2649, 2661, 2662, 2665, 2666, 2667, 2672, 2672, 2680, 2681,
+ 2682, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695,
+ 2696, 2697, 2698, 2699, 2702, 2702, 2711, 2712, 2713, 2716,
+ 2716, 2726, 2726, 2736, 2742, 2748, 2748, 2759, 2760, 2763,
+ 2764, 2765, 2770, 2770, 2778, 2779, 2780, 2785, 2786, 2787,
+ 2788, 2789, 2792, 2792, 2803, 2803, 2816, 2817, 2818, 2823,
+ 2824, 2825, 2826, 2827, 2828, 2829, 2832, 2832, 2840, 2843,
+ 2843, 2852, 2852, 2861, 2861, 2872, 2873, 2876, 2877, 2878,
+ 2883, 2883, 2891, 2892, 2893, 2898, 2899, 2900, 2901, 2902,
+ 2903, 2904, 2907, 2907, 2916, 2916, 2927, 2927, 2940, 2941,
+ 2942, 2947, 2948, 2949, 2950, 2951, 2952, 2955, 2961, 2961,
+ 2970, 2976, 2976, 2986, 2986, 2999, 2999, 3009, 3010, 3011,
+ 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025,
+ 3026, 3029, 3035, 3035, 3044, 3050, 3050, 3059, 3065, 3071,
+ 3071, 3080, 3081, 3084, 3084, 3095, 3095, 3107, 3107, 3117,
+ 3118, 3119, 3125, 3126, 3129, 3129, 3140, 3148, 3148, 3161,
+ 3162, 3163, 3169, 3169, 3177, 3178, 3179, 3184, 3185, 3186,
+ 3187, 3188, 3189, 3190, 3193, 3199, 3199, 3208, 3208, 3219,
+ 3220, 3221, 3226, 3226, 3234, 3235, 3236, 3241, 3242, 3243,
+ 3244, 3245, 3248, 3248, 3257, 3263, 3269, 3275, 3275, 3284,
+ 3284, 3295, 3296, 3297, 3302, 3303, 3304, 3305, 3306, 3309,
+ 3315, 3321, 3327
};
void
#line 14 "dhcp4_parser.yy"
} } // isc::dhcp
-#line 6992 "dhcp4_parser.cc"
+#line 7002 "dhcp4_parser.cc"
-#line 3323 "dhcp4_parser.yy"
+#line 3333 "dhcp4_parser.yy"
void
case 299: // ssl_mode: "disable"
#line 1240 "dhcp6_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disable", ctx.loc2pos(yystack_[0].location))); }
-#line 2254 "dhcp6_parser.cc"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disable", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2256 "dhcp6_parser.cc"
break;
case 300: // ssl_mode: "prefer"
-#line 1241 "dhcp6_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("prefer", ctx.loc2pos(yystack_[0].location))); }
-#line 2260 "dhcp6_parser.cc"
+#line 1243 "dhcp6_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("prefer", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2264 "dhcp6_parser.cc"
break;
case 301: // ssl_mode: "require"
-#line 1242 "dhcp6_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("require", ctx.loc2pos(yystack_[0].location))); }
-#line 2266 "dhcp6_parser.cc"
+#line 1246 "dhcp6_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("require", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2272 "dhcp6_parser.cc"
break;
case 302: // ssl_mode: "verify-ca"
-#line 1243 "dhcp6_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(yystack_[0].location))); }
-#line 2272 "dhcp6_parser.cc"
+#line 1249 "dhcp6_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-ca", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2280 "dhcp6_parser.cc"
break;
case 303: // ssl_mode: "verify-full"
-#line 1244 "dhcp6_parser.yy"
- { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-full", ctx.loc2pos(yystack_[0].location))); }
-#line 2278 "dhcp6_parser.cc"
+#line 1252 "dhcp6_parser.yy"
+ {
+ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("verify-full", ctx.loc2pos(yystack_[0].location)));
+ }
+#line 2288 "dhcp6_parser.cc"
break;
case 304: // $@48: %empty
-#line 1247 "dhcp6_parser.yy"
+#line 1257 "dhcp6_parser.yy"
{
ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2287 "dhcp6_parser.cc"
+#line 2297 "dhcp6_parser.cc"
break;
case 305: // cipher_list: "cipher-list" $@48 ":" "constant string"
-#line 1250 "dhcp6_parser.yy"
+#line 1260 "dhcp6_parser.yy"
{
ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cipher-list", cl);
ctx.leave();
}
-#line 2297 "dhcp6_parser.cc"
+#line 2307 "dhcp6_parser.cc"
break;
case 306: // $@49: %empty
-#line 1256 "dhcp6_parser.yy"
+#line 1266 "dhcp6_parser.yy"
{
ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.SANITY_CHECKS);
}
-#line 2309 "dhcp6_parser.cc"
+#line 2319 "dhcp6_parser.cc"
break;
case 307: // sanity_checks: "sanity-checks" $@49 ":" "{" sanity_checks_params "}"
-#line 1262 "dhcp6_parser.yy"
+#line 1272 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2318 "dhcp6_parser.cc"
+#line 2328 "dhcp6_parser.cc"
break;
case 310: // sanity_checks_params: sanity_checks_params ","
-#line 1269 "dhcp6_parser.yy"
+#line 1279 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2326 "dhcp6_parser.cc"
+#line 2336 "dhcp6_parser.cc"
break;
case 313: // $@50: %empty
-#line 1278 "dhcp6_parser.yy"
+#line 1288 "dhcp6_parser.yy"
{
ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2335 "dhcp6_parser.cc"
+#line 2345 "dhcp6_parser.cc"
break;
case 314: // lease_checks: "lease-checks" $@50 ":" "constant string"
-#line 1281 "dhcp6_parser.yy"
+#line 1291 "dhcp6_parser.yy"
{
if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
", supported values are: none, warn, fix, fix-del, del");
}
}
-#line 2355 "dhcp6_parser.cc"
+#line 2365 "dhcp6_parser.cc"
break;
case 315: // $@51: %empty
-#line 1297 "dhcp6_parser.yy"
+#line 1307 "dhcp6_parser.yy"
{
ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2364 "dhcp6_parser.cc"
+#line 2374 "dhcp6_parser.cc"
break;
case 316: // extended_info_checks: "extended-info-checks" $@51 ":" "constant string"
-#line 1300 "dhcp6_parser.yy"
+#line 1310 "dhcp6_parser.yy"
{
if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
", supported values are: none, fix, strict, pedantic");
}
}
-#line 2383 "dhcp6_parser.cc"
+#line 2393 "dhcp6_parser.cc"
break;
case 317: // $@52: %empty
-#line 1315 "dhcp6_parser.yy"
+#line 1325 "dhcp6_parser.yy"
{
ctx.unique("mac-sources", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.MAC_SOURCES);
}
-#line 2395 "dhcp6_parser.cc"
+#line 2405 "dhcp6_parser.cc"
break;
case 318: // mac_sources: "mac-sources" $@52 ":" "[" mac_sources_list "]"
-#line 1321 "dhcp6_parser.yy"
+#line 1331 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2404 "dhcp6_parser.cc"
+#line 2414 "dhcp6_parser.cc"
break;
case 321: // mac_sources_list: mac_sources_list ","
-#line 1328 "dhcp6_parser.yy"
+#line 1338 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2412 "dhcp6_parser.cc"
+#line 2422 "dhcp6_parser.cc"
break;
case 324: // duid_id: "duid"
-#line 1337 "dhcp6_parser.yy"
+#line 1347 "dhcp6_parser.yy"
{
ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 2421 "dhcp6_parser.cc"
+#line 2431 "dhcp6_parser.cc"
break;
case 325: // string_id: "constant string"
-#line 1342 "dhcp6_parser.yy"
+#line 1352 "dhcp6_parser.yy"
{
ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 2430 "dhcp6_parser.cc"
+#line 2440 "dhcp6_parser.cc"
break;
case 326: // $@53: %empty
-#line 1347 "dhcp6_parser.yy"
+#line 1357 "dhcp6_parser.yy"
{
ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
}
-#line 2442 "dhcp6_parser.cc"
+#line 2452 "dhcp6_parser.cc"
break;
case 327: // host_reservation_identifiers: "host-reservation-identifiers" $@53 ":" "[" host_reservation_identifiers_list "]"
-#line 1353 "dhcp6_parser.yy"
+#line 1363 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2451 "dhcp6_parser.cc"
+#line 2461 "dhcp6_parser.cc"
break;
case 330: // host_reservation_identifiers_list: host_reservation_identifiers_list ","
-#line 1360 "dhcp6_parser.yy"
+#line 1370 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2459 "dhcp6_parser.cc"
+#line 2469 "dhcp6_parser.cc"
break;
case 334: // hw_address_id: "hw-address"
-#line 1370 "dhcp6_parser.yy"
+#line 1380 "dhcp6_parser.yy"
{
ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(hwaddr);
}
-#line 2468 "dhcp6_parser.cc"
+#line 2478 "dhcp6_parser.cc"
break;
case 335: // flex_id: "flex-id"
-#line 1375 "dhcp6_parser.yy"
+#line 1385 "dhcp6_parser.yy"
{
ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(flex_id);
}
-#line 2477 "dhcp6_parser.cc"
+#line 2487 "dhcp6_parser.cc"
break;
case 336: // $@54: %empty
-#line 1382 "dhcp6_parser.yy"
+#line 1392 "dhcp6_parser.yy"
{
ctx.unique("relay-supplied-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2489 "dhcp6_parser.cc"
+#line 2499 "dhcp6_parser.cc"
break;
case 337: // relay_supplied_options: "relay-supplied-options" $@54 ":" "[" list_content "]"
-#line 1388 "dhcp6_parser.yy"
+#line 1398 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2498 "dhcp6_parser.cc"
+#line 2508 "dhcp6_parser.cc"
break;
case 338: // $@55: %empty
-#line 1395 "dhcp6_parser.yy"
+#line 1405 "dhcp6_parser.yy"
{
ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location));
ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(mt);
ctx.enter(ctx.DHCP_MULTI_THREADING);
}
-#line 2510 "dhcp6_parser.cc"
+#line 2520 "dhcp6_parser.cc"
break;
case 339: // dhcp_multi_threading: "multi-threading" $@55 ":" "{" multi_threading_params "}"
-#line 1401 "dhcp6_parser.yy"
+#line 1411 "dhcp6_parser.yy"
{
// The enable parameter is required.
ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2521 "dhcp6_parser.cc"
+#line 2531 "dhcp6_parser.cc"
break;
case 342: // multi_threading_params: multi_threading_params ","
-#line 1410 "dhcp6_parser.yy"
+#line 1420 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2529 "dhcp6_parser.cc"
+#line 2539 "dhcp6_parser.cc"
break;
case 349: // enable_multi_threading: "enable-multi-threading" ":" "boolean"
-#line 1423 "dhcp6_parser.yy"
+#line 1433 "dhcp6_parser.yy"
{
ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-multi-threading", b);
}
-#line 2539 "dhcp6_parser.cc"
+#line 2549 "dhcp6_parser.cc"
break;
case 350: // thread_pool_size: "thread-pool-size" ":" "integer"
-#line 1429 "dhcp6_parser.yy"
+#line 1439 "dhcp6_parser.yy"
{
ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location));
ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("thread-pool-size", prf);
}
-#line 2549 "dhcp6_parser.cc"
+#line 2559 "dhcp6_parser.cc"
break;
case 351: // packet_queue_size: "packet-queue-size" ":" "integer"
-#line 1435 "dhcp6_parser.yy"
+#line 1445 "dhcp6_parser.yy"
{
ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location));
ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("packet-queue-size", prf);
}
-#line 2559 "dhcp6_parser.cc"
+#line 2569 "dhcp6_parser.cc"
break;
case 352: // $@56: %empty
-#line 1441 "dhcp6_parser.yy"
+#line 1451 "dhcp6_parser.yy"
{
ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 2571 "dhcp6_parser.cc"
+#line 2581 "dhcp6_parser.cc"
break;
case 353: // hooks_libraries: "hooks-libraries" $@56 ":" "[" hooks_libraries_list "]"
-#line 1447 "dhcp6_parser.yy"
+#line 1457 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2580 "dhcp6_parser.cc"
+#line 2590 "dhcp6_parser.cc"
break;
case 358: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list ","
-#line 1458 "dhcp6_parser.yy"
+#line 1468 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2588 "dhcp6_parser.cc"
+#line 2598 "dhcp6_parser.cc"
break;
case 359: // $@57: %empty
-#line 1463 "dhcp6_parser.yy"
+#line 1473 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2598 "dhcp6_parser.cc"
+#line 2608 "dhcp6_parser.cc"
break;
case 360: // hooks_library: "{" $@57 hooks_params "}"
-#line 1467 "dhcp6_parser.yy"
+#line 1477 "dhcp6_parser.yy"
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2608 "dhcp6_parser.cc"
+#line 2618 "dhcp6_parser.cc"
break;
case 361: // $@58: %empty
-#line 1473 "dhcp6_parser.yy"
+#line 1483 "dhcp6_parser.yy"
{
// Parse the hooks-libraries list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2618 "dhcp6_parser.cc"
+#line 2628 "dhcp6_parser.cc"
break;
case 362: // sub_hooks_library: "{" $@58 hooks_params "}"
-#line 1477 "dhcp6_parser.yy"
+#line 1487 "dhcp6_parser.yy"
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2628 "dhcp6_parser.cc"
+#line 2638 "dhcp6_parser.cc"
break;
case 365: // hooks_params: hooks_params ","
-#line 1485 "dhcp6_parser.yy"
+#line 1495 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2636 "dhcp6_parser.cc"
+#line 2646 "dhcp6_parser.cc"
break;
case 369: // $@59: %empty
-#line 1495 "dhcp6_parser.yy"
+#line 1505 "dhcp6_parser.yy"
{
ctx.unique("library", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2645 "dhcp6_parser.cc"
+#line 2655 "dhcp6_parser.cc"
break;
case 370: // library: "library" $@59 ":" "constant string"
-#line 1498 "dhcp6_parser.yy"
+#line 1508 "dhcp6_parser.yy"
{
ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 2655 "dhcp6_parser.cc"
+#line 2665 "dhcp6_parser.cc"
break;
case 371: // $@60: %empty
-#line 1504 "dhcp6_parser.yy"
+#line 1514 "dhcp6_parser.yy"
{
ctx.unique("parameters", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2664 "dhcp6_parser.cc"
+#line 2674 "dhcp6_parser.cc"
break;
case 372: // parameters: "parameters" $@60 ":" map_value
-#line 1507 "dhcp6_parser.yy"
+#line 1517 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 2673 "dhcp6_parser.cc"
+#line 2683 "dhcp6_parser.cc"
break;
case 373: // $@61: %empty
-#line 1513 "dhcp6_parser.yy"
+#line 1523 "dhcp6_parser.yy"
{
ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
}
-#line 2685 "dhcp6_parser.cc"
+#line 2695 "dhcp6_parser.cc"
break;
case 374: // expired_leases_processing: "expired-leases-processing" $@61 ":" "{" expired_leases_params "}"
-#line 1519 "dhcp6_parser.yy"
+#line 1529 "dhcp6_parser.yy"
{
// No expired lease parameter is required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2695 "dhcp6_parser.cc"
+#line 2705 "dhcp6_parser.cc"
break;
case 377: // expired_leases_params: expired_leases_params ","
-#line 1527 "dhcp6_parser.yy"
+#line 1537 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2703 "dhcp6_parser.cc"
+#line 2713 "dhcp6_parser.cc"
break;
case 384: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer"
-#line 1540 "dhcp6_parser.yy"
+#line 1550 "dhcp6_parser.yy"
{
ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reclaim-timer-wait-time", value);
}
-#line 2713 "dhcp6_parser.cc"
+#line 2723 "dhcp6_parser.cc"
break;
case 385: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer"
-#line 1546 "dhcp6_parser.yy"
+#line 1556 "dhcp6_parser.yy"
{
ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
}
-#line 2723 "dhcp6_parser.cc"
+#line 2733 "dhcp6_parser.cc"
break;
case 386: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer"
-#line 1552 "dhcp6_parser.yy"
+#line 1562 "dhcp6_parser.yy"
{
ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hold-reclaimed-time", value);
}
-#line 2733 "dhcp6_parser.cc"
+#line 2743 "dhcp6_parser.cc"
break;
case 387: // max_reclaim_leases: "max-reclaim-leases" ":" "integer"
-#line 1558 "dhcp6_parser.yy"
+#line 1568 "dhcp6_parser.yy"
{
ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reclaim-leases", value);
}
-#line 2743 "dhcp6_parser.cc"
+#line 2753 "dhcp6_parser.cc"
break;
case 388: // max_reclaim_time: "max-reclaim-time" ":" "integer"
-#line 1564 "dhcp6_parser.yy"
+#line 1574 "dhcp6_parser.yy"
{
ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-reclaim-time", value);
}
-#line 2753 "dhcp6_parser.cc"
+#line 2763 "dhcp6_parser.cc"
break;
case 389: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer"
-#line 1570 "dhcp6_parser.yy"
+#line 1580 "dhcp6_parser.yy"
{
ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
}
-#line 2763 "dhcp6_parser.cc"
+#line 2773 "dhcp6_parser.cc"
break;
case 390: // $@62: %empty
-#line 1579 "dhcp6_parser.yy"
+#line 1589 "dhcp6_parser.yy"
{
ctx.unique("subnet6", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.SUBNET6);
}
-#line 2775 "dhcp6_parser.cc"
+#line 2785 "dhcp6_parser.cc"
break;
case 391: // subnet6_list: "subnet6" $@62 ":" "[" subnet6_list_content "]"
-#line 1585 "dhcp6_parser.yy"
+#line 1595 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2784 "dhcp6_parser.cc"
+#line 2794 "dhcp6_parser.cc"
break;
case 396: // not_empty_subnet6_list: not_empty_subnet6_list ","
-#line 1599 "dhcp6_parser.yy"
+#line 1609 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2792 "dhcp6_parser.cc"
+#line 2802 "dhcp6_parser.cc"
break;
case 397: // $@63: %empty
-#line 1608 "dhcp6_parser.yy"
+#line 1618 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2802 "dhcp6_parser.cc"
+#line 2812 "dhcp6_parser.cc"
break;
case 398: // subnet6: "{" $@63 subnet6_params "}"
-#line 1612 "dhcp6_parser.yy"
+#line 1622 "dhcp6_parser.yy"
{
// Once we reached this place, the subnet parsing is now complete.
// If we want to, we can implement default values here.
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2828 "dhcp6_parser.cc"
+#line 2838 "dhcp6_parser.cc"
break;
case 399: // $@64: %empty
-#line 1634 "dhcp6_parser.yy"
+#line 1644 "dhcp6_parser.yy"
{
// Parse the subnet6 list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2838 "dhcp6_parser.cc"
+#line 2848 "dhcp6_parser.cc"
break;
case 400: // sub_subnet6: "{" $@64 subnet6_params "}"
-#line 1638 "dhcp6_parser.yy"
+#line 1648 "dhcp6_parser.yy"
{
// The subnet subnet6 parameter is required
ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2848 "dhcp6_parser.cc"
+#line 2858 "dhcp6_parser.cc"
break;
case 403: // subnet6_params: subnet6_params ","
-#line 1647 "dhcp6_parser.yy"
+#line 1657 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2856 "dhcp6_parser.cc"
+#line 2866 "dhcp6_parser.cc"
break;
case 455: // $@65: %empty
-#line 1706 "dhcp6_parser.yy"
+#line 1716 "dhcp6_parser.yy"
{
ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2865 "dhcp6_parser.cc"
+#line 2875 "dhcp6_parser.cc"
break;
case 456: // subnet: "subnet" $@65 ":" "constant string"
-#line 1709 "dhcp6_parser.yy"
+#line 1719 "dhcp6_parser.yy"
{
ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet", subnet);
ctx.leave();
}
-#line 2875 "dhcp6_parser.cc"
+#line 2885 "dhcp6_parser.cc"
break;
case 457: // $@66: %empty
-#line 1715 "dhcp6_parser.yy"
+#line 1725 "dhcp6_parser.yy"
{
ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2884 "dhcp6_parser.cc"
+#line 2894 "dhcp6_parser.cc"
break;
case 458: // interface: "interface" $@66 ":" "constant string"
-#line 1718 "dhcp6_parser.yy"
+#line 1728 "dhcp6_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface", iface);
ctx.leave();
}
-#line 2894 "dhcp6_parser.cc"
+#line 2904 "dhcp6_parser.cc"
break;
case 459: // $@67: %empty
-#line 1724 "dhcp6_parser.yy"
+#line 1734 "dhcp6_parser.yy"
{
ctx.unique("interface-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2903 "dhcp6_parser.cc"
+#line 2913 "dhcp6_parser.cc"
break;
case 460: // interface_id: "interface-id" $@67 ":" "constant string"
-#line 1727 "dhcp6_parser.yy"
+#line 1737 "dhcp6_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface-id", iface);
ctx.leave();
}
-#line 2913 "dhcp6_parser.cc"
+#line 2923 "dhcp6_parser.cc"
break;
case 461: // $@68: %empty
-#line 1733 "dhcp6_parser.yy"
+#line 1743 "dhcp6_parser.yy"
{
ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2922 "dhcp6_parser.cc"
+#line 2932 "dhcp6_parser.cc"
break;
case 462: // client_class: "client-class" $@68 ":" "constant string"
-#line 1736 "dhcp6_parser.yy"
+#line 1746 "dhcp6_parser.yy"
{
ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-class", cls);
ctx.leave();
}
-#line 2932 "dhcp6_parser.cc"
+#line 2942 "dhcp6_parser.cc"
break;
case 463: // $@69: %empty
-#line 1743 "dhcp6_parser.yy"
+#line 1753 "dhcp6_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2944 "dhcp6_parser.cc"
+#line 2954 "dhcp6_parser.cc"
break;
case 464: // network_client_classes: "client-classes" $@69 ":" list_strings
-#line 1749 "dhcp6_parser.yy"
+#line 1759 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2953 "dhcp6_parser.cc"
+#line 2963 "dhcp6_parser.cc"
break;
case 465: // $@70: %empty
-#line 1755 "dhcp6_parser.yy"
+#line 1765 "dhcp6_parser.yy"
{
ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2965 "dhcp6_parser.cc"
+#line 2975 "dhcp6_parser.cc"
break;
case 466: // require_client_classes: "require-client-classes" $@70 ":" list_strings
-#line 1761 "dhcp6_parser.yy"
+#line 1771 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2974 "dhcp6_parser.cc"
+#line 2984 "dhcp6_parser.cc"
break;
case 467: // $@71: %empty
-#line 1766 "dhcp6_parser.yy"
+#line 1776 "dhcp6_parser.yy"
{
ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2986 "dhcp6_parser.cc"
+#line 2996 "dhcp6_parser.cc"
break;
case 468: // evaluate_additional_classes: "evaluate-additional-classes" $@71 ":" list_strings
-#line 1772 "dhcp6_parser.yy"
+#line 1782 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2995 "dhcp6_parser.cc"
+#line 3005 "dhcp6_parser.cc"
break;
case 469: // reservations_global: "reservations-global" ":" "boolean"
-#line 1777 "dhcp6_parser.yy"
+#line 1787 "dhcp6_parser.yy"
{
ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-global", b);
}
-#line 3005 "dhcp6_parser.cc"
+#line 3015 "dhcp6_parser.cc"
break;
case 470: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
-#line 1783 "dhcp6_parser.yy"
+#line 1793 "dhcp6_parser.yy"
{
ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-in-subnet", b);
}
-#line 3015 "dhcp6_parser.cc"
+#line 3025 "dhcp6_parser.cc"
break;
case 471: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
-#line 1789 "dhcp6_parser.yy"
+#line 1799 "dhcp6_parser.yy"
{
ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-out-of-pool", b);
}
-#line 3025 "dhcp6_parser.cc"
+#line 3035 "dhcp6_parser.cc"
break;
case 472: // id: "id" ":" "integer"
-#line 1795 "dhcp6_parser.yy"
+#line 1805 "dhcp6_parser.yy"
{
ctx.unique("id", ctx.loc2pos(yystack_[2].location));
ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("id", id);
}
-#line 3035 "dhcp6_parser.cc"
+#line 3045 "dhcp6_parser.cc"
break;
case 473: // rapid_commit: "rapid-commit" ":" "boolean"
-#line 1801 "dhcp6_parser.yy"
+#line 1811 "dhcp6_parser.yy"
{
ctx.unique("rapid-commit", ctx.loc2pos(yystack_[2].location));
ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rapid-commit", rc);
}
-#line 3045 "dhcp6_parser.cc"
+#line 3055 "dhcp6_parser.cc"
break;
case 474: // $@72: %empty
-#line 1809 "dhcp6_parser.yy"
+#line 1819 "dhcp6_parser.yy"
{
ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.SHARED_NETWORK);
}
-#line 3057 "dhcp6_parser.cc"
+#line 3067 "dhcp6_parser.cc"
break;
case 475: // shared_networks: "shared-networks" $@72 ":" "[" shared_networks_content "]"
-#line 1815 "dhcp6_parser.yy"
+#line 1825 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3066 "dhcp6_parser.cc"
+#line 3076 "dhcp6_parser.cc"
break;
case 480: // shared_networks_list: shared_networks_list ","
-#line 1828 "dhcp6_parser.yy"
+#line 1838 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3074 "dhcp6_parser.cc"
+#line 3084 "dhcp6_parser.cc"
break;
case 481: // $@73: %empty
-#line 1833 "dhcp6_parser.yy"
+#line 1843 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3084 "dhcp6_parser.cc"
+#line 3094 "dhcp6_parser.cc"
break;
case 482: // shared_network: "{" $@73 shared_network_params "}"
-#line 1837 "dhcp6_parser.yy"
+#line 1847 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 3092 "dhcp6_parser.cc"
+#line 3102 "dhcp6_parser.cc"
break;
case 485: // shared_network_params: shared_network_params ","
-#line 1843 "dhcp6_parser.yy"
+#line 1853 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3100 "dhcp6_parser.cc"
+#line 3110 "dhcp6_parser.cc"
break;
case 534: // $@74: %empty
-#line 1902 "dhcp6_parser.yy"
+#line 1912 "dhcp6_parser.yy"
{
ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DEF);
}
-#line 3112 "dhcp6_parser.cc"
+#line 3122 "dhcp6_parser.cc"
break;
case 535: // option_def_list: "option-def" $@74 ":" "[" option_def_list_content "]"
-#line 1908 "dhcp6_parser.yy"
+#line 1918 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3121 "dhcp6_parser.cc"
+#line 3131 "dhcp6_parser.cc"
break;
case 536: // $@75: %empty
-#line 1916 "dhcp6_parser.yy"
+#line 1926 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3130 "dhcp6_parser.cc"
+#line 3140 "dhcp6_parser.cc"
break;
case 537: // sub_option_def_list: "{" $@75 option_def_list "}"
-#line 1919 "dhcp6_parser.yy"
+#line 1929 "dhcp6_parser.yy"
{
// parsing completed
}
-#line 3138 "dhcp6_parser.cc"
+#line 3148 "dhcp6_parser.cc"
break;
case 542: // not_empty_option_def_list: not_empty_option_def_list ","
-#line 1931 "dhcp6_parser.yy"
+#line 1941 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3146 "dhcp6_parser.cc"
+#line 3156 "dhcp6_parser.cc"
break;
case 543: // $@76: %empty
-#line 1938 "dhcp6_parser.yy"
+#line 1948 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3156 "dhcp6_parser.cc"
+#line 3166 "dhcp6_parser.cc"
break;
case 544: // option_def_entry: "{" $@76 option_def_params "}"
-#line 1942 "dhcp6_parser.yy"
+#line 1952 "dhcp6_parser.yy"
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 3168 "dhcp6_parser.cc"
+#line 3178 "dhcp6_parser.cc"
break;
case 545: // $@77: %empty
-#line 1953 "dhcp6_parser.yy"
+#line 1963 "dhcp6_parser.yy"
{
// Parse the option-def list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3178 "dhcp6_parser.cc"
+#line 3188 "dhcp6_parser.cc"
break;
case 546: // sub_option_def: "{" $@77 option_def_params "}"
-#line 1957 "dhcp6_parser.yy"
+#line 1967 "dhcp6_parser.yy"
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3190 "dhcp6_parser.cc"
+#line 3200 "dhcp6_parser.cc"
break;
case 551: // not_empty_option_def_params: not_empty_option_def_params ","
-#line 1973 "dhcp6_parser.yy"
+#line 1983 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3198 "dhcp6_parser.cc"
+#line 3208 "dhcp6_parser.cc"
break;
case 563: // code: "code" ":" "integer"
-#line 1992 "dhcp6_parser.yy"
+#line 2002 "dhcp6_parser.yy"
{
ctx.unique("code", ctx.loc2pos(yystack_[2].location));
ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("code", code);
}
-#line 3208 "dhcp6_parser.cc"
+#line 3218 "dhcp6_parser.cc"
break;
case 565: // $@78: %empty
-#line 2000 "dhcp6_parser.yy"
+#line 2010 "dhcp6_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3217 "dhcp6_parser.cc"
+#line 3227 "dhcp6_parser.cc"
break;
case 566: // option_def_type: "type" $@78 ":" "constant string"
-#line 2003 "dhcp6_parser.yy"
+#line 2013 "dhcp6_parser.yy"
{
ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("type", prf);
ctx.leave();
}
-#line 3227 "dhcp6_parser.cc"
+#line 3237 "dhcp6_parser.cc"
break;
case 567: // $@79: %empty
-#line 2009 "dhcp6_parser.yy"
+#line 2019 "dhcp6_parser.yy"
{
ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3236 "dhcp6_parser.cc"
+#line 3246 "dhcp6_parser.cc"
break;
case 568: // option_def_record_types: "record-types" $@79 ":" "constant string"
-#line 2012 "dhcp6_parser.yy"
+#line 2022 "dhcp6_parser.yy"
{
ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("record-types", rtypes);
ctx.leave();
}
-#line 3246 "dhcp6_parser.cc"
+#line 3256 "dhcp6_parser.cc"
break;
case 569: // $@80: %empty
-#line 2018 "dhcp6_parser.yy"
+#line 2028 "dhcp6_parser.yy"
{
ctx.unique("space", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3255 "dhcp6_parser.cc"
+#line 3265 "dhcp6_parser.cc"
break;
case 570: // space: "space" $@80 ":" "constant string"
-#line 2021 "dhcp6_parser.yy"
+#line 2031 "dhcp6_parser.yy"
{
ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("space", space);
ctx.leave();
}
-#line 3265 "dhcp6_parser.cc"
+#line 3275 "dhcp6_parser.cc"
break;
case 572: // $@81: %empty
-#line 2029 "dhcp6_parser.yy"
+#line 2039 "dhcp6_parser.yy"
{
ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3274 "dhcp6_parser.cc"
+#line 3284 "dhcp6_parser.cc"
break;
case 573: // option_def_encapsulate: "encapsulate" $@81 ":" "constant string"
-#line 2032 "dhcp6_parser.yy"
+#line 2042 "dhcp6_parser.yy"
{
ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("encapsulate", encap);
ctx.leave();
}
-#line 3284 "dhcp6_parser.cc"
+#line 3294 "dhcp6_parser.cc"
break;
case 574: // option_def_array: "array" ":" "boolean"
-#line 2038 "dhcp6_parser.yy"
+#line 2048 "dhcp6_parser.yy"
{
ctx.unique("array", ctx.loc2pos(yystack_[2].location));
ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("array", array);
}
-#line 3294 "dhcp6_parser.cc"
+#line 3304 "dhcp6_parser.cc"
break;
case 575: // $@82: %empty
-#line 2048 "dhcp6_parser.yy"
+#line 2058 "dhcp6_parser.yy"
{
ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DATA);
}
-#line 3306 "dhcp6_parser.cc"
+#line 3316 "dhcp6_parser.cc"
break;
case 576: // option_data_list: "option-data" $@82 ":" "[" option_data_list_content "]"
-#line 2054 "dhcp6_parser.yy"
+#line 2064 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3315 "dhcp6_parser.cc"
+#line 3325 "dhcp6_parser.cc"
break;
case 581: // not_empty_option_data_list: not_empty_option_data_list ","
-#line 2069 "dhcp6_parser.yy"
+#line 2079 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3323 "dhcp6_parser.cc"
+#line 3333 "dhcp6_parser.cc"
break;
case 582: // $@83: %empty
-#line 2076 "dhcp6_parser.yy"
+#line 2086 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3333 "dhcp6_parser.cc"
+#line 3343 "dhcp6_parser.cc"
break;
case 583: // option_data_entry: "{" $@83 option_data_params "}"
-#line 2080 "dhcp6_parser.yy"
+#line 2090 "dhcp6_parser.yy"
{
/// @todo: the code or name parameters are required.
ctx.stack_.pop_back();
}
-#line 3342 "dhcp6_parser.cc"
+#line 3352 "dhcp6_parser.cc"
break;
case 584: // $@84: %empty
-#line 2088 "dhcp6_parser.yy"
+#line 2098 "dhcp6_parser.yy"
{
// Parse the option-data list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3352 "dhcp6_parser.cc"
+#line 3362 "dhcp6_parser.cc"
break;
case 585: // sub_option_data: "{" $@84 option_data_params "}"
-#line 2092 "dhcp6_parser.yy"
+#line 2102 "dhcp6_parser.yy"
{
/// @todo: the code or name parameters are required.
// parsing completed
}
-#line 3361 "dhcp6_parser.cc"
+#line 3371 "dhcp6_parser.cc"
break;
case 590: // not_empty_option_data_params: not_empty_option_data_params ","
-#line 2108 "dhcp6_parser.yy"
+#line 2118 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3369 "dhcp6_parser.cc"
+#line 3379 "dhcp6_parser.cc"
break;
case 603: // $@85: %empty
-#line 2130 "dhcp6_parser.yy"
+#line 2140 "dhcp6_parser.yy"
{
ctx.unique("data", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3378 "dhcp6_parser.cc"
+#line 3388 "dhcp6_parser.cc"
break;
case 604: // option_data_data: "data" $@85 ":" "constant string"
-#line 2133 "dhcp6_parser.yy"
+#line 2143 "dhcp6_parser.yy"
{
ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data", data);
ctx.leave();
}
-#line 3388 "dhcp6_parser.cc"
+#line 3398 "dhcp6_parser.cc"
break;
case 607: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 2143 "dhcp6_parser.yy"
+#line 2153 "dhcp6_parser.yy"
{
ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location));
ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("csv-format", csv);
}
-#line 3398 "dhcp6_parser.cc"
+#line 3408 "dhcp6_parser.cc"
break;
case 608: // option_data_always_send: "always-send" ":" "boolean"
-#line 2149 "dhcp6_parser.yy"
+#line 2159 "dhcp6_parser.yy"
{
ctx.unique("always-send", ctx.loc2pos(yystack_[2].location));
ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("always-send", persist);
}
-#line 3408 "dhcp6_parser.cc"
+#line 3418 "dhcp6_parser.cc"
break;
case 609: // option_data_never_send: "never-send" ":" "boolean"
-#line 2155 "dhcp6_parser.yy"
+#line 2165 "dhcp6_parser.yy"
{
ctx.unique("never-send", ctx.loc2pos(yystack_[2].location));
ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("never-send", cancel);
}
-#line 3418 "dhcp6_parser.cc"
+#line 3428 "dhcp6_parser.cc"
break;
case 610: // $@86: %empty
-#line 2161 "dhcp6_parser.yy"
+#line 2171 "dhcp6_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3430 "dhcp6_parser.cc"
+#line 3440 "dhcp6_parser.cc"
break;
case 611: // option_data_client_classes: "client-classes" $@86 ":" list_strings
-#line 2167 "dhcp6_parser.yy"
+#line 2177 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3439 "dhcp6_parser.cc"
+#line 3449 "dhcp6_parser.cc"
break;
case 612: // $@87: %empty
-#line 2175 "dhcp6_parser.yy"
+#line 2185 "dhcp6_parser.yy"
{
ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.POOLS);
}
-#line 3451 "dhcp6_parser.cc"
+#line 3461 "dhcp6_parser.cc"
break;
case 613: // pools_list: "pools" $@87 ":" "[" pools_list_content "]"
-#line 2181 "dhcp6_parser.yy"
+#line 2191 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3460 "dhcp6_parser.cc"
+#line 3470 "dhcp6_parser.cc"
break;
case 618: // not_empty_pools_list: not_empty_pools_list ","
-#line 2194 "dhcp6_parser.yy"
+#line 2204 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3468 "dhcp6_parser.cc"
+#line 3478 "dhcp6_parser.cc"
break;
case 619: // $@88: %empty
-#line 2199 "dhcp6_parser.yy"
+#line 2209 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3478 "dhcp6_parser.cc"
+#line 3488 "dhcp6_parser.cc"
break;
case 620: // pool_list_entry: "{" $@88 pool_params "}"
-#line 2203 "dhcp6_parser.yy"
+#line 2213 "dhcp6_parser.yy"
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 3488 "dhcp6_parser.cc"
+#line 3498 "dhcp6_parser.cc"
break;
case 621: // $@89: %empty
-#line 2209 "dhcp6_parser.yy"
+#line 2219 "dhcp6_parser.yy"
{
// Parse the pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3498 "dhcp6_parser.cc"
+#line 3508 "dhcp6_parser.cc"
break;
case 622: // sub_pool6: "{" $@89 pool_params "}"
-#line 2213 "dhcp6_parser.yy"
+#line 2223 "dhcp6_parser.yy"
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3508 "dhcp6_parser.cc"
+#line 3518 "dhcp6_parser.cc"
break;
case 625: // pool_params: pool_params ","
-#line 2221 "dhcp6_parser.yy"
+#line 2231 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3516 "dhcp6_parser.cc"
+#line 3526 "dhcp6_parser.cc"
break;
case 650: // $@90: %empty
-#line 2252 "dhcp6_parser.yy"
+#line 2262 "dhcp6_parser.yy"
{
ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3525 "dhcp6_parser.cc"
+#line 3535 "dhcp6_parser.cc"
break;
case 651: // pool_entry: "pool" $@90 ":" "constant string"
-#line 2255 "dhcp6_parser.yy"
+#line 2265 "dhcp6_parser.yy"
{
ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool", pool);
ctx.leave();
}
-#line 3535 "dhcp6_parser.cc"
+#line 3545 "dhcp6_parser.cc"
break;
case 652: // pool_id: "pool-id" ":" "integer"
-#line 2261 "dhcp6_parser.yy"
+#line 2271 "dhcp6_parser.yy"
{
ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location));
ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool-id", id);
}
-#line 3545 "dhcp6_parser.cc"
+#line 3555 "dhcp6_parser.cc"
break;
case 653: // $@91: %empty
-#line 2267 "dhcp6_parser.yy"
+#line 2277 "dhcp6_parser.yy"
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3553 "dhcp6_parser.cc"
+#line 3563 "dhcp6_parser.cc"
break;
case 654: // user_context: "user-context" $@91 ":" map_value
-#line 2269 "dhcp6_parser.yy"
+#line 2279 "dhcp6_parser.yy"
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
parent->set("user-context", user_context);
ctx.leave();
}
-#line 3580 "dhcp6_parser.cc"
+#line 3590 "dhcp6_parser.cc"
break;
case 655: // $@92: %empty
-#line 2292 "dhcp6_parser.yy"
+#line 2302 "dhcp6_parser.yy"
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3588 "dhcp6_parser.cc"
+#line 3598 "dhcp6_parser.cc"
break;
case 656: // comment: "comment" $@92 ":" "constant string"
-#line 2294 "dhcp6_parser.yy"
+#line 2304 "dhcp6_parser.yy"
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
parent->set("user-context", user_context);
ctx.leave();
}
-#line 3617 "dhcp6_parser.cc"
+#line 3627 "dhcp6_parser.cc"
break;
case 657: // $@93: %empty
-#line 2322 "dhcp6_parser.yy"
+#line 2332 "dhcp6_parser.yy"
{
ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.PD_POOLS);
}
-#line 3629 "dhcp6_parser.cc"
+#line 3639 "dhcp6_parser.cc"
break;
case 658: // pd_pools_list: "pd-pools" $@93 ":" "[" pd_pools_list_content "]"
-#line 2328 "dhcp6_parser.yy"
+#line 2338 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3638 "dhcp6_parser.cc"
+#line 3648 "dhcp6_parser.cc"
break;
case 663: // not_empty_pd_pools_list: not_empty_pd_pools_list ","
-#line 2341 "dhcp6_parser.yy"
+#line 2351 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3646 "dhcp6_parser.cc"
+#line 3656 "dhcp6_parser.cc"
break;
case 664: // $@94: %empty
-#line 2346 "dhcp6_parser.yy"
+#line 2356 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3656 "dhcp6_parser.cc"
+#line 3666 "dhcp6_parser.cc"
break;
case 665: // pd_pool_entry: "{" $@94 pd_pool_params "}"
-#line 2350 "dhcp6_parser.yy"
+#line 2360 "dhcp6_parser.yy"
{
// The prefix, prefix len and delegated len parameters are required.
ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 3668 "dhcp6_parser.cc"
+#line 3678 "dhcp6_parser.cc"
break;
case 666: // $@95: %empty
-#line 2358 "dhcp6_parser.yy"
+#line 2368 "dhcp6_parser.yy"
{
// Parse the pd-pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3678 "dhcp6_parser.cc"
+#line 3688 "dhcp6_parser.cc"
break;
case 667: // sub_pd_pool: "{" $@95 pd_pool_params "}"
-#line 2362 "dhcp6_parser.yy"
+#line 2372 "dhcp6_parser.yy"
{
// The prefix, prefix len and delegated len parameters are required.
ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3690 "dhcp6_parser.cc"
+#line 3700 "dhcp6_parser.cc"
break;
case 670: // pd_pool_params: pd_pool_params ","
-#line 2372 "dhcp6_parser.yy"
+#line 2382 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3698 "dhcp6_parser.cc"
+#line 3708 "dhcp6_parser.cc"
break;
case 685: // $@96: %empty
-#line 2393 "dhcp6_parser.yy"
+#line 2403 "dhcp6_parser.yy"
{
ctx.unique("prefix", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3707 "dhcp6_parser.cc"
+#line 3717 "dhcp6_parser.cc"
break;
case 686: // pd_prefix: "prefix" $@96 ":" "constant string"
-#line 2396 "dhcp6_parser.yy"
+#line 2406 "dhcp6_parser.yy"
{
ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefix", prf);
ctx.leave();
}
-#line 3717 "dhcp6_parser.cc"
+#line 3727 "dhcp6_parser.cc"
break;
case 687: // pd_prefix_len: "prefix-len" ":" "integer"
-#line 2402 "dhcp6_parser.yy"
+#line 2412 "dhcp6_parser.yy"
{
ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location));
ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefix-len", prf);
}
-#line 3727 "dhcp6_parser.cc"
+#line 3737 "dhcp6_parser.cc"
break;
case 688: // $@97: %empty
-#line 2408 "dhcp6_parser.yy"
+#line 2418 "dhcp6_parser.yy"
{
ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3736 "dhcp6_parser.cc"
+#line 3746 "dhcp6_parser.cc"
break;
case 689: // excluded_prefix: "excluded-prefix" $@97 ":" "constant string"
-#line 2411 "dhcp6_parser.yy"
+#line 2421 "dhcp6_parser.yy"
{
ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("excluded-prefix", prf);
ctx.leave();
}
-#line 3746 "dhcp6_parser.cc"
+#line 3756 "dhcp6_parser.cc"
break;
case 690: // excluded_prefix_len: "excluded-prefix-len" ":" "integer"
-#line 2417 "dhcp6_parser.yy"
+#line 2427 "dhcp6_parser.yy"
{
ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location));
ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("excluded-prefix-len", prf);
}
-#line 3756 "dhcp6_parser.cc"
+#line 3766 "dhcp6_parser.cc"
break;
case 691: // pd_delegated_len: "delegated-len" ":" "integer"
-#line 2423 "dhcp6_parser.yy"
+#line 2433 "dhcp6_parser.yy"
{
ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location));
ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("delegated-len", deleg);
}
-#line 3766 "dhcp6_parser.cc"
+#line 3776 "dhcp6_parser.cc"
break;
case 692: // $@98: %empty
-#line 2432 "dhcp6_parser.yy"
+#line 2442 "dhcp6_parser.yy"
{
ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.RESERVATIONS);
}
-#line 3778 "dhcp6_parser.cc"
+#line 3788 "dhcp6_parser.cc"
break;
case 693: // reservations: "reservations" $@98 ":" "[" reservations_list "]"
-#line 2438 "dhcp6_parser.yy"
+#line 2448 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3787 "dhcp6_parser.cc"
+#line 3797 "dhcp6_parser.cc"
break;
case 698: // not_empty_reservations_list: not_empty_reservations_list ","
-#line 2449 "dhcp6_parser.yy"
+#line 2459 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3795 "dhcp6_parser.cc"
+#line 3805 "dhcp6_parser.cc"
break;
case 699: // $@99: %empty
-#line 2454 "dhcp6_parser.yy"
+#line 2464 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3805 "dhcp6_parser.cc"
+#line 3815 "dhcp6_parser.cc"
break;
case 700: // reservation: "{" $@99 reservation_params "}"
-#line 2458 "dhcp6_parser.yy"
+#line 2468 "dhcp6_parser.yy"
{
/// @todo: an identifier parameter is required.
ctx.stack_.pop_back();
}
-#line 3814 "dhcp6_parser.cc"
+#line 3824 "dhcp6_parser.cc"
break;
case 701: // $@100: %empty
-#line 2463 "dhcp6_parser.yy"
+#line 2473 "dhcp6_parser.yy"
{
// Parse the reservations list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3824 "dhcp6_parser.cc"
+#line 3834 "dhcp6_parser.cc"
break;
case 702: // sub_reservation: "{" $@100 reservation_params "}"
-#line 2467 "dhcp6_parser.yy"
+#line 2477 "dhcp6_parser.yy"
{
/// @todo: an identifier parameter is required.
// parsing completed
}
-#line 3833 "dhcp6_parser.cc"
+#line 3843 "dhcp6_parser.cc"
break;
case 707: // not_empty_reservation_params: not_empty_reservation_params ","
-#line 2478 "dhcp6_parser.yy"
+#line 2488 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3841 "dhcp6_parser.cc"
+#line 3851 "dhcp6_parser.cc"
break;
case 720: // $@101: %empty
-#line 2498 "dhcp6_parser.yy"
+#line 2508 "dhcp6_parser.yy"
{
ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3853 "dhcp6_parser.cc"
+#line 3863 "dhcp6_parser.cc"
break;
case 721: // ip_addresses: "ip-addresses" $@101 ":" list_strings
-#line 2504 "dhcp6_parser.yy"
+#line 2514 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3862 "dhcp6_parser.cc"
+#line 3872 "dhcp6_parser.cc"
break;
case 722: // $@102: %empty
-#line 2509 "dhcp6_parser.yy"
+#line 2519 "dhcp6_parser.yy"
{
ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3874 "dhcp6_parser.cc"
+#line 3884 "dhcp6_parser.cc"
break;
case 723: // prefixes: "prefixes" $@102 ":" list_strings
-#line 2515 "dhcp6_parser.yy"
+#line 2525 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3883 "dhcp6_parser.cc"
+#line 3893 "dhcp6_parser.cc"
break;
case 724: // $@103: %empty
-#line 2520 "dhcp6_parser.yy"
+#line 2530 "dhcp6_parser.yy"
{
ctx.unique("excluded-prefixes", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3895 "dhcp6_parser.cc"
+#line 3905 "dhcp6_parser.cc"
break;
case 725: // excluded_prefixes: "excluded-prefixes" $@103 ":" list_strings
-#line 2526 "dhcp6_parser.yy"
+#line 2536 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3904 "dhcp6_parser.cc"
+#line 3914 "dhcp6_parser.cc"
break;
case 726: // $@104: %empty
-#line 2531 "dhcp6_parser.yy"
+#line 2541 "dhcp6_parser.yy"
{
ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3913 "dhcp6_parser.cc"
+#line 3923 "dhcp6_parser.cc"
break;
case 727: // duid: "duid" $@104 ":" "constant string"
-#line 2534 "dhcp6_parser.yy"
+#line 2544 "dhcp6_parser.yy"
{
ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("duid", d);
ctx.leave();
}
-#line 3923 "dhcp6_parser.cc"
+#line 3933 "dhcp6_parser.cc"
break;
case 728: // $@105: %empty
-#line 2540 "dhcp6_parser.yy"
+#line 2550 "dhcp6_parser.yy"
{
ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3932 "dhcp6_parser.cc"
+#line 3942 "dhcp6_parser.cc"
break;
case 729: // hw_address: "hw-address" $@105 ":" "constant string"
-#line 2543 "dhcp6_parser.yy"
+#line 2553 "dhcp6_parser.yy"
{
ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hw-address", hw);
ctx.leave();
}
-#line 3942 "dhcp6_parser.cc"
+#line 3952 "dhcp6_parser.cc"
break;
case 730: // $@106: %empty
-#line 2549 "dhcp6_parser.yy"
+#line 2559 "dhcp6_parser.yy"
{
ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3951 "dhcp6_parser.cc"
+#line 3961 "dhcp6_parser.cc"
break;
case 731: // hostname: "hostname" $@106 ":" "constant string"
-#line 2552 "dhcp6_parser.yy"
+#line 2562 "dhcp6_parser.yy"
{
ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname", host);
ctx.leave();
}
-#line 3961 "dhcp6_parser.cc"
+#line 3971 "dhcp6_parser.cc"
break;
case 732: // $@107: %empty
-#line 2558 "dhcp6_parser.yy"
+#line 2568 "dhcp6_parser.yy"
{
ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3970 "dhcp6_parser.cc"
+#line 3980 "dhcp6_parser.cc"
break;
case 733: // flex_id_value: "flex-id" $@107 ":" "constant string"
-#line 2561 "dhcp6_parser.yy"
+#line 2571 "dhcp6_parser.yy"
{
ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flex-id", hw);
ctx.leave();
}
-#line 3980 "dhcp6_parser.cc"
+#line 3990 "dhcp6_parser.cc"
break;
case 734: // $@108: %empty
-#line 2567 "dhcp6_parser.yy"
+#line 2577 "dhcp6_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3992 "dhcp6_parser.cc"
+#line 4002 "dhcp6_parser.cc"
break;
case 735: // reservation_client_classes: "client-classes" $@108 ":" list_strings
-#line 2573 "dhcp6_parser.yy"
+#line 2583 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4001 "dhcp6_parser.cc"
+#line 4011 "dhcp6_parser.cc"
break;
case 736: // $@109: %empty
-#line 2581 "dhcp6_parser.yy"
+#line 2591 "dhcp6_parser.yy"
{
ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.RELAY);
}
-#line 4013 "dhcp6_parser.cc"
+#line 4023 "dhcp6_parser.cc"
break;
case 737: // relay: "relay" $@109 ":" "{" relay_map "}"
-#line 2587 "dhcp6_parser.yy"
+#line 2597 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4022 "dhcp6_parser.cc"
+#line 4032 "dhcp6_parser.cc"
break;
case 739: // $@110: %empty
-#line 2598 "dhcp6_parser.yy"
+#line 2608 "dhcp6_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENT_CLASSES);
}
-#line 4034 "dhcp6_parser.cc"
+#line 4044 "dhcp6_parser.cc"
break;
case 740: // client_classes: "client-classes" $@110 ":" "[" client_classes_list "]"
-#line 2604 "dhcp6_parser.yy"
+#line 2614 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4043 "dhcp6_parser.cc"
+#line 4053 "dhcp6_parser.cc"
break;
case 743: // client_classes_list: client_classes_list ","
-#line 2611 "dhcp6_parser.yy"
+#line 2621 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4051 "dhcp6_parser.cc"
+#line 4061 "dhcp6_parser.cc"
break;
case 744: // $@111: %empty
-#line 2616 "dhcp6_parser.yy"
+#line 2626 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4061 "dhcp6_parser.cc"
+#line 4071 "dhcp6_parser.cc"
break;
case 745: // client_class_entry: "{" $@111 client_class_params "}"
-#line 2620 "dhcp6_parser.yy"
+#line 2630 "dhcp6_parser.yy"
{
// The name client class parameter is required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 4071 "dhcp6_parser.cc"
+#line 4081 "dhcp6_parser.cc"
break;
case 750: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2632 "dhcp6_parser.yy"
+#line 2642 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4079 "dhcp6_parser.cc"
+#line 4089 "dhcp6_parser.cc"
break;
case 767: // $@112: %empty
-#line 2656 "dhcp6_parser.yy"
+#line 2666 "dhcp6_parser.yy"
{
ctx.unique("test", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4088 "dhcp6_parser.cc"
+#line 4098 "dhcp6_parser.cc"
break;
case 768: // client_class_test: "test" $@112 ":" "constant string"
-#line 2659 "dhcp6_parser.yy"
+#line 2669 "dhcp6_parser.yy"
{
ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("test", test);
ctx.leave();
}
-#line 4098 "dhcp6_parser.cc"
+#line 4108 "dhcp6_parser.cc"
break;
case 769: // $@113: %empty
-#line 2665 "dhcp6_parser.yy"
+#line 2675 "dhcp6_parser.yy"
{
ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4107 "dhcp6_parser.cc"
+#line 4117 "dhcp6_parser.cc"
break;
case 770: // client_class_template_test: "template-test" $@113 ":" "constant string"
-#line 2668 "dhcp6_parser.yy"
+#line 2678 "dhcp6_parser.yy"
{
ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("template-test", template_test);
ctx.leave();
}
-#line 4117 "dhcp6_parser.cc"
+#line 4127 "dhcp6_parser.cc"
break;
case 771: // only_if_required: "only-if-required" ":" "boolean"
-#line 2675 "dhcp6_parser.yy"
+#line 2685 "dhcp6_parser.yy"
{
ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("only-if-required", b);
}
-#line 4127 "dhcp6_parser.cc"
+#line 4137 "dhcp6_parser.cc"
break;
case 772: // only_in_additional_list: "only-in-additional-list" ":" "boolean"
-#line 2681 "dhcp6_parser.yy"
+#line 2691 "dhcp6_parser.yy"
{
ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("only-in-additional-list", b);
}
-#line 4137 "dhcp6_parser.cc"
+#line 4147 "dhcp6_parser.cc"
break;
case 773: // $@114: %empty
-#line 2690 "dhcp6_parser.yy"
+#line 2700 "dhcp6_parser.yy"
{
ctx.unique("server-id", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER_ID);
}
-#line 4149 "dhcp6_parser.cc"
+#line 4159 "dhcp6_parser.cc"
break;
case 774: // server_id: "server-id" $@114 ":" "{" server_id_params "}"
-#line 2696 "dhcp6_parser.yy"
+#line 2706 "dhcp6_parser.yy"
{
// The type parameter is required.
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4160 "dhcp6_parser.cc"
+#line 4170 "dhcp6_parser.cc"
break;
case 777: // server_id_params: server_id_params ","
-#line 2705 "dhcp6_parser.yy"
+#line 2715 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4168 "dhcp6_parser.cc"
+#line 4178 "dhcp6_parser.cc"
break;
case 787: // $@115: %empty
-#line 2721 "dhcp6_parser.yy"
+#line 2731 "dhcp6_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.DUID_TYPE);
}
-#line 4177 "dhcp6_parser.cc"
+#line 4187 "dhcp6_parser.cc"
break;
case 788: // server_id_type: "type" $@115 ":" duid_type
-#line 2724 "dhcp6_parser.yy"
+#line 2734 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4186 "dhcp6_parser.cc"
+#line 4196 "dhcp6_parser.cc"
break;
case 789: // duid_type: "LLT"
-#line 2729 "dhcp6_parser.yy"
+#line 2739 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 4192 "dhcp6_parser.cc"
+#line 4202 "dhcp6_parser.cc"
break;
case 790: // duid_type: "EN"
-#line 2730 "dhcp6_parser.yy"
+#line 2740 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 4198 "dhcp6_parser.cc"
+#line 4208 "dhcp6_parser.cc"
break;
case 791: // duid_type: "LL"
-#line 2731 "dhcp6_parser.yy"
+#line 2741 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 4204 "dhcp6_parser.cc"
+#line 4214 "dhcp6_parser.cc"
break;
case 792: // htype: "htype" ":" "integer"
-#line 2734 "dhcp6_parser.yy"
+#line 2744 "dhcp6_parser.yy"
{
ctx.unique("htype", ctx.loc2pos(yystack_[2].location));
ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("htype", htype);
}
-#line 4214 "dhcp6_parser.cc"
+#line 4224 "dhcp6_parser.cc"
break;
case 793: // $@116: %empty
-#line 2740 "dhcp6_parser.yy"
+#line 2750 "dhcp6_parser.yy"
{
ctx.unique("identifier", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4223 "dhcp6_parser.cc"
+#line 4233 "dhcp6_parser.cc"
break;
case 794: // identifier: "identifier" $@116 ":" "constant string"
-#line 2743 "dhcp6_parser.yy"
+#line 2753 "dhcp6_parser.yy"
{
ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("identifier", id);
ctx.leave();
}
-#line 4233 "dhcp6_parser.cc"
+#line 4243 "dhcp6_parser.cc"
break;
case 795: // time: "time" ":" "integer"
-#line 2749 "dhcp6_parser.yy"
+#line 2759 "dhcp6_parser.yy"
{
ctx.unique("time", ctx.loc2pos(yystack_[2].location));
ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("time", time);
}
-#line 4243 "dhcp6_parser.cc"
+#line 4253 "dhcp6_parser.cc"
break;
case 796: // enterprise_id: "enterprise-id" ":" "integer"
-#line 2755 "dhcp6_parser.yy"
+#line 2765 "dhcp6_parser.yy"
{
ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location));
ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enterprise-id", time);
}
-#line 4253 "dhcp6_parser.cc"
+#line 4263 "dhcp6_parser.cc"
break;
case 797: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2763 "dhcp6_parser.yy"
+#line 2773 "dhcp6_parser.yy"
{
ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location));
ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp4o6-port", time);
}
-#line 4263 "dhcp6_parser.cc"
+#line 4273 "dhcp6_parser.cc"
break;
case 798: // $@117: %empty
-#line 2771 "dhcp6_parser.yy"
+#line 2781 "dhcp6_parser.yy"
{
ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location));
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 4276 "dhcp6_parser.cc"
+#line 4286 "dhcp6_parser.cc"
break;
case 799: // control_socket: "control-socket" $@117 ":" "{" control_socket_params "}"
-#line 2778 "dhcp6_parser.yy"
+#line 2788 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4285 "dhcp6_parser.cc"
+#line 4295 "dhcp6_parser.cc"
break;
case 800: // $@118: %empty
-#line 2783 "dhcp6_parser.yy"
+#line 2793 "dhcp6_parser.yy"
{
ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location));
ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
ctx.stack_.push_back(l);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 4298 "dhcp6_parser.cc"
+#line 4308 "dhcp6_parser.cc"
break;
case 801: // control_sockets: "control-sockets" $@118 ":" "[" control_socket_list "]"
-#line 2790 "dhcp6_parser.yy"
+#line 2800 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4307 "dhcp6_parser.cc"
+#line 4317 "dhcp6_parser.cc"
break;
case 806: // not_empty_control_socket_list: not_empty_control_socket_list ","
-#line 2801 "dhcp6_parser.yy"
+#line 2811 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4315 "dhcp6_parser.cc"
+#line 4325 "dhcp6_parser.cc"
break;
case 807: // $@119: %empty
-#line 2806 "dhcp6_parser.yy"
+#line 2816 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4325 "dhcp6_parser.cc"
+#line 4335 "dhcp6_parser.cc"
break;
case 808: // control_socket_entry: "{" $@119 control_socket_params "}"
-#line 2810 "dhcp6_parser.yy"
+#line 2820 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4333 "dhcp6_parser.cc"
+#line 4343 "dhcp6_parser.cc"
break;
case 811: // control_socket_params: control_socket_params ","
-#line 2816 "dhcp6_parser.yy"
+#line 2826 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4341 "dhcp6_parser.cc"
+#line 4351 "dhcp6_parser.cc"
break;
case 825: // $@120: %empty
-#line 2836 "dhcp6_parser.yy"
+#line 2846 "dhcp6_parser.yy"
{
ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.CONTROL_SOCKET_TYPE);
}
-#line 4350 "dhcp6_parser.cc"
+#line 4360 "dhcp6_parser.cc"
break;
case 826: // control_socket_type: "socket-type" $@120 ":" control_socket_type_value
-#line 2839 "dhcp6_parser.yy"
+#line 2849 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4359 "dhcp6_parser.cc"
+#line 4369 "dhcp6_parser.cc"
break;
case 827: // control_socket_type_value: "unix"
-#line 2845 "dhcp6_parser.yy"
+#line 2855 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); }
-#line 4365 "dhcp6_parser.cc"
+#line 4375 "dhcp6_parser.cc"
break;
case 828: // control_socket_type_value: "http"
-#line 2846 "dhcp6_parser.yy"
+#line 2856 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); }
-#line 4371 "dhcp6_parser.cc"
+#line 4381 "dhcp6_parser.cc"
break;
case 829: // control_socket_type_value: "https"
-#line 2847 "dhcp6_parser.yy"
+#line 2857 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); }
-#line 4377 "dhcp6_parser.cc"
+#line 4387 "dhcp6_parser.cc"
break;
case 830: // $@121: %empty
-#line 2850 "dhcp6_parser.yy"
+#line 2860 "dhcp6_parser.yy"
{
ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4387 "dhcp6_parser.cc"
+#line 4397 "dhcp6_parser.cc"
break;
case 831: // control_socket_name: "socket-name" $@121 ":" "constant string"
-#line 2854 "dhcp6_parser.yy"
+#line 2864 "dhcp6_parser.yy"
{
ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 4397 "dhcp6_parser.cc"
+#line 4407 "dhcp6_parser.cc"
break;
case 832: // $@122: %empty
-#line 2860 "dhcp6_parser.yy"
+#line 2870 "dhcp6_parser.yy"
{
ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4407 "dhcp6_parser.cc"
+#line 4417 "dhcp6_parser.cc"
break;
case 833: // control_socket_address: "socket-address" $@122 ":" "constant string"
-#line 2864 "dhcp6_parser.yy"
+#line 2874 "dhcp6_parser.yy"
{
ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-address", address);
ctx.leave();
}
-#line 4417 "dhcp6_parser.cc"
+#line 4427 "dhcp6_parser.cc"
break;
case 834: // control_socket_port: "socket-port" ":" "integer"
-#line 2870 "dhcp6_parser.yy"
+#line 2880 "dhcp6_parser.yy"
{
ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location));
ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-port", port);
}
-#line 4427 "dhcp6_parser.cc"
+#line 4437 "dhcp6_parser.cc"
break;
case 835: // cert_required: "cert-required" ":" "boolean"
-#line 2876 "dhcp6_parser.yy"
+#line 2886 "dhcp6_parser.yy"
{
ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location));
ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cert-required", req);
}
-#line 4437 "dhcp6_parser.cc"
+#line 4447 "dhcp6_parser.cc"
break;
case 836: // $@123: %empty
-#line 2882 "dhcp6_parser.yy"
+#line 2892 "dhcp6_parser.yy"
{
ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HTTP_HEADERS);
}
-#line 4449 "dhcp6_parser.cc"
+#line 4459 "dhcp6_parser.cc"
break;
case 837: // http_headers: "http-headers" $@123 ":" "[" http_header_list "]"
-#line 2888 "dhcp6_parser.yy"
+#line 2898 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4458 "dhcp6_parser.cc"
+#line 4468 "dhcp6_parser.cc"
break;
case 842: // not_empty_http_header_list: not_empty_http_header_list ","
-#line 2899 "dhcp6_parser.yy"
+#line 2909 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4466 "dhcp6_parser.cc"
+#line 4476 "dhcp6_parser.cc"
break;
case 843: // $@124: %empty
-#line 2904 "dhcp6_parser.yy"
+#line 2914 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4476 "dhcp6_parser.cc"
+#line 4486 "dhcp6_parser.cc"
break;
case 844: // http_header: "{" $@124 http_header_params "}"
-#line 2908 "dhcp6_parser.yy"
+#line 2918 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4484 "dhcp6_parser.cc"
+#line 4494 "dhcp6_parser.cc"
break;
case 847: // http_header_params: http_header_params ","
-#line 2914 "dhcp6_parser.yy"
+#line 2924 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4492 "dhcp6_parser.cc"
+#line 4502 "dhcp6_parser.cc"
break;
case 853: // $@125: %empty
-#line 2926 "dhcp6_parser.yy"
+#line 2936 "dhcp6_parser.yy"
{
ctx.unique("value", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4501 "dhcp6_parser.cc"
+#line 4511 "dhcp6_parser.cc"
break;
case 854: // header_value: "value" $@125 ":" "constant string"
-#line 2929 "dhcp6_parser.yy"
+#line 2939 "dhcp6_parser.yy"
{
ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("value", value);
ctx.leave();
}
-#line 4511 "dhcp6_parser.cc"
+#line 4521 "dhcp6_parser.cc"
break;
case 855: // $@126: %empty
-#line 2937 "dhcp6_parser.yy"
+#line 2947 "dhcp6_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4523 "dhcp6_parser.cc"
+#line 4533 "dhcp6_parser.cc"
break;
case 856: // authentication: "authentication" $@126 ":" "{" auth_params "}"
-#line 2943 "dhcp6_parser.yy"
+#line 2953 "dhcp6_parser.yy"
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4534 "dhcp6_parser.cc"
+#line 4544 "dhcp6_parser.cc"
break;
case 859: // auth_params: auth_params ","
-#line 2952 "dhcp6_parser.yy"
+#line 2962 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4542 "dhcp6_parser.cc"
+#line 4552 "dhcp6_parser.cc"
break;
case 867: // $@127: %empty
-#line 2966 "dhcp6_parser.yy"
+#line 2976 "dhcp6_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4551 "dhcp6_parser.cc"
+#line 4561 "dhcp6_parser.cc"
break;
case 868: // auth_type: "type" $@127 ":" auth_type_value
-#line 2969 "dhcp6_parser.yy"
+#line 2979 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4560 "dhcp6_parser.cc"
+#line 4570 "dhcp6_parser.cc"
break;
case 869: // auth_type_value: "basic"
-#line 2974 "dhcp6_parser.yy"
+#line 2984 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4566 "dhcp6_parser.cc"
+#line 4576 "dhcp6_parser.cc"
break;
case 870: // $@128: %empty
-#line 2977 "dhcp6_parser.yy"
+#line 2987 "dhcp6_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4575 "dhcp6_parser.cc"
+#line 4585 "dhcp6_parser.cc"
break;
case 871: // realm: "realm" $@128 ":" "constant string"
-#line 2980 "dhcp6_parser.yy"
+#line 2990 "dhcp6_parser.yy"
{
ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("realm", realm);
ctx.leave();
}
-#line 4585 "dhcp6_parser.cc"
+#line 4595 "dhcp6_parser.cc"
break;
case 872: // $@129: %empty
-#line 2986 "dhcp6_parser.yy"
+#line 2996 "dhcp6_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4594 "dhcp6_parser.cc"
+#line 4604 "dhcp6_parser.cc"
break;
case 873: // directory: "directory" $@129 ":" "constant string"
-#line 2989 "dhcp6_parser.yy"
+#line 2999 "dhcp6_parser.yy"
{
ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("directory", directory);
ctx.leave();
}
-#line 4604 "dhcp6_parser.cc"
+#line 4614 "dhcp6_parser.cc"
break;
case 874: // $@130: %empty
-#line 2995 "dhcp6_parser.yy"
+#line 3005 "dhcp6_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4616 "dhcp6_parser.cc"
+#line 4626 "dhcp6_parser.cc"
break;
case 875: // clients: "clients" $@130 ":" "[" clients_list "]"
-#line 3001 "dhcp6_parser.yy"
+#line 3011 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4625 "dhcp6_parser.cc"
+#line 4635 "dhcp6_parser.cc"
break;
case 880: // not_empty_clients_list: not_empty_clients_list ","
-#line 3012 "dhcp6_parser.yy"
+#line 3022 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4633 "dhcp6_parser.cc"
+#line 4643 "dhcp6_parser.cc"
break;
case 881: // $@131: %empty
-#line 3017 "dhcp6_parser.yy"
+#line 3027 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4643 "dhcp6_parser.cc"
+#line 4653 "dhcp6_parser.cc"
break;
case 882: // basic_auth: "{" $@131 clients_params "}"
-#line 3021 "dhcp6_parser.yy"
+#line 3031 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4651 "dhcp6_parser.cc"
+#line 4661 "dhcp6_parser.cc"
break;
case 885: // clients_params: clients_params ","
-#line 3027 "dhcp6_parser.yy"
+#line 3037 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4659 "dhcp6_parser.cc"
+#line 4669 "dhcp6_parser.cc"
break;
case 893: // $@132: %empty
-#line 3041 "dhcp6_parser.yy"
+#line 3051 "dhcp6_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4668 "dhcp6_parser.cc"
+#line 4678 "dhcp6_parser.cc"
break;
case 894: // user_file: "user-file" $@132 ":" "constant string"
-#line 3044 "dhcp6_parser.yy"
+#line 3054 "dhcp6_parser.yy"
{
ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user-file", user);
ctx.leave();
}
-#line 4678 "dhcp6_parser.cc"
+#line 4688 "dhcp6_parser.cc"
break;
case 895: // $@133: %empty
-#line 3050 "dhcp6_parser.yy"
+#line 3060 "dhcp6_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4687 "dhcp6_parser.cc"
+#line 4697 "dhcp6_parser.cc"
break;
case 896: // password_file: "password-file" $@133 ":" "constant string"
-#line 3053 "dhcp6_parser.yy"
+#line 3063 "dhcp6_parser.yy"
{
ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password-file", password);
ctx.leave();
}
-#line 4697 "dhcp6_parser.cc"
+#line 4707 "dhcp6_parser.cc"
break;
case 897: // $@134: %empty
-#line 3061 "dhcp6_parser.yy"
+#line 3071 "dhcp6_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4709 "dhcp6_parser.cc"
+#line 4719 "dhcp6_parser.cc"
break;
case 898: // dhcp_queue_control: "dhcp-queue-control" $@134 ":" "{" queue_control_params "}"
-#line 3067 "dhcp6_parser.yy"
+#line 3077 "dhcp6_parser.yy"
{
// The enable queue parameter is required.
ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4720 "dhcp6_parser.cc"
+#line 4730 "dhcp6_parser.cc"
break;
case 901: // queue_control_params: queue_control_params ","
-#line 3076 "dhcp6_parser.yy"
+#line 3086 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4728 "dhcp6_parser.cc"
+#line 4738 "dhcp6_parser.cc"
break;
case 908: // enable_queue: "enable-queue" ":" "boolean"
-#line 3089 "dhcp6_parser.yy"
+#line 3099 "dhcp6_parser.yy"
{
ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-queue", b);
}
-#line 4738 "dhcp6_parser.cc"
+#line 4748 "dhcp6_parser.cc"
break;
case 909: // $@135: %empty
-#line 3095 "dhcp6_parser.yy"
+#line 3105 "dhcp6_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4747 "dhcp6_parser.cc"
+#line 4757 "dhcp6_parser.cc"
break;
case 910: // queue_type: "queue-type" $@135 ":" "constant string"
-#line 3098 "dhcp6_parser.yy"
+#line 3108 "dhcp6_parser.yy"
{
ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("queue-type", qt);
ctx.leave();
}
-#line 4757 "dhcp6_parser.cc"
+#line 4767 "dhcp6_parser.cc"
break;
case 911: // capacity: "capacity" ":" "integer"
-#line 3104 "dhcp6_parser.yy"
+#line 3114 "dhcp6_parser.yy"
{
ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("capacity", c);
}
-#line 4767 "dhcp6_parser.cc"
+#line 4777 "dhcp6_parser.cc"
break;
case 912: // $@136: %empty
-#line 3110 "dhcp6_parser.yy"
+#line 3120 "dhcp6_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4776 "dhcp6_parser.cc"
+#line 4786 "dhcp6_parser.cc"
break;
case 913: // arbitrary_map_entry: "constant string" $@136 ":" value
-#line 3113 "dhcp6_parser.yy"
+#line 3123 "dhcp6_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4785 "dhcp6_parser.cc"
+#line 4795 "dhcp6_parser.cc"
break;
case 914: // $@137: %empty
-#line 3120 "dhcp6_parser.yy"
+#line 3130 "dhcp6_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4797 "dhcp6_parser.cc"
+#line 4807 "dhcp6_parser.cc"
break;
case 915: // dhcp_ddns: "dhcp-ddns" $@137 ":" "{" dhcp_ddns_params "}"
-#line 3126 "dhcp6_parser.yy"
+#line 3136 "dhcp6_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4808 "dhcp6_parser.cc"
+#line 4818 "dhcp6_parser.cc"
break;
case 916: // $@138: %empty
-#line 3133 "dhcp6_parser.yy"
+#line 3143 "dhcp6_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4818 "dhcp6_parser.cc"
+#line 4828 "dhcp6_parser.cc"
break;
case 917: // sub_dhcp_ddns: "{" $@138 dhcp_ddns_params "}"
-#line 3137 "dhcp6_parser.yy"
+#line 3147 "dhcp6_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 4828 "dhcp6_parser.cc"
+#line 4838 "dhcp6_parser.cc"
break;
case 920: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 3145 "dhcp6_parser.yy"
+#line 3155 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4836 "dhcp6_parser.cc"
+#line 4846 "dhcp6_parser.cc"
break;
case 932: // enable_updates: "enable-updates" ":" "boolean"
-#line 3163 "dhcp6_parser.yy"
+#line 3173 "dhcp6_parser.yy"
{
ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-updates", b);
}
-#line 4846 "dhcp6_parser.cc"
+#line 4856 "dhcp6_parser.cc"
break;
case 933: // $@139: %empty
-#line 3169 "dhcp6_parser.yy"
+#line 3179 "dhcp6_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4855 "dhcp6_parser.cc"
+#line 4865 "dhcp6_parser.cc"
break;
case 934: // server_ip: "server-ip" $@139 ":" "constant string"
-#line 3172 "dhcp6_parser.yy"
+#line 3182 "dhcp6_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-ip", s);
ctx.leave();
}
-#line 4865 "dhcp6_parser.cc"
+#line 4875 "dhcp6_parser.cc"
break;
case 935: // server_port: "server-port" ":" "integer"
-#line 3178 "dhcp6_parser.yy"
+#line 3188 "dhcp6_parser.yy"
{
ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-port", i);
}
-#line 4875 "dhcp6_parser.cc"
+#line 4885 "dhcp6_parser.cc"
break;
case 936: // $@140: %empty
-#line 3184 "dhcp6_parser.yy"
+#line 3194 "dhcp6_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4884 "dhcp6_parser.cc"
+#line 4894 "dhcp6_parser.cc"
break;
case 937: // sender_ip: "sender-ip" $@140 ":" "constant string"
-#line 3187 "dhcp6_parser.yy"
+#line 3197 "dhcp6_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-ip", s);
ctx.leave();
}
-#line 4894 "dhcp6_parser.cc"
+#line 4904 "dhcp6_parser.cc"
break;
case 938: // sender_port: "sender-port" ":" "integer"
-#line 3193 "dhcp6_parser.yy"
+#line 3203 "dhcp6_parser.yy"
{
ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-port", i);
}
-#line 4904 "dhcp6_parser.cc"
+#line 4914 "dhcp6_parser.cc"
break;
case 939: // max_queue_size: "max-queue-size" ":" "integer"
-#line 3199 "dhcp6_parser.yy"
+#line 3209 "dhcp6_parser.yy"
{
ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-queue-size", i);
}
-#line 4914 "dhcp6_parser.cc"
+#line 4924 "dhcp6_parser.cc"
break;
case 940: // $@141: %empty
-#line 3205 "dhcp6_parser.yy"
+#line 3215 "dhcp6_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4923 "dhcp6_parser.cc"
+#line 4933 "dhcp6_parser.cc"
break;
case 941: // ncr_protocol: "ncr-protocol" $@141 ":" ncr_protocol_value
-#line 3208 "dhcp6_parser.yy"
+#line 3218 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4932 "dhcp6_parser.cc"
+#line 4942 "dhcp6_parser.cc"
break;
case 942: // ncr_protocol_value: "UDP"
-#line 3214 "dhcp6_parser.yy"
+#line 3224 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4938 "dhcp6_parser.cc"
+#line 4948 "dhcp6_parser.cc"
break;
case 943: // ncr_protocol_value: "TCP"
-#line 3215 "dhcp6_parser.yy"
+#line 3225 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4944 "dhcp6_parser.cc"
+#line 4954 "dhcp6_parser.cc"
break;
case 944: // $@142: %empty
-#line 3218 "dhcp6_parser.yy"
+#line 3228 "dhcp6_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4953 "dhcp6_parser.cc"
+#line 4963 "dhcp6_parser.cc"
break;
case 945: // ncr_format: "ncr-format" $@142 ":" "JSON"
-#line 3221 "dhcp6_parser.yy"
+#line 3231 "dhcp6_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4963 "dhcp6_parser.cc"
+#line 4973 "dhcp6_parser.cc"
break;
case 946: // $@143: %empty
-#line 3229 "dhcp6_parser.yy"
+#line 3239 "dhcp6_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 4975 "dhcp6_parser.cc"
+#line 4985 "dhcp6_parser.cc"
break;
case 947: // config_control: "config-control" $@143 ":" "{" config_control_params "}"
-#line 3235 "dhcp6_parser.yy"
+#line 3245 "dhcp6_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4985 "dhcp6_parser.cc"
+#line 4995 "dhcp6_parser.cc"
break;
case 948: // $@144: %empty
-#line 3241 "dhcp6_parser.yy"
+#line 3251 "dhcp6_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4995 "dhcp6_parser.cc"
+#line 5005 "dhcp6_parser.cc"
break;
case 949: // sub_config_control: "{" $@144 config_control_params "}"
-#line 3245 "dhcp6_parser.yy"
+#line 3255 "dhcp6_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 5004 "dhcp6_parser.cc"
+#line 5014 "dhcp6_parser.cc"
break;
case 952: // config_control_params: config_control_params ","
-#line 3253 "dhcp6_parser.yy"
+#line 3263 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5012 "dhcp6_parser.cc"
+#line 5022 "dhcp6_parser.cc"
break;
case 955: // $@145: %empty
-#line 3263 "dhcp6_parser.yy"
+#line 3273 "dhcp6_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 5024 "dhcp6_parser.cc"
+#line 5034 "dhcp6_parser.cc"
break;
case 956: // config_databases: "config-databases" $@145 ":" "[" database_list "]"
-#line 3269 "dhcp6_parser.yy"
+#line 3279 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5033 "dhcp6_parser.cc"
+#line 5043 "dhcp6_parser.cc"
break;
case 957: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 3274 "dhcp6_parser.yy"
+#line 3284 "dhcp6_parser.yy"
{
ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-fetch-wait-time", value);
}
-#line 5043 "dhcp6_parser.cc"
+#line 5053 "dhcp6_parser.cc"
break;
case 958: // $@146: %empty
-#line 3282 "dhcp6_parser.yy"
+#line 3292 "dhcp6_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 5055 "dhcp6_parser.cc"
+#line 5065 "dhcp6_parser.cc"
break;
case 959: // loggers: "loggers" $@146 ":" "[" loggers_entries "]"
-#line 3288 "dhcp6_parser.yy"
+#line 3298 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5064 "dhcp6_parser.cc"
+#line 5074 "dhcp6_parser.cc"
break;
case 962: // loggers_entries: loggers_entries ","
-#line 3297 "dhcp6_parser.yy"
+#line 3307 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5072 "dhcp6_parser.cc"
+#line 5082 "dhcp6_parser.cc"
break;
case 963: // $@147: %empty
-#line 3303 "dhcp6_parser.yy"
+#line 3313 "dhcp6_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 5082 "dhcp6_parser.cc"
+#line 5092 "dhcp6_parser.cc"
break;
case 964: // logger_entry: "{" $@147 logger_params "}"
-#line 3307 "dhcp6_parser.yy"
+#line 3317 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 5090 "dhcp6_parser.cc"
+#line 5100 "dhcp6_parser.cc"
break;
case 967: // logger_params: logger_params ","
-#line 3313 "dhcp6_parser.yy"
+#line 3323 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5098 "dhcp6_parser.cc"
+#line 5108 "dhcp6_parser.cc"
break;
case 975: // debuglevel: "debuglevel" ":" "integer"
-#line 3327 "dhcp6_parser.yy"
+#line 3337 "dhcp6_parser.yy"
{
ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 5108 "dhcp6_parser.cc"
+#line 5118 "dhcp6_parser.cc"
break;
case 976: // $@148: %empty
-#line 3333 "dhcp6_parser.yy"
+#line 3343 "dhcp6_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5117 "dhcp6_parser.cc"
+#line 5127 "dhcp6_parser.cc"
break;
case 977: // severity: "severity" $@148 ":" "constant string"
-#line 3336 "dhcp6_parser.yy"
+#line 3346 "dhcp6_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 5127 "dhcp6_parser.cc"
+#line 5137 "dhcp6_parser.cc"
break;
case 978: // $@149: %empty
-#line 3342 "dhcp6_parser.yy"
+#line 3352 "dhcp6_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 5139 "dhcp6_parser.cc"
+#line 5149 "dhcp6_parser.cc"
break;
case 979: // output_options_list: "output-options" $@149 ":" "[" output_options_list_content "]"
-#line 3348 "dhcp6_parser.yy"
+#line 3358 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5148 "dhcp6_parser.cc"
+#line 5158 "dhcp6_parser.cc"
break;
case 982: // output_options_list_content: output_options_list_content ","
-#line 3355 "dhcp6_parser.yy"
+#line 3365 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5156 "dhcp6_parser.cc"
+#line 5166 "dhcp6_parser.cc"
break;
case 983: // $@150: %empty
-#line 3360 "dhcp6_parser.yy"
+#line 3370 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 5166 "dhcp6_parser.cc"
+#line 5176 "dhcp6_parser.cc"
break;
case 984: // output_entry: "{" $@150 output_params_list "}"
-#line 3364 "dhcp6_parser.yy"
+#line 3374 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 5174 "dhcp6_parser.cc"
+#line 5184 "dhcp6_parser.cc"
break;
case 987: // output_params_list: output_params_list ","
-#line 3370 "dhcp6_parser.yy"
+#line 3380 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5182 "dhcp6_parser.cc"
+#line 5192 "dhcp6_parser.cc"
break;
case 993: // $@151: %empty
-#line 3382 "dhcp6_parser.yy"
+#line 3392 "dhcp6_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5191 "dhcp6_parser.cc"
+#line 5201 "dhcp6_parser.cc"
break;
case 994: // output: "output" $@151 ":" "constant string"
-#line 3385 "dhcp6_parser.yy"
+#line 3395 "dhcp6_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 5201 "dhcp6_parser.cc"
+#line 5211 "dhcp6_parser.cc"
break;
case 995: // flush: "flush" ":" "boolean"
-#line 3391 "dhcp6_parser.yy"
+#line 3401 "dhcp6_parser.yy"
{
ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 5211 "dhcp6_parser.cc"
+#line 5221 "dhcp6_parser.cc"
break;
case 996: // maxsize: "maxsize" ":" "integer"
-#line 3397 "dhcp6_parser.yy"
+#line 3407 "dhcp6_parser.yy"
{
ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 5221 "dhcp6_parser.cc"
+#line 5231 "dhcp6_parser.cc"
break;
case 997: // maxver: "maxver" ":" "integer"
-#line 3403 "dhcp6_parser.yy"
+#line 3413 "dhcp6_parser.yy"
{
ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 5231 "dhcp6_parser.cc"
+#line 5241 "dhcp6_parser.cc"
break;
case 998: // $@152: %empty
-#line 3409 "dhcp6_parser.yy"
+#line 3419 "dhcp6_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5240 "dhcp6_parser.cc"
+#line 5250 "dhcp6_parser.cc"
break;
case 999: // pattern: "pattern" $@152 ":" "constant string"
-#line 3412 "dhcp6_parser.yy"
+#line 3422 "dhcp6_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pattern", sev);
ctx.leave();
}
-#line 5250 "dhcp6_parser.cc"
+#line 5260 "dhcp6_parser.cc"
break;
case 1000: // $@153: %empty
-#line 3418 "dhcp6_parser.yy"
+#line 3428 "dhcp6_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 5262 "dhcp6_parser.cc"
+#line 5272 "dhcp6_parser.cc"
break;
case 1001: // compatibility: "compatibility" $@153 ":" "{" compatibility_params "}"
-#line 3424 "dhcp6_parser.yy"
+#line 3434 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5271 "dhcp6_parser.cc"
+#line 5281 "dhcp6_parser.cc"
break;
case 1004: // compatibility_params: compatibility_params ","
-#line 3431 "dhcp6_parser.yy"
+#line 3441 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5279 "dhcp6_parser.cc"
+#line 5289 "dhcp6_parser.cc"
break;
case 1007: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3440 "dhcp6_parser.yy"
+#line 3450 "dhcp6_parser.yy"
{
ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lenient-option-parsing", b);
}
-#line 5289 "dhcp6_parser.cc"
+#line 5299 "dhcp6_parser.cc"
break;
-#line 5293 "dhcp6_parser.cc"
+#line 5303 "dhcp6_parser.cc"
default:
break;
1102, 1102, 1111, 1117, 1117, 1126, 1132, 1138, 1144, 1150,
1156, 1162, 1168, 1174, 1174, 1182, 1183, 1184, 1187, 1193,
1199, 1205, 1205, 1214, 1214, 1223, 1223, 1232, 1232, 1240,
- 1241, 1242, 1243, 1244, 1247, 1247, 1256, 1256, 1267, 1268,
- 1269, 1274, 1275, 1278, 1278, 1297, 1297, 1315, 1315, 1326,
- 1327, 1328, 1333, 1334, 1337, 1342, 1347, 1347, 1358, 1359,
- 1360, 1365, 1366, 1367, 1370, 1375, 1382, 1382, 1395, 1395,
- 1408, 1409, 1410, 1415, 1416, 1417, 1418, 1419, 1420, 1423,
- 1429, 1435, 1441, 1441, 1452, 1453, 1456, 1457, 1458, 1463,
- 1463, 1473, 1473, 1483, 1484, 1485, 1488, 1491, 1492, 1495,
- 1495, 1504, 1504, 1513, 1513, 1525, 1526, 1527, 1532, 1533,
- 1534, 1535, 1536, 1537, 1540, 1546, 1552, 1558, 1564, 1570,
- 1579, 1579, 1593, 1594, 1597, 1598, 1599, 1608, 1608, 1634,
- 1634, 1645, 1646, 1647, 1653, 1654, 1655, 1656, 1657, 1658,
- 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
+ 1243, 1246, 1249, 1252, 1257, 1257, 1266, 1266, 1277, 1278,
+ 1279, 1284, 1285, 1288, 1288, 1307, 1307, 1325, 1325, 1336,
+ 1337, 1338, 1343, 1344, 1347, 1352, 1357, 1357, 1368, 1369,
+ 1370, 1375, 1376, 1377, 1380, 1385, 1392, 1392, 1405, 1405,
+ 1418, 1419, 1420, 1425, 1426, 1427, 1428, 1429, 1430, 1433,
+ 1439, 1445, 1451, 1451, 1462, 1463, 1466, 1467, 1468, 1473,
+ 1473, 1483, 1483, 1493, 1494, 1495, 1498, 1501, 1502, 1505,
+ 1505, 1514, 1514, 1523, 1523, 1535, 1536, 1537, 1542, 1543,
+ 1544, 1545, 1546, 1547, 1550, 1556, 1562, 1568, 1574, 1580,
+ 1589, 1589, 1603, 1604, 1607, 1608, 1609, 1618, 1618, 1644,
+ 1644, 1655, 1656, 1657, 1663, 1664, 1665, 1666, 1667, 1668,
1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678,
1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698,
- 1699, 1700, 1701, 1702, 1703, 1706, 1706, 1715, 1715, 1724,
- 1724, 1733, 1733, 1743, 1743, 1755, 1755, 1766, 1766, 1777,
- 1783, 1789, 1795, 1801, 1809, 1809, 1821, 1822, 1826, 1827,
- 1828, 1833, 1833, 1841, 1842, 1843, 1848, 1849, 1850, 1851,
- 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
+ 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708,
+ 1709, 1710, 1711, 1712, 1713, 1716, 1716, 1725, 1725, 1734,
+ 1734, 1743, 1743, 1753, 1753, 1765, 1765, 1776, 1776, 1787,
+ 1793, 1799, 1805, 1811, 1819, 1819, 1831, 1832, 1836, 1837,
+ 1838, 1843, 1843, 1851, 1852, 1853, 1858, 1859, 1860, 1861,
1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881,
1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
- 1892, 1893, 1894, 1895, 1902, 1902, 1916, 1916, 1925, 1926,
- 1929, 1930, 1931, 1938, 1938, 1953, 1953, 1967, 1968, 1971,
- 1972, 1973, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985,
- 1986, 1987, 1990, 1992, 1998, 2000, 2000, 2009, 2009, 2018,
- 2018, 2027, 2029, 2029, 2038, 2048, 2048, 2061, 2062, 2067,
- 2068, 2069, 2076, 2076, 2088, 2088, 2100, 2101, 2106, 2107,
- 2108, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123,
- 2124, 2125, 2128, 2130, 2130, 2139, 2141, 2143, 2149, 2155,
- 2161, 2161, 2175, 2175, 2188, 2189, 2192, 2193, 2194, 2199,
- 2199, 2209, 2209, 2219, 2220, 2221, 2226, 2227, 2228, 2229,
- 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239,
+ 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
+ 1902, 1903, 1904, 1905, 1912, 1912, 1926, 1926, 1935, 1936,
+ 1939, 1940, 1941, 1948, 1948, 1963, 1963, 1977, 1978, 1981,
+ 1982, 1983, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
+ 1996, 1997, 2000, 2002, 2008, 2010, 2010, 2019, 2019, 2028,
+ 2028, 2037, 2039, 2039, 2048, 2058, 2058, 2071, 2072, 2077,
+ 2078, 2079, 2086, 2086, 2098, 2098, 2110, 2111, 2116, 2117,
+ 2118, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
+ 2134, 2135, 2138, 2140, 2140, 2149, 2151, 2153, 2159, 2165,
+ 2171, 2171, 2185, 2185, 2198, 2199, 2202, 2203, 2204, 2209,
+ 2209, 2219, 2219, 2229, 2230, 2231, 2236, 2237, 2238, 2239,
2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249,
- 2252, 2252, 2261, 2267, 2267, 2292, 2292, 2322, 2322, 2335,
- 2336, 2339, 2340, 2341, 2346, 2346, 2358, 2358, 2370, 2371,
- 2372, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385,
- 2386, 2387, 2388, 2389, 2390, 2393, 2393, 2402, 2408, 2408,
- 2417, 2423, 2432, 2432, 2443, 2444, 2447, 2448, 2449, 2454,
- 2454, 2463, 2463, 2472, 2473, 2476, 2477, 2478, 2484, 2485,
- 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495,
- 2498, 2498, 2509, 2509, 2520, 2520, 2531, 2531, 2540, 2540,
- 2549, 2549, 2558, 2558, 2567, 2567, 2581, 2581, 2592, 2598,
- 2598, 2609, 2610, 2611, 2616, 2616, 2626, 2627, 2630, 2631,
- 2632, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645,
- 2646, 2647, 2648, 2649, 2650, 2651, 2654, 2656, 2656, 2665,
- 2665, 2675, 2681, 2690, 2690, 2703, 2704, 2705, 2710, 2711,
- 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2721, 2721, 2729,
- 2730, 2731, 2734, 2740, 2740, 2749, 2755, 2763, 2771, 2771,
- 2783, 2783, 2795, 2796, 2799, 2800, 2801, 2806, 2806, 2814,
- 2815, 2816, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828,
- 2829, 2830, 2831, 2832, 2833, 2836, 2836, 2845, 2846, 2847,
- 2850, 2850, 2860, 2860, 2870, 2876, 2882, 2882, 2893, 2894,
- 2897, 2898, 2899, 2904, 2904, 2912, 2913, 2914, 2919, 2920,
- 2921, 2922, 2923, 2926, 2926, 2937, 2937, 2950, 2951, 2952,
- 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2966, 2966, 2974,
- 2977, 2977, 2986, 2986, 2995, 2995, 3006, 3007, 3010, 3011,
- 3012, 3017, 3017, 3025, 3026, 3027, 3032, 3033, 3034, 3035,
- 3036, 3037, 3038, 3041, 3041, 3050, 3050, 3061, 3061, 3074,
- 3075, 3076, 3081, 3082, 3083, 3084, 3085, 3086, 3089, 3095,
- 3095, 3104, 3110, 3110, 3120, 3120, 3133, 3133, 3143, 3144,
- 3145, 3150, 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158,
- 3159, 3160, 3163, 3169, 3169, 3178, 3184, 3184, 3193, 3199,
- 3205, 3205, 3214, 3215, 3218, 3218, 3229, 3229, 3241, 3241,
- 3251, 3252, 3253, 3259, 3260, 3263, 3263, 3274, 3282, 3282,
- 3295, 3296, 3297, 3303, 3303, 3311, 3312, 3313, 3318, 3319,
- 3320, 3321, 3322, 3323, 3324, 3327, 3333, 3333, 3342, 3342,
- 3353, 3354, 3355, 3360, 3360, 3368, 3369, 3370, 3375, 3376,
- 3377, 3378, 3379, 3382, 3382, 3391, 3397, 3403, 3409, 3409,
- 3418, 3418, 3429, 3430, 3431, 3436, 3437, 3440
+ 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259,
+ 2262, 2262, 2271, 2277, 2277, 2302, 2302, 2332, 2332, 2345,
+ 2346, 2349, 2350, 2351, 2356, 2356, 2368, 2368, 2380, 2381,
+ 2382, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395,
+ 2396, 2397, 2398, 2399, 2400, 2403, 2403, 2412, 2418, 2418,
+ 2427, 2433, 2442, 2442, 2453, 2454, 2457, 2458, 2459, 2464,
+ 2464, 2473, 2473, 2482, 2483, 2486, 2487, 2488, 2494, 2495,
+ 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505,
+ 2508, 2508, 2519, 2519, 2530, 2530, 2541, 2541, 2550, 2550,
+ 2559, 2559, 2568, 2568, 2577, 2577, 2591, 2591, 2602, 2608,
+ 2608, 2619, 2620, 2621, 2626, 2626, 2636, 2637, 2640, 2641,
+ 2642, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655,
+ 2656, 2657, 2658, 2659, 2660, 2661, 2664, 2666, 2666, 2675,
+ 2675, 2685, 2691, 2700, 2700, 2713, 2714, 2715, 2720, 2721,
+ 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2731, 2731, 2739,
+ 2740, 2741, 2744, 2750, 2750, 2759, 2765, 2773, 2781, 2781,
+ 2793, 2793, 2805, 2806, 2809, 2810, 2811, 2816, 2816, 2824,
+ 2825, 2826, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838,
+ 2839, 2840, 2841, 2842, 2843, 2846, 2846, 2855, 2856, 2857,
+ 2860, 2860, 2870, 2870, 2880, 2886, 2892, 2892, 2903, 2904,
+ 2907, 2908, 2909, 2914, 2914, 2922, 2923, 2924, 2929, 2930,
+ 2931, 2932, 2933, 2936, 2936, 2947, 2947, 2960, 2961, 2962,
+ 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2976, 2976, 2984,
+ 2987, 2987, 2996, 2996, 3005, 3005, 3016, 3017, 3020, 3021,
+ 3022, 3027, 3027, 3035, 3036, 3037, 3042, 3043, 3044, 3045,
+ 3046, 3047, 3048, 3051, 3051, 3060, 3060, 3071, 3071, 3084,
+ 3085, 3086, 3091, 3092, 3093, 3094, 3095, 3096, 3099, 3105,
+ 3105, 3114, 3120, 3120, 3130, 3130, 3143, 3143, 3153, 3154,
+ 3155, 3160, 3161, 3162, 3163, 3164, 3165, 3166, 3167, 3168,
+ 3169, 3170, 3173, 3179, 3179, 3188, 3194, 3194, 3203, 3209,
+ 3215, 3215, 3224, 3225, 3228, 3228, 3239, 3239, 3251, 3251,
+ 3261, 3262, 3263, 3269, 3270, 3273, 3273, 3284, 3292, 3292,
+ 3305, 3306, 3307, 3313, 3313, 3321, 3322, 3323, 3328, 3329,
+ 3330, 3331, 3332, 3333, 3334, 3337, 3343, 3343, 3352, 3352,
+ 3363, 3364, 3365, 3370, 3370, 3378, 3379, 3380, 3385, 3386,
+ 3387, 3388, 3389, 3392, 3392, 3401, 3407, 3413, 3419, 3419,
+ 3428, 3428, 3439, 3440, 3441, 3446, 3447, 3450
};
void
#line 14 "dhcp6_parser.yy"
} } // isc::dhcp
-#line 7169 "dhcp6_parser.cc"
+#line 7179 "dhcp6_parser.cc"
-#line 3446 "dhcp6_parser.yy"
+#line 3456 "dhcp6_parser.yy"
void