#line 2730 "dhcp4_parser.yy"
{
ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
- ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4251 "dhcp4_parser.cc"
+#line 4250 "dhcp4_parser.cc"
break;
case 796: // control_socket_name: "socket-name" $@116 ":" "constant string"
-#line 2734 "dhcp4_parser.yy"
+#line 2733 "dhcp4_parser.yy"
{
ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 4261 "dhcp4_parser.cc"
+#line 4260 "dhcp4_parser.cc"
break;
case 797: // $@117: %empty
-#line 2740 "dhcp4_parser.yy"
+#line 2739 "dhcp4_parser.yy"
{
ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
- ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4271 "dhcp4_parser.cc"
+#line 4269 "dhcp4_parser.cc"
break;
case 798: // control_socket_address: "socket-address" $@117 ":" "constant string"
-#line 2744 "dhcp4_parser.yy"
+#line 2742 "dhcp4_parser.yy"
{
ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-address", address);
ctx.leave();
}
-#line 4281 "dhcp4_parser.cc"
+#line 4279 "dhcp4_parser.cc"
break;
case 799: // control_socket_port: "socket-port" ":" "integer"
-#line 2750 "dhcp4_parser.yy"
+#line 2748 "dhcp4_parser.yy"
{
ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location));
ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-port", port);
}
-#line 4291 "dhcp4_parser.cc"
+#line 4289 "dhcp4_parser.cc"
break;
case 800: // cert_required: "cert-required" ":" "boolean"
-#line 2756 "dhcp4_parser.yy"
+#line 2754 "dhcp4_parser.yy"
{
ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location));
ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cert-required", req);
}
-#line 4301 "dhcp4_parser.cc"
+#line 4299 "dhcp4_parser.cc"
break;
case 801: // $@118: %empty
-#line 2762 "dhcp4_parser.yy"
+#line 2760 "dhcp4_parser.yy"
{
ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HTTP_HEADERS);
}
-#line 4313 "dhcp4_parser.cc"
+#line 4311 "dhcp4_parser.cc"
break;
case 802: // http_headers: "http-headers" $@118 ":" "[" http_header_list "]"
-#line 2768 "dhcp4_parser.yy"
+#line 2766 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4322 "dhcp4_parser.cc"
+#line 4320 "dhcp4_parser.cc"
break;
case 807: // not_empty_http_header_list: not_empty_http_header_list ","
-#line 2779 "dhcp4_parser.yy"
+#line 2777 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4330 "dhcp4_parser.cc"
+#line 4328 "dhcp4_parser.cc"
break;
case 808: // $@119: %empty
-#line 2784 "dhcp4_parser.yy"
+#line 2782 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4340 "dhcp4_parser.cc"
+#line 4338 "dhcp4_parser.cc"
break;
case 809: // http_header: "{" $@119 http_header_params "}"
-#line 2788 "dhcp4_parser.yy"
+#line 2786 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4348 "dhcp4_parser.cc"
+#line 4346 "dhcp4_parser.cc"
break;
case 812: // http_header_params: http_header_params ","
-#line 2794 "dhcp4_parser.yy"
+#line 2792 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4356 "dhcp4_parser.cc"
+#line 4354 "dhcp4_parser.cc"
break;
case 818: // $@120: %empty
-#line 2806 "dhcp4_parser.yy"
+#line 2804 "dhcp4_parser.yy"
{
ctx.unique("value", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4365 "dhcp4_parser.cc"
+#line 4363 "dhcp4_parser.cc"
break;
case 819: // header_value: "value" $@120 ":" "constant string"
-#line 2809 "dhcp4_parser.yy"
+#line 2807 "dhcp4_parser.yy"
{
ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("value", value);
ctx.leave();
}
-#line 4375 "dhcp4_parser.cc"
+#line 4373 "dhcp4_parser.cc"
break;
case 820: // $@121: %empty
-#line 2817 "dhcp4_parser.yy"
+#line 2815 "dhcp4_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4387 "dhcp4_parser.cc"
+#line 4385 "dhcp4_parser.cc"
break;
case 821: // authentication: "authentication" $@121 ":" "{" auth_params "}"
-#line 2823 "dhcp4_parser.yy"
+#line 2821 "dhcp4_parser.yy"
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4398 "dhcp4_parser.cc"
+#line 4396 "dhcp4_parser.cc"
break;
case 824: // auth_params: auth_params ","
-#line 2832 "dhcp4_parser.yy"
+#line 2830 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4406 "dhcp4_parser.cc"
+#line 4404 "dhcp4_parser.cc"
break;
case 832: // $@122: %empty
-#line 2846 "dhcp4_parser.yy"
+#line 2844 "dhcp4_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4415 "dhcp4_parser.cc"
+#line 4413 "dhcp4_parser.cc"
break;
case 833: // auth_type: "type" $@122 ":" auth_type_value
-#line 2849 "dhcp4_parser.yy"
+#line 2847 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4424 "dhcp4_parser.cc"
+#line 4422 "dhcp4_parser.cc"
break;
case 834: // auth_type_value: "basic"
-#line 2854 "dhcp4_parser.yy"
+#line 2852 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4430 "dhcp4_parser.cc"
+#line 4428 "dhcp4_parser.cc"
break;
case 835: // $@123: %empty
-#line 2857 "dhcp4_parser.yy"
+#line 2855 "dhcp4_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4439 "dhcp4_parser.cc"
+#line 4437 "dhcp4_parser.cc"
break;
case 836: // realm: "realm" $@123 ":" "constant string"
-#line 2860 "dhcp4_parser.yy"
+#line 2858 "dhcp4_parser.yy"
{
ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("realm", realm);
ctx.leave();
}
-#line 4449 "dhcp4_parser.cc"
+#line 4447 "dhcp4_parser.cc"
break;
case 837: // $@124: %empty
-#line 2866 "dhcp4_parser.yy"
+#line 2864 "dhcp4_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4458 "dhcp4_parser.cc"
+#line 4456 "dhcp4_parser.cc"
break;
case 838: // directory: "directory" $@124 ":" "constant string"
-#line 2869 "dhcp4_parser.yy"
+#line 2867 "dhcp4_parser.yy"
{
ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("directory", directory);
ctx.leave();
}
-#line 4468 "dhcp4_parser.cc"
+#line 4466 "dhcp4_parser.cc"
break;
case 839: // $@125: %empty
-#line 2875 "dhcp4_parser.yy"
+#line 2873 "dhcp4_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4480 "dhcp4_parser.cc"
+#line 4478 "dhcp4_parser.cc"
break;
case 840: // clients: "clients" $@125 ":" "[" clients_list "]"
-#line 2881 "dhcp4_parser.yy"
+#line 2879 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4489 "dhcp4_parser.cc"
+#line 4487 "dhcp4_parser.cc"
break;
case 845: // not_empty_clients_list: not_empty_clients_list ","
-#line 2892 "dhcp4_parser.yy"
+#line 2890 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4497 "dhcp4_parser.cc"
+#line 4495 "dhcp4_parser.cc"
break;
case 846: // $@126: %empty
-#line 2897 "dhcp4_parser.yy"
+#line 2895 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4507 "dhcp4_parser.cc"
+#line 4505 "dhcp4_parser.cc"
break;
case 847: // basic_auth: "{" $@126 clients_params "}"
-#line 2901 "dhcp4_parser.yy"
+#line 2899 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4515 "dhcp4_parser.cc"
+#line 4513 "dhcp4_parser.cc"
break;
case 850: // clients_params: clients_params ","
-#line 2907 "dhcp4_parser.yy"
+#line 2905 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4523 "dhcp4_parser.cc"
+#line 4521 "dhcp4_parser.cc"
break;
case 858: // $@127: %empty
-#line 2921 "dhcp4_parser.yy"
+#line 2919 "dhcp4_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4532 "dhcp4_parser.cc"
+#line 4530 "dhcp4_parser.cc"
break;
case 859: // user_file: "user-file" $@127 ":" "constant string"
-#line 2924 "dhcp4_parser.yy"
+#line 2922 "dhcp4_parser.yy"
{
ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user-file", user);
ctx.leave();
}
-#line 4542 "dhcp4_parser.cc"
+#line 4540 "dhcp4_parser.cc"
break;
case 860: // $@128: %empty
-#line 2930 "dhcp4_parser.yy"
+#line 2928 "dhcp4_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4551 "dhcp4_parser.cc"
+#line 4549 "dhcp4_parser.cc"
break;
case 861: // password_file: "password-file" $@128 ":" "constant string"
-#line 2933 "dhcp4_parser.yy"
+#line 2931 "dhcp4_parser.yy"
{
ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password-file", password);
ctx.leave();
}
-#line 4561 "dhcp4_parser.cc"
+#line 4559 "dhcp4_parser.cc"
break;
case 862: // $@129: %empty
-#line 2941 "dhcp4_parser.yy"
+#line 2939 "dhcp4_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4573 "dhcp4_parser.cc"
+#line 4571 "dhcp4_parser.cc"
break;
case 863: // dhcp_queue_control: "dhcp-queue-control" $@129 ":" "{" queue_control_params "}"
-#line 2947 "dhcp4_parser.yy"
+#line 2945 "dhcp4_parser.yy"
{
// The enable queue parameter is required.
ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4584 "dhcp4_parser.cc"
+#line 4582 "dhcp4_parser.cc"
break;
case 866: // queue_control_params: queue_control_params ","
-#line 2956 "dhcp4_parser.yy"
+#line 2954 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4592 "dhcp4_parser.cc"
+#line 4590 "dhcp4_parser.cc"
break;
case 873: // enable_queue: "enable-queue" ":" "boolean"
-#line 2969 "dhcp4_parser.yy"
+#line 2967 "dhcp4_parser.yy"
{
ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-queue", b);
}
-#line 4602 "dhcp4_parser.cc"
+#line 4600 "dhcp4_parser.cc"
break;
case 874: // $@130: %empty
-#line 2975 "dhcp4_parser.yy"
+#line 2973 "dhcp4_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4611 "dhcp4_parser.cc"
+#line 4609 "dhcp4_parser.cc"
break;
case 875: // queue_type: "queue-type" $@130 ":" "constant string"
-#line 2978 "dhcp4_parser.yy"
+#line 2976 "dhcp4_parser.yy"
{
ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("queue-type", qt);
ctx.leave();
}
-#line 4621 "dhcp4_parser.cc"
+#line 4619 "dhcp4_parser.cc"
break;
case 876: // capacity: "capacity" ":" "integer"
-#line 2984 "dhcp4_parser.yy"
+#line 2982 "dhcp4_parser.yy"
{
ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("capacity", c);
}
-#line 4631 "dhcp4_parser.cc"
+#line 4629 "dhcp4_parser.cc"
break;
case 877: // $@131: %empty
-#line 2990 "dhcp4_parser.yy"
+#line 2988 "dhcp4_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4640 "dhcp4_parser.cc"
+#line 4638 "dhcp4_parser.cc"
break;
case 878: // arbitrary_map_entry: "constant string" $@131 ":" value
-#line 2993 "dhcp4_parser.yy"
+#line 2991 "dhcp4_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4649 "dhcp4_parser.cc"
+#line 4647 "dhcp4_parser.cc"
break;
case 879: // $@132: %empty
-#line 3000 "dhcp4_parser.yy"
+#line 2998 "dhcp4_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4661 "dhcp4_parser.cc"
+#line 4659 "dhcp4_parser.cc"
break;
case 880: // dhcp_ddns: "dhcp-ddns" $@132 ":" "{" dhcp_ddns_params "}"
-#line 3006 "dhcp4_parser.yy"
+#line 3004 "dhcp4_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4672 "dhcp4_parser.cc"
+#line 4670 "dhcp4_parser.cc"
break;
case 881: // $@133: %empty
-#line 3013 "dhcp4_parser.yy"
+#line 3011 "dhcp4_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4682 "dhcp4_parser.cc"
+#line 4680 "dhcp4_parser.cc"
break;
case 882: // sub_dhcp_ddns: "{" $@133 dhcp_ddns_params "}"
-#line 3017 "dhcp4_parser.yy"
+#line 3015 "dhcp4_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 4692 "dhcp4_parser.cc"
+#line 4690 "dhcp4_parser.cc"
break;
case 885: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 3025 "dhcp4_parser.yy"
+#line 3023 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4700 "dhcp4_parser.cc"
+#line 4698 "dhcp4_parser.cc"
break;
case 897: // enable_updates: "enable-updates" ":" "boolean"
-#line 3043 "dhcp4_parser.yy"
+#line 3041 "dhcp4_parser.yy"
{
ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-updates", b);
}
-#line 4710 "dhcp4_parser.cc"
+#line 4708 "dhcp4_parser.cc"
break;
case 898: // $@134: %empty
-#line 3049 "dhcp4_parser.yy"
+#line 3047 "dhcp4_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4719 "dhcp4_parser.cc"
+#line 4717 "dhcp4_parser.cc"
break;
case 899: // server_ip: "server-ip" $@134 ":" "constant string"
-#line 3052 "dhcp4_parser.yy"
+#line 3050 "dhcp4_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-ip", s);
ctx.leave();
}
-#line 4729 "dhcp4_parser.cc"
+#line 4727 "dhcp4_parser.cc"
break;
case 900: // server_port: "server-port" ":" "integer"
-#line 3058 "dhcp4_parser.yy"
+#line 3056 "dhcp4_parser.yy"
{
ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-port", i);
}
-#line 4739 "dhcp4_parser.cc"
+#line 4737 "dhcp4_parser.cc"
break;
case 901: // $@135: %empty
-#line 3064 "dhcp4_parser.yy"
+#line 3062 "dhcp4_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4748 "dhcp4_parser.cc"
+#line 4746 "dhcp4_parser.cc"
break;
case 902: // sender_ip: "sender-ip" $@135 ":" "constant string"
-#line 3067 "dhcp4_parser.yy"
+#line 3065 "dhcp4_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-ip", s);
ctx.leave();
}
-#line 4758 "dhcp4_parser.cc"
+#line 4756 "dhcp4_parser.cc"
break;
case 903: // sender_port: "sender-port" ":" "integer"
-#line 3073 "dhcp4_parser.yy"
+#line 3071 "dhcp4_parser.yy"
{
ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-port", i);
}
-#line 4768 "dhcp4_parser.cc"
+#line 4766 "dhcp4_parser.cc"
break;
case 904: // max_queue_size: "max-queue-size" ":" "integer"
-#line 3079 "dhcp4_parser.yy"
+#line 3077 "dhcp4_parser.yy"
{
ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-queue-size", i);
}
-#line 4778 "dhcp4_parser.cc"
+#line 4776 "dhcp4_parser.cc"
break;
case 905: // $@136: %empty
-#line 3085 "dhcp4_parser.yy"
+#line 3083 "dhcp4_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4787 "dhcp4_parser.cc"
+#line 4785 "dhcp4_parser.cc"
break;
case 906: // ncr_protocol: "ncr-protocol" $@136 ":" ncr_protocol_value
-#line 3088 "dhcp4_parser.yy"
+#line 3086 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4796 "dhcp4_parser.cc"
+#line 4794 "dhcp4_parser.cc"
break;
case 907: // ncr_protocol_value: "udp"
-#line 3094 "dhcp4_parser.yy"
+#line 3092 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4802 "dhcp4_parser.cc"
+#line 4800 "dhcp4_parser.cc"
break;
case 908: // ncr_protocol_value: "tcp"
-#line 3095 "dhcp4_parser.yy"
+#line 3093 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4808 "dhcp4_parser.cc"
+#line 4806 "dhcp4_parser.cc"
break;
case 909: // $@137: %empty
-#line 3098 "dhcp4_parser.yy"
+#line 3096 "dhcp4_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4817 "dhcp4_parser.cc"
+#line 4815 "dhcp4_parser.cc"
break;
case 910: // ncr_format: "ncr-format" $@137 ":" "JSON"
-#line 3101 "dhcp4_parser.yy"
+#line 3099 "dhcp4_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4827 "dhcp4_parser.cc"
+#line 4825 "dhcp4_parser.cc"
break;
case 911: // $@138: %empty
-#line 3109 "dhcp4_parser.yy"
+#line 3107 "dhcp4_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 4839 "dhcp4_parser.cc"
+#line 4837 "dhcp4_parser.cc"
break;
case 912: // config_control: "config-control" $@138 ":" "{" config_control_params "}"
-#line 3115 "dhcp4_parser.yy"
+#line 3113 "dhcp4_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4849 "dhcp4_parser.cc"
+#line 4847 "dhcp4_parser.cc"
break;
case 913: // $@139: %empty
-#line 3121 "dhcp4_parser.yy"
+#line 3119 "dhcp4_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4859 "dhcp4_parser.cc"
+#line 4857 "dhcp4_parser.cc"
break;
case 914: // sub_config_control: "{" $@139 config_control_params "}"
-#line 3125 "dhcp4_parser.yy"
+#line 3123 "dhcp4_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 4868 "dhcp4_parser.cc"
+#line 4866 "dhcp4_parser.cc"
break;
case 917: // config_control_params: config_control_params ","
-#line 3133 "dhcp4_parser.yy"
+#line 3131 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4876 "dhcp4_parser.cc"
+#line 4874 "dhcp4_parser.cc"
break;
case 920: // $@140: %empty
-#line 3143 "dhcp4_parser.yy"
+#line 3141 "dhcp4_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 4888 "dhcp4_parser.cc"
+#line 4886 "dhcp4_parser.cc"
break;
case 921: // config_databases: "config-databases" $@140 ":" "[" database_list "]"
-#line 3149 "dhcp4_parser.yy"
+#line 3147 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4897 "dhcp4_parser.cc"
+#line 4895 "dhcp4_parser.cc"
break;
case 922: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 3154 "dhcp4_parser.yy"
+#line 3152 "dhcp4_parser.yy"
{
ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-fetch-wait-time", value);
}
-#line 4907 "dhcp4_parser.cc"
+#line 4905 "dhcp4_parser.cc"
break;
case 923: // $@141: %empty
-#line 3162 "dhcp4_parser.yy"
+#line 3160 "dhcp4_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 4919 "dhcp4_parser.cc"
+#line 4917 "dhcp4_parser.cc"
break;
case 924: // loggers: "loggers" $@141 ":" "[" loggers_entries "]"
-#line 3168 "dhcp4_parser.yy"
+#line 3166 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4928 "dhcp4_parser.cc"
+#line 4926 "dhcp4_parser.cc"
break;
case 927: // loggers_entries: loggers_entries ","
-#line 3177 "dhcp4_parser.yy"
+#line 3175 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4936 "dhcp4_parser.cc"
+#line 4934 "dhcp4_parser.cc"
break;
case 928: // $@142: %empty
-#line 3183 "dhcp4_parser.yy"
+#line 3181 "dhcp4_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 4946 "dhcp4_parser.cc"
+#line 4944 "dhcp4_parser.cc"
break;
case 929: // logger_entry: "{" $@142 logger_params "}"
-#line 3187 "dhcp4_parser.yy"
+#line 3185 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4954 "dhcp4_parser.cc"
+#line 4952 "dhcp4_parser.cc"
break;
case 932: // logger_params: logger_params ","
-#line 3193 "dhcp4_parser.yy"
+#line 3191 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4962 "dhcp4_parser.cc"
+#line 4960 "dhcp4_parser.cc"
break;
case 940: // debuglevel: "debuglevel" ":" "integer"
-#line 3207 "dhcp4_parser.yy"
+#line 3205 "dhcp4_parser.yy"
{
ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 4972 "dhcp4_parser.cc"
+#line 4970 "dhcp4_parser.cc"
break;
case 941: // $@143: %empty
-#line 3213 "dhcp4_parser.yy"
+#line 3211 "dhcp4_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4981 "dhcp4_parser.cc"
+#line 4979 "dhcp4_parser.cc"
break;
case 942: // severity: "severity" $@143 ":" "constant string"
-#line 3216 "dhcp4_parser.yy"
+#line 3214 "dhcp4_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 4991 "dhcp4_parser.cc"
+#line 4989 "dhcp4_parser.cc"
break;
case 943: // $@144: %empty
-#line 3222 "dhcp4_parser.yy"
+#line 3220 "dhcp4_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 5003 "dhcp4_parser.cc"
+#line 5001 "dhcp4_parser.cc"
break;
case 944: // output_options_list: "output-options" $@144 ":" "[" output_options_list_content "]"
-#line 3228 "dhcp4_parser.yy"
+#line 3226 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5012 "dhcp4_parser.cc"
+#line 5010 "dhcp4_parser.cc"
break;
case 947: // output_options_list_content: output_options_list_content ","
-#line 3235 "dhcp4_parser.yy"
+#line 3233 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5020 "dhcp4_parser.cc"
+#line 5018 "dhcp4_parser.cc"
break;
case 948: // $@145: %empty
-#line 3240 "dhcp4_parser.yy"
+#line 3238 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 5030 "dhcp4_parser.cc"
+#line 5028 "dhcp4_parser.cc"
break;
case 949: // output_entry: "{" $@145 output_params_list "}"
-#line 3244 "dhcp4_parser.yy"
+#line 3242 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 5038 "dhcp4_parser.cc"
+#line 5036 "dhcp4_parser.cc"
break;
case 952: // output_params_list: output_params_list ","
-#line 3250 "dhcp4_parser.yy"
+#line 3248 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5046 "dhcp4_parser.cc"
+#line 5044 "dhcp4_parser.cc"
break;
case 958: // $@146: %empty
-#line 3262 "dhcp4_parser.yy"
+#line 3260 "dhcp4_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5055 "dhcp4_parser.cc"
+#line 5053 "dhcp4_parser.cc"
break;
case 959: // output: "output" $@146 ":" "constant string"
-#line 3265 "dhcp4_parser.yy"
+#line 3263 "dhcp4_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 5065 "dhcp4_parser.cc"
+#line 5063 "dhcp4_parser.cc"
break;
case 960: // flush: "flush" ":" "boolean"
-#line 3271 "dhcp4_parser.yy"
+#line 3269 "dhcp4_parser.yy"
{
ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 5075 "dhcp4_parser.cc"
+#line 5073 "dhcp4_parser.cc"
break;
case 961: // maxsize: "maxsize" ":" "integer"
-#line 3277 "dhcp4_parser.yy"
+#line 3275 "dhcp4_parser.yy"
{
ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 5085 "dhcp4_parser.cc"
+#line 5083 "dhcp4_parser.cc"
break;
case 962: // maxver: "maxver" ":" "integer"
-#line 3283 "dhcp4_parser.yy"
+#line 3281 "dhcp4_parser.yy"
{
ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 5095 "dhcp4_parser.cc"
+#line 5093 "dhcp4_parser.cc"
break;
case 963: // $@147: %empty
-#line 3289 "dhcp4_parser.yy"
+#line 3287 "dhcp4_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5104 "dhcp4_parser.cc"
+#line 5102 "dhcp4_parser.cc"
break;
case 964: // pattern: "pattern" $@147 ":" "constant string"
-#line 3292 "dhcp4_parser.yy"
+#line 3290 "dhcp4_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pattern", sev);
ctx.leave();
}
-#line 5114 "dhcp4_parser.cc"
+#line 5112 "dhcp4_parser.cc"
break;
case 965: // $@148: %empty
-#line 3298 "dhcp4_parser.yy"
+#line 3296 "dhcp4_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 5126 "dhcp4_parser.cc"
+#line 5124 "dhcp4_parser.cc"
break;
case 966: // compatibility: "compatibility" $@148 ":" "{" compatibility_params "}"
-#line 3304 "dhcp4_parser.yy"
+#line 3302 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5135 "dhcp4_parser.cc"
+#line 5133 "dhcp4_parser.cc"
break;
case 969: // compatibility_params: compatibility_params ","
-#line 3311 "dhcp4_parser.yy"
+#line 3309 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5143 "dhcp4_parser.cc"
+#line 5141 "dhcp4_parser.cc"
break;
case 975: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3323 "dhcp4_parser.yy"
+#line 3321 "dhcp4_parser.yy"
{
ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lenient-option-parsing", b);
}
-#line 5153 "dhcp4_parser.cc"
+#line 5151 "dhcp4_parser.cc"
break;
case 976: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
-#line 3329 "dhcp4_parser.yy"
+#line 3327 "dhcp4_parser.yy"
{
ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ignore-dhcp-server-identifier", b);
}
-#line 5163 "dhcp4_parser.cc"
+#line 5161 "dhcp4_parser.cc"
break;
case 977: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
-#line 3335 "dhcp4_parser.yy"
+#line 3333 "dhcp4_parser.yy"
{
ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ignore-rai-link-selection", b);
}
-#line 5173 "dhcp4_parser.cc"
+#line 5171 "dhcp4_parser.cc"
break;
case 978: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
-#line 3341 "dhcp4_parser.yy"
+#line 3339 "dhcp4_parser.yy"
{
ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("exclude-first-last-24", b);
}
-#line 5183 "dhcp4_parser.cc"
+#line 5181 "dhcp4_parser.cc"
break;
-#line 5187 "dhcp4_parser.cc"
+#line 5185 "dhcp4_parser.cc"
default:
break;
2629, 2635, 2643, 2651, 2651, 2663, 2663, 2675, 2676, 2679,
2680, 2681, 2686, 2686, 2694, 2695, 2696, 2701, 2702, 2703,
2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713,
- 2716, 2716, 2725, 2726, 2727, 2730, 2730, 2740, 2740, 2750,
- 2756, 2762, 2762, 2773, 2774, 2777, 2778, 2779, 2784, 2784,
- 2792, 2793, 2794, 2799, 2800, 2801, 2802, 2803, 2806, 2806,
- 2817, 2817, 2830, 2831, 2832, 2837, 2838, 2839, 2840, 2841,
- 2842, 2843, 2846, 2846, 2854, 2857, 2857, 2866, 2866, 2875,
- 2875, 2886, 2887, 2890, 2891, 2892, 2897, 2897, 2905, 2906,
- 2907, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2921, 2921,
- 2930, 2930, 2941, 2941, 2954, 2955, 2956, 2961, 2962, 2963,
- 2964, 2965, 2966, 2969, 2975, 2975, 2984, 2990, 2990, 3000,
- 3000, 3013, 3013, 3023, 3024, 3025, 3030, 3031, 3032, 3033,
- 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3043, 3049, 3049,
- 3058, 3064, 3064, 3073, 3079, 3085, 3085, 3094, 3095, 3098,
- 3098, 3109, 3109, 3121, 3121, 3131, 3132, 3133, 3139, 3140,
- 3143, 3143, 3154, 3162, 3162, 3175, 3176, 3177, 3183, 3183,
- 3191, 3192, 3193, 3198, 3199, 3200, 3201, 3202, 3203, 3204,
- 3207, 3213, 3213, 3222, 3222, 3233, 3234, 3235, 3240, 3240,
- 3248, 3249, 3250, 3255, 3256, 3257, 3258, 3259, 3262, 3262,
- 3271, 3277, 3283, 3289, 3289, 3298, 3298, 3309, 3310, 3311,
- 3316, 3317, 3318, 3319, 3320, 3323, 3329, 3335, 3341
+ 2716, 2716, 2725, 2726, 2727, 2730, 2730, 2739, 2739, 2748,
+ 2754, 2760, 2760, 2771, 2772, 2775, 2776, 2777, 2782, 2782,
+ 2790, 2791, 2792, 2797, 2798, 2799, 2800, 2801, 2804, 2804,
+ 2815, 2815, 2828, 2829, 2830, 2835, 2836, 2837, 2838, 2839,
+ 2840, 2841, 2844, 2844, 2852, 2855, 2855, 2864, 2864, 2873,
+ 2873, 2884, 2885, 2888, 2889, 2890, 2895, 2895, 2903, 2904,
+ 2905, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2919, 2919,
+ 2928, 2928, 2939, 2939, 2952, 2953, 2954, 2959, 2960, 2961,
+ 2962, 2963, 2964, 2967, 2973, 2973, 2982, 2988, 2988, 2998,
+ 2998, 3011, 3011, 3021, 3022, 3023, 3028, 3029, 3030, 3031,
+ 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3041, 3047, 3047,
+ 3056, 3062, 3062, 3071, 3077, 3083, 3083, 3092, 3093, 3096,
+ 3096, 3107, 3107, 3119, 3119, 3129, 3130, 3131, 3137, 3138,
+ 3141, 3141, 3152, 3160, 3160, 3173, 3174, 3175, 3181, 3181,
+ 3189, 3190, 3191, 3196, 3197, 3198, 3199, 3200, 3201, 3202,
+ 3205, 3211, 3211, 3220, 3220, 3231, 3232, 3233, 3238, 3238,
+ 3246, 3247, 3248, 3253, 3254, 3255, 3256, 3257, 3260, 3260,
+ 3269, 3275, 3281, 3287, 3287, 3296, 3296, 3307, 3308, 3309,
+ 3314, 3315, 3316, 3317, 3318, 3321, 3327, 3333, 3339
};
void
#line 14 "dhcp4_parser.yy"
} } // isc::dhcp
-#line 7021 "dhcp4_parser.cc"
+#line 7019 "dhcp4_parser.cc"
-#line 3347 "dhcp4_parser.yy"
+#line 3345 "dhcp4_parser.yy"
void
#line 2882 "dhcp6_parser.yy"
{
ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
- ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4417 "dhcp6_parser.cc"
+#line 4416 "dhcp6_parser.cc"
break;
case 839: // control_socket_name: "socket-name" $@121 ":" "constant string"
-#line 2886 "dhcp6_parser.yy"
+#line 2885 "dhcp6_parser.yy"
{
ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-name", name);
ctx.leave();
}
-#line 4427 "dhcp6_parser.cc"
+#line 4426 "dhcp6_parser.cc"
break;
case 840: // $@122: %empty
-#line 2892 "dhcp6_parser.yy"
+#line 2891 "dhcp6_parser.yy"
{
ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location));
- ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4437 "dhcp6_parser.cc"
+#line 4435 "dhcp6_parser.cc"
break;
case 841: // control_socket_address: "socket-address" $@122 ":" "constant string"
-#line 2896 "dhcp6_parser.yy"
+#line 2894 "dhcp6_parser.yy"
{
ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-address", address);
ctx.leave();
}
-#line 4447 "dhcp6_parser.cc"
+#line 4445 "dhcp6_parser.cc"
break;
case 842: // control_socket_port: "socket-port" ":" "integer"
-#line 2902 "dhcp6_parser.yy"
+#line 2900 "dhcp6_parser.yy"
{
ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location));
ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("socket-port", port);
}
-#line 4457 "dhcp6_parser.cc"
+#line 4455 "dhcp6_parser.cc"
break;
case 843: // cert_required: "cert-required" ":" "boolean"
-#line 2908 "dhcp6_parser.yy"
+#line 2906 "dhcp6_parser.yy"
{
ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location));
ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cert-required", req);
}
-#line 4467 "dhcp6_parser.cc"
+#line 4465 "dhcp6_parser.cc"
break;
case 844: // $@123: %empty
-#line 2914 "dhcp6_parser.yy"
+#line 2912 "dhcp6_parser.yy"
{
ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.HTTP_HEADERS);
}
-#line 4479 "dhcp6_parser.cc"
+#line 4477 "dhcp6_parser.cc"
break;
case 845: // http_headers: "http-headers" $@123 ":" "[" http_header_list "]"
-#line 2920 "dhcp6_parser.yy"
+#line 2918 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4488 "dhcp6_parser.cc"
+#line 4486 "dhcp6_parser.cc"
break;
case 850: // not_empty_http_header_list: not_empty_http_header_list ","
-#line 2931 "dhcp6_parser.yy"
+#line 2929 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4496 "dhcp6_parser.cc"
+#line 4494 "dhcp6_parser.cc"
break;
case 851: // $@124: %empty
-#line 2936 "dhcp6_parser.yy"
+#line 2934 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4506 "dhcp6_parser.cc"
+#line 4504 "dhcp6_parser.cc"
break;
case 852: // http_header: "{" $@124 http_header_params "}"
-#line 2940 "dhcp6_parser.yy"
+#line 2938 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4514 "dhcp6_parser.cc"
+#line 4512 "dhcp6_parser.cc"
break;
case 855: // http_header_params: http_header_params ","
-#line 2946 "dhcp6_parser.yy"
+#line 2944 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4522 "dhcp6_parser.cc"
+#line 4520 "dhcp6_parser.cc"
break;
case 861: // $@125: %empty
-#line 2958 "dhcp6_parser.yy"
+#line 2956 "dhcp6_parser.yy"
{
ctx.unique("value", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4531 "dhcp6_parser.cc"
+#line 4529 "dhcp6_parser.cc"
break;
case 862: // header_value: "value" $@125 ":" "constant string"
-#line 2961 "dhcp6_parser.yy"
+#line 2959 "dhcp6_parser.yy"
{
ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("value", value);
ctx.leave();
}
-#line 4541 "dhcp6_parser.cc"
+#line 4539 "dhcp6_parser.cc"
break;
case 863: // $@126: %empty
-#line 2969 "dhcp6_parser.yy"
+#line 2967 "dhcp6_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4553 "dhcp6_parser.cc"
+#line 4551 "dhcp6_parser.cc"
break;
case 864: // authentication: "authentication" $@126 ":" "{" auth_params "}"
-#line 2975 "dhcp6_parser.yy"
+#line 2973 "dhcp6_parser.yy"
{
// The type parameter is required
ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4564 "dhcp6_parser.cc"
+#line 4562 "dhcp6_parser.cc"
break;
case 867: // auth_params: auth_params ","
-#line 2984 "dhcp6_parser.yy"
+#line 2982 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4572 "dhcp6_parser.cc"
+#line 4570 "dhcp6_parser.cc"
break;
case 875: // $@127: %empty
-#line 2998 "dhcp6_parser.yy"
+#line 2996 "dhcp6_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4581 "dhcp6_parser.cc"
+#line 4579 "dhcp6_parser.cc"
break;
case 876: // auth_type: "type" $@127 ":" auth_type_value
-#line 3001 "dhcp6_parser.yy"
+#line 2999 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4590 "dhcp6_parser.cc"
+#line 4588 "dhcp6_parser.cc"
break;
case 877: // auth_type_value: "basic"
-#line 3006 "dhcp6_parser.yy"
+#line 3004 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4596 "dhcp6_parser.cc"
+#line 4594 "dhcp6_parser.cc"
break;
case 878: // $@128: %empty
-#line 3009 "dhcp6_parser.yy"
+#line 3007 "dhcp6_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4605 "dhcp6_parser.cc"
+#line 4603 "dhcp6_parser.cc"
break;
case 879: // realm: "realm" $@128 ":" "constant string"
-#line 3012 "dhcp6_parser.yy"
+#line 3010 "dhcp6_parser.yy"
{
ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("realm", realm);
ctx.leave();
}
-#line 4615 "dhcp6_parser.cc"
+#line 4613 "dhcp6_parser.cc"
break;
case 880: // $@129: %empty
-#line 3018 "dhcp6_parser.yy"
+#line 3016 "dhcp6_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4624 "dhcp6_parser.cc"
+#line 4622 "dhcp6_parser.cc"
break;
case 881: // directory: "directory" $@129 ":" "constant string"
-#line 3021 "dhcp6_parser.yy"
+#line 3019 "dhcp6_parser.yy"
{
ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("directory", directory);
ctx.leave();
}
-#line 4634 "dhcp6_parser.cc"
+#line 4632 "dhcp6_parser.cc"
break;
case 882: // $@130: %empty
-#line 3027 "dhcp6_parser.yy"
+#line 3025 "dhcp6_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4646 "dhcp6_parser.cc"
+#line 4644 "dhcp6_parser.cc"
break;
case 883: // clients: "clients" $@130 ":" "[" clients_list "]"
-#line 3033 "dhcp6_parser.yy"
+#line 3031 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4655 "dhcp6_parser.cc"
+#line 4653 "dhcp6_parser.cc"
break;
case 888: // not_empty_clients_list: not_empty_clients_list ","
-#line 3044 "dhcp6_parser.yy"
+#line 3042 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4663 "dhcp6_parser.cc"
+#line 4661 "dhcp6_parser.cc"
break;
case 889: // $@131: %empty
-#line 3049 "dhcp6_parser.yy"
+#line 3047 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4673 "dhcp6_parser.cc"
+#line 4671 "dhcp6_parser.cc"
break;
case 890: // basic_auth: "{" $@131 clients_params "}"
-#line 3053 "dhcp6_parser.yy"
+#line 3051 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4681 "dhcp6_parser.cc"
+#line 4679 "dhcp6_parser.cc"
break;
case 893: // clients_params: clients_params ","
-#line 3059 "dhcp6_parser.yy"
+#line 3057 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4689 "dhcp6_parser.cc"
+#line 4687 "dhcp6_parser.cc"
break;
case 901: // $@132: %empty
-#line 3073 "dhcp6_parser.yy"
+#line 3071 "dhcp6_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4698 "dhcp6_parser.cc"
+#line 4696 "dhcp6_parser.cc"
break;
case 902: // user_file: "user-file" $@132 ":" "constant string"
-#line 3076 "dhcp6_parser.yy"
+#line 3074 "dhcp6_parser.yy"
{
ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user-file", user);
ctx.leave();
}
-#line 4708 "dhcp6_parser.cc"
+#line 4706 "dhcp6_parser.cc"
break;
case 903: // $@133: %empty
-#line 3082 "dhcp6_parser.yy"
+#line 3080 "dhcp6_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4717 "dhcp6_parser.cc"
+#line 4715 "dhcp6_parser.cc"
break;
case 904: // password_file: "password-file" $@133 ":" "constant string"
-#line 3085 "dhcp6_parser.yy"
+#line 3083 "dhcp6_parser.yy"
{
ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password-file", password);
ctx.leave();
}
-#line 4727 "dhcp6_parser.cc"
+#line 4725 "dhcp6_parser.cc"
break;
case 905: // $@134: %empty
-#line 3093 "dhcp6_parser.yy"
+#line 3091 "dhcp6_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4739 "dhcp6_parser.cc"
+#line 4737 "dhcp6_parser.cc"
break;
case 906: // dhcp_queue_control: "dhcp-queue-control" $@134 ":" "{" queue_control_params "}"
-#line 3099 "dhcp6_parser.yy"
+#line 3097 "dhcp6_parser.yy"
{
// The enable queue parameter is required.
ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4750 "dhcp6_parser.cc"
+#line 4748 "dhcp6_parser.cc"
break;
case 909: // queue_control_params: queue_control_params ","
-#line 3108 "dhcp6_parser.yy"
+#line 3106 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4758 "dhcp6_parser.cc"
+#line 4756 "dhcp6_parser.cc"
break;
case 916: // enable_queue: "enable-queue" ":" "boolean"
-#line 3121 "dhcp6_parser.yy"
+#line 3119 "dhcp6_parser.yy"
{
ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-queue", b);
}
-#line 4768 "dhcp6_parser.cc"
+#line 4766 "dhcp6_parser.cc"
break;
case 917: // $@135: %empty
-#line 3127 "dhcp6_parser.yy"
+#line 3125 "dhcp6_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4777 "dhcp6_parser.cc"
+#line 4775 "dhcp6_parser.cc"
break;
case 918: // queue_type: "queue-type" $@135 ":" "constant string"
-#line 3130 "dhcp6_parser.yy"
+#line 3128 "dhcp6_parser.yy"
{
ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("queue-type", qt);
ctx.leave();
}
-#line 4787 "dhcp6_parser.cc"
+#line 4785 "dhcp6_parser.cc"
break;
case 919: // capacity: "capacity" ":" "integer"
-#line 3136 "dhcp6_parser.yy"
+#line 3134 "dhcp6_parser.yy"
{
ctx.unique("capacity", ctx.loc2pos(yystack_[2].location));
ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("capacity", c);
}
-#line 4797 "dhcp6_parser.cc"
+#line 4795 "dhcp6_parser.cc"
break;
case 920: // $@136: %empty
-#line 3142 "dhcp6_parser.yy"
+#line 3140 "dhcp6_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4806 "dhcp6_parser.cc"
+#line 4804 "dhcp6_parser.cc"
break;
case 921: // arbitrary_map_entry: "constant string" $@136 ":" value
-#line 3145 "dhcp6_parser.yy"
+#line 3143 "dhcp6_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4815 "dhcp6_parser.cc"
+#line 4813 "dhcp6_parser.cc"
break;
case 922: // $@137: %empty
-#line 3152 "dhcp6_parser.yy"
+#line 3150 "dhcp6_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4827 "dhcp6_parser.cc"
+#line 4825 "dhcp6_parser.cc"
break;
case 923: // dhcp_ddns: "dhcp-ddns" $@137 ":" "{" dhcp_ddns_params "}"
-#line 3158 "dhcp6_parser.yy"
+#line 3156 "dhcp6_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4838 "dhcp6_parser.cc"
+#line 4836 "dhcp6_parser.cc"
break;
case 924: // $@138: %empty
-#line 3165 "dhcp6_parser.yy"
+#line 3163 "dhcp6_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4848 "dhcp6_parser.cc"
+#line 4846 "dhcp6_parser.cc"
break;
case 925: // sub_dhcp_ddns: "{" $@138 dhcp_ddns_params "}"
-#line 3169 "dhcp6_parser.yy"
+#line 3167 "dhcp6_parser.yy"
{
// The enable updates DHCP DDNS parameter is required.
ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 4858 "dhcp6_parser.cc"
+#line 4856 "dhcp6_parser.cc"
break;
case 928: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 3177 "dhcp6_parser.yy"
+#line 3175 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4866 "dhcp6_parser.cc"
+#line 4864 "dhcp6_parser.cc"
break;
case 940: // enable_updates: "enable-updates" ":" "boolean"
-#line 3195 "dhcp6_parser.yy"
+#line 3193 "dhcp6_parser.yy"
{
ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("enable-updates", b);
}
-#line 4876 "dhcp6_parser.cc"
+#line 4874 "dhcp6_parser.cc"
break;
case 941: // $@139: %empty
-#line 3201 "dhcp6_parser.yy"
+#line 3199 "dhcp6_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4885 "dhcp6_parser.cc"
+#line 4883 "dhcp6_parser.cc"
break;
case 942: // server_ip: "server-ip" $@139 ":" "constant string"
-#line 3204 "dhcp6_parser.yy"
+#line 3202 "dhcp6_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-ip", s);
ctx.leave();
}
-#line 4895 "dhcp6_parser.cc"
+#line 4893 "dhcp6_parser.cc"
break;
case 943: // server_port: "server-port" ":" "integer"
-#line 3210 "dhcp6_parser.yy"
+#line 3208 "dhcp6_parser.yy"
{
ctx.unique("server-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("server-port", i);
}
-#line 4905 "dhcp6_parser.cc"
+#line 4903 "dhcp6_parser.cc"
break;
case 944: // $@140: %empty
-#line 3216 "dhcp6_parser.yy"
+#line 3214 "dhcp6_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4914 "dhcp6_parser.cc"
+#line 4912 "dhcp6_parser.cc"
break;
case 945: // sender_ip: "sender-ip" $@140 ":" "constant string"
-#line 3219 "dhcp6_parser.yy"
+#line 3217 "dhcp6_parser.yy"
{
ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-ip", s);
ctx.leave();
}
-#line 4924 "dhcp6_parser.cc"
+#line 4922 "dhcp6_parser.cc"
break;
case 946: // sender_port: "sender-port" ":" "integer"
-#line 3225 "dhcp6_parser.yy"
+#line 3223 "dhcp6_parser.yy"
{
ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("sender-port", i);
}
-#line 4934 "dhcp6_parser.cc"
+#line 4932 "dhcp6_parser.cc"
break;
case 947: // max_queue_size: "max-queue-size" ":" "integer"
-#line 3231 "dhcp6_parser.yy"
+#line 3229 "dhcp6_parser.yy"
{
ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location));
ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("max-queue-size", i);
}
-#line 4944 "dhcp6_parser.cc"
+#line 4942 "dhcp6_parser.cc"
break;
case 948: // $@141: %empty
-#line 3237 "dhcp6_parser.yy"
+#line 3235 "dhcp6_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4953 "dhcp6_parser.cc"
+#line 4951 "dhcp6_parser.cc"
break;
case 949: // ncr_protocol: "ncr-protocol" $@141 ":" ncr_protocol_value
-#line 3240 "dhcp6_parser.yy"
+#line 3238 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4962 "dhcp6_parser.cc"
+#line 4960 "dhcp6_parser.cc"
break;
case 950: // ncr_protocol_value: "UDP"
-#line 3246 "dhcp6_parser.yy"
+#line 3244 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4968 "dhcp6_parser.cc"
+#line 4966 "dhcp6_parser.cc"
break;
case 951: // ncr_protocol_value: "TCP"
-#line 3247 "dhcp6_parser.yy"
+#line 3245 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4974 "dhcp6_parser.cc"
+#line 4972 "dhcp6_parser.cc"
break;
case 952: // $@142: %empty
-#line 3250 "dhcp6_parser.yy"
+#line 3248 "dhcp6_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4983 "dhcp6_parser.cc"
+#line 4981 "dhcp6_parser.cc"
break;
case 953: // ncr_format: "ncr-format" $@142 ":" "JSON"
-#line 3253 "dhcp6_parser.yy"
+#line 3251 "dhcp6_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4993 "dhcp6_parser.cc"
+#line 4991 "dhcp6_parser.cc"
break;
case 954: // $@143: %empty
-#line 3261 "dhcp6_parser.yy"
+#line 3259 "dhcp6_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 5005 "dhcp6_parser.cc"
+#line 5003 "dhcp6_parser.cc"
break;
case 955: // config_control: "config-control" $@143 ":" "{" config_control_params "}"
-#line 3267 "dhcp6_parser.yy"
+#line 3265 "dhcp6_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5015 "dhcp6_parser.cc"
+#line 5013 "dhcp6_parser.cc"
break;
case 956: // $@144: %empty
-#line 3273 "dhcp6_parser.yy"
+#line 3271 "dhcp6_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 5025 "dhcp6_parser.cc"
+#line 5023 "dhcp6_parser.cc"
break;
case 957: // sub_config_control: "{" $@144 config_control_params "}"
-#line 3277 "dhcp6_parser.yy"
+#line 3275 "dhcp6_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 5034 "dhcp6_parser.cc"
+#line 5032 "dhcp6_parser.cc"
break;
case 960: // config_control_params: config_control_params ","
-#line 3285 "dhcp6_parser.yy"
+#line 3283 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5042 "dhcp6_parser.cc"
+#line 5040 "dhcp6_parser.cc"
break;
case 963: // $@145: %empty
-#line 3295 "dhcp6_parser.yy"
+#line 3293 "dhcp6_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 5054 "dhcp6_parser.cc"
+#line 5052 "dhcp6_parser.cc"
break;
case 964: // config_databases: "config-databases" $@145 ":" "[" database_list "]"
-#line 3301 "dhcp6_parser.yy"
+#line 3299 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5063 "dhcp6_parser.cc"
+#line 5061 "dhcp6_parser.cc"
break;
case 965: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 3306 "dhcp6_parser.yy"
+#line 3304 "dhcp6_parser.yy"
{
ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location));
ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("config-fetch-wait-time", value);
}
-#line 5073 "dhcp6_parser.cc"
+#line 5071 "dhcp6_parser.cc"
break;
case 966: // $@146: %empty
-#line 3314 "dhcp6_parser.yy"
+#line 3312 "dhcp6_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 5085 "dhcp6_parser.cc"
+#line 5083 "dhcp6_parser.cc"
break;
case 967: // loggers: "loggers" $@146 ":" "[" loggers_entries "]"
-#line 3320 "dhcp6_parser.yy"
+#line 3318 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5094 "dhcp6_parser.cc"
+#line 5092 "dhcp6_parser.cc"
break;
case 970: // loggers_entries: loggers_entries ","
-#line 3329 "dhcp6_parser.yy"
+#line 3327 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5102 "dhcp6_parser.cc"
+#line 5100 "dhcp6_parser.cc"
break;
case 971: // $@147: %empty
-#line 3335 "dhcp6_parser.yy"
+#line 3333 "dhcp6_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 5112 "dhcp6_parser.cc"
+#line 5110 "dhcp6_parser.cc"
break;
case 972: // logger_entry: "{" $@147 logger_params "}"
-#line 3339 "dhcp6_parser.yy"
+#line 3337 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 5120 "dhcp6_parser.cc"
+#line 5118 "dhcp6_parser.cc"
break;
case 975: // logger_params: logger_params ","
-#line 3345 "dhcp6_parser.yy"
+#line 3343 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5128 "dhcp6_parser.cc"
+#line 5126 "dhcp6_parser.cc"
break;
case 983: // debuglevel: "debuglevel" ":" "integer"
-#line 3359 "dhcp6_parser.yy"
+#line 3357 "dhcp6_parser.yy"
{
ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location));
ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("debuglevel", dl);
}
-#line 5138 "dhcp6_parser.cc"
+#line 5136 "dhcp6_parser.cc"
break;
case 984: // $@148: %empty
-#line 3365 "dhcp6_parser.yy"
+#line 3363 "dhcp6_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5147 "dhcp6_parser.cc"
+#line 5145 "dhcp6_parser.cc"
break;
case 985: // severity: "severity" $@148 ":" "constant string"
-#line 3368 "dhcp6_parser.yy"
+#line 3366 "dhcp6_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("severity", sev);
ctx.leave();
}
-#line 5157 "dhcp6_parser.cc"
+#line 5155 "dhcp6_parser.cc"
break;
case 986: // $@149: %empty
-#line 3374 "dhcp6_parser.yy"
+#line 3372 "dhcp6_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 5169 "dhcp6_parser.cc"
+#line 5167 "dhcp6_parser.cc"
break;
case 987: // output_options_list: "output-options" $@149 ":" "[" output_options_list_content "]"
-#line 3380 "dhcp6_parser.yy"
+#line 3378 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5178 "dhcp6_parser.cc"
+#line 5176 "dhcp6_parser.cc"
break;
case 990: // output_options_list_content: output_options_list_content ","
-#line 3387 "dhcp6_parser.yy"
+#line 3385 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5186 "dhcp6_parser.cc"
+#line 5184 "dhcp6_parser.cc"
break;
case 991: // $@150: %empty
-#line 3392 "dhcp6_parser.yy"
+#line 3390 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 5196 "dhcp6_parser.cc"
+#line 5194 "dhcp6_parser.cc"
break;
case 992: // output_entry: "{" $@150 output_params_list "}"
-#line 3396 "dhcp6_parser.yy"
+#line 3394 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 5204 "dhcp6_parser.cc"
+#line 5202 "dhcp6_parser.cc"
break;
case 995: // output_params_list: output_params_list ","
-#line 3402 "dhcp6_parser.yy"
+#line 3400 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5212 "dhcp6_parser.cc"
+#line 5210 "dhcp6_parser.cc"
break;
case 1001: // $@151: %empty
-#line 3414 "dhcp6_parser.yy"
+#line 3412 "dhcp6_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5221 "dhcp6_parser.cc"
+#line 5219 "dhcp6_parser.cc"
break;
case 1002: // output: "output" $@151 ":" "constant string"
-#line 3417 "dhcp6_parser.yy"
+#line 3415 "dhcp6_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("output", sev);
ctx.leave();
}
-#line 5231 "dhcp6_parser.cc"
+#line 5229 "dhcp6_parser.cc"
break;
case 1003: // flush: "flush" ":" "boolean"
-#line 3423 "dhcp6_parser.yy"
+#line 3421 "dhcp6_parser.yy"
{
ctx.unique("flush", ctx.loc2pos(yystack_[2].location));
ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("flush", flush);
}
-#line 5241 "dhcp6_parser.cc"
+#line 5239 "dhcp6_parser.cc"
break;
case 1004: // maxsize: "maxsize" ":" "integer"
-#line 3429 "dhcp6_parser.yy"
+#line 3427 "dhcp6_parser.yy"
{
ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location));
ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxsize", maxsize);
}
-#line 5251 "dhcp6_parser.cc"
+#line 5249 "dhcp6_parser.cc"
break;
case 1005: // maxver: "maxver" ":" "integer"
-#line 3435 "dhcp6_parser.yy"
+#line 3433 "dhcp6_parser.yy"
{
ctx.unique("maxver", ctx.loc2pos(yystack_[2].location));
ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("maxver", maxver);
}
-#line 5261 "dhcp6_parser.cc"
+#line 5259 "dhcp6_parser.cc"
break;
case 1006: // $@152: %empty
-#line 3441 "dhcp6_parser.yy"
+#line 3439 "dhcp6_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5270 "dhcp6_parser.cc"
+#line 5268 "dhcp6_parser.cc"
break;
case 1007: // pattern: "pattern" $@152 ":" "constant string"
-#line 3444 "dhcp6_parser.yy"
+#line 3442 "dhcp6_parser.yy"
{
ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("pattern", sev);
ctx.leave();
}
-#line 5280 "dhcp6_parser.cc"
+#line 5278 "dhcp6_parser.cc"
break;
case 1008: // $@153: %empty
-#line 3450 "dhcp6_parser.yy"
+#line 3448 "dhcp6_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 5292 "dhcp6_parser.cc"
+#line 5290 "dhcp6_parser.cc"
break;
case 1009: // compatibility: "compatibility" $@153 ":" "{" compatibility_params "}"
-#line 3456 "dhcp6_parser.yy"
+#line 3454 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5301 "dhcp6_parser.cc"
+#line 5299 "dhcp6_parser.cc"
break;
case 1012: // compatibility_params: compatibility_params ","
-#line 3463 "dhcp6_parser.yy"
+#line 3461 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5309 "dhcp6_parser.cc"
+#line 5307 "dhcp6_parser.cc"
break;
case 1015: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3472 "dhcp6_parser.yy"
+#line 3470 "dhcp6_parser.yy"
{
ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("lenient-option-parsing", b);
}
-#line 5319 "dhcp6_parser.cc"
+#line 5317 "dhcp6_parser.cc"
break;
-#line 5323 "dhcp6_parser.cc"
+#line 5321 "dhcp6_parser.cc"
default:
break;
2827, 2828, 2831, 2832, 2833, 2838, 2838, 2846, 2847, 2848,
2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862,
2863, 2864, 2865, 2868, 2868, 2877, 2878, 2879, 2882, 2882,
- 2892, 2892, 2902, 2908, 2914, 2914, 2925, 2926, 2929, 2930,
- 2931, 2936, 2936, 2944, 2945, 2946, 2951, 2952, 2953, 2954,
- 2955, 2958, 2958, 2969, 2969, 2982, 2983, 2984, 2989, 2990,
- 2991, 2992, 2993, 2994, 2995, 2998, 2998, 3006, 3009, 3009,
- 3018, 3018, 3027, 3027, 3038, 3039, 3042, 3043, 3044, 3049,
- 3049, 3057, 3058, 3059, 3064, 3065, 3066, 3067, 3068, 3069,
- 3070, 3073, 3073, 3082, 3082, 3093, 3093, 3106, 3107, 3108,
- 3113, 3114, 3115, 3116, 3117, 3118, 3121, 3127, 3127, 3136,
- 3142, 3142, 3152, 3152, 3165, 3165, 3175, 3176, 3177, 3182,
- 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192,
- 3195, 3201, 3201, 3210, 3216, 3216, 3225, 3231, 3237, 3237,
- 3246, 3247, 3250, 3250, 3261, 3261, 3273, 3273, 3283, 3284,
- 3285, 3291, 3292, 3295, 3295, 3306, 3314, 3314, 3327, 3328,
- 3329, 3335, 3335, 3343, 3344, 3345, 3350, 3351, 3352, 3353,
- 3354, 3355, 3356, 3359, 3365, 3365, 3374, 3374, 3385, 3386,
- 3387, 3392, 3392, 3400, 3401, 3402, 3407, 3408, 3409, 3410,
- 3411, 3414, 3414, 3423, 3429, 3435, 3441, 3441, 3450, 3450,
- 3461, 3462, 3463, 3468, 3469, 3472
+ 2891, 2891, 2900, 2906, 2912, 2912, 2923, 2924, 2927, 2928,
+ 2929, 2934, 2934, 2942, 2943, 2944, 2949, 2950, 2951, 2952,
+ 2953, 2956, 2956, 2967, 2967, 2980, 2981, 2982, 2987, 2988,
+ 2989, 2990, 2991, 2992, 2993, 2996, 2996, 3004, 3007, 3007,
+ 3016, 3016, 3025, 3025, 3036, 3037, 3040, 3041, 3042, 3047,
+ 3047, 3055, 3056, 3057, 3062, 3063, 3064, 3065, 3066, 3067,
+ 3068, 3071, 3071, 3080, 3080, 3091, 3091, 3104, 3105, 3106,
+ 3111, 3112, 3113, 3114, 3115, 3116, 3119, 3125, 3125, 3134,
+ 3140, 3140, 3150, 3150, 3163, 3163, 3173, 3174, 3175, 3180,
+ 3181, 3182, 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190,
+ 3193, 3199, 3199, 3208, 3214, 3214, 3223, 3229, 3235, 3235,
+ 3244, 3245, 3248, 3248, 3259, 3259, 3271, 3271, 3281, 3282,
+ 3283, 3289, 3290, 3293, 3293, 3304, 3312, 3312, 3325, 3326,
+ 3327, 3333, 3333, 3341, 3342, 3343, 3348, 3349, 3350, 3351,
+ 3352, 3353, 3354, 3357, 3363, 3363, 3372, 3372, 3383, 3384,
+ 3385, 3390, 3390, 3398, 3399, 3400, 3405, 3406, 3407, 3408,
+ 3409, 3412, 3412, 3421, 3427, 3433, 3439, 3439, 3448, 3448,
+ 3459, 3460, 3461, 3466, 3467, 3470
};
void
#line 14 "dhcp6_parser.yy"
} } // isc::dhcp
-#line 7205 "dhcp6_parser.cc"
+#line 7203 "dhcp6_parser.cc"
-#line 3478 "dhcp6_parser.yy"
+#line 3476 "dhcp6_parser.yy"
void