594 int yyerrstatus_ = 0;
600 stack_symbol_type yyerror_range[3];
617 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
623 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
627 if (yystack_[0].state == yyfinal_)
638 yyn = yypact_[+yystack_[0].state];
639 if (yy_pact_value_is_default_ (yyn))
651 yyla.move (yylookahead);
656 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
677 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ())
686 if (yy_table_value_is_error_ (yyn))
697 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
705 yyn = yydefact_[+yystack_[0].state];
717 stack_symbol_type yylhs;
718 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
738 yylhs.value.emplace<
bool > ();
742 yylhs.value.emplace<
double > ();
746 yylhs.value.emplace< int64_t > ();
750 yylhs.value.emplace< std::string > ();
762 yyerror_range[1].location = yylhs.location;
774#line 329 "dhcp6_parser.yy"
776#line 777 "dhcp6_parser.cc"
780#line 330 "dhcp6_parser.yy"
782#line 783 "dhcp6_parser.cc"
786#line 331 "dhcp6_parser.yy"
788#line 789 "dhcp6_parser.cc"
792#line 332 "dhcp6_parser.yy"
794#line 795 "dhcp6_parser.cc"
798#line 333 "dhcp6_parser.yy"
800#line 801 "dhcp6_parser.cc"
804#line 334 "dhcp6_parser.yy"
806#line 807 "dhcp6_parser.cc"
810#line 335 "dhcp6_parser.yy"
812#line 813 "dhcp6_parser.cc"
816#line 336 "dhcp6_parser.yy"
818#line 819 "dhcp6_parser.cc"
822#line 337 "dhcp6_parser.yy"
824#line 825 "dhcp6_parser.cc"
828#line 338 "dhcp6_parser.yy"
830#line 831 "dhcp6_parser.cc"
834#line 339 "dhcp6_parser.yy"
836#line 837 "dhcp6_parser.cc"
840#line 340 "dhcp6_parser.yy"
842#line 843 "dhcp6_parser.cc"
846#line 341 "dhcp6_parser.yy"
848#line 849 "dhcp6_parser.cc"
852#line 342 "dhcp6_parser.yy"
854#line 855 "dhcp6_parser.cc"
858#line 350 "dhcp6_parser.yy"
860#line 861 "dhcp6_parser.cc"
864#line 351 "dhcp6_parser.yy"
866#line 867 "dhcp6_parser.cc"
870#line 352 "dhcp6_parser.yy"
872#line 873 "dhcp6_parser.cc"
876#line 353 "dhcp6_parser.yy"
878#line 879 "dhcp6_parser.cc"
882#line 354 "dhcp6_parser.yy"
884#line 885 "dhcp6_parser.cc"
888#line 355 "dhcp6_parser.yy"
890#line 891 "dhcp6_parser.cc"
894#line 356 "dhcp6_parser.yy"
896#line 897 "dhcp6_parser.cc"
900#line 359 "dhcp6_parser.yy"
905#line 906 "dhcp6_parser.cc"
909#line 364 "dhcp6_parser.yy"
916#line 917 "dhcp6_parser.cc"
920#line 369 "dhcp6_parser.yy"
926#line 927 "dhcp6_parser.cc"
930#line 375 "dhcp6_parser.yy"
932#line 933 "dhcp6_parser.cc"
936#line 382 "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 387 "dhcp6_parser.yy"
950 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
951 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
953#line 954 "dhcp6_parser.cc"
957#line 393 "dhcp6_parser.yy"
961#line 962 "dhcp6_parser.cc"
965#line 398 "dhcp6_parser.yy"
970#line 971 "dhcp6_parser.cc"
974#line 401 "dhcp6_parser.yy"
978#line 979 "dhcp6_parser.cc"
982#line 409 "dhcp6_parser.yy"
987#line 988 "dhcp6_parser.cc"
991#line 413 "dhcp6_parser.yy"
996#line 997 "dhcp6_parser.cc"
1000#line 417 "dhcp6_parser.yy"
1004#line 1005 "dhcp6_parser.cc"
1008#line 423 "dhcp6_parser.yy"
1012#line 1013 "dhcp6_parser.cc"
1016#line 425 "dhcp6_parser.yy"
1021#line 1022 "dhcp6_parser.cc"
1025#line 434 "dhcp6_parser.yy"
1028 ctx.
stack_.back()->add(s);
1030#line 1031 "dhcp6_parser.cc"
1034#line 438 "dhcp6_parser.yy"
1037 ctx.
stack_.back()->add(s);
1039#line 1040 "dhcp6_parser.cc"
1043#line 442 "dhcp6_parser.yy"
1047#line 1048 "dhcp6_parser.cc"
1051#line 452 "dhcp6_parser.yy"
1054 const std::string& keyword = yystack_[1].value.as < std::string > ();
1055 error(yystack_[1].location,
1056 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
1058#line 1059 "dhcp6_parser.cc"
1062#line 461 "dhcp6_parser.yy"
1069#line 1070 "dhcp6_parser.cc"
1073#line 466 "dhcp6_parser.yy"
1082#line 1083 "dhcp6_parser.cc"
1086#line 476 "dhcp6_parser.yy"
1093 ctx.
stack_.back()->set(
"Dhcp6", m);
1097#line 1098 "dhcp6_parser.cc"
1101#line 485 "dhcp6_parser.yy"
1107#line 1108 "dhcp6_parser.cc"
1111#line 493 "dhcp6_parser.yy"
1115#line 1116 "dhcp6_parser.cc"
1119#line 499 "dhcp6_parser.yy"
1125#line 1126 "dhcp6_parser.cc"
1129#line 503 "dhcp6_parser.yy"
1134#line 1135 "dhcp6_parser.cc"
1138#line 510 "dhcp6_parser.yy"
1142#line 1143 "dhcp6_parser.cc"
1146#line 588 "dhcp6_parser.yy"
1148 ctx.
unique(
"data-directory", ctx.
loc2pos(yystack_[0].location));
1151#line 1152 "dhcp6_parser.cc"
1155#line 591 "dhcp6_parser.yy"
1158 ctx.
stack_.back()->set(
"data-directory", datadir);
1161#line 1162 "dhcp6_parser.cc"
1165#line 597 "dhcp6_parser.yy"
1167 ctx.
unique(
"preferred-lifetime", ctx.
loc2pos(yystack_[2].location));
1169 ctx.
stack_.back()->set(
"preferred-lifetime", prf);
1171#line 1172 "dhcp6_parser.cc"
1175#line 603 "dhcp6_parser.yy"
1177 ctx.
unique(
"min-preferred-lifetime", ctx.
loc2pos(yystack_[2].location));
1179 ctx.
stack_.back()->set(
"min-preferred-lifetime", prf);
1181#line 1182 "dhcp6_parser.cc"
1185#line 609 "dhcp6_parser.yy"
1187 ctx.
unique(
"max-preferred-lifetime", ctx.
loc2pos(yystack_[2].location));
1189 ctx.
stack_.back()->set(
"max-preferred-lifetime", prf);
1191#line 1192 "dhcp6_parser.cc"
1195#line 615 "dhcp6_parser.yy"
1197 ctx.
unique(
"valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1199 ctx.
stack_.back()->set(
"valid-lifetime", prf);
1201#line 1202 "dhcp6_parser.cc"
1205#line 621 "dhcp6_parser.yy"
1207 ctx.
unique(
"min-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1209 ctx.
stack_.back()->set(
"min-valid-lifetime", prf);
1211#line 1212 "dhcp6_parser.cc"
1215#line 627 "dhcp6_parser.yy"
1217 ctx.
unique(
"max-valid-lifetime", ctx.
loc2pos(yystack_[2].location));
1219 ctx.
stack_.back()->set(
"max-valid-lifetime", prf);
1221#line 1222 "dhcp6_parser.cc"
1225#line 633 "dhcp6_parser.yy"
1227 ctx.
unique(
"renew-timer", ctx.
loc2pos(yystack_[2].location));
1229 ctx.
stack_.back()->set(
"renew-timer", prf);
1231#line 1232 "dhcp6_parser.cc"
1235#line 639 "dhcp6_parser.yy"
1237 ctx.
unique(
"rebind-timer", ctx.
loc2pos(yystack_[2].location));
1239 ctx.
stack_.back()->set(
"rebind-timer", prf);
1241#line 1242 "dhcp6_parser.cc"
1245#line 645 "dhcp6_parser.yy"
1247 ctx.
unique(
"calculate-tee-times", ctx.
loc2pos(yystack_[2].location));
1249 ctx.
stack_.back()->set(
"calculate-tee-times", ctt);
1251#line 1252 "dhcp6_parser.cc"
1255#line 651 "dhcp6_parser.yy"
1257 ctx.
unique(
"t1-percent", ctx.
loc2pos(yystack_[2].location));
1259 ctx.
stack_.back()->set(
"t1-percent", t1);
1261#line 1262 "dhcp6_parser.cc"
1265#line 657 "dhcp6_parser.yy"
1267 ctx.
unique(
"t2-percent", ctx.
loc2pos(yystack_[2].location));
1269 ctx.
stack_.back()->set(
"t2-percent", t2);
1271#line 1272 "dhcp6_parser.cc"
1275#line 663 "dhcp6_parser.yy"
1277 ctx.
unique(
"cache-threshold", ctx.
loc2pos(yystack_[2].location));
1279 ctx.
stack_.back()->set(
"cache-threshold", ct);
1281#line 1282 "dhcp6_parser.cc"
1285#line 669 "dhcp6_parser.yy"
1287 ctx.
unique(
"cache-max-age", ctx.
loc2pos(yystack_[2].location));
1289 ctx.
stack_.back()->set(
"cache-max-age", cm);
1291#line 1292 "dhcp6_parser.cc"
1295#line 675 "dhcp6_parser.yy"
1297 ctx.
unique(
"decline-probation-period", ctx.
loc2pos(yystack_[2].location));
1299 ctx.
stack_.back()->set(
"decline-probation-period", dpp);
1301#line 1302 "dhcp6_parser.cc"
1305#line 681 "dhcp6_parser.yy"
1307 ctx.
unique(
"ddns-send-updates", ctx.
loc2pos(yystack_[2].location));
1309 ctx.
stack_.back()->set(
"ddns-send-updates", b);
1311#line 1312 "dhcp6_parser.cc"
1315#line 687 "dhcp6_parser.yy"
1317 ctx.
unique(
"ddns-override-no-update", ctx.
loc2pos(yystack_[2].location));
1319 ctx.
stack_.back()->set(
"ddns-override-no-update", b);
1321#line 1322 "dhcp6_parser.cc"
1325#line 693 "dhcp6_parser.yy"
1327 ctx.
unique(
"ddns-override-client-update", ctx.
loc2pos(yystack_[2].location));
1329 ctx.
stack_.back()->set(
"ddns-override-client-update", b);
1331#line 1332 "dhcp6_parser.cc"
1335#line 699 "dhcp6_parser.yy"
1338 ctx.
unique(
"ddns-replace-client-name", ctx.
loc2pos(yystack_[0].location));
1340#line 1341 "dhcp6_parser.cc"
1344#line 702 "dhcp6_parser.yy"
1346 ctx.
stack_.back()->set(
"ddns-replace-client-name", yystack_[0].value.as <
ElementPtr > ());
1349#line 1350 "dhcp6_parser.cc"
1353#line 708 "dhcp6_parser.yy"
1357#line 1358 "dhcp6_parser.cc"
1361#line 711 "dhcp6_parser.yy"
1365#line 1366 "dhcp6_parser.cc"
1369#line 714 "dhcp6_parser.yy"
1373#line 1374 "dhcp6_parser.cc"
1377#line 717 "dhcp6_parser.yy"
1381#line 1382 "dhcp6_parser.cc"
1385#line 720 "dhcp6_parser.yy"
1387 error(yystack_[0].location,
"boolean values for the ddns-replace-client-name are "
1388 "no longer supported");
1390#line 1391 "dhcp6_parser.cc"
1394#line 726 "dhcp6_parser.yy"
1396 ctx.
unique(
"ddns-generated-prefix", ctx.
loc2pos(yystack_[0].location));
1399#line 1400 "dhcp6_parser.cc"
1403#line 729 "dhcp6_parser.yy"
1406 ctx.
stack_.back()->set(
"ddns-generated-prefix", s);
1409#line 1410 "dhcp6_parser.cc"
1413#line 735 "dhcp6_parser.yy"
1415 ctx.
unique(
"ddns-qualifying-suffix", ctx.
loc2pos(yystack_[0].location));
1418#line 1419 "dhcp6_parser.cc"
1422#line 738 "dhcp6_parser.yy"
1425 ctx.
stack_.back()->set(
"ddns-qualifying-suffix", s);
1428#line 1429 "dhcp6_parser.cc"
1432#line 744 "dhcp6_parser.yy"
1434 ctx.
unique(
"ddns-update-on-renew", ctx.
loc2pos(yystack_[2].location));
1436 ctx.
stack_.back()->set(
"ddns-update-on-renew", b);
1438#line 1439 "dhcp6_parser.cc"
1442#line 753 "dhcp6_parser.yy"
1444 ctx.
unique(
"ddns-use-conflict-resolution", ctx.
loc2pos(yystack_[2].location));
1446 ctx.
warning(yystack_[1].location,
"ddns-use-conflict-resolution is deprecated. "
1447 "Substituting ddns-conflict-resolution-mode");
1449 :
"no-check-with-dhcid"));
1450 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", mode);
1452#line 1453 "dhcp6_parser.cc"
1456#line 763 "dhcp6_parser.yy"
1458 ctx.
unique(
"ddns-conflict-resolution-mode", ctx.
loc2pos(yystack_[0].location));
1461#line 1462 "dhcp6_parser.cc"
1465#line 766 "dhcp6_parser.yy"
1467 ctx.
stack_.back()->set(
"ddns-conflict-resolution-mode", yystack_[0].value.as <
ElementPtr > ());
1470#line 1471 "dhcp6_parser.cc"
1474#line 772 "dhcp6_parser.yy"
1478#line 1479 "dhcp6_parser.cc"
1482#line 775 "dhcp6_parser.yy"
1486#line 1487 "dhcp6_parser.cc"
1490#line 778 "dhcp6_parser.yy"
1494#line 1495 "dhcp6_parser.cc"
1498#line 781 "dhcp6_parser.yy"
1502#line 1503 "dhcp6_parser.cc"
1506#line 786 "dhcp6_parser.yy"
1508 ctx.
unique(
"ddns-ttl-percent", ctx.
loc2pos(yystack_[2].location));
1510 ctx.
stack_.back()->set(
"ddns-ttl-percent", ttl);
1512#line 1513 "dhcp6_parser.cc"
1516#line 792 "dhcp6_parser.yy"
1518 ctx.
unique(
"hostname-char-set", ctx.
loc2pos(yystack_[0].location));
1521#line 1522 "dhcp6_parser.cc"
1525#line 795 "dhcp6_parser.yy"
1528 ctx.
stack_.back()->set(
"hostname-char-set", s);
1531#line 1532 "dhcp6_parser.cc"
1535#line 801 "dhcp6_parser.yy"
1537 ctx.
unique(
"hostname-char-replacement", ctx.
loc2pos(yystack_[0].location));
1540#line 1541 "dhcp6_parser.cc"
1544#line 804 "dhcp6_parser.yy"
1547 ctx.
stack_.back()->set(
"hostname-char-replacement", s);
1550#line 1551 "dhcp6_parser.cc"
1554#line 810 "dhcp6_parser.yy"
1556 ctx.
unique(
"store-extended-info", ctx.
loc2pos(yystack_[2].location));
1558 ctx.
stack_.back()->set(
"store-extended-info", b);
1560#line 1561 "dhcp6_parser.cc"
1564#line 816 "dhcp6_parser.yy"
1566 ctx.
unique(
"statistic-default-sample-count", ctx.
loc2pos(yystack_[2].location));
1568 ctx.
stack_.back()->set(
"statistic-default-sample-count", count);
1570#line 1571 "dhcp6_parser.cc"
1574#line 822 "dhcp6_parser.yy"
1576 ctx.
unique(
"statistic-default-sample-age", ctx.
loc2pos(yystack_[2].location));
1578 ctx.
stack_.back()->set(
"statistic-default-sample-age", age);
1580#line 1581 "dhcp6_parser.cc"
1584#line 828 "dhcp6_parser.yy"
1586 ctx.
unique(
"server-tag", ctx.
loc2pos(yystack_[0].location));
1589#line 1590 "dhcp6_parser.cc"
1593#line 831 "dhcp6_parser.yy"
1596 ctx.
stack_.back()->set(
"server-tag", stag);
1599#line 1600 "dhcp6_parser.cc"
1603#line 837 "dhcp6_parser.yy"
1605 ctx.
unique(
"parked-packet-limit", ctx.
loc2pos(yystack_[2].location));
1607 ctx.
stack_.back()->set(
"parked-packet-limit", ppl);
1609#line 1610 "dhcp6_parser.cc"
1613#line 843 "dhcp6_parser.yy"
1618#line 1619 "dhcp6_parser.cc"
1622#line 846 "dhcp6_parser.yy"
1625 ctx.
stack_.back()->set(
"allocator", al);
1628#line 1629 "dhcp6_parser.cc"
1632#line 852 "dhcp6_parser.yy"
1634 ctx.
unique(
"pd-allocator", ctx.
loc2pos(yystack_[0].location));
1637#line 1638 "dhcp6_parser.cc"
1641#line 855 "dhcp6_parser.yy"
1644 ctx.
stack_.back()->set(
"pd-allocator", al);
1647#line 1648 "dhcp6_parser.cc"
1651#line 861 "dhcp6_parser.yy"
1653 ctx.
unique(
"early-global-reservations-lookup", ctx.
loc2pos(yystack_[2].location));
1655 ctx.
stack_.back()->set(
"early-global-reservations-lookup", early);
1657#line 1658 "dhcp6_parser.cc"
1661#line 867 "dhcp6_parser.yy"
1663 ctx.
unique(
"ip-reservations-unique", ctx.
loc2pos(yystack_[2].location));
1665 ctx.
stack_.back()->set(
"ip-reservations-unique", unique);
1667#line 1668 "dhcp6_parser.cc"
1671#line 873 "dhcp6_parser.yy"
1673 ctx.
unique(
"reservations-lookup-first", ctx.
loc2pos(yystack_[2].location));
1675 ctx.
stack_.back()->set(
"reservations-lookup-first", first);
1677#line 1678 "dhcp6_parser.cc"
1681#line 879 "dhcp6_parser.yy"
1683 ctx.
unique(
"interfaces-config", ctx.
loc2pos(yystack_[0].location));
1685 ctx.
stack_.back()->set(
"interfaces-config", i);
1689#line 1690 "dhcp6_parser.cc"
1693#line 885 "dhcp6_parser.yy"
1699#line 1700 "dhcp6_parser.cc"
1703#line 891 "dhcp6_parser.yy"
1709#line 1710 "dhcp6_parser.cc"
1713#line 895 "dhcp6_parser.yy"
1718#line 1719 "dhcp6_parser.cc"
1722#line 902 "dhcp6_parser.yy"
1726#line 1727 "dhcp6_parser.cc"
1730#line 917 "dhcp6_parser.yy"
1732 ctx.
unique(
"interfaces", ctx.
loc2pos(yystack_[0].location));
1734 ctx.
stack_.back()->set(
"interfaces", l);
1738#line 1739 "dhcp6_parser.cc"
1742#line 923 "dhcp6_parser.yy"
1747#line 1748 "dhcp6_parser.cc"
1751#line 928 "dhcp6_parser.yy"
1755 ctx.
stack_.back()->set(
"re-detect", b);
1757#line 1758 "dhcp6_parser.cc"
1761#line 934 "dhcp6_parser.yy"
1763 ctx.
unique(
"service-sockets-require-all", ctx.
loc2pos(yystack_[2].location));
1765 ctx.
stack_.back()->set(
"service-sockets-require-all", b);
1767#line 1768 "dhcp6_parser.cc"
1771#line 940 "dhcp6_parser.yy"
1773 ctx.
unique(
"service-sockets-retry-wait-time", ctx.
loc2pos(yystack_[2].location));
1775 ctx.
stack_.back()->set(
"service-sockets-retry-wait-time", n);
1777#line 1778 "dhcp6_parser.cc"
1781#line 946 "dhcp6_parser.yy"
1783 ctx.
unique(
"service-sockets-max-retries", ctx.
loc2pos(yystack_[2].location));
1785 ctx.
stack_.back()->set(
"service-sockets-max-retries", n);
1787#line 1788 "dhcp6_parser.cc"
1791#line 952 "dhcp6_parser.yy"
1793 ctx.
unique(
"lease-database", ctx.
loc2pos(yystack_[0].location));
1795 ctx.
stack_.back()->set(
"lease-database", i);
1799#line 1800 "dhcp6_parser.cc"
1803#line 958 "dhcp6_parser.yy"
1810#line 1811 "dhcp6_parser.cc"
1814#line 965 "dhcp6_parser.yy"
1816 ctx.
unique(
"hosts-database", ctx.
loc2pos(yystack_[0].location));
1818 ctx.
stack_.back()->set(
"hosts-database", i);
1822#line 1823 "dhcp6_parser.cc"
1826#line 971 "dhcp6_parser.yy"
1833#line 1834 "dhcp6_parser.cc"
1837#line 978 "dhcp6_parser.yy"
1839 ctx.
unique(
"hosts-databases", ctx.
loc2pos(yystack_[0].location));
1841 ctx.
stack_.back()->set(
"hosts-databases", l);
1845#line 1846 "dhcp6_parser.cc"
1849#line 984 "dhcp6_parser.yy"
1854#line 1855 "dhcp6_parser.cc"
1858#line 995 "dhcp6_parser.yy"
1862#line 1863 "dhcp6_parser.cc"
1866#line 1000 "dhcp6_parser.yy"
1869 ctx.
stack_.back()->add(m);
1872#line 1873 "dhcp6_parser.cc"
1876#line 1004 "dhcp6_parser.yy"
1882#line 1883 "dhcp6_parser.cc"
1886#line 1012 "dhcp6_parser.yy"
1890#line 1891 "dhcp6_parser.cc"
1894#line 1042 "dhcp6_parser.yy"
1899#line 1900 "dhcp6_parser.cc"
1903#line 1045 "dhcp6_parser.yy"
1908#line 1909 "dhcp6_parser.cc"
1912#line 1050 "dhcp6_parser.yy"
1914#line 1915 "dhcp6_parser.cc"
1918#line 1051 "dhcp6_parser.yy"
1920#line 1921 "dhcp6_parser.cc"
1924#line 1052 "dhcp6_parser.yy"
1926#line 1927 "dhcp6_parser.cc"
1930#line 1055 "dhcp6_parser.yy"
1935#line 1936 "dhcp6_parser.cc"
1939#line 1058 "dhcp6_parser.yy"
1942 ctx.
stack_.back()->set(
"user", user);
1945#line 1946 "dhcp6_parser.cc"
1949#line 1064 "dhcp6_parser.yy"
1954#line 1955 "dhcp6_parser.cc"
1958#line 1067 "dhcp6_parser.yy"
1961 ctx.
stack_.back()->set(
"password", pwd);
1964#line 1965 "dhcp6_parser.cc"
1968#line 1073 "dhcp6_parser.yy"
1973#line 1974 "dhcp6_parser.cc"
1977#line 1076 "dhcp6_parser.yy"
1980 ctx.
stack_.back()->set(
"host", h);
1983#line 1984 "dhcp6_parser.cc"
1987#line 1082 "dhcp6_parser.yy"
1991 ctx.
stack_.back()->set(
"port", p);
1993#line 1994 "dhcp6_parser.cc"
1997#line 1088 "dhcp6_parser.yy"
2002#line 2003 "dhcp6_parser.cc"
2006#line 1091 "dhcp6_parser.yy"
2009 ctx.
stack_.back()->set(
"name", name);
2012#line 2013 "dhcp6_parser.cc"
2016#line 1097 "dhcp6_parser.yy"
2020 ctx.
stack_.back()->set(
"persist", n);
2022#line 2023 "dhcp6_parser.cc"
2026#line 1103 "dhcp6_parser.yy"
2028 ctx.
unique(
"lfc-interval", ctx.
loc2pos(yystack_[2].location));
2030 ctx.
stack_.back()->set(
"lfc-interval", n);
2032#line 2033 "dhcp6_parser.cc"
2036#line 1109 "dhcp6_parser.yy"
2040 ctx.
stack_.back()->set(
"readonly", n);
2042#line 2043 "dhcp6_parser.cc"
2046#line 1115 "dhcp6_parser.yy"
2048 ctx.
unique(
"connect-timeout", ctx.
loc2pos(yystack_[2].location));
2050 ctx.
stack_.back()->set(
"connect-timeout", n);
2052#line 2053 "dhcp6_parser.cc"
2056#line 1121 "dhcp6_parser.yy"
2058 ctx.
unique(
"read-timeout", ctx.
loc2pos(yystack_[2].location));
2060 ctx.
stack_.back()->set(
"read-timeout", n);
2062#line 2063 "dhcp6_parser.cc"
2066#line 1127 "dhcp6_parser.yy"
2068 ctx.
unique(
"write-timeout", ctx.
loc2pos(yystack_[2].location));
2070 ctx.
stack_.back()->set(
"write-timeout", n);
2072#line 2073 "dhcp6_parser.cc"
2076#line 1133 "dhcp6_parser.yy"
2078 ctx.
unique(
"tcp-user-timeout", ctx.
loc2pos(yystack_[2].location));
2080 ctx.
stack_.back()->set(
"tcp-user-timeout", n);
2082#line 2083 "dhcp6_parser.cc"
2086#line 1140 "dhcp6_parser.yy"
2088 ctx.
unique(
"reconnect-wait-time", ctx.
loc2pos(yystack_[2].location));
2090 ctx.
stack_.back()->set(
"reconnect-wait-time", n);
2092#line 2093 "dhcp6_parser.cc"
2096#line 1146 "dhcp6_parser.yy"
2101#line 2102 "dhcp6_parser.cc"
2105#line 1149 "dhcp6_parser.yy"
2110#line 2111 "dhcp6_parser.cc"
2114#line 1154 "dhcp6_parser.yy"
2116#line 2117 "dhcp6_parser.cc"
2120#line 1155 "dhcp6_parser.yy"
2122#line 2123 "dhcp6_parser.cc"
2126#line 1156 "dhcp6_parser.yy"
2128#line 2129 "dhcp6_parser.cc"
2132#line 1159 "dhcp6_parser.yy"
2134 ctx.
unique(
"retry-on-startup", ctx.
loc2pos(yystack_[2].location));
2136 ctx.
stack_.back()->set(
"retry-on-startup", n);
2138#line 2139 "dhcp6_parser.cc"
2142#line 1165 "dhcp6_parser.yy"
2144 ctx.
unique(
"max-row-errors", ctx.
loc2pos(yystack_[2].location));
2146 ctx.
stack_.back()->set(
"max-row-errors", n);
2148#line 2149 "dhcp6_parser.cc"
2152#line 1171 "dhcp6_parser.yy"
2154 ctx.
unique(
"max-reconnect-tries", ctx.
loc2pos(yystack_[2].location));
2156 ctx.
stack_.back()->set(
"max-reconnect-tries", n);
2158#line 2159 "dhcp6_parser.cc"
2162#line 1177 "dhcp6_parser.yy"
2164 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
2167#line 2168 "dhcp6_parser.cc"
2171#line 1180 "dhcp6_parser.yy"
2174 ctx.
stack_.back()->set(
"trust-anchor", ca);
2177#line 2178 "dhcp6_parser.cc"
2181#line 1186 "dhcp6_parser.yy"
2186#line 2187 "dhcp6_parser.cc"
2190#line 1189 "dhcp6_parser.yy"
2193 ctx.
stack_.back()->set(
"cert-file", cert);
2196#line 2197 "dhcp6_parser.cc"
2200#line 1195 "dhcp6_parser.yy"
2205#line 2206 "dhcp6_parser.cc"
2209#line 1198 "dhcp6_parser.yy"
2212 ctx.
stack_.back()->set(
"key-file", key);
2215#line 2216 "dhcp6_parser.cc"
2219#line 1204 "dhcp6_parser.yy"
2221 ctx.
unique(
"cipher-list", ctx.
loc2pos(yystack_[0].location));
2224#line 2225 "dhcp6_parser.cc"
2228#line 1207 "dhcp6_parser.yy"
2231 ctx.
stack_.back()->set(
"cipher-list", cl);
2234#line 2235 "dhcp6_parser.cc"
2238#line 1213 "dhcp6_parser.yy"
2240 ctx.
unique(
"sanity-checks", ctx.
loc2pos(yystack_[0].location));
2242 ctx.
stack_.back()->set(
"sanity-checks", m);
2246#line 2247 "dhcp6_parser.cc"
2250#line 1219 "dhcp6_parser.yy"
2255#line 2256 "dhcp6_parser.cc"
2259#line 1226 "dhcp6_parser.yy"
2263#line 2264 "dhcp6_parser.cc"
2267#line 1235 "dhcp6_parser.yy"
2269 ctx.
unique(
"lease-checks", ctx.
loc2pos(yystack_[0].location));
2272#line 2273 "dhcp6_parser.cc"
2276#line 1238 "dhcp6_parser.yy"
2279 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
2280 (
string(yystack_[0].value.as < std::string > ()) ==
"warn") ||
2281 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
2282 (
string(yystack_[0].value.as < std::string > ()) ==
"fix-del") ||
2283 (
string(yystack_[0].value.as < std::string > ()) ==
"del")) {
2285 ctx.
stack_.back()->set(
"lease-checks", user);
2288 error(yystack_[0].location,
"Unsupported 'lease-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
2289 ", supported values are: none, warn, fix, fix-del, del");
2292#line 2293 "dhcp6_parser.cc"
2296#line 1254 "dhcp6_parser.yy"
2298 ctx.
unique(
"extended-info-checks", ctx.
loc2pos(yystack_[0].location));
2301#line 2302 "dhcp6_parser.cc"
2305#line 1257 "dhcp6_parser.yy"
2308 if ( (
string(yystack_[0].value.as < std::string > ()) ==
"none") ||
2309 (
string(yystack_[0].value.as < std::string > ()) ==
"fix") ||
2310 (
string(yystack_[0].value.as < std::string > ()) ==
"strict") ||
2311 (
string(yystack_[0].value.as < std::string > ()) ==
"pedantic")) {
2313 ctx.
stack_.back()->set(
"extended-info-checks", user);
2316 error(yystack_[0].location,
"Unsupported 'extended-info-checks value: " +
string(yystack_[0].value.as < std::string > ()) +
2317 ", supported values are: none, fix, strict, pedantic");
2320#line 2321 "dhcp6_parser.cc"
2324#line 1272 "dhcp6_parser.yy"
2326 ctx.
unique(
"mac-sources", ctx.
loc2pos(yystack_[0].location));
2328 ctx.
stack_.back()->set(
"mac-sources", l);
2332#line 2333 "dhcp6_parser.cc"
2336#line 1278 "dhcp6_parser.yy"
2341#line 2342 "dhcp6_parser.cc"
2345#line 1285 "dhcp6_parser.yy"
2349#line 2350 "dhcp6_parser.cc"
2353#line 1294 "dhcp6_parser.yy"
2356 ctx.
stack_.back()->add(duid);
2358#line 2359 "dhcp6_parser.cc"
2362#line 1299 "dhcp6_parser.yy"
2365 ctx.
stack_.back()->add(duid);
2367#line 2368 "dhcp6_parser.cc"
2371#line 1304 "dhcp6_parser.yy"
2373 ctx.
unique(
"host-reservation-identifiers", ctx.
loc2pos(yystack_[0].location));
2375 ctx.
stack_.back()->set(
"host-reservation-identifiers", l);
2379#line 2380 "dhcp6_parser.cc"
2383#line 1310 "dhcp6_parser.yy"
2388#line 2389 "dhcp6_parser.cc"
2392#line 1317 "dhcp6_parser.yy"
2396#line 2397 "dhcp6_parser.cc"
2400#line 1327 "dhcp6_parser.yy"
2403 ctx.
stack_.back()->add(hwaddr);
2405#line 2406 "dhcp6_parser.cc"
2409#line 1332 "dhcp6_parser.yy"
2412 ctx.
stack_.back()->add(flex_id);
2414#line 2415 "dhcp6_parser.cc"
2418#line 1339 "dhcp6_parser.yy"
2420 ctx.
unique(
"relay-supplied-options", ctx.
loc2pos(yystack_[0].location));
2422 ctx.
stack_.back()->set(
"relay-supplied-options", l);
2426#line 2427 "dhcp6_parser.cc"
2430#line 1345 "dhcp6_parser.yy"
2435#line 2436 "dhcp6_parser.cc"
2439#line 1352 "dhcp6_parser.yy"
2441 ctx.
unique(
"multi-threading", ctx.
loc2pos(yystack_[0].location));
2443 ctx.
stack_.back()->set(
"multi-threading", mt);
2444 ctx.
stack_.push_back(mt);
2447#line 2448 "dhcp6_parser.cc"
2451#line 1358 "dhcp6_parser.yy"
2454 ctx.
require(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
2458#line 2459 "dhcp6_parser.cc"
2462#line 1367 "dhcp6_parser.yy"
2466#line 2467 "dhcp6_parser.cc"
2470#line 1380 "dhcp6_parser.yy"
2472 ctx.
unique(
"enable-multi-threading", ctx.
loc2pos(yystack_[2].location));
2474 ctx.
stack_.back()->set(
"enable-multi-threading", b);
2476#line 2477 "dhcp6_parser.cc"
2480#line 1386 "dhcp6_parser.yy"
2482 ctx.
unique(
"thread-pool-size", ctx.
loc2pos(yystack_[2].location));
2484 ctx.
stack_.back()->set(
"thread-pool-size", prf);
2486#line 2487 "dhcp6_parser.cc"
2490#line 1392 "dhcp6_parser.yy"
2492 ctx.
unique(
"packet-queue-size", ctx.
loc2pos(yystack_[2].location));
2494 ctx.
stack_.back()->set(
"packet-queue-size", prf);
2496#line 2497 "dhcp6_parser.cc"
2500#line 1398 "dhcp6_parser.yy"
2502 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
2504 ctx.
stack_.back()->set(
"hooks-libraries", l);
2508#line 2509 "dhcp6_parser.cc"
2512#line 1404 "dhcp6_parser.yy"
2517#line 2518 "dhcp6_parser.cc"
2521#line 1415 "dhcp6_parser.yy"
2525#line 2526 "dhcp6_parser.cc"
2529#line 1420 "dhcp6_parser.yy"
2532 ctx.
stack_.back()->add(m);
2535#line 2536 "dhcp6_parser.cc"
2539#line 1424 "dhcp6_parser.yy"
2545#line 2546 "dhcp6_parser.cc"
2549#line 1430 "dhcp6_parser.yy"
2555#line 2556 "dhcp6_parser.cc"
2559#line 1434 "dhcp6_parser.yy"
2565#line 2566 "dhcp6_parser.cc"
2569#line 1442 "dhcp6_parser.yy"
2573#line 2574 "dhcp6_parser.cc"
2577#line 1452 "dhcp6_parser.yy"
2582#line 2583 "dhcp6_parser.cc"
2586#line 1455 "dhcp6_parser.yy"
2589 ctx.
stack_.back()->set(
"library", lib);
2592#line 2593 "dhcp6_parser.cc"
2596#line 1461 "dhcp6_parser.yy"
2598 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
2601#line 2602 "dhcp6_parser.cc"
2605#line 1464 "dhcp6_parser.yy"
2607 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
2610#line 2611 "dhcp6_parser.cc"
2614#line 1470 "dhcp6_parser.yy"
2616 ctx.
unique(
"expired-leases-processing", ctx.
loc2pos(yystack_[0].location));
2618 ctx.
stack_.back()->set(
"expired-leases-processing", m);
2622#line 2623 "dhcp6_parser.cc"
2626#line 1476 "dhcp6_parser.yy"
2632#line 2633 "dhcp6_parser.cc"
2636#line 1484 "dhcp6_parser.yy"
2640#line 2641 "dhcp6_parser.cc"
2644#line 1497 "dhcp6_parser.yy"
2646 ctx.
unique(
"reclaim-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2648 ctx.
stack_.back()->set(
"reclaim-timer-wait-time", value);
2650#line 2651 "dhcp6_parser.cc"
2654#line 1503 "dhcp6_parser.yy"
2656 ctx.
unique(
"flush-reclaimed-timer-wait-time", ctx.
loc2pos(yystack_[2].location));
2658 ctx.
stack_.back()->set(
"flush-reclaimed-timer-wait-time", value);
2660#line 2661 "dhcp6_parser.cc"
2664#line 1509 "dhcp6_parser.yy"
2666 ctx.
unique(
"hold-reclaimed-time", ctx.
loc2pos(yystack_[2].location));
2668 ctx.
stack_.back()->set(
"hold-reclaimed-time", value);
2670#line 2671 "dhcp6_parser.cc"
2674#line 1515 "dhcp6_parser.yy"
2676 ctx.
unique(
"max-reclaim-leases", ctx.
loc2pos(yystack_[2].location));
2678 ctx.
stack_.back()->set(
"max-reclaim-leases", value);
2680#line 2681 "dhcp6_parser.cc"
2684#line 1521 "dhcp6_parser.yy"
2686 ctx.
unique(
"max-reclaim-time", ctx.
loc2pos(yystack_[2].location));
2688 ctx.
stack_.back()->set(
"max-reclaim-time", value);
2690#line 2691 "dhcp6_parser.cc"
2694#line 1527 "dhcp6_parser.yy"
2696 ctx.
unique(
"unwarned-reclaim-cycles", ctx.
loc2pos(yystack_[2].location));
2698 ctx.
stack_.back()->set(
"unwarned-reclaim-cycles", value);
2700#line 2701 "dhcp6_parser.cc"
2704#line 1536 "dhcp6_parser.yy"
2708 ctx.
stack_.back()->set(
"subnet6", l);
2712#line 2713 "dhcp6_parser.cc"
2716#line 1542 "dhcp6_parser.yy"
2721#line 2722 "dhcp6_parser.cc"
2725#line 1556 "dhcp6_parser.yy"
2729#line 2730 "dhcp6_parser.cc"
2733#line 1565 "dhcp6_parser.yy"
2736 ctx.
stack_.back()->add(m);
2739#line 2740 "dhcp6_parser.cc"
2743#line 1569 "dhcp6_parser.yy"
2765#line 2766 "dhcp6_parser.cc"
2769#line 1591 "dhcp6_parser.yy"
2775#line 2776 "dhcp6_parser.cc"
2779#line 1595 "dhcp6_parser.yy"
2785#line 2786 "dhcp6_parser.cc"
2789#line 1604 "dhcp6_parser.yy"
2793#line 2794 "dhcp6_parser.cc"
2797#line 1658 "dhcp6_parser.yy"
2802#line 2803 "dhcp6_parser.cc"
2806#line 1661 "dhcp6_parser.yy"
2809 ctx.
stack_.back()->set(
"subnet", subnet);
2812#line 2813 "dhcp6_parser.cc"
2816#line 1667 "dhcp6_parser.yy"
2821#line 2822 "dhcp6_parser.cc"
2825#line 1670 "dhcp6_parser.yy"
2828 ctx.
stack_.back()->set(
"interface", iface);
2831#line 2832 "dhcp6_parser.cc"
2835#line 1676 "dhcp6_parser.yy"
2837 ctx.
unique(
"interface-id", ctx.
loc2pos(yystack_[0].location));
2840#line 2841 "dhcp6_parser.cc"
2844#line 1679 "dhcp6_parser.yy"
2847 ctx.
stack_.back()->set(
"interface-id", iface);
2850#line 2851 "dhcp6_parser.cc"
2854#line 1685 "dhcp6_parser.yy"
2856 ctx.
unique(
"client-class", ctx.
loc2pos(yystack_[0].location));
2859#line 2860 "dhcp6_parser.cc"
2863#line 1688 "dhcp6_parser.yy"
2866 ctx.
stack_.back()->set(
"client-class", cls);
2869#line 2870 "dhcp6_parser.cc"
2873#line 1694 "dhcp6_parser.yy"
2875 ctx.
unique(
"require-client-classes", ctx.
loc2pos(yystack_[0].location));
2877 ctx.
stack_.back()->set(
"require-client-classes", c);
2881#line 2882 "dhcp6_parser.cc"
2885#line 1700 "dhcp6_parser.yy"
2890#line 2891 "dhcp6_parser.cc"
2894#line 1705 "dhcp6_parser.yy"
2896 ctx.
unique(
"reservations-global", ctx.
loc2pos(yystack_[2].location));
2898 ctx.
stack_.back()->set(
"reservations-global", b);
2900#line 2901 "dhcp6_parser.cc"
2904#line 1711 "dhcp6_parser.yy"
2906 ctx.
unique(
"reservations-in-subnet", ctx.
loc2pos(yystack_[2].location));
2908 ctx.
stack_.back()->set(
"reservations-in-subnet", b);
2910#line 2911 "dhcp6_parser.cc"
2914#line 1717 "dhcp6_parser.yy"
2916 ctx.
unique(
"reservations-out-of-pool", ctx.
loc2pos(yystack_[2].location));
2918 ctx.
stack_.back()->set(
"reservations-out-of-pool", b);
2920#line 2921 "dhcp6_parser.cc"
2924#line 1723 "dhcp6_parser.yy"
2928 ctx.
stack_.back()->set(
"id",
id);
2930#line 2931 "dhcp6_parser.cc"
2934#line 1729 "dhcp6_parser.yy"
2936 ctx.
unique(
"rapid-commit", ctx.
loc2pos(yystack_[2].location));
2938 ctx.
stack_.back()->set(
"rapid-commit", rc);
2940#line 2941 "dhcp6_parser.cc"
2944#line 1737 "dhcp6_parser.yy"
2946 ctx.
unique(
"shared-networks", ctx.
loc2pos(yystack_[0].location));
2948 ctx.
stack_.back()->set(
"shared-networks", l);
2952#line 2953 "dhcp6_parser.cc"
2956#line 1743 "dhcp6_parser.yy"
2961#line 2962 "dhcp6_parser.cc"
2965#line 1756 "dhcp6_parser.yy"
2969#line 2970 "dhcp6_parser.cc"
2973#line 1761 "dhcp6_parser.yy"
2976 ctx.
stack_.back()->add(m);
2979#line 2980 "dhcp6_parser.cc"
2983#line 1765 "dhcp6_parser.yy"
2987#line 2988 "dhcp6_parser.cc"
2991#line 1771 "dhcp6_parser.yy"
2995#line 2996 "dhcp6_parser.cc"
2999#line 1825 "dhcp6_parser.yy"
3001 ctx.
unique(
"option-def", ctx.
loc2pos(yystack_[0].location));
3003 ctx.
stack_.back()->set(
"option-def", l);
3007#line 3008 "dhcp6_parser.cc"
3011#line 1831 "dhcp6_parser.yy"
3016#line 3017 "dhcp6_parser.cc"
3020#line 1839 "dhcp6_parser.yy"
3025#line 3026 "dhcp6_parser.cc"
3029#line 1842 "dhcp6_parser.yy"
3033#line 3034 "dhcp6_parser.cc"
3037#line 1854 "dhcp6_parser.yy"
3041#line 3042 "dhcp6_parser.cc"
3045#line 1861 "dhcp6_parser.yy"
3048 ctx.
stack_.back()->add(m);
3051#line 3052 "dhcp6_parser.cc"
3055#line 1865 "dhcp6_parser.yy"
3063#line 3064 "dhcp6_parser.cc"
3067#line 1876 "dhcp6_parser.yy"
3073#line 3074 "dhcp6_parser.cc"
3077#line 1880 "dhcp6_parser.yy"
3085#line 3086 "dhcp6_parser.cc"
3089#line 1896 "dhcp6_parser.yy"
3093#line 3094 "dhcp6_parser.cc"
3097#line 1915 "dhcp6_parser.yy"
3101 ctx.
stack_.back()->set(
"code", code);
3103#line 3104 "dhcp6_parser.cc"
3107#line 1923 "dhcp6_parser.yy"
3112#line 3113 "dhcp6_parser.cc"
3116#line 1926 "dhcp6_parser.yy"
3119 ctx.
stack_.back()->set(
"type", prf);
3122#line 3123 "dhcp6_parser.cc"
3126#line 1932 "dhcp6_parser.yy"
3128 ctx.
unique(
"record-types", ctx.
loc2pos(yystack_[0].location));
3131#line 3132 "dhcp6_parser.cc"
3135#line 1935 "dhcp6_parser.yy"
3138 ctx.
stack_.back()->set(
"record-types", rtypes);
3141#line 3142 "dhcp6_parser.cc"
3145#line 1941 "dhcp6_parser.yy"
3150#line 3151 "dhcp6_parser.cc"
3154#line 1944 "dhcp6_parser.yy"
3157 ctx.
stack_.back()->set(
"space", space);
3160#line 3161 "dhcp6_parser.cc"
3164#line 1952 "dhcp6_parser.yy"
3166 ctx.
unique(
"encapsulate", ctx.
loc2pos(yystack_[0].location));
3169#line 3170 "dhcp6_parser.cc"
3173#line 1955 "dhcp6_parser.yy"
3176 ctx.
stack_.back()->set(
"encapsulate", encap);
3179#line 3180 "dhcp6_parser.cc"
3183#line 1961 "dhcp6_parser.yy"
3187 ctx.
stack_.back()->set(
"array", array);
3189#line 3190 "dhcp6_parser.cc"
3193#line 1971 "dhcp6_parser.yy"
3195 ctx.
unique(
"option-data", ctx.
loc2pos(yystack_[0].location));
3197 ctx.
stack_.back()->set(
"option-data", l);
3201#line 3202 "dhcp6_parser.cc"
3205#line 1977 "dhcp6_parser.yy"
3210#line 3211 "dhcp6_parser.cc"
3214#line 1992 "dhcp6_parser.yy"
3218#line 3219 "dhcp6_parser.cc"
3222#line 1999 "dhcp6_parser.yy"
3225 ctx.
stack_.back()->add(m);
3228#line 3229 "dhcp6_parser.cc"
3232#line 2003 "dhcp6_parser.yy"
3237#line 3238 "dhcp6_parser.cc"
3241#line 2011 "dhcp6_parser.yy"
3247#line 3248 "dhcp6_parser.cc"
3251#line 2015 "dhcp6_parser.yy"
3256#line 3257 "dhcp6_parser.cc"
3260#line 2031 "dhcp6_parser.yy"
3264#line 3265 "dhcp6_parser.cc"
3268#line 2052 "dhcp6_parser.yy"
3273#line 3274 "dhcp6_parser.cc"
3277#line 2055 "dhcp6_parser.yy"
3280 ctx.
stack_.back()->set(
"data", data);
3283#line 3284 "dhcp6_parser.cc"
3287#line 2065 "dhcp6_parser.yy"
3289 ctx.
unique(
"csv-format", ctx.
loc2pos(yystack_[2].location));
3291 ctx.
stack_.back()->set(
"csv-format", csv);
3293#line 3294 "dhcp6_parser.cc"
3297#line 2071 "dhcp6_parser.yy"
3299 ctx.
unique(
"always-send", ctx.
loc2pos(yystack_[2].location));
3301 ctx.
stack_.back()->set(
"always-send", persist);
3303#line 3304 "dhcp6_parser.cc"
3307#line 2077 "dhcp6_parser.yy"
3309 ctx.
unique(
"never-send", ctx.
loc2pos(yystack_[2].location));
3311 ctx.
stack_.back()->set(
"never-send", cancel);
3313#line 3314 "dhcp6_parser.cc"
3317#line 2086 "dhcp6_parser.yy"
3321 ctx.
stack_.back()->set(
"pools", l);
3325#line 3326 "dhcp6_parser.cc"
3329#line 2092 "dhcp6_parser.yy"
3334#line 3335 "dhcp6_parser.cc"
3338#line 2105 "dhcp6_parser.yy"
3342#line 3343 "dhcp6_parser.cc"
3346#line 2110 "dhcp6_parser.yy"
3349 ctx.
stack_.back()->add(m);
3352#line 3353 "dhcp6_parser.cc"
3356#line 2114 "dhcp6_parser.yy"
3362#line 3363 "dhcp6_parser.cc"
3366#line 2120 "dhcp6_parser.yy"
3372#line 3373 "dhcp6_parser.cc"
3376#line 2124 "dhcp6_parser.yy"
3382#line 3383 "dhcp6_parser.cc"
3386#line 2132 "dhcp6_parser.yy"
3390#line 3391 "dhcp6_parser.cc"
3394#line 2147 "dhcp6_parser.yy"
3399#line 3400 "dhcp6_parser.cc"
3403#line 2150 "dhcp6_parser.yy"
3406 ctx.
stack_.back()->set(
"pool", pool);
3409#line 3410 "dhcp6_parser.cc"
3413#line 2156 "dhcp6_parser.yy"
3417 ctx.
stack_.back()->set(
"pool-id",
id);
3419#line 3420 "dhcp6_parser.cc"
3423#line 2162 "dhcp6_parser.yy"
3427#line 3428 "dhcp6_parser.cc"
3431#line 2164 "dhcp6_parser.yy"
3440 if ((old->size() != 1) || !old->contains(
"comment")) {
3441 std::stringstream msg;
3442 msg <<
"duplicate user-context entries (previous at "
3443 << old->getPosition().str() <<
")";
3444 error(yystack_[3].location, msg.str());
3447 user_context->set(
"comment", old->get(
"comment"));
3451 parent->set(
"user-context", user_context);
3454#line 3455 "dhcp6_parser.cc"
3458#line 2187 "dhcp6_parser.yy"
3462#line 3463 "dhcp6_parser.cc"
3466#line 2189 "dhcp6_parser.yy"
3471 user_context->set(
"comment", comment);
3477 if (old->contains(
"comment")) {
3478 std::stringstream msg;
3479 msg <<
"duplicate user-context/comment entries (previous at "
3480 << old->getPosition().str() <<
")";
3481 error(yystack_[3].location, msg.str());
3484 merge(user_context, old);
3488 parent->set(
"user-context", user_context);
3491#line 3492 "dhcp6_parser.cc"
3495#line 2217 "dhcp6_parser.yy"
3499 ctx.
stack_.back()->set(
"pd-pools", l);
3503#line 3504 "dhcp6_parser.cc"
3507#line 2223 "dhcp6_parser.yy"
3512#line 3513 "dhcp6_parser.cc"
3516#line 2236 "dhcp6_parser.yy"
3520#line 3521 "dhcp6_parser.cc"
3524#line 2241 "dhcp6_parser.yy"
3527 ctx.
stack_.back()->add(m);
3530#line 3531 "dhcp6_parser.cc"
3534#line 2245 "dhcp6_parser.yy"
3542#line 3543 "dhcp6_parser.cc"
3546#line 2253 "dhcp6_parser.yy"
3552#line 3553 "dhcp6_parser.cc"
3556#line 2257 "dhcp6_parser.yy"
3564#line 3565 "dhcp6_parser.cc"
3568#line 2267 "dhcp6_parser.yy"
3572#line 3573 "dhcp6_parser.cc"
3576#line 2286 "dhcp6_parser.yy"
3581#line 3582 "dhcp6_parser.cc"
3585#line 2289 "dhcp6_parser.yy"
3588 ctx.
stack_.back()->set(
"prefix", prf);
3591#line 3592 "dhcp6_parser.cc"
3595#line 2295 "dhcp6_parser.yy"
3597 ctx.
unique(
"prefix-len", ctx.
loc2pos(yystack_[2].location));
3599 ctx.
stack_.back()->set(
"prefix-len", prf);
3601#line 3602 "dhcp6_parser.cc"
3605#line 2301 "dhcp6_parser.yy"
3607 ctx.
unique(
"excluded-prefix", ctx.
loc2pos(yystack_[0].location));
3610#line 3611 "dhcp6_parser.cc"
3614#line 2304 "dhcp6_parser.yy"
3617 ctx.
stack_.back()->set(
"excluded-prefix", prf);
3620#line 3621 "dhcp6_parser.cc"
3624#line 2310 "dhcp6_parser.yy"
3626 ctx.
unique(
"excluded-prefix-len", ctx.
loc2pos(yystack_[2].location));
3628 ctx.
stack_.back()->set(
"excluded-prefix-len", prf);
3630#line 3631 "dhcp6_parser.cc"
3634#line 2316 "dhcp6_parser.yy"
3636 ctx.
unique(
"delegated-len", ctx.
loc2pos(yystack_[2].location));
3638 ctx.
stack_.back()->set(
"delegated-len", deleg);
3640#line 3641 "dhcp6_parser.cc"
3644#line 2325 "dhcp6_parser.yy"
3646 ctx.
unique(
"reservations", ctx.
loc2pos(yystack_[0].location));
3648 ctx.
stack_.back()->set(
"reservations", l);
3652#line 3653 "dhcp6_parser.cc"
3656#line 2331 "dhcp6_parser.yy"
3661#line 3662 "dhcp6_parser.cc"
3665#line 2342 "dhcp6_parser.yy"
3669#line 3670 "dhcp6_parser.cc"
3673#line 2347 "dhcp6_parser.yy"
3676 ctx.
stack_.back()->add(m);
3679#line 3680 "dhcp6_parser.cc"
3683#line 2351 "dhcp6_parser.yy"
3688#line 3689 "dhcp6_parser.cc"
3692#line 2356 "dhcp6_parser.yy"
3698#line 3699 "dhcp6_parser.cc"
3702#line 2360 "dhcp6_parser.yy"
3707#line 3708 "dhcp6_parser.cc"
3711#line 2371 "dhcp6_parser.yy"
3715#line 3716 "dhcp6_parser.cc"
3719#line 2391 "dhcp6_parser.yy"
3721 ctx.
unique(
"ip-addresses", ctx.
loc2pos(yystack_[0].location));
3723 ctx.
stack_.back()->set(
"ip-addresses", l);
3727#line 3728 "dhcp6_parser.cc"
3731#line 2397 "dhcp6_parser.yy"
3736#line 3737 "dhcp6_parser.cc"
3740#line 2402 "dhcp6_parser.yy"
3744 ctx.
stack_.back()->set(
"prefixes", l);
3748#line 3749 "dhcp6_parser.cc"
3752#line 2408 "dhcp6_parser.yy"
3757#line 3758 "dhcp6_parser.cc"
3761#line 2413 "dhcp6_parser.yy"
3763 ctx.
unique(
"excluded-prefixes", ctx.
loc2pos(yystack_[0].location));
3765 ctx.
stack_.back()->set(
"excluded-prefixes", l);
3769#line 3770 "dhcp6_parser.cc"
3773#line 2419 "dhcp6_parser.yy"
3778#line 3779 "dhcp6_parser.cc"
3782#line 2424 "dhcp6_parser.yy"
3787#line 3788 "dhcp6_parser.cc"
3791#line 2427 "dhcp6_parser.yy"
3794 ctx.
stack_.back()->set(
"duid", d);
3797#line 3798 "dhcp6_parser.cc"
3801#line 2433 "dhcp6_parser.yy"
3803 ctx.
unique(
"hw-address", ctx.
loc2pos(yystack_[0].location));
3806#line 3807 "dhcp6_parser.cc"
3810#line 2436 "dhcp6_parser.yy"
3813 ctx.
stack_.back()->set(
"hw-address", hw);
3816#line 3817 "dhcp6_parser.cc"
3820#line 2442 "dhcp6_parser.yy"
3825#line 3826 "dhcp6_parser.cc"
3829#line 2445 "dhcp6_parser.yy"
3832 ctx.
stack_.back()->set(
"hostname", host);
3835#line 3836 "dhcp6_parser.cc"
3839#line 2451 "dhcp6_parser.yy"
3844#line 3845 "dhcp6_parser.cc"
3848#line 2454 "dhcp6_parser.yy"
3851 ctx.
stack_.back()->set(
"flex-id", hw);
3854#line 3855 "dhcp6_parser.cc"
3858#line 2460 "dhcp6_parser.yy"
3860 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3862 ctx.
stack_.back()->set(
"client-classes", c);
3866#line 3867 "dhcp6_parser.cc"
3870#line 2466 "dhcp6_parser.yy"
3875#line 3876 "dhcp6_parser.cc"
3879#line 2474 "dhcp6_parser.yy"
3883 ctx.
stack_.back()->set(
"relay", m);
3887#line 3888 "dhcp6_parser.cc"
3891#line 2480 "dhcp6_parser.yy"
3896#line 3897 "dhcp6_parser.cc"
3900#line 2491 "dhcp6_parser.yy"
3902 ctx.
unique(
"client-classes", ctx.
loc2pos(yystack_[0].location));
3904 ctx.
stack_.back()->set(
"client-classes", l);
3908#line 3909 "dhcp6_parser.cc"
3912#line 2497 "dhcp6_parser.yy"
3917#line 3918 "dhcp6_parser.cc"
3921#line 2504 "dhcp6_parser.yy"
3925#line 3926 "dhcp6_parser.cc"
3929#line 2509 "dhcp6_parser.yy"
3932 ctx.
stack_.back()->add(m);
3935#line 3936 "dhcp6_parser.cc"
3939#line 2513 "dhcp6_parser.yy"
3945#line 3946 "dhcp6_parser.cc"
3949#line 2525 "dhcp6_parser.yy"
3953#line 3954 "dhcp6_parser.cc"
3957#line 2548 "dhcp6_parser.yy"
3962#line 3963 "dhcp6_parser.cc"
3966#line 2551 "dhcp6_parser.yy"
3969 ctx.
stack_.back()->set(
"test", test);
3972#line 3973 "dhcp6_parser.cc"
3976#line 2557 "dhcp6_parser.yy"
3978 ctx.
unique(
"template-test", ctx.
loc2pos(yystack_[0].location));
3981#line 3982 "dhcp6_parser.cc"
3985#line 2560 "dhcp6_parser.yy"
3988 ctx.
stack_.back()->set(
"template-test", template_test);
3991#line 3992 "dhcp6_parser.cc"
3995#line 2566 "dhcp6_parser.yy"
3997 ctx.
unique(
"only-if-required", ctx.
loc2pos(yystack_[2].location));
3999 ctx.
stack_.back()->set(
"only-if-required", b);
4001#line 4002 "dhcp6_parser.cc"
4005#line 2575 "dhcp6_parser.yy"
4009 ctx.
stack_.back()->set(
"server-id", m);
4013#line 4014 "dhcp6_parser.cc"
4017#line 2581 "dhcp6_parser.yy"
4024#line 4025 "dhcp6_parser.cc"
4028#line 2590 "dhcp6_parser.yy"
4032#line 4033 "dhcp6_parser.cc"
4036#line 2606 "dhcp6_parser.yy"
4041#line 4042 "dhcp6_parser.cc"
4045#line 2609 "dhcp6_parser.yy"
4050#line 4051 "dhcp6_parser.cc"
4054#line 2614 "dhcp6_parser.yy"
4056#line 4057 "dhcp6_parser.cc"
4060#line 2615 "dhcp6_parser.yy"
4062#line 4063 "dhcp6_parser.cc"
4066#line 2616 "dhcp6_parser.yy"
4068#line 4069 "dhcp6_parser.cc"
4072#line 2619 "dhcp6_parser.yy"
4076 ctx.
stack_.back()->set(
"htype", htype);
4078#line 4079 "dhcp6_parser.cc"
4082#line 2625 "dhcp6_parser.yy"
4084 ctx.
unique(
"identifier", ctx.
loc2pos(yystack_[0].location));
4087#line 4088 "dhcp6_parser.cc"
4091#line 2628 "dhcp6_parser.yy"
4094 ctx.
stack_.back()->set(
"identifier",
id);
4097#line 4098 "dhcp6_parser.cc"
4101#line 2634 "dhcp6_parser.yy"
4105 ctx.
stack_.back()->set(
"time", time);
4107#line 4108 "dhcp6_parser.cc"
4111#line 2640 "dhcp6_parser.yy"
4113 ctx.
unique(
"enterprise-id", ctx.
loc2pos(yystack_[2].location));
4115 ctx.
stack_.back()->set(
"enterprise-id", time);
4117#line 4118 "dhcp6_parser.cc"
4121#line 2648 "dhcp6_parser.yy"
4123 ctx.
unique(
"dhcp4o6-port", ctx.
loc2pos(yystack_[2].location));
4125 ctx.
stack_.back()->set(
"dhcp4o6-port", time);
4127#line 4128 "dhcp6_parser.cc"
4131#line 2656 "dhcp6_parser.yy"
4133 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
4134 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[0].location));
4136 ctx.
stack_.back()->set(
"control-socket", m);
4140#line 4141 "dhcp6_parser.cc"
4144#line 2663 "dhcp6_parser.yy"
4149#line 4150 "dhcp6_parser.cc"
4153#line 2668 "dhcp6_parser.yy"
4155 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[0].location));
4156 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
4158 ctx.
stack_.back()->set(
"control-sockets", l);
4162#line 4163 "dhcp6_parser.cc"
4166#line 2675 "dhcp6_parser.yy"
4171#line 4172 "dhcp6_parser.cc"
4175#line 2686 "dhcp6_parser.yy"
4179#line 4180 "dhcp6_parser.cc"
4183#line 2691 "dhcp6_parser.yy"
4186 ctx.
stack_.back()->add(m);
4189#line 4190 "dhcp6_parser.cc"
4193#line 2695 "dhcp6_parser.yy"
4197#line 4198 "dhcp6_parser.cc"
4201#line 2701 "dhcp6_parser.yy"
4205#line 4206 "dhcp6_parser.cc"
4209#line 2720 "dhcp6_parser.yy"
4211 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
4214#line 4215 "dhcp6_parser.cc"
4218#line 2723 "dhcp6_parser.yy"
4220 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
4223#line 4224 "dhcp6_parser.cc"
4227#line 2729 "dhcp6_parser.yy"
4229#line 4230 "dhcp6_parser.cc"
4233#line 2730 "dhcp6_parser.yy"
4235#line 4236 "dhcp6_parser.cc"
4239#line 2731 "dhcp6_parser.yy"
4241#line 4242 "dhcp6_parser.cc"
4245#line 2734 "dhcp6_parser.yy"
4247 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
4248 ctx.
unique(
"socket-address", ctx.
loc2pos(yystack_[0].location));
4251#line 4252 "dhcp6_parser.cc"
4255#line 2738 "dhcp6_parser.yy"
4258 ctx.
stack_.back()->set(
"socket-name", name);
4261#line 4262 "dhcp6_parser.cc"
4265#line 2744 "dhcp6_parser.yy"
4267 ctx.
unique(
"socket-address", ctx.
loc2pos(yystack_[0].location));
4268 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
4271#line 4272 "dhcp6_parser.cc"
4275#line 2748 "dhcp6_parser.yy"
4278 ctx.
stack_.back()->set(
"socket-address", address);
4281#line 4282 "dhcp6_parser.cc"
4285#line 2754 "dhcp6_parser.yy"
4287 ctx.
unique(
"socket-port", ctx.
loc2pos(yystack_[2].location));
4289 ctx.
stack_.back()->set(
"socket-port", port);
4291#line 4292 "dhcp6_parser.cc"
4295#line 2760 "dhcp6_parser.yy"
4297 ctx.
unique(
"cert-required", ctx.
loc2pos(yystack_[2].location));
4299 ctx.
stack_.back()->set(
"cert-required", req);
4301#line 4302 "dhcp6_parser.cc"
4305#line 2768 "dhcp6_parser.yy"
4307 ctx.
unique(
"authentication", ctx.
loc2pos(yystack_[0].location));
4309 ctx.
stack_.back()->set(
"authentication", m);
4313#line 4314 "dhcp6_parser.cc"
4317#line 2774 "dhcp6_parser.yy"
4324#line 4325 "dhcp6_parser.cc"
4328#line 2783 "dhcp6_parser.yy"
4332#line 4333 "dhcp6_parser.cc"
4336#line 2797 "dhcp6_parser.yy"
4341#line 4342 "dhcp6_parser.cc"
4345#line 2800 "dhcp6_parser.yy"
4350#line 4351 "dhcp6_parser.cc"
4354#line 2805 "dhcp6_parser.yy"
4356#line 4357 "dhcp6_parser.cc"
4360#line 2808 "dhcp6_parser.yy"
4365#line 4366 "dhcp6_parser.cc"
4369#line 2811 "dhcp6_parser.yy"
4372 ctx.
stack_.back()->set(
"realm", realm);
4375#line 4376 "dhcp6_parser.cc"
4379#line 2817 "dhcp6_parser.yy"
4384#line 4385 "dhcp6_parser.cc"
4388#line 2820 "dhcp6_parser.yy"
4391 ctx.
stack_.back()->set(
"directory", directory);
4394#line 4395 "dhcp6_parser.cc"
4398#line 2826 "dhcp6_parser.yy"
4402 ctx.
stack_.back()->set(
"clients", l);
4406#line 4407 "dhcp6_parser.cc"
4410#line 2832 "dhcp6_parser.yy"
4415#line 4416 "dhcp6_parser.cc"
4419#line 2843 "dhcp6_parser.yy"
4423#line 4424 "dhcp6_parser.cc"
4427#line 2848 "dhcp6_parser.yy"
4430 ctx.
stack_.back()->add(m);
4433#line 4434 "dhcp6_parser.cc"
4437#line 2852 "dhcp6_parser.yy"
4441#line 4442 "dhcp6_parser.cc"
4445#line 2858 "dhcp6_parser.yy"
4449#line 4450 "dhcp6_parser.cc"
4453#line 2872 "dhcp6_parser.yy"
4458#line 4459 "dhcp6_parser.cc"
4462#line 2875 "dhcp6_parser.yy"
4465 ctx.
stack_.back()->set(
"user-file", user);
4468#line 4469 "dhcp6_parser.cc"
4472#line 2881 "dhcp6_parser.yy"
4474 ctx.
unique(
"password-file", ctx.
loc2pos(yystack_[0].location));
4477#line 4478 "dhcp6_parser.cc"
4481#line 2884 "dhcp6_parser.yy"
4484 ctx.
stack_.back()->set(
"password-file", password);
4487#line 4488 "dhcp6_parser.cc"
4491#line 2892 "dhcp6_parser.yy"
4493 ctx.
unique(
"dhcp-queue-control", ctx.
loc2pos(yystack_[0].location));
4495 ctx.
stack_.back()->set(
"dhcp-queue-control", qc);
4496 ctx.
stack_.push_back(qc);
4499#line 4500 "dhcp6_parser.cc"
4503#line 2898 "dhcp6_parser.yy"
4510#line 4511 "dhcp6_parser.cc"
4514#line 2907 "dhcp6_parser.yy"
4518#line 4519 "dhcp6_parser.cc"
4522#line 2920 "dhcp6_parser.yy"
4524 ctx.
unique(
"enable-queue", ctx.
loc2pos(yystack_[2].location));
4526 ctx.
stack_.back()->set(
"enable-queue", b);
4528#line 4529 "dhcp6_parser.cc"
4532#line 2926 "dhcp6_parser.yy"
4534 ctx.
unique(
"queue-type", ctx.
loc2pos(yystack_[0].location));
4537#line 4538 "dhcp6_parser.cc"
4541#line 2929 "dhcp6_parser.yy"
4544 ctx.
stack_.back()->set(
"queue-type", qt);
4547#line 4548 "dhcp6_parser.cc"
4551#line 2935 "dhcp6_parser.yy"
4555 ctx.
stack_.back()->set(
"capacity", c);
4557#line 4558 "dhcp6_parser.cc"
4561#line 2941 "dhcp6_parser.yy"
4563 ctx.
unique(yystack_[0].value.as < std::string > (), ctx.
loc2pos(yystack_[0].location));
4566#line 4567 "dhcp6_parser.cc"
4570#line 2944 "dhcp6_parser.yy"
4572 ctx.
stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
4575#line 4576 "dhcp6_parser.cc"
4579#line 2951 "dhcp6_parser.yy"
4583 ctx.
stack_.back()->set(
"dhcp-ddns", m);
4587#line 4588 "dhcp6_parser.cc"
4591#line 2957 "dhcp6_parser.yy"
4594 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[2].location), ctx.
loc2pos(yystack_[0].location));
4598#line 4599 "dhcp6_parser.cc"
4602#line 2964 "dhcp6_parser.yy"
4608#line 4609 "dhcp6_parser.cc"
4612#line 2968 "dhcp6_parser.yy"
4615 ctx.
require(
"enable-updates", ctx.
loc2pos(yystack_[3].location), ctx.
loc2pos(yystack_[0].location));
4618#line 4619 "dhcp6_parser.cc"
4622#line 2976 "dhcp6_parser.yy"
4626#line 4627 "dhcp6_parser.cc"
4630#line 2994 "dhcp6_parser.yy"
4632 ctx.
unique(
"enable-updates", ctx.
loc2pos(yystack_[2].location));
4634 ctx.
stack_.back()->set(
"enable-updates", b);
4636#line 4637 "dhcp6_parser.cc"
4640#line 3000 "dhcp6_parser.yy"
4645#line 4646 "dhcp6_parser.cc"
4649#line 3003 "dhcp6_parser.yy"
4652 ctx.
stack_.back()->set(
"server-ip", s);
4655#line 4656 "dhcp6_parser.cc"
4659#line 3009 "dhcp6_parser.yy"
4661 ctx.
unique(
"server-port", ctx.
loc2pos(yystack_[2].location));
4663 ctx.
stack_.back()->set(
"server-port", i);
4665#line 4666 "dhcp6_parser.cc"
4669#line 3015 "dhcp6_parser.yy"
4674#line 4675 "dhcp6_parser.cc"
4678#line 3018 "dhcp6_parser.yy"
4681 ctx.
stack_.back()->set(
"sender-ip", s);
4684#line 4685 "dhcp6_parser.cc"
4688#line 3024 "dhcp6_parser.yy"
4690 ctx.
unique(
"sender-port", ctx.
loc2pos(yystack_[2].location));
4692 ctx.
stack_.back()->set(
"sender-port", i);
4694#line 4695 "dhcp6_parser.cc"
4698#line 3030 "dhcp6_parser.yy"
4700 ctx.
unique(
"max-queue-size", ctx.
loc2pos(yystack_[2].location));
4702 ctx.
stack_.back()->set(
"max-queue-size", i);
4704#line 4705 "dhcp6_parser.cc"
4708#line 3036 "dhcp6_parser.yy"
4710 ctx.
unique(
"ncr-protocol", ctx.
loc2pos(yystack_[0].location));
4713#line 4714 "dhcp6_parser.cc"
4717#line 3039 "dhcp6_parser.yy"
4719 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as <
ElementPtr > ());
4722#line 4723 "dhcp6_parser.cc"
4726#line 3045 "dhcp6_parser.yy"
4728#line 4729 "dhcp6_parser.cc"
4732#line 3046 "dhcp6_parser.yy"
4734#line 4735 "dhcp6_parser.cc"
4738#line 3049 "dhcp6_parser.yy"
4740 ctx.
unique(
"ncr-format", ctx.
loc2pos(yystack_[0].location));
4743#line 4744 "dhcp6_parser.cc"
4747#line 3052 "dhcp6_parser.yy"
4750 ctx.
stack_.back()->set(
"ncr-format", json);
4753#line 4754 "dhcp6_parser.cc"
4757#line 3060 "dhcp6_parser.yy"
4759 ctx.
unique(
"config-control", ctx.
loc2pos(yystack_[0].location));
4761 ctx.
stack_.back()->set(
"config-control", i);
4765#line 4766 "dhcp6_parser.cc"
4769#line 3066 "dhcp6_parser.yy"
4775#line 4776 "dhcp6_parser.cc"
4779#line 3072 "dhcp6_parser.yy"
4785#line 4786 "dhcp6_parser.cc"
4789#line 3076 "dhcp6_parser.yy"
4794#line 4795 "dhcp6_parser.cc"
4798#line 3084 "dhcp6_parser.yy"
4802#line 4803 "dhcp6_parser.cc"
4806#line 3094 "dhcp6_parser.yy"
4808 ctx.
unique(
"config-databases", ctx.
loc2pos(yystack_[0].location));
4810 ctx.
stack_.back()->set(
"config-databases", l);
4814#line 4815 "dhcp6_parser.cc"
4818#line 3100 "dhcp6_parser.yy"
4823#line 4824 "dhcp6_parser.cc"
4827#line 3105 "dhcp6_parser.yy"
4829 ctx.
unique(
"config-fetch-wait-time", ctx.
loc2pos(yystack_[2].location));
4831 ctx.
stack_.back()->set(
"config-fetch-wait-time", value);
4833#line 4834 "dhcp6_parser.cc"
4837#line 3113 "dhcp6_parser.yy"
4841 ctx.
stack_.back()->set(
"loggers", l);
4845#line 4846 "dhcp6_parser.cc"
4849#line 3119 "dhcp6_parser.yy"
4854#line 4855 "dhcp6_parser.cc"
4858#line 3128 "dhcp6_parser.yy"
4862#line 4863 "dhcp6_parser.cc"
4866#line 3134 "dhcp6_parser.yy"
4869 ctx.
stack_.back()->add(l);
4872#line 4873 "dhcp6_parser.cc"
4876#line 3138 "dhcp6_parser.yy"
4880#line 4881 "dhcp6_parser.cc"
4884#line 3144 "dhcp6_parser.yy"
4888#line 4889 "dhcp6_parser.cc"
4892#line 3158 "dhcp6_parser.yy"
4894 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
4896 ctx.
stack_.back()->set(
"debuglevel", dl);
4898#line 4899 "dhcp6_parser.cc"
4902#line 3164 "dhcp6_parser.yy"
4907#line 4908 "dhcp6_parser.cc"
4911#line 3167 "dhcp6_parser.yy"
4914 ctx.
stack_.back()->set(
"severity", sev);
4917#line 4918 "dhcp6_parser.cc"
4921#line 3173 "dhcp6_parser.yy"
4923 ctx.
unique(
"output-options", ctx.
loc2pos(yystack_[0].location));
4925 ctx.
stack_.back()->set(
"output-options", l);
4929#line 4930 "dhcp6_parser.cc"
4933#line 3179 "dhcp6_parser.yy"
4938#line 4939 "dhcp6_parser.cc"
4942#line 3186 "dhcp6_parser.yy"
4946#line 4947 "dhcp6_parser.cc"
4950#line 3191 "dhcp6_parser.yy"
4953 ctx.
stack_.back()->add(m);
4956#line 4957 "dhcp6_parser.cc"
4960#line 3195 "dhcp6_parser.yy"
4964#line 4965 "dhcp6_parser.cc"
4968#line 3201 "dhcp6_parser.yy"
4972#line 4973 "dhcp6_parser.cc"
4976#line 3213 "dhcp6_parser.yy"
4981#line 4982 "dhcp6_parser.cc"
4985#line 3216 "dhcp6_parser.yy"
4988 ctx.
stack_.back()->set(
"output", sev);
4991#line 4992 "dhcp6_parser.cc"
4995#line 3222 "dhcp6_parser.yy"
4999 ctx.
stack_.back()->set(
"flush", flush);
5001#line 5002 "dhcp6_parser.cc"
5005#line 3228 "dhcp6_parser.yy"
5009 ctx.
stack_.back()->set(
"maxsize", maxsize);
5011#line 5012 "dhcp6_parser.cc"
5015#line 3234 "dhcp6_parser.yy"
5019 ctx.
stack_.back()->set(
"maxver", maxver);
5021#line 5022 "dhcp6_parser.cc"
5025#line 3240 "dhcp6_parser.yy"
5030#line 5031 "dhcp6_parser.cc"
5034#line 3243 "dhcp6_parser.yy"
5037 ctx.
stack_.back()->set(
"pattern", sev);
5040#line 5041 "dhcp6_parser.cc"
5044#line 3249 "dhcp6_parser.yy"
5046 ctx.
unique(
"compatibility", ctx.
loc2pos(yystack_[0].location));
5048 ctx.
stack_.back()->set(
"compatibility", i);
5052#line 5053 "dhcp6_parser.cc"
5056#line 3255 "dhcp6_parser.yy"
5061#line 5062 "dhcp6_parser.cc"
5065#line 3262 "dhcp6_parser.yy"
5069#line 5070 "dhcp6_parser.cc"
5073#line 3271 "dhcp6_parser.yy"
5075 ctx.
unique(
"lenient-option-parsing", ctx.
loc2pos(yystack_[2].location));
5077 ctx.
stack_.back()->set(
"lenient-option-parsing", b);
5079#line 5080 "dhcp6_parser.cc"
5083#line 5084 "dhcp6_parser.cc"
5092 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
5102 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
5116 std::string msg = yysyntax_error_ (yyctx);
5121 yyerror_range[1].location = yyla.location;
5122 if (yyerrstatus_ == 3)
5130 else if (!yyla.empty ())
5132 yy_destroy_ (
"Error: discarding", yyla);
5166 yyn = yypact_[+yystack_[0].state];
5167 if (!yy_pact_value_is_default_ (yyn))
5170 if (0 <= yyn && yyn <= yylast_
5173 yyn = yytable_[yyn];