diff options
Diffstat (limited to 'src/bin/dhcp4/dhcp4_parser.cc')
-rw-r--r-- | src/bin/dhcp4/dhcp4_parser.cc | 2999 |
1 files changed, 1410 insertions, 1589 deletions
diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 0c7384ad02..ca68d34020 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -411,85 +411,85 @@ namespace isc { namespace dhcp { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 417 "dhcp4_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 423 "dhcp4_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 429 "dhcp4_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 435 "dhcp4_parser.cc" break; case symbol_kind::S_value: // value -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 441 "dhcp4_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 447 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 453 "dhcp4_parser.cc" break; case symbol_kind::S_ddns_conflict_resolution_mode_value: // ddns_conflict_resolution_mode_value -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 459 "dhcp4_parser.cc" break; case symbol_kind::S_socket_type: // socket_type -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 465 "dhcp4_parser.cc" break; case symbol_kind::S_outbound_interface_value: // outbound_interface_value -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 471 "dhcp4_parser.cc" break; case symbol_kind::S_db_type: // db_type -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 477 "dhcp4_parser.cc" break; case symbol_kind::S_on_fail_mode: // on_fail_mode -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 483 "dhcp4_parser.cc" break; case symbol_kind::S_hr_mode: // hr_mode -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 489 "dhcp4_parser.cc" break; case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value -#line 312 "dhcp4_parser.yy" +#line 307 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 495 "dhcp4_parser.cc" break; @@ -771,127 +771,127 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: // $@1: %empty -#line 321 "dhcp4_parser.yy" +#line 316 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 777 "dhcp4_parser.cc" break; case 4: // $@2: %empty -#line 322 "dhcp4_parser.yy" +#line 317 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 783 "dhcp4_parser.cc" break; case 6: // $@3: %empty -#line 323 "dhcp4_parser.yy" +#line 318 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 789 "dhcp4_parser.cc" break; case 8: // $@4: %empty -#line 324 "dhcp4_parser.yy" +#line 319 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 795 "dhcp4_parser.cc" break; case 10: // $@5: %empty -#line 325 "dhcp4_parser.yy" +#line 320 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 801 "dhcp4_parser.cc" break; case 12: // $@6: %empty -#line 326 "dhcp4_parser.yy" +#line 321 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 807 "dhcp4_parser.cc" break; case 14: // $@7: %empty -#line 327 "dhcp4_parser.yy" +#line 322 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 813 "dhcp4_parser.cc" break; case 16: // $@8: %empty -#line 328 "dhcp4_parser.yy" +#line 323 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 819 "dhcp4_parser.cc" break; case 18: // $@9: %empty -#line 329 "dhcp4_parser.yy" +#line 324 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 825 "dhcp4_parser.cc" break; case 20: // $@10: %empty -#line 330 "dhcp4_parser.yy" +#line 325 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 831 "dhcp4_parser.cc" break; case 22: // $@11: %empty -#line 331 "dhcp4_parser.yy" +#line 326 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 837 "dhcp4_parser.cc" break; case 24: // $@12: %empty -#line 332 "dhcp4_parser.yy" +#line 327 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 843 "dhcp4_parser.cc" break; case 26: // $@13: %empty -#line 333 "dhcp4_parser.yy" +#line 328 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 849 "dhcp4_parser.cc" break; case 28: // value: "integer" -#line 341 "dhcp4_parser.yy" +#line 336 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 855 "dhcp4_parser.cc" break; case 29: // value: "floating point" -#line 342 "dhcp4_parser.yy" +#line 337 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 861 "dhcp4_parser.cc" break; case 30: // value: "boolean" -#line 343 "dhcp4_parser.yy" +#line 338 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 867 "dhcp4_parser.cc" break; case 31: // value: "constant string" -#line 344 "dhcp4_parser.yy" +#line 339 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 873 "dhcp4_parser.cc" break; case 32: // value: "null" -#line 345 "dhcp4_parser.yy" +#line 340 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 879 "dhcp4_parser.cc" break; case 33: // value: map2 -#line 346 "dhcp4_parser.yy" +#line 341 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 885 "dhcp4_parser.cc" break; case 34: // value: list_generic -#line 347 "dhcp4_parser.yy" +#line 342 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 891 "dhcp4_parser.cc" break; case 35: // sub_json: value -#line 350 "dhcp4_parser.yy" +#line 345 "dhcp4_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); @@ -900,7 +900,7 @@ namespace isc { namespace dhcp { break; case 36: // $@14: %empty -#line 355 "dhcp4_parser.yy" +#line 350 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -911,7 +911,7 @@ namespace isc { namespace dhcp { break; case 37: // map2: "{" $@14 map_content "}" -#line 360 "dhcp4_parser.yy" +#line 355 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -921,13 +921,13 @@ namespace isc { namespace dhcp { break; case 38: // map_value: map2 -#line 366 "dhcp4_parser.yy" +#line 361 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 927 "dhcp4_parser.cc" break; case 41: // not_empty_map: "constant string" ":" value -#line 373 "dhcp4_parser.yy" +#line 368 "dhcp4_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); @@ -937,7 +937,7 @@ namespace isc { namespace dhcp { break; case 42: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 378 "dhcp4_parser.yy" +#line 373 "dhcp4_parser.yy" { // map consisting of a shorter map followed by // comma and string:value @@ -948,7 +948,7 @@ namespace isc { namespace dhcp { break; case 43: // not_empty_map: not_empty_map "," -#line 384 "dhcp4_parser.yy" +#line 379 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -956,7 +956,7 @@ namespace isc { namespace dhcp { break; case 44: // $@15: %empty -#line 389 "dhcp4_parser.yy" +#line 384 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -965,7 +965,7 @@ namespace isc { namespace dhcp { break; case 45: // list_generic: "[" $@15 list_content "]" -#line 392 "dhcp4_parser.yy" +#line 387 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here } @@ -973,7 +973,7 @@ namespace isc { namespace dhcp { break; case 48: // not_empty_list: value -#line 400 "dhcp4_parser.yy" +#line 395 "dhcp4_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -982,7 +982,7 @@ namespace isc { namespace dhcp { break; case 49: // not_empty_list: not_empty_list "," value -#line 404 "dhcp4_parser.yy" +#line 399 "dhcp4_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); @@ -991,7 +991,7 @@ namespace isc { namespace dhcp { break; case 50: // not_empty_list: not_empty_list "," -#line 408 "dhcp4_parser.yy" +#line 403 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -999,7 +999,7 @@ namespace isc { namespace dhcp { break; case 51: // $@16: %empty -#line 414 "dhcp4_parser.yy" +#line 409 "dhcp4_parser.yy" { // List parsing about to start } @@ -1007,7 +1007,7 @@ namespace isc { namespace dhcp { break; case 52: // list_strings: "[" $@16 list_strings_content "]" -#line 416 "dhcp4_parser.yy" +#line 411 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -1016,7 +1016,7 @@ namespace isc { namespace dhcp { break; case 55: // not_empty_list_strings: "constant string" -#line 425 "dhcp4_parser.yy" +#line 420 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1025,7 +1025,7 @@ namespace isc { namespace dhcp { break; case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" -#line 429 "dhcp4_parser.yy" +#line 424 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -1034,7 +1034,7 @@ namespace isc { namespace dhcp { break; case 57: // not_empty_list_strings: not_empty_list_strings "," -#line 433 "dhcp4_parser.yy" +#line 428 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1042,7 +1042,7 @@ namespace isc { namespace dhcp { break; case 58: // unknown_map_entry: "constant string" ":" -#line 443 "dhcp4_parser.yy" +#line 438 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); @@ -1053,7 +1053,7 @@ namespace isc { namespace dhcp { break; case 59: // $@17: %empty -#line 452 "dhcp4_parser.yy" +#line 447 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1064,7 +1064,7 @@ namespace isc { namespace dhcp { break; case 60: // syntax_map: "{" $@17 global_object "}" -#line 457 "dhcp4_parser.yy" +#line 452 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1077,7 +1077,7 @@ namespace isc { namespace dhcp { break; case 61: // $@18: %empty -#line 467 "dhcp4_parser.yy" +#line 462 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing // the content of the map @@ -1092,7 +1092,7 @@ namespace isc { namespace dhcp { break; case 62: // global_object: "Dhcp4" $@18 ":" "{" global_params "}" -#line 476 "dhcp4_parser.yy" +#line 471 "dhcp4_parser.yy" { // No global parameter is required ctx.stack_.pop_back(); @@ -1102,7 +1102,7 @@ namespace isc { namespace dhcp { break; case 64: // global_object_comma: global_object "," -#line 484 "dhcp4_parser.yy" +#line 479 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1110,7 +1110,7 @@ namespace isc { namespace dhcp { break; case 65: // $@19: %empty -#line 490 "dhcp4_parser.yy" +#line 485 "dhcp4_parser.yy" { // Parse the Dhcp4 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1120,7 +1120,7 @@ namespace isc { namespace dhcp { break; case 66: // sub_dhcp4: "{" $@19 global_params "}" -#line 494 "dhcp4_parser.yy" +#line 489 "dhcp4_parser.yy" { // No global parameter is required // parsing completed @@ -1129,7 +1129,7 @@ namespace isc { namespace dhcp { break; case 69: // global_params: global_params "," -#line 501 "dhcp4_parser.yy" +#line 496 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1137,7 +1137,7 @@ namespace isc { namespace dhcp { break; case 139: // valid_lifetime: "valid-lifetime" ":" "integer" -#line 579 "dhcp4_parser.yy" +#line 574 "dhcp4_parser.yy" { ctx.unique("valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1147,7 +1147,7 @@ namespace isc { namespace dhcp { break; case 140: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" -#line 585 "dhcp4_parser.yy" +#line 580 "dhcp4_parser.yy" { ctx.unique("min-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1157,7 +1157,7 @@ namespace isc { namespace dhcp { break; case 141: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" -#line 591 "dhcp4_parser.yy" +#line 586 "dhcp4_parser.yy" { ctx.unique("max-valid-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1167,7 +1167,7 @@ namespace isc { namespace dhcp { break; case 142: // renew_timer: "renew-timer" ":" "integer" -#line 597 "dhcp4_parser.yy" +#line 592 "dhcp4_parser.yy" { ctx.unique("renew-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1177,7 +1177,7 @@ namespace isc { namespace dhcp { break; case 143: // rebind_timer: "rebind-timer" ":" "integer" -#line 603 "dhcp4_parser.yy" +#line 598 "dhcp4_parser.yy" { ctx.unique("rebind-timer", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1187,7 +1187,7 @@ namespace isc { namespace dhcp { break; case 144: // calculate_tee_times: "calculate-tee-times" ":" "boolean" -#line 609 "dhcp4_parser.yy" +#line 604 "dhcp4_parser.yy" { ctx.unique("calculate-tee-times", ctx.loc2pos(yystack_[2].location)); ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1197,7 +1197,7 @@ namespace isc { namespace dhcp { break; case 145: // t1_percent: "t1-percent" ":" "floating point" -#line 615 "dhcp4_parser.yy" +#line 610 "dhcp4_parser.yy" { ctx.unique("t1-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1207,7 +1207,7 @@ namespace isc { namespace dhcp { break; case 146: // t2_percent: "t2-percent" ":" "floating point" -#line 621 "dhcp4_parser.yy" +#line 616 "dhcp4_parser.yy" { ctx.unique("t2-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1217,7 +1217,7 @@ namespace isc { namespace dhcp { break; case 147: // cache_threshold: "cache-threshold" ":" "floating point" -#line 627 "dhcp4_parser.yy" +#line 622 "dhcp4_parser.yy" { ctx.unique("cache-threshold", ctx.loc2pos(yystack_[2].location)); ElementPtr ct(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1227,7 +1227,7 @@ namespace isc { namespace dhcp { break; case 148: // cache_max_age: "cache-max-age" ":" "integer" -#line 633 "dhcp4_parser.yy" +#line 628 "dhcp4_parser.yy" { ctx.unique("cache-max-age", ctx.loc2pos(yystack_[2].location)); ElementPtr cm(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1237,7 +1237,7 @@ namespace isc { namespace dhcp { break; case 149: // decline_probation_period: "decline-probation-period" ":" "integer" -#line 639 "dhcp4_parser.yy" +#line 634 "dhcp4_parser.yy" { ctx.unique("decline-probation-period", ctx.loc2pos(yystack_[2].location)); ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1247,7 +1247,7 @@ namespace isc { namespace dhcp { break; case 150: // $@20: %empty -#line 645 "dhcp4_parser.yy" +#line 640 "dhcp4_parser.yy" { ctx.unique("server-tag", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1256,7 +1256,7 @@ namespace isc { namespace dhcp { break; case 151: // server_tag: "server-tag" $@20 ":" "constant string" -#line 648 "dhcp4_parser.yy" +#line 643 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); @@ -1266,7 +1266,7 @@ namespace isc { namespace dhcp { break; case 152: // parked_packet_limit: "parked-packet-limit" ":" "integer" -#line 654 "dhcp4_parser.yy" +#line 649 "dhcp4_parser.yy" { ctx.unique("parked-packet-limit", ctx.loc2pos(yystack_[2].location)); ElementPtr ppl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1276,7 +1276,7 @@ namespace isc { namespace dhcp { break; case 153: // $@21: %empty -#line 660 "dhcp4_parser.yy" +#line 655 "dhcp4_parser.yy" { ctx.unique("allocator", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1285,7 +1285,7 @@ namespace isc { namespace dhcp { break; case 154: // allocator: "allocator" $@21 ":" "constant string" -#line 663 "dhcp4_parser.yy" +#line 658 "dhcp4_parser.yy" { ElementPtr al(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("allocator", al); @@ -1295,7 +1295,7 @@ namespace isc { namespace dhcp { break; case 155: // echo_client_id: "echo-client-id" ":" "boolean" -#line 669 "dhcp4_parser.yy" +#line 664 "dhcp4_parser.yy" { ctx.unique("echo-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1305,7 +1305,7 @@ namespace isc { namespace dhcp { break; case 156: // match_client_id: "match-client-id" ":" "boolean" -#line 675 "dhcp4_parser.yy" +#line 670 "dhcp4_parser.yy" { ctx.unique("match-client-id", ctx.loc2pos(yystack_[2].location)); ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1315,7 +1315,7 @@ namespace isc { namespace dhcp { break; case 157: // authoritative: "authoritative" ":" "boolean" -#line 681 "dhcp4_parser.yy" +#line 676 "dhcp4_parser.yy" { ctx.unique("authoritative", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1325,7 +1325,7 @@ namespace isc { namespace dhcp { break; case 158: // ddns_send_updates: "ddns-send-updates" ":" "boolean" -#line 687 "dhcp4_parser.yy" +#line 682 "dhcp4_parser.yy" { ctx.unique("ddns-send-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1335,7 +1335,7 @@ namespace isc { namespace dhcp { break; case 159: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" -#line 693 "dhcp4_parser.yy" +#line 688 "dhcp4_parser.yy" { ctx.unique("ddns-override-no-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1345,7 +1345,7 @@ namespace isc { namespace dhcp { break; case 160: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" -#line 699 "dhcp4_parser.yy" +#line 694 "dhcp4_parser.yy" { ctx.unique("ddns-override-client-update", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1355,7 +1355,7 @@ namespace isc { namespace dhcp { break; case 161: // $@22: %empty -#line 705 "dhcp4_parser.yy" +#line 700 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); ctx.unique("ddns-replace-client-name", ctx.loc2pos(yystack_[0].location)); @@ -1364,7 +1364,7 @@ namespace isc { namespace dhcp { break; case 162: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value -#line 708 "dhcp4_parser.yy" +#line 703 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1373,7 +1373,7 @@ namespace isc { namespace dhcp { break; case 163: // ddns_replace_client_name_value: "when-present" -#line 714 "dhcp4_parser.yy" +#line 709 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } @@ -1381,7 +1381,7 @@ namespace isc { namespace dhcp { break; case 164: // ddns_replace_client_name_value: "never" -#line 717 "dhcp4_parser.yy" +#line 712 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } @@ -1389,7 +1389,7 @@ namespace isc { namespace dhcp { break; case 165: // ddns_replace_client_name_value: "always" -#line 720 "dhcp4_parser.yy" +#line 715 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } @@ -1397,7 +1397,7 @@ namespace isc { namespace dhcp { break; case 166: // ddns_replace_client_name_value: "when-not-present" -#line 723 "dhcp4_parser.yy" +#line 718 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } @@ -1405,16 +1405,16 @@ namespace isc { namespace dhcp { break; case 167: // ddns_replace_client_name_value: "boolean" -#line 726 "dhcp4_parser.yy" +#line 721 "dhcp4_parser.yy" { - error(yystack_[0].location, "boolean values for the replace-client-name are " + error(yystack_[0].location, "boolean values for the ddns-replace-client-name are " "no longer supported"); } #line 1414 "dhcp4_parser.cc" break; case 168: // $@23: %empty -#line 732 "dhcp4_parser.yy" +#line 727 "dhcp4_parser.yy" { ctx.unique("ddns-generated-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1423,7 +1423,7 @@ namespace isc { namespace dhcp { break; case 169: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" -#line 735 "dhcp4_parser.yy" +#line 730 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-generated-prefix", s); @@ -1433,7 +1433,7 @@ namespace isc { namespace dhcp { break; case 170: // $@24: %empty -#line 741 "dhcp4_parser.yy" +#line 736 "dhcp4_parser.yy" { ctx.unique("ddns-qualifying-suffix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1442,7 +1442,7 @@ namespace isc { namespace dhcp { break; case 171: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" -#line 744 "dhcp4_parser.yy" +#line 739 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-qualifying-suffix", s); @@ -1452,7 +1452,7 @@ namespace isc { namespace dhcp { break; case 172: // ddns_update_on_renew: "ddns-update-on-renew" ":" "boolean" -#line 750 "dhcp4_parser.yy" +#line 745 "dhcp4_parser.yy" { ctx.unique("ddns-update-on-renew", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1462,7 +1462,7 @@ namespace isc { namespace dhcp { break; case 173: // ddns_use_conflict_resolution: "ddns-use-conflict-resolution" ":" "boolean" -#line 759 "dhcp4_parser.yy" +#line 754 "dhcp4_parser.yy" { ctx.unique("ddns-use-conflict-resolution", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1476,7 +1476,7 @@ namespace isc { namespace dhcp { break; case 174: // $@25: %empty -#line 769 "dhcp4_parser.yy" +#line 764 "dhcp4_parser.yy" { ctx.unique("ddns-conflict-resolution-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DDNS_CONFLICT_RESOLUTION_MODE); @@ -1485,7 +1485,7 @@ namespace isc { namespace dhcp { break; case 175: // ddns_conflict_resolution_mode: "ddns-conflict-resolution-mode" $@25 ":" ddns_conflict_resolution_mode_value -#line 772 "dhcp4_parser.yy" +#line 767 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-conflict-resolution-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1494,7 +1494,7 @@ namespace isc { namespace dhcp { break; case 176: // ddns_conflict_resolution_mode_value: "check-with-dhcid" -#line 778 "dhcp4_parser.yy" +#line 773 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1502,7 +1502,7 @@ namespace isc { namespace dhcp { break; case 177: // ddns_conflict_resolution_mode_value: "no-check-with-dhcid" -#line 781 "dhcp4_parser.yy" +#line 776 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1510,7 +1510,7 @@ namespace isc { namespace dhcp { break; case 178: // ddns_conflict_resolution_mode_value: "check-exists-with-dhcid" -#line 784 "dhcp4_parser.yy" +#line 779 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("check-exists-with-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1518,7 +1518,7 @@ namespace isc { namespace dhcp { break; case 179: // ddns_conflict_resolution_mode_value: "no-check-without-dhcid" -#line 787 "dhcp4_parser.yy" +#line 782 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("no-check-without-dhcid", ctx.loc2pos(yystack_[0].location))); } @@ -1526,7 +1526,7 @@ namespace isc { namespace dhcp { break; case 180: // ddns_ttl_percent: "ddns-ttl-percent" ":" "floating point" -#line 792 "dhcp4_parser.yy" +#line 787 "dhcp4_parser.yy" { ctx.unique("ddns-ttl-percent", ctx.loc2pos(yystack_[2].location)); ElementPtr ttl(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1536,7 +1536,7 @@ namespace isc { namespace dhcp { break; case 181: // $@26: %empty -#line 798 "dhcp4_parser.yy" +#line 793 "dhcp4_parser.yy" { ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1545,7 +1545,7 @@ namespace isc { namespace dhcp { break; case 182: // hostname_char_set: "hostname-char-set" $@26 ":" "constant string" -#line 801 "dhcp4_parser.yy" +#line 796 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); @@ -1555,7 +1555,7 @@ namespace isc { namespace dhcp { break; case 183: // $@27: %empty -#line 807 "dhcp4_parser.yy" +#line 802 "dhcp4_parser.yy" { ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1564,7 +1564,7 @@ namespace isc { namespace dhcp { break; case 184: // hostname_char_replacement: "hostname-char-replacement" $@27 ":" "constant string" -#line 810 "dhcp4_parser.yy" +#line 805 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); @@ -1574,7 +1574,7 @@ namespace isc { namespace dhcp { break; case 185: // store_extended_info: "store-extended-info" ":" "boolean" -#line 816 "dhcp4_parser.yy" +#line 811 "dhcp4_parser.yy" { ctx.unique("store-extended-info", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1584,7 +1584,7 @@ namespace isc { namespace dhcp { break; case 186: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" -#line 822 "dhcp4_parser.yy" +#line 817 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-count", ctx.loc2pos(yystack_[2].location)); ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1594,7 +1594,7 @@ namespace isc { namespace dhcp { break; case 187: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" -#line 828 "dhcp4_parser.yy" +#line 823 "dhcp4_parser.yy" { ctx.unique("statistic-default-sample-age", ctx.loc2pos(yystack_[2].location)); ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1604,7 +1604,7 @@ namespace isc { namespace dhcp { break; case 188: // early_global_reservations_lookup: "early-global-reservations-lookup" ":" "boolean" -#line 834 "dhcp4_parser.yy" +#line 829 "dhcp4_parser.yy" { ctx.unique("early-global-reservations-lookup", ctx.loc2pos(yystack_[2].location)); ElementPtr early(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1614,7 +1614,7 @@ namespace isc { namespace dhcp { break; case 189: // ip_reservations_unique: "ip-reservations-unique" ":" "boolean" -#line 840 "dhcp4_parser.yy" +#line 835 "dhcp4_parser.yy" { ctx.unique("ip-reservations-unique", ctx.loc2pos(yystack_[2].location)); ElementPtr unique(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1624,7 +1624,7 @@ namespace isc { namespace dhcp { break; case 190: // reservations_lookup_first: "reservations-lookup-first" ":" "boolean" -#line 846 "dhcp4_parser.yy" +#line 841 "dhcp4_parser.yy" { ctx.unique("reservations-lookup-first", ctx.loc2pos(yystack_[2].location)); ElementPtr first(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1634,7 +1634,7 @@ namespace isc { namespace dhcp { break; case 191: // offer_lifetime: "offer-lifetime" ":" "integer" -#line 852 "dhcp4_parser.yy" +#line 847 "dhcp4_parser.yy" { ctx.unique("offer-lifetime", ctx.loc2pos(yystack_[2].location)); ElementPtr offer_lifetime(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1644,7 +1644,7 @@ namespace isc { namespace dhcp { break; case 192: // stash_agent_options: "stash-agent-options" ":" "boolean" -#line 858 "dhcp4_parser.yy" +#line 853 "dhcp4_parser.yy" { ctx.unique("stash-agent-options", ctx.loc2pos(yystack_[2].location)); ElementPtr stash(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1654,7 +1654,7 @@ namespace isc { namespace dhcp { break; case 193: // $@28: %empty -#line 864 "dhcp4_parser.yy" +#line 859 "dhcp4_parser.yy" { ctx.unique("interfaces-config", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1666,7 +1666,7 @@ namespace isc { namespace dhcp { break; case 194: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" -#line 870 "dhcp4_parser.yy" +#line 865 "dhcp4_parser.yy" { // No interfaces config param is required ctx.stack_.pop_back(); @@ -1676,7 +1676,7 @@ namespace isc { namespace dhcp { break; case 197: // interfaces_config_params: interfaces_config_params "," -#line 878 "dhcp4_parser.yy" +#line 873 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1684,7 +1684,7 @@ namespace isc { namespace dhcp { break; case 208: // $@29: %empty -#line 895 "dhcp4_parser.yy" +#line 890 "dhcp4_parser.yy" { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1694,7 +1694,7 @@ namespace isc { namespace dhcp { break; case 209: // sub_interfaces4: "{" $@29 interfaces_config_params "}" -#line 899 "dhcp4_parser.yy" +#line 894 "dhcp4_parser.yy" { // No interfaces config param is required // parsing completed @@ -1703,7 +1703,7 @@ namespace isc { namespace dhcp { break; case 210: // $@30: %empty -#line 904 "dhcp4_parser.yy" +#line 899 "dhcp4_parser.yy" { ctx.unique("interfaces", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1715,7 +1715,7 @@ namespace isc { namespace dhcp { break; case 211: // interfaces_list: "interfaces" $@30 ":" list_strings -#line 910 "dhcp4_parser.yy" +#line 905 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1724,7 +1724,7 @@ namespace isc { namespace dhcp { break; case 212: // $@31: %empty -#line 915 "dhcp4_parser.yy" +#line 910 "dhcp4_parser.yy" { ctx.unique("dhcp-socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DHCP_SOCKET_TYPE); @@ -1733,7 +1733,7 @@ namespace isc { namespace dhcp { break; case 213: // dhcp_socket_type: "dhcp-socket-type" $@31 ":" socket_type -#line 918 "dhcp4_parser.yy" +#line 913 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1742,19 +1742,19 @@ namespace isc { namespace dhcp { break; case 214: // socket_type: "raw" -#line 923 "dhcp4_parser.yy" +#line 918 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1748 "dhcp4_parser.cc" break; case 215: // socket_type: "udp" -#line 924 "dhcp4_parser.yy" +#line 919 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1754 "dhcp4_parser.cc" break; case 216: // $@32: %empty -#line 927 "dhcp4_parser.yy" +#line 922 "dhcp4_parser.yy" { ctx.unique("outbound-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.OUTBOUND_INTERFACE); @@ -1763,7 +1763,7 @@ namespace isc { namespace dhcp { break; case 217: // outbound_interface: "outbound-interface" $@32 ":" outbound_interface_value -#line 930 "dhcp4_parser.yy" +#line 925 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -1772,7 +1772,7 @@ namespace isc { namespace dhcp { break; case 218: // outbound_interface_value: "same-as-inbound" -#line 935 "dhcp4_parser.yy" +#line 930 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); } @@ -1780,7 +1780,7 @@ namespace isc { namespace dhcp { break; case 219: // outbound_interface_value: "use-routing" -#line 937 "dhcp4_parser.yy" +#line 932 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); } @@ -1788,7 +1788,7 @@ namespace isc { namespace dhcp { break; case 220: // re_detect: "re-detect" ":" "boolean" -#line 941 "dhcp4_parser.yy" +#line 936 "dhcp4_parser.yy" { ctx.unique("re-detect", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1798,7 +1798,7 @@ namespace isc { namespace dhcp { break; case 221: // service_sockets_require_all: "service-sockets-require-all" ":" "boolean" -#line 947 "dhcp4_parser.yy" +#line 942 "dhcp4_parser.yy" { ctx.unique("service-sockets-require-all", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1808,7 +1808,7 @@ namespace isc { namespace dhcp { break; case 222: // service_sockets_retry_wait_time: "service-sockets-retry-wait-time" ":" "integer" -#line 953 "dhcp4_parser.yy" +#line 948 "dhcp4_parser.yy" { ctx.unique("service-sockets-retry-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1818,7 +1818,7 @@ namespace isc { namespace dhcp { break; case 223: // service_sockets_max_retries: "service-sockets-max-retries" ":" "integer" -#line 959 "dhcp4_parser.yy" +#line 954 "dhcp4_parser.yy" { ctx.unique("service-sockets-max-retries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1828,7 +1828,7 @@ namespace isc { namespace dhcp { break; case 224: // $@33: %empty -#line 965 "dhcp4_parser.yy" +#line 960 "dhcp4_parser.yy" { ctx.unique("lease-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1840,7 +1840,7 @@ namespace isc { namespace dhcp { break; case 225: // lease_database: "lease-database" $@33 ":" "{" database_map_params "}" -#line 971 "dhcp4_parser.yy" +#line 966 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1851,7 +1851,7 @@ namespace isc { namespace dhcp { break; case 226: // $@34: %empty -#line 978 "dhcp4_parser.yy" +#line 973 "dhcp4_parser.yy" { ctx.unique("sanity-checks", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1863,7 +1863,7 @@ namespace isc { namespace dhcp { break; case 227: // sanity_checks: "sanity-checks" $@34 ":" "{" sanity_checks_params "}" -#line 984 "dhcp4_parser.yy" +#line 979 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1872,7 +1872,7 @@ namespace isc { namespace dhcp { break; case 230: // sanity_checks_params: sanity_checks_params "," -#line 991 "dhcp4_parser.yy" +#line 986 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1880,7 +1880,7 @@ namespace isc { namespace dhcp { break; case 233: // $@35: %empty -#line 1000 "dhcp4_parser.yy" +#line 995 "dhcp4_parser.yy" { ctx.unique("lease-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1889,7 +1889,7 @@ namespace isc { namespace dhcp { break; case 234: // lease_checks: "lease-checks" $@35 ":" "constant string" -#line 1003 "dhcp4_parser.yy" +#line 998 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1909,7 +1909,7 @@ namespace isc { namespace dhcp { break; case 235: // $@36: %empty -#line 1019 "dhcp4_parser.yy" +#line 1014 "dhcp4_parser.yy" { ctx.unique("extended-info-checks", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -1918,7 +1918,7 @@ namespace isc { namespace dhcp { break; case 236: // extended_info_checks: "extended-info-checks" $@36 ":" "constant string" -#line 1022 "dhcp4_parser.yy" +#line 1017 "dhcp4_parser.yy" { if ( (string(yystack_[0].value.as < std::string > ()) == "none") || @@ -1937,7 +1937,7 @@ namespace isc { namespace dhcp { break; case 237: // $@37: %empty -#line 1037 "dhcp4_parser.yy" +#line 1032 "dhcp4_parser.yy" { ctx.unique("hosts-database", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1949,7 +1949,7 @@ namespace isc { namespace dhcp { break; case 238: // hosts_database: "hosts-database" $@37 ":" "{" database_map_params "}" -#line 1043 "dhcp4_parser.yy" +#line 1038 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -1960,7 +1960,7 @@ namespace isc { namespace dhcp { break; case 239: // $@38: %empty -#line 1050 "dhcp4_parser.yy" +#line 1045 "dhcp4_parser.yy" { ctx.unique("hosts-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1972,7 +1972,7 @@ namespace isc { namespace dhcp { break; case 240: // hosts_databases: "hosts-databases" $@38 ":" "[" database_list "]" -#line 1056 "dhcp4_parser.yy" +#line 1051 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -1981,7 +1981,7 @@ namespace isc { namespace dhcp { break; case 245: // not_empty_database_list: not_empty_database_list "," -#line 1067 "dhcp4_parser.yy" +#line 1062 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -1989,7 +1989,7 @@ namespace isc { namespace dhcp { break; case 246: // $@39: %empty -#line 1072 "dhcp4_parser.yy" +#line 1067 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1999,7 +1999,7 @@ namespace isc { namespace dhcp { break; case 247: // database: "{" $@39 database_map_params "}" -#line 1076 "dhcp4_parser.yy" +#line 1071 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2009,7 +2009,7 @@ namespace isc { namespace dhcp { break; case 250: // database_map_params: database_map_params "," -#line 1084 "dhcp4_parser.yy" +#line 1079 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2017,7 +2017,7 @@ namespace isc { namespace dhcp { break; case 274: // $@40: %empty -#line 1114 "dhcp4_parser.yy" +#line 1109 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_TYPE); @@ -2026,7 +2026,7 @@ namespace isc { namespace dhcp { break; case 275: // database_type: "type" $@40 ":" db_type -#line 1117 "dhcp4_parser.yy" +#line 1112 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2035,25 +2035,25 @@ namespace isc { namespace dhcp { break; case 276: // db_type: "memfile" -#line 1122 "dhcp4_parser.yy" +#line 1117 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 2041 "dhcp4_parser.cc" break; case 277: // db_type: "mysql" -#line 1123 "dhcp4_parser.yy" +#line 1118 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 2047 "dhcp4_parser.cc" break; case 278: // db_type: "postgresql" -#line 1124 "dhcp4_parser.yy" +#line 1119 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 2053 "dhcp4_parser.cc" break; case 279: // $@41: %empty -#line 1127 "dhcp4_parser.yy" +#line 1122 "dhcp4_parser.yy" { ctx.unique("user", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2062,7 +2062,7 @@ namespace isc { namespace dhcp { break; case 280: // user: "user" $@41 ":" "constant string" -#line 1130 "dhcp4_parser.yy" +#line 1125 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); @@ -2072,7 +2072,7 @@ namespace isc { namespace dhcp { break; case 281: // $@42: %empty -#line 1136 "dhcp4_parser.yy" +#line 1131 "dhcp4_parser.yy" { ctx.unique("password", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2081,7 +2081,7 @@ namespace isc { namespace dhcp { break; case 282: // password: "password" $@42 ":" "constant string" -#line 1139 "dhcp4_parser.yy" +#line 1134 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); @@ -2091,7 +2091,7 @@ namespace isc { namespace dhcp { break; case 283: // $@43: %empty -#line 1145 "dhcp4_parser.yy" +#line 1140 "dhcp4_parser.yy" { ctx.unique("host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2100,7 +2100,7 @@ namespace isc { namespace dhcp { break; case 284: // host: "host" $@43 ":" "constant string" -#line 1148 "dhcp4_parser.yy" +#line 1143 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); @@ -2110,7 +2110,7 @@ namespace isc { namespace dhcp { break; case 285: // port: "port" ":" "integer" -#line 1154 "dhcp4_parser.yy" +#line 1149 "dhcp4_parser.yy" { ctx.unique("port", ctx.loc2pos(yystack_[2].location)); ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2120,7 +2120,7 @@ namespace isc { namespace dhcp { break; case 286: // $@44: %empty -#line 1160 "dhcp4_parser.yy" +#line 1155 "dhcp4_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2129,7 +2129,7 @@ namespace isc { namespace dhcp { break; case 287: // name: "name" $@44 ":" "constant string" -#line 1163 "dhcp4_parser.yy" +#line 1158 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); @@ -2139,7 +2139,7 @@ namespace isc { namespace dhcp { break; case 288: // persist: "persist" ":" "boolean" -#line 1169 "dhcp4_parser.yy" +#line 1164 "dhcp4_parser.yy" { ctx.unique("persist", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2149,7 +2149,7 @@ namespace isc { namespace dhcp { break; case 289: // lfc_interval: "lfc-interval" ":" "integer" -#line 1175 "dhcp4_parser.yy" +#line 1170 "dhcp4_parser.yy" { ctx.unique("lfc-interval", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2159,7 +2159,7 @@ namespace isc { namespace dhcp { break; case 290: // readonly: "readonly" ":" "boolean" -#line 1181 "dhcp4_parser.yy" +#line 1176 "dhcp4_parser.yy" { ctx.unique("readonly", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2169,7 +2169,7 @@ namespace isc { namespace dhcp { break; case 291: // connect_timeout: "connect-timeout" ":" "integer" -#line 1187 "dhcp4_parser.yy" +#line 1182 "dhcp4_parser.yy" { ctx.unique("connect-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2179,7 +2179,7 @@ namespace isc { namespace dhcp { break; case 292: // read_timeout: "read-timeout" ":" "integer" -#line 1193 "dhcp4_parser.yy" +#line 1188 "dhcp4_parser.yy" { ctx.unique("read-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2189,7 +2189,7 @@ namespace isc { namespace dhcp { break; case 293: // write_timeout: "write-timeout" ":" "integer" -#line 1199 "dhcp4_parser.yy" +#line 1194 "dhcp4_parser.yy" { ctx.unique("write-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2199,7 +2199,7 @@ namespace isc { namespace dhcp { break; case 294: // tcp_user_timeout: "tcp-user-timeout" ":" "integer" -#line 1205 "dhcp4_parser.yy" +#line 1200 "dhcp4_parser.yy" { ctx.unique("tcp-user-timeout", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2209,7 +2209,7 @@ namespace isc { namespace dhcp { break; case 295: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" -#line 1211 "dhcp4_parser.yy" +#line 1206 "dhcp4_parser.yy" { ctx.unique("max-reconnect-tries", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2219,7 +2219,7 @@ namespace isc { namespace dhcp { break; case 296: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" -#line 1217 "dhcp4_parser.yy" +#line 1212 "dhcp4_parser.yy" { ctx.unique("reconnect-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2229,7 +2229,7 @@ namespace isc { namespace dhcp { break; case 297: // $@45: %empty -#line 1223 "dhcp4_parser.yy" +#line 1218 "dhcp4_parser.yy" { ctx.unique("on-fail", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DATABASE_ON_FAIL); @@ -2238,7 +2238,7 @@ namespace isc { namespace dhcp { break; case 298: // on_fail: "on-fail" $@45 ":" on_fail_mode -#line 1226 "dhcp4_parser.yy" +#line 1221 "dhcp4_parser.yy" { ctx.stack_.back()->set("on-fail", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2247,25 +2247,25 @@ namespace isc { namespace dhcp { break; case 299: // on_fail_mode: "stop-retry-exit" -#line 1231 "dhcp4_parser.yy" +#line 1226 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stop-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2253 "dhcp4_parser.cc" break; case 300: // on_fail_mode: "serve-retry-exit" -#line 1232 "dhcp4_parser.yy" +#line 1227 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-exit", ctx.loc2pos(yystack_[0].location))); } #line 2259 "dhcp4_parser.cc" break; case 301: // on_fail_mode: "serve-retry-continue" -#line 1233 "dhcp4_parser.yy" +#line 1228 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("serve-retry-continue", ctx.loc2pos(yystack_[0].location))); } #line 2265 "dhcp4_parser.cc" break; case 302: // retry_on_startup: "retry-on-startup" ":" "boolean" -#line 1236 "dhcp4_parser.yy" +#line 1231 "dhcp4_parser.yy" { ctx.unique("retry-on-startup", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2275,7 +2275,7 @@ namespace isc { namespace dhcp { break; case 303: // max_row_errors: "max-row-errors" ":" "integer" -#line 1242 "dhcp4_parser.yy" +#line 1237 "dhcp4_parser.yy" { ctx.unique("max-row-errors", ctx.loc2pos(yystack_[2].location)); ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2285,7 +2285,7 @@ namespace isc { namespace dhcp { break; case 304: // $@46: %empty -#line 1248 "dhcp4_parser.yy" +#line 1243 "dhcp4_parser.yy" { ctx.unique("trust-anchor", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2294,7 +2294,7 @@ namespace isc { namespace dhcp { break; case 305: // trust_anchor: "trust-anchor" $@46 ":" "constant string" -#line 1251 "dhcp4_parser.yy" +#line 1246 "dhcp4_parser.yy" { ElementPtr ca(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("trust-anchor", ca); @@ -2304,7 +2304,7 @@ namespace isc { namespace dhcp { break; case 306: // $@47: %empty -#line 1257 "dhcp4_parser.yy" +#line 1252 "dhcp4_parser.yy" { ctx.unique("cert-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2313,7 +2313,7 @@ namespace isc { namespace dhcp { break; case 307: // cert_file: "cert-file" $@47 ":" "constant string" -#line 1260 "dhcp4_parser.yy" +#line 1255 "dhcp4_parser.yy" { ElementPtr cert(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-file", cert); @@ -2323,7 +2323,7 @@ namespace isc { namespace dhcp { break; case 308: // $@48: %empty -#line 1266 "dhcp4_parser.yy" +#line 1261 "dhcp4_parser.yy" { ctx.unique("key-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2332,7 +2332,7 @@ namespace isc { namespace dhcp { break; case 309: // key_file: "key-file" $@48 ":" "constant string" -#line 1269 "dhcp4_parser.yy" +#line 1264 "dhcp4_parser.yy" { ElementPtr key(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("key-file", key); @@ -2342,7 +2342,7 @@ namespace isc { namespace dhcp { break; case 310: // $@49: %empty -#line 1275 "dhcp4_parser.yy" +#line 1270 "dhcp4_parser.yy" { ctx.unique("cipher-list", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2351,7 +2351,7 @@ namespace isc { namespace dhcp { break; case 311: // cipher_list: "cipher-list" $@49 ":" "constant string" -#line 1278 "dhcp4_parser.yy" +#line 1273 "dhcp4_parser.yy" { ElementPtr cl(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cipher-list", cl); @@ -2361,7 +2361,7 @@ namespace isc { namespace dhcp { break; case 312: // $@50: %empty -#line 1284 "dhcp4_parser.yy" +#line 1279 "dhcp4_parser.yy" { ctx.unique("host-reservation-identifiers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2373,7 +2373,7 @@ namespace isc { namespace dhcp { break; case 313: // host_reservation_identifiers: "host-reservation-identifiers" $@50 ":" "[" host_reservation_identifiers_list "]" -#line 1290 "dhcp4_parser.yy" +#line 1285 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2382,7 +2382,7 @@ namespace isc { namespace dhcp { break; case 316: // host_reservation_identifiers_list: host_reservation_identifiers_list "," -#line 1297 "dhcp4_parser.yy" +#line 1292 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2390,7 +2390,7 @@ namespace isc { namespace dhcp { break; case 322: // duid_id: "duid" -#line 1309 "dhcp4_parser.yy" +#line 1304 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); @@ -2399,7 +2399,7 @@ namespace isc { namespace dhcp { break; case 323: // hw_address_id: "hw-address" -#line 1314 "dhcp4_parser.yy" +#line 1309 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); @@ -2408,7 +2408,7 @@ namespace isc { namespace dhcp { break; case 324: // circuit_id: "circuit-id" -#line 1319 "dhcp4_parser.yy" +#line 1314 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(circuit); @@ -2417,7 +2417,7 @@ namespace isc { namespace dhcp { break; case 325: // client_id: "client-id" -#line 1324 "dhcp4_parser.yy" +#line 1319 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(client); @@ -2426,7 +2426,7 @@ namespace isc { namespace dhcp { break; case 326: // flex_id: "flex-id" -#line 1329 "dhcp4_parser.yy" +#line 1324 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); @@ -2435,7 +2435,7 @@ namespace isc { namespace dhcp { break; case 327: // $@51: %empty -#line 1336 "dhcp4_parser.yy" +#line 1331 "dhcp4_parser.yy" { ctx.unique("multi-threading", ctx.loc2pos(yystack_[0].location)); ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2447,7 +2447,7 @@ namespace isc { namespace dhcp { break; case 328: // dhcp_multi_threading: "multi-threading" $@51 ":" "{" multi_threading_params "}" -#line 1342 "dhcp4_parser.yy" +#line 1337 "dhcp4_parser.yy" { // The enable parameter is required. ctx.require("enable-multi-threading", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -2458,7 +2458,7 @@ namespace isc { namespace dhcp { break; case 331: // multi_threading_params: multi_threading_params "," -#line 1351 "dhcp4_parser.yy" +#line 1346 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2466,7 +2466,7 @@ namespace isc { namespace dhcp { break; case 338: // enable_multi_threading: "enable-multi-threading" ":" "boolean" -#line 1364 "dhcp4_parser.yy" +#line 1359 "dhcp4_parser.yy" { ctx.unique("enable-multi-threading", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2476,7 +2476,7 @@ namespace isc { namespace dhcp { break; case 339: // thread_pool_size: "thread-pool-size" ":" "integer" -#line 1370 "dhcp4_parser.yy" +#line 1365 "dhcp4_parser.yy" { ctx.unique("thread-pool-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2486,7 +2486,7 @@ namespace isc { namespace dhcp { break; case 340: // packet_queue_size: "packet-queue-size" ":" "integer" -#line 1376 "dhcp4_parser.yy" +#line 1371 "dhcp4_parser.yy" { ctx.unique("packet-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2496,7 +2496,7 @@ namespace isc { namespace dhcp { break; case 341: // $@52: %empty -#line 1382 "dhcp4_parser.yy" +#line 1377 "dhcp4_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2508,7 +2508,7 @@ namespace isc { namespace dhcp { break; case 342: // hooks_libraries: "hooks-libraries" $@52 ":" "[" hooks_libraries_list "]" -#line 1388 "dhcp4_parser.yy" +#line 1383 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2517,7 +2517,7 @@ namespace isc { namespace dhcp { break; case 347: // not_empty_hooks_libraries_list: not_empty_hooks_libraries_list "," -#line 1399 "dhcp4_parser.yy" +#line 1394 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2525,7 +2525,7 @@ namespace isc { namespace dhcp { break; case 348: // $@53: %empty -#line 1404 "dhcp4_parser.yy" +#line 1399 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2535,7 +2535,7 @@ namespace isc { namespace dhcp { break; case 349: // hooks_library: "{" $@53 hooks_params "}" -#line 1408 "dhcp4_parser.yy" +#line 1403 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2545,7 +2545,7 @@ namespace isc { namespace dhcp { break; case 350: // $@54: %empty -#line 1414 "dhcp4_parser.yy" +#line 1409 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2555,7 +2555,7 @@ namespace isc { namespace dhcp { break; case 351: // sub_hooks_library: "{" $@54 hooks_params "}" -#line 1418 "dhcp4_parser.yy" +#line 1413 "dhcp4_parser.yy" { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2565,7 +2565,7 @@ namespace isc { namespace dhcp { break; case 354: // hooks_params: hooks_params "," -#line 1426 "dhcp4_parser.yy" +#line 1421 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2573,7 +2573,7 @@ namespace isc { namespace dhcp { break; case 358: // $@55: %empty -#line 1436 "dhcp4_parser.yy" +#line 1431 "dhcp4_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2582,7 +2582,7 @@ namespace isc { namespace dhcp { break; case 359: // library: "library" $@55 ":" "constant string" -#line 1439 "dhcp4_parser.yy" +#line 1434 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); @@ -2592,7 +2592,7 @@ namespace isc { namespace dhcp { break; case 360: // $@56: %empty -#line 1445 "dhcp4_parser.yy" +#line 1440 "dhcp4_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2601,7 +2601,7 @@ namespace isc { namespace dhcp { break; case 361: // parameters: "parameters" $@56 ":" map_value -#line 1448 "dhcp4_parser.yy" +#line 1443 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2610,7 +2610,7 @@ namespace isc { namespace dhcp { break; case 362: // $@57: %empty -#line 1454 "dhcp4_parser.yy" +#line 1449 "dhcp4_parser.yy" { ctx.unique("expired-leases-processing", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2622,7 +2622,7 @@ namespace isc { namespace dhcp { break; case 363: // expired_leases_processing: "expired-leases-processing" $@57 ":" "{" expired_leases_params "}" -#line 1460 "dhcp4_parser.yy" +#line 1455 "dhcp4_parser.yy" { // No expired lease parameter is required ctx.stack_.pop_back(); @@ -2632,7 +2632,7 @@ namespace isc { namespace dhcp { break; case 366: // expired_leases_params: expired_leases_params "," -#line 1468 "dhcp4_parser.yy" +#line 1463 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2640,7 +2640,7 @@ namespace isc { namespace dhcp { break; case 373: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" -#line 1481 "dhcp4_parser.yy" +#line 1476 "dhcp4_parser.yy" { ctx.unique("reclaim-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2650,7 +2650,7 @@ namespace isc { namespace dhcp { break; case 374: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" -#line 1487 "dhcp4_parser.yy" +#line 1482 "dhcp4_parser.yy" { ctx.unique("flush-reclaimed-timer-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2660,7 +2660,7 @@ namespace isc { namespace dhcp { break; case 375: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" -#line 1493 "dhcp4_parser.yy" +#line 1488 "dhcp4_parser.yy" { ctx.unique("hold-reclaimed-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2670,7 +2670,7 @@ namespace isc { namespace dhcp { break; case 376: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" -#line 1499 "dhcp4_parser.yy" +#line 1494 "dhcp4_parser.yy" { ctx.unique("max-reclaim-leases", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2680,7 +2680,7 @@ namespace isc { namespace dhcp { break; case 377: // max_reclaim_time: "max-reclaim-time" ":" "integer" -#line 1505 "dhcp4_parser.yy" +#line 1500 "dhcp4_parser.yy" { ctx.unique("max-reclaim-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2690,7 +2690,7 @@ namespace isc { namespace dhcp { break; case 378: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" -#line 1511 "dhcp4_parser.yy" +#line 1506 "dhcp4_parser.yy" { ctx.unique("unwarned-reclaim-cycles", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2700,7 +2700,7 @@ namespace isc { namespace dhcp { break; case 379: // $@58: %empty -#line 1520 "dhcp4_parser.yy" +#line 1515 "dhcp4_parser.yy" { ctx.unique("subnet4", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2712,7 +2712,7 @@ namespace isc { namespace dhcp { break; case 380: // subnet4_list: "subnet4" $@58 ":" "[" subnet4_list_content "]" -#line 1526 "dhcp4_parser.yy" +#line 1521 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2721,7 +2721,7 @@ namespace isc { namespace dhcp { break; case 385: // not_empty_subnet4_list: not_empty_subnet4_list "," -#line 1540 "dhcp4_parser.yy" +#line 1535 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2729,7 +2729,7 @@ namespace isc { namespace dhcp { break; case 386: // $@59: %empty -#line 1549 "dhcp4_parser.yy" +#line 1544 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -2739,7 +2739,7 @@ namespace isc { namespace dhcp { break; case 387: // subnet4: "{" $@59 subnet4_params "}" -#line 1553 "dhcp4_parser.yy" +#line 1548 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -2765,7 +2765,7 @@ namespace isc { namespace dhcp { break; case 388: // $@60: %empty -#line 1575 "dhcp4_parser.yy" +#line 1570 "dhcp4_parser.yy" { // Parse the subnet4 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2775,7 +2775,7 @@ namespace isc { namespace dhcp { break; case 389: // sub_subnet4: "{" $@60 subnet4_params "}" -#line 1579 "dhcp4_parser.yy" +#line 1574 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2785,7 +2785,7 @@ namespace isc { namespace dhcp { break; case 392: // subnet4_params: subnet4_params "," -#line 1588 "dhcp4_parser.yy" +#line 1583 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -2793,7 +2793,7 @@ namespace isc { namespace dhcp { break; case 442: // $@61: %empty -#line 1645 "dhcp4_parser.yy" +#line 1640 "dhcp4_parser.yy" { ctx.unique("subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2802,7 +2802,7 @@ namespace isc { namespace dhcp { break; case 443: // subnet: "subnet" $@61 ":" "constant string" -#line 1648 "dhcp4_parser.yy" +#line 1643 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); @@ -2812,7 +2812,7 @@ namespace isc { namespace dhcp { break; case 444: // $@62: %empty -#line 1654 "dhcp4_parser.yy" +#line 1649 "dhcp4_parser.yy" { ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2821,7 +2821,7 @@ namespace isc { namespace dhcp { break; case 445: // subnet_4o6_interface: "4o6-interface" $@62 ":" "constant string" -#line 1657 "dhcp4_parser.yy" +#line 1652 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface", iface); @@ -2831,7 +2831,7 @@ namespace isc { namespace dhcp { break; case 446: // $@63: %empty -#line 1663 "dhcp4_parser.yy" +#line 1658 "dhcp4_parser.yy" { ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2840,7 +2840,7 @@ namespace isc { namespace dhcp { break; case 447: // subnet_4o6_interface_id: "4o6-interface-id" $@63 ":" "constant string" -#line 1666 "dhcp4_parser.yy" +#line 1661 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-interface-id", iface); @@ -2850,7 +2850,7 @@ namespace isc { namespace dhcp { break; case 448: // $@64: %empty -#line 1672 "dhcp4_parser.yy" +#line 1667 "dhcp4_parser.yy" { ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2859,7 +2859,7 @@ namespace isc { namespace dhcp { break; case 449: // subnet_4o6_subnet: "4o6-subnet" $@64 ":" "constant string" -#line 1675 "dhcp4_parser.yy" +#line 1670 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("4o6-subnet", iface); @@ -2869,7 +2869,7 @@ namespace isc { namespace dhcp { break; case 450: // $@65: %empty -#line 1681 "dhcp4_parser.yy" +#line 1676 "dhcp4_parser.yy" { ctx.unique("interface", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2878,7 +2878,7 @@ namespace isc { namespace dhcp { break; case 451: // interface: "interface" $@65 ":" "constant string" -#line 1684 "dhcp4_parser.yy" +#line 1679 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); @@ -2888,7 +2888,7 @@ namespace isc { namespace dhcp { break; case 452: // $@66: %empty -#line 1690 "dhcp4_parser.yy" +#line 1685 "dhcp4_parser.yy" { ctx.unique("client-class", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -2897,7 +2897,7 @@ namespace isc { namespace dhcp { break; case 453: // client_class: "client-class" $@66 ":" "constant string" -#line 1693 "dhcp4_parser.yy" +#line 1688 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); @@ -2907,7 +2907,7 @@ namespace isc { namespace dhcp { break; case 454: // $@67: %empty -#line 1699 "dhcp4_parser.yy" +#line 1694 "dhcp4_parser.yy" { ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2919,7 +2919,7 @@ namespace isc { namespace dhcp { break; case 455: // require_client_classes: "require-client-classes" $@67 ":" list_strings -#line 1705 "dhcp4_parser.yy" +#line 1700 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -2928,7 +2928,7 @@ namespace isc { namespace dhcp { break; case 456: // reservations_global: "reservations-global" ":" "boolean" -#line 1710 "dhcp4_parser.yy" +#line 1705 "dhcp4_parser.yy" { ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2938,7 +2938,7 @@ namespace isc { namespace dhcp { break; case 457: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean" -#line 1716 "dhcp4_parser.yy" +#line 1711 "dhcp4_parser.yy" { ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2948,7 +2948,7 @@ namespace isc { namespace dhcp { break; case 458: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean" -#line 1722 "dhcp4_parser.yy" +#line 1717 "dhcp4_parser.yy" { ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2958,7 +2958,7 @@ namespace isc { namespace dhcp { break; case 459: // $@68: %empty -#line 1728 "dhcp4_parser.yy" +#line 1723 "dhcp4_parser.yy" { ctx.unique("reservation-mode", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.RESERVATION_MODE); @@ -2967,7 +2967,7 @@ namespace isc { namespace dhcp { break; case 460: // reservation_mode: "reservation-mode" $@68 ":" hr_mode -#line 1731 "dhcp4_parser.yy" +#line 1726 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -2976,31 +2976,31 @@ namespace isc { namespace dhcp { break; case 461: // hr_mode: "disabled" -#line 1736 "dhcp4_parser.yy" +#line 1731 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } #line 2982 "dhcp4_parser.cc" break; case 462: // hr_mode: "out-of-pool" -#line 1737 "dhcp4_parser.yy" +#line 1732 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } #line 2988 "dhcp4_parser.cc" break; case 463: // hr_mode: "global" -#line 1738 "dhcp4_parser.yy" +#line 1733 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } #line 2994 "dhcp4_parser.cc" break; case 464: // hr_mode: "all" -#line 1739 "dhcp4_parser.yy" +#line 1734 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } #line 3000 "dhcp4_parser.cc" break; case 465: // id: "id" ":" "integer" -#line 1742 "dhcp4_parser.yy" +#line 1737 "dhcp4_parser.yy" { ctx.unique("id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3010,7 +3010,7 @@ namespace isc { namespace dhcp { break; case 466: // $@69: %empty -#line 1750 "dhcp4_parser.yy" +#line 1745 "dhcp4_parser.yy" { ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3022,7 +3022,7 @@ namespace isc { namespace dhcp { break; case 467: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]" -#line 1756 "dhcp4_parser.yy" +#line 1751 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3031,7 +3031,7 @@ namespace isc { namespace dhcp { break; case 472: // shared_networks_list: shared_networks_list "," -#line 1769 "dhcp4_parser.yy" +#line 1764 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3039,7 +3039,7 @@ namespace isc { namespace dhcp { break; case 473: // $@70: %empty -#line 1774 "dhcp4_parser.yy" +#line 1769 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3049,7 +3049,7 @@ namespace isc { namespace dhcp { break; case 474: // shared_network: "{" $@70 shared_network_params "}" -#line 1778 "dhcp4_parser.yy" +#line 1773 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } @@ -3057,7 +3057,7 @@ namespace isc { namespace dhcp { break; case 477: // shared_network_params: shared_network_params "," -#line 1784 "dhcp4_parser.yy" +#line 1779 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3065,7 +3065,7 @@ namespace isc { namespace dhcp { break; case 522: // $@71: %empty -#line 1839 "dhcp4_parser.yy" +#line 1834 "dhcp4_parser.yy" { ctx.unique("option-def", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3077,7 +3077,7 @@ namespace isc { namespace dhcp { break; case 523: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]" -#line 1845 "dhcp4_parser.yy" +#line 1840 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3086,7 +3086,7 @@ namespace isc { namespace dhcp { break; case 524: // $@72: %empty -#line 1853 "dhcp4_parser.yy" +#line 1848 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -3095,7 +3095,7 @@ namespace isc { namespace dhcp { break; case 525: // sub_option_def_list: "{" $@72 option_def_list "}" -#line 1856 "dhcp4_parser.yy" +#line 1851 "dhcp4_parser.yy" { // parsing completed } @@ -3103,7 +3103,7 @@ namespace isc { namespace dhcp { break; case 530: // not_empty_option_def_list: not_empty_option_def_list "," -#line 1868 "dhcp4_parser.yy" +#line 1863 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3111,7 +3111,7 @@ namespace isc { namespace dhcp { break; case 531: // $@73: %empty -#line 1875 "dhcp4_parser.yy" +#line 1870 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3121,7 +3121,7 @@ namespace isc { namespace dhcp { break; case 532: // option_def_entry: "{" $@73 option_def_params "}" -#line 1879 "dhcp4_parser.yy" +#line 1874 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3133,7 +3133,7 @@ namespace isc { namespace dhcp { break; case 533: // $@74: %empty -#line 1890 "dhcp4_parser.yy" +#line 1885 "dhcp4_parser.yy" { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3143,7 +3143,7 @@ namespace isc { namespace dhcp { break; case 534: // sub_option_def: "{" $@74 option_def_params "}" -#line 1894 "dhcp4_parser.yy" +#line 1889 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3155,7 +3155,7 @@ namespace isc { namespace dhcp { break; case 539: // not_empty_option_def_params: not_empty_option_def_params "," -#line 1910 "dhcp4_parser.yy" +#line 1905 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3163,7 +3163,7 @@ namespace isc { namespace dhcp { break; case 551: // code: "code" ":" "integer" -#line 1929 "dhcp4_parser.yy" +#line 1924 "dhcp4_parser.yy" { ctx.unique("code", ctx.loc2pos(yystack_[2].location)); ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3173,7 +3173,7 @@ namespace isc { namespace dhcp { break; case 553: // $@75: %empty -#line 1937 "dhcp4_parser.yy" +#line 1932 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3182,7 +3182,7 @@ namespace isc { namespace dhcp { break; case 554: // option_def_type: "type" $@75 ":" "constant string" -#line 1940 "dhcp4_parser.yy" +#line 1935 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); @@ -3192,7 +3192,7 @@ namespace isc { namespace dhcp { break; case 555: // $@76: %empty -#line 1946 "dhcp4_parser.yy" +#line 1941 "dhcp4_parser.yy" { ctx.unique("record-types", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3201,7 +3201,7 @@ namespace isc { namespace dhcp { break; case 556: // option_def_record_types: "record-types" $@76 ":" "constant string" -#line 1949 "dhcp4_parser.yy" +#line 1944 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("record-types", rtypes); @@ -3211,7 +3211,7 @@ namespace isc { namespace dhcp { break; case 557: // $@77: %empty -#line 1955 "dhcp4_parser.yy" +#line 1950 "dhcp4_parser.yy" { ctx.unique("space", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3220,7 +3220,7 @@ namespace isc { namespace dhcp { break; case 558: // space: "space" $@77 ":" "constant string" -#line 1958 "dhcp4_parser.yy" +#line 1953 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); @@ -3230,7 +3230,7 @@ namespace isc { namespace dhcp { break; case 560: // $@78: %empty -#line 1966 "dhcp4_parser.yy" +#line 1961 "dhcp4_parser.yy" { ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3239,7 +3239,7 @@ namespace isc { namespace dhcp { break; case 561: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string" -#line 1969 "dhcp4_parser.yy" +#line 1964 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); @@ -3249,7 +3249,7 @@ namespace isc { namespace dhcp { break; case 562: // option_def_array: "array" ":" "boolean" -#line 1975 "dhcp4_parser.yy" +#line 1970 "dhcp4_parser.yy" { ctx.unique("array", ctx.loc2pos(yystack_[2].location)); ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3259,7 +3259,7 @@ namespace isc { namespace dhcp { break; case 563: // $@79: %empty -#line 1985 "dhcp4_parser.yy" +#line 1980 "dhcp4_parser.yy" { ctx.unique("option-data", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3271,7 +3271,7 @@ namespace isc { namespace dhcp { break; case 564: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]" -#line 1991 "dhcp4_parser.yy" +#line 1986 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3280,7 +3280,7 @@ namespace isc { namespace dhcp { break; case 569: // not_empty_option_data_list: not_empty_option_data_list "," -#line 2006 "dhcp4_parser.yy" +#line 2001 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3288,7 +3288,7 @@ namespace isc { namespace dhcp { break; case 570: // $@80: %empty -#line 2013 "dhcp4_parser.yy" +#line 2008 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3298,7 +3298,7 @@ namespace isc { namespace dhcp { break; case 571: // option_data_entry: "{" $@80 option_data_params "}" -#line 2017 "dhcp4_parser.yy" +#line 2012 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); @@ -3307,7 +3307,7 @@ namespace isc { namespace dhcp { break; case 572: // $@81: %empty -#line 2025 "dhcp4_parser.yy" +#line 2020 "dhcp4_parser.yy" { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3317,7 +3317,7 @@ namespace isc { namespace dhcp { break; case 573: // sub_option_data: "{" $@81 option_data_params "}" -#line 2029 "dhcp4_parser.yy" +#line 2024 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. // parsing completed @@ -3326,7 +3326,7 @@ namespace isc { namespace dhcp { break; case 578: // not_empty_option_data_params: not_empty_option_data_params "," -#line 2045 "dhcp4_parser.yy" +#line 2040 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3334,7 +3334,7 @@ namespace isc { namespace dhcp { break; case 590: // $@82: %empty -#line 2066 "dhcp4_parser.yy" +#line 2061 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3343,7 +3343,7 @@ namespace isc { namespace dhcp { break; case 591: // option_data_data: "data" $@82 ":" "constant string" -#line 2069 "dhcp4_parser.yy" +#line 2064 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); @@ -3353,7 +3353,7 @@ namespace isc { namespace dhcp { break; case 594: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2079 "dhcp4_parser.yy" +#line 2074 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3363,7 +3363,7 @@ namespace isc { namespace dhcp { break; case 595: // option_data_always_send: "always-send" ":" "boolean" -#line 2085 "dhcp4_parser.yy" +#line 2080 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3373,7 +3373,7 @@ namespace isc { namespace dhcp { break; case 596: // option_data_never_send: "never-send" ":" "boolean" -#line 2091 "dhcp4_parser.yy" +#line 2086 "dhcp4_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3383,7 +3383,7 @@ namespace isc { namespace dhcp { break; case 597: // $@83: %empty -#line 2100 "dhcp4_parser.yy" +#line 2095 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3395,7 +3395,7 @@ namespace isc { namespace dhcp { break; case 598: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" -#line 2106 "dhcp4_parser.yy" +#line 2101 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3404,7 +3404,7 @@ namespace isc { namespace dhcp { break; case 603: // not_empty_pools_list: not_empty_pools_list "," -#line 2119 "dhcp4_parser.yy" +#line 2114 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3412,7 +3412,7 @@ namespace isc { namespace dhcp { break; case 604: // $@84: %empty -#line 2124 "dhcp4_parser.yy" +#line 2119 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3422,7 +3422,7 @@ namespace isc { namespace dhcp { break; case 605: // pool_list_entry: "{" $@84 pool_params "}" -#line 2128 "dhcp4_parser.yy" +#line 2123 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3432,7 +3432,7 @@ namespace isc { namespace dhcp { break; case 606: // $@85: %empty -#line 2134 "dhcp4_parser.yy" +#line 2129 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3442,7 +3442,7 @@ namespace isc { namespace dhcp { break; case 607: // sub_pool4: "{" $@85 pool_params "}" -#line 2138 "dhcp4_parser.yy" +#line 2133 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3452,7 +3452,7 @@ namespace isc { namespace dhcp { break; case 610: // pool_params: pool_params "," -#line 2146 "dhcp4_parser.yy" +#line 2141 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3460,7 +3460,7 @@ namespace isc { namespace dhcp { break; case 619: // $@86: %empty -#line 2161 "dhcp4_parser.yy" +#line 2156 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3469,7 +3469,7 @@ namespace isc { namespace dhcp { break; case 620: // pool_entry: "pool" $@86 ":" "constant string" -#line 2164 "dhcp4_parser.yy" +#line 2159 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); @@ -3479,7 +3479,7 @@ namespace isc { namespace dhcp { break; case 621: // pool_id: "pool-id" ":" "integer" -#line 2170 "dhcp4_parser.yy" +#line 2165 "dhcp4_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3489,7 +3489,7 @@ namespace isc { namespace dhcp { break; case 622: // $@87: %empty -#line 2176 "dhcp4_parser.yy" +#line 2171 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -3497,7 +3497,7 @@ namespace isc { namespace dhcp { break; case 623: // user_context: "user-context" $@87 ":" map_value -#line 2178 "dhcp4_parser.yy" +#line 2173 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3524,7 +3524,7 @@ namespace isc { namespace dhcp { break; case 624: // $@88: %empty -#line 2201 "dhcp4_parser.yy" +#line 2196 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } @@ -3532,7 +3532,7 @@ namespace isc { namespace dhcp { break; case 625: // comment: "comment" $@88 ":" "constant string" -#line 2203 "dhcp4_parser.yy" +#line 2198 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3561,7 +3561,7 @@ namespace isc { namespace dhcp { break; case 626: // $@89: %empty -#line 2231 "dhcp4_parser.yy" +#line 2226 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3573,7 +3573,7 @@ namespace isc { namespace dhcp { break; case 627: // reservations: "reservations" $@89 ":" "[" reservations_list "]" -#line 2237 "dhcp4_parser.yy" +#line 2232 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3582,7 +3582,7 @@ namespace isc { namespace dhcp { break; case 632: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2248 "dhcp4_parser.yy" +#line 2243 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3590,7 +3590,7 @@ namespace isc { namespace dhcp { break; case 633: // $@90: %empty -#line 2253 "dhcp4_parser.yy" +#line 2248 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3600,7 +3600,7 @@ namespace isc { namespace dhcp { break; case 634: // reservation: "{" $@90 reservation_params "}" -#line 2257 "dhcp4_parser.yy" +#line 2252 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); @@ -3609,7 +3609,7 @@ namespace isc { namespace dhcp { break; case 635: // $@91: %empty -#line 2262 "dhcp4_parser.yy" +#line 2257 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3619,7 +3619,7 @@ namespace isc { namespace dhcp { break; case 636: // sub_reservation: "{" $@91 reservation_params "}" -#line 2266 "dhcp4_parser.yy" +#line 2261 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed @@ -3628,7 +3628,7 @@ namespace isc { namespace dhcp { break; case 641: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2277 "dhcp4_parser.yy" +#line 2272 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3636,7 +3636,7 @@ namespace isc { namespace dhcp { break; case 657: // $@92: %empty -#line 2300 "dhcp4_parser.yy" +#line 2295 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3645,7 +3645,7 @@ namespace isc { namespace dhcp { break; case 658: // next_server: "next-server" $@92 ":" "constant string" -#line 2303 "dhcp4_parser.yy" +#line 2298 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); @@ -3655,7 +3655,7 @@ namespace isc { namespace dhcp { break; case 659: // $@93: %empty -#line 2309 "dhcp4_parser.yy" +#line 2304 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3664,7 +3664,7 @@ namespace isc { namespace dhcp { break; case 660: // server_hostname: "server-hostname" $@93 ":" "constant string" -#line 2312 "dhcp4_parser.yy" +#line 2307 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); @@ -3674,7 +3674,7 @@ namespace isc { namespace dhcp { break; case 661: // $@94: %empty -#line 2318 "dhcp4_parser.yy" +#line 2313 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3683,7 +3683,7 @@ namespace isc { namespace dhcp { break; case 662: // boot_file_name: "boot-file-name" $@94 ":" "constant string" -#line 2321 "dhcp4_parser.yy" +#line 2316 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); @@ -3693,7 +3693,7 @@ namespace isc { namespace dhcp { break; case 663: // $@95: %empty -#line 2327 "dhcp4_parser.yy" +#line 2322 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3702,7 +3702,7 @@ namespace isc { namespace dhcp { break; case 664: // ip_address: "ip-address" $@95 ":" "constant string" -#line 2330 "dhcp4_parser.yy" +#line 2325 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); @@ -3712,7 +3712,7 @@ namespace isc { namespace dhcp { break; case 665: // $@96: %empty -#line 2336 "dhcp4_parser.yy" +#line 2331 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3721,7 +3721,7 @@ namespace isc { namespace dhcp { break; case 666: // duid: "duid" $@96 ":" "constant string" -#line 2339 "dhcp4_parser.yy" +#line 2334 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); @@ -3731,7 +3731,7 @@ namespace isc { namespace dhcp { break; case 667: // $@97: %empty -#line 2345 "dhcp4_parser.yy" +#line 2340 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3740,7 +3740,7 @@ namespace isc { namespace dhcp { break; case 668: // hw_address: "hw-address" $@97 ":" "constant string" -#line 2348 "dhcp4_parser.yy" +#line 2343 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); @@ -3750,7 +3750,7 @@ namespace isc { namespace dhcp { break; case 669: // $@98: %empty -#line 2354 "dhcp4_parser.yy" +#line 2349 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3759,7 +3759,7 @@ namespace isc { namespace dhcp { break; case 670: // client_id_value: "client-id" $@98 ":" "constant string" -#line 2357 "dhcp4_parser.yy" +#line 2352 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); @@ -3769,7 +3769,7 @@ namespace isc { namespace dhcp { break; case 671: // $@99: %empty -#line 2363 "dhcp4_parser.yy" +#line 2358 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3778,7 +3778,7 @@ namespace isc { namespace dhcp { break; case 672: // circuit_id_value: "circuit-id" $@99 ":" "constant string" -#line 2366 "dhcp4_parser.yy" +#line 2361 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); @@ -3788,7 +3788,7 @@ namespace isc { namespace dhcp { break; case 673: // $@100: %empty -#line 2372 "dhcp4_parser.yy" +#line 2367 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3797,7 +3797,7 @@ namespace isc { namespace dhcp { break; case 674: // flex_id_value: "flex-id" $@100 ":" "constant string" -#line 2375 "dhcp4_parser.yy" +#line 2370 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); @@ -3807,7 +3807,7 @@ namespace isc { namespace dhcp { break; case 675: // $@101: %empty -#line 2381 "dhcp4_parser.yy" +#line 2376 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3816,7 +3816,7 @@ namespace isc { namespace dhcp { break; case 676: // hostname: "hostname" $@101 ":" "constant string" -#line 2384 "dhcp4_parser.yy" +#line 2379 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); @@ -3826,7 +3826,7 @@ namespace isc { namespace dhcp { break; case 677: // $@102: %empty -#line 2390 "dhcp4_parser.yy" +#line 2385 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3838,7 +3838,7 @@ namespace isc { namespace dhcp { break; case 678: // reservation_client_classes: "client-classes" $@102 ":" list_strings -#line 2396 "dhcp4_parser.yy" +#line 2391 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3847,7 +3847,7 @@ namespace isc { namespace dhcp { break; case 679: // $@103: %empty -#line 2404 "dhcp4_parser.yy" +#line 2399 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3859,7 +3859,7 @@ namespace isc { namespace dhcp { break; case 680: // relay: "relay" $@103 ":" "{" relay_map "}" -#line 2410 "dhcp4_parser.yy" +#line 2405 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3868,7 +3868,7 @@ namespace isc { namespace dhcp { break; case 682: // $@104: %empty -#line 2418 "dhcp4_parser.yy" +#line 2413 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3880,7 +3880,7 @@ namespace isc { namespace dhcp { break; case 683: // ip_addresses: "ip-addresses" $@104 ":" list_strings -#line 2424 "dhcp4_parser.yy" +#line 2419 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3889,7 +3889,7 @@ namespace isc { namespace dhcp { break; case 684: // $@105: %empty -#line 2432 "dhcp4_parser.yy" +#line 2427 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3901,7 +3901,7 @@ namespace isc { namespace dhcp { break; case 685: // client_classes: "client-classes" $@105 ":" "[" client_classes_list "]" -#line 2438 "dhcp4_parser.yy" +#line 2433 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3910,7 +3910,7 @@ namespace isc { namespace dhcp { break; case 688: // client_classes_list: client_classes_list "," -#line 2445 "dhcp4_parser.yy" +#line 2440 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3918,7 +3918,7 @@ namespace isc { namespace dhcp { break; case 689: // $@106: %empty -#line 2450 "dhcp4_parser.yy" +#line 2445 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3928,7 +3928,7 @@ namespace isc { namespace dhcp { break; case 690: // client_class_entry: "{" $@106 client_class_params "}" -#line 2454 "dhcp4_parser.yy" +#line 2449 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3938,7 +3938,7 @@ namespace isc { namespace dhcp { break; case 695: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2466 "dhcp4_parser.yy" +#line 2461 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -3946,7 +3946,7 @@ namespace isc { namespace dhcp { break; case 713: // $@107: %empty -#line 2491 "dhcp4_parser.yy" +#line 2486 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3955,7 +3955,7 @@ namespace isc { namespace dhcp { break; case 714: // client_class_test: "test" $@107 ":" "constant string" -#line 2494 "dhcp4_parser.yy" +#line 2489 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); @@ -3965,7 +3965,7 @@ namespace isc { namespace dhcp { break; case 715: // $@108: %empty -#line 2500 "dhcp4_parser.yy" +#line 2495 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3974,7 +3974,7 @@ namespace isc { namespace dhcp { break; case 716: // client_class_template_test: "template-test" $@108 ":" "constant string" -#line 2503 "dhcp4_parser.yy" +#line 2498 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); @@ -3984,7 +3984,7 @@ namespace isc { namespace dhcp { break; case 717: // only_if_required: "only-if-required" ":" "boolean" -#line 2509 "dhcp4_parser.yy" +#line 2504 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3994,7 +3994,7 @@ namespace isc { namespace dhcp { break; case 718: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2517 "dhcp4_parser.yy" +#line 2512 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4004,7 +4004,7 @@ namespace isc { namespace dhcp { break; case 719: // $@109: %empty -#line 2525 "dhcp4_parser.yy" +#line 2520 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4016,7 +4016,7 @@ namespace isc { namespace dhcp { break; case 720: // control_socket: "control-socket" $@109 ":" "{" control_socket_params "}" -#line 2531 "dhcp4_parser.yy" +#line 2526 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -4025,7 +4025,7 @@ namespace isc { namespace dhcp { break; case 723: // control_socket_params: control_socket_params "," -#line 2538 "dhcp4_parser.yy" +#line 2533 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4033,7 +4033,7 @@ namespace isc { namespace dhcp { break; case 729: // $@110: %empty -#line 2550 "dhcp4_parser.yy" +#line 2545 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4042,7 +4042,7 @@ namespace isc { namespace dhcp { break; case 730: // control_socket_type: "socket-type" $@110 ":" "constant string" -#line 2553 "dhcp4_parser.yy" +#line 2548 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); @@ -4052,7 +4052,7 @@ namespace isc { namespace dhcp { break; case 731: // $@111: %empty -#line 2559 "dhcp4_parser.yy" +#line 2554 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4061,7 +4061,7 @@ namespace isc { namespace dhcp { break; case 732: // control_socket_name: "socket-name" $@111 ":" "constant string" -#line 2562 "dhcp4_parser.yy" +#line 2557 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); @@ -4071,7 +4071,7 @@ namespace isc { namespace dhcp { break; case 733: // $@112: %empty -#line 2571 "dhcp4_parser.yy" +#line 2566 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4083,7 +4083,7 @@ namespace isc { namespace dhcp { break; case 734: // dhcp_queue_control: "dhcp-queue-control" $@112 ":" "{" queue_control_params "}" -#line 2577 "dhcp4_parser.yy" +#line 2572 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -4094,7 +4094,7 @@ namespace isc { namespace dhcp { break; case 737: // queue_control_params: queue_control_params "," -#line 2586 "dhcp4_parser.yy" +#line 2581 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } @@ -4102,7 +4102,7 @@ namespace isc { namespace dhcp { break; case 744: // enable_queue: "enable-queue" ":" "boolean" -#line 2599 "dhcp4_parser.yy" +#line 2594 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4112,7 +4112,7 @@ namespace isc { namespace dhcp { break; case 745: // $@113: %empty -#line 2605 "dhcp4_parser.yy" +#line 2600 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4121,7 +4121,7 @@ namespace isc { namespace dhcp { break; case 746: // queue_type: "queue-type" $@113 ":" "constant string" -#line 2608 "dhcp4_parser.yy" +#line 2603 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); @@ -4131,7 +4131,7 @@ namespace isc { namespace dhcp { break; case 747: // capacity: "capacity" ":" "integer" -#line 2614 "dhcp4_parser.yy" +#line 2609 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4141,7 +4141,7 @@ namespace isc { namespace dhcp { break; case 748: // $@114: %empty -#line 2620 "dhcp4_parser.yy" +#line 2615 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4150,7 +4150,7 @@ namespace isc { namespace dhcp { break; case 749: // arbitrary_map_entry: "constant string" $@114 ":" value -#line 2623 "dhcp4_parser.yy" +#line 2618 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4159,7 +4159,7 @@ namespace isc { namespace dhcp { break; case 750: // $@115: %empty -#line 2630 "dhcp4_parser.yy" +#line 2625 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4171,7 +4171,7 @@ namespace isc { namespace dhcp { break; case 751: // dhcp_ddns: "dhcp-ddns" $@115 ":" "{" dhcp_ddns_params "}" -#line 2636 "dhcp4_parser.yy" +#line 2631 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); @@ -4182,7 +4182,7 @@ namespace isc { namespace dhcp { break; case 752: // $@116: %empty -#line 2643 "dhcp4_parser.yy" +#line 2638 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4192,7 +4192,7 @@ namespace isc { namespace dhcp { break; case 753: // sub_dhcp_ddns: "{" $@116 dhcp_ddns_params "}" -#line 2647 "dhcp4_parser.yy" +#line 2642 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -4202,15 +4202,15 @@ namespace isc { namespace dhcp { break; case 756: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2655 "dhcp4_parser.yy" +#line 2650 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } #line 4210 "dhcp4_parser.cc" break; - case 775: // enable_updates: "enable-updates" ":" "boolean" -#line 2680 "dhcp4_parser.yy" + case 768: // enable_updates: "enable-updates" ":" "boolean" +#line 2668 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -4219,8 +4219,8 @@ namespace isc { namespace dhcp { #line 4220 "dhcp4_parser.cc" break; - case 776: // $@117: %empty -#line 2686 "dhcp4_parser.yy" + case 769: // $@117: %empty +#line 2674 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4228,8 +4228,8 @@ namespace isc { namespace dhcp { #line 4229 "dhcp4_parser.cc" break; - case 777: // server_ip: "server-ip" $@117 ":" "constant string" -#line 2689 "dhcp4_parser.yy" + case 770: // server_ip: "server-ip" $@117 ":" "constant string" +#line 2677 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); @@ -4238,8 +4238,8 @@ namespace isc { namespace dhcp { #line 4239 "dhcp4_parser.cc" break; - case 778: // server_port: "server-port" ":" "integer" -#line 2695 "dhcp4_parser.yy" + case 771: // server_port: "server-port" ":" "integer" +#line 2683 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4248,8 +4248,8 @@ namespace isc { namespace dhcp { #line 4249 "dhcp4_parser.cc" break; - case 779: // $@118: %empty -#line 2701 "dhcp4_parser.yy" + case 772: // $@118: %empty +#line 2689 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -4257,8 +4257,8 @@ namespace isc { namespace dhcp { #line 4258 "dhcp4_parser.cc" break; - case 780: // sender_ip: "sender-ip" $@118 ":" "constant string" -#line 2704 "dhcp4_parser.yy" + case 773: // sender_ip: "sender-ip" $@118 ":" "constant string" +#line 2692 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); @@ -4267,8 +4267,8 @@ namespace isc { namespace dhcp { #line 4268 "dhcp4_parser.cc" break; - case 781: // sender_port: "sender-port" ":" "integer" -#line 2710 "dhcp4_parser.yy" + case 774: // sender_port: "sender-port" ":" "integer" +#line 2698 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4277,8 +4277,8 @@ namespace isc { namespace dhcp { #line 4278 "dhcp4_parser.cc" break; - case 782: // max_queue_size: "max-queue-size" ":" "integer" -#line 2716 "dhcp4_parser.yy" + case 775: // max_queue_size: "max-queue-size" ":" "integer" +#line 2704 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -4287,8 +4287,8 @@ namespace isc { namespace dhcp { #line 4288 "dhcp4_parser.cc" break; - case 783: // $@119: %empty -#line 2722 "dhcp4_parser.yy" + case 776: // $@119: %empty +#line 2710 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); @@ -4296,8 +4296,8 @@ namespace isc { namespace dhcp { #line 4297 "dhcp4_parser.cc" break; - case 784: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value -#line 2725 "dhcp4_parser.yy" + case 777: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value +#line 2713 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -4305,20 +4305,20 @@ namespace isc { namespace dhcp { #line 4306 "dhcp4_parser.cc" break; - case 785: // ncr_protocol_value: "udp" -#line 2731 "dhcp4_parser.yy" + case 778: // ncr_protocol_value: "udp" +#line 2719 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 4312 "dhcp4_parser.cc" break; - case 786: // ncr_protocol_value: "tcp" -#line 2732 "dhcp4_parser.yy" + case 779: // ncr_protocol_value: "tcp" +#line 2720 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 4318 "dhcp4_parser.cc" break; - case 787: // $@120: %empty -#line 2735 "dhcp4_parser.yy" + case 780: // $@120: %empty +#line 2723 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); @@ -4326,8 +4326,8 @@ namespace isc { namespace dhcp { #line 4327 "dhcp4_parser.cc" break; - case 788: // ncr_format: "ncr-format" $@120 ":" "JSON" -#line 2738 "dhcp4_parser.yy" + case 781: // ncr_format: "ncr-format" $@120 ":" "JSON" +#line 2726 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); @@ -4336,122 +4336,8 @@ namespace isc { namespace dhcp { #line 4337 "dhcp4_parser.cc" break; - case 789: // $@121: %empty -#line 2745 "dhcp4_parser.yy" - { - ctx.unique("qualifying-suffix", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.NO_KEYWORD); -} -#line 4346 "dhcp4_parser.cc" - break; - - case 790: // dep_qualifying_suffix: "qualifying-suffix" $@121 ":" "constant string" -#line 2748 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("qualifying-suffix", s); - ctx.leave(); -} -#line 4356 "dhcp4_parser.cc" - break; - - case 791: // dep_override_no_update: "override-no-update" ":" "boolean" -#line 2755 "dhcp4_parser.yy" - { - ctx.unique("override-no-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("override-no-update", b); -} -#line 4366 "dhcp4_parser.cc" - break; - - case 792: // dep_override_client_update: "override-client-update" ":" "boolean" -#line 2762 "dhcp4_parser.yy" - { - ctx.unique("override-client-update", ctx.loc2pos(yystack_[2].location)); - ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("override-client-update", b); -} -#line 4376 "dhcp4_parser.cc" - break; - - case 793: // $@122: %empty -#line 2769 "dhcp4_parser.yy" - { - ctx.unique("replace-client-name", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.REPLACE_CLIENT_NAME); -} -#line 4385 "dhcp4_parser.cc" - break; - - case 794: // dep_replace_client_name: "replace-client-name" $@122 ":" ddns_replace_client_name_value -#line 2772 "dhcp4_parser.yy" - { - ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); - ctx.leave(); -} -#line 4394 "dhcp4_parser.cc" - break; - - case 795: // $@123: %empty -#line 2778 "dhcp4_parser.yy" - { - ctx.unique("generated-prefix", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.NO_KEYWORD); -} -#line 4403 "dhcp4_parser.cc" - break; - - case 796: // dep_generated_prefix: "generated-prefix" $@123 ":" "constant string" -#line 2781 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("generated-prefix", s); - ctx.leave(); -} -#line 4413 "dhcp4_parser.cc" - break; - - case 797: // $@124: %empty -#line 2788 "dhcp4_parser.yy" - { - ctx.unique("hostname-char-set", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.NO_KEYWORD); -} -#line 4422 "dhcp4_parser.cc" - break; - - case 798: // dep_hostname_char_set: "hostname-char-set" $@124 ":" "constant string" -#line 2791 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("hostname-char-set", s); - ctx.leave(); -} -#line 4432 "dhcp4_parser.cc" - break; - - case 799: // $@125: %empty -#line 2798 "dhcp4_parser.yy" - { - ctx.unique("hostname-char-replacement", ctx.loc2pos(yystack_[0].location)); - ctx.enter(ctx.NO_KEYWORD); -} -#line 4441 "dhcp4_parser.cc" - break; - - case 800: // dep_hostname_char_replacement: "hostname-char-replacement" $@125 ":" "constant string" -#line 2801 "dhcp4_parser.yy" - { - ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); - ctx.stack_.back()->set("hostname-char-replacement", s); - ctx.leave(); -} -#line 4451 "dhcp4_parser.cc" - break; - - case 801: // $@126: %empty -#line 2810 "dhcp4_parser.yy" + case 782: // $@121: %empty +#line 2734 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4459,48 +4345,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4463 "dhcp4_parser.cc" +#line 4349 "dhcp4_parser.cc" break; - case 802: // config_control: "config-control" $@126 ":" "{" config_control_params "}" -#line 2816 "dhcp4_parser.yy" + case 783: // config_control: "config-control" $@121 ":" "{" config_control_params "}" +#line 2740 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4473 "dhcp4_parser.cc" +#line 4359 "dhcp4_parser.cc" break; - case 803: // $@127: %empty -#line 2822 "dhcp4_parser.yy" + case 784: // $@122: %empty +#line 2746 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4483 "dhcp4_parser.cc" +#line 4369 "dhcp4_parser.cc" break; - case 804: // sub_config_control: "{" $@127 config_control_params "}" -#line 2826 "dhcp4_parser.yy" + case 785: // sub_config_control: "{" $@122 config_control_params "}" +#line 2750 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 4492 "dhcp4_parser.cc" +#line 4378 "dhcp4_parser.cc" break; - case 807: // config_control_params: config_control_params "," -#line 2834 "dhcp4_parser.yy" + case 788: // config_control_params: config_control_params "," +#line 2758 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4500 "dhcp4_parser.cc" +#line 4386 "dhcp4_parser.cc" break; - case 810: // $@128: %empty -#line 2844 "dhcp4_parser.yy" + case 791: // $@123: %empty +#line 2768 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4508,30 +4394,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4512 "dhcp4_parser.cc" +#line 4398 "dhcp4_parser.cc" break; - case 811: // config_databases: "config-databases" $@128 ":" "[" database_list "]" -#line 2850 "dhcp4_parser.yy" + case 792: // config_databases: "config-databases" $@123 ":" "[" database_list "]" +#line 2774 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4521 "dhcp4_parser.cc" +#line 4407 "dhcp4_parser.cc" break; - case 812: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2855 "dhcp4_parser.yy" + case 793: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2779 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4531 "dhcp4_parser.cc" +#line 4417 "dhcp4_parser.cc" break; - case 813: // $@129: %empty -#line 2863 "dhcp4_parser.yy" + case 794: // $@124: %empty +#line 2787 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4539,83 +4425,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4543 "dhcp4_parser.cc" +#line 4429 "dhcp4_parser.cc" break; - case 814: // loggers: "loggers" $@129 ":" "[" loggers_entries "]" -#line 2869 "dhcp4_parser.yy" + case 795: // loggers: "loggers" $@124 ":" "[" loggers_entries "]" +#line 2793 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4552 "dhcp4_parser.cc" +#line 4438 "dhcp4_parser.cc" break; - case 817: // loggers_entries: loggers_entries "," -#line 2878 "dhcp4_parser.yy" + case 798: // loggers_entries: loggers_entries "," +#line 2802 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4560 "dhcp4_parser.cc" +#line 4446 "dhcp4_parser.cc" break; - case 818: // $@130: %empty -#line 2884 "dhcp4_parser.yy" + case 799: // $@125: %empty +#line 2808 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4570 "dhcp4_parser.cc" +#line 4456 "dhcp4_parser.cc" break; - case 819: // logger_entry: "{" $@130 logger_params "}" -#line 2888 "dhcp4_parser.yy" + case 800: // logger_entry: "{" $@125 logger_params "}" +#line 2812 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4578 "dhcp4_parser.cc" +#line 4464 "dhcp4_parser.cc" break; - case 822: // logger_params: logger_params "," -#line 2894 "dhcp4_parser.yy" + case 803: // logger_params: logger_params "," +#line 2818 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4586 "dhcp4_parser.cc" +#line 4472 "dhcp4_parser.cc" break; - case 830: // debuglevel: "debuglevel" ":" "integer" -#line 2908 "dhcp4_parser.yy" + case 811: // debuglevel: "debuglevel" ":" "integer" +#line 2832 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4596 "dhcp4_parser.cc" +#line 4482 "dhcp4_parser.cc" break; - case 831: // $@131: %empty -#line 2914 "dhcp4_parser.yy" + case 812: // $@126: %empty +#line 2838 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4605 "dhcp4_parser.cc" +#line 4491 "dhcp4_parser.cc" break; - case 832: // severity: "severity" $@131 ":" "constant string" -#line 2917 "dhcp4_parser.yy" + case 813: // severity: "severity" $@126 ":" "constant string" +#line 2841 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4615 "dhcp4_parser.cc" +#line 4501 "dhcp4_parser.cc" break; - case 833: // $@132: %empty -#line 2923 "dhcp4_parser.yy" + case 814: // $@127: %empty +#line 2847 "dhcp4_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4623,122 +4509,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4627 "dhcp4_parser.cc" +#line 4513 "dhcp4_parser.cc" break; - case 834: // output_options_list: "output-options" $@132 ":" "[" output_options_list_content "]" -#line 2929 "dhcp4_parser.yy" + case 815: // output_options_list: "output-options" $@127 ":" "[" output_options_list_content "]" +#line 2853 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4636 "dhcp4_parser.cc" +#line 4522 "dhcp4_parser.cc" break; - case 837: // output_options_list_content: output_options_list_content "," -#line 2936 "dhcp4_parser.yy" + case 818: // output_options_list_content: output_options_list_content "," +#line 2860 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4644 "dhcp4_parser.cc" +#line 4530 "dhcp4_parser.cc" break; - case 838: // $@133: %empty -#line 2941 "dhcp4_parser.yy" + case 819: // $@128: %empty +#line 2865 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4654 "dhcp4_parser.cc" +#line 4540 "dhcp4_parser.cc" break; - case 839: // output_entry: "{" $@133 output_params_list "}" -#line 2945 "dhcp4_parser.yy" + case 820: // output_entry: "{" $@128 output_params_list "}" +#line 2869 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4662 "dhcp4_parser.cc" +#line 4548 "dhcp4_parser.cc" break; - case 842: // output_params_list: output_params_list "," -#line 2951 "dhcp4_parser.yy" + case 823: // output_params_list: output_params_list "," +#line 2875 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4670 "dhcp4_parser.cc" +#line 4556 "dhcp4_parser.cc" break; - case 848: // $@134: %empty -#line 2963 "dhcp4_parser.yy" + case 829: // $@129: %empty +#line 2887 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4679 "dhcp4_parser.cc" +#line 4565 "dhcp4_parser.cc" break; - case 849: // output: "output" $@134 ":" "constant string" -#line 2966 "dhcp4_parser.yy" + case 830: // output: "output" $@129 ":" "constant string" +#line 2890 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4689 "dhcp4_parser.cc" +#line 4575 "dhcp4_parser.cc" break; - case 850: // flush: "flush" ":" "boolean" -#line 2972 "dhcp4_parser.yy" + case 831: // flush: "flush" ":" "boolean" +#line 2896 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4699 "dhcp4_parser.cc" +#line 4585 "dhcp4_parser.cc" break; - case 851: // maxsize: "maxsize" ":" "integer" -#line 2978 "dhcp4_parser.yy" + case 832: // maxsize: "maxsize" ":" "integer" +#line 2902 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4709 "dhcp4_parser.cc" +#line 4595 "dhcp4_parser.cc" break; - case 852: // maxver: "maxver" ":" "integer" -#line 2984 "dhcp4_parser.yy" + case 833: // maxver: "maxver" ":" "integer" +#line 2908 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4719 "dhcp4_parser.cc" +#line 4605 "dhcp4_parser.cc" break; - case 853: // $@135: %empty -#line 2990 "dhcp4_parser.yy" + case 834: // $@130: %empty +#line 2914 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4728 "dhcp4_parser.cc" +#line 4614 "dhcp4_parser.cc" break; - case 854: // pattern: "pattern" $@135 ":" "constant string" -#line 2993 "dhcp4_parser.yy" + case 835: // pattern: "pattern" $@130 ":" "constant string" +#line 2917 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4738 "dhcp4_parser.cc" +#line 4624 "dhcp4_parser.cc" break; - case 855: // $@136: %empty -#line 2999 "dhcp4_parser.yy" + case 836: // $@131: %empty +#line 2923 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4746,68 +4632,68 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 4750 "dhcp4_parser.cc" +#line 4636 "dhcp4_parser.cc" break; - case 856: // compatibility: "compatibility" $@136 ":" "{" compatibility_params "}" -#line 3005 "dhcp4_parser.yy" + case 837: // compatibility: "compatibility" $@131 ":" "{" compatibility_params "}" +#line 2929 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4759 "dhcp4_parser.cc" +#line 4645 "dhcp4_parser.cc" break; - case 859: // compatibility_params: compatibility_params "," -#line 3012 "dhcp4_parser.yy" + case 840: // compatibility_params: compatibility_params "," +#line 2936 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4767 "dhcp4_parser.cc" +#line 4653 "dhcp4_parser.cc" break; - case 865: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3024 "dhcp4_parser.yy" + case 846: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 2948 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 4777 "dhcp4_parser.cc" +#line 4663 "dhcp4_parser.cc" break; - case 866: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" -#line 3030 "dhcp4_parser.yy" + case 847: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" +#line 2954 "dhcp4_parser.yy" { ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-dhcp-server-identifier", b); } -#line 4787 "dhcp4_parser.cc" +#line 4673 "dhcp4_parser.cc" break; - case 867: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" -#line 3036 "dhcp4_parser.yy" + case 848: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" +#line 2960 "dhcp4_parser.yy" { ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-rai-link-selection", b); } -#line 4797 "dhcp4_parser.cc" +#line 4683 "dhcp4_parser.cc" break; - case 868: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" -#line 3042 "dhcp4_parser.yy" + case 849: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" +#line 2966 "dhcp4_parser.yy" { ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("exclude-first-last-24", b); } -#line 4807 "dhcp4_parser.cc" +#line 4693 "dhcp4_parser.cc" break; -#line 4811 "dhcp4_parser.cc" +#line 4697 "dhcp4_parser.cc" default: break; @@ -5159,147 +5045,144 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -1028; + const short Dhcp4Parser::yypact_ninf_ = -995; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 435, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 75, 44, 64, 109, 137, 167, - 186, 193, 223, 246, 277, 278, 279, 289, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 44, -167, 83, 244, 88, 662, - -40, 310, 152, 325, 115, -41, 452, 134, -1028, 300, - 304, 334, 339, 305, -1028, 15, -1028, -1028, -1028, -1028, - 344, 353, 359, -1028, -1028, -1028, 363, 364, -1028, -1028, - -1028, 365, 366, 373, 374, 377, 387, 389, 390, 392, - 393, 394, -1028, 395, 396, 397, 400, 401, -1028, -1028, - -1028, 404, 405, 407, 408, -1028, -1028, -1028, 409, -1028, - -1028, -1028, -1028, -1028, -1028, 411, 412, 413, -1028, -1028, - -1028, -1028, -1028, 414, -1028, -1028, -1028, -1028, -1028, -1028, - 415, 416, 417, -1028, -1028, 419, -1028, 42, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - 422, 428, 429, 436, -1028, 49, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 440, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 59, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 441, -1028, - -1028, -1028, -1028, 62, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, 348, 443, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, 449, -1028, -1028, 454, -1028, - -1028, -1028, 455, -1028, -1028, 453, 457, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - 458, 459, 460, -1028, -1028, -1028, -1028, 461, 462, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 65, -1028, -1028, -1028, 463, -1028, -1028, 466, - -1028, 467, 469, -1028, -1028, 471, 472, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 91, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 473, 98, -1028, -1028, -1028, -1028, 44, 44, - -1028, 256, 476, -1028, -1028, 478, 480, 481, 262, 263, - 266, 485, 488, 490, 272, 271, 493, 496, 498, 281, - 283, 284, 287, 303, 293, 290, 296, 299, 307, 308, - 520, 311, 313, 314, 316, 317, 524, 529, 539, 319, - 320, 322, 327, 550, 551, 553, 335, 555, 556, 558, - 561, 562, 563, 347, 349, 350, 567, 569, 573, 574, - 577, 361, 578, 585, 588, 590, 591, 592, 372, 382, - 385, 595, 598, -1028, 244, -1028, 608, 609, 610, 432, - 433, 399, 418, 88, -1028, 611, 616, 632, 633, 634, - 635, 437, 636, 655, 657, 662, -1028, 658, 445, -40, - -1028, 659, 660, 665, 666, 667, 669, 671, 672, -1028, - 310, -1028, 673, 674, 456, 676, 677, 678, 464, -1028, - 325, 679, 465, 474, 475, -1028, 115, 680, 682, 23, - -1028, 477, 683, 684, 468, 694, 482, 483, 697, 699, - 479, 484, 707, 708, 709, 711, 452, -1028, 712, 494, - 134, -1028, -1028, -1028, 714, 713, 715, 716, 732, -1028, - -1028, -1028, 444, 497, 499, -1028, -1028, 733, 734, 737, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, 531, -1028, -1028, -1028, -1028, -1028, 9, 535, 537, - -1028, -1028, -1028, -1028, 755, 756, 757, -1028, 541, 273, - 763, 762, 552, 264, -1028, -1028, -1028, 767, 768, 770, - 771, 778, -1028, 779, 780, 781, 785, 571, 575, -1028, - -1028, -1028, 773, 788, -1028, 791, 166, 199, -1028, -1028, - -1028, -1028, -1028, 579, 580, 581, 794, 582, 583, -1028, - 791, 584, 800, -1028, 587, -1028, -1028, 791, 589, 593, - 594, 596, 597, 599, 600, -1028, 601, 602, -1028, 603, - 604, 605, -1028, -1028, 606, -1028, -1028, -1028, -1028, 607, - 762, -1028, -1028, 612, 613, -1028, 614, -1028, -1028, 8, - 625, -1028, -1028, 9, 615, 617, 618, -1028, 807, -1028, - -1028, 44, 244, 134, 88, 212, -1028, -1028, -1028, 114, - 114, 806, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, 810, 813, 823, -1028, -1028, -1028, -1028, -1028, -1028, - 824, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 150, - 825, 826, 831, 72, -81, -31, 34, 452, -1028, -1028, - 834, -117, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, 835, -1028, -1028, -1028, -1028, 696, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, 806, -1028, 123, - 182, 191, -1028, -1028, 228, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 840, 841, 842, 843, 844, 845, 846, 847, - 850, 851, -1028, 852, 853, -1028, -1028, -1028, -1028, -1028, - 238, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 240, -1028, 808, 855, -1028, -1028, - 854, 856, -1028, -1028, 857, 858, -1028, -1028, 859, 861, - -1028, -1028, 860, 864, -1028, -1028, -1028, -1028, -1028, -1028, - 28, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 32, -1028, - -1028, 862, 866, -1028, -1028, 865, 867, -1028, 868, 869, - 870, 871, 872, 873, 249, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 874, 875, 876, -1028, 251, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 257, -1028, - -1028, -1028, 877, -1028, 878, -1028, -1028, -1028, 291, -1028, - -1028, -1028, -1028, -1028, 294, -1028, 38, -1028, 879, 881, - 882, 883, -1028, 295, -1028, -1028, -1028, -1028, -1028, 640, - -1028, 884, 885, -1028, -1028, 886, -1028, 887, -1028, -1028, - -1028, 888, 891, 212, -1028, 892, 893, 894, 895, 668, - 664, 681, 675, 685, 686, 687, 688, 689, 690, 897, - 691, 692, 898, 899, 901, 902, 114, -1028, -1028, 114, - -1028, 806, 662, -1028, 810, 325, -1028, 813, 115, -1028, - 823, 1326, -1028, 824, 150, -1028, 154, 825, -1028, 310, - -1028, 826, -41, -1028, 831, 695, 698, 700, 701, 702, - 703, 72, -1028, 704, 705, 710, -81, -1028, 903, 910, - -31, -1028, 706, 913, 717, 915, 34, -1028, -1028, 39, - 834, -1028, 718, 719, 720, 721, -117, -1028, -1028, 914, - 919, -40, -1028, 835, 923, -1028, -1028, 725, 726, -1028, - 87, 727, 728, 729, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 204, -1028, -1028, 730, 731, 735, - 736, -1028, 297, -1028, 301, -1028, 922, -1028, 924, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, 338, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - 930, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 927, 933, -1028, -1028, -1028, -1028, - -1028, -1028, 929, -1028, 342, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, 738, 739, -1028, - -1028, 740, -1028, 44, -1028, -1028, 934, -1028, -1028, -1028, - -1028, -1028, 346, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 741, 352, -1028, 791, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 1326, - -1028, 935, 937, 742, -1028, 154, -1028, -1028, -1028, -1028, - -1028, -1028, 938, 743, 950, 39, -1028, -1028, -1028, -1028, - -1028, 747, 748, -1028, -1028, 951, -1028, 750, -1028, -1028, - -1028, 948, -1028, -1028, 112, -1028, 7, 948, -1028, -1028, - 955, 960, 969, -1028, 356, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 973, 766, 758, 765, 976, 7, -1028, 776, - -1028, -1028, -1028, 786, -1028, -1028, -1028 + 417, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 32, 39, 34, 40, 89, 92, + 95, 103, 111, 118, 132, 138, 156, 158, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 39, -188, 56, 193, 168, 638, + -47, 306, -15, 23, 77, -116, 254, 60, -995, 78, + 170, 90, 163, 185, -995, 47, -995, -995, -995, -995, + 102, 283, 293, -995, -995, -995, 305, 325, -995, -995, + -995, 349, 351, 353, 354, 356, 357, 358, 360, 363, + 373, 380, -995, 383, 386, 387, 389, 390, -995, -995, + -995, 391, 395, 396, 397, -995, -995, -995, 403, -995, + -995, -995, -995, -995, -995, 404, 405, 407, -995, -995, + -995, -995, -995, 409, -995, -995, -995, -995, -995, -995, + 410, 411, 412, -995, -995, 413, -995, 48, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + 416, 418, 434, 435, -995, 59, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, 436, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 71, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, 437, -995, + -995, -995, -995, 73, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, 245, 288, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, 318, -995, -995, 439, -995, + -995, -995, 440, -995, -995, 320, 449, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + 451, 452, 453, -995, -995, -995, -995, 445, 456, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, 84, -995, -995, -995, 457, -995, 458, -995, + 459, 460, -995, -995, -995, -995, -995, 109, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, 461, 113, + -995, -995, -995, -995, 39, 39, -995, -131, 462, -995, + -995, 464, 469, 470, -132, 201, 255, 473, 476, 477, + 265, 264, 482, 484, 488, 275, 277, 278, 281, 282, + 284, 289, 291, 292, 294, 299, 497, 304, 307, 286, + 308, 309, 498, 510, 515, 312, 315, 317, 321, 522, + 527, 533, 326, 534, 536, 541, 542, 544, 545, 331, + 332, 333, 550, 551, 552, 553, 555, 343, 556, 560, + 564, 565, 566, 568, 355, 359, 361, 569, 570, -995, + 193, -995, 572, 573, 576, 367, 371, 374, 375, 168, + -995, 590, 591, 593, 594, 595, 601, 392, 605, 607, + 608, 638, -995, 609, 399, -47, -995, 611, 630, 631, + 632, 634, 636, 637, 639, -995, 306, -995, 641, 642, + 424, 643, 644, 645, 430, -995, 23, 647, 432, 433, + 438, -995, 77, 650, 651, 53, -995, 441, 652, 442, + 655, 444, 446, 659, 661, 254, -995, 662, 463, 60, + -995, -995, -995, 663, 667, 669, 670, 671, -995, -995, + -995, 466, 467, 468, -995, -995, 680, 681, 684, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + 474, -995, -995, -995, -995, -995, -24, 475, 478, -995, + -995, -995, -995, 685, 688, 689, -995, 479, 263, 696, + 695, 486, 280, -995, -995, -995, 699, 724, 728, 730, + 729, -995, 731, 732, 733, 734, 520, 525, -995, -995, + -995, 738, 737, -995, 740, 226, 285, -995, -995, -995, + -995, -995, 531, 532, 535, 745, 537, 546, -995, 740, + 547, 744, -995, 554, -995, -995, 740, 558, 561, 562, + 563, 571, 574, 575, -995, 577, 578, -995, 579, 580, + 581, -995, -995, 582, -995, -995, -995, -995, 583, 695, + -995, -995, 584, -995, 585, -995, -995, 10, 588, -995, + 756, -995, -995, 39, 193, 60, 168, 319, -995, -995, + -995, 1073, 1073, 755, -995, -995, -995, -995, -995, -995, + -995, -995, -995, 762, 765, 766, -995, -995, -995, -995, + -995, -995, 770, -995, -995, -995, -995, -995, -995, -995, + -995, 96, 774, 775, 778, 94, -53, -82, -64, 254, + -995, -995, 779, -3, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, 780, -995, -995, -995, -995, + 646, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 755, -995, 116, 139, 178, -995, + -995, 198, -995, -995, -995, -995, -995, -995, -995, 785, + 786, 799, 800, 801, 808, 809, 810, 811, 812, -995, + 813, 814, -995, -995, -995, -995, -995, 209, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, 210, -995, 777, 816, -995, -995, 815, 817, -995, + -995, 819, 823, -995, -995, 821, 825, -995, -995, 824, + 826, -995, -995, -995, -995, -995, -995, 140, -995, -995, + -995, -995, -995, -995, -995, 166, -995, -995, 827, 828, + -995, -995, 829, 831, -995, 818, 832, 833, 834, 835, + 836, 212, -995, -995, -995, -995, -995, -995, -995, 837, + 838, 849, -995, 213, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, 287, -995, -995, -995, 850, + -995, 852, -995, -995, -995, 290, -995, -995, -995, -995, + -995, 296, -995, 179, -995, 864, 865, 866, 867, -995, + 300, -995, -995, -995, -995, -995, 615, -995, 868, 872, + -995, -995, 869, -995, 870, -995, -995, -995, 874, 875, + 319, -995, 876, 877, 878, 879, 668, 672, 673, 675, + 679, 682, 683, 691, 692, 693, 883, 686, 697, 884, + 885, 886, 895, 1073, -995, -995, 1073, -995, 755, 638, + -995, 762, 23, -995, 765, 77, -995, 766, 776, -995, + 770, 96, -995, 301, 774, -995, 306, -995, 775, -116, + -995, 778, 698, 700, 701, 702, 703, 705, 94, -995, + 687, 706, 707, -53, -995, 898, 909, -82, -995, 694, + 913, 708, 923, -64, -995, -995, 195, 779, -995, 709, + 710, 711, 713, -3, -995, -995, 922, 931, -47, -995, + 780, 932, -995, -995, 720, 722, -995, 192, 723, 726, + 741, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, 258, -995, -995, 746, 748, 758, 759, -995, 311, + -995, 322, -995, 939, -995, 947, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 324, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, 953, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, 964, 970, -995, -995, -995, -995, -995, -995, 972, + -995, 334, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 761, 764, -995, -995, 782, -995, + 39, -995, -995, 979, -995, -995, -995, -995, -995, 340, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, 793, 342, -995, 740, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, 776, -995, 999, 1007, + 796, -995, 301, -995, -995, -995, -995, -995, -995, 1009, + 802, 1014, 195, -995, -995, -995, -995, -995, 806, 807, + -995, -995, 1021, -995, 830, -995, -995, -995, 1022, -995, + -995, 249, -995, 13, 1022, -995, -995, 1027, 1028, 1032, + -995, 346, -995, -995, -995, -995, -995, -995, -995, 1044, + 880, 890, 891, 1045, 13, -995, 887, -995, -995, -995, + 893, -995, -995, -995 }; const short @@ -5311,16 +5194,16 @@ namespace isc { namespace dhcp { 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, 59, 5, 65, 7, 208, 9, 388, 11, 606, 13, 635, 15, 524, 17, 533, 19, 572, 21, 350, 23, - 752, 25, 803, 27, 46, 39, 0, 0, 0, 0, + 752, 25, 784, 27, 46, 39, 0, 0, 0, 0, 0, 637, 0, 535, 574, 0, 0, 0, 48, 0, - 47, 0, 0, 40, 61, 0, 63, 801, 193, 226, + 47, 0, 0, 40, 61, 0, 63, 782, 193, 226, 0, 0, 0, 657, 659, 661, 0, 0, 224, 237, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 161, 168, 170, 0, 0, 0, 0, 379, 522, 563, 0, 153, 174, 466, 622, 624, 459, 0, 0, 0, 312, 684, 626, 341, 362, 0, 327, 719, 733, 750, 181, 183, - 0, 0, 0, 813, 855, 0, 138, 0, 67, 70, + 0, 0, 0, 794, 836, 0, 138, 0, 67, 70, 71, 72, 73, 74, 108, 109, 110, 111, 112, 75, 103, 134, 135, 92, 93, 94, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 114, 115, 126, 127, @@ -5344,752 +5227,700 @@ namespace isc { namespace dhcp { 541, 542, 543, 559, 544, 545, 546, 547, 548, 590, 0, 0, 0, 588, 589, 592, 593, 0, 575, 576, 579, 580, 581, 582, 583, 584, 585, 586, 587, 358, - 360, 355, 0, 352, 356, 357, 0, 789, 776, 0, - 779, 0, 0, 783, 787, 0, 0, 793, 795, 797, - 799, 774, 772, 773, 0, 754, 757, 758, 759, 760, - 761, 762, 763, 764, 769, 765, 766, 767, 768, 770, - 771, 810, 0, 0, 805, 808, 809, 45, 50, 0, - 37, 43, 0, 64, 60, 0, 0, 0, 0, 0, + 360, 355, 0, 352, 356, 357, 0, 769, 0, 772, + 0, 0, 776, 780, 767, 765, 766, 0, 754, 757, + 758, 759, 760, 761, 762, 763, 764, 791, 0, 0, + 786, 789, 790, 45, 50, 0, 37, 43, 0, 64, + 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 69, 66, 0, 0, 0, 0, 0, 0, 0, 197, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 392, 389, 0, 0, 610, 607, 0, 0, 0, + 0, 0, 0, 0, 0, 636, 641, 525, 0, 0, + 0, 0, 0, 0, 0, 534, 539, 0, 0, 0, + 0, 573, 578, 0, 0, 354, 351, 0, 0, 0, + 0, 0, 0, 0, 0, 756, 753, 0, 0, 788, + 785, 49, 41, 0, 0, 0, 0, 0, 155, 156, + 157, 0, 0, 0, 191, 192, 0, 0, 0, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 0, 186, 187, 158, 159, 160, 0, 0, 0, 172, + 173, 180, 185, 0, 0, 0, 152, 0, 0, 0, + 0, 0, 0, 456, 457, 458, 0, 0, 0, 0, + 0, 718, 0, 0, 0, 0, 0, 0, 188, 189, + 190, 0, 0, 68, 0, 0, 0, 220, 221, 222, + 223, 196, 0, 0, 0, 0, 0, 0, 465, 0, + 0, 0, 391, 0, 621, 609, 0, 0, 0, 0, + 0, 0, 0, 0, 640, 0, 0, 551, 0, 0, + 0, 562, 538, 0, 594, 595, 596, 577, 0, 0, + 353, 768, 0, 771, 0, 774, 775, 0, 0, 755, + 0, 793, 787, 0, 0, 0, 0, 0, 658, 660, + 662, 0, 0, 241, 151, 163, 164, 165, 166, 167, + 162, 169, 171, 381, 526, 565, 154, 176, 177, 178, + 179, 175, 468, 38, 623, 625, 461, 462, 463, 464, + 460, 0, 0, 628, 343, 0, 0, 0, 0, 0, + 182, 184, 0, 0, 51, 211, 214, 215, 213, 218, + 219, 217, 445, 447, 449, 599, 443, 451, 455, 453, + 0, 620, 678, 664, 666, 668, 672, 670, 676, 674, + 554, 287, 558, 556, 561, 591, 359, 361, 770, 773, + 778, 779, 777, 781, 241, 42, 0, 0, 0, 233, + 235, 0, 228, 231, 232, 274, 279, 281, 283, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, + 0, 0, 304, 306, 308, 310, 273, 0, 248, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 0, 246, 0, 242, 243, 386, 0, 382, 383, + 531, 0, 527, 528, 570, 0, 566, 567, 473, 0, + 469, 470, 322, 323, 324, 325, 326, 0, 314, 317, + 318, 319, 320, 321, 689, 0, 686, 633, 0, 629, + 630, 348, 0, 344, 345, 0, 0, 0, 0, 0, + 0, 0, 364, 367, 368, 369, 370, 371, 372, 0, + 0, 0, 337, 0, 329, 332, 333, 334, 335, 336, + 729, 731, 728, 726, 727, 0, 721, 724, 725, 0, + 745, 0, 748, 741, 742, 0, 735, 738, 739, 740, + 743, 0, 799, 0, 796, 0, 0, 0, 0, 845, + 0, 838, 841, 842, 843, 844, 53, 604, 0, 600, + 601, 682, 0, 681, 0, 62, 783, 194, 0, 0, + 230, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 58, 69, 66, 0, 0, 0, 0, - 0, 0, 0, 197, 209, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 392, 389, 0, 0, 610, - 607, 0, 0, 0, 0, 0, 0, 0, 0, 636, - 641, 525, 0, 0, 0, 0, 0, 0, 0, 534, - 539, 0, 0, 0, 0, 573, 578, 0, 0, 354, - 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 756, 753, 0, 0, - 807, 804, 49, 41, 0, 0, 0, 0, 0, 155, - 156, 157, 0, 0, 0, 191, 192, 0, 0, 0, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 0, 186, 187, 158, 159, 160, 0, 0, 0, - 172, 173, 180, 185, 0, 0, 0, 152, 0, 0, - 0, 0, 0, 0, 456, 457, 458, 0, 0, 0, - 0, 0, 718, 0, 0, 0, 0, 0, 0, 188, - 189, 190, 0, 0, 68, 0, 0, 0, 220, 221, - 222, 223, 196, 0, 0, 0, 0, 0, 0, 465, - 0, 0, 0, 391, 0, 621, 609, 0, 0, 0, - 0, 0, 0, 0, 0, 640, 0, 0, 551, 0, - 0, 0, 562, 538, 0, 594, 595, 596, 577, 0, - 0, 353, 775, 0, 0, 778, 0, 781, 782, 0, - 0, 791, 792, 0, 0, 0, 0, 755, 0, 812, - 806, 0, 0, 0, 0, 0, 658, 660, 662, 0, - 0, 241, 151, 163, 164, 165, 166, 167, 162, 169, - 171, 381, 526, 565, 154, 176, 177, 178, 179, 175, - 468, 38, 623, 625, 461, 462, 463, 464, 460, 0, - 0, 628, 343, 0, 0, 0, 0, 0, 182, 184, - 0, 0, 51, 211, 214, 215, 213, 218, 219, 217, - 445, 447, 449, 599, 443, 451, 455, 453, 0, 620, - 678, 664, 666, 668, 672, 670, 676, 674, 554, 287, - 558, 556, 561, 591, 359, 361, 790, 777, 780, 785, - 786, 784, 788, 794, 796, 798, 800, 241, 42, 0, - 0, 0, 233, 235, 0, 228, 231, 232, 274, 279, - 281, 283, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 0, 304, 306, 308, 310, 273, - 0, 248, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 0, 246, 0, 242, 243, 386, - 0, 382, 383, 531, 0, 527, 528, 570, 0, 566, - 567, 473, 0, 469, 470, 322, 323, 324, 325, 326, - 0, 314, 317, 318, 319, 320, 321, 689, 0, 686, - 633, 0, 629, 630, 348, 0, 344, 345, 0, 0, - 0, 0, 0, 0, 0, 364, 367, 368, 369, 370, - 371, 372, 0, 0, 0, 337, 0, 329, 332, 333, - 334, 335, 336, 729, 731, 728, 726, 727, 0, 721, - 724, 725, 0, 745, 0, 748, 741, 742, 0, 735, - 738, 739, 740, 743, 0, 818, 0, 815, 0, 0, - 0, 0, 864, 0, 857, 860, 861, 862, 863, 53, - 604, 0, 600, 601, 682, 0, 681, 0, 62, 802, - 194, 0, 0, 230, 227, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 250, 225, 238, 0, - 240, 245, 0, 380, 385, 535, 523, 530, 574, 564, - 569, 0, 467, 472, 316, 313, 691, 688, 685, 637, - 627, 632, 0, 342, 347, 0, 0, 0, 0, 0, - 0, 366, 363, 0, 0, 0, 331, 328, 0, 0, - 723, 720, 0, 0, 0, 0, 737, 734, 751, 0, - 817, 814, 0, 0, 0, 0, 859, 856, 55, 0, - 54, 0, 598, 603, 0, 680, 811, 0, 0, 229, - 0, 0, 0, 0, 285, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 0, 302, 303, 0, 0, 0, - 0, 249, 0, 244, 0, 384, 0, 529, 0, 568, - 521, 496, 497, 498, 481, 482, 501, 502, 503, 504, - 505, 519, 484, 485, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 520, 478, 479, - 480, 494, 495, 491, 492, 493, 490, 0, 475, 483, - 499, 500, 486, 487, 488, 489, 471, 315, 713, 715, - 0, 707, 708, 709, 710, 711, 712, 700, 701, 705, - 706, 702, 703, 704, 0, 692, 693, 696, 697, 698, - 699, 687, 0, 631, 0, 346, 373, 374, 375, 376, - 377, 378, 365, 338, 339, 340, 330, 0, 0, 722, - 744, 0, 747, 0, 736, 833, 0, 831, 829, 823, - 827, 828, 0, 820, 825, 826, 824, 816, 865, 866, - 867, 868, 858, 52, 57, 0, 602, 0, 234, 236, - 276, 277, 278, 275, 280, 282, 284, 299, 300, 301, - 298, 305, 307, 309, 311, 247, 387, 532, 571, 477, - 474, 0, 0, 0, 690, 695, 634, 349, 730, 732, - 746, 749, 0, 0, 0, 822, 819, 56, 605, 683, - 476, 0, 0, 717, 694, 0, 830, 0, 821, 714, - 716, 0, 832, 838, 0, 835, 0, 837, 834, 848, - 0, 0, 0, 853, 0, 840, 843, 844, 845, 846, - 847, 836, 0, 0, 0, 0, 0, 842, 839, 0, - 850, 851, 852, 0, 841, 849, 854 + 0, 0, 0, 250, 225, 238, 0, 240, 245, 0, + 380, 385, 535, 523, 530, 574, 564, 569, 0, 467, + 472, 316, 313, 691, 688, 685, 637, 627, 632, 0, + 342, 347, 0, 0, 0, 0, 0, 0, 366, 363, + 0, 0, 0, 331, 328, 0, 0, 723, 720, 0, + 0, 0, 0, 737, 734, 751, 0, 798, 795, 0, + 0, 0, 0, 840, 837, 55, 0, 54, 0, 598, + 603, 0, 680, 792, 0, 0, 229, 0, 0, 0, + 0, 285, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 0, 302, 303, 0, 0, 0, 0, 249, 0, + 244, 0, 384, 0, 529, 0, 568, 521, 496, 497, + 498, 481, 482, 501, 502, 503, 504, 505, 519, 484, + 485, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 520, 478, 479, 480, 494, 495, + 491, 492, 493, 490, 0, 475, 483, 499, 500, 486, + 487, 488, 489, 471, 315, 713, 715, 0, 707, 708, + 709, 710, 711, 712, 700, 701, 705, 706, 702, 703, + 704, 0, 692, 693, 696, 697, 698, 699, 687, 0, + 631, 0, 346, 373, 374, 375, 376, 377, 378, 365, + 338, 339, 340, 330, 0, 0, 722, 744, 0, 747, + 0, 736, 814, 0, 812, 810, 804, 808, 809, 0, + 801, 806, 807, 805, 797, 846, 847, 848, 849, 839, + 52, 57, 0, 602, 0, 234, 236, 276, 277, 278, + 275, 280, 282, 284, 299, 300, 301, 298, 305, 307, + 309, 311, 247, 387, 532, 571, 477, 474, 0, 0, + 0, 690, 695, 634, 349, 730, 732, 746, 749, 0, + 0, 0, 803, 800, 56, 605, 683, 476, 0, 0, + 717, 694, 0, 811, 0, 802, 714, 716, 0, 813, + 819, 0, 816, 0, 818, 815, 829, 0, 0, 0, + 834, 0, 821, 824, 825, 826, 827, 828, 817, 0, + 0, 0, 0, 0, 823, 820, 0, 831, 832, 833, + 0, 822, 830, 835 }; const short Dhcp4Parser::yypgoto_[] = { - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -59, -1028, -587, -1028, 323, - -1028, -1028, -1028, -1028, -1028, -1028, -647, -1028, -1028, -1028, - -67, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 275, 515, - -30, -26, 26, -54, -37, -27, 0, 14, 16, 45, - -1028, -1028, -1028, -1028, 48, -1028, -1028, 50, 51, 52, - 53, 55, 56, -1028, 315, 58, -1028, 63, -1028, 66, - 68, 69, -1028, -1028, 70, 71, -1028, 73, -1028, 74, - -1028, -1028, -1028, -1028, -1028, 33, -1028, -1028, -1028, 276, - 514, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - 10, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 213, - -1028, 12, -1028, -728, 21, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -45, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 6, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -15, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1, - -1028, -1028, -1028, 11, 495, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, 60, -1028, -1028, -1028, -1028, -1028, -1028, -1027, - -1028, -1028, -1028, 37, -1028, -1028, -1028, 41, 619, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1025, -1028, 78, - -1028, 79, -1028, 76, 81, 84, 86, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 80, -1028, -1028, -193, -62, -1028, - -1028, -1028, -1028, -1028, 89, -1028, -1028, -1028, 93, -1028, - 564, -1028, -63, -1028, -1028, -1028, -1028, -1028, -44, -1028, - -1028, -1028, -1028, -1028, -23, -1028, -1028, -1028, 90, -1028, - -1028, -1028, 94, -1028, 565, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, 36, -1028, -1028, - -1028, 43, 620, -1028, -1028, -1028, -49, -1028, -10, -1028, - -56, -1028, -1028, -1028, 82, -1028, -1028, -1028, 92, -1028, - 586, 3, -1028, 13, -1028, 29, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1024, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, 95, -1028, -1028, -1028, -140, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, 67, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, 77, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, 362, 554, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, 410, 548, -1028, -1028, - -1028, -1028, -1028, -1028, 85, -1028, -1028, -141, -1028, -1028, - -1028, -1028, -1028, -1028, -162, -1028, -1028, -181, -1028, -1028, - -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 61, -1028, - -1028, -1028, -1028 + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -59, -995, -589, -995, 362, + -995, -995, -995, -995, -995, -995, -643, -995, -995, -995, + -67, -995, -995, -995, -995, -995, -995, -995, 398, 603, + 42, 44, 45, -54, -39, -1, 9, 29, 57, 61, + -995, -995, -995, -995, 62, -995, -995, 63, 64, 65, + 67, 68, 69, -995, -995, 75, -995, 79, -995, 80, + 81, 82, -995, -995, 83, 85, -995, 86, -995, 87, + -995, -995, -995, -995, -995, 46, -995, -995, -995, 406, + 602, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + 144, -995, -995, -995, -995, -995, -995, -995, -995, 338, + -995, 117, -995, -700, 123, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -13, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, 122, -995, -995, -995, -995, -995, -995, -995, + -995, 107, -995, -995, -995, -995, -995, -995, -995, 120, + -995, -995, -995, 124, 587, -995, -995, -995, -995, -995, + -995, -995, 119, -995, -995, -995, -995, -995, -995, -994, + -995, -995, -995, 143, -995, -995, -995, 146, 625, -995, + -995, -995, -995, -995, -995, -995, -995, -991, -995, -18, + -995, 91, -995, 93, 97, 98, 99, -995, -995, -995, + -995, -995, -995, -995, 141, -995, -995, -88, -62, -995, + -995, -995, -995, -995, 148, -995, -995, -995, 151, -995, + 604, -995, -63, -995, -995, -995, -995, -995, -61, -995, + -995, -995, -995, -995, -12, -995, -995, -995, 147, -995, + -995, -995, 150, -995, 606, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, 100, -995, -995, + -995, 101, 640, -995, -995, -995, -49, -995, -31, -995, + -51, -995, -995, -995, 145, -995, -995, -995, 152, -995, + 620, 6, -995, 22, -995, 26, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -982, -995, -995, -995, -995, -995, -995, + -995, 153, -995, -995, -995, -85, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, 125, -995, -995, -995, + -995, -995, -995, -995, 121, -995, -995, -995, -995, -995, + -995, -995, -995, -995, -995, 422, 596, -995, -995, -995, + -995, -995, -995, -995, -995, -995, -995, -995, -995, -995, + -995, -995, -995, -995, 471, 597, -995, -995, -995, -995, + -995, -995, 126, -995, -995, -80, -995, -995, -995, -995, + -995, -995, -100, -995, -995, -117, -995, -995, -995, -995, + -995, -995, -995, -995, -995, -995, 128, -995, -995, -995, + -995 }; const short Dhcp4Parser::yydefgoto_[] = { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 36, 37, 38, 65, 762, - 82, 83, 39, 64, 79, 80, 783, 989, 1089, 1090, - 859, 41, 66, 85, 442, 86, 43, 67, 157, 158, + 23, 24, 25, 26, 27, 36, 37, 38, 65, 734, + 82, 83, 39, 64, 79, 80, 755, 956, 1056, 1057, + 826, 41, 66, 85, 428, 86, 43, 67, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 470, 171, 172, 487, 173, 174, 175, 176, - 177, 178, 179, 476, 748, 180, 477, 181, 478, 182, - 183, 184, 488, 759, 185, 186, 506, 187, 507, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 446, 235, - 236, 45, 68, 237, 516, 238, 517, 786, 239, 518, - 789, 240, 241, 242, 243, 197, 456, 198, 447, 834, - 835, 836, 1001, 837, 1002, 199, 457, 200, 458, 886, - 887, 888, 1029, 860, 861, 862, 1005, 1253, 863, 1006, - 864, 1007, 865, 1008, 866, 867, 553, 868, 869, 870, - 871, 872, 873, 874, 875, 876, 877, 1019, 1260, 878, - 879, 880, 1022, 881, 1023, 882, 1024, 883, 1025, 201, - 496, 910, 911, 912, 913, 914, 915, 916, 202, 502, - 946, 947, 948, 949, 950, 203, 499, 925, 926, 927, - 1052, 59, 75, 392, 393, 394, 567, 395, 568, 204, - 500, 934, 935, 936, 937, 938, 939, 940, 941, 205, - 483, 890, 891, 892, 1032, 47, 69, 284, 285, 286, - 529, 287, 525, 288, 526, 289, 527, 290, 530, 291, - 533, 292, 532, 206, 207, 208, 209, 492, 768, 297, - 210, 489, 902, 903, 904, 1041, 1167, 1168, 211, 484, - 53, 72, 894, 895, 896, 1035, 55, 73, 355, 356, - 357, 358, 359, 360, 361, 552, 362, 556, 363, 555, - 364, 365, 557, 366, 212, 485, 898, 899, 900, 1038, - 57, 74, 377, 378, 379, 380, 381, 561, 382, 383, - 384, 385, 386, 299, 528, 991, 992, 993, 1091, 49, - 70, 313, 314, 315, 537, 316, 213, 490, 214, 491, - 215, 498, 921, 922, 923, 1049, 51, 71, 331, 332, - 333, 216, 451, 217, 452, 218, 453, 337, 542, 338, - 543, 339, 544, 340, 546, 341, 545, 342, 548, 343, - 547, 344, 541, 306, 534, 995, 996, 1094, 219, 497, - 918, 919, 1046, 1194, 1195, 1196, 1197, 1198, 1271, 1199, - 1272, 1200, 220, 221, 503, 958, 959, 960, 1068, 961, - 1069, 222, 504, 968, 969, 970, 971, 1073, 972, 973, - 1075, 223, 505, 61, 76, 414, 415, 416, 417, 573, - 418, 419, 575, 420, 421, 422, 578, 821, 423, 579, - 424, 572, 425, 426, 427, 582, 428, 583, 429, 584, - 430, 585, 224, 445, 63, 77, 433, 434, 435, 588, - 436, 225, 511, 976, 977, 1079, 1232, 1233, 1234, 1235, - 1284, 1236, 1282, 1304, 1305, 1306, 1314, 1315, 1316, 1322, - 1317, 1318, 1319, 1320, 1326, 226, 512, 983, 984, 985, - 986, 987, 988 + 169, 170, 456, 171, 172, 473, 173, 174, 175, 176, + 177, 178, 179, 462, 720, 180, 463, 181, 464, 182, + 183, 184, 474, 731, 185, 186, 492, 187, 493, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 432, 235, + 236, 45, 68, 237, 502, 238, 503, 758, 239, 504, + 761, 240, 241, 242, 243, 197, 442, 198, 433, 801, + 802, 803, 968, 804, 969, 199, 443, 200, 444, 853, + 854, 855, 996, 827, 828, 829, 972, 1220, 830, 973, + 831, 974, 832, 975, 833, 834, 539, 835, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 986, 1227, 845, + 846, 847, 989, 848, 990, 849, 991, 850, 992, 201, + 482, 877, 878, 879, 880, 881, 882, 883, 202, 488, + 913, 914, 915, 916, 917, 203, 485, 892, 893, 894, + 1019, 59, 75, 392, 393, 394, 553, 395, 554, 204, + 486, 901, 902, 903, 904, 905, 906, 907, 908, 205, + 469, 857, 858, 859, 999, 47, 69, 284, 285, 286, + 515, 287, 511, 288, 512, 289, 513, 290, 516, 291, + 519, 292, 518, 206, 207, 208, 209, 478, 740, 297, + 210, 475, 869, 870, 871, 1008, 1134, 1135, 211, 470, + 53, 72, 861, 862, 863, 1002, 55, 73, 355, 356, + 357, 358, 359, 360, 361, 538, 362, 542, 363, 541, + 364, 365, 543, 366, 212, 471, 865, 866, 867, 1005, + 57, 74, 377, 378, 379, 380, 381, 547, 382, 383, + 384, 385, 386, 299, 514, 958, 959, 960, 1058, 49, + 70, 313, 314, 315, 523, 316, 213, 476, 214, 477, + 215, 484, 888, 889, 890, 1016, 51, 71, 331, 332, + 333, 216, 437, 217, 438, 218, 439, 337, 528, 338, + 529, 339, 530, 340, 532, 341, 531, 342, 534, 343, + 533, 344, 527, 306, 520, 962, 963, 1061, 219, 483, + 885, 886, 1013, 1161, 1162, 1163, 1164, 1165, 1238, 1166, + 1239, 1167, 220, 221, 489, 925, 926, 927, 1035, 928, + 1036, 222, 490, 935, 936, 937, 938, 1040, 939, 940, + 1042, 223, 491, 61, 76, 407, 408, 409, 410, 558, + 411, 412, 560, 413, 414, 415, 563, 792, 416, 564, + 224, 431, 63, 77, 419, 420, 421, 567, 422, 225, + 497, 943, 944, 1046, 1199, 1200, 1201, 1202, 1251, 1203, + 1249, 1271, 1272, 1273, 1281, 1282, 1283, 1289, 1284, 1285, + 1286, 1287, 1293, 226, 498, 950, 951, 952, 953, 954, + 955 }; const short Dhcp4Parser::yytable_[] = { - 156, 234, 256, 309, 327, 78, 353, 373, 391, 411, - 345, 375, 884, 302, 1159, 260, 1160, 1175, 443, 244, - 300, 317, 329, 444, 367, 387, 819, 412, 354, 374, - 376, 1044, 261, 796, 1045, 1047, 132, 133, 1048, 257, - 800, 1080, 262, 258, 1081, 514, 298, 312, 328, 29, - 515, 30, 523, 31, 761, 81, 127, 524, 245, 301, - 318, 330, 535, 368, 388, 539, 413, 536, 569, 263, - 540, 40, 303, 570, 334, 28, 307, 132, 133, 942, - 943, 944, 304, 264, 335, 265, 132, 133, 978, 979, - 980, 981, 253, 84, 586, 259, 254, 308, 305, 587, - 336, 590, 283, 227, 228, 155, 591, 229, 389, 390, - 230, 231, 232, 233, 266, 1307, 42, 267, 1308, 268, - 269, 270, 271, 761, 272, 273, 514, 274, 1250, 1251, - 1252, 998, 275, 953, 954, 276, 347, 277, 278, 279, - 280, 155, 281, 282, 44, 293, 431, 432, 310, 311, - 294, 132, 133, 295, 838, 296, 132, 133, 839, 840, - 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, - 851, 852, 389, 390, 46, 853, 854, 855, 856, 857, - 858, 155, 155, 784, 785, 590, 93, 94, 95, 96, - 999, 155, 820, 48, 523, 743, 744, 745, 746, 1000, - 50, 962, 963, 964, 1309, 132, 133, 1310, 1311, 1312, - 1313, 347, 347, 369, 348, 349, 370, 371, 372, 787, - 788, 101, 102, 103, 928, 929, 930, 931, 932, 933, - 52, 1003, 132, 133, 747, 1225, 1004, 1226, 1227, 832, - 833, 1026, 1159, 1026, 1160, 1175, 1027, 126, 1028, 126, - 127, 347, 1061, 54, 1066, 87, 965, 1062, 88, 1067, - 1070, 155, 1257, 1258, 1259, 1071, 32, 33, 34, 35, - 89, 132, 133, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 56, 58, 60, 1178, 1179, 1180, - 905, 906, 907, 908, 1076, 909, 62, 586, 1086, 1077, - 1026, 1122, 1078, 1087, 535, 1265, 437, 438, 441, 1266, - 155, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 155, 155, 439, 126, - 127, 1269, 93, 94, 95, 569, 1270, 440, 448, 1285, - 1277, 128, 129, 130, 1286, 539, 549, 449, 131, 1327, - 1288, 132, 133, 450, 1328, 346, 134, 454, 455, 459, - 460, 135, 136, 137, 138, 139, 155, 461, 462, 592, - 593, 463, 140, 755, 756, 757, 758, 764, 765, 766, - 767, 464, 141, 465, 466, 142, 467, 468, 469, 471, - 472, 473, 143, 144, 474, 475, 127, 145, 479, 480, - 146, 481, 482, 486, 147, 493, 494, 495, 501, 508, - 509, 510, 347, 513, 348, 349, 519, 132, 133, 350, - 351, 352, 520, 521, 148, 149, 150, 151, 152, 153, - 522, 319, 132, 133, 531, 538, 550, 156, 154, 320, - 321, 322, 323, 324, 325, 326, 234, 551, 554, 558, - 560, 559, 562, 563, 564, 566, 155, 571, 256, 565, - 574, 576, 309, 577, 244, 580, 581, 589, 594, 302, - 595, 260, 596, 327, 597, 598, 300, 599, 600, 602, - 317, 601, 603, 353, 604, 605, 606, 607, 261, 373, - 608, 329, 609, 375, 610, 257, 611, 612, 262, 258, - 613, 367, 298, 245, 616, 354, 312, 387, 615, 411, - 617, 374, 376, 618, 621, 301, 614, 328, 627, 318, - 619, 620, 155, 628, 622, 263, 623, 412, 303, 624, - 330, 625, 626, 629, 630, 631, 632, 155, 304, 264, - 368, 265, 633, 334, 634, 635, 388, 636, 637, 638, - 639, 259, 640, 335, 305, 641, 642, 643, 283, 132, - 133, 647, 644, 648, 645, 646, 413, 649, 650, 336, - 266, 651, 653, 267, 652, 268, 269, 270, 271, 654, - 272, 273, 655, 274, 656, 657, 658, 659, 275, 662, - 1289, 276, 663, 277, 278, 279, 280, 660, 281, 282, - 661, 293, 665, 666, 667, 673, 294, 310, 311, 295, - 674, 296, 670, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 675, 676, 677, 678, - 680, 671, 409, 410, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 668, 669, 681, - 679, 682, 684, 687, 688, 156, 736, 234, 685, 689, - 690, 691, 828, 692, 155, 693, 694, 696, 697, 698, - 699, 700, 701, 704, 709, 244, 710, 713, 714, 702, - 705, 715, 91, 92, 93, 94, 95, 96, 716, 706, - 707, 719, 712, 720, 721, 717, 718, 945, 955, 722, - 411, 723, 724, 725, 982, 726, 728, 729, 731, 737, - 732, 738, 733, 734, 245, 951, 956, 966, 412, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 735, - 739, 740, 741, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 742, 246, 247, 248, 749, 127, 750, - 751, 752, 753, 754, 952, 957, 967, 413, 760, 30, - 129, 130, 769, 770, 763, 771, 772, 249, 780, 132, - 133, 250, 251, 252, 134, 773, 774, 775, 776, 135, - 136, 137, 777, 778, 253, 781, 782, 779, 254, 793, - 140, 790, 791, 792, 794, 795, 797, 798, 255, 799, - 822, 801, 827, 885, 1030, 802, 803, 889, 804, 805, - 893, 806, 807, 808, 809, 810, 811, 812, 813, 814, - 897, 901, 917, 920, 816, 817, 818, 824, 924, 825, - 826, 975, 990, 994, 1009, 1010, 1011, 1012, 1013, 1014, - 1015, 1016, 148, 149, 1017, 1018, 1020, 1021, 1031, 1034, - 1033, 1037, 1088, 1036, 1040, 1039, 1042, 1043, 1050, 1051, - 1054, 1053, 1055, 1056, 1057, 1058, 1059, 1060, 1063, 1064, - 1065, 1072, 1074, 1082, 155, 1083, 1084, 1085, 1093, 1105, - 1092, 1104, 1097, 1096, 1095, 1098, 1100, 1101, 1102, 1103, - 1107, 1114, 1117, 1118, 1106, 1119, 1120, 1217, 1108, 1109, - 1110, 1111, 1112, 1113, 1218, 1116, 1115, 1221, 1206, 1223, - 1243, 1207, 1244, 1208, 1209, 1210, 1211, 1247, 1214, 1213, - 1267, 1220, 1268, 1215, 1273, 1274, 1275, 1276, 1283, 1291, - 1222, 1292, 1295, 1238, 1239, 1240, 1241, 1248, 1249, 1254, - 1255, 1256, 1261, 1262, 1297, 1303, 1301, 1263, 1264, 1323, - 1278, 1279, 1280, 1287, 1324, 256, 1296, 1293, 353, 1299, - 1300, 373, 1302, 1325, 1130, 375, 302, 1329, 260, 1181, - 1333, 1331, 327, 300, 1187, 391, 367, 1134, 1332, 387, - 354, 1330, 1170, 374, 376, 261, 1158, 1189, 1335, 945, - 329, 1186, 257, 955, 1135, 262, 258, 829, 1336, 298, - 831, 1131, 1228, 1099, 1136, 1132, 1182, 951, 1169, 982, - 1183, 956, 301, 1188, 309, 368, 328, 966, 388, 664, - 1230, 1171, 263, 815, 1229, 303, 1190, 672, 823, 330, - 997, 1137, 317, 1123, 1172, 304, 264, 1121, 265, 1191, - 1177, 1216, 334, 1205, 1173, 1138, 952, 1139, 259, 1192, - 957, 305, 335, 1204, 711, 283, 967, 1133, 312, 1231, - 1174, 1125, 1184, 1124, 1157, 1193, 1290, 266, 336, 1185, - 267, 318, 268, 269, 270, 271, 1140, 272, 273, 1141, - 274, 1142, 1143, 1144, 1145, 275, 1146, 1147, 276, 1148, - 277, 278, 279, 280, 1149, 281, 282, 1150, 293, 1151, - 1152, 1153, 1154, 294, 1155, 1156, 295, 1163, 296, 1161, - 1162, 1212, 1164, 1176, 703, 1165, 1127, 1166, 1126, 1246, - 1129, 708, 1128, 1203, 1245, 1294, 695, 1219, 730, 974, - 727, 1202, 1201, 830, 1298, 1321, 1334, 1242, 0, 0, - 0, 0, 0, 1224, 683, 0, 0, 0, 0, 686, - 0, 0, 0, 0, 1281, 1237, 0, 0, 0, 310, - 311, 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, 1130, 0, 0, 0, 0, 0, 1181, 0, - 0, 0, 0, 1187, 0, 1134, 0, 0, 1228, 0, - 1170, 0, 0, 0, 1158, 0, 1189, 0, 0, 0, - 1186, 0, 1135, 0, 0, 0, 1230, 0, 0, 1131, - 1229, 0, 1136, 1132, 0, 1182, 1169, 0, 0, 1183, - 0, 0, 1188, 0, 0, 0, 0, 0, 0, 1171, - 0, 0, 0, 0, 0, 1190, 0, 0, 0, 1137, - 0, 0, 1172, 0, 0, 1231, 0, 0, 1191, 0, - 0, 0, 1173, 1138, 0, 1139, 0, 0, 1192, 0, - 0, 0, 0, 0, 0, 1133, 0, 0, 1174, 0, - 0, 1184, 1157, 0, 1193, 0, 0, 0, 1185, 0, - 0, 0, 0, 0, 1140, 0, 0, 1141, 0, 1142, - 1143, 1144, 1145, 0, 1146, 1147, 0, 1148, 0, 0, - 0, 0, 1149, 0, 0, 1150, 0, 1151, 1152, 1153, - 1154, 0, 1155, 1156, 0, 1163, 0, 1161, 1162, 0, - 1164, 0, 0, 1165, 0, 1166, 91, 92, 93, 94, - 95, 96, 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, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 0, 0, 0, 0, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 127, 347, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 129, 130, 0, 0, 0, 0, - 0, 0, 0, 132, 133, 0, 251, 0, 134, 0, - 0, 0, 0, 135, 136, 137, 0, 0, 253, 0, - 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 255, 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, 148, 149, 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, 155 + 156, 234, 256, 309, 327, 78, 353, 373, 391, 404, + 345, 375, 851, 376, 1126, 260, 768, 1127, 302, 244, + 300, 317, 329, 772, 367, 387, 1142, 405, 790, 81, + 261, 733, 28, 389, 390, 132, 133, 245, 301, 318, + 330, 40, 368, 388, 29, 406, 30, 42, 31, 127, + 429, 500, 310, 132, 133, 430, 501, 298, 312, 328, + 354, 374, 509, 346, 132, 133, 84, 510, 262, 307, + 132, 133, 417, 418, 521, 303, 525, 334, 263, 522, + 126, 526, 920, 921, 423, 253, 573, 555, 578, 254, + 308, 304, 556, 335, 425, 305, 44, 336, 264, 46, + 733, 155, 48, 929, 930, 931, 434, 909, 910, 911, + 50, 257, 565, 258, 259, 283, 569, 566, 52, 500, + 347, 570, 348, 349, 965, 54, 265, 350, 351, 352, + 266, 267, 268, 269, 270, 155, 271, 272, 273, 56, + 132, 133, 569, 1011, 274, 58, 1012, 966, 275, 276, + 277, 278, 279, 932, 280, 281, 282, 715, 716, 717, + 718, 311, 293, 60, 155, 62, 294, 295, 296, 1014, + 155, 426, 1015, 424, 347, 369, 348, 349, 370, 371, + 372, 509, 1047, 227, 228, 1048, 967, 229, 427, 791, + 230, 231, 232, 233, 132, 133, 719, 945, 946, 947, + 948, 970, 389, 390, 87, 1276, 971, 88, 1277, 1278, + 1279, 1280, 993, 993, 155, 1028, 1033, 994, 995, 89, + 1029, 1034, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 1217, 1218, 1219, 872, 873, 874, 875, + 155, 876, 1126, 756, 757, 1127, 895, 896, 897, 898, + 899, 900, 1274, 535, 1142, 1275, 32, 33, 34, 35, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 132, 133, 435, 126, 127, + 1037, 536, 347, 1043, 155, 1038, 1089, 436, 1044, 565, + 128, 129, 130, 1053, 1045, 759, 760, 131, 1054, 440, + 132, 133, 132, 133, 993, 134, 1224, 1225, 1226, 1232, + 135, 136, 137, 138, 139, 521, 537, 1236, 545, 441, + 1233, 140, 1237, 93, 94, 95, 96, 555, 93, 94, + 95, 141, 1244, 1252, 142, 525, 799, 800, 1253, 1294, + 1255, 143, 144, 445, 1295, 446, 145, 447, 448, 146, + 449, 450, 451, 147, 452, 571, 572, 453, 101, 102, + 103, 132, 133, 727, 728, 729, 730, 454, 148, 149, + 150, 151, 152, 153, 455, 155, 1192, 457, 1193, 1194, + 458, 459, 154, 460, 461, 465, 126, 127, 347, 466, + 467, 468, 127, 736, 737, 738, 739, 472, 479, 480, + 155, 481, 155, 487, 494, 495, 496, 499, 132, 133, + 505, 579, 506, 132, 133, 396, 397, 398, 399, 400, + 401, 402, 403, 156, 1145, 1146, 1147, 319, 507, 508, + 517, 524, 234, 540, 544, 320, 321, 322, 323, 324, + 325, 326, 546, 551, 256, 548, 549, 550, 309, 552, + 244, 557, 559, 561, 562, 568, 574, 260, 575, 327, + 302, 155, 300, 576, 577, 580, 317, 581, 245, 353, + 582, 583, 261, 584, 585, 373, 586, 329, 587, 375, + 301, 376, 588, 589, 318, 590, 591, 367, 404, 592, + 593, 600, 606, 387, 594, 330, 603, 310, 595, 298, + 596, 597, 598, 312, 607, 368, 405, 599, 155, 608, + 262, 388, 601, 155, 328, 602, 613, 303, 604, 605, + 263, 614, 609, 354, 406, 610, 611, 615, 617, 374, + 618, 612, 334, 304, 616, 619, 620, 305, 621, 622, + 264, 623, 624, 625, 626, 627, 628, 629, 335, 630, + 632, 631, 336, 257, 633, 258, 259, 283, 634, 635, + 636, 1256, 637, 641, 642, 638, 644, 645, 265, 639, + 646, 640, 266, 267, 268, 269, 270, 647, 271, 272, + 273, 648, 649, 650, 652, 653, 274, 654, 655, 656, + 275, 276, 277, 278, 279, 657, 280, 281, 282, 659, + 658, 660, 661, 663, 293, 666, 311, 664, 294, 295, + 296, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 667, 668, 669, 156, 670, 234, + 671, 672, 677, 673, 795, 675, 676, 678, 679, 680, + 681, 683, 684, 685, 688, 689, 692, 244, 686, 694, + 693, 691, 695, 697, 696, 698, 700, 703, 91, 92, + 93, 94, 95, 96, 704, 245, 705, 706, 707, 912, + 922, 701, 404, 708, 709, 710, 949, 711, 712, 713, + 723, 714, 721, 724, 725, 722, 726, 918, 923, 933, + 405, 732, 30, 735, 741, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 919, 924, 934, 406, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 742, + 246, 247, 248, 743, 127, 744, 745, 750, 746, 747, + 748, 749, 751, 752, 753, 754, 129, 130, 762, 763, + 765, 770, 764, 249, 766, 132, 133, 250, 251, 252, + 134, 794, 852, 767, 769, 135, 136, 137, 793, 856, + 253, 771, 860, 864, 254, 773, 140, 868, 774, 775, + 776, 884, 887, 997, 255, 891, 942, 957, 777, 976, + 977, 778, 779, 961, 780, 781, 782, 783, 784, 785, + 786, 788, 789, 978, 979, 980, 91, 92, 93, 94, + 95, 96, 981, 982, 983, 984, 985, 987, 988, 998, + 1001, 1000, 1022, 148, 149, 1003, 1004, 1006, 1007, 1010, + 1009, 1018, 1055, 1017, 1021, 1020, 1023, 1024, 1025, 1026, + 1027, 1030, 1031, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 1032, 1039, 155, 1041, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 1049, 1050, + 1051, 1052, 127, 347, 1059, 1060, 1063, 1062, 1064, 1065, + 1067, 1068, 1069, 1070, 129, 130, 1071, 1081, 1084, 1085, + 1086, 1073, 1072, 132, 133, 1074, 251, 1075, 134, 1087, + 1076, 1077, 1184, 135, 136, 137, 1082, 1180, 253, 1078, + 1079, 1080, 254, 1185, 1187, 1083, 1173, 1188, 1174, 1175, + 1176, 1177, 255, 1178, 1181, 1182, 1189, 1190, 1210, 1205, + 1206, 1207, 256, 1208, 1211, 353, 1214, 1215, 373, 1216, + 1221, 1097, 375, 1222, 376, 260, 1148, 1234, 302, 327, + 300, 1154, 391, 367, 1101, 1235, 387, 1240, 1223, 1137, + 261, 148, 149, 1228, 1156, 1229, 912, 329, 301, 1102, + 922, 368, 1241, 1242, 388, 1230, 1231, 1138, 1245, 1195, + 1243, 1246, 1157, 1250, 918, 330, 949, 298, 923, 354, + 1128, 309, 374, 155, 933, 1125, 1136, 1197, 262, 1247, + 1153, 1155, 919, 1258, 328, 303, 924, 1103, 263, 317, + 1254, 1259, 934, 1262, 1139, 1198, 1260, 1104, 1264, 1158, + 1263, 304, 334, 1266, 1267, 305, 1268, 318, 264, 1270, + 1140, 1290, 1291, 1196, 1141, 1159, 1292, 1105, 335, 1160, + 310, 257, 336, 258, 259, 283, 312, 1269, 1296, 1300, + 1098, 787, 1099, 1100, 1124, 1149, 265, 1150, 1151, 1152, + 266, 267, 268, 269, 270, 1106, 271, 272, 273, 1107, + 1108, 1109, 1110, 1111, 274, 1112, 1113, 1114, 275, 276, + 277, 278, 279, 1115, 280, 281, 282, 1116, 1117, 1118, + 1119, 1120, 293, 1121, 1122, 1123, 294, 295, 296, 1129, + 1297, 1130, 796, 643, 1302, 1131, 1132, 1133, 1298, 1299, + 1303, 651, 798, 805, 1066, 1090, 1088, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, + 819, 1248, 964, 1144, 820, 821, 822, 823, 824, 825, + 1183, 1172, 690, 1171, 1092, 1091, 662, 1179, 1257, 311, + 682, 1143, 1094, 1093, 1096, 1095, 674, 1261, 687, 1212, + 1213, 699, 1186, 1170, 1191, 665, 702, 1168, 1169, 1097, + 347, 941, 1265, 1204, 1288, 1148, 797, 1301, 0, 0, + 1154, 1209, 1101, 0, 0, 1195, 0, 1137, 0, 0, + 0, 0, 0, 1156, 0, 0, 0, 1102, 0, 0, + 0, 0, 0, 1197, 0, 1138, 0, 0, 0, 0, + 0, 1157, 0, 0, 0, 0, 0, 0, 1128, 0, + 0, 1198, 0, 1125, 1136, 0, 0, 0, 0, 1153, + 1155, 0, 0, 0, 0, 1103, 0, 0, 0, 1196, + 0, 0, 1139, 0, 0, 1104, 0, 0, 1158, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1140, 0, + 0, 0, 1141, 0, 1159, 1105, 0, 0, 1160, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1098, 0, + 1099, 1100, 1124, 0, 1149, 0, 1150, 1151, 1152, 0, + 155, 0, 0, 1106, 0, 0, 0, 1107, 1108, 1109, + 1110, 1111, 0, 1112, 1113, 1114, 0, 0, 0, 0, + 0, 1115, 0, 0, 0, 1116, 1117, 1118, 1119, 1120, + 0, 1121, 1122, 1123, 0, 0, 0, 1129, 0, 1130, + 0, 0, 0, 1131, 1132, 1133 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 64, 73, 74, 75, 76, - 72, 74, 740, 69, 1041, 69, 1041, 1041, 3, 68, - 69, 70, 71, 8, 73, 74, 18, 76, 73, 74, - 74, 3, 69, 680, 6, 3, 117, 118, 6, 69, - 687, 3, 69, 69, 6, 3, 69, 70, 71, 5, - 8, 7, 3, 9, 641, 222, 96, 8, 68, 69, - 70, 71, 3, 73, 74, 3, 76, 8, 3, 69, - 8, 7, 69, 8, 71, 0, 116, 117, 118, 160, - 161, 162, 69, 69, 71, 69, 117, 118, 205, 206, - 207, 208, 132, 10, 3, 69, 136, 137, 69, 8, - 71, 3, 69, 15, 16, 222, 8, 19, 149, 150, - 22, 23, 24, 25, 69, 3, 7, 69, 6, 69, - 69, 69, 69, 710, 69, 69, 3, 69, 41, 42, - 43, 8, 69, 164, 165, 69, 97, 69, 69, 69, - 69, 222, 69, 69, 7, 69, 12, 13, 70, 70, - 69, 117, 118, 69, 40, 69, 117, 118, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 149, 150, 7, 61, 62, 63, 64, 65, - 66, 222, 222, 17, 18, 3, 32, 33, 34, 35, - 8, 222, 184, 7, 3, 186, 187, 188, 189, 8, - 7, 167, 168, 169, 197, 117, 118, 200, 201, 202, - 203, 97, 97, 98, 99, 100, 101, 102, 103, 20, - 21, 67, 68, 69, 152, 153, 154, 155, 156, 157, - 7, 3, 117, 118, 225, 196, 8, 198, 199, 27, - 28, 3, 1269, 3, 1269, 1269, 8, 95, 8, 95, - 96, 97, 3, 7, 3, 11, 222, 8, 14, 8, - 3, 222, 58, 59, 60, 8, 222, 223, 224, 225, - 26, 117, 118, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 7, 7, 7, 133, 134, 135, - 140, 141, 142, 143, 3, 145, 7, 3, 3, 8, - 3, 1029, 8, 8, 3, 8, 6, 3, 3, 8, - 222, 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, 222, 222, 4, 95, - 96, 3, 32, 33, 34, 3, 8, 8, 4, 3, - 8, 107, 108, 109, 8, 3, 8, 4, 114, 3, - 8, 117, 118, 4, 8, 40, 122, 4, 4, 4, - 4, 127, 128, 129, 130, 131, 222, 4, 4, 438, - 439, 4, 138, 110, 111, 112, 113, 123, 124, 125, - 126, 4, 148, 4, 4, 151, 4, 4, 4, 4, - 4, 4, 158, 159, 4, 4, 96, 163, 4, 4, - 166, 4, 4, 4, 170, 4, 4, 4, 4, 4, - 4, 4, 97, 4, 99, 100, 4, 117, 118, 104, - 105, 106, 4, 4, 190, 191, 192, 193, 194, 195, - 4, 131, 117, 118, 4, 4, 3, 514, 204, 139, - 140, 141, 142, 143, 144, 145, 523, 8, 4, 4, - 3, 8, 4, 4, 4, 3, 222, 4, 535, 8, - 4, 4, 539, 4, 523, 4, 4, 4, 222, 535, - 4, 535, 4, 550, 4, 4, 535, 225, 225, 4, - 539, 225, 4, 560, 4, 223, 225, 4, 535, 566, - 4, 550, 4, 566, 223, 535, 223, 223, 535, 535, - 223, 560, 535, 523, 224, 560, 539, 566, 225, 586, - 224, 566, 566, 224, 4, 535, 223, 550, 4, 539, - 223, 223, 222, 4, 223, 535, 223, 586, 535, 225, - 550, 225, 225, 4, 225, 225, 224, 222, 535, 535, - 560, 535, 225, 550, 4, 4, 566, 4, 223, 4, - 4, 535, 4, 550, 535, 4, 4, 4, 535, 117, - 118, 4, 225, 4, 225, 225, 586, 4, 4, 550, - 535, 4, 4, 535, 223, 535, 535, 535, 535, 4, - 535, 535, 4, 535, 4, 4, 4, 225, 535, 4, - 1247, 535, 4, 535, 535, 535, 535, 225, 535, 535, - 225, 535, 4, 4, 4, 4, 535, 539, 539, 535, - 4, 535, 223, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 4, 4, 4, 4, - 4, 223, 190, 191, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 225, 225, 4, - 223, 4, 4, 4, 4, 732, 222, 734, 223, 4, - 4, 4, 731, 4, 222, 4, 4, 4, 4, 223, - 4, 4, 4, 4, 4, 734, 4, 4, 4, 225, - 225, 223, 30, 31, 32, 33, 34, 35, 4, 225, - 225, 4, 225, 4, 225, 223, 223, 774, 775, 225, - 777, 4, 4, 4, 781, 4, 4, 223, 4, 222, - 7, 222, 7, 7, 734, 774, 775, 776, 777, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 7, - 7, 7, 5, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 222, 92, 93, 94, 222, 96, 222, - 5, 5, 5, 222, 774, 775, 776, 777, 5, 7, - 108, 109, 5, 5, 222, 5, 5, 115, 5, 117, - 118, 119, 120, 121, 122, 7, 7, 7, 7, 127, - 128, 129, 7, 222, 132, 7, 5, 222, 136, 5, - 138, 222, 222, 222, 222, 222, 222, 7, 146, 222, - 185, 222, 5, 7, 6, 222, 222, 7, 222, 222, - 7, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 7, 7, 7, 7, 222, 222, 222, 222, 7, 222, - 222, 7, 7, 147, 4, 4, 4, 4, 4, 4, - 4, 4, 190, 191, 4, 4, 4, 4, 3, 3, - 6, 3, 222, 6, 3, 6, 6, 3, 6, 3, - 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 222, 4, 4, 4, 3, 225, - 6, 223, 4, 6, 8, 4, 4, 4, 4, 4, - 225, 4, 4, 4, 223, 4, 4, 4, 223, 223, - 223, 223, 223, 223, 4, 223, 225, 4, 223, 4, - 6, 223, 3, 223, 223, 223, 223, 4, 223, 225, - 8, 225, 8, 223, 4, 8, 3, 8, 4, 4, - 223, 4, 4, 225, 225, 225, 225, 222, 222, 222, - 222, 222, 222, 222, 4, 7, 5, 222, 222, 4, - 222, 222, 222, 222, 4, 1032, 223, 225, 1035, 222, - 222, 1038, 222, 4, 1041, 1038, 1032, 4, 1032, 1046, - 4, 223, 1049, 1032, 1046, 1052, 1035, 1041, 223, 1038, - 1035, 225, 1041, 1038, 1038, 1032, 1041, 1046, 222, 1066, - 1049, 1046, 1032, 1070, 1041, 1032, 1032, 732, 222, 1032, - 734, 1041, 1079, 1003, 1041, 1041, 1046, 1066, 1041, 1086, - 1046, 1070, 1032, 1046, 1091, 1035, 1049, 1076, 1038, 514, - 1079, 1041, 1032, 710, 1079, 1032, 1046, 523, 723, 1049, - 827, 1041, 1091, 1031, 1041, 1032, 1032, 1026, 1032, 1046, - 1044, 1066, 1049, 1054, 1041, 1041, 1066, 1041, 1032, 1046, - 1070, 1032, 1049, 1052, 569, 1032, 1076, 1041, 1091, 1079, - 1041, 1034, 1046, 1032, 1041, 1046, 1269, 1032, 1049, 1046, - 1032, 1091, 1032, 1032, 1032, 1032, 1041, 1032, 1032, 1041, - 1032, 1041, 1041, 1041, 1041, 1032, 1041, 1041, 1032, 1041, - 1032, 1032, 1032, 1032, 1041, 1032, 1032, 1041, 1032, 1041, - 1041, 1041, 1041, 1032, 1041, 1041, 1032, 1041, 1032, 1041, - 1041, 1061, 1041, 1043, 560, 1041, 1037, 1041, 1035, 1093, - 1040, 566, 1038, 1051, 1091, 1275, 550, 1070, 590, 777, - 586, 1049, 1047, 733, 1285, 1307, 1327, 1086, -1, -1, - -1, -1, -1, 1076, 535, -1, -1, -1, -1, 539, - -1, -1, -1, -1, 1223, 1080, -1, -1, -1, 1091, - 1091, -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, 1269, -1, -1, -1, -1, -1, 1275, -1, - -1, -1, -1, 1275, -1, 1269, -1, -1, 1285, -1, - 1269, -1, -1, -1, 1269, -1, 1275, -1, -1, -1, - 1275, -1, 1269, -1, -1, -1, 1285, -1, -1, 1269, - 1285, -1, 1269, 1269, -1, 1275, 1269, -1, -1, 1275, - -1, -1, 1275, -1, -1, -1, -1, -1, -1, 1269, - -1, -1, -1, -1, -1, 1275, -1, -1, -1, 1269, - -1, -1, 1269, -1, -1, 1285, -1, -1, 1275, -1, - -1, -1, 1269, 1269, -1, 1269, -1, -1, 1275, -1, - -1, -1, -1, -1, -1, 1269, -1, -1, 1269, -1, - -1, 1275, 1269, -1, 1275, -1, -1, -1, 1275, -1, - -1, -1, -1, -1, 1269, -1, -1, 1269, -1, 1269, - 1269, 1269, 1269, -1, 1269, 1269, -1, 1269, -1, -1, - -1, -1, 1269, -1, -1, 1269, -1, 1269, 1269, 1269, - 1269, -1, 1269, 1269, -1, 1269, -1, 1269, 1269, -1, - 1269, -1, -1, 1269, -1, 1269, 30, 31, 32, 33, - 34, 35, -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, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, -1, -1, - -1, -1, 96, 97, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 108, 109, -1, -1, -1, -1, - -1, -1, -1, 117, 118, -1, 120, -1, 122, -1, - -1, -1, -1, 127, 128, 129, -1, -1, 132, -1, - -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 146, -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, 190, 191, -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, 222 + 72, 74, 712, 74, 1008, 69, 659, 1008, 69, 68, + 69, 70, 71, 666, 73, 74, 1008, 76, 18, 217, + 69, 620, 0, 149, 150, 117, 118, 68, 69, 70, + 71, 7, 73, 74, 5, 76, 7, 7, 9, 96, + 3, 3, 70, 117, 118, 8, 8, 69, 70, 71, + 73, 74, 3, 40, 117, 118, 10, 8, 69, 116, + 117, 118, 12, 13, 3, 69, 3, 71, 69, 8, + 95, 8, 164, 165, 6, 132, 217, 3, 220, 136, + 137, 69, 8, 71, 4, 69, 7, 71, 69, 7, + 689, 217, 7, 167, 168, 169, 4, 160, 161, 162, + 7, 69, 3, 69, 69, 69, 3, 8, 7, 3, + 97, 8, 99, 100, 8, 7, 69, 104, 105, 106, + 69, 69, 69, 69, 69, 217, 69, 69, 69, 7, + 117, 118, 3, 3, 69, 7, 6, 8, 69, 69, + 69, 69, 69, 217, 69, 69, 69, 181, 182, 183, + 184, 70, 69, 7, 217, 7, 69, 69, 69, 3, + 217, 8, 6, 3, 97, 98, 99, 100, 101, 102, + 103, 3, 3, 15, 16, 6, 8, 19, 3, 179, + 22, 23, 24, 25, 117, 118, 220, 200, 201, 202, + 203, 3, 149, 150, 11, 192, 8, 14, 195, 196, + 197, 198, 3, 3, 217, 3, 3, 8, 8, 26, + 8, 8, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 41, 42, 43, 140, 141, 142, 143, + 217, 145, 1236, 17, 18, 1236, 152, 153, 154, 155, + 156, 157, 3, 8, 1236, 6, 217, 218, 219, 220, + 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, 117, 118, 4, 95, 96, + 3, 3, 97, 3, 217, 8, 996, 4, 8, 3, + 107, 108, 109, 3, 8, 20, 21, 114, 8, 4, + 117, 118, 117, 118, 3, 122, 58, 59, 60, 8, + 127, 128, 129, 130, 131, 3, 8, 3, 8, 4, + 8, 138, 8, 32, 33, 34, 35, 3, 32, 33, + 34, 148, 8, 3, 151, 3, 27, 28, 8, 3, + 8, 158, 159, 4, 8, 4, 163, 4, 4, 166, + 4, 4, 4, 170, 4, 424, 425, 4, 67, 68, + 69, 117, 118, 110, 111, 112, 113, 4, 185, 186, + 187, 188, 189, 190, 4, 217, 191, 4, 193, 194, + 4, 4, 199, 4, 4, 4, 95, 96, 97, 4, + 4, 4, 96, 123, 124, 125, 126, 4, 4, 4, + 217, 4, 217, 4, 4, 4, 4, 4, 117, 118, + 4, 220, 4, 117, 118, 171, 172, 173, 174, 175, + 176, 177, 178, 500, 133, 134, 135, 131, 4, 4, + 4, 4, 509, 4, 4, 139, 140, 141, 142, 143, + 144, 145, 3, 8, 521, 4, 4, 4, 525, 3, + 509, 4, 4, 4, 4, 4, 4, 521, 4, 536, + 521, 217, 521, 4, 4, 220, 525, 4, 509, 546, + 4, 4, 521, 218, 220, 552, 4, 536, 4, 552, + 521, 552, 4, 218, 525, 218, 218, 546, 565, 218, + 218, 4, 4, 552, 220, 536, 220, 525, 219, 521, + 219, 219, 218, 525, 4, 546, 565, 218, 217, 4, + 521, 552, 218, 217, 536, 218, 4, 521, 220, 220, + 521, 4, 220, 546, 565, 220, 219, 4, 4, 552, + 4, 220, 536, 521, 218, 4, 4, 521, 4, 4, + 521, 220, 220, 220, 4, 4, 4, 4, 536, 4, + 4, 218, 536, 521, 4, 521, 521, 521, 4, 4, + 4, 1214, 4, 4, 4, 220, 4, 4, 521, 220, + 4, 220, 521, 521, 521, 521, 521, 220, 521, 521, + 521, 220, 218, 218, 4, 4, 521, 4, 4, 4, + 521, 521, 521, 521, 521, 4, 521, 521, 521, 4, + 218, 4, 4, 4, 521, 4, 525, 218, 521, 521, + 521, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 4, 4, 4, 704, 4, 706, + 4, 4, 218, 4, 703, 4, 4, 4, 4, 4, + 220, 4, 220, 220, 4, 4, 4, 706, 220, 4, + 218, 220, 218, 4, 218, 4, 4, 4, 30, 31, + 32, 33, 34, 35, 7, 706, 7, 7, 7, 746, + 747, 218, 749, 217, 217, 217, 753, 7, 7, 5, + 5, 217, 217, 5, 5, 217, 217, 746, 747, 748, + 749, 5, 7, 217, 5, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 746, 747, 748, 749, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 5, + 92, 93, 94, 5, 96, 5, 7, 217, 7, 7, + 7, 7, 217, 5, 7, 5, 108, 109, 217, 217, + 5, 7, 217, 115, 217, 117, 118, 119, 120, 121, + 122, 5, 7, 217, 217, 127, 128, 129, 180, 7, + 132, 217, 7, 7, 136, 217, 138, 7, 217, 217, + 217, 7, 7, 6, 146, 7, 7, 7, 217, 4, + 4, 217, 217, 147, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 4, 4, 4, 30, 31, 32, 33, + 34, 35, 4, 4, 4, 4, 4, 4, 4, 3, + 3, 6, 4, 185, 186, 6, 3, 6, 3, 3, + 6, 3, 217, 6, 3, 6, 4, 4, 4, 4, + 4, 4, 4, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 4, 4, 217, 4, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 4, 4, + 4, 4, 96, 97, 6, 3, 6, 8, 4, 4, + 4, 4, 4, 4, 108, 109, 218, 4, 4, 4, + 4, 218, 220, 117, 118, 220, 120, 218, 122, 4, + 218, 218, 4, 127, 128, 129, 220, 220, 132, 218, + 218, 218, 136, 4, 220, 218, 218, 4, 218, 218, + 218, 218, 146, 218, 218, 218, 218, 4, 6, 220, + 220, 220, 999, 220, 3, 1002, 4, 217, 1005, 217, + 217, 1008, 1005, 217, 1005, 999, 1013, 8, 999, 1016, + 999, 1013, 1019, 1002, 1008, 8, 1005, 4, 217, 1008, + 999, 185, 186, 217, 1013, 217, 1033, 1016, 999, 1008, + 1037, 1002, 8, 3, 1005, 217, 217, 1008, 217, 1046, + 8, 217, 1013, 4, 1033, 1016, 1053, 999, 1037, 1002, + 1008, 1058, 1005, 217, 1043, 1008, 1008, 1046, 999, 217, + 1013, 1013, 1033, 4, 1016, 999, 1037, 1008, 999, 1058, + 217, 4, 1043, 4, 1008, 1046, 220, 1008, 4, 1013, + 218, 999, 1016, 217, 217, 999, 5, 1058, 999, 7, + 1008, 4, 4, 1046, 1008, 1013, 4, 1008, 1016, 1013, + 1058, 999, 1016, 999, 999, 999, 1058, 217, 4, 4, + 1008, 689, 1008, 1008, 1008, 1013, 999, 1013, 1013, 1013, + 999, 999, 999, 999, 999, 1008, 999, 999, 999, 1008, + 1008, 1008, 1008, 1008, 999, 1008, 1008, 1008, 999, 999, + 999, 999, 999, 1008, 999, 999, 999, 1008, 1008, 1008, + 1008, 1008, 999, 1008, 1008, 1008, 999, 999, 999, 1008, + 220, 1008, 704, 500, 217, 1008, 1008, 1008, 218, 218, + 217, 509, 706, 40, 970, 998, 993, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 1190, 794, 1011, 61, 62, 63, 64, 65, 66, + 1033, 1021, 555, 1019, 1001, 999, 521, 1028, 1236, 1058, + 546, 1010, 1004, 1002, 1007, 1005, 536, 1242, 552, 1058, + 1060, 565, 1037, 1018, 1043, 525, 569, 1014, 1016, 1236, + 97, 749, 1252, 1047, 1274, 1242, 705, 1294, -1, -1, + 1242, 1053, 1236, -1, -1, 1252, -1, 1236, -1, -1, + -1, -1, -1, 1242, -1, -1, -1, 1236, -1, -1, + -1, -1, -1, 1252, -1, 1236, -1, -1, -1, -1, + -1, 1242, -1, -1, -1, -1, -1, -1, 1236, -1, + -1, 1252, -1, 1236, 1236, -1, -1, -1, -1, 1242, + 1242, -1, -1, -1, -1, 1236, -1, -1, -1, 1252, + -1, -1, 1236, -1, -1, 1236, -1, -1, 1242, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1236, -1, + -1, -1, 1236, -1, 1242, 1236, -1, -1, 1242, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1236, -1, + 1236, 1236, 1236, -1, 1242, -1, 1242, 1242, 1242, -1, + 217, -1, -1, 1236, -1, -1, -1, 1236, 1236, 1236, + 1236, 1236, -1, 1236, 1236, 1236, -1, -1, -1, -1, + -1, 1236, -1, -1, -1, 1236, 1236, 1236, 1236, 1236, + -1, 1236, 1236, 1236, -1, -1, -1, 1236, -1, 1236, + -1, -1, -1, 1236, 1236, 1236 }; const short Dhcp4Parser::yystos_[] = { - 0, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 0, 5, - 7, 9, 222, 223, 224, 225, 241, 242, 243, 248, - 7, 257, 7, 262, 7, 317, 7, 431, 7, 515, - 7, 532, 7, 466, 7, 472, 7, 496, 7, 407, - 7, 599, 7, 630, 249, 244, 258, 263, 318, 432, - 516, 533, 467, 473, 497, 408, 600, 631, 241, 250, - 251, 222, 246, 247, 10, 259, 261, 11, 14, 26, + 0, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 0, 5, + 7, 9, 217, 218, 219, 220, 236, 237, 238, 243, + 7, 252, 7, 257, 7, 312, 7, 426, 7, 510, + 7, 527, 7, 461, 7, 467, 7, 491, 7, 402, + 7, 594, 7, 613, 244, 239, 253, 258, 313, 427, + 511, 528, 462, 468, 492, 403, 595, 614, 236, 245, + 246, 217, 241, 242, 10, 254, 256, 11, 14, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 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, 95, 96, 107, 108, 109, 114, 117, 118, 122, 127, 128, 129, 130, 131, - 138, 148, 151, 158, 159, 163, 166, 170, 190, 191, - 192, 193, 194, 195, 204, 222, 256, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 279, 280, 282, 283, 284, 285, 286, 287, 288, - 291, 293, 295, 296, 297, 300, 301, 303, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 331, 333, 341, - 343, 385, 394, 401, 415, 425, 449, 450, 451, 452, - 456, 464, 490, 522, 524, 526, 537, 539, 541, 564, - 578, 579, 587, 597, 628, 637, 661, 15, 16, 19, - 22, 23, 24, 25, 256, 315, 316, 319, 321, 324, - 327, 328, 329, 330, 522, 524, 92, 93, 94, 115, - 119, 120, 121, 132, 136, 146, 256, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 280, 283, 284, - 285, 286, 287, 288, 291, 293, 295, 296, 297, 300, - 301, 303, 305, 311, 433, 434, 435, 437, 439, 441, - 443, 445, 447, 449, 450, 451, 452, 455, 490, 509, - 522, 524, 526, 537, 539, 541, 559, 116, 137, 256, - 445, 447, 490, 517, 518, 519, 521, 522, 524, 131, - 139, 140, 141, 142, 143, 144, 145, 256, 490, 522, - 524, 534, 535, 536, 537, 539, 541, 543, 545, 547, - 549, 551, 553, 555, 557, 464, 40, 97, 99, 100, - 104, 105, 106, 256, 361, 474, 475, 476, 477, 478, - 479, 480, 482, 484, 486, 487, 489, 522, 524, 98, - 101, 102, 103, 256, 361, 478, 484, 498, 499, 500, - 501, 502, 504, 505, 506, 507, 508, 522, 524, 149, - 150, 256, 409, 410, 411, 413, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 190, - 191, 256, 522, 524, 601, 602, 603, 604, 606, 607, - 609, 610, 611, 614, 616, 618, 619, 620, 622, 624, - 626, 12, 13, 632, 633, 634, 636, 6, 3, 4, - 8, 3, 260, 3, 8, 629, 314, 334, 4, 4, - 4, 538, 540, 542, 4, 4, 332, 342, 344, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 278, 4, 4, 4, 4, 4, 289, 292, 294, 4, - 4, 4, 4, 426, 465, 491, 4, 281, 298, 457, - 523, 525, 453, 4, 4, 4, 386, 565, 527, 402, - 416, 4, 395, 580, 588, 598, 302, 304, 4, 4, - 4, 638, 662, 4, 3, 8, 320, 322, 325, 4, - 4, 4, 4, 3, 8, 438, 440, 442, 510, 436, - 444, 4, 448, 446, 560, 3, 8, 520, 4, 3, - 8, 558, 544, 546, 548, 552, 550, 556, 554, 8, - 3, 8, 481, 362, 4, 485, 483, 488, 4, 8, - 3, 503, 4, 4, 4, 8, 3, 412, 414, 3, - 8, 4, 617, 605, 4, 608, 4, 4, 612, 615, - 4, 4, 621, 623, 625, 627, 3, 8, 635, 4, - 3, 8, 241, 241, 222, 4, 4, 4, 4, 225, - 225, 225, 4, 4, 4, 223, 225, 4, 4, 4, - 223, 223, 223, 223, 223, 225, 224, 224, 224, 223, - 223, 4, 223, 223, 225, 225, 225, 4, 4, 4, - 225, 225, 224, 225, 4, 4, 4, 223, 4, 4, - 4, 4, 4, 4, 225, 225, 225, 4, 4, 4, - 4, 4, 223, 4, 4, 4, 4, 4, 4, 225, - 225, 225, 4, 4, 265, 4, 4, 4, 225, 225, - 223, 223, 316, 4, 4, 4, 4, 4, 4, 223, - 4, 4, 4, 434, 4, 223, 518, 4, 4, 4, - 4, 4, 4, 4, 4, 536, 4, 4, 223, 4, - 4, 4, 225, 476, 4, 225, 225, 225, 500, 4, - 4, 410, 225, 4, 4, 223, 4, 223, 223, 4, - 4, 225, 225, 4, 4, 4, 4, 602, 4, 223, - 633, 4, 7, 7, 7, 7, 222, 222, 222, 7, - 7, 5, 222, 186, 187, 188, 189, 225, 290, 222, - 222, 5, 5, 5, 222, 110, 111, 112, 113, 299, - 5, 243, 245, 222, 123, 124, 125, 126, 454, 5, - 5, 5, 5, 7, 7, 7, 7, 7, 222, 222, - 5, 7, 5, 252, 17, 18, 323, 20, 21, 326, - 222, 222, 222, 5, 222, 222, 252, 222, 7, 222, - 252, 222, 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 245, 222, 222, 222, 18, - 184, 613, 185, 290, 222, 222, 222, 5, 241, 264, - 632, 315, 27, 28, 335, 336, 337, 339, 40, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 61, 62, 63, 64, 65, 66, 256, - 349, 350, 351, 354, 356, 358, 360, 361, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 375, 376, - 377, 379, 381, 383, 349, 7, 345, 346, 347, 7, - 427, 428, 429, 7, 468, 469, 470, 7, 492, 493, - 494, 7, 458, 459, 460, 140, 141, 142, 143, 145, - 387, 388, 389, 390, 391, 392, 393, 7, 566, 567, - 7, 528, 529, 530, 7, 403, 404, 405, 152, 153, - 154, 155, 156, 157, 417, 418, 419, 420, 421, 422, - 423, 424, 160, 161, 162, 256, 396, 397, 398, 399, - 400, 522, 524, 164, 165, 256, 522, 524, 581, 582, - 583, 585, 167, 168, 169, 222, 522, 524, 589, 590, - 591, 592, 594, 595, 601, 7, 639, 640, 205, 206, - 207, 208, 256, 663, 664, 665, 666, 667, 668, 253, - 7, 511, 512, 513, 147, 561, 562, 345, 8, 8, - 8, 338, 340, 3, 8, 352, 355, 357, 359, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 373, - 4, 4, 378, 380, 382, 384, 3, 8, 8, 348, - 6, 3, 430, 6, 3, 471, 6, 3, 495, 6, - 3, 461, 6, 3, 3, 6, 568, 3, 6, 531, - 6, 3, 406, 6, 3, 4, 4, 4, 4, 4, - 4, 3, 8, 4, 4, 4, 3, 8, 584, 586, - 3, 8, 4, 593, 4, 596, 3, 8, 8, 641, - 3, 6, 4, 4, 4, 4, 3, 8, 222, 254, - 255, 514, 6, 3, 563, 8, 6, 4, 4, 336, - 4, 4, 4, 4, 223, 225, 223, 225, 223, 223, - 223, 223, 223, 223, 4, 225, 223, 4, 4, 4, - 4, 350, 349, 347, 433, 429, 474, 470, 498, 494, - 256, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 280, 283, 284, 285, 286, 287, 288, 291, 293, - 295, 296, 297, 300, 301, 303, 305, 311, 361, 425, - 443, 445, 447, 449, 450, 451, 452, 462, 463, 490, - 522, 524, 537, 539, 541, 559, 460, 388, 133, 134, - 135, 256, 266, 267, 268, 311, 361, 464, 490, 522, - 524, 537, 539, 541, 569, 570, 571, 572, 573, 575, - 577, 567, 534, 530, 409, 405, 223, 223, 223, 223, - 223, 223, 418, 225, 223, 223, 397, 4, 4, 582, - 225, 4, 223, 4, 590, 196, 198, 199, 256, 361, - 522, 524, 642, 643, 644, 645, 647, 640, 225, 225, - 225, 225, 664, 6, 3, 517, 513, 4, 222, 222, - 41, 42, 43, 353, 222, 222, 222, 58, 59, 60, - 374, 222, 222, 222, 222, 8, 8, 8, 8, 3, - 8, 574, 576, 4, 8, 3, 8, 8, 222, 222, - 222, 241, 648, 4, 646, 3, 8, 222, 8, 252, - 463, 4, 4, 225, 571, 4, 223, 4, 643, 222, - 222, 5, 222, 7, 649, 650, 651, 3, 6, 197, - 200, 201, 202, 203, 652, 653, 654, 656, 657, 658, - 659, 650, 655, 4, 4, 4, 660, 3, 8, 4, - 225, 223, 223, 4, 653, 222, 222 + 138, 148, 151, 158, 159, 163, 166, 170, 185, 186, + 187, 188, 189, 190, 199, 217, 251, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 274, 275, 277, 278, 279, 280, 281, 282, 283, + 286, 288, 290, 291, 292, 295, 296, 298, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 326, 328, 336, + 338, 380, 389, 396, 410, 420, 444, 445, 446, 447, + 451, 459, 485, 517, 519, 521, 532, 534, 536, 559, + 573, 574, 582, 592, 611, 620, 644, 15, 16, 19, + 22, 23, 24, 25, 251, 310, 311, 314, 316, 319, + 322, 323, 324, 325, 517, 519, 92, 93, 94, 115, + 119, 120, 121, 132, 136, 146, 251, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 275, 278, 279, + 280, 281, 282, 283, 286, 288, 290, 291, 292, 295, + 296, 298, 300, 306, 428, 429, 430, 432, 434, 436, + 438, 440, 442, 444, 445, 446, 447, 450, 485, 504, + 517, 519, 521, 532, 534, 536, 554, 116, 137, 251, + 440, 442, 485, 512, 513, 514, 516, 517, 519, 131, + 139, 140, 141, 142, 143, 144, 145, 251, 485, 517, + 519, 529, 530, 531, 532, 534, 536, 538, 540, 542, + 544, 546, 548, 550, 552, 459, 40, 97, 99, 100, + 104, 105, 106, 251, 356, 469, 470, 471, 472, 473, + 474, 475, 477, 479, 481, 482, 484, 517, 519, 98, + 101, 102, 103, 251, 356, 473, 479, 493, 494, 495, + 496, 497, 499, 500, 501, 502, 503, 517, 519, 149, + 150, 251, 404, 405, 406, 408, 171, 172, 173, 174, + 175, 176, 177, 178, 251, 517, 519, 596, 597, 598, + 599, 601, 602, 604, 605, 606, 609, 12, 13, 615, + 616, 617, 619, 6, 3, 4, 8, 3, 255, 3, + 8, 612, 309, 329, 4, 4, 4, 533, 535, 537, + 4, 4, 327, 337, 339, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 273, 4, 4, 4, + 4, 4, 284, 287, 289, 4, 4, 4, 4, 421, + 460, 486, 4, 276, 293, 452, 518, 520, 448, 4, + 4, 4, 381, 560, 522, 397, 411, 4, 390, 575, + 583, 593, 297, 299, 4, 4, 4, 621, 645, 4, + 3, 8, 315, 317, 320, 4, 4, 4, 4, 3, + 8, 433, 435, 437, 505, 431, 439, 4, 443, 441, + 555, 3, 8, 515, 4, 3, 8, 553, 539, 541, + 543, 547, 545, 551, 549, 8, 3, 8, 476, 357, + 4, 480, 478, 483, 4, 8, 3, 498, 4, 4, + 4, 8, 3, 407, 409, 3, 8, 4, 600, 4, + 603, 4, 4, 607, 610, 3, 8, 618, 4, 3, + 8, 236, 236, 217, 4, 4, 4, 4, 220, 220, + 220, 4, 4, 4, 218, 220, 4, 4, 4, 218, + 218, 218, 218, 218, 220, 219, 219, 219, 218, 218, + 4, 218, 218, 220, 220, 220, 4, 4, 4, 220, + 220, 219, 220, 4, 4, 4, 218, 4, 4, 4, + 4, 4, 4, 220, 220, 220, 4, 4, 4, 4, + 4, 218, 4, 4, 4, 4, 4, 4, 220, 220, + 220, 4, 4, 260, 4, 4, 4, 220, 220, 218, + 218, 311, 4, 4, 4, 4, 4, 4, 218, 4, + 4, 4, 429, 4, 218, 513, 4, 4, 4, 4, + 4, 4, 4, 4, 531, 4, 4, 218, 4, 4, + 4, 220, 471, 4, 220, 220, 220, 495, 4, 4, + 405, 220, 4, 218, 4, 218, 218, 4, 4, 597, + 4, 218, 616, 4, 7, 7, 7, 7, 217, 217, + 217, 7, 7, 5, 217, 181, 182, 183, 184, 220, + 285, 217, 217, 5, 5, 5, 217, 110, 111, 112, + 113, 294, 5, 238, 240, 217, 123, 124, 125, 126, + 449, 5, 5, 5, 5, 7, 7, 7, 7, 7, + 217, 217, 5, 7, 5, 247, 17, 18, 318, 20, + 21, 321, 217, 217, 217, 5, 217, 217, 247, 217, + 7, 217, 247, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 240, 217, 217, + 18, 179, 608, 180, 5, 236, 259, 615, 310, 27, + 28, 330, 331, 332, 334, 40, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 61, 62, 63, 64, 65, 66, 251, 344, 345, 346, + 349, 351, 353, 355, 356, 358, 359, 360, 361, 362, + 363, 364, 365, 366, 367, 370, 371, 372, 374, 376, + 378, 344, 7, 340, 341, 342, 7, 422, 423, 424, + 7, 463, 464, 465, 7, 487, 488, 489, 7, 453, + 454, 455, 140, 141, 142, 143, 145, 382, 383, 384, + 385, 386, 387, 388, 7, 561, 562, 7, 523, 524, + 525, 7, 398, 399, 400, 152, 153, 154, 155, 156, + 157, 412, 413, 414, 415, 416, 417, 418, 419, 160, + 161, 162, 251, 391, 392, 393, 394, 395, 517, 519, + 164, 165, 251, 517, 519, 576, 577, 578, 580, 167, + 168, 169, 217, 517, 519, 584, 585, 586, 587, 589, + 590, 596, 7, 622, 623, 200, 201, 202, 203, 251, + 646, 647, 648, 649, 650, 651, 248, 7, 506, 507, + 508, 147, 556, 557, 340, 8, 8, 8, 333, 335, + 3, 8, 347, 350, 352, 354, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 368, 4, 4, 373, + 375, 377, 379, 3, 8, 8, 343, 6, 3, 425, + 6, 3, 466, 6, 3, 490, 6, 3, 456, 6, + 3, 3, 6, 563, 3, 6, 526, 6, 3, 401, + 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, + 4, 4, 4, 3, 8, 579, 581, 3, 8, 4, + 588, 4, 591, 3, 8, 8, 624, 3, 6, 4, + 4, 4, 4, 3, 8, 217, 249, 250, 509, 6, + 3, 558, 8, 6, 4, 4, 331, 4, 4, 4, + 4, 218, 220, 218, 220, 218, 218, 218, 218, 218, + 218, 4, 220, 218, 4, 4, 4, 4, 345, 344, + 342, 428, 424, 469, 465, 493, 489, 251, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 275, 278, + 279, 280, 281, 282, 283, 286, 288, 290, 291, 292, + 295, 296, 298, 300, 306, 356, 420, 438, 440, 442, + 444, 445, 446, 447, 457, 458, 485, 517, 519, 532, + 534, 536, 554, 455, 383, 133, 134, 135, 251, 261, + 262, 263, 306, 356, 459, 485, 517, 519, 532, 534, + 536, 564, 565, 566, 567, 568, 570, 572, 562, 529, + 525, 404, 400, 218, 218, 218, 218, 218, 218, 413, + 220, 218, 218, 392, 4, 4, 577, 220, 4, 218, + 4, 585, 191, 193, 194, 251, 356, 517, 519, 625, + 626, 627, 628, 630, 623, 220, 220, 220, 220, 647, + 6, 3, 512, 508, 4, 217, 217, 41, 42, 43, + 348, 217, 217, 217, 58, 59, 60, 369, 217, 217, + 217, 217, 8, 8, 8, 8, 3, 8, 569, 571, + 4, 8, 3, 8, 8, 217, 217, 217, 236, 631, + 4, 629, 3, 8, 217, 8, 247, 458, 4, 4, + 220, 566, 4, 218, 4, 626, 217, 217, 5, 217, + 7, 632, 633, 634, 3, 6, 192, 195, 196, 197, + 198, 635, 636, 637, 639, 640, 641, 642, 633, 638, + 4, 4, 4, 643, 3, 8, 4, 220, 218, 218, + 4, 636, 217, 217 }; const short Dhcp4Parser::yyr1_[] = { - 0, 226, 228, 227, 229, 227, 230, 227, 231, 227, - 232, 227, 233, 227, 234, 227, 235, 227, 236, 227, - 237, 227, 238, 227, 239, 227, 240, 227, 241, 241, - 241, 241, 241, 241, 241, 242, 244, 243, 245, 246, - 246, 247, 247, 247, 249, 248, 250, 250, 251, 251, - 251, 253, 252, 254, 254, 255, 255, 255, 256, 258, - 257, 260, 259, 259, 261, 263, 262, 264, 264, 264, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 278, 277, 279, 281, 280, 282, 283, 284, 285, 286, - 287, 289, 288, 290, 290, 290, 290, 290, 292, 291, - 294, 293, 295, 296, 298, 297, 299, 299, 299, 299, - 300, 302, 301, 304, 303, 305, 306, 307, 308, 309, - 310, 311, 312, 314, 313, 315, 315, 315, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 318, 317, - 320, 319, 322, 321, 323, 323, 325, 324, 326, 326, - 327, 328, 329, 330, 332, 331, 334, 333, 335, 335, - 335, 336, 336, 338, 337, 340, 339, 342, 341, 344, - 343, 345, 345, 346, 346, 346, 348, 347, 349, 349, - 349, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 352, 351, 353, 353, 353, 355, - 354, 357, 356, 359, 358, 360, 362, 361, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 373, 372, 374, - 374, 374, 375, 376, 378, 377, 380, 379, 382, 381, - 384, 383, 386, 385, 387, 387, 387, 388, 388, 388, - 388, 388, 389, 390, 391, 392, 393, 395, 394, 396, - 396, 396, 397, 397, 397, 397, 397, 397, 398, 399, - 400, 402, 401, 403, 403, 404, 404, 404, 406, 405, - 408, 407, 409, 409, 409, 409, 410, 410, 412, 411, - 414, 413, 416, 415, 417, 417, 417, 418, 418, 418, - 418, 418, 418, 419, 420, 421, 422, 423, 424, 426, - 425, 427, 427, 428, 428, 428, 430, 429, 432, 431, - 433, 433, 433, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, - 434, 434, 436, 435, 438, 437, 440, 439, 442, 441, - 444, 443, 446, 445, 448, 447, 449, 450, 451, 453, - 452, 454, 454, 454, 454, 455, 457, 456, 458, 458, - 459, 459, 459, 461, 460, 462, 462, 462, 463, 463, - 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, - 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, - 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, - 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, - 463, 463, 465, 464, 467, 466, 468, 468, 469, 469, - 469, 471, 470, 473, 472, 474, 474, 475, 475, 475, - 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, - 477, 478, 479, 481, 480, 483, 482, 485, 484, 486, - 488, 487, 489, 491, 490, 492, 492, 493, 493, 493, - 495, 494, 497, 496, 498, 498, 499, 499, 499, 500, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 501, - 503, 502, 504, 505, 506, 507, 508, 510, 509, 511, - 511, 512, 512, 512, 514, 513, 516, 515, 517, 517, - 517, 518, 518, 518, 518, 518, 518, 518, 518, 520, - 519, 521, 523, 522, 525, 524, 527, 526, 528, 528, - 529, 529, 529, 531, 530, 533, 532, 534, 534, 535, - 535, 535, 536, 536, 536, 536, 536, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 538, 537, 540, - 539, 542, 541, 544, 543, 546, 545, 548, 547, 550, - 549, 552, 551, 554, 553, 556, 555, 558, 557, 560, - 559, 561, 563, 562, 565, 564, 566, 566, 566, 568, - 567, 569, 569, 570, 570, 570, 571, 571, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, - 571, 571, 572, 574, 573, 576, 575, 577, 578, 580, - 579, 581, 581, 581, 582, 582, 582, 582, 582, 584, - 583, 586, 585, 588, 587, 589, 589, 589, 590, 590, - 590, 590, 590, 590, 591, 593, 592, 594, 596, 595, - 598, 597, 600, 599, 601, 601, 601, 602, 602, 602, - 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 602, 602, 602, 603, 605, 604, 606, 608, - 607, 609, 610, 612, 611, 613, 613, 615, 614, 617, - 616, 618, 619, 621, 620, 623, 622, 625, 624, 627, - 626, 629, 628, 631, 630, 632, 632, 632, 633, 633, - 635, 634, 636, 638, 637, 639, 639, 639, 641, 640, - 642, 642, 642, 643, 643, 643, 643, 643, 643, 643, - 644, 646, 645, 648, 647, 649, 649, 649, 651, 650, - 652, 652, 652, 653, 653, 653, 653, 653, 655, 654, - 656, 657, 658, 660, 659, 662, 661, 663, 663, 663, - 664, 664, 664, 664, 664, 665, 666, 667, 668 + 0, 221, 223, 222, 224, 222, 225, 222, 226, 222, + 227, 222, 228, 222, 229, 222, 230, 222, 231, 222, + 232, 222, 233, 222, 234, 222, 235, 222, 236, 236, + 236, 236, 236, 236, 236, 237, 239, 238, 240, 241, + 241, 242, 242, 242, 244, 243, 245, 245, 246, 246, + 246, 248, 247, 249, 249, 250, 250, 250, 251, 253, + 252, 255, 254, 254, 256, 258, 257, 259, 259, 259, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 260, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 273, 272, 274, 276, 275, 277, 278, 279, 280, 281, + 282, 284, 283, 285, 285, 285, 285, 285, 287, 286, + 289, 288, 290, 291, 293, 292, 294, 294, 294, 294, + 295, 297, 296, 299, 298, 300, 301, 302, 303, 304, + 305, 306, 307, 309, 308, 310, 310, 310, 311, 311, + 311, 311, 311, 311, 311, 311, 311, 311, 313, 312, + 315, 314, 317, 316, 318, 318, 320, 319, 321, 321, + 322, 323, 324, 325, 327, 326, 329, 328, 330, 330, + 330, 331, 331, 333, 332, 335, 334, 337, 336, 339, + 338, 340, 340, 341, 341, 341, 343, 342, 344, 344, + 344, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 347, 346, 348, 348, 348, 350, + 349, 352, 351, 354, 353, 355, 357, 356, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 368, 367, 369, + 369, 369, 370, 371, 373, 372, 375, 374, 377, 376, + 379, 378, 381, 380, 382, 382, 382, 383, 383, 383, + 383, 383, 384, 385, 386, 387, 388, 390, 389, 391, + 391, 391, 392, 392, 392, 392, 392, 392, 393, 394, + 395, 397, 396, 398, 398, 399, 399, 399, 401, 400, + 403, 402, 404, 404, 404, 404, 405, 405, 407, 406, + 409, 408, 411, 410, 412, 412, 412, 413, 413, 413, + 413, 413, 413, 414, 415, 416, 417, 418, 419, 421, + 420, 422, 422, 423, 423, 423, 425, 424, 427, 426, + 428, 428, 428, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 431, 430, 433, 432, 435, 434, 437, 436, + 439, 438, 441, 440, 443, 442, 444, 445, 446, 448, + 447, 449, 449, 449, 449, 450, 452, 451, 453, 453, + 454, 454, 454, 456, 455, 457, 457, 457, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 460, 459, 462, 461, 463, 463, 464, 464, + 464, 466, 465, 468, 467, 469, 469, 470, 470, 470, + 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, + 472, 473, 474, 476, 475, 478, 477, 480, 479, 481, + 483, 482, 484, 486, 485, 487, 487, 488, 488, 488, + 490, 489, 492, 491, 493, 493, 494, 494, 494, 495, + 495, 495, 495, 495, 495, 495, 495, 495, 495, 496, + 498, 497, 499, 500, 501, 502, 503, 505, 504, 506, + 506, 507, 507, 507, 509, 508, 511, 510, 512, 512, + 512, 513, 513, 513, 513, 513, 513, 513, 513, 515, + 514, 516, 518, 517, 520, 519, 522, 521, 523, 523, + 524, 524, 524, 526, 525, 528, 527, 529, 529, 530, + 530, 530, 531, 531, 531, 531, 531, 531, 531, 531, + 531, 531, 531, 531, 531, 531, 531, 533, 532, 535, + 534, 537, 536, 539, 538, 541, 540, 543, 542, 545, + 544, 547, 546, 549, 548, 551, 550, 553, 552, 555, + 554, 556, 558, 557, 560, 559, 561, 561, 561, 563, + 562, 564, 564, 565, 565, 565, 566, 566, 566, 566, + 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, + 566, 566, 567, 569, 568, 571, 570, 572, 573, 575, + 574, 576, 576, 576, 577, 577, 577, 577, 577, 579, + 578, 581, 580, 583, 582, 584, 584, 584, 585, 585, + 585, 585, 585, 585, 586, 588, 587, 589, 591, 590, + 593, 592, 595, 594, 596, 596, 596, 597, 597, 597, + 597, 597, 597, 597, 597, 597, 597, 597, 598, 600, + 599, 601, 603, 602, 604, 605, 607, 606, 608, 608, + 610, 609, 612, 611, 614, 613, 615, 615, 615, 616, + 616, 618, 617, 619, 621, 620, 622, 622, 622, 624, + 623, 625, 625, 625, 626, 626, 626, 626, 626, 626, + 626, 627, 629, 628, 631, 630, 632, 632, 632, 634, + 633, 635, 635, 635, 636, 636, 636, 636, 636, 638, + 637, 639, 640, 641, 643, 642, 645, 644, 646, 646, + 646, 647, 647, 647, 647, 647, 648, 649, 650, 651 }; const signed char @@ -6171,17 +6002,15 @@ namespace isc { namespace dhcp { 4, 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, - 4, 3, 3, 0, 4, 1, 1, 0, 4, 0, - 4, 3, 3, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 6, 0, 4, 1, 3, 2, 1, 1, - 0, 6, 3, 0, 6, 1, 3, 2, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 3, 0, 4, 0, 6, 1, 3, 2, 0, 4, - 1, 3, 2, 1, 1, 1, 1, 1, 0, 4, - 3, 3, 3, 0, 4, 0, 6, 1, 3, 2, - 1, 1, 1, 1, 1, 3, 3, 3, 3 + 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 3, 0, 4, 3, 3, 0, 4, 1, 1, + 0, 4, 0, 6, 0, 4, 1, 3, 2, 1, + 1, 0, 6, 3, 0, 6, 1, 3, 2, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 3, 0, 4, 0, 6, 1, 3, 2, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 0, + 4, 3, 3, 3, 0, 4, 0, 6, 1, 3, + 2, 1, 1, 1, 1, 1, 3, 3, 3, 3 }; @@ -6247,11 +6076,9 @@ namespace isc { namespace dhcp { "\"thread-pool-size\"", "\"packet-queue-size\"", "\"control-socket\"", "\"socket-type\"", "\"socket-name\"", "\"dhcp-queue-control\"", "\"enable-queue\"", "\"queue-type\"", "\"capacity\"", "\"dhcp-ddns\"", - "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"", - "\"server-port\"", "\"sender-ip\"", "\"sender-port\"", - "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"", - "\"override-no-update\"", "\"override-client-update\"", - "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"", + "\"enable-updates\"", "\"server-ip\"", "\"server-port\"", + "\"sender-ip\"", "\"sender-port\"", "\"max-queue-size\"", + "\"ncr-protocol\"", "\"ncr-format\"", "\"tcp\"", "\"JSON\"", "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"", "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"early-global-reservations-lookup\"", "\"ip-reservations-unique\"", @@ -6363,19 +6190,15 @@ namespace isc { namespace dhcp { "dhcp_ddns", "$@115", "sub_dhcp_ddns", "$@116", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates", "server_ip", "$@117", "server_port", "sender_ip", "$@118", "sender_port", "max_queue_size", "ncr_protocol", - "$@119", "ncr_protocol_value", "ncr_format", "$@120", - "dep_qualifying_suffix", "$@121", "dep_override_no_update", - "dep_override_client_update", "dep_replace_client_name", "$@122", - "dep_generated_prefix", "$@123", "dep_hostname_char_set", "$@124", - "dep_hostname_char_replacement", "$@125", "config_control", "$@126", - "sub_config_control", "$@127", "config_control_params", - "config_control_param", "config_databases", "$@128", - "config_fetch_wait_time", "loggers", "$@129", "loggers_entries", - "logger_entry", "$@130", "logger_params", "logger_param", "debuglevel", - "severity", "$@131", "output_options_list", "$@132", - "output_options_list_content", "output_entry", "$@133", - "output_params_list", "output_params", "output", "$@134", "flush", - "maxsize", "maxver", "pattern", "$@135", "compatibility", "$@136", + "$@119", "ncr_protocol_value", "ncr_format", "$@120", "config_control", + "$@121", "sub_config_control", "$@122", "config_control_params", + "config_control_param", "config_databases", "$@123", + "config_fetch_wait_time", "loggers", "$@124", "loggers_entries", + "logger_entry", "$@125", "logger_params", "logger_param", "debuglevel", + "severity", "$@126", "output_options_list", "$@127", + "output_options_list_content", "output_entry", "$@128", + "output_params_list", "output_params", "output", "$@129", "flush", + "maxsize", "maxver", "pattern", "$@130", "compatibility", "$@131", "compatibility_params", "compatibility_param", "lenient_option_parsing", "ignore_dhcp_server_identifier", "ignore_rai_link_selection", "exclude_first_last_24", YY_NULLPTR @@ -6387,93 +6210,91 @@ namespace isc { namespace dhcp { const short Dhcp4Parser::yyrline_[] = { - 0, 321, 321, 321, 322, 322, 323, 323, 324, 324, - 325, 325, 326, 326, 327, 327, 328, 328, 329, 329, - 330, 330, 331, 331, 332, 332, 333, 333, 341, 342, - 343, 344, 345, 346, 347, 350, 355, 355, 366, 369, - 370, 373, 378, 384, 389, 389, 396, 397, 400, 404, - 408, 414, 414, 421, 422, 425, 429, 433, 443, 452, - 452, 467, 467, 481, 484, 490, 490, 499, 500, 501, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, - 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, - 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 576, 579, - 585, 591, 597, 603, 609, 615, 621, 627, 633, 639, - 645, 645, 654, 660, 660, 669, 675, 681, 687, 693, - 699, 705, 705, 714, 717, 720, 723, 726, 732, 732, - 741, 741, 750, 759, 769, 769, 778, 781, 784, 787, - 792, 798, 798, 807, 807, 816, 822, 828, 834, 840, - 846, 852, 858, 864, 864, 876, 877, 878, 883, 884, - 885, 886, 887, 888, 889, 890, 891, 892, 895, 895, - 904, 904, 915, 915, 923, 924, 927, 927, 935, 937, - 941, 947, 953, 959, 965, 965, 978, 978, 989, 990, - 991, 996, 997, 1000, 1000, 1019, 1019, 1037, 1037, 1050, - 1050, 1061, 1062, 1065, 1066, 1067, 1072, 1072, 1082, 1083, - 1084, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, - 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, - 1108, 1109, 1110, 1111, 1114, 1114, 1122, 1123, 1124, 1127, - 1127, 1136, 1136, 1145, 1145, 1154, 1160, 1160, 1169, 1175, - 1181, 1187, 1193, 1199, 1205, 1211, 1217, 1223, 1223, 1231, - 1232, 1233, 1236, 1242, 1248, 1248, 1257, 1257, 1266, 1266, - 1275, 1275, 1284, 1284, 1295, 1296, 1297, 1302, 1303, 1304, - 1305, 1306, 1309, 1314, 1319, 1324, 1329, 1336, 1336, 1349, - 1350, 1351, 1356, 1357, 1358, 1359, 1360, 1361, 1364, 1370, - 1376, 1382, 1382, 1393, 1394, 1397, 1398, 1399, 1404, 1404, - 1414, 1414, 1424, 1425, 1426, 1429, 1432, 1433, 1436, 1436, - 1445, 1445, 1454, 1454, 1466, 1467, 1468, 1473, 1474, 1475, - 1476, 1477, 1478, 1481, 1487, 1493, 1499, 1505, 1511, 1520, - 1520, 1534, 1535, 1538, 1539, 1540, 1549, 1549, 1575, 1575, - 1586, 1587, 1588, 1594, 1595, 1596, 1597, 1598, 1599, 1600, - 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, - 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, - 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, - 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, - 1641, 1642, 1645, 1645, 1654, 1654, 1663, 1663, 1672, 1672, - 1681, 1681, 1690, 1690, 1699, 1699, 1710, 1716, 1722, 1728, - 1728, 1736, 1737, 1738, 1739, 1742, 1750, 1750, 1762, 1763, - 1767, 1768, 1769, 1774, 1774, 1782, 1783, 1784, 1789, 1790, - 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, - 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, - 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, - 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, - 1831, 1832, 1839, 1839, 1853, 1853, 1862, 1863, 1866, 1867, - 1868, 1875, 1875, 1890, 1890, 1904, 1905, 1908, 1909, 1910, - 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, - 1927, 1929, 1935, 1937, 1937, 1946, 1946, 1955, 1955, 1964, - 1966, 1966, 1975, 1985, 1985, 1998, 1999, 2004, 2005, 2006, - 2013, 2013, 2025, 2025, 2037, 2038, 2043, 2044, 2045, 2052, - 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2064, - 2066, 2066, 2075, 2077, 2079, 2085, 2091, 2100, 2100, 2113, - 2114, 2117, 2118, 2119, 2124, 2124, 2134, 2134, 2144, 2145, - 2146, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2161, - 2161, 2170, 2176, 2176, 2201, 2201, 2231, 2231, 2242, 2243, - 2246, 2247, 2248, 2253, 2253, 2262, 2262, 2271, 2272, 2275, - 2276, 2277, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, - 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2300, 2300, 2309, - 2309, 2318, 2318, 2327, 2327, 2336, 2336, 2345, 2345, 2354, - 2354, 2363, 2363, 2372, 2372, 2381, 2381, 2390, 2390, 2404, - 2404, 2415, 2418, 2418, 2432, 2432, 2443, 2444, 2445, 2450, - 2450, 2460, 2461, 2464, 2465, 2466, 2471, 2472, 2473, 2474, - 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, - 2485, 2486, 2489, 2491, 2491, 2500, 2500, 2509, 2517, 2525, - 2525, 2536, 2537, 2538, 2543, 2544, 2545, 2546, 2547, 2550, - 2550, 2559, 2559, 2571, 2571, 2584, 2585, 2586, 2591, 2592, - 2593, 2594, 2595, 2596, 2599, 2605, 2605, 2614, 2620, 2620, - 2630, 2630, 2643, 2643, 2653, 2654, 2655, 2660, 2661, 2662, - 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, - 2673, 2674, 2675, 2676, 2677, 2680, 2686, 2686, 2695, 2701, - 2701, 2710, 2716, 2722, 2722, 2731, 2732, 2735, 2735, 2745, - 2745, 2755, 2762, 2769, 2769, 2778, 2778, 2788, 2788, 2798, - 2798, 2810, 2810, 2822, 2822, 2832, 2833, 2834, 2840, 2841, - 2844, 2844, 2855, 2863, 2863, 2876, 2877, 2878, 2884, 2884, - 2892, 2893, 2894, 2899, 2900, 2901, 2902, 2903, 2904, 2905, - 2908, 2914, 2914, 2923, 2923, 2934, 2935, 2936, 2941, 2941, - 2949, 2950, 2951, 2956, 2957, 2958, 2959, 2960, 2963, 2963, - 2972, 2978, 2984, 2990, 2990, 2999, 2999, 3010, 3011, 3012, - 3017, 3018, 3019, 3020, 3021, 3024, 3030, 3036, 3042 + 0, 316, 316, 316, 317, 317, 318, 318, 319, 319, + 320, 320, 321, 321, 322, 322, 323, 323, 324, 324, + 325, 325, 326, 326, 327, 327, 328, 328, 336, 337, + 338, 339, 340, 341, 342, 345, 350, 350, 361, 364, + 365, 368, 373, 379, 384, 384, 391, 392, 395, 399, + 403, 409, 409, 416, 417, 420, 424, 428, 438, 447, + 447, 462, 462, 476, 479, 485, 485, 494, 495, 496, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, + 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 574, + 580, 586, 592, 598, 604, 610, 616, 622, 628, 634, + 640, 640, 649, 655, 655, 664, 670, 676, 682, 688, + 694, 700, 700, 709, 712, 715, 718, 721, 727, 727, + 736, 736, 745, 754, 764, 764, 773, 776, 779, 782, + 787, 793, 793, 802, 802, 811, 817, 823, 829, 835, + 841, 847, 853, 859, 859, 871, 872, 873, 878, 879, + 880, 881, 882, 883, 884, 885, 886, 887, 890, 890, + 899, 899, 910, 910, 918, 919, 922, 922, 930, 932, + 936, 942, 948, 954, 960, 960, 973, 973, 984, 985, + 986, 991, 992, 995, 995, 1014, 1014, 1032, 1032, 1045, + 1045, 1056, 1057, 1060, 1061, 1062, 1067, 1067, 1077, 1078, + 1079, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1103, 1104, 1105, 1106, 1109, 1109, 1117, 1118, 1119, 1122, + 1122, 1131, 1131, 1140, 1140, 1149, 1155, 1155, 1164, 1170, + 1176, 1182, 1188, 1194, 1200, 1206, 1212, 1218, 1218, 1226, + 1227, 1228, 1231, 1237, 1243, 1243, 1252, 1252, 1261, 1261, + 1270, 1270, 1279, 1279, 1290, 1291, 1292, 1297, 1298, 1299, + 1300, 1301, 1304, 1309, 1314, 1319, 1324, 1331, 1331, 1344, + 1345, 1346, 1351, 1352, 1353, 1354, 1355, 1356, 1359, 1365, + 1371, 1377, 1377, 1388, 1389, 1392, 1393, 1394, 1399, 1399, + 1409, 1409, 1419, 1420, 1421, 1424, 1427, 1428, 1431, 1431, + 1440, 1440, 1449, 1449, 1461, 1462, 1463, 1468, 1469, 1470, + 1471, 1472, 1473, 1476, 1482, 1488, 1494, 1500, 1506, 1515, + 1515, 1529, 1530, 1533, 1534, 1535, 1544, 1544, 1570, 1570, + 1581, 1582, 1583, 1589, 1590, 1591, 1592, 1593, 1594, 1595, + 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, + 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, + 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, + 1636, 1637, 1640, 1640, 1649, 1649, 1658, 1658, 1667, 1667, + 1676, 1676, 1685, 1685, 1694, 1694, 1705, 1711, 1717, 1723, + 1723, 1731, 1732, 1733, 1734, 1737, 1745, 1745, 1757, 1758, + 1762, 1763, 1764, 1769, 1769, 1777, 1778, 1779, 1784, 1785, + 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, + 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, + 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, + 1826, 1827, 1834, 1834, 1848, 1848, 1857, 1858, 1861, 1862, + 1863, 1870, 1870, 1885, 1885, 1899, 1900, 1903, 1904, 1905, + 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, + 1922, 1924, 1930, 1932, 1932, 1941, 1941, 1950, 1950, 1959, + 1961, 1961, 1970, 1980, 1980, 1993, 1994, 1999, 2000, 2001, + 2008, 2008, 2020, 2020, 2032, 2033, 2038, 2039, 2040, 2047, + 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2059, + 2061, 2061, 2070, 2072, 2074, 2080, 2086, 2095, 2095, 2108, + 2109, 2112, 2113, 2114, 2119, 2119, 2129, 2129, 2139, 2140, + 2141, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2156, + 2156, 2165, 2171, 2171, 2196, 2196, 2226, 2226, 2237, 2238, + 2241, 2242, 2243, 2248, 2248, 2257, 2257, 2266, 2267, 2270, + 2271, 2272, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, + 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2295, 2295, 2304, + 2304, 2313, 2313, 2322, 2322, 2331, 2331, 2340, 2340, 2349, + 2349, 2358, 2358, 2367, 2367, 2376, 2376, 2385, 2385, 2399, + 2399, 2410, 2413, 2413, 2427, 2427, 2438, 2439, 2440, 2445, + 2445, 2455, 2456, 2459, 2460, 2461, 2466, 2467, 2468, 2469, + 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, + 2480, 2481, 2484, 2486, 2486, 2495, 2495, 2504, 2512, 2520, + 2520, 2531, 2532, 2533, 2538, 2539, 2540, 2541, 2542, 2545, + 2545, 2554, 2554, 2566, 2566, 2579, 2580, 2581, 2586, 2587, + 2588, 2589, 2590, 2591, 2594, 2600, 2600, 2609, 2615, 2615, + 2625, 2625, 2638, 2638, 2648, 2649, 2650, 2655, 2656, 2657, + 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2668, 2674, + 2674, 2683, 2689, 2689, 2698, 2704, 2710, 2710, 2719, 2720, + 2723, 2723, 2734, 2734, 2746, 2746, 2756, 2757, 2758, 2764, + 2765, 2768, 2768, 2779, 2787, 2787, 2800, 2801, 2802, 2808, + 2808, 2816, 2817, 2818, 2823, 2824, 2825, 2826, 2827, 2828, + 2829, 2832, 2838, 2838, 2847, 2847, 2858, 2859, 2860, 2865, + 2865, 2873, 2874, 2875, 2880, 2881, 2882, 2883, 2884, 2887, + 2887, 2896, 2902, 2908, 2914, 2914, 2923, 2923, 2934, 2935, + 2936, 2941, 2942, 2943, 2944, 2945, 2948, 2954, 2960, 2966 }; void @@ -6506,9 +6327,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6510 "dhcp4_parser.cc" +#line 6331 "dhcp4_parser.cc" -#line 3048 "dhcp4_parser.yy" +#line 2972 "dhcp4_parser.yy" void |