584 int yyerrstatus_ = 0;
590 stack_symbol_type yyerror_range[3];
607 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
613 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
617 if (yystack_[0].state == yyfinal_)
628 yyn = yypact_[+yystack_[0].state];
629 if (yy_pact_value_is_default_ (yyn))
641 yyla.
move (yylookahead);
646 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
667 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.
kind ())
676 if (yy_table_value_is_error_ (yyn))
687 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
695 yyn = yydefact_[+yystack_[0].state];
707 stack_symbol_type yylhs;
708 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
749 stack_type::slice range (yystack_, yylen);
763#line 332 "dhcp6_parser.yy"
765#line 766 "dhcp6_parser.cc"
769#line 333 "dhcp6_parser.yy"
771#line 772 "dhcp6_parser.cc"
775#line 334 "dhcp6_parser.yy"
777#line 778 "dhcp6_parser.cc"
781#line 335 "dhcp6_parser.yy"
783#line 784 "dhcp6_parser.cc"
787#line 336 "dhcp6_parser.yy"
789#line 790 "dhcp6_parser.cc"
793#line 337 "dhcp6_parser.yy"
795#line 796 "dhcp6_parser.cc"
799#line 338 "dhcp6_parser.yy"
801#line 802 "dhcp6_parser.cc"
805#line 339 "dhcp6_parser.yy"
807#line 808 "dhcp6_parser.cc"
811#line 340 "dhcp6_parser.yy"
813#line 814 "dhcp6_parser.cc"
817#line 341 "dhcp6_parser.yy"
819#line 820 "dhcp6_parser.cc"
823#line 342 "dhcp6_parser.yy"
825#line 826 "dhcp6_parser.cc"
829#line 343 "dhcp6_parser.yy"
831#line 832 "dhcp6_parser.cc"
835#line 344 "dhcp6_parser.yy"
837#line 838 "dhcp6_parser.cc"
841#line 345 "dhcp6_parser.yy"
843#line 844 "dhcp6_parser.cc"
847#line 353 "dhcp6_parser.yy"
849#line 850 "dhcp6_parser.cc"
853#line 354 "dhcp6_parser.yy"
855#line 856 "dhcp6_parser.cc"
859#line 355 "dhcp6_parser.yy"
861#line 862 "dhcp6_parser.cc"
865#line 356 "dhcp6_parser.yy"
867#line 868 "dhcp6_parser.cc"
871#line 357 "dhcp6_parser.yy"
873#line 874 "dhcp6_parser.cc"
877#line 358 "dhcp6_parser.yy"
879#line 880 "dhcp6_parser.cc"
883#line 359 "dhcp6_parser.yy"
885#line 886 "dhcp6_parser.cc"
889#line 362 "dhcp6_parser.yy"
894#line 895 "dhcp6_parser.cc"
898#line 367 "dhcp6_parser.yy"
905#line 906 "dhcp6_parser.cc"
909#line 372 "dhcp6_parser.yy"
915#line 916 "dhcp6_parser.cc"
919#line 378 "dhcp6_parser.yy"
921#line 922 "dhcp6_parser.cc"
925#line 385 "dhcp6_parser.yy"
928 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
929 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
931#line 932 "dhcp6_parser.cc"
935#line 390 "dhcp6_parser.yy"
939 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
940 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
942#line 943 "dhcp6_parser.cc"
946#line 396 "dhcp6_parser.yy"
950#line 951 "dhcp6_parser.cc"
954#line 401 "dhcp6_parser.yy"
959#line 960 "dhcp6_parser.cc"
963#line 404 "dhcp6_parser.yy"
967#line 968 "dhcp6_parser.cc"
971#line 412 "dhcp6_parser.yy"
976#line 977 "dhcp6_parser.cc"
980#line 416 "dhcp6_parser.yy"
985#line 986 "dhcp6_parser.cc"
989#line 420 "dhcp6_parser.yy"
993#line 994 "dhcp6_parser.cc"
997#line 426 "dhcp6_parser.yy"
1001#line 1002 "dhcp6_parser.cc"
1005#line 428 "dhcp6_parser.yy"
1010#line 1011 "dhcp6_parser.cc"
1014#line 437 "dhcp6_parser.yy"
1017 ctx.
stack_.back()->add(s);
1019#line 1020 "dhcp6_parser.cc"
1023#line 441 "dhcp6_parser.yy"
1026 ctx.
stack_.back()->add(s);
1028#line 1029 "dhcp6_parser.cc"
1032#line 445 "dhcp6_parser.yy"
1036#line 1037 "dhcp6_parser.cc"
1040#line 455 "dhcp6_parser.yy"
1043 const std::string& keyword = yystack_[1].value.as < std::string > ();
1044 error(yystack_[1].location,
1045 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
1047#line 1048 "dhcp6_parser.cc"
1051#line 464 "dhcp6_parser.yy"
1058#line 1059 "dhcp6_parser.cc"
1062#line 469 "dhcp6_parser.yy"
1071#line 1072 "dhcp6_parser.cc"
1075#line 479 "dhcp6_parser.yy"
1082 ctx.
stack_.back()->set(
"Dhcp6", m);
1086#line 1087 "dhcp6_parser.cc"
1090#line 488 "dhcp6_parser.yy"
1096#line 1097 "dhcp6_parser.cc"
1100#line 496 "dhcp6_parser.yy"
1104#line 1105 "dhcp6_parser.cc"
1108#line 502 "dhcp6_parser.yy"
1114#line 1115 "dhcp6_parser.cc"
1118#line 506 "dhcp6_parser.yy"
1123#line 1124 "dhcp6_parser.cc"
1127#line 513 "dhcp6_parser.yy"
1131#line 1132 "dhcp6_parser.cc"
1135#line 594 "dhcp6_parser.yy"
1137 ctx.
unique(
"data-directory", ctx.
loc2pos(yystack_[0].location));
1140#line 1141 "dhcp6_parser.cc"
1144#line 597 "dhcp6_parser.yy"
1147 ctx.
stack_.back()->set(
"data-directory", datadir);
1150#line 1151 "dhcp6_parser.cc"
1154#line 603 "dhcp6_parser.yy"
1156 ctx.
unique(
"preferred-lifetime", ctx.
loc2pos(yystack_[2].location));
1158 ctx.
stack_.back()->set(
"preferred-lifetime", prf);
1160#line 1161 "dhcp6_parser.cc"
1164#line 609 "dhcp6_parser.yy"
1166 ctx.
unique(
"min-preferred-lifetime", ctx.
loc2pos(yystack_[2].location));
1168 ctx.
stack_.back()->set(
"min-preferred-lifetime", prf);
1170#line 1171 "dhcp6_parser.cc"
1174#line 615 "dhcp6_parser.yy"
1176 ctx.
unique(
"max-preferred-lifetime", ctx.
loc2pos(yystack_[2].location));
1178 ctx.
stack_.back()->set(
"max-preferred-lifetime", prf);
1180#line 1181 "dhcp6_parser.cc"
1184#line 621 "dhcp6_parser.yy"
1186 ctx.
unique(
"valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1188 ctx.
stack_.back()->set(
"valid-lifetime", prf);
1190#line 1191 "dhcp6_parser.cc"
1194#line 627 "dhcp6_parser.yy"
1196 ctx.
unique(
"min-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1198 ctx.
stack_.back()->set(
"min-valid-lifetime", prf);
1200#line 1201 "dhcp6_parser.cc"
1204#line 633 "dhcp6_parser.yy"
1206 ctx.
unique(
"max-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1208 ctx.
stack_.back()->set(
"max-valid-lifetime", prf);
1210#line 1211 "dhcp6_parser.cc"
1214#line 639 "dhcp6_parser.yy"
1216 ctx.
unique(
"renew-timer", ctx.
loc2pos(yystack_[2].location));
1218 ctx.
stack_.back()->set(
"renew-timer", prf);
1220#line 1221 "dhcp6_parser.cc"
1224#line 645 "dhcp6_parser.yy"
1226 ctx.
unique(
"rebind-timer", ctx.
loc2pos(yystack_[2].location));
1228 ctx.
stack_.back()->set(
"rebind-timer", prf);
1230#line 1231 "dhcp6_parser.cc"
1234#line 651 "dhcp6_parser.yy"
1236 ctx.
unique(
"calculate-tee-times", ctx.
loc2pos(yystack_[2].location));
1238 ctx.
stack_.back()->set(
"calculate-tee-times", ctt);
1240#line 1241 "dhcp6_parser.cc"
1244#line 657 "dhcp6_parser.yy"
1246 ctx.
unique(
"t1-percent", ctx.
loc2pos(yystack_[2].location));
1248 ctx.
stack_.back()->set(
"t1-percent", t1);
1250#line 1251 "dhcp6_parser.cc"
1254#line 663 "dhcp6_parser.yy"
1256 ctx.
unique(
"t2-percent", ctx.
loc2pos(yystack_[2].location));
1258 ctx.
stack_.back()->set(
"t2-percent", t2);
1260#line 1261 "dhcp6_parser.cc"
1264#line 669 "dhcp6_parser.yy"
1266 ctx.
unique(
"cache-threshold", ctx.
loc2pos(yystack_[2].location));
1268 ctx.
stack_.back()->set(
"cache-threshold", ct);
1270#line 1271 "dhcp6_parser.cc"
1274#line 675 "dhcp6_parser.yy"
1276 ctx.
unique(
"cache-max-age", ctx.
loc2pos(yystack_[2].location));
1278 ctx.
stack_.back()->set(
"cache-max-age", cm);
1280#line 1281 "dhcp6_parser.cc"
1284#line 681 "dhcp6_parser.yy"
1286 ctx.
unique(
"decline-probation-period", ctx.
loc2pos(yystack_[2].location));
1288 ctx.
stack_.back()->set(
"decline-probation-period", dpp);
1290#line 1291 "dhcp6_parser.cc"
1294#line 687 "dhcp6_parser.yy"
1296 ctx.
unique(
"ddns-send-updates", ctx.
loc2pos(yystack_[2].location));
1298 ctx.
stack_.back()->set(
"ddns-send-updates", b);
1300#line 1301 "dhcp6_parser.cc"
1304#line 693 "dhcp6_parser.yy"
1306 ctx.
unique(
"ddns-override-no-update", ctx.
loc2pos(yystack_[2].location));
1308 ctx.
stack_.back()->set(
"ddns-override-no-update", b);
1310#line 1311 "dhcp6_parser.cc"
1314#line 699 "dhcp6_parser.yy"
1316 ctx.
unique(
"ddns-override-client-update", ctx.
loc2pos(yystack_[2].location));
1318 ctx.
stack_.back()->set(
"ddns-override-client-update", b);
1320#line 1321 "dhcp6_parser.cc"
1324#line 705 "dhcp6_parser.yy"
1327 ctx.
unique(
"ddns-replace-client-name", ctx.
loc2pos(yystack_[0].location));
1329#line 1330 "dhcp6_parser.cc"
1333#line 708 "dhcp6_parser.yy"
1335 ctx.
stack_.back()->set(
"ddns-replace-client-name", yystack_[0].value.as <
ElementPtr > ());
1338#line 1339 "dhcp6_parser.cc"
1342#line 714 "dhcp6_parser.yy"
1346#line 1347 "dhcp6_parser.cc"
1350#line 717 "dhcp6_parser.yy"
1354#line 1355 "dhcp6_parser.cc"
1358#line 720 "dhcp6_parser.yy"
1362#line 1363 "dhcp6_parser.cc"
1366#line 723 "dhcp6_parser.yy"
1370#line 1371 "dhcp6_parser.cc"
1374#line 726 "dhcp6_parser.yy"
1376 error(yystack_[0].location,
"boolean values for the ddns-replace-client-name are "
1377 "no longer supported");
1379#line 1380 "dhcp6_parser.cc"
1383#line 732 "dhcp6_parser.yy"
1385 ctx.
unique(
"ddns-generated-prefix", ctx.
loc2pos(yystack_[0].location));
1388#line 1389 "dhcp6_parser.cc"
1392#line 735 "dhcp6_parser.yy"
1395 ctx.
stack_.back()->set(
"ddns-generated-prefix", s);
1398#line 1399 "dhcp6_parser.cc"
1402#line 741 "dhcp6_parser.yy"
1404 ctx.
unique(
"ddns-qualifying-suffix", ctx.
loc2pos(yystack_[0].location));
1407#line 1408 "dhcp6_parser.cc"
1411#line 744 "dhcp6_parser.yy"
1414 ctx.
stack_.back()->set(
"ddns-qualifying-suffix", s);
1417#line 1418 "dhcp6_parser.cc"
1421#line 750 "dhcp6_parser.yy"
1423 ctx.
unique(
"ddns-update-on-renew", ctx.
loc2pos(yystack_[2].location));
1425 ctx.
stack_.back()->set(
"ddns-update-on-renew", b);
1427#line 1428 "dhcp6_parser.cc"
1431#line 759 "dhcp6_parser.yy"
1433 ctx.
unique(
"ddns-use-conflict-resolution", ctx.
loc2pos(yystack_[2].location));
1435 ctx.
warning(yystack_[1].location,
"ddns-use-conflict-resolution is deprecated. "
1436 "Substituting ddns-conflict-resolution-mode");
1438 :
"no-check-with-dhcid"));
1439 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", mode);
1441#line 1442 "dhcp6_parser.cc"
1445#line 769 "dhcp6_parser.yy"
1447 ctx.
unique(
"ddns-conflict-resolution-mode", ctx.
loc2pos(yystack_[0].location));
1450#line 1451 "dhcp6_parser.cc"
1454#line 772 "dhcp6_parser.yy"
1456 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", yystack_[0].value.as <
ElementPtr > ());
1459#line 1460 "dhcp6_parser.cc"
1463#line 778 "dhcp6_parser.yy"
1467#line 1468 "dhcp6_parser.cc"
1471#line 781 "dhcp6_parser.yy"
1475#line 1476 "dhcp6_parser.cc"
1479#line 784 "dhcp6_parser.yy"
1483#line 1484 "dhcp6_parser.cc"
1487#line 787 "dhcp6_parser.yy"
1491#line 1492 "dhcp6_parser.cc"
1495#line 792 "dhcp6_parser.yy"
1497 ctx.
unique(
"ddns-ttl-percent", ctx.
loc2pos(yystack_[2].location));
1499 ctx.
stack_.back()->set(
"ddns-ttl-percent", ttl);
1501#line 1502 "dhcp6_parser.cc"
1505#line 798 "dhcp6_parser.yy"
1509 ctx.
stack_.back()->set(
"ddns-ttl", ttl);
1511#line 1512 "dhcp6_parser.cc"
1515#line 804 "dhcp6_parser.yy"
1517 ctx.
unique(
"ddns-ttl-min", ctx.
loc2pos(yystack_[2].location));
1519 ctx.
stack_.back()->set(
"ddns-ttl-min", ttl);
1521#line 1522 "dhcp6_parser.cc"
1525#line 810 "dhcp6_parser.yy"
1527 ctx.
unique(
"ddns-ttl-max", ctx.
loc2pos(yystack_[2].location));
1529 ctx.
stack_.back()->set(
"ddns-ttl-max", ttl);
1531#line 1532 "dhcp6_parser.cc"
1535#line 816 "dhcp6_parser.yy"
1537 ctx.
unique(
"hostname-char-set", ctx.
loc2pos(yystack_[0].location));
1540#line 1541 "dhcp6_parser.cc"
1544#line 819 "dhcp6_parser.yy"
1547 ctx.
stack_.back()->set(
"hostname-char-set", s);
1550#line 1551 "dhcp6_parser.cc"
1554#line 825 "dhcp6_parser.yy"
1556 ctx.
unique(
"hostname-char-replacement", ctx.
loc2pos(yystack_[0].location));
1559#line 1560 "dhcp6_parser.cc"
1563#line 828 "dhcp6_parser.yy"
1566 ctx.
stack_.back()->set(
"hostname-char-replacement", s);
1569#line 1570 "dhcp6_parser.cc"
1573#line 834 "dhcp6_parser.yy"
1575 ctx.
unique(
"store-extended-info", ctx.
loc2pos(yystack_[2].location));
1577 ctx.
stack_.back()->set(
"store-extended-info", b);
1579#line 1580 "dhcp6_parser.cc"
1583#line 840 "dhcp6_parser.yy"
1585 ctx.
unique(
"statistic-default-sample-count", ctx.
loc2pos(yystack_[2].location));
1587 ctx.
stack_.back()->set(
"statistic-default-sample-count", count);
1589#line 1590 "dhcp6_parser.cc"
1593#line 846 "dhcp6_parser.yy"
1595 ctx.
unique(
"statistic-default-sample-age", ctx.
loc2pos(yystack_[2].location));
1597 ctx.
stack_.back()->set(
"statistic-default-sample-age", age);
1599#line 1600 "dhcp6_parser.cc"
1603#line 852 "dhcp6_parser.yy"
1605 ctx.
unique(
"server-tag", ctx.
loc2pos(yystack_[0].location));
1608#line 1609 "dhcp6_parser.cc"
1612#line 855 "dhcp6_parser.yy"
1615 ctx.
stack_.back()->set(
"server-tag", stag);
1618#line 1619 "dhcp6_parser.cc"
1622#line 861 "dhcp6_parser.yy"
1624 ctx.
unique(
"parked-packet-limit", ctx.
loc2pos(yystack_[2].location));
1626 ctx.
stack_.back()->set(
"parked-packet-limit", ppl);
1628#line 1629 "dhcp6_parser.cc"
1632#line 867 "dhcp6_parser.yy"
1637#line 1638 "dhcp6_parser.cc"
1641#line 870 "dhcp6_parser.yy"
1644 ctx.
stack_.back()->set(
"allocator", al);
1647#line 1648 "dhcp6_parser.cc"
1651#line 876 "dhcp6_parser.yy"
1653 ctx.
unique(
"pd-allocator", ctx.
loc2pos(yystack_[0].location));
1656#line 1657 "dhcp6_parser.cc"
1660#line 879 "dhcp6_parser.yy"
1663 ctx.
stack_.back()->set(
"pd-allocator", al);
1666#line 1667 "dhcp6_parser.cc"
1670#line 885 "dhcp6_parser.yy"
1672 ctx.
unique(
"early-global-reservations-lookup", ctx.
loc2pos(yystack_[2].location));
1674 ctx.
stack_.back()->set(
"early-global-reservations-lookup", early);
1676#line 1677 "dhcp6_parser.cc"
1680#line 891 "dhcp6_parser.yy"
1682 ctx.
unique(
"ip-reservations-unique", ctx.
loc2pos(yystack_[2].location));
1684 ctx.
stack_.back()->set(
"ip-reservations-unique", unique);
1686#line 1687 "dhcp6_parser.cc"
1690#line 897 "dhcp6_parser.yy"
1692 ctx.
unique(
"reservations-lookup-first", ctx.
loc2pos(yystack_[2].location));
1694 ctx.
stack_.back()->set(
"reservations-lookup-first", first);
1696#line 1697 "dhcp6_parser.cc"
1700#line 903 "dhcp6_parser.yy"
1702 ctx.
unique(
"interfaces-config", ctx.
loc2pos(yystack_[0].location));
1704 ctx.
stack_.back()->set(
"interfaces-config", i);
1708#line 1709 "dhcp6_parser.cc"
1712#line 909 "dhcp6_parser.yy"
1718#line 1719 "dhcp6_parser.cc"
1722#line 915 "dhcp6_parser.yy"
1728#line 1729 "dhcp6_parser.cc"
1732#line 919 "dhcp6_parser.yy"
1737#line 1738 "dhcp6_parser.cc"
1741#line 926 "dhcp6_parser.yy"
1745#line 1746 "dhcp6_parser.cc"
1749#line 941 "dhcp6_parser.yy"
1751 ctx.
unique(
"interfaces", ctx.
loc2pos(yystack_[0].location));
1753 ctx.
stack_.back()->set(
"interfaces", l);
1757#line 1758 "dhcp6_parser.cc"
1761#line 947 "dhcp6_parser.yy"
1766#line 1767 "dhcp6_parser.cc"
1770#line 952 "dhcp6_parser.yy"
1774 ctx.
stack_.back()->set(
"re-detect", b);
1776#line 1777 "dhcp6_parser.cc"
1780#line 958 "dhcp6_parser.yy"
1782 ctx.
unique(
"service-sockets-require-all", ctx.
loc2pos(yystack_[2].location));
1784 ctx.
stack_.back()->set(
"service-sockets-require-all", b);
1786#line 1787 "dhcp6_parser.cc"
1790#line 964 "dhcp6_parser.yy"
1792 ctx.
unique(
"service-sockets-retry-wait-time", ctx.
loc2pos(yystack_[2].location));
1794 ctx.
stack_.back()->set(
"service-sockets-retry-wait-time", n);
1796#line 1797 "dhcp6_parser.cc"
1800#line 970 "dhcp6_parser.yy"
1802 ctx.
unique(
"service-sockets-max-retries", ctx.
loc2pos(yystack_[2].location));
1804 ctx.
stack_.back()->set(
"service-sockets-max-retries", n);
1806#line 1807 "dhcp6_parser.cc"
1810#line 976 "dhcp6_parser.yy"
1812 ctx.
unique(
"lease-database", ctx.
loc2pos(yystack_[0].location));
1814 ctx.
stack_.back()->set(
"lease-database", i);
1818#line 1819 "dhcp6_parser.cc"
1822#line 982 "dhcp6_parser.yy"
1829#line 1830 "dhcp6_parser.cc"
1833#line 989 "dhcp6_parser.yy"
1835 ctx.
unique(
"hosts-database", ctx.
loc2pos(yystack_[0].location));
1837 ctx.
stack_.back()->set(
"hosts-database", i);
1841#line 1842 "dhcp6_parser.cc"
1845#line 995 "dhcp6_parser.yy"
1852#line 1853 "dhcp6_parser.cc"
1856#line 1002 "dhcp6_parser.yy"
1858 ctx.
unique(
"hosts-databases", ctx.
loc2pos(yystack_[0].location));
1860 ctx.
stack_.back()->set(
"hosts-databases", l);
1864#line 1865 "dhcp6_parser.cc"
1868#line 1008 "dhcp6_parser.yy"
1873#line 1874 "dhcp6_parser.cc"
1877#line 1019 "dhcp6_parser.yy"
1881#line 1882 "dhcp6_parser.cc"
1885#line 1024 "dhcp6_parser.yy"
1888 ctx.
stack_.back()->add(m);
1891#line 1892 "dhcp6_parser.cc"
1895#line 1028 "dhcp6_parser.yy"
1901#line 1902 "dhcp6_parser.cc"
1905#line 1036 "dhcp6_parser.yy"
1909#line 1910 "dhcp6_parser.cc"
1913#line 1066 "dhcp6_parser.yy"
1918#line 1919 "dhcp6_parser.cc"
1922#line 1069 "dhcp6_parser.yy"
1925 ctx.
stack_.back()->set(
"type", db_type);
1928#line 1929 "dhcp6_parser.cc"
1932#line 1075 "dhcp6_parser.yy"
1937#line 1938 "dhcp6_parser.cc"
1941#line 1078 "dhcp6_parser.yy"
1944 ctx.
stack_.back()->set(
"user", user);
1947#line 1948 "dhcp6_parser.cc"
1951#line 1084 "dhcp6_parser.yy"
1956#line 1957 "dhcp6_parser.cc"
1960#line 1087 "dhcp6_parser.yy"
1963 ctx.
stack_.back()->set(
"password", pwd);
1966#line 1967 "dhcp6_parser.cc"
1970#line 1093 "dhcp6_parser.yy"
1975#line 1976 "dhcp6_parser.cc"
1979#line 1096 "dhcp6_parser.yy"
1982 ctx.
stack_.back()->set(
"host", h);
1985#line 1986 "dhcp6_parser.cc"
1989#line 1102 "dhcp6_parser.yy"
1993 ctx.
stack_.back()->set(
"port", p);
1995#line 1996 "dhcp6_parser.cc"
1999#line 1108 "dhcp6_parser.yy"
2004#line 2005 "dhcp6_parser.cc"
2008#line 1111 "dhcp6_parser.yy"
2011 ctx.
stack_.back()->set(
"name", name);
2014#line 2015 "dhcp6_parser.cc"
2018#line 1117 "dhcp6_parser.yy"
2022 ctx.
stack_.back()->set(
"persist", n);
2024#line 2025 "dhcp6_parser.cc"
2028#line 1123 "dhcp6_parser.yy"
2030 ctx.
unique(
"lfc-interval", ctx.
loc2pos(yystack_[2].location));
2032 ctx.
stack_.back()->set(
"lfc-interval", n);
2034#line 2035 "dhcp6_parser.cc"
2038#line 1129 "dhcp6_parser.yy"
2042 ctx.
stack_.back()->set(
"readonly", n);
2044#line 2045 "dhcp6_parser.cc"
2048#line 1135 "dhcp6_parser.yy"
2050 ctx.
unique(
"connect-timeout", ctx.
loc2pos(yystack_[2].location));
2052 ctx.
stack_.back()->set(
"connect-timeout", n);
2054#line 2055 "dhcp6_parser.cc"
2058#line 1141 "dhcp6_parser.yy"
2060 ctx.
unique(
"read-timeout", ctx.
loc2pos(yystack_[2].location));
2062 ctx.
stack_.back()->set(
"read-timeout", n);
2064#line 2065 "dhcp6_parser.cc"
2068#line 1147 "dhcp6_parser.yy"
2070 ctx.
unique(
"write-timeout", ctx.
loc2pos(yystack_[2].location));
2072 ctx.
stack_.back()->set(
"write-timeout", n);
2074#line 2075 "dhcp6_parser.cc"
2078#line 1153 "dhcp6_parser.yy"
2080 ctx.
unique(
"tcp-user-timeout", ctx.
loc2pos(yystack_[2].location));
2082 ctx.
stack_.back()->set(
"tcp-user-timeout", n);
2084#line 2085 "dhcp6_parser.cc"
2088#line 1159 "dhcp6_parser.yy"
2090 ctx.
unique(
"reconnect-wait-time", ctx.
loc2pos(yystack_[2].location));
2092 ctx.
stack_.back()->set(
"reconnect-wait-time", n);
2094#line 2095 "dhcp6_parser.cc"
2098#line 1165 "dhcp6_parser.yy"
2103#line 2104 "dhcp6_parser.cc"
2107#line 1168 "dhcp6_parser.yy"
2112#line 2113 "dhcp6_parser.cc"
2116#line 1173 "dhcp6_parser.yy"
2118#line 2119 "dhcp6_parser.cc"
2122#line 1174 "dhcp6_parser.yy"
2124#line 2125 "dhcp6_parser.cc"
2128#line 1175 "dhcp6_parser.yy"
2130#line 2131 "dhcp6_parser.cc"
2134#line 1178 "dhcp6_parser.yy"
2136 ctx.
unique(
"retry-on-startup", ctx.
loc2pos(yystack_[2].location));
2138 ctx.
stack_.back()->set(
"retry-on-startup", n);
2140#line 2141 "dhcp6_parser.cc"
2144#line 1184 "dhcp6_parser.yy"
2146 ctx.
unique(
"max-row-errors", ctx.
loc2pos(yystack_[2].location));
2148 ctx.
stack_.back()->set(
"max-row-errors", n);
2150#line 2151 "dhcp6_parser.cc"
2154#line 1190 "dhcp6_parser.yy"
2156 ctx.
unique(
"max-reconnect-tries", ctx.
loc2pos(yystack_[2].location));
2158 ctx.
stack_.back()->set(
"max-reconnect-tries", n);
2160#line 2161 "dhcp6_parser.cc"
2164#line 1196 "dhcp6_parser.yy"
2166 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
2169#line 2170 "dhcp6_parser.cc"
2173#line 1199 "dhcp6_parser.yy"
2176 ctx.
stack_.back()->set(
"trust-anchor", ca);
2179#line 2180 "dhcp6_parser.cc"
2183#line 1205 "dhcp6_parser.yy"
2188#line 2189 "dhcp6_parser.cc"
2192#line 1208 "dhcp6_parser.yy"
2195 ctx.
stack_.back()->set(
"cert-file", cert);
2198#line 2199 "dhcp6_parser.cc"
2202#line 1214 "dhcp6_parser.yy"
2207#line 2208 "dhcp6_parser.cc"
2211#line 1217 "dhcp6_parser.yy"
2214 ctx.
stack_.back()->set(
"key-file", key);
2217#line 2218 "dhcp6_parser.cc"
2221#line 1223 "dhcp6_parser.yy"
2223 ctx.
unique(
"cipher-list", ctx.
loc2pos(yystack_[0].location));
2226#line 2227 "dhcp6_parser.cc"
2230#line 1226 "dhcp6_parser.yy"
2233 ctx.
stack_.back()->set(
"cipher-list", cl);
2236#line 2237 "dhcp6_parser.cc"
2240#line 1232 "dhcp6_parser.yy"
2242 ctx.
unique(
"sanity-checks", ctx.
loc2pos(yystack_[0].location));
2244 ctx.
stack_.back()->set(
"sanity-checks", m);
2248#line 2249 "dhcp6_parser.cc"
2252#line 1238 "dhcp6_parser.yy"
2257#line 2258 "dhcp6_parser.cc"
2261#line 1245 "dhcp6_parser.yy"
2265#line 2266 "dhcp6_parser.cc"
2269#line 1254 "dhcp6_parser.yy"
2271 ctx.
unique(
"lease-checks", ctx.
loc2pos(yystack_[0].location));
2274#line 2275 "dhcp6_parser.cc"
2278#line 1257 "dhcp6_parser.yy"
2281 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
2282 (
string(yystack_[0].value.as < std::string > ()) ==
"warn") ||
2283 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
2284 (
string(yystack_[0].value.as < std::string > ()) ==
"fix-del") ||
2285 (
string(yystack_[0].value.as < std::string > ()) ==
"del")) {
2287 ctx.
stack_.back()->set(
"lease-checks", user);
2290 error(yystack_[0].location,
"Unsupported 'lease-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
2291 ", supported values are: none, warn, fix, fix-del, del");
2294#line 2295 "dhcp6_parser.cc"
2298#line 1273 "dhcp6_parser.yy"
2300 ctx.
unique(
"extended-info-checks", ctx.
loc2pos(yystack_[0].location));
2303#line 2304 "dhcp6_parser.cc"
2307#line 1276 "dhcp6_parser.yy"
2310 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
2311 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
2312 (
string(yystack_[0].value.as < std::string > ()) ==
"strict") ||
2313 (
string(yystack_[0].value.as < std::string > ()) ==
"pedantic")) {
2315 ctx.
stack_.back()->set(
"extended-info-checks", user);
2318 error(yystack_[0].location,
"Unsupported 'extended-info-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
2319 ", supported values are: none, fix, strict, pedantic");
2322#line 2323 "dhcp6_parser.cc"
2326#line 1291 "dhcp6_parser.yy"
2328 ctx.
unique(
"mac-sources", ctx.
loc2pos(yystack_[0].location));
2330 ctx.
stack_.back()->set(
"mac-sources", l);
2334#line 2335 "dhcp6_parser.cc"
2338#line 1297 "dhcp6_parser.yy"
2343#line 2344 "dhcp6_parser.cc"
2347#line 1304 "dhcp6_parser.yy"
2351#line 2352 "dhcp6_parser.cc"
2355#line 1313 "dhcp6_parser.yy"
2358 ctx.
stack_.back()->add(duid);
2360#line 2361 "dhcp6_parser.cc"
2364#line 1318 "dhcp6_parser.yy"
2367 ctx.
stack_.back()->add(duid);
2369#line 2370 "dhcp6_parser.cc"
2373#line 1323 "dhcp6_parser.yy"
2375 ctx.
unique(
"host-reservation-identifiers", ctx.
loc2pos(yystack_[0].location));
2377 ctx.
stack_.back()->set(
"host-reservation-identifiers", l);
2381#line 2382 "dhcp6_parser.cc"
2385#line 1329 "dhcp6_parser.yy"
2390#line 2391 "dhcp6_parser.cc"
2394#line 1336 "dhcp6_parser.yy"
2398#line 2399 "dhcp6_parser.cc"
2402#line 1346 "dhcp6_parser.yy"
2405 ctx.
stack_.back()->add(hwaddr);
2407#line 2408 "dhcp6_parser.cc"
2411#line 1351 "dhcp6_parser.yy"
2414 ctx.
stack_.back()->add(flex_id);
2416#line 2417 "dhcp6_parser.cc"
2420#line 1358 "dhcp6_parser.yy"
2422 ctx.
unique(
"relay-supplied-options", ctx.
loc2pos(yystack_[0].location));
2424 ctx.
stack_.back()->set(
"relay-supplied-options", l);
2428#line 2429 "dhcp6_parser.cc"
2432#line 1364 "dhcp6_parser.yy"
2437#line 2438 "dhcp6_parser.cc"
2441#line 1371 "dhcp6_parser.yy"
2443 ctx.
unique(
"multi-threading", ctx.
loc2pos(yystack_[0].location));
2445 ctx.
stack_.back()->set(
"multi-threading", mt);
2446 ctx.
stack_.push_back(mt);
2449#line 2450 "dhcp6_parser.cc"
2453#line 1377 "dhcp6_parser.yy"
2456 ctx.
require(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
2460#line 2461 "dhcp6_parser.cc"
2464#line 1386 "dhcp6_parser.yy"
2468#line 2469 "dhcp6_parser.cc"
2472#line 1399 "dhcp6_parser.yy"
2474 ctx.
unique(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location));
2476 ctx.
stack_.back()->set(
"enable-multi-threading", b);
2478#line 2479 "dhcp6_parser.cc"
2482#line 1405 "dhcp6_parser.yy"
2484 ctx.
unique(
"thread-pool-size", ctx.
loc2pos(yystack_[2].location));
2486 ctx.
stack_.back()->set(
"thread-pool-size", prf);
2488#line 2489 "dhcp6_parser.cc"
2492#line 1411 "dhcp6_parser.yy"
2494 ctx.
unique(
"packet-queue-size", ctx.
loc2pos(yystack_[2].location));
2496 ctx.
stack_.back()->set(
"packet-queue-size", prf);
2498#line 2499 "dhcp6_parser.cc"
2502#line 1417 "dhcp6_parser.yy"
2504 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
2506 ctx.
stack_.back()->set(
"hooks-libraries", l);
2510#line 2511 "dhcp6_parser.cc"
2514#line 1423 "dhcp6_parser.yy"
2519#line 2520 "dhcp6_parser.cc"
2523#line 1434 "dhcp6_parser.yy"
2527#line 2528 "dhcp6_parser.cc"
2531#line 1439 "dhcp6_parser.yy"
2534 ctx.
stack_.back()->add(m);
2537#line 2538 "dhcp6_parser.cc"
2541#line 1443 "dhcp6_parser.yy"
2547#line 2548 "dhcp6_parser.cc"
2551#line 1449 "dhcp6_parser.yy"
2557#line 2558 "dhcp6_parser.cc"
2561#line 1453 "dhcp6_parser.yy"
2567#line 2568 "dhcp6_parser.cc"
2571#line 1461 "dhcp6_parser.yy"
2575#line 2576 "dhcp6_parser.cc"
2579#line 1471 "dhcp6_parser.yy"
2584#line 2585 "dhcp6_parser.cc"
2588#line 1474 "dhcp6_parser.yy"
2591 ctx.
stack_.back()->set(
"library", lib);
2594#line 2595 "dhcp6_parser.cc"
2598#line 1480 "dhcp6_parser.yy"
2600 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
2603#line 2604 "dhcp6_parser.cc"
2607#line 1483 "dhcp6_parser.yy"
2609 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
2612#line 2613 "dhcp6_parser.cc"
2616#line 1489 "dhcp6_parser.yy"
2618 ctx.
unique(
"expired-leases-processing", ctx.
loc2pos(yystack_[0].location));
2620 ctx.
stack_.back()->set(
"expired-leases-processing", m);
2624#line 2625 "dhcp6_parser.cc"
2628#line 1495 "dhcp6_parser.yy"
2634#line 2635 "dhcp6_parser.cc"
2638#line 1503 "dhcp6_parser.yy"
2642#line 2643 "dhcp6_parser.cc"
2646#line 1516 "dhcp6_parser.yy"
2648 ctx.
unique(
"reclaim-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2650 ctx.
stack_.back()->set(
"reclaim-timer-wait-time", value);
2652#line 2653 "dhcp6_parser.cc"
2656#line 1522 "dhcp6_parser.yy"
2658 ctx.
unique(
"flush-reclaimed-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2660 ctx.
stack_.back()->set(
"flush-reclaimed-timer-wait-time", value);
2662#line 2663 "dhcp6_parser.cc"
2666#line 1528 "dhcp6_parser.yy"
2668 ctx.
unique(
"hold-reclaimed-time", ctx.
loc2pos(yystack_[2].location));
2670 ctx.
stack_.back()->set(
"hold-reclaimed-time", value);
2672#line 2673 "dhcp6_parser.cc"
2676#line 1534 "dhcp6_parser.yy"
2678 ctx.
unique(
"max-reclaim-leases", ctx.
loc2pos(yystack_[2].location));
2680 ctx.
stack_.back()->set(
"max-reclaim-leases", value);
2682#line 2683 "dhcp6_parser.cc"
2686#line 1540 "dhcp6_parser.yy"
2688 ctx.
unique(
"max-reclaim-time", ctx.
loc2pos(yystack_[2].location));
2690 ctx.
stack_.back()->set(
"max-reclaim-time", value);
2692#line 2693 "dhcp6_parser.cc"
2696#line 1546 "dhcp6_parser.yy"
2698 ctx.
unique(
"unwarned-reclaim-cycles", ctx.
loc2pos(yystack_[2].location));
2700 ctx.
stack_.back()->set(
"unwarned-reclaim-cycles", value);
2702#line 2703 "dhcp6_parser.cc"
2706#line 1555 "dhcp6_parser.yy"
2710 ctx.
stack_.back()->set(
"subnet6", l);
2714#line 2715 "dhcp6_parser.cc"
2718#line 1561 "dhcp6_parser.yy"
2723#line 2724 "dhcp6_parser.cc"
2727#line 1575 "dhcp6_parser.yy"
2731#line 2732 "dhcp6_parser.cc"
2735#line 1584 "dhcp6_parser.yy"
2738 ctx.
stack_.back()->add(m);
2741#line 2742 "dhcp6_parser.cc"
2745#line 1588 "dhcp6_parser.yy"
2767#line 2768 "dhcp6_parser.cc"
2771#line 1610 "dhcp6_parser.yy"
2777#line 2778 "dhcp6_parser.cc"
2781#line 1614 "dhcp6_parser.yy"
2787#line 2788 "dhcp6_parser.cc"
2791#line 1623 "dhcp6_parser.yy"
2795#line 2796 "dhcp6_parser.cc"
2799#line 1682 "dhcp6_parser.yy"
2804#line 2805 "dhcp6_parser.cc"
2808#line 1685 "dhcp6_parser.yy"
2811 ctx.
stack_.back()->set(
"subnet", subnet);
2814#line 2815 "dhcp6_parser.cc"
2818#line 1691 "dhcp6_parser.yy"
2823#line 2824 "dhcp6_parser.cc"
2827#line 1694 "dhcp6_parser.yy"
2830 ctx.
stack_.back()->set(
"interface", iface);
2833#line 2834 "dhcp6_parser.cc"
2837#line 1700 "dhcp6_parser.yy"
2839 ctx.
unique(
"interface-id", ctx.
loc2pos(yystack_[0].location));
2842#line 2843 "dhcp6_parser.cc"
2846#line 1703 "dhcp6_parser.yy"
2849 ctx.
stack_.back()->set(
"interface-id", iface);
2852#line 2853 "dhcp6_parser.cc"
2856#line 1709 "dhcp6_parser.yy"
2858 ctx.
unique(
"client-class", ctx.
loc2pos(yystack_[0].location));
2861#line 2862 "dhcp6_parser.cc"
2865#line 1712 "dhcp6_parser.yy"
2868 ctx.
stack_.back()->set(
"client-class", cls);
2871#line 2872 "dhcp6_parser.cc"
2875#line 1719 "dhcp6_parser.yy"
2877 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
2879 ctx.
stack_.back()->set(
"client-classes", c);
2883#line 2884 "dhcp6_parser.cc"
2887#line 1725 "dhcp6_parser.yy"
2892#line 2893 "dhcp6_parser.cc"
2896#line 1731 "dhcp6_parser.yy"
2898 ctx.
unique(
"require-client-classes", ctx.
loc2pos(yystack_[0].location));
2900 ctx.
stack_.back()->set(
"require-client-classes", c);
2904#line 2905 "dhcp6_parser.cc"
2908#line 1737 "dhcp6_parser.yy"
2913#line 2914 "dhcp6_parser.cc"
2917#line 1742 "dhcp6_parser.yy"
2919 ctx.
unique(
"evaluate-additional-classes", ctx.
loc2pos(yystack_[0].location));
2921 ctx.
stack_.back()->set(
"evaluate-additional-classes", c);
2925#line 2926 "dhcp6_parser.cc"
2929#line 1748 "dhcp6_parser.yy"
2934#line 2935 "dhcp6_parser.cc"
2938#line 1753 "dhcp6_parser.yy"
2940 ctx.
unique(
"reservations-global", ctx.
loc2pos(yystack_[2].location));
2942 ctx.
stack_.back()->set(
"reservations-global", b);
2944#line 2945 "dhcp6_parser.cc"
2948#line 1759 "dhcp6_parser.yy"
2950 ctx.
unique(
"reservations-in-subnet", ctx.
loc2pos(yystack_[2].location));
2952 ctx.
stack_.back()->set(
"reservations-in-subnet", b);
2954#line 2955 "dhcp6_parser.cc"
2958#line 1765 "dhcp6_parser.yy"
2960 ctx.
unique(
"reservations-out-of-pool", ctx.
loc2pos(yystack_[2].location));
2962 ctx.
stack_.back()->set(
"reservations-out-of-pool", b);
2964#line 2965 "dhcp6_parser.cc"
2968#line 1771 "dhcp6_parser.yy"
2972 ctx.
stack_.back()->set(
"id",
id);
2974#line 2975 "dhcp6_parser.cc"
2978#line 1777 "dhcp6_parser.yy"
2980 ctx.
unique(
"rapid-commit", ctx.
loc2pos(yystack_[2].location));
2982 ctx.
stack_.back()->set(
"rapid-commit", rc);
2984#line 2985 "dhcp6_parser.cc"
2988#line 1785 "dhcp6_parser.yy"
2990 ctx.
unique(
"shared-networks", ctx.
loc2pos(yystack_[0].location));
2992 ctx.
stack_.back()->set(
"shared-networks", l);
2996#line 2997 "dhcp6_parser.cc"
3000#line 1791 "dhcp6_parser.yy"
3005#line 3006 "dhcp6_parser.cc"
3009#line 1804 "dhcp6_parser.yy"
3013#line 3014 "dhcp6_parser.cc"
3017#line 1809 "dhcp6_parser.yy"
3020 ctx.
stack_.back()->add(m);
3023#line 3024 "dhcp6_parser.cc"
3027#line 1813 "dhcp6_parser.yy"
3031#line 3032 "dhcp6_parser.cc"
3035#line 1819 "dhcp6_parser.yy"
3039#line 3040 "dhcp6_parser.cc"
3043#line 1878 "dhcp6_parser.yy"
3045 ctx.
unique(
"option-def", ctx.
loc2pos(yystack_[0].location));
3047 ctx.
stack_.back()->set(
"option-def", l);
3051#line 3052 "dhcp6_parser.cc"
3055#line 1884 "dhcp6_parser.yy"
3060#line 3061 "dhcp6_parser.cc"
3064#line 1892 "dhcp6_parser.yy"
3069#line 3070 "dhcp6_parser.cc"
3073#line 1895 "dhcp6_parser.yy"
3077#line 3078 "dhcp6_parser.cc"
3081#line 1907 "dhcp6_parser.yy"
3085#line 3086 "dhcp6_parser.cc"
3089#line 1914 "dhcp6_parser.yy"
3092 ctx.
stack_.back()->add(m);
3095#line 3096 "dhcp6_parser.cc"
3099#line 1918 "dhcp6_parser.yy"
3107#line 3108 "dhcp6_parser.cc"
3111#line 1929 "dhcp6_parser.yy"
3117#line 3118 "dhcp6_parser.cc"
3121#line 1933 "dhcp6_parser.yy"
3129#line 3130 "dhcp6_parser.cc"
3133#line 1949 "dhcp6_parser.yy"
3137#line 3138 "dhcp6_parser.cc"
3141#line 1968 "dhcp6_parser.yy"
3145 ctx.
stack_.back()->set(
"code", code);
3147#line 3148 "dhcp6_parser.cc"
3151#line 1976 "dhcp6_parser.yy"
3156#line 3157 "dhcp6_parser.cc"
3160#line 1979 "dhcp6_parser.yy"
3163 ctx.
stack_.back()->set(
"type", prf);
3166#line 3167 "dhcp6_parser.cc"
3170#line 1985 "dhcp6_parser.yy"
3172 ctx.
unique(
"record-types", ctx.
loc2pos(yystack_[0].location));
3175#line 3176 "dhcp6_parser.cc"
3179#line 1988 "dhcp6_parser.yy"
3182 ctx.
stack_.back()->set(
"record-types", rtypes);
3185#line 3186 "dhcp6_parser.cc"
3189#line 1994 "dhcp6_parser.yy"
3194#line 3195 "dhcp6_parser.cc"
3198#line 1997 "dhcp6_parser.yy"
3201 ctx.
stack_.back()->set(
"space", space);
3204#line 3205 "dhcp6_parser.cc"
3208#line 2005 "dhcp6_parser.yy"
3210 ctx.
unique(
"encapsulate", ctx.
loc2pos(yystack_[0].location));
3213#line 3214 "dhcp6_parser.cc"
3217#line 2008 "dhcp6_parser.yy"
3220 ctx.
stack_.back()->set(
"encapsulate", encap);
3223#line 3224 "dhcp6_parser.cc"
3227#line 2014 "dhcp6_parser.yy"
3231 ctx.
stack_.back()->set(
"array", array);
3233#line 3234 "dhcp6_parser.cc"
3237#line 2024 "dhcp6_parser.yy"
3239 ctx.
unique(
"option-data", ctx.
loc2pos(yystack_[0].location));
3241 ctx.
stack_.back()->set(
"option-data", l);
3245#line 3246 "dhcp6_parser.cc"
3249#line 2030 "dhcp6_parser.yy"
3254#line 3255 "dhcp6_parser.cc"
3258#line 2045 "dhcp6_parser.yy"
3262#line 3263 "dhcp6_parser.cc"
3266#line 2052 "dhcp6_parser.yy"
3269 ctx.
stack_.back()->add(m);
3272#line 3273 "dhcp6_parser.cc"
3276#line 2056 "dhcp6_parser.yy"
3281#line 3282 "dhcp6_parser.cc"
3285#line 2064 "dhcp6_parser.yy"
3291#line 3292 "dhcp6_parser.cc"
3295#line 2068 "dhcp6_parser.yy"
3300#line 3301 "dhcp6_parser.cc"
3304#line 2084 "dhcp6_parser.yy"
3308#line 3309 "dhcp6_parser.cc"
3312#line 2106 "dhcp6_parser.yy"
3317#line 3318 "dhcp6_parser.cc"
3321#line 2109 "dhcp6_parser.yy"
3324 ctx.
stack_.back()->set(
"data", data);
3327#line 3328 "dhcp6_parser.cc"
3331#line 2119 "dhcp6_parser.yy"
3333 ctx.
unique(
"csv-format", ctx.
loc2pos(yystack_[2].location));
3335 ctx.
stack_.back()->set(
"csv-format", csv);
3337#line 3338 "dhcp6_parser.cc"
3341#line 2125 "dhcp6_parser.yy"
3343 ctx.
unique(
"always-send", ctx.
loc2pos(yystack_[2].location));
3345 ctx.
stack_.back()->set(
"always-send", persist);
3347#line 3348 "dhcp6_parser.cc"
3351#line 2131 "dhcp6_parser.yy"
3353 ctx.
unique(
"never-send", ctx.
loc2pos(yystack_[2].location));
3355 ctx.
stack_.back()->set(
"never-send", cancel);
3357#line 3358 "dhcp6_parser.cc"
3361#line 2137 "dhcp6_parser.yy"
3363 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3365 ctx.
stack_.back()->set(
"client-classes", c);
3369#line 3370 "dhcp6_parser.cc"
3373#line 2143 "dhcp6_parser.yy"
3378#line 3379 "dhcp6_parser.cc"
3382#line 2151 "dhcp6_parser.yy"
3386 ctx.
stack_.back()->set(
"pools", l);
3390#line 3391 "dhcp6_parser.cc"
3394#line 2157 "dhcp6_parser.yy"
3399#line 3400 "dhcp6_parser.cc"
3403#line 2170 "dhcp6_parser.yy"
3407#line 3408 "dhcp6_parser.cc"
3411#line 2175 "dhcp6_parser.yy"
3414 ctx.
stack_.back()->add(m);
3417#line 3418 "dhcp6_parser.cc"
3421#line 2179 "dhcp6_parser.yy"
3427#line 3428 "dhcp6_parser.cc"
3431#line 2185 "dhcp6_parser.yy"
3437#line 3438 "dhcp6_parser.cc"
3441#line 2189 "dhcp6_parser.yy"
3447#line 3448 "dhcp6_parser.cc"
3451#line 2197 "dhcp6_parser.yy"
3455#line 3456 "dhcp6_parser.cc"
3459#line 2214 "dhcp6_parser.yy"
3464#line 3465 "dhcp6_parser.cc"
3468#line 2217 "dhcp6_parser.yy"
3471 ctx.
stack_.back()->set(
"pool", pool);
3474#line 3475 "dhcp6_parser.cc"
3478#line 2223 "dhcp6_parser.yy"
3482 ctx.
stack_.back()->set(
"pool-id",
id);
3484#line 3485 "dhcp6_parser.cc"
3488#line 2229 "dhcp6_parser.yy"
3492#line 3493 "dhcp6_parser.cc"
3496#line 2231 "dhcp6_parser.yy"
3505 if ((old->size() != 1) || !old->contains(
"comment")) {
3506 std::stringstream msg;
3507 msg <<
"duplicate user-context entries (previous at "
3508 << old->getPosition().str() <<
")";
3509 error(yystack_[3].location, msg.str());
3512 user_context->set(
"comment", old->get(
"comment"));
3516 parent->set(
"user-context", user_context);
3519#line 3520 "dhcp6_parser.cc"
3523#line 2254 "dhcp6_parser.yy"
3527#line 3528 "dhcp6_parser.cc"
3531#line 2256 "dhcp6_parser.yy"
3536 user_context->set(
"comment", comment);
3542 if (old->contains(
"comment")) {
3543 std::stringstream msg;
3544 msg <<
"duplicate user-context/comment entries (previous at "
3545 << old->getPosition().str() <<
")";
3546 error(yystack_[3].location, msg.str());
3549 merge(user_context, old);
3553 parent->set(
"user-context", user_context);
3556#line 3557 "dhcp6_parser.cc"
3560#line 2284 "dhcp6_parser.yy"
3564 ctx.
stack_.back()->set(
"pd-pools", l);
3568#line 3569 "dhcp6_parser.cc"
3572#line 2290 "dhcp6_parser.yy"
3577#line 3578 "dhcp6_parser.cc"
3581#line 2303 "dhcp6_parser.yy"
3585#line 3586 "dhcp6_parser.cc"
3589#line 2308 "dhcp6_parser.yy"
3592 ctx.
stack_.back()->add(m);
3595#line 3596 "dhcp6_parser.cc"
3599#line 2312 "dhcp6_parser.yy"
3607#line 3608 "dhcp6_parser.cc"
3611#line 2320 "dhcp6_parser.yy"
3617#line 3618 "dhcp6_parser.cc"
3621#line 2324 "dhcp6_parser.yy"
3629#line 3630 "dhcp6_parser.cc"
3633#line 2334 "dhcp6_parser.yy"
3637#line 3638 "dhcp6_parser.cc"
3641#line 2355 "dhcp6_parser.yy"
3646#line 3647 "dhcp6_parser.cc"
3650#line 2358 "dhcp6_parser.yy"
3653 ctx.
stack_.back()->set(
"prefix", prf);
3656#line 3657 "dhcp6_parser.cc"
3660#line 2364 "dhcp6_parser.yy"
3662 ctx.
unique(
"prefix-len", ctx.
loc2pos(yystack_[2].location));
3664 ctx.
stack_.back()->set(
"prefix-len", prf);
3666#line 3667 "dhcp6_parser.cc"
3670#line 2370 "dhcp6_parser.yy"
3672 ctx.
unique(
"excluded-prefix", ctx.
loc2pos(yystack_[0].location));
3675#line 3676 "dhcp6_parser.cc"
3679#line 2373 "dhcp6_parser.yy"
3682 ctx.
stack_.back()->set(
"excluded-prefix", prf);
3685#line 3686 "dhcp6_parser.cc"
3689#line 2379 "dhcp6_parser.yy"
3691 ctx.
unique(
"excluded-prefix-len", ctx.
loc2pos(yystack_[2].location));
3693 ctx.
stack_.back()->set(
"excluded-prefix-len", prf);
3695#line 3696 "dhcp6_parser.cc"
3699#line 2385 "dhcp6_parser.yy"
3701 ctx.
unique(
"delegated-len", ctx.
loc2pos(yystack_[2].location));
3703 ctx.
stack_.back()->set(
"delegated-len", deleg);
3705#line 3706 "dhcp6_parser.cc"
3709#line 2394 "dhcp6_parser.yy"
3711 ctx.
unique(
"reservations", ctx.
loc2pos(yystack_[0].location));
3713 ctx.
stack_.back()->set(
"reservations", l);
3717#line 3718 "dhcp6_parser.cc"
3721#line 2400 "dhcp6_parser.yy"
3726#line 3727 "dhcp6_parser.cc"
3730#line 2411 "dhcp6_parser.yy"
3734#line 3735 "dhcp6_parser.cc"
3738#line 2416 "dhcp6_parser.yy"
3741 ctx.
stack_.back()->add(m);
3744#line 3745 "dhcp6_parser.cc"
3748#line 2420 "dhcp6_parser.yy"
3753#line 3754 "dhcp6_parser.cc"
3757#line 2425 "dhcp6_parser.yy"
3763#line 3764 "dhcp6_parser.cc"
3767#line 2429 "dhcp6_parser.yy"
3772#line 3773 "dhcp6_parser.cc"
3776#line 2440 "dhcp6_parser.yy"
3780#line 3781 "dhcp6_parser.cc"
3784#line 2460 "dhcp6_parser.yy"
3786 ctx.
unique(
"ip-addresses", ctx.
loc2pos(yystack_[0].location));
3788 ctx.
stack_.back()->set(
"ip-addresses", l);
3792#line 3793 "dhcp6_parser.cc"
3796#line 2466 "dhcp6_parser.yy"
3801#line 3802 "dhcp6_parser.cc"
3805#line 2471 "dhcp6_parser.yy"
3809 ctx.
stack_.back()->set(
"prefixes", l);
3813#line 3814 "dhcp6_parser.cc"
3817#line 2477 "dhcp6_parser.yy"
3822#line 3823 "dhcp6_parser.cc"
3826#line 2482 "dhcp6_parser.yy"
3828 ctx.
unique(
"excluded-prefixes", ctx.
loc2pos(yystack_[0].location));
3830 ctx.
stack_.back()->set(
"excluded-prefixes", l);
3834#line 3835 "dhcp6_parser.cc"
3838#line 2488 "dhcp6_parser.yy"
3843#line 3844 "dhcp6_parser.cc"
3847#line 2493 "dhcp6_parser.yy"
3852#line 3853 "dhcp6_parser.cc"
3856#line 2496 "dhcp6_parser.yy"
3859 ctx.
stack_.back()->set(
"duid", d);
3862#line 3863 "dhcp6_parser.cc"
3866#line 2502 "dhcp6_parser.yy"
3868 ctx.
unique(
"hw-address", ctx.
loc2pos(yystack_[0].location));
3871#line 3872 "dhcp6_parser.cc"
3875#line 2505 "dhcp6_parser.yy"
3878 ctx.
stack_.back()->set(
"hw-address", hw);
3881#line 3882 "dhcp6_parser.cc"
3885#line 2511 "dhcp6_parser.yy"
3890#line 3891 "dhcp6_parser.cc"
3894#line 2514 "dhcp6_parser.yy"
3897 ctx.
stack_.back()->set(
"hostname", host);
3900#line 3901 "dhcp6_parser.cc"
3904#line 2520 "dhcp6_parser.yy"
3909#line 3910 "dhcp6_parser.cc"
3913#line 2523 "dhcp6_parser.yy"
3916 ctx.
stack_.back()->set(
"flex-id", hw);
3919#line 3920 "dhcp6_parser.cc"
3923#line 2529 "dhcp6_parser.yy"
3925 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3927 ctx.
stack_.back()->set(
"client-classes", c);
3931#line 3932 "dhcp6_parser.cc"
3935#line 2535 "dhcp6_parser.yy"
3940#line 3941 "dhcp6_parser.cc"
3944#line 2543 "dhcp6_parser.yy"
3948 ctx.
stack_.back()->set(
"relay", m);
3952#line 3953 "dhcp6_parser.cc"
3956#line 2549 "dhcp6_parser.yy"
3961#line 3962 "dhcp6_parser.cc"
3965#line 2560 "dhcp6_parser.yy"
3967 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3969 ctx.
stack_.back()->set(
"client-classes", l);
3973#line 3974 "dhcp6_parser.cc"
3977#line 2566 "dhcp6_parser.yy"
3982#line 3983 "dhcp6_parser.cc"
3986#line 2573 "dhcp6_parser.yy"
3990#line 3991 "dhcp6_parser.cc"
3994#line 2578 "dhcp6_parser.yy"
3997 ctx.
stack_.back()->add(m);
4000#line 4001 "dhcp6_parser.cc"
4004#line 2582 "dhcp6_parser.yy"
4010#line 4011 "dhcp6_parser.cc"
4014#line 2594 "dhcp6_parser.yy"
4018#line 4019 "dhcp6_parser.cc"
4022#line 2618 "dhcp6_parser.yy"
4027#line 4028 "dhcp6_parser.cc"
4031#line 2621 "dhcp6_parser.yy"
4034 ctx.
stack_.back()->set(
"test", test);
4037#line 4038 "dhcp6_parser.cc"
4041#line 2627 "dhcp6_parser.yy"
4043 ctx.
unique(
"template-test", ctx.
loc2pos(yystack_[0].location));
4046#line 4047 "dhcp6_parser.cc"
4050#line 2630 "dhcp6_parser.yy"
4053 ctx.
stack_.back()->set(
"template-test", template_test);
4056#line 4057 "dhcp6_parser.cc"
4060#line 2637 "dhcp6_parser.yy"
4062 ctx.
unique(
"only-if-required", ctx.
loc2pos(yystack_[2].location));
4064 ctx.
stack_.back()->set(
"only-if-required", b);
4066#line 4067 "dhcp6_parser.cc"
4070#line 2643 "dhcp6_parser.yy"
4072 ctx.
unique(
"only-in-additional-list", ctx.
loc2pos(yystack_[2].location));
4074 ctx.
stack_.back()->set(
"only-in-additional-list", b);
4076#line 4077 "dhcp6_parser.cc"
4080#line 2652 "dhcp6_parser.yy"
4084 ctx.
stack_.back()->set(
"server-id", m);
4088#line 4089 "dhcp6_parser.cc"
4092#line 2658 "dhcp6_parser.yy"
4099#line 4100 "dhcp6_parser.cc"
4103#line 2667 "dhcp6_parser.yy"
4107#line 4108 "dhcp6_parser.cc"
4111#line 2683 "dhcp6_parser.yy"
4116#line 4117 "dhcp6_parser.cc"
4120#line 2686 "dhcp6_parser.yy"
4125#line 4126 "dhcp6_parser.cc"
4129#line 2691 "dhcp6_parser.yy"
4131#line 4132 "dhcp6_parser.cc"
4135#line 2692 "dhcp6_parser.yy"
4137#line 4138 "dhcp6_parser.cc"
4141#line 2693 "dhcp6_parser.yy"
4143#line 4144 "dhcp6_parser.cc"
4147#line 2696 "dhcp6_parser.yy"
4151 ctx.
stack_.back()->set(
"htype", htype);
4153#line 4154 "dhcp6_parser.cc"
4157#line 2702 "dhcp6_parser.yy"
4159 ctx.
unique(
"identifier", ctx.
loc2pos(yystack_[0].location));
4162#line 4163 "dhcp6_parser.cc"
4166#line 2705 "dhcp6_parser.yy"
4169 ctx.
stack_.back()->set(
"identifier",
id);
4172#line 4173 "dhcp6_parser.cc"
4176#line 2711 "dhcp6_parser.yy"
4180 ctx.
stack_.back()->set(
"time", time);
4182#line 4183 "dhcp6_parser.cc"
4186#line 2717 "dhcp6_parser.yy"
4188 ctx.
unique(
"enterprise-id", ctx.
loc2pos(yystack_[2].location));
4190 ctx.
stack_.back()->set(
"enterprise-id", time);
4192#line 4193 "dhcp6_parser.cc"
4196#line 2725 "dhcp6_parser.yy"
4198 ctx.
unique(
"dhcp4o6-port", ctx.
loc2pos(yystack_[2].location));
4200 ctx.
stack_.back()->set(
"dhcp4o6-port", time);
4202#line 4203 "dhcp6_parser.cc"
4206#line 2733 "dhcp6_parser.yy"
4208 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
4209 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[0].location));
4211 ctx.
stack_.back()->set(
"control-socket", m);
4215#line 4216 "dhcp6_parser.cc"
4219#line 2740 "dhcp6_parser.yy"
4224#line 4225 "dhcp6_parser.cc"
4228#line 2745 "dhcp6_parser.yy"
4230 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[0].location));
4231 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
4233 ctx.
stack_.back()->set(
"control-sockets", l);
4237#line 4238 "dhcp6_parser.cc"
4241#line 2752 "dhcp6_parser.yy"
4246#line 4247 "dhcp6_parser.cc"
4250#line 2763 "dhcp6_parser.yy"
4254#line 4255 "dhcp6_parser.cc"
4258#line 2768 "dhcp6_parser.yy"
4261 ctx.
stack_.back()->add(m);
4264#line 4265 "dhcp6_parser.cc"
4268#line 2772 "dhcp6_parser.yy"
4272#line 4273 "dhcp6_parser.cc"
4276#line 2778 "dhcp6_parser.yy"
4280#line 4281 "dhcp6_parser.cc"
4284#line 2798 "dhcp6_parser.yy"
4286 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
4289#line 4290 "dhcp6_parser.cc"
4293#line 2801 "dhcp6_parser.yy"
4295 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
4298#line 4299 "dhcp6_parser.cc"
4302#line 2807 "dhcp6_parser.yy"
4304#line 4305 "dhcp6_parser.cc"
4308#line 2808 "dhcp6_parser.yy"
4310#line 4311 "dhcp6_parser.cc"
4314#line 2809 "dhcp6_parser.yy"
4316#line 4317 "dhcp6_parser.cc"
4320#line 2812 "dhcp6_parser.yy"
4322 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
4323 ctx.
unique(
"socket-address", ctx.
loc2pos(yystack_[0].location));
4326#line 4327 "dhcp6_parser.cc"
4330#line 2816 "dhcp6_parser.yy"
4333 ctx.
stack_.back()->set(
"socket-name", name);
4336#line 4337 "dhcp6_parser.cc"
4340#line 2822 "dhcp6_parser.yy"
4342 ctx.
unique(
"socket-address", ctx.
loc2pos(yystack_[0].location));
4343 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
4346#line 4347 "dhcp6_parser.cc"
4350#line 2826 "dhcp6_parser.yy"
4353 ctx.
stack_.back()->set(
"socket-address", address);
4356#line 4357 "dhcp6_parser.cc"
4360#line 2832 "dhcp6_parser.yy"
4362 ctx.
unique(
"socket-port", ctx.
loc2pos(yystack_[2].location));
4364 ctx.
stack_.back()->set(
"socket-port", port);
4366#line 4367 "dhcp6_parser.cc"
4370#line 2838 "dhcp6_parser.yy"
4372 ctx.
unique(
"cert-required", ctx.
loc2pos(yystack_[2].location));
4374 ctx.
stack_.back()->set(
"cert-required", req);
4376#line 4377 "dhcp6_parser.cc"
4380#line 2844 "dhcp6_parser.yy"
4382 ctx.
unique(
"http-headers", ctx.
loc2pos(yystack_[0].location));
4384 ctx.
stack_.back()->set(
"http-headers", l);
4388#line 4389 "dhcp6_parser.cc"
4392#line 2850 "dhcp6_parser.yy"
4397#line 4398 "dhcp6_parser.cc"
4401#line 2861 "dhcp6_parser.yy"
4405#line 4406 "dhcp6_parser.cc"
4409#line 2866 "dhcp6_parser.yy"
4412 ctx.
stack_.back()->add(m);
4415#line 4416 "dhcp6_parser.cc"
4419#line 2870 "dhcp6_parser.yy"
4423#line 4424 "dhcp6_parser.cc"
4427#line 2876 "dhcp6_parser.yy"
4431#line 4432 "dhcp6_parser.cc"
4435#line 2888 "dhcp6_parser.yy"
4440#line 4441 "dhcp6_parser.cc"
4444#line 2891 "dhcp6_parser.yy"
4447 ctx.
stack_.back()->set(
"value", value);
4450#line 4451 "dhcp6_parser.cc"
4454#line 2899 "dhcp6_parser.yy"
4456 ctx.
unique(
"authentication", ctx.
loc2pos(yystack_[0].location));
4458 ctx.
stack_.back()->set(
"authentication", m);
4462#line 4463 "dhcp6_parser.cc"
4466#line 2905 "dhcp6_parser.yy"
4473#line 4474 "dhcp6_parser.cc"
4477#line 2914 "dhcp6_parser.yy"
4481#line 4482 "dhcp6_parser.cc"
4485#line 2928 "dhcp6_parser.yy"
4490#line 4491 "dhcp6_parser.cc"
4494#line 2931 "dhcp6_parser.yy"
4499#line 4500 "dhcp6_parser.cc"
4503#line 2936 "dhcp6_parser.yy"
4505#line 4506 "dhcp6_parser.cc"
4509#line 2939 "dhcp6_parser.yy"
4514#line 4515 "dhcp6_parser.cc"
4518#line 2942 "dhcp6_parser.yy"
4521 ctx.
stack_.back()->set(
"realm", realm);
4524#line 4525 "dhcp6_parser.cc"
4528#line 2948 "dhcp6_parser.yy"
4533#line 4534 "dhcp6_parser.cc"
4537#line 2951 "dhcp6_parser.yy"
4540 ctx.
stack_.back()->set(
"directory", directory);
4543#line 4544 "dhcp6_parser.cc"
4547#line 2957 "dhcp6_parser.yy"
4551 ctx.
stack_.back()->set(
"clients", l);
4555#line 4556 "dhcp6_parser.cc"
4559#line 2963 "dhcp6_parser.yy"
4564#line 4565 "dhcp6_parser.cc"
4568#line 2974 "dhcp6_parser.yy"
4572#line 4573 "dhcp6_parser.cc"
4576#line 2979 "dhcp6_parser.yy"
4579 ctx.
stack_.back()->add(m);
4582#line 4583 "dhcp6_parser.cc"
4586#line 2983 "dhcp6_parser.yy"
4590#line 4591 "dhcp6_parser.cc"
4594#line 2989 "dhcp6_parser.yy"
4598#line 4599 "dhcp6_parser.cc"
4602#line 3003 "dhcp6_parser.yy"
4607#line 4608 "dhcp6_parser.cc"
4611#line 3006 "dhcp6_parser.yy"
4614 ctx.
stack_.back()->set(
"user-file", user);
4617#line 4618 "dhcp6_parser.cc"
4621#line 3012 "dhcp6_parser.yy"
4623 ctx.
unique(
"password-file", ctx.
loc2pos(yystack_[0].location));
4626#line 4627 "dhcp6_parser.cc"
4630#line 3015 "dhcp6_parser.yy"
4633 ctx.
stack_.back()->set(
"password-file", password);
4636#line 4637 "dhcp6_parser.cc"
4640#line 3023 "dhcp6_parser.yy"
4642 ctx.
unique(
"dhcp-queue-control", ctx.
loc2pos(yystack_[0].location));
4644 ctx.
stack_.back()->set(
"dhcp-queue-control", qc);
4645 ctx.
stack_.push_back(qc);
4648#line 4649 "dhcp6_parser.cc"
4652#line 3029 "dhcp6_parser.yy"
4659#line 4660 "dhcp6_parser.cc"
4663#line 3038 "dhcp6_parser.yy"
4667#line 4668 "dhcp6_parser.cc"
4671#line 3051 "dhcp6_parser.yy"
4673 ctx.
unique(
"enable-queue", ctx.
loc2pos(yystack_[2].location));
4675 ctx.
stack_.back()->set(
"enable-queue", b);
4677#line 4678 "dhcp6_parser.cc"
4681#line 3057 "dhcp6_parser.yy"
4683 ctx.
unique(
"queue-type", ctx.
loc2pos(yystack_[0].location));
4686#line 4687 "dhcp6_parser.cc"
4690#line 3060 "dhcp6_parser.yy"
4693 ctx.
stack_.back()->set(
"queue-type", qt);
4696#line 4697 "dhcp6_parser.cc"
4700#line 3066 "dhcp6_parser.yy"
4704 ctx.
stack_.back()->set(
"capacity", c);
4706#line 4707 "dhcp6_parser.cc"
4710#line 3072 "dhcp6_parser.yy"
4712 ctx.
unique(yystack_[0].value.as < std::string > (), ctx.
loc2pos(yystack_[0].location));
4715#line 4716 "dhcp6_parser.cc"
4719#line 3075 "dhcp6_parser.yy"
4721 ctx.
stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
4724#line 4725 "dhcp6_parser.cc"
4728#line 3082 "dhcp6_parser.yy"
4732 ctx.
stack_.back()->set(
"dhcp-ddns", m);
4736#line 4737 "dhcp6_parser.cc"
4740#line 3088 "dhcp6_parser.yy"
4743 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
4747#line 4748 "dhcp6_parser.cc"
4751#line 3095 "dhcp6_parser.yy"
4757#line 4758 "dhcp6_parser.cc"
4761#line 3099 "dhcp6_parser.yy"
4764 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[3].location), ctx.
loc2pos(yystack_[0].location));
4767#line 4768 "dhcp6_parser.cc"
4771#line 3107 "dhcp6_parser.yy"
4775#line 4776 "dhcp6_parser.cc"
4779#line 3125 "dhcp6_parser.yy"
4781 ctx.
unique(
"enable-updates", ctx.
loc2pos(yystack_[2].location));
4783 ctx.
stack_.back()->set(
"enable-updates", b);
4785#line 4786 "dhcp6_parser.cc"
4789#line 3131 "dhcp6_parser.yy"
4794#line 4795 "dhcp6_parser.cc"
4798#line 3134 "dhcp6_parser.yy"
4801 ctx.
stack_.back()->set(
"server-ip", s);
4804#line 4805 "dhcp6_parser.cc"
4808#line 3140 "dhcp6_parser.yy"
4810 ctx.
unique(
"server-port", ctx.
loc2pos(yystack_[2].location));
4812 ctx.
stack_.back()->set(
"server-port", i);
4814#line 4815 "dhcp6_parser.cc"
4818#line 3146 "dhcp6_parser.yy"
4823#line 4824 "dhcp6_parser.cc"
4827#line 3149 "dhcp6_parser.yy"
4830 ctx.
stack_.back()->set(
"sender-ip", s);
4833#line 4834 "dhcp6_parser.cc"
4837#line 3155 "dhcp6_parser.yy"
4839 ctx.
unique(
"sender-port", ctx.
loc2pos(yystack_[2].location));
4841 ctx.
stack_.back()->set(
"sender-port", i);
4843#line 4844 "dhcp6_parser.cc"
4847#line 3161 "dhcp6_parser.yy"
4849 ctx.
unique(
"max-queue-size", ctx.
loc2pos(yystack_[2].location));
4851 ctx.
stack_.back()->set(
"max-queue-size", i);
4853#line 4854 "dhcp6_parser.cc"
4857#line 3167 "dhcp6_parser.yy"
4859 ctx.
unique(
"ncr-protocol", ctx.
loc2pos(yystack_[0].location));
4862#line 4863 "dhcp6_parser.cc"
4866#line 3170 "dhcp6_parser.yy"
4868 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as <
ElementPtr > ());
4871#line 4872 "dhcp6_parser.cc"
4875#line 3176 "dhcp6_parser.yy"
4877#line 4878 "dhcp6_parser.cc"
4881#line 3177 "dhcp6_parser.yy"
4883#line 4884 "dhcp6_parser.cc"
4887#line 3180 "dhcp6_parser.yy"
4889 ctx.
unique(
"ncr-format", ctx.
loc2pos(yystack_[0].location));
4892#line 4893 "dhcp6_parser.cc"
4896#line 3183 "dhcp6_parser.yy"
4899 ctx.
stack_.back()->set(
"ncr-format", json);
4902#line 4903 "dhcp6_parser.cc"
4906#line 3191 "dhcp6_parser.yy"
4908 ctx.
unique(
"config-control", ctx.
loc2pos(yystack_[0].location));
4910 ctx.
stack_.back()->set(
"config-control", i);
4914#line 4915 "dhcp6_parser.cc"
4918#line 3197 "dhcp6_parser.yy"
4924#line 4925 "dhcp6_parser.cc"
4928#line 3203 "dhcp6_parser.yy"
4934#line 4935 "dhcp6_parser.cc"
4938#line 3207 "dhcp6_parser.yy"
4943#line 4944 "dhcp6_parser.cc"
4947#line 3215 "dhcp6_parser.yy"
4951#line 4952 "dhcp6_parser.cc"
4955#line 3225 "dhcp6_parser.yy"
4957 ctx.
unique(
"config-databases", ctx.
loc2pos(yystack_[0].location));
4959 ctx.
stack_.back()->set(
"config-databases", l);
4963#line 4964 "dhcp6_parser.cc"
4967#line 3231 "dhcp6_parser.yy"
4972#line 4973 "dhcp6_parser.cc"
4976#line 3236 "dhcp6_parser.yy"
4978 ctx.
unique(
"config-fetch-wait-time", ctx.
loc2pos(yystack_[2].location));
4980 ctx.
stack_.back()->set(
"config-fetch-wait-time", value);
4982#line 4983 "dhcp6_parser.cc"
4986#line 3244 "dhcp6_parser.yy"
4990 ctx.
stack_.back()->set(
"loggers", l);
4994#line 4995 "dhcp6_parser.cc"
4998#line 3250 "dhcp6_parser.yy"
5003#line 5004 "dhcp6_parser.cc"
5007#line 3259 "dhcp6_parser.yy"
5011#line 5012 "dhcp6_parser.cc"
5015#line 3265 "dhcp6_parser.yy"
5018 ctx.
stack_.back()->add(l);
5021#line 5022 "dhcp6_parser.cc"
5025#line 3269 "dhcp6_parser.yy"
5029#line 5030 "dhcp6_parser.cc"
5033#line 3275 "dhcp6_parser.yy"
5037#line 5038 "dhcp6_parser.cc"
5041#line 3289 "dhcp6_parser.yy"
5043 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
5045 ctx.
stack_.back()->set(
"debuglevel", dl);
5047#line 5048 "dhcp6_parser.cc"
5051#line 3295 "dhcp6_parser.yy"
5056#line 5057 "dhcp6_parser.cc"
5060#line 3298 "dhcp6_parser.yy"
5063 ctx.
stack_.back()->set(
"severity", sev);
5066#line 5067 "dhcp6_parser.cc"
5070#line 3304 "dhcp6_parser.yy"
5072 ctx.
unique(
"output-options", ctx.
loc2pos(yystack_[0].location));
5074 ctx.
stack_.back()->set(
"output-options", l);
5078#line 5079 "dhcp6_parser.cc"
5082#line 3310 "dhcp6_parser.yy"
5087#line 5088 "dhcp6_parser.cc"
5091#line 3317 "dhcp6_parser.yy"
5095#line 5096 "dhcp6_parser.cc"
5099#line 3322 "dhcp6_parser.yy"
5102 ctx.
stack_.back()->add(m);
5105#line 5106 "dhcp6_parser.cc"
5109#line 3326 "dhcp6_parser.yy"
5113#line 5114 "dhcp6_parser.cc"
5117#line 3332 "dhcp6_parser.yy"
5121#line 5122 "dhcp6_parser.cc"
5125#line 3344 "dhcp6_parser.yy"
5130#line 5131 "dhcp6_parser.cc"
5134#line 3347 "dhcp6_parser.yy"
5137 ctx.
stack_.back()->set(
"output", sev);
5140#line 5141 "dhcp6_parser.cc"
5144#line 3353 "dhcp6_parser.yy"