From d37f3d38abf752f4699324b6471c259603b46fd5 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Thu, 17 Sep 2020 13:28:22 +0000 Subject: [PATCH] [#1102] regen bison --- src/bin/agent/agent_parser.cc | 993 ++++++++++++++++++------------ src/bin/agent/agent_parser.h | 450 +++++++++----- src/bin/agent/location.hh | 2 +- src/bin/agent/position.hh | 2 +- src/bin/agent/stack.hh | 2 +- src/bin/d2/d2_parser.cc | 2 +- src/bin/d2/d2_parser.h | 2 +- src/bin/d2/location.hh | 4 +- src/bin/d2/position.hh | 4 +- src/bin/d2/stack.hh | 4 +- src/bin/dhcp4/dhcp4_parser.cc | 2 +- src/bin/dhcp4/dhcp4_parser.h | 2 +- src/bin/dhcp4/location.hh | 4 +- src/bin/dhcp4/position.hh | 4 +- src/bin/dhcp4/stack.hh | 4 +- src/bin/dhcp6/dhcp6_parser.cc | 2 +- src/bin/dhcp6/dhcp6_parser.h | 2 +- src/bin/dhcp6/location.hh | 4 +- src/bin/dhcp6/position.hh | 4 +- src/bin/dhcp6/stack.hh | 4 +- src/bin/netconf/location.hh | 4 +- src/bin/netconf/netconf_parser.cc | 2 +- src/bin/netconf/netconf_parser.h | 2 +- src/bin/netconf/position.hh | 4 +- src/bin/netconf/stack.hh | 4 +- 25 files changed, 931 insertions(+), 582 deletions(-) diff --git a/src/bin/agent/agent_parser.cc b/src/bin/agent/agent_parser.cc index e8951f18d4..c92669b8c7 100644 --- a/src/bin/agent/agent_parser.cc +++ b/src/bin/agent/agent_parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -212,6 +212,7 @@ namespace isc { namespace agent { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; @@ -249,6 +250,7 @@ namespace isc { namespace agent { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (YY_MOVE (that.value)); break; @@ -286,6 +288,7 @@ namespace isc { namespace agent { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.copy< ElementPtr > (that.value); break; @@ -322,6 +325,7 @@ namespace isc { namespace agent { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (that.value); break; @@ -378,45 +382,51 @@ namespace isc { namespace agent { switch (yykind) { case symbol_kind::S_STRING: // "constant string" -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } -#line 384 "agent_parser.cc" +#line 388 "agent_parser.cc" break; case symbol_kind::S_INTEGER: // "integer" -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } -#line 390 "agent_parser.cc" +#line 394 "agent_parser.cc" break; case symbol_kind::S_FLOAT: // "floating point" -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < double > (); } -#line 396 "agent_parser.cc" +#line 400 "agent_parser.cc" break; case symbol_kind::S_BOOLEAN: // "boolean" -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < bool > (); } -#line 402 "agent_parser.cc" +#line 406 "agent_parser.cc" break; case symbol_kind::S_value: // value -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 408 "agent_parser.cc" +#line 412 "agent_parser.cc" break; case symbol_kind::S_map_value: // map_value -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 414 "agent_parser.cc" +#line 418 "agent_parser.cc" break; case symbol_kind::S_socket_type_value: // socket_type_value -#line 99 "agent_parser.yy" +#line 108 "agent_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } -#line 420 "agent_parser.cc" +#line 424 "agent_parser.cc" + break; + + case symbol_kind::S_auth_type_value: // auth_type_value +#line 108 "agent_parser.yy" + { yyoutput << yysym.value.template as < ElementPtr > (); } +#line 430 "agent_parser.cc" break; default: @@ -649,6 +659,7 @@ namespace isc { namespace agent { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value yylhs.value.emplace< ElementPtr > (); break; @@ -689,208 +700,208 @@ namespace isc { namespace agent { switch (yyn) { case 2: // $@1: %empty -#line 110 "agent_parser.yy" +#line 119 "agent_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORDS; } -#line 695 "agent_parser.cc" +#line 706 "agent_parser.cc" break; case 4: // $@2: %empty -#line 111 "agent_parser.yy" +#line 120 "agent_parser.yy" { ctx.ctx_ = ctx.CONFIG; } -#line 701 "agent_parser.cc" +#line 712 "agent_parser.cc" break; case 6: // $@3: %empty -#line 112 "agent_parser.yy" +#line 121 "agent_parser.yy" { ctx.ctx_ = ctx.AGENT; } -#line 707 "agent_parser.cc" +#line 718 "agent_parser.cc" break; case 8: // $@4: %empty -#line 120 "agent_parser.yy" +#line 129 "agent_parser.yy" { // Parse the Control-agent map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 717 "agent_parser.cc" +#line 728 "agent_parser.cc" break; case 9: // sub_agent: "{" $@4 global_params "}" -#line 124 "agent_parser.yy" +#line 133 "agent_parser.yy" { // parsing completed } -#line 725 "agent_parser.cc" +#line 736 "agent_parser.cc" break; case 10: // json: value -#line 131 "agent_parser.yy" +#line 140 "agent_parser.yy" { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ()); } -#line 734 "agent_parser.cc" +#line 745 "agent_parser.cc" break; case 11: // value: "integer" -#line 137 "agent_parser.yy" +#line 146 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } -#line 740 "agent_parser.cc" +#line 751 "agent_parser.cc" break; case 12: // value: "floating point" -#line 138 "agent_parser.yy" +#line 147 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } -#line 746 "agent_parser.cc" +#line 757 "agent_parser.cc" break; case 13: // value: "boolean" -#line 139 "agent_parser.yy" +#line 148 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } -#line 752 "agent_parser.cc" +#line 763 "agent_parser.cc" break; case 14: // value: "constant string" -#line 140 "agent_parser.yy" +#line 149 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } -#line 758 "agent_parser.cc" +#line 769 "agent_parser.cc" break; case 15: // value: "null" -#line 141 "agent_parser.yy" +#line 150 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } -#line 764 "agent_parser.cc" +#line 775 "agent_parser.cc" break; case 16: // value: map -#line 142 "agent_parser.yy" +#line 151 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 770 "agent_parser.cc" +#line 781 "agent_parser.cc" break; case 17: // value: list_generic -#line 143 "agent_parser.yy" +#line 152 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 776 "agent_parser.cc" +#line 787 "agent_parser.cc" break; case 18: // $@5: %empty -#line 147 "agent_parser.yy" +#line 156 "agent_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 787 "agent_parser.cc" +#line 798 "agent_parser.cc" break; case 19: // map: "{" $@5 map_content "}" -#line 152 "agent_parser.yy" +#line 161 "agent_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 797 "agent_parser.cc" +#line 808 "agent_parser.cc" break; case 20: // map_value: map -#line 158 "agent_parser.yy" +#line 167 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } -#line 803 "agent_parser.cc" +#line 814 "agent_parser.cc" break; case 23: // not_empty_map: "constant string" ":" value -#line 172 "agent_parser.yy" +#line 181 "agent_parser.yy" { // map containing a single entry ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); } -#line 813 "agent_parser.cc" - break; - - case 24: // not_empty_map: not_empty_map "," "constant string" ":" value -#line 177 "agent_parser.yy" - { - // map consisting of a shorter map followed by - // comma and string:value - ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); - ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); - } #line 824 "agent_parser.cc" break; + case 24: // not_empty_map: not_empty_map "," "constant string" ":" value +#line 186 "agent_parser.yy" + { + // map consisting of a shorter map followed by + // comma and string:value + ctx.unique(yystack_[2].value.as < std::string > (), ctx.loc2pos(yystack_[2].location)); + ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); + } +#line 835 "agent_parser.cc" + break; + case 25: // $@6: %empty -#line 185 "agent_parser.yy" +#line 194 "agent_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); } -#line 833 "agent_parser.cc" +#line 844 "agent_parser.cc" break; case 26: // list_generic: "[" $@6 list_content "]" -#line 188 "agent_parser.yy" +#line 197 "agent_parser.yy" { } -#line 840 "agent_parser.cc" +#line 851 "agent_parser.cc" break; case 29: // not_empty_list: value -#line 195 "agent_parser.yy" +#line 204 "agent_parser.yy" { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 849 "agent_parser.cc" +#line 860 "agent_parser.cc" break; case 30: // not_empty_list: not_empty_list "," value -#line 199 "agent_parser.yy" +#line 208 "agent_parser.yy" { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ()); } -#line 858 "agent_parser.cc" +#line 869 "agent_parser.cc" break; case 31: // unknown_map_entry: "constant string" ":" -#line 212 "agent_parser.yy" +#line 221 "agent_parser.yy" { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as < std::string > (); error(yystack_[1].location, "got unexpected keyword \"" + keyword + "\" in " + where + " map."); } -#line 869 "agent_parser.cc" +#line 880 "agent_parser.cc" break; case 32: // $@7: %empty -#line 220 "agent_parser.yy" +#line 229 "agent_parser.yy" { // This code is executed when we're about to start parsing // the content of the map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 880 "agent_parser.cc" +#line 891 "agent_parser.cc" break; case 33: // agent_syntax_map: "{" $@7 global_object "}" -#line 225 "agent_parser.yy" +#line 234 "agent_parser.yy" { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place // for it. } -#line 890 "agent_parser.cc" +#line 901 "agent_parser.cc" break; case 34: // $@8: %empty -#line 232 "agent_parser.yy" +#line 241 "agent_parser.yy" { // Let's create a MapElement that will represent it, add it to the @@ -903,59 +914,59 @@ namespace isc { namespace agent { ctx.stack_.push_back(m); ctx.enter(ctx.AGENT); } -#line 907 "agent_parser.cc" +#line 918 "agent_parser.cc" break; case 35: // global_object: "Control-agent" $@8 ":" "{" global_params "}" -#line 243 "agent_parser.yy" +#line 252 "agent_parser.yy" { // Ok, we're done with parsing control-agent. Let's take the map // off the stack. ctx.stack_.pop_back(); ctx.leave(); } -#line 918 "agent_parser.cc" +#line 929 "agent_parser.cc" break; - case 46: // $@9: %empty -#line 266 "agent_parser.yy" + case 47: // $@9: %empty +#line 276 "agent_parser.yy" { ctx.unique("http-host", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 927 "agent_parser.cc" +#line 938 "agent_parser.cc" break; - case 47: // http_host: "http-host" $@9 ":" "constant string" -#line 269 "agent_parser.yy" + case 48: // http_host: "http-host" $@9 ":" "constant string" +#line 279 "agent_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("http-host", host); ctx.leave(); } -#line 937 "agent_parser.cc" +#line 948 "agent_parser.cc" break; - case 48: // http_port: "http-port" ":" "integer" -#line 275 "agent_parser.yy" + case 49: // http_port: "http-port" ":" "integer" +#line 285 "agent_parser.yy" { ctx.unique("http-port", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("http-port", prf); } -#line 947 "agent_parser.cc" +#line 958 "agent_parser.cc" break; - case 49: // $@10: %empty -#line 281 "agent_parser.yy" + case 50: // $@10: %empty +#line 291 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); } -#line 955 "agent_parser.cc" +#line 966 "agent_parser.cc" break; - case 50: // user_context: "user-context" $@10 ":" map_value -#line 283 "agent_parser.yy" + case 51: // user_context: "user-context" $@10 ":" map_value +#line 293 "agent_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -978,19 +989,19 @@ namespace isc { namespace agent { parent->set("user-context", user_context); ctx.leave(); } -#line 982 "agent_parser.cc" +#line 993 "agent_parser.cc" break; - case 51: // $@11: %empty -#line 306 "agent_parser.yy" + case 52: // $@11: %empty +#line 316 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); } -#line 990 "agent_parser.cc" +#line 1001 "agent_parser.cc" break; - case 52: // comment: "comment" $@11 ":" "constant string" -#line 308 "agent_parser.yy" + case 53: // comment: "comment" $@11 ":" "constant string" +#line 318 "agent_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -1015,11 +1026,11 @@ namespace isc { namespace agent { parent->set("user-context", user_context); ctx.leave(); } -#line 1019 "agent_parser.cc" +#line 1030 "agent_parser.cc" break; - case 53: // $@12: %empty -#line 334 "agent_parser.yy" + case 54: // $@12: %empty +#line 344 "agent_parser.yy" { ctx.unique("hooks-libraries", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1027,75 +1038,75 @@ namespace isc { namespace agent { ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1031 "agent_parser.cc" +#line 1042 "agent_parser.cc" break; - case 54: // hooks_libraries: "hooks-libraries" $@12 ":" "[" hooks_libraries_list "]" -#line 340 "agent_parser.yy" + case 55: // hooks_libraries: "hooks-libraries" $@12 ":" "[" hooks_libraries_list "]" +#line 350 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1040 "agent_parser.cc" +#line 1051 "agent_parser.cc" break; - case 59: // $@13: %empty -#line 353 "agent_parser.yy" + case 60: // $@13: %empty +#line 363 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1050 "agent_parser.cc" +#line 1061 "agent_parser.cc" break; - case 60: // hooks_library: "{" $@13 hooks_params "}" -#line 357 "agent_parser.yy" + case 61: // hooks_library: "{" $@13 hooks_params "}" +#line 367 "agent_parser.yy" { ctx.stack_.pop_back(); } -#line 1058 "agent_parser.cc" +#line 1069 "agent_parser.cc" break; - case 66: // $@14: %empty -#line 370 "agent_parser.yy" + case 67: // $@14: %empty +#line 380 "agent_parser.yy" { ctx.unique("library", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1067 "agent_parser.cc" +#line 1078 "agent_parser.cc" break; - case 67: // library: "library" $@14 ":" "constant string" -#line 373 "agent_parser.yy" + case 68: // library: "library" $@14 ":" "constant string" +#line 383 "agent_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1077 "agent_parser.cc" +#line 1088 "agent_parser.cc" break; - case 68: // $@15: %empty -#line 379 "agent_parser.yy" + case 69: // $@15: %empty +#line 389 "agent_parser.yy" { ctx.unique("parameters", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1086 "agent_parser.cc" +#line 1097 "agent_parser.cc" break; - case 69: // parameters: "parameters" $@15 ":" map_value -#line 382 "agent_parser.yy" + case 70: // parameters: "parameters" $@15 ":" map_value +#line 392 "agent_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1095 "agent_parser.cc" +#line 1106 "agent_parser.cc" break; - case 70: // $@16: %empty -#line 390 "agent_parser.yy" + case 71: // $@16: %empty +#line 400 "agent_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[2].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[2].location))); @@ -1103,20 +1114,20 @@ namespace isc { namespace agent { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKETS); } -#line 1107 "agent_parser.cc" +#line 1118 "agent_parser.cc" break; - case 71: // control_sockets: "control-sockets" ":" "{" $@16 control_sockets_params "}" -#line 396 "agent_parser.yy" + case 72: // control_sockets: "control-sockets" ":" "{" $@16 control_sockets_params "}" +#line 406 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1116 "agent_parser.cc" +#line 1127 "agent_parser.cc" break; - case 78: // $@17: %empty -#line 417 "agent_parser.yy" + case 79: // $@17: %empty +#line 427 "agent_parser.yy" { ctx.unique("dhcp4", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1124,20 +1135,20 @@ namespace isc { namespace agent { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1128 "agent_parser.cc" +#line 1139 "agent_parser.cc" break; - case 79: // dhcp4_server_socket: "dhcp4" $@17 ":" "{" control_socket_params "}" -#line 423 "agent_parser.yy" + case 80: // dhcp4_server_socket: "dhcp4" $@17 ":" "{" control_socket_params "}" +#line 433 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1137 "agent_parser.cc" +#line 1148 "agent_parser.cc" break; - case 80: // $@18: %empty -#line 429 "agent_parser.yy" + case 81: // $@18: %empty +#line 439 "agent_parser.yy" { ctx.unique("dhcp6", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1145,20 +1156,20 @@ namespace isc { namespace agent { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1149 "agent_parser.cc" +#line 1160 "agent_parser.cc" break; - case 81: // dhcp6_server_socket: "dhcp6" $@18 ":" "{" control_socket_params "}" -#line 435 "agent_parser.yy" + case 82: // dhcp6_server_socket: "dhcp6" $@18 ":" "{" control_socket_params "}" +#line 445 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1158 "agent_parser.cc" +#line 1169 "agent_parser.cc" break; - case 82: // $@19: %empty -#line 441 "agent_parser.yy" + case 83: // $@19: %empty +#line 451 "agent_parser.yy" { ctx.unique("d2", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1166,63 +1177,206 @@ namespace isc { namespace agent { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1170 "agent_parser.cc" +#line 1181 "agent_parser.cc" break; - case 83: // d2_server_socket: "d2" $@19 ":" "{" control_socket_params "}" -#line 447 "agent_parser.yy" + case 84: // d2_server_socket: "d2" $@19 ":" "{" control_socket_params "}" +#line 457 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1179 "agent_parser.cc" +#line 1190 "agent_parser.cc" break; - case 91: // $@20: %empty -#line 466 "agent_parser.yy" + case 92: // $@20: %empty +#line 476 "agent_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1188 "agent_parser.cc" +#line 1199 "agent_parser.cc" break; - case 92: // socket_name: "socket-name" $@20 ":" "constant string" -#line 469 "agent_parser.yy" + case 93: // socket_name: "socket-name" $@20 ":" "constant string" +#line 479 "agent_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 1198 "agent_parser.cc" +#line 1209 "agent_parser.cc" break; - case 93: // $@21: %empty -#line 476 "agent_parser.yy" + case 94: // $@21: %empty +#line 486 "agent_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.SOCKET_TYPE); } -#line 1207 "agent_parser.cc" +#line 1218 "agent_parser.cc" break; - case 94: // socket_type: "socket-type" $@21 ":" socket_type_value -#line 479 "agent_parser.yy" + case 95: // socket_type: "socket-type" $@21 ":" socket_type_value +#line 489 "agent_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 1216 "agent_parser.cc" +#line 1227 "agent_parser.cc" break; - case 95: // socket_type_value: "unix" -#line 485 "agent_parser.yy" + case 96: // socket_type_value: "unix" +#line 495 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 1222 "agent_parser.cc" +#line 1233 "agent_parser.cc" break; - case 96: // $@22: %empty -#line 492 "agent_parser.yy" + case 97: // $@22: %empty +#line 502 "agent_parser.yy" + { + ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("authentication", m); + ctx.stack_.push_back(m); + ctx.enter(ctx.AUTHENTICATION); +} +#line 1245 "agent_parser.cc" + break; + + case 98: // authentication: "authentication" $@22 ":" "{" auth_params "}" +#line 508 "agent_parser.yy" + { + // The type parameter is required + ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1256 "agent_parser.cc" + break; + + case 107: // $@23: %empty +#line 527 "agent_parser.yy" + { + ctx.unique("type", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.AUTH_TYPE); +} +#line 1265 "agent_parser.cc" + break; + + case 108: // auth_type: "type" $@23 ":" auth_type_value +#line 530 "agent_parser.yy" + { + ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); + ctx.leave(); +} +#line 1274 "agent_parser.cc" + break; + + case 109: // auth_type_value: "basic" +#line 535 "agent_parser.yy" + { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } +#line 1280 "agent_parser.cc" + break; + + case 110: // $@24: %empty +#line 538 "agent_parser.yy" + { + ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORDS); +} +#line 1289 "agent_parser.cc" + break; + + case 111: // realm: "realm" $@24 ":" "constant string" +#line 541 "agent_parser.yy" + { + ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("realm", realm); + ctx.leave(); +} +#line 1299 "agent_parser.cc" + break; + + case 112: // $@25: %empty +#line 547 "agent_parser.yy" + { + ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); + ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("clients", l); + ctx.stack_.push_back(l); + ctx.enter(ctx.CLIENTS); +} +#line 1311 "agent_parser.cc" + break; + + case 113: // clients: "clients" $@25 ":" "[" clients_list "]" +#line 553 "agent_parser.yy" + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1320 "agent_parser.cc" + break; + + case 118: // $@26: %empty +#line 566 "agent_parser.yy" + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->add(m); + ctx.stack_.push_back(m); +} +#line 1330 "agent_parser.cc" + break; + + case 119: // basic_auth: "{" $@26 clients_params "}" +#line 570 "agent_parser.yy" + { + ctx.stack_.pop_back(); +} +#line 1338 "agent_parser.cc" + break; + + case 127: // $@27: %empty +#line 585 "agent_parser.yy" + { + ctx.unique("user", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORDS); +} +#line 1347 "agent_parser.cc" + break; + + case 128: // user: "user" $@27 ":" "constant string" +#line 588 "agent_parser.yy" + { + ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("user", user); + ctx.leave(); +} +#line 1357 "agent_parser.cc" + break; + + case 129: // $@28: %empty +#line 594 "agent_parser.yy" + { + ctx.unique("password", ctx.loc2pos(yystack_[0].location)); + ctx.enter(ctx.NO_KEYWORDS); +} +#line 1366 "agent_parser.cc" + break; + + case 130: // password: "password" $@28 ":" "constant string" +#line 597 "agent_parser.yy" + { + ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("password", password); + ctx.leave(); +} +#line 1376 "agent_parser.cc" + break; + + case 131: // $@29: %empty +#line 607 "agent_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1230,86 +1384,86 @@ namespace isc { namespace agent { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 1234 "agent_parser.cc" +#line 1388 "agent_parser.cc" break; - case 97: // loggers: "loggers" $@22 ":" "[" loggers_entries "]" -#line 498 "agent_parser.yy" + case 132: // loggers: "loggers" $@29 ":" "[" loggers_entries "]" +#line 613 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1243 "agent_parser.cc" +#line 1397 "agent_parser.cc" break; - case 100: // $@23: %empty -#line 510 "agent_parser.yy" + case 135: // $@30: %empty +#line 625 "agent_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 1253 "agent_parser.cc" +#line 1407 "agent_parser.cc" break; - case 101: // logger_entry: "{" $@23 logger_params "}" -#line 514 "agent_parser.yy" + case 136: // logger_entry: "{" $@30 logger_params "}" +#line 629 "agent_parser.yy" { ctx.stack_.pop_back(); } -#line 1261 "agent_parser.cc" +#line 1415 "agent_parser.cc" break; - case 111: // $@24: %empty -#line 531 "agent_parser.yy" + case 146: // $@31: %empty +#line 646 "agent_parser.yy" { ctx.unique("name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1270 "agent_parser.cc" +#line 1424 "agent_parser.cc" break; - case 112: // name: "name" $@24 ":" "constant string" -#line 534 "agent_parser.yy" + case 147: // name: "name" $@31 ":" "constant string" +#line 649 "agent_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1280 "agent_parser.cc" +#line 1434 "agent_parser.cc" break; - case 113: // debuglevel: "debuglevel" ":" "integer" -#line 540 "agent_parser.yy" + case 148: // debuglevel: "debuglevel" ":" "integer" +#line 655 "agent_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 1290 "agent_parser.cc" +#line 1444 "agent_parser.cc" break; - case 114: // $@25: %empty -#line 546 "agent_parser.yy" + case 149: // $@32: %empty +#line 661 "agent_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1299 "agent_parser.cc" +#line 1453 "agent_parser.cc" break; - case 115: // severity: "severity" $@25 ":" "constant string" -#line 549 "agent_parser.yy" + case 150: // severity: "severity" $@32 ":" "constant string" +#line 664 "agent_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 1309 "agent_parser.cc" +#line 1463 "agent_parser.cc" break; - case 116: // $@26: %empty -#line 555 "agent_parser.yy" + case 151: // $@33: %empty +#line 670 "agent_parser.yy" { ctx.unique("output_options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1317,106 +1471,106 @@ namespace isc { namespace agent { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 1321 "agent_parser.cc" +#line 1475 "agent_parser.cc" break; - case 117: // output_options_list: "output_options" $@26 ":" "[" output_options_list_content "]" -#line 561 "agent_parser.yy" + case 152: // output_options_list: "output_options" $@33 ":" "[" output_options_list_content "]" +#line 676 "agent_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 1330 "agent_parser.cc" +#line 1484 "agent_parser.cc" break; - case 120: // $@27: %empty -#line 570 "agent_parser.yy" + case 155: // $@34: %empty +#line 685 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1340 "agent_parser.cc" +#line 1494 "agent_parser.cc" break; - case 121: // output_entry: "{" $@27 output_params_list "}" -#line 574 "agent_parser.yy" + case 156: // output_entry: "{" $@34 output_params_list "}" +#line 689 "agent_parser.yy" { ctx.stack_.pop_back(); } -#line 1348 "agent_parser.cc" +#line 1502 "agent_parser.cc" break; - case 129: // $@28: %empty -#line 589 "agent_parser.yy" + case 164: // $@35: %empty +#line 704 "agent_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1357 "agent_parser.cc" +#line 1511 "agent_parser.cc" break; - case 130: // output: "output" $@28 ":" "constant string" -#line 592 "agent_parser.yy" + case 165: // output: "output" $@35 ":" "constant string" +#line 707 "agent_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 1367 "agent_parser.cc" +#line 1521 "agent_parser.cc" break; - case 131: // flush: "flush" ":" "boolean" -#line 598 "agent_parser.yy" + case 166: // flush: "flush" ":" "boolean" +#line 713 "agent_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 1377 "agent_parser.cc" +#line 1531 "agent_parser.cc" break; - case 132: // maxsize: "maxsize" ":" "integer" -#line 604 "agent_parser.yy" + case 167: // maxsize: "maxsize" ":" "integer" +#line 719 "agent_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 1387 "agent_parser.cc" +#line 1541 "agent_parser.cc" break; - case 133: // maxver: "maxver" ":" "integer" -#line 610 "agent_parser.yy" + case 168: // maxver: "maxver" ":" "integer" +#line 725 "agent_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 1397 "agent_parser.cc" +#line 1551 "agent_parser.cc" break; - case 134: // $@29: %empty -#line 616 "agent_parser.yy" + case 169: // $@36: %empty +#line 731 "agent_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORDS); } -#line 1406 "agent_parser.cc" +#line 1560 "agent_parser.cc" break; - case 135: // pattern: "pattern" $@29 ":" "constant string" -#line 619 "agent_parser.yy" + case 170: // pattern: "pattern" $@36 ":" "constant string" +#line 734 "agent_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 1416 "agent_parser.cc" +#line 1570 "agent_parser.cc" break; -#line 1420 "agent_parser.cc" +#line 1574 "agent_parser.cc" default: break; @@ -1765,37 +1919,42 @@ namespace isc { namespace agent { } - const signed char AgentParser::yypact_ninf_ = -75; + const signed char AgentParser::yypact_ninf_ = -80; const signed char AgentParser::yytable_ninf_ = -1; const short AgentParser::yypact_[] = { - -18, -75, -75, -75, 6, 0, 1, 27, -75, -75, - -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, - -75, -75, -75, -75, 0, 8, 60, -1, -75, 80, - 45, 86, 83, 93, -75, 89, -75, 96, -75, -75, - 97, -75, -75, 98, -75, 17, -75, -75, -75, -75, - -75, -75, -75, -75, -75, 0, 0, -75, 65, 100, - -75, 101, 67, 103, 104, 102, 106, 107, -75, -1, - -75, -75, -75, 108, 109, 77, -75, 110, 81, -75, - 113, 115, -75, 0, -1, -75, -75, -75, -75, 15, - 114, 116, -75, 42, -75, -75, -75, -75, 46, -75, - -75, -75, -75, -75, 118, 111, -75, -75, 82, -75, - -75, 121, 122, 123, 15, -75, -8, -75, 114, 38, - 116, -75, 124, 128, 129, -75, -75, -75, -75, 52, - -75, -75, -75, -75, -75, -75, 125, -75, -75, -75, - -75, 53, -75, -75, -75, -75, -75, -75, 9, 9, - 9, 126, 133, 3, -75, 134, 135, 105, 136, 38, - -75, -75, -75, -75, -75, -75, 63, -75, -75, -75, - 74, 75, 84, 110, -75, 90, 137, -75, 112, -75, - 139, 141, 9, -75, -75, -75, -75, -75, -75, 140, - -75, 117, 120, -75, -75, 92, -75, -75, -75, -75, - 41, 140, -75, -75, 142, 144, 145, -75, 76, -75, - -75, -75, -75, -75, -75, -75, 147, 72, 119, 127, - 148, 41, -75, 130, -75, -75, -75, 131, -75, -75, - -75 + 56, -80, -80, -80, 6, 4, 3, 5, -80, -80, + -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, + -80, -80, -80, -80, 4, -37, 34, 10, -80, 14, + 30, 67, 69, 98, -80, 103, -80, 113, -80, -80, + -80, 118, -80, -80, 119, -80, 23, -80, -80, -80, + -80, -80, -80, -80, -80, -80, -80, 4, 4, -80, + 79, 121, -80, 122, 82, 125, 126, 127, 128, 129, + 130, -80, 10, -80, -80, -80, 132, 131, 92, -80, + 133, 96, 135, -80, 134, 138, -80, 4, 10, -80, + -80, -80, -80, 40, 51, 137, 139, -80, 54, -80, + -80, -80, -80, -80, -80, 57, -80, -80, -80, -80, + -80, -80, -80, -80, 83, -80, -80, -80, -80, -80, + 141, 142, -80, -80, 13, -80, -80, 144, 145, 146, + 40, -80, 147, 148, 149, 51, -80, -2, -80, 137, + 1, 139, -80, 115, 109, 150, -80, 151, 152, 153, + -80, -80, -80, -80, 84, -80, -80, -80, -80, -80, + -80, 158, -80, -80, -80, -80, 85, -80, -80, -80, + -80, -80, -80, -80, -80, -80, 159, -9, -9, -9, + 161, 163, 88, -80, 164, 165, 110, 166, 1, -80, + -80, 167, 154, -80, -80, -80, -80, -80, -80, 86, + -80, -80, -80, 87, 94, 136, 133, -80, 140, 169, + -80, 155, -80, 59, -80, 159, 168, 171, -9, -80, + -80, -80, -80, -80, -80, 170, -80, -80, -80, -80, + -80, -80, 104, -80, -80, -80, -80, 156, 143, -80, + -80, 24, -80, 172, 174, 59, -80, -80, -80, -80, + 43, 170, -80, 157, 160, -80, -80, 175, 176, 178, + -80, 106, -80, -80, -80, -80, -80, -80, -80, -80, + -80, 179, 162, 173, 177, 180, 43, -80, 181, -80, + -80, -80, 182, -80, -80, -80 }; const unsigned char @@ -1804,147 +1963,177 @@ namespace isc { namespace agent { 0, 2, 4, 6, 0, 0, 0, 0, 1, 25, 18, 15, 14, 11, 12, 13, 3, 10, 16, 17, 32, 5, 8, 7, 27, 21, 0, 0, 29, 0, - 28, 0, 0, 22, 34, 0, 46, 0, 49, 51, - 0, 53, 96, 0, 45, 0, 36, 38, 39, 43, - 44, 41, 40, 42, 26, 0, 0, 19, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 31, 0, - 9, 30, 23, 0, 0, 0, 48, 0, 0, 70, - 0, 0, 37, 0, 0, 47, 20, 50, 52, 0, - 55, 0, 24, 0, 78, 80, 82, 77, 0, 72, - 74, 75, 76, 59, 0, 56, 57, 100, 0, 98, - 35, 0, 0, 0, 0, 71, 0, 54, 0, 0, - 0, 97, 0, 0, 0, 73, 66, 68, 63, 0, - 61, 64, 65, 58, 111, 116, 0, 114, 110, 108, - 109, 0, 102, 104, 106, 107, 105, 99, 0, 0, - 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, - 101, 91, 93, 90, 88, 89, 0, 84, 86, 87, - 0, 0, 0, 0, 62, 0, 0, 113, 0, 103, - 0, 0, 0, 79, 81, 83, 67, 69, 112, 0, - 115, 0, 0, 85, 120, 0, 118, 92, 95, 94, - 0, 0, 117, 129, 0, 0, 0, 134, 0, 122, - 124, 125, 126, 127, 128, 119, 0, 0, 0, 0, - 0, 0, 121, 0, 131, 132, 133, 0, 123, 130, - 135 + 28, 0, 0, 22, 34, 0, 47, 0, 50, 52, + 97, 0, 54, 131, 0, 46, 0, 36, 38, 39, + 44, 45, 42, 41, 40, 43, 26, 0, 0, 19, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 0, 9, 30, 23, 0, 0, 0, 49, + 0, 0, 0, 71, 0, 0, 37, 0, 0, 48, + 20, 51, 53, 0, 0, 56, 0, 24, 0, 107, + 110, 112, 106, 105, 104, 0, 99, 101, 102, 103, + 79, 81, 83, 78, 0, 73, 75, 76, 77, 60, + 0, 57, 58, 135, 0, 133, 35, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 72, 0, 55, 0, + 0, 0, 132, 0, 0, 0, 100, 0, 0, 0, + 74, 67, 69, 64, 0, 62, 65, 66, 59, 146, + 151, 0, 149, 145, 143, 144, 0, 137, 139, 141, + 142, 140, 134, 109, 108, 111, 114, 0, 0, 0, + 0, 0, 0, 61, 0, 0, 0, 0, 0, 136, + 118, 0, 115, 116, 92, 94, 91, 89, 90, 0, + 85, 87, 88, 0, 0, 0, 0, 63, 0, 0, + 148, 0, 138, 0, 113, 0, 0, 0, 0, 80, + 82, 84, 68, 70, 147, 0, 150, 127, 129, 126, + 124, 125, 0, 120, 122, 123, 117, 0, 0, 86, + 155, 0, 153, 0, 0, 0, 119, 93, 96, 95, + 0, 0, 152, 0, 0, 121, 164, 0, 0, 0, + 169, 0, 157, 159, 160, 161, 162, 163, 154, 128, + 130, 0, 0, 0, 0, 0, 0, 156, 0, 166, + 167, 168, 0, 158, 165, 170 }; const signed char AgentParser::yypgoto_[] = { - -75, -75, -75, -75, -75, -75, -75, -75, -20, -74, - -75, -19, -75, -75, -75, -75, -75, -75, -27, -75, - -75, -75, -75, 69, 87, -75, -75, -75, -26, -75, - -25, -75, -75, -75, -75, -75, 39, -75, -75, 7, - -75, -75, -75, -75, -75, -75, -75, 47, -75, -75, - -75, -75, -75, -75, -69, -23, -75, -75, -75, -75, - -75, -75, -75, -75, 43, -75, -75, 5, -75, -75, - -75, -75, -75, -75, -75, -75, -39, -75, -75, -56, - -75, -75, -75, -75, -75, -75, -75 + -80, -80, -80, -80, -80, -80, -80, -80, -17, -79, + -80, -19, -80, -80, -80, -80, -80, -80, -27, -80, + -80, -80, -80, 102, 120, -80, -80, -80, -25, -80, + -24, -80, -80, -80, -80, -80, 52, -80, -80, 11, + -80, -80, -80, -80, -80, -80, -80, 60, -80, -80, + -80, -80, -80, -80, -58, -22, -80, -80, -80, -80, + -80, -80, -80, -80, 64, -80, -80, -80, -80, -80, + -80, -80, -80, -80, -18, -80, -80, -47, -80, -80, + -80, -80, -80, -80, -80, 58, -80, -80, 15, -80, + -80, -80, -80, -80, -80, -80, -80, -45, -80, -80, + -72, -80, -80, -80, -80, -80, -80, -80 }; const short AgentParser::yydefgoto_[] = { -1, 4, 5, 6, 7, 23, 27, 16, 17, 18, - 25, 87, 32, 33, 19, 24, 29, 30, 163, 21, - 26, 35, 59, 45, 46, 47, 61, 48, 164, 63, - 165, 64, 51, 66, 104, 105, 106, 116, 129, 130, - 131, 151, 132, 152, 52, 89, 98, 99, 100, 111, - 101, 112, 102, 113, 166, 167, 168, 180, 169, 181, - 199, 53, 67, 108, 109, 119, 141, 142, 143, 155, - 144, 145, 158, 146, 156, 195, 196, 200, 208, 209, - 210, 216, 211, 212, 213, 214, 220 + 25, 91, 32, 33, 19, 24, 29, 30, 196, 21, + 26, 35, 61, 46, 47, 48, 63, 49, 197, 65, + 198, 66, 52, 69, 120, 121, 122, 137, 154, 155, + 156, 180, 157, 181, 53, 94, 114, 115, 116, 132, + 117, 133, 118, 134, 199, 200, 201, 216, 202, 217, + 249, 54, 67, 105, 106, 107, 127, 174, 108, 128, + 109, 129, 191, 192, 193, 213, 232, 233, 234, 243, + 235, 244, 55, 70, 124, 125, 140, 166, 167, 168, + 184, 169, 170, 187, 171, 185, 241, 242, 250, 261, + 262, 263, 271, 264, 265, 266, 267, 275 }; - const unsigned char + const short AgentParser::yytable_[] = { - 44, 49, 50, 86, 28, 9, 8, 10, 20, 11, - 36, 37, 38, 39, 40, 126, 127, 1, 2, 3, - 69, 41, 38, 39, 42, 70, 126, 127, 161, 162, - 43, 94, 95, 96, 22, 71, 72, 43, 12, 13, - 14, 15, 44, 49, 50, 69, 31, 43, 55, 114, - 110, 38, 39, 43, 115, 153, 159, 44, 49, 50, - 154, 160, 97, 92, 134, 135, 182, 136, 137, 203, - 34, 183, 204, 205, 206, 207, 43, 182, 182, 221, - 170, 171, 184, 185, 222, 120, 54, 97, 121, 128, - 56, 57, 138, 139, 140, 201, 58, 60, 202, 86, - 62, 65, 68, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 83, 224, 118, 85, 84, 10, 90, 88, - 91, 103, 186, 107, 117, 122, 123, 124, 188, 157, - 172, 148, 138, 139, 140, 149, 150, 173, 175, 176, - 178, 198, 189, 191, 177, 192, 217, 194, 218, 219, - 190, 223, 227, 93, 187, 197, 82, 133, 225, 193, - 174, 125, 215, 147, 179, 228, 226, 0, 229, 230 + 45, 90, 50, 51, 38, 39, 8, 28, 31, 9, + 20, 10, 22, 11, 38, 39, 141, 194, 195, 142, + 56, 36, 37, 38, 39, 40, 72, 251, 151, 152, + 252, 73, 41, 57, 159, 160, 44, 161, 162, 42, + 74, 75, 43, 44, 34, 45, 44, 50, 51, 12, + 13, 14, 15, 38, 39, 44, 99, 72, 100, 101, + 130, 45, 126, 50, 51, 131, 102, 113, 103, 104, + 97, 58, 38, 39, 110, 111, 112, 59, 256, 227, + 228, 257, 258, 259, 260, 44, 135, 182, 188, 218, + 218, 136, 183, 189, 219, 220, 44, 218, 1, 2, + 3, 60, 221, 102, 44, 103, 104, 245, 113, 276, + 153, 62, 246, 163, 277, 164, 165, 64, 151, 152, + 203, 204, 68, 71, 76, 77, 78, 90, 79, 80, + 81, 82, 173, 84, 85, 83, 87, 89, 88, 95, + 10, 92, 93, 96, 119, 139, 123, 138, 143, 144, + 145, 147, 148, 149, 175, 176, 210, 215, 177, 178, + 179, 163, 186, 164, 165, 205, 190, 206, 208, 209, + 211, 248, 237, 214, 225, 238, 253, 240, 254, 272, + 273, 222, 274, 278, 282, 224, 229, 223, 230, 231, + 98, 158, 86, 207, 146, 150, 239, 236, 255, 172, + 226, 247, 269, 212, 283, 270, 268, 0, 0, 0, + 279, 0, 0, 0, 0, 0, 0, 0, 229, 280, + 230, 231, 0, 281, 0, 0, 284, 285 }; const short AgentParser::yycheck_[] = { - 27, 27, 27, 77, 24, 5, 0, 7, 7, 9, - 11, 12, 13, 14, 15, 23, 24, 35, 36, 37, - 3, 22, 13, 14, 25, 8, 23, 24, 19, 20, - 38, 16, 17, 18, 7, 55, 56, 38, 38, 39, - 40, 41, 69, 69, 69, 3, 38, 38, 3, 3, - 8, 13, 14, 38, 8, 3, 3, 84, 84, 84, - 8, 8, 89, 83, 26, 27, 3, 29, 30, 28, - 10, 8, 31, 32, 33, 34, 38, 3, 3, 3, - 149, 150, 8, 8, 8, 3, 6, 114, 6, 116, - 4, 8, 119, 119, 119, 3, 3, 8, 6, 173, - 4, 4, 4, 38, 4, 4, 39, 4, 4, 7, - 4, 4, 4, 41, 3, 38, 7, 7, 5, 38, - 5, 7, 38, 7, 6, 4, 4, 4, 38, 4, - 4, 7, 159, 159, 159, 7, 7, 4, 4, 4, - 4, 21, 5, 4, 39, 4, 4, 7, 4, 4, - 38, 4, 4, 84, 173, 38, 69, 118, 39, 182, - 153, 114, 201, 120, 159, 221, 39, -1, 38, 38 + 27, 80, 27, 27, 13, 14, 0, 24, 45, 5, + 7, 7, 7, 9, 13, 14, 3, 26, 27, 6, + 6, 11, 12, 13, 14, 15, 3, 3, 30, 31, + 6, 8, 22, 3, 33, 34, 45, 36, 37, 29, + 57, 58, 32, 45, 10, 72, 45, 72, 72, 45, + 46, 47, 48, 13, 14, 45, 16, 3, 18, 19, + 3, 88, 8, 88, 88, 8, 93, 94, 93, 93, + 87, 4, 13, 14, 23, 24, 25, 8, 35, 20, + 21, 38, 39, 40, 41, 45, 3, 3, 3, 3, + 3, 8, 8, 8, 8, 8, 45, 3, 42, 43, + 44, 3, 8, 130, 45, 130, 130, 3, 135, 3, + 137, 8, 8, 140, 8, 140, 140, 4, 30, 31, + 178, 179, 4, 4, 45, 4, 4, 206, 46, 4, + 4, 4, 17, 4, 4, 7, 4, 45, 7, 5, + 7, 45, 7, 5, 7, 3, 7, 6, 4, 4, + 4, 4, 4, 4, 45, 5, 46, 3, 7, 7, + 7, 188, 4, 188, 188, 4, 7, 4, 4, 4, + 4, 28, 4, 6, 5, 4, 4, 7, 4, 4, + 4, 45, 4, 4, 4, 45, 213, 206, 213, 213, + 88, 139, 72, 182, 130, 135, 218, 215, 245, 141, + 45, 45, 45, 188, 276, 45, 251, -1, -1, -1, + 48, -1, -1, -1, -1, -1, -1, -1, 245, 46, + 245, 245, -1, 46, -1, -1, 45, 45 }; const unsigned char AgentParser::yystos_[] = { - 0, 35, 36, 37, 43, 44, 45, 46, 0, 5, - 7, 9, 38, 39, 40, 41, 49, 50, 51, 56, - 7, 61, 7, 47, 57, 52, 62, 48, 50, 58, - 59, 38, 54, 55, 10, 63, 11, 12, 13, 14, - 15, 22, 25, 38, 60, 65, 66, 67, 69, 70, - 72, 74, 86, 103, 6, 3, 4, 8, 3, 64, - 8, 68, 4, 71, 73, 4, 75, 104, 4, 3, - 8, 50, 50, 38, 4, 4, 39, 4, 4, 7, - 4, 4, 66, 4, 7, 38, 51, 53, 38, 87, - 5, 5, 50, 65, 16, 17, 18, 60, 88, 89, - 90, 92, 94, 7, 76, 77, 78, 7, 105, 106, - 8, 91, 93, 95, 3, 8, 79, 6, 3, 107, - 3, 6, 4, 4, 4, 89, 23, 24, 60, 80, - 81, 82, 84, 78, 26, 27, 29, 30, 60, 70, - 72, 108, 109, 110, 112, 113, 115, 106, 7, 7, - 7, 83, 85, 3, 8, 111, 116, 4, 114, 3, - 8, 19, 20, 60, 70, 72, 96, 97, 98, 100, - 96, 96, 4, 4, 81, 4, 4, 39, 4, 109, - 99, 101, 3, 8, 8, 8, 38, 53, 38, 5, - 38, 4, 4, 97, 7, 117, 118, 38, 21, 102, - 119, 3, 6, 28, 31, 32, 33, 34, 120, 121, - 122, 124, 125, 126, 127, 118, 123, 4, 4, 4, - 128, 3, 8, 4, 41, 39, 39, 4, 121, 38, - 38 + 0, 42, 43, 44, 50, 51, 52, 53, 0, 5, + 7, 9, 45, 46, 47, 48, 56, 57, 58, 63, + 7, 68, 7, 54, 64, 59, 69, 55, 57, 65, + 66, 45, 61, 62, 10, 70, 11, 12, 13, 14, + 15, 22, 29, 32, 45, 67, 72, 73, 74, 76, + 77, 79, 81, 93, 110, 131, 6, 3, 4, 8, + 3, 71, 8, 75, 4, 78, 80, 111, 4, 82, + 132, 4, 3, 8, 57, 57, 45, 4, 4, 46, + 4, 4, 4, 7, 4, 4, 73, 4, 7, 45, + 58, 60, 45, 7, 94, 5, 5, 57, 72, 16, + 18, 19, 67, 77, 79, 112, 113, 114, 117, 119, + 23, 24, 25, 67, 95, 96, 97, 99, 101, 7, + 83, 84, 85, 7, 133, 134, 8, 115, 118, 120, + 3, 8, 98, 100, 102, 3, 8, 86, 6, 3, + 135, 3, 6, 4, 4, 4, 113, 4, 4, 4, + 96, 30, 31, 67, 87, 88, 89, 91, 85, 33, + 34, 36, 37, 67, 77, 79, 136, 137, 138, 140, + 141, 143, 134, 17, 116, 45, 5, 7, 7, 7, + 90, 92, 3, 8, 139, 144, 4, 142, 3, 8, + 7, 121, 122, 123, 26, 27, 67, 77, 79, 103, + 104, 105, 107, 103, 103, 4, 4, 88, 4, 4, + 46, 4, 137, 124, 6, 3, 106, 108, 3, 8, + 8, 8, 45, 60, 45, 5, 45, 20, 21, 67, + 77, 79, 125, 126, 127, 129, 123, 4, 4, 104, + 7, 145, 146, 128, 130, 3, 8, 45, 28, 109, + 147, 3, 6, 4, 4, 126, 35, 38, 39, 40, + 41, 148, 149, 150, 152, 153, 154, 155, 146, 45, + 45, 151, 4, 4, 4, 156, 3, 8, 4, 48, + 46, 46, 4, 149, 45, 45 }; const unsigned char AgentParser::yyr1_[] = { - 0, 42, 44, 43, 45, 43, 46, 43, 48, 47, - 49, 50, 50, 50, 50, 50, 50, 50, 52, 51, - 53, 54, 54, 55, 55, 57, 56, 58, 58, 59, - 59, 60, 62, 61, 64, 63, 65, 65, 66, 66, - 66, 66, 66, 66, 66, 66, 68, 67, 69, 71, - 70, 73, 72, 75, 74, 76, 76, 77, 77, 79, - 78, 80, 80, 80, 81, 81, 83, 82, 85, 84, - 87, 86, 88, 88, 89, 89, 89, 89, 91, 90, - 93, 92, 95, 94, 96, 96, 97, 97, 97, 97, - 97, 99, 98, 101, 100, 102, 104, 103, 105, 105, - 107, 106, 108, 108, 109, 109, 109, 109, 109, 109, - 109, 111, 110, 112, 114, 113, 116, 115, 117, 117, - 119, 118, 120, 120, 121, 121, 121, 121, 121, 123, - 122, 124, 125, 126, 128, 127 + 0, 49, 51, 50, 52, 50, 53, 50, 55, 54, + 56, 57, 57, 57, 57, 57, 57, 57, 59, 58, + 60, 61, 61, 62, 62, 64, 63, 65, 65, 66, + 66, 67, 69, 68, 71, 70, 72, 72, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 75, 74, 76, + 78, 77, 80, 79, 82, 81, 83, 83, 84, 84, + 86, 85, 87, 87, 87, 88, 88, 90, 89, 92, + 91, 94, 93, 95, 95, 96, 96, 96, 96, 98, + 97, 100, 99, 102, 101, 103, 103, 104, 104, 104, + 104, 104, 106, 105, 108, 107, 109, 111, 110, 112, + 112, 113, 113, 113, 113, 113, 113, 115, 114, 116, + 118, 117, 120, 119, 121, 121, 122, 122, 124, 123, + 125, 125, 126, 126, 126, 126, 126, 128, 127, 130, + 129, 132, 131, 133, 133, 135, 134, 136, 136, 137, + 137, 137, 137, 137, 137, 137, 139, 138, 140, 142, + 141, 144, 143, 145, 145, 147, 146, 148, 148, 149, + 149, 149, 149, 149, 151, 150, 152, 153, 154, 156, + 155 }; const signed char @@ -1954,16 +2143,20 @@ namespace isc { namespace agent { 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, 0, 1, 3, 5, 0, 4, 0, 1, 1, 3, 2, 0, 4, 0, 6, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, + 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, + 0, 4, 1, 3, 1, 1, 1, 0, 4, 0, + 4, 0, 6, 1, 3, 1, 1, 1, 1, 0, + 6, 0, 6, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 1, 0, 6, 1, + 3, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, + 1, 3, 1, 1, 1, 1, 1, 0, 4, 0, + 4, 0, 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, 0, - 4, 0, 4, 0, 6, 0, 1, 1, 3, 0, - 4, 1, 3, 1, 1, 1, 0, 4, 0, 4, - 0, 6, 1, 3, 1, 1, 1, 1, 0, 6, - 0, 6, 0, 6, 1, 3, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 1, 0, 6, 1, 3, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 3, 0, 4, 0, 6, 1, 3, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 0, - 4, 3, 3, 3, 0, 4 + 4, 0, 6, 1, 3, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 0, 4, 3, 3, 3, 0, + 4 }; @@ -1976,12 +2169,14 @@ namespace isc { namespace agent { "\"end of file\"", "error", "\"invalid token\"", "\",\"", "\":\"", "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Control-agent\"", "\"http-host\"", "\"http-port\"", "\"user-context\"", "\"comment\"", - "\"control-sockets\"", "\"dhcp4\"", "\"dhcp6\"", "\"d2\"", - "\"socket-name\"", "\"socket-type\"", "\"unix\"", "\"hooks-libraries\"", - "\"library\"", "\"parameters\"", "\"loggers\"", "\"name\"", - "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"", - "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"pattern\"", "START_JSON", - "START_AGENT", "START_SUB_AGENT", "\"constant string\"", "\"integer\"", + "\"authentication\"", "\"type\"", "\"basic\"", "\"realm\"", + "\"clients\"", "\"user\"", "\"password\"", "\"control-sockets\"", + "\"dhcp4\"", "\"dhcp6\"", "\"d2\"", "\"socket-name\"", "\"socket-type\"", + "\"unix\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"", + "\"loggers\"", "\"name\"", "\"output_options\"", "\"output\"", + "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", + "\"maxver\"", "\"pattern\"", "START_JSON", "START_AGENT", + "START_SUB_AGENT", "\"constant string\"", "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "sub_agent", "$@4", "json", "value", "map", "$@5", "map_value", "map_content", "not_empty_map", "list_generic", "$@6", "list_content", @@ -1995,12 +2190,16 @@ namespace isc { namespace agent { "dhcp4_server_socket", "$@17", "dhcp6_server_socket", "$@18", "d2_server_socket", "$@19", "control_socket_params", "control_socket_param", "socket_name", "$@20", "socket_type", "$@21", - "socket_type_value", "loggers", "$@22", "loggers_entries", - "logger_entry", "$@23", "logger_params", "logger_param", "name", "$@24", - "debuglevel", "severity", "$@25", "output_options_list", "$@26", - "output_options_list_content", "output_entry", "$@27", - "output_params_list", "output_params", "output", "$@28", "flush", - "maxsize", "maxver", "pattern", "$@29", YY_NULLPTR + "socket_type_value", "authentication", "$@22", "auth_params", + "auth_param", "auth_type", "$@23", "auth_type_value", "realm", "$@24", + "clients", "$@25", "clients_list", "not_empty_clients_list", + "basic_auth", "$@26", "clients_params", "clients_param", "user", "$@27", + "password", "$@28", "loggers", "$@29", "loggers_entries", "logger_entry", + "$@30", "logger_params", "logger_param", "name", "$@31", "debuglevel", + "severity", "$@32", "output_options_list", "$@33", + "output_options_list_content", "output_entry", "$@34", + "output_params_list", "output_params", "output", "$@35", "flush", + "maxsize", "maxver", "pattern", "$@36", YY_NULLPTR }; #endif @@ -2009,20 +2208,24 @@ namespace isc { namespace agent { const short AgentParser::yyrline_[] = { - 0, 110, 110, 110, 111, 111, 112, 112, 120, 120, - 131, 137, 138, 139, 140, 141, 142, 143, 147, 147, - 158, 163, 164, 172, 177, 185, 185, 191, 192, 195, - 199, 212, 220, 220, 232, 232, 250, 251, 256, 257, - 258, 259, 260, 261, 262, 263, 266, 266, 275, 281, - 281, 306, 306, 334, 334, 345, 346, 349, 350, 353, - 353, 361, 362, 363, 366, 367, 370, 370, 379, 379, - 390, 390, 404, 405, 410, 411, 412, 413, 417, 417, - 429, 429, 441, 441, 453, 454, 458, 459, 460, 461, - 462, 466, 466, 476, 476, 485, 492, 492, 505, 506, - 510, 510, 518, 519, 522, 523, 524, 525, 526, 527, - 528, 531, 531, 540, 546, 546, 555, 555, 566, 567, - 570, 570, 578, 579, 582, 583, 584, 585, 586, 589, - 589, 598, 604, 610, 616, 616 + 0, 119, 119, 119, 120, 120, 121, 121, 129, 129, + 140, 146, 147, 148, 149, 150, 151, 152, 156, 156, + 167, 172, 173, 181, 186, 194, 194, 200, 201, 204, + 208, 221, 229, 229, 241, 241, 259, 260, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 276, 276, 285, + 291, 291, 316, 316, 344, 344, 355, 356, 359, 360, + 363, 363, 371, 372, 373, 376, 377, 380, 380, 389, + 389, 400, 400, 414, 415, 420, 421, 422, 423, 427, + 427, 439, 439, 451, 451, 463, 464, 468, 469, 470, + 471, 472, 476, 476, 486, 486, 495, 502, 502, 515, + 516, 519, 520, 521, 522, 523, 524, 527, 527, 535, + 538, 538, 547, 547, 558, 559, 562, 563, 566, 566, + 574, 575, 578, 579, 580, 581, 582, 585, 585, 594, + 594, 607, 607, 620, 621, 625, 625, 633, 634, 637, + 638, 639, 640, 641, 642, 643, 646, 646, 655, 661, + 661, 670, 670, 681, 682, 685, 685, 693, 694, 697, + 698, 699, 700, 701, 704, 704, 713, 719, 725, 731, + 731 }; void @@ -2055,9 +2258,9 @@ namespace isc { namespace agent { #line 14 "agent_parser.yy" } } // isc::agent -#line 2059 "agent_parser.cc" +#line 2262 "agent_parser.cc" -#line 625 "agent_parser.yy" +#line 740 "agent_parser.yy" void diff --git a/src/bin/agent/agent_parser.h b/src/bin/agent/agent_parser.h index 40108ac05f..ede9b1177c 100644 --- a/src/bin/agent/agent_parser.h +++ b/src/bin/agent/agent_parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -416,6 +416,7 @@ namespace isc { namespace agent { // value // map_value // socket_type_value + // auth_type_value char dummy1[sizeof (ElementPtr)]; // "boolean" @@ -492,33 +493,40 @@ namespace isc { namespace agent { TOKEN_HTTP_PORT = 267, // "http-port" TOKEN_USER_CONTEXT = 268, // "user-context" TOKEN_COMMENT = 269, // "comment" - TOKEN_CONTROL_SOCKETS = 270, // "control-sockets" - TOKEN_DHCP4_SERVER = 271, // "dhcp4" - TOKEN_DHCP6_SERVER = 272, // "dhcp6" - TOKEN_D2_SERVER = 273, // "d2" - TOKEN_SOCKET_NAME = 274, // "socket-name" - TOKEN_SOCKET_TYPE = 275, // "socket-type" - TOKEN_UNIX = 276, // "unix" - TOKEN_HOOKS_LIBRARIES = 277, // "hooks-libraries" - TOKEN_LIBRARY = 278, // "library" - TOKEN_PARAMETERS = 279, // "parameters" - TOKEN_LOGGERS = 280, // "loggers" - TOKEN_NAME = 281, // "name" - TOKEN_OUTPUT_OPTIONS = 282, // "output_options" - TOKEN_OUTPUT = 283, // "output" - TOKEN_DEBUGLEVEL = 284, // "debuglevel" - TOKEN_SEVERITY = 285, // "severity" - TOKEN_FLUSH = 286, // "flush" - TOKEN_MAXSIZE = 287, // "maxsize" - TOKEN_MAXVER = 288, // "maxver" - TOKEN_PATTERN = 289, // "pattern" - TOKEN_START_JSON = 290, // START_JSON - TOKEN_START_AGENT = 291, // START_AGENT - TOKEN_START_SUB_AGENT = 292, // START_SUB_AGENT - TOKEN_STRING = 293, // "constant string" - TOKEN_INTEGER = 294, // "integer" - TOKEN_FLOAT = 295, // "floating point" - TOKEN_BOOLEAN = 296 // "boolean" + TOKEN_AUTHENTICATION = 270, // "authentication" + TOKEN_TYPE = 271, // "type" + TOKEN_BASIC = 272, // "basic" + TOKEN_REALM = 273, // "realm" + TOKEN_CLIENTS = 274, // "clients" + TOKEN_USER = 275, // "user" + TOKEN_PASSWORD = 276, // "password" + TOKEN_CONTROL_SOCKETS = 277, // "control-sockets" + TOKEN_DHCP4_SERVER = 278, // "dhcp4" + TOKEN_DHCP6_SERVER = 279, // "dhcp6" + TOKEN_D2_SERVER = 280, // "d2" + TOKEN_SOCKET_NAME = 281, // "socket-name" + TOKEN_SOCKET_TYPE = 282, // "socket-type" + TOKEN_UNIX = 283, // "unix" + TOKEN_HOOKS_LIBRARIES = 284, // "hooks-libraries" + TOKEN_LIBRARY = 285, // "library" + TOKEN_PARAMETERS = 286, // "parameters" + TOKEN_LOGGERS = 287, // "loggers" + TOKEN_NAME = 288, // "name" + TOKEN_OUTPUT_OPTIONS = 289, // "output_options" + TOKEN_OUTPUT = 290, // "output" + TOKEN_DEBUGLEVEL = 291, // "debuglevel" + TOKEN_SEVERITY = 292, // "severity" + TOKEN_FLUSH = 293, // "flush" + TOKEN_MAXSIZE = 294, // "maxsize" + TOKEN_MAXVER = 295, // "maxver" + TOKEN_PATTERN = 296, // "pattern" + TOKEN_START_JSON = 297, // START_JSON + TOKEN_START_AGENT = 298, // START_AGENT + TOKEN_START_SUB_AGENT = 299, // START_SUB_AGENT + TOKEN_STRING = 300, // "constant string" + TOKEN_INTEGER = 301, // "integer" + TOKEN_FLOAT = 302, // "floating point" + TOKEN_BOOLEAN = 303 // "boolean" }; /// Backward compatibility alias (Bison 3.6). typedef token_kind_type yytokentype; @@ -535,7 +543,7 @@ namespace isc { namespace agent { { enum symbol_kind_type { - YYNTOKENS = 42, ///< Number of tokens. + YYNTOKENS = 49, ///< Number of tokens. S_YYEMPTY = -2, S_YYEOF = 0, // "end of file" S_YYerror = 1, // error @@ -552,120 +560,148 @@ namespace isc { namespace agent { S_HTTP_PORT = 12, // "http-port" S_USER_CONTEXT = 13, // "user-context" S_COMMENT = 14, // "comment" - S_CONTROL_SOCKETS = 15, // "control-sockets" - S_DHCP4_SERVER = 16, // "dhcp4" - S_DHCP6_SERVER = 17, // "dhcp6" - S_D2_SERVER = 18, // "d2" - S_SOCKET_NAME = 19, // "socket-name" - S_SOCKET_TYPE = 20, // "socket-type" - S_UNIX = 21, // "unix" - S_HOOKS_LIBRARIES = 22, // "hooks-libraries" - S_LIBRARY = 23, // "library" - S_PARAMETERS = 24, // "parameters" - S_LOGGERS = 25, // "loggers" - S_NAME = 26, // "name" - S_OUTPUT_OPTIONS = 27, // "output_options" - S_OUTPUT = 28, // "output" - S_DEBUGLEVEL = 29, // "debuglevel" - S_SEVERITY = 30, // "severity" - S_FLUSH = 31, // "flush" - S_MAXSIZE = 32, // "maxsize" - S_MAXVER = 33, // "maxver" - S_PATTERN = 34, // "pattern" - S_START_JSON = 35, // START_JSON - S_START_AGENT = 36, // START_AGENT - S_START_SUB_AGENT = 37, // START_SUB_AGENT - S_STRING = 38, // "constant string" - S_INTEGER = 39, // "integer" - S_FLOAT = 40, // "floating point" - S_BOOLEAN = 41, // "boolean" - S_YYACCEPT = 42, // $accept - S_start = 43, // start - S_44_1 = 44, // $@1 - S_45_2 = 45, // $@2 - S_46_3 = 46, // $@3 - S_sub_agent = 47, // sub_agent - S_48_4 = 48, // $@4 - S_json = 49, // json - S_value = 50, // value - S_map = 51, // map - S_52_5 = 52, // $@5 - S_map_value = 53, // map_value - S_map_content = 54, // map_content - S_not_empty_map = 55, // not_empty_map - S_list_generic = 56, // list_generic - S_57_6 = 57, // $@6 - S_list_content = 58, // list_content - S_not_empty_list = 59, // not_empty_list - S_unknown_map_entry = 60, // unknown_map_entry - S_agent_syntax_map = 61, // agent_syntax_map - S_62_7 = 62, // $@7 - S_global_object = 63, // global_object - S_64_8 = 64, // $@8 - S_global_params = 65, // global_params - S_global_param = 66, // global_param - S_http_host = 67, // http_host - S_68_9 = 68, // $@9 - S_http_port = 69, // http_port - S_user_context = 70, // user_context - S_71_10 = 71, // $@10 - S_comment = 72, // comment - S_73_11 = 73, // $@11 - S_hooks_libraries = 74, // hooks_libraries - S_75_12 = 75, // $@12 - S_hooks_libraries_list = 76, // hooks_libraries_list - S_not_empty_hooks_libraries_list = 77, // not_empty_hooks_libraries_list - S_hooks_library = 78, // hooks_library - S_79_13 = 79, // $@13 - S_hooks_params = 80, // hooks_params - S_hooks_param = 81, // hooks_param - S_library = 82, // library - S_83_14 = 83, // $@14 - S_parameters = 84, // parameters - S_85_15 = 85, // $@15 - S_control_sockets = 86, // control_sockets - S_87_16 = 87, // $@16 - S_control_sockets_params = 88, // control_sockets_params - S_control_socket = 89, // control_socket - S_dhcp4_server_socket = 90, // dhcp4_server_socket - S_91_17 = 91, // $@17 - S_dhcp6_server_socket = 92, // dhcp6_server_socket - S_93_18 = 93, // $@18 - S_d2_server_socket = 94, // d2_server_socket - S_95_19 = 95, // $@19 - S_control_socket_params = 96, // control_socket_params - S_control_socket_param = 97, // control_socket_param - S_socket_name = 98, // socket_name - S_99_20 = 99, // $@20 - S_socket_type = 100, // socket_type - S_101_21 = 101, // $@21 - S_socket_type_value = 102, // socket_type_value - S_loggers = 103, // loggers - S_104_22 = 104, // $@22 - S_loggers_entries = 105, // loggers_entries - S_logger_entry = 106, // logger_entry - S_107_23 = 107, // $@23 - S_logger_params = 108, // logger_params - S_logger_param = 109, // logger_param - S_name = 110, // name - S_111_24 = 111, // $@24 - S_debuglevel = 112, // debuglevel - S_severity = 113, // severity - S_114_25 = 114, // $@25 - S_output_options_list = 115, // output_options_list - S_116_26 = 116, // $@26 - S_output_options_list_content = 117, // output_options_list_content - S_output_entry = 118, // output_entry - S_119_27 = 119, // $@27 - S_output_params_list = 120, // output_params_list - S_output_params = 121, // output_params - S_output = 122, // output - S_123_28 = 123, // $@28 - S_flush = 124, // flush - S_maxsize = 125, // maxsize - S_maxver = 126, // maxver - S_pattern = 127, // pattern - S_128_29 = 128 // $@29 + S_AUTHENTICATION = 15, // "authentication" + S_TYPE = 16, // "type" + S_BASIC = 17, // "basic" + S_REALM = 18, // "realm" + S_CLIENTS = 19, // "clients" + S_USER = 20, // "user" + S_PASSWORD = 21, // "password" + S_CONTROL_SOCKETS = 22, // "control-sockets" + S_DHCP4_SERVER = 23, // "dhcp4" + S_DHCP6_SERVER = 24, // "dhcp6" + S_D2_SERVER = 25, // "d2" + S_SOCKET_NAME = 26, // "socket-name" + S_SOCKET_TYPE = 27, // "socket-type" + S_UNIX = 28, // "unix" + S_HOOKS_LIBRARIES = 29, // "hooks-libraries" + S_LIBRARY = 30, // "library" + S_PARAMETERS = 31, // "parameters" + S_LOGGERS = 32, // "loggers" + S_NAME = 33, // "name" + S_OUTPUT_OPTIONS = 34, // "output_options" + S_OUTPUT = 35, // "output" + S_DEBUGLEVEL = 36, // "debuglevel" + S_SEVERITY = 37, // "severity" + S_FLUSH = 38, // "flush" + S_MAXSIZE = 39, // "maxsize" + S_MAXVER = 40, // "maxver" + S_PATTERN = 41, // "pattern" + S_START_JSON = 42, // START_JSON + S_START_AGENT = 43, // START_AGENT + S_START_SUB_AGENT = 44, // START_SUB_AGENT + S_STRING = 45, // "constant string" + S_INTEGER = 46, // "integer" + S_FLOAT = 47, // "floating point" + S_BOOLEAN = 48, // "boolean" + S_YYACCEPT = 49, // $accept + S_start = 50, // start + S_51_1 = 51, // $@1 + S_52_2 = 52, // $@2 + S_53_3 = 53, // $@3 + S_sub_agent = 54, // sub_agent + S_55_4 = 55, // $@4 + S_json = 56, // json + S_value = 57, // value + S_map = 58, // map + S_59_5 = 59, // $@5 + S_map_value = 60, // map_value + S_map_content = 61, // map_content + S_not_empty_map = 62, // not_empty_map + S_list_generic = 63, // list_generic + S_64_6 = 64, // $@6 + S_list_content = 65, // list_content + S_not_empty_list = 66, // not_empty_list + S_unknown_map_entry = 67, // unknown_map_entry + S_agent_syntax_map = 68, // agent_syntax_map + S_69_7 = 69, // $@7 + S_global_object = 70, // global_object + S_71_8 = 71, // $@8 + S_global_params = 72, // global_params + S_global_param = 73, // global_param + S_http_host = 74, // http_host + S_75_9 = 75, // $@9 + S_http_port = 76, // http_port + S_user_context = 77, // user_context + S_78_10 = 78, // $@10 + S_comment = 79, // comment + S_80_11 = 80, // $@11 + S_hooks_libraries = 81, // hooks_libraries + S_82_12 = 82, // $@12 + S_hooks_libraries_list = 83, // hooks_libraries_list + S_not_empty_hooks_libraries_list = 84, // not_empty_hooks_libraries_list + S_hooks_library = 85, // hooks_library + S_86_13 = 86, // $@13 + S_hooks_params = 87, // hooks_params + S_hooks_param = 88, // hooks_param + S_library = 89, // library + S_90_14 = 90, // $@14 + S_parameters = 91, // parameters + S_92_15 = 92, // $@15 + S_control_sockets = 93, // control_sockets + S_94_16 = 94, // $@16 + S_control_sockets_params = 95, // control_sockets_params + S_control_socket = 96, // control_socket + S_dhcp4_server_socket = 97, // dhcp4_server_socket + S_98_17 = 98, // $@17 + S_dhcp6_server_socket = 99, // dhcp6_server_socket + S_100_18 = 100, // $@18 + S_d2_server_socket = 101, // d2_server_socket + S_102_19 = 102, // $@19 + S_control_socket_params = 103, // control_socket_params + S_control_socket_param = 104, // control_socket_param + S_socket_name = 105, // socket_name + S_106_20 = 106, // $@20 + S_socket_type = 107, // socket_type + S_108_21 = 108, // $@21 + S_socket_type_value = 109, // socket_type_value + S_authentication = 110, // authentication + S_111_22 = 111, // $@22 + S_auth_params = 112, // auth_params + S_auth_param = 113, // auth_param + S_auth_type = 114, // auth_type + S_115_23 = 115, // $@23 + S_auth_type_value = 116, // auth_type_value + S_realm = 117, // realm + S_118_24 = 118, // $@24 + S_clients = 119, // clients + S_120_25 = 120, // $@25 + S_clients_list = 121, // clients_list + S_not_empty_clients_list = 122, // not_empty_clients_list + S_basic_auth = 123, // basic_auth + S_124_26 = 124, // $@26 + S_clients_params = 125, // clients_params + S_clients_param = 126, // clients_param + S_user = 127, // user + S_128_27 = 128, // $@27 + S_password = 129, // password + S_130_28 = 130, // $@28 + S_loggers = 131, // loggers + S_132_29 = 132, // $@29 + S_loggers_entries = 133, // loggers_entries + S_logger_entry = 134, // logger_entry + S_135_30 = 135, // $@30 + S_logger_params = 136, // logger_params + S_logger_param = 137, // logger_param + S_name = 138, // name + S_139_31 = 139, // $@31 + S_debuglevel = 140, // debuglevel + S_severity = 141, // severity + S_142_32 = 142, // $@32 + S_output_options_list = 143, // output_options_list + S_144_33 = 144, // $@33 + S_output_options_list_content = 145, // output_options_list_content + S_output_entry = 146, // output_entry + S_147_34 = 147, // $@34 + S_output_params_list = 148, // output_params_list + S_output_params = 149, // output_params + S_output = 150, // output + S_151_35 = 151, // $@35 + S_flush = 152, // flush + S_maxsize = 153, // maxsize + S_maxver = 154, // maxver + S_pattern = 155, // pattern + S_156_36 = 156 // $@36 }; }; @@ -705,6 +741,7 @@ namespace isc { namespace agent { case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (std::move (that.value)); break; @@ -837,6 +874,7 @@ switch (yykind) case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.template destroy< ElementPtr > (); break; @@ -946,13 +984,13 @@ switch (yykind) symbol_type (int tok, location_type l) : super_type(token_type (tok), std::move (l)) { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_AGENT_error || tok == token::TOKEN_AGENT_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_HTTP_HOST || tok == token::TOKEN_HTTP_PORT || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_CONTROL_SOCKETS || tok == token::TOKEN_DHCP4_SERVER || tok == token::TOKEN_DHCP6_SERVER || tok == token::TOKEN_D2_SERVER || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_UNIX || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_NAME || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_START_JSON || tok == token::TOKEN_START_AGENT || tok == token::TOKEN_START_SUB_AGENT); + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_AGENT_error || tok == token::TOKEN_AGENT_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_HTTP_HOST || tok == token::TOKEN_HTTP_PORT || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_AUTHENTICATION || tok == token::TOKEN_TYPE || tok == token::TOKEN_BASIC || tok == token::TOKEN_REALM || tok == token::TOKEN_CLIENTS || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_CONTROL_SOCKETS || tok == token::TOKEN_DHCP4_SERVER || tok == token::TOKEN_DHCP6_SERVER || tok == token::TOKEN_D2_SERVER || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_UNIX || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_NAME || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_START_JSON || tok == token::TOKEN_START_AGENT || tok == token::TOKEN_START_SUB_AGENT); } #else symbol_type (int tok, const location_type& l) : super_type(token_type (tok), l) { - YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_AGENT_error || tok == token::TOKEN_AGENT_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_HTTP_HOST || tok == token::TOKEN_HTTP_PORT || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_CONTROL_SOCKETS || tok == token::TOKEN_DHCP4_SERVER || tok == token::TOKEN_DHCP6_SERVER || tok == token::TOKEN_D2_SERVER || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_UNIX || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_NAME || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_START_JSON || tok == token::TOKEN_START_AGENT || tok == token::TOKEN_START_SUB_AGENT); + YY_ASSERT (tok == token::TOKEN_END || tok == token::TOKEN_AGENT_error || tok == token::TOKEN_AGENT_UNDEF || tok == token::TOKEN_COMMA || tok == token::TOKEN_COLON || tok == token::TOKEN_LSQUARE_BRACKET || tok == token::TOKEN_RSQUARE_BRACKET || tok == token::TOKEN_LCURLY_BRACKET || tok == token::TOKEN_RCURLY_BRACKET || tok == token::TOKEN_NULL_TYPE || tok == token::TOKEN_CONTROL_AGENT || tok == token::TOKEN_HTTP_HOST || tok == token::TOKEN_HTTP_PORT || tok == token::TOKEN_USER_CONTEXT || tok == token::TOKEN_COMMENT || tok == token::TOKEN_AUTHENTICATION || tok == token::TOKEN_TYPE || tok == token::TOKEN_BASIC || tok == token::TOKEN_REALM || tok == token::TOKEN_CLIENTS || tok == token::TOKEN_USER || tok == token::TOKEN_PASSWORD || tok == token::TOKEN_CONTROL_SOCKETS || tok == token::TOKEN_DHCP4_SERVER || tok == token::TOKEN_DHCP6_SERVER || tok == token::TOKEN_D2_SERVER || tok == token::TOKEN_SOCKET_NAME || tok == token::TOKEN_SOCKET_TYPE || tok == token::TOKEN_UNIX || tok == token::TOKEN_HOOKS_LIBRARIES || tok == token::TOKEN_LIBRARY || tok == token::TOKEN_PARAMETERS || tok == token::TOKEN_LOGGERS || tok == token::TOKEN_NAME || tok == token::TOKEN_OUTPUT_OPTIONS || tok == token::TOKEN_OUTPUT || tok == token::TOKEN_DEBUGLEVEL || tok == token::TOKEN_SEVERITY || tok == token::TOKEN_FLUSH || tok == token::TOKEN_MAXSIZE || tok == token::TOKEN_MAXVER || tok == token::TOKEN_PATTERN || tok == token::TOKEN_START_JSON || tok == token::TOKEN_START_AGENT || tok == token::TOKEN_START_SUB_AGENT); } #endif #if 201103L <= YY_CPLUSPLUS @@ -1280,6 +1318,111 @@ switch (yykind) return symbol_type (token::TOKEN_COMMENT, l); } #endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_AUTHENTICATION (location_type l) + { + return symbol_type (token::TOKEN_AUTHENTICATION, std::move (l)); + } +#else + static + symbol_type + make_AUTHENTICATION (const location_type& l) + { + return symbol_type (token::TOKEN_AUTHENTICATION, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TYPE (location_type l) + { + return symbol_type (token::TOKEN_TYPE, std::move (l)); + } +#else + static + symbol_type + make_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_TYPE, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_BASIC (location_type l) + { + return symbol_type (token::TOKEN_BASIC, std::move (l)); + } +#else + static + symbol_type + make_BASIC (const location_type& l) + { + return symbol_type (token::TOKEN_BASIC, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_REALM (location_type l) + { + return symbol_type (token::TOKEN_REALM, std::move (l)); + } +#else + static + symbol_type + make_REALM (const location_type& l) + { + return symbol_type (token::TOKEN_REALM, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CLIENTS (location_type l) + { + return symbol_type (token::TOKEN_CLIENTS, std::move (l)); + } +#else + static + symbol_type + make_CLIENTS (const location_type& l) + { + return symbol_type (token::TOKEN_CLIENTS, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_USER (location_type l) + { + return symbol_type (token::TOKEN_USER, std::move (l)); + } +#else + static + symbol_type + make_USER (const location_type& l) + { + return symbol_type (token::TOKEN_USER, l); + } +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_PASSWORD (location_type l) + { + return symbol_type (token::TOKEN_PASSWORD, std::move (l)); + } +#else + static + symbol_type + make_PASSWORD (const location_type& l) + { + return symbol_type (token::TOKEN_PASSWORD, l); + } +#endif #if 201103L <= YY_CPLUSPLUS static symbol_type @@ -1715,7 +1858,7 @@ switch (yykind) /// Stored state numbers (used for stacks). - typedef unsigned char state_type; + typedef short state_type; /// The arguments of the error message. int yy_syntax_error_arguments_ (const context& yyctx, @@ -1771,7 +1914,7 @@ switch (yykind) // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If // positive, shift that token. If negative, reduce the rule whose // number is the opposite. If YYTABLE_NINF, syntax error. - static const unsigned char yytable_[]; + static const short yytable_[]; static const short yycheck_[]; @@ -2015,8 +2158,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 169, ///< Last index in yytable_. - yynnts_ = 87, ///< Number of nonterminal symbols. + yylast_ = 227, ///< Last index in yytable_. + yynnts_ = 108, ///< Number of nonterminal symbols. yyfinal_ = 8 ///< Termination state number. }; @@ -2065,10 +2208,11 @@ switch (yykind) 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41 + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48 }; // Last valid token kind. - const int code_max = 296; + const int code_max = 303; if (t <= 0) return symbol_kind::S_YYEOF; @@ -2090,6 +2234,7 @@ switch (yykind) case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; @@ -2141,6 +2286,7 @@ switch (yykind) case symbol_kind::S_value: // value case symbol_kind::S_map_value: // map_value case symbol_kind::S_socket_type_value: // socket_type_value + case symbol_kind::S_auth_type_value: // auth_type_value value.move< ElementPtr > (YY_MOVE (s.value)); break; @@ -2223,7 +2369,7 @@ switch (yykind) #line 14 "agent_parser.yy" } } // isc::agent -#line 2227 "agent_parser.h" +#line 2373 "agent_parser.h" diff --git a/src/bin/agent/location.hh b/src/bin/agent/location.hh index f46a19682a..cc2a7a53d5 100644 --- a/src/bin/agent/location.hh +++ b/src/bin/agent/location.hh @@ -1,4 +1,4 @@ -// Generated 202009132003 +// Generated 202009171327 // A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ diff --git a/src/bin/agent/position.hh b/src/bin/agent/position.hh index 62bce2b799..10b5cf2539 100644 --- a/src/bin/agent/position.hh +++ b/src/bin/agent/position.hh @@ -1,4 +1,4 @@ -// Generated 202009132003 +// Generated 202009171327 // A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it diff --git a/src/bin/agent/stack.hh b/src/bin/agent/stack.hh index 48f2900a33..ba26efcb3f 100644 --- a/src/bin/agent/stack.hh +++ b/src/bin/agent/stack.hh @@ -1,4 +1,4 @@ -// Generated 202009132003 +// Generated 202009171327 // A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it diff --git a/src/bin/d2/d2_parser.cc b/src/bin/d2/d2_parser.cc index 308c12cab9..fb7f27f491 100644 --- a/src/bin/d2/d2_parser.cc +++ b/src/bin/d2/d2_parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ diff --git a/src/bin/d2/d2_parser.h b/src/bin/d2/d2_parser.h index 5a7e4182c4..349fafd3f2 100644 --- a/src/bin/d2/d2_parser.h +++ b/src/bin/d2/d2_parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ diff --git a/src/bin/d2/location.hh b/src/bin/d2/location.hh index d2459e1a08..6dd82481b3 100644 --- a/src/bin/d2/location.hh +++ b/src/bin/d2/location.hh @@ -1,5 +1,5 @@ -// Generated 202009051557 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171327 +// A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ diff --git a/src/bin/d2/position.hh b/src/bin/d2/position.hh index 335c0920d4..10b5cf2539 100644 --- a/src/bin/d2/position.hh +++ b/src/bin/d2/position.hh @@ -1,5 +1,5 @@ -// Generated 202009051557 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171327 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/d2/stack.hh b/src/bin/d2/stack.hh index fe52c385c2..ba26efcb3f 100644 --- a/src/bin/d2/stack.hh +++ b/src/bin/d2/stack.hh @@ -1,5 +1,5 @@ -// Generated 202009051557 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171327 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index 7737cda319..47187029d4 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index 4c28f79fde..c566476d67 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index f35e6121ef..c4c2b1730a 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,5 +1,5 @@ -// Generated 202009051355 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171326 +// A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index 97948727f7..326d89ed3e 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,5 +1,5 @@ -// Generated 202009051355 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171326 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/dhcp4/stack.hh b/src/bin/dhcp4/stack.hh index ee3c3d6d22..dae87be1a5 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,5 +1,5 @@ -// Generated 202009051355 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171326 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 5e26b81c7a..76e9a97e0e 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index c5f15f3158..add461fa96 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index e59dc57d9a..39f94b2c95 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,5 +1,5 @@ -// Generated 202009052011 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171326 +// A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index fc719a17a6..326d89ed3e 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,5 +1,5 @@ -// Generated 202009052011 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171326 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/dhcp6/stack.hh b/src/bin/dhcp6/stack.hh index 3ebfa38860..dae87be1a5 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,5 +1,5 @@ -// Generated 202009052011 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171326 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. diff --git a/src/bin/netconf/location.hh b/src/bin/netconf/location.hh index c330cbecfa..24dabec2cb 100644 --- a/src/bin/netconf/location.hh +++ b/src/bin/netconf/location.hh @@ -1,5 +1,5 @@ -// Generated 202009051557 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171327 +// A Bison parser, made by GNU Bison 3.7.2. // Locations for Bison parsers in C++ diff --git a/src/bin/netconf/netconf_parser.cc b/src/bin/netconf/netconf_parser.cc index eacb4190c7..ae29192d66 100644 --- a/src/bin/netconf/netconf_parser.cc +++ b/src/bin/netconf/netconf_parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton implementation for Bison LALR(1) parsers in C++ diff --git a/src/bin/netconf/netconf_parser.h b/src/bin/netconf/netconf_parser.h index 14d81ab08c..2c6af30194 100644 --- a/src/bin/netconf/netconf_parser.h +++ b/src/bin/netconf/netconf_parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.7.1. +// A Bison parser, made by GNU Bison 3.7.2. // Skeleton interface for Bison LALR(1) parsers in C++ diff --git a/src/bin/netconf/position.hh b/src/bin/netconf/position.hh index 335c0920d4..10b5cf2539 100644 --- a/src/bin/netconf/position.hh +++ b/src/bin/netconf/position.hh @@ -1,5 +1,5 @@ -// Generated 202009051557 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171327 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined in "location.hh". diff --git a/src/bin/netconf/stack.hh b/src/bin/netconf/stack.hh index fe52c385c2..ba26efcb3f 100644 --- a/src/bin/netconf/stack.hh +++ b/src/bin/netconf/stack.hh @@ -1,5 +1,5 @@ -// Generated 202009051557 -// A Bison parser, made by GNU Bison 3.7.1. +// Generated 202009171327 +// A Bison parser, made by GNU Bison 3.7.2. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself.