]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3477] Regen bison
authorFrancis Dupont <fdupont@isc.org>
Tue, 23 Jul 2024 14:02:04 +0000 (14:02 +0000)
committerFrancis Dupont <fdupont@isc.org>
Thu, 1 Aug 2024 07:23:54 +0000 (09:23 +0200)
src/bin/d2/d2_parser.cc
src/bin/d2/location.hh
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/location.hh
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/location.hh

index 840eaf15d92bc2610f9ef9ea69047742fd205408..b740e96ed2eb8752b41a07beef430bfbc36e6ab7 100644 (file)
@@ -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
index 2466444683f387f4ed03caf86d224ea86a303b18..dd188b83fb06d0b48a8e9bd36d8a5f3a62948e34 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202407041528
+// Generated 202407231401
 // A Bison parser, made by GNU Bison 3.8.2.
 
 // Locations for Bison parsers in C++
index 9e1bbde804192e5b37e6e8fcc077430160b1d3a6..990a80bf1682d0078400789f51e98f4d72cdf0ef 100644 (file)
@@ -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
index 786be23821d9f00722a2d60702cbcc121ecd381b..3b5cfa605edf78ef2dcb7b03c4f5a753f4e81884 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202407041227
+// Generated 202407231401
 // A Bison parser, made by GNU Bison 3.8.2.
 
 // Locations for Bison parsers in C++
index b837500fd1ebbdef25d5d5f58d9100ba03b8422b..434e16d8ec2abd19cf10471413f74238f273d157 100644 (file)
@@ -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
index 79e9d30e3d7ed73fe130b7ef6a050cc1bd901396..164322bdde5dab0cf55be4c6e8ef003ea7e2a3fa 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 202407041227
+// Generated 202407231401
 // A Bison parser, made by GNU Bison 3.8.2.
 
 // Locations for Bison parsers in C++