#line 782 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 38:
-#line 264 "dhcp4_parser.yy" // lalr1.cc:859
+ case 40:
+#line 267 "dhcp4_parser.yy" // lalr1.cc:859
+ {
+ // List consisting of a single element.
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
+ }
+#line 791 "dhcp4_parser.cc" // lalr1.cc:859
+ break;
+
+ case 41:
+#line 271 "dhcp4_parser.yy" // lalr1.cc:859
+ {
+ // List ending with , and a value.
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
+ }
+#line 800 "dhcp4_parser.cc" // lalr1.cc:859
+ break;
+
+ case 42:
+#line 278 "dhcp4_parser.yy" // lalr1.cc:859
{
// List parsing about to start
}
-#line 790 "dhcp4_parser.cc" // lalr1.cc:859
+#line 808 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 39:
-#line 266 "dhcp4_parser.yy" // lalr1.cc:859
+ case 43:
+#line 280 "dhcp4_parser.yy" // lalr1.cc:859
{
// list parsing complete. Put any sanity checking here
//ctx.stack_.pop_back();
}
-#line 799 "dhcp4_parser.cc" // lalr1.cc:859
+#line 817 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 42:
-#line 275 "dhcp4_parser.yy" // lalr1.cc:859
+ case 46:
+#line 289 "dhcp4_parser.yy" // lalr1.cc:859
{
- // List consisting of a single element.
- ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
- }
-#line 808 "dhcp4_parser.cc" // lalr1.cc:859
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->add(s);
+ }
+#line 826 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 43:
-#line 279 "dhcp4_parser.yy" // lalr1.cc:859
+ case 47:
+#line 293 "dhcp4_parser.yy" // lalr1.cc:859
{
- // List ending with , and a value.
- ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
- }
-#line 817 "dhcp4_parser.cc" // lalr1.cc:859
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->add(s);
+ }
+#line 835 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 44:
-#line 290 "dhcp4_parser.yy" // lalr1.cc:859
+ case 48:
+#line 304 "dhcp4_parser.yy" // lalr1.cc:859
{
const std::string& where = ctx.contextName();
const std::string& keyword = yystack_[1].value.as< std::string > ();
error(yystack_[1].location,
"got unexpected keyword \"" + keyword + "\" in " + where + " map.");
}
-#line 828 "dhcp4_parser.cc" // lalr1.cc:859
+#line 846 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 45:
-#line 300 "dhcp4_parser.yy" // lalr1.cc:859
+ case 49:
+#line 314 "dhcp4_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 839 "dhcp4_parser.cc" // lalr1.cc:859
+#line 857 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 46:
-#line 305 "dhcp4_parser.yy" // lalr1.cc:859
+ case 50:
+#line 319 "dhcp4_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 849 "dhcp4_parser.cc" // lalr1.cc:859
+#line 867 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 54:
-#line 324 "dhcp4_parser.yy" // lalr1.cc:859
+ case 58:
+#line 338 "dhcp4_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP4);
}
-#line 862 "dhcp4_parser.cc" // lalr1.cc:859
+#line 880 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 55:
-#line 331 "dhcp4_parser.yy" // lalr1.cc:859
+ case 59:
+#line 345 "dhcp4_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
ctx.stack_.pop_back();
ctx.leave();
}
-#line 874 "dhcp4_parser.cc" // lalr1.cc:859
+#line 892 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 56:
-#line 341 "dhcp4_parser.yy" // lalr1.cc:859
+ case 60:
+#line 355 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the Dhcp4 map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 884 "dhcp4_parser.cc" // lalr1.cc:859
+#line 902 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 57:
-#line 345 "dhcp4_parser.yy" // lalr1.cc:859
+ case 61:
+#line 359 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 892 "dhcp4_parser.cc" // lalr1.cc:859
+#line 910 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 82:
-#line 379 "dhcp4_parser.yy" // lalr1.cc:859
+ case 86:
+#line 393 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("valid-lifetime", prf);
}
-#line 901 "dhcp4_parser.cc" // lalr1.cc:859
+#line 919 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 83:
-#line 384 "dhcp4_parser.yy" // lalr1.cc:859
+ case 87:
+#line 398 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("renew-timer", prf);
}
-#line 910 "dhcp4_parser.cc" // lalr1.cc:859
+#line 928 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 84:
-#line 389 "dhcp4_parser.yy" // lalr1.cc:859
+ case 88:
+#line 403 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rebind-timer", prf);
}
-#line 919 "dhcp4_parser.cc" // lalr1.cc:859
+#line 937 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 85:
-#line 394 "dhcp4_parser.yy" // lalr1.cc:859
+ case 89:
+#line 408 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("decline-probation-period", dpp);
}
-#line 928 "dhcp4_parser.cc" // lalr1.cc:859
+#line 946 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 86:
-#line 399 "dhcp4_parser.yy" // lalr1.cc:859
+ case 90:
+#line 413 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("echo-client-id", echo);
}
-#line 937 "dhcp4_parser.cc" // lalr1.cc:859
+#line 955 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 87:
-#line 404 "dhcp4_parser.yy" // lalr1.cc:859
+ case 91:
+#line 418 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("match-client-id", match);
}
-#line 946 "dhcp4_parser.cc" // lalr1.cc:859
+#line 964 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 88:
-#line 410 "dhcp4_parser.yy" // lalr1.cc:859
+ case 92:
+#line 424 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interfaces-config", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.INTERFACES_CONFIG);
}
-#line 957 "dhcp4_parser.cc" // lalr1.cc:859
+#line 975 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 89:
-#line 415 "dhcp4_parser.yy" // lalr1.cc:859
+ case 93:
+#line 429 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 966 "dhcp4_parser.cc" // lalr1.cc:859
+#line 984 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 94:
-#line 428 "dhcp4_parser.yy" // lalr1.cc:859
+ case 98:
+#line 442 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the interfaces-config map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 976 "dhcp4_parser.cc" // lalr1.cc:859
+#line 994 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 95:
-#line 432 "dhcp4_parser.yy" // lalr1.cc:859
+ case 99:
+#line 446 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 984 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1002 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 96:
-#line 436 "dhcp4_parser.yy" // lalr1.cc:859
+ case 100:
+#line 450 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interfaces", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 995 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1013 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 97:
-#line 441 "dhcp4_parser.yy" // lalr1.cc:859
+ case 101:
+#line 455 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1004 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1022 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 98:
-#line 446 "dhcp4_parser.yy" // lalr1.cc:859
+ case 102:
+#line 460 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1012 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1030 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 99:
-#line 448 "dhcp4_parser.yy" // lalr1.cc:859
+ case 103:
+#line 462 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr type(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp-socket-type", type);
ctx.leave();
}
-#line 1022 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1040 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 100:
-#line 454 "dhcp4_parser.yy" // lalr1.cc:859
+ case 104:
+#line 468 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lease-database", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.LEASE_DATABASE);
}
-#line 1033 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1051 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 101:
-#line 459 "dhcp4_parser.yy" // lalr1.cc:859
+ case 105:
+#line 473 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1042 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1060 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 102:
-#line 464 "dhcp4_parser.yy" // lalr1.cc:859
+ case 106:
+#line 478 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hosts-database", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.HOSTS_DATABASE);
}
-#line 1053 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1071 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 103:
-#line 469 "dhcp4_parser.yy" // lalr1.cc:859
+ case 107:
+#line 483 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1062 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1080 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 115:
-#line 489 "dhcp4_parser.yy" // lalr1.cc:859
+ case 119:
+#line 503 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1070 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1088 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 116:
-#line 491 "dhcp4_parser.yy" // lalr1.cc:859
+ case 120:
+#line 505 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("type", prf);
ctx.leave();
}
-#line 1080 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1098 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 117:
-#line 497 "dhcp4_parser.yy" // lalr1.cc:859
+ case 121:
+#line 511 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1088 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1106 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 118:
-#line 499 "dhcp4_parser.yy" // lalr1.cc:859
+ case 122:
+#line 513 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user", user);
ctx.leave();
}
-#line 1098 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1116 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 119:
-#line 505 "dhcp4_parser.yy" // lalr1.cc:859
+ case 123:
+#line 519 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1106 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1124 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 120:
-#line 507 "dhcp4_parser.yy" // lalr1.cc:859
+ case 124:
+#line 521 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password", pwd);
ctx.leave();
}
-#line 1116 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1134 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 121:
-#line 513 "dhcp4_parser.yy" // lalr1.cc:859
+ case 125:
+#line 527 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1124 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1142 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 122:
-#line 515 "dhcp4_parser.yy" // lalr1.cc:859
+ case 126:
+#line 529 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("host", h);
ctx.leave();
}
-#line 1134 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1152 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 123:
-#line 521 "dhcp4_parser.yy" // lalr1.cc:859
+ case 127:
+#line 535 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1142 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1160 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 124:
-#line 523 "dhcp4_parser.yy" // lalr1.cc:859
+ case 128:
+#line 537 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1152 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1170 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 125:
-#line 529 "dhcp4_parser.yy" // lalr1.cc:859
+ case 129:
+#line 543 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("persist", n);
}
-#line 1161 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1179 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 126:
-#line 534 "dhcp4_parser.yy" // lalr1.cc:859
+ case 130:
+#line 548 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lfc-interval", n);
}
-#line 1170 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1188 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 127:
-#line 539 "dhcp4_parser.yy" // lalr1.cc:859
+ case 131:
+#line 553 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("readonly", n);
}
-#line 1179 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1197 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 128:
-#line 544 "dhcp4_parser.yy" // lalr1.cc:859
+ case 132:
+#line 558 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 1188 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1206 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 129:
-#line 549 "dhcp4_parser.yy" // lalr1.cc:859
+ case 133:
+#line 563 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("host-reservation-identifiers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
}
-#line 1199 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1217 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 130:
-#line 554 "dhcp4_parser.yy" // lalr1.cc:859
+ case 134:
+#line 568 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1208 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1226 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 137:
-#line 569 "dhcp4_parser.yy" // lalr1.cc:859
+ case 141:
+#line 583 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(hwaddr);
}
-#line 1217 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1235 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 138:
-#line 574 "dhcp4_parser.yy" // lalr1.cc:859
+ case 142:
+#line 588 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(circuit);
}
-#line 1226 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1244 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 139:
-#line 579 "dhcp4_parser.yy" // lalr1.cc:859
+ case 143:
+#line 593 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(client);
}
-#line 1235 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1253 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 140:
-#line 584 "dhcp4_parser.yy" // lalr1.cc:859
+ case 144:
+#line 598 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hooks-libraries", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 1246 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1264 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 141:
-#line 589 "dhcp4_parser.yy" // lalr1.cc:859
+ case 145:
+#line 603 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1255 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1273 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 146:
-#line 602 "dhcp4_parser.yy" // lalr1.cc:859
+ case 150:
+#line 616 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1265 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1283 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 147:
-#line 606 "dhcp4_parser.yy" // lalr1.cc:859
+ case 151:
+#line 620 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1273 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1291 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 148:
-#line 610 "dhcp4_parser.yy" // lalr1.cc:859
+ case 152:
+#line 624 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the hooks-libraries list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1283 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1301 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 149:
-#line 614 "dhcp4_parser.yy" // lalr1.cc:859
+ case 153:
+#line 628 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1291 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1309 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 155:
-#line 627 "dhcp4_parser.yy" // lalr1.cc:859
+ case 159:
+#line 641 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1299 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1317 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 156:
-#line 629 "dhcp4_parser.yy" // lalr1.cc:859
+ case 160:
+#line 643 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 1309 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1327 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 157:
-#line 635 "dhcp4_parser.yy" // lalr1.cc:859
+ case 161:
+#line 649 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1317 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1335 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 158:
-#line 637 "dhcp4_parser.yy" // lalr1.cc:859
+ case 162:
+#line 651 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1326 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1344 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 159:
-#line 643 "dhcp4_parser.yy" // lalr1.cc:859
+ case 163:
+#line 657 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("expired-leases-processing", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1337 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1355 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 160:
-#line 648 "dhcp4_parser.yy" // lalr1.cc:859
+ case 164:
+#line 662 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1346 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1364 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 163:
-#line 660 "dhcp4_parser.yy" // lalr1.cc:859
+ case 167:
+#line 674 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), value);
}
-#line 1355 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1373 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 164:
-#line 668 "dhcp4_parser.yy" // lalr1.cc:859
+ case 168:
+#line 682 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet4", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.SUBNET4);
}
-#line 1366 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1384 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 165:
-#line 673 "dhcp4_parser.yy" // lalr1.cc:859
+ case 169:
+#line 687 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1375 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1393 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 170:
-#line 693 "dhcp4_parser.yy" // lalr1.cc:859
+ case 174:
+#line 707 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1385 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1403 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 171:
-#line 697 "dhcp4_parser.yy" // lalr1.cc:859
+ case 175:
+#line 711 "dhcp4_parser.yy" // lalr1.cc:859
{
// Once we reached this place, the subnet parsing is now complete.
// If we want to, we can implement default values here.
// }
ctx.stack_.pop_back();
}
-#line 1408 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1426 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 172:
-#line 716 "dhcp4_parser.yy" // lalr1.cc:859
+ case 176:
+#line 730 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the subnet4 list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1418 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1436 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 173:
-#line 720 "dhcp4_parser.yy" // lalr1.cc:859
+ case 177:
+#line 734 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1426 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1444 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 196:
-#line 752 "dhcp4_parser.yy" // lalr1.cc:859
+ case 200:
+#line 766 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1434 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1452 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 197:
-#line 754 "dhcp4_parser.yy" // lalr1.cc:859
+ case 201:
+#line 768 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet", subnet);
ctx.leave();
}
-#line 1444 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1462 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 198:
-#line 760 "dhcp4_parser.yy" // lalr1.cc:859
+ case 202:
+#line 774 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1452 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1470 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 199:
-#line 762 "dhcp4_parser.yy" // lalr1.cc:859
+ case 203:
+#line 776 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-interface", iface);
ctx.leave();
}
-#line 1462 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1480 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 200:
-#line 768 "dhcp4_parser.yy" // lalr1.cc:859
+ case 204:
+#line 782 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1470 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1488 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 201:
-#line 770 "dhcp4_parser.yy" // lalr1.cc:859
+ case 205:
+#line 784 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-interface-id", iface);
ctx.leave();
}
-#line 1480 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1498 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 202:
-#line 776 "dhcp4_parser.yy" // lalr1.cc:859
+ case 206:
+#line 790 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1488 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1506 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 203:
-#line 778 "dhcp4_parser.yy" // lalr1.cc:859
+ case 207:
+#line 792 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-subnet", iface);
ctx.leave();
}
-#line 1498 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1516 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 204:
-#line 784 "dhcp4_parser.yy" // lalr1.cc:859
+ case 208:
+#line 798 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1506 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1524 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 205:
-#line 786 "dhcp4_parser.yy" // lalr1.cc:859
+ case 209:
+#line 800 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface", iface);
ctx.leave();
}
-#line 1516 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1534 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 206:
-#line 792 "dhcp4_parser.yy" // lalr1.cc:859
+ case 210:
+#line 806 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1524 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1542 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 207:
-#line 794 "dhcp4_parser.yy" // lalr1.cc:859
+ case 211:
+#line 808 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface-id", iface);
ctx.leave();
}
-#line 1534 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1552 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 208:
-#line 800 "dhcp4_parser.yy" // lalr1.cc:859
+ case 212:
+#line 814 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.CLIENT_CLASS);
}
-#line 1542 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1560 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 209:
-#line 802 "dhcp4_parser.yy" // lalr1.cc:859
+ case 213:
+#line 816 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-class", cls);
ctx.leave();
}
-#line 1552 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1570 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 210:
-#line 808 "dhcp4_parser.yy" // lalr1.cc:859
+ case 214:
+#line 822 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1560 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1578 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 211:
-#line 810 "dhcp4_parser.yy" // lalr1.cc:859
+ case 215:
+#line 824 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservation-mode", rm);
ctx.leave();
}
-#line 1570 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1588 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 212:
-#line 816 "dhcp4_parser.yy" // lalr1.cc:859
+ case 216:
+#line 830 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("id", id);
}
-#line 1579 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1597 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 213:
-#line 821 "dhcp4_parser.yy" // lalr1.cc:859
+ case 217:
+#line 835 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rapid-commit", rc);
}
-#line 1588 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1606 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 214:
-#line 830 "dhcp4_parser.yy" // lalr1.cc:859
+ case 218:
+#line 844 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("option-def", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DEF);
}
-#line 1599 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1617 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 215:
-#line 835 "dhcp4_parser.yy" // lalr1.cc:859
+ case 219:
+#line 849 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1608 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1626 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 220:
-#line 852 "dhcp4_parser.yy" // lalr1.cc:859
+ case 224:
+#line 866 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1618 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1636 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 221:
-#line 856 "dhcp4_parser.yy" // lalr1.cc:859
+ case 225:
+#line 870 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1626 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1644 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 222:
-#line 863 "dhcp4_parser.yy" // lalr1.cc:859
+ case 226:
+#line 877 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the option-def list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1636 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1654 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 223:
-#line 867 "dhcp4_parser.yy" // lalr1.cc:859
+ case 227:
+#line 881 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1644 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1662 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 237:
-#line 893 "dhcp4_parser.yy" // lalr1.cc:859
+ case 241:
+#line 907 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("code", code);
}
-#line 1653 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1671 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 240:
-#line 902 "dhcp4_parser.yy" // lalr1.cc:859
+ case 244:
+#line 916 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1661 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1679 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 241:
-#line 904 "dhcp4_parser.yy" // lalr1.cc:859
+ case 245:
+#line 918 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("record-types", rtypes);
ctx.leave();
}
-#line 1671 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1689 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 242:
-#line 910 "dhcp4_parser.yy" // lalr1.cc:859
+ case 246:
+#line 924 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1679 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1697 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 243:
-#line 912 "dhcp4_parser.yy" // lalr1.cc:859
+ case 247:
+#line 926 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("space", space);
ctx.leave();
}
-#line 1689 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1707 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 245:
-#line 920 "dhcp4_parser.yy" // lalr1.cc:859
+ case 249:
+#line 934 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1697 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1715 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 246:
-#line 922 "dhcp4_parser.yy" // lalr1.cc:859
+ case 250:
+#line 936 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("encapsulate", encap);
ctx.leave();
}
-#line 1707 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1725 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 247:
-#line 928 "dhcp4_parser.yy" // lalr1.cc:859
+ case 251:
+#line 942 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("array", array);
}
-#line 1716 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1734 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 248:
-#line 937 "dhcp4_parser.yy" // lalr1.cc:859
+ case 252:
+#line 951 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("option-data", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DATA);
}
-#line 1727 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1745 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 249:
-#line 942 "dhcp4_parser.yy" // lalr1.cc:859
+ case 253:
+#line 956 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1736 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1754 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 254:
-#line 961 "dhcp4_parser.yy" // lalr1.cc:859
+ case 258:
+#line 975 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1746 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1764 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 255:
-#line 965 "dhcp4_parser.yy" // lalr1.cc:859
+ case 259:
+#line 979 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1754 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1772 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 256:
-#line 972 "dhcp4_parser.yy" // lalr1.cc:859
+ case 260:
+#line 986 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the option-data list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1764 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1782 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 257:
-#line 976 "dhcp4_parser.yy" // lalr1.cc:859
+ case 261:
+#line 990 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1772 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1790 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 269:
-#line 1005 "dhcp4_parser.yy" // lalr1.cc:859
+ case 273:
+#line 1019 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1780 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1798 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 270:
-#line 1007 "dhcp4_parser.yy" // lalr1.cc:859
+ case 274:
+#line 1021 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data", data);
ctx.leave();
}
-#line 1790 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1808 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 273:
-#line 1017 "dhcp4_parser.yy" // lalr1.cc:859
+ case 277:
+#line 1031 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("csv-format", space);
}
-#line 1799 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1817 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 274:
-#line 1025 "dhcp4_parser.yy" // lalr1.cc:859
+ case 278:
+#line 1039 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pools", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.POOLS);
}
-#line 1810 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1828 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 275:
-#line 1030 "dhcp4_parser.yy" // lalr1.cc:859
+ case 279:
+#line 1044 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1819 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1837 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 280:
-#line 1045 "dhcp4_parser.yy" // lalr1.cc:859
+ case 284:
+#line 1059 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1829 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1847 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 281:
-#line 1049 "dhcp4_parser.yy" // lalr1.cc:859
+ case 285:
+#line 1063 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1837 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1855 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 282:
-#line 1053 "dhcp4_parser.yy" // lalr1.cc:859
+ case 286:
+#line 1067 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1847 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1865 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 283:
-#line 1057 "dhcp4_parser.yy" // lalr1.cc:859
+ case 287:
+#line 1071 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1855 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1873 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 289:
-#line 1070 "dhcp4_parser.yy" // lalr1.cc:859
+ case 293:
+#line 1084 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1863 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1881 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 290:
-#line 1072 "dhcp4_parser.yy" // lalr1.cc:859
+ case 294:
+#line 1086 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool", pool);
ctx.leave();
}
-#line 1873 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1891 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 291:
-#line 1081 "dhcp4_parser.yy" // lalr1.cc:859
+ case 295:
+#line 1095 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.RESERVATIONS);
}
-#line 1884 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1902 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 292:
-#line 1086 "dhcp4_parser.yy" // lalr1.cc:859
+ case 296:
+#line 1100 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1893 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1911 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 297:
-#line 1099 "dhcp4_parser.yy" // lalr1.cc:859
+ case 301:
+#line 1113 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1903 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1921 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 298:
-#line 1103 "dhcp4_parser.yy" // lalr1.cc:859
+ case 302:
+#line 1117 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1911 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1929 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 299:
-#line 1107 "dhcp4_parser.yy" // lalr1.cc:859
+ case 303:
+#line 1121 "dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the reservations list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1921 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1939 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 300:
-#line 1111 "dhcp4_parser.yy" // lalr1.cc:859
+ case 304:
+#line 1125 "dhcp4_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1929 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1947 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 317:
-#line 1138 "dhcp4_parser.yy" // lalr1.cc:859
+ case 321:
+#line 1152 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1937 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1955 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 318:
-#line 1140 "dhcp4_parser.yy" // lalr1.cc:859
+ case 322:
+#line 1154 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("next-server", next_server);
ctx.leave();
}
-#line 1947 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1965 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 319:
-#line 1146 "dhcp4_parser.yy" // lalr1.cc:859
+ case 323:
+#line 1160 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1955 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1973 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 320:
-#line 1148 "dhcp4_parser.yy" // lalr1.cc:859
+ case 324:
+#line 1162 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-hostname", srv);
ctx.leave();
}
-#line 1965 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1983 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 321:
-#line 1154 "dhcp4_parser.yy" // lalr1.cc:859
+ case 325:
+#line 1168 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1973 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1991 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 322:
-#line 1156 "dhcp4_parser.yy" // lalr1.cc:859
+ case 326:
+#line 1170 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("boot-file-name", bootfile);
ctx.leave();
}
-#line 1983 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2001 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 323:
-#line 1162 "dhcp4_parser.yy" // lalr1.cc:859
+ case 327:
+#line 1176 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1991 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2009 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 324:
-#line 1164 "dhcp4_parser.yy" // lalr1.cc:859
+ case 328:
+#line 1178 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", addr);
ctx.leave();
}
-#line 2001 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2019 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 325:
-#line 1170 "dhcp4_parser.yy" // lalr1.cc:859
+ case 329:
+#line 1184 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2009 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2027 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 326:
-#line 1172 "dhcp4_parser.yy" // lalr1.cc:859
+ case 330:
+#line 1186 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("duid", d);
ctx.leave();
}
-#line 2019 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2037 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 327:
-#line 1178 "dhcp4_parser.yy" // lalr1.cc:859
+ case 331:
+#line 1192 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2027 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2045 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 328:
-#line 1180 "dhcp4_parser.yy" // lalr1.cc:859
+ case 332:
+#line 1194 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hw-address", hw);
ctx.leave();
}
-#line 2037 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2055 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 329:
-#line 1186 "dhcp4_parser.yy" // lalr1.cc:859
+ case 333:
+#line 1200 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2045 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2063 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 330:
-#line 1188 "dhcp4_parser.yy" // lalr1.cc:859
+ case 334:
+#line 1202 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-id", hw);
ctx.leave();
}
-#line 2055 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2073 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 331:
-#line 1194 "dhcp4_parser.yy" // lalr1.cc:859
+ case 335:
+#line 1208 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2063 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2081 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 332:
-#line 1196 "dhcp4_parser.yy" // lalr1.cc:859
+ case 336:
+#line 1210 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("circuit-id", hw);
ctx.leave();
}
-#line 2073 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2091 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 333:
-#line 1203 "dhcp4_parser.yy" // lalr1.cc:859
+ case 337:
+#line 1217 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2081 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2099 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 334:
-#line 1205 "dhcp4_parser.yy" // lalr1.cc:859
+ case 338:
+#line 1219 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname", host);
ctx.leave();
}
-#line 2091 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2109 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 335:
-#line 1211 "dhcp4_parser.yy" // lalr1.cc:859
+ case 339:
+#line 1225 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-classes", c);
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2102 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2120 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 336:
-#line 1216 "dhcp4_parser.yy" // lalr1.cc:859
+ case 340:
+#line 1230 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2111 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2129 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 337:
-#line 1224 "dhcp4_parser.yy" // lalr1.cc:859
+ case 341:
+#line 1238 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("relay", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.RELAY);
}
-#line 2122 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2140 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 338:
-#line 1229 "dhcp4_parser.yy" // lalr1.cc:859
+ case 342:
+#line 1243 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2131 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2149 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 339:
-#line 1234 "dhcp4_parser.yy" // lalr1.cc:859
+ case 343:
+#line 1248 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2139 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2157 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 340:
-#line 1236 "dhcp4_parser.yy" // lalr1.cc:859
+ case 344:
+#line 1250 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", ip);
ctx.leave();
}
-#line 2149 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2167 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 341:
-#line 1245 "dhcp4_parser.yy" // lalr1.cc:859
+ case 345:
+#line 1259 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-classes", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENT_CLASSES);
}
-#line 2160 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2178 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 342:
-#line 1250 "dhcp4_parser.yy" // lalr1.cc:859
+ case 346:
+#line 1264 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2169 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2187 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 345:
-#line 1259 "dhcp4_parser.yy" // lalr1.cc:859
+ case 349:
+#line 1273 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2179 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2197 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 346:
-#line 1263 "dhcp4_parser.yy" // lalr1.cc:859
+ case 350:
+#line 1277 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 2187 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2205 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 359:
-#line 1286 "dhcp4_parser.yy" // lalr1.cc:859
+ case 363:
+#line 1300 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2195 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2213 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 360:
-#line 1288 "dhcp4_parser.yy" // lalr1.cc:859
+ case 364:
+#line 1302 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("test", test);
ctx.leave();
}
-#line 2205 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2223 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 361:
-#line 1297 "dhcp4_parser.yy" // lalr1.cc:859
+ case 365:
+#line 1311 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-id", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER_ID);
}
-#line 2216 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2234 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 362:
-#line 1302 "dhcp4_parser.yy" // lalr1.cc:859
+ case 366:
+#line 1316 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2225 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2243 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 372:
-#line 1320 "dhcp4_parser.yy" // lalr1.cc:859
+ case 376:
+#line 1334 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("htype", htype);
}
-#line 2234 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2252 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 373:
-#line 1325 "dhcp4_parser.yy" // lalr1.cc:859
+ case 377:
+#line 1339 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2242 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2260 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 374:
-#line 1327 "dhcp4_parser.yy" // lalr1.cc:859
+ case 378:
+#line 1341 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("identifier", id);
ctx.leave();
}
-#line 2252 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2270 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 375:
-#line 1333 "dhcp4_parser.yy" // lalr1.cc:859
+ case 379:
+#line 1347 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("time", time);
}
-#line 2261 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2279 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 376:
-#line 1338 "dhcp4_parser.yy" // lalr1.cc:859
+ case 380:
+#line 1352 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enterprise-id", time);
}
-#line 2270 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2288 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 377:
-#line 1345 "dhcp4_parser.yy" // lalr1.cc:859
+ case 381:
+#line 1359 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp4o6-port", time);
}
-#line 2279 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2297 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 378:
-#line 1352 "dhcp4_parser.yy" // lalr1.cc:859
+ case 382:
+#line 1366 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("control-socket", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 2290 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2308 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 379:
-#line 1357 "dhcp4_parser.yy" // lalr1.cc:859
+ case 383:
+#line 1371 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2299 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2317 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 384:
-#line 1370 "dhcp4_parser.yy" // lalr1.cc:859
+ case 388:
+#line 1384 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2307 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2325 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 385:
-#line 1372 "dhcp4_parser.yy" // lalr1.cc:859
+ case 389:
+#line 1386 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-type", stype);
ctx.leave();
}
-#line 2317 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2335 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 386:
-#line 1378 "dhcp4_parser.yy" // lalr1.cc:859
+ case 390:
+#line 1392 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2325 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2343 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 387:
-#line 1380 "dhcp4_parser.yy" // lalr1.cc:859
+ case 391:
+#line 1394 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 2335 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2353 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 388:
-#line 1388 "dhcp4_parser.yy" // lalr1.cc:859
+ case 392:
+#line 1402 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp-ddns", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2346 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2364 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 389:
-#line 1393 "dhcp4_parser.yy" // lalr1.cc:859
+ case 393:
+#line 1407 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2355 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2373 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 390:
-#line 1400 "dhcp4_parser.yy" // lalr1.cc:859
+ case 394:
+#line 1414 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2363 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2381 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 391:
-#line 1402 "dhcp4_parser.yy" // lalr1.cc:859
+ case 395:
+#line 1416 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 2372 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2390 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 392:
-#line 1407 "dhcp4_parser.yy" // lalr1.cc:859
+ case 396:
+#line 1421 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2380 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2398 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 393:
-#line 1409 "dhcp4_parser.yy" // lalr1.cc:859
+ case 397:
+#line 1423 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 2389 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2407 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 394:
-#line 1419 "dhcp4_parser.yy" // lalr1.cc:859
+ case 398:
+#line 1433 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("Logging", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.LOGGING);
}
-#line 2400 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2418 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 395:
-#line 1424 "dhcp4_parser.yy" // lalr1.cc:859
+ case 399:
+#line 1438 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2409 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2427 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 399:
-#line 1441 "dhcp4_parser.yy" // lalr1.cc:859
+ case 403:
+#line 1455 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("loggers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 2420 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2438 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 400:
-#line 1446 "dhcp4_parser.yy" // lalr1.cc:859
+ case 404:
+#line 1460 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2429 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2447 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 403:
-#line 1458 "dhcp4_parser.yy" // lalr1.cc:859
+ case 407:
+#line 1472 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 2439 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2457 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 404:
-#line 1462 "dhcp4_parser.yy" // lalr1.cc:859
+ case 408:
+#line 1476 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 2447 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2465 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 412:
-#line 1477 "dhcp4_parser.yy" // lalr1.cc:859
+ case 416:
+#line 1491 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 2456 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2474 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 413:
-#line 1481 "dhcp4_parser.yy" // lalr1.cc:859
+ case 417:
+#line 1495 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2464 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2482 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 414:
-#line 1483 "dhcp4_parser.yy" // lalr1.cc:859
+ case 418:
+#line 1497 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 2474 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2492 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 415:
-#line 1489 "dhcp4_parser.yy" // lalr1.cc:859
+ case 419:
+#line 1503 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output_options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 2485 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2503 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 416:
-#line 1494 "dhcp4_parser.yy" // lalr1.cc:859
+ case 420:
+#line 1508 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2494 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2512 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 419:
-#line 1503 "dhcp4_parser.yy" // lalr1.cc:859
+ case 423:
+#line 1517 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2504 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2522 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 420:
-#line 1507 "dhcp4_parser.yy" // lalr1.cc:859
+ case 424:
+#line 1521 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 2512 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2530 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 423:
-#line 1515 "dhcp4_parser.yy" // lalr1.cc:859
+ case 427:
+#line 1529 "dhcp4_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2520 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2538 "dhcp4_parser.cc" // lalr1.cc:859
break;
- case 424:
-#line 1517 "dhcp4_parser.yy" // lalr1.cc:859
+ case 428:
+#line 1531 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 2530 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2548 "dhcp4_parser.cc" // lalr1.cc:859
break;
-#line 2534 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2552 "dhcp4_parser.cc" // lalr1.cc:859
default:
break;
}
}
- const short int Dhcp4Parser::yypact_ninf_ = -411;
+ const short int Dhcp4Parser::yypact_ninf_ = -414;
const signed char Dhcp4Parser::yytable_ninf_ = -1;
const short int
Dhcp4Parser::yypact_[] =
{
- 187, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, 32, 20, 73, 80, 106, 110, 122, 123, 126,
- 134, 153, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, 20, 64, 18, 95, 56, 24, -4, 30,
- 146, 115, -33, -411, 179, 193, 212, 198, 215, -411,
- -411, -411, -411, 216, -411, 34, -411, -411, -411, -411,
- -411, -411, 218, 219, -411, -411, -411, 220, 227, 228,
- 230, -411, -411, -411, -411, -411, -411, -411, -411, 231,
- -411, -411, -411, 41, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, 42, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- 232, 235, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, 48, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, 52, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, 207, 238, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- 244, -411, -411, -411, 245, -411, -411, -411, 234, 249,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, 254, -411, -411, -411, -411, 251, 250, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, 63, -411, -411,
- -411, -411, 20, 20, -411, 162, 257, 261, 263, 265,
- -411, 18, -411, 267, 171, 172, 281, 282, 283, 190,
- 191, 192, 194, 284, 288, 290, 291, 292, 293, 294,
- 295, 203, 296, 297, 95, -411, 299, 300, 56, -411,
- 46, 301, 302, 303, 304, 305, 306, 307, 213, 214,
- 309, 310, 312, 313, 24, -411, 314, -4, -411, 315,
- 316, 317, 318, 319, 320, 321, 322, 323, -411, 30,
- 324, 325, 233, 326, 327, 329, 236, -411, 146, 330,
- 237, -411, 115, 335, 336, 11, -411, -411, -411, 337,
- 338, 339, 20, 20, -411, 340, -411, -411, 246, 341,
- 342, -411, -411, -411, -411, 345, 346, 347, 348, 349,
- 350, 351, 352, -411, 355, 356, -411, 359, 258, -411,
- -411, -411, -411, -411, -411, -411, -411, 334, 354, -411,
- -411, -411, 269, 270, 271, 365, 273, 274, 275, -411,
- -411, 277, 278, 373, 372, -411, 285, -411, 286, 287,
- 359, 289, 298, 308, 311, 328, 331, -411, 332, 333,
- -411, 343, 344, 353, -411, -411, 357, -411, -411, 358,
- 20, -411, 20, 95, 262, -411, -411, 56, -411, 113,
- 113, 374, 379, 381, 168, 29, 383, 360, 127, 98,
- 64, -411, -411, -411, 376, -411, 46, -411, -411, -411,
- 384, -411, -411, -411, -411, -411, 385, 362, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, 93, -411, 100,
- -411, -411, 104, -411, -411, -411, 390, 391, 393, -411,
- 139, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- 155, -411, 392, 396, -411, -411, 394, 398, -411, -411,
- 397, 399, -411, -411, -411, -411, -411, -411, 35, -411,
- -411, -411, -411, -411, 94, -411, 401, 402, -411, 400,
- 169, -411, -411, 404, 406, 407, -411, -411, -411, 170,
- -411, -411, -411, -411, -411, -411, -411, 180, -411, -411,
- -411, 199, 20, 361, -411, -411, 408, 409, -411, -411,
- 410, 414, -411, -411, 411, -411, 416, 262, -411, -411,
- 417, 418, 419, 363, 364, 366, 113, -411, -411, 24,
- -411, 374, 146, -411, 379, 115, -411, 381, 168, -411,
- 29, -411, -33, -411, 383, 367, 360, -411, 420, 369,
- 370, 371, 127, -411, 421, 424, 98, -411, -411, 412,
- -411, -4, -411, 384, 30, -411, 385, 428, -411, 429,
- -411, 375, 377, 378, -411, -411, -411, -411, 200, -411,
- 425, -411, 427, -411, -411, -411, 201, -411, -411, -411,
- 380, -411, -411, -411, -411, 382, 386, -411, -411, 202,
- -411, 430, -411, 387, 432, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, 163,
- -411, 61, 432, -411, -411, 433, -411, -411, -411, 209,
- -411, -411, -411, -411, -411, 436, 388, 439, 61, -411,
- 431, -411, 395, -411, 437, -411, -411, 189, -411, 389,
- 437, -411, -411, 211, -411, -411, 441, 389, -411, 403,
- -411, -411
+ 187, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, 50, 22, 53, 55, 57, 74, 89, 99, 120,
+ 126, 144, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, 22, 59, 18, 71, 24, 19, 47, 93,
+ 91, 121, -35, -414, 158, 170, 182, 195, 211, -414,
+ -414, -414, -414, 186, -414, 43, -414, -414, -414, -414,
+ -414, -414, 220, 231, -414, -414, -414, 232, 235, 237,
+ 238, -414, -414, -414, -414, -414, -414, -414, -414, 240,
+ -414, -414, -414, 58, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, 72, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ 241, 242, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, 85, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, 110, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, 208, 229, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ 244, -414, -414, -414, 245, -414, -414, -414, 215, 249,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, 254, -414, -414, -414, -414, 251, 250, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, 111, -414, -414,
+ -414, -414, 22, 22, -414, 167, 256, 257, 263, 265,
+ -414, 18, -414, 267, 171, 172, 281, 282, 283, 189,
+ 191, 193, 194, 285, 287, 290, 291, 292, 293, 296,
+ 297, 204, 298, 300, 71, -414, 301, 302, 24, -414,
+ 41, 303, 304, 305, 306, 307, 308, 309, 216, 213,
+ 312, 313, 314, 315, 19, -414, 316, 47, -414, 317,
+ 318, 319, 320, 321, 322, 323, 324, 325, -414, 93,
+ 326, 327, 233, 329, 330, 331, 236, -414, 91, 332,
+ 239, -414, 121, 334, 335, 6, -414, -414, -414, 337,
+ 336, 338, 22, 22, -414, 339, -414, -414, 246, 340,
+ 341, -414, -414, -414, -414, 344, 345, 346, 347, 348,
+ 349, 350, 351, -414, 352, 355, -414, 358, 258, -414,
+ -414, -414, -414, -414, -414, -414, -414, 356, 364, -414,
+ -414, -414, 270, 271, 272, 366, 274, 275, 277, -414,
+ -414, 286, 288, 374, 373, -414, 289, -414, 294, 299,
+ 358, 310, 311, 328, 333, 342, 343, -414, 353, 354,
+ -414, 357, 359, 360, -414, -414, 361, -414, -414, 362,
+ 22, -414, 22, 71, 261, -414, -414, 24, -414, 17,
+ 17, 376, 378, 381, 168, 38, 383, 363, 103, 65,
+ 59, -414, -414, -414, 377, -414, 41, -414, -414, -414,
+ 384, -414, -414, -414, -414, -414, 387, 365, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, 141, -414, 162,
+ -414, -414, 163, -414, -414, -414, 391, 392, 394, -414,
+ 164, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ 180, -414, 393, 397, -414, -414, 395, 399, -414, -414,
+ 398, 400, -414, -414, -414, -414, -414, -414, 86, -414,
+ -414, -414, -414, -414, 190, -414, 401, 402, -414, 406,
+ 184, -414, -414, 407, 408, 409, -414, -414, -414, 192,
+ -414, -414, -414, -414, -414, -414, -414, 196, -414, -414,
+ -414, 199, 367, 368, -414, -414, 410, 403, -414, -414,
+ 411, 412, -414, -414, 413, -414, 414, 261, -414, -414,
+ 415, 416, 418, 369, 370, 371, 17, -414, -414, 19,
+ -414, 376, 91, -414, 378, 121, -414, 381, 168, -414,
+ 38, -414, -35, -414, 383, 372, 363, -414, 419, 375,
+ 379, 380, 103, -414, 420, 421, 65, -414, -414, -414,
+ 422, 424, -414, 47, -414, 384, 93, -414, 387, 425,
+ -414, 427, -414, 382, 385, 386, -414, -414, -414, -414,
+ 202, -414, 426, -414, 428, -414, -414, -414, 203, -414,
+ -414, -414, 388, -414, -414, -414, -414, 389, 390, -414,
+ -414, 396, 209, -414, 429, -414, 404, 431, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, 219, -414, 100, 431, -414, -414, 435,
+ -414, -414, -414, 210, -414, -414, -414, -414, -414, 438,
+ 405, 439, 100, -414, 430, -414, 432, -414, 437, -414,
+ -414, 228, -414, 417, 437, -414, -414, 212, -414, -414,
+ 441, 417, -414, 436, -414, -414
};
const unsigned short int
0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 36, 30, 26, 25, 22, 23, 24,
- 29, 3, 27, 28, 45, 5, 56, 7, 94, 9,
- 172, 11, 282, 13, 299, 15, 222, 17, 256, 19,
- 148, 21, 40, 32, 0, 0, 0, 0, 0, 301,
- 224, 258, 0, 42, 0, 41, 0, 0, 33, 54,
- 394, 390, 392, 0, 53, 0, 47, 49, 51, 52,
- 50, 88, 0, 0, 317, 100, 102, 0, 0, 0,
- 0, 164, 214, 248, 129, 341, 140, 159, 361, 0,
- 378, 388, 81, 0, 58, 60, 61, 62, 63, 78,
- 79, 65, 66, 67, 68, 72, 73, 64, 70, 71,
- 80, 69, 74, 75, 76, 77, 96, 98, 0, 90,
- 92, 93, 345, 198, 200, 202, 274, 196, 204, 206,
- 0, 0, 210, 208, 291, 337, 195, 176, 177, 178,
- 190, 0, 174, 181, 192, 193, 194, 182, 183, 186,
- 188, 184, 185, 179, 180, 187, 191, 189, 289, 288,
- 287, 0, 284, 286, 319, 321, 335, 325, 327, 331,
- 329, 333, 323, 316, 312, 0, 302, 303, 313, 314,
- 315, 309, 305, 310, 307, 308, 311, 306, 115, 123,
- 0, 242, 240, 245, 0, 235, 239, 236, 0, 225,
- 226, 228, 238, 229, 230, 231, 244, 232, 233, 234,
- 269, 0, 267, 268, 271, 272, 0, 259, 260, 262,
- 263, 264, 265, 266, 155, 157, 152, 0, 150, 153,
- 154, 37, 0, 0, 31, 0, 0, 0, 0, 0,
- 44, 0, 46, 0, 0, 0, 0, 0, 0, 0,
+ 29, 3, 27, 28, 49, 5, 60, 7, 98, 9,
+ 176, 11, 286, 13, 303, 15, 226, 17, 260, 19,
+ 152, 21, 38, 32, 0, 0, 0, 0, 0, 305,
+ 228, 262, 0, 40, 0, 39, 0, 0, 33, 58,
+ 398, 394, 396, 0, 57, 0, 51, 53, 55, 56,
+ 54, 92, 0, 0, 321, 104, 106, 0, 0, 0,
+ 0, 168, 218, 252, 133, 345, 144, 163, 365, 0,
+ 382, 392, 85, 0, 62, 64, 65, 66, 67, 82,
+ 83, 69, 70, 71, 72, 76, 77, 68, 74, 75,
+ 84, 73, 78, 79, 80, 81, 100, 102, 0, 94,
+ 96, 97, 349, 202, 204, 206, 278, 200, 208, 210,
+ 0, 0, 214, 212, 295, 341, 199, 180, 181, 182,
+ 194, 0, 178, 185, 196, 197, 198, 186, 187, 190,
+ 192, 188, 189, 183, 184, 191, 195, 193, 293, 292,
+ 291, 0, 288, 290, 323, 325, 339, 329, 331, 335,
+ 333, 337, 327, 320, 316, 0, 306, 307, 317, 318,
+ 319, 313, 309, 314, 311, 312, 315, 310, 119, 127,
+ 0, 246, 244, 249, 0, 239, 243, 240, 0, 229,
+ 230, 232, 242, 233, 234, 235, 248, 236, 237, 238,
+ 273, 0, 271, 272, 275, 276, 0, 263, 264, 266,
+ 267, 268, 269, 270, 159, 161, 156, 0, 154, 157,
+ 158, 37, 0, 0, 31, 0, 0, 0, 0, 0,
+ 48, 0, 50, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 57, 0, 0, 0, 95,
- 347, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 173, 0, 0, 283, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 300, 0,
- 0, 0, 0, 0, 0, 0, 0, 223, 0, 0,
- 0, 257, 0, 0, 0, 0, 149, 43, 34, 0,
- 0, 0, 0, 0, 48, 0, 86, 87, 0, 0,
- 0, 82, 83, 84, 85, 0, 0, 0, 0, 0,
- 0, 0, 0, 377, 0, 0, 59, 0, 0, 91,
- 359, 357, 358, 353, 354, 355, 356, 0, 348, 349,
- 351, 352, 0, 0, 0, 0, 0, 0, 0, 212,
- 213, 0, 0, 0, 0, 175, 0, 285, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 304, 0, 0,
- 237, 0, 0, 0, 247, 227, 0, 273, 261, 0,
- 0, 151, 0, 0, 0, 391, 393, 0, 318, 0,
- 0, 166, 216, 250, 0, 0, 142, 0, 0, 0,
- 0, 38, 97, 99, 0, 346, 0, 199, 201, 203,
- 276, 197, 205, 207, 211, 209, 293, 0, 290, 320,
- 322, 336, 326, 328, 332, 330, 334, 324, 116, 124,
- 243, 241, 246, 270, 156, 158, 35, 0, 399, 0,
- 396, 398, 0, 117, 119, 121, 0, 0, 0, 114,
- 0, 104, 106, 107, 108, 109, 110, 111, 112, 113,
- 0, 170, 0, 167, 168, 220, 0, 217, 218, 254,
- 0, 251, 252, 128, 137, 138, 139, 133, 0, 131,
- 134, 135, 136, 343, 0, 146, 0, 143, 144, 0,
- 0, 161, 373, 0, 0, 0, 371, 365, 370, 0,
- 363, 368, 366, 367, 369, 384, 386, 0, 380, 382,
- 383, 0, 40, 0, 350, 280, 0, 277, 278, 297,
- 0, 294, 295, 339, 0, 55, 0, 0, 395, 89,
- 0, 0, 0, 0, 0, 0, 0, 101, 103, 0,
- 165, 0, 224, 215, 0, 258, 249, 0, 0, 130,
- 0, 342, 0, 141, 0, 0, 0, 160, 0, 0,
- 0, 0, 0, 362, 0, 0, 0, 379, 389, 0,
- 360, 0, 275, 0, 301, 292, 0, 0, 338, 0,
- 397, 0, 0, 0, 125, 126, 127, 105, 0, 169,
- 0, 219, 0, 253, 132, 344, 0, 145, 163, 162,
- 0, 372, 375, 376, 364, 0, 0, 381, 39, 0,
- 279, 0, 296, 0, 0, 118, 120, 122, 171, 221,
- 255, 147, 374, 385, 387, 281, 298, 340, 403, 0,
- 401, 0, 0, 400, 415, 0, 413, 411, 407, 0,
- 405, 409, 410, 408, 402, 0, 0, 0, 0, 404,
- 0, 412, 0, 406, 0, 414, 419, 0, 417, 0,
- 0, 416, 423, 0, 421, 418, 0, 0, 420, 0,
- 422, 424
+ 0, 0, 0, 0, 0, 61, 0, 0, 0, 99,
+ 351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 177, 0, 0, 287, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 304, 0,
+ 0, 0, 0, 0, 0, 0, 0, 227, 0, 0,
+ 0, 261, 0, 0, 0, 0, 153, 41, 34, 0,
+ 0, 0, 0, 0, 52, 0, 90, 91, 0, 0,
+ 0, 86, 87, 88, 89, 0, 0, 0, 0, 0,
+ 0, 0, 0, 381, 0, 0, 63, 0, 0, 95,
+ 363, 361, 362, 357, 358, 359, 360, 0, 352, 353,
+ 355, 356, 0, 0, 0, 0, 0, 0, 0, 216,
+ 217, 0, 0, 0, 0, 179, 0, 289, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 308, 0, 0,
+ 241, 0, 0, 0, 251, 231, 0, 277, 265, 0,
+ 0, 155, 0, 0, 0, 395, 397, 0, 322, 0,
+ 0, 170, 220, 254, 0, 0, 146, 0, 0, 0,
+ 0, 42, 101, 103, 0, 350, 0, 203, 205, 207,
+ 280, 201, 209, 211, 215, 213, 297, 0, 294, 324,
+ 326, 340, 330, 332, 336, 334, 338, 328, 120, 128,
+ 247, 245, 250, 274, 160, 162, 35, 0, 403, 0,
+ 400, 402, 0, 121, 123, 125, 0, 0, 0, 118,
+ 0, 108, 110, 111, 112, 113, 114, 115, 116, 117,
+ 0, 174, 0, 171, 172, 224, 0, 221, 222, 258,
+ 0, 255, 256, 132, 141, 142, 143, 137, 0, 135,
+ 138, 139, 140, 347, 0, 150, 0, 147, 148, 0,
+ 0, 165, 377, 0, 0, 0, 375, 369, 374, 0,
+ 367, 372, 370, 371, 373, 388, 390, 0, 384, 386,
+ 387, 0, 44, 0, 354, 284, 0, 281, 282, 301,
+ 0, 298, 299, 343, 0, 59, 0, 0, 399, 93,
+ 0, 0, 0, 0, 0, 0, 0, 105, 107, 0,
+ 169, 0, 228, 219, 0, 262, 253, 0, 0, 134,
+ 0, 346, 0, 145, 0, 0, 0, 164, 0, 0,
+ 0, 0, 0, 366, 0, 0, 0, 383, 393, 46,
+ 0, 45, 364, 0, 279, 0, 305, 296, 0, 0,
+ 342, 0, 401, 0, 0, 0, 129, 130, 131, 109,
+ 0, 173, 0, 223, 0, 257, 136, 348, 0, 149,
+ 167, 166, 0, 376, 379, 380, 368, 0, 0, 385,
+ 43, 0, 0, 283, 0, 300, 0, 0, 122, 124,
+ 126, 175, 225, 259, 151, 378, 389, 391, 47, 285,
+ 302, 344, 407, 0, 405, 0, 0, 404, 419, 0,
+ 417, 415, 411, 0, 409, 413, 414, 412, 406, 0,
+ 0, 0, 0, 408, 0, 416, 0, 410, 0, 418,
+ 423, 0, 421, 0, 0, 420, 427, 0, 425, 422,
+ 0, 0, 424, 0, 426, 428
};
const short int
Dhcp4Parser::yypgoto_[] =
{
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, 3, -411, -411, -411, -411, 16, -411, -411,
- 57, -411, -94, -411, -54, -411, -411, -411, 206, -411,
- -411, -411, -411, 36, 176, -56, -40, -38, -411, -411,
- -37, -411, -411, 37, 174, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, 33, -106, -398, -411, -411,
- -411, -411, -411, -411, -411, -59, -411, -410, -411, -411,
- -411, -411, -411, -411, -117, -411, -411, -411, -411, -411,
- -411, -411, -122, -411, -411, -411, -111, 140, -411, -411,
- -411, -411, -411, -411, -411, -112, -411, -411, -411, -411,
- -92, -411, -411, -411, -88, 183, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -399, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -91, -411,
- -411, -411, -90, -411, 173, -411, -52, -411, -411, -411,
- -411, -48, -411, -411, -411, -411, -411, -47, -411, -411,
- -411, -89, -411, -411, -411, -86, -411, 164, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -113, -411,
- -411, -411, -109, 197, -411, -411, -411, -411, -411, -411,
- -110, -411, -411, -411, -107, -411, 186, -43, -411, -257,
- -411, -256, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, 62, -411, -411,
- -411, -411, -411, -411, -93, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -96, -411, -411, -411, -411, -411,
- -411, -411, -411, -411, -411, -411, -411, -411, -55, -411,
- -411, -411, -159, -411, -411, -174, -411, -411, -411, -411,
- -411, -411, -185, -411, -411, -191, -411
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -34, -414, -414, -414, -414, -75, -414, -414,
+ -414, -414, 56, -414, -414, -414, -54, -414, -414, -414,
+ 197, -414, -414, -414, -414, 1, 159, -56, -40, -38,
+ -414, -414, -37, -414, -414, 30, 175, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, 29, -116, -398,
+ -414, -414, -414, -414, -414, -414, -414, -59, -414, -413,
+ -414, -414, -414, -414, -414, -414, -124, -414, -414, -414,
+ -414, -414, -414, -414, -128, -414, -414, -414, -120, 138,
+ -414, -414, -414, -414, -414, -414, -414, -122, -414, -414,
+ -414, -414, -104, -414, -414, -414, -101, 179, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -402, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -99, -414, -414, -414, -96, -414, 173, -414, -52, -414,
+ -414, -414, -414, -48, -414, -414, -414, -414, -414, -47,
+ -414, -414, -414, -100, -414, -414, -414, -94, -414, 160,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -115, -414, -414, -414, -118, 198, -414, -414, -414, -414,
+ -414, -414, -119, -414, -414, -414, -114, -414, 188, -43,
+ -414, -256, -414, -255, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, 60,
+ -414, -414, -414, -414, -414, -414, -93, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -103, -414, -414, -414,
+ -414, -414, -414, -414, -414, -414, -414, -414, -414, -414,
+ -51, -414, -414, -414, -168, -414, -414, -181, -414, -414,
+ -414, -414, -414, -414, -191, -414, -414, -196, -414
};
const short int
Dhcp4Parser::yydefgoto_[] =
{
-1, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 63, 31, 32, 53, 67, 68, 33, 52,
- 432, 542, 64, 65, 102, 35, 54, 75, 76, 77,
- 246, 37, 55, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 253, 128, 129, 39, 56, 130, 276, 131,
- 277, 112, 257, 113, 258, 480, 481, 206, 310, 483,
- 560, 484, 561, 485, 562, 207, 311, 487, 488, 489,
- 507, 114, 266, 508, 509, 510, 511, 512, 115, 268,
- 516, 517, 518, 582, 51, 62, 237, 238, 239, 323,
- 240, 324, 116, 269, 520, 521, 117, 263, 492, 493,
- 494, 569, 41, 57, 151, 152, 153, 285, 154, 281,
- 155, 282, 156, 283, 157, 286, 158, 287, 159, 291,
- 160, 290, 161, 162, 118, 264, 496, 497, 498, 572,
- 47, 60, 208, 209, 210, 211, 212, 213, 214, 215,
- 314, 216, 313, 217, 218, 315, 219, 119, 265, 500,
- 501, 502, 575, 49, 61, 226, 227, 228, 229, 230,
- 319, 231, 232, 233, 164, 284, 546, 547, 548, 601,
- 43, 58, 171, 172, 173, 296, 165, 292, 550, 551,
- 552, 604, 45, 59, 185, 186, 187, 120, 256, 189,
- 299, 190, 300, 191, 307, 192, 302, 193, 303, 194,
- 305, 195, 304, 196, 306, 197, 301, 167, 293, 554,
- 607, 121, 267, 514, 280, 367, 368, 369, 370, 371,
- 434, 122, 270, 529, 530, 531, 532, 588, 533, 534,
- 123, 124, 272, 537, 538, 539, 594, 540, 595, 125,
- 273, 78, 248, 79, 249, 80, 247, 469, 470, 471,
- 556, 659, 660, 661, 669, 670, 671, 672, 677, 673,
- 675, 687, 688, 689, 693, 694, 696
+ 20, 21, 30, 31, 32, 53, 67, 68, 33, 52,
+ 64, 65, 432, 542, 600, 601, 102, 35, 54, 75,
+ 76, 77, 246, 37, 55, 103, 104, 105, 106, 107,
+ 108, 109, 110, 111, 253, 128, 129, 39, 56, 130,
+ 276, 131, 277, 112, 257, 113, 258, 480, 481, 206,
+ 310, 483, 560, 484, 561, 485, 562, 207, 311, 487,
+ 488, 489, 507, 114, 266, 508, 509, 510, 511, 512,
+ 115, 268, 516, 517, 518, 582, 51, 62, 237, 238,
+ 239, 323, 240, 324, 116, 269, 520, 521, 117, 263,
+ 492, 493, 494, 569, 41, 57, 151, 152, 153, 285,
+ 154, 281, 155, 282, 156, 283, 157, 286, 158, 287,
+ 159, 291, 160, 290, 161, 162, 118, 264, 496, 497,
+ 498, 572, 47, 60, 208, 209, 210, 211, 212, 213,
+ 214, 215, 314, 216, 313, 217, 218, 315, 219, 119,
+ 265, 500, 501, 502, 575, 49, 61, 226, 227, 228,
+ 229, 230, 319, 231, 232, 233, 164, 284, 546, 547,
+ 548, 603, 43, 58, 171, 172, 173, 296, 165, 292,
+ 550, 551, 552, 606, 45, 59, 185, 186, 187, 120,
+ 256, 189, 299, 190, 300, 191, 307, 192, 302, 193,
+ 303, 194, 305, 195, 304, 196, 306, 197, 301, 167,
+ 293, 554, 609, 121, 267, 514, 280, 367, 368, 369,
+ 370, 371, 434, 122, 270, 529, 530, 531, 532, 588,
+ 533, 534, 123, 124, 272, 537, 538, 539, 594, 540,
+ 595, 125, 273, 78, 248, 79, 249, 80, 247, 469,
+ 470, 471, 556, 663, 664, 665, 673, 674, 675, 676,
+ 681, 677, 679, 691, 692, 693, 697, 698, 700
};
const unsigned short int
Dhcp4Parser::yytable_[] =
{
74, 147, 223, 146, 169, 183, 205, 222, 236, 224,
- 163, 170, 184, 225, 166, 30, 188, 148, 528, 149,
- 150, 482, 482, 365, 366, 23, 513, 24, 69, 25,
- 527, 132, 22, 93, 234, 235, 132, 251, 578, 83,
- 84, 579, 252, 168, 274, 278, 84, 174, 175, 275,
- 279, 294, 87, 88, 89, 297, 295, 133, 134, 135,
- 298, 93, 84, 174, 175, 73, 325, 93, 126, 127,
- 136, 326, 137, 138, 139, 140, 141, 142, 234, 235,
- 34, 143, 144, 93, 199, 176, 143, 36, 145, 177,
- 178, 179, 180, 181, 73, 182, 274, 580, 70, 199,
- 581, 555, 360, 557, 71, 72, 81, 278, 558, 82,
- 83, 84, 559, 38, 85, 86, 73, 40, 26, 27,
- 28, 29, 73, 87, 88, 89, 90, 91, 73, 42,
- 44, 92, 93, 46, 198, 473, 474, 475, 476, 477,
- 478, 48, 566, 664, 73, 665, 666, 567, 198, 94,
- 95, 199, 476, 199, 220, 200, 201, 221, 566, 73,
- 50, 96, 66, 568, 97, 98, 662, 198, 482, 663,
- 99, 100, 586, 592, 101, 535, 536, 587, 593, 365,
- 366, 625, 528, 596, 199, 241, 200, 201, 597, 202,
- 203, 204, 690, 73, 527, 691, 242, 74, 522, 523,
- 524, 525, 245, 294, 325, 297, 244, 598, 648, 651,
- 655, 73, 678, 73, 697, 308, 243, 679, 245, 698,
- 250, 362, 254, 255, 259, 73, 361, 503, 504, 505,
- 506, 260, 261, 363, 262, 271, 288, 364, 147, 289,
- 146, 309, 317, 169, 73, 327, 328, 163, 312, 316,
+ 163, 170, 184, 225, 166, 528, 188, 148, 63, 149,
+ 150, 482, 482, 513, 365, 366, 132, 23, 69, 24,
+ 527, 25, 234, 235, 83, 84, 126, 127, 198, 473,
+ 474, 475, 476, 477, 478, 132, 251, 87, 88, 89,
+ 22, 252, 133, 134, 135, 199, 93, 84, 174, 175,
+ 34, 274, 36, 73, 38, 136, 275, 137, 138, 139,
+ 140, 141, 142, 234, 235, 278, 143, 144, 93, 199,
+ 279, 40, 81, 145, 93, 82, 83, 84, 294, 578,
+ 85, 86, 579, 295, 168, 143, 42, 360, 70, 87,
+ 88, 89, 90, 91, 71, 72, 44, 92, 93, 84,
+ 174, 175, 198, 297, 325, 73, 73, 73, 298, 326,
+ 26, 27, 28, 29, 198, 94, 95, 46, 476, 199,
+ 93, 200, 201, 48, 202, 203, 204, 96, 199, 73,
+ 97, 98, 535, 536, 274, 73, 99, 100, 176, 555,
+ 101, 50, 177, 178, 179, 180, 181, 66, 182, 199,
+ 220, 200, 201, 221, 241, 557, 278, 566, 482, 73,
+ 558, 559, 567, 242, 522, 523, 524, 525, 627, 528,
+ 365, 366, 668, 566, 669, 670, 243, 586, 568, 73,
+ 250, 73, 587, 580, 527, 592, 581, 74, 73, 596,
+ 593, 73, 245, 244, 597, 294, 325, 598, 327, 328,
+ 651, 654, 297, 682, 245, 701, 308, 659, 683, 73,
+ 702, 362, 666, 317, 254, 667, 361, 503, 504, 505,
+ 506, 694, 309, 363, 695, 255, 259, 364, 147, 260,
+ 146, 261, 262, 169, 271, 288, 289, 163, 312, 316,
170, 166, 318, 322, 148, 183, 149, 150, 320, 321,
- 329, 330, 184, 223, 205, 331, 188, 332, 222, 333,
+ 330, 331, 184, 223, 205, 329, 188, 332, 222, 333,
224, 335, 336, 337, 225, 1, 2, 3, 4, 5,
- 6, 7, 8, 9, 10, 338, 339, 340, 345, 341,
- 342, 343, 346, 344, 347, 348, 349, 350, 351, 352,
- 354, 355, 353, 357, 358, 372, 373, 374, 375, 376,
- 377, 378, 379, 381, 382, 380, 383, 384, 386, 388,
- 389, 390, 391, 392, 393, 394, 395, 396, 398, 399,
- 401, 402, 400, 403, 406, 415, 416, 404, 407, 409,
- 410, 412, 435, 468, 418, 413, 414, 417, 419, 420,
- 421, 422, 423, 424, 425, 426, 433, 436, 427, 428,
- 486, 486, 429, 430, 431, 479, 479, 437, 438, 439,
- 440, 441, 442, 443, 526, 444, 445, 362, 446, 447,
- 543, 491, 361, 448, 449, 450, 495, 452, 499, 363,
- 515, 545, 549, 364, 563, 564, 453, 565, 570, 571,
- 573, 574, 577, 576, 585, 584, 454, 583, 589, 455,
- 590, 591, 603, 465, 602, 466, 605, 606, 638, 608,
- 609, 611, 612, 613, 630, 635, 456, 553, 636, 457,
- 458, 459, 643, 649, 644, 650, 684, 676, 656, 658,
- 680, 460, 461, 682, 686, 699, 541, 451, 599, 467,
- 356, 462, 359, 490, 472, 463, 464, 334, 519, 600,
- 617, 624, 627, 615, 614, 411, 628, 616, 631, 632,
- 633, 626, 692, 645, 629, 646, 647, 385, 652, 619,
- 653, 618, 620, 621, 654, 657, 408, 681, 623, 622,
- 640, 405, 639, 685, 387, 397, 642, 641, 544, 634,
- 637, 701, 610, 674, 683, 695, 700, 486, 0, 0,
+ 6, 7, 8, 9, 10, 338, 339, 340, 341, 345,
+ 342, 346, 343, 344, 347, 348, 349, 350, 415, 416,
+ 351, 352, 354, 353, 355, 357, 358, 372, 373, 374,
+ 375, 376, 377, 378, 380, 379, 381, 382, 383, 384,
+ 386, 388, 389, 390, 391, 392, 393, 394, 395, 396,
+ 398, 399, 400, 401, 402, 403, 406, 404, 409, 410,
+ 407, 412, 468, 413, 418, 414, 417, 419, 420, 421,
+ 422, 423, 424, 425, 426, 541, 433, 427, 428, 429,
+ 486, 486, 430, 431, 435, 479, 479, 436, 437, 438,
+ 439, 440, 441, 442, 526, 443, 465, 362, 466, 446,
+ 447, 543, 361, 491, 444, 495, 445, 448, 499, 363,
+ 515, 545, 449, 364, 549, 563, 564, 450, 565, 570,
+ 571, 573, 574, 577, 576, 584, 605, 583, 452, 453,
+ 585, 589, 590, 591, 467, 608, 604, 607, 611, 613,
+ 614, 610, 615, 632, 637, 638, 454, 641, 640, 646,
+ 553, 455, 647, 356, 652, 688, 653, 660, 662, 680,
+ 456, 457, 684, 686, 690, 703, 451, 472, 334, 490,
+ 619, 458, 459, 359, 626, 460, 629, 461, 462, 463,
+ 464, 519, 628, 411, 631, 599, 602, 621, 620, 617,
+ 616, 630, 618, 385, 633, 623, 622, 625, 634, 635,
+ 648, 624, 408, 649, 650, 642, 655, 656, 657, 645,
+ 643, 405, 644, 639, 658, 387, 544, 397, 678, 636,
+ 696, 687, 661, 699, 685, 704, 612, 486, 0, 0,
0, 0, 479, 147, 0, 146, 223, 0, 205, 0,
0, 222, 163, 224, 0, 0, 166, 225, 236, 148,
- 0, 149, 150, 0, 0, 0, 0, 0, 526, 0,
- 0, 0, 0, 0, 0, 0, 0, 169, 0, 0,
- 183, 0, 0, 0, 170, 0, 0, 184, 0, 0,
- 0, 188, 0, 0, 0, 0, 0, 0, 0, 0,
+ 689, 149, 150, 0, 705, 0, 0, 0, 526, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 169,
+ 0, 0, 183, 0, 0, 0, 170, 0, 0, 184,
+ 0, 0, 0, 188, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 668, 0, 0, 0, 0, 667, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 668,
- 0, 0, 0, 0, 667
+ 0, 0, 0, 0, 0, 0, 672, 0, 0, 0,
+ 0, 671, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 672, 0, 0, 0, 0, 671
};
const short int
Dhcp4Parser::yycheck_[] =
{
54, 57, 61, 57, 58, 59, 60, 61, 62, 61,
- 57, 58, 59, 61, 57, 12, 59, 57, 428, 57,
- 57, 419, 420, 280, 280, 5, 425, 7, 10, 9,
- 428, 7, 0, 37, 67, 68, 7, 3, 3, 15,
- 16, 6, 8, 47, 3, 3, 16, 17, 18, 8,
- 8, 3, 28, 29, 30, 3, 8, 33, 34, 35,
- 8, 37, 16, 17, 18, 98, 3, 37, 12, 13,
- 46, 8, 48, 49, 50, 51, 52, 53, 67, 68,
- 7, 57, 58, 37, 38, 55, 57, 7, 64, 59,
- 60, 61, 62, 63, 98, 65, 3, 3, 80, 38,
- 6, 8, 56, 3, 86, 87, 11, 3, 8, 14,
- 15, 16, 8, 7, 19, 20, 98, 7, 98, 99,
- 100, 101, 98, 28, 29, 30, 31, 32, 98, 7,
- 7, 36, 37, 7, 21, 22, 23, 24, 25, 26,
- 27, 7, 3, 82, 98, 84, 85, 8, 21, 54,
- 55, 38, 25, 38, 39, 40, 41, 42, 3, 98,
- 7, 66, 98, 8, 69, 70, 3, 21, 566, 6,
- 75, 76, 3, 3, 79, 77, 78, 8, 8, 436,
- 436, 580, 592, 3, 38, 6, 40, 41, 8, 43,
- 44, 45, 3, 98, 592, 6, 3, 251, 71, 72,
- 73, 74, 3, 3, 3, 3, 8, 8, 8, 8,
- 8, 98, 3, 98, 3, 8, 4, 8, 3, 8,
- 4, 280, 4, 4, 4, 98, 280, 59, 60, 61,
- 62, 4, 4, 280, 4, 4, 4, 280, 294, 4,
- 294, 3, 8, 297, 98, 242, 243, 294, 4, 4,
+ 57, 58, 59, 61, 57, 428, 59, 57, 52, 57,
+ 57, 419, 420, 425, 280, 280, 7, 5, 10, 7,
+ 428, 9, 67, 68, 15, 16, 12, 13, 21, 22,
+ 23, 24, 25, 26, 27, 7, 3, 28, 29, 30,
+ 0, 8, 33, 34, 35, 38, 37, 16, 17, 18,
+ 7, 3, 7, 98, 7, 46, 8, 48, 49, 50,
+ 51, 52, 53, 67, 68, 3, 57, 58, 37, 38,
+ 8, 7, 11, 64, 37, 14, 15, 16, 3, 3,
+ 19, 20, 6, 8, 47, 57, 7, 56, 80, 28,
+ 29, 30, 31, 32, 86, 87, 7, 36, 37, 16,
+ 17, 18, 21, 3, 3, 98, 98, 98, 8, 8,
+ 98, 99, 100, 101, 21, 54, 55, 7, 25, 38,
+ 37, 40, 41, 7, 43, 44, 45, 66, 38, 98,
+ 69, 70, 77, 78, 3, 98, 75, 76, 55, 8,
+ 79, 7, 59, 60, 61, 62, 63, 98, 65, 38,
+ 39, 40, 41, 42, 6, 3, 3, 3, 566, 98,
+ 8, 8, 8, 3, 71, 72, 73, 74, 580, 592,
+ 436, 436, 82, 3, 84, 85, 4, 3, 8, 98,
+ 4, 98, 8, 3, 592, 3, 6, 251, 98, 3,
+ 8, 98, 3, 8, 8, 3, 3, 8, 242, 243,
+ 8, 8, 3, 3, 3, 3, 8, 8, 8, 98,
+ 8, 280, 3, 8, 4, 6, 280, 59, 60, 61,
+ 62, 3, 3, 280, 6, 4, 4, 280, 294, 4,
+ 294, 4, 4, 297, 4, 4, 4, 294, 4, 4,
297, 294, 3, 3, 294, 309, 294, 294, 4, 8,
- 98, 4, 309, 322, 318, 4, 309, 4, 322, 4,
+ 4, 4, 309, 322, 318, 98, 309, 4, 322, 4,
322, 4, 101, 101, 322, 88, 89, 90, 91, 92,
- 93, 94, 95, 96, 97, 4, 4, 4, 4, 99,
- 99, 99, 4, 99, 4, 4, 4, 4, 4, 4,
- 4, 4, 99, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 99, 4, 4, 101, 4, 4, 4, 4,
+ 93, 94, 95, 96, 97, 4, 4, 4, 99, 4,
+ 99, 4, 99, 99, 4, 4, 4, 4, 332, 333,
+ 4, 4, 4, 99, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 101, 99, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 99, 4, 4, 332, 333, 101, 101, 4,
- 4, 4, 8, 81, 98, 7, 7, 7, 7, 7,
- 5, 5, 5, 5, 5, 5, 98, 3, 7, 7,
- 419, 420, 7, 7, 5, 419, 420, 98, 98, 98,
- 5, 98, 98, 98, 428, 98, 98, 436, 5, 7,
- 4, 7, 436, 98, 98, 98, 7, 98, 7, 436,
- 7, 7, 7, 436, 4, 4, 98, 4, 6, 3,
- 6, 3, 3, 6, 4, 3, 98, 6, 4, 98,
- 4, 4, 3, 410, 6, 412, 6, 3, 6, 8,
- 4, 4, 4, 4, 4, 4, 98, 65, 4, 98,
- 98, 98, 4, 8, 5, 8, 5, 4, 8, 7,
- 4, 98, 98, 4, 7, 4, 430, 390, 542, 413,
- 274, 98, 278, 420, 417, 98, 98, 251, 98, 98,
- 566, 578, 584, 99, 101, 325, 99, 101, 99, 99,
- 99, 582, 83, 98, 586, 98, 98, 294, 98, 571,
- 98, 569, 572, 574, 98, 98, 322, 99, 577, 575,
- 603, 318, 601, 98, 297, 309, 606, 604, 436, 592,
- 596, 98, 557, 662, 678, 690, 697, 566, -1, -1,
+ 4, 4, 99, 4, 4, 4, 4, 101, 4, 4,
+ 101, 4, 81, 7, 98, 7, 7, 7, 7, 5,
+ 5, 5, 5, 5, 5, 430, 98, 7, 7, 7,
+ 419, 420, 7, 5, 8, 419, 420, 3, 98, 98,
+ 98, 5, 98, 98, 428, 98, 410, 436, 412, 5,
+ 7, 4, 436, 7, 98, 7, 98, 98, 7, 436,
+ 7, 7, 98, 436, 7, 4, 4, 98, 4, 6,
+ 3, 6, 3, 3, 6, 3, 3, 6, 98, 98,
+ 4, 4, 4, 4, 413, 3, 6, 6, 4, 4,
+ 4, 8, 4, 4, 4, 4, 98, 3, 6, 4,
+ 65, 98, 5, 274, 8, 5, 8, 8, 7, 4,
+ 98, 98, 4, 4, 7, 4, 390, 417, 251, 420,
+ 566, 98, 98, 278, 578, 98, 584, 98, 98, 98,
+ 98, 98, 582, 325, 586, 98, 98, 571, 569, 99,
+ 101, 99, 101, 294, 99, 574, 572, 577, 99, 99,
+ 98, 575, 322, 98, 98, 603, 98, 98, 98, 608,
+ 605, 318, 606, 596, 98, 297, 436, 309, 666, 592,
+ 83, 682, 98, 694, 99, 701, 557, 566, -1, -1,
-1, -1, 566, 569, -1, 569, 575, -1, 572, -1,
-1, 575, 569, 575, -1, -1, 569, 575, 582, 569,
- -1, 569, 569, -1, -1, -1, -1, -1, 592, -1,
- -1, -1, -1, -1, -1, -1, -1, 601, -1, -1,
- 604, -1, -1, -1, 601, -1, -1, 604, -1, -1,
- -1, 604, -1, -1, -1, -1, -1, -1, -1, -1,
+ 98, 569, 569, -1, 98, -1, -1, -1, 592, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 603,
+ -1, -1, 606, -1, -1, -1, 603, -1, -1, 606,
+ -1, -1, -1, 606, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 661, -1, -1, -1, -1, 661, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 678,
- -1, -1, -1, -1, 678
+ -1, -1, -1, -1, -1, -1, 665, -1, -1, -1,
+ -1, 665, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 682, -1, -1, -1, -1, 682
};
const unsigned short int
0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 0, 5, 7, 9, 98, 99, 100, 101,
- 114, 115, 116, 120, 7, 127, 7, 133, 7, 147,
- 7, 204, 7, 272, 7, 284, 7, 232, 7, 255,
- 7, 186, 121, 117, 128, 134, 148, 205, 273, 285,
- 233, 256, 187, 114, 124, 125, 98, 118, 119, 10,
- 80, 86, 87, 98, 126, 129, 130, 131, 343, 345,
- 347, 11, 14, 15, 16, 19, 20, 28, 29, 30,
+ 114, 115, 116, 120, 7, 129, 7, 135, 7, 149,
+ 7, 206, 7, 274, 7, 286, 7, 234, 7, 257,
+ 7, 188, 121, 117, 130, 136, 150, 207, 275, 287,
+ 235, 258, 189, 114, 122, 123, 98, 118, 119, 10,
+ 80, 86, 87, 98, 128, 131, 132, 133, 345, 347,
+ 349, 11, 14, 15, 16, 19, 20, 28, 29, 30,
31, 32, 36, 37, 54, 55, 66, 69, 70, 75,
- 76, 79, 126, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 153, 155, 173, 180, 194, 198, 226, 249,
- 289, 313, 323, 332, 333, 341, 12, 13, 145, 146,
- 149, 151, 7, 33, 34, 35, 46, 48, 49, 50,
- 51, 52, 53, 57, 58, 64, 126, 137, 138, 139,
- 142, 206, 207, 208, 210, 212, 214, 216, 218, 220,
- 222, 224, 225, 249, 266, 278, 289, 309, 47, 126,
- 249, 274, 275, 276, 17, 18, 55, 59, 60, 61,
- 62, 63, 65, 126, 249, 286, 287, 288, 289, 291,
- 293, 295, 297, 299, 301, 303, 305, 307, 21, 38,
- 40, 41, 43, 44, 45, 126, 159, 167, 234, 235,
- 236, 237, 238, 239, 240, 241, 243, 245, 246, 248,
- 39, 42, 126, 167, 238, 243, 257, 258, 259, 260,
- 261, 263, 264, 265, 67, 68, 126, 188, 189, 190,
- 192, 6, 3, 4, 8, 3, 132, 348, 344, 346,
- 4, 3, 8, 144, 4, 4, 290, 154, 156, 4,
- 4, 4, 4, 199, 227, 250, 174, 314, 181, 195,
- 324, 4, 334, 342, 3, 8, 150, 152, 3, 8,
- 316, 211, 213, 215, 267, 209, 217, 219, 4, 4,
- 223, 221, 279, 310, 3, 8, 277, 3, 8, 292,
- 294, 308, 298, 300, 304, 302, 306, 296, 8, 3,
- 160, 168, 4, 244, 242, 247, 4, 8, 3, 262,
- 4, 8, 3, 191, 193, 3, 8, 114, 114, 98,
- 4, 4, 4, 4, 130, 4, 101, 101, 4, 4,
+ 76, 79, 128, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 155, 157, 175, 182, 196, 200, 228, 251,
+ 291, 315, 325, 334, 335, 343, 12, 13, 147, 148,
+ 151, 153, 7, 33, 34, 35, 46, 48, 49, 50,
+ 51, 52, 53, 57, 58, 64, 128, 139, 140, 141,
+ 144, 208, 209, 210, 212, 214, 216, 218, 220, 222,
+ 224, 226, 227, 251, 268, 280, 291, 311, 47, 128,
+ 251, 276, 277, 278, 17, 18, 55, 59, 60, 61,
+ 62, 63, 65, 128, 251, 288, 289, 290, 291, 293,
+ 295, 297, 299, 301, 303, 305, 307, 309, 21, 38,
+ 40, 41, 43, 44, 45, 128, 161, 169, 236, 237,
+ 238, 239, 240, 241, 242, 243, 245, 247, 248, 250,
+ 39, 42, 128, 169, 240, 245, 259, 260, 261, 262,
+ 263, 265, 266, 267, 67, 68, 128, 190, 191, 192,
+ 194, 6, 3, 4, 8, 3, 134, 350, 346, 348,
+ 4, 3, 8, 146, 4, 4, 292, 156, 158, 4,
+ 4, 4, 4, 201, 229, 252, 176, 316, 183, 197,
+ 326, 4, 336, 344, 3, 8, 152, 154, 3, 8,
+ 318, 213, 215, 217, 269, 211, 219, 221, 4, 4,
+ 225, 223, 281, 312, 3, 8, 279, 3, 8, 294,
+ 296, 310, 300, 302, 306, 304, 308, 298, 8, 3,
+ 162, 170, 4, 246, 244, 249, 4, 8, 3, 264,
+ 4, 8, 3, 193, 195, 3, 8, 114, 114, 98,
+ 4, 4, 4, 4, 132, 4, 101, 101, 4, 4,
4, 99, 99, 99, 99, 4, 4, 4, 4, 4,
- 4, 4, 4, 99, 4, 4, 136, 4, 4, 146,
- 56, 126, 167, 249, 289, 291, 293, 317, 318, 319,
- 320, 321, 4, 4, 4, 4, 4, 4, 4, 99,
- 101, 4, 4, 4, 4, 207, 4, 275, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 288, 4, 4,
- 99, 4, 4, 4, 101, 236, 4, 101, 259, 4,
- 4, 189, 4, 7, 7, 114, 114, 7, 98, 7,
+ 4, 4, 4, 99, 4, 4, 138, 4, 4, 148,
+ 56, 128, 169, 251, 291, 293, 295, 319, 320, 321,
+ 322, 323, 4, 4, 4, 4, 4, 4, 4, 99,
+ 101, 4, 4, 4, 4, 209, 4, 277, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 290, 4, 4,
+ 99, 4, 4, 4, 101, 238, 4, 101, 261, 4,
+ 4, 191, 4, 7, 7, 114, 114, 7, 98, 7,
7, 5, 5, 5, 5, 5, 5, 7, 7, 7,
- 7, 5, 122, 98, 322, 8, 3, 98, 98, 98,
+ 7, 5, 124, 98, 324, 8, 3, 98, 98, 98,
5, 98, 98, 98, 98, 98, 5, 7, 98, 98,
- 98, 122, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 98, 98, 114, 114, 135, 81, 349,
- 350, 351, 145, 22, 23, 24, 25, 26, 27, 126,
- 157, 158, 159, 161, 163, 165, 167, 169, 170, 171,
- 157, 7, 200, 201, 202, 7, 228, 229, 230, 7,
- 251, 252, 253, 59, 60, 61, 62, 172, 175, 176,
- 177, 178, 179, 220, 315, 7, 182, 183, 184, 98,
- 196, 197, 71, 72, 73, 74, 126, 159, 169, 325,
- 326, 327, 328, 330, 331, 77, 78, 335, 336, 337,
- 339, 119, 123, 4, 319, 7, 268, 269, 270, 7,
- 280, 281, 282, 65, 311, 8, 352, 3, 8, 8,
- 162, 164, 166, 4, 4, 4, 3, 8, 8, 203,
- 6, 3, 231, 6, 3, 254, 6, 3, 3, 6,
- 3, 6, 185, 6, 3, 4, 3, 8, 329, 4,
- 4, 4, 3, 8, 338, 340, 3, 8, 8, 124,
- 98, 271, 6, 3, 283, 6, 3, 312, 8, 4,
- 350, 4, 4, 4, 101, 99, 101, 158, 206, 202,
- 234, 230, 257, 253, 176, 220, 188, 184, 99, 197,
- 4, 99, 99, 99, 326, 4, 4, 336, 6, 274,
- 270, 286, 282, 4, 5, 98, 98, 98, 8, 8,
- 8, 8, 98, 98, 98, 8, 8, 98, 7, 353,
- 354, 355, 3, 6, 82, 84, 85, 126, 167, 356,
- 357, 358, 359, 361, 354, 362, 4, 360, 3, 8,
- 4, 99, 4, 357, 5, 98, 7, 363, 364, 365,
- 3, 6, 83, 366, 367, 364, 368, 3, 8, 4,
- 367, 98
+ 98, 124, 98, 98, 98, 98, 98, 98, 98, 98,
+ 98, 98, 98, 98, 98, 114, 114, 137, 81, 351,
+ 352, 353, 147, 22, 23, 24, 25, 26, 27, 128,
+ 159, 160, 161, 163, 165, 167, 169, 171, 172, 173,
+ 159, 7, 202, 203, 204, 7, 230, 231, 232, 7,
+ 253, 254, 255, 59, 60, 61, 62, 174, 177, 178,
+ 179, 180, 181, 222, 317, 7, 184, 185, 186, 98,
+ 198, 199, 71, 72, 73, 74, 128, 161, 171, 327,
+ 328, 329, 330, 332, 333, 77, 78, 337, 338, 339,
+ 341, 119, 125, 4, 321, 7, 270, 271, 272, 7,
+ 282, 283, 284, 65, 313, 8, 354, 3, 8, 8,
+ 164, 166, 168, 4, 4, 4, 3, 8, 8, 205,
+ 6, 3, 233, 6, 3, 256, 6, 3, 3, 6,
+ 3, 6, 187, 6, 3, 4, 3, 8, 331, 4,
+ 4, 4, 3, 8, 340, 342, 3, 8, 8, 98,
+ 126, 127, 98, 273, 6, 3, 285, 6, 3, 314,
+ 8, 4, 352, 4, 4, 4, 101, 99, 101, 160,
+ 208, 204, 236, 232, 259, 255, 178, 222, 190, 186,
+ 99, 199, 4, 99, 99, 99, 328, 4, 4, 338,
+ 6, 3, 276, 272, 288, 284, 4, 5, 98, 98,
+ 98, 8, 8, 8, 8, 98, 98, 98, 98, 8,
+ 8, 98, 7, 355, 356, 357, 3, 6, 82, 84,
+ 85, 128, 169, 358, 359, 360, 361, 363, 356, 364,
+ 4, 362, 3, 8, 4, 99, 4, 359, 5, 98,
+ 7, 365, 366, 367, 3, 6, 83, 368, 369, 366,
+ 370, 3, 8, 4, 369, 98
};
const unsigned short int
0, 102, 104, 103, 105, 103, 106, 103, 107, 103,
108, 103, 109, 103, 110, 103, 111, 103, 112, 103,
113, 103, 114, 114, 114, 114, 114, 114, 114, 115,
- 117, 116, 118, 118, 119, 119, 121, 120, 123, 122,
- 124, 124, 125, 125, 126, 128, 127, 129, 129, 130,
- 130, 130, 130, 130, 132, 131, 134, 133, 135, 135,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 137, 138, 139, 140, 141, 142, 144, 143,
- 145, 145, 146, 146, 148, 147, 150, 149, 152, 151,
- 154, 153, 156, 155, 157, 157, 158, 158, 158, 158,
- 158, 158, 158, 158, 158, 160, 159, 162, 161, 164,
- 163, 166, 165, 168, 167, 169, 170, 171, 172, 174,
- 173, 175, 175, 176, 176, 176, 176, 177, 178, 179,
- 181, 180, 182, 182, 183, 183, 185, 184, 187, 186,
- 188, 188, 188, 189, 189, 191, 190, 193, 192, 195,
- 194, 196, 196, 197, 199, 198, 200, 200, 201, 201,
- 203, 202, 205, 204, 206, 206, 207, 207, 207, 207,
- 207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
- 207, 207, 207, 207, 207, 207, 209, 208, 211, 210,
- 213, 212, 215, 214, 217, 216, 219, 218, 221, 220,
- 223, 222, 224, 225, 227, 226, 228, 228, 229, 229,
- 231, 230, 233, 232, 234, 234, 235, 235, 236, 236,
- 236, 236, 236, 236, 236, 236, 237, 238, 239, 240,
- 242, 241, 244, 243, 245, 247, 246, 248, 250, 249,
- 251, 251, 252, 252, 254, 253, 256, 255, 257, 257,
- 258, 258, 259, 259, 259, 259, 259, 259, 260, 262,
- 261, 263, 264, 265, 267, 266, 268, 268, 269, 269,
- 271, 270, 273, 272, 274, 274, 275, 275, 275, 277,
- 276, 279, 278, 280, 280, 281, 281, 283, 282, 285,
- 284, 286, 286, 287, 287, 288, 288, 288, 288, 288,
- 288, 288, 288, 288, 288, 288, 288, 290, 289, 292,
- 291, 294, 293, 296, 295, 298, 297, 300, 299, 302,
- 301, 304, 303, 306, 305, 308, 307, 310, 309, 312,
- 311, 314, 313, 315, 315, 316, 220, 317, 317, 318,
- 318, 319, 319, 319, 319, 319, 319, 319, 320, 322,
- 321, 324, 323, 325, 325, 326, 326, 326, 326, 326,
- 326, 326, 327, 329, 328, 330, 331, 332, 334, 333,
- 335, 335, 336, 336, 338, 337, 340, 339, 342, 341,
- 344, 343, 346, 345, 348, 347, 349, 349, 350, 352,
- 351, 353, 353, 355, 354, 356, 356, 357, 357, 357,
- 357, 357, 358, 360, 359, 362, 361, 363, 363, 365,
- 364, 366, 366, 368, 367
+ 117, 116, 118, 118, 119, 119, 121, 120, 122, 122,
+ 123, 123, 125, 124, 126, 126, 127, 127, 128, 130,
+ 129, 131, 131, 132, 132, 132, 132, 132, 134, 133,
+ 136, 135, 137, 137, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 139, 140, 141, 142,
+ 143, 144, 146, 145, 147, 147, 148, 148, 150, 149,
+ 152, 151, 154, 153, 156, 155, 158, 157, 159, 159,
+ 160, 160, 160, 160, 160, 160, 160, 160, 160, 162,
+ 161, 164, 163, 166, 165, 168, 167, 170, 169, 171,
+ 172, 173, 174, 176, 175, 177, 177, 178, 178, 178,
+ 178, 179, 180, 181, 183, 182, 184, 184, 185, 185,
+ 187, 186, 189, 188, 190, 190, 190, 191, 191, 193,
+ 192, 195, 194, 197, 196, 198, 198, 199, 201, 200,
+ 202, 202, 203, 203, 205, 204, 207, 206, 208, 208,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
+ 211, 210, 213, 212, 215, 214, 217, 216, 219, 218,
+ 221, 220, 223, 222, 225, 224, 226, 227, 229, 228,
+ 230, 230, 231, 231, 233, 232, 235, 234, 236, 236,
+ 237, 237, 238, 238, 238, 238, 238, 238, 238, 238,
+ 239, 240, 241, 242, 244, 243, 246, 245, 247, 249,
+ 248, 250, 252, 251, 253, 253, 254, 254, 256, 255,
+ 258, 257, 259, 259, 260, 260, 261, 261, 261, 261,
+ 261, 261, 262, 264, 263, 265, 266, 267, 269, 268,
+ 270, 270, 271, 271, 273, 272, 275, 274, 276, 276,
+ 277, 277, 277, 279, 278, 281, 280, 282, 282, 283,
+ 283, 285, 284, 287, 286, 288, 288, 289, 289, 290,
+ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
+ 290, 292, 291, 294, 293, 296, 295, 298, 297, 300,
+ 299, 302, 301, 304, 303, 306, 305, 308, 307, 310,
+ 309, 312, 311, 314, 313, 316, 315, 317, 317, 318,
+ 222, 319, 319, 320, 320, 321, 321, 321, 321, 321,
+ 321, 321, 322, 324, 323, 326, 325, 327, 327, 328,
+ 328, 328, 328, 328, 328, 328, 329, 331, 330, 332,
+ 333, 334, 336, 335, 337, 337, 338, 338, 340, 339,
+ 342, 341, 344, 343, 346, 345, 348, 347, 350, 349,
+ 351, 351, 352, 354, 353, 355, 355, 357, 356, 358,
+ 358, 359, 359, 359, 359, 359, 360, 362, 361, 364,
+ 363, 365, 365, 367, 366, 368, 368, 370, 369
};
const unsigned char
0, 2, 0, 3, 0, 3, 0, 3, 0, 3,
0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 4, 0, 1, 3, 5, 0, 4, 0, 4,
- 0, 1, 1, 3, 2, 0, 4, 1, 3, 1,
- 1, 1, 1, 1, 0, 6, 0, 4, 1, 3,
+ 0, 4, 0, 1, 3, 5, 0, 4, 0, 1,
+ 1, 3, 0, 4, 0, 1, 1, 3, 2, 0,
+ 4, 1, 3, 1, 1, 1, 1, 1, 0, 6,
+ 0, 4, 1, 3, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
+ 3, 3, 0, 6, 1, 3, 1, 1, 0, 4,
+ 0, 4, 0, 4, 0, 6, 0, 6, 1, 3,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 4, 0, 4, 0, 4, 0, 4, 0, 4, 3,
+ 3, 3, 1, 0, 6, 1, 3, 1, 1, 1,
+ 1, 1, 1, 1, 0, 6, 0, 1, 1, 3,
+ 0, 4, 0, 4, 1, 3, 1, 1, 1, 0,
+ 4, 0, 4, 0, 6, 1, 3, 3, 0, 6,
+ 0, 1, 1, 3, 0, 4, 0, 4, 1, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 3, 3, 3, 3, 3, 0, 6,
- 1, 3, 1, 1, 0, 4, 0, 4, 0, 4,
- 0, 6, 0, 6, 1, 3, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 4, 0, 4, 0,
- 4, 0, 4, 0, 4, 3, 3, 3, 1, 0,
- 6, 1, 3, 1, 1, 1, 1, 1, 1, 1,
- 0, 6, 0, 1, 1, 3, 0, 4, 0, 4,
- 1, 3, 1, 1, 1, 0, 4, 0, 4, 0,
- 6, 1, 3, 3, 0, 6, 0, 1, 1, 3,
- 0, 4, 0, 4, 1, 3, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 4, 0, 4,
0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
- 0, 4, 3, 3, 0, 6, 0, 1, 1, 3,
- 0, 4, 0, 4, 0, 1, 1, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 1, 1,
- 0, 4, 0, 4, 1, 0, 4, 3, 0, 6,
+ 0, 4, 0, 4, 0, 4, 3, 3, 0, 6,
0, 1, 1, 3, 0, 4, 0, 4, 0, 1,
- 1, 3, 1, 1, 1, 1, 1, 1, 1, 0,
- 4, 1, 1, 3, 0, 6, 0, 1, 1, 3,
- 0, 4, 0, 4, 1, 3, 1, 1, 1, 0,
- 4, 0, 6, 0, 1, 1, 3, 0, 4, 0,
- 4, 0, 1, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 4, 0,
+ 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 1, 1, 0, 4, 0, 4, 1, 0,
+ 4, 3, 0, 6, 0, 1, 1, 3, 0, 4,
+ 0, 4, 0, 1, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 0, 4, 1, 1, 3, 0, 6,
+ 0, 1, 1, 3, 0, 4, 0, 4, 1, 3,
+ 1, 1, 1, 0, 4, 0, 6, 0, 1, 1,
+ 3, 0, 4, 0, 4, 0, 1, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 0, 4, 0, 4, 0, 4, 0, 4, 0,
4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
- 4, 0, 4, 0, 4, 0, 4, 0, 6, 0,
- 4, 0, 6, 1, 3, 0, 4, 0, 1, 1,
- 3, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 4, 0, 6, 1, 3, 1, 1, 1, 1, 1,
- 1, 1, 3, 0, 4, 3, 3, 3, 0, 6,
- 1, 3, 1, 1, 0, 4, 0, 4, 0, 6,
- 0, 4, 0, 4, 0, 6, 1, 3, 1, 0,
- 6, 1, 3, 0, 4, 1, 3, 1, 1, 1,
- 1, 1, 3, 0, 4, 0, 6, 1, 3, 0,
- 4, 1, 3, 0, 4
+ 4, 0, 6, 0, 4, 0, 6, 1, 3, 0,
+ 4, 0, 1, 1, 3, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 4, 0, 6, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 3, 0, 4, 3,
+ 3, 3, 0, 6, 1, 3, 1, 1, 0, 4,
+ 0, 4, 0, 6, 0, 4, 0, 4, 0, 6,
+ 1, 3, 1, 0, 6, 1, 3, 0, 4, 1,
+ 3, 1, 1, 1, 1, 1, 3, 0, 4, 0,
+ 6, 1, 3, 0, 4, 1, 3, 0, 4
};
"\"constant string\"", "\"integer\"", "\"floating point\"",
"\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5",
"$@6", "$@7", "$@8", "$@9", "$@10", "value", "sub_json", "map2", "$@11",
- "map_content", "not_empty_map", "list_generic", "$@12", "list2", "$@13",
- "list_content", "not_empty_list", "unknown_map_entry", "syntax_map",
- "$@14", "global_objects", "global_object", "dhcp4_object", "$@15",
- "sub_dhcp4", "$@16", "global_params", "global_param", "valid_lifetime",
- "renew_timer", "rebind_timer", "decline_probation_period",
- "echo_client_id", "match_client_id", "interfaces_config", "$@17",
+ "map_content", "not_empty_map", "list_generic", "$@12", "list_content",
+ "not_empty_list", "list_strings", "$@13", "list_strings_content",
+ "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@14",
+ "global_objects", "global_object", "dhcp4_object", "$@15", "sub_dhcp4",
+ "$@16", "global_params", "global_param", "valid_lifetime", "renew_timer",
+ "rebind_timer", "decline_probation_period", "echo_client_id",
+ "match_client_id", "interfaces_config", "$@17",
"interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
"$@18", "interfaces_list", "$@19", "dhcp_socket_type", "$@20",
"lease_database", "$@21", "hosts_database", "$@22",
0, 198, 198, 198, 199, 199, 200, 200, 201, 201,
202, 202, 203, 203, 204, 204, 205, 205, 206, 206,
207, 207, 215, 216, 217, 218, 219, 220, 221, 224,
- 229, 229, 241, 242, 245, 249, 256, 256, 264, 264,
- 271, 272, 275, 279, 290, 300, 300, 312, 313, 317,
- 318, 319, 320, 321, 324, 324, 341, 341, 349, 350,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 379, 384, 389, 394, 399, 404, 410, 410,
- 420, 421, 424, 425, 428, 428, 436, 436, 446, 446,
- 454, 454, 464, 464, 474, 475, 478, 479, 480, 481,
- 482, 483, 484, 485, 486, 489, 489, 497, 497, 505,
- 505, 513, 513, 521, 521, 529, 534, 539, 544, 549,
- 549, 559, 560, 563, 564, 565, 566, 569, 574, 579,
- 584, 584, 594, 595, 598, 599, 602, 602, 610, 610,
- 618, 619, 620, 623, 624, 627, 627, 635, 635, 643,
- 643, 653, 654, 660, 668, 668, 681, 682, 685, 686,
- 693, 693, 716, 716, 725, 726, 730, 731, 732, 733,
- 734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
- 744, 745, 746, 747, 748, 749, 752, 752, 760, 760,
- 768, 768, 776, 776, 784, 784, 792, 792, 800, 800,
- 808, 808, 816, 821, 830, 830, 842, 843, 846, 847,
- 852, 852, 863, 863, 873, 874, 877, 878, 881, 882,
- 883, 884, 885, 886, 887, 888, 891, 893, 898, 900,
- 902, 902, 910, 910, 918, 920, 920, 928, 937, 937,
- 949, 950, 955, 956, 961, 961, 972, 972, 983, 984,
- 989, 990, 995, 996, 997, 998, 999, 1000, 1003, 1005,
- 1005, 1013, 1015, 1017, 1025, 1025, 1037, 1038, 1041, 1042,
- 1045, 1045, 1053, 1053, 1061, 1062, 1065, 1066, 1067, 1070,
- 1070, 1081, 1081, 1091, 1092, 1095, 1096, 1099, 1099, 1107,
- 1107, 1115, 1116, 1119, 1120, 1124, 1125, 1126, 1127, 1128,
- 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1138, 1138, 1146,
- 1146, 1154, 1154, 1162, 1162, 1170, 1170, 1178, 1178, 1186,
- 1186, 1194, 1194, 1203, 1203, 1211, 1211, 1224, 1224, 1234,
- 1234, 1245, 1245, 1255, 1256, 1259, 1259, 1267, 1268, 1271,
- 1272, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1284, 1286,
- 1286, 1297, 1297, 1307, 1308, 1311, 1312, 1313, 1314, 1315,
- 1316, 1317, 1320, 1325, 1325, 1333, 1338, 1345, 1352, 1352,
- 1362, 1363, 1366, 1367, 1370, 1370, 1378, 1378, 1388, 1388,
- 1400, 1400, 1407, 1407, 1419, 1419, 1432, 1433, 1437, 1441,
- 1441, 1453, 1454, 1458, 1458, 1466, 1467, 1470, 1471, 1472,
- 1473, 1474, 1477, 1481, 1481, 1489, 1489, 1499, 1500, 1503,
- 1503, 1511, 1512, 1515, 1515
+ 229, 229, 241, 242, 245, 249, 256, 256, 263, 264,
+ 267, 271, 278, 278, 285, 286, 289, 293, 304, 314,
+ 314, 326, 327, 331, 332, 333, 334, 335, 338, 338,
+ 355, 355, 363, 364, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
+ 385, 386, 387, 388, 389, 390, 393, 398, 403, 408,
+ 413, 418, 424, 424, 434, 435, 438, 439, 442, 442,
+ 450, 450, 460, 460, 468, 468, 478, 478, 488, 489,
+ 492, 493, 494, 495, 496, 497, 498, 499, 500, 503,
+ 503, 511, 511, 519, 519, 527, 527, 535, 535, 543,
+ 548, 553, 558, 563, 563, 573, 574, 577, 578, 579,
+ 580, 583, 588, 593, 598, 598, 608, 609, 612, 613,
+ 616, 616, 624, 624, 632, 633, 634, 637, 638, 641,
+ 641, 649, 649, 657, 657, 667, 668, 674, 682, 682,
+ 695, 696, 699, 700, 707, 707, 730, 730, 739, 740,
+ 744, 745, 746, 747, 748, 749, 750, 751, 752, 753,
+ 754, 755, 756, 757, 758, 759, 760, 761, 762, 763,
+ 766, 766, 774, 774, 782, 782, 790, 790, 798, 798,
+ 806, 806, 814, 814, 822, 822, 830, 835, 844, 844,
+ 856, 857, 860, 861, 866, 866, 877, 877, 887, 888,
+ 891, 892, 895, 896, 897, 898, 899, 900, 901, 902,
+ 905, 907, 912, 914, 916, 916, 924, 924, 932, 934,
+ 934, 942, 951, 951, 963, 964, 969, 970, 975, 975,
+ 986, 986, 997, 998, 1003, 1004, 1009, 1010, 1011, 1012,
+ 1013, 1014, 1017, 1019, 1019, 1027, 1029, 1031, 1039, 1039,
+ 1051, 1052, 1055, 1056, 1059, 1059, 1067, 1067, 1075, 1076,
+ 1079, 1080, 1081, 1084, 1084, 1095, 1095, 1105, 1106, 1109,
+ 1110, 1113, 1113, 1121, 1121, 1129, 1130, 1133, 1134, 1138,
+ 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
+ 1149, 1152, 1152, 1160, 1160, 1168, 1168, 1176, 1176, 1184,
+ 1184, 1192, 1192, 1200, 1200, 1208, 1208, 1217, 1217, 1225,
+ 1225, 1238, 1238, 1248, 1248, 1259, 1259, 1269, 1270, 1273,
+ 1273, 1281, 1282, 1285, 1286, 1289, 1290, 1291, 1292, 1293,
+ 1294, 1295, 1298, 1300, 1300, 1311, 1311, 1321, 1322, 1325,
+ 1326, 1327, 1328, 1329, 1330, 1331, 1334, 1339, 1339, 1347,
+ 1352, 1359, 1366, 1366, 1376, 1377, 1380, 1381, 1384, 1384,
+ 1392, 1392, 1402, 1402, 1414, 1414, 1421, 1421, 1433, 1433,
+ 1446, 1447, 1451, 1455, 1455, 1467, 1468, 1472, 1472, 1480,
+ 1481, 1484, 1485, 1486, 1487, 1488, 1491, 1495, 1495, 1503,
+ 1503, 1513, 1514, 1517, 1517, 1525, 1526, 1529, 1529
};
// Print the state stack on the debug stream.
#line 14 "dhcp4_parser.yy" // lalr1.cc:1167
} } // isc::dhcp
-#line 3495 "dhcp4_parser.cc" // lalr1.cc:1167
-#line 1523 "dhcp4_parser.yy" // lalr1.cc:1168
+#line 3514 "dhcp4_parser.cc" // lalr1.cc:1167
+#line 1537 "dhcp4_parser.yy" // lalr1.cc:1168
void
#ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED
# define YY_PARSER4_DHCP4_PARSER_H_INCLUDED
// // "%code requires" blocks.
-#line 17 "dhcp4_parser.yy" // lalr1.cc:377
+#line 17 "dhcp4_parser.yy" // lalr1.cc:392
#include <string>
#include <cc/data.h>
using namespace isc::data;
using namespace std;
-#line 56 "dhcp4_parser.h" // lalr1.cc:377
+#line 56 "dhcp4_parser.h" // lalr1.cc:392
# include <cassert>
# include <cstdlib> // std::abort
# endif /* ! defined YYDEBUG */
#endif /* ! defined PARSER4_DEBUG */
-#line 14 "dhcp4_parser.yy" // lalr1.cc:377
+#line 14 "dhcp4_parser.yy" // lalr1.cc:392
namespace isc { namespace dhcp {
-#line 141 "dhcp4_parser.h" // lalr1.cc:377
+#line 141 "dhcp4_parser.h" // lalr1.cc:392
enum
{
yyeof_ = 0,
- yylast_ = 624, ///< Last index in yytable_.
- yynnts_ = 267, ///< Number of nonterminal symbols.
+ yylast_ = 628, ///< Last index in yytable_.
+ yynnts_ = 269, ///< Number of nonterminal symbols.
yyfinal_ = 22, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
}
-#line 14 "dhcp4_parser.yy" // lalr1.cc:377
+#line 14 "dhcp4_parser.yy" // lalr1.cc:392
} } // isc::dhcp
-#line 2124 "dhcp4_parser.h" // lalr1.cc:377
+#line 2124 "dhcp4_parser.h" // lalr1.cc:392
-/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
// list parsing complete. Put any sanity checking here
};
-// This one is used in syntax parser.
-list2: LSQUARE_BRACKET {
- // List parsing about to start
-} list_content RSQUARE_BRACKET {
- // list parsing complete. Put any sanity checking here
- //ctx.stack_.pop_back();
-};
-
list_content: %empty // Empty list
| not_empty_list
;
}
;
+// This one is used in syntax parser and is restricted to strings.
+list_strings: LSQUARE_BRACKET {
+ // List parsing about to start
+} list_strings_content RSQUARE_BRACKET {
+ // list parsing complete. Put any sanity checking here
+ //ctx.stack_.pop_back();
+};
+
+list_strings_content: %empty // Empty list
+ | not_empty_list_strings
+ ;
+
+not_empty_list_strings: STRING {
+ ElementPtr s(new StringElement($1, ctx.loc2pos(@1)));
+ ctx.stack_.back()->add(s);
+ }
+ | not_empty_list_strings COMMA STRING {
+ ElementPtr s(new StringElement($3, ctx.loc2pos(@3)));
+ ctx.stack_.back()->add(s);
+ }
+ ;
+
// ---- generic JSON parser ends here ----------------------------------
// ---- syntax checking parser starts here -----------------------------
ctx.stack_.back()->set("interfaces", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON list_strings {
ctx.stack_.pop_back();
ctx.leave();
};
ctx.stack_.back()->set("client-classes", c);
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON list_strings {
ctx.stack_.pop_back();
ctx.leave();
};
// control-socket has been converted to SimpleParser already.
} else if (config_id.compare("expired-leases-processing") == 0) {
parser = new ExpirationConfigParser();
- } else if (config_id.compare("client-classes") == 0) {
- parser = new ClientClassDefListParser(config_id, globalContext());
+ // client-classes has been converted to SimpleParser already.
// host-reservation-identifiers have been converted to SimpleParser already.
} else {
isc_throw(DhcpConfigError,
ParserPtr subnet_parser;
ParserPtr iface_parser;
ParserPtr leases_parser;
- ParserPtr client_classes_parser;
// Some of the parsers alter the state of the system in a way that can't
// easily be undone. (Or alter it in a way such that undoing the change has
continue;
}
+
+ if (config_pair.first == "client-classes") {
+ ClientClassDefListParser parser;
+ parser.parse(config_pair.second, AF_INET);
+ continue;
+ }
+
ParserPtr parser(createGlobalDhcp4ConfigParser(config_pair.first,
config_pair.second));
LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL, DHCP4_PARSER_CREATED)
// but defer the commit until everything else has committed.
hooks_parser = parser;
parser->build(config_pair.second);
- } else if (config_pair.first == "client-classes") {
- client_classes_parser = parser;
} else {
// Those parsers should be started before other
// parsers so we can call build straight away.
}
}
- // The class definitions parser is the next one to be run.
- std::map<std::string, ConstElementPtr>::const_iterator cc_config =
- values_map.find("client-classes");
- if (cc_config != values_map.end()) {
- config_pair.first = "client-classes";
- client_classes_parser->build(cc_config->second);
- client_classes_parser->commit();
- }
-
// The subnet parser is the next one to be run.
std::map<std::string, ConstElementPtr>::const_iterator subnet_config =
values_map.find("subnet4");
#line 788 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 40:
-#line 265 "dhcp6_parser.yy" // lalr1.cc:859
+ case 42:
+#line 268 "dhcp6_parser.yy" // lalr1.cc:859
+ {
+ // List consisting of a single element.
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
+ }
+#line 797 "dhcp6_parser.cc" // lalr1.cc:859
+ break;
+
+ case 43:
+#line 272 "dhcp6_parser.yy" // lalr1.cc:859
+ {
+ // List ending with , and a value.
+ ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
+ }
+#line 806 "dhcp6_parser.cc" // lalr1.cc:859
+ break;
+
+ case 44:
+#line 279 "dhcp6_parser.yy" // lalr1.cc:859
{
// List parsing about to start
}
-#line 796 "dhcp6_parser.cc" // lalr1.cc:859
+#line 814 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 41:
-#line 267 "dhcp6_parser.yy" // lalr1.cc:859
+ case 45:
+#line 281 "dhcp6_parser.yy" // lalr1.cc:859
{
// list parsing complete. Put any sanity checking here
//ctx.stack_.pop_back();
}
-#line 805 "dhcp6_parser.cc" // lalr1.cc:859
+#line 823 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 44:
-#line 276 "dhcp6_parser.yy" // lalr1.cc:859
+ case 48:
+#line 290 "dhcp6_parser.yy" // lalr1.cc:859
{
- // List consisting of a single element.
- ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
- }
-#line 814 "dhcp6_parser.cc" // lalr1.cc:859
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->add(s);
+ }
+#line 832 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 45:
-#line 280 "dhcp6_parser.yy" // lalr1.cc:859
+ case 49:
+#line 294 "dhcp6_parser.yy" // lalr1.cc:859
{
- // List ending with , and a value.
- ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
- }
-#line 823 "dhcp6_parser.cc" // lalr1.cc:859
+ ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
+ ctx.stack_.back()->add(s);
+ }
+#line 841 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 46:
-#line 291 "dhcp6_parser.yy" // lalr1.cc:859
+ case 50:
+#line 305 "dhcp6_parser.yy" // lalr1.cc:859
{
const std::string& where = ctx.contextName();
const std::string& keyword = yystack_[1].value.as< std::string > ();
error(yystack_[1].location,
"got unexpected keyword \"" + keyword + "\" in " + where + " map.");
}
-#line 834 "dhcp6_parser.cc" // lalr1.cc:859
+#line 852 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 47:
-#line 301 "dhcp6_parser.yy" // lalr1.cc:859
+ case 51:
+#line 315 "dhcp6_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 845 "dhcp6_parser.cc" // lalr1.cc:859
+#line 863 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 48:
-#line 306 "dhcp6_parser.yy" // lalr1.cc:859
+ case 52:
+#line 320 "dhcp6_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
// for it.
}
-#line 855 "dhcp6_parser.cc" // lalr1.cc:859
+#line 873 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 56:
-#line 325 "dhcp6_parser.yy" // lalr1.cc:859
+ case 60:
+#line 339 "dhcp6_parser.yy" // lalr1.cc:859
{
// This code is executed when we're about to start parsing
// the content of the map
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP6);
}
-#line 868 "dhcp6_parser.cc" // lalr1.cc:859
+#line 886 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 57:
-#line 332 "dhcp6_parser.yy" // lalr1.cc:859
+ case 61:
+#line 346 "dhcp6_parser.yy" // lalr1.cc:859
{
// map parsing completed. If we ever want to do any wrap up
// (maybe some sanity checking), this would be the best place
ctx.stack_.pop_back();
ctx.leave();
}
-#line 880 "dhcp6_parser.cc" // lalr1.cc:859
+#line 898 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 58:
-#line 342 "dhcp6_parser.yy" // lalr1.cc:859
+ case 62:
+#line 356 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the Dhcp6 map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 890 "dhcp6_parser.cc" // lalr1.cc:859
+#line 908 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 59:
-#line 346 "dhcp6_parser.yy" // lalr1.cc:859
+ case 63:
+#line 360 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 898 "dhcp6_parser.cc" // lalr1.cc:859
+#line 916 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 84:
-#line 380 "dhcp6_parser.yy" // lalr1.cc:859
+ case 88:
+#line 394 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("preferred-lifetime", prf);
}
-#line 907 "dhcp6_parser.cc" // lalr1.cc:859
+#line 925 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 85:
-#line 385 "dhcp6_parser.yy" // lalr1.cc:859
+ case 89:
+#line 399 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("valid-lifetime", prf);
}
-#line 916 "dhcp6_parser.cc" // lalr1.cc:859
+#line 934 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 86:
-#line 390 "dhcp6_parser.yy" // lalr1.cc:859
+ case 90:
+#line 404 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("renew-timer", prf);
}
-#line 925 "dhcp6_parser.cc" // lalr1.cc:859
+#line 943 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 87:
-#line 395 "dhcp6_parser.yy" // lalr1.cc:859
+ case 91:
+#line 409 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rebind-timer", prf);
}
-#line 934 "dhcp6_parser.cc" // lalr1.cc:859
+#line 952 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 88:
-#line 400 "dhcp6_parser.yy" // lalr1.cc:859
+ case 92:
+#line 414 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("decline-probation-period", dpp);
}
-#line 943 "dhcp6_parser.cc" // lalr1.cc:859
+#line 961 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 89:
-#line 405 "dhcp6_parser.yy" // lalr1.cc:859
+ case 93:
+#line 419 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interfaces-config", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.INTERFACES_CONFIG);
}
-#line 954 "dhcp6_parser.cc" // lalr1.cc:859
+#line 972 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 90:
-#line 410 "dhcp6_parser.yy" // lalr1.cc:859
+ case 94:
+#line 424 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 963 "dhcp6_parser.cc" // lalr1.cc:859
+#line 981 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 91:
-#line 415 "dhcp6_parser.yy" // lalr1.cc:859
+ case 95:
+#line 429 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the interfaces-config map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 973 "dhcp6_parser.cc" // lalr1.cc:859
+#line 991 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 92:
-#line 419 "dhcp6_parser.yy" // lalr1.cc:859
+ case 96:
+#line 433 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 981 "dhcp6_parser.cc" // lalr1.cc:859
+#line 999 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 93:
-#line 423 "dhcp6_parser.yy" // lalr1.cc:859
+ case 97:
+#line 437 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interfaces", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 992 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1010 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 94:
-#line 428 "dhcp6_parser.yy" // lalr1.cc:859
+ case 98:
+#line 442 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1001 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1019 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 95:
-#line 433 "dhcp6_parser.yy" // lalr1.cc:859
+ case 99:
+#line 447 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lease-database", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.LEASE_DATABASE);
}
-#line 1012 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1030 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 96:
-#line 438 "dhcp6_parser.yy" // lalr1.cc:859
+ case 100:
+#line 452 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1021 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1039 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 97:
-#line 443 "dhcp6_parser.yy" // lalr1.cc:859
+ case 101:
+#line 457 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hosts-database", i);
ctx.stack_.push_back(i);
ctx.enter(ctx.HOSTS_DATABASE);
}
-#line 1032 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1050 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 98:
-#line 448 "dhcp6_parser.yy" // lalr1.cc:859
+ case 102:
+#line 462 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1041 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1059 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 110:
-#line 468 "dhcp6_parser.yy" // lalr1.cc:859
+ case 114:
+#line 482 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1049 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1067 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 111:
-#line 470 "dhcp6_parser.yy" // lalr1.cc:859
+ case 115:
+#line 484 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("type", prf);
ctx.leave();
}
-#line 1059 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1077 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 112:
-#line 476 "dhcp6_parser.yy" // lalr1.cc:859
+ case 116:
+#line 490 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1067 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1085 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 113:
-#line 478 "dhcp6_parser.yy" // lalr1.cc:859
+ case 117:
+#line 492 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user", user);
ctx.leave();
}
-#line 1077 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1095 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 114:
-#line 484 "dhcp6_parser.yy" // lalr1.cc:859
+ case 118:
+#line 498 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1085 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1103 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 115:
-#line 486 "dhcp6_parser.yy" // lalr1.cc:859
+ case 119:
+#line 500 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password", pwd);
ctx.leave();
}
-#line 1095 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1113 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 116:
-#line 492 "dhcp6_parser.yy" // lalr1.cc:859
+ case 120:
+#line 506 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1103 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1121 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 117:
-#line 494 "dhcp6_parser.yy" // lalr1.cc:859
+ case 121:
+#line 508 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("host", h);
ctx.leave();
}
-#line 1113 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1131 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 118:
-#line 500 "dhcp6_parser.yy" // lalr1.cc:859
+ case 122:
+#line 514 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1121 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1139 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 119:
-#line 502 "dhcp6_parser.yy" // lalr1.cc:859
+ case 123:
+#line 516 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 1131 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1149 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 120:
-#line 508 "dhcp6_parser.yy" // lalr1.cc:859
+ case 124:
+#line 522 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("persist", n);
}
-#line 1140 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1158 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 121:
-#line 513 "dhcp6_parser.yy" // lalr1.cc:859
+ case 125:
+#line 527 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lfc-interval", n);
}
-#line 1149 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1167 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 122:
-#line 518 "dhcp6_parser.yy" // lalr1.cc:859
+ case 126:
+#line 532 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("readonly", n);
}
-#line 1158 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1176 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 123:
-#line 523 "dhcp6_parser.yy" // lalr1.cc:859
+ case 127:
+#line 537 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("mac-sources", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.MAC_SOURCES);
}
-#line 1169 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1187 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 124:
-#line 528 "dhcp6_parser.yy" // lalr1.cc:859
+ case 128:
+#line 542 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1178 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1196 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 129:
-#line 541 "dhcp6_parser.yy" // lalr1.cc:859
+ case 133:
+#line 555 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 1187 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1205 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 130:
-#line 546 "dhcp6_parser.yy" // lalr1.cc:859
+ case 134:
+#line 560 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(duid);
}
-#line 1196 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1214 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 131:
-#line 551 "dhcp6_parser.yy" // lalr1.cc:859
+ case 135:
+#line 565 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("host-reservation-identifiers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
}
-#line 1207 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1225 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 132:
-#line 556 "dhcp6_parser.yy" // lalr1.cc:859
+ case 136:
+#line 570 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1216 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1234 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 137:
-#line 569 "dhcp6_parser.yy" // lalr1.cc:859
+ case 141:
+#line 583 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(hwaddr);
}
-#line 1225 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1243 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 138:
-#line 574 "dhcp6_parser.yy" // lalr1.cc:859
+ case 142:
+#line 590 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("relay-supplied-options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1236 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1254 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 139:
-#line 579 "dhcp6_parser.yy" // lalr1.cc:859
+ case 143:
+#line 595 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1245 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1263 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 140:
-#line 584 "dhcp6_parser.yy" // lalr1.cc:859
+ case 144:
+#line 600 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hooks-libraries", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 1256 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1274 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 141:
-#line 589 "dhcp6_parser.yy" // lalr1.cc:859
+ case 145:
+#line 605 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1265 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1283 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 146:
-#line 602 "dhcp6_parser.yy" // lalr1.cc:859
+ case 150:
+#line 618 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1275 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1293 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 147:
-#line 606 "dhcp6_parser.yy" // lalr1.cc:859
+ case 151:
+#line 622 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1283 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1301 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 148:
-#line 610 "dhcp6_parser.yy" // lalr1.cc:859
+ case 152:
+#line 626 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the hooks-libraries list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1293 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1311 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 149:
-#line 614 "dhcp6_parser.yy" // lalr1.cc:859
+ case 153:
+#line 630 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1301 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1319 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 155:
-#line 627 "dhcp6_parser.yy" // lalr1.cc:859
+ case 159:
+#line 643 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1309 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1327 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 156:
-#line 629 "dhcp6_parser.yy" // lalr1.cc:859
+ case 160:
+#line 645 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 1319 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1337 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 157:
-#line 635 "dhcp6_parser.yy" // lalr1.cc:859
+ case 161:
+#line 651 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1327 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1345 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 158:
-#line 637 "dhcp6_parser.yy" // lalr1.cc:859
+ case 162:
+#line 653 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 1336 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1354 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 159:
-#line 643 "dhcp6_parser.yy" // lalr1.cc:859
+ case 163:
+#line 659 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("expired-leases-processing", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1347 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1365 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 160:
-#line 648 "dhcp6_parser.yy" // lalr1.cc:859
+ case 164:
+#line 664 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1356 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1374 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 163:
-#line 660 "dhcp6_parser.yy" // lalr1.cc:859
+ case 167:
+#line 676 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), value);
}
-#line 1365 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1383 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 164:
-#line 668 "dhcp6_parser.yy" // lalr1.cc:859
+ case 168:
+#line 684 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet6", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.SUBNET6);
}
-#line 1376 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1394 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 165:
-#line 673 "dhcp6_parser.yy" // lalr1.cc:859
+ case 169:
+#line 689 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1385 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1403 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 170:
-#line 693 "dhcp6_parser.yy" // lalr1.cc:859
+ case 174:
+#line 709 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1395 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1413 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 171:
-#line 697 "dhcp6_parser.yy" // lalr1.cc:859
+ case 175:
+#line 713 "dhcp6_parser.yy" // lalr1.cc:859
{
// Once we reached this place, the subnet parsing is now complete.
// If we want to, we can implement default values here.
// }
ctx.stack_.pop_back();
}
-#line 1418 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1436 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 172:
-#line 716 "dhcp6_parser.yy" // lalr1.cc:859
+ case 176:
+#line 732 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the subnet6 list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1428 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1446 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 173:
-#line 720 "dhcp6_parser.yy" // lalr1.cc:859
+ case 177:
+#line 736 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1436 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1454 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 193:
-#line 749 "dhcp6_parser.yy" // lalr1.cc:859
+ case 197:
+#line 765 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1444 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1462 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 194:
-#line 751 "dhcp6_parser.yy" // lalr1.cc:859
+ case 198:
+#line 767 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet", subnet);
ctx.leave();
}
-#line 1454 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1472 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 195:
-#line 757 "dhcp6_parser.yy" // lalr1.cc:859
+ case 199:
+#line 773 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1462 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1480 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 196:
-#line 759 "dhcp6_parser.yy" // lalr1.cc:859
+ case 200:
+#line 775 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface", iface);
ctx.leave();
}
-#line 1472 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1490 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 197:
-#line 765 "dhcp6_parser.yy" // lalr1.cc:859
+ case 201:
+#line 781 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1480 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1498 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 198:
-#line 767 "dhcp6_parser.yy" // lalr1.cc:859
+ case 202:
+#line 783 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface-id", iface);
ctx.leave();
}
-#line 1490 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1508 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 199:
-#line 773 "dhcp6_parser.yy" // lalr1.cc:859
+ case 203:
+#line 789 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.CLIENT_CLASS);
}
-#line 1498 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1516 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 200:
-#line 775 "dhcp6_parser.yy" // lalr1.cc:859
+ case 204:
+#line 791 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-class", cls);
ctx.leave();
}
-#line 1508 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1526 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 201:
-#line 781 "dhcp6_parser.yy" // lalr1.cc:859
+ case 205:
+#line 797 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1516 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1534 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 202:
-#line 783 "dhcp6_parser.yy" // lalr1.cc:859
+ case 206:
+#line 799 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservation-mode", rm);
ctx.leave();
}
-#line 1526 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1544 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 203:
-#line 789 "dhcp6_parser.yy" // lalr1.cc:859
+ case 207:
+#line 805 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("id", id);
}
-#line 1535 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1553 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 204:
-#line 794 "dhcp6_parser.yy" // lalr1.cc:859
+ case 208:
+#line 810 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("rapid-commit", rc);
}
-#line 1544 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1562 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 205:
-#line 803 "dhcp6_parser.yy" // lalr1.cc:859
+ case 209:
+#line 819 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("option-def", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DEF);
}
-#line 1555 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1573 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 206:
-#line 808 "dhcp6_parser.yy" // lalr1.cc:859
+ case 210:
+#line 824 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1564 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1582 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 211:
-#line 825 "dhcp6_parser.yy" // lalr1.cc:859
+ case 215:
+#line 841 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1574 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1592 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 212:
-#line 829 "dhcp6_parser.yy" // lalr1.cc:859
+ case 216:
+#line 845 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1582 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1600 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 213:
-#line 836 "dhcp6_parser.yy" // lalr1.cc:859
+ case 217:
+#line 852 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the option-def list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1592 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1610 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 214:
-#line 840 "dhcp6_parser.yy" // lalr1.cc:859
+ case 218:
+#line 856 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1600 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1618 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 228:
-#line 866 "dhcp6_parser.yy" // lalr1.cc:859
+ case 232:
+#line 882 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("code", code);
}
-#line 1609 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1627 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 231:
-#line 875 "dhcp6_parser.yy" // lalr1.cc:859
+ case 235:
+#line 891 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1617 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1635 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 232:
-#line 877 "dhcp6_parser.yy" // lalr1.cc:859
+ case 236:
+#line 893 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("record-types", rtypes);
ctx.leave();
}
-#line 1627 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1645 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 233:
-#line 883 "dhcp6_parser.yy" // lalr1.cc:859
+ case 237:
+#line 899 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1635 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1653 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 234:
-#line 885 "dhcp6_parser.yy" // lalr1.cc:859
+ case 238:
+#line 901 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("space", space);
ctx.leave();
}
-#line 1645 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1663 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 236:
-#line 893 "dhcp6_parser.yy" // lalr1.cc:859
+ case 240:
+#line 909 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1653 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1671 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 237:
-#line 895 "dhcp6_parser.yy" // lalr1.cc:859
+ case 241:
+#line 911 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("encapsulate", encap);
ctx.leave();
}
-#line 1663 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1681 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 238:
-#line 901 "dhcp6_parser.yy" // lalr1.cc:859
+ case 242:
+#line 917 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("array", array);
}
-#line 1672 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1690 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 239:
-#line 910 "dhcp6_parser.yy" // lalr1.cc:859
+ case 243:
+#line 926 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("option-data", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DATA);
}
-#line 1683 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1701 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 240:
-#line 915 "dhcp6_parser.yy" // lalr1.cc:859
+ case 244:
+#line 931 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1692 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1710 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 245:
-#line 934 "dhcp6_parser.yy" // lalr1.cc:859
+ case 249:
+#line 950 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1702 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1720 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 246:
-#line 938 "dhcp6_parser.yy" // lalr1.cc:859
+ case 250:
+#line 954 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1710 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1728 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 247:
-#line 945 "dhcp6_parser.yy" // lalr1.cc:859
+ case 251:
+#line 961 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the option-data list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1720 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1738 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 248:
-#line 949 "dhcp6_parser.yy" // lalr1.cc:859
+ case 252:
+#line 965 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1728 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1746 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 260:
-#line 978 "dhcp6_parser.yy" // lalr1.cc:859
+ case 264:
+#line 994 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1736 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1754 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 261:
-#line 980 "dhcp6_parser.yy" // lalr1.cc:859
+ case 265:
+#line 996 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data", data);
ctx.leave();
}
-#line 1746 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1764 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 264:
-#line 990 "dhcp6_parser.yy" // lalr1.cc:859
+ case 268:
+#line 1006 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("csv-format", space);
}
-#line 1755 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1773 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 265:
-#line 998 "dhcp6_parser.yy" // lalr1.cc:859
+ case 269:
+#line 1014 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pools", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.POOLS);
}
-#line 1766 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1784 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 266:
-#line 1003 "dhcp6_parser.yy" // lalr1.cc:859
+ case 270:
+#line 1019 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1775 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1793 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 271:
-#line 1018 "dhcp6_parser.yy" // lalr1.cc:859
+ case 275:
+#line 1034 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1785 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1803 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 272:
-#line 1022 "dhcp6_parser.yy" // lalr1.cc:859
+ case 276:
+#line 1038 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1793 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1811 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 273:
-#line 1026 "dhcp6_parser.yy" // lalr1.cc:859
+ case 277:
+#line 1042 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1803 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1821 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 274:
-#line 1030 "dhcp6_parser.yy" // lalr1.cc:859
+ case 278:
+#line 1046 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1811 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1829 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 280:
-#line 1043 "dhcp6_parser.yy" // lalr1.cc:859
+ case 284:
+#line 1059 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1819 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1837 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 281:
-#line 1045 "dhcp6_parser.yy" // lalr1.cc:859
+ case 285:
+#line 1061 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pool", pool);
ctx.leave();
}
-#line 1829 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1847 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 282:
-#line 1054 "dhcp6_parser.yy" // lalr1.cc:859
+ case 286:
+#line 1070 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pd-pools", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.PD_POOLS);
}
-#line 1840 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1858 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 283:
-#line 1059 "dhcp6_parser.yy" // lalr1.cc:859
+ case 287:
+#line 1075 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1849 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1867 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 288:
-#line 1074 "dhcp6_parser.yy" // lalr1.cc:859
+ case 292:
+#line 1090 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1859 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1877 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 289:
-#line 1078 "dhcp6_parser.yy" // lalr1.cc:859
+ case 293:
+#line 1094 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1867 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1885 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 290:
-#line 1082 "dhcp6_parser.yy" // lalr1.cc:859
+ case 294:
+#line 1098 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the pd-pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1877 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1895 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 291:
-#line 1086 "dhcp6_parser.yy" // lalr1.cc:859
+ case 295:
+#line 1102 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 1885 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1903 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 301:
-#line 1103 "dhcp6_parser.yy" // lalr1.cc:859
+ case 305:
+#line 1119 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1893 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1911 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 302:
-#line 1105 "dhcp6_parser.yy" // lalr1.cc:859
+ case 306:
+#line 1121 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefix", prf);
ctx.leave();
}
-#line 1903 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1921 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 303:
-#line 1111 "dhcp6_parser.yy" // lalr1.cc:859
+ case 307:
+#line 1127 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefix-len", prf);
}
-#line 1912 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1930 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 304:
-#line 1116 "dhcp6_parser.yy" // lalr1.cc:859
+ case 308:
+#line 1132 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1920 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1938 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 305:
-#line 1118 "dhcp6_parser.yy" // lalr1.cc:859
+ case 309:
+#line 1134 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("excluded-prefix", prf);
ctx.leave();
}
-#line 1930 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1948 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 306:
-#line 1124 "dhcp6_parser.yy" // lalr1.cc:859
+ case 310:
+#line 1140 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("excluded-prefix-len", prf);
}
-#line 1939 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1957 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 307:
-#line 1129 "dhcp6_parser.yy" // lalr1.cc:859
+ case 311:
+#line 1145 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("delegated-len", deleg);
}
-#line 1948 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1966 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 308:
-#line 1137 "dhcp6_parser.yy" // lalr1.cc:859
+ case 312:
+#line 1153 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.RESERVATIONS);
}
-#line 1959 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1977 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 309:
-#line 1142 "dhcp6_parser.yy" // lalr1.cc:859
+ case 313:
+#line 1158 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 1968 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1986 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 314:
-#line 1155 "dhcp6_parser.yy" // lalr1.cc:859
+ case 318:
+#line 1171 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 1978 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1996 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 315:
-#line 1159 "dhcp6_parser.yy" // lalr1.cc:859
+ case 319:
+#line 1175 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 1986 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2004 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 316:
-#line 1163 "dhcp6_parser.yy" // lalr1.cc:859
+ case 320:
+#line 1179 "dhcp6_parser.yy" // lalr1.cc:859
{
// Parse the reservations list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 1996 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2014 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 317:
-#line 1167 "dhcp6_parser.yy" // lalr1.cc:859
+ case 321:
+#line 1183 "dhcp6_parser.yy" // lalr1.cc:859
{
// parsing completed
}
-#line 2004 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2022 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 330:
-#line 1190 "dhcp6_parser.yy" // lalr1.cc:859
+ case 334:
+#line 1206 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-addresses", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2015 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2033 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 331:
-#line 1195 "dhcp6_parser.yy" // lalr1.cc:859
+ case 335:
+#line 1211 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2024 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2042 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 332:
-#line 1200 "dhcp6_parser.yy" // lalr1.cc:859
+ case 336:
+#line 1216 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("prefixes", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2035 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2053 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 333:
-#line 1205 "dhcp6_parser.yy" // lalr1.cc:859
+ case 337:
+#line 1221 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2044 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2062 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 334:
-#line 1210 "dhcp6_parser.yy" // lalr1.cc:859
+ case 338:
+#line 1226 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2052 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2070 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 335:
-#line 1212 "dhcp6_parser.yy" // lalr1.cc:859
+ case 339:
+#line 1228 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("duid", d);
ctx.leave();
}
-#line 2062 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2080 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 336:
-#line 1218 "dhcp6_parser.yy" // lalr1.cc:859
+ case 340:
+#line 1234 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2070 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2088 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 337:
-#line 1220 "dhcp6_parser.yy" // lalr1.cc:859
+ case 341:
+#line 1236 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hw-address", hw);
ctx.leave();
}
-#line 2080 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2098 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 338:
-#line 1226 "dhcp6_parser.yy" // lalr1.cc:859
+ case 342:
+#line 1242 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2088 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2106 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 339:
-#line 1228 "dhcp6_parser.yy" // lalr1.cc:859
+ case 343:
+#line 1244 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("hostname", host);
ctx.leave();
}
-#line 2098 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2116 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 340:
-#line 1234 "dhcp6_parser.yy" // lalr1.cc:859
+ case 344:
+#line 1250 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-classes", c);
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2109 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2127 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 341:
-#line 1239 "dhcp6_parser.yy" // lalr1.cc:859
+ case 345:
+#line 1255 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2118 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2136 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 342:
-#line 1247 "dhcp6_parser.yy" // lalr1.cc:859
+ case 346:
+#line 1263 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("relay", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.RELAY);
}
-#line 2129 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2147 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 343:
-#line 1252 "dhcp6_parser.yy" // lalr1.cc:859
+ case 347:
+#line 1268 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2138 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2156 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 344:
-#line 1257 "dhcp6_parser.yy" // lalr1.cc:859
+ case 348:
+#line 1273 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2146 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2164 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 345:
-#line 1259 "dhcp6_parser.yy" // lalr1.cc:859
+ case 349:
+#line 1275 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ip-address", ip);
ctx.leave();
}
-#line 2156 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2174 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 346:
-#line 1268 "dhcp6_parser.yy" // lalr1.cc:859
+ case 350:
+#line 1284 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-classes", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENT_CLASSES);
}
-#line 2167 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2185 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 347:
-#line 1273 "dhcp6_parser.yy" // lalr1.cc:859
+ case 351:
+#line 1289 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2176 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2194 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 350:
-#line 1282 "dhcp6_parser.yy" // lalr1.cc:859
+ case 354:
+#line 1298 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2186 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2204 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 351:
-#line 1286 "dhcp6_parser.yy" // lalr1.cc:859
+ case 355:
+#line 1302 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 2194 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2212 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 361:
-#line 1306 "dhcp6_parser.yy" // lalr1.cc:859
+ case 365:
+#line 1322 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2202 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2220 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 362:
-#line 1308 "dhcp6_parser.yy" // lalr1.cc:859
+ case 366:
+#line 1324 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("test", test);
ctx.leave();
}
-#line 2212 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2230 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 363:
-#line 1317 "dhcp6_parser.yy" // lalr1.cc:859
+ case 367:
+#line 1333 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-id", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.SERVER_ID);
}
-#line 2223 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2241 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 364:
-#line 1322 "dhcp6_parser.yy" // lalr1.cc:859
+ case 368:
+#line 1338 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2232 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2250 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 374:
-#line 1340 "dhcp6_parser.yy" // lalr1.cc:859
+ case 378:
+#line 1356 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("htype", htype);
}
-#line 2241 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2259 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 375:
-#line 1345 "dhcp6_parser.yy" // lalr1.cc:859
+ case 379:
+#line 1361 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2249 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2267 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 376:
-#line 1347 "dhcp6_parser.yy" // lalr1.cc:859
+ case 380:
+#line 1363 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("identifier", id);
ctx.leave();
}
-#line 2259 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2277 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 377:
-#line 1353 "dhcp6_parser.yy" // lalr1.cc:859
+ case 381:
+#line 1369 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("time", time);
}
-#line 2268 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2286 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 378:
-#line 1358 "dhcp6_parser.yy" // lalr1.cc:859
+ case 382:
+#line 1374 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enterprise-id", time);
}
-#line 2277 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2295 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 379:
-#line 1365 "dhcp6_parser.yy" // lalr1.cc:859
+ case 383:
+#line 1381 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp4o6-port", time);
}
-#line 2286 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2304 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 380:
-#line 1372 "dhcp6_parser.yy" // lalr1.cc:859
+ case 384:
+#line 1388 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("control-socket", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 2297 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2315 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 381:
-#line 1377 "dhcp6_parser.yy" // lalr1.cc:859
+ case 385:
+#line 1393 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2306 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2324 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 386:
-#line 1390 "dhcp6_parser.yy" // lalr1.cc:859
+ case 390:
+#line 1406 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2314 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2332 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 387:
-#line 1392 "dhcp6_parser.yy" // lalr1.cc:859
+ case 391:
+#line 1408 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-type", stype);
ctx.leave();
}
-#line 2324 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2342 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 388:
-#line 1398 "dhcp6_parser.yy" // lalr1.cc:859
+ case 392:
+#line 1414 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2332 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2350 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 389:
-#line 1400 "dhcp6_parser.yy" // lalr1.cc:859
+ case 393:
+#line 1416 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 2342 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2360 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 390:
-#line 1408 "dhcp6_parser.yy" // lalr1.cc:859
+ case 394:
+#line 1424 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("dhcp-ddns", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2353 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2371 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 391:
-#line 1413 "dhcp6_parser.yy" // lalr1.cc:859
+ case 395:
+#line 1429 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2362 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2380 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 392:
-#line 1420 "dhcp6_parser.yy" // lalr1.cc:859
+ case 396:
+#line 1436 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2370 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2388 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 393:
-#line 1422 "dhcp6_parser.yy" // lalr1.cc:859
+ case 397:
+#line 1438 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 2379 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2397 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 394:
-#line 1427 "dhcp6_parser.yy" // lalr1.cc:859
+ case 398:
+#line 1443 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2387 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2405 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 395:
-#line 1429 "dhcp6_parser.yy" // lalr1.cc:859
+ case 399:
+#line 1445 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
ctx.leave();
}
-#line 2396 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2414 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 396:
-#line 1439 "dhcp6_parser.yy" // lalr1.cc:859
+ case 400:
+#line 1455 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("Logging", m);
ctx.stack_.push_back(m);
ctx.enter(ctx.LOGGING);
}
-#line 2407 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2425 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 397:
-#line 1444 "dhcp6_parser.yy" // lalr1.cc:859
+ case 401:
+#line 1460 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2416 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2434 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 401:
-#line 1461 "dhcp6_parser.yy" // lalr1.cc:859
+ case 405:
+#line 1477 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("loggers", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 2427 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2445 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 402:
-#line 1466 "dhcp6_parser.yy" // lalr1.cc:859
+ case 406:
+#line 1482 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2436 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2454 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 405:
-#line 1478 "dhcp6_parser.yy" // lalr1.cc:859
+ case 409:
+#line 1494 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 2446 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2464 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 406:
-#line 1482 "dhcp6_parser.yy" // lalr1.cc:859
+ case 410:
+#line 1498 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 2454 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2472 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 414:
-#line 1497 "dhcp6_parser.yy" // lalr1.cc:859
+ case 418:
+#line 1513 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 2463 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2481 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 415:
-#line 1501 "dhcp6_parser.yy" // lalr1.cc:859
+ case 419:
+#line 1517 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2471 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2489 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 416:
-#line 1503 "dhcp6_parser.yy" // lalr1.cc:859
+ case 420:
+#line 1519 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 2481 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2499 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 417:
-#line 1509 "dhcp6_parser.yy" // lalr1.cc:859
+ case 421:
+#line 1525 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output_options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 2492 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2510 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 418:
-#line 1514 "dhcp6_parser.yy" // lalr1.cc:859
+ case 422:
+#line 1530 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2501 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2519 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 421:
-#line 1523 "dhcp6_parser.yy" // lalr1.cc:859
+ case 425:
+#line 1539 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2511 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2529 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 422:
-#line 1527 "dhcp6_parser.yy" // lalr1.cc:859
+ case 426:
+#line 1543 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.stack_.pop_back();
}
-#line 2519 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2537 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 425:
-#line 1535 "dhcp6_parser.yy" // lalr1.cc:859
+ case 429:
+#line 1551 "dhcp6_parser.yy" // lalr1.cc:859
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2527 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2545 "dhcp6_parser.cc" // lalr1.cc:859
break;
- case 426:
-#line 1537 "dhcp6_parser.yy" // lalr1.cc:859
+ case 430:
+#line 1553 "dhcp6_parser.yy" // lalr1.cc:859
{
ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 2537 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2555 "dhcp6_parser.cc" // lalr1.cc:859
break;
-#line 2541 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2559 "dhcp6_parser.cc" // lalr1.cc:859
default:
break;
}
}
- const short int Dhcp6Parser::yypact_ninf_ = -428;
+ const short int Dhcp6Parser::yypact_ninf_ = -427;
const signed char Dhcp6Parser::yytable_ninf_ = -1;
const short int
Dhcp6Parser::yypact_[] =
{
- 110, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, 28, 22, 34, 47, 51, 60, 63, 67,
- 87, 106, 119, 128, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, 22, -1, 16, 64,
- 150, 15, 56, 39, 91, 112, 2, 32, -428, 135,
- 161, 170, 174, 181, -428, -428, -428, -428, 228, -428,
- 68, -428, -428, -428, -428, -428, -428, -428, -428, 240,
- 243, 254, 255, 257, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, 260, -428, -428, -428, 129, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, 185, -428, -428, -428, -428, -428, -428, 261,
- 262, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- 157, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, 158, -428, -428,
- -428, 264, -428, 265, 266, -428, -428, 167, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, 222, 268, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, 269, -428, -428, -428, 271, -428, -428,
- -428, 270, 274, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, 275, -428, -428, -428, -428, 272,
- 278, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- 168, -428, -428, -428, -428, 22, 22, -428, 183, 279,
- 280, 281, 282, -428, 16, -428, 283, 284, 285, 172,
- 190, 191, 192, 193, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 204, 301, 302, 64, -428, 303,
- -428, 13, 304, 305, 306, 307, 308, 213, 212, 311,
- 312, 313, 314, 15, -428, 315, 56, -428, 316, 221,
- 318, 223, 224, 39, -428, 321, 322, 323, 324, 325,
- 326, -428, 91, 327, 328, 235, 329, 330, 332, 238,
- -428, 112, 333, 239, -428, 2, 338, 339, 38, -428,
- -428, -428, 340, 341, 342, 22, 22, -428, 343, 344,
- 347, -428, -428, -428, -428, -428, 350, 351, 352, 353,
- 356, 357, 358, 359, 360, 361, -428, 362, 365, -428,
- 356, -428, -428, -428, -428, 337, 363, -428, -428, -428,
- 368, 369, 247, 248, 276, -428, -428, 277, 287, 373,
- 372, -428, 288, -428, 289, -428, 300, -428, -428, -428,
- 356, 356, 356, 309, 310, 317, -428, 319, 320, -428,
- 331, 334, 335, -428, -428, 336, -428, -428, 345, 22,
- -428, 22, 64, 346, -428, -428, 150, 30, 30, 374,
- 375, 376, -2, -428, -428, 180, 50, 377, 348, 37,
- 173, -1, -428, 385, -428, 13, 383, 384, -428, -428,
- -428, -428, -428, 386, 355, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, 169, -428, 175, -428, -428, 387, -428,
- -428, -428, 388, 390, 392, -428, 177, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, 178, -428, 391, 395,
- -428, -428, 394, 398, -428, -428, 396, 400, -428, -428,
- -428, 122, -428, -428, -428, 22, -428, -428, 188, -428,
- -428, -428, 189, -428, 399, 401, -428, 402, 206, -428,
- -428, 403, 406, 407, -428, -428, -428, 207, -428, -428,
- -428, -428, -428, -428, -428, 209, -428, -428, -428, 210,
- 349, -428, -428, 409, 410, -428, -428, 411, 418, -428,
- -428, 416, 420, -428, -428, 417, -428, 422, 346, -428,
- -428, 424, 425, 427, 263, 354, 364, 30, -428, -428,
- 15, -428, 374, 112, -428, 375, 2, -428, 376, -2,
- -428, 426, 180, -428, 50, -428, 32, -428, 377, 367,
- 348, -428, 432, 370, 371, 378, 37, -428, 433, 434,
- 173, -428, -428, -428, 56, -428, 383, 39, -428, 384,
- 91, -428, 386, 435, -428, 419, -428, 366, 380, 381,
- -428, -428, -428, -428, 216, -428, 437, -428, 438, -428,
- -428, -428, -428, -428, 217, -428, -428, -428, 382, -428,
- -428, -428, -428, 389, 393, -428, 218, -428, 219, -428,
- 441, -428, 397, 436, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, 233,
- -428, 74, 436, -428, -428, 446, -428, -428, -428, 225,
- -428, -428, -428, -428, -428, 447, 404, 448, 74, -428,
- 450, -428, 408, -428, 449, -428, -428, 234, -428, 379,
- 449, -428, -428, 226, -428, -428, 453, 379, -428, 414,
- -428, -428
+ 184, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, 49, 19, 46, 52, 60, 77, 87, 93,
+ 95, 99, 108, 110, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, 19, 24, 17, 85,
+ 123, 23, 25, 145, 107, 53, 6, -33, -427, 119,
+ 141, 142, 149, 160, -427, -427, -427, -427, 161, -427,
+ 47, -427, -427, -427, -427, -427, -427, -427, -427, 187,
+ 188, 189, 203, 228, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, 232, -427, -427, -427, 48, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, 193, -427, -427, -427, -427, -427, -427, 233,
+ 235, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ 54, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, 57, -427, -427,
+ -427, 236, -427, 237, 238, -427, -427, 150, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, 239, 240, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, 244, -427, -427, -427, 247, -427, -427,
+ -427, 251, 252, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, 256, -427, -427, -427, -427, 253,
+ 259, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ 173, -427, -427, -427, -427, 19, 19, -427, 165, 262,
+ 264, 279, 280, -427, 17, -427, 281, 282, 283, 190,
+ 192, 194, 195, 196, 284, 285, 287, 289, 293, 294,
+ 295, 296, 297, 298, 204, 299, 301, 85, -427, 302,
+ -427, 2, 303, 304, 305, 306, 307, 213, 215, 308,
+ 310, 311, 312, 23, -427, 314, 25, -427, 315, 220,
+ 317, 222, 223, 145, -427, 320, 321, 322, 323, 324,
+ 325, -427, 107, 326, 327, 234, 328, 329, 331, 241,
+ -427, 53, 332, 242, -427, 6, 333, 334, 9, -427,
+ -427, -427, 335, 338, 339, 19, 19, -427, 342, 343,
+ 344, -427, -427, -427, -427, -427, 336, 337, 347, 348,
+ 349, 350, 351, 352, 356, 357, -427, 358, 359, -427,
+ 353, -427, -427, -427, -427, 360, 364, -427, -427, -427,
+ 366, 367, 270, 274, 275, -427, -427, 276, 277, 373,
+ 374, -427, 286, -427, 288, -427, 290, -427, -427, -427,
+ 353, 353, 353, 291, 292, 300, -427, 309, 313, -427,
+ 316, 318, 319, -427, -427, 330, -427, -427, 340, 19,
+ -427, 19, 85, 341, -427, -427, 123, 111, 111, 375,
+ 376, 377, -17, 19, 31, 22, 379, 345, 76, 56,
+ 24, -427, -427, 388, -427, 2, 386, 387, -427, -427,
+ -427, -427, -427, 389, 346, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, 174, -427, 175, -427, -427, 372, -427,
+ -427, -427, 391, 393, 394, -427, 177, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, 191, -427, 395, 397,
+ -427, -427, 396, 400, -427, -427, 398, 402, -427, -427,
+ -427, 72, -427, -427, -427, 401, -427, -427, 139, -427,
+ -427, -427, 153, -427, 403, 407, -427, 409, 197, -427,
+ -427, 410, 412, 415, -427, -427, -427, 200, -427, -427,
+ -427, -427, -427, -427, -427, 201, -427, -427, -427, 208,
+ 354, 355, -427, -427, 414, 421, -427, -427, 419, 423,
+ -427, -427, 422, 424, -427, -427, 425, -427, 426, 341,
+ -427, -427, 427, 428, 430, 361, 362, 363, 111, -427,
+ -427, 23, -427, 375, 53, -427, 376, 6, -427, 377,
+ -17, -427, -427, 31, -427, 22, -427, -33, -427, 379,
+ 368, 345, -427, 431, 369, 370, 371, 76, -427, 432,
+ 433, 56, -427, -427, -427, 434, 435, -427, 25, -427,
+ 386, 145, -427, 387, 107, -427, 389, 437, -427, 438,
+ -427, 365, 378, 380, -427, -427, -427, -427, 210, -427,
+ 439, -427, 440, -427, -427, -427, -427, 211, -427, -427,
+ -427, 381, -427, -427, -427, -427, 382, 383, -427, -427,
+ 384, 212, -427, 214, -427, 441, -427, 385, 399, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, 224, -427, 113, 399, -427,
+ -427, 442, -427, -427, -427, 218, -427, -427, -427, -427,
+ -427, 446, 390, 447, 113, -427, 450, -427, 392, -427,
+ 445, -427, -427, 225, -427, 257, 445, -427, -427, 221,
+ -427, -427, 452, 257, -427, 404, -427, -427
};
const unsigned short int
0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
20, 22, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 38, 32, 28, 27, 24,
- 25, 26, 31, 3, 29, 30, 47, 5, 58, 7,
- 91, 9, 172, 11, 273, 13, 290, 15, 316, 17,
- 213, 19, 247, 21, 148, 23, 42, 34, 0, 0,
- 0, 0, 0, 0, 318, 215, 249, 0, 44, 0,
- 43, 0, 0, 35, 56, 396, 392, 394, 0, 55,
- 0, 49, 51, 53, 54, 52, 89, 95, 97, 0,
- 0, 0, 0, 0, 164, 205, 239, 123, 138, 131,
- 346, 140, 159, 363, 0, 380, 390, 83, 0, 60,
- 62, 63, 64, 65, 66, 68, 69, 70, 71, 73,
- 72, 77, 78, 67, 75, 76, 74, 79, 80, 81,
- 82, 93, 0, 350, 265, 282, 193, 195, 197, 0,
- 0, 201, 199, 308, 342, 192, 176, 177, 178, 179,
- 0, 174, 183, 184, 185, 188, 190, 186, 187, 180,
- 181, 182, 189, 191, 280, 279, 278, 0, 275, 277,
- 301, 0, 304, 0, 0, 300, 297, 0, 292, 294,
- 295, 298, 299, 296, 340, 330, 332, 334, 336, 338,
- 329, 328, 0, 319, 320, 324, 325, 322, 326, 327,
- 323, 110, 118, 0, 233, 231, 236, 0, 226, 230,
- 227, 0, 216, 217, 219, 229, 220, 221, 222, 235,
- 223, 224, 225, 260, 0, 258, 259, 262, 263, 0,
- 250, 251, 253, 254, 255, 256, 257, 155, 157, 152,
- 0, 150, 153, 154, 39, 0, 0, 33, 0, 0,
- 0, 0, 0, 46, 0, 48, 0, 0, 0, 0,
+ 25, 26, 31, 3, 29, 30, 51, 5, 62, 7,
+ 95, 9, 176, 11, 277, 13, 294, 15, 320, 17,
+ 217, 19, 251, 21, 152, 23, 40, 34, 0, 0,
+ 0, 0, 0, 0, 322, 219, 253, 0, 42, 0,
+ 41, 0, 0, 35, 60, 400, 396, 398, 0, 59,
+ 0, 53, 55, 57, 58, 56, 93, 99, 101, 0,
+ 0, 0, 0, 0, 168, 209, 243, 127, 142, 135,
+ 350, 144, 163, 367, 0, 384, 394, 87, 0, 64,
+ 66, 67, 68, 69, 70, 72, 73, 74, 75, 77,
+ 76, 81, 82, 71, 79, 80, 78, 83, 84, 85,
+ 86, 97, 0, 354, 269, 286, 197, 199, 201, 0,
+ 0, 205, 203, 312, 346, 196, 180, 181, 182, 183,
+ 0, 178, 187, 188, 189, 192, 194, 190, 191, 184,
+ 185, 186, 193, 195, 284, 283, 282, 0, 279, 281,
+ 305, 0, 308, 0, 0, 304, 301, 0, 296, 298,
+ 299, 302, 303, 300, 344, 334, 336, 338, 340, 342,
+ 333, 332, 0, 323, 324, 328, 329, 326, 330, 331,
+ 327, 114, 122, 0, 237, 235, 240, 0, 230, 234,
+ 231, 0, 220, 221, 223, 233, 224, 225, 226, 239,
+ 227, 228, 229, 264, 0, 262, 263, 266, 267, 0,
+ 254, 255, 257, 258, 259, 260, 261, 159, 161, 156,
+ 0, 154, 157, 158, 39, 0, 0, 33, 0, 0,
+ 0, 0, 0, 50, 0, 52, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 59, 0,
- 92, 352, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 173, 0, 0, 274, 0, 0,
- 0, 0, 0, 0, 291, 0, 0, 0, 0, 0,
- 0, 317, 0, 0, 0, 0, 0, 0, 0, 0,
- 214, 0, 0, 0, 248, 0, 0, 0, 0, 149,
- 45, 36, 0, 0, 0, 0, 0, 50, 0, 0,
- 0, 84, 85, 86, 87, 88, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 379, 0, 0, 61,
- 0, 361, 359, 360, 358, 0, 353, 354, 356, 357,
- 0, 0, 0, 0, 0, 203, 204, 0, 0, 0,
- 0, 175, 0, 276, 0, 303, 0, 306, 307, 293,
- 0, 0, 0, 0, 0, 0, 321, 0, 0, 228,
- 0, 0, 0, 238, 218, 0, 264, 252, 0, 0,
- 151, 0, 0, 0, 393, 395, 0, 0, 0, 166,
- 207, 241, 0, 40, 139, 0, 0, 142, 0, 0,
- 0, 0, 94, 0, 351, 0, 267, 284, 194, 196,
- 198, 202, 200, 310, 0, 281, 302, 305, 341, 331,
- 333, 335, 337, 339, 111, 119, 234, 232, 237, 261,
- 156, 158, 37, 0, 401, 0, 398, 400, 0, 112,
- 114, 116, 0, 0, 0, 109, 0, 99, 101, 102,
- 103, 104, 105, 106, 107, 108, 0, 170, 0, 167,
- 168, 211, 0, 208, 209, 245, 0, 242, 243, 129,
- 130, 0, 125, 127, 128, 42, 137, 135, 0, 133,
- 136, 348, 0, 146, 0, 143, 144, 0, 0, 161,
- 375, 0, 0, 0, 373, 367, 372, 0, 365, 370,
- 368, 369, 371, 386, 388, 0, 382, 384, 385, 0,
- 0, 355, 271, 0, 268, 269, 288, 0, 285, 286,
- 314, 0, 311, 312, 344, 0, 57, 0, 0, 397,
- 90, 0, 0, 0, 0, 0, 0, 0, 96, 98,
- 0, 165, 0, 215, 206, 0, 249, 240, 0, 0,
- 124, 0, 0, 132, 0, 347, 0, 141, 0, 0,
- 0, 160, 0, 0, 0, 0, 0, 364, 0, 0,
- 0, 381, 391, 362, 0, 266, 0, 0, 283, 0,
- 318, 309, 0, 0, 343, 0, 399, 0, 0, 0,
- 120, 121, 122, 100, 0, 169, 0, 210, 0, 244,
- 126, 41, 134, 349, 0, 145, 163, 162, 0, 374,
- 377, 378, 366, 0, 0, 383, 0, 270, 0, 287,
- 0, 313, 0, 0, 113, 115, 117, 171, 212, 246,
- 147, 376, 387, 389, 272, 289, 315, 345, 405, 0,
- 403, 0, 0, 402, 417, 0, 415, 413, 409, 0,
- 407, 411, 412, 410, 404, 0, 0, 0, 0, 406,
- 0, 414, 0, 408, 0, 416, 421, 0, 419, 0,
- 0, 418, 425, 0, 423, 420, 0, 0, 422, 0,
- 424, 426
+ 0, 0, 0, 0, 0, 0, 0, 0, 63, 0,
+ 96, 356, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 177, 0, 0, 278, 0, 0,
+ 0, 0, 0, 0, 295, 0, 0, 0, 0, 0,
+ 0, 321, 0, 0, 0, 0, 0, 0, 0, 0,
+ 218, 0, 0, 0, 252, 0, 0, 0, 0, 153,
+ 43, 36, 0, 0, 0, 0, 0, 54, 0, 0,
+ 0, 88, 89, 90, 91, 92, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 383, 0, 0, 65,
+ 0, 365, 363, 364, 362, 0, 357, 358, 360, 361,
+ 0, 0, 0, 0, 0, 207, 208, 0, 0, 0,
+ 0, 179, 0, 280, 0, 307, 0, 310, 311, 297,
+ 0, 0, 0, 0, 0, 0, 325, 0, 0, 232,
+ 0, 0, 0, 242, 222, 0, 268, 256, 0, 0,
+ 155, 0, 0, 0, 397, 399, 0, 0, 0, 170,
+ 211, 245, 0, 40, 0, 0, 146, 0, 0, 0,
+ 0, 44, 98, 0, 355, 0, 271, 288, 198, 200,
+ 202, 206, 204, 314, 0, 285, 306, 309, 345, 335,
+ 337, 339, 341, 343, 115, 123, 238, 236, 241, 265,
+ 160, 162, 37, 0, 405, 0, 402, 404, 0, 116,
+ 118, 120, 0, 0, 0, 113, 0, 103, 105, 106,
+ 107, 108, 109, 110, 111, 112, 0, 174, 0, 171,
+ 172, 215, 0, 212, 213, 249, 0, 246, 247, 133,
+ 134, 0, 129, 131, 132, 0, 141, 139, 0, 137,
+ 140, 352, 0, 150, 0, 147, 148, 0, 0, 165,
+ 379, 0, 0, 0, 377, 371, 376, 0, 369, 374,
+ 372, 373, 375, 390, 392, 0, 386, 388, 389, 0,
+ 46, 0, 359, 275, 0, 272, 273, 292, 0, 289,
+ 290, 318, 0, 315, 316, 348, 0, 61, 0, 0,
+ 401, 94, 0, 0, 0, 0, 0, 0, 0, 100,
+ 102, 0, 169, 0, 219, 210, 0, 253, 244, 0,
+ 0, 128, 143, 0, 136, 0, 351, 0, 145, 0,
+ 0, 0, 164, 0, 0, 0, 0, 0, 368, 0,
+ 0, 0, 385, 395, 48, 0, 47, 366, 0, 270,
+ 0, 0, 287, 0, 322, 313, 0, 0, 347, 0,
+ 403, 0, 0, 0, 124, 125, 126, 104, 0, 173,
+ 0, 214, 0, 248, 130, 138, 353, 0, 149, 167,
+ 166, 0, 378, 381, 382, 370, 0, 0, 387, 45,
+ 0, 0, 274, 0, 291, 0, 317, 0, 0, 117,
+ 119, 121, 175, 216, 250, 151, 380, 391, 393, 49,
+ 276, 293, 319, 349, 409, 0, 407, 0, 0, 406,
+ 421, 0, 419, 417, 413, 0, 411, 415, 416, 414,
+ 408, 0, 0, 0, 0, 410, 0, 418, 0, 412,
+ 0, 420, 425, 0, 423, 0, 0, 422, 429, 0,
+ 427, 424, 0, 0, 426, 0, 428, 430
};
const short int
Dhcp6Parser::yypgoto_[] =
{
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, 3, -428, -428, -428, -428, 9, -428,
- -428, -203, -428, -125, -428, -58, -428, -428, -428, 187,
- -428, -428, -428, -428, 41, 165, -41, -38, -37, -36,
- -428, -428, -428, -428, -428, 42, -428, -428, -428, -428,
- -428, 43, -108, -399, -428, -428, -428, -428, -428, -428,
- -428, -65, -428, -427, -428, -428, -428, -428, -428, -119,
- -415, -428, -428, -428, -428, -118, -428, -428, -428, -428,
- -428, -428, -428, -120, -428, -428, -428, -123, 141, -428,
- -428, -428, -428, -428, -428, -428, -117, -428, -428, -428,
- -428, -100, -428, -428, -428, -96, 182, -428, -428, -428,
- -428, -428, -428, -405, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -99, -428, -428, -428, -91, -428, 156,
- -428, -51, -428, -428, -428, -428, -49, -428, -428, -428,
- -428, -428, -50, -428, -428, -428, -95, -428, -428, -428,
- -92, -428, 160, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -116, -428, -428, -428, -115, 195, -428,
- -428, -428, -428, -428, -428, -122, -428, -428, -428, -121,
- 194, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -114, -428, -428, -428, -111, -428, 196, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, 58, -428, -428, -428, -428, -428, -428, -102, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -105, -428,
- -428, -428, -428, -428, -428, -428, -428, -428, -428, -428,
- -428, -428, -57, -428, -428, -428, -172, -428, -428, -185,
- -428, -428, -428, -428, -428, -428, -195, -428, -428, -201,
- -428
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, 12, -427, -427, -427, -427, 15, -427,
+ -427, 34, -427, -349, -427, -427, -427, -58, -427, -427,
+ -427, 205, -427, -427, -427, -427, 30, 181, -60, -43,
+ -41, -40, -427, -427, -427, -427, -427, 44, -427, -427,
+ -427, -427, -427, 43, -102, -395, -427, -427, -427, -427,
+ -427, -427, -427, -56, -427, -426, -427, -427, -427, -427,
+ -427, -113, -411, -427, -427, -427, -427, -111, -427, -427,
+ -427, -427, -427, -427, -427, -116, -427, -427, -427, -112,
+ 146, -427, -427, -427, -427, -427, -427, -427, -115, -427,
+ -427, -427, -427, -95, -427, -427, -427, -86, 199, -427,
+ -427, -427, -427, -427, -427, -406, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -90, -427, -427, -427, -87,
+ -427, 167, -427, -55, -427, -427, -427, -427, -54, -427,
+ -427, -427, -427, -427, -47, -427, -427, -427, -85, -427,
+ -427, -427, -88, -427, 168, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -114, -427, -427, -427, -110,
+ 206, -427, -427, -427, -427, -427, -427, -118, -427, -427,
+ -427, -107, 198, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -119, -427, -427, -427, -109, -427,
+ 202, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, 64, -427, -427, -427, -427, -427, -427,
+ -97, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -94, -427, -427, -427, -427, -427, -427, -427, -427, -427,
+ -427, -427, -427, -427, -53, -427, -427, -427, -170, -427,
+ -427, -185, -427, -427, -427, -427, -427, -427, -191, -427,
+ -427, -196, -427
};
const short int
{
-1, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 68, 33, 34, 57, 72, 73, 35,
- 56, 424, 505, 69, 70, 107, 37, 58, 80, 81,
- 82, 249, 39, 59, 108, 109, 110, 111, 112, 113,
- 114, 115, 256, 41, 60, 132, 279, 116, 257, 117,
- 258, 476, 477, 209, 313, 479, 561, 480, 562, 481,
- 563, 210, 314, 483, 484, 485, 118, 267, 501, 502,
- 503, 504, 119, 269, 508, 509, 510, 120, 268, 121,
- 271, 514, 515, 516, 586, 55, 67, 240, 241, 242,
- 326, 243, 327, 122, 272, 518, 519, 123, 264, 488,
- 489, 490, 570, 43, 61, 150, 151, 152, 284, 153,
- 285, 154, 286, 155, 290, 156, 289, 157, 158, 124,
- 265, 492, 493, 494, 573, 51, 65, 211, 212, 213,
- 214, 215, 216, 217, 218, 317, 219, 316, 220, 221,
- 318, 222, 125, 266, 496, 497, 498, 576, 53, 66,
- 229, 230, 231, 232, 233, 322, 234, 235, 236, 160,
- 282, 543, 544, 545, 604, 45, 62, 167, 168, 169,
- 295, 161, 283, 547, 548, 549, 607, 47, 63, 177,
- 178, 179, 298, 180, 181, 300, 182, 183, 162, 291,
- 551, 552, 553, 610, 49, 64, 192, 193, 194, 195,
- 306, 196, 307, 197, 308, 198, 309, 199, 310, 200,
- 305, 163, 292, 555, 613, 126, 270, 512, 281, 365,
- 366, 367, 368, 369, 433, 127, 273, 527, 528, 529,
- 530, 592, 531, 532, 128, 129, 275, 535, 536, 537,
- 598, 538, 599, 130, 276, 83, 251, 84, 252, 85,
- 250, 465, 466, 467, 557, 669, 670, 671, 679, 680,
- 681, 682, 687, 683, 685, 697, 698, 699, 703, 704,
- 706
+ 56, 69, 70, 432, 540, 605, 606, 107, 37, 58,
+ 80, 81, 82, 249, 39, 59, 108, 109, 110, 111,
+ 112, 113, 114, 115, 256, 41, 60, 132, 279, 116,
+ 257, 117, 258, 476, 477, 209, 313, 479, 562, 480,
+ 563, 481, 564, 210, 314, 483, 484, 485, 118, 267,
+ 501, 502, 503, 504, 119, 269, 508, 509, 510, 120,
+ 268, 121, 271, 514, 515, 516, 587, 55, 67, 240,
+ 241, 242, 326, 243, 327, 122, 272, 518, 519, 123,
+ 264, 488, 489, 490, 571, 43, 61, 150, 151, 152,
+ 284, 153, 285, 154, 286, 155, 290, 156, 289, 157,
+ 158, 124, 265, 492, 493, 494, 574, 51, 65, 211,
+ 212, 213, 214, 215, 216, 217, 218, 317, 219, 316,
+ 220, 221, 318, 222, 125, 266, 496, 497, 498, 577,
+ 53, 66, 229, 230, 231, 232, 233, 322, 234, 235,
+ 236, 160, 282, 544, 545, 546, 608, 45, 62, 167,
+ 168, 169, 295, 161, 283, 548, 549, 550, 611, 47,
+ 63, 177, 178, 179, 298, 180, 181, 300, 182, 183,
+ 162, 291, 552, 553, 554, 614, 49, 64, 192, 193,
+ 194, 195, 306, 196, 307, 197, 308, 198, 309, 199,
+ 310, 200, 305, 163, 292, 556, 617, 126, 270, 512,
+ 281, 365, 366, 367, 368, 369, 433, 127, 273, 527,
+ 528, 529, 530, 593, 531, 532, 128, 129, 275, 535,
+ 536, 537, 599, 538, 600, 130, 276, 83, 251, 84,
+ 252, 85, 250, 465, 466, 467, 558, 675, 676, 677,
+ 685, 686, 687, 688, 693, 689, 691, 703, 704, 705,
+ 709, 710, 712
};
const unsigned short int
Dhcp6Parser::yytable_[] =
{
- 79, 226, 526, 145, 165, 175, 190, 208, 225, 239,
- 507, 159, 166, 176, 191, 227, 32, 228, 478, 478,
- 146, 511, 133, 147, 148, 149, 74, 25, 24, 26,
- 525, 27, 202, 223, 203, 204, 224, 89, 90, 91,
- 92, 36, 96, 202, 96, 201, 469, 470, 471, 472,
- 473, 474, 201, 134, 38, 135, 472, 133, 40, 499,
- 202, 136, 137, 138, 139, 140, 141, 42, 96, 361,
- 44, 254, 142, 143, 46, 86, 255, 87, 88, 144,
- 170, 171, 172, 173, 174, 96, 89, 90, 91, 92,
- 93, 94, 95, 96, 48, 164, 75, 500, 71, 237,
- 238, 78, 76, 77, 202, 237, 238, 142, 520, 521,
- 522, 523, 78, 50, 78, 78, 97, 98, 99, 100,
- 96, 28, 29, 30, 31, 579, 52, 201, 580, 78,
- 101, 78, 277, 102, 103, 54, 78, 278, 78, 104,
- 105, 244, 202, 106, 203, 204, 184, 205, 206, 207,
- 185, 186, 187, 188, 189, 78, 674, 432, 675, 676,
- 293, 296, 131, 78, 245, 294, 297, 507, 478, 526,
- 303, 328, 277, 78, 246, 304, 329, 556, 558, 633,
- 567, 567, 247, 559, 248, 568, 569, 448, 449, 450,
- 78, 582, 584, 280, 583, 585, 79, 525, 1, 2,
- 3, 4, 5, 6, 7, 8, 9, 10, 11, 590,
- 596, 78, 600, 248, 591, 597, 363, 601, 602, 293,
- 328, 296, 303, 362, 657, 660, 664, 665, 688, 707,
- 311, 364, 253, 689, 708, 145, 672, 700, 165, 673,
- 701, 499, 506, 159, 259, 175, 166, 260, 330, 331,
- 533, 534, 146, 176, 190, 147, 148, 149, 261, 262,
- 226, 263, 191, 208, 274, 287, 288, 225, 299, 301,
- 302, 312, 341, 315, 227, 319, 228, 321, 320, 323,
- 324, 325, 332, 333, 334, 335, 336, 338, 339, 340,
- 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 360, 370, 371,
- 372, 373, 374, 375, 376, 377, 378, 379, 380, 382,
- 384, 385, 386, 387, 388, 390, 391, 392, 393, 394,
- 395, 397, 398, 400, 401, 399, 402, 405, 414, 415,
- 403, 406, 408, 409, 411, 434, 438, 439, 412, 413,
- 416, 417, 482, 482, 418, 419, 420, 421, 422, 475,
- 475, 423, 425, 426, 427, 620, 435, 428, 429, 430,
- 363, 524, 431, 436, 437, 440, 441, 362, 443, 444,
- 581, 487, 491, 495, 513, 364, 442, 445, 446, 540,
- 542, 546, 564, 550, 565, 560, 566, 571, 572, 447,
- 574, 575, 577, 578, 588, 587, 589, 593, 451, 452,
- 594, 595, 461, 606, 462, 605, 453, 608, 454, 455,
- 554, 609, 611, 612, 653, 614, 615, 464, 617, 618,
- 456, 619, 631, 457, 458, 459, 638, 643, 644, 652,
- 539, 337, 359, 668, 460, 658, 659, 517, 603, 666,
- 686, 690, 692, 463, 621, 694, 696, 709, 468, 623,
- 630, 486, 702, 634, 632, 654, 622, 636, 635, 410,
- 639, 640, 625, 637, 624, 381, 627, 404, 641, 655,
- 656, 661, 626, 629, 628, 407, 648, 649, 662, 646,
- 647, 383, 663, 541, 642, 645, 667, 389, 651, 650,
- 684, 616, 482, 693, 691, 705, 710, 695, 396, 475,
- 0, 226, 145, 711, 0, 208, 0, 0, 225, 0,
- 159, 0, 0, 0, 0, 227, 0, 228, 239, 146,
- 0, 0, 147, 148, 149, 0, 0, 0, 524, 0,
- 0, 0, 0, 0, 0, 0, 165, 0, 0, 175,
- 0, 0, 190, 0, 166, 0, 0, 176, 0, 0,
- 191, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 79, 146, 526, 145, 165, 175, 190, 208, 225, 239,
+ 226, 227, 228, 507, 159, 166, 176, 191, 147, 511,
+ 148, 149, 478, 478, 25, 32, 26, 74, 27, 133,
+ 133, 96, 202, 525, 237, 238, 202, 223, 203, 204,
+ 224, 448, 449, 450, 499, 89, 90, 91, 92, 24,
+ 254, 277, 96, 36, 96, 255, 278, 293, 361, 38,
+ 296, 134, 294, 135, 164, 297, 78, 40, 201, 136,
+ 137, 138, 139, 140, 141, 580, 237, 238, 581, 142,
+ 142, 143, 500, 202, 42, 203, 204, 144, 205, 206,
+ 207, 201, 499, 506, 44, 472, 86, 75, 87, 88,
+ 46, 78, 48, 76, 77, 78, 50, 89, 90, 91,
+ 92, 93, 94, 95, 96, 52, 78, 54, 28, 29,
+ 30, 31, 78, 71, 78, 244, 201, 469, 470, 471,
+ 472, 473, 474, 533, 534, 131, 96, 97, 98, 99,
+ 100, 202, 583, 202, 245, 584, 246, 520, 521, 522,
+ 523, 101, 78, 303, 102, 103, 585, 247, 304, 586,
+ 104, 105, 184, 248, 106, 253, 185, 186, 187, 188,
+ 189, 526, 507, 478, 96, 78, 328, 277, 559, 636,
+ 568, 329, 557, 560, 78, 569, 170, 171, 172, 173,
+ 174, 259, 260, 261, 568, 680, 79, 681, 682, 570,
+ 591, 280, 525, 597, 601, 592, 78, 262, 598, 602,
+ 78, 248, 78, 293, 328, 296, 603, 303, 662, 665,
+ 670, 694, 671, 362, 713, 363, 695, 678, 706, 714,
+ 679, 707, 263, 146, 364, 145, 274, 287, 165, 288,
+ 299, 301, 302, 312, 78, 175, 159, 311, 315, 166,
+ 147, 319, 148, 149, 190, 321, 176, 330, 331, 320,
+ 323, 324, 325, 208, 332, 191, 333, 225, 334, 226,
+ 227, 228, 1, 2, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 335, 336, 338, 339, 340, 346, 347,
+ 341, 348, 342, 349, 343, 344, 345, 350, 351, 352,
+ 353, 354, 355, 357, 356, 358, 360, 370, 371, 372,
+ 373, 374, 377, 375, 378, 379, 380, 376, 382, 384,
+ 385, 386, 387, 388, 390, 391, 392, 393, 394, 395,
+ 397, 398, 400, 401, 399, 402, 405, 408, 409, 411,
+ 708, 419, 420, 403, 406, 412, 413, 414, 415, 416,
+ 417, 418, 421, 422, 423, 424, 425, 426, 431, 475,
+ 475, 482, 482, 427, 428, 429, 430, 435, 434, 438,
+ 524, 436, 437, 439, 440, 441, 442, 362, 443, 363,
+ 561, 444, 487, 491, 495, 445, 513, 446, 364, 447,
+ 451, 452, 541, 543, 547, 565, 551, 566, 567, 453,
+ 573, 572, 575, 576, 578, 579, 674, 582, 454, 588,
+ 589, 555, 455, 590, 594, 456, 595, 457, 458, 596,
+ 609, 461, 464, 462, 610, 612, 613, 616, 615, 459,
+ 619, 621, 622, 618, 623, 641, 646, 647, 650, 460,
+ 649, 657, 463, 658, 517, 539, 692, 663, 664, 672,
+ 696, 698, 702, 604, 607, 700, 715, 505, 359, 337,
+ 468, 486, 625, 624, 659, 626, 627, 634, 639, 642,
+ 643, 644, 635, 638, 410, 637, 640, 660, 629, 661,
+ 666, 667, 668, 669, 673, 628, 631, 630, 404, 632,
+ 697, 701, 381, 407, 633, 654, 652, 656, 651, 542,
+ 645, 389, 383, 717, 653, 655, 620, 648, 690, 699,
+ 475, 146, 482, 145, 396, 711, 208, 716, 0, 225,
+ 0, 226, 227, 228, 159, 0, 0, 0, 147, 239,
+ 148, 149, 0, 0, 0, 0, 0, 0, 0, 524,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 165, 0, 0, 175, 0, 0, 190, 0, 0, 0,
+ 0, 166, 0, 0, 176, 0, 0, 191, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 678, 0, 0, 0,
- 0, 0, 0, 677, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 678, 0, 0, 0, 0, 0, 0,
- 677
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 683,
+ 0, 684, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 683, 0, 684
};
const short int
Dhcp6Parser::yycheck_[] =
{
- 58, 66, 429, 61, 62, 63, 64, 65, 66, 67,
- 425, 61, 62, 63, 64, 66, 13, 66, 417, 418,
- 61, 426, 7, 61, 61, 61, 10, 5, 0, 7,
- 429, 9, 30, 31, 32, 33, 34, 22, 23, 24,
- 25, 7, 29, 30, 29, 15, 16, 17, 18, 19,
- 20, 21, 15, 38, 7, 40, 19, 7, 7, 61,
- 30, 46, 47, 48, 49, 50, 51, 7, 29, 56,
- 7, 3, 57, 58, 7, 11, 8, 13, 14, 64,
- 41, 42, 43, 44, 45, 29, 22, 23, 24, 25,
- 26, 27, 28, 29, 7, 39, 80, 99, 99, 67,
- 68, 99, 86, 87, 30, 67, 68, 57, 71, 72,
- 73, 74, 99, 7, 99, 99, 52, 53, 54, 55,
- 29, 99, 100, 101, 102, 3, 7, 15, 6, 99,
- 66, 99, 3, 69, 70, 7, 99, 8, 99, 75,
- 76, 6, 30, 79, 32, 33, 55, 35, 36, 37,
- 59, 60, 61, 62, 63, 99, 82, 360, 84, 85,
- 3, 3, 12, 99, 3, 8, 8, 582, 567, 596,
- 3, 3, 3, 99, 4, 8, 8, 8, 3, 584,
- 3, 3, 8, 8, 3, 8, 8, 390, 391, 392,
- 99, 3, 3, 8, 6, 6, 254, 596, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 3,
- 3, 99, 3, 3, 8, 8, 281, 8, 8, 3,
- 3, 3, 3, 281, 8, 8, 8, 8, 3, 3,
- 8, 281, 4, 8, 8, 293, 3, 3, 296, 6,
- 6, 61, 62, 293, 4, 303, 296, 4, 245, 246,
- 77, 78, 293, 303, 312, 293, 293, 293, 4, 4,
- 325, 4, 312, 321, 4, 4, 4, 325, 4, 4,
- 4, 3, 100, 4, 325, 4, 325, 3, 8, 4,
- 8, 3, 99, 4, 4, 4, 4, 4, 4, 4,
- 100, 100, 100, 100, 4, 4, 4, 4, 4, 4,
+ 58, 61, 428, 61, 62, 63, 64, 65, 66, 67,
+ 66, 66, 66, 424, 61, 62, 63, 64, 61, 425,
+ 61, 61, 417, 418, 5, 13, 7, 10, 9, 7,
+ 7, 29, 30, 428, 67, 68, 30, 31, 32, 33,
+ 34, 390, 391, 392, 61, 22, 23, 24, 25, 0,
+ 3, 3, 29, 7, 29, 8, 8, 3, 56, 7,
+ 3, 38, 8, 40, 39, 8, 99, 7, 15, 46,
+ 47, 48, 49, 50, 51, 3, 67, 68, 6, 57,
+ 57, 58, 99, 30, 7, 32, 33, 64, 35, 36,
+ 37, 15, 61, 62, 7, 19, 11, 80, 13, 14,
+ 7, 99, 7, 86, 87, 99, 7, 22, 23, 24,
+ 25, 26, 27, 28, 29, 7, 99, 7, 99, 100,
+ 101, 102, 99, 99, 99, 6, 15, 16, 17, 18,
+ 19, 20, 21, 77, 78, 12, 29, 52, 53, 54,
+ 55, 30, 3, 30, 3, 6, 4, 71, 72, 73,
+ 74, 66, 99, 3, 69, 70, 3, 8, 8, 6,
+ 75, 76, 55, 3, 79, 4, 59, 60, 61, 62,
+ 63, 597, 583, 568, 29, 99, 3, 3, 3, 585,
+ 3, 8, 8, 8, 99, 8, 41, 42, 43, 44,
+ 45, 4, 4, 4, 3, 82, 254, 84, 85, 8,
+ 3, 8, 597, 3, 3, 8, 99, 4, 8, 8,
+ 99, 3, 99, 3, 3, 3, 8, 3, 8, 8,
+ 8, 3, 8, 281, 3, 281, 8, 3, 3, 8,
+ 6, 6, 4, 293, 281, 293, 4, 4, 296, 4,
+ 4, 4, 4, 3, 99, 303, 293, 8, 4, 296,
+ 293, 4, 293, 293, 312, 3, 303, 245, 246, 8,
+ 4, 8, 3, 321, 99, 312, 4, 325, 4, 325,
+ 325, 325, 88, 89, 90, 91, 92, 93, 94, 95,
+ 96, 97, 98, 4, 4, 4, 4, 4, 4, 4,
+ 100, 4, 100, 4, 100, 100, 100, 4, 4, 4,
4, 4, 4, 4, 100, 4, 4, 4, 4, 4,
- 4, 4, 4, 100, 102, 4, 4, 4, 4, 4,
- 4, 100, 4, 100, 100, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 100, 4, 4, 335, 336,
- 102, 102, 4, 4, 4, 8, 99, 99, 7, 7,
- 7, 7, 417, 418, 7, 5, 5, 5, 5, 417,
- 418, 5, 5, 5, 5, 102, 3, 7, 7, 7,
- 435, 429, 7, 5, 5, 99, 99, 435, 5, 7,
- 505, 7, 7, 7, 7, 435, 99, 99, 99, 4,
- 7, 7, 4, 7, 4, 8, 4, 6, 3, 99,
- 6, 3, 6, 3, 3, 6, 4, 4, 99, 99,
- 4, 4, 409, 3, 411, 6, 99, 6, 99, 99,
- 65, 3, 6, 3, 5, 8, 4, 81, 4, 4,
- 99, 4, 6, 99, 99, 99, 4, 4, 4, 4,
- 431, 254, 277, 7, 99, 8, 8, 99, 99, 8,
- 4, 4, 4, 412, 100, 5, 7, 4, 416, 567,
- 579, 418, 83, 586, 582, 99, 102, 100, 588, 328,
- 100, 100, 572, 590, 570, 293, 575, 321, 100, 99,
- 99, 99, 573, 578, 576, 325, 607, 609, 99, 604,
- 606, 296, 99, 435, 596, 600, 99, 303, 612, 610,
- 672, 558, 567, 688, 100, 700, 707, 99, 312, 567,
- -1, 576, 570, 99, -1, 573, -1, -1, 576, -1,
- 570, -1, -1, -1, -1, 576, -1, 576, 586, 570,
- -1, -1, 570, 570, 570, -1, -1, -1, 596, -1,
- -1, -1, -1, -1, -1, -1, 604, -1, -1, 607,
- -1, -1, 610, -1, 604, -1, -1, 607, -1, -1,
- 610, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 4, 4, 4, 100, 4, 4, 4, 102, 4, 4,
+ 100, 4, 100, 100, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 100, 4, 4, 4, 4, 4,
+ 83, 5, 5, 102, 102, 7, 7, 335, 336, 7,
+ 7, 7, 5, 5, 5, 5, 5, 5, 5, 417,
+ 418, 417, 418, 7, 7, 7, 7, 3, 8, 99,
+ 428, 5, 5, 99, 99, 99, 99, 435, 5, 435,
+ 8, 7, 7, 7, 7, 99, 7, 99, 435, 99,
+ 99, 99, 4, 7, 7, 4, 7, 4, 4, 99,
+ 3, 6, 6, 3, 6, 3, 7, 6, 99, 6,
+ 3, 65, 99, 4, 4, 99, 4, 99, 99, 4,
+ 6, 409, 81, 411, 3, 6, 3, 3, 6, 99,
+ 4, 4, 4, 8, 4, 4, 4, 4, 3, 99,
+ 6, 4, 412, 5, 99, 430, 4, 8, 8, 8,
+ 4, 4, 7, 99, 99, 5, 4, 423, 277, 254,
+ 416, 418, 100, 102, 99, 102, 568, 580, 100, 100,
+ 100, 100, 583, 589, 328, 587, 591, 99, 573, 99,
+ 99, 99, 99, 99, 99, 571, 576, 574, 321, 577,
+ 100, 99, 293, 325, 579, 613, 610, 616, 608, 435,
+ 597, 303, 296, 99, 611, 614, 559, 601, 678, 694,
+ 568, 571, 568, 571, 312, 706, 574, 713, -1, 577,
+ -1, 577, 577, 577, 571, -1, -1, -1, 571, 587,
+ 571, 571, -1, -1, -1, -1, -1, -1, -1, 597,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 608, -1, -1, 611, -1, -1, 614, -1, -1, -1,
+ -1, 608, -1, -1, 611, -1, -1, 614, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 671, -1, -1, -1,
- -1, -1, -1, 671, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 688, -1, -1, -1, -1, -1, -1,
- 688
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 677,
+ -1, 677, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 694, -1, 694
};
const unsigned short int
0, 88, 89, 90, 91, 92, 93, 94, 95, 96,
97, 98, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 0, 5, 7, 9, 99, 100,
- 101, 102, 116, 117, 118, 122, 7, 129, 7, 135,
- 7, 146, 7, 206, 7, 268, 7, 280, 7, 297,
- 7, 228, 7, 251, 7, 188, 123, 119, 130, 136,
- 147, 207, 269, 281, 298, 229, 252, 189, 116, 126,
- 127, 99, 120, 121, 10, 80, 86, 87, 99, 128,
- 131, 132, 133, 348, 350, 352, 11, 13, 14, 22,
+ 101, 102, 116, 117, 118, 122, 7, 131, 7, 137,
+ 7, 148, 7, 208, 7, 270, 7, 282, 7, 299,
+ 7, 230, 7, 253, 7, 190, 123, 119, 132, 138,
+ 149, 209, 271, 283, 300, 231, 254, 191, 116, 124,
+ 125, 99, 120, 121, 10, 80, 86, 87, 99, 130,
+ 133, 134, 135, 350, 352, 354, 11, 13, 14, 22,
23, 24, 25, 26, 27, 28, 29, 52, 53, 54,
- 55, 66, 69, 70, 75, 76, 79, 128, 137, 138,
- 139, 140, 141, 142, 143, 144, 150, 152, 169, 175,
- 180, 182, 196, 200, 222, 245, 318, 328, 337, 338,
- 346, 12, 148, 7, 38, 40, 46, 47, 48, 49,
- 50, 51, 57, 58, 64, 128, 139, 140, 141, 142,
- 208, 209, 210, 212, 214, 216, 218, 220, 221, 245,
- 262, 274, 291, 314, 39, 128, 245, 270, 271, 272,
- 41, 42, 43, 44, 45, 128, 245, 282, 283, 284,
- 286, 287, 289, 290, 55, 59, 60, 61, 62, 63,
- 128, 245, 299, 300, 301, 302, 304, 306, 308, 310,
- 312, 15, 30, 32, 33, 35, 36, 37, 128, 156,
- 164, 230, 231, 232, 233, 234, 235, 236, 237, 239,
- 241, 242, 244, 31, 34, 128, 164, 234, 239, 253,
- 254, 255, 256, 257, 259, 260, 261, 67, 68, 128,
- 190, 191, 192, 194, 6, 3, 4, 8, 3, 134,
- 353, 349, 351, 4, 3, 8, 145, 151, 153, 4,
- 4, 4, 4, 4, 201, 223, 246, 170, 181, 176,
- 319, 183, 197, 329, 4, 339, 347, 3, 8, 149,
- 8, 321, 263, 275, 211, 213, 215, 4, 4, 219,
- 217, 292, 315, 3, 8, 273, 3, 8, 285, 4,
- 288, 4, 4, 3, 8, 313, 303, 305, 307, 309,
- 311, 8, 3, 157, 165, 4, 240, 238, 243, 4,
- 8, 3, 258, 4, 8, 3, 193, 195, 3, 8,
- 116, 116, 99, 4, 4, 4, 4, 132, 4, 4,
+ 55, 66, 69, 70, 75, 76, 79, 130, 139, 140,
+ 141, 142, 143, 144, 145, 146, 152, 154, 171, 177,
+ 182, 184, 198, 202, 224, 247, 320, 330, 339, 340,
+ 348, 12, 150, 7, 38, 40, 46, 47, 48, 49,
+ 50, 51, 57, 58, 64, 130, 141, 142, 143, 144,
+ 210, 211, 212, 214, 216, 218, 220, 222, 223, 247,
+ 264, 276, 293, 316, 39, 130, 247, 272, 273, 274,
+ 41, 42, 43, 44, 45, 130, 247, 284, 285, 286,
+ 288, 289, 291, 292, 55, 59, 60, 61, 62, 63,
+ 130, 247, 301, 302, 303, 304, 306, 308, 310, 312,
+ 314, 15, 30, 32, 33, 35, 36, 37, 130, 158,
+ 166, 232, 233, 234, 235, 236, 237, 238, 239, 241,
+ 243, 244, 246, 31, 34, 130, 166, 236, 241, 255,
+ 256, 257, 258, 259, 261, 262, 263, 67, 68, 130,
+ 192, 193, 194, 196, 6, 3, 4, 8, 3, 136,
+ 355, 351, 353, 4, 3, 8, 147, 153, 155, 4,
+ 4, 4, 4, 4, 203, 225, 248, 172, 183, 178,
+ 321, 185, 199, 331, 4, 341, 349, 3, 8, 151,
+ 8, 323, 265, 277, 213, 215, 217, 4, 4, 221,
+ 219, 294, 317, 3, 8, 275, 3, 8, 287, 4,
+ 290, 4, 4, 3, 8, 315, 305, 307, 309, 311,
+ 313, 8, 3, 159, 167, 4, 242, 240, 245, 4,
+ 8, 3, 260, 4, 8, 3, 195, 197, 3, 8,
+ 116, 116, 99, 4, 4, 4, 4, 134, 4, 4,
4, 100, 100, 100, 100, 100, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 100, 4, 4, 138,
- 4, 56, 128, 164, 245, 322, 323, 324, 325, 326,
+ 4, 4, 4, 4, 4, 4, 100, 4, 4, 140,
+ 4, 56, 130, 166, 247, 324, 325, 326, 327, 328,
4, 4, 4, 4, 4, 100, 102, 4, 4, 4,
- 4, 209, 4, 271, 4, 100, 4, 100, 100, 283,
- 4, 4, 4, 4, 4, 4, 301, 4, 4, 100,
- 4, 4, 4, 102, 232, 4, 102, 255, 4, 4,
- 191, 4, 7, 7, 116, 116, 7, 7, 7, 5,
- 5, 5, 5, 5, 124, 5, 5, 5, 7, 7,
- 7, 7, 124, 327, 8, 3, 5, 5, 99, 99,
- 99, 99, 99, 5, 7, 99, 99, 99, 124, 124,
- 124, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 116, 116, 137, 81, 354, 355, 356, 148, 16,
- 17, 18, 19, 20, 21, 128, 154, 155, 156, 158,
- 160, 162, 164, 166, 167, 168, 154, 7, 202, 203,
- 204, 7, 224, 225, 226, 7, 247, 248, 249, 61,
- 99, 171, 172, 173, 174, 125, 62, 173, 177, 178,
- 179, 216, 320, 7, 184, 185, 186, 99, 198, 199,
- 71, 72, 73, 74, 128, 156, 166, 330, 331, 332,
- 333, 335, 336, 77, 78, 340, 341, 342, 344, 121,
- 4, 324, 7, 264, 265, 266, 7, 276, 277, 278,
- 7, 293, 294, 295, 65, 316, 8, 357, 3, 8,
- 8, 159, 161, 163, 4, 4, 4, 3, 8, 8,
- 205, 6, 3, 227, 6, 3, 250, 6, 3, 3,
- 6, 126, 3, 6, 3, 6, 187, 6, 3, 4,
- 3, 8, 334, 4, 4, 4, 3, 8, 343, 345,
- 3, 8, 8, 99, 267, 6, 3, 279, 6, 3,
- 296, 6, 3, 317, 8, 4, 355, 4, 4, 4,
- 102, 100, 102, 155, 208, 204, 230, 226, 253, 249,
- 172, 6, 178, 216, 190, 186, 100, 199, 4, 100,
- 100, 100, 331, 4, 4, 341, 270, 266, 282, 278,
- 299, 295, 4, 5, 99, 99, 99, 8, 8, 8,
- 8, 99, 99, 99, 8, 8, 8, 99, 7, 358,
- 359, 360, 3, 6, 82, 84, 85, 128, 164, 361,
- 362, 363, 364, 366, 359, 367, 4, 365, 3, 8,
- 4, 100, 4, 362, 5, 99, 7, 368, 369, 370,
- 3, 6, 83, 371, 372, 369, 373, 3, 8, 4,
- 372, 99
+ 4, 211, 4, 273, 4, 100, 4, 100, 100, 285,
+ 4, 4, 4, 4, 4, 4, 303, 4, 4, 100,
+ 4, 4, 4, 102, 234, 4, 102, 257, 4, 4,
+ 193, 4, 7, 7, 116, 116, 7, 7, 7, 5,
+ 5, 5, 5, 5, 5, 5, 5, 7, 7, 7,
+ 7, 5, 126, 329, 8, 3, 5, 5, 99, 99,
+ 99, 99, 99, 5, 7, 99, 99, 99, 126, 126,
+ 126, 99, 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 116, 116, 139, 81, 356, 357, 358, 150, 16,
+ 17, 18, 19, 20, 21, 130, 156, 157, 158, 160,
+ 162, 164, 166, 168, 169, 170, 156, 7, 204, 205,
+ 206, 7, 226, 227, 228, 7, 249, 250, 251, 61,
+ 99, 173, 174, 175, 176, 124, 62, 175, 179, 180,
+ 181, 218, 322, 7, 186, 187, 188, 99, 200, 201,
+ 71, 72, 73, 74, 130, 158, 168, 332, 333, 334,
+ 335, 337, 338, 77, 78, 342, 343, 344, 346, 121,
+ 127, 4, 326, 7, 266, 267, 268, 7, 278, 279,
+ 280, 7, 295, 296, 297, 65, 318, 8, 359, 3,
+ 8, 8, 161, 163, 165, 4, 4, 4, 3, 8,
+ 8, 207, 6, 3, 229, 6, 3, 252, 6, 3,
+ 3, 6, 6, 3, 6, 3, 6, 189, 6, 3,
+ 4, 3, 8, 336, 4, 4, 4, 3, 8, 345,
+ 347, 3, 8, 8, 99, 128, 129, 99, 269, 6,
+ 3, 281, 6, 3, 298, 6, 3, 319, 8, 4,
+ 357, 4, 4, 4, 102, 100, 102, 157, 210, 206,
+ 232, 228, 255, 251, 174, 180, 218, 192, 188, 100,
+ 201, 4, 100, 100, 100, 333, 4, 4, 343, 6,
+ 3, 272, 268, 284, 280, 301, 297, 4, 5, 99,
+ 99, 99, 8, 8, 8, 8, 99, 99, 99, 99,
+ 8, 8, 8, 99, 7, 360, 361, 362, 3, 6,
+ 82, 84, 85, 130, 166, 363, 364, 365, 366, 368,
+ 361, 369, 4, 367, 3, 8, 4, 100, 4, 364,
+ 5, 99, 7, 370, 371, 372, 3, 6, 83, 373,
+ 374, 371, 375, 3, 8, 4, 374, 99
};
const unsigned short int
109, 104, 110, 104, 111, 104, 112, 104, 113, 104,
114, 104, 115, 104, 116, 116, 116, 116, 116, 116,
116, 117, 119, 118, 120, 120, 121, 121, 123, 122,
- 125, 124, 126, 126, 127, 127, 128, 130, 129, 131,
- 131, 132, 132, 132, 132, 132, 134, 133, 136, 135,
- 137, 137, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 139, 140, 141, 142, 143, 145,
- 144, 147, 146, 149, 148, 151, 150, 153, 152, 154,
- 154, 155, 155, 155, 155, 155, 155, 155, 155, 155,
- 157, 156, 159, 158, 161, 160, 163, 162, 165, 164,
- 166, 167, 168, 170, 169, 171, 171, 172, 172, 173,
- 174, 176, 175, 177, 177, 178, 178, 179, 181, 180,
- 183, 182, 184, 184, 185, 185, 187, 186, 189, 188,
- 190, 190, 190, 191, 191, 193, 192, 195, 194, 197,
- 196, 198, 198, 199, 201, 200, 202, 202, 203, 203,
- 205, 204, 207, 206, 208, 208, 209, 209, 209, 209,
- 209, 209, 209, 209, 209, 209, 209, 209, 209, 209,
- 209, 209, 209, 211, 210, 213, 212, 215, 214, 217,
- 216, 219, 218, 220, 221, 223, 222, 224, 224, 225,
- 225, 227, 226, 229, 228, 230, 230, 231, 231, 232,
- 232, 232, 232, 232, 232, 232, 232, 233, 234, 235,
- 236, 238, 237, 240, 239, 241, 243, 242, 244, 246,
- 245, 247, 247, 248, 248, 250, 249, 252, 251, 253,
- 253, 254, 254, 255, 255, 255, 255, 255, 255, 256,
- 258, 257, 259, 260, 261, 263, 262, 264, 264, 265,
- 265, 267, 266, 269, 268, 270, 270, 271, 271, 271,
- 273, 272, 275, 274, 276, 276, 277, 277, 279, 278,
- 281, 280, 282, 282, 283, 283, 283, 283, 283, 283,
- 283, 285, 284, 286, 288, 287, 289, 290, 292, 291,
- 293, 293, 294, 294, 296, 295, 298, 297, 299, 299,
- 300, 300, 301, 301, 301, 301, 301, 301, 301, 301,
- 303, 302, 305, 304, 307, 306, 309, 308, 311, 310,
- 313, 312, 315, 314, 317, 316, 319, 318, 320, 320,
- 321, 216, 322, 322, 323, 323, 324, 324, 324, 324,
- 325, 327, 326, 329, 328, 330, 330, 331, 331, 331,
- 331, 331, 331, 331, 332, 334, 333, 335, 336, 337,
- 339, 338, 340, 340, 341, 341, 343, 342, 345, 344,
- 347, 346, 349, 348, 351, 350, 353, 352, 354, 354,
- 355, 357, 356, 358, 358, 360, 359, 361, 361, 362,
- 362, 362, 362, 362, 363, 365, 364, 367, 366, 368,
- 368, 370, 369, 371, 371, 373, 372
+ 124, 124, 125, 125, 127, 126, 128, 128, 129, 129,
+ 130, 132, 131, 133, 133, 134, 134, 134, 134, 134,
+ 136, 135, 138, 137, 139, 139, 140, 140, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 140, 141, 142,
+ 143, 144, 145, 147, 146, 149, 148, 151, 150, 153,
+ 152, 155, 154, 156, 156, 157, 157, 157, 157, 157,
+ 157, 157, 157, 157, 159, 158, 161, 160, 163, 162,
+ 165, 164, 167, 166, 168, 169, 170, 172, 171, 173,
+ 173, 174, 174, 175, 176, 178, 177, 179, 179, 180,
+ 180, 181, 183, 182, 185, 184, 186, 186, 187, 187,
+ 189, 188, 191, 190, 192, 192, 192, 193, 193, 195,
+ 194, 197, 196, 199, 198, 200, 200, 201, 203, 202,
+ 204, 204, 205, 205, 207, 206, 209, 208, 210, 210,
+ 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
+ 211, 211, 211, 211, 211, 211, 211, 213, 212, 215,
+ 214, 217, 216, 219, 218, 221, 220, 222, 223, 225,
+ 224, 226, 226, 227, 227, 229, 228, 231, 230, 232,
+ 232, 233, 233, 234, 234, 234, 234, 234, 234, 234,
+ 234, 235, 236, 237, 238, 240, 239, 242, 241, 243,
+ 245, 244, 246, 248, 247, 249, 249, 250, 250, 252,
+ 251, 254, 253, 255, 255, 256, 256, 257, 257, 257,
+ 257, 257, 257, 258, 260, 259, 261, 262, 263, 265,
+ 264, 266, 266, 267, 267, 269, 268, 271, 270, 272,
+ 272, 273, 273, 273, 275, 274, 277, 276, 278, 278,
+ 279, 279, 281, 280, 283, 282, 284, 284, 285, 285,
+ 285, 285, 285, 285, 285, 287, 286, 288, 290, 289,
+ 291, 292, 294, 293, 295, 295, 296, 296, 298, 297,
+ 300, 299, 301, 301, 302, 302, 303, 303, 303, 303,
+ 303, 303, 303, 303, 305, 304, 307, 306, 309, 308,
+ 311, 310, 313, 312, 315, 314, 317, 316, 319, 318,
+ 321, 320, 322, 322, 323, 218, 324, 324, 325, 325,
+ 326, 326, 326, 326, 327, 329, 328, 331, 330, 332,
+ 332, 333, 333, 333, 333, 333, 333, 333, 334, 336,
+ 335, 337, 338, 339, 341, 340, 342, 342, 343, 343,
+ 345, 344, 347, 346, 349, 348, 351, 350, 353, 352,
+ 355, 354, 356, 356, 357, 359, 358, 360, 360, 362,
+ 361, 363, 363, 364, 364, 364, 364, 364, 365, 367,
+ 366, 369, 368, 370, 370, 372, 371, 373, 373, 375,
+ 374
};
const unsigned char
0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
0, 3, 0, 3, 1, 1, 1, 1, 1, 1,
1, 1, 0, 4, 0, 1, 3, 5, 0, 4,
- 0, 4, 0, 1, 1, 3, 2, 0, 4, 1,
- 3, 1, 1, 1, 1, 1, 0, 6, 0, 4,
- 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 1, 1, 3, 0, 4, 0, 1, 1, 3,
+ 2, 0, 4, 1, 3, 1, 1, 1, 1, 1,
+ 0, 6, 0, 4, 1, 3, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 3, 3, 3, 3, 0,
- 6, 0, 4, 0, 4, 0, 6, 0, 6, 1,
- 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
- 3, 3, 3, 0, 6, 1, 3, 1, 1, 1,
- 1, 0, 6, 1, 3, 1, 1, 1, 0, 4,
- 0, 6, 0, 1, 1, 3, 0, 4, 0, 4,
- 1, 3, 1, 1, 1, 0, 4, 0, 4, 0,
- 6, 1, 3, 3, 0, 6, 0, 1, 1, 3,
- 0, 4, 0, 4, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
+ 3, 3, 3, 0, 6, 0, 4, 0, 4, 0,
+ 6, 0, 6, 1, 3, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 0, 4, 0, 4, 0, 4,
+ 0, 4, 0, 4, 3, 3, 3, 0, 6, 1,
+ 3, 1, 1, 1, 1, 0, 6, 1, 3, 1,
+ 1, 1, 0, 6, 0, 6, 0, 1, 1, 3,
+ 0, 4, 0, 4, 1, 3, 1, 1, 1, 0,
+ 4, 0, 4, 0, 6, 1, 3, 3, 0, 6,
+ 0, 1, 1, 3, 0, 4, 0, 4, 1, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0, 4, 0, 4, 0, 4, 0,
- 4, 0, 4, 3, 3, 0, 6, 0, 1, 1,
- 3, 0, 4, 0, 4, 0, 1, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 3, 1,
- 1, 0, 4, 0, 4, 1, 0, 4, 3, 0,
+ 1, 1, 1, 1, 1, 1, 1, 0, 4, 0,
+ 4, 0, 4, 0, 4, 0, 4, 3, 3, 0,
6, 0, 1, 1, 3, 0, 4, 0, 4, 0,
1, 1, 3, 1, 1, 1, 1, 1, 1, 1,
- 0, 4, 1, 1, 3, 0, 6, 0, 1, 1,
- 3, 0, 4, 0, 4, 1, 3, 1, 1, 1,
- 0, 4, 0, 6, 0, 1, 1, 3, 0, 4,
- 0, 4, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 0, 4, 3, 0, 4, 3, 3, 0, 6,
- 0, 1, 1, 3, 0, 4, 0, 4, 0, 1,
- 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
- 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
- 0, 4, 0, 6, 0, 4, 0, 6, 1, 3,
+ 1, 1, 3, 1, 1, 0, 4, 0, 4, 1,
+ 0, 4, 3, 0, 6, 0, 1, 1, 3, 0,
+ 4, 0, 4, 0, 1, 1, 3, 1, 1, 1,
+ 1, 1, 1, 1, 0, 4, 1, 1, 3, 0,
+ 6, 0, 1, 1, 3, 0, 4, 0, 4, 1,
+ 3, 1, 1, 1, 0, 4, 0, 6, 0, 1,
+ 1, 3, 0, 4, 0, 4, 1, 3, 1, 1,
+ 1, 1, 1, 1, 1, 0, 4, 3, 0, 4,
+ 3, 3, 0, 6, 0, 1, 1, 3, 0, 4,
0, 4, 0, 1, 1, 3, 1, 1, 1, 1,
- 1, 0, 4, 0, 6, 1, 3, 1, 1, 1,
- 1, 1, 1, 1, 3, 0, 4, 3, 3, 3,
- 0, 6, 1, 3, 1, 1, 0, 4, 0, 4,
- 0, 6, 0, 4, 0, 4, 0, 6, 1, 3,
- 1, 0, 6, 1, 3, 0, 4, 1, 3, 1,
- 1, 1, 1, 1, 3, 0, 4, 0, 6, 1,
- 3, 0, 4, 1, 3, 0, 4
+ 1, 1, 1, 1, 0, 4, 0, 4, 0, 4,
+ 0, 4, 0, 4, 0, 4, 0, 6, 0, 4,
+ 0, 6, 1, 3, 0, 4, 0, 1, 1, 3,
+ 1, 1, 1, 1, 1, 0, 4, 0, 6, 1,
+ 3, 1, 1, 1, 1, 1, 1, 1, 3, 0,
+ 4, 3, 3, 3, 0, 6, 1, 3, 1, 1,
+ 0, 4, 0, 4, 0, 6, 0, 4, 0, 4,
+ 0, 6, 1, 3, 1, 0, 6, 1, 3, 0,
+ 4, 1, 3, 1, 1, 1, 1, 1, 3, 0,
+ 4, 0, 6, 1, 3, 0, 4, 1, 3, 0,
+ 4
};
"\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start",
"$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10",
"$@11", "value", "sub_json", "map2", "$@12", "map_content",
- "not_empty_map", "list_generic", "$@13", "list2", "$@14", "list_content",
- "not_empty_list", "unknown_map_entry", "syntax_map", "$@15",
+ "not_empty_map", "list_generic", "$@13", "list_content",
+ "not_empty_list", "list_strings", "$@14", "list_strings_content",
+ "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@15",
"global_objects", "global_object", "dhcp6_object", "$@16", "sub_dhcp6",
"$@17", "global_params", "global_param", "preferred_lifetime",
"valid_lifetime", "renew_timer", "rebind_timer",
202, 202, 203, 203, 204, 204, 205, 205, 206, 206,
207, 207, 208, 208, 216, 217, 218, 219, 220, 221,
222, 225, 230, 230, 242, 243, 246, 250, 257, 257,
- 265, 265, 272, 273, 276, 280, 291, 301, 301, 313,
- 314, 318, 319, 320, 321, 322, 325, 325, 342, 342,
- 350, 351, 356, 357, 358, 359, 360, 361, 362, 363,
- 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
- 374, 375, 376, 377, 380, 385, 390, 395, 400, 405,
- 405, 415, 415, 423, 423, 433, 433, 443, 443, 453,
- 454, 457, 458, 459, 460, 461, 462, 463, 464, 465,
- 468, 468, 476, 476, 484, 484, 492, 492, 500, 500,
- 508, 513, 518, 523, 523, 533, 534, 537, 538, 541,
- 546, 551, 551, 561, 562, 565, 566, 569, 574, 574,
- 584, 584, 594, 595, 598, 599, 602, 602, 610, 610,
- 618, 619, 620, 623, 624, 627, 627, 635, 635, 643,
- 643, 653, 654, 660, 668, 668, 681, 682, 685, 686,
- 693, 693, 716, 716, 725, 726, 730, 731, 732, 733,
- 734, 735, 736, 737, 738, 739, 740, 741, 742, 743,
- 744, 745, 746, 749, 749, 757, 757, 765, 765, 773,
- 773, 781, 781, 789, 794, 803, 803, 815, 816, 819,
- 820, 825, 825, 836, 836, 846, 847, 850, 851, 854,
- 855, 856, 857, 858, 859, 860, 861, 864, 866, 871,
- 873, 875, 875, 883, 883, 891, 893, 893, 901, 910,
- 910, 922, 923, 928, 929, 934, 934, 945, 945, 956,
- 957, 962, 963, 968, 969, 970, 971, 972, 973, 976,
- 978, 978, 986, 988, 990, 998, 998, 1010, 1011, 1014,
- 1015, 1018, 1018, 1026, 1026, 1034, 1035, 1038, 1039, 1040,
- 1043, 1043, 1054, 1054, 1066, 1067, 1070, 1071, 1074, 1074,
- 1082, 1082, 1090, 1091, 1094, 1095, 1096, 1097, 1098, 1099,
- 1100, 1103, 1103, 1111, 1116, 1116, 1124, 1129, 1137, 1137,
- 1147, 1148, 1151, 1152, 1155, 1155, 1163, 1163, 1171, 1172,
- 1175, 1176, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187,
- 1190, 1190, 1200, 1200, 1210, 1210, 1218, 1218, 1226, 1226,
- 1234, 1234, 1247, 1247, 1257, 1257, 1268, 1268, 1278, 1279,
- 1282, 1282, 1290, 1291, 1294, 1295, 1298, 1299, 1300, 1301,
- 1304, 1306, 1306, 1317, 1317, 1327, 1328, 1331, 1332, 1333,
- 1334, 1335, 1336, 1337, 1340, 1345, 1345, 1353, 1358, 1365,
- 1372, 1372, 1382, 1383, 1386, 1387, 1390, 1390, 1398, 1398,
- 1408, 1408, 1420, 1420, 1427, 1427, 1439, 1439, 1452, 1453,
- 1457, 1461, 1461, 1473, 1474, 1478, 1478, 1486, 1487, 1490,
- 1491, 1492, 1493, 1494, 1497, 1501, 1501, 1509, 1509, 1519,
- 1520, 1523, 1523, 1531, 1532, 1535, 1535
+ 264, 265, 268, 272, 279, 279, 286, 287, 290, 294,
+ 305, 315, 315, 327, 328, 332, 333, 334, 335, 336,
+ 339, 339, 356, 356, 364, 365, 370, 371, 372, 373,
+ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
+ 384, 385, 386, 387, 388, 389, 390, 391, 394, 399,
+ 404, 409, 414, 419, 419, 429, 429, 437, 437, 447,
+ 447, 457, 457, 467, 468, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 482, 482, 490, 490, 498, 498,
+ 506, 506, 514, 514, 522, 527, 532, 537, 537, 547,
+ 548, 551, 552, 555, 560, 565, 565, 575, 576, 579,
+ 580, 583, 590, 590, 600, 600, 610, 611, 614, 615,
+ 618, 618, 626, 626, 634, 635, 636, 639, 640, 643,
+ 643, 651, 651, 659, 659, 669, 670, 676, 684, 684,
+ 697, 698, 701, 702, 709, 709, 732, 732, 741, 742,
+ 746, 747, 748, 749, 750, 751, 752, 753, 754, 755,
+ 756, 757, 758, 759, 760, 761, 762, 765, 765, 773,
+ 773, 781, 781, 789, 789, 797, 797, 805, 810, 819,
+ 819, 831, 832, 835, 836, 841, 841, 852, 852, 862,
+ 863, 866, 867, 870, 871, 872, 873, 874, 875, 876,
+ 877, 880, 882, 887, 889, 891, 891, 899, 899, 907,
+ 909, 909, 917, 926, 926, 938, 939, 944, 945, 950,
+ 950, 961, 961, 972, 973, 978, 979, 984, 985, 986,
+ 987, 988, 989, 992, 994, 994, 1002, 1004, 1006, 1014,
+ 1014, 1026, 1027, 1030, 1031, 1034, 1034, 1042, 1042, 1050,
+ 1051, 1054, 1055, 1056, 1059, 1059, 1070, 1070, 1082, 1083,
+ 1086, 1087, 1090, 1090, 1098, 1098, 1106, 1107, 1110, 1111,
+ 1112, 1113, 1114, 1115, 1116, 1119, 1119, 1127, 1132, 1132,
+ 1140, 1145, 1153, 1153, 1163, 1164, 1167, 1168, 1171, 1171,
+ 1179, 1179, 1187, 1188, 1191, 1192, 1196, 1197, 1198, 1199,
+ 1200, 1201, 1202, 1203, 1206, 1206, 1216, 1216, 1226, 1226,
+ 1234, 1234, 1242, 1242, 1250, 1250, 1263, 1263, 1273, 1273,
+ 1284, 1284, 1294, 1295, 1298, 1298, 1306, 1307, 1310, 1311,
+ 1314, 1315, 1316, 1317, 1320, 1322, 1322, 1333, 1333, 1343,
+ 1344, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1356, 1361,
+ 1361, 1369, 1374, 1381, 1388, 1388, 1398, 1399, 1402, 1403,
+ 1406, 1406, 1414, 1414, 1424, 1424, 1436, 1436, 1443, 1443,
+ 1455, 1455, 1468, 1469, 1473, 1477, 1477, 1489, 1490, 1494,
+ 1494, 1502, 1503, 1506, 1507, 1508, 1509, 1510, 1513, 1517,
+ 1517, 1525, 1525, 1535, 1536, 1539, 1539, 1547, 1548, 1551,
+ 1551
};
// Print the state stack on the debug stream.
#line 14 "dhcp6_parser.yy" // lalr1.cc:1167
} } // isc::dhcp
-#line 3511 "dhcp6_parser.cc" // lalr1.cc:1167
-#line 1543 "dhcp6_parser.yy" // lalr1.cc:1168
+#line 3533 "dhcp6_parser.cc" // lalr1.cc:1167
+#line 1559 "dhcp6_parser.yy" // lalr1.cc:1168
void
#ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED
# define YY_PARSER6_DHCP6_PARSER_H_INCLUDED
// // "%code requires" blocks.
-#line 17 "dhcp6_parser.yy" // lalr1.cc:377
+#line 17 "dhcp6_parser.yy" // lalr1.cc:392
#include <string>
#include <cc/data.h>
using namespace isc::data;
using namespace std;
-#line 56 "dhcp6_parser.h" // lalr1.cc:377
+#line 56 "dhcp6_parser.h" // lalr1.cc:392
# include <cassert>
# include <cstdlib> // std::abort
# endif /* ! defined YYDEBUG */
#endif /* ! defined PARSER6_DEBUG */
-#line 14 "dhcp6_parser.yy" // lalr1.cc:377
+#line 14 "dhcp6_parser.yy" // lalr1.cc:392
namespace isc { namespace dhcp {
-#line 141 "dhcp6_parser.h" // lalr1.cc:377
+#line 141 "dhcp6_parser.h" // lalr1.cc:392
enum
{
yyeof_ = 0,
- yylast_ = 630, ///< Last index in yytable_.
- yynnts_ = 271, ///< Number of nonterminal symbols.
+ yylast_ = 638, ///< Last index in yytable_.
+ yynnts_ = 273, ///< Number of nonterminal symbols.
yyfinal_ = 24, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
}
-#line 14 "dhcp6_parser.yy" // lalr1.cc:377
+#line 14 "dhcp6_parser.yy" // lalr1.cc:392
} } // isc::dhcp
-#line 2135 "dhcp6_parser.h" // lalr1.cc:377
+#line 2135 "dhcp6_parser.h" // lalr1.cc:392
-/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
// list parsing complete. Put any sanity checking here
};
-// This one is used in syntax parser.
-list2: LSQUARE_BRACKET {
- // List parsing about to start
-} list_content RSQUARE_BRACKET {
- // list parsing complete. Put any sanity checking here
- //ctx.stack_.pop_back();
-};
-
list_content: %empty // Empty list
| not_empty_list
;
}
;
+// This one is used in syntax parser and is restricted to strings.
+list_strings: LSQUARE_BRACKET {
+ // List parsing about to start
+} list_strings_content RSQUARE_BRACKET {
+ // list parsing complete. Put any sanity checking here
+ //ctx.stack_.pop_back();
+};
+
+list_strings_content: %empty // Empty list
+ | not_empty_list_strings
+ ;
+
+not_empty_list_strings: STRING {
+ ElementPtr s(new StringElement($1, ctx.loc2pos(@1)));
+ ctx.stack_.back()->add(s);
+ }
+ | not_empty_list_strings COMMA STRING {
+ ElementPtr s(new StringElement($3, ctx.loc2pos(@3)));
+ ctx.stack_.back()->add(s);
+ }
+ ;
+
// ---- generic JSON parser ends here ----------------------------------
// ---- syntax checking parser starts here -----------------------------
ctx.stack_.back()->set("interfaces", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON list_strings {
ctx.stack_.pop_back();
ctx.leave();
};
ctx.stack_.back()->add(hwaddr);
};
+// list_content below accepts any value when options are by name (string)
+// or by code (number)
relay_supplied_options: RELAY_SUPPLIED_OPTIONS {
ElementPtr l(new ListElement(ctx.loc2pos(@1)));
ctx.stack_.back()->set("relay-supplied-options", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON LSQUARE_BRACKET list_content RSQUARE_BRACKET {
ctx.stack_.pop_back();
ctx.leave();
};
ctx.stack_.back()->set("ip-addresses", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON list_strings {
ctx.stack_.pop_back();
ctx.leave();
};
ctx.stack_.back()->set("prefixes", l);
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON list_strings {
ctx.stack_.pop_back();
ctx.leave();
};
ctx.stack_.back()->set("client-classes", c);
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
-} COLON list2 {
+} COLON list_strings {
ctx.stack_.pop_back();
ctx.leave();
};
// control-socket has been converted to SimpleParser.
} else if (config_id.compare("expired-leases-processing") == 0) {
parser = new ExpirationConfigParser();
- } else if (config_id.compare("client-classes") == 0) {
- parser = new ClientClassDefListParser(config_id, globalContext());
+ // client-classes has been converted to SimpleParser.
} else if (config_id.compare("server-id") == 0) {
parser = new DUIDConfigParser();
// host-reservation-identifiers have been converted to SimpleParser already.
ParserPtr subnet_parser;
ParserPtr iface_parser;
ParserPtr leases_parser;
- ParserPtr client_classes_parser;
// Some of the parsers alter state of the system that can't easily
// be undone. (Or alter it in a way such that undoing the change
continue;
}
+ if (config_pair.first =="client-classes") {
+ ClientClassDefListParser parser;
+ parser.parse(config_pair.second, AF_INET6);
+ continue;
+ }
+
ParserPtr parser(createGlobal6DhcpConfigParser(config_pair.first,
config_pair.second));
LOG_DEBUG(dhcp6_logger, DBG_DHCP6_DETAIL, DHCP6_PARSER_CREATED)
// can be run here before other parsers.
parser->build(config_pair.second);
iface_parser = parser;
- } else if (config_pair.first == "client-classes") {
- client_classes_parser = parser;
} else {
// Those parsers should be started before other
// parsers so we can call build straight away.
}
}
- // The class definitions parser is the next one to be run.
- std::map<std::string, ConstElementPtr>::const_iterator cc_config =
- values_map.find("client-classes");
- if (cc_config != values_map.end()) {
- config_pair.first = "client-classes";
- client_classes_parser->build(cc_config->second);
- client_classes_parser->commit();
- }
-
// The subnet parser is the next one to be run.
std::map<std::string, ConstElementPtr>::const_iterator subnet_config =
values_map.find("subnet6");
-// Copyright (C) 2015-2016 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
-#include <cc/data.h>
+#include <config.h>
#include <dhcpsrv/cfgmgr.h>
#include <dhcpsrv/client_class_def.h>
+#include <dhcpsrv/parsers/dhcp_parsers.h>
#include <dhcpsrv/parsers/client_class_def_parser.h>
#include <eval/eval_context.h>
#include <asiolink/io_address.h>
using namespace isc::asiolink;
using namespace std;
-/// @file client_class_def.cc
+/// @file client_class_def_parser.cc
///
/// @brief Method implementations for client class definition parsing
// ********************** ExpressionParser ****************************
-ExpressionParser::ExpressionParser(const std::string&,
- ExpressionPtr& expression, ParserContextPtr global_context)
- : local_expression_(ExpressionPtr()), expression_(expression),
- global_context_(global_context) {
+ExpressionParser::ExpressionParser(ExpressionPtr& expression)
+ : local_expression_(ExpressionPtr()), expression_(expression) {
}
void
-ExpressionParser::build(ConstElementPtr expression_cfg) {
+ExpressionParser::parse(ConstElementPtr expression_cfg, uint16_t family) {
if (expression_cfg->getType() != Element::string) {
isc_throw(DhcpConfigError, "expression ["
<< expression_cfg->str() << "] must be a string, at ("
std::string value;
expression_cfg->getValue(value);
try {
- EvalContext eval_ctx(global_context_->universe_);
+ EvalContext eval_ctx(family == AF_INET ? Option::V4 : Option::V6);
eval_ctx.parseString(value);
local_expression_.reset(new Expression());
*local_expression_ = eval_ctx.expression;
<< "] error: " << ex.what() << " at ("
<< expression_cfg->getPosition() << ")");
}
-}
-void
-ExpressionParser::commit() {
+ // Success so commit.
expression_ = local_expression_;
}
// ********************** ClientClassDefParser ****************************
-ClientClassDefParser::ClientClassDefParser(const std::string&,
- ClientClassDictionaryPtr& class_dictionary, ParserContextPtr global_context)
- : string_values_(new StringStorage()),
- match_expr_(ExpressionPtr()),
+ClientClassDefParser::ClientClassDefParser(ClientClassDictionaryPtr& class_dictionary)
+ : match_expr_(ExpressionPtr()),
options_(new CfgOption()),
- class_dictionary_(class_dictionary),
- global_context_(global_context) {
+ class_dictionary_(class_dictionary) {
}
void
-ClientClassDefParser::build(ConstElementPtr class_def_cfg) {
-
- // Parse the elements that make up the option definition.
- BOOST_FOREACH(ConfigPair param, class_def_cfg->mapValue()) {
- std::string entry(param.first);
- ParserPtr parser;
- if (entry == "name") {
- StringParserPtr str_parser(new StringParser(entry, string_values_));
- parser = str_parser;
- } else if (entry == "test") {
- ExpressionParserPtr exp_parser(new ExpressionParser(entry,
- match_expr_,
- global_context_));
- parser = exp_parser;
- } else if (entry == "option-data") {
-
- uint16_t family = (global_context_->universe_ == Option::V4 ?
- AF_INET : AF_INET6);
-
- OptionDataListParser opts_parser(family);
- opts_parser.parse(options_, param.second);
-
- // OptionDataListParser is converted to SimpleParser already,
- // no need to go through build/commit phases.
- continue;
- } else if (entry == "next-server") {
- StringParserPtr str_parser(new StringParser(entry, string_values_));
- parser = str_parser;
- } else if (entry == "server-hostname") {
- StringParserPtr str_parser(new StringParser(entry, string_values_));
- parser = str_parser;
-
- } else if (entry == "boot-file-name") {
- StringParserPtr str_parser(new StringParser(entry, string_values_));
- parser = str_parser;
- } else {
- isc_throw(DhcpConfigError, "invalid parameter '" << entry
- << "' (" << param.second->getPosition() << ")");
- }
+ClientClassDefParser::parse(ConstElementPtr class_def_cfg, uint16_t family) {
- parser->build(param.second);
- parser->commit();
- }
-
- std::string name;
try {
- name = string_values_->getParam("name");
+ std::string name;
+ std::string next_server_txt = "0.0.0.0";
+ std::string sname;
+ std::string filename;
+
+ // Parse the elements that make up the client class definition.
+ BOOST_FOREACH(ConfigPair param, class_def_cfg->mapValue()) {
+ std::string entry(param.first);
+ ConstElementPtr value(param.second);
+
+ if (entry == "name") {
+ name = value->stringValue();
+
+ } else if (entry == "test") {
+ ExpressionParser parser(match_expr_);
+ parser.parse(value, family);
+
+ } else if (entry == "option-data") {
+ OptionDataListParser opts_parser(family);
+ opts_parser.parse(options_, value);
+
+ } else if (entry == "next-server") {
+ next_server_txt = value->stringValue();
+
+ } else if (entry == "server-hostname") {
+ sname = value->stringValue();
+
+ } else if (entry == "boot-file-name") {
+ filename = value->stringValue();
+
+ } else {
+ isc_throw(DhcpConfigError, "invalid parameter '" << entry
+ << "' (" << value->getPosition() << ")");
+ }
+ }
+
+ // Make name mandatory?
// Let's parse the next-server field
IOAddress next_server("0.0.0.0");
- string next_server_txt = string_values_->getOptionalParam("next-server", "0.0.0.0");
try {
next_server = IOAddress(next_server_txt);
} catch (const IOError& ex) {
<< next_server_txt << "', must not be a broadcast");
}
- // Let's try to parse sname
- string sname = string_values_->getOptionalParam("server-hostname", "");
+ // Let's try to parse server-hostname
if (sname.length() >= Pkt4::MAX_SNAME_LEN) {
isc_throw(DhcpConfigError, "server-hostname must be at most "
<< Pkt4::MAX_SNAME_LEN - 1 << " bytes long, it is "
<< sname.length());
}
- string filename = string_values_->getOptionalParam("boot-file-name", "");
+ // Let's try to parse boot-file-name
if (filename.length() > Pkt4::MAX_FILE_LEN) {
isc_throw(DhcpConfigError, "boot-file-name must be at most "
<< Pkt4::MAX_FILE_LEN - 1 << " bytes long, it is "
<< filename.length());
}
- // an OptionCollectionPtr
+ // Add the client class definition
class_dictionary_->addClass(name, match_expr_, options_, next_server,
sname, filename);
} catch (const std::exception& ex) {
// ****************** ClientClassDefListParser ************************
-ClientClassDefListParser::ClientClassDefListParser(const std::string&,
- ParserContextPtr
- global_context)
- : local_dictionary_(new ClientClassDictionary()),
- global_context_(global_context) {
+ClientClassDefListParser::ClientClassDefListParser()
+ : local_dictionary_(new ClientClassDictionary()) {
}
void
-ClientClassDefListParser::build(ConstElementPtr client_class_def_list) {
- if (!client_class_def_list) {
- isc_throw(DhcpConfigError, "parser error: a pointer to a list of"
- << " client class definitions is NULL ("
- << client_class_def_list->getPosition() << ")");
- }
-
+ClientClassDefListParser::parse(ConstElementPtr client_class_def_list,
+ uint16_t family) {
BOOST_FOREACH(ConstElementPtr client_class_def,
client_class_def_list->listValue()) {
- boost::shared_ptr<ClientClassDefParser>
- parser(new ClientClassDefParser("client-class-def",
- local_dictionary_,
- global_context_));
- parser->build(client_class_def);
+ ClientClassDefParser parser(local_dictionary_);
+ parser.parse(client_class_def, family);
}
-}
-
-void
-ClientClassDefListParser::commit() {
+ // Success so commit
CfgMgr::instance().getStagingCfg()->setClientClassDictionary(local_dictionary_);
}
-// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015, 2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
#ifndef CLIENT_CLASS_DEF_PARSER_H
#define CLIENT_CLASS_DEF_PARSER_H
+#include <cc/data.h>
+#include <cc/simple_parser.h>
#include <dhcpsrv/client_class_def.h>
-#include <dhcpsrv/parsers/dhcp_parsers.h>
-/// @file client_class_def.h
+/// @file client_class_def_parser.h
///
/// @brief Parsers for client class definitions
///
/// There parsers defined are:
///
/// ClientClassDefListParser - creates a ClientClassDictionary from a list
-/// of element maps, where each map contains the entries that specifiy a
+/// of element maps, where each map contains the entries that specify a
/// single class. The names of the classes in the are expected to be
/// unique. Attempting to define a duplicate class will result in an
-/// DhcpConfigError throw. Invoking @c commit() method causes the dictionary
-/// to be stored by the CfgMgr.
+/// DhcpConfigError throw. At the end the dictionary is stored by the CfgMgr.
///
/// ClientClassDefParser - creates a ClientClassDefinition from an element
/// map. The elements are as follows:
/// membership in the class. This is passed into the eval parser.
///
/// -# "option-data" - a list which defines the options that should be
-/// assigned to memebers of the class. This element is optional and parsed
+/// assigned to remembers of the class. This element is optional and parsed
/// using the @ref isc::dhcp::OptionDataListParser.
///
/// ExpressionParser - creates an eval::Expression from a string element,
/// This parser creates an instance of an Expression from a string. The
/// string is passed to the Eval Parser and the resultant Expression is
/// stored into the ExpressionPtr reference passed into the constructor.
-class ExpressionParser : public DhcpConfigParser {
+class ExpressionParser : public isc::data::SimpleParser {
public:
/// @brief Constructor.
///
- /// @param dummy first argument is ignored, all Parser constructors
- /// accept string as first argument.
/// @param expression variable in which to store the new expression
- /// @param global_context is a pointer to the global context which
- /// stores global scope parameters, options, option defintions.
- ExpressionParser(const std::string& dummy, ExpressionPtr& expression,
- ParserContextPtr global_context);
+ ExpressionParser(ExpressionPtr& expression);
/// @brief Parses an expression configuration element into an Expression
///
/// @param expression_cfg the configuration entry to be parsed.
+ /// @param family the address family of the expression.
///
/// @throw DhcpConfigError if parsing was unsuccessful.
- void build(isc::data::ConstElementPtr expression_cfg);
-
- /// @brief Stores the parsed expression to the supplied storage.
- void commit();
+ void parse(isc::data::ConstElementPtr expression_cfg, uint16_t family);
private:
/// @brief Local storage for the parsed expression
/// @brief Storage into which the parsed expression should be committed
ExpressionPtr& expression_;
-
- /// @brief Parsing context which contains global values, options and option
- /// definitions.
- ParserContextPtr global_context_;
};
-typedef boost::shared_ptr<ExpressionParser> ExpressionParserPtr;
-
/// @brief Parser for a single client class definition.
///
/// This parser creates an instance of a client class definition.
-class ClientClassDefParser : public DhcpConfigParser {
+class ClientClassDefParser : public isc::data::SimpleParser {
public:
/// @brief Constructor.
///
- /// @param dummy first argument is ignored, all Parser constructors
- /// accept string as first argument.
/// @param class_dictionary dictionary into which the class should be added
- /// @param global_context is a pointer to the global context which
- /// stores global scope parameters, options, option defintions.
- ClientClassDefParser(const std::string& dummy,
- ClientClassDictionaryPtr& class_dictionary,
- ParserContextPtr global_context);
+ ClientClassDefParser(ClientClassDictionaryPtr& class_dictionary);
/// @brief Parses an entry that describes single client class definition.
///
- /// Attempts to add the new class direclty into the given dictionary.
+ /// Attempts to add the new class directly into the given dictionary.
/// This done here to detect duplicate classes prior to commit().
/// @param client_class_def a configuration entry to be parsed.
+ /// @param family the address family of the client class.
///
/// @throw DhcpConfigError if parsing was unsuccessful.
- void build(isc::data::ConstElementPtr client_class_def);
-
- /// @brief Does nothing.
- void commit() {};
+ void parse(isc::data::ConstElementPtr client_class_def, uint16_t family);
private:
- /// @brief Storage for class string values.
- StringStoragePtr string_values_;
-
/// @brief Storage for the class match expression
ExpressionPtr match_expr_;
CfgOptionPtr options_;
/// @brief Dictionary to which the new class should be added
- ClientClassDictionaryPtr class_dictionary_;
-
- /// @brief Parsing context which contains global values, options and option
- /// definitions.
- ParserContextPtr global_context_;
+ ClientClassDictionaryPtr& class_dictionary_;
};
/// @brief Defines a pointer to a ClientClassDefParser
///
/// This parser iterates over all configuration entries that define
/// client classes and creates ClientClassDef instances for each.
-/// If the parsing done in build() is successful, the collection of
+/// When the parsing successfully completes, the collection of
/// created definitions is given to the CfgMgr.
-class ClientClassDefListParser : public DhcpConfigParser {
+class ClientClassDefListParser : public isc::data::SimpleParser {
public:
+
/// @brief Constructor.
- ///
- /// @param dummy first argument is ignored, all Parser constructors
- /// accept string as first argument.
- /// @param global_context is a pointer to the global context which
- /// stores global scope parameters, options, option defintions.
- ClientClassDefListParser(const std::string& dummy,
- ParserContextPtr global_context);
+ ClientClassDefListParser();
/// @brief Parse configuration entries.
///
/// This function parses configuration entries, creates instances
/// of client class definitions and tries to adds them to the a
- /// local dictionary.
+ /// local dictionary. At the end class definitions are committed
+ /// to CfgMgr's global storage.
///
/// @param class_def_list pointer to an element that holds entries
/// for client class definitions.
+ /// @param family the address family of the client class definitions.
/// @throw DhcpConfigError if configuration parsing fails.
- void build(isc::data::ConstElementPtr class_def_list);
-
- /// @brief Commits class definitions to CfgMgr's global storage.
- void commit();
+ void parse(isc::data::ConstElementPtr class_def_list, uint16_t family);
/// @brief Local class dictionary to store classes as they are being parsed
+ ///
+ /// Left public for easier unit testing.
ClientClassDictionaryPtr local_dictionary_;
-
- /// Parsing context which contains global values, options and option
- /// definitions.
- ParserContextPtr global_context_;
};
-/// @brief Defines a pointer to a ClientClassDefListParser
-typedef boost::shared_ptr<ClientClassDefListParser> ClientClassDefListParserPtr;
-
} // end of namespace isc::dhcp
} // end of namespace isc
-// Copyright (C) 2015-2016 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
#include <dhcp/option_string.h>
#include <dhcpsrv/cfgmgr.h>
#include <dhcpsrv/parsers/client_class_def_parser.h>
+#include <dhcpsrv/parsers/dhcp_parsers.h>
#include <asiolink/io_address.h>
#include <eval/evaluate.h>
#include <gtest/gtest.h>
/// produces an Expression which can be evaluated against a v4 or v6
/// packet.
///
- /// @param universe V4 or V6.
+ /// @param family AF_INET or AF_INET6
/// @param expression Textual representation of the expression to be
/// evaluated.
/// @param option_string String data to be placed in the hostname
/// option, being placed in the packet used for evaluation.
/// @tparam Type of the packet: @c Pkt4 or @c Pkt6.
template<typename PktType>
- void testValidExpression(const Option::Universe& universe,
+ void testValidExpression(uint16_t family,
const std::string& expression,
const std::string& option_string) {
- ParserContextPtr context(new ParserContext(universe));
- ExpressionParserPtr parser;
ExpressionPtr parsed_expr;
+ ExpressionParser parser(parsed_expr);
// Turn config into elements. This may emit exceptions.
ElementPtr config_element = Element::fromJSON(expression);
- // Create the parser.
- ASSERT_NO_THROW(parser.reset(new ExpressionParser("", parsed_expr,
- context)));
- // Expression should parse and commit.
- ASSERT_NO_THROW(parser->build(config_element));
- ASSERT_NO_THROW(parser->commit());
+ // Expression should parse.
+ ASSERT_NO_THROW(parser.parse(config_element, family));
// Parsed expression should exist.
ASSERT_TRUE(parsed_expr);
// Build a packet that will fail evaluation.
- boost::shared_ptr<PktType> pkt(new PktType(universe == Option::V4 ?
+ boost::shared_ptr<PktType> pkt(new PktType(family == AF_INET ?
DHCPDISCOVER : DHCPV6_SOLICIT,
123));
EXPECT_FALSE(evaluate(*parsed_expr, *pkt));
// Now add the option so it will pass. Use a standard option carrying a
// single string value, i.e. hostname for DHCPv4 and bootfile url for
// DHCPv6.
- OptionPtr opt(new OptionString(universe, universe == Option::V4 ?
+ Option::Universe universe(family == AF_INET ? Option::V4 : Option::V6);
+ OptionPtr opt(new OptionString(universe, family == AF_INET ?
DHO_HOST_NAME : D6O_BOOTFILE_URL,
option_string));
pkt->addOption(opt);
///
/// @param config - JSON string containing the client class configuration
/// to parse.
- /// @param universe - the universe in which the parsing context should
+ /// @param family - the address family in which the parsing should
/// occur.
/// @return Returns a pointer to class instance created, or NULL if
/// for some unforeseen reason it wasn't created in the local dictionary
/// @throw indirectly, exceptions convertring the JSON text to elements,
/// or by the parsing itself are not caught
ClientClassDefPtr parseClientClassDef(const std::string& config,
- Option::Universe universe) {
+ uint16_t family) {
// Create local dicitonary to which the parser add the class.
ClientClassDictionaryPtr dictionary(new ClientClassDictionary());
- // Create the "global" context for the parser.
- ParserContextPtr context(new ParserContext(universe));
// Turn config into elements. This may emit exceptions.
ElementPtr config_element = Element::fromJSON(config);
// Parse the configuration. This may emit exceptions.
- ClientClassDefParser parser("", dictionary, context);
- parser.build(config_element);
+ ClientClassDefParser parser(dictionary);
+ parser.parse(config_element, family);
// If we didn't throw, then return the first and only class
ClientClassDefMapPtr classes = dictionary->getClasses();
/// ClientClassDictionary.
///
/// @param config - JSON string containing the list of definitions to parse.
- /// @param universe - the universe in which the parsing context should
+ /// @param family - the address family in which the parsing should
/// occur.
/// @return Returns a pointer to class dictionary created
/// @throw indirectly, execptions convertring the JSON text to elements,
/// or by the parsing itself are not caught
ClientClassDictionaryPtr parseClientClassDefList(const std::string& config,
- Option::Universe universe)
+ uint16_t family)
{
- // Create the "global" context for the parser.
- ParserContextPtr context(new ParserContext(universe));
-
// Turn config into elements. This may emit exceptions.
ElementPtr config_element = Element::fromJSON(config);
// Parse the configuration. This may emit exceptions.
- ClientClassDefListParser parser("", context);
- parser.build(config_element);
-
- // Commit should push it to CfgMgr staging
- parser.commit();
+ ClientClassDefListParser parser;
+ parser.parse(config_element, family);
// Return the parser's local dicationary
return (parser.local_dictionary_);
// Verifies that given a valid expression, the ExpressionParser
// produces an Expression which can be evaluated against a v4 packet.
TEST_F(ExpressionParserTest, validExpression4) {
- testValidExpression<Pkt4>(Option::V4, "\"option[12].text == 'hundred4'\"",
+ testValidExpression<Pkt4>(AF_INET,
+ "\"option[12].text == 'hundred4'\"",
"hundred4");
}
// Verifies that the option name can be used in the evaluated expression.
TEST_F(ExpressionParserTest, validExpressionWithOptionName4) {
- testValidExpression<Pkt4>(Option::V4,
+ testValidExpression<Pkt4>(AF_INET,
"\"option[host-name].text == 'hundred4'\"",
"hundred4");
}
// ExpressionParser produces an Expression which can be evaluated against
// a v4 packet.
TEST_F(ExpressionParserTest, validExpressionWithHex4) {
- testValidExpression<Pkt4>(Option::V4, "\"option[12].hex == 0x68756E6472656434\"",
+ testValidExpression<Pkt4>(AF_INET,
+ "\"option[12].hex == 0x68756E6472656434\"",
"hundred4");
}
// Verifies that the option name can be used together with .hex operator in
// the evaluated expression.
TEST_F(ExpressionParserTest, validExpressionWithOptionNameAndHex4) {
- testValidExpression<Pkt6>(Option::V4,
+ testValidExpression<Pkt6>(AF_INET,
"\"option[host-name].text == 0x68756E6472656434\"",
"hundred4");
}
// Verifies that given a valid expression, the ExpressionParser
// produces an Expression which can be evaluated against a v6 packet.
TEST_F(ExpressionParserTest, validExpression6) {
- testValidExpression<Pkt6>(Option::V6, "\"option[59].text == 'hundred6'\"",
+ testValidExpression<Pkt6>(AF_INET6,
+ "\"option[59].text == 'hundred6'\"",
"hundred6");
}
// Verifies that the option name can be used in the evaluated expression.
TEST_F(ExpressionParserTest, validExpressionWithOptionName6) {
- testValidExpression<Pkt6>(Option::V6,
+ testValidExpression<Pkt6>(AF_INET6,
"\"option[bootfile-url].text == 'hundred6'\"",
"hundred6");
}
// ExpressionParser produces an Expression which can be evaluated against
// a v6 packet.
TEST_F(ExpressionParserTest, validExpressionWithHex6) {
- testValidExpression<Pkt6>(Option::V6, "\"option[59].hex == 0x68756E6472656436\"",
+ testValidExpression<Pkt6>(AF_INET6,
+ "\"option[59].hex == 0x68756E6472656436\"",
"hundred6");
}
// Verifies that the option name can be used together with .hex operator in
// the evaluated expression.
TEST_F(ExpressionParserTest, validExpressionWithOptionNameAndHex6) {
- testValidExpression<Pkt6>(Option::V6,
+ testValidExpression<Pkt6>(AF_INET6,
"\"option[bootfile-url].text == 0x68756E6472656436\"",
"hundred6");
}
// Verifies that an the ExpressionParser only accepts StringElements.
TEST_F(ExpressionParserTest, invalidExpressionElement) {
- ParserContextPtr context(new ParserContext(Option::V4));
- ExpressionParserPtr parser;
- ExpressionPtr parsed_expr;
-
// This will create an integer element should fail.
std::string cfg_txt = "777";
ElementPtr config_element = Element::fromJSON(cfg_txt);
// Create the parser.
- ASSERT_NO_THROW(parser.reset(new ExpressionParser("", parsed_expr,
- context)));
- // Expressionn build() should fail.
- ASSERT_THROW(parser->build(config_element), DhcpConfigError);
+ ExpressionPtr parsed_expr;
+ ExpressionParser parser(parsed_expr);
+
+ // Expression parsing should fail.
+ ASSERT_THROW(parser.parse(config_element, AF_INET), DhcpConfigError);
}
// Verifies that given an invalid expression with a syntax error,
// It is simply to ensure that if the parser fails, it does so
// Properly.
TEST_F(ExpressionParserTest, expressionSyntaxError) {
- ParserContextPtr context(new ParserContext(Option::V4));
- ExpressionParserPtr parser;
- ExpressionPtr parsed_expr;
-
// Turn config into elements.
std::string cfg_txt = "\"option 'bogus'\"";
ElementPtr config_element = Element::fromJSON(cfg_txt);
// Create the parser.
- ASSERT_NO_THROW(parser.reset(new ExpressionParser("", parsed_expr,
- context)));
- // Expressionn build() should fail.
- ASSERT_THROW(parser->build(config_element), DhcpConfigError);
+ ExpressionPtr parsed_expr;
+ ExpressionParser parser(parsed_expr);
+
+ // Expression parsing should fail.
+ ASSERT_THROW(parser.parse(config_element, AF_INET), DhcpConfigError);
}
// Verifies you can create a class with only a name
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
"} \n";
ClientClassDefPtr cclass;
- ASSERT_THROW(cclass = parseClientClassDef(cfg_text, Option::V4),
+ ASSERT_THROW(cclass = parseClientClassDef(cfg_text, AF_INET),
DhcpConfigError);
}
"} \n";
ClientClassDefPtr cclass;
- ASSERT_THROW(cclass = parseClientClassDef(cfg_text, Option::V4),
+ ASSERT_THROW(cclass = parseClientClassDef(cfg_text, AF_INET),
DhcpConfigError);
}
"} \n";
ClientClassDefPtr cclass;
- ASSERT_THROW(cclass = parseClientClassDef(cfg_text, Option::V4),
+ ASSERT_THROW(cclass = parseClientClassDef(cfg_text, AF_INET),
DhcpConfigError);
}
"} \n";
ClientClassDefPtr cclass;
- ASSERT_THROW(cclass = parseClientClassDef(cfg_text, Option::V4),
+ ASSERT_THROW(cclass = parseClientClassDef(cfg_text, AF_INET),
DhcpConfigError);
}
"} \n";
ClientClassDefPtr cclass;
- ASSERT_THROW(cclass = parseClientClassDef(cfg_text, Option::V4),
+ ASSERT_THROW(cclass = parseClientClassDef(cfg_text, AF_INET),
DhcpConfigError);
}
// Parsing the list should succeed.
ClientClassDictionaryPtr dictionary;
- ASSERT_NO_THROW(dictionary = parseClientClassDefList(cfg_text, Option::V4));
+ ASSERT_NO_THROW(dictionary = parseClientClassDefList(cfg_text, AF_INET));
ASSERT_TRUE(dictionary);
// We should have three classes in the dictionary.
"] \n";
ClientClassDictionaryPtr dictionary;
- ASSERT_THROW(dictionary = parseClientClassDefList(cfg_text, Option::V4),
+ ASSERT_THROW(dictionary = parseClientClassDefList(cfg_text, AF_INET),
DhcpConfigError);
}
"] \n";
ClientClassDictionaryPtr dictionary;
- ASSERT_THROW(dictionary = parseClientClassDefList(cfg_text, Option::V4),
+ ASSERT_THROW(dictionary = parseClientClassDefList(cfg_text, AF_INET),
DhcpConfigError);
}
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
" ] \n"
"} \n";
- EXPECT_THROW(parseClientClassDef(bogus_v6, Option::V4), DhcpConfigError);
- EXPECT_THROW(parseClientClassDef(bogus_junk, Option::V4), DhcpConfigError);
+ EXPECT_THROW(parseClientClassDef(bogus_v6, AF_INET), DhcpConfigError);
+ EXPECT_THROW(parseClientClassDef(bogus_junk, AF_INET), DhcpConfigError);
}
// Test verifies that it is possible to define server-hostname field and it
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
" ] \n"
"} \n";
- EXPECT_THROW(parseClientClassDef(cfg_too_long, Option::V4), DhcpConfigError);
+ EXPECT_THROW(parseClientClassDef(cfg_too_long, AF_INET), DhcpConfigError);
}
"} \n";
ClientClassDefPtr cclass;
- ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, Option::V4));
+ ASSERT_NO_THROW(cclass = parseClientClassDef(cfg_text, AF_INET));
// We should find our class.
ASSERT_TRUE(cclass);
" ] \n"
"} \n";
- EXPECT_THROW(parseClientClassDef(cfg_too_long, Option::V4), DhcpConfigError);
+ EXPECT_THROW(parseClientClassDef(cfg_too_long, AF_INET), DhcpConfigError);
}