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