summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2024-07-23 16:02:04 +0200
committerFrancis Dupont <fdupont@isc.org>2024-08-01 09:23:54 +0200
commit46946c5df498374dfec48e221e20147db4a9d4d1 (patch)
tree3d025d5961d08de91dfc3f39d20b18ac12cc27a3
parent[#3477] Making socket name/address exclusive (1) (diff)
downloadkea-46946c5df498374dfec48e221e20147db4a9d4d1.tar.xz
kea-46946c5df498374dfec48e221e20147db4a9d4d1.zip
[#3477] Regen bison
-rw-r--r--src/bin/d2/d2_parser.cc320
-rw-r--r--src/bin/d2/location.hh2
-rw-r--r--src/bin/dhcp4/dhcp4_parser.cc404
-rw-r--r--src/bin/dhcp4/location.hh2
-rw-r--r--src/bin/dhcp6/dhcp6_parser.cc390
-rw-r--r--src/bin/dhcp6/location.hh2
6 files changed, 563 insertions, 557 deletions
diff --git a/src/bin/d2/d2_parser.cc b/src/bin/d2/d2_parser.cc
index 840eaf15d9..b740e96ed2 100644
--- a/src/bin/d2/d2_parser.cc
+++ b/src/bin/d2/d2_parser.cc
@@ -1817,119 +1817,121 @@ namespace isc { namespace d2 {
#line 845 "d2_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 1823 "d2_parser.cc"
+#line 1824 "d2_parser.cc"
break;
case 214: // control_socket_name: "socket-name" $@47 ":" "constant string"
-#line 848 "d2_parser.yy"
+#line 849 "d2_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 1833 "d2_parser.cc"
+#line 1834 "d2_parser.cc"
break;
case 215: // $@48: %empty
-#line 854 "d2_parser.yy"
+#line 855 "d2_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 1842 "d2_parser.cc"
+#line 1844 "d2_parser.cc"
break;
case 216: // control_socket_address: "socket-address" $@48 ":" "constant string"
-#line 857 "d2_parser.yy"
+#line 859 "d2_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 1852 "d2_parser.cc"
+#line 1854 "d2_parser.cc"
break;
case 217: // control_socket_port: "socket-port" ":" "integer"
-#line 863 "d2_parser.yy"
+#line 865 "d2_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 1862 "d2_parser.cc"
+#line 1864 "d2_parser.cc"
break;
case 218: // $@49: %empty
-#line 869 "d2_parser.yy"
+#line 871 "d2_parser.yy"
{
ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1871 "d2_parser.cc"
+#line 1873 "d2_parser.cc"
break;
case 219: // trust_anchor: "trust-anchor" $@49 ":" "constant string"
-#line 872 "d2_parser.yy"
+#line 874 "d2_parser.yy"
{
ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("trust-anchor", ca);
ctx.leave();
}
-#line 1881 "d2_parser.cc"
+#line 1883 "d2_parser.cc"
break;
case 220: // $@50: %empty
-#line 878 "d2_parser.yy"
+#line 880 "d2_parser.yy"
{
ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1890 "d2_parser.cc"
+#line 1892 "d2_parser.cc"
break;
case 221: // cert_file: "cert-file" $@50 ":" "constant string"
-#line 881 "d2_parser.yy"
+#line 883 "d2_parser.yy"
{
ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("cert-file", cert);
ctx.leave();
}
-#line 1900 "d2_parser.cc"
+#line 1902 "d2_parser.cc"
break;
case 222: // $@51: %empty
-#line 887 "d2_parser.yy"
+#line 889 "d2_parser.yy"
{
ctx.unique("key-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1909 "d2_parser.cc"
+#line 1911 "d2_parser.cc"
break;
case 223: // key_file: "key-file" $@51 ":" "constant string"
-#line 890 "d2_parser.yy"
+#line 892 "d2_parser.yy"
{
ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("key-file", key);
ctx.leave();
}
-#line 1919 "d2_parser.cc"
+#line 1921 "d2_parser.cc"
break;
case 224: // cert_required: "cert-required" ":" "boolean"
-#line 896 "d2_parser.yy"
+#line 898 "d2_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 1929 "d2_parser.cc"
+#line 1931 "d2_parser.cc"
break;
case 225: // $@52: %empty
-#line 904 "d2_parser.yy"
+#line 906 "d2_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1937,92 +1939,92 @@ namespace isc { namespace d2 {
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 1941 "d2_parser.cc"
+#line 1943 "d2_parser.cc"
break;
case 226: // authentication: "authentication" $@52 ":" "{" auth_params "}"
-#line 910 "d2_parser.yy"
+#line 912 "d2_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 1952 "d2_parser.cc"
+#line 1954 "d2_parser.cc"
break;
case 229: // auth_params: auth_params ","
-#line 919 "d2_parser.yy"
+#line 921 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 1960 "d2_parser.cc"
+#line 1962 "d2_parser.cc"
break;
case 237: // $@53: %empty
-#line 933 "d2_parser.yy"
+#line 935 "d2_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 1969 "d2_parser.cc"
+#line 1971 "d2_parser.cc"
break;
case 238: // auth_type: "type" $@53 ":" auth_type_value
-#line 936 "d2_parser.yy"
+#line 938 "d2_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 1978 "d2_parser.cc"
+#line 1980 "d2_parser.cc"
break;
case 239: // auth_type_value: "basic"
-#line 941 "d2_parser.yy"
+#line 943 "d2_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 1984 "d2_parser.cc"
+#line 1986 "d2_parser.cc"
break;
case 240: // $@54: %empty
-#line 944 "d2_parser.yy"
+#line 946 "d2_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 1993 "d2_parser.cc"
+#line 1995 "d2_parser.cc"
break;
case 241: // realm: "realm" $@54 ":" "constant string"
-#line 947 "d2_parser.yy"
+#line 949 "d2_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 2003 "d2_parser.cc"
+#line 2005 "d2_parser.cc"
break;
case 242: // $@55: %empty
-#line 953 "d2_parser.yy"
+#line 955 "d2_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2012 "d2_parser.cc"
+#line 2014 "d2_parser.cc"
break;
case 243: // directory: "directory" $@55 ":" "constant string"
-#line 956 "d2_parser.yy"
+#line 958 "d2_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 2022 "d2_parser.cc"
+#line 2024 "d2_parser.cc"
break;
case 244: // $@56: %empty
-#line 962 "d2_parser.yy"
+#line 964 "d2_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2030,130 +2032,130 @@ namespace isc { namespace d2 {
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 2034 "d2_parser.cc"
+#line 2036 "d2_parser.cc"
break;
case 245: // clients: "clients" $@56 ":" "[" clients_list "]"
-#line 968 "d2_parser.yy"
+#line 970 "d2_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2043 "d2_parser.cc"
+#line 2045 "d2_parser.cc"
break;
case 250: // not_empty_clients_list: not_empty_clients_list ","
-#line 979 "d2_parser.yy"
+#line 981 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2051 "d2_parser.cc"
+#line 2053 "d2_parser.cc"
break;
case 251: // $@57: %empty
-#line 984 "d2_parser.yy"
+#line 986 "d2_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2061 "d2_parser.cc"
+#line 2063 "d2_parser.cc"
break;
case 252: // basic_auth: "{" $@57 clients_params "}"
-#line 988 "d2_parser.yy"
+#line 990 "d2_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 2069 "d2_parser.cc"
+#line 2071 "d2_parser.cc"
break;
case 255: // clients_params: clients_params ","
-#line 994 "d2_parser.yy"
+#line 996 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2077 "d2_parser.cc"
+#line 2079 "d2_parser.cc"
break;
case 263: // $@58: %empty
-#line 1008 "d2_parser.yy"
+#line 1010 "d2_parser.yy"
{
ctx.unique("user", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2086 "d2_parser.cc"
+#line 2088 "d2_parser.cc"
break;
case 264: // user: "user" $@58 ":" "constant string"
-#line 1011 "d2_parser.yy"
+#line 1013 "d2_parser.yy"
{
ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("user", user);
ctx.leave();
}
-#line 2096 "d2_parser.cc"
+#line 2098 "d2_parser.cc"
break;
case 265: // $@59: %empty
-#line 1017 "d2_parser.yy"
+#line 1019 "d2_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2105 "d2_parser.cc"
+#line 2107 "d2_parser.cc"
break;
case 266: // user_file: "user-file" $@59 ":" "constant string"
-#line 1020 "d2_parser.yy"
+#line 1022 "d2_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 2115 "d2_parser.cc"
+#line 2117 "d2_parser.cc"
break;
case 267: // $@60: %empty
-#line 1026 "d2_parser.yy"
+#line 1028 "d2_parser.yy"
{
ctx.unique("password", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2124 "d2_parser.cc"
+#line 2126 "d2_parser.cc"
break;
case 268: // password: "password" $@60 ":" "constant string"
-#line 1029 "d2_parser.yy"
+#line 1031 "d2_parser.yy"
{
ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("password", pwd);
ctx.leave();
}
-#line 2134 "d2_parser.cc"
+#line 2136 "d2_parser.cc"
break;
case 269: // $@61: %empty
-#line 1035 "d2_parser.yy"
+#line 1037 "d2_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2143 "d2_parser.cc"
+#line 2145 "d2_parser.cc"
break;
case 270: // password_file: "password-file" $@61 ":" "constant string"
-#line 1038 "d2_parser.yy"
+#line 1040 "d2_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 2153 "d2_parser.cc"
+#line 2155 "d2_parser.cc"
break;
case 271: // $@62: %empty
-#line 1046 "d2_parser.yy"
+#line 1048 "d2_parser.yy"
{
ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2161,113 +2163,113 @@ namespace isc { namespace d2 {
ctx.stack_.push_back(l);
ctx.enter(ctx.HOOKS_LIBRARIES);
}
-#line 2165 "d2_parser.cc"
+#line 2167 "d2_parser.cc"
break;
case 272: // hooks_libraries: "hooks-libraries" $@62 ":" "[" hooks_libraries_list "]"
-#line 1052 "d2_parser.yy"
+#line 1054 "d2_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2174 "d2_parser.cc"
+#line 2176 "d2_parser.cc"
break;
case 277: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list ","
-#line 1063 "d2_parser.yy"
+#line 1065 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2182 "d2_parser.cc"
+#line 2184 "d2_parser.cc"
break;
case 278: // $@63: %empty
-#line 1068 "d2_parser.yy"
+#line 1070 "d2_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2192 "d2_parser.cc"
+#line 2194 "d2_parser.cc"
break;
case 279: // hooks_library: "{" $@63 hooks_params "}"
-#line 1072 "d2_parser.yy"
+#line 1074 "d2_parser.yy"
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 2202 "d2_parser.cc"
+#line 2204 "d2_parser.cc"
break;
case 280: // $@64: %empty
-#line 1078 "d2_parser.yy"
+#line 1080 "d2_parser.yy"
{
// Parse the hooks-libraries list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 2212 "d2_parser.cc"
+#line 2214 "d2_parser.cc"
break;
case 281: // sub_hooks_library: "{" $@64 hooks_params "}"
-#line 1082 "d2_parser.yy"
+#line 1084 "d2_parser.yy"
{
// The library hooks parameter is required
ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 2222 "d2_parser.cc"
+#line 2224 "d2_parser.cc"
break;
case 284: // hooks_params: hooks_params ","
-#line 1090 "d2_parser.yy"
+#line 1092 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2230 "d2_parser.cc"
+#line 2232 "d2_parser.cc"
break;
case 288: // $@65: %empty
-#line 1100 "d2_parser.yy"
+#line 1102 "d2_parser.yy"
{
ctx.unique("library", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2239 "d2_parser.cc"
+#line 2241 "d2_parser.cc"
break;
case 289: // library: "library" $@65 ":" "constant string"
-#line 1103 "d2_parser.yy"
+#line 1105 "d2_parser.yy"
{
ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("library", lib);
ctx.leave();
}
-#line 2249 "d2_parser.cc"
+#line 2251 "d2_parser.cc"
break;
case 290: // $@66: %empty
-#line 1109 "d2_parser.yy"
+#line 1111 "d2_parser.yy"
{
ctx.unique("parameters", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2258 "d2_parser.cc"
+#line 2260 "d2_parser.cc"
break;
case 291: // parameters: "parameters" $@66 ":" map_value
-#line 1112 "d2_parser.yy"
+#line 1114 "d2_parser.yy"
{
ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 2267 "d2_parser.cc"
+#line 2269 "d2_parser.cc"
break;
case 292: // $@67: %empty
-#line 1119 "d2_parser.yy"
+#line 1121 "d2_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2275,102 +2277,102 @@ namespace isc { namespace d2 {
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 2279 "d2_parser.cc"
+#line 2281 "d2_parser.cc"
break;
case 293: // loggers: "loggers" $@67 ":" "[" loggers_entries "]"
-#line 1125 "d2_parser.yy"
+#line 1127 "d2_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2288 "d2_parser.cc"
+#line 2290 "d2_parser.cc"
break;
case 296: // loggers_entries: loggers_entries ","
-#line 1134 "d2_parser.yy"
+#line 1136 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2296 "d2_parser.cc"
+#line 2298 "d2_parser.cc"
break;
case 297: // $@68: %empty
-#line 1140 "d2_parser.yy"
+#line 1142 "d2_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 2306 "d2_parser.cc"
+#line 2308 "d2_parser.cc"
break;
case 298: // logger_entry: "{" $@68 logger_params "}"
-#line 1144 "d2_parser.yy"
+#line 1146 "d2_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 2314 "d2_parser.cc"
+#line 2316 "d2_parser.cc"
break;
case 301: // logger_params: logger_params ","
-#line 1150 "d2_parser.yy"
+#line 1152 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2322 "d2_parser.cc"
+#line 2324 "d2_parser.cc"
break;
case 309: // $@69: %empty
-#line 1164 "d2_parser.yy"
+#line 1166 "d2_parser.yy"
{
ctx.unique("name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2331 "d2_parser.cc"
+#line 2333 "d2_parser.cc"
break;
case 310: // name: "name" $@69 ":" "constant string"
-#line 1167 "d2_parser.yy"
+#line 1169 "d2_parser.yy"
{
ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("name", name);
ctx.leave();
}
-#line 2341 "d2_parser.cc"
+#line 2343 "d2_parser.cc"
break;
case 311: // debuglevel: "debuglevel" ":" "integer"
-#line 1173 "d2_parser.yy"
+#line 1175 "d2_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 2351 "d2_parser.cc"
+#line 2353 "d2_parser.cc"
break;
case 312: // $@70: %empty
-#line 1179 "d2_parser.yy"
+#line 1181 "d2_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2360 "d2_parser.cc"
+#line 2362 "d2_parser.cc"
break;
case 313: // severity: "severity" $@70 ":" "constant string"
-#line 1182 "d2_parser.yy"
+#line 1184 "d2_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 2370 "d2_parser.cc"
+#line 2372 "d2_parser.cc"
break;
case 314: // $@71: %empty
-#line 1188 "d2_parser.yy"
+#line 1190 "d2_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2378,122 +2380,122 @@ namespace isc { namespace d2 {
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 2382 "d2_parser.cc"
+#line 2384 "d2_parser.cc"
break;
case 315: // output_options_list: "output-options" $@71 ":" "[" output_options_list_content "]"
-#line 1194 "d2_parser.yy"
+#line 1196 "d2_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2391 "d2_parser.cc"
+#line 2393 "d2_parser.cc"
break;
case 318: // output_options_list_content: output_options_list_content ","
-#line 1201 "d2_parser.yy"
+#line 1203 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2399 "d2_parser.cc"
+#line 2401 "d2_parser.cc"
break;
case 319: // $@72: %empty
-#line 1206 "d2_parser.yy"
+#line 1208 "d2_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 2409 "d2_parser.cc"
+#line 2411 "d2_parser.cc"
break;
case 320: // output_entry: "{" $@72 output_params_list "}"
-#line 1210 "d2_parser.yy"
+#line 1212 "d2_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 2417 "d2_parser.cc"
+#line 2419 "d2_parser.cc"
break;
case 323: // output_params_list: output_params_list ","
-#line 1216 "d2_parser.yy"
+#line 1218 "d2_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 2425 "d2_parser.cc"
+#line 2427 "d2_parser.cc"
break;
case 329: // $@73: %empty
-#line 1228 "d2_parser.yy"
+#line 1230 "d2_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2434 "d2_parser.cc"
+#line 2436 "d2_parser.cc"
break;
case 330: // output: "output" $@73 ":" "constant string"
-#line 1231 "d2_parser.yy"
+#line 1233 "d2_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 2444 "d2_parser.cc"
+#line 2446 "d2_parser.cc"
break;
case 331: // flush: "flush" ":" "boolean"
-#line 1237 "d2_parser.yy"
+#line 1239 "d2_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 2454 "d2_parser.cc"
+#line 2456 "d2_parser.cc"
break;
case 332: // maxsize: "maxsize" ":" "integer"
-#line 1243 "d2_parser.yy"
+#line 1245 "d2_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 2464 "d2_parser.cc"
+#line 2466 "d2_parser.cc"
break;
case 333: // maxver: "maxver" ":" "integer"
-#line 1249 "d2_parser.yy"
+#line 1251 "d2_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 2474 "d2_parser.cc"
+#line 2476 "d2_parser.cc"
break;
case 334: // $@74: %empty
-#line 1255 "d2_parser.yy"
+#line 1257 "d2_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2483 "d2_parser.cc"
+#line 2485 "d2_parser.cc"
break;
case 335: // pattern: "pattern" $@74 ":" "constant string"
-#line 1258 "d2_parser.yy"
+#line 1260 "d2_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 2493 "d2_parser.cc"
+#line 2495 "d2_parser.cc"
break;
-#line 2497 "d2_parser.cc"
+#line 2499 "d2_parser.cc"
default:
break;
@@ -3352,19 +3354,19 @@ namespace isc { namespace d2 {
749, 749, 767, 767, 779, 779, 791, 792, 795, 796,
797, 802, 802, 810, 811, 812, 817, 818, 819, 820,
821, 822, 823, 824, 825, 826, 827, 828, 831, 831,
- 840, 841, 842, 845, 845, 854, 854, 863, 869, 869,
- 878, 878, 887, 887, 896, 904, 904, 917, 918, 919,
- 924, 925, 926, 927, 928, 929, 930, 933, 933, 941,
- 944, 944, 953, 953, 962, 962, 973, 974, 977, 978,
- 979, 984, 984, 992, 993, 994, 999, 1000, 1001, 1002,
- 1003, 1004, 1005, 1008, 1008, 1017, 1017, 1026, 1026, 1035,
- 1035, 1046, 1046, 1057, 1058, 1061, 1062, 1063, 1068, 1068,
- 1078, 1078, 1088, 1089, 1090, 1093, 1096, 1097, 1100, 1100,
- 1109, 1109, 1119, 1119, 1132, 1133, 1134, 1140, 1140, 1148,
- 1149, 1150, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1164,
- 1164, 1173, 1179, 1179, 1188, 1188, 1199, 1200, 1201, 1206,
- 1206, 1214, 1215, 1216, 1221, 1222, 1223, 1224, 1225, 1228,
- 1228, 1237, 1243, 1249, 1255, 1255
+ 840, 841, 842, 845, 845, 855, 855, 865, 871, 871,
+ 880, 880, 889, 889, 898, 906, 906, 919, 920, 921,
+ 926, 927, 928, 929, 930, 931, 932, 935, 935, 943,
+ 946, 946, 955, 955, 964, 964, 975, 976, 979, 980,
+ 981, 986, 986, 994, 995, 996, 1001, 1002, 1003, 1004,
+ 1005, 1006, 1007, 1010, 1010, 1019, 1019, 1028, 1028, 1037,
+ 1037, 1048, 1048, 1059, 1060, 1063, 1064, 1065, 1070, 1070,
+ 1080, 1080, 1090, 1091, 1092, 1095, 1098, 1099, 1102, 1102,
+ 1111, 1111, 1121, 1121, 1134, 1135, 1136, 1142, 1142, 1150,
+ 1151, 1152, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1166,
+ 1166, 1175, 1181, 1181, 1190, 1190, 1201, 1202, 1203, 1208,
+ 1208, 1216, 1217, 1218, 1223, 1224, 1225, 1226, 1227, 1230,
+ 1230, 1239, 1245, 1251, 1257, 1257
};
void
@@ -3397,9 +3399,9 @@ namespace isc { namespace d2 {
#line 14 "d2_parser.yy"
} } // isc::d2
-#line 3401 "d2_parser.cc"
+#line 3403 "d2_parser.cc"
-#line 1264 "d2_parser.yy"
+#line 1266 "d2_parser.yy"
void
diff --git a/src/bin/d2/location.hh b/src/bin/d2/location.hh
index 2466444683..dd188b83fb 100644
--- a/src/bin/d2/location.hh
+++ b/src/bin/d2/location.hh
@@ -1,4 +1,4 @@
-// Generated 202407041528
+// Generated 202407231401
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++
diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc
index 9e1bbde804..990a80bf16 100644
--- a/src/bin/dhcp4/dhcp4_parser.cc
+++ b/src/bin/dhcp4/dhcp4_parser.cc
@@ -4090,62 +4090,64 @@ namespace isc { namespace dhcp {
#line 2592 "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 4096 "dhcp4_parser.cc"
+#line 4097 "dhcp4_parser.cc"
break;
case 743: // control_socket_name: "socket-name" $@112 ":" "constant string"
-#line 2595 "dhcp4_parser.yy"
+#line 2596 "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 4106 "dhcp4_parser.cc"
+#line 4107 "dhcp4_parser.cc"
break;
case 744: // $@113: %empty
-#line 2601 "dhcp4_parser.yy"
+#line 2602 "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 4115 "dhcp4_parser.cc"
+#line 4117 "dhcp4_parser.cc"
break;
case 745: // control_socket_address: "socket-address" $@113 ":" "constant string"
-#line 2604 "dhcp4_parser.yy"
+#line 2606 "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 4125 "dhcp4_parser.cc"
+#line 4127 "dhcp4_parser.cc"
break;
case 746: // control_socket_port: "socket-port" ":" "integer"
-#line 2610 "dhcp4_parser.yy"
+#line 2612 "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 4135 "dhcp4_parser.cc"
+#line 4137 "dhcp4_parser.cc"
break;
case 747: // cert_required: "cert-required" ":" "boolean"
-#line 2616 "dhcp4_parser.yy"
+#line 2618 "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 4145 "dhcp4_parser.cc"
+#line 4147 "dhcp4_parser.cc"
break;
case 748: // $@114: %empty
-#line 2624 "dhcp4_parser.yy"
+#line 2626 "dhcp4_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4153,92 +4155,92 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4157 "dhcp4_parser.cc"
+#line 4159 "dhcp4_parser.cc"
break;
case 749: // authentication: "authentication" $@114 ":" "{" auth_params "}"
-#line 2630 "dhcp4_parser.yy"
+#line 2632 "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 4168 "dhcp4_parser.cc"
+#line 4170 "dhcp4_parser.cc"
break;
case 752: // auth_params: auth_params ","
-#line 2639 "dhcp4_parser.yy"
+#line 2641 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4176 "dhcp4_parser.cc"
+#line 4178 "dhcp4_parser.cc"
break;
case 760: // $@115: %empty
-#line 2653 "dhcp4_parser.yy"
+#line 2655 "dhcp4_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4185 "dhcp4_parser.cc"
+#line 4187 "dhcp4_parser.cc"
break;
case 761: // auth_type: "type" $@115 ":" auth_type_value
-#line 2656 "dhcp4_parser.yy"
+#line 2658 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4194 "dhcp4_parser.cc"
+#line 4196 "dhcp4_parser.cc"
break;
case 762: // auth_type_value: "basic"
-#line 2661 "dhcp4_parser.yy"
+#line 2663 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4200 "dhcp4_parser.cc"
+#line 4202 "dhcp4_parser.cc"
break;
case 763: // $@116: %empty
-#line 2664 "dhcp4_parser.yy"
+#line 2666 "dhcp4_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4209 "dhcp4_parser.cc"
+#line 4211 "dhcp4_parser.cc"
break;
case 764: // realm: "realm" $@116 ":" "constant string"
-#line 2667 "dhcp4_parser.yy"
+#line 2669 "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 4219 "dhcp4_parser.cc"
+#line 4221 "dhcp4_parser.cc"
break;
case 765: // $@117: %empty
-#line 2673 "dhcp4_parser.yy"
+#line 2675 "dhcp4_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4228 "dhcp4_parser.cc"
+#line 4230 "dhcp4_parser.cc"
break;
case 766: // directory: "directory" $@117 ":" "constant string"
-#line 2676 "dhcp4_parser.yy"
+#line 2678 "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 4238 "dhcp4_parser.cc"
+#line 4240 "dhcp4_parser.cc"
break;
case 767: // $@118: %empty
-#line 2682 "dhcp4_parser.yy"
+#line 2684 "dhcp4_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4246,92 +4248,92 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4250 "dhcp4_parser.cc"
+#line 4252 "dhcp4_parser.cc"
break;
case 768: // clients: "clients" $@118 ":" "[" clients_list "]"
-#line 2688 "dhcp4_parser.yy"
+#line 2690 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4259 "dhcp4_parser.cc"
+#line 4261 "dhcp4_parser.cc"
break;
case 773: // not_empty_clients_list: not_empty_clients_list ","
-#line 2699 "dhcp4_parser.yy"
+#line 2701 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4267 "dhcp4_parser.cc"
+#line 4269 "dhcp4_parser.cc"
break;
case 774: // $@119: %empty
-#line 2704 "dhcp4_parser.yy"
+#line 2706 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4277 "dhcp4_parser.cc"
+#line 4279 "dhcp4_parser.cc"
break;
case 775: // basic_auth: "{" $@119 clients_params "}"
-#line 2708 "dhcp4_parser.yy"
+#line 2710 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4285 "dhcp4_parser.cc"
+#line 4287 "dhcp4_parser.cc"
break;
case 778: // clients_params: clients_params ","
-#line 2714 "dhcp4_parser.yy"
+#line 2716 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4293 "dhcp4_parser.cc"
+#line 4295 "dhcp4_parser.cc"
break;
case 786: // $@120: %empty
-#line 2728 "dhcp4_parser.yy"
+#line 2730 "dhcp4_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4302 "dhcp4_parser.cc"
+#line 4304 "dhcp4_parser.cc"
break;
case 787: // user_file: "user-file" $@120 ":" "constant string"
-#line 2731 "dhcp4_parser.yy"
+#line 2733 "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 4312 "dhcp4_parser.cc"
+#line 4314 "dhcp4_parser.cc"
break;
case 788: // $@121: %empty
-#line 2737 "dhcp4_parser.yy"
+#line 2739 "dhcp4_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4321 "dhcp4_parser.cc"
+#line 4323 "dhcp4_parser.cc"
break;
case 789: // password_file: "password-file" $@121 ":" "constant string"
-#line 2740 "dhcp4_parser.yy"
+#line 2742 "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 4331 "dhcp4_parser.cc"
+#line 4333 "dhcp4_parser.cc"
break;
case 790: // $@122: %empty
-#line 2748 "dhcp4_parser.yy"
+#line 2750 "dhcp4_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4339,87 +4341,87 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4343 "dhcp4_parser.cc"
+#line 4345 "dhcp4_parser.cc"
break;
case 791: // dhcp_queue_control: "dhcp-queue-control" $@122 ":" "{" queue_control_params "}"
-#line 2754 "dhcp4_parser.yy"
+#line 2756 "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 4354 "dhcp4_parser.cc"
+#line 4356 "dhcp4_parser.cc"
break;
case 794: // queue_control_params: queue_control_params ","
-#line 2763 "dhcp4_parser.yy"
+#line 2765 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4362 "dhcp4_parser.cc"
+#line 4364 "dhcp4_parser.cc"
break;
case 801: // enable_queue: "enable-queue" ":" "boolean"
-#line 2776 "dhcp4_parser.yy"
+#line 2778 "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 4372 "dhcp4_parser.cc"
+#line 4374 "dhcp4_parser.cc"
break;
case 802: // $@123: %empty
-#line 2782 "dhcp4_parser.yy"
+#line 2784 "dhcp4_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4381 "dhcp4_parser.cc"
+#line 4383 "dhcp4_parser.cc"
break;
case 803: // queue_type: "queue-type" $@123 ":" "constant string"
-#line 2785 "dhcp4_parser.yy"
+#line 2787 "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 4391 "dhcp4_parser.cc"
+#line 4393 "dhcp4_parser.cc"
break;
case 804: // capacity: "capacity" ":" "integer"
-#line 2791 "dhcp4_parser.yy"
+#line 2793 "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 4401 "dhcp4_parser.cc"
+#line 4403 "dhcp4_parser.cc"
break;
case 805: // $@124: %empty
-#line 2797 "dhcp4_parser.yy"
+#line 2799 "dhcp4_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4410 "dhcp4_parser.cc"
+#line 4412 "dhcp4_parser.cc"
break;
case 806: // arbitrary_map_entry: "constant string" $@124 ":" value
-#line 2800 "dhcp4_parser.yy"
+#line 2802 "dhcp4_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4419 "dhcp4_parser.cc"
+#line 4421 "dhcp4_parser.cc"
break;
case 807: // $@125: %empty
-#line 2807 "dhcp4_parser.yy"
+#line 2809 "dhcp4_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4427,177 +4429,177 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4431 "dhcp4_parser.cc"
+#line 4433 "dhcp4_parser.cc"
break;
case 808: // dhcp_ddns: "dhcp-ddns" $@125 ":" "{" dhcp_ddns_params "}"
-#line 2813 "dhcp4_parser.yy"
+#line 2815 "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 4442 "dhcp4_parser.cc"
+#line 4444 "dhcp4_parser.cc"
break;
case 809: // $@126: %empty
-#line 2820 "dhcp4_parser.yy"
+#line 2822 "dhcp4_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4452 "dhcp4_parser.cc"
+#line 4454 "dhcp4_parser.cc"
break;
case 810: // sub_dhcp_ddns: "{" $@126 dhcp_ddns_params "}"
-#line 2824 "dhcp4_parser.yy"
+#line 2826 "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 4462 "dhcp4_parser.cc"
+#line 4464 "dhcp4_parser.cc"
break;
case 813: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2832 "dhcp4_parser.yy"
+#line 2834 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4470 "dhcp4_parser.cc"
+#line 4472 "dhcp4_parser.cc"
break;
case 825: // enable_updates: "enable-updates" ":" "boolean"
-#line 2850 "dhcp4_parser.yy"
+#line 2852 "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 4480 "dhcp4_parser.cc"
+#line 4482 "dhcp4_parser.cc"
break;
case 826: // $@127: %empty
-#line 2856 "dhcp4_parser.yy"
+#line 2858 "dhcp4_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4489 "dhcp4_parser.cc"
+#line 4491 "dhcp4_parser.cc"
break;
case 827: // server_ip: "server-ip" $@127 ":" "constant string"
-#line 2859 "dhcp4_parser.yy"
+#line 2861 "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 4499 "dhcp4_parser.cc"
+#line 4501 "dhcp4_parser.cc"
break;
case 828: // server_port: "server-port" ":" "integer"
-#line 2865 "dhcp4_parser.yy"
+#line 2867 "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 4509 "dhcp4_parser.cc"
+#line 4511 "dhcp4_parser.cc"
break;
case 829: // $@128: %empty
-#line 2871 "dhcp4_parser.yy"
+#line 2873 "dhcp4_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4518 "dhcp4_parser.cc"
+#line 4520 "dhcp4_parser.cc"
break;
case 830: // sender_ip: "sender-ip" $@128 ":" "constant string"
-#line 2874 "dhcp4_parser.yy"
+#line 2876 "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 4528 "dhcp4_parser.cc"
+#line 4530 "dhcp4_parser.cc"
break;
case 831: // sender_port: "sender-port" ":" "integer"
-#line 2880 "dhcp4_parser.yy"
+#line 2882 "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 4538 "dhcp4_parser.cc"
+#line 4540 "dhcp4_parser.cc"
break;
case 832: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2886 "dhcp4_parser.yy"
+#line 2888 "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 4548 "dhcp4_parser.cc"
+#line 4550 "dhcp4_parser.cc"
break;
case 833: // $@129: %empty
-#line 2892 "dhcp4_parser.yy"
+#line 2894 "dhcp4_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4557 "dhcp4_parser.cc"
+#line 4559 "dhcp4_parser.cc"
break;
case 834: // ncr_protocol: "ncr-protocol" $@129 ":" ncr_protocol_value
-#line 2895 "dhcp4_parser.yy"
+#line 2897 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4566 "dhcp4_parser.cc"
+#line 4568 "dhcp4_parser.cc"
break;
case 835: // ncr_protocol_value: "udp"
-#line 2901 "dhcp4_parser.yy"
+#line 2903 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4572 "dhcp4_parser.cc"
+#line 4574 "dhcp4_parser.cc"
break;
case 836: // ncr_protocol_value: "tcp"
-#line 2902 "dhcp4_parser.yy"
+#line 2904 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4578 "dhcp4_parser.cc"
+#line 4580 "dhcp4_parser.cc"
break;
case 837: // $@130: %empty
-#line 2905 "dhcp4_parser.yy"
+#line 2907 "dhcp4_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4587 "dhcp4_parser.cc"
+#line 4589 "dhcp4_parser.cc"
break;
case 838: // ncr_format: "ncr-format" $@130 ":" "JSON"
-#line 2908 "dhcp4_parser.yy"
+#line 2910 "dhcp4_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4597 "dhcp4_parser.cc"
+#line 4599 "dhcp4_parser.cc"
break;
case 839: // $@131: %empty
-#line 2916 "dhcp4_parser.yy"
+#line 2918 "dhcp4_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4605,48 +4607,48 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 4609 "dhcp4_parser.cc"
+#line 4611 "dhcp4_parser.cc"
break;
case 840: // config_control: "config-control" $@131 ":" "{" config_control_params "}"
-#line 2922 "dhcp4_parser.yy"
+#line 2924 "dhcp4_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4619 "dhcp4_parser.cc"
+#line 4621 "dhcp4_parser.cc"
break;
case 841: // $@132: %empty
-#line 2928 "dhcp4_parser.yy"
+#line 2930 "dhcp4_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4629 "dhcp4_parser.cc"
+#line 4631 "dhcp4_parser.cc"
break;
case 842: // sub_config_control: "{" $@132 config_control_params "}"
-#line 2932 "dhcp4_parser.yy"
+#line 2934 "dhcp4_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 4638 "dhcp4_parser.cc"
+#line 4640 "dhcp4_parser.cc"
break;
case 845: // config_control_params: config_control_params ","
-#line 2940 "dhcp4_parser.yy"
+#line 2942 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4646 "dhcp4_parser.cc"
+#line 4648 "dhcp4_parser.cc"
break;
case 848: // $@133: %empty
-#line 2950 "dhcp4_parser.yy"
+#line 2952 "dhcp4_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4654,30 +4656,30 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 4658 "dhcp4_parser.cc"
+#line 4660 "dhcp4_parser.cc"
break;
case 849: // config_databases: "config-databases" $@133 ":" "[" database_list "]"
-#line 2956 "dhcp4_parser.yy"
+#line 2958 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4667 "dhcp4_parser.cc"
+#line 4669 "dhcp4_parser.cc"
break;
case 850: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 2961 "dhcp4_parser.yy"
+#line 2963 "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 4677 "dhcp4_parser.cc"
+#line 4679 "dhcp4_parser.cc"
break;
case 851: // $@134: %empty
-#line 2969 "dhcp4_parser.yy"
+#line 2971 "dhcp4_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4685,83 +4687,83 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 4689 "dhcp4_parser.cc"
+#line 4691 "dhcp4_parser.cc"
break;
case 852: // loggers: "loggers" $@134 ":" "[" loggers_entries "]"
-#line 2975 "dhcp4_parser.yy"
+#line 2977 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4698 "dhcp4_parser.cc"
+#line 4700 "dhcp4_parser.cc"
break;
case 855: // loggers_entries: loggers_entries ","
-#line 2984 "dhcp4_parser.yy"
+#line 2986 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4706 "dhcp4_parser.cc"
+#line 4708 "dhcp4_parser.cc"
break;
case 856: // $@135: %empty
-#line 2990 "dhcp4_parser.yy"
+#line 2992 "dhcp4_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 4716 "dhcp4_parser.cc"
+#line 4718 "dhcp4_parser.cc"
break;
case 857: // logger_entry: "{" $@135 logger_params "}"
-#line 2994 "dhcp4_parser.yy"
+#line 2996 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4724 "dhcp4_parser.cc"
+#line 4726 "dhcp4_parser.cc"
break;
case 860: // logger_params: logger_params ","
-#line 3000 "dhcp4_parser.yy"
+#line 3002 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4732 "dhcp4_parser.cc"
+#line 4734 "dhcp4_parser.cc"
break;
case 868: // debuglevel: "debuglevel" ":" "integer"
-#line 3014 "dhcp4_parser.yy"
+#line 3016 "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 4742 "dhcp4_parser.cc"
+#line 4744 "dhcp4_parser.cc"
break;
case 869: // $@136: %empty
-#line 3020 "dhcp4_parser.yy"
+#line 3022 "dhcp4_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4751 "dhcp4_parser.cc"
+#line 4753 "dhcp4_parser.cc"
break;
case 870: // severity: "severity" $@136 ":" "constant string"
-#line 3023 "dhcp4_parser.yy"
+#line 3025 "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 4761 "dhcp4_parser.cc"
+#line 4763 "dhcp4_parser.cc"
break;
case 871: // $@137: %empty
-#line 3029 "dhcp4_parser.yy"
+#line 3031 "dhcp4_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4769,122 +4771,122 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 4773 "dhcp4_parser.cc"
+#line 4775 "dhcp4_parser.cc"
break;
case 872: // output_options_list: "output-options" $@137 ":" "[" output_options_list_content "]"
-#line 3035 "dhcp4_parser.yy"
+#line 3037 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4782 "dhcp4_parser.cc"
+#line 4784 "dhcp4_parser.cc"
break;
case 875: // output_options_list_content: output_options_list_content ","
-#line 3042 "dhcp4_parser.yy"
+#line 3044 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4790 "dhcp4_parser.cc"
+#line 4792 "dhcp4_parser.cc"
break;
case 876: // $@138: %empty
-#line 3047 "dhcp4_parser.yy"
+#line 3049 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4800 "dhcp4_parser.cc"
+#line 4802 "dhcp4_parser.cc"
break;
case 877: // output_entry: "{" $@138 output_params_list "}"
-#line 3051 "dhcp4_parser.yy"
+#line 3053 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4808 "dhcp4_parser.cc"
+#line 4810 "dhcp4_parser.cc"
break;
case 880: // output_params_list: output_params_list ","
-#line 3057 "dhcp4_parser.yy"
+#line 3059 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4816 "dhcp4_parser.cc"
+#line 4818 "dhcp4_parser.cc"
break;
case 886: // $@139: %empty
-#line 3069 "dhcp4_parser.yy"
+#line 3071 "dhcp4_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4825 "dhcp4_parser.cc"
+#line 4827 "dhcp4_parser.cc"
break;
case 887: // output: "output" $@139 ":" "constant string"
-#line 3072 "dhcp4_parser.yy"
+#line 3074 "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 4835 "dhcp4_parser.cc"
+#line 4837 "dhcp4_parser.cc"
break;
case 888: // flush: "flush" ":" "boolean"
-#line 3078 "dhcp4_parser.yy"
+#line 3080 "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 4845 "dhcp4_parser.cc"
+#line 4847 "dhcp4_parser.cc"
break;
case 889: // maxsize: "maxsize" ":" "integer"
-#line 3084 "dhcp4_parser.yy"
+#line 3086 "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 4855 "dhcp4_parser.cc"
+#line 4857 "dhcp4_parser.cc"
break;
case 890: // maxver: "maxver" ":" "integer"
-#line 3090 "dhcp4_parser.yy"
+#line 3092 "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 4865 "dhcp4_parser.cc"
+#line 4867 "dhcp4_parser.cc"
break;
case 891: // $@140: %empty
-#line 3096 "dhcp4_parser.yy"
+#line 3098 "dhcp4_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4874 "dhcp4_parser.cc"
+#line 4876 "dhcp4_parser.cc"
break;
case 892: // pattern: "pattern" $@140 ":" "constant string"
-#line 3099 "dhcp4_parser.yy"
+#line 3101 "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 4884 "dhcp4_parser.cc"
+#line 4886 "dhcp4_parser.cc"
break;
case 893: // $@141: %empty
-#line 3105 "dhcp4_parser.yy"
+#line 3107 "dhcp4_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4892,68 +4894,68 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 4896 "dhcp4_parser.cc"
+#line 4898 "dhcp4_parser.cc"
break;
case 894: // compatibility: "compatibility" $@141 ":" "{" compatibility_params "}"
-#line 3111 "dhcp4_parser.yy"
+#line 3113 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4905 "dhcp4_parser.cc"
+#line 4907 "dhcp4_parser.cc"
break;
case 897: // compatibility_params: compatibility_params ","
-#line 3118 "dhcp4_parser.yy"
+#line 3120 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4913 "dhcp4_parser.cc"
+#line 4915 "dhcp4_parser.cc"
break;
case 903: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3130 "dhcp4_parser.yy"
+#line 3132 "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 4923 "dhcp4_parser.cc"
+#line 4925 "dhcp4_parser.cc"
break;
case 904: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
-#line 3136 "dhcp4_parser.yy"
+#line 3138 "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 4933 "dhcp4_parser.cc"
+#line 4935 "dhcp4_parser.cc"
break;
case 905: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
-#line 3142 "dhcp4_parser.yy"
+#line 3144 "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 4943 "dhcp4_parser.cc"
+#line 4945 "dhcp4_parser.cc"
break;
case 906: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
-#line 3148 "dhcp4_parser.yy"
+#line 3150 "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 4953 "dhcp4_parser.cc"
+#line 4955 "dhcp4_parser.cc"
break;
-#line 4957 "dhcp4_parser.cc"
+#line 4959 "dhcp4_parser.cc"
default:
break;
@@ -6637,23 +6639,23 @@ namespace isc { namespace dhcp {
2506, 2514, 2514, 2526, 2526, 2538, 2539, 2542, 2543, 2544,
2549, 2549, 2557, 2558, 2559, 2564, 2565, 2566, 2567, 2568,
2569, 2570, 2571, 2572, 2573, 2574, 2575, 2578, 2578, 2587,
- 2588, 2589, 2592, 2592, 2601, 2601, 2610, 2616, 2624, 2624,
- 2637, 2638, 2639, 2644, 2645, 2646, 2647, 2648, 2649, 2650,
- 2653, 2653, 2661, 2664, 2664, 2673, 2673, 2682, 2682, 2693,
- 2694, 2697, 2698, 2699, 2704, 2704, 2712, 2713, 2714, 2719,
- 2720, 2721, 2722, 2723, 2724, 2725, 2728, 2728, 2737, 2737,
- 2748, 2748, 2761, 2762, 2763, 2768, 2769, 2770, 2771, 2772,
- 2773, 2776, 2782, 2782, 2791, 2797, 2797, 2807, 2807, 2820,
- 2820, 2830, 2831, 2832, 2837, 2838, 2839, 2840, 2841, 2842,
- 2843, 2844, 2845, 2846, 2847, 2850, 2856, 2856, 2865, 2871,
- 2871, 2880, 2886, 2892, 2892, 2901, 2902, 2905, 2905, 2916,
- 2916, 2928, 2928, 2938, 2939, 2940, 2946, 2947, 2950, 2950,
- 2961, 2969, 2969, 2982, 2983, 2984, 2990, 2990, 2998, 2999,
- 3000, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3014, 3020,
- 3020, 3029, 3029, 3040, 3041, 3042, 3047, 3047, 3055, 3056,
- 3057, 3062, 3063, 3064, 3065, 3066, 3069, 3069, 3078, 3084,
- 3090, 3096, 3096, 3105, 3105, 3116, 3117, 3118, 3123, 3124,
- 3125, 3126, 3127, 3130, 3136, 3142, 3148
+ 2588, 2589, 2592, 2592, 2602, 2602, 2612, 2618, 2626, 2626,
+ 2639, 2640, 2641, 2646, 2647, 2648, 2649, 2650, 2651, 2652,
+ 2655, 2655, 2663, 2666, 2666, 2675, 2675, 2684, 2684, 2695,
+ 2696, 2699, 2700, 2701, 2706, 2706, 2714, 2715, 2716, 2721,
+ 2722, 2723, 2724, 2725, 2726, 2727, 2730, 2730, 2739, 2739,
+ 2750, 2750, 2763, 2764, 2765, 2770, 2771, 2772, 2773, 2774,
+ 2775, 2778, 2784, 2784, 2793, 2799, 2799, 2809, 2809, 2822,
+ 2822, 2832, 2833, 2834, 2839, 2840, 2841, 2842, 2843, 2844,
+ 2845, 2846, 2847, 2848, 2849, 2852, 2858, 2858, 2867, 2873,
+ 2873, 2882, 2888, 2894, 2894, 2903, 2904, 2907, 2907, 2918,
+ 2918, 2930, 2930, 2940, 2941, 2942, 2948, 2949, 2952, 2952,
+ 2963, 2971, 2971, 2984, 2985, 2986, 2992, 2992, 3000, 3001,
+ 3002, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3016, 3022,
+ 3022, 3031, 3031, 3042, 3043, 3044, 3049, 3049, 3057, 3058,
+ 3059, 3064, 3065, 3066, 3067, 3068, 3071, 3071, 3080, 3086,
+ 3092, 3098, 3098, 3107, 3107, 3118, 3119, 3120, 3125, 3126,
+ 3127, 3128, 3129, 3132, 3138, 3144, 3150
};
void
@@ -6686,9 +6688,9 @@ namespace isc { namespace dhcp {
#line 14 "dhcp4_parser.yy"
} } // isc::dhcp
-#line 6690 "dhcp4_parser.cc"
+#line 6692 "dhcp4_parser.cc"
-#line 3154 "dhcp4_parser.yy"
+#line 3156 "dhcp4_parser.yy"
void
diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh
index 786be23821..3b5cfa605e 100644
--- a/src/bin/dhcp4/location.hh
+++ b/src/bin/dhcp4/location.hh
@@ -1,4 +1,4 @@
-// Generated 202407041227
+// Generated 202407231401
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++
diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc
index b837500fd1..434e16d8ec 100644
--- a/src/bin/dhcp6/dhcp6_parser.cc
+++ b/src/bin/dhcp6/dhcp6_parser.cc
@@ -4224,62 +4224,64 @@ namespace isc { namespace dhcp {
#line 2721 "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 4230 "dhcp6_parser.cc"
+#line 4231 "dhcp6_parser.cc"
break;
case 779: // control_socket_name: "socket-name" $@116 ":" "constant string"
-#line 2724 "dhcp6_parser.yy"
+#line 2725 "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 4240 "dhcp6_parser.cc"
+#line 4241 "dhcp6_parser.cc"
break;
case 780: // $@117: %empty
-#line 2730 "dhcp6_parser.yy"
+#line 2731 "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 4249 "dhcp6_parser.cc"
+#line 4251 "dhcp6_parser.cc"
break;
case 781: // control_socket_address: "socket-address" $@117 ":" "constant string"
-#line 2733 "dhcp6_parser.yy"
+#line 2735 "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 4259 "dhcp6_parser.cc"
+#line 4261 "dhcp6_parser.cc"
break;
case 782: // control_socket_port: "socket-port" ":" "integer"
-#line 2739 "dhcp6_parser.yy"
+#line 2741 "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 4269 "dhcp6_parser.cc"
+#line 4271 "dhcp6_parser.cc"
break;
case 783: // cert_required: "cert-required" ":" "boolean"
-#line 2745 "dhcp6_parser.yy"
+#line 2747 "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 4279 "dhcp6_parser.cc"
+#line 4281 "dhcp6_parser.cc"
break;
case 784: // $@118: %empty
-#line 2753 "dhcp6_parser.yy"
+#line 2755 "dhcp6_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4287,92 +4289,92 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4291 "dhcp6_parser.cc"
+#line 4293 "dhcp6_parser.cc"
break;
case 785: // authentication: "authentication" $@118 ":" "{" auth_params "}"
-#line 2759 "dhcp6_parser.yy"
+#line 2761 "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 4302 "dhcp6_parser.cc"
+#line 4304 "dhcp6_parser.cc"
break;
case 788: // auth_params: auth_params ","
-#line 2768 "dhcp6_parser.yy"
+#line 2770 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4310 "dhcp6_parser.cc"
+#line 4312 "dhcp6_parser.cc"
break;
case 796: // $@119: %empty
-#line 2782 "dhcp6_parser.yy"
+#line 2784 "dhcp6_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4319 "dhcp6_parser.cc"
+#line 4321 "dhcp6_parser.cc"
break;
case 797: // auth_type: "type" $@119 ":" auth_type_value
-#line 2785 "dhcp6_parser.yy"
+#line 2787 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4328 "dhcp6_parser.cc"
+#line 4330 "dhcp6_parser.cc"
break;
case 798: // auth_type_value: "basic"
-#line 2790 "dhcp6_parser.yy"
+#line 2792 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4334 "dhcp6_parser.cc"
+#line 4336 "dhcp6_parser.cc"
break;
case 799: // $@120: %empty
-#line 2793 "dhcp6_parser.yy"
+#line 2795 "dhcp6_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4343 "dhcp6_parser.cc"
+#line 4345 "dhcp6_parser.cc"
break;
case 800: // realm: "realm" $@120 ":" "constant string"
-#line 2796 "dhcp6_parser.yy"
+#line 2798 "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 4353 "dhcp6_parser.cc"
+#line 4355 "dhcp6_parser.cc"
break;
case 801: // $@121: %empty
-#line 2802 "dhcp6_parser.yy"
+#line 2804 "dhcp6_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4362 "dhcp6_parser.cc"
+#line 4364 "dhcp6_parser.cc"
break;
case 802: // directory: "directory" $@121 ":" "constant string"
-#line 2805 "dhcp6_parser.yy"
+#line 2807 "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 4372 "dhcp6_parser.cc"
+#line 4374 "dhcp6_parser.cc"
break;
case 803: // $@122: %empty
-#line 2811 "dhcp6_parser.yy"
+#line 2813 "dhcp6_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4380,92 +4382,92 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4384 "dhcp6_parser.cc"
+#line 4386 "dhcp6_parser.cc"
break;
case 804: // clients: "clients" $@122 ":" "[" clients_list "]"
-#line 2817 "dhcp6_parser.yy"
+#line 2819 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4393 "dhcp6_parser.cc"
+#line 4395 "dhcp6_parser.cc"
break;
case 809: // not_empty_clients_list: not_empty_clients_list ","
-#line 2828 "dhcp6_parser.yy"
+#line 2830 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4401 "dhcp6_parser.cc"
+#line 4403 "dhcp6_parser.cc"
break;
case 810: // $@123: %empty
-#line 2833 "dhcp6_parser.yy"
+#line 2835 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4411 "dhcp6_parser.cc"
+#line 4413 "dhcp6_parser.cc"
break;
case 811: // basic_auth: "{" $@123 clients_params "}"
-#line 2837 "dhcp6_parser.yy"
+#line 2839 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4419 "dhcp6_parser.cc"
+#line 4421 "dhcp6_parser.cc"
break;
case 814: // clients_params: clients_params ","
-#line 2843 "dhcp6_parser.yy"
+#line 2845 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4427 "dhcp6_parser.cc"
+#line 4429 "dhcp6_parser.cc"
break;
case 822: // $@124: %empty
-#line 2857 "dhcp6_parser.yy"
+#line 2859 "dhcp6_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4436 "dhcp6_parser.cc"
+#line 4438 "dhcp6_parser.cc"
break;
case 823: // user_file: "user-file" $@124 ":" "constant string"
-#line 2860 "dhcp6_parser.yy"
+#line 2862 "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 4446 "dhcp6_parser.cc"
+#line 4448 "dhcp6_parser.cc"
break;
case 824: // $@125: %empty
-#line 2866 "dhcp6_parser.yy"
+#line 2868 "dhcp6_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4455 "dhcp6_parser.cc"
+#line 4457 "dhcp6_parser.cc"
break;
case 825: // password_file: "password-file" $@125 ":" "constant string"
-#line 2869 "dhcp6_parser.yy"
+#line 2871 "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 4465 "dhcp6_parser.cc"
+#line 4467 "dhcp6_parser.cc"
break;
case 826: // $@126: %empty
-#line 2877 "dhcp6_parser.yy"
+#line 2879 "dhcp6_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4473,87 +4475,87 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4477 "dhcp6_parser.cc"
+#line 4479 "dhcp6_parser.cc"
break;
case 827: // dhcp_queue_control: "dhcp-queue-control" $@126 ":" "{" queue_control_params "}"
-#line 2883 "dhcp6_parser.yy"
+#line 2885 "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 4488 "dhcp6_parser.cc"
+#line 4490 "dhcp6_parser.cc"
break;
case 830: // queue_control_params: queue_control_params ","
-#line 2892 "dhcp6_parser.yy"
+#line 2894 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4496 "dhcp6_parser.cc"
+#line 4498 "dhcp6_parser.cc"
break;
case 837: // enable_queue: "enable-queue" ":" "boolean"
-#line 2905 "dhcp6_parser.yy"
+#line 2907 "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 4506 "dhcp6_parser.cc"
+#line 4508 "dhcp6_parser.cc"
break;
case 838: // $@127: %empty
-#line 2911 "dhcp6_parser.yy"
+#line 2913 "dhcp6_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4515 "dhcp6_parser.cc"
+#line 4517 "dhcp6_parser.cc"
break;
case 839: // queue_type: "queue-type" $@127 ":" "constant string"
-#line 2914 "dhcp6_parser.yy"
+#line 2916 "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 4525 "dhcp6_parser.cc"
+#line 4527 "dhcp6_parser.cc"
break;
case 840: // capacity: "capacity" ":" "integer"
-#line 2920 "dhcp6_parser.yy"
+#line 2922 "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 4535 "dhcp6_parser.cc"
+#line 4537 "dhcp6_parser.cc"
break;
case 841: // $@128: %empty
-#line 2926 "dhcp6_parser.yy"
+#line 2928 "dhcp6_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4544 "dhcp6_parser.cc"
+#line 4546 "dhcp6_parser.cc"
break;
case 842: // arbitrary_map_entry: "constant string" $@128 ":" value
-#line 2929 "dhcp6_parser.yy"
+#line 2931 "dhcp6_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4553 "dhcp6_parser.cc"
+#line 4555 "dhcp6_parser.cc"
break;
case 843: // $@129: %empty
-#line 2936 "dhcp6_parser.yy"
+#line 2938 "dhcp6_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4561,177 +4563,177 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4565 "dhcp6_parser.cc"
+#line 4567 "dhcp6_parser.cc"
break;
case 844: // dhcp_ddns: "dhcp-ddns" $@129 ":" "{" dhcp_ddns_params "}"
-#line 2942 "dhcp6_parser.yy"
+#line 2944 "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 4576 "dhcp6_parser.cc"
+#line 4578 "dhcp6_parser.cc"
break;
case 845: // $@130: %empty
-#line 2949 "dhcp6_parser.yy"
+#line 2951 "dhcp6_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4586 "dhcp6_parser.cc"
+#line 4588 "dhcp6_parser.cc"
break;
case 846: // sub_dhcp_ddns: "{" $@130 dhcp_ddns_params "}"
-#line 2953 "dhcp6_parser.yy"
+#line 2955 "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 4596 "dhcp6_parser.cc"
+#line 4598 "dhcp6_parser.cc"
break;
case 849: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2961 "dhcp6_parser.yy"
+#line 2963 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4604 "dhcp6_parser.cc"
+#line 4606 "dhcp6_parser.cc"
break;
case 861: // enable_updates: "enable-updates" ":" "boolean"
-#line 2979 "dhcp6_parser.yy"
+#line 2981 "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 4614 "dhcp6_parser.cc"
+#line 4616 "dhcp6_parser.cc"
break;
case 862: // $@131: %empty
-#line 2985 "dhcp6_parser.yy"
+#line 2987 "dhcp6_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4623 "dhcp6_parser.cc"
+#line 4625 "dhcp6_parser.cc"
break;
case 863: // server_ip: "server-ip" $@131 ":" "constant string"
-#line 2988 "dhcp6_parser.yy"
+#line 2990 "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 4633 "dhcp6_parser.cc"
+#line 4635 "dhcp6_parser.cc"
break;
case 864: // server_port: "server-port" ":" "integer"
-#line 2994 "dhcp6_parser.yy"
+#line 2996 "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 4643 "dhcp6_parser.cc"
+#line 4645 "dhcp6_parser.cc"
break;
case 865: // $@132: %empty
-#line 3000 "dhcp6_parser.yy"
+#line 3002 "dhcp6_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4652 "dhcp6_parser.cc"
+#line 4654 "dhcp6_parser.cc"
break;
case 866: // sender_ip: "sender-ip" $@132 ":" "constant string"
-#line 3003 "dhcp6_parser.yy"
+#line 3005 "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 4662 "dhcp6_parser.cc"
+#line 4664 "dhcp6_parser.cc"
break;
case 867: // sender_port: "sender-port" ":" "integer"
-#line 3009 "dhcp6_parser.yy"
+#line 3011 "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 4672 "dhcp6_parser.cc"
+#line 4674 "dhcp6_parser.cc"
break;
case 868: // max_queue_size: "max-queue-size" ":" "integer"
-#line 3015 "dhcp6_parser.yy"
+#line 3017 "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 4682 "dhcp6_parser.cc"
+#line 4684 "dhcp6_parser.cc"
break;
case 869: // $@133: %empty
-#line 3021 "dhcp6_parser.yy"
+#line 3023 "dhcp6_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4691 "dhcp6_parser.cc"
+#line 4693 "dhcp6_parser.cc"
break;
case 870: // ncr_protocol: "ncr-protocol" $@133 ":" ncr_protocol_value
-#line 3024 "dhcp6_parser.yy"
+#line 3026 "dhcp6_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4700 "dhcp6_parser.cc"
+#line 4702 "dhcp6_parser.cc"
break;
case 871: // ncr_protocol_value: "UDP"
-#line 3030 "dhcp6_parser.yy"
+#line 3032 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4706 "dhcp6_parser.cc"
+#line 4708 "dhcp6_parser.cc"
break;
case 872: // ncr_protocol_value: "TCP"
-#line 3031 "dhcp6_parser.yy"
+#line 3033 "dhcp6_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4712 "dhcp6_parser.cc"
+#line 4714 "dhcp6_parser.cc"
break;
case 873: // $@134: %empty
-#line 3034 "dhcp6_parser.yy"
+#line 3036 "dhcp6_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4721 "dhcp6_parser.cc"
+#line 4723 "dhcp6_parser.cc"
break;
case 874: // ncr_format: "ncr-format" $@134 ":" "JSON"
-#line 3037 "dhcp6_parser.yy"
+#line 3039 "dhcp6_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4731 "dhcp6_parser.cc"
+#line 4733 "dhcp6_parser.cc"
break;
case 875: // $@135: %empty
-#line 3045 "dhcp6_parser.yy"
+#line 3047 "dhcp6_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4739,48 +4741,48 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 4743 "dhcp6_parser.cc"
+#line 4745 "dhcp6_parser.cc"
break;
case 876: // config_control: "config-control" $@135 ":" "{" config_control_params "}"
-#line 3051 "dhcp6_parser.yy"
+#line 3053 "dhcp6_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4753 "dhcp6_parser.cc"
+#line 4755 "dhcp6_parser.cc"
break;
case 877: // $@136: %empty
-#line 3057 "dhcp6_parser.yy"
+#line 3059 "dhcp6_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4763 "dhcp6_parser.cc"
+#line 4765 "dhcp6_parser.cc"
break;
case 878: // sub_config_control: "{" $@136 config_control_params "}"
-#line 3061 "dhcp6_parser.yy"
+#line 3063 "dhcp6_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 4772 "dhcp6_parser.cc"
+#line 4774 "dhcp6_parser.cc"
break;
case 881: // config_control_params: config_control_params ","
-#line 3069 "dhcp6_parser.yy"
+#line 3071 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4780 "dhcp6_parser.cc"
+#line 4782 "dhcp6_parser.cc"
break;
case 884: // $@137: %empty
-#line 3079 "dhcp6_parser.yy"
+#line 3081 "dhcp6_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4788,30 +4790,30 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 4792 "dhcp6_parser.cc"
+#line 4794 "dhcp6_parser.cc"
break;
case 885: // config_databases: "config-databases" $@137 ":" "[" database_list "]"
-#line 3085 "dhcp6_parser.yy"
+#line 3087 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4801 "dhcp6_parser.cc"
+#line 4803 "dhcp6_parser.cc"
break;
case 886: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 3090 "dhcp6_parser.yy"
+#line 3092 "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 4811 "dhcp6_parser.cc"
+#line 4813 "dhcp6_parser.cc"
break;
case 887: // $@138: %empty
-#line 3098 "dhcp6_parser.yy"
+#line 3100 "dhcp6_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4819,83 +4821,83 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 4823 "dhcp6_parser.cc"
+#line 4825 "dhcp6_parser.cc"
break;
case 888: // loggers: "loggers" $@138 ":" "[" loggers_entries "]"
-#line 3104 "dhcp6_parser.yy"
+#line 3106 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4832 "dhcp6_parser.cc"
+#line 4834 "dhcp6_parser.cc"
break;
case 891: // loggers_entries: loggers_entries ","
-#line 3113 "dhcp6_parser.yy"
+#line 3115 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4840 "dhcp6_parser.cc"
+#line 4842 "dhcp6_parser.cc"
break;
case 892: // $@139: %empty
-#line 3119 "dhcp6_parser.yy"
+#line 3121 "dhcp6_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 4850 "dhcp6_parser.cc"
+#line 4852 "dhcp6_parser.cc"
break;
case 893: // logger_entry: "{" $@139 logger_params "}"
-#line 3123 "dhcp6_parser.yy"
+#line 3125 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4858 "dhcp6_parser.cc"
+#line 4860 "dhcp6_parser.cc"
break;
case 896: // logger_params: logger_params ","
-#line 3129 "dhcp6_parser.yy"
+#line 3131 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4866 "dhcp6_parser.cc"
+#line 4868 "dhcp6_parser.cc"
break;
case 904: // debuglevel: "debuglevel" ":" "integer"
-#line 3143 "dhcp6_parser.yy"
+#line 3145 "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 4876 "dhcp6_parser.cc"
+#line 4878 "dhcp6_parser.cc"
break;
case 905: // $@140: %empty
-#line 3149 "dhcp6_parser.yy"
+#line 3151 "dhcp6_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4885 "dhcp6_parser.cc"
+#line 4887 "dhcp6_parser.cc"
break;
case 906: // severity: "severity" $@140 ":" "constant string"
-#line 3152 "dhcp6_parser.yy"
+#line 3154 "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 4895 "dhcp6_parser.cc"
+#line 4897 "dhcp6_parser.cc"
break;
case 907: // $@141: %empty
-#line 3158 "dhcp6_parser.yy"
+#line 3160 "dhcp6_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4903,122 +4905,122 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 4907 "dhcp6_parser.cc"
+#line 4909 "dhcp6_parser.cc"
break;
case 908: // output_options_list: "output-options" $@141 ":" "[" output_options_list_content "]"
-#line 3164 "dhcp6_parser.yy"
+#line 3166 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4916 "dhcp6_parser.cc"
+#line 4918 "dhcp6_parser.cc"
break;
case 911: // output_options_list_content: output_options_list_content ","
-#line 3171 "dhcp6_parser.yy"
+#line 3173 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4924 "dhcp6_parser.cc"
+#line 4926 "dhcp6_parser.cc"
break;
case 912: // $@142: %empty
-#line 3176 "dhcp6_parser.yy"
+#line 3178 "dhcp6_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4934 "dhcp6_parser.cc"
+#line 4936 "dhcp6_parser.cc"
break;
case 913: // output_entry: "{" $@142 output_params_list "}"
-#line 3180 "dhcp6_parser.yy"
+#line 3182 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4942 "dhcp6_parser.cc"
+#line 4944 "dhcp6_parser.cc"
break;
case 916: // output_params_list: output_params_list ","
-#line 3186 "dhcp6_parser.yy"
+#line 3188 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4950 "dhcp6_parser.cc"
+#line 4952 "dhcp6_parser.cc"
break;
case 922: // $@143: %empty
-#line 3198 "dhcp6_parser.yy"
+#line 3200 "dhcp6_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4959 "dhcp6_parser.cc"
+#line 4961 "dhcp6_parser.cc"
break;
case 923: // output: "output" $@143 ":" "constant string"
-#line 3201 "dhcp6_parser.yy"
+#line 3203 "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 4969 "dhcp6_parser.cc"
+#line 4971 "dhcp6_parser.cc"
break;
case 924: // flush: "flush" ":" "boolean"
-#line 3207 "dhcp6_parser.yy"
+#line 3209 "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 4979 "dhcp6_parser.cc"
+#line 4981 "dhcp6_parser.cc"
break;
case 925: // maxsize: "maxsize" ":" "integer"
-#line 3213 "dhcp6_parser.yy"
+#line 3215 "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 4989 "dhcp6_parser.cc"
+#line 4991 "dhcp6_parser.cc"
break;
case 926: // maxver: "maxver" ":" "integer"
-#line 3219 "dhcp6_parser.yy"
+#line 3221 "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 4999 "dhcp6_parser.cc"
+#line 5001 "dhcp6_parser.cc"
break;
case 927: // $@144: %empty
-#line 3225 "dhcp6_parser.yy"
+#line 3227 "dhcp6_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 5008 "dhcp6_parser.cc"
+#line 5010 "dhcp6_parser.cc"
break;
case 928: // pattern: "pattern" $@144 ":" "constant string"
-#line 3228 "dhcp6_parser.yy"
+#line 3230 "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 5018 "dhcp6_parser.cc"
+#line 5020 "dhcp6_parser.cc"
break;
case 929: // $@145: %empty
-#line 3234 "dhcp6_parser.yy"
+#line 3236 "dhcp6_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -5026,38 +5028,38 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 5030 "dhcp6_parser.cc"
+#line 5032 "dhcp6_parser.cc"
break;
case 930: // compatibility: "compatibility" $@145 ":" "{" compatibility_params "}"
-#line 3240 "dhcp6_parser.yy"
+#line 3242 "dhcp6_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5039 "dhcp6_parser.cc"
+#line 5041 "dhcp6_parser.cc"
break;
case 933: // compatibility_params: compatibility_params ","
-#line 3247 "dhcp6_parser.yy"
+#line 3249 "dhcp6_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5047 "dhcp6_parser.cc"
+#line 5049 "dhcp6_parser.cc"
break;
case 936: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3256 "dhcp6_parser.yy"
+#line 3258 "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 5057 "dhcp6_parser.cc"
+#line 5059 "dhcp6_parser.cc"
break;
-#line 5061 "dhcp6_parser.cc"
+#line 5063 "dhcp6_parser.cc"
default:
break;
@@ -6749,22 +6751,22 @@ namespace isc { namespace dhcp {
2655, 2667, 2668, 2671, 2672, 2673, 2678, 2678, 2686, 2687,
2688, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701,
2702, 2703, 2704, 2707, 2707, 2716, 2717, 2718, 2721, 2721,
- 2730, 2730, 2739, 2745, 2753, 2753, 2766, 2767, 2768, 2773,
- 2774, 2775, 2776, 2777, 2778, 2779, 2782, 2782, 2790, 2793,
- 2793, 2802, 2802, 2811, 2811, 2822, 2823, 2826, 2827, 2828,
- 2833, 2833, 2841, 2842, 2843, 2848, 2849, 2850, 2851, 2852,
- 2853, 2854, 2857, 2857, 2866, 2866, 2877, 2877, 2890, 2891,
- 2892, 2897, 2898, 2899, 2900, 2901, 2902, 2905, 2911, 2911,
- 2920, 2926, 2926, 2936, 2936, 2949, 2949, 2959, 2960, 2961,
- 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975,
- 2976, 2979, 2985, 2985, 2994, 3000, 3000, 3009, 3015, 3021,
- 3021, 3030, 3031, 3034, 3034, 3045, 3045, 3057, 3057, 3067,
- 3068, 3069, 3075, 3076, 3079, 3079, 3090, 3098, 3098, 3111,
- 3112, 3113, 3119, 3119, 3127, 3128, 3129, 3134, 3135, 3136,
- 3137, 3138, 3139, 3140, 3143, 3149, 3149, 3158, 3158, 3169,
- 3170, 3171, 3176, 3176, 3184, 3185, 3186, 3191, 3192, 3193,
- 3194, 3195, 3198, 3198, 3207, 3213, 3219, 3225, 3225, 3234,
- 3234, 3245, 3246, 3247, 3252, 3253, 3256
+ 2731, 2731, 2741, 2747, 2755, 2755, 2768, 2769, 2770, 2775,
+ 2776, 2777, 2778, 2779, 2780, 2781, 2784, 2784, 2792, 2795,
+ 2795, 2804, 2804, 2813, 2813, 2824, 2825, 2828, 2829, 2830,
+ 2835, 2835, 2843, 2844, 2845, 2850, 2851, 2852, 2853, 2854,
+ 2855, 2856, 2859, 2859, 2868, 2868, 2879, 2879, 2892, 2893,
+ 2894, 2899, 2900, 2901, 2902, 2903, 2904, 2907, 2913, 2913,
+ 2922, 2928, 2928, 2938, 2938, 2951, 2951, 2961, 2962, 2963,
+ 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977,
+ 2978, 2981, 2987, 2987, 2996, 3002, 3002, 3011, 3017, 3023,
+ 3023, 3032, 3033, 3036, 3036, 3047, 3047, 3059, 3059, 3069,
+ 3070, 3071, 3077, 3078, 3081, 3081, 3092, 3100, 3100, 3113,
+ 3114, 3115, 3121, 3121, 3129, 3130, 3131, 3136, 3137, 3138,
+ 3139, 3140, 3141, 3142, 3145, 3151, 3151, 3160, 3160, 3171,
+ 3172, 3173, 3178, 3178, 3186, 3187, 3188, 3193, 3194, 3195,
+ 3196, 3197, 3200, 3200, 3209, 3215, 3221, 3227, 3227, 3236,
+ 3236, 3247, 3248, 3249, 3254, 3255, 3258
};
void
@@ -6797,9 +6799,9 @@ namespace isc { namespace dhcp {
#line 14 "dhcp6_parser.yy"
} } // isc::dhcp
-#line 6801 "dhcp6_parser.cc"
+#line 6803 "dhcp6_parser.cc"
-#line 3262 "dhcp6_parser.yy"
+#line 3264 "dhcp6_parser.yy"
void
diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh
index 79e9d30e3d..164322bdde 100644
--- a/src/bin/dhcp6/location.hh
+++ b/src/bin/dhcp6/location.hh
@@ -1,4 +1,4 @@
-// Generated 202407041227
+// Generated 202407231401
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++