From: Francis Dupont Date: Tue, 10 Jan 2017 22:24:39 +0000 (+0100) Subject: [master] Finished merge of trac5035 (migrate lease expiration config) X-Git-Tag: trac4540_base~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7be6514d9b75d812f6f99d3690978e119a787996;p=thirdparty%2Fkea.git [master] Finished merge of trac5035 (migrate lease expiration config) --- 7be6514d9b75d812f6f99d3690978e119a787996 diff --cc src/bin/dhcp4/dhcp4_parser.cc index 3982ab71b7,b8cb2aec81..c8d7c9041e --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@@ -253,24 -253,23 +253,24 @@@ namespace isc { namespace dhcp { switch (that.type_get ()) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type value.move< ElementPtr > (that.value); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" value.move< bool > (that.value); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" value.move< double > (that.value); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" value.move< int64_t > (that.value); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" value.move< std::string > (that.value); break; @@@ -289,24 -288,23 +289,24 @@@ state = that.state; switch (that.type_get ()) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type value.copy< ElementPtr > (that.value); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" value.copy< bool > (that.value); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" value.copy< double > (that.value); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" value.copy< int64_t > (that.value); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" value.copy< std::string > (that.value); break; @@@ -346,46 -344,39 +346,46 @@@ << yysym.location << ": "; switch (yytype) { - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" - #line 192 "dhcp4_parser.yy" // lalr1.cc:636 -#line 195 "dhcp4_parser.yy" // lalr1.cc:636 ++#line 198 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< std::string > (); } -#line 352 "dhcp4_parser.cc" // lalr1.cc:636 +#line 354 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" - #line 192 "dhcp4_parser.yy" // lalr1.cc:636 -#line 195 "dhcp4_parser.yy" // lalr1.cc:636 ++#line 198 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< int64_t > (); } -#line 359 "dhcp4_parser.cc" // lalr1.cc:636 +#line 361 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" - #line 192 "dhcp4_parser.yy" // lalr1.cc:636 -#line 195 "dhcp4_parser.yy" // lalr1.cc:636 ++#line 198 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< double > (); } -#line 366 "dhcp4_parser.cc" // lalr1.cc:636 +#line 368 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" - #line 192 "dhcp4_parser.yy" // lalr1.cc:636 -#line 195 "dhcp4_parser.yy" // lalr1.cc:636 ++#line 198 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< bool > (); } -#line 373 "dhcp4_parser.cc" // lalr1.cc:636 +#line 375 "dhcp4_parser.cc" // lalr1.cc:636 break; - case 116: // value - case 120: // value ++ case 122: // value - #line 192 "dhcp4_parser.yy" // lalr1.cc:636 -#line 195 "dhcp4_parser.yy" // lalr1.cc:636 ++#line 198 "dhcp4_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 380 "dhcp4_parser.cc" // lalr1.cc:636 +#line 382 "dhcp4_parser.cc" // lalr1.cc:636 + break; + - case 155: // socket_type ++ case 161: // socket_type + - #line 192 "dhcp4_parser.yy" // lalr1.cc:636 ++#line 198 "dhcp4_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 389 "dhcp4_parser.cc" // lalr1.cc:636 break; @@@ -585,24 -576,23 +585,24 @@@ when using variants. */ switch (yyr1_[yyn]) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type yylhs.value.build< ElementPtr > (); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" yylhs.value.build< bool > (); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" yylhs.value.build< double > (); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" yylhs.value.build< int64_t > (); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" yylhs.value.build< std::string > (); break; @@@ -624,109 -614,109 +624,109 @@@ switch (yyn) { case 2: - #line 201 "dhcp4_parser.yy" // lalr1.cc:859 -#line 204 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 207 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 620 "dhcp4_parser.cc" // lalr1.cc:859 +#line 630 "dhcp4_parser.cc" // lalr1.cc:859 break; case 4: - #line 202 "dhcp4_parser.yy" // lalr1.cc:859 -#line 205 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 208 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.CONFIG; } -#line 626 "dhcp4_parser.cc" // lalr1.cc:859 +#line 636 "dhcp4_parser.cc" // lalr1.cc:859 break; case 6: - #line 203 "dhcp4_parser.yy" // lalr1.cc:859 -#line 206 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 209 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP4; } -#line 632 "dhcp4_parser.cc" // lalr1.cc:859 +#line 642 "dhcp4_parser.cc" // lalr1.cc:859 break; case 8: - #line 204 "dhcp4_parser.yy" // lalr1.cc:859 -#line 207 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 210 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 638 "dhcp4_parser.cc" // lalr1.cc:859 +#line 648 "dhcp4_parser.cc" // lalr1.cc:859 break; case 10: - #line 205 "dhcp4_parser.yy" // lalr1.cc:859 -#line 208 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 211 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.SUBNET4; } -#line 644 "dhcp4_parser.cc" // lalr1.cc:859 +#line 654 "dhcp4_parser.cc" // lalr1.cc:859 break; case 12: - #line 206 "dhcp4_parser.yy" // lalr1.cc:859 -#line 209 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 212 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.POOLS; } -#line 650 "dhcp4_parser.cc" // lalr1.cc:859 +#line 660 "dhcp4_parser.cc" // lalr1.cc:859 break; case 14: - #line 207 "dhcp4_parser.yy" // lalr1.cc:859 -#line 210 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 213 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.RESERVATIONS; } -#line 656 "dhcp4_parser.cc" // lalr1.cc:859 +#line 666 "dhcp4_parser.cc" // lalr1.cc:859 break; case 16: - #line 208 "dhcp4_parser.yy" // lalr1.cc:859 -#line 211 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 214 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DEF; } -#line 662 "dhcp4_parser.cc" // lalr1.cc:859 +#line 672 "dhcp4_parser.cc" // lalr1.cc:859 break; case 18: - #line 209 "dhcp4_parser.yy" // lalr1.cc:859 -#line 212 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 215 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DATA; } -#line 668 "dhcp4_parser.cc" // lalr1.cc:859 +#line 678 "dhcp4_parser.cc" // lalr1.cc:859 break; case 20: - #line 210 "dhcp4_parser.yy" // lalr1.cc:859 -#line 213 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 216 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 674 "dhcp4_parser.cc" // lalr1.cc:859 +#line 684 "dhcp4_parser.cc" // lalr1.cc:859 break; case 22: - #line 218 "dhcp4_parser.yy" // lalr1.cc:859 -#line 221 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 224 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 680 "dhcp4_parser.cc" // lalr1.cc:859 +#line 690 "dhcp4_parser.cc" // lalr1.cc:859 break; case 23: - #line 219 "dhcp4_parser.yy" // lalr1.cc:859 -#line 222 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 225 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } -#line 686 "dhcp4_parser.cc" // lalr1.cc:859 +#line 696 "dhcp4_parser.cc" // lalr1.cc:859 break; case 24: - #line 220 "dhcp4_parser.yy" // lalr1.cc:859 -#line 223 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 226 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 692 "dhcp4_parser.cc" // lalr1.cc:859 +#line 702 "dhcp4_parser.cc" // lalr1.cc:859 break; case 25: - #line 221 "dhcp4_parser.yy" // lalr1.cc:859 -#line 224 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 227 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 698 "dhcp4_parser.cc" // lalr1.cc:859 +#line 708 "dhcp4_parser.cc" // lalr1.cc:859 break; case 26: - #line 222 "dhcp4_parser.yy" // lalr1.cc:859 -#line 225 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 228 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 704 "dhcp4_parser.cc" // lalr1.cc:859 +#line 714 "dhcp4_parser.cc" // lalr1.cc:859 break; case 27: - #line 223 "dhcp4_parser.yy" // lalr1.cc:859 -#line 226 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 229 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 710 "dhcp4_parser.cc" // lalr1.cc:859 +#line 720 "dhcp4_parser.cc" // lalr1.cc:859 break; case 28: - #line 224 "dhcp4_parser.yy" // lalr1.cc:859 -#line 227 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 230 "dhcp4_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 716 "dhcp4_parser.cc" // lalr1.cc:859 +#line 726 "dhcp4_parser.cc" // lalr1.cc:859 break; case 29: - #line 227 "dhcp4_parser.yy" // lalr1.cc:859 -#line 230 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 233 "dhcp4_parser.yy" // lalr1.cc:859 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@@ -735,7 -725,7 +735,7 @@@ break; case 30: - #line 232 "dhcp4_parser.yy" // lalr1.cc:859 -#line 235 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 238 "dhcp4_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@@ -746,7 -736,7 +746,7 @@@ break; case 31: - #line 237 "dhcp4_parser.yy" // lalr1.cc:859 -#line 240 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 243 "dhcp4_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@@ -756,7 -746,7 +756,7 @@@ break; case 34: - #line 248 "dhcp4_parser.yy" // lalr1.cc:859 -#line 251 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 254 "dhcp4_parser.yy" // lalr1.cc:859 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@@ -765,7 -755,7 +765,7 @@@ break; case 35: - #line 252 "dhcp4_parser.yy" // lalr1.cc:859 -#line 255 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 258 "dhcp4_parser.yy" // lalr1.cc:859 { // map consisting of a shorter map followed by // comma and string:value @@@ -775,7 -765,7 +775,7 @@@ break; case 36: - #line 259 "dhcp4_parser.yy" // lalr1.cc:859 -#line 262 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 265 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@@ -784,7 -774,7 +784,7 @@@ break; case 37: - #line 262 "dhcp4_parser.yy" // lalr1.cc:859 -#line 265 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 268 "dhcp4_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here } @@@ -792,7 -782,7 +792,7 @@@ break; case 38: - #line 267 "dhcp4_parser.yy" // lalr1.cc:859 -#line 270 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 273 "dhcp4_parser.yy" // lalr1.cc:859 { // List parsing about to start } @@@ -800,7 -790,7 +800,7 @@@ break; case 39: - #line 269 "dhcp4_parser.yy" // lalr1.cc:859 -#line 272 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 275 "dhcp4_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@@ -809,7 -799,7 +809,7 @@@ break; case 42: - #line 278 "dhcp4_parser.yy" // lalr1.cc:859 -#line 281 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 284 "dhcp4_parser.yy" // lalr1.cc:859 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@@ -818,7 -808,7 +818,7 @@@ break; case 43: - #line 282 "dhcp4_parser.yy" // lalr1.cc:859 -#line 285 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 288 "dhcp4_parser.yy" // lalr1.cc:859 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@@ -827,7 -817,7 +827,7 @@@ break; case 44: - #line 293 "dhcp4_parser.yy" // lalr1.cc:859 -#line 296 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 299 "dhcp4_parser.yy" // lalr1.cc:859 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@@ -838,7 -828,7 +838,7 @@@ break; case 45: - #line 303 "dhcp4_parser.yy" // lalr1.cc:859 -#line 306 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 309 "dhcp4_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@@ -849,7 -839,7 +849,7 @@@ break; case 46: - #line 308 "dhcp4_parser.yy" // lalr1.cc:859 -#line 311 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 314 "dhcp4_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@@ -859,7 -849,7 +859,7 @@@ break; case 54: - #line 327 "dhcp4_parser.yy" // lalr1.cc:859 -#line 330 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 333 "dhcp4_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@@ -872,7 -862,7 +872,7 @@@ break; case 55: - #line 334 "dhcp4_parser.yy" // lalr1.cc:859 -#line 337 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 340 "dhcp4_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@@ -884,7 -874,7 +884,7 @@@ break; case 56: - #line 344 "dhcp4_parser.yy" // lalr1.cc:859 -#line 347 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 350 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@@ -894,7 -884,7 +894,7 @@@ break; case 57: - #line 348 "dhcp4_parser.yy" // lalr1.cc:859 -#line 351 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 354 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } @@@ -902,7 -892,7 +902,7 @@@ break; case 82: - #line 382 "dhcp4_parser.yy" // lalr1.cc:859 -#line 385 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 388 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@@ -911,7 -901,7 +911,7 @@@ break; case 83: - #line 387 "dhcp4_parser.yy" // lalr1.cc:859 -#line 390 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 393 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); @@@ -920,7 -910,7 +920,7 @@@ break; case 84: - #line 392 "dhcp4_parser.yy" // lalr1.cc:859 -#line 395 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 398 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); @@@ -929,7 -919,7 +929,7 @@@ break; case 85: - #line 397 "dhcp4_parser.yy" // lalr1.cc:859 -#line 400 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 403 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); @@@ -938,7 -928,7 +938,7 @@@ break; case 86: - #line 402 "dhcp4_parser.yy" // lalr1.cc:859 -#line 405 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 408 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("echo-client-id", echo); @@@ -947,7 -937,7 +947,7 @@@ break; case 87: - #line 407 "dhcp4_parser.yy" // lalr1.cc:859 -#line 410 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 413 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("match-client-id", match); @@@ -956,7 -946,7 +956,7 @@@ break; case 88: - #line 413 "dhcp4_parser.yy" // lalr1.cc:859 -#line 416 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 419 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); @@@ -967,7 -957,7 +967,7 @@@ break; case 89: - #line 418 "dhcp4_parser.yy" // lalr1.cc:859 -#line 421 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 424 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -976,7 -966,7 +976,7 @@@ break; case 94: - #line 431 "dhcp4_parser.yy" // lalr1.cc:859 -#line 434 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 437 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@@ -986,7 -976,7 +986,7 @@@ break; case 95: - #line 435 "dhcp4_parser.yy" // lalr1.cc:859 -#line 438 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 441 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } @@@ -994,7 -984,7 +994,7 @@@ break; case 96: - #line 439 "dhcp4_parser.yy" // lalr1.cc:859 -#line 442 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 445 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); @@@ -1005,7 -995,7 +1005,7 @@@ break; case 97: - #line 444 "dhcp4_parser.yy" // lalr1.cc:859 -#line 447 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 450 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1014,399 -1004,433 +1014,444 @@@ break; case 98: - #line 449 "dhcp4_parser.yy" // lalr1.cc:859 -#line 452 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 455 "dhcp4_parser.yy" // lalr1.cc:859 { - ctx.enter(ctx.NO_KEYWORD); + ctx.enter(ctx.DHCP_SOCKET_TYPE); } -#line 1012 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1022 "dhcp4_parser.cc" // lalr1.cc:859 break; case 99: - #line 451 "dhcp4_parser.yy" // lalr1.cc:859 -#line 454 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 457 "dhcp4_parser.yy" // lalr1.cc:859 { - ElementPtr type(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("dhcp-socket-type", type); + ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1022 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1031 "dhcp4_parser.cc" // lalr1.cc:859 break; case 100: - #line 456 "dhcp4_parser.yy" // lalr1.cc:859 -#line 460 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 462 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } +#line 1037 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 101: - #line 457 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 463 "dhcp4_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } +#line 1043 "dhcp4_parser.cc" // lalr1.cc:859 + break; + + case 102: - #line 460 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 466 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1033 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1054 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 101: -#line 465 "dhcp4_parser.yy" // lalr1.cc:859 + case 103: - #line 465 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 471 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1042 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1063 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 102: -#line 470 "dhcp4_parser.yy" // lalr1.cc:859 + case 104: - #line 470 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 476 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1053 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1074 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 103: -#line 475 "dhcp4_parser.yy" // lalr1.cc:859 + case 105: - #line 475 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 481 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1062 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1083 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 115: -#line 495 "dhcp4_parser.yy" // lalr1.cc:859 + case 117: - #line 495 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 501 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1070 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1091 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 116: -#line 497 "dhcp4_parser.yy" // lalr1.cc:859 + case 118: - #line 497 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 503 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 1080 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1101 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 117: -#line 503 "dhcp4_parser.yy" // lalr1.cc:859 + case 119: - #line 503 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 509 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1088 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1109 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 118: -#line 505 "dhcp4_parser.yy" // lalr1.cc:859 + case 120: - #line 505 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 511 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1098 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1119 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 119: -#line 511 "dhcp4_parser.yy" // lalr1.cc:859 + case 121: - #line 511 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 517 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1106 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1127 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 120: -#line 513 "dhcp4_parser.yy" // lalr1.cc:859 + case 122: - #line 513 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 519 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1116 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1137 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 121: -#line 519 "dhcp4_parser.yy" // lalr1.cc:859 + case 123: - #line 519 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 525 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1124 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1145 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 122: -#line 521 "dhcp4_parser.yy" // lalr1.cc:859 + case 124: - #line 521 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 527 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1134 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1155 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 123: -#line 527 "dhcp4_parser.yy" // lalr1.cc:859 + case 125: - #line 527 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 533 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1142 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1163 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 124: -#line 529 "dhcp4_parser.yy" // lalr1.cc:859 + case 126: - #line 529 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 535 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1152 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1173 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 125: -#line 535 "dhcp4_parser.yy" // lalr1.cc:859 + case 127: - #line 535 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 541 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1161 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1182 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 126: -#line 540 "dhcp4_parser.yy" // lalr1.cc:859 + case 128: - #line 540 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 546 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1170 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1191 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 127: -#line 545 "dhcp4_parser.yy" // lalr1.cc:859 + case 129: - #line 545 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 551 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1179 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1200 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 128: -#line 550 "dhcp4_parser.yy" // lalr1.cc:859 + case 130: - #line 550 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 556 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1188 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1209 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 129: -#line 555 "dhcp4_parser.yy" // lalr1.cc:859 + case 131: - #line 555 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 561 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1199 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1220 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 130: -#line 560 "dhcp4_parser.yy" // lalr1.cc:859 + case 132: - #line 560 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 566 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1208 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1229 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 137: -#line 575 "dhcp4_parser.yy" // lalr1.cc:859 + case 139: - #line 575 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 581 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1217 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1238 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 138: -#line 580 "dhcp4_parser.yy" // lalr1.cc:859 + case 140: - #line 580 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 586 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); } -#line 1226 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1247 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 139: -#line 585 "dhcp4_parser.yy" // lalr1.cc:859 + case 141: - #line 585 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 591 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); } -#line 1235 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1256 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 140: -#line 590 "dhcp4_parser.yy" // lalr1.cc:859 + case 142: - #line 590 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 596 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1246 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1267 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 141: -#line 595 "dhcp4_parser.yy" // lalr1.cc:859 + case 143: - #line 595 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 601 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1255 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1276 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 146: -#line 608 "dhcp4_parser.yy" // lalr1.cc:859 + case 148: - #line 608 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 614 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1265 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1286 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 147: -#line 612 "dhcp4_parser.yy" // lalr1.cc:859 + case 149: - #line 612 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 618 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } -#line 1273 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1294 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 148: -#line 616 "dhcp4_parser.yy" // lalr1.cc:859 + case 150: - #line 616 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 622 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1283 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1304 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 149: -#line 620 "dhcp4_parser.yy" // lalr1.cc:859 + case 151: - #line 620 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 626 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } -#line 1291 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1312 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 155: -#line 633 "dhcp4_parser.yy" // lalr1.cc:859 + case 157: - #line 633 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 639 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1299 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1320 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 156: -#line 635 "dhcp4_parser.yy" // lalr1.cc:859 + case 158: - #line 635 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 641 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1309 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1330 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 157: -#line 641 "dhcp4_parser.yy" // lalr1.cc:859 + case 159: - #line 641 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 647 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } -#line 1317 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1338 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 158: -#line 643 "dhcp4_parser.yy" // lalr1.cc:859 + case 160: - #line 643 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 649 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1326 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1347 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 159: -#line 649 "dhcp4_parser.yy" // lalr1.cc:859 + case 161: - #line 649 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 655 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); - ctx.enter(ctx.NO_KEYWORD); + ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1337 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1358 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 160: -#line 654 "dhcp4_parser.yy" // lalr1.cc:859 + case 162: - #line 654 "dhcp4_parser.yy" // lalr1.cc:859 ++#line 660 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1346 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1367 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 165: - #line 666 "dhcp4_parser.yy" // lalr1.cc:859 - case 169: -#line 671 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 171: ++#line 677 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), value); + ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1355 "dhcp4_parser.cc" // lalr1.cc:859 +#line 1376 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 166: - #line 674 "dhcp4_parser.yy" // lalr1.cc:859 - case 170: -#line 676 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 172: ++#line 682 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); + } -#line 1364 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1385 "dhcp4_parser.cc" // lalr1.cc:859 + break; + - case 171: -#line 681 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 173: ++#line 687 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hold-reclaimed-time", value); + } -#line 1373 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1394 "dhcp4_parser.cc" // lalr1.cc:859 + break; + - case 172: -#line 686 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 174: ++#line 692 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reclaim-leases", value); + } -#line 1382 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1403 "dhcp4_parser.cc" // lalr1.cc:859 + break; + - case 173: -#line 691 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 175: ++#line 697 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reclaim-time", value); + } -#line 1391 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1412 "dhcp4_parser.cc" // lalr1.cc:859 + break; + - case 174: -#line 696 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 176: ++#line 702 "dhcp4_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("unwarned-reclaim-cycles", value); + } -#line 1400 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1421 "dhcp4_parser.cc" // lalr1.cc:859 + break; + - case 175: -#line 704 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 177: ++#line 710 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet4", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET4); } - #line 1387 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1411 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1432 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 167: - #line 679 "dhcp4_parser.yy" // lalr1.cc:859 - case 176: -#line 709 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 178: ++#line 715 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1396 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1420 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1441 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 172: - #line 699 "dhcp4_parser.yy" // lalr1.cc:859 - case 181: -#line 729 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 183: ++#line 735 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1406 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1430 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1451 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 173: - #line 703 "dhcp4_parser.yy" // lalr1.cc:859 - case 182: -#line 733 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 184: ++#line 739 "dhcp4_parser.yy" // lalr1.cc:859 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@@ -1425,1133 -1449,1133 +1470,1133 @@@ // } ctx.stack_.pop_back(); } - #line 1429 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1453 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1474 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 174: - #line 722 "dhcp4_parser.yy" // lalr1.cc:859 - case 183: -#line 752 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 185: ++#line 758 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1439 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1463 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1484 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 175: - #line 726 "dhcp4_parser.yy" // lalr1.cc:859 - case 184: -#line 756 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 186: ++#line 762 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1447 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1471 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1492 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 198: - #line 758 "dhcp4_parser.yy" // lalr1.cc:859 - case 207: -#line 788 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 209: ++#line 794 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1455 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1479 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1500 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 199: - #line 760 "dhcp4_parser.yy" // lalr1.cc:859 - case 208: -#line 790 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 210: ++#line 796 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } - #line 1465 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1489 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1510 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 200: - #line 766 "dhcp4_parser.yy" // lalr1.cc:859 - case 209: -#line 796 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 211: ++#line 802 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1473 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1497 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1518 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 201: - #line 768 "dhcp4_parser.yy" // lalr1.cc:859 - case 210: -#line 798 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 212: ++#line 804 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); ctx.leave(); } - #line 1483 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1507 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1528 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 202: - #line 774 "dhcp4_parser.yy" // lalr1.cc:859 - case 211: -#line 804 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 213: ++#line 810 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1491 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1515 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1536 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 203: - #line 776 "dhcp4_parser.yy" // lalr1.cc:859 - case 212: -#line 806 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 214: ++#line 812 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); ctx.leave(); } - #line 1501 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1525 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1546 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 204: - #line 782 "dhcp4_parser.yy" // lalr1.cc:859 - case 213: -#line 812 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 215: ++#line 818 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1509 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1533 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1554 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 205: - #line 784 "dhcp4_parser.yy" // lalr1.cc:859 - case 214: -#line 814 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 216: ++#line 820 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); ctx.leave(); } - #line 1519 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1543 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1564 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 206: - #line 790 "dhcp4_parser.yy" // lalr1.cc:859 - case 215: -#line 820 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 217: ++#line 826 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1527 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1551 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1572 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 207: - #line 792 "dhcp4_parser.yy" // lalr1.cc:859 - case 216: -#line 822 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 218: ++#line 828 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } - #line 1537 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1561 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1582 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 208: - #line 798 "dhcp4_parser.yy" // lalr1.cc:859 - case 217: -#line 828 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 219: ++#line 834 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1545 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1569 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1590 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 209: - #line 800 "dhcp4_parser.yy" // lalr1.cc:859 - case 218: -#line 830 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 220: ++#line 836 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } - #line 1555 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1579 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1600 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 210: - #line 806 "dhcp4_parser.yy" // lalr1.cc:859 - case 219: -#line 836 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 221: ++#line 842 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.CLIENT_CLASS); } - #line 1563 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1587 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1608 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 211: - #line 808 "dhcp4_parser.yy" // lalr1.cc:859 - case 220: -#line 838 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 222: ++#line 844 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } - #line 1573 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1597 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1618 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 212: - #line 814 "dhcp4_parser.yy" // lalr1.cc:859 - case 221: -#line 844 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 223: ++#line 850 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1581 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1605 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1626 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 213: - #line 816 "dhcp4_parser.yy" // lalr1.cc:859 - case 222: -#line 846 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 224: ++#line 852 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservation-mode", rm); ctx.leave(); } - #line 1591 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1615 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1636 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 214: - #line 822 "dhcp4_parser.yy" // lalr1.cc:859 - case 223: -#line 852 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 225: ++#line 858 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } - #line 1600 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1624 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1645 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 215: - #line 827 "dhcp4_parser.yy" // lalr1.cc:859 - case 224: -#line 857 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 226: ++#line 863 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } - #line 1609 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1633 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1654 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 216: - #line 836 "dhcp4_parser.yy" // lalr1.cc:859 - case 225: -#line 866 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 227: ++#line 872 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } - #line 1620 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1644 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1665 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 217: - #line 841 "dhcp4_parser.yy" // lalr1.cc:859 - case 226: -#line 871 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 228: ++#line 877 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1629 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1653 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1674 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 222: - #line 858 "dhcp4_parser.yy" // lalr1.cc:859 - case 231: -#line 888 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 233: ++#line 894 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1639 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1663 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1684 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 223: - #line 862 "dhcp4_parser.yy" // lalr1.cc:859 - case 232: -#line 892 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 234: ++#line 898 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1647 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1671 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1692 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 224: - #line 869 "dhcp4_parser.yy" // lalr1.cc:859 - case 233: -#line 899 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 235: ++#line 905 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1657 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1681 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1702 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 225: - #line 873 "dhcp4_parser.yy" // lalr1.cc:859 - case 234: -#line 903 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 236: ++#line 909 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1665 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1689 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1710 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 239: - #line 899 "dhcp4_parser.yy" // lalr1.cc:859 - case 248: -#line 929 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 250: ++#line 935 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } - #line 1674 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1698 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1719 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 242: - #line 908 "dhcp4_parser.yy" // lalr1.cc:859 - case 251: -#line 938 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 253: ++#line 944 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1682 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1706 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1727 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 243: - #line 910 "dhcp4_parser.yy" // lalr1.cc:859 - case 252: -#line 940 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 254: ++#line 946 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } - #line 1692 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1716 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1737 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 244: - #line 916 "dhcp4_parser.yy" // lalr1.cc:859 - case 253: -#line 946 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 255: ++#line 952 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1700 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1724 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1745 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 245: - #line 918 "dhcp4_parser.yy" // lalr1.cc:859 - case 254: -#line 948 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 256: ++#line 954 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } - #line 1710 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1734 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1755 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 247: - #line 926 "dhcp4_parser.yy" // lalr1.cc:859 - case 256: -#line 956 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 258: ++#line 962 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1718 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1742 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1763 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 248: - #line 928 "dhcp4_parser.yy" // lalr1.cc:859 - case 257: -#line 958 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 259: ++#line 964 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } - #line 1728 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1752 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1773 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 249: - #line 934 "dhcp4_parser.yy" // lalr1.cc:859 - case 258: -#line 964 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 260: ++#line 970 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } - #line 1737 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1761 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1782 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 250: - #line 943 "dhcp4_parser.yy" // lalr1.cc:859 - case 259: -#line 973 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 261: ++#line 979 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } - #line 1748 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1772 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1793 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 251: - #line 948 "dhcp4_parser.yy" // lalr1.cc:859 - case 260: -#line 978 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 262: ++#line 984 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1757 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1781 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1802 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 256: - #line 967 "dhcp4_parser.yy" // lalr1.cc:859 - case 265: -#line 997 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 267: ++#line 1003 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1767 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1791 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1812 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 257: - #line 971 "dhcp4_parser.yy" // lalr1.cc:859 - case 266: -#line 1001 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 268: ++#line 1007 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1775 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1799 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1820 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 258: - #line 978 "dhcp4_parser.yy" // lalr1.cc:859 - case 267: -#line 1008 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 269: ++#line 1014 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1785 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1809 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1830 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 259: - #line 982 "dhcp4_parser.yy" // lalr1.cc:859 - case 268: -#line 1012 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 270: ++#line 1018 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1793 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1817 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1838 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 271: - #line 1011 "dhcp4_parser.yy" // lalr1.cc:859 - case 280: -#line 1041 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 282: ++#line 1047 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1801 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1825 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1846 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 272: - #line 1013 "dhcp4_parser.yy" // lalr1.cc:859 - case 281: -#line 1043 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 283: ++#line 1049 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } - #line 1811 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1835 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1856 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 275: - #line 1023 "dhcp4_parser.yy" // lalr1.cc:859 - case 284: -#line 1053 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 286: ++#line 1059 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } - #line 1820 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1844 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1865 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 276: - #line 1031 "dhcp4_parser.yy" // lalr1.cc:859 - case 285: -#line 1061 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 287: ++#line 1067 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } - #line 1831 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1855 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1876 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 277: - #line 1036 "dhcp4_parser.yy" // lalr1.cc:859 - case 286: -#line 1066 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 288: ++#line 1072 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1840 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1864 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1885 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 282: - #line 1051 "dhcp4_parser.yy" // lalr1.cc:859 - case 291: -#line 1081 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 293: ++#line 1087 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1850 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1874 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1895 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 283: - #line 1055 "dhcp4_parser.yy" // lalr1.cc:859 - case 292: -#line 1085 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 294: ++#line 1091 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1858 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1882 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1903 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 284: - #line 1059 "dhcp4_parser.yy" // lalr1.cc:859 - case 293: -#line 1089 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 295: ++#line 1095 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1868 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1892 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1913 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 285: - #line 1063 "dhcp4_parser.yy" // lalr1.cc:859 - case 294: -#line 1093 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 296: ++#line 1099 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1876 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1900 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1921 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 291: - #line 1076 "dhcp4_parser.yy" // lalr1.cc:859 - case 300: -#line 1106 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 302: ++#line 1112 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1884 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1908 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1929 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 292: - #line 1078 "dhcp4_parser.yy" // lalr1.cc:859 - case 301: -#line 1108 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 303: ++#line 1114 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } - #line 1894 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1918 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1939 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 293: - #line 1087 "dhcp4_parser.yy" // lalr1.cc:859 - case 302: -#line 1117 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 304: ++#line 1123 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } - #line 1905 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1929 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1950 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 294: - #line 1092 "dhcp4_parser.yy" // lalr1.cc:859 - case 303: -#line 1122 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 305: ++#line 1128 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1914 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1938 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1959 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 299: - #line 1105 "dhcp4_parser.yy" // lalr1.cc:859 - case 308: -#line 1135 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 310: ++#line 1141 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1924 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1948 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1969 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 300: - #line 1109 "dhcp4_parser.yy" // lalr1.cc:859 - case 309: -#line 1139 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 311: ++#line 1145 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1932 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1956 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1977 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 301: - #line 1113 "dhcp4_parser.yy" // lalr1.cc:859 - case 310: -#line 1143 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 312: ++#line 1149 "dhcp4_parser.yy" // lalr1.cc:859 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1942 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1966 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1987 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 302: - #line 1117 "dhcp4_parser.yy" // lalr1.cc:859 - case 311: -#line 1147 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 313: ++#line 1153 "dhcp4_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1950 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1974 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 1995 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 319: - #line 1144 "dhcp4_parser.yy" // lalr1.cc:859 - case 328: -#line 1174 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 330: ++#line 1180 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1958 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1982 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2003 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 320: - #line 1146 "dhcp4_parser.yy" // lalr1.cc:859 - case 329: -#line 1176 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 331: ++#line 1182 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } - #line 1968 "dhcp4_parser.cc" // lalr1.cc:859 -#line 1992 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2013 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 321: - #line 1152 "dhcp4_parser.yy" // lalr1.cc:859 - case 330: -#line 1182 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 332: ++#line 1188 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1976 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2000 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2021 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 322: - #line 1154 "dhcp4_parser.yy" // lalr1.cc:859 - case 331: -#line 1184 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 333: ++#line 1190 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } - #line 1986 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2010 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2031 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 323: - #line 1160 "dhcp4_parser.yy" // lalr1.cc:859 - case 332: -#line 1190 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 334: ++#line 1196 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1994 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2018 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2039 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 324: - #line 1162 "dhcp4_parser.yy" // lalr1.cc:859 - case 333: -#line 1192 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 335: ++#line 1198 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } - #line 2004 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2028 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2049 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 325: - #line 1168 "dhcp4_parser.yy" // lalr1.cc:859 - case 334: -#line 1198 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 336: ++#line 1204 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2012 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2036 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2057 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 326: - #line 1170 "dhcp4_parser.yy" // lalr1.cc:859 - case 335: -#line 1200 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 337: ++#line 1206 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } - #line 2022 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2046 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2067 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 327: - #line 1176 "dhcp4_parser.yy" // lalr1.cc:859 - case 336: -#line 1206 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 338: ++#line 1212 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2030 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2054 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2075 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 328: - #line 1178 "dhcp4_parser.yy" // lalr1.cc:859 - case 337: -#line 1208 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 339: ++#line 1214 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } - #line 2040 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2064 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2085 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 329: - #line 1184 "dhcp4_parser.yy" // lalr1.cc:859 - case 338: -#line 1214 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 340: ++#line 1220 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2048 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2072 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2093 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 330: - #line 1186 "dhcp4_parser.yy" // lalr1.cc:859 - case 339: -#line 1216 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 341: ++#line 1222 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } - #line 2058 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2082 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2103 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 331: - #line 1192 "dhcp4_parser.yy" // lalr1.cc:859 - case 340: -#line 1222 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 342: ++#line 1228 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2066 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2090 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2111 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 332: - #line 1194 "dhcp4_parser.yy" // lalr1.cc:859 - case 341: -#line 1224 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 343: ++#line 1230 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } - #line 2076 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2100 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2121 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 333: - #line 1200 "dhcp4_parser.yy" // lalr1.cc:859 - case 342: -#line 1230 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 344: ++#line 1236 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2084 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2108 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2129 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 334: - #line 1202 "dhcp4_parser.yy" // lalr1.cc:859 - case 343: -#line 1232 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 345: ++#line 1238 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } - #line 2094 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2118 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2139 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 335: - #line 1209 "dhcp4_parser.yy" // lalr1.cc:859 - case 344: -#line 1239 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 346: ++#line 1245 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2102 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2126 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2147 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 336: - #line 1211 "dhcp4_parser.yy" // lalr1.cc:859 - case 345: -#line 1241 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 347: ++#line 1247 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } - #line 2112 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2136 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2157 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 337: - #line 1217 "dhcp4_parser.yy" // lalr1.cc:859 - case 346: -#line 1247 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 348: ++#line 1253 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } - #line 2123 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2147 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2168 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 338: - #line 1222 "dhcp4_parser.yy" // lalr1.cc:859 - case 347: -#line 1252 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 349: ++#line 1258 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2132 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2156 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2177 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 339: - #line 1230 "dhcp4_parser.yy" // lalr1.cc:859 - case 348: -#line 1260 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 350: ++#line 1266 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } - #line 2143 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2167 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2188 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 340: - #line 1235 "dhcp4_parser.yy" // lalr1.cc:859 - case 349: -#line 1265 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 351: ++#line 1271 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2152 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2176 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2197 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 341: - #line 1240 "dhcp4_parser.yy" // lalr1.cc:859 - case 350: -#line 1270 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 352: ++#line 1276 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2160 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2184 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2205 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 342: - #line 1242 "dhcp4_parser.yy" // lalr1.cc:859 - case 351: -#line 1272 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 353: ++#line 1278 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", ip); ctx.leave(); } - #line 2170 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2194 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2215 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 343: - #line 1251 "dhcp4_parser.yy" // lalr1.cc:859 - case 352: -#line 1281 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 354: ++#line 1287 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } - #line 2181 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2205 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2226 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 344: - #line 1256 "dhcp4_parser.yy" // lalr1.cc:859 - case 353: -#line 1286 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 355: ++#line 1292 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2190 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2214 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2235 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 347: - #line 1265 "dhcp4_parser.yy" // lalr1.cc:859 - case 356: -#line 1295 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 358: ++#line 1301 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 2200 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2224 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2245 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 348: - #line 1269 "dhcp4_parser.yy" // lalr1.cc:859 - case 357: -#line 1299 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 359: ++#line 1305 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2208 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2232 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2253 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 361: - #line 1292 "dhcp4_parser.yy" // lalr1.cc:859 - case 370: -#line 1322 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 372: ++#line 1328 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2216 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2240 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2261 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 362: - #line 1294 "dhcp4_parser.yy" // lalr1.cc:859 - case 371: -#line 1324 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 373: ++#line 1330 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } - #line 2226 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2250 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2271 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 363: - #line 1303 "dhcp4_parser.yy" // lalr1.cc:859 - case 372: -#line 1333 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 374: ++#line 1339 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } - #line 2237 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2261 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2282 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 364: - #line 1308 "dhcp4_parser.yy" // lalr1.cc:859 - case 373: -#line 1338 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 375: ++#line 1344 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2246 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2270 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2291 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 374: - #line 1326 "dhcp4_parser.yy" // lalr1.cc:859 - case 383: -#line 1356 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 385: ++#line 1362 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } - #line 2255 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2279 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2300 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 375: - #line 1331 "dhcp4_parser.yy" // lalr1.cc:859 - case 384: -#line 1361 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 386: ++#line 1367 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2263 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2287 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2308 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 376: - #line 1333 "dhcp4_parser.yy" // lalr1.cc:859 - case 385: -#line 1363 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 387: ++#line 1369 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } - #line 2273 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2297 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2318 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 377: - #line 1339 "dhcp4_parser.yy" // lalr1.cc:859 - case 386: -#line 1369 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 388: ++#line 1375 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } - #line 2282 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2306 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2327 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 378: - #line 1344 "dhcp4_parser.yy" // lalr1.cc:859 - case 387: -#line 1374 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 389: ++#line 1380 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } - #line 2291 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2315 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2336 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 379: - #line 1351 "dhcp4_parser.yy" // lalr1.cc:859 - case 388: -#line 1381 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 390: ++#line 1387 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } - #line 2300 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2324 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2345 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 380: - #line 1358 "dhcp4_parser.yy" // lalr1.cc:859 - case 389: -#line 1388 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 391: ++#line 1394 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } - #line 2311 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2335 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2356 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 381: - #line 1363 "dhcp4_parser.yy" // lalr1.cc:859 - case 390: -#line 1393 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 392: ++#line 1399 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2320 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2344 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2365 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 386: - #line 1376 "dhcp4_parser.yy" // lalr1.cc:859 - case 395: -#line 1406 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 397: ++#line 1412 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2328 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2352 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2373 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 387: - #line 1378 "dhcp4_parser.yy" // lalr1.cc:859 - case 396: -#line 1408 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 398: ++#line 1414 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } - #line 2338 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2362 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2383 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 388: - #line 1384 "dhcp4_parser.yy" // lalr1.cc:859 - case 397: -#line 1414 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 399: ++#line 1420 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2346 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2370 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2391 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 389: - #line 1386 "dhcp4_parser.yy" // lalr1.cc:859 - case 398: -#line 1416 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 400: ++#line 1422 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } - #line 2356 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2380 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2401 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 390: - #line 1394 "dhcp4_parser.yy" // lalr1.cc:859 - case 399: -#line 1424 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 401: ++#line 1430 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.NO_KEYWORD); } - #line 2367 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2391 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2412 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 391: - #line 1399 "dhcp4_parser.yy" // lalr1.cc:859 - case 400: -#line 1429 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 402: ++#line 1435 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2376 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2400 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2421 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 392: - #line 1406 "dhcp4_parser.yy" // lalr1.cc:859 - case 401: -#line 1436 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 403: ++#line 1442 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2384 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2408 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2429 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 393: - #line 1408 "dhcp4_parser.yy" // lalr1.cc:859 - case 402: -#line 1438 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 404: ++#line 1444 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } - #line 2393 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2417 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2438 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 394: - #line 1413 "dhcp4_parser.yy" // lalr1.cc:859 - case 403: -#line 1443 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 405: ++#line 1449 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2401 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2425 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2446 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 395: - #line 1415 "dhcp4_parser.yy" // lalr1.cc:859 - case 404: -#line 1445 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 406: ++#line 1451 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } - #line 2410 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2434 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2455 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 396: - #line 1425 "dhcp4_parser.yy" // lalr1.cc:859 - case 405: -#line 1455 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 407: ++#line 1461 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } - #line 2421 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2445 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2466 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 397: - #line 1430 "dhcp4_parser.yy" // lalr1.cc:859 - case 406: -#line 1460 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 408: ++#line 1466 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2430 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2454 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2475 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 401: - #line 1447 "dhcp4_parser.yy" // lalr1.cc:859 - case 410: -#line 1477 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 412: ++#line 1483 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } - #line 2441 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2465 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2486 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 402: - #line 1452 "dhcp4_parser.yy" // lalr1.cc:859 - case 411: -#line 1482 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 413: ++#line 1488 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2450 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2474 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2495 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 405: - #line 1464 "dhcp4_parser.yy" // lalr1.cc:859 - case 414: -#line 1494 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 416: ++#line 1500 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } - #line 2460 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2484 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2505 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 406: - #line 1468 "dhcp4_parser.yy" // lalr1.cc:859 - case 415: -#line 1498 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 417: ++#line 1504 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2468 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2492 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2513 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 414: - #line 1483 "dhcp4_parser.yy" // lalr1.cc:859 - case 423: -#line 1513 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 425: ++#line 1519 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } - #line 2477 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2501 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2522 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 415: - #line 1487 "dhcp4_parser.yy" // lalr1.cc:859 - case 424: -#line 1517 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 426: ++#line 1523 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2485 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2509 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2530 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 416: - #line 1489 "dhcp4_parser.yy" // lalr1.cc:859 - case 425: -#line 1519 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 427: ++#line 1525 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } - #line 2495 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2519 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2540 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 417: - #line 1495 "dhcp4_parser.yy" // lalr1.cc:859 - case 426: -#line 1525 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 428: ++#line 1531 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } - #line 2506 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2530 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2551 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 418: - #line 1500 "dhcp4_parser.yy" // lalr1.cc:859 - case 427: -#line 1530 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 429: ++#line 1536 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2515 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2539 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2560 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 421: - #line 1509 "dhcp4_parser.yy" // lalr1.cc:859 - case 430: -#line 1539 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 432: ++#line 1545 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 2525 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2549 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2570 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 422: - #line 1513 "dhcp4_parser.yy" // lalr1.cc:859 - case 431: -#line 1543 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 433: ++#line 1549 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2533 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2557 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2578 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 425: - #line 1521 "dhcp4_parser.yy" // lalr1.cc:859 - case 434: -#line 1551 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 436: ++#line 1557 "dhcp4_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2541 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2565 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2586 "dhcp4_parser.cc" // lalr1.cc:859 break; - case 426: - #line 1523 "dhcp4_parser.yy" // lalr1.cc:859 - case 435: -#line 1553 "dhcp4_parser.yy" // lalr1.cc:859 ++ case 437: ++#line 1559 "dhcp4_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } - #line 2551 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2575 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2596 "dhcp4_parser.cc" // lalr1.cc:859 break; - #line 2555 "dhcp4_parser.cc" // lalr1.cc:859 -#line 2579 "dhcp4_parser.cc" // lalr1.cc:859 ++#line 2600 "dhcp4_parser.cc" // lalr1.cc:859 default: break; } @@@ -2813,77 -2837,79 +2858,79 @@@ const short int Dhcp4Parser::yypact_[] = { - 108, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 37, 20, 25, 40, 64, 66, 73, 79, 110, - 118, 139, -411, -411, -411, -411, -411, -411, -411, -411, - 117, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 39, 22, 52, 59, 66, 81, 90, 96, 111, - 131, 147, -411, -411, -411, -411, -411, -411, -411, -411, ++ 179, -411, -411, -411, -411, -411, -411, -411, -411, -411, ++ -411, 39, 22, 34, 54, 61, 94, 113, 155, 173, ++ 209, 218, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, 20, 53, 18, 71, 219, 24, -3, 93, - 122, 8, 29, -411, 153, 160, 204, 228, 236, -411, - -411, -411, -411, 240, -411, 31, -411, -411, -411, -411, - -411, -411, 244, 245, -411, -411, -411, 248, 249, 254, - -411, -411, 22, -58, 18, 70, 20, 19, 4, 98, - 17, 102, 45, -411, 99, 75, 105, 148, 159, -411, - -411, -411, -411, 160, -411, 42, -411, -411, -411, -411, - -411, -411, 184, 203, -411, -411, -411, 237, 238, 248, -- 255, -411, -411, -411, -411, -411, -411, -411, -411, 256, - -411, -411, -411, 32, -411, -411, -411, -411, -411, -411, - -411, -411, -411, 71, -411, -411, -411, -411, -411, -411, ++ -411, -411, 22, -29, 18, 65, 106, 19, -6, 96, ++ 17, 67, -17, -411, 170, 175, 192, 199, 224, -411, ++ -411, -411, -411, 226, -411, 72, -411, -411, -411, -411, ++ -411, -411, 227, 228, -411, -411, -411, 230, 231, 232, ++ 235, -411, -411, -411, -411, -411, -411, -411, -411, 237, ++ -411, -411, -411, 131, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -411, -411, 35, -411, - -411, -411, -411, -411, -411, -411, -411, -411, 72, -411, ++ -411, -411, -411, -411, -411, -411, -411, -411, 134, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -- 257, 261, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 50, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 88, -411, -411, -411, -411, -411, -411, -411, -411, ++ 238, 240, -411, -411, -411, -411, -411, -411, -411, -411, ++ -411, 142, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 54, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 129, -411, -411, -411, -411, -411, -411, -411, -411, -- -411, -411, -411, -411, -411, 259, 266, -411, -411, -411, ++ -411, 143, -411, -411, -411, -411, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, 241, 245, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - 267, -411, -411, -411, 268, -411, -411, -411, 265, 272, - 267, -411, -411, -411, 268, -411, -411, -411, 265, 276, ++ 248, -411, -411, -411, 249, -411, -411, -411, 257, 266, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 273, -411, -411, -411, -411, 270, 276, -411, -411, - -411, -411, -411, -411, -411, -411, -411, 111, -411, -411, - -411, -411, 20, 20, -411, 176, 277, 278, 279, 280, - -411, 18, -411, 281, 177, 183, 283, 284, 285, 190, - 191, 192, 193, 286, 291, 292, 293, 294, 295, 296, - 297, 201, 299, 300, 71, -411, 301, 302, 219, -411, - 76, 303, 304, 305, 306, 307, 308, 309, 213, 212, - 312, 313, 314, 315, 24, -411, 316, -3, -411, 317, - 318, 319, 320, 321, 322, 323, 324, 325, -411, 93, - 326, 327, 231, 329, 330, 333, 235, -411, 122, 335, - 237, -411, 8, 337, 338, -25, -411, -411, -411, 339, - 340, 341, 20, 20, -411, 342, -411, -411, 246, 343, - 344, -411, -411, -411, -411, 347, 348, 349, 350, 351, - 352, 355, 356, -411, 357, 360, -411, 353, 220, -411, - -411, -411, -411, -411, -411, -411, -411, 336, 365, -411, - -411, -411, 269, 271, 275, 354, 282, 287, 288, -411, - -411, 289, 290, 367, 363, -411, 298, -411, 310, 311, - 353, 328, 331, 332, 334, 345, 346, -411, 358, 359, - -411, 361, 362, 364, -411, -411, 366, -411, -411, 368, - 20, -411, 20, 71, 262, -411, -411, 219, -411, 41, - 41, 369, 370, 371, 166, 26, 373, 372, 113, 162, - 53, -411, -411, -411, -411, -411, 377, -411, 76, -411, - -411, -411, 376, -411, -411, -411, -411, -411, 378, 374, - -411, 277, -411, -411, -411, -411, 272, 279, -411, -411, - -411, -411, -411, -411, -411, -411, -411, 142, -411, -411, - -411, -411, 22, 22, -411, 179, 280, 281, 282, 283, - -411, 18, -411, 284, 182, 183, 287, 288, 289, 189, - 190, 191, 192, 294, 295, 296, 297, 298, 299, 300, - 301, 202, 302, 304, 70, -411, 305, 306, 20, -411, - 26, 307, 308, 309, 310, 311, 312, 313, 213, 212, - 316, 317, 318, 319, 19, -411, 320, 4, -411, 321, - 322, 323, 324, 325, 326, 327, 328, 329, -411, 98, - 330, 333, 233, 335, 336, 337, 235, -411, 17, 339, - 239, -411, 102, 340, 341, 80, -411, -411, -411, 343, - 342, 344, 22, 22, -411, 345, -411, -411, 244, 346, - 347, -411, -411, -411, -411, 350, 351, 352, 353, 354, - 357, 356, 360, -411, 361, 362, -411, 359, 246, -411, - -411, -411, -411, -411, -411, -411, -411, 363, 367, -411, - -411, -411, 269, 271, 274, 371, 275, 286, 290, -411, - -411, 291, 292, 375, 365, -411, 293, -411, 303, 314, - 359, 315, 331, 332, 334, 338, 348, -411, 349, 355, - -411, 358, 364, 366, -411, -411, 368, -411, -411, 369, - 22, -411, 22, 70, 370, -411, -411, 20, -411, 144, - 144, 374, 376, 377, 216, 30, 378, 120, 15, 92, - -58, -411, -411, -411, 382, -411, 26, -411, -411, -411, - 380, -411, -411, -411, -411, -411, 381, 372, -411, -411, ++ -411, 267, -411, -411, -411, -411, 264, 270, -411, -411, ++ -411, -411, -411, -411, -411, -411, -411, 167, -411, -411, ++ -411, -411, 22, 22, -411, 180, 281, 283, 284, 285, ++ -411, 18, -411, 286, 182, 183, 289, 290, 291, 193, ++ 194, 195, 196, 292, 293, 294, 295, 300, 301, 302, ++ 303, 204, 304, 305, 65, -411, 306, 308, 106, -411, ++ 26, 309, 310, 311, 312, 313, 314, 315, 213, 215, ++ 317, 318, 319, 321, 19, -411, 322, -6, -411, 323, ++ 324, 325, 326, 327, 328, 329, 330, 333, -411, 96, ++ 334, 335, 233, 337, 338, 339, 236, -411, 17, 340, ++ 239, -411, 67, 342, 343, -22, -411, -411, -411, 345, ++ 344, 346, 22, 22, -411, 347, -411, -411, 244, 348, ++ 349, -411, -411, -411, -411, 352, 353, 354, 357, 358, ++ 359, 360, 361, -411, 362, 363, -411, 366, 112, -411, ++ -411, -411, -411, -411, -411, -411, -411, 364, 370, -411, ++ -411, -411, 246, 269, 271, 371, 272, 274, 275, -411, ++ -411, 276, 277, 380, 379, -411, 282, -411, 287, 288, ++ 366, 296, 297, 298, 299, 316, 320, -411, 331, 332, ++ -411, 336, 341, 350, -411, -411, 351, -411, -411, 355, ++ 22, -411, 22, 65, 307, -411, -411, 106, -411, 161, ++ 161, 382, 383, 385, 197, 35, 390, 92, 11, 70, ++ -29, -411, -411, -411, -411, -411, 394, -411, 26, -411, ++ -411, -411, 392, -411, -411, -411, -411, -411, 393, 356, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -411, -411, -411, 123, - -411, 158, -411, -411, 169, -411, -411, -411, 382, 388, - 389, -411, 170, -411, -411, -411, -411, -411, -411, -411, - -411, -411, 171, -411, 390, 391, -411, -411, 393, 394, - -411, -411, 395, 397, -411, -411, -411, -411, -411, -411, - 127, -411, -411, -411, -411, -411, 141, -411, 396, 400, - -411, 401, 172, -411, -411, 402, 403, 404, -411, -411, - -411, 182, -411, -411, -411, -411, -411, -411, -411, 206, - -411, -411, -411, 207, 20, 375, -411, -411, 398, 406, - -411, -411, 408, 409, -411, -411, 410, -411, 412, 262, - -411, -411, 413, 415, 416, 379, 380, 381, 41, -411, - -411, 24, -411, 369, 122, -411, 370, 8, -411, 371, - 166, -411, 26, -411, 29, -411, 373, 384, 372, -411, - 417, 385, 386, 387, 113, -411, 418, 419, 162, -411, - -411, 420, -411, -3, -411, 376, 93, -411, 378, 421, - -411, 422, -411, 383, 392, 399, -411, -411, -411, -411, - 208, -411, 425, -411, 427, -411, -411, -411, 209, -411, - -411, -411, 405, -411, -411, -411, -411, 407, 411, -411, - -411, 215, -411, 428, -411, 426, 423, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -411, 169, -411, 170, - -411, -411, 193, -411, -411, -411, 387, 388, 394, -411, - 197, -411, -411, -411, -411, -411, -411, -411, -411, -411, - 200, -411, 393, 397, -411, -411, 395, 399, -411, -411, - 398, 400, -411, -411, -411, -411, -411, -411, 114, -411, - -411, -411, -411, -411, 128, -411, 402, 403, -411, 401, - 405, 406, 407, 408, 410, 201, -411, -411, -411, -411, - -411, -411, -411, -411, 412, 413, 416, -411, -411, -411, - 219, -411, -411, -411, -411, -411, -411, -411, 220, -411, - -411, -411, 221, 22, 373, -411, -411, 415, 419, -411, - -411, 417, 421, -411, -411, 418, -411, 423, 370, -411, - -411, 424, 425, 426, 379, 383, 384, 144, -411, -411, - 19, -411, 374, 17, -411, 376, 102, -411, 377, 216, - -411, 30, -411, 45, -411, 378, 385, 389, 390, 391, - 392, 396, 120, -411, 427, 404, 409, 411, 15, -411, - 428, 429, 92, -411, -411, 433, -411, 4, -411, 380, - 98, -411, 381, 430, -411, 420, -411, 431, 432, 437, - -411, -411, -411, -411, 222, -411, 435, -411, 436, -411, - -411, -411, 228, -411, -411, -411, -411, -411, -411, -411, - -411, 440, -411, -411, -411, -411, 441, 442, -411, -411, - 231, -411, 438, -411, 443, 434, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -411, -411, -411, -411, 169, ++ -411, 171, -411, -411, 190, -411, -411, -411, 397, 402, ++ 403, -411, 191, -411, -411, -411, -411, -411, -411, -411, ++ -411, -411, 200, -411, 381, 405, -411, -411, 404, 406, ++ -411, -411, 408, 409, -411, -411, -411, -411, -411, -411, ++ 29, -411, -411, -411, -411, -411, 99, -411, 410, 414, ++ -411, 407, 415, 416, 417, 420, 421, 201, -411, -411, ++ -411, -411, -411, -411, -411, -411, 423, 424, 425, -411, ++ -411, -411, 202, -411, -411, -411, -411, -411, -411, -411, ++ 203, -411, -411, -411, 210, 22, 365, -411, -411, 412, ++ 427, -411, -411, 426, 428, -411, -411, 431, -411, 429, ++ 307, -411, -411, 430, 432, 436, 367, 368, 369, 161, ++ -411, -411, 19, -411, 382, 17, -411, 383, 67, -411, ++ 385, 197, -411, 35, -411, -17, -411, 390, 372, 373, ++ 374, 375, 376, 377, 92, -411, 437, 378, 384, 386, ++ 11, -411, 439, 440, 70, -411, -411, 442, -411, -6, ++ -411, 392, 96, -411, 393, 441, -411, 444, -411, 388, ++ 389, 391, -411, -411, -411, -411, 211, -411, 438, -411, ++ 443, -411, -411, -411, 212, -411, -411, -411, -411, -411, ++ -411, -411, -411, 395, -411, -411, -411, -411, 396, 398, ++ -411, -411, 214, -411, 445, -411, 399, 447, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, 188, -411, 51, 423, -411, -411, 433, -411, -411, - -411, 216, -411, -411, -411, -411, -411, 434, 431, 435, - 51, -411, 424, -411, 436, -411, 437, -411, -411, 189, - -411, 442, 437, -411, -411, 217, -411, -411, 438, 442, - -411, 439, -411, -411 - 181, -411, 95, 434, -411, -411, 444, -411, -411, -411, - 241, -411, -411, -411, -411, -411, 445, 414, 446, 95, - -411, 449, -411, 447, -411, 448, -411, -411, 229, -411, - 386, 448, -411, -411, 250, -411, -411, 452, 386, -411, - 451, -411, -411 ++ -411, -411, 141, -411, 48, 447, -411, -411, 446, -411, ++ -411, -411, 220, -411, -411, -411, -411, -411, 448, 400, ++ 451, 48, -411, 453, -411, 411, -411, 452, -411, -411, ++ 189, -411, 401, 452, -411, -411, 221, -411, -411, 456, ++ 401, -411, 413, -411, -411 }; const unsigned short int @@@ -2893,105 -2919,108 +2940,108 @@@ 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 36, 30, 26, 25, 22, 23, 24, 29, 3, 27, 28, 45, 5, 56, 7, 94, 9, - 174, 11, 284, 13, 301, 15, 224, 17, 258, 19, - 150, 21, 40, 32, 0, 0, 0, 0, 0, 303, - 226, 260, 0, 42, 0, 41, 0, 0, 33, 54, - 396, 392, 394, 0, 53, 0, 47, 49, 51, 52, - 50, 88, 0, 0, 319, 102, 104, 0, 0, 0, - 0, 166, 216, 250, 131, 343, 142, 161, 363, 0, - 380, 390, 81, 0, 58, 60, 61, 62, 63, 78, - 183, 11, 293, 13, 310, 15, 233, 17, 267, 19, - 148, 21, 40, 32, 0, 0, 0, 0, 0, 312, - 235, 269, 0, 42, 0, 41, 0, 0, 33, 54, - 405, 401, 403, 0, 53, 0, 47, 49, 51, 52, - 50, 88, 0, 0, 328, 100, 102, 0, 0, 0, - 0, 175, 225, 259, 129, 352, 140, 159, 372, 0, - 389, 399, 81, 0, 58, 60, 61, 62, 63, 78, ++ 185, 11, 295, 13, 312, 15, 235, 17, 269, 19, ++ 150, 21, 40, 32, 0, 0, 0, 0, 0, 314, ++ 237, 271, 0, 42, 0, 41, 0, 0, 33, 54, ++ 407, 403, 405, 0, 53, 0, 47, 49, 51, 52, ++ 50, 88, 0, 0, 330, 102, 104, 0, 0, 0, ++ 0, 177, 227, 261, 131, 354, 142, 161, 374, 0, ++ 391, 401, 81, 0, 58, 60, 61, 62, 63, 78, 79, 65, 66, 67, 68, 72, 73, 64, 70, 71, 80, 69, 74, 75, 76, 77, 96, 98, 0, 90, - 92, 93, 347, 200, 202, 204, 276, 198, 206, 208, - 0, 0, 212, 210, 293, 339, 197, 178, 179, 180, - 192, 0, 176, 183, 194, 195, 196, 184, 185, 188, - 190, 186, 187, 181, 182, 189, 193, 191, 291, 290, - 289, 0, 286, 288, 321, 323, 337, 327, 329, 333, - 331, 335, 325, 318, 314, 0, 304, 305, 315, 316, - 317, 311, 307, 312, 309, 310, 313, 308, 117, 125, - 0, 244, 242, 247, 0, 237, 241, 238, 0, 227, - 228, 230, 240, 231, 232, 233, 246, 234, 235, 236, - 271, 0, 269, 270, 273, 274, 0, 261, 262, 264, - 265, 266, 267, 268, 157, 159, 154, 0, 152, 155, - 92, 93, 356, 209, 211, 213, 285, 207, 215, 217, - 0, 0, 221, 219, 302, 348, 206, 187, 188, 189, - 201, 0, 185, 192, 203, 204, 205, 193, 194, 197, - 199, 195, 196, 190, 191, 198, 202, 200, 300, 299, - 298, 0, 295, 297, 330, 332, 346, 336, 338, 342, - 340, 344, 334, 327, 323, 0, 313, 314, 324, 325, - 326, 320, 316, 321, 318, 319, 322, 317, 115, 123, - 0, 253, 251, 256, 0, 246, 250, 247, 0, 236, - 237, 239, 249, 240, 241, 242, 255, 243, 244, 245, - 280, 0, 278, 279, 282, 283, 0, 270, 271, 273, - 274, 275, 276, 277, 155, 157, 152, 0, 150, 153, - 154, 37, 0, 0, 31, 0, 0, 0, 0, 0, ++ 92, 93, 358, 211, 213, 215, 287, 209, 217, 219, ++ 0, 0, 223, 221, 304, 350, 208, 189, 190, 191, ++ 203, 0, 187, 194, 205, 206, 207, 195, 196, 199, ++ 201, 197, 198, 192, 193, 200, 204, 202, 302, 301, ++ 300, 0, 297, 299, 332, 334, 348, 338, 340, 344, ++ 342, 346, 336, 329, 325, 0, 315, 316, 326, 327, ++ 328, 322, 318, 323, 320, 321, 324, 319, 117, 125, ++ 0, 255, 253, 258, 0, 248, 252, 249, 0, 238, ++ 239, 241, 251, 242, 243, 244, 257, 245, 246, 247, ++ 282, 0, 280, 281, 284, 285, 0, 272, 273, 275, ++ 276, 277, 278, 279, 157, 159, 154, 0, 152, 155, + 156, 37, 0, 0, 31, 0, 0, 0, 0, 0, 44, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 95, - 349, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 175, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, - 0, 259, 0, 0, 0, 0, 151, 43, 34, 0, - 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 184, 0, 0, 294, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, - 0, 0, 0, 0, 0, 0, 0, 234, 0, 0, - 0, 268, 0, 0, 0, 0, 149, 43, 34, 0, ++ 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 186, 0, 0, 296, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 313, 0, ++ 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, ++ 0, 270, 0, 0, 0, 0, 151, 43, 34, 0, 0, 0, 0, 0, 48, 0, 86, 87, 0, 0, 0, 82, 83, 84, 85, 0, 0, 0, 0, 0, - 0, 0, 0, 379, 0, 0, 59, 0, 0, 91, - 361, 359, 360, 355, 356, 357, 358, 0, 350, 351, - 353, 354, 0, 0, 0, 0, 0, 0, 0, 214, - 215, 0, 0, 0, 0, 177, 0, 287, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 306, 0, 0, - 239, 0, 0, 0, 249, 229, 0, 275, 263, 0, - 0, 153, 0, 0, 0, 393, 395, 0, 320, 0, - 0, 168, 218, 252, 0, 0, 144, 0, 0, 0, - 0, 38, 97, 100, 101, 99, 0, 348, 0, 201, - 203, 205, 278, 199, 207, 209, 213, 211, 295, 0, - 292, 322, 324, 338, 328, 330, 334, 332, 336, 326, - 118, 126, 245, 243, 248, 272, 158, 160, 35, 0, - 401, 0, 398, 400, 0, 119, 121, 123, 0, 0, - 0, 0, 0, 388, 0, 0, 59, 0, 0, 91, - 370, 368, 369, 364, 365, 366, 367, 0, 359, 360, - 362, 363, 0, 0, 0, 0, 0, 0, 0, 223, - 224, 0, 0, 0, 0, 186, 0, 296, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 315, 0, 0, - 248, 0, 0, 0, 258, 238, 0, 284, 272, 0, - 0, 151, 0, 0, 0, 402, 404, 0, 329, 0, - 0, 177, 227, 261, 0, 0, 142, 0, 0, 0, - 0, 38, 97, 99, 0, 357, 0, 210, 212, 214, - 287, 208, 216, 218, 222, 220, 304, 0, 301, 331, - 333, 347, 337, 339, 343, 341, 345, 335, 116, 124, - 254, 252, 257, 281, 156, 158, 35, 0, 410, 0, - 407, 409, 0, 117, 119, 121, 0, 0, 0, 114, - 0, 104, 106, 107, 108, 109, 110, 111, 112, 113, - 0, 181, 0, 178, 179, 231, 0, 228, 229, 265, - 0, 262, 263, 128, 137, 138, 139, 133, 0, 131, - 134, 135, 136, 354, 0, 146, 0, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 161, 163, 164, 165, - 166, 167, 168, 384, 0, 0, 0, 382, 376, 381, - 0, 374, 379, 377, 378, 380, 395, 397, 0, 391, - 393, 394, 0, 40, 0, 361, 291, 0, 288, 289, - 308, 0, 305, 306, 350, 0, 55, 0, 0, 406, - 89, 0, 0, 0, 0, 0, 0, 0, 101, 103, - 0, 176, 0, 235, 226, 0, 269, 260, 0, 0, - 130, 0, 353, 0, 141, 0, 0, 0, 0, 0, - 0, 0, 0, 160, 0, 0, 0, 0, 0, 373, - 0, 0, 0, 390, 400, 0, 371, 0, 286, 0, - 312, 303, 0, 0, 349, 0, 408, 0, 0, 0, - 125, 126, 127, 105, 0, 180, 0, 230, 0, 264, - 132, 355, 0, 145, 169, 170, 171, 172, 173, 174, - 162, 0, 383, 386, 387, 375, 0, 0, 392, 39, - 0, 290, 0, 307, 0, 0, 118, 120, 122, 182, - 232, 266, 147, 385, 396, 398, 292, 309, 351, 414, - 0, 412, 0, 0, 411, 426, 0, 424, 422, 418, - 0, 416, 420, 421, 419, 413, 0, 0, 0, 0, - 415, 0, 423, 0, 417, 0, 425, 430, 0, 428, - 0, 0, 427, 434, 0, 432, 429, 0, 0, 431, - 0, 433, 435 ++ 0, 0, 0, 390, 0, 0, 59, 0, 0, 91, ++ 372, 370, 371, 366, 367, 368, 369, 0, 361, 362, ++ 364, 365, 0, 0, 0, 0, 0, 0, 0, 225, ++ 226, 0, 0, 0, 0, 188, 0, 298, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, ++ 250, 0, 0, 0, 260, 240, 0, 286, 274, 0, ++ 0, 153, 0, 0, 0, 404, 406, 0, 331, 0, ++ 0, 179, 229, 263, 0, 0, 144, 0, 0, 0, ++ 0, 38, 97, 100, 101, 99, 0, 359, 0, 212, ++ 214, 216, 289, 210, 218, 220, 224, 222, 306, 0, ++ 303, 333, 335, 349, 339, 341, 345, 343, 347, 337, ++ 118, 126, 256, 254, 259, 283, 158, 160, 35, 0, ++ 412, 0, 409, 411, 0, 119, 121, 123, 0, 0, + 0, 116, 0, 106, 108, 109, 110, 111, 112, 113, - 114, 115, 0, 172, 0, 169, 170, 222, 0, 219, - 220, 256, 0, 253, 254, 130, 139, 140, 141, 135, - 0, 133, 136, 137, 138, 345, 0, 148, 0, 145, - 146, 0, 0, 163, 375, 0, 0, 0, 373, 367, - 372, 0, 365, 370, 368, 369, 371, 386, 388, 0, - 382, 384, 385, 0, 40, 0, 352, 282, 0, 279, - 280, 299, 0, 296, 297, 341, 0, 55, 0, 0, - 397, 89, 0, 0, 0, 0, 0, 0, 0, 103, - 105, 0, 167, 0, 226, 217, 0, 260, 251, 0, - 0, 132, 0, 344, 0, 143, 0, 0, 0, 162, - 0, 0, 0, 0, 0, 364, 0, 0, 0, 381, - 391, 0, 362, 0, 277, 0, 303, 294, 0, 0, - 340, 0, 399, 0, 0, 0, 127, 128, 129, 107, - 0, 171, 0, 221, 0, 255, 134, 346, 0, 147, - 165, 164, 0, 374, 377, 378, 366, 0, 0, 383, - 39, 0, 281, 0, 298, 0, 0, 120, 122, 124, - 173, 223, 257, 149, 376, 387, 389, 283, 300, 342, - 405, 0, 403, 0, 0, 402, 417, 0, 415, 413, - 409, 0, 407, 411, 412, 410, 404, 0, 0, 0, - 0, 406, 0, 414, 0, 408, 0, 416, 421, 0, - 419, 0, 0, 418, 425, 0, 423, 420, 0, 0, - 422, 0, 424, 426 ++ 114, 115, 0, 183, 0, 180, 181, 233, 0, 230, ++ 231, 267, 0, 264, 265, 130, 139, 140, 141, 135, ++ 0, 133, 136, 137, 138, 356, 0, 148, 0, 145, ++ 146, 0, 0, 0, 0, 0, 0, 0, 163, 165, ++ 166, 167, 168, 169, 170, 386, 0, 0, 0, 384, ++ 378, 383, 0, 376, 381, 379, 380, 382, 397, 399, ++ 0, 393, 395, 396, 0, 40, 0, 363, 293, 0, ++ 290, 291, 310, 0, 307, 308, 352, 0, 55, 0, ++ 0, 408, 89, 0, 0, 0, 0, 0, 0, 0, ++ 103, 105, 0, 178, 0, 237, 228, 0, 271, 262, ++ 0, 0, 132, 0, 355, 0, 143, 0, 0, 0, ++ 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, ++ 0, 375, 0, 0, 0, 392, 402, 0, 373, 0, ++ 288, 0, 314, 305, 0, 0, 351, 0, 410, 0, ++ 0, 0, 127, 128, 129, 107, 0, 182, 0, 232, ++ 0, 266, 134, 357, 0, 147, 171, 172, 173, 174, ++ 175, 176, 164, 0, 385, 388, 389, 377, 0, 0, ++ 394, 39, 0, 292, 0, 309, 0, 0, 120, 122, ++ 124, 184, 234, 268, 149, 387, 398, 400, 294, 311, ++ 353, 416, 0, 414, 0, 0, 413, 428, 0, 426, ++ 424, 420, 0, 418, 422, 423, 421, 415, 0, 0, ++ 0, 0, 417, 0, 425, 0, 419, 0, 427, 432, ++ 0, 430, 0, 0, 429, 436, 0, 434, 431, 0, ++ 0, 433, 0, 435, 437 }; const short int Dhcp4Parser::yypgoto_[] = { -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, 3, -411, -411, -411, -411, -57, -411, -411, - 34, -411, -104, -411, -54, -411, -411, -411, 196, -411, - -411, -411, -411, 30, 174, -56, -40, -38, -411, -411, - -37, -411, -411, 33, 173, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -411, 36, -119, -398, -411, - -411, -411, 3, -411, -411, -411, -411, 10, -411, -411, - 55, -411, -106, -411, -54, -411, -411, -411, 207, -411, - -411, -411, -411, 38, 186, -56, -40, -38, -411, -411, - -37, -411, -411, 44, 185, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -411, 46, -113, -398, -411, -411, - -411, -411, -411, -411, -411, -59, -411, -410, -411, -411, - -411, -411, -411, -411, -124, -411, -411, -411, -411, -411, - -411, -411, -128, -411, -411, -411, -122, 149, -411, -411, - -411, -411, -411, -411, -411, -133, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -104, -411, -411, -411, - -101, 187, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -402, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -109, -411, -411, -411, -103, -411, - 164, -411, -52, -411, -411, -411, -411, -48, -411, -411, - -411, -411, -411, -47, -411, -411, -411, -105, -411, -411, - -411, -102, -411, 163, -411, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -132, -411, -411, -411, -125, 196, - -411, -411, -411, -411, -411, -411, -123, -411, -411, -411, - -131, -411, 194, -43, -411, -256, -411, -255, -411, -411, ++ -411, -411, 3, -411, -411, -411, -411, 5, -411, -411, ++ 73, -411, -93, -411, -54, -411, -411, -411, 216, -411, ++ -411, -411, -411, 51, 198, -56, -40, -38, -411, -411, ++ -37, -411, -411, 49, 187, -411, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -411, 50, -111, -398, -411, + -411, -411, -411, -411, -411, -411, -59, -411, -410, -411, - -411, -411, -411, -411, -411, -128, -411, -411, -411, -411, - -411, -411, -411, -133, -411, -411, -411, -130, 130, -411, - -411, -411, -411, -411, -411, -411, -131, -411, -411, -411, - -411, -113, -411, -411, -411, -108, 175, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -411, -411, -411, -399, - -411, -411, -411, -411, -411, -411, -411, -411, -411, -111, - -411, -411, -411, -107, -411, 152, -411, -52, -411, -411, - -411, -411, -48, -411, -411, -411, -411, -411, -47, -411, - -411, -411, -106, -411, -411, -411, -103, -411, 149, -411, - -411, -411, -411, -411, -411, -411, -411, -411, -411, -129, - -411, -411, -411, -126, 181, -411, -411, -411, -411, -411, - -411, -118, -411, -411, -411, -127, -411, 180, -43, -411, - -257, -411, -256, -411, -411, -411, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -122, -411, -411, -411, -411, ++ -411, -411, -411, -124, -411, -411, -411, -121, 152, -411, ++ -411, -411, -411, -411, -411, -411, -118, -411, -411, -411, ++ -411, -411, -411, -411, -411, -411, -411, -97, -411, -411, ++ -411, -94, 205, -411, -411, -411, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -402, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -98, -411, -411, -411, -95, ++ -411, 178, -411, -52, -411, -411, -411, -411, -48, -411, ++ -411, -411, -411, -411, -47, -411, -411, -411, -92, -411, ++ -411, -411, -88, -411, 181, -411, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -115, -411, -411, -411, -110, ++ 217, -411, -411, -411, -411, -411, -411, -116, -411, -411, ++ -411, -112, -411, 206, -43, -411, -256, -411, -255, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -411, -411, 42, -411, - -411, -411, -411, -411, -411, -101, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -102, -411, -411, -411, -411, - -411, -411, -411, -411, -411, -411, -411, -411, -411, -68, - -411, -411, -411, -170, -411, -411, -185, -411, -411, -411, - -411, -411, -411, -195, -411, -411, -201, -411 + -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, -411, 62, -411, -411, -411, -411, -411, -411, - -108, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -110, -411, -411, -411, -411, -411, -411, -411, -411, -411, - -411, -411, -411, -411, -64, -411, -411, -411, -178, -411, - -411, -193, -411, -411, -411, -411, -411, -411, -204, -411, - -411, -210, -411 ++ -411, -411, -411, -411, 74, -411, -411, -411, -411, -411, ++ -411, -99, -411, -411, -411, -411, -411, -411, -411, -411, ++ -411, -101, -411, -411, -411, -411, -411, -411, -411, -411, ++ -411, -411, -411, -411, -411, -49, -411, -411, -411, -169, ++ -411, -411, -183, -411, -411, -411, -411, -411, -411, -191, ++ -411, -411, -197, -411 }; const short int @@@ -2999,99 -3028,102 +3049,102 @@@ { -1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 63, 31, 32, 53, 67, 68, 33, 52, - 432, 544, 64, 65, 102, 35, 54, 75, 76, 77, - 432, 553, 64, 65, 102, 35, 54, 75, 76, 77, ++ 432, 555, 64, 65, 102, 35, 54, 75, 76, 77, 246, 37, 55, 103, 104, 105, 106, 107, 108, 109, 110, 111, 253, 128, 129, 39, 56, 130, 276, 131, - 277, 112, 257, 113, 258, 480, 481, 206, 310, 483, - 571, 484, 572, 485, 573, 207, 311, 487, 488, 489, - 507, 114, 266, 508, 509, 510, 511, 512, 115, 268, - 516, 517, 518, 593, 51, 62, 237, 238, 239, 323, - 240, 324, 116, 269, 525, 526, 527, 528, 529, 530, - 531, 532, 117, 263, 492, 493, 494, 580, 41, 57, - 151, 152, 153, 285, 154, 281, 155, 282, 156, 283, - 157, 286, 158, 287, 159, 291, 160, 290, 161, 162, - 118, 264, 496, 497, 498, 583, 47, 60, 208, 209, - 210, 211, 212, 213, 214, 215, 314, 216, 313, 217, - 218, 315, 219, 119, 265, 500, 501, 502, 586, 49, - 61, 226, 227, 228, 229, 230, 319, 231, 232, 233, - 164, 284, 557, 558, 559, 617, 43, 58, 171, 172, - 173, 296, 165, 292, 561, 562, 563, 620, 45, 59, - 185, 186, 187, 120, 256, 189, 299, 190, 300, 191, - 307, 192, 302, 193, 303, 194, 305, 195, 304, 196, - 306, 197, 301, 167, 293, 565, 623, 121, 267, 514, - 280, 367, 368, 369, 370, 371, 434, 122, 270, 540, - 541, 542, 543, 604, 544, 545, 123, 124, 272, 548, - 549, 550, 610, 551, 611, 125, 273, 78, 248, 79, - 249, 80, 247, 469, 470, 471, 567, 680, 681, 682, - 690, 691, 692, 693, 698, 694, 696, 708, 709, 710, - 714, 715, 717 + 277, 435, 112, 257, 113, 258, 482, 483, 206, 310, - 485, 562, 486, 563, 487, 564, 207, 311, 489, 490, ++ 485, 573, 486, 574, 487, 575, 207, 311, 489, 490, + 491, 509, 114, 266, 510, 511, 512, 513, 514, 115, - 268, 518, 519, 520, 584, 51, 62, 237, 238, 239, - 323, 240, 324, 116, 269, 522, 523, 117, 263, 494, - 495, 496, 571, 41, 57, 151, 152, 153, 285, 154, - 281, 155, 282, 156, 283, 157, 286, 158, 287, 159, - 291, 160, 290, 161, 162, 118, 264, 498, 499, 500, - 574, 47, 60, 208, 209, 210, 211, 212, 213, 214, - 215, 314, 216, 313, 217, 218, 315, 219, 119, 265, - 502, 503, 504, 577, 49, 61, 226, 227, 228, 229, - 230, 319, 231, 232, 233, 164, 284, 548, 549, 550, - 603, 43, 58, 171, 172, 173, 296, 165, 292, 552, - 553, 554, 606, 45, 59, 185, 186, 187, 120, 256, - 189, 299, 190, 300, 191, 307, 192, 302, 193, 303, - 194, 305, 195, 304, 196, 306, 197, 301, 167, 293, - 556, 609, 121, 267, 516, 280, 367, 368, 369, 370, - 371, 436, 122, 270, 531, 532, 533, 534, 590, 535, - 536, 123, 124, 272, 539, 540, 541, 596, 542, 597, - 125, 273, 78, 248, 79, 249, 80, 247, 471, 472, - 473, 558, 661, 662, 663, 671, 672, 673, 674, 679, - 675, 677, 689, 690, 691, 695, 696, 698 ++ 268, 518, 519, 520, 595, 51, 62, 237, 238, 239, ++ 323, 240, 324, 116, 269, 527, 528, 529, 530, 531, ++ 532, 533, 534, 117, 263, 494, 495, 496, 582, 41, ++ 57, 151, 152, 153, 285, 154, 281, 155, 282, 156, ++ 283, 157, 286, 158, 287, 159, 291, 160, 290, 161, ++ 162, 118, 264, 498, 499, 500, 585, 47, 60, 208, ++ 209, 210, 211, 212, 213, 214, 215, 314, 216, 313, ++ 217, 218, 315, 219, 119, 265, 502, 503, 504, 588, ++ 49, 61, 226, 227, 228, 229, 230, 319, 231, 232, ++ 233, 164, 284, 559, 560, 561, 619, 43, 58, 171, ++ 172, 173, 296, 165, 292, 563, 564, 565, 622, 45, ++ 59, 185, 186, 187, 120, 256, 189, 299, 190, 300, ++ 191, 307, 192, 302, 193, 303, 194, 305, 195, 304, ++ 196, 306, 197, 301, 167, 293, 567, 625, 121, 267, ++ 516, 280, 367, 368, 369, 370, 371, 436, 122, 270, ++ 542, 543, 544, 545, 606, 546, 547, 123, 124, 272, ++ 550, 551, 552, 612, 553, 613, 125, 273, 78, 248, ++ 79, 249, 80, 247, 471, 472, 473, 569, 682, 683, ++ 684, 692, 693, 694, 695, 700, 696, 698, 710, 711, ++ 712, 716, 717, 719 }; const unsigned short int Dhcp4Parser::yytable_[] = { 74, 147, 223, 146, 169, 183, 205, 222, 236, 224, - 163, 170, 184, 225, 166, 30, 188, 148, 530, 149, - 150, 484, 484, 365, 366, 23, 515, 24, 69, 25, - 529, 132, 34, 132, 251, 274, 93, 22, 278, 252, - 275, 83, 84, 279, 234, 235, 168, 36, 199, 220, - 200, 201, 221, 294, 87, 88, 89, 297, 295, 133, - 134, 135, 298, 93, 198, 475, 476, 477, 478, 479, - 480, 38, 136, 40, 137, 138, 139, 140, 141, 142, - 42, 199, 81, 143, 144, 143, 44, 82, 83, 84, - 145, 199, 85, 86, 84, 174, 175, 73, 234, 235, - 70, 87, 88, 89, 90, 91, 71, 72, 73, 92, - 93, 84, 174, 175, 325, 93, 199, 46, 73, 326, - 26, 27, 28, 29, 73, 48, 274, 94, 95, 73, - 580, 557, 93, 581, 360, 666, 198, 667, 668, 96, - 478, 73, 97, 98, 582, 198, 50, 583, 99, 100, - 176, 73, 101, 66, 177, 178, 179, 180, 181, 241, - 182, 559, 199, 242, 200, 201, 560, 202, 203, 204, - 484, 73, 278, 568, 568, 588, 73, 561, 569, 570, - 589, 365, 366, 627, 530, 594, 524, 525, 526, 527, - 595, 664, 692, 73, 665, 693, 529, 74, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 243, 598, - 245, 294, 325, 73, 599, 600, 650, 653, 297, 680, - 699, 362, 73, 657, 681, 700, 361, 505, 506, 507, - 508, 126, 127, 363, 433, 434, 244, 364, 147, 245, - 146, 537, 538, 169, 250, 327, 328, 163, 254, 255, - 170, 166, 259, 260, 148, 183, 149, 150, 261, 262, - 163, 170, 184, 225, 166, 30, 188, 148, 539, 149, - 150, 482, 482, 513, 365, 366, 132, 23, 69, 24, - 538, 25, 126, 127, 83, 84, 198, 132, 198, 22, - 476, 93, 84, 174, 175, 251, 66, 87, 88, 89, - 252, 168, 133, 134, 135, 199, 93, 200, 201, 34, - 202, 203, 204, 93, 199, 136, 36, 137, 138, 139, - 140, 141, 142, 38, 274, 278, 143, 144, 242, 275, - 279, 81, 360, 145, 82, 83, 84, 143, 40, 85, - 86, 294, 533, 534, 535, 536, 295, 42, 87, 88, - 89, 90, 91, 44, 70, 241, 92, 93, 73, 243, - 71, 72, 234, 235, 84, 174, 175, 589, 46, 73, - 590, 73, 73, 73, 94, 95, 26, 27, 28, 29, - 73, 591, 297, 199, 592, 93, 96, 298, 48, 97, - 199, 220, 200, 201, 221, 325, 98, 234, 235, 73, - 326, 99, 100, 176, 50, 101, 244, 177, 178, 179, - 180, 181, 245, 182, 250, 198, 473, 474, 475, 476, - 477, 478, 274, 568, 73, 546, 547, 566, 569, 482, - 365, 366, 199, 685, 683, 686, 687, 684, 254, 641, - 519, 520, 521, 522, 523, 524, 278, 74, 539, 73, - 577, 570, 73, 577, 602, 578, 73, 255, 579, 603, - 538, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 362, 608, 612, 245, 294, 361, 609, 613, 614, - 669, 325, 711, 363, 297, 712, 672, 364, 147, 676, - 146, 259, 260, 169, 699, 327, 328, 163, 73, 700, - 170, 166, 261, 718, 148, 183, 149, 150, 719, 262, -- 271, 288, 184, 223, 205, 289, 188, 308, 222, 309, - 224, 312, 316, 317, 225, 318, 329, 320, 321, 322, - 336, 330, 331, 332, 333, 335, 337, 338, 339, 340, - 345, 341, 342, 343, 344, 346, 347, 348, 349, 350, - 351, 352, 353, 354, 355, 357, 358, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 386, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 398, 399, 400, 401, 402, 415, 416, 403, 404, 406, - 407, 409, 410, 412, 437, 470, 418, 413, 414, 417, - 419, 420, 421, 422, 423, 424, 425, 426, 431, 442, - 488, 488, 427, 428, 429, 481, 481, 430, 438, 439, - 449, 440, 448, 543, 528, 441, 493, 497, 501, 362, - 517, 545, 443, 547, 361, 551, 565, 444, 445, 446, - 447, 363, 566, 567, 573, 364, 572, 576, 450, 575, - 579, 578, 585, 586, 604, 587, 591, 592, 593, 605, - 451, 452, 608, 467, 607, 468, 611, 613, 610, 614, - 615, 632, 637, 638, 453, 645, 640, 646, 454, 686, - 660, 455, 456, 651, 457, 652, 658, 678, 682, 684, - 601, 555, 701, 469, 688, 458, 459, 334, 356, 619, - 474, 359, 626, 629, 628, 411, 492, 631, 460, 461, - 621, 462, 463, 620, 464, 623, 465, 622, 466, 385, - 405, 408, 521, 625, 624, 602, 642, 641, 387, 643, - 546, 617, 616, 647, 618, 630, 633, 634, 635, 397, - 644, 612, 648, 636, 676, 685, 639, 697, 702, 649, - 0, 0, 0, 0, 0, 654, 0, 655, 0, 488, - 0, 656, 0, 0, 481, 147, 0, 146, 223, 0, - 205, 0, 0, 222, 163, 224, 659, 694, 166, 225, - 236, 148, 683, 149, 150, 0, 687, 0, 0, 703, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 169, - 0, 0, 183, 0, 0, 0, 170, 0, 0, 184, - 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, - 224, 312, 316, 317, 225, 503, 504, 505, 506, 318, - 321, 320, 322, 329, 330, 331, 332, 333, 335, 336, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 354, 353, 355, 357, - 358, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 383, 384, 386, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 398, 415, 416, 399, 400, 401, - 402, 403, 404, 406, 409, 410, 407, 412, 418, 413, - 433, 414, 417, 419, 420, 421, 422, 423, 424, 425, - 486, 486, 426, 427, 431, 479, 479, 428, 429, 430, - 436, 435, 447, 437, 537, 438, 440, 362, 439, 441, - 446, 491, 361, 495, 499, 515, 554, 556, 560, 363, - 442, 574, 575, 364, 443, 444, 445, 448, 576, 581, - 582, 584, 585, 588, 587, 596, 595, 449, 594, 597, - 598, 599, 600, 465, 601, 466, 605, 606, 450, 452, - 607, 618, 619, 621, 622, 665, 624, 625, 627, 628, - 629, 651, 656, 657, 664, 453, 454, 564, 455, 659, - 552, 679, 456, 670, 671, 451, 677, 615, 697, 701, - 703, 467, 457, 458, 705, 707, 720, 468, 334, 459, - 356, 472, 460, 359, 633, 640, 490, 643, 461, 650, - 462, 642, 463, 464, 411, 713, 637, 616, 635, 634, - 636, 385, 405, 639, 638, 408, 630, 661, 631, 662, - 644, 632, 660, 387, 645, 646, 647, 648, 555, 663, - 655, 649, 658, 397, 626, 695, 704, 716, 721, 652, - 0, 0, 0, 0, 653, 0, 654, 0, 486, 702, - 0, 0, 0, 479, 147, 0, 146, 223, 0, 205, - 0, 0, 222, 163, 224, 666, 667, 166, 225, 236, - 148, 668, 149, 150, 673, 674, 675, 678, 0, 0, - 0, 706, 0, 0, 537, 722, 0, 0, 0, 0, - 0, 0, 0, 169, 0, 0, 183, 0, 0, 0, - 170, 0, 0, 184, 0, 0, 0, 188, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 163, 170, 184, 225, 166, 30, 188, 148, 541, 149, ++ 150, 484, 484, 515, 365, 366, 132, 23, 69, 24, ++ 540, 25, 591, 93, 198, 592, 83, 84, 478, 22, ++ 198, 34, 132, 168, 84, 174, 175, 234, 235, 87, ++ 88, 89, 234, 235, 133, 134, 135, 199, 93, 200, ++ 201, 36, 202, 203, 204, 93, 199, 136, 38, 137, ++ 138, 139, 140, 141, 142, 251, 81, 66, 143, 144, ++ 252, 82, 83, 84, 360, 145, 85, 86, 199, 73, ++ 535, 536, 537, 538, 143, 87, 88, 89, 90, 91, ++ 73, 40, 593, 92, 93, 594, 70, 199, 220, 200, ++ 201, 221, 71, 72, 84, 174, 175, 73, 126, 127, ++ 42, 94, 95, 73, 73, 73, 433, 434, 26, 27, ++ 28, 29, 73, 96, 274, 93, 97, 278, 687, 275, ++ 688, 689, 279, 98, 685, 294, 297, 686, 99, 100, ++ 295, 298, 101, 176, 73, 548, 549, 177, 178, 179, ++ 180, 181, 44, 182, 521, 522, 523, 524, 525, 526, ++ 325, 73, 274, 73, 570, 326, 241, 568, 242, 571, ++ 46, 484, 365, 366, 198, 475, 476, 477, 478, 479, ++ 480, 643, 713, 278, 579, 714, 243, 74, 572, 580, ++ 541, 199, 73, 579, 604, 610, 614, 244, 581, 605, ++ 611, 615, 540, 245, 294, 325, 48, 297, 616, 671, ++ 674, 362, 678, 701, 720, 50, 361, 245, 702, 721, ++ 250, 254, 255, 363, 259, 260, 261, 364, 147, 262, ++ 146, 271, 288, 169, 289, 327, 328, 163, 309, 308, ++ 170, 166, 312, 316, 148, 183, 149, 150, 505, 506, ++ 507, 508, 184, 223, 205, 317, 188, 73, 222, 318, ++ 224, 320, 321, 322, 225, 1, 2, 3, 4, 5, ++ 6, 7, 8, 9, 10, 330, 329, 331, 332, 333, ++ 335, 336, 337, 338, 339, 340, 345, 346, 347, 348, ++ 341, 342, 343, 344, 349, 350, 351, 352, 354, 355, ++ 357, 353, 358, 372, 373, 374, 375, 376, 377, 378, ++ 379, 381, 382, 383, 380, 384, 386, 388, 389, 390, ++ 391, 392, 393, 394, 395, 415, 416, 396, 398, 399, ++ 400, 401, 402, 403, 406, 404, 409, 410, 407, 412, ++ 418, 413, 439, 414, 417, 419, 420, 421, 422, 423, ++ 488, 488, 424, 425, 426, 481, 481, 427, 428, 429, ++ 430, 431, 437, 438, 539, 440, 442, 441, 443, 362, ++ 444, 445, 446, 447, 361, 448, 449, 583, 450, 493, ++ 497, 363, 501, 451, 452, 364, 470, 517, 556, 558, ++ 562, 576, 454, 455, 456, 457, 577, 578, 584, 587, ++ 586, 598, 590, 467, 589, 468, 596, 597, 620, 599, ++ 600, 601, 458, 566, 602, 603, 459, 607, 608, 609, ++ 621, 624, 623, 627, 629, 554, 630, 460, 461, 626, ++ 631, 653, 462, 658, 659, 666, 672, 463, 661, 667, ++ 699, 673, 703, 679, 681, 705, 464, 465, 707, 709, ++ 722, 466, 617, 453, 469, 359, 474, 334, 635, 642, ++ 492, 618, 356, 645, 644, 633, 632, 411, 634, 646, ++ 647, 648, 649, 650, 651, 654, 652, 637, 636, 639, ++ 638, 655, 715, 656, 668, 669, 405, 670, 641, 385, ++ 640, 675, 676, 408, 677, 680, 663, 704, 665, 662, ++ 664, 657, 557, 660, 387, 397, 697, 708, 706, 724, ++ 488, 628, 718, 723, 0, 481, 147, 0, 146, 223, ++ 0, 205, 0, 0, 222, 163, 224, 0, 0, 166, ++ 225, 236, 148, 0, 149, 150, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 539, 0, 0, 0, ++ 0, 0, 0, 0, 0, 169, 0, 0, 183, 0, ++ 0, 0, 170, 0, 0, 184, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 670, 0, 0, 0, 0, 669, - 0, 0, 0, 689, 0, 0, 0, 0, 688, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 670, 0, 0, 0, 0, 669 - 689, 0, 0, 0, 0, 688 ++ 0, 0, 0, 0, 0, 691, 0, 0, 0, 0, ++ 690, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 691, 0, 0, 0, 0, 690 }; const short int @@@ -3099,191 -3131,196 +3152,196 @@@ { 54, 57, 61, 57, 58, 59, 60, 61, 62, 61, 57, 58, 59, 61, 57, 12, 59, 57, 428, 57, - 57, 419, 420, 280, 280, 5, 425, 7, 10, 9, - 428, 7, 7, 7, 3, 3, 39, 0, 3, 8, - 8, 17, 18, 8, 69, 70, 49, 7, 40, 41, - 42, 43, 44, 3, 30, 31, 32, 3, 8, 35, - 36, 37, 8, 39, 23, 24, 25, 26, 27, 28, - 29, 7, 48, 7, 50, 51, 52, 53, 54, 55, - 7, 40, 11, 59, 60, 59, 7, 16, 17, 18, - 66, 40, 21, 22, 18, 19, 20, 100, 69, 70, - 82, 30, 31, 32, 33, 34, 88, 89, 100, 38, - 39, 18, 19, 20, 3, 39, 40, 7, 100, 8, - 100, 101, 102, 103, 100, 7, 3, 56, 57, 100, - 3, 8, 39, 6, 58, 84, 23, 86, 87, 68, - 27, 100, 71, 72, 3, 23, 7, 6, 77, 78, - 57, 100, 81, 100, 61, 62, 63, 64, 65, 6, - 67, 3, 40, 3, 42, 43, 8, 45, 46, 47, - 568, 100, 3, 3, 3, 3, 100, 8, 8, 8, - 8, 438, 438, 582, 594, 3, 73, 74, 75, 76, - 8, 3, 3, 100, 6, 6, 594, 251, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 4, 3, - 3, 3, 3, 100, 8, 8, 8, 8, 3, 3, - 3, 280, 100, 8, 8, 8, 280, 61, 62, 63, - 64, 12, 13, 280, 14, 15, 8, 280, 294, 3, - 294, 79, 80, 297, 4, 242, 243, 294, 4, 4, - 297, 294, 4, 4, 294, 309, 294, 294, 4, 4, - 4, 4, 309, 322, 318, 4, 309, 8, 322, 3, - 322, 4, 4, 8, 322, 3, 100, 4, 8, 3, - 103, 4, 4, 4, 4, 4, 103, 4, 4, 4, - 4, 101, 101, 101, 101, 4, 4, 4, 4, 4, - 4, 4, 101, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 101, 103, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 101, 4, 4, 332, 333, 4, 103, 4, - 103, 4, 4, 4, 8, 83, 100, 7, 7, 7, - 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, - 419, 420, 7, 7, 7, 419, 420, 7, 3, 100, - 7, 100, 5, 430, 428, 100, 7, 7, 7, 438, - 7, 4, 100, 7, 438, 7, 4, 100, 100, 100, - 100, 438, 4, 4, 3, 438, 6, 3, 100, 6, - 3, 6, 6, 3, 6, 4, 4, 4, 4, 3, - 100, 100, 3, 410, 6, 412, 4, 4, 8, 4, - 4, 4, 4, 4, 390, 4, 6, 5, 100, 5, - 7, 100, 100, 8, 100, 8, 8, 4, 4, 4, - 544, 67, 4, 413, 7, 100, 100, 251, 274, 568, - 417, 278, 580, 586, 584, 325, 420, 588, 100, 100, - 573, 100, 100, 571, 100, 576, 100, 574, 100, 294, - 318, 322, 100, 579, 577, 100, 605, 603, 297, 606, - 438, 101, 103, 100, 103, 101, 101, 101, 101, 309, - 608, 559, 100, 594, 664, 680, 598, 692, 699, 100, - -1, -1, -1, -1, -1, 100, -1, 100, -1, 568, - -1, 100, -1, -1, 568, 571, -1, 571, 577, -1, - 574, -1, -1, 577, 571, 577, 100, 85, 571, 577, - 584, 571, 101, 571, 571, -1, 100, -1, -1, 100, - 594, -1, -1, -1, -1, -1, -1, -1, -1, 603, - -1, -1, 606, -1, -1, -1, 603, -1, -1, 606, - -1, -1, -1, 606, -1, -1, -1, -1, -1, -1, + 57, 419, 420, 425, 280, 280, 7, 5, 10, 7, - 428, 9, 12, 13, 15, 16, 21, 7, 21, 0, - 25, 37, 16, 17, 18, 3, 104, 28, 29, 30, - 8, 47, 33, 34, 35, 38, 37, 40, 41, 7, - 43, 44, 45, 37, 38, 46, 7, 48, 49, 50, - 51, 52, 53, 7, 3, 3, 57, 58, 3, 8, - 8, 11, 56, 64, 14, 15, 16, 57, 7, 19, - 20, 3, 77, 78, 79, 80, 8, 7, 28, 29, - 30, 31, 32, 7, 86, 6, 36, 37, 104, 4, - 92, 93, 67, 68, 16, 17, 18, 3, 7, 104, - 6, 104, 104, 104, 54, 55, 104, 105, 106, 107, - 104, 3, 3, 38, 6, 37, 66, 8, 7, 69, - 38, 39, 40, 41, 42, 3, 76, 67, 68, 104, - 8, 81, 82, 55, 7, 85, 8, 59, 60, 61, - 62, 63, 3, 65, 4, 21, 22, 23, 24, 25, - 26, 27, 3, 3, 104, 83, 84, 8, 8, 577, - 436, 436, 38, 88, 3, 90, 91, 6, 4, 591, - 70, 71, 72, 73, 74, 75, 3, 251, 608, 104, - 3, 8, 104, 3, 3, 8, 104, 4, 8, 8, - 608, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 280, 3, 3, 3, 3, 280, 8, 8, 8, - 8, 3, 3, 280, 3, 6, 8, 280, 294, 8, - 294, 4, 4, 297, 3, 242, 243, 294, 104, 8, - 297, 294, 4, 3, 294, 309, 294, 294, 8, 4, - 4, 4, 309, 322, 318, 4, 309, 8, 322, 3, - 322, 4, 4, 8, 322, 59, 60, 61, 62, 3, - 8, 4, 3, 104, 4, 4, 4, 4, 4, 107, - 107, 4, 4, 4, 105, 105, 105, 105, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 105, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 105, 107, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 332, 333, 4, 105, 4, - 4, 4, 107, 4, 4, 4, 107, 4, 104, 7, - 104, 7, 7, 7, 7, 5, 5, 5, 5, 5, - 419, 420, 5, 7, 5, 419, 420, 7, 7, 7, - 3, 8, 7, 104, 428, 104, 5, 436, 104, 104, - 5, 7, 436, 7, 7, 7, 4, 7, 7, 436, - 104, 4, 4, 436, 104, 104, 104, 104, 4, 6, - 3, 6, 3, 3, 6, 4, 3, 104, 6, 4, - 4, 4, 4, 410, 4, 412, 4, 4, 104, 104, - 4, 6, 3, 6, 3, 5, 8, 4, 4, 4, - 4, 4, 4, 4, 4, 104, 104, 65, 104, 6, - 430, 7, 104, 8, 8, 390, 8, 553, 4, 4, - 4, 413, 104, 104, 5, 7, 4, 87, 251, 104, - 274, 417, 104, 278, 577, 589, 420, 595, 104, 602, - 104, 593, 104, 104, 325, 89, 585, 104, 582, 580, - 583, 294, 318, 588, 586, 322, 107, 619, 105, 620, - 105, 107, 617, 297, 105, 105, 105, 105, 436, 622, - 608, 105, 612, 309, 568, 683, 699, 711, 718, 105, - -1, -1, -1, -1, 105, -1, 105, -1, 577, 105, - -1, -1, -1, 577, 580, -1, 580, 586, -1, 583, - -1, -1, 586, 580, 586, 104, 104, 580, 586, 593, - 580, 104, 580, 580, 104, 104, 104, 104, -1, -1, - -1, 104, -1, -1, 608, 104, -1, -1, -1, -1, - -1, -1, -1, 617, -1, -1, 620, -1, -1, -1, - 617, -1, -1, 620, -1, -1, -1, 620, -1, -1, ++ 428, 9, 3, 39, 23, 6, 17, 18, 27, 0, ++ 23, 7, 7, 49, 18, 19, 20, 69, 70, 30, ++ 31, 32, 69, 70, 35, 36, 37, 40, 39, 42, ++ 43, 7, 45, 46, 47, 39, 40, 48, 7, 50, ++ 51, 52, 53, 54, 55, 3, 11, 106, 59, 60, ++ 8, 16, 17, 18, 58, 66, 21, 22, 40, 106, ++ 79, 80, 81, 82, 59, 30, 31, 32, 33, 34, ++ 106, 7, 3, 38, 39, 6, 88, 40, 41, 42, ++ 43, 44, 94, 95, 18, 19, 20, 106, 12, 13, ++ 7, 56, 57, 106, 106, 106, 14, 15, 106, 107, ++ 108, 109, 106, 68, 3, 39, 71, 3, 90, 8, ++ 92, 93, 8, 78, 3, 3, 3, 6, 83, 84, ++ 8, 8, 87, 57, 106, 85, 86, 61, 62, 63, ++ 64, 65, 7, 67, 72, 73, 74, 75, 76, 77, ++ 3, 106, 3, 106, 3, 8, 6, 8, 3, 8, ++ 7, 579, 438, 438, 23, 24, 25, 26, 27, 28, ++ 29, 593, 3, 3, 3, 6, 4, 251, 8, 8, ++ 610, 40, 106, 3, 3, 3, 3, 8, 8, 8, ++ 8, 8, 610, 3, 3, 3, 7, 3, 8, 8, ++ 8, 280, 8, 3, 3, 7, 280, 3, 8, 8, ++ 4, 4, 4, 280, 4, 4, 4, 280, 294, 4, ++ 294, 4, 4, 297, 4, 242, 243, 294, 3, 8, ++ 297, 294, 4, 4, 294, 309, 294, 294, 61, 62, ++ 63, 64, 309, 322, 318, 8, 309, 106, 322, 3, ++ 322, 4, 8, 3, 322, 96, 97, 98, 99, 100, ++ 101, 102, 103, 104, 105, 4, 106, 4, 4, 4, ++ 4, 109, 109, 4, 4, 4, 4, 4, 4, 4, ++ 107, 107, 107, 107, 4, 4, 4, 4, 4, 4, ++ 4, 107, 4, 4, 4, 4, 4, 4, 4, 4, ++ 107, 4, 4, 4, 109, 4, 4, 4, 4, 4, ++ 4, 4, 4, 4, 4, 332, 333, 4, 4, 4, ++ 107, 4, 4, 4, 4, 109, 4, 4, 109, 4, ++ 106, 7, 106, 7, 7, 7, 7, 5, 5, 5, ++ 419, 420, 5, 5, 5, 419, 420, 7, 7, 7, ++ 7, 5, 8, 3, 428, 106, 5, 106, 106, 438, ++ 106, 106, 106, 106, 438, 5, 7, 6, 106, 7, ++ 7, 438, 7, 106, 106, 438, 89, 7, 4, 7, ++ 7, 4, 106, 106, 106, 106, 4, 4, 3, 3, ++ 6, 4, 3, 410, 6, 412, 6, 3, 6, 4, ++ 4, 4, 106, 67, 4, 4, 106, 4, 4, 4, ++ 3, 3, 6, 4, 4, 430, 4, 106, 106, 8, ++ 4, 4, 106, 4, 4, 4, 8, 106, 6, 5, ++ 4, 8, 4, 8, 7, 4, 106, 106, 5, 7, ++ 4, 106, 555, 390, 413, 278, 417, 251, 579, 591, ++ 420, 106, 274, 597, 595, 107, 109, 325, 109, 107, ++ 107, 107, 107, 107, 107, 107, 604, 584, 582, 587, ++ 585, 107, 91, 107, 106, 106, 318, 106, 590, 294, ++ 588, 106, 106, 322, 106, 106, 621, 107, 624, 619, ++ 622, 610, 438, 614, 297, 309, 685, 106, 701, 106, ++ 579, 570, 713, 720, -1, 579, 582, -1, 582, 588, ++ -1, 585, -1, -1, 588, 582, 588, -1, -1, 582, ++ 588, 595, 582, -1, 582, 582, -1, -1, -1, -1, ++ -1, -1, -1, -1, -1, -1, 610, -1, -1, -1, ++ -1, -1, -1, -1, -1, 619, -1, -1, 622, -1, ++ -1, -1, 619, -1, -1, 622, -1, -1, -1, 622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 663, -1, -1, -1, -1, 663, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 680, -1, -1, -1, -1, 680 - -1, -1, -1, 682, -1, -1, -1, -1, 682, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 699, -1, -1, -1, -1, 699 ++ -1, -1, -1, -1, -1, 684, -1, -1, -1, -1, ++ 684, -1, -1, -1, -1, -1, -1, -1, -1, -1, ++ -1, -1, 701, -1, -1, -1, -1, 701 }; const unsigned short int Dhcp4Parser::yystos_[] = { - 0, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 0, 5, 7, 9, 100, 101, 102, 103, - 116, 117, 118, 122, 7, 129, 7, 135, 7, 149, - 7, 207, 7, 275, 7, 287, 7, 235, 7, 258, - 7, 189, 123, 119, 130, 136, 150, 208, 276, 288, - 236, 259, 190, 116, 126, 127, 100, 120, 121, 10, - 82, 88, 89, 100, 128, 131, 132, 133, 346, 348, - 350, 11, 16, 17, 18, 21, 22, 30, 31, 32, - 33, 34, 38, 39, 56, 57, 68, 71, 72, 77, - 78, 81, 128, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 156, 158, 176, 183, 197, 201, 229, 252, - 292, 316, 326, 335, 336, 344, 12, 13, 147, 148, - 151, 153, 7, 35, 36, 37, 48, 50, 51, 52, - 53, 54, 55, 59, 60, 66, 128, 139, 140, 141, - 144, 209, 210, 211, 213, 215, 217, 219, 221, 223, - 225, 227, 228, 252, 269, 281, 292, 312, 49, 128, - 252, 277, 278, 279, 19, 20, 57, 61, 62, 63, - 64, 65, 67, 128, 252, 289, 290, 291, 292, 294, - 296, 298, 300, 302, 304, 306, 308, 310, 23, 40, - 42, 43, 45, 46, 47, 128, 162, 170, 237, 238, - 239, 240, 241, 242, 243, 244, 246, 248, 249, 251, - 41, 44, 128, 170, 241, 246, 260, 261, 262, 263, - 264, 266, 267, 268, 69, 70, 128, 191, 192, 193, - 195, 6, 3, 4, 8, 3, 134, 351, 347, 349, - 4, 3, 8, 146, 4, 4, 293, 157, 159, 4, - 4, 4, 4, 202, 230, 253, 177, 317, 184, 198, - 327, 4, 337, 345, 3, 8, 152, 154, 3, 8, - 319, 214, 216, 218, 270, 212, 220, 222, 4, 4, - 226, 224, 282, 313, 3, 8, 280, 3, 8, 295, - 297, 311, 301, 303, 307, 305, 309, 299, 8, 3, - 163, 171, 4, 247, 245, 250, 4, 8, 3, 265, - 4, 8, 3, 194, 196, 3, 8, 116, 116, 100, - 4, 4, 4, 4, 132, 4, 103, 103, 4, 4, - 4, 101, 101, 101, 101, 4, 4, 4, 4, 4, - 4, 4, 4, 101, 4, 4, 138, 4, 4, 148, - 58, 128, 170, 252, 292, 294, 296, 320, 321, 322, - 323, 324, 4, 4, 4, 4, 4, 4, 4, 101, - 103, 4, 4, 4, 4, 210, 4, 278, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 291, 4, 4, - 101, 4, 4, 4, 103, 239, 4, 103, 262, 4, - 4, 192, 4, 7, 7, 116, 116, 7, 100, 7, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 0, 5, 7, 9, 104, 105, 106, 107, - 120, 121, 122, 126, 7, 133, 7, 139, 7, 153, - 7, 216, 7, 284, 7, 296, 7, 244, 7, 267, - 7, 192, 127, 123, 134, 140, 154, 217, 285, 297, - 245, 268, 193, 120, 130, 131, 104, 124, 125, 10, - 86, 92, 93, 104, 132, 135, 136, 137, 355, 357, - 359, 11, 14, 15, 16, 19, 20, 28, 29, 30, - 31, 32, 36, 37, 54, 55, 66, 69, 76, 81, - 82, 85, 132, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 159, 161, 179, 186, 200, 210, 238, 261, - 301, 325, 335, 344, 345, 353, 12, 13, 151, 152, - 155, 157, 7, 33, 34, 35, 46, 48, 49, 50, - 51, 52, 53, 57, 58, 64, 132, 143, 144, 145, - 148, 218, 219, 220, 222, 224, 226, 228, 230, 232, - 234, 236, 237, 261, 278, 290, 301, 321, 47, 132, - 261, 286, 287, 288, 17, 18, 55, 59, 60, 61, - 62, 63, 65, 132, 261, 298, 299, 300, 301, 303, - 305, 307, 309, 311, 313, 315, 317, 319, 21, 38, - 40, 41, 43, 44, 45, 132, 165, 173, 246, 247, - 248, 249, 250, 251, 252, 253, 255, 257, 258, 260, - 39, 42, 132, 173, 250, 255, 269, 270, 271, 272, - 273, 275, 276, 277, 67, 68, 132, 194, 195, 196, - 198, 6, 3, 4, 8, 3, 138, 360, 356, 358, - 4, 3, 8, 150, 4, 4, 302, 160, 162, 4, - 4, 4, 4, 211, 239, 262, 180, 326, 187, 201, - 336, 4, 346, 354, 3, 8, 156, 158, 3, 8, - 328, 223, 225, 227, 279, 221, 229, 231, 4, 4, - 235, 233, 291, 322, 3, 8, 289, 3, 8, 304, - 306, 320, 310, 312, 316, 314, 318, 308, 8, 3, - 166, 174, 4, 256, 254, 259, 4, 8, 3, 274, - 4, 8, 3, 197, 199, 3, 8, 120, 120, 104, - 4, 4, 4, 4, 136, 4, 107, 107, 4, 4, - 4, 105, 105, 105, 105, 4, 4, 4, 4, 4, - 4, 4, 4, 105, 4, 4, 142, 4, 4, 152, - 56, 132, 173, 261, 301, 303, 305, 329, 330, 331, - 332, 333, 4, 4, 4, 4, 4, 4, 4, 105, - 107, 4, 4, 4, 4, 219, 4, 287, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 300, 4, 4, - 105, 4, 4, 4, 107, 248, 4, 107, 271, 4, - 4, 195, 4, 7, 7, 120, 120, 7, 104, 7, ++ 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, ++ 105, 111, 112, 113, 114, 115, 116, 117, 118, 119, ++ 120, 121, 0, 5, 7, 9, 106, 107, 108, 109, ++ 122, 123, 124, 128, 7, 135, 7, 141, 7, 155, ++ 7, 219, 7, 287, 7, 299, 7, 247, 7, 270, ++ 7, 195, 129, 125, 136, 142, 156, 220, 288, 300, ++ 248, 271, 196, 122, 132, 133, 106, 126, 127, 10, ++ 88, 94, 95, 106, 134, 137, 138, 139, 358, 360, ++ 362, 11, 16, 17, 18, 21, 22, 30, 31, 32, ++ 33, 34, 38, 39, 56, 57, 68, 71, 78, 83, ++ 84, 87, 134, 143, 144, 145, 146, 147, 148, 149, ++ 150, 151, 162, 164, 182, 189, 203, 213, 241, 264, ++ 304, 328, 338, 347, 348, 356, 12, 13, 153, 154, ++ 157, 159, 7, 35, 36, 37, 48, 50, 51, 52, ++ 53, 54, 55, 59, 60, 66, 134, 145, 146, 147, ++ 150, 221, 222, 223, 225, 227, 229, 231, 233, 235, ++ 237, 239, 240, 264, 281, 293, 304, 324, 49, 134, ++ 264, 289, 290, 291, 19, 20, 57, 61, 62, 63, ++ 64, 65, 67, 134, 264, 301, 302, 303, 304, 306, ++ 308, 310, 312, 314, 316, 318, 320, 322, 23, 40, ++ 42, 43, 45, 46, 47, 134, 168, 176, 249, 250, ++ 251, 252, 253, 254, 255, 256, 258, 260, 261, 263, ++ 41, 44, 134, 176, 253, 258, 272, 273, 274, 275, ++ 276, 278, 279, 280, 69, 70, 134, 197, 198, 199, ++ 201, 6, 3, 4, 8, 3, 140, 363, 359, 361, ++ 4, 3, 8, 152, 4, 4, 305, 163, 165, 4, ++ 4, 4, 4, 214, 242, 265, 183, 329, 190, 204, ++ 339, 4, 349, 357, 3, 8, 158, 160, 3, 8, ++ 331, 226, 228, 230, 282, 224, 232, 234, 4, 4, ++ 238, 236, 294, 325, 3, 8, 292, 3, 8, 307, ++ 309, 323, 313, 315, 319, 317, 321, 311, 8, 3, ++ 169, 177, 4, 259, 257, 262, 4, 8, 3, 277, ++ 4, 8, 3, 200, 202, 3, 8, 122, 122, 106, ++ 4, 4, 4, 4, 138, 4, 109, 109, 4, 4, ++ 4, 107, 107, 107, 107, 4, 4, 4, 4, 4, ++ 4, 4, 4, 107, 4, 4, 144, 4, 4, 154, ++ 58, 134, 176, 264, 304, 306, 308, 332, 333, 334, ++ 335, 336, 4, 4, 4, 4, 4, 4, 4, 107, ++ 109, 4, 4, 4, 4, 222, 4, 290, 4, 4, ++ 4, 4, 4, 4, 4, 4, 4, 303, 4, 4, ++ 107, 4, 4, 4, 109, 251, 4, 109, 274, 4, ++ 4, 198, 4, 7, 7, 122, 122, 7, 106, 7, 7, 5, 5, 5, 5, 5, 5, 7, 7, 7, - 7, 5, 124, 14, 15, 155, 325, 8, 3, 100, - 100, 100, 5, 100, 100, 100, 100, 100, 5, 7, - 100, 100, 100, 124, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 116, 116, 137, - 83, 352, 353, 354, 147, 24, 25, 26, 27, 28, - 29, 128, 160, 161, 162, 164, 166, 168, 170, 172, - 173, 174, 160, 7, 203, 204, 205, 7, 231, 232, - 233, 7, 254, 255, 256, 61, 62, 63, 64, 175, - 178, 179, 180, 181, 182, 223, 318, 7, 185, 186, - 187, 100, 199, 200, 73, 74, 75, 76, 128, 162, - 172, 328, 329, 330, 331, 333, 334, 79, 80, 338, - 339, 340, 342, 121, 125, 4, 322, 7, 271, 272, - 273, 7, 283, 284, 285, 67, 314, 8, 355, 3, - 8, 8, 165, 167, 169, 4, 4, 4, 3, 8, - 8, 206, 6, 3, 234, 6, 3, 257, 6, 3, - 3, 6, 3, 6, 188, 6, 3, 4, 3, 8, - 332, 4, 4, 4, 3, 8, 341, 343, 3, 8, - 8, 126, 100, 274, 6, 3, 286, 6, 3, 315, - 8, 4, 353, 4, 4, 4, 103, 101, 103, 161, - 209, 205, 237, 233, 260, 256, 179, 223, 191, 187, - 101, 200, 4, 101, 101, 101, 329, 4, 4, 339, - 6, 277, 273, 289, 285, 4, 5, 100, 100, 100, - 8, 8, 8, 8, 100, 100, 100, 8, 8, 100, - 7, 356, 357, 358, 3, 6, 84, 86, 87, 128, - 170, 359, 360, 361, 362, 364, 357, 365, 4, 363, - 3, 8, 4, 101, 4, 360, 5, 100, 7, 366, - 367, 368, 3, 6, 85, 369, 370, 367, 371, 3, - 8, 4, 370, 100 - 7, 5, 128, 104, 334, 8, 3, 104, 104, 104, - 5, 104, 104, 104, 104, 104, 5, 7, 104, 104, - 104, 128, 104, 104, 104, 104, 104, 104, 104, 104, - 104, 104, 104, 104, 104, 120, 120, 141, 87, 361, - 362, 363, 151, 22, 23, 24, 25, 26, 27, 132, - 163, 164, 165, 167, 169, 171, 173, 175, 176, 177, - 163, 7, 212, 213, 214, 7, 240, 241, 242, 7, - 263, 264, 265, 59, 60, 61, 62, 178, 181, 182, - 183, 184, 185, 232, 327, 7, 188, 189, 190, 70, - 71, 72, 73, 74, 75, 202, 203, 204, 205, 206, - 207, 208, 209, 77, 78, 79, 80, 132, 165, 175, - 337, 338, 339, 340, 342, 343, 83, 84, 347, 348, - 349, 351, 125, 129, 4, 331, 7, 280, 281, 282, - 7, 292, 293, 294, 65, 323, 8, 364, 3, 8, - 8, 168, 170, 172, 4, 4, 4, 3, 8, 8, - 215, 6, 3, 243, 6, 3, 266, 6, 3, 3, - 6, 3, 6, 191, 6, 3, 4, 4, 4, 4, - 4, 4, 3, 8, 341, 4, 4, 4, 3, 8, - 350, 352, 3, 8, 8, 130, 104, 283, 6, 3, - 295, 6, 3, 324, 8, 4, 362, 4, 4, 4, - 107, 105, 107, 164, 218, 214, 246, 242, 269, 265, - 182, 232, 194, 190, 105, 105, 105, 105, 105, 105, - 203, 4, 105, 105, 105, 338, 4, 4, 348, 6, - 286, 282, 298, 294, 4, 5, 104, 104, 104, 8, - 8, 8, 8, 104, 104, 104, 8, 8, 104, 7, - 365, 366, 367, 3, 6, 88, 90, 91, 132, 173, - 368, 369, 370, 371, 373, 366, 374, 4, 372, 3, - 8, 4, 105, 4, 369, 5, 104, 7, 375, 376, - 377, 3, 6, 89, 378, 379, 376, 380, 3, 8, - 4, 379, 104 ++ 7, 5, 130, 14, 15, 161, 337, 8, 3, 106, ++ 106, 106, 5, 106, 106, 106, 106, 106, 5, 7, ++ 106, 106, 106, 130, 106, 106, 106, 106, 106, 106, ++ 106, 106, 106, 106, 106, 106, 106, 122, 122, 143, ++ 89, 364, 365, 366, 153, 24, 25, 26, 27, 28, ++ 29, 134, 166, 167, 168, 170, 172, 174, 176, 178, ++ 179, 180, 166, 7, 215, 216, 217, 7, 243, 244, ++ 245, 7, 266, 267, 268, 61, 62, 63, 64, 181, ++ 184, 185, 186, 187, 188, 235, 330, 7, 191, 192, ++ 193, 72, 73, 74, 75, 76, 77, 205, 206, 207, ++ 208, 209, 210, 211, 212, 79, 80, 81, 82, 134, ++ 168, 178, 340, 341, 342, 343, 345, 346, 85, 86, ++ 350, 351, 352, 354, 127, 131, 4, 334, 7, 283, ++ 284, 285, 7, 295, 296, 297, 67, 326, 8, 367, ++ 3, 8, 8, 171, 173, 175, 4, 4, 4, 3, ++ 8, 8, 218, 6, 3, 246, 6, 3, 269, 6, ++ 3, 3, 6, 3, 6, 194, 6, 3, 4, 4, ++ 4, 4, 4, 4, 3, 8, 344, 4, 4, 4, ++ 3, 8, 353, 355, 3, 8, 8, 132, 106, 286, ++ 6, 3, 298, 6, 3, 327, 8, 4, 365, 4, ++ 4, 4, 109, 107, 109, 167, 221, 217, 249, 245, ++ 272, 268, 185, 235, 197, 193, 107, 107, 107, 107, ++ 107, 107, 206, 4, 107, 107, 107, 341, 4, 4, ++ 351, 6, 289, 285, 301, 297, 4, 5, 106, 106, ++ 106, 8, 8, 8, 8, 106, 106, 106, 8, 8, ++ 106, 7, 368, 369, 370, 3, 6, 90, 92, 93, ++ 134, 176, 371, 372, 373, 374, 376, 369, 377, 4, ++ 375, 3, 8, 4, 107, 4, 372, 5, 106, 7, ++ 378, 379, 380, 3, 6, 91, 381, 382, 379, 383, ++ 3, 8, 4, 382, 106 }; const unsigned short int Dhcp4Parser::yyr1_[] = { - 0, 104, 106, 105, 107, 105, 108, 105, 109, 105, - 110, 105, 111, 105, 112, 105, 113, 105, 114, 105, - 115, 105, 116, 116, 116, 116, 116, 116, 116, 117, - 119, 118, 120, 120, 121, 121, 123, 122, 125, 124, - 126, 126, 127, 127, 128, 130, 129, 131, 131, 132, - 132, 132, 132, 132, 134, 133, 136, 135, 137, 137, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 139, 140, 141, 142, 143, 144, 146, 145, - 147, 147, 148, 148, 150, 149, 152, 151, 154, 153, - 155, 155, 157, 156, 159, 158, 160, 160, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 163, 162, 165, - 164, 167, 166, 169, 168, 171, 170, 172, 173, 174, - 175, 177, 176, 178, 178, 179, 179, 179, 179, 180, - 181, 182, 184, 183, 185, 185, 186, 186, 188, 187, - 190, 189, 191, 191, 191, 192, 192, 194, 193, 196, - 195, 198, 197, 199, 199, 200, 202, 201, 203, 203, - 204, 204, 206, 205, 208, 207, 209, 209, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 212, 211, - 214, 213, 216, 215, 218, 217, 220, 219, 222, 221, - 224, 223, 226, 225, 227, 228, 230, 229, 231, 231, - 232, 232, 234, 233, 236, 235, 237, 237, 238, 238, - 239, 239, 239, 239, 239, 239, 239, 239, 240, 241, - 242, 243, 245, 244, 247, 246, 248, 250, 249, 251, - 253, 252, 254, 254, 255, 255, 257, 256, 259, 258, - 260, 260, 261, 261, 262, 262, 262, 262, 262, 262, - 263, 265, 264, 266, 267, 268, 270, 269, 271, 271, - 272, 272, 274, 273, 276, 275, 277, 277, 278, 278, - 278, 280, 279, 282, 281, 283, 283, 284, 284, 286, - 285, 288, 287, 289, 289, 290, 290, 291, 291, 291, - 291, 291, 291, 291, 291, 291, 291, 291, 291, 293, - 292, 295, 294, 297, 296, 299, 298, 301, 300, 303, - 302, 305, 304, 307, 306, 309, 308, 311, 310, 313, - 312, 315, 314, 317, 316, 318, 318, 319, 223, 320, - 320, 321, 321, 322, 322, 322, 322, 322, 322, 322, - 323, 325, 324, 327, 326, 328, 328, 329, 329, 329, - 329, 329, 329, 329, 330, 332, 331, 333, 334, 335, - 337, 336, 338, 338, 339, 339, 341, 340, 343, 342, - 345, 344, 347, 346, 349, 348, 351, 350, 352, 352, - 353, 355, 354, 356, 356, 358, 357, 359, 359, 360, - 360, 360, 360, 360, 361, 363, 362, 365, 364, 366, - 366, 368, 367, 369, 369, 371, 370 - 0, 108, 110, 109, 111, 109, 112, 109, 113, 109, - 114, 109, 115, 109, 116, 109, 117, 109, 118, 109, - 119, 109, 120, 120, 120, 120, 120, 120, 120, 121, - 123, 122, 124, 124, 125, 125, 127, 126, 129, 128, - 130, 130, 131, 131, 132, 134, 133, 135, 135, 136, - 136, 136, 136, 136, 138, 137, 140, 139, 141, 141, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 142, 142, 143, 144, 145, 146, 147, 148, 150, 149, - 151, 151, 152, 152, 154, 153, 156, 155, 158, 157, - 160, 159, 162, 161, 163, 163, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 166, 165, 168, 167, 170, - 169, 172, 171, 174, 173, 175, 176, 177, 178, 180, - 179, 181, 181, 182, 182, 182, 182, 183, 184, 185, - 187, 186, 188, 188, 189, 189, 191, 190, 193, 192, - 194, 194, 194, 195, 195, 197, 196, 199, 198, 201, - 200, 202, 202, 203, 203, 203, 203, 203, 203, 204, - 205, 206, 207, 208, 209, 211, 210, 212, 212, 213, - 213, 215, 214, 217, 216, 218, 218, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 221, 220, 223, - 222, 225, 224, 227, 226, 229, 228, 231, 230, 233, - 232, 235, 234, 236, 237, 239, 238, 240, 240, 241, - 241, 243, 242, 245, 244, 246, 246, 247, 247, 248, - 248, 248, 248, 248, 248, 248, 248, 249, 250, 251, - 252, 254, 253, 256, 255, 257, 259, 258, 260, 262, - 261, 263, 263, 264, 264, 266, 265, 268, 267, 269, - 269, 270, 270, 271, 271, 271, 271, 271, 271, 272, - 274, 273, 275, 276, 277, 279, 278, 280, 280, 281, - 281, 283, 282, 285, 284, 286, 286, 287, 287, 287, - 289, 288, 291, 290, 292, 292, 293, 293, 295, 294, - 297, 296, 298, 298, 299, 299, 300, 300, 300, 300, - 300, 300, 300, 300, 300, 300, 300, 300, 302, 301, - 304, 303, 306, 305, 308, 307, 310, 309, 312, 311, - 314, 313, 316, 315, 318, 317, 320, 319, 322, 321, - 324, 323, 326, 325, 327, 327, 328, 232, 329, 329, - 330, 330, 331, 331, 331, 331, 331, 331, 331, 332, - 334, 333, 336, 335, 337, 337, 338, 338, 338, 338, - 338, 338, 338, 339, 341, 340, 342, 343, 344, 346, - 345, 347, 347, 348, 348, 350, 349, 352, 351, 354, - 353, 356, 355, 358, 357, 360, 359, 361, 361, 362, - 364, 363, 365, 365, 367, 366, 368, 368, 369, 369, - 369, 369, 369, 370, 372, 371, 374, 373, 375, 375, - 377, 376, 378, 378, 380, 379 ++ 0, 110, 112, 111, 113, 111, 114, 111, 115, 111, ++ 116, 111, 117, 111, 118, 111, 119, 111, 120, 111, ++ 121, 111, 122, 122, 122, 122, 122, 122, 122, 123, ++ 125, 124, 126, 126, 127, 127, 129, 128, 131, 130, ++ 132, 132, 133, 133, 134, 136, 135, 137, 137, 138, ++ 138, 138, 138, 138, 140, 139, 142, 141, 143, 143, ++ 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, ++ 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, ++ 144, 144, 145, 146, 147, 148, 149, 150, 152, 151, ++ 153, 153, 154, 154, 156, 155, 158, 157, 160, 159, ++ 161, 161, 163, 162, 165, 164, 166, 166, 167, 167, ++ 167, 167, 167, 167, 167, 167, 167, 169, 168, 171, ++ 170, 173, 172, 175, 174, 177, 176, 178, 179, 180, ++ 181, 183, 182, 184, 184, 185, 185, 185, 185, 186, ++ 187, 188, 190, 189, 191, 191, 192, 192, 194, 193, ++ 196, 195, 197, 197, 197, 198, 198, 200, 199, 202, ++ 201, 204, 203, 205, 205, 206, 206, 206, 206, 206, ++ 206, 207, 208, 209, 210, 211, 212, 214, 213, 215, ++ 215, 216, 216, 218, 217, 220, 219, 221, 221, 222, ++ 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, ++ 222, 222, 222, 222, 222, 222, 222, 222, 222, 224, ++ 223, 226, 225, 228, 227, 230, 229, 232, 231, 234, ++ 233, 236, 235, 238, 237, 239, 240, 242, 241, 243, ++ 243, 244, 244, 246, 245, 248, 247, 249, 249, 250, ++ 250, 251, 251, 251, 251, 251, 251, 251, 251, 252, ++ 253, 254, 255, 257, 256, 259, 258, 260, 262, 261, ++ 263, 265, 264, 266, 266, 267, 267, 269, 268, 271, ++ 270, 272, 272, 273, 273, 274, 274, 274, 274, 274, ++ 274, 275, 277, 276, 278, 279, 280, 282, 281, 283, ++ 283, 284, 284, 286, 285, 288, 287, 289, 289, 290, ++ 290, 290, 292, 291, 294, 293, 295, 295, 296, 296, ++ 298, 297, 300, 299, 301, 301, 302, 302, 303, 303, ++ 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, ++ 305, 304, 307, 306, 309, 308, 311, 310, 313, 312, ++ 315, 314, 317, 316, 319, 318, 321, 320, 323, 322, ++ 325, 324, 327, 326, 329, 328, 330, 330, 331, 235, ++ 332, 332, 333, 333, 334, 334, 334, 334, 334, 334, ++ 334, 335, 337, 336, 339, 338, 340, 340, 341, 341, ++ 341, 341, 341, 341, 341, 342, 344, 343, 345, 346, ++ 347, 349, 348, 350, 350, 351, 351, 353, 352, 355, ++ 354, 357, 356, 359, 358, 361, 360, 363, 362, 364, ++ 364, 365, 367, 366, 368, 368, 370, 369, 371, 371, ++ 372, 372, 372, 372, 372, 373, 375, 374, 377, 376, ++ 378, 378, 380, 379, 381, 381, 383, 382 }; const unsigned char @@@ -3299,39 -3336,40 +3357,40 @@@ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, 6, 1, 3, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 6, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 3, 3, 3, 1, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 1, 3, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 3, 3, 3, + 1, 0, 6, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 1, 3, 1, 1, 1, 0, 4, 0, - 4, 0, 6, 1, 3, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, ++ 4, 0, 6, 1, 3, 1, 1, 1, 1, 1, ++ 1, 3, 3, 3, 3, 3, 3, 0, 6, 0, ++ 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 3, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 1, 0, 4, 0, 4, 1, 0, 4, 3, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, - 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 1, 1, 3, 0, 6, 0, 1, - 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, - 1, 0, 4, 0, 6, 0, 1, 1, 3, 0, - 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 6, 0, 4, 0, 6, 1, 3, 0, 4, 0, - 4, 0, 4, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 1, 0, 4, 0, 4, 1, 0, 4, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, -- 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 6, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 3, 3, 3, - 0, 6, 1, 3, 1, 1, 0, 4, 0, 4, - 0, 6, 0, 4, 0, 4, 0, 6, 1, 3, - 1, 0, 6, 1, 3, 0, 4, 1, 3, 1, - 1, 1, 1, 1, 3, 0, 4, 0, 6, 1, - 3, 0, 4, 1, 3, 0, 4 - 0, 4, 1, 1, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, - 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, ++ 4, 0, 4, 0, 4, 3, 3, 0, 6, 0, ++ 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, ++ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 3, 1, 1, 0, 4, 0, 4, 1, 0, 4, ++ 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, ++ 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, ++ 1, 1, 0, 4, 1, 1, 3, 0, 6, 0, ++ 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, ++ 1, 1, 0, 4, 0, 6, 0, 1, 1, 3, ++ 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 0, 4, 0, 6, 1, 3, 0, 4, 0, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 4, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 3, 0, 4, 3, 3, 3, 0, - 6, 1, 3, 1, 1, 0, 4, 0, 4, 0, - 6, 0, 4, 0, 4, 0, 6, 1, 3, 1, - 0, 6, 1, 3, 0, 4, 1, 3, 1, 1, - 1, 1, 1, 3, 0, 4, 0, 6, 1, 3, - 0, 4, 1, 3, 0, 4 ++ 0, 6, 0, 4, 0, 6, 1, 3, 0, 4, ++ 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, ++ 1, 1, 0, 4, 0, 6, 1, 3, 1, 1, ++ 1, 1, 1, 1, 1, 3, 0, 4, 3, 3, ++ 3, 0, 6, 1, 3, 1, 1, 0, 4, 0, ++ 4, 0, 6, 0, 4, 0, 4, 0, 6, 1, ++ 3, 1, 0, 6, 1, 3, 0, 4, 1, 3, ++ 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, ++ 1, 3, 0, 4, 1, 3, 0, 4 }; @@@ -3436,49 -3479,50 +3501,50 @@@ const unsigned short int Dhcp4Parser::yyrline_[] = { - 0, 201, 201, 201, 202, 202, 203, 203, 204, 204, - 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, - 210, 210, 218, 219, 220, 221, 222, 223, 224, 227, - 232, 232, 244, 245, 248, 252, 259, 259, 267, 267, - 274, 275, 278, 282, 293, 303, 303, 315, 316, 320, - 321, 322, 323, 324, 327, 327, 344, 344, 352, 353, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 382, 387, 392, 397, 402, 407, 413, 413, - 423, 424, 427, 428, 431, 431, 439, 439, 449, 449, - 456, 457, 460, 460, 470, 470, 480, 481, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 495, 495, 503, - 503, 511, 511, 519, 519, 527, 527, 535, 540, 545, - 550, 555, 555, 565, 566, 569, 570, 571, 572, 575, - 580, 585, 590, 590, 600, 601, 604, 605, 608, 608, - 616, 616, 624, 625, 626, 629, 630, 633, 633, 641, - 641, 649, 649, 659, 660, 666, 674, 674, 687, 688, - 691, 692, 699, 699, 722, 722, 731, 732, 736, 737, - 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 751, 752, 753, 754, 755, 758, 758, - 766, 766, 774, 774, 782, 782, 790, 790, 798, 798, - 806, 806, 814, 814, 822, 827, 836, 836, 848, 849, - 852, 853, 858, 858, 869, 869, 879, 880, 883, 884, - 887, 888, 889, 890, 891, 892, 893, 894, 897, 899, - 904, 906, 908, 908, 916, 916, 924, 926, 926, 934, - 943, 943, 955, 956, 961, 962, 967, 967, 978, 978, - 989, 990, 995, 996, 1001, 1002, 1003, 1004, 1005, 1006, - 1009, 1011, 1011, 1019, 1021, 1023, 1031, 1031, 1043, 1044, - 1047, 1048, 1051, 1051, 1059, 1059, 1067, 1068, 1071, 1072, - 1073, 1076, 1076, 1087, 1087, 1097, 1098, 1101, 1102, 1105, - 1105, 1113, 1113, 1121, 1122, 1125, 1126, 1130, 1131, 1132, - 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1144, - 1144, 1152, 1152, 1160, 1160, 1168, 1168, 1176, 1176, 1184, - 1184, 1192, 1192, 1200, 1200, 1209, 1209, 1217, 1217, 1230, - 1230, 1240, 1240, 1251, 1251, 1261, 1262, 1265, 1265, 1273, - 1274, 1277, 1278, 1281, 1282, 1283, 1284, 1285, 1286, 1287, - 1290, 1292, 1292, 1303, 1303, 1313, 1314, 1317, 1318, 1319, - 1320, 1321, 1322, 1323, 1326, 1331, 1331, 1339, 1344, 1351, - 1358, 1358, 1368, 1369, 1372, 1373, 1376, 1376, 1384, 1384, - 1394, 1394, 1406, 1406, 1413, 1413, 1425, 1425, 1438, 1439, - 1443, 1447, 1447, 1459, 1460, 1464, 1464, 1472, 1473, 1476, - 1477, 1478, 1479, 1480, 1483, 1487, 1487, 1495, 1495, 1505, - 1506, 1509, 1509, 1517, 1518, 1521, 1521 - 0, 204, 204, 204, 205, 205, 206, 206, 207, 207, - 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, - 213, 213, 221, 222, 223, 224, 225, 226, 227, 230, - 235, 235, 247, 248, 251, 255, 262, 262, 270, 270, - 277, 278, 281, 285, 296, 306, 306, 318, 319, 323, - 324, 325, 326, 327, 330, 330, 347, 347, 355, 356, - 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, 385, 390, 395, 400, 405, 410, 416, 416, - 426, 427, 430, 431, 434, 434, 442, 442, 452, 452, - 460, 460, 470, 470, 480, 481, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 495, 495, 503, 503, 511, - 511, 519, 519, 527, 527, 535, 540, 545, 550, 555, - 555, 565, 566, 569, 570, 571, 572, 575, 580, 585, - 590, 590, 600, 601, 604, 605, 608, 608, 616, 616, - 624, 625, 626, 629, 630, 633, 633, 641, 641, 649, - 649, 659, 660, 663, 664, 665, 666, 667, 668, 671, - 676, 681, 686, 691, 696, 704, 704, 717, 718, 721, - 722, 729, 729, 752, 752, 761, 762, 766, 767, 768, - 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 782, 783, 784, 785, 788, 788, 796, - 796, 804, 804, 812, 812, 820, 820, 828, 828, 836, - 836, 844, 844, 852, 857, 866, 866, 878, 879, 882, - 883, 888, 888, 899, 899, 909, 910, 913, 914, 917, - 918, 919, 920, 921, 922, 923, 924, 927, 929, 934, - 936, 938, 938, 946, 946, 954, 956, 956, 964, 973, - 973, 985, 986, 991, 992, 997, 997, 1008, 1008, 1019, - 1020, 1025, 1026, 1031, 1032, 1033, 1034, 1035, 1036, 1039, - 1041, 1041, 1049, 1051, 1053, 1061, 1061, 1073, 1074, 1077, - 1078, 1081, 1081, 1089, 1089, 1097, 1098, 1101, 1102, 1103, - 1106, 1106, 1117, 1117, 1127, 1128, 1131, 1132, 1135, 1135, - 1143, 1143, 1151, 1152, 1155, 1156, 1160, 1161, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1174, 1174, - 1182, 1182, 1190, 1190, 1198, 1198, 1206, 1206, 1214, 1214, - 1222, 1222, 1230, 1230, 1239, 1239, 1247, 1247, 1260, 1260, - 1270, 1270, 1281, 1281, 1291, 1292, 1295, 1295, 1303, 1304, - 1307, 1308, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1320, - 1322, 1322, 1333, 1333, 1343, 1344, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1356, 1361, 1361, 1369, 1374, 1381, 1388, - 1388, 1398, 1399, 1402, 1403, 1406, 1406, 1414, 1414, 1424, - 1424, 1436, 1436, 1443, 1443, 1455, 1455, 1468, 1469, 1473, - 1477, 1477, 1489, 1490, 1494, 1494, 1502, 1503, 1506, 1507, - 1508, 1509, 1510, 1513, 1517, 1517, 1525, 1525, 1535, 1536, - 1539, 1539, 1547, 1548, 1551, 1551 ++ 0, 207, 207, 207, 208, 208, 209, 209, 210, 210, ++ 211, 211, 212, 212, 213, 213, 214, 214, 215, 215, ++ 216, 216, 224, 225, 226, 227, 228, 229, 230, 233, ++ 238, 238, 250, 251, 254, 258, 265, 265, 273, 273, ++ 280, 281, 284, 288, 299, 309, 309, 321, 322, 326, ++ 327, 328, 329, 330, 333, 333, 350, 350, 358, 359, ++ 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, ++ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, ++ 384, 385, 388, 393, 398, 403, 408, 413, 419, 419, ++ 429, 430, 433, 434, 437, 437, 445, 445, 455, 455, ++ 462, 463, 466, 466, 476, 476, 486, 487, 490, 491, ++ 492, 493, 494, 495, 496, 497, 498, 501, 501, 509, ++ 509, 517, 517, 525, 525, 533, 533, 541, 546, 551, ++ 556, 561, 561, 571, 572, 575, 576, 577, 578, 581, ++ 586, 591, 596, 596, 606, 607, 610, 611, 614, 614, ++ 622, 622, 630, 631, 632, 635, 636, 639, 639, 647, ++ 647, 655, 655, 665, 666, 669, 670, 671, 672, 673, ++ 674, 677, 682, 687, 692, 697, 702, 710, 710, 723, ++ 724, 727, 728, 735, 735, 758, 758, 767, 768, 772, ++ 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, ++ 783, 784, 785, 786, 787, 788, 789, 790, 791, 794, ++ 794, 802, 802, 810, 810, 818, 818, 826, 826, 834, ++ 834, 842, 842, 850, 850, 858, 863, 872, 872, 884, ++ 885, 888, 889, 894, 894, 905, 905, 915, 916, 919, ++ 920, 923, 924, 925, 926, 927, 928, 929, 930, 933, ++ 935, 940, 942, 944, 944, 952, 952, 960, 962, 962, ++ 970, 979, 979, 991, 992, 997, 998, 1003, 1003, 1014, ++ 1014, 1025, 1026, 1031, 1032, 1037, 1038, 1039, 1040, 1041, ++ 1042, 1045, 1047, 1047, 1055, 1057, 1059, 1067, 1067, 1079, ++ 1080, 1083, 1084, 1087, 1087, 1095, 1095, 1103, 1104, 1107, ++ 1108, 1109, 1112, 1112, 1123, 1123, 1133, 1134, 1137, 1138, ++ 1141, 1141, 1149, 1149, 1157, 1158, 1161, 1162, 1166, 1167, ++ 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, ++ 1180, 1180, 1188, 1188, 1196, 1196, 1204, 1204, 1212, 1212, ++ 1220, 1220, 1228, 1228, 1236, 1236, 1245, 1245, 1253, 1253, ++ 1266, 1266, 1276, 1276, 1287, 1287, 1297, 1298, 1301, 1301, ++ 1309, 1310, 1313, 1314, 1317, 1318, 1319, 1320, 1321, 1322, ++ 1323, 1326, 1328, 1328, 1339, 1339, 1349, 1350, 1353, 1354, ++ 1355, 1356, 1357, 1358, 1359, 1362, 1367, 1367, 1375, 1380, ++ 1387, 1394, 1394, 1404, 1405, 1408, 1409, 1412, 1412, 1420, ++ 1420, 1430, 1430, 1442, 1442, 1449, 1449, 1461, 1461, 1474, ++ 1475, 1479, 1483, 1483, 1495, 1496, 1500, 1500, 1508, 1509, ++ 1512, 1513, 1514, 1515, 1516, 1519, 1523, 1523, 1531, 1531, ++ 1541, 1542, 1545, 1545, 1553, 1554, 1557, 1557 }; // Print the state stack on the debug stream. @@@ -3513,8 -3557,8 +3579,8 @@@ #line 14 "dhcp4_parser.yy" // lalr1.cc:1167 } } // isc::dhcp - #line 3517 "dhcp4_parser.cc" // lalr1.cc:1167 - #line 1529 "dhcp4_parser.yy" // lalr1.cc:1168 -#line 3561 "dhcp4_parser.cc" // lalr1.cc:1167 -#line 1559 "dhcp4_parser.yy" // lalr1.cc:1168 ++#line 3583 "dhcp4_parser.cc" // lalr1.cc:1167 ++#line 1565 "dhcp4_parser.yy" // lalr1.cc:1168 void diff --cc src/bin/dhcp4/dhcp4_parser.h index 5889598d1e,5f4a702913..999a3e8a04 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@@ -40,7 -40,7 +40,7 @@@ #ifndef YY_PARSER4_DHCP4_PARSER_H_INCLUDED # define YY_PARSER4_DHCP4_PARSER_H_INCLUDED // // "%code requires" blocks. --#line 17 "dhcp4_parser.yy" // lalr1.cc:377 ++#line 17 "dhcp4_parser.yy" // lalr1.cc:392 #include #include @@@ -52,7 -52,7 +52,7 @@@ using namespace isc::dhcp using namespace isc::data; using namespace std; --#line 56 "dhcp4_parser.h" // lalr1.cc:377 ++#line 56 "dhcp4_parser.h" // lalr1.cc:392 # include # include // std::abort @@@ -135,9 -135,9 +135,9 @@@ # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER4_DEBUG */ --#line 14 "dhcp4_parser.yy" // lalr1.cc:377 ++#line 14 "dhcp4_parser.yy" // lalr1.cc:392 namespace isc { namespace dhcp { --#line 141 "dhcp4_parser.h" // lalr1.cc:377 ++#line 141 "dhcp4_parser.h" // lalr1.cc:392 @@@ -353,96 -352,100 +353,102 @@@ TOKEN_INTERFACES_CONFIG = 266, TOKEN_INTERFACES = 267, TOKEN_DHCP_SOCKET_TYPE = 268, - TOKEN_ECHO_CLIENT_ID = 269, - TOKEN_MATCH_CLIENT_ID = 270, - TOKEN_NEXT_SERVER = 271, - TOKEN_SERVER_HOSTNAME = 272, - TOKEN_BOOT_FILE_NAME = 273, - TOKEN_LEASE_DATABASE = 274, - TOKEN_HOSTS_DATABASE = 275, - TOKEN_TYPE = 276, - TOKEN_USER = 277, - TOKEN_PASSWORD = 278, - TOKEN_HOST = 279, - TOKEN_PERSIST = 280, - TOKEN_LFC_INTERVAL = 281, - TOKEN_READONLY = 282, - TOKEN_VALID_LIFETIME = 283, - TOKEN_RENEW_TIMER = 284, - TOKEN_REBIND_TIMER = 285, - TOKEN_DECLINE_PROBATION_PERIOD = 286, - TOKEN_SUBNET4 = 287, - TOKEN_SUBNET_4O6_INTERFACE = 288, - TOKEN_SUBNET_4O6_INTERFACE_ID = 289, - TOKEN_SUBNET_4O6_SUBNET = 290, - TOKEN_OPTION_DEF = 291, - TOKEN_OPTION_DATA = 292, - TOKEN_NAME = 293, - TOKEN_DATA = 294, - TOKEN_CODE = 295, - TOKEN_SPACE = 296, - TOKEN_CSV_FORMAT = 297, - TOKEN_RECORD_TYPES = 298, - TOKEN_ENCAPSULATE = 299, - TOKEN_ARRAY = 300, - TOKEN_POOLS = 301, - TOKEN_POOL = 302, - TOKEN_SUBNET = 303, - TOKEN_INTERFACE = 304, - TOKEN_INTERFACE_ID = 305, - TOKEN_ID = 306, - TOKEN_RAPID_COMMIT = 307, - TOKEN_RESERVATION_MODE = 308, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 309, - TOKEN_CLIENT_CLASSES = 310, - TOKEN_TEST = 311, - TOKEN_CLIENT_CLASS = 312, - TOKEN_RESERVATIONS = 313, - TOKEN_DUID = 314, - TOKEN_HW_ADDRESS = 315, - TOKEN_CIRCUIT_ID = 316, - TOKEN_CLIENT_ID = 317, - TOKEN_HOSTNAME = 318, - TOKEN_RELAY = 319, - TOKEN_IP_ADDRESS = 320, - TOKEN_HOOKS_LIBRARIES = 321, - TOKEN_LIBRARY = 322, - TOKEN_PARAMETERS = 323, - TOKEN_EXPIRED_LEASES_PROCESSING = 324, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 325, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 326, - TOKEN_HOLD_RECLAIMED_TIME = 327, - TOKEN_MAX_RECLAIM_LEASES = 328, - TOKEN_MAX_RECLAIM_TIME = 329, - TOKEN_UNWARNED_RECLAIM_CYCLES = 330, - TOKEN_SERVER_ID = 331, - TOKEN_IDENTIFIER = 332, - TOKEN_HTYPE = 333, - TOKEN_TIME = 334, - TOKEN_ENTERPRISE_ID = 335, - TOKEN_DHCP4O6_PORT = 336, - TOKEN_CONTROL_SOCKET = 337, - TOKEN_SOCKET_TYPE = 338, - TOKEN_SOCKET_NAME = 339, - TOKEN_DHCP_DDNS = 340, - TOKEN_LOGGING = 341, - TOKEN_LOGGERS = 342, - TOKEN_OUTPUT_OPTIONS = 343, - TOKEN_OUTPUT = 344, - TOKEN_DEBUGLEVEL = 345, - TOKEN_SEVERITY = 346, - TOKEN_DHCP6 = 347, - TOKEN_DHCPDDNS = 348, - TOKEN_TOPLEVEL_JSON = 349, - TOKEN_TOPLEVEL_DHCP4 = 350, - TOKEN_SUB_DHCP4 = 351, - TOKEN_SUB_INTERFACES4 = 352, - TOKEN_SUB_SUBNET4 = 353, - TOKEN_SUB_POOL4 = 354, - TOKEN_SUB_RESERVATION = 355, - TOKEN_SUB_OPTION_DEF = 356, - TOKEN_SUB_OPTION_DATA = 357, - TOKEN_SUB_HOOKS_LIBRARY = 358, - TOKEN_STRING = 359, - TOKEN_INTEGER = 360, - TOKEN_FLOAT = 361, - TOKEN_BOOLEAN = 362 + TOKEN_RAW = 269, + TOKEN_UDP = 270, + TOKEN_ECHO_CLIENT_ID = 271, + TOKEN_MATCH_CLIENT_ID = 272, + TOKEN_NEXT_SERVER = 273, + TOKEN_SERVER_HOSTNAME = 274, + TOKEN_BOOT_FILE_NAME = 275, + TOKEN_LEASE_DATABASE = 276, + TOKEN_HOSTS_DATABASE = 277, + TOKEN_TYPE = 278, + TOKEN_USER = 279, + TOKEN_PASSWORD = 280, + TOKEN_HOST = 281, + TOKEN_PERSIST = 282, + TOKEN_LFC_INTERVAL = 283, + TOKEN_READONLY = 284, + TOKEN_VALID_LIFETIME = 285, + TOKEN_RENEW_TIMER = 286, + TOKEN_REBIND_TIMER = 287, + TOKEN_DECLINE_PROBATION_PERIOD = 288, + TOKEN_SUBNET4 = 289, + TOKEN_SUBNET_4O6_INTERFACE = 290, + TOKEN_SUBNET_4O6_INTERFACE_ID = 291, + TOKEN_SUBNET_4O6_SUBNET = 292, + TOKEN_OPTION_DEF = 293, + TOKEN_OPTION_DATA = 294, + TOKEN_NAME = 295, + TOKEN_DATA = 296, + TOKEN_CODE = 297, + TOKEN_SPACE = 298, + TOKEN_CSV_FORMAT = 299, + TOKEN_RECORD_TYPES = 300, + TOKEN_ENCAPSULATE = 301, + TOKEN_ARRAY = 302, + TOKEN_POOLS = 303, + TOKEN_POOL = 304, + TOKEN_SUBNET = 305, + TOKEN_INTERFACE = 306, + TOKEN_INTERFACE_ID = 307, + TOKEN_ID = 308, + TOKEN_RAPID_COMMIT = 309, + TOKEN_RESERVATION_MODE = 310, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 311, + TOKEN_CLIENT_CLASSES = 312, + TOKEN_TEST = 313, + TOKEN_CLIENT_CLASS = 314, + TOKEN_RESERVATIONS = 315, + TOKEN_DUID = 316, + TOKEN_HW_ADDRESS = 317, + TOKEN_CIRCUIT_ID = 318, + TOKEN_CLIENT_ID = 319, + TOKEN_HOSTNAME = 320, + TOKEN_RELAY = 321, + TOKEN_IP_ADDRESS = 322, + TOKEN_HOOKS_LIBRARIES = 323, + TOKEN_LIBRARY = 324, + TOKEN_PARAMETERS = 325, + TOKEN_EXPIRED_LEASES_PROCESSING = 326, - TOKEN_SERVER_ID = 327, - TOKEN_IDENTIFIER = 328, - TOKEN_HTYPE = 329, - TOKEN_TIME = 330, - TOKEN_ENTERPRISE_ID = 331, - TOKEN_DHCP4O6_PORT = 332, - TOKEN_CONTROL_SOCKET = 333, - TOKEN_SOCKET_TYPE = 334, - TOKEN_SOCKET_NAME = 335, - TOKEN_DHCP_DDNS = 336, - TOKEN_LOGGING = 337, - TOKEN_LOGGERS = 338, - TOKEN_OUTPUT_OPTIONS = 339, - TOKEN_OUTPUT = 340, - TOKEN_DEBUGLEVEL = 341, - TOKEN_SEVERITY = 342, - TOKEN_DHCP6 = 343, - TOKEN_DHCPDDNS = 344, - TOKEN_TOPLEVEL_JSON = 345, - TOKEN_TOPLEVEL_DHCP4 = 346, - TOKEN_SUB_DHCP4 = 347, - TOKEN_SUB_INTERFACES4 = 348, - TOKEN_SUB_SUBNET4 = 349, - TOKEN_SUB_POOL4 = 350, - TOKEN_SUB_RESERVATION = 351, - TOKEN_SUB_OPTION_DEF = 352, - TOKEN_SUB_OPTION_DATA = 353, - TOKEN_SUB_HOOKS_LIBRARY = 354, - TOKEN_STRING = 355, - TOKEN_INTEGER = 356, - TOKEN_FLOAT = 357, - TOKEN_BOOLEAN = 358 ++ TOKEN_RECLAIM_TIMER_WAIT_TIME = 327, ++ TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 328, ++ TOKEN_HOLD_RECLAIMED_TIME = 329, ++ TOKEN_MAX_RECLAIM_LEASES = 330, ++ TOKEN_MAX_RECLAIM_TIME = 331, ++ TOKEN_UNWARNED_RECLAIM_CYCLES = 332, ++ TOKEN_SERVER_ID = 333, ++ TOKEN_IDENTIFIER = 334, ++ TOKEN_HTYPE = 335, ++ TOKEN_TIME = 336, ++ TOKEN_ENTERPRISE_ID = 337, ++ TOKEN_DHCP4O6_PORT = 338, ++ TOKEN_CONTROL_SOCKET = 339, ++ TOKEN_SOCKET_TYPE = 340, ++ TOKEN_SOCKET_NAME = 341, ++ TOKEN_DHCP_DDNS = 342, ++ TOKEN_LOGGING = 343, ++ TOKEN_LOGGERS = 344, ++ TOKEN_OUTPUT_OPTIONS = 345, ++ TOKEN_OUTPUT = 346, ++ TOKEN_DEBUGLEVEL = 347, ++ TOKEN_SEVERITY = 348, ++ TOKEN_DHCP6 = 349, ++ TOKEN_DHCPDDNS = 350, ++ TOKEN_TOPLEVEL_JSON = 351, ++ TOKEN_TOPLEVEL_DHCP4 = 352, ++ TOKEN_SUB_DHCP4 = 353, ++ TOKEN_SUB_INTERFACES4 = 354, ++ TOKEN_SUB_SUBNET4 = 355, ++ TOKEN_SUB_POOL4 = 356, ++ TOKEN_SUB_RESERVATION = 357, ++ TOKEN_SUB_OPTION_DEF = 358, ++ TOKEN_SUB_OPTION_DATA = 359, ++ TOKEN_SUB_HOOKS_LIBRARY = 360, ++ TOKEN_STRING = 361, ++ TOKEN_INTEGER = 362, ++ TOKEN_FLOAT = 363, ++ TOKEN_BOOLEAN = 364 }; }; @@@ -1170,12 -1189,12 +1200,12 @@@ enum { yyeof_ = 0, - yylast_ = 626, ///< Last index in yytable_. - yynnts_ = 268, ///< Number of nonterminal symbols. - yylast_ = 645, ///< Last index in yytable_. - yynnts_ = 273, ///< Number of nonterminal symbols. ++ yylast_ = 647, ///< Last index in yytable_. ++ yynnts_ = 274, ///< Number of nonterminal symbols. yyfinal_ = 22, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 104 ///< Number of tokens. - yyntokens_ = 108 ///< Number of tokens. ++ yyntokens_ = 110 ///< Number of tokens. }; @@@ -1227,9 -1246,10 +1257,10 @@@ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103 + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107 ++ 105, 106, 107, 108, 109 }; - const unsigned int user_token_number_max_ = 358; - const unsigned int user_token_number_max_ = 362; ++ const unsigned int user_token_number_max_ = 364; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) @@@ -1262,24 -1282,23 +1293,24 @@@ { switch (other.type_get ()) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type value.copy< ElementPtr > (other.value); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" value.copy< bool > (other.value); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" value.copy< double > (other.value); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" value.copy< int64_t > (other.value); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" value.copy< std::string > (other.value); break; @@@ -1300,24 -1319,23 +1331,24 @@@ (void) v; switch (this->type_get ()) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type value.copy< ElementPtr > (v); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" value.copy< bool > (v); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" value.copy< double > (v); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" value.copy< int64_t > (v); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" value.copy< std::string > (v); break; @@@ -1397,24 -1415,23 +1428,24 @@@ // Type destructor. switch (yytype) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type value.template destroy< ElementPtr > (); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" value.template destroy< bool > (); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" value.template destroy< double > (); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" value.template destroy< int64_t > (); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" value.template destroy< std::string > (); break; @@@ -1441,24 -1458,23 +1472,24 @@@ super_type::move(s); switch (this->type_get ()) { - case 116: // value - case 155: // socket_type - case 120: // value ++ case 122: // value ++ case 161: // socket_type value.move< ElementPtr > (s.value); break; - case 103: // "boolean" - case 107: // "boolean" ++ case 109: // "boolean" value.move< bool > (s.value); break; - case 102: // "floating point" - case 106: // "floating point" ++ case 108: // "floating point" value.move< double > (s.value); break; - case 101: // "integer" - case 105: // "integer" ++ case 107: // "integer" value.move< int64_t > (s.value); break; - case 100: // "constant string" - case 104: // "constant string" ++ case 106: // "constant string" value.move< std::string > (s.value); break; @@@ -1527,7 -1543,7 +1558,7 @@@ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358 - 355, 356, 357, 358, 359, 360, 361, 362 ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364 }; return static_cast (yytoken_number_[type]); } @@@ -2145,9 -2185,9 +2212,9 @@@ } --#line 14 "dhcp4_parser.yy" // lalr1.cc:377 ++#line 14 "dhcp4_parser.yy" // lalr1.cc:392 } } // isc::dhcp - #line 2151 "dhcp4_parser.h" // lalr1.cc:377 -#line 2191 "dhcp4_parser.h" // lalr1.cc:377 ++#line 2218 "dhcp4_parser.h" // lalr1.cc:392 diff --cc src/bin/dhcp4/json_config_parser.cc index e6d388f857,48ea993b12..c710f0b674 --- a/src/bin/dhcp4/json_config_parser.cc +++ b/src/bin/dhcp4/json_config_parser.cc @@@ -649,14 -645,12 +648,20 @@@ configureDhcp4Server(Dhcpv4Srv&, isc::d continue; } + if (config_pair.first == "interfaces-config") { + IfacesConfigParser parser(AF_INET); + CfgIfacePtr cfg_iface = CfgMgr::instance().getStagingCfg()->getCfgIface(); + parser.parse(cfg_iface, config_pair.second); + continue; + } + + if (config_pair.first == "expired-leases-processing") { + ExpirationConfigParser parser; + parser.parse(config_pair.second); + continue; + } + + // Legacy DhcpConfigParser stuff below ParserPtr parser(createGlobalDhcp4ConfigParser(config_pair.first, config_pair.second)); LOG_DEBUG(dhcp4_logger, DBG_DHCP4_DETAIL, DHCP4_PARSER_CREATED) diff --cc src/bin/dhcp4/location.hh index bb3c4d01b4,0cafc188f3..c0ff059934 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@@ -1,4 -1,4 +1,3 @@@ - // Generated 201701062338 -// Generated 201701070534 // A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ @@@ -41,9 -41,9 +40,9 @@@ # include "position.hh" --#line 14 "dhcp4_parser.yy" // location.cc:296 ++#line 14 "dhcp4_parser.yy" // location.cc:337 namespace isc { namespace dhcp { --#line 46 "location.hh" // location.cc:296 ++#line 46 "location.hh" // location.cc:337 /// Abstract a location. class location { @@@ -187,7 -187,7 +186,7 @@@ return ostr; } --#line 14 "dhcp4_parser.yy" // location.cc:296 ++#line 14 "dhcp4_parser.yy" // location.cc:337 } } // isc::dhcp --#line 192 "location.hh" // location.cc:296 ++#line 192 "location.hh" // location.cc:337 #endif // !YY_PARSER4_LOCATION_HH_INCLUDED diff --cc src/bin/dhcp4/position.hh index 00b1293986,8a684ceb57..bd7cbb6bb5 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@@ -1,4 -1,4 +1,3 @@@ - // Generated 201701062338 -// Generated 201701070534 // A Bison parser, made by GNU Bison 3.0.4. // Positions for Bison parsers in C++ @@@ -51,9 -51,9 +50,9 @@@ # endif # endif --#line 14 "dhcp4_parser.yy" // location.cc:296 ++#line 14 "dhcp4_parser.yy" // location.cc:337 namespace isc { namespace dhcp { --#line 56 "position.hh" // location.cc:296 ++#line 56 "position.hh" // location.cc:337 /// Abstract a position. class position { @@@ -175,7 -175,7 +174,7 @@@ return ostr << pos.line << '.' << pos.column; } --#line 14 "dhcp4_parser.yy" // location.cc:296 ++#line 14 "dhcp4_parser.yy" // location.cc:337 } } // isc::dhcp --#line 180 "position.hh" // location.cc:296 ++#line 180 "position.hh" // location.cc:337 #endif // !YY_PARSER4_POSITION_HH_INCLUDED diff --cc src/bin/dhcp4/stack.hh index 9747a45c2c,42e511d301..fc7eb975eb --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@@ -1,4 -1,4 +1,3 @@@ - // Generated 201701062338 -// Generated 201701070534 // A Bison parser, made by GNU Bison 3.0.4. // Stack handling for Bison parsers in C++ @@@ -41,9 -41,9 +40,9 @@@ # include --#line 14 "dhcp4_parser.yy" // stack.hh:132 ++#line 14 "dhcp4_parser.yy" // stack.hh:151 namespace isc { namespace dhcp { --#line 46 "stack.hh" // stack.hh:132 ++#line 46 "stack.hh" // stack.hh:151 template > class stack { @@@ -151,8 -151,8 +150,8 @@@ unsigned int range_; }; --#line 14 "dhcp4_parser.yy" // stack.hh:132 ++#line 14 "dhcp4_parser.yy" // stack.hh:151 } } // isc::dhcp --#line 156 "stack.hh" // stack.hh:132 ++#line 156 "stack.hh" // stack.hh:151 #endif // !YY_PARSER4_STACK_HH_INCLUDED diff --cc src/bin/dhcp6/dhcp6_parser.cc index 59b6629395,034a40dafa..15a89469f5 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@@ -253,24 -253,23 +253,24 @@@ namespace isc { namespace dhcp { switch (that.type_get ()) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type value.move< ElementPtr > (that.value); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" value.move< bool > (that.value); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" value.move< double > (that.value); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" value.move< int64_t > (that.value); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" value.move< std::string > (that.value); break; @@@ -289,24 -288,23 +289,24 @@@ state = that.state; switch (that.type_get ()) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type value.copy< ElementPtr > (that.value); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" value.copy< bool > (that.value); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" value.copy< double > (that.value); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" value.copy< int64_t > (that.value); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" value.copy< std::string > (that.value); break; @@@ -346,46 -344,39 +346,46 @@@ << yysym.location << ": "; switch (yytype) { - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" - #line 193 "dhcp6_parser.yy" // lalr1.cc:636 -#line 195 "dhcp6_parser.yy" // lalr1.cc:636 ++#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< std::string > (); } -#line 352 "dhcp6_parser.cc" // lalr1.cc:636 +#line 354 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" - #line 193 "dhcp6_parser.yy" // lalr1.cc:636 -#line 195 "dhcp6_parser.yy" // lalr1.cc:636 ++#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< int64_t > (); } -#line 359 "dhcp6_parser.cc" // lalr1.cc:636 +#line 361 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" - #line 193 "dhcp6_parser.yy" // lalr1.cc:636 -#line 195 "dhcp6_parser.yy" // lalr1.cc:636 ++#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< double > (); } -#line 366 "dhcp6_parser.cc" // lalr1.cc:636 +#line 368 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" - #line 193 "dhcp6_parser.yy" // lalr1.cc:636 -#line 195 "dhcp6_parser.yy" // lalr1.cc:636 ++#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< bool > (); } -#line 373 "dhcp6_parser.cc" // lalr1.cc:636 +#line 375 "dhcp6_parser.cc" // lalr1.cc:636 break; - case 119: // value - case 122: // value ++ case 125: // value - #line 193 "dhcp6_parser.yy" // lalr1.cc:636 -#line 195 "dhcp6_parser.yy" // lalr1.cc:636 ++#line 199 "dhcp6_parser.yy" // lalr1.cc:636 { yyoutput << yysym.value.template as< ElementPtr > (); } -#line 380 "dhcp6_parser.cc" // lalr1.cc:636 +#line 382 "dhcp6_parser.cc" // lalr1.cc:636 + break; + - case 338: // duid_type ++ case 350: // duid_type + - #line 193 "dhcp6_parser.yy" // lalr1.cc:636 ++#line 199 "dhcp6_parser.yy" // lalr1.cc:636 + { yyoutput << yysym.value.template as< ElementPtr > (); } +#line 389 "dhcp6_parser.cc" // lalr1.cc:636 break; @@@ -585,24 -576,23 +585,24 @@@ when using variants. */ switch (yyr1_[yyn]) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type yylhs.value.build< ElementPtr > (); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" yylhs.value.build< bool > (); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" yylhs.value.build< double > (); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" yylhs.value.build< int64_t > (); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" yylhs.value.build< std::string > (); break; @@@ -624,115 -614,115 +624,115 @@@ switch (yyn) { case 2: - #line 202 "dhcp6_parser.yy" // lalr1.cc:859 -#line 204 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 208 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.NO_KEYWORD; } -#line 620 "dhcp6_parser.cc" // lalr1.cc:859 +#line 630 "dhcp6_parser.cc" // lalr1.cc:859 break; case 4: - #line 203 "dhcp6_parser.yy" // lalr1.cc:859 -#line 205 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 209 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.CONFIG; } -#line 626 "dhcp6_parser.cc" // lalr1.cc:859 +#line 636 "dhcp6_parser.cc" // lalr1.cc:859 break; case 6: - #line 204 "dhcp6_parser.yy" // lalr1.cc:859 -#line 206 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 210 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.DHCP6; } -#line 632 "dhcp6_parser.cc" // lalr1.cc:859 +#line 642 "dhcp6_parser.cc" // lalr1.cc:859 break; case 8: - #line 205 "dhcp6_parser.yy" // lalr1.cc:859 -#line 207 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 211 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } -#line 638 "dhcp6_parser.cc" // lalr1.cc:859 +#line 648 "dhcp6_parser.cc" // lalr1.cc:859 break; case 10: - #line 206 "dhcp6_parser.yy" // lalr1.cc:859 -#line 208 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 212 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.SUBNET6; } -#line 644 "dhcp6_parser.cc" // lalr1.cc:859 +#line 654 "dhcp6_parser.cc" // lalr1.cc:859 break; case 12: - #line 207 "dhcp6_parser.yy" // lalr1.cc:859 -#line 209 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 213 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.POOLS; } -#line 650 "dhcp6_parser.cc" // lalr1.cc:859 +#line 660 "dhcp6_parser.cc" // lalr1.cc:859 break; case 14: - #line 208 "dhcp6_parser.yy" // lalr1.cc:859 -#line 210 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 214 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.PD_POOLS; } -#line 656 "dhcp6_parser.cc" // lalr1.cc:859 +#line 666 "dhcp6_parser.cc" // lalr1.cc:859 break; case 16: - #line 209 "dhcp6_parser.yy" // lalr1.cc:859 -#line 211 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 215 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.RESERVATIONS; } -#line 662 "dhcp6_parser.cc" // lalr1.cc:859 +#line 672 "dhcp6_parser.cc" // lalr1.cc:859 break; case 18: - #line 210 "dhcp6_parser.yy" // lalr1.cc:859 -#line 212 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 216 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DEF; } -#line 668 "dhcp6_parser.cc" // lalr1.cc:859 +#line 678 "dhcp6_parser.cc" // lalr1.cc:859 break; case 20: - #line 211 "dhcp6_parser.yy" // lalr1.cc:859 -#line 213 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 217 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.OPTION_DATA; } -#line 674 "dhcp6_parser.cc" // lalr1.cc:859 +#line 684 "dhcp6_parser.cc" // lalr1.cc:859 break; case 22: - #line 212 "dhcp6_parser.yy" // lalr1.cc:859 -#line 214 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 218 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } -#line 680 "dhcp6_parser.cc" // lalr1.cc:859 +#line 690 "dhcp6_parser.cc" // lalr1.cc:859 break; case 24: - #line 220 "dhcp6_parser.yy" // lalr1.cc:859 -#line 222 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 226 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 686 "dhcp6_parser.cc" // lalr1.cc:859 +#line 696 "dhcp6_parser.cc" // lalr1.cc:859 break; case 25: - #line 221 "dhcp6_parser.yy" // lalr1.cc:859 -#line 223 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 227 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } -#line 692 "dhcp6_parser.cc" // lalr1.cc:859 +#line 702 "dhcp6_parser.cc" // lalr1.cc:859 break; case 26: - #line 222 "dhcp6_parser.yy" // lalr1.cc:859 -#line 224 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 228 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 698 "dhcp6_parser.cc" // lalr1.cc:859 +#line 708 "dhcp6_parser.cc" // lalr1.cc:859 break; case 27: - #line 223 "dhcp6_parser.yy" // lalr1.cc:859 -#line 225 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 229 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 704 "dhcp6_parser.cc" // lalr1.cc:859 +#line 714 "dhcp6_parser.cc" // lalr1.cc:859 break; case 28: - #line 224 "dhcp6_parser.yy" // lalr1.cc:859 -#line 226 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 230 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 710 "dhcp6_parser.cc" // lalr1.cc:859 +#line 720 "dhcp6_parser.cc" // lalr1.cc:859 break; case 29: - #line 225 "dhcp6_parser.yy" // lalr1.cc:859 -#line 227 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 231 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 716 "dhcp6_parser.cc" // lalr1.cc:859 +#line 726 "dhcp6_parser.cc" // lalr1.cc:859 break; case 30: - #line 226 "dhcp6_parser.yy" // lalr1.cc:859 -#line 228 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 232 "dhcp6_parser.yy" // lalr1.cc:859 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 722 "dhcp6_parser.cc" // lalr1.cc:859 +#line 732 "dhcp6_parser.cc" // lalr1.cc:859 break; case 31: - #line 229 "dhcp6_parser.yy" // lalr1.cc:859 -#line 231 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 235 "dhcp6_parser.yy" // lalr1.cc:859 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@@ -741,7 -731,7 +741,7 @@@ break; case 32: - #line 234 "dhcp6_parser.yy" // lalr1.cc:859 -#line 236 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 240 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@@ -752,7 -742,7 +752,7 @@@ break; case 33: - #line 239 "dhcp6_parser.yy" // lalr1.cc:859 -#line 241 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 245 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@@ -762,7 -752,7 +762,7 @@@ break; case 36: - #line 250 "dhcp6_parser.yy" // lalr1.cc:859 -#line 252 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 256 "dhcp6_parser.yy" // lalr1.cc:859 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@@ -771,7 -761,7 +771,7 @@@ break; case 37: - #line 254 "dhcp6_parser.yy" // lalr1.cc:859 -#line 256 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 260 "dhcp6_parser.yy" // lalr1.cc:859 { // map consisting of a shorter map followed by // comma and string:value @@@ -781,7 -771,7 +781,7 @@@ break; case 38: - #line 261 "dhcp6_parser.yy" // lalr1.cc:859 -#line 263 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 267 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@@ -790,7 -780,7 +790,7 @@@ break; case 39: - #line 264 "dhcp6_parser.yy" // lalr1.cc:859 -#line 266 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 270 "dhcp6_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here } @@@ -798,7 -788,7 +798,7 @@@ break; case 40: - #line 269 "dhcp6_parser.yy" // lalr1.cc:859 -#line 271 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 275 "dhcp6_parser.yy" // lalr1.cc:859 { // List parsing about to start } @@@ -806,7 -796,7 +806,7 @@@ break; case 41: - #line 271 "dhcp6_parser.yy" // lalr1.cc:859 -#line 273 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 277 "dhcp6_parser.yy" // lalr1.cc:859 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@@ -815,7 -805,7 +815,7 @@@ break; case 44: - #line 280 "dhcp6_parser.yy" // lalr1.cc:859 -#line 282 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 286 "dhcp6_parser.yy" // lalr1.cc:859 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@@ -824,7 -814,7 +824,7 @@@ break; case 45: - #line 284 "dhcp6_parser.yy" // lalr1.cc:859 -#line 286 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 290 "dhcp6_parser.yy" // lalr1.cc:859 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@@ -833,7 -823,7 +833,7 @@@ break; case 46: - #line 295 "dhcp6_parser.yy" // lalr1.cc:859 -#line 297 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 301 "dhcp6_parser.yy" // lalr1.cc:859 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@@ -844,7 -834,7 +844,7 @@@ break; case 47: - #line 305 "dhcp6_parser.yy" // lalr1.cc:859 -#line 307 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 311 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@@ -855,7 -845,7 +855,7 @@@ break; case 48: - #line 310 "dhcp6_parser.yy" // lalr1.cc:859 -#line 312 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 316 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@@ -865,7 -855,7 +865,7 @@@ break; case 56: - #line 329 "dhcp6_parser.yy" // lalr1.cc:859 -#line 331 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 335 "dhcp6_parser.yy" // lalr1.cc:859 { // This code is executed when we're about to start parsing // the content of the map @@@ -878,7 -868,7 +878,7 @@@ break; case 57: - #line 336 "dhcp6_parser.yy" // lalr1.cc:859 -#line 338 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 342 "dhcp6_parser.yy" // lalr1.cc:859 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@@ -890,7 -880,7 +890,7 @@@ break; case 58: - #line 346 "dhcp6_parser.yy" // lalr1.cc:859 -#line 348 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 352 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@@ -900,7 -890,7 +900,7 @@@ break; case 59: - #line 350 "dhcp6_parser.yy" // lalr1.cc:859 -#line 352 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 356 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@@ -908,7 -898,7 +908,7 @@@ break; case 84: - #line 384 "dhcp6_parser.yy" // lalr1.cc:859 -#line 386 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 390 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); @@@ -917,7 -907,7 +917,7 @@@ break; case 85: - #line 389 "dhcp6_parser.yy" // lalr1.cc:859 -#line 391 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 395 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@@ -926,7 -916,7 +926,7 @@@ break; case 86: - #line 394 "dhcp6_parser.yy" // lalr1.cc:859 -#line 396 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 400 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); @@@ -935,7 -925,7 +935,7 @@@ break; case 87: - #line 399 "dhcp6_parser.yy" // lalr1.cc:859 -#line 401 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 405 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); @@@ -944,7 -934,7 +944,7 @@@ break; case 88: - #line 404 "dhcp6_parser.yy" // lalr1.cc:859 -#line 406 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 410 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); @@@ -953,7 -943,7 +953,7 @@@ break; case 89: - #line 409 "dhcp6_parser.yy" // lalr1.cc:859 -#line 411 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 415 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); @@@ -964,7 -954,7 +964,7 @@@ break; case 90: - #line 414 "dhcp6_parser.yy" // lalr1.cc:859 -#line 416 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 420 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -973,7 -963,7 +973,7 @@@ break; case 91: - #line 419 "dhcp6_parser.yy" // lalr1.cc:859 -#line 421 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 425 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@@ -983,7 -973,7 +983,7 @@@ break; case 92: - #line 423 "dhcp6_parser.yy" // lalr1.cc:859 -#line 425 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 429 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@@ -991,7 -981,7 +991,7 @@@ break; case 93: - #line 427 "dhcp6_parser.yy" // lalr1.cc:859 -#line 429 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 433 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); @@@ -1002,7 -992,7 +1002,7 @@@ break; case 94: - #line 432 "dhcp6_parser.yy" // lalr1.cc:859 -#line 434 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 438 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1011,7 -1001,7 +1011,7 @@@ break; case 95: - #line 437 "dhcp6_parser.yy" // lalr1.cc:859 -#line 439 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 443 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); @@@ -1022,7 -1012,7 +1022,7 @@@ break; case 96: - #line 442 "dhcp6_parser.yy" // lalr1.cc:859 -#line 444 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 448 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1031,7 -1021,7 +1031,7 @@@ break; case 97: - #line 447 "dhcp6_parser.yy" // lalr1.cc:859 -#line 449 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 453 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); @@@ -1042,7 -1032,7 +1042,7 @@@ break; case 98: - #line 452 "dhcp6_parser.yy" // lalr1.cc:859 -#line 454 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 458 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1051,7 -1041,7 +1051,7 @@@ break; case 110: - #line 472 "dhcp6_parser.yy" // lalr1.cc:859 -#line 474 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 478 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1059,7 -1049,7 +1059,7 @@@ break; case 111: - #line 474 "dhcp6_parser.yy" // lalr1.cc:859 -#line 476 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 480 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); @@@ -1069,7 -1059,7 +1069,7 @@@ break; case 112: - #line 480 "dhcp6_parser.yy" // lalr1.cc:859 -#line 482 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 486 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1077,7 -1067,7 +1077,7 @@@ break; case 113: - #line 482 "dhcp6_parser.yy" // lalr1.cc:859 -#line 484 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 488 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@@ -1087,7 -1077,7 +1087,7 @@@ break; case 114: - #line 488 "dhcp6_parser.yy" // lalr1.cc:859 -#line 490 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 494 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1095,7 -1085,7 +1095,7 @@@ break; case 115: - #line 490 "dhcp6_parser.yy" // lalr1.cc:859 -#line 492 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 496 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@@ -1105,7 -1095,7 +1105,7 @@@ break; case 116: - #line 496 "dhcp6_parser.yy" // lalr1.cc:859 -#line 498 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 502 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1113,7 -1103,7 +1113,7 @@@ break; case 117: - #line 498 "dhcp6_parser.yy" // lalr1.cc:859 -#line 500 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 504 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@@ -1123,7 -1113,7 +1123,7 @@@ break; case 118: - #line 504 "dhcp6_parser.yy" // lalr1.cc:859 -#line 506 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 510 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1131,7 -1121,7 +1131,7 @@@ break; case 119: - #line 506 "dhcp6_parser.yy" // lalr1.cc:859 -#line 508 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 512 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@@ -1141,7 -1131,7 +1141,7 @@@ break; case 120: - #line 512 "dhcp6_parser.yy" // lalr1.cc:859 -#line 514 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 518 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); @@@ -1150,7 -1140,7 +1150,7 @@@ break; case 121: - #line 517 "dhcp6_parser.yy" // lalr1.cc:859 -#line 519 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 523 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); @@@ -1159,7 -1149,7 +1159,7 @@@ break; case 122: - #line 522 "dhcp6_parser.yy" // lalr1.cc:859 -#line 524 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 528 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); @@@ -1168,7 -1158,7 +1168,7 @@@ break; case 123: - #line 527 "dhcp6_parser.yy" // lalr1.cc:859 -#line 529 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 533 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); @@@ -1179,7 -1169,7 +1179,7 @@@ break; case 124: - #line 532 "dhcp6_parser.yy" // lalr1.cc:859 -#line 534 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 538 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1188,7 -1178,7 +1188,7 @@@ break; case 129: - #line 545 "dhcp6_parser.yy" // lalr1.cc:859 -#line 547 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 551 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@@ -1197,7 -1187,7 +1197,7 @@@ break; case 130: - #line 550 "dhcp6_parser.yy" // lalr1.cc:859 -#line 552 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 556 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@@ -1206,7 -1196,7 +1206,7 @@@ break; case 131: - #line 555 "dhcp6_parser.yy" // lalr1.cc:859 -#line 557 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 561 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); @@@ -1217,7 -1207,7 +1217,7 @@@ break; case 132: - #line 560 "dhcp6_parser.yy" // lalr1.cc:859 -#line 562 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 566 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1226,7 -1216,7 +1226,7 @@@ break; case 137: - #line 573 "dhcp6_parser.yy" // lalr1.cc:859 -#line 575 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 579 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); @@@ -1235,7 -1225,7 +1235,7 @@@ break; case 138: - #line 578 "dhcp6_parser.yy" // lalr1.cc:859 -#line 580 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 584 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); @@@ -1246,7 -1236,7 +1246,7 @@@ break; case 139: - #line 583 "dhcp6_parser.yy" // lalr1.cc:859 -#line 585 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 589 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1255,7 -1245,7 +1255,7 @@@ break; case 140: - #line 588 "dhcp6_parser.yy" // lalr1.cc:859 -#line 590 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 594 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); @@@ -1266,7 -1256,7 +1266,7 @@@ break; case 141: - #line 593 "dhcp6_parser.yy" // lalr1.cc:859 -#line 595 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 599 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); @@@ -1275,7 -1265,7 +1275,7 @@@ break; case 146: - #line 606 "dhcp6_parser.yy" // lalr1.cc:859 -#line 608 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 612 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@@ -1285,7 -1275,7 +1285,7 @@@ break; case 147: - #line 610 "dhcp6_parser.yy" // lalr1.cc:859 -#line 612 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 616 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } @@@ -1293,7 -1283,7 +1293,7 @@@ break; case 148: - #line 614 "dhcp6_parser.yy" // lalr1.cc:859 -#line 616 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 620 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@@ -1303,7 -1293,7 +1303,7 @@@ break; case 149: - #line 618 "dhcp6_parser.yy" // lalr1.cc:859 -#line 620 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 624 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } @@@ -1311,7 -1301,7 +1311,7 @@@ break; case 155: - #line 631 "dhcp6_parser.yy" // lalr1.cc:859 -#line 633 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 637 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1319,7 -1309,7 +1319,7 @@@ break; case 156: - #line 633 "dhcp6_parser.yy" // lalr1.cc:859 -#line 635 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 639 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); @@@ -1329,7 -1319,7 +1329,7 @@@ break; case 157: - #line 639 "dhcp6_parser.yy" // lalr1.cc:859 -#line 641 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 645 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } @@@ -1337,7 -1327,7 +1337,7 @@@ break; case 158: - #line 641 "dhcp6_parser.yy" // lalr1.cc:859 -#line 643 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 647 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@@ -1346,66 -1336,111 +1346,111 @@@ break; case 159: - #line 647 "dhcp6_parser.yy" // lalr1.cc:859 -#line 649 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 653 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); - ctx.enter(ctx.NO_KEYWORD); + ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1347 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1357 "dhcp6_parser.cc" // lalr1.cc:859 break; case 160: - #line 652 "dhcp6_parser.yy" // lalr1.cc:859 -#line 654 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 658 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1356 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1366 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 163: - #line 664 "dhcp6_parser.yy" // lalr1.cc:859 + case 169: -#line 671 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 675 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), value); + ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1365 "dhcp6_parser.cc" // lalr1.cc:859 +#line 1375 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 164: - #line 672 "dhcp6_parser.yy" // lalr1.cc:859 + case 170: -#line 676 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 680 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); + } -#line 1374 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1384 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 171: -#line 681 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 685 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("hold-reclaimed-time", value); + } -#line 1383 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1393 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 172: -#line 686 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 690 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reclaim-leases", value); + } -#line 1392 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1402 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 173: -#line 691 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 695 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("max-reclaim-time", value); + } -#line 1401 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1411 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 174: -#line 696 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 700 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("unwarned-reclaim-cycles", value); + } -#line 1410 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1420 "dhcp6_parser.cc" // lalr1.cc:859 + break; + + case 175: -#line 704 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 708 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } - #line 1386 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1421 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1431 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 165: - #line 677 "dhcp6_parser.yy" // lalr1.cc:859 + case 176: -#line 709 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 713 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1395 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1430 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1440 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 170: - #line 697 "dhcp6_parser.yy" // lalr1.cc:859 + case 181: -#line 729 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 733 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1405 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1440 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1450 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 171: - #line 701 "dhcp6_parser.yy" // lalr1.cc:859 + case 182: -#line 733 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 737 "dhcp6_parser.yy" // lalr1.cc:859 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@@ -1424,1183 -1459,1130 +1469,1183 @@@ // } ctx.stack_.pop_back(); } - #line 1428 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1463 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1473 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 172: - #line 720 "dhcp6_parser.yy" // lalr1.cc:859 + case 183: -#line 752 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 756 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1438 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1473 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1483 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 173: - #line 724 "dhcp6_parser.yy" // lalr1.cc:859 + case 184: -#line 756 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 760 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1446 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1481 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1491 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 193: - #line 753 "dhcp6_parser.yy" // lalr1.cc:859 + case 204: -#line 785 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 789 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1454 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1489 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1499 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 194: - #line 755 "dhcp6_parser.yy" // lalr1.cc:859 + case 205: -#line 787 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 791 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } - #line 1464 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1499 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1509 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 195: - #line 761 "dhcp6_parser.yy" // lalr1.cc:859 + case 206: -#line 793 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 797 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1472 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1507 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1517 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 196: - #line 763 "dhcp6_parser.yy" // lalr1.cc:859 + case 207: -#line 795 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 799 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } - #line 1482 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1517 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1527 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 197: - #line 769 "dhcp6_parser.yy" // lalr1.cc:859 + case 208: -#line 801 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 805 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1490 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1525 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1535 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 198: - #line 771 "dhcp6_parser.yy" // lalr1.cc:859 + case 209: -#line 803 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 807 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } - #line 1500 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1535 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1545 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 199: - #line 777 "dhcp6_parser.yy" // lalr1.cc:859 + case 210: -#line 809 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 813 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.CLIENT_CLASS); } - #line 1508 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1543 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1553 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 200: - #line 779 "dhcp6_parser.yy" // lalr1.cc:859 + case 211: -#line 811 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 815 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } - #line 1518 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1553 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1563 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 201: - #line 785 "dhcp6_parser.yy" // lalr1.cc:859 + case 212: -#line 817 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 821 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1526 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1561 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1571 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 202: - #line 787 "dhcp6_parser.yy" // lalr1.cc:859 + case 213: -#line 819 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 823 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr rm(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservation-mode", rm); ctx.leave(); } - #line 1536 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1571 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1581 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 203: - #line 793 "dhcp6_parser.yy" // lalr1.cc:859 + case 214: -#line 825 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 829 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } - #line 1545 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1580 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1590 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 204: - #line 798 "dhcp6_parser.yy" // lalr1.cc:859 + case 215: -#line 830 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 834 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } - #line 1554 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1589 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1599 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 205: - #line 807 "dhcp6_parser.yy" // lalr1.cc:859 + case 216: -#line 839 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 843 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } - #line 1565 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1600 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1610 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 206: - #line 812 "dhcp6_parser.yy" // lalr1.cc:859 + case 217: -#line 844 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 848 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1574 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1609 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1619 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 211: - #line 829 "dhcp6_parser.yy" // lalr1.cc:859 + case 222: -#line 861 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 865 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1584 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1619 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1629 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 212: - #line 833 "dhcp6_parser.yy" // lalr1.cc:859 + case 223: -#line 865 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 869 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1592 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1627 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1637 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 213: - #line 840 "dhcp6_parser.yy" // lalr1.cc:859 + case 224: -#line 872 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 876 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1602 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1637 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1647 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 214: - #line 844 "dhcp6_parser.yy" // lalr1.cc:859 + case 225: -#line 876 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 880 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1610 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1645 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1655 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 228: - #line 870 "dhcp6_parser.yy" // lalr1.cc:859 + case 239: -#line 902 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 906 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } - #line 1619 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1654 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1664 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 230: - #line 877 "dhcp6_parser.yy" // lalr1.cc:859 - case 242: -#line 911 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 241: ++#line 913 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1627 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1662 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1672 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 231: - #line 879 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 242: ++#line 915 "dhcp6_parser.yy" // lalr1.cc:859 + { + ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("type", prf); + ctx.leave(); +} - #line 1637 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1682 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 232: - #line 885 "dhcp6_parser.yy" // lalr1.cc:859 + case 243: -#line 913 "dhcp6_parser.yy" // lalr1.cc:859 ++#line 921 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.NO_KEYWORD); +} - #line 1645 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1690 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 233: - #line 887 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 244: ++#line 923 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); ctx.leave(); } - #line 1655 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1672 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1700 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 234: - #line 893 "dhcp6_parser.yy" // lalr1.cc:859 - case 244: -#line 919 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 245: ++#line 929 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1663 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1680 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1708 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 235: - #line 895 "dhcp6_parser.yy" // lalr1.cc:859 - case 245: -#line 921 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 246: ++#line 931 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } - #line 1673 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1690 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1718 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 237: - #line 903 "dhcp6_parser.yy" // lalr1.cc:859 - case 247: -#line 929 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 248: ++#line 939 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1681 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1698 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1726 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 238: - #line 905 "dhcp6_parser.yy" // lalr1.cc:859 - case 248: -#line 931 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 249: ++#line 941 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } - #line 1691 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1708 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1736 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 239: - #line 911 "dhcp6_parser.yy" // lalr1.cc:859 - case 249: -#line 937 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 250: ++#line 947 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } - #line 1700 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1717 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1745 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 240: - #line 920 "dhcp6_parser.yy" // lalr1.cc:859 - case 250: -#line 946 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 251: ++#line 956 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } - #line 1711 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1728 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1756 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 241: - #line 925 "dhcp6_parser.yy" // lalr1.cc:859 - case 251: -#line 951 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 252: ++#line 961 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1720 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1737 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1765 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 246: - #line 944 "dhcp6_parser.yy" // lalr1.cc:859 - case 256: -#line 970 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 257: ++#line 980 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1730 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1747 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1775 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 247: - #line 948 "dhcp6_parser.yy" // lalr1.cc:859 - case 257: -#line 974 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 258: ++#line 984 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1738 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1755 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1783 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 248: - #line 955 "dhcp6_parser.yy" // lalr1.cc:859 - case 258: -#line 981 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 259: ++#line 991 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1748 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1765 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1793 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 249: - #line 959 "dhcp6_parser.yy" // lalr1.cc:859 - case 259: -#line 985 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 260: ++#line 995 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1756 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1773 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1801 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 261: - #line 988 "dhcp6_parser.yy" // lalr1.cc:859 - case 271: -#line 1014 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 272: ++#line 1024 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1764 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1781 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1809 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 262: - #line 990 "dhcp6_parser.yy" // lalr1.cc:859 - case 272: -#line 1016 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 273: ++#line 1026 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } - #line 1774 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1791 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1819 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 265: - #line 1000 "dhcp6_parser.yy" // lalr1.cc:859 - case 275: -#line 1026 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 276: ++#line 1036 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } - #line 1783 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1800 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1828 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 266: - #line 1008 "dhcp6_parser.yy" // lalr1.cc:859 - case 276: -#line 1034 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 277: ++#line 1044 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } - #line 1794 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1811 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1839 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 267: - #line 1013 "dhcp6_parser.yy" // lalr1.cc:859 - case 277: -#line 1039 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 278: ++#line 1049 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1803 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1820 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1848 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 272: - #line 1028 "dhcp6_parser.yy" // lalr1.cc:859 - case 282: -#line 1054 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 283: ++#line 1064 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1813 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1830 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1858 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 273: - #line 1032 "dhcp6_parser.yy" // lalr1.cc:859 - case 283: -#line 1058 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 284: ++#line 1068 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1821 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1838 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1866 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 274: - #line 1036 "dhcp6_parser.yy" // lalr1.cc:859 - case 284: -#line 1062 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 285: ++#line 1072 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1831 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1848 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1876 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 275: - #line 1040 "dhcp6_parser.yy" // lalr1.cc:859 - case 285: -#line 1066 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 286: ++#line 1076 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1839 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1856 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1884 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 281: - #line 1053 "dhcp6_parser.yy" // lalr1.cc:859 - case 291: -#line 1079 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 292: ++#line 1089 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1847 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1864 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1892 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 282: - #line 1055 "dhcp6_parser.yy" // lalr1.cc:859 - case 292: -#line 1081 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 293: ++#line 1091 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } - #line 1857 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1874 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1902 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 283: - #line 1064 "dhcp6_parser.yy" // lalr1.cc:859 - case 293: -#line 1090 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 294: ++#line 1100 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } - #line 1868 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1885 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1913 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 284: - #line 1069 "dhcp6_parser.yy" // lalr1.cc:859 - case 294: -#line 1095 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 295: ++#line 1105 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1877 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1894 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1922 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 289: - #line 1084 "dhcp6_parser.yy" // lalr1.cc:859 - case 299: -#line 1110 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 300: ++#line 1120 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 1887 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1904 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1932 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 290: - #line 1088 "dhcp6_parser.yy" // lalr1.cc:859 - case 300: -#line 1114 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 301: ++#line 1124 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 1895 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1912 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1940 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 291: - #line 1092 "dhcp6_parser.yy" // lalr1.cc:859 - case 301: -#line 1118 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 302: ++#line 1128 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 1905 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1922 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1950 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 292: - #line 1096 "dhcp6_parser.yy" // lalr1.cc:859 - case 302: -#line 1122 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 303: ++#line 1132 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 1913 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1930 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1958 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 302: - #line 1113 "dhcp6_parser.yy" // lalr1.cc:859 - case 312: -#line 1139 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 313: ++#line 1149 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1921 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1938 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1966 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 303: - #line 1115 "dhcp6_parser.yy" // lalr1.cc:859 - case 313: -#line 1141 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 314: ++#line 1151 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } - #line 1931 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1948 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1976 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 304: - #line 1121 "dhcp6_parser.yy" // lalr1.cc:859 - case 314: -#line 1147 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 315: ++#line 1157 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } - #line 1940 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1957 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1985 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 305: - #line 1126 "dhcp6_parser.yy" // lalr1.cc:859 - case 315: -#line 1152 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 316: ++#line 1162 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 1948 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1965 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 1993 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 306: - #line 1128 "dhcp6_parser.yy" // lalr1.cc:859 - case 316: -#line 1154 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 317: ++#line 1164 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } - #line 1958 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1975 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2003 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 307: - #line 1134 "dhcp6_parser.yy" // lalr1.cc:859 - case 317: -#line 1160 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 318: ++#line 1170 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } - #line 1967 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1984 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2012 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 308: - #line 1139 "dhcp6_parser.yy" // lalr1.cc:859 - case 318: -#line 1165 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 319: ++#line 1175 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } - #line 1976 "dhcp6_parser.cc" // lalr1.cc:859 -#line 1993 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2021 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 309: - #line 1147 "dhcp6_parser.yy" // lalr1.cc:859 - case 319: -#line 1173 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 320: ++#line 1183 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } - #line 1987 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2004 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2032 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 310: - #line 1152 "dhcp6_parser.yy" // lalr1.cc:859 - case 320: -#line 1178 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 321: ++#line 1188 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 1996 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2013 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2041 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 315: - #line 1165 "dhcp6_parser.yy" // lalr1.cc:859 - case 325: -#line 1191 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 326: ++#line 1201 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 2006 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2023 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2051 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 316: - #line 1169 "dhcp6_parser.yy" // lalr1.cc:859 - case 326: -#line 1195 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 327: ++#line 1205 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2014 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2031 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2059 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 317: - #line 1173 "dhcp6_parser.yy" // lalr1.cc:859 - case 327: -#line 1199 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 328: ++#line 1209 "dhcp6_parser.yy" // lalr1.cc:859 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } - #line 2024 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2041 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2069 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 318: - #line 1177 "dhcp6_parser.yy" // lalr1.cc:859 - case 328: -#line 1203 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 329: ++#line 1213 "dhcp6_parser.yy" // lalr1.cc:859 { // parsing completed } - #line 2032 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2049 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2077 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 331: - #line 1200 "dhcp6_parser.yy" // lalr1.cc:859 - case 341: -#line 1226 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 342: ++#line 1236 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } - #line 2043 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2060 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2088 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 332: - #line 1205 "dhcp6_parser.yy" // lalr1.cc:859 - case 342: -#line 1231 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 343: ++#line 1241 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2052 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2069 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2097 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 333: - #line 1210 "dhcp6_parser.yy" // lalr1.cc:859 - case 343: -#line 1236 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 344: ++#line 1246 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } - #line 2063 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2080 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2108 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 334: - #line 1215 "dhcp6_parser.yy" // lalr1.cc:859 - case 344: -#line 1241 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 345: ++#line 1251 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2072 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2089 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2117 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 335: - #line 1220 "dhcp6_parser.yy" // lalr1.cc:859 - case 345: -#line 1246 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 346: ++#line 1256 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2080 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2097 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2125 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 336: - #line 1222 "dhcp6_parser.yy" // lalr1.cc:859 - case 346: -#line 1248 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 347: ++#line 1258 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } - #line 2090 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2107 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2135 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 337: - #line 1228 "dhcp6_parser.yy" // lalr1.cc:859 - case 347: -#line 1254 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 348: ++#line 1264 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2098 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2115 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2143 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 338: - #line 1230 "dhcp6_parser.yy" // lalr1.cc:859 - case 348: -#line 1256 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 349: ++#line 1266 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } - #line 2108 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2125 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2153 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 339: - #line 1236 "dhcp6_parser.yy" // lalr1.cc:859 - case 349: -#line 1262 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 350: ++#line 1272 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2116 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2133 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2161 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 340: - #line 1238 "dhcp6_parser.yy" // lalr1.cc:859 - case 350: -#line 1264 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 351: ++#line 1274 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } - #line 2126 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2143 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2171 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 341: - #line 1244 "dhcp6_parser.yy" // lalr1.cc:859 - case 351: -#line 1270 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 352: ++#line 1280 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } - #line 2137 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2154 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2182 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 342: - #line 1249 "dhcp6_parser.yy" // lalr1.cc:859 - case 352: -#line 1275 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 353: ++#line 1285 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2146 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2163 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2191 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 343: - #line 1257 "dhcp6_parser.yy" // lalr1.cc:859 - case 353: -#line 1283 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 354: ++#line 1293 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } - #line 2157 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2174 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2202 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 344: - #line 1262 "dhcp6_parser.yy" // lalr1.cc:859 - case 354: -#line 1288 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 355: ++#line 1298 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2166 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2183 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2211 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 345: - #line 1267 "dhcp6_parser.yy" // lalr1.cc:859 - case 355: -#line 1293 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 356: ++#line 1303 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2174 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2191 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2219 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 346: - #line 1269 "dhcp6_parser.yy" // lalr1.cc:859 - case 356: -#line 1295 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 357: ++#line 1305 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr ip(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", ip); ctx.leave(); } - #line 2184 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2201 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2229 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 347: - #line 1278 "dhcp6_parser.yy" // lalr1.cc:859 - case 357: -#line 1304 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 358: ++#line 1314 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } - #line 2195 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2212 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2240 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 348: - #line 1283 "dhcp6_parser.yy" // lalr1.cc:859 - case 358: -#line 1309 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 359: ++#line 1319 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2204 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2221 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2249 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 351: - #line 1292 "dhcp6_parser.yy" // lalr1.cc:859 - case 361: -#line 1318 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 362: ++#line 1328 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 2214 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2231 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2259 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 352: - #line 1296 "dhcp6_parser.yy" // lalr1.cc:859 - case 362: -#line 1322 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 363: ++#line 1332 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2222 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2239 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2267 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 362: - #line 1316 "dhcp6_parser.yy" // lalr1.cc:859 - case 372: -#line 1342 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 373: ++#line 1352 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2230 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2247 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2275 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 363: - #line 1318 "dhcp6_parser.yy" // lalr1.cc:859 - case 373: -#line 1344 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 374: ++#line 1354 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } - #line 2240 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2257 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2285 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 364: - #line 1327 "dhcp6_parser.yy" // lalr1.cc:859 - case 374: -#line 1353 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 375: ++#line 1363 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } - #line 2251 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2268 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2296 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 365: - #line 1332 "dhcp6_parser.yy" // lalr1.cc:859 - case 375: -#line 1358 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 376: ++#line 1368 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2260 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2277 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2305 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 375: - #line 1350 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 386: ++#line 1386 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.enter(ctx.DUID_TYPE); +} - #line 2268 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2313 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 376: - #line 1352 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 387: ++#line 1388 "dhcp6_parser.yy" // lalr1.cc:859 + { + ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); + ctx.leave(); +} - #line 2277 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2322 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 377: - #line 1357 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 388: ++#line 1393 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } - #line 2283 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2328 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 378: - #line 1358 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 389: ++#line 1394 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } - #line 2289 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2334 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 379: - #line 1359 "dhcp6_parser.yy" // lalr1.cc:859 - case 385: -#line 1376 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 390: ++#line 1395 "dhcp6_parser.yy" // lalr1.cc:859 + { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } - #line 2295 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2340 "dhcp6_parser.cc" // lalr1.cc:859 + break; + - case 380: - #line 1362 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 391: ++#line 1398 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } - #line 2304 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2286 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2349 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 381: - #line 1367 "dhcp6_parser.yy" // lalr1.cc:859 - case 386: -#line 1381 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 392: ++#line 1403 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2312 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2294 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2357 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 382: - #line 1369 "dhcp6_parser.yy" // lalr1.cc:859 - case 387: -#line 1383 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 393: ++#line 1405 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } - #line 2322 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2304 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2367 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 383: - #line 1375 "dhcp6_parser.yy" // lalr1.cc:859 - case 388: -#line 1389 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 394: ++#line 1411 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } - #line 2331 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2313 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2376 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 384: - #line 1380 "dhcp6_parser.yy" // lalr1.cc:859 - case 389: -#line 1394 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 395: ++#line 1416 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } - #line 2340 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2322 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2385 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 385: - #line 1387 "dhcp6_parser.yy" // lalr1.cc:859 - case 390: -#line 1401 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 396: ++#line 1423 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } - #line 2349 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2331 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2394 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 386: - #line 1394 "dhcp6_parser.yy" // lalr1.cc:859 - case 391: -#line 1408 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 397: ++#line 1430 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } - #line 2360 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2342 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2405 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 387: - #line 1399 "dhcp6_parser.yy" // lalr1.cc:859 - case 392: -#line 1413 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 398: ++#line 1435 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2369 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2351 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2414 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 392: - #line 1412 "dhcp6_parser.yy" // lalr1.cc:859 - case 397: -#line 1426 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 403: ++#line 1448 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2377 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2359 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2422 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 393: - #line 1414 "dhcp6_parser.yy" // lalr1.cc:859 - case 398: -#line 1428 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 404: ++#line 1450 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } - #line 2387 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2369 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2432 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 394: - #line 1420 "dhcp6_parser.yy" // lalr1.cc:859 - case 399: -#line 1434 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 405: ++#line 1456 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2395 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2377 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2440 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 395: - #line 1422 "dhcp6_parser.yy" // lalr1.cc:859 - case 400: -#line 1436 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 406: ++#line 1458 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } - #line 2405 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2387 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2450 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 396: - #line 1430 "dhcp6_parser.yy" // lalr1.cc:859 - case 401: -#line 1444 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 407: ++#line 1466 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.NO_KEYWORD); } - #line 2416 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2398 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2461 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 397: - #line 1435 "dhcp6_parser.yy" // lalr1.cc:859 - case 402: -#line 1449 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 408: ++#line 1471 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2425 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2407 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2470 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 398: - #line 1442 "dhcp6_parser.yy" // lalr1.cc:859 - case 403: -#line 1456 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 409: ++#line 1478 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2433 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2415 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2478 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 399: - #line 1444 "dhcp6_parser.yy" // lalr1.cc:859 - case 404: -#line 1458 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 410: ++#line 1480 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } - #line 2442 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2424 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2487 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 400: - #line 1449 "dhcp6_parser.yy" // lalr1.cc:859 - case 405: -#line 1463 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 411: ++#line 1485 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2450 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2432 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2495 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 401: - #line 1451 "dhcp6_parser.yy" // lalr1.cc:859 - case 406: -#line 1465 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 412: ++#line 1487 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } - #line 2459 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2441 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2504 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 402: - #line 1461 "dhcp6_parser.yy" // lalr1.cc:859 - case 407: -#line 1475 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 413: ++#line 1497 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } - #line 2470 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2452 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2515 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 403: - #line 1466 "dhcp6_parser.yy" // lalr1.cc:859 - case 408: -#line 1480 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 414: ++#line 1502 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2479 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2461 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2524 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 407: - #line 1483 "dhcp6_parser.yy" // lalr1.cc:859 - case 412: -#line 1497 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 418: ++#line 1519 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } - #line 2490 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2472 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2535 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 408: - #line 1488 "dhcp6_parser.yy" // lalr1.cc:859 - case 413: -#line 1502 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 419: ++#line 1524 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2499 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2481 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2544 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 411: - #line 1500 "dhcp6_parser.yy" // lalr1.cc:859 - case 416: -#line 1514 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 422: ++#line 1536 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } - #line 2509 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2491 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2554 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 412: - #line 1504 "dhcp6_parser.yy" // lalr1.cc:859 - case 417: -#line 1518 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 423: ++#line 1540 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2517 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2499 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2562 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 420: - #line 1519 "dhcp6_parser.yy" // lalr1.cc:859 - case 425: -#line 1533 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 431: ++#line 1555 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } - #line 2526 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2508 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2571 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 421: - #line 1523 "dhcp6_parser.yy" // lalr1.cc:859 - case 426: -#line 1537 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 432: ++#line 1559 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2534 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2516 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2579 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 422: - #line 1525 "dhcp6_parser.yy" // lalr1.cc:859 - case 427: -#line 1539 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 433: ++#line 1561 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } - #line 2544 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2526 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2589 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 423: - #line 1531 "dhcp6_parser.yy" // lalr1.cc:859 - case 428: -#line 1545 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 434: ++#line 1567 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } - #line 2555 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2537 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2600 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 424: - #line 1536 "dhcp6_parser.yy" // lalr1.cc:859 - case 429: -#line 1550 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 435: ++#line 1572 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); ctx.leave(); } - #line 2564 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2546 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2609 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 427: - #line 1545 "dhcp6_parser.yy" // lalr1.cc:859 - case 432: -#line 1559 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 438: ++#line 1581 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } - #line 2574 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2556 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2619 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 428: - #line 1549 "dhcp6_parser.yy" // lalr1.cc:859 - case 433: -#line 1563 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 439: ++#line 1585 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.stack_.pop_back(); } - #line 2582 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2564 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2627 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 431: - #line 1557 "dhcp6_parser.yy" // lalr1.cc:859 - case 436: -#line 1571 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 442: ++#line 1593 "dhcp6_parser.yy" // lalr1.cc:859 { ctx.enter(ctx.NO_KEYWORD); } - #line 2590 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2572 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2635 "dhcp6_parser.cc" // lalr1.cc:859 break; - case 432: - #line 1559 "dhcp6_parser.yy" // lalr1.cc:859 - case 437: -#line 1573 "dhcp6_parser.yy" // lalr1.cc:859 ++ case 443: ++#line 1595 "dhcp6_parser.yy" // lalr1.cc:859 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } - #line 2600 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2582 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2645 "dhcp6_parser.cc" // lalr1.cc:859 break; - #line 2604 "dhcp6_parser.cc" // lalr1.cc:859 -#line 2586 "dhcp6_parser.cc" // lalr1.cc:859 ++#line 2649 "dhcp6_parser.cc" // lalr1.cc:859 default: break; } @@@ -2862,79 -2844,80 +2907,81 @@@ const short int Dhcp6Parser::yypact_[] = { - 89, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 31, 21, 22, 57, 66, 92, 121, 134, - 154, 203, 207, 216, -427, -427, -427, -427, -427, -427, - 183, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, 35, 22, 52, 63, 93, 103, 119, 134, - 158, 177, 186, 188, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, 22, -53, 16, 70, - 65, 15, 28, 62, 27, 127, 81, -34, -428, 141, - 215, 176, 225, 231, -428, -428, -428, -428, 232, -428, - 33, -428, -428, -428, -428, -428, -428, -428, -428, 233, - 235, 236, 237, 238, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, 240, -428, -428, -428, 77, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, 239, -428, -428, -428, -428, -428, -428, 246, - 247, -428, -428, -428, -428, -428, -428, -428, -428, -428, - 137, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, 140, -428, -428, - -428, 254, -428, 255, 257, -428, -428, 146, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, 256, 262, -428, -428, -428, -428, -428, -428, - -428, -428, -428, 264, -428, -428, -428, 265, -428, -428, - -428, 258, 267, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, 268, -428, -428, -428, -428, 263, - 270, -428, -428, -428, -428, -428, -428, -428, -428, -428, - 150, -428, -428, -428, -428, 22, 22, -428, 170, 284, - 285, 286, 287, -428, 16, -428, 288, 289, 290, 189, - 190, 192, 193, 194, 293, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 206, 306, 307, 70, -428, 309, - -428, 45, 310, 311, 312, 313, 314, 213, 216, 316, - 317, 318, 319, 15, -428, 321, 28, -428, 322, 223, - 323, 226, 227, 62, -428, 324, 326, 327, 330, 331, - 332, -428, 27, 333, 336, 241, 337, 338, 339, 242, - -428, 127, 340, 243, -428, 81, 341, 342, -25, -428, - -428, -428, 344, 347, 348, 22, 22, -428, 349, 350, - 351, -428, -428, -428, -428, -428, 356, 357, 358, 359, - 360, 361, 362, 363, 365, 366, -428, 367, 368, -428, - 360, -428, -428, -428, -428, 370, 346, -428, -428, -428, - 364, 371, 274, 275, 276, -428, -428, 277, 278, 379, - 380, -428, 281, -428, 283, -428, 291, -428, -428, -428, - 360, 360, 360, 292, 294, 295, -428, 296, 308, -428, - 315, 320, 325, -428, -428, 328, -428, -428, 329, 22, - -428, 22, 70, 334, -428, -428, 65, 30, 30, 382, - 383, 384, -29, -428, -428, 7, 21, 385, 128, 39, - 90, -53, -428, 389, -428, 45, 387, 388, -428, -428, - -428, -428, -428, 391, 343, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, 153, -428, 163, -428, -428, 394, -428, - -428, -428, 399, 400, 401, -428, 169, -428, -428, -428, - -428, -428, -428, -428, -428, -428, 173, -428, 403, 404, - -428, -428, 405, 407, -428, -428, 409, 413, -428, -428, - -428, 131, -428, -428, -428, 22, -428, -428, 191, -428, - -428, -428, 205, -428, 411, 415, -428, 402, 418, 419, - 420, 422, 423, 179, -428, -428, -428, -428, -428, -428, - -428, -428, 424, 425, 427, -428, -428, -428, 180, -428, - -428, -428, -428, -428, -428, -428, 201, -428, -428, -428, - 202, 335, -428, -428, 426, 416, -428, -428, 429, 433, - -428, -428, 431, 435, -428, -428, 434, -428, 437, 334, - -428, -428, 439, 440, 441, 345, 352, 353, 30, -428, - -428, 15, -428, 382, 127, -428, 383, 81, -428, 384, - -29, -428, 442, 7, -428, 21, -428, -34, -428, 385, - 354, 369, 372, 373, 374, 375, 128, -428, 443, 376, - 377, 378, 39, -428, 445, 446, 90, -428, -428, -428, - 28, -428, 387, 62, -428, 388, 27, -428, 391, 447, - -428, 449, -428, 381, 386, 390, -428, -428, -428, -428, - 204, -428, 438, -428, 444, -428, -428, -428, -428, -428, - 211, -428, -428, -428, -428, -428, -428, -428, -428, 392, - -428, -428, -428, -428, 393, 395, -428, 212, -428, 214, - -428, 448, -428, 396, 432, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - 222, -428, 101, 432, -428, -428, 451, -428, -428, -428, - 218, -428, -428, -428, -428, -428, 453, 397, 455, 101, - -428, 457, -428, 406, -428, 456, -428, -428, 224, -428, - 398, 456, -428, -428, 221, -428, -428, 460, 398, -428, - 410, -428, -428 ++ 107, -427, -427, -427, -427, -427, -427, -427, -427, -427, ++ -427, -427, 29, 21, 32, 56, 58, 60, 67, 71, ++ 73, 83, 103, 108, -427, -427, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, 21, 72, 11, 64, - 164, 12, -7, 38, 43, 117, 125, 29, -427, 223, - 221, 228, 227, 230, -427, -427, -427, -427, 232, -427, - 30, -427, -427, -427, -427, -427, -427, -427, -427, 234, - 239, 242, 245, 246, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, 253, -427, -427, -427, 48, -427, ++ -427, -427, -427, -427, -427, -427, 21, -56, 12, 59, ++ 42, 11, -8, 95, 93, 61, 72, 50, -427, 117, ++ 124, 129, 134, 148, -427, -427, -427, -427, 153, -427, ++ 45, -427, -427, -427, -427, -427, -427, -427, -427, 196, ++ 198, 237, 245, 246, -427, -427, -427, -427, -427, -427, ++ -427, -427, -427, -427, 265, -427, -427, -427, 47, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 250, -427, -427, -427, -427, -427, -427, 256, - 259, -427, -427, -427, -427, -427, -427, -427, -427, -427, - 119, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, -427, 136, -427, -427, - -427, 260, -427, 261, 263, -427, -427, 167, -427, -427, ++ -427, -427, 217, -427, -427, -427, -427, -427, -427, 266, ++ 267, -427, -427, -427, -427, -427, -427, -427, -427, -427, ++ 63, -427, -427, -427, -427, -427, -427, -427, -427, -427, ++ -427, -427, -427, -427, -427, -427, -427, 118, -427, -427, ++ -427, 268, -427, 270, 272, -427, -427, 138, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 262, 265, -427, -427, -427, -427, -427, -427, - -427, -427, -427, 267, -427, -427, -427, 268, -427, -427, - 266, 273, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, 274, -427, -427, -427, -427, 269, 276, - -427, -427, -427, -427, -427, -427, -427, -427, -427, 169, - -427, -427, -427, -427, 21, 21, -427, 178, 277, 278, - 279, 280, -427, 11, -427, 281, 282, 283, 166, 185, - 186, 187, 192, 287, 288, 289, 290, 292, 293, 294, - 295, 296, 297, 202, 298, 299, 64, -427, 300, -427, - 10, 302, 303, 304, 305, 306, 211, 206, 308, 309, - 311, 312, 12, -427, 313, -7, -427, 314, 219, 315, - 220, 222, 38, -427, 316, 317, 320, 322, 323, 324, - -427, 43, 325, 326, 229, 327, 329, 330, 231, -427, - 117, 331, 235, -427, 125, 335, 337, -13, -427, -427, - -427, 338, 336, 339, 21, 21, -427, 340, 341, 342, - -427, -427, -427, -427, -427, 345, 348, 349, 350, 351, - 352, 355, 356, 357, 358, -427, 359, 360, -427, 351, - -427, -427, -427, -427, 354, 365, -427, -427, -427, 366, - 367, 243, 271, 272, -427, -427, 275, 284, 370, 371, - -427, 285, -427, 286, -427, 291, -427, -427, -427, 351, - 351, 351, 301, 307, 310, -427, 318, 319, -427, 321, - 328, 332, -427, -427, 333, -427, -427, 334, 21, -427, - 21, 64, 343, -427, -427, 164, 27, 27, 372, 373, - 374, -34, -427, -427, 23, 58, 375, 344, 34, 40, - 72, -427, 379, -427, 10, 378, 382, -427, -427, -427, - -427, -427, 383, 353, -427, -427, -427, -427, -427, -427, ++ -427, -427, 250, 274, -427, -427, -427, -427, -427, -427, ++ -427, -427, -427, 275, -427, -427, -427, 276, -427, -427, ++ 273, 279, -427, -427, -427, -427, -427, -427, -427, -427, ++ -427, -427, -427, 280, -427, -427, -427, -427, 277, 283, ++ -427, -427, -427, -427, -427, -427, -427, -427, -427, 156, ++ -427, -427, -427, -427, 21, 21, -427, 170, 284, 285, ++ 286, 287, -427, 12, -427, 288, 289, 290, 174, 187, ++ 192, 193, 194, 291, 293, 294, 295, 296, 300, 301, ++ 302, 303, 304, 200, 306, 307, 59, -427, 308, -427, ++ 8, 309, 310, 311, 312, 313, 209, 176, 315, 316, ++ 317, 318, 11, -427, 319, -8, -427, 320, 216, 322, ++ 218, 219, 95, -427, 325, 326, 327, 328, 329, 330, ++ -427, 93, 331, 332, 231, 335, 337, 338, 234, -427, ++ 61, 339, 235, -427, 72, 340, 343, 82, -427, -427, ++ -427, 344, 342, 346, 21, 21, -427, 347, 348, 349, ++ -427, -427, -427, -427, -427, 345, 352, 355, 356, 357, ++ 358, 359, 360, 361, 364, -427, 365, 366, -427, 357, ++ -427, -427, -427, -427, 367, 363, -427, -427, -427, 362, ++ 369, 269, 271, 278, -427, -427, 281, 282, 373, 374, ++ -427, 292, -427, 297, -427, 298, -427, -427, -427, 357, ++ 357, 357, 299, 314, 321, -427, 323, 324, -427, 333, ++ 334, 336, -427, -427, 341, -427, -427, 350, 21, -427, ++ 21, 59, 305, -427, -427, 42, 26, 26, 375, 376, ++ 378, -29, -427, -427, 123, 20, 380, 146, 80, 181, ++ -56, -427, 384, -427, 8, 385, 386, -427, -427, -427, ++ -427, -427, 387, 351, -427, -427, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 188, -427, 189, -427, -427, 384, -427, -427, - -427, -427, 387, 390, 391, -427, 190, -427, -427, -427, - -427, -427, -427, -427, -427, -427, 191, -427, 392, 393, - -427, -427, 394, 396, -427, -427, 395, 399, -427, -427, - -427, 68, -427, -427, -427, 21, -427, -427, 132, -427, - -427, -427, 145, -427, 398, 402, -427, 403, 197, -427, - -427, -427, 404, 406, 410, -427, -427, 198, -427, -427, - -427, -427, -427, -427, -427, -427, 199, -427, -427, -427, - 200, 346, -427, -427, 400, 412, -427, -427, 411, 413, - -427, -427, 416, 421, -427, -427, 389, -427, 415, 343, - -427, -427, 422, 424, 425, 427, 258, 241, 347, 27, - -427, -427, 12, -427, 372, 117, -427, 373, 125, -427, - 374, -34, -427, 419, 23, -427, 58, -427, 29, -427, - 375, 361, 344, -427, 428, 429, 362, 363, 364, 34, - -427, 433, 434, 40, -427, -427, -427, -7, -427, 378, - 38, -427, 382, 43, -427, 383, 435, -427, 436, -427, - 368, 369, 376, 377, -427, -427, -427, -427, 201, -427, - 432, -427, 437, -427, -427, -427, -427, -427, 208, -427, - -427, -427, 168, 380, -427, -427, -427, -427, 381, 385, - -427, 209, -427, 210, -427, 439, -427, 386, 442, -427, ++ -427, -427, 163, -427, 171, -427, -427, 372, -427, -427, ++ -427, -427, 392, 393, 394, -427, 175, -427, -427, -427, ++ -427, -427, -427, -427, -427, -427, 178, -427, 395, 388, ++ -427, -427, 396, 400, -427, -427, 398, 405, -427, -427, ++ -427, 86, -427, -427, -427, 21, -427, -427, 162, -427, ++ -427, -427, 233, -427, 403, 407, -427, 408, 410, 411, ++ 413, 414, 415, 188, -427, -427, -427, -427, -427, -427, ++ -427, -427, -427, 416, 417, 419, -427, -427, 189, -427, ++ -427, -427, -427, -427, -427, -427, -427, 190, -427, -427, ++ -427, 191, 353, -427, -427, 418, 422, -427, -427, 420, ++ 424, -427, -427, 427, 425, -427, -427, 391, -427, 426, ++ 305, -427, -427, 430, 431, 432, 433, 354, 368, 370, ++ 26, -427, -427, 11, -427, 375, 61, -427, 376, 72, ++ -427, 378, -29, -427, 434, 123, -427, 20, -427, 50, ++ -427, 380, 371, 377, 379, 381, 382, 383, 146, -427, ++ 435, 439, 389, 390, 397, 80, -427, 441, 442, 181, ++ -427, -427, -427, -8, -427, 385, 95, -427, 386, 93, ++ -427, 387, 443, -427, 445, -427, 399, 401, 402, 404, ++ -427, -427, -427, -427, 220, -427, 440, -427, 444, -427, ++ -427, -427, -427, -427, 221, -427, -427, -427, -427, -427, ++ -427, -427, -427, 186, 406, -427, -427, -427, -427, 409, ++ 412, -427, 223, -427, 224, -427, 446, -427, 421, 448, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, -427, -427, -427, 157, - -427, 77, 442, -427, -427, 438, -427, -427, -427, 217, - -427, -427, -427, -427, -427, 440, 388, 446, 77, -427, - 448, -427, 397, -427, 444, -427, -427, 225, -427, 407, - 444, -427, -427, 218, -427, -427, 450, 407, -427, 401, - -427, -427 ++ -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, ++ 240, -427, 79, 448, -427, -427, 447, -427, -427, -427, ++ 230, -427, -427, -427, -427, -427, 449, 423, 452, 79, ++ -427, 454, -427, 428, -427, 450, -427, -427, 254, -427, ++ 429, 450, -427, -427, 232, -427, -427, 456, 429, -427, ++ 436, -427, -427 }; const unsigned short int @@@ -2944,108 -2927,109 +2991,111 @@@ 20, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 38, 32, 28, 27, 24, 25, 26, 31, 3, 29, 30, 47, 5, 58, 7, - 91, 9, 172, 11, 274, 13, 291, 15, 317, 17, - 213, 19, 248, 21, 148, 23, 42, 34, 0, 0, - 0, 0, 0, 0, 319, 215, 250, 0, 44, 0, - 43, 0, 0, 35, 56, 402, 398, 400, 0, 55, - 91, 9, 183, 11, 284, 13, 301, 15, 327, 17, - 224, 19, 258, 21, 148, 23, 42, 34, 0, 0, - 0, 0, 0, 0, 329, 226, 260, 0, 44, 0, - 43, 0, 0, 35, 56, 407, 403, 405, 0, 55, ++ 91, 9, 183, 11, 285, 13, 302, 15, 328, 17, ++ 224, 19, 259, 21, 148, 23, 42, 34, 0, 0, ++ 0, 0, 0, 0, 330, 226, 261, 0, 44, 0, ++ 43, 0, 0, 35, 56, 413, 409, 411, 0, 55, 0, 49, 51, 53, 54, 52, 89, 95, 97, 0, - 0, 0, 0, 0, 164, 205, 240, 123, 138, 131, - 347, 140, 159, 364, 0, 386, 396, 83, 0, 60, - 0, 0, 0, 0, 175, 216, 250, 123, 138, 131, - 357, 140, 159, 374, 0, 391, 401, 83, 0, 60, ++ 0, 0, 0, 0, 175, 216, 251, 123, 138, 131, ++ 358, 140, 159, 375, 0, 397, 407, 83, 0, 60, 62, 63, 64, 65, 66, 68, 69, 70, 71, 73, 72, 77, 78, 67, 75, 76, 74, 79, 80, 81, - 82, 93, 0, 351, 266, 283, 193, 195, 197, 0, - 0, 201, 199, 309, 343, 192, 176, 177, 178, 179, - 0, 174, 183, 184, 185, 188, 190, 186, 187, 180, - 181, 182, 189, 191, 281, 280, 279, 0, 276, 278, - 302, 0, 305, 0, 0, 301, 298, 0, 293, 295, - 296, 299, 300, 297, 341, 331, 333, 335, 337, 339, - 330, 329, 0, 320, 321, 325, 326, 323, 327, 328, - 324, 230, 118, 0, 234, 232, 237, 0, 226, 227, - 0, 216, 217, 219, 229, 220, 221, 222, 236, 223, - 224, 225, 261, 0, 259, 260, 263, 264, 0, 251, - 252, 254, 255, 256, 257, 258, 155, 157, 152, 0, - 82, 93, 0, 361, 276, 293, 204, 206, 208, 0, - 0, 212, 210, 319, 353, 203, 187, 188, 189, 190, ++ 82, 93, 0, 362, 277, 294, 204, 206, 208, 0, ++ 0, 212, 210, 320, 354, 203, 187, 188, 189, 190, + 0, 185, 194, 195, 196, 199, 201, 197, 198, 191, - 192, 193, 200, 202, 291, 290, 289, 0, 286, 288, - 312, 0, 315, 0, 0, 311, 308, 0, 303, 305, - 306, 309, 310, 307, 351, 341, 343, 345, 347, 349, - 340, 339, 0, 330, 331, 335, 336, 333, 337, 338, - 334, 110, 118, 0, 244, 242, 247, 0, 237, 241, - 238, 0, 227, 228, 230, 240, 231, 232, 233, 246, - 234, 235, 236, 271, 0, 269, 270, 273, 274, 0, - 261, 262, 264, 265, 266, 267, 268, 155, 157, 152, - 0, 150, 153, 154, 39, 0, 0, 33, 0, 0, - 0, 0, 0, 46, 0, 48, 0, 0, 0, 0, ++ 192, 193, 200, 202, 292, 291, 290, 0, 287, 289, ++ 313, 0, 316, 0, 0, 312, 309, 0, 304, 306, ++ 307, 310, 311, 308, 352, 342, 344, 346, 348, 350, ++ 341, 340, 0, 331, 332, 336, 337, 334, 338, 339, ++ 335, 241, 118, 0, 245, 243, 248, 0, 237, 238, ++ 0, 227, 228, 230, 240, 231, 232, 233, 247, 234, ++ 235, 236, 272, 0, 270, 271, 274, 275, 0, 262, ++ 263, 265, 266, 267, 268, 269, 155, 157, 152, 0, + 150, 153, 154, 39, 0, 0, 33, 0, 0, 0, + 0, 0, 46, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, - 92, 363, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 184, 0, 0, 285, 0, 0, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 0, 0, 259, 0, 0, 0, 0, 149, - 45, 36, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 84, 85, 86, 87, 88, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 390, 0, 0, 61, - 0, 372, 370, 371, 369, 0, 364, 365, 367, 368, - 0, 0, 0, 0, 0, 214, 215, 0, 0, 0, - 0, 186, 0, 287, 0, 314, 0, 317, 318, 304, - 0, 0, 0, 0, 0, 0, 332, 0, 0, 239, - 0, 0, 0, 249, 229, 0, 275, 263, 0, 0, - 151, 0, 0, 0, 404, 406, 0, 0, 0, 177, - 218, 252, 0, 40, 139, 0, 0, 142, 0, 0, - 0, 0, 94, 0, 362, 0, 278, 295, 205, 207, - 209, 213, 211, 321, 0, 292, 313, 316, 352, 342, - 344, 346, 348, 350, 111, 119, 245, 243, 248, 272, - 156, 158, 37, 0, 412, 0, 409, 411, 0, 112, + 0, 0, 0, 0, 0, 0, 0, 59, 0, 92, - 353, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 173, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 0, 0, 214, - 0, 0, 0, 249, 0, 0, 0, 0, 149, 45, ++ 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 184, 0, 0, 286, 0, 0, 0, ++ 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, ++ 329, 0, 0, 0, 0, 0, 0, 0, 0, 225, ++ 0, 0, 0, 260, 0, 0, 0, 0, 149, 45, + 36, 0, 0, 0, 0, 0, 50, 0, 0, 0, + 84, 85, 86, 87, 88, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 385, 0, 0, 61, 0, - 362, 360, 361, 359, 0, 354, 355, 357, 358, 0, - 0, 0, 0, 0, 203, 204, 0, 0, 0, 0, - 175, 0, 277, 0, 304, 0, 307, 308, 294, 0, - 0, 0, 0, 0, 0, 322, 0, 0, 228, 0, - 0, 0, 239, 218, 0, 265, 253, 0, 0, 151, - 0, 0, 0, 399, 401, 0, 0, 0, 166, 207, - 242, 0, 40, 139, 0, 0, 142, 0, 0, 0, - 0, 94, 0, 352, 0, 268, 285, 194, 196, 198, - 202, 200, 311, 0, 282, 303, 306, 342, 332, 334, - 336, 338, 340, 231, 119, 235, 233, 238, 262, 156, - 158, 37, 0, 407, 0, 404, 406, 0, 110, 112, ++ 0, 0, 0, 0, 0, 396, 0, 0, 61, 0, ++ 373, 371, 372, 370, 0, 365, 366, 368, 369, 0, ++ 0, 0, 0, 0, 214, 215, 0, 0, 0, 0, ++ 186, 0, 288, 0, 315, 0, 318, 319, 305, 0, ++ 0, 0, 0, 0, 0, 333, 0, 0, 239, 0, ++ 0, 0, 250, 229, 0, 276, 264, 0, 0, 151, ++ 0, 0, 0, 410, 412, 0, 0, 0, 177, 218, ++ 253, 0, 40, 139, 0, 0, 142, 0, 0, 0, ++ 0, 94, 0, 363, 0, 279, 296, 205, 207, 209, ++ 213, 211, 322, 0, 293, 314, 317, 353, 343, 345, ++ 347, 349, 351, 242, 119, 246, 244, 249, 273, 156, ++ 158, 37, 0, 418, 0, 415, 417, 0, 110, 112, 114, 116, 0, 0, 0, 109, 0, 99, 101, 102, - 103, 104, 105, 106, 107, 108, 0, 170, 0, 167, - 168, 211, 0, 208, 209, 246, 0, 243, 244, 129, + 103, 104, 105, 106, 107, 108, 0, 181, 0, 178, - 179, 222, 0, 219, 220, 256, 0, 253, 254, 129, ++ 179, 222, 0, 219, 220, 257, 0, 254, 255, 129, 130, 0, 125, 127, 128, 42, 137, 135, 0, 133, - 136, 349, 0, 146, 0, 143, 144, 0, 0, 161, - 375, 381, 0, 0, 0, 374, 373, 0, 366, 368, - 371, 369, 370, 372, 392, 394, 0, 388, 390, 391, - 0, 0, 356, 272, 0, 269, 270, 289, 0, 286, - 287, 315, 0, 312, 313, 345, 0, 57, 0, 0, - 403, 90, 0, 0, 0, 0, 0, 0, 0, 0, - 96, 98, 0, 165, 0, 215, 206, 0, 250, 241, - 0, 0, 124, 0, 0, 132, 0, 348, 0, 141, - 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, - 365, 0, 0, 0, 387, 397, 363, 0, 267, 0, - 0, 284, 0, 319, 310, 0, 0, 344, 0, 405, - 0, 0, 0, 0, 120, 121, 122, 100, 0, 169, - 0, 210, 0, 245, 126, 41, 134, 350, 0, 145, - 163, 162, 0, 0, 380, 383, 384, 367, 0, 0, - 389, 0, 271, 0, 288, 0, 314, 0, 0, 111, - 113, 115, 117, 171, 212, 247, 147, 377, 378, 379, - 376, 382, 393, 395, 273, 290, 316, 346, 411, 0, - 409, 0, 0, 408, 423, 0, 421, 419, 415, 0, - 413, 417, 418, 416, 410, 0, 0, 0, 0, 412, - 0, 420, 0, 414, 0, 422, 427, 0, 425, 0, - 0, 424, 431, 0, 429, 426, 0, 0, 428, 0, - 430, 432 - 136, 359, 0, 146, 0, 143, 144, 0, 0, 0, ++ 136, 360, 0, 146, 0, 143, 144, 0, 0, 0, + 0, 0, 0, 0, 161, 163, 164, 165, 166, 167, - 168, 386, 0, 0, 0, 384, 378, 383, 0, 376, - 381, 379, 380, 382, 397, 399, 0, 393, 395, 396, - 0, 0, 366, 282, 0, 279, 280, 299, 0, 296, - 297, 325, 0, 322, 323, 355, 0, 57, 0, 0, - 408, 90, 0, 0, 0, 0, 0, 0, 0, 96, - 98, 0, 176, 0, 226, 217, 0, 260, 251, 0, - 0, 124, 0, 0, 132, 0, 358, 0, 141, 0, - 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, - 0, 0, 0, 375, 0, 0, 0, 392, 402, 373, - 0, 277, 0, 0, 294, 0, 329, 320, 0, 0, - 354, 0, 410, 0, 0, 0, 120, 121, 122, 100, - 0, 180, 0, 221, 0, 255, 126, 41, 134, 360, - 0, 145, 169, 170, 171, 172, 173, 174, 162, 0, - 385, 388, 389, 377, 0, 0, 394, 0, 281, 0, - 298, 0, 324, 0, 0, 113, 115, 117, 182, 223, - 257, 147, 387, 398, 400, 283, 300, 326, 356, 416, - 0, 414, 0, 0, 413, 428, 0, 426, 424, 420, - 0, 418, 422, 423, 421, 415, 0, 0, 0, 0, - 417, 0, 425, 0, 419, 0, 427, 432, 0, 430, - 0, 0, 429, 436, 0, 434, 431, 0, 0, 433, - 0, 435, 437 ++ 168, 386, 392, 0, 0, 0, 385, 384, 0, 377, ++ 379, 382, 380, 381, 383, 403, 405, 0, 399, 401, ++ 402, 0, 0, 367, 283, 0, 280, 281, 300, 0, ++ 297, 298, 326, 0, 323, 324, 356, 0, 57, 0, ++ 0, 414, 90, 0, 0, 0, 0, 0, 0, 0, ++ 0, 96, 98, 0, 176, 0, 226, 217, 0, 261, ++ 252, 0, 0, 124, 0, 0, 132, 0, 359, 0, ++ 141, 0, 0, 0, 0, 0, 0, 0, 0, 160, ++ 0, 0, 0, 0, 0, 0, 376, 0, 0, 0, ++ 398, 408, 374, 0, 278, 0, 0, 295, 0, 330, ++ 321, 0, 0, 355, 0, 416, 0, 0, 0, 0, ++ 120, 121, 122, 100, 0, 180, 0, 221, 0, 256, ++ 126, 41, 134, 361, 0, 145, 169, 170, 171, 172, ++ 173, 174, 162, 0, 0, 391, 394, 395, 378, 0, ++ 0, 400, 0, 282, 0, 299, 0, 325, 0, 0, ++ 111, 113, 115, 117, 182, 223, 258, 147, 388, 389, ++ 390, 387, 393, 404, 406, 284, 301, 327, 357, 422, ++ 0, 420, 0, 0, 419, 434, 0, 432, 430, 426, ++ 0, 424, 428, 429, 427, 421, 0, 0, 0, 0, ++ 423, 0, 431, 0, 425, 0, 433, 438, 0, 436, ++ 0, 0, 435, 442, 0, 440, 437, 0, 0, 439, ++ 0, 441, 443 }; const short int Dhcp6Parser::yypgoto_[] = { - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, 3, -428, -428, -428, -428, 34, -428, - -428, -222, -428, -39, -428, -58, -428, -428, -428, 217, - -428, -428, -428, -428, 55, 195, -41, -38, -37, -36, - -428, -428, -428, -428, -428, 53, -428, -428, -428, -428, - -428, 50, -108, -399, -428, -428, -428, -428, -428, -428, - -428, -65, -428, -427, -428, -428, -428, -428, -428, -117, - -415, -428, -428, -428, -428, -119, -428, -428, -428, -428, - -428, -428, -428, -123, -428, -428, -428, -120, 157, -428, - -428, -428, -428, -428, -428, -428, -118, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -94, -428, -428, - -428, -91, 199, -428, -428, -428, -428, -428, -428, -405, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -93, - -428, -428, -428, -90, -428, 175, -428, -51, -428, -428, - -428, -428, -49, -428, -428, -428, -428, -428, -50, -428, - -428, -428, -87, -428, -428, -428, -88, -428, 181, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -115, - -428, -428, -428, -116, 209, -428, -428, -428, -428, -428, - -428, -113, -428, -428, -428, -114, 207, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -112, -428, - -428, -428, -109, -428, 196, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, 79, -428, -428, - -428, -428, -428, -428, -85, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -98, -428, -428, -428, -428, -428, - -428, -428, -428, -428, -428, -428, -428, -428, -48, -428, - -428, -428, -174, -428, -428, -185, -428, -428, -428, -428, - -428, -428, -196, -428, -428, -200, -428 + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, 3, -427, -427, -427, -427, 13, -427, - -427, -222, -427, -48, -427, -58, -427, -427, -427, 205, - -427, -427, -427, -427, 44, 180, -41, -38, -37, -36, - -427, -427, -427, -427, -427, 45, -427, -427, -427, -427, - -427, 42, -108, -427, -427, -427, -427, -427, -427, -427, - -427, -65, -427, -426, -427, -427, -427, -427, -427, -119, - -406, -427, -427, -427, -427, -121, -427, -427, -427, -427, - -427, -427, -427, -122, -427, -427, -427, -116, 142, -427, - -427, -427, -427, -427, -427, -427, -118, -427, -427, -427, - -427, -101, -427, -427, -427, -97, 184, -427, -427, -427, - -427, -427, -427, -415, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -100, -427, -427, -427, -95, -427, 161, - -427, -51, -427, -427, -427, -427, -427, -49, -427, -427, - -427, -427, -427, -50, -427, -427, -427, -96, -427, -427, - -427, -93, -427, 162, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -120, -427, -427, -427, -117, 212, - -427, -427, -427, -427, -427, -427, -115, -427, -427, -427, - -114, 193, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -123, -427, -427, -427, -113, -427, 183, ++ -427, -427, -427, 3, -427, -427, -427, -427, 33, -427, ++ -427, -214, -427, -67, -427, -58, -427, -427, -427, 211, ++ -427, -427, -427, -427, 51, 195, -41, -38, -37, -36, ++ -427, -427, -427, -427, -427, 52, -427, -427, -427, -427, ++ -427, 49, -112, -427, -427, -427, -427, -427, -427, -427, ++ -427, -65, -427, -426, -427, -427, -427, -427, -427, -123, ++ -405, -427, -427, -427, -427, -125, -427, -427, -427, -427, ++ -427, -427, -427, -129, -427, -427, -427, -126, 147, -427, ++ -427, -427, -427, -427, -427, -427, -133, -427, -427, -427, ++ -427, -427, -427, -427, -427, -427, -427, -109, -427, -427, ++ -427, -105, 197, -427, -427, -427, -427, -427, -427, -415, ++ -427, -427, -427, -427, -427, -427, -427, -427, -427, -106, ++ -427, -427, -427, -107, -427, 164, -427, -51, -427, -427, ++ -427, -427, -427, -49, -427, -427, -427, -427, -427, -50, ++ -427, -427, -427, -108, -427, -427, -427, -104, -427, 169, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, ++ -138, -427, -427, -427, -128, 199, -427, -427, -427, -427, ++ -427, -427, -132, -427, -427, -427, -124, 201, -427, -427, ++ -427, -427, -427, -427, -427, -427, -427, -427, -427, -134, ++ -427, -427, -427, -121, -427, 202, -427, -427, -427, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, 67, -427, -427, -427, -427, -427, -427, -94, ++ -427, -427, -427, -427, -427, -427, -427, -427, 66, -427, ++ -427, -427, -427, -427, -427, -114, -427, -427, -427, -427, ++ -427, -427, -427, -427, -427, -427, -427, -427, -115, -427, + -427, -427, -427, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -105, -427, -427, -427, -427, -427, -427, -427, - -427, -427, -427, -427, -427, -427, -57, -427, -427, -427, - -176, -427, -427, -190, -427, -427, -427, -427, -427, -427, - -201, -427, -427, -207, -427 ++ -427, -427, -59, -427, -427, -427, -198, -427, -427, -203, ++ -427, -427, -427, -427, -427, -427, -213, -427, -427, -219, ++ -427 }; const short int @@@ -3053,299 -3037,302 +3103,307 @@@ { -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 68, 33, 34, 57, 72, 73, 35, - 56, 424, 505, 69, 70, 107, 37, 58, 80, 81, - 82, 249, 39, 59, 108, 109, 110, 111, 112, 113, - 114, 115, 256, 41, 60, 132, 279, 116, 257, 117, - 258, 476, 477, 209, 313, 479, 572, 480, 573, 481, - 574, 210, 314, 483, 484, 485, 118, 267, 501, 502, - 503, 504, 119, 269, 508, 509, 510, 120, 268, 121, - 271, 514, 515, 516, 597, 55, 67, 240, 241, 242, - 326, 243, 327, 122, 272, 523, 524, 525, 526, 527, - 528, 529, 530, 123, 264, 488, 489, 490, 581, 43, - 61, 150, 151, 152, 284, 153, 285, 154, 286, 155, - 290, 156, 289, 157, 158, 124, 265, 492, 493, 494, - 584, 51, 65, 211, 212, 213, 214, 215, 216, 217, - 218, 317, 219, 316, 220, 221, 318, 222, 125, 266, - 496, 497, 498, 587, 53, 66, 229, 230, 231, 232, - 233, 322, 234, 235, 236, 160, 282, 554, 555, 556, - 620, 45, 62, 167, 168, 169, 295, 161, 283, 558, - 559, 560, 623, 47, 63, 177, 178, 179, 298, 180, - 181, 300, 182, 183, 162, 291, 562, 563, 564, 626, - 49, 64, 192, 193, 194, 195, 306, 196, 307, 197, - 308, 198, 309, 199, 310, 200, 305, 163, 292, 566, - 629, 126, 270, 512, 281, 365, 366, 367, 368, 369, - 433, 127, 273, 538, 539, 540, 541, 608, 542, 543, - 128, 129, 275, 546, 547, 548, 614, 549, 615, 130, - 276, 83, 251, 84, 252, 85, 250, 465, 466, 467, - 568, 690, 691, 692, 700, 701, 702, 703, 708, 704, - 706, 718, 719, 720, 724, 725, 727 + 56, 423, 505, 69, 70, 107, 37, 58, 80, 81, + 82, 248, 39, 59, 108, 109, 110, 111, 112, 113, + 114, 115, 255, 41, 60, 132, 278, 116, 256, 117, - 257, 476, 477, 478, 562, 479, 563, 480, 564, 481, - 565, 209, 313, 483, 484, 485, 118, 266, 501, 502, ++ 257, 476, 477, 478, 573, 479, 574, 480, 575, 481, ++ 576, 209, 313, 483, 484, 485, 118, 266, 501, 502, + 503, 504, 119, 268, 508, 509, 510, 120, 267, 121, - 270, 514, 515, 516, 588, 55, 67, 239, 240, 241, - 325, 242, 326, 122, 271, 518, 519, 123, 263, 488, - 489, 490, 572, 43, 61, 150, 151, 152, 283, 153, - 284, 154, 285, 155, 289, 156, 288, 157, 158, 124, - 264, 492, 493, 494, 575, 51, 65, 210, 211, 212, - 213, 214, 215, 216, 312, 217, 316, 218, 315, 219, - 220, 317, 221, 125, 265, 496, 497, 498, 578, 53, - 66, 228, 229, 230, 231, 232, 321, 233, 234, 235, - 160, 281, 544, 545, 546, 607, 45, 62, 167, 168, - 169, 294, 161, 282, 548, 549, 550, 610, 47, 63, - 177, 178, 179, 297, 180, 181, 299, 182, 183, 162, - 290, 552, 553, 554, 613, 49, 64, 192, 193, 194, - 195, 305, 196, 306, 197, 307, 198, 308, 199, 309, - 200, 304, 163, 291, 556, 616, 126, 269, 512, 280, - 364, 365, 366, 367, 368, 432, 127, 272, 527, 528, - 529, 594, 670, 530, 531, 595, 532, 533, 128, 129, - 274, 536, 537, 538, 601, 539, 602, 130, 275, 83, - 250, 84, 251, 85, 249, 464, 465, 466, 558, 679, - 680, 681, 689, 690, 691, 692, 697, 693, 695, 707, - 708, 709, 713, 714, 716 ++ 270, 514, 515, 516, 599, 55, 67, 239, 240, 241, ++ 325, 242, 326, 122, 271, 523, 524, 525, 526, 527, ++ 528, 529, 530, 123, 263, 488, 489, 490, 583, 43, ++ 61, 150, 151, 152, 283, 153, 284, 154, 285, 155, ++ 289, 156, 288, 157, 158, 124, 264, 492, 493, 494, ++ 586, 51, 65, 210, 211, 212, 213, 214, 215, 216, ++ 312, 217, 316, 218, 315, 219, 220, 317, 221, 125, ++ 265, 496, 497, 498, 589, 53, 66, 228, 229, 230, ++ 231, 232, 321, 233, 234, 235, 160, 281, 555, 556, ++ 557, 623, 45, 62, 167, 168, 169, 294, 161, 282, ++ 559, 560, 561, 626, 47, 63, 177, 178, 179, 297, ++ 180, 181, 299, 182, 183, 162, 290, 563, 564, 565, ++ 629, 49, 64, 192, 193, 194, 195, 305, 196, 306, ++ 197, 307, 198, 308, 199, 309, 200, 304, 163, 291, ++ 567, 632, 126, 269, 512, 280, 364, 365, 366, 367, ++ 368, 432, 127, 272, 538, 539, 540, 610, 691, 541, ++ 542, 611, 543, 544, 128, 129, 274, 547, 548, 549, ++ 617, 550, 618, 130, 275, 83, 250, 84, 251, 85, ++ 249, 464, 465, 466, 569, 700, 701, 702, 710, 711, ++ 712, 713, 718, 714, 716, 728, 729, 730, 734, 735, ++ 737 }; const unsigned short int Dhcp6Parser::yytable_[] = { - 79, 225, 526, 145, 165, 175, 190, 208, 224, 238, - 511, 159, 166, 176, 191, 226, 32, 227, 507, 133, - 146, 74, 96, 147, 148, 149, 25, 499, 26, 36, - 27, 24, 164, 253, 89, 90, 91, 92, 254, 96, - 202, 96, 468, 469, 470, 471, 472, 473, 474, 520, - 134, 276, 135, 472, 236, 237, 277, 202, 136, 137, - 138, 139, 140, 141, 38, 133, 360, 96, 500, 142, - 143, 581, 96, 40, 582, 86, 144, 87, 88, 170, - 171, 172, 173, 174, 499, 506, 89, 90, 91, 92, - 93, 94, 95, 96, 75, 78, 236, 237, 184, 42, - 76, 77, 185, 186, 187, 188, 189, 202, 521, 522, - 523, 524, 78, 78, 78, 142, 97, 98, 99, 100, - 534, 535, 292, 28, 29, 30, 31, 293, 44, 78, - 101, 78, 201, 102, 103, 584, 78, 431, 585, 295, - 78, 46, 104, 105, 296, 78, 106, 202, 586, 203, - 204, 587, 205, 206, 207, 202, 222, 203, 204, 223, - 682, 48, 684, 683, 685, 686, 78, 447, 448, 449, - 302, 637, 327, 526, 71, 303, 131, 328, 507, 78, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 276, 559, 569, 569, 79, 557, 560, 570, 571, - 592, 599, 603, 247, 292, 593, 600, 604, 605, 663, - 50, 327, 295, 302, 52, 362, 666, 674, 675, 78, - 698, 717, 361, 54, 244, 699, 718, 78, 710, 243, - 363, 711, 245, 247, 145, 246, 252, 165, 258, 667, - 668, 669, 159, 259, 175, 166, 260, 329, 330, 261, - 262, 146, 176, 190, 147, 148, 149, 273, 279, 225, - 286, 191, 208, 287, 298, 300, 224, 301, 311, 340, - 310, 314, 318, 226, 319, 227, 320, 323, 322, 324, - 331, 332, 333, 334, 335, 337, 338, 339, 341, 342, - 343, 345, 346, 347, 348, 344, 349, 350, 351, 352, - 353, 354, 356, 357, 359, 355, 369, 370, 371, 372, - 373, 375, 376, 377, 374, 378, 379, 381, 383, 385, - 389, 390, 384, 386, 391, 387, 392, 393, 394, 396, - 397, 399, 398, 400, 401, 404, 402, 413, 414, 407, - 405, 408, 410, 411, 625, 437, 412, 415, 416, 417, - 418, 482, 482, 419, 420, 421, 422, 424, 475, 475, - 425, 426, 433, 624, 427, 428, 429, 430, 434, 362, - 525, 435, 436, 438, 439, 442, 361, 440, 443, 487, - 491, 495, 513, 541, 363, 543, 441, 444, 445, 547, - 551, 566, 561, 446, 567, 568, 574, 617, 573, 577, - 576, 579, 580, 450, 589, 590, 608, 591, 596, 451, - 597, 460, 452, 461, 598, 609, 612, 611, 555, 618, - 453, 454, 614, 455, 615, 635, 620, 463, 621, 622, - 456, 623, 642, 643, 457, 458, 459, 648, 649, 657, - 664, 658, 696, 540, 700, 665, 517, 676, 606, 678, - 702, 706, 626, 704, 719, 462, 358, 583, 336, 486, - 467, 627, 634, 636, 640, 644, 645, 646, 639, 409, - 659, 660, 638, 629, 641, 628, 380, 631, 661, 662, - 630, 403, 671, 672, 633, 632, 406, 673, 677, 652, - 651, 701, 656, 712, 395, 388, 653, 654, 650, 705, - 655, 542, 619, 721, 482, 647, 694, 382, 703, 715, - 720, 475, 0, 225, 145, 0, 0, 208, 0, 0, - 224, 0, 159, 0, 0, 0, 0, 226, 0, 227, - 238, 146, 0, 0, 147, 148, 149, 0, 0, 0, - 0, 525, 0, 0, 0, 0, 0, 0, 0, 165, - 0, 0, 175, 0, 0, 190, 0, 166, 0, 0, - 176, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 79, 226, 537, 145, 165, 175, 190, 208, 225, 239, - 507, 159, 166, 176, 191, 227, 32, 228, 478, 478, - 146, 511, 133, 147, 148, 149, 74, 25, 133, 26, - 536, 27, 499, 237, 238, 24, 254, 89, 90, 91, - 92, 255, 237, 238, 96, 201, 469, 470, 471, 472, - 473, 474, 71, 134, 201, 135, 96, 96, 472, 36, - 202, 136, 137, 138, 139, 140, 141, 164, 499, 506, - 38, 78, 142, 143, 96, 202, 500, 131, 142, 144, - 277, 86, 184, 87, 88, 278, 185, 186, 187, 188, - 189, 96, 89, 90, 91, 92, 93, 94, 95, 96, - 40, 361, 75, 170, 171, 172, 173, 174, 76, 77, - 42, 202, 223, 203, 204, 224, 531, 532, 533, 534, - 78, 78, 97, 98, 99, 100, 44, 28, 29, 30, - 31, 202, 78, 78, 590, 78, 101, 591, 432, 102, - 293, 46, 201, 296, 78, 294, 103, 244, 297, 303, - 78, 104, 105, 328, 304, 106, 277, 202, 329, 203, - 204, 567, 205, 206, 207, 48, 569, 78, 448, 449, - 450, 570, 578, 544, 545, 78, 578, 579, 507, 478, - 246, 580, 606, 612, 50, 537, 78, 607, 613, 695, - 649, 696, 697, 52, 593, 54, 79, 594, 517, 518, - 519, 520, 521, 522, 616, 248, 78, 293, 595, 617, - 618, 596, 678, 536, 328, 296, 363, 303, 245, 681, - 685, 709, 686, 362, 728, 693, 710, 721, 694, 729, - 722, 364, 78, 247, 248, 145, 253, 259, 165, 260, - 261, 262, 263, 159, 274, 175, 166, 280, 330, 331, - 287, 288, 146, 176, 190, 147, 148, 149, 299, 301, - 226, 302, 191, 208, 311, 312, 320, 225, 315, 319, - 321, 324, 323, 325, 227, 332, 228, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 333, 334, - 335, 336, 338, 339, 340, 341, 342, 346, 343, 344, - 345, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 357, 358, 356, 360, 370, 371, 372, 373, 374, 375, - 377, 378, 379, 380, 376, 382, 384, 386, 390, 385, - 391, 392, 387, 388, 393, 394, 395, 397, 414, 415, - 398, 400, 401, 402, 405, 408, 409, 399, 411, 435, - 403, 406, 482, 482, 412, 413, 416, 417, 418, 475, - 475, 419, 420, 421, 422, 423, 425, 426, 427, 436, - 363, 535, 428, 429, 430, 431, 437, 362, 434, 438, - 439, 440, 441, 442, 443, 364, 445, 444, 446, 487, - 491, 495, 513, 551, 553, 557, 447, 451, 561, 452, - 453, 454, 571, 575, 576, 577, 600, 583, 565, 582, - 586, 585, 461, 455, 462, 588, 589, 598, 599, 622, - 456, 464, 601, 602, 603, 457, 604, 605, 609, 610, - 458, 611, 621, 459, 460, 624, 625, 627, 628, 689, - 619, 631, 630, 633, 634, 635, 679, 659, 647, 664, - 665, 673, 680, 636, 674, 707, 687, 711, 637, 713, - 652, 638, 715, 717, 730, 550, 592, 463, 486, 468, - 639, 337, 359, 646, 648, 653, 651, 650, 654, 655, - 656, 657, 660, 661, 662, 410, 675, 723, 658, 641, - 640, 676, 381, 643, 642, 677, 404, 682, 683, 644, - 684, 688, 645, 712, 667, 383, 407, 668, 396, 669, - 389, 716, 670, 482, 552, 732, 672, 671, 666, 705, - 475, 632, 226, 145, 714, 726, 208, 663, 731, 225, - 0, 159, 0, 0, 0, 0, 227, 0, 228, 239, - 146, 0, 0, 147, 148, 149, 0, 0, 0, 0, - 0, 0, 0, 0, 535, 0, 0, 0, 0, 0, - 0, 0, 165, 0, 0, 175, 0, 0, 190, 0, - 166, 0, 0, 176, 0, 0, 191, 0, 0, 0, ++ 79, 225, 537, 145, 165, 175, 190, 208, 224, 238, ++ 511, 159, 166, 176, 191, 226, 32, 227, 133, 507, ++ 146, 96, 74, 147, 148, 149, 25, 133, 26, 24, ++ 27, 164, 499, 89, 90, 91, 92, 96, 202, 36, ++ 96, 468, 469, 470, 471, 472, 473, 474, 253, 134, ++ 276, 135, 71, 254, 131, 277, 202, 136, 137, 138, ++ 139, 140, 141, 38, 360, 40, 292, 42, 142, 143, ++ 86, 293, 87, 88, 44, 144, 201, 142, 46, 500, ++ 48, 89, 90, 91, 92, 93, 94, 95, 96, 592, ++ 50, 202, 593, 203, 204, 531, 205, 206, 207, 472, ++ 78, 75, 202, 222, 203, 204, 223, 76, 77, 202, ++ 52, 97, 98, 99, 100, 54, 78, 236, 237, 78, ++ 78, 295, 96, 243, 96, 101, 296, 244, 102, 28, ++ 29, 30, 31, 245, 78, 103, 170, 171, 172, 173, ++ 174, 302, 246, 104, 105, 431, 303, 106, 184, 236, ++ 237, 247, 185, 186, 187, 188, 189, 252, 78, 327, ++ 532, 533, 534, 535, 328, 595, 276, 78, 596, 78, ++ 705, 568, 706, 707, 570, 447, 448, 449, 580, 571, ++ 78, 580, 653, 581, 499, 506, 582, 78, 78, 537, ++ 507, 608, 615, 619, 247, 79, 609, 616, 620, 621, ++ 258, 78, 259, 78, 1, 2, 3, 4, 5, 6, ++ 7, 8, 9, 10, 11, 362, 517, 518, 519, 520, ++ 521, 522, 361, 292, 327, 279, 295, 302, 684, 687, ++ 363, 695, 696, 719, 145, 738, 597, 165, 720, 598, ++ 739, 260, 159, 703, 175, 166, 704, 329, 330, 261, ++ 262, 146, 176, 190, 147, 148, 149, 731, 310, 225, ++ 732, 191, 208, 688, 689, 690, 224, 545, 546, 273, ++ 286, 287, 298, 226, 300, 227, 301, 311, 331, 314, ++ 318, 319, 320, 340, 322, 323, 324, 375, 332, 333, ++ 334, 335, 337, 338, 339, 345, 341, 346, 347, 348, ++ 349, 342, 343, 344, 350, 351, 352, 353, 354, 355, ++ 356, 357, 359, 369, 370, 371, 372, 373, 374, 376, ++ 377, 378, 379, 381, 383, 384, 385, 386, 387, 389, ++ 390, 391, 392, 393, 394, 396, 397, 413, 414, 399, ++ 398, 400, 401, 404, 407, 402, 405, 408, 410, 411, ++ 418, 482, 482, 412, 415, 416, 417, 419, 475, 475, ++ 420, 421, 422, 424, 425, 426, 434, 435, 427, 362, ++ 536, 428, 429, 430, 436, 433, 361, 437, 442, 438, ++ 572, 443, 487, 491, 363, 495, 439, 513, 552, 440, ++ 441, 585, 554, 558, 562, 463, 577, 578, 579, 633, ++ 444, 584, 587, 588, 590, 445, 446, 450, 591, 600, ++ 601, 460, 602, 461, 603, 604, 566, 605, 606, 607, ++ 612, 613, 451, 614, 624, 625, 627, 628, 631, 452, ++ 634, 453, 454, 630, 636, 637, 638, 639, 594, 663, ++ 651, 455, 456, 664, 457, 669, 670, 678, 685, 458, ++ 679, 717, 686, 721, 697, 699, 723, 727, 459, 725, ++ 740, 622, 462, 551, 336, 640, 486, 467, 643, 650, ++ 652, 358, 655, 654, 409, 662, 645, 641, 644, 646, ++ 656, 642, 647, 649, 403, 648, 657, 673, 658, 380, ++ 659, 660, 661, 406, 382, 672, 675, 677, 665, 666, ++ 553, 668, 674, 388, 671, 715, 667, 680, 676, 681, ++ 682, 635, 683, 395, 692, 482, 724, 693, 736, 741, ++ 694, 733, 475, 0, 225, 145, 0, 0, 208, 698, ++ 0, 224, 722, 159, 0, 0, 726, 0, 226, 0, ++ 227, 238, 146, 0, 742, 147, 148, 149, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, ++ 0, 0, 0, 0, 0, 165, 0, 0, 175, 0, ++ 0, 190, 0, 166, 0, 0, 176, 0, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 699, 0, 0, - 0, 0, 0, 0, 698, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 699, 0, 0, 0, 0, 0, - 0, 698 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 688, 0, 0, 0, - 0, 0, 0, 687, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 688, 0, 0, 0, 0, 0, 0, - 687 ++ 0, 0, 0, 0, 0, 0, 0, 709, 0, 0, ++ 0, 0, 0, 0, 708, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, ++ 0, 708 }; const short int Dhcp6Parser::yycheck_[] = { - 58, 66, 429, 61, 62, 63, 64, 65, 66, 67, - 425, 61, 62, 63, 64, 66, 13, 66, 417, 418, - 61, 426, 7, 61, 61, 61, 10, 5, 7, 7, - 429, 9, 61, 67, 68, 0, 3, 22, 23, 24, - 25, 8, 67, 68, 29, 15, 16, 17, 18, 19, - 20, 21, 105, 38, 15, 40, 29, 29, 19, 7, - 30, 46, 47, 48, 49, 50, 51, 39, 61, 62, - 7, 105, 57, 58, 29, 30, 105, 12, 57, 64, - 3, 11, 55, 13, 14, 8, 59, 60, 61, 62, - 63, 29, 22, 23, 24, 25, 26, 27, 28, 29, - 7, 56, 86, 41, 42, 43, 44, 45, 92, 93, - 7, 30, 31, 32, 33, 34, 77, 78, 79, 80, - 105, 105, 52, 53, 54, 55, 7, 105, 106, 107, - 108, 30, 105, 105, 3, 105, 66, 6, 360, 69, - 3, 7, 15, 3, 105, 8, 76, 6, 8, 3, - 105, 81, 82, 3, 8, 85, 3, 30, 8, 32, - 33, 8, 35, 36, 37, 7, 3, 105, 390, 391, - 392, 8, 3, 83, 84, 105, 3, 8, 593, 578, - 4, 8, 3, 3, 7, 612, 105, 8, 8, 88, - 595, 90, 91, 7, 3, 7, 254, 6, 70, 71, - 72, 73, 74, 75, 3, 3, 105, 3, 3, 8, - 8, 6, 8, 612, 3, 3, 281, 3, 3, 8, - 8, 3, 8, 281, 3, 3, 8, 3, 6, 8, - 6, 281, 105, 8, 3, 293, 4, 4, 296, 4, - 4, 4, 4, 293, 4, 303, 296, 8, 245, 246, - 4, 4, 293, 303, 312, 293, 293, 293, 4, 4, - 325, 4, 312, 321, 8, 3, 8, 325, 4, 4, - 3, 8, 4, 3, 325, 105, 325, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 4, 4, - 4, 4, 4, 4, 4, 106, 106, 4, 106, 106, - 106, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 106, 4, 4, 4, 4, 4, 4, 106, - 4, 4, 4, 4, 108, 4, 4, 4, 4, 106, - 4, 4, 106, 106, 4, 4, 4, 4, 335, 336, - 4, 4, 4, 4, 4, 4, 4, 106, 4, 3, - 108, 108, 417, 418, 7, 7, 7, 7, 7, 417, - 418, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 435, 429, 7, 7, 7, 7, 5, 435, 8, 105, - 105, 105, 105, 105, 5, 435, 105, 7, 105, 7, - 7, 7, 7, 4, 7, 7, 105, 105, 7, 105, - 105, 105, 8, 4, 4, 4, 4, 3, 65, 6, - 3, 6, 409, 105, 411, 6, 3, 6, 3, 3, - 105, 87, 4, 4, 4, 105, 4, 4, 4, 4, - 105, 4, 6, 105, 105, 6, 3, 6, 3, 7, - 105, 4, 8, 4, 4, 4, 8, 4, 6, 4, - 4, 4, 8, 108, 5, 4, 8, 4, 106, 4, - 106, 108, 5, 7, 4, 431, 505, 412, 418, 416, - 578, 254, 277, 590, 593, 106, 599, 597, 106, 106, - 106, 106, 106, 106, 106, 328, 105, 89, 606, 583, - 581, 105, 293, 586, 584, 105, 321, 105, 105, 587, - 105, 105, 589, 106, 620, 296, 325, 622, 312, 623, - 303, 105, 625, 578, 435, 105, 628, 626, 616, 693, - 578, 569, 587, 581, 709, 721, 584, 612, 728, 587, - -1, 581, -1, -1, -1, -1, 587, -1, 587, 597, - 581, -1, -1, 581, 581, 581, -1, -1, -1, -1, - -1, -1, -1, -1, 612, -1, -1, -1, -1, -1, - -1, -1, 620, -1, -1, 623, -1, -1, 626, -1, - 620, -1, -1, 623, -1, -1, 626, -1, -1, -1, + 58, 66, 428, 61, 62, 63, 64, 65, 66, 67, - 425, 61, 62, 63, 64, 66, 13, 66, 424, 7, - 61, 10, 29, 61, 61, 61, 5, 61, 7, 7, - 9, 0, 39, 3, 22, 23, 24, 25, 8, 29, - 30, 29, 15, 16, 17, 18, 19, 20, 21, 15, - 38, 3, 40, 19, 67, 68, 8, 30, 46, 47, - 48, 49, 50, 51, 7, 7, 56, 29, 102, 57, - 58, 3, 29, 7, 6, 11, 64, 13, 14, 41, - 42, 43, 44, 45, 61, 62, 22, 23, 24, 25, - 26, 27, 28, 29, 83, 102, 67, 68, 55, 7, - 89, 90, 59, 60, 61, 62, 63, 30, 74, 75, - 76, 77, 102, 102, 102, 57, 52, 53, 54, 55, - 80, 81, 3, 102, 103, 104, 105, 8, 7, 102, - 66, 102, 15, 69, 70, 3, 102, 359, 6, 3, - 102, 7, 78, 79, 8, 102, 82, 30, 3, 32, - 33, 6, 35, 36, 37, 30, 31, 32, 33, 34, - 3, 7, 85, 6, 87, 88, 102, 389, 390, 391, - 3, 586, 3, 599, 102, 8, 12, 8, 584, 102, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 3, 3, 3, 3, 253, 8, 8, 8, 8, - 3, 3, 3, 3, 3, 8, 8, 8, 8, 8, - 7, 3, 3, 3, 7, 280, 8, 8, 8, 102, - 3, 3, 280, 7, 3, 8, 8, 102, 3, 6, - 280, 6, 4, 3, 292, 8, 4, 295, 4, 71, - 72, 73, 292, 4, 302, 295, 4, 244, 245, 4, - 4, 292, 302, 311, 292, 292, 292, 4, 8, 324, - 4, 311, 320, 4, 4, 4, 324, 4, 3, 103, - 8, 4, 4, 324, 8, 324, 3, 8, 4, 3, - 102, 4, 4, 4, 4, 4, 4, 4, 103, 103, - 103, 4, 4, 4, 4, 103, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 103, 4, 4, 4, 4, - 4, 105, 4, 4, 103, 4, 4, 4, 4, 4, - 4, 4, 103, 103, 4, 103, 4, 4, 4, 4, - 4, 4, 103, 4, 4, 4, 105, 334, 335, 4, - 105, 4, 4, 7, 103, 102, 7, 7, 7, 7, - 5, 416, 417, 5, 5, 5, 5, 5, 416, 417, - 5, 5, 8, 105, 7, 7, 7, 7, 3, 434, - 428, 5, 5, 102, 102, 5, 434, 102, 7, 7, - 7, 7, 7, 4, 434, 7, 102, 102, 102, 7, - 7, 4, 8, 102, 4, 4, 3, 8, 6, 3, - 6, 6, 3, 102, 6, 3, 6, 4, 4, 102, - 4, 408, 102, 410, 4, 3, 3, 6, 65, 4, - 102, 102, 6, 102, 3, 6, 4, 84, 4, 4, - 102, 4, 4, 4, 102, 102, 102, 4, 4, 4, - 8, 5, 4, 430, 4, 8, 102, 8, 102, 7, - 4, 7, 105, 5, 4, 411, 276, 505, 253, 417, - 415, 569, 581, 584, 103, 103, 103, 103, 590, 327, - 102, 102, 588, 574, 592, 572, 292, 577, 102, 102, - 575, 320, 102, 102, 580, 578, 324, 102, 102, 609, - 607, 103, 615, 86, 311, 302, 610, 612, 603, 102, - 613, 434, 559, 102, 569, 599, 682, 295, 698, 710, - 717, 569, -1, 578, 572, -1, -1, 575, -1, -1, - 578, -1, 572, -1, -1, -1, -1, 578, -1, 578, - 588, 572, -1, -1, 572, 572, 572, -1, -1, -1, - -1, 599, -1, -1, -1, -1, -1, -1, -1, 607, - -1, -1, 610, -1, -1, 613, -1, 607, -1, -1, - 610, -1, -1, 613, -1, -1, -1, -1, -1, -1, ++ 425, 61, 62, 63, 64, 66, 13, 66, 7, 424, ++ 61, 29, 10, 61, 61, 61, 5, 7, 7, 0, ++ 9, 39, 61, 22, 23, 24, 25, 29, 30, 7, ++ 29, 15, 16, 17, 18, 19, 20, 21, 3, 38, ++ 3, 40, 108, 8, 12, 8, 30, 46, 47, 48, ++ 49, 50, 51, 7, 56, 7, 3, 7, 57, 58, ++ 11, 8, 13, 14, 7, 64, 15, 57, 7, 108, ++ 7, 22, 23, 24, 25, 26, 27, 28, 29, 3, ++ 7, 30, 6, 32, 33, 15, 35, 36, 37, 19, ++ 108, 89, 30, 31, 32, 33, 34, 95, 96, 30, ++ 7, 52, 53, 54, 55, 7, 108, 67, 68, 108, ++ 108, 3, 29, 6, 29, 66, 8, 3, 69, 108, ++ 109, 110, 111, 4, 108, 76, 41, 42, 43, 44, ++ 45, 3, 8, 84, 85, 359, 8, 88, 55, 67, ++ 68, 3, 59, 60, 61, 62, 63, 4, 108, 3, ++ 80, 81, 82, 83, 8, 3, 3, 108, 6, 108, ++ 91, 8, 93, 94, 3, 389, 390, 391, 3, 8, ++ 108, 3, 597, 8, 61, 62, 8, 108, 108, 615, ++ 595, 3, 3, 3, 3, 253, 8, 8, 8, 8, ++ 4, 108, 4, 108, 97, 98, 99, 100, 101, 102, ++ 103, 104, 105, 106, 107, 280, 70, 71, 72, 73, ++ 74, 75, 280, 3, 3, 8, 3, 3, 8, 8, ++ 280, 8, 8, 3, 292, 3, 3, 295, 8, 6, ++ 8, 4, 292, 3, 302, 295, 6, 244, 245, 4, ++ 4, 292, 302, 311, 292, 292, 292, 3, 8, 324, ++ 6, 311, 320, 77, 78, 79, 324, 86, 87, 4, ++ 4, 4, 4, 324, 4, 324, 4, 3, 108, 4, ++ 4, 8, 3, 109, 4, 8, 3, 111, 4, 4, ++ 4, 4, 4, 4, 4, 4, 109, 4, 4, 4, ++ 4, 109, 109, 109, 4, 4, 4, 4, 4, 109, ++ 4, 4, 4, 4, 4, 4, 4, 4, 109, 4, ++ 4, 4, 4, 4, 4, 109, 4, 109, 109, 4, ++ 4, 4, 4, 4, 4, 4, 4, 334, 335, 4, ++ 109, 4, 4, 4, 4, 111, 111, 4, 4, 7, ++ 5, 416, 417, 7, 7, 7, 7, 5, 416, 417, ++ 5, 5, 5, 5, 5, 5, 3, 5, 7, 434, ++ 428, 7, 7, 7, 5, 8, 434, 108, 5, 108, ++ 8, 7, 7, 7, 434, 7, 108, 7, 4, 108, ++ 108, 3, 7, 7, 7, 90, 4, 4, 4, 8, ++ 108, 6, 6, 3, 6, 108, 108, 108, 3, 6, ++ 3, 408, 4, 410, 4, 4, 65, 4, 4, 4, ++ 4, 4, 108, 4, 6, 3, 6, 3, 3, 108, ++ 4, 108, 108, 6, 4, 4, 4, 4, 505, 4, ++ 6, 108, 108, 4, 108, 4, 4, 4, 8, 108, ++ 5, 4, 8, 4, 8, 7, 4, 7, 108, 5, ++ 4, 108, 411, 430, 253, 111, 417, 415, 580, 592, ++ 595, 276, 601, 599, 327, 608, 585, 109, 583, 586, ++ 109, 111, 588, 591, 320, 589, 109, 625, 109, 292, ++ 109, 109, 109, 324, 295, 623, 628, 631, 109, 109, ++ 434, 615, 626, 302, 619, 703, 109, 108, 629, 108, ++ 108, 570, 108, 311, 108, 580, 719, 108, 731, 738, ++ 108, 92, 580, -1, 589, 583, -1, -1, 586, 108, ++ -1, 589, 109, 583, -1, -1, 108, -1, 589, -1, ++ 589, 599, 583, -1, 108, 583, 583, 583, -1, -1, ++ -1, -1, -1, -1, -1, -1, -1, 615, -1, -1, ++ -1, -1, -1, -1, -1, 623, -1, -1, 626, -1, ++ -1, 629, -1, 623, -1, -1, 626, -1, -1, 629, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 681, -1, -1, -1, - -1, -1, -1, 681, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 698, -1, -1, -1, -1, -1, -1, - 698 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 692, -1, -1, - -1, -1, -1, -1, 692, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 709, -1, -1, -1, -1, -1, - -1, 709 ++ -1, -1, -1, -1, -1, -1, -1, 702, -1, -1, ++ -1, -1, -1, -1, 702, -1, -1, -1, -1, -1, ++ -1, -1, -1, -1, 719, -1, -1, -1, -1, -1, ++ -1, 719 }; const unsigned short int Dhcp6Parser::yystos_[] = { - 0, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 0, 5, 7, 9, 102, 103, - 104, 105, 119, 120, 121, 125, 7, 132, 7, 138, - 7, 149, 7, 209, 7, 272, 7, 284, 7, 301, - 7, 231, 7, 255, 7, 191, 126, 122, 133, 139, - 150, 210, 273, 285, 302, 232, 256, 192, 119, 129, - 130, 102, 123, 124, 10, 83, 89, 90, 102, 131, - 134, 135, 136, 355, 357, 359, 11, 13, 14, 22, - 0, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 0, 5, 7, 9, 105, 106, - 107, 108, 122, 123, 124, 128, 7, 135, 7, 141, - 7, 152, 7, 218, 7, 280, 7, 292, 7, 309, - 7, 240, 7, 263, 7, 194, 129, 125, 136, 142, - 153, 219, 281, 293, 310, 241, 264, 195, 122, 132, - 133, 105, 126, 127, 10, 86, 92, 93, 105, 134, - 137, 138, 139, 360, 362, 364, 11, 13, 14, 22, ++ 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, ++ 106, 107, 113, 114, 115, 116, 117, 118, 119, 120, ++ 121, 122, 123, 124, 0, 5, 7, 9, 108, 109, ++ 110, 111, 125, 126, 127, 131, 7, 138, 7, 144, ++ 7, 155, 7, 221, 7, 284, 7, 296, 7, 313, ++ 7, 243, 7, 267, 7, 197, 132, 128, 139, 145, ++ 156, 222, 285, 297, 314, 244, 268, 198, 125, 135, ++ 136, 108, 129, 130, 10, 89, 95, 96, 108, 137, ++ 140, 141, 142, 367, 369, 371, 11, 13, 14, 22, 23, 24, 25, 26, 27, 28, 29, 52, 53, 54, - 55, 66, 69, 70, 78, 79, 82, 131, 140, 141, - 142, 143, 144, 145, 146, 147, 153, 155, 172, 178, - 183, 185, 199, 203, 225, 249, 322, 332, 344, 345, - 353, 12, 151, 7, 38, 40, 46, 47, 48, 49, - 50, 51, 57, 58, 64, 131, 142, 143, 144, 145, - 211, 212, 213, 215, 217, 219, 221, 223, 224, 249, - 266, 278, 295, 318, 39, 131, 249, 274, 275, 276, - 41, 42, 43, 44, 45, 131, 249, 286, 287, 288, - 290, 291, 293, 294, 55, 59, 60, 61, 62, 63, - 131, 249, 303, 304, 305, 306, 308, 310, 312, 314, - 316, 15, 30, 32, 33, 35, 36, 37, 131, 167, - 233, 234, 235, 236, 237, 238, 239, 241, 243, 245, - 246, 248, 31, 34, 131, 167, 237, 243, 257, 258, - 259, 260, 261, 263, 264, 265, 67, 68, 131, 193, - 194, 195, 197, 6, 3, 4, 8, 3, 137, 360, - 356, 358, 4, 3, 8, 148, 154, 156, 4, 4, - 4, 4, 4, 204, 226, 250, 173, 184, 179, 323, - 186, 200, 333, 4, 346, 354, 3, 8, 152, 8, - 325, 267, 279, 214, 216, 218, 4, 4, 222, 220, - 296, 319, 3, 8, 277, 3, 8, 289, 4, 292, - 4, 4, 3, 8, 317, 307, 309, 311, 313, 315, - 8, 3, 240, 168, 4, 244, 242, 247, 4, 8, - 3, 262, 4, 8, 3, 196, 198, 3, 8, 119, - 119, 102, 4, 4, 4, 4, 135, 4, 4, 4, - 103, 103, 103, 103, 103, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 103, 4, 4, 141, 4, - 56, 131, 167, 249, 326, 327, 328, 329, 330, 4, - 4, 4, 4, 4, 103, 105, 4, 4, 4, 4, - 212, 4, 275, 4, 103, 4, 103, 103, 287, 4, - 4, 4, 4, 4, 4, 305, 4, 4, 103, 4, - 4, 4, 105, 235, 4, 105, 259, 4, 4, 194, - 4, 7, 7, 119, 119, 7, 7, 7, 5, 5, - 5, 5, 5, 127, 5, 5, 5, 7, 7, 7, - 7, 127, 331, 8, 3, 5, 5, 102, 102, 102, - 102, 102, 5, 7, 102, 102, 102, 127, 127, 127, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 119, 119, 140, 84, 361, 362, 363, 151, 15, 16, - 17, 18, 19, 20, 21, 131, 157, 158, 159, 161, - 163, 165, 167, 169, 170, 171, 157, 7, 205, 206, - 207, 7, 227, 228, 229, 7, 251, 252, 253, 61, - 102, 174, 175, 176, 177, 128, 62, 176, 180, 181, - 182, 219, 324, 7, 187, 188, 189, 102, 201, 202, - 15, 74, 75, 76, 77, 131, 169, 334, 335, 336, - 339, 340, 342, 343, 80, 81, 347, 348, 349, 351, - 124, 4, 328, 7, 268, 269, 270, 7, 280, 281, - 282, 7, 297, 298, 299, 65, 320, 8, 364, 3, - 8, 8, 160, 162, 164, 166, 4, 4, 4, 3, - 8, 8, 208, 6, 3, 230, 6, 3, 254, 6, - 3, 3, 6, 129, 3, 6, 3, 6, 190, 6, - 3, 4, 3, 8, 337, 341, 4, 4, 4, 3, - 8, 350, 352, 3, 8, 8, 102, 271, 6, 3, - 283, 6, 3, 300, 6, 3, 321, 8, 4, 362, - 4, 4, 4, 4, 105, 103, 105, 158, 211, 207, - 233, 229, 257, 253, 175, 6, 181, 219, 193, 189, - 103, 202, 4, 4, 103, 103, 103, 335, 4, 4, - 348, 274, 270, 286, 282, 303, 299, 4, 5, 102, - 102, 102, 102, 8, 8, 8, 8, 71, 72, 73, - 338, 102, 102, 102, 8, 8, 8, 102, 7, 365, - 366, 367, 3, 6, 85, 87, 88, 131, 167, 368, - 369, 370, 371, 373, 366, 374, 4, 372, 3, 8, - 4, 103, 4, 369, 5, 102, 7, 375, 376, 377, - 3, 6, 86, 378, 379, 376, 380, 3, 8, 4, - 379, 102 - 55, 66, 69, 76, 81, 82, 85, 134, 143, 144, - 145, 146, 147, 148, 149, 150, 156, 158, 175, 181, - 186, 188, 202, 212, 234, 257, 330, 340, 349, 350, - 358, 12, 154, 7, 38, 40, 46, 47, 48, 49, - 50, 51, 57, 58, 64, 134, 145, 146, 147, 148, - 220, 221, 222, 224, 226, 228, 230, 232, 233, 257, - 274, 286, 303, 326, 39, 134, 257, 282, 283, 284, - 41, 42, 43, 44, 45, 134, 257, 294, 295, 296, - 298, 299, 301, 302, 55, 59, 60, 61, 62, 63, - 134, 257, 311, 312, 313, 314, 316, 318, 320, 322, - 324, 15, 30, 32, 33, 35, 36, 37, 134, 162, - 170, 242, 243, 244, 245, 246, 247, 248, 249, 251, - 253, 254, 256, 31, 34, 134, 170, 246, 251, 265, - 266, 267, 268, 269, 271, 272, 273, 67, 68, 134, - 196, 197, 198, 200, 6, 3, 4, 8, 3, 140, - 365, 361, 363, 4, 3, 8, 151, 157, 159, 4, - 4, 4, 4, 4, 213, 235, 258, 176, 187, 182, - 331, 189, 203, 341, 4, 351, 359, 3, 8, 155, - 8, 333, 275, 287, 223, 225, 227, 4, 4, 231, - 229, 304, 327, 3, 8, 285, 3, 8, 297, 4, - 300, 4, 4, 3, 8, 325, 315, 317, 319, 321, - 323, 8, 3, 163, 171, 4, 252, 250, 255, 4, - 8, 3, 270, 4, 8, 3, 199, 201, 3, 8, - 122, 122, 105, 4, 4, 4, 4, 138, 4, 4, - 4, 106, 106, 106, 106, 106, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 106, 4, 4, 144, - 4, 56, 134, 170, 257, 334, 335, 336, 337, 338, - 4, 4, 4, 4, 4, 106, 108, 4, 4, 4, - 4, 221, 4, 283, 4, 106, 4, 106, 106, 295, - 4, 4, 4, 4, 4, 4, 313, 4, 4, 106, - 4, 4, 4, 108, 244, 4, 108, 267, 4, 4, - 197, 4, 7, 7, 122, 122, 7, 7, 7, 5, - 5, 5, 5, 5, 130, 5, 5, 5, 7, 7, - 7, 7, 130, 339, 8, 3, 5, 5, 105, 105, - 105, 105, 105, 5, 7, 105, 105, 105, 130, 130, - 130, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 122, 122, 143, 87, 366, 367, 368, 154, 16, - 17, 18, 19, 20, 21, 134, 160, 161, 162, 164, - 166, 168, 170, 172, 173, 174, 160, 7, 214, 215, - 216, 7, 236, 237, 238, 7, 259, 260, 261, 61, - 105, 177, 178, 179, 180, 131, 62, 179, 183, 184, - 185, 228, 332, 7, 190, 191, 192, 70, 71, 72, - 73, 74, 75, 204, 205, 206, 207, 208, 209, 210, - 211, 77, 78, 79, 80, 134, 162, 172, 342, 343, - 344, 345, 347, 348, 83, 84, 352, 353, 354, 356, - 127, 4, 336, 7, 276, 277, 278, 7, 288, 289, - 290, 7, 305, 306, 307, 65, 328, 8, 369, 3, - 8, 8, 165, 167, 169, 4, 4, 4, 3, 8, - 8, 217, 6, 3, 239, 6, 3, 262, 6, 3, - 3, 6, 132, 3, 6, 3, 6, 193, 6, 3, - 4, 4, 4, 4, 4, 4, 3, 8, 346, 4, - 4, 4, 3, 8, 355, 357, 3, 8, 8, 105, - 279, 6, 3, 291, 6, 3, 308, 6, 3, 329, - 8, 4, 367, 4, 4, 4, 108, 106, 108, 161, - 220, 216, 242, 238, 265, 261, 178, 6, 184, 228, - 196, 192, 106, 106, 106, 106, 106, 106, 205, 4, - 106, 106, 106, 343, 4, 4, 353, 282, 278, 294, - 290, 311, 307, 4, 5, 105, 105, 105, 8, 8, - 8, 8, 105, 105, 105, 8, 8, 8, 105, 7, - 370, 371, 372, 3, 6, 88, 90, 91, 134, 170, - 373, 374, 375, 376, 378, 371, 379, 4, 377, 3, - 8, 4, 106, 4, 374, 5, 105, 7, 380, 381, - 382, 3, 6, 89, 383, 384, 381, 385, 3, 8, - 4, 384, 105 ++ 55, 66, 69, 76, 84, 85, 88, 137, 146, 147, ++ 148, 149, 150, 151, 152, 153, 159, 161, 178, 184, ++ 189, 191, 205, 215, 237, 261, 334, 344, 356, 357, ++ 365, 12, 157, 7, 38, 40, 46, 47, 48, 49, ++ 50, 51, 57, 58, 64, 137, 148, 149, 150, 151, ++ 223, 224, 225, 227, 229, 231, 233, 235, 236, 261, ++ 278, 290, 307, 330, 39, 137, 261, 286, 287, 288, ++ 41, 42, 43, 44, 45, 137, 261, 298, 299, 300, ++ 302, 303, 305, 306, 55, 59, 60, 61, 62, 63, ++ 137, 261, 315, 316, 317, 318, 320, 322, 324, 326, ++ 328, 15, 30, 32, 33, 35, 36, 37, 137, 173, ++ 245, 246, 247, 248, 249, 250, 251, 253, 255, 257, ++ 258, 260, 31, 34, 137, 173, 249, 255, 269, 270, ++ 271, 272, 273, 275, 276, 277, 67, 68, 137, 199, ++ 200, 201, 203, 6, 3, 4, 8, 3, 143, 372, ++ 368, 370, 4, 3, 8, 154, 160, 162, 4, 4, ++ 4, 4, 4, 216, 238, 262, 179, 190, 185, 335, ++ 192, 206, 345, 4, 358, 366, 3, 8, 158, 8, ++ 337, 279, 291, 226, 228, 230, 4, 4, 234, 232, ++ 308, 331, 3, 8, 289, 3, 8, 301, 4, 304, ++ 4, 4, 3, 8, 329, 319, 321, 323, 325, 327, ++ 8, 3, 252, 174, 4, 256, 254, 259, 4, 8, ++ 3, 274, 4, 8, 3, 202, 204, 3, 8, 125, ++ 125, 108, 4, 4, 4, 4, 141, 4, 4, 4, ++ 109, 109, 109, 109, 109, 4, 4, 4, 4, 4, ++ 4, 4, 4, 4, 4, 109, 4, 4, 147, 4, ++ 56, 137, 173, 261, 338, 339, 340, 341, 342, 4, ++ 4, 4, 4, 4, 109, 111, 4, 4, 4, 4, ++ 224, 4, 287, 4, 109, 4, 109, 109, 299, 4, ++ 4, 4, 4, 4, 4, 317, 4, 4, 109, 4, ++ 4, 4, 111, 247, 4, 111, 271, 4, 4, 200, ++ 4, 7, 7, 125, 125, 7, 7, 7, 5, 5, ++ 5, 5, 5, 133, 5, 5, 5, 7, 7, 7, ++ 7, 133, 343, 8, 3, 5, 5, 108, 108, 108, ++ 108, 108, 5, 7, 108, 108, 108, 133, 133, 133, ++ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, ++ 125, 125, 146, 90, 373, 374, 375, 157, 15, 16, ++ 17, 18, 19, 20, 21, 137, 163, 164, 165, 167, ++ 169, 171, 173, 175, 176, 177, 163, 7, 217, 218, ++ 219, 7, 239, 240, 241, 7, 263, 264, 265, 61, ++ 108, 180, 181, 182, 183, 134, 62, 182, 186, 187, ++ 188, 231, 336, 7, 193, 194, 195, 70, 71, 72, ++ 73, 74, 75, 207, 208, 209, 210, 211, 212, 213, ++ 214, 15, 80, 81, 82, 83, 137, 175, 346, 347, ++ 348, 351, 352, 354, 355, 86, 87, 359, 360, 361, ++ 363, 130, 4, 340, 7, 280, 281, 282, 7, 292, ++ 293, 294, 7, 309, 310, 311, 65, 332, 8, 376, ++ 3, 8, 8, 166, 168, 170, 172, 4, 4, 4, ++ 3, 8, 8, 220, 6, 3, 242, 6, 3, 266, ++ 6, 3, 3, 6, 135, 3, 6, 3, 6, 196, ++ 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, ++ 349, 353, 4, 4, 4, 3, 8, 362, 364, 3, ++ 8, 8, 108, 283, 6, 3, 295, 6, 3, 312, ++ 6, 3, 333, 8, 4, 374, 4, 4, 4, 4, ++ 111, 109, 111, 164, 223, 219, 245, 241, 269, 265, ++ 181, 6, 187, 231, 199, 195, 109, 109, 109, 109, ++ 109, 109, 208, 4, 4, 109, 109, 109, 347, 4, ++ 4, 360, 286, 282, 298, 294, 315, 311, 4, 5, ++ 108, 108, 108, 108, 8, 8, 8, 8, 77, 78, ++ 79, 350, 108, 108, 108, 8, 8, 8, 108, 7, ++ 377, 378, 379, 3, 6, 91, 93, 94, 137, 173, ++ 380, 381, 382, 383, 385, 378, 386, 4, 384, 3, ++ 8, 4, 109, 4, 381, 5, 108, 7, 387, 388, ++ 389, 3, 6, 92, 390, 391, 388, 392, 3, 8, ++ 4, 391, 108 }; const unsigned short int Dhcp6Parser::yyr1_[] = { - 0, 106, 108, 107, 109, 107, 110, 107, 111, 107, - 112, 107, 113, 107, 114, 107, 115, 107, 116, 107, - 117, 107, 118, 107, 119, 119, 119, 119, 119, 119, - 119, 120, 122, 121, 123, 123, 124, 124, 126, 125, - 128, 127, 129, 129, 130, 130, 131, 133, 132, 134, - 134, 135, 135, 135, 135, 135, 137, 136, 139, 138, - 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 142, 143, 144, 145, 146, 148, - 147, 150, 149, 152, 151, 154, 153, 156, 155, 157, - 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 160, 159, 162, 161, 164, 163, 166, 165, 168, 167, - 169, 170, 171, 173, 172, 174, 174, 175, 175, 176, - 177, 179, 178, 180, 180, 181, 181, 182, 184, 183, - 186, 185, 187, 187, 188, 188, 190, 189, 192, 191, - 193, 193, 193, 194, 194, 196, 195, 198, 197, 200, - 199, 201, 201, 202, 204, 203, 205, 205, 206, 206, - 208, 207, 210, 209, 211, 211, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 214, 213, 216, 215, 218, 217, 220, - 219, 222, 221, 223, 224, 226, 225, 227, 227, 228, - 228, 230, 229, 232, 231, 233, 233, 234, 234, 235, - 235, 235, 235, 235, 235, 235, 235, 236, 237, 238, - 240, 239, 242, 241, 244, 243, 245, 247, 246, 248, - 250, 249, 251, 251, 252, 252, 254, 253, 256, 255, - 257, 257, 258, 258, 259, 259, 259, 259, 259, 259, - 260, 262, 261, 263, 264, 265, 267, 266, 268, 268, - 269, 269, 271, 270, 273, 272, 274, 274, 275, 275, - 275, 277, 276, 279, 278, 280, 280, 281, 281, 283, - 282, 285, 284, 286, 286, 287, 287, 287, 287, 287, - 287, 287, 289, 288, 290, 292, 291, 293, 294, 296, - 295, 297, 297, 298, 298, 300, 299, 302, 301, 303, - 303, 304, 304, 305, 305, 305, 305, 305, 305, 305, - 305, 307, 306, 309, 308, 311, 310, 313, 312, 315, - 314, 317, 316, 319, 318, 321, 320, 323, 322, 324, - 324, 325, 219, 326, 326, 327, 327, 328, 328, 328, - 328, 329, 331, 330, 333, 332, 334, 334, 335, 335, - 335, 335, 335, 335, 335, 337, 336, 338, 338, 338, - 339, 341, 340, 342, 343, 344, 346, 345, 347, 347, - 348, 348, 350, 349, 352, 351, 354, 353, 356, 355, - 358, 357, 360, 359, 361, 361, 362, 364, 363, 365, - 365, 367, 366, 368, 368, 369, 369, 369, 369, 369, - 370, 372, 371, 374, 373, 375, 375, 377, 376, 378, - 378, 380, 379 - 0, 109, 111, 110, 112, 110, 113, 110, 114, 110, - 115, 110, 116, 110, 117, 110, 118, 110, 119, 110, - 120, 110, 121, 110, 122, 122, 122, 122, 122, 122, - 122, 123, 125, 124, 126, 126, 127, 127, 129, 128, - 131, 130, 132, 132, 133, 133, 134, 136, 135, 137, - 137, 138, 138, 138, 138, 138, 140, 139, 142, 141, - 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 145, 146, 147, 148, 149, 151, - 150, 153, 152, 155, 154, 157, 156, 159, 158, 160, - 160, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 163, 162, 165, 164, 167, 166, 169, 168, 171, 170, - 172, 173, 174, 176, 175, 177, 177, 178, 178, 179, - 180, 182, 181, 183, 183, 184, 184, 185, 187, 186, - 189, 188, 190, 190, 191, 191, 193, 192, 195, 194, - 196, 196, 196, 197, 197, 199, 198, 201, 200, 203, - 202, 204, 204, 205, 205, 205, 205, 205, 205, 206, - 207, 208, 209, 210, 211, 213, 212, 214, 214, 215, - 215, 217, 216, 219, 218, 220, 220, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 223, 222, 225, 224, 227, 226, - 229, 228, 231, 230, 232, 233, 235, 234, 236, 236, - 237, 237, 239, 238, 241, 240, 242, 242, 243, 243, - 244, 244, 244, 244, 244, 244, 244, 244, 245, 246, - 247, 248, 250, 249, 252, 251, 253, 255, 254, 256, - 258, 257, 259, 259, 260, 260, 262, 261, 264, 263, - 265, 265, 266, 266, 267, 267, 267, 267, 267, 267, - 268, 270, 269, 271, 272, 273, 275, 274, 276, 276, - 277, 277, 279, 278, 281, 280, 282, 282, 283, 283, - 283, 285, 284, 287, 286, 288, 288, 289, 289, 291, - 290, 293, 292, 294, 294, 295, 295, 295, 295, 295, - 295, 295, 297, 296, 298, 300, 299, 301, 302, 304, - 303, 305, 305, 306, 306, 308, 307, 310, 309, 311, - 311, 312, 312, 313, 313, 313, 313, 313, 313, 313, - 313, 315, 314, 317, 316, 319, 318, 321, 320, 323, - 322, 325, 324, 327, 326, 329, 328, 331, 330, 332, - 332, 333, 228, 334, 334, 335, 335, 336, 336, 336, - 336, 337, 339, 338, 341, 340, 342, 342, 343, 343, - 343, 343, 343, 343, 343, 344, 346, 345, 347, 348, - 349, 351, 350, 352, 352, 353, 353, 355, 354, 357, - 356, 359, 358, 361, 360, 363, 362, 365, 364, 366, - 366, 367, 369, 368, 370, 370, 372, 371, 373, 373, - 374, 374, 374, 374, 374, 375, 377, 376, 379, 378, - 380, 380, 382, 381, 383, 383, 385, 384 ++ 0, 112, 114, 113, 115, 113, 116, 113, 117, 113, ++ 118, 113, 119, 113, 120, 113, 121, 113, 122, 113, ++ 123, 113, 124, 113, 125, 125, 125, 125, 125, 125, ++ 125, 126, 128, 127, 129, 129, 130, 130, 132, 131, ++ 134, 133, 135, 135, 136, 136, 137, 139, 138, 140, ++ 140, 141, 141, 141, 141, 141, 143, 142, 145, 144, ++ 146, 146, 147, 147, 147, 147, 147, 147, 147, 147, ++ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, ++ 147, 147, 147, 147, 148, 149, 150, 151, 152, 154, ++ 153, 156, 155, 158, 157, 160, 159, 162, 161, 163, ++ 163, 164, 164, 164, 164, 164, 164, 164, 164, 164, ++ 166, 165, 168, 167, 170, 169, 172, 171, 174, 173, ++ 175, 176, 177, 179, 178, 180, 180, 181, 181, 182, ++ 183, 185, 184, 186, 186, 187, 187, 188, 190, 189, ++ 192, 191, 193, 193, 194, 194, 196, 195, 198, 197, ++ 199, 199, 199, 200, 200, 202, 201, 204, 203, 206, ++ 205, 207, 207, 208, 208, 208, 208, 208, 208, 209, ++ 210, 211, 212, 213, 214, 216, 215, 217, 217, 218, ++ 218, 220, 219, 222, 221, 223, 223, 224, 224, 224, ++ 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, ++ 224, 224, 224, 224, 226, 225, 228, 227, 230, 229, ++ 232, 231, 234, 233, 235, 236, 238, 237, 239, 239, ++ 240, 240, 242, 241, 244, 243, 245, 245, 246, 246, ++ 247, 247, 247, 247, 247, 247, 247, 247, 248, 249, ++ 250, 252, 251, 254, 253, 256, 255, 257, 259, 258, ++ 260, 262, 261, 263, 263, 264, 264, 266, 265, 268, ++ 267, 269, 269, 270, 270, 271, 271, 271, 271, 271, ++ 271, 272, 274, 273, 275, 276, 277, 279, 278, 280, ++ 280, 281, 281, 283, 282, 285, 284, 286, 286, 287, ++ 287, 287, 289, 288, 291, 290, 292, 292, 293, 293, ++ 295, 294, 297, 296, 298, 298, 299, 299, 299, 299, ++ 299, 299, 299, 301, 300, 302, 304, 303, 305, 306, ++ 308, 307, 309, 309, 310, 310, 312, 311, 314, 313, ++ 315, 315, 316, 316, 317, 317, 317, 317, 317, 317, ++ 317, 317, 319, 318, 321, 320, 323, 322, 325, 324, ++ 327, 326, 329, 328, 331, 330, 333, 332, 335, 334, ++ 336, 336, 337, 231, 338, 338, 339, 339, 340, 340, ++ 340, 340, 341, 343, 342, 345, 344, 346, 346, 347, ++ 347, 347, 347, 347, 347, 347, 349, 348, 350, 350, ++ 350, 351, 353, 352, 354, 355, 356, 358, 357, 359, ++ 359, 360, 360, 362, 361, 364, 363, 366, 365, 368, ++ 367, 370, 369, 372, 371, 373, 373, 374, 376, 375, ++ 377, 377, 379, 378, 380, 380, 381, 381, 381, 381, ++ 381, 382, 384, 383, 386, 385, 387, 387, 389, 388, ++ 390, 390, 392, 391 }; const unsigned char @@@ -3367,34 -3354,34 +3425,35 @@@ 1, 0, 6, 1, 3, 1, 1, 1, 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 0, 4, 0, 4, 0, - 6, 1, 3, 3, 0, 6, 0, 1, 1, 3, - 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 3, 3, 0, 6, 0, 1, + 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 1, 0, 4, 0, 4, 1, 0, 4, 3, ++ 1, 0, 4, 0, 4, 0, 4, 1, 0, 4, ++ 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, ++ 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, ++ 1, 1, 0, 4, 1, 1, 3, 0, 6, 0, ++ 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, ++ 1, 1, 0, 4, 0, 6, 0, 1, 1, 3, ++ 0, 4, 0, 4, 1, 3, 1, 1, 1, 1, ++ 1, 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, -- 1, 0, 4, 1, 1, 3, 0, 6, 0, 1, -- 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, -- 1, 0, 4, 0, 6, 0, 1, 1, 3, 0, -- 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, -- 1, 1, 0, 4, 3, 0, 4, 3, 3, 0, -- 6, 0, 1, 1, 3, 0, 4, 0, 4, 0, -- 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -- 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, -- 4, 0, 4, 0, 6, 0, 4, 0, 6, 1, -- 3, 0, 4, 0, 1, 1, 3, 1, 1, 1, -- 1, 1, 0, 4, 0, 6, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 0, 4, 1, 1, 1, - 3, 0, 4, 3, 3, 3, 0, 6, 1, 3, - 1, 1, 0, 4, 0, 4, 0, 6, 0, 4, - 0, 4, 0, 6, 1, 3, 1, 0, 6, 1, - 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, - 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, - 3, 0, 4 - 1, 1, 1, 1, 1, 3, 0, 4, 3, 3, - 3, 0, 6, 1, 3, 1, 1, 0, 4, 0, - 4, 0, 6, 0, 4, 0, 4, 0, 6, 1, - 3, 1, 0, 6, 1, 3, 0, 4, 1, 3, - 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, - 1, 3, 0, 4, 1, 3, 0, 4 ++ 1, 1, 0, 4, 0, 4, 0, 4, 0, 4, ++ 0, 4, 0, 4, 0, 6, 0, 4, 0, 6, ++ 1, 3, 0, 4, 0, 1, 1, 3, 1, 1, ++ 1, 1, 1, 0, 4, 0, 6, 1, 3, 1, ++ 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, ++ 1, 3, 0, 4, 3, 3, 3, 0, 6, 1, ++ 3, 1, 1, 0, 4, 0, 4, 0, 6, 0, ++ 4, 0, 4, 0, 6, 1, 3, 1, 0, 6, ++ 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, ++ 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, ++ 1, 3, 0, 4 }; @@@ -3422,19 -3409,21 +3481,21 @@@ "\"ip-addresses\"", "\"prefixes\"", "\"duid\"", "\"hw-address\"", "\"hostname\"", "\"relay\"", "\"ip-address\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"", "\"expired-leases-processing\"", - "\"server-id\"", "\"LLT\"", "\"EN\"", "\"LL\"", "\"identifier\"", - "\"htype\"", "\"time\"", "\"enterprise-id\"", "\"dhcp4o6-port\"", - "\"control-socket\"", "\"socket-type\"", "\"socket-name\"", - "\"dhcp-ddns\"", "\"Logging\"", "\"loggers\"", "\"output_options\"", - "\"output\"", "\"debuglevel\"", "\"severity\"", "\"Dhcp4\"", - "\"DhcpDdns\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", "SUB_DHCP6", - "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", "SUB_PD_POOL", - "SUB_RESERVATION", "SUB_OPTION_DEF", "SUB_OPTION_DATA", - "SUB_HOOKS_LIBRARY", "\"constant string\"", "\"integer\"", - "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "value", - "sub_json", "map2", "$@12", "map_content", "not_empty_map", - "list_generic", "$@13", "list2", "$@14", "list_content", + "\"reclaim-timer-wait-time\"", "\"flush-reclaimed-timer-wait-time\"", + "\"hold-reclaimed-time\"", "\"max-reclaim-leases\"", + "\"max-reclaim-time\"", "\"unwarned-reclaim-cycles\"", "\"server-id\"", - "\"identifier\"", "\"htype\"", "\"time\"", "\"enterprise-id\"", - "\"dhcp4o6-port\"", "\"control-socket\"", "\"socket-type\"", - "\"socket-name\"", "\"dhcp-ddns\"", "\"Logging\"", "\"loggers\"", - "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", - "\"Dhcp4\"", "\"DhcpDdns\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", - "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", - "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEF", "SUB_OPTION_DATA", - "SUB_HOOKS_LIBRARY", "\"constant string\"", "\"integer\"", - "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "value", - "sub_json", "map2", "$@12", "map_content", "not_empty_map", - "list_generic", "$@13", "list2", "$@14", "list_content", ++ "\"LLT\"", "\"EN\"", "\"LL\"", "\"identifier\"", "\"htype\"", "\"time\"", ++ "\"enterprise-id\"", "\"dhcp4o6-port\"", "\"control-socket\"", ++ "\"socket-type\"", "\"socket-name\"", "\"dhcp-ddns\"", "\"Logging\"", ++ "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", ++ "\"severity\"", "\"Dhcp4\"", "\"DhcpDdns\"", "TOPLEVEL_JSON", ++ "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", ++ "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEF", ++ "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "\"constant string\"", ++ "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", ++ "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", ++ "$@11", "value", "sub_json", "map2", "$@12", "map_content", ++ "not_empty_map", "list_generic", "$@13", "list2", "$@14", "list_content", "not_empty_list", "unknown_map_entry", "syntax_map", "$@15", "global_objects", "global_object", "dhcp6_object", "$@16", "sub_dhcp6", "$@17", "global_params", "global_param", "preferred_lifetime", @@@ -3453,98 -3442,101 +3514,102 @@@ "hooks_library", "$@32", "sub_hooks_library", "$@33", "hooks_params", "hooks_param", "library", "$@34", "parameters", "$@35", "expired_leases_processing", "$@36", "expired_leases_params", - "expired_leases_param", "subnet6_list", "$@37", "subnet6_list_content", - "not_empty_subnet6_list", "subnet6", "$@38", "sub_subnet6", "$@39", - "subnet6_params", "subnet6_param", "subnet", "$@40", "interface", "$@41", - "interface_id", "$@42", "client_class", "$@43", "reservation_mode", - "$@44", "id", "rapid_commit", "option_def_list", "$@45", - "option_def_list_content", "not_empty_option_def_list", - "option_def_entry", "$@46", "sub_option_def", "$@47", - "option_def_params", "not_empty_option_def_params", "option_def_param", - "option_def_name", "code", "option_def_code", "option_def_type", "$@48", + "expired_leases_param", "reclaim_timer_wait_time", + "flush_reclaimed_timer_wait_time", "hold_reclaimed_time", + "max_reclaim_leases", "max_reclaim_time", "unwarned_reclaim_cycles", + "subnet6_list", "$@37", "subnet6_list_content", "not_empty_subnet6_list", + "subnet6", "$@38", "sub_subnet6", "$@39", "subnet6_params", + "subnet6_param", "subnet", "$@40", "interface", "$@41", "interface_id", + "$@42", "client_class", "$@43", "reservation_mode", "$@44", "id", + "rapid_commit", "option_def_list", "$@45", "option_def_list_content", + "not_empty_option_def_list", "option_def_entry", "$@46", + "sub_option_def", "$@47", "option_def_params", + "not_empty_option_def_params", "option_def_param", "option_def_name", - "code", "option_def_code", "option_def_type", "option_def_record_types", - "$@48", "space", "$@49", "option_def_space", "option_def_encapsulate", - "$@50", "option_def_array", "option_data_list", "$@51", - "option_data_list_content", "not_empty_option_data_list", - "option_data_entry", "$@52", "sub_option_data", "$@53", ++ "code", "option_def_code", "option_def_type", "$@48", + "option_def_record_types", "$@49", "space", "$@50", "option_def_space", + "option_def_encapsulate", "$@51", "option_def_array", "option_data_list", + "$@52", "option_data_list_content", "not_empty_option_data_list", + "option_data_entry", "$@53", "sub_option_data", "$@54", "option_data_params", "not_empty_option_data_params", - "option_data_param", "option_data_name", "option_data_data", "$@54", + "option_data_param", "option_data_name", "option_data_data", "$@55", "option_data_code", "option_data_space", "option_data_csv_format", - "pools_list", "$@55", "pools_list_content", "not_empty_pools_list", - "pool_list_entry", "$@56", "sub_pool6", "$@57", "pool_params", - "pool_param", "pool_entry", "$@58", "pd_pools_list", "$@59", + "pools_list", "$@56", "pools_list_content", "not_empty_pools_list", + "pool_list_entry", "$@57", "sub_pool6", "$@58", "pool_params", + "pool_param", "pool_entry", "$@59", "pd_pools_list", "$@60", "pd_pools_list_content", "not_empty_pd_pools_list", "pd_pool_entry", - "$@60", "sub_pd_pool", "$@61", "pd_pool_params", "pd_pool_param", - "pd_prefix", "$@62", "pd_prefix_len", "excluded_prefix", "$@63", - "excluded_prefix_len", "pd_delegated_len", "reservations", "$@64", + "$@61", "sub_pd_pool", "$@62", "pd_pool_params", "pd_pool_param", + "pd_prefix", "$@63", "pd_prefix_len", "excluded_prefix", "$@64", + "excluded_prefix_len", "pd_delegated_len", "reservations", "$@65", "reservations_list", "not_empty_reservations_list", "reservation", - "$@65", "sub_reservation", "$@66", "reservation_params", + "$@66", "sub_reservation", "$@67", "reservation_params", "not_empty_reservation_params", "reservation_param", "ip_addresses", - "$@67", "prefixes", "$@68", "duid", "$@69", "hw_address", "$@70", - "hostname", "$@71", "reservation_client_classes", "$@72", "relay", - "$@73", "relay_map", "$@74", "client_classes", "$@75", - "client_classes_list", "$@76", "client_class_params", + "$@68", "prefixes", "$@69", "duid", "$@70", "hw_address", "$@71", + "hostname", "$@72", "reservation_client_classes", "$@73", "relay", + "$@74", "relay_map", "$@75", "client_classes", "$@76", + "client_classes_list", "$@77", "client_class_params", "not_empty_client_class_params", "client_class_param", - "client_class_name", "client_class_test", "$@77", "server_id", "$@78", - "server_id_params", "server_id_param", "htype", "identifier", "$@79", - "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@80", - "control_socket_params", "control_socket_param", "socket_type", "$@81", - "socket_name", "$@82", "dhcp_ddns", "$@83", "dhcp4_json_object", "$@84", - "dhcpddns_json_object", "$@85", "logging_object", "$@86", - "logging_params", "logging_param", "loggers", "$@87", "loggers_entries", - "logger_entry", "$@88", "logger_params", "logger_param", "debuglevel", - "severity", "$@89", "output_options_list", "$@90", - "output_options_list_content", "output_entry", "$@91", "output_params", - "output_param", "$@92", YY_NULLPTR + "client_class_name", "client_class_test", "$@78", "server_id", "$@79", + "server_id_params", "server_id_param", "server_id_type", "$@80", + "duid_type", "htype", "identifier", "$@81", "time", "enterprise_id", + "dhcp4o6_port", "control_socket", "$@82", "control_socket_params", + "control_socket_param", "socket_type", "$@83", "socket_name", "$@84", + "dhcp_ddns", "$@85", "dhcp4_json_object", "$@86", "dhcpddns_json_object", + "$@87", "logging_object", "$@88", "logging_params", "logging_param", + "loggers", "$@89", "loggers_entries", "logger_entry", "$@90", + "logger_params", "logger_param", "debuglevel", "severity", "$@91", + "output_options_list", "$@92", "output_options_list_content", + "output_entry", "$@93", "output_params", "output_param", "$@94", YY_NULLPTR }; #if PARSER6_DEBUG const unsigned short int Dhcp6Parser::yyrline_[] = { - 0, 202, 202, 202, 203, 203, 204, 204, 205, 205, - 206, 206, 207, 207, 208, 208, 209, 209, 210, 210, - 211, 211, 212, 212, 220, 221, 222, 223, 224, 225, - 226, 229, 234, 234, 246, 247, 250, 254, 261, 261, - 269, 269, 276, 277, 280, 284, 295, 305, 305, 317, - 318, 322, 323, 324, 325, 326, 329, 329, 346, 346, - 354, 355, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 384, 389, 394, 399, 404, 409, - 409, 419, 419, 427, 427, 437, 437, 447, 447, 457, - 458, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 472, 472, 480, 480, 488, 488, 496, 496, 504, 504, - 512, 517, 522, 527, 527, 537, 538, 541, 542, 545, - 550, 555, 555, 565, 566, 569, 570, 573, 578, 578, - 588, 588, 598, 599, 602, 603, 606, 606, 614, 614, - 622, 623, 624, 627, 628, 631, 631, 639, 639, 647, - 647, 657, 658, 664, 672, 672, 685, 686, 689, 690, - 697, 697, 720, 720, 729, 730, 734, 735, 736, 737, - 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, - 748, 749, 750, 753, 753, 761, 761, 769, 769, 777, - 777, 785, 785, 793, 798, 807, 807, 819, 820, 823, - 824, 829, 829, 840, 840, 850, 851, 854, 855, 858, - 859, 860, 861, 862, 863, 864, 865, 868, 870, 875, - 877, 877, 885, 885, 893, 893, 901, 903, 903, 911, - 920, 920, 932, 933, 938, 939, 944, 944, 955, 955, - 966, 967, 972, 973, 978, 979, 980, 981, 982, 983, - 986, 988, 988, 996, 998, 1000, 1008, 1008, 1020, 1021, - 1024, 1025, 1028, 1028, 1036, 1036, 1044, 1045, 1048, 1049, - 1050, 1053, 1053, 1064, 1064, 1076, 1077, 1080, 1081, 1084, - 1084, 1092, 1092, 1100, 1101, 1104, 1105, 1106, 1107, 1108, - 1109, 1110, 1113, 1113, 1121, 1126, 1126, 1134, 1139, 1147, - 1147, 1157, 1158, 1161, 1162, 1165, 1165, 1173, 1173, 1181, - 1182, 1185, 1186, 1190, 1191, 1192, 1193, 1194, 1195, 1196, - 1197, 1200, 1200, 1210, 1210, 1220, 1220, 1228, 1228, 1236, - 1236, 1244, 1244, 1257, 1257, 1267, 1267, 1278, 1278, 1288, - 1289, 1292, 1292, 1300, 1301, 1304, 1305, 1308, 1309, 1310, - 1311, 1314, 1316, 1316, 1327, 1327, 1337, 1338, 1341, 1342, - 1343, 1344, 1345, 1346, 1347, 1350, 1350, 1357, 1358, 1359, - 1362, 1367, 1367, 1375, 1380, 1387, 1394, 1394, 1404, 1405, - 1408, 1409, 1412, 1412, 1420, 1420, 1430, 1430, 1442, 1442, - 1449, 1449, 1461, 1461, 1474, 1475, 1479, 1483, 1483, 1495, - 1496, 1500, 1500, 1508, 1509, 1512, 1513, 1514, 1515, 1516, - 1519, 1523, 1523, 1531, 1531, 1541, 1542, 1545, 1545, 1553, - 1554, 1557, 1557 - 0, 204, 204, 204, 205, 205, 206, 206, 207, 207, - 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, - 213, 213, 214, 214, 222, 223, 224, 225, 226, 227, - 228, 231, 236, 236, 248, 249, 252, 256, 263, 263, - 271, 271, 278, 279, 282, 286, 297, 307, 307, 319, - 320, 324, 325, 326, 327, 328, 331, 331, 348, 348, - 356, 357, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, 382, 383, 386, 391, 396, 401, 406, 411, - 411, 421, 421, 429, 429, 439, 439, 449, 449, 459, - 460, 463, 464, 465, 466, 467, 468, 469, 470, 471, - 474, 474, 482, 482, 490, 490, 498, 498, 506, 506, - 514, 519, 524, 529, 529, 539, 540, 543, 544, 547, - 552, 557, 557, 567, 568, 571, 572, 575, 580, 580, - 590, 590, 600, 601, 604, 605, 608, 608, 616, 616, - 624, 625, 626, 629, 630, 633, 633, 641, 641, 649, - 649, 659, 660, 663, 664, 665, 666, 667, 668, 671, - 676, 681, 686, 691, 696, 704, 704, 717, 718, 721, - 722, 729, 729, 752, 752, 761, 762, 766, 767, 768, - 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, - 779, 780, 781, 782, 785, 785, 793, 793, 801, 801, - 809, 809, 817, 817, 825, 830, 839, 839, 851, 852, - 855, 856, 861, 861, 872, 872, 882, 883, 886, 887, - 890, 891, 892, 893, 894, 895, 896, 897, 900, 902, - 907, 909, 911, 911, 919, 919, 927, 929, 929, 937, - 946, 946, 958, 959, 964, 965, 970, 970, 981, 981, - 992, 993, 998, 999, 1004, 1005, 1006, 1007, 1008, 1009, - 1012, 1014, 1014, 1022, 1024, 1026, 1034, 1034, 1046, 1047, - 1050, 1051, 1054, 1054, 1062, 1062, 1070, 1071, 1074, 1075, - 1076, 1079, 1079, 1090, 1090, 1102, 1103, 1106, 1107, 1110, - 1110, 1118, 1118, 1126, 1127, 1130, 1131, 1132, 1133, 1134, - 1135, 1136, 1139, 1139, 1147, 1152, 1152, 1160, 1165, 1173, - 1173, 1183, 1184, 1187, 1188, 1191, 1191, 1199, 1199, 1207, - 1208, 1211, 1212, 1216, 1217, 1218, 1219, 1220, 1221, 1222, - 1223, 1226, 1226, 1236, 1236, 1246, 1246, 1254, 1254, 1262, - 1262, 1270, 1270, 1283, 1283, 1293, 1293, 1304, 1304, 1314, - 1315, 1318, 1318, 1326, 1327, 1330, 1331, 1334, 1335, 1336, - 1337, 1340, 1342, 1342, 1353, 1353, 1363, 1364, 1367, 1368, - 1369, 1370, 1371, 1372, 1373, 1376, 1381, 1381, 1389, 1394, - 1401, 1408, 1408, 1418, 1419, 1422, 1423, 1426, 1426, 1434, - 1434, 1444, 1444, 1456, 1456, 1463, 1463, 1475, 1475, 1488, - 1489, 1493, 1497, 1497, 1509, 1510, 1514, 1514, 1522, 1523, - 1526, 1527, 1528, 1529, 1530, 1533, 1537, 1537, 1545, 1545, - 1555, 1556, 1559, 1559, 1567, 1568, 1571, 1571 ++ 0, 208, 208, 208, 209, 209, 210, 210, 211, 211, ++ 212, 212, 213, 213, 214, 214, 215, 215, 216, 216, ++ 217, 217, 218, 218, 226, 227, 228, 229, 230, 231, ++ 232, 235, 240, 240, 252, 253, 256, 260, 267, 267, ++ 275, 275, 282, 283, 286, 290, 301, 311, 311, 323, ++ 324, 328, 329, 330, 331, 332, 335, 335, 352, 352, ++ 360, 361, 366, 367, 368, 369, 370, 371, 372, 373, ++ 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, ++ 384, 385, 386, 387, 390, 395, 400, 405, 410, 415, ++ 415, 425, 425, 433, 433, 443, 443, 453, 453, 463, ++ 464, 467, 468, 469, 470, 471, 472, 473, 474, 475, ++ 478, 478, 486, 486, 494, 494, 502, 502, 510, 510, ++ 518, 523, 528, 533, 533, 543, 544, 547, 548, 551, ++ 556, 561, 561, 571, 572, 575, 576, 579, 584, 584, ++ 594, 594, 604, 605, 608, 609, 612, 612, 620, 620, ++ 628, 629, 630, 633, 634, 637, 637, 645, 645, 653, ++ 653, 663, 664, 667, 668, 669, 670, 671, 672, 675, ++ 680, 685, 690, 695, 700, 708, 708, 721, 722, 725, ++ 726, 733, 733, 756, 756, 765, 766, 770, 771, 772, ++ 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, ++ 783, 784, 785, 786, 789, 789, 797, 797, 805, 805, ++ 813, 813, 821, 821, 829, 834, 843, 843, 855, 856, ++ 859, 860, 865, 865, 876, 876, 886, 887, 890, 891, ++ 894, 895, 896, 897, 898, 899, 900, 901, 904, 906, ++ 911, 913, 913, 921, 921, 929, 929, 937, 939, 939, ++ 947, 956, 956, 968, 969, 974, 975, 980, 980, 991, ++ 991, 1002, 1003, 1008, 1009, 1014, 1015, 1016, 1017, 1018, ++ 1019, 1022, 1024, 1024, 1032, 1034, 1036, 1044, 1044, 1056, ++ 1057, 1060, 1061, 1064, 1064, 1072, 1072, 1080, 1081, 1084, ++ 1085, 1086, 1089, 1089, 1100, 1100, 1112, 1113, 1116, 1117, ++ 1120, 1120, 1128, 1128, 1136, 1137, 1140, 1141, 1142, 1143, ++ 1144, 1145, 1146, 1149, 1149, 1157, 1162, 1162, 1170, 1175, ++ 1183, 1183, 1193, 1194, 1197, 1198, 1201, 1201, 1209, 1209, ++ 1217, 1218, 1221, 1222, 1226, 1227, 1228, 1229, 1230, 1231, ++ 1232, 1233, 1236, 1236, 1246, 1246, 1256, 1256, 1264, 1264, ++ 1272, 1272, 1280, 1280, 1293, 1293, 1303, 1303, 1314, 1314, ++ 1324, 1325, 1328, 1328, 1336, 1337, 1340, 1341, 1344, 1345, ++ 1346, 1347, 1350, 1352, 1352, 1363, 1363, 1373, 1374, 1377, ++ 1378, 1379, 1380, 1381, 1382, 1383, 1386, 1386, 1393, 1394, ++ 1395, 1398, 1403, 1403, 1411, 1416, 1423, 1430, 1430, 1440, ++ 1441, 1444, 1445, 1448, 1448, 1456, 1456, 1466, 1466, 1478, ++ 1478, 1485, 1485, 1497, 1497, 1510, 1511, 1515, 1519, 1519, ++ 1531, 1532, 1536, 1536, 1544, 1545, 1548, 1549, 1550, 1551, ++ 1552, 1555, 1559, 1559, 1567, 1567, 1577, 1578, 1581, 1581, ++ 1589, 1590, 1593, 1593 }; // Print the state stack on the debug stream. @@@ -3579,8 -3571,8 +3644,8 @@@ #line 14 "dhcp6_parser.yy" // lalr1.cc:1167 } } // isc::dhcp - #line 3583 "dhcp6_parser.cc" // lalr1.cc:1167 - #line 1565 "dhcp6_parser.yy" // lalr1.cc:1168 -#line 3575 "dhcp6_parser.cc" // lalr1.cc:1167 -#line 1579 "dhcp6_parser.yy" // lalr1.cc:1168 ++#line 3648 "dhcp6_parser.cc" // lalr1.cc:1167 ++#line 1601 "dhcp6_parser.yy" // lalr1.cc:1168 void diff --cc src/bin/dhcp6/dhcp6_parser.h index ed70fd647a,b8b1bc1e92..cc9ba3d57e --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@@ -40,7 -40,7 +40,7 @@@ #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED // // "%code requires" blocks. --#line 17 "dhcp6_parser.yy" // lalr1.cc:377 ++#line 17 "dhcp6_parser.yy" // lalr1.cc:392 #include #include @@@ -52,7 -52,7 +52,7 @@@ using namespace isc::dhcp using namespace isc::data; using namespace std; --#line 56 "dhcp6_parser.h" // lalr1.cc:377 ++#line 56 "dhcp6_parser.h" // lalr1.cc:392 # include # include // std::abort @@@ -135,9 -135,9 +135,9 @@@ # endif /* ! defined YYDEBUG */ #endif /* ! defined PARSER6_DEBUG */ --#line 14 "dhcp6_parser.yy" // lalr1.cc:377 ++#line 14 "dhcp6_parser.yy" // lalr1.cc:392 namespace isc { namespace dhcp { --#line 141 "dhcp6_parser.h" // lalr1.cc:377 ++#line 141 "dhcp6_parser.h" // lalr1.cc:392 @@@ -409,42 -408,45 +409,48 @@@ TOKEN_LIBRARY = 322, TOKEN_PARAMETERS = 323, TOKEN_EXPIRED_LEASES_PROCESSING = 324, - TOKEN_SERVER_ID = 325, - TOKEN_LLT = 326, - TOKEN_EN = 327, - TOKEN_LL = 328, - TOKEN_IDENTIFIER = 329, - TOKEN_HTYPE = 330, - TOKEN_TIME = 331, - TOKEN_ENTERPRISE_ID = 332, - TOKEN_DHCP4O6_PORT = 333, - TOKEN_CONTROL_SOCKET = 334, - TOKEN_SOCKET_TYPE = 335, - TOKEN_SOCKET_NAME = 336, - TOKEN_DHCP_DDNS = 337, - TOKEN_LOGGING = 338, - TOKEN_LOGGERS = 339, - TOKEN_OUTPUT_OPTIONS = 340, - TOKEN_OUTPUT = 341, - TOKEN_DEBUGLEVEL = 342, - TOKEN_SEVERITY = 343, - TOKEN_DHCP4 = 344, - TOKEN_DHCPDDNS = 345, - TOKEN_TOPLEVEL_JSON = 346, - TOKEN_TOPLEVEL_DHCP6 = 347, - TOKEN_SUB_DHCP6 = 348, - TOKEN_SUB_INTERFACES6 = 349, - TOKEN_SUB_SUBNET6 = 350, - TOKEN_SUB_POOL6 = 351, - TOKEN_SUB_PD_POOL = 352, - TOKEN_SUB_RESERVATION = 353, - TOKEN_SUB_OPTION_DEF = 354, - TOKEN_SUB_OPTION_DATA = 355, - TOKEN_SUB_HOOKS_LIBRARY = 356, - TOKEN_STRING = 357, - TOKEN_INTEGER = 358, - TOKEN_FLOAT = 359, - TOKEN_BOOLEAN = 360 + TOKEN_RECLAIM_TIMER_WAIT_TIME = 325, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 326, + TOKEN_HOLD_RECLAIMED_TIME = 327, + TOKEN_MAX_RECLAIM_LEASES = 328, + TOKEN_MAX_RECLAIM_TIME = 329, + TOKEN_UNWARNED_RECLAIM_CYCLES = 330, + TOKEN_SERVER_ID = 331, - TOKEN_IDENTIFIER = 332, - TOKEN_HTYPE = 333, - TOKEN_TIME = 334, - TOKEN_ENTERPRISE_ID = 335, - TOKEN_DHCP4O6_PORT = 336, - TOKEN_CONTROL_SOCKET = 337, - TOKEN_SOCKET_TYPE = 338, - TOKEN_SOCKET_NAME = 339, - TOKEN_DHCP_DDNS = 340, - TOKEN_LOGGING = 341, - TOKEN_LOGGERS = 342, - TOKEN_OUTPUT_OPTIONS = 343, - TOKEN_OUTPUT = 344, - TOKEN_DEBUGLEVEL = 345, - TOKEN_SEVERITY = 346, - TOKEN_DHCP4 = 347, - TOKEN_DHCPDDNS = 348, - TOKEN_TOPLEVEL_JSON = 349, - TOKEN_TOPLEVEL_DHCP6 = 350, - TOKEN_SUB_DHCP6 = 351, - TOKEN_SUB_INTERFACES6 = 352, - TOKEN_SUB_SUBNET6 = 353, - TOKEN_SUB_POOL6 = 354, - TOKEN_SUB_PD_POOL = 355, - TOKEN_SUB_RESERVATION = 356, - TOKEN_SUB_OPTION_DEF = 357, - TOKEN_SUB_OPTION_DATA = 358, - TOKEN_SUB_HOOKS_LIBRARY = 359, - TOKEN_STRING = 360, - TOKEN_INTEGER = 361, - TOKEN_FLOAT = 362, - TOKEN_BOOLEAN = 363 ++ TOKEN_LLT = 332, ++ TOKEN_EN = 333, ++ TOKEN_LL = 334, ++ TOKEN_IDENTIFIER = 335, ++ TOKEN_HTYPE = 336, ++ TOKEN_TIME = 337, ++ TOKEN_ENTERPRISE_ID = 338, ++ TOKEN_DHCP4O6_PORT = 339, ++ TOKEN_CONTROL_SOCKET = 340, ++ TOKEN_SOCKET_TYPE = 341, ++ TOKEN_SOCKET_NAME = 342, ++ TOKEN_DHCP_DDNS = 343, ++ TOKEN_LOGGING = 344, ++ TOKEN_LOGGERS = 345, ++ TOKEN_OUTPUT_OPTIONS = 346, ++ TOKEN_OUTPUT = 347, ++ TOKEN_DEBUGLEVEL = 348, ++ TOKEN_SEVERITY = 349, ++ TOKEN_DHCP4 = 350, ++ TOKEN_DHCPDDNS = 351, ++ TOKEN_TOPLEVEL_JSON = 352, ++ TOKEN_TOPLEVEL_DHCP6 = 353, ++ TOKEN_SUB_DHCP6 = 354, ++ TOKEN_SUB_INTERFACES6 = 355, ++ TOKEN_SUB_SUBNET6 = 356, ++ TOKEN_SUB_POOL6 = 357, ++ TOKEN_SUB_PD_POOL = 358, ++ TOKEN_SUB_RESERVATION = 359, ++ TOKEN_SUB_OPTION_DEF = 360, ++ TOKEN_SUB_OPTION_DATA = 361, ++ TOKEN_SUB_HOOKS_LIBRARY = 362, ++ TOKEN_STRING = 363, ++ TOKEN_INTEGER = 364, ++ TOKEN_FLOAT = 365, ++ TOKEN_BOOLEAN = 366 }; }; @@@ -1180,12 -1194,12 +1210,12 @@@ enum { yyeof_ = 0, - yylast_ = 640, ///< Last index in yytable_. - yynnts_ = 275, ///< Number of nonterminal symbols. - yylast_ = 651, ///< Last index in yytable_. - yynnts_ = 277, ///< Number of nonterminal symbols. ++ yylast_ = 661, ///< Last index in yytable_. ++ yynnts_ = 281, ///< Number of nonterminal symbols. yyfinal_ = 24, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 106 ///< Number of tokens. - yyntokens_ = 109 ///< Number of tokens. ++ yyntokens_ = 112 ///< Number of tokens. }; @@@ -1238,9 -1252,9 +1268,9 @@@ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105 - 105, 106, 107, 108 ++ 105, 106, 107, 108, 109, 110, 111 }; - const unsigned int user_token_number_max_ = 360; - const unsigned int user_token_number_max_ = 363; ++ const unsigned int user_token_number_max_ = 366; const token_number_type undef_token_ = 2; if (static_cast(t) <= yyeof_) @@@ -1273,24 -1287,23 +1303,24 @@@ { switch (other.type_get ()) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type value.copy< ElementPtr > (other.value); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" value.copy< bool > (other.value); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" value.copy< double > (other.value); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" value.copy< int64_t > (other.value); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" value.copy< std::string > (other.value); break; @@@ -1311,24 -1324,23 +1341,24 @@@ (void) v; switch (this->type_get ()) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type value.copy< ElementPtr > (v); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" value.copy< bool > (v); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" value.copy< double > (v); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" value.copy< int64_t > (v); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" value.copy< std::string > (v); break; @@@ -1408,24 -1420,23 +1438,24 @@@ // Type destructor. switch (yytype) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type value.template destroy< ElementPtr > (); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" value.template destroy< bool > (); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" value.template destroy< double > (); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" value.template destroy< int64_t > (); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" value.template destroy< std::string > (); break; @@@ -1452,24 -1463,23 +1482,24 @@@ super_type::move(s); switch (this->type_get ()) { - case 119: // value - case 338: // duid_type - case 122: // value ++ case 125: // value ++ case 350: // duid_type value.move< ElementPtr > (s.value); break; - case 105: // "boolean" - case 108: // "boolean" ++ case 111: // "boolean" value.move< bool > (s.value); break; - case 104: // "floating point" - case 107: // "floating point" ++ case 110: // "floating point" value.move< double > (s.value); break; - case 103: // "integer" - case 106: // "integer" ++ case 109: // "integer" value.move< int64_t > (s.value); break; - case 102: // "constant string" - case 105: // "constant string" ++ case 108: // "constant string" value.move< std::string > (s.value); break; @@@ -1538,7 -1548,7 +1568,8 @@@ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360 - 355, 356, 357, 358, 359, 360, 361, 362, 363 ++ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, ++ 365, 366 }; return static_cast (yytoken_number_[type]); } @@@ -2168,9 -2196,9 +2235,9 @@@ } --#line 14 "dhcp6_parser.yy" // lalr1.cc:377 ++#line 14 "dhcp6_parser.yy" // lalr1.cc:392 } } // isc::dhcp - #line 2174 "dhcp6_parser.h" // lalr1.cc:377 -#line 2202 "dhcp6_parser.h" // lalr1.cc:377 ++#line 2241 "dhcp6_parser.h" // lalr1.cc:392 diff --cc src/bin/dhcp6/dhcp6_parser.yy index 32548f43ae,ab975a7b68..03d3b3893e --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@@ -119,11 -119,14 +119,17 @@@ using namespace std PARAMETERS "parameters" EXPIRED_LEASES_PROCESSING "expired-leases-processing" + RECLAIM_TIMER_WAIT_TIME "reclaim-timer-wait-time" + FLUSH_RECLAIMED_TIMER_WAIT_TIME "flush-reclaimed-timer-wait-time" + HOLD_RECLAIMED_TIME "hold-reclaimed-time" + MAX_RECLAIM_LEASES "max-reclaim-leases" + MAX_RECLAIM_TIME "max-reclaim-time" + UNWARNED_RECLAIM_CYCLES "unwarned-reclaim-cycles" SERVER_ID "server-id" + LLT "LLT" + EN "EN" + LL "LL" IDENTIFIER "identifier" HTYPE "htype" TIME "time" diff --cc src/bin/dhcp6/json_config_parser.cc index 22f846cfc9,c713fa62a5..68af31fd37 --- a/src/bin/dhcp6/json_config_parser.cc +++ b/src/bin/dhcp6/json_config_parser.cc @@@ -717,12 -720,12 +717,11 @@@ DhcpConfigParser* createGlobal6DhcpConf } else if (config_id.compare("relay-supplied-options") == 0) { parser = new RSOOListConfigParser(config_id); // control-socket has been converted to SimpleParser. - } else if (config_id.compare("expired-leases-processing") == 0) { - parser = new ExpirationConfigParser(); + // expired-leases-processing has been converted to SimpleParser. } else if (config_id.compare("client-classes") == 0) { parser = new ClientClassDefListParser(config_id, globalContext()); - } else if (config_id.compare("server-id") == 0) { - parser = new DUIDConfigParser(); // host-reservation-identifiers have been converted to SimpleParser already. + // server-id has been migrated to SimpleParser } else { isc_throw(DhcpConfigError, "unsupported global configuration parameter: " @@@ -925,20 -924,12 +924,26 @@@ configureDhcp6Server(Dhcpv6Srv&, isc::d continue; } + if (config_pair.first == "server-id") { + DUIDConfigParser parser; + const CfgDUIDPtr& cfg = CfgMgr::instance().getStagingCfg()->getCfgDUID(); + parser.parse(cfg, config_pair.second); + continue; + } + + if (config_pair.first == "interfaces-config") { + IfacesConfigParser parser(AF_INET6); + CfgIfacePtr cfg_iface = CfgMgr::instance().getStagingCfg()->getCfgIface(); + parser.parse(cfg_iface, config_pair.second); + continue; + } + + if (config_pair.first == "expired-leases-processing") { + ExpirationConfigParser parser; + parser.parse(config_pair.second); + continue; + } + ParserPtr parser(createGlobal6DhcpConfigParser(config_pair.first, config_pair.second)); LOG_DEBUG(dhcp6_logger, DBG_DHCP6_DETAIL, DHCP6_PARSER_CREATED) diff --cc src/bin/dhcp6/location.hh index 6a149b33cb,8d4524f6c4..807e79140e --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@@ -1,4 -1,4 +1,3 @@@ - // Generated 201701070039 -// Generated 201701070534 // A Bison parser, made by GNU Bison 3.0.4. // Locations for Bison parsers in C++ @@@ -41,9 -41,9 +40,9 @@@ # include "position.hh" --#line 14 "dhcp6_parser.yy" // location.cc:296 ++#line 14 "dhcp6_parser.yy" // location.cc:337 namespace isc { namespace dhcp { --#line 46 "location.hh" // location.cc:296 ++#line 46 "location.hh" // location.cc:337 /// Abstract a location. class location { @@@ -187,7 -187,7 +186,7 @@@ return ostr; } --#line 14 "dhcp6_parser.yy" // location.cc:296 ++#line 14 "dhcp6_parser.yy" // location.cc:337 } } // isc::dhcp --#line 192 "location.hh" // location.cc:296 ++#line 192 "location.hh" // location.cc:337 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --cc src/bin/dhcp6/parser_context.cc index 8b1687711f,68b9c34faf..96ac1203d6 --- a/src/bin/dhcp6/parser_context.cc +++ b/src/bin/dhcp6/parser_context.cc @@@ -145,10 -145,10 +145,12 @@@ Parser6Context::contextName( return ("option-data"); case CLIENT_CLASSES: return ("client-classes"); + case EXPIRED_LEASES_PROCESSING: + return ("expired-leases-processing"); case SERVER_ID: return ("server-id"); + case DUID_TYPE: + return ("duid-type"); case CONTROL_SOCKET: return ("control-socket"); case POOLS: diff --cc src/bin/dhcp6/position.hh index dded956d62,47b56b967a..72cefa7be1 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@@ -1,4 -1,4 +1,3 @@@ - // Generated 201701070039 -// Generated 201701070534 // A Bison parser, made by GNU Bison 3.0.4. // Positions for Bison parsers in C++ @@@ -51,9 -51,9 +50,9 @@@ # endif # endif --#line 14 "dhcp6_parser.yy" // location.cc:296 ++#line 14 "dhcp6_parser.yy" // location.cc:337 namespace isc { namespace dhcp { --#line 56 "position.hh" // location.cc:296 ++#line 56 "position.hh" // location.cc:337 /// Abstract a position. class position { @@@ -175,7 -175,7 +174,7 @@@ return ostr << pos.line << '.' << pos.column; } --#line 14 "dhcp6_parser.yy" // location.cc:296 ++#line 14 "dhcp6_parser.yy" // location.cc:337 } } // isc::dhcp --#line 180 "position.hh" // location.cc:296 ++#line 180 "position.hh" // location.cc:337 #endif // !YY_PARSER6_POSITION_HH_INCLUDED diff --cc src/bin/dhcp6/stack.hh index 5ffb6ac3a4,42a3aa2bbd..7083440b97 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@@ -1,4 -1,4 +1,3 @@@ - // Generated 201701070039 -// Generated 201701070534 // A Bison parser, made by GNU Bison 3.0.4. // Stack handling for Bison parsers in C++ @@@ -41,9 -41,9 +40,9 @@@ # include --#line 14 "dhcp6_parser.yy" // stack.hh:132 ++#line 14 "dhcp6_parser.yy" // stack.hh:151 namespace isc { namespace dhcp { --#line 46 "stack.hh" // stack.hh:132 ++#line 46 "stack.hh" // stack.hh:151 template > class stack { @@@ -151,8 -151,8 +150,8 @@@ unsigned int range_; }; --#line 14 "dhcp6_parser.yy" // stack.hh:132 ++#line 14 "dhcp6_parser.yy" // stack.hh:151 } } // isc::dhcp --#line 156 "stack.hh" // stack.hh:132 ++#line 156 "stack.hh" // stack.hh:151 #endif // !YY_PARSER6_STACK_HH_INCLUDED