From: Francis Dupont Date: Wed, 2 Sep 2020 15:33:09 +0000 (+0000) Subject: [1197] regen bison X-Git-Tag: Kea-1.9.0~170 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67d5f9ac0f8bf4b8710fa90a801fe8f264781007;p=thirdparty%2Fkea.git [1197] regen bison --- diff --git a/src/bin/agent/agent_parser.cc b/src/bin/agent/agent_parser.cc index fb76d47b03..9bd835ec6e 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -209,25 +209,25 @@ namespace isc { namespace agent { { switch (that.kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -246,25 +246,25 @@ namespace isc { namespace agent { { switch (that.kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -283,25 +283,25 @@ namespace isc { namespace agent { state = that.state; switch (that.kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.copy< ElementPtr > (that.value); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (that.value); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (that.value); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (that.value); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (that.value); break; @@ -319,25 +319,25 @@ namespace isc { namespace agent { state = that.state; switch (that.kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (that.value); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (that.value); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (that.value); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (that.value); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (that.value); break; @@ -377,43 +377,43 @@ namespace isc { namespace agent { << yysym.location << ": "; switch (yykind) { - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 384 "agent_parser.cc" break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 390 "agent_parser.cc" break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 396 "agent_parser.cc" break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 402 "agent_parser.cc" break; - case 50: // value + case symbol_kind::S_value: // value #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 408 "agent_parser.cc" break; - case 53: // map_value + case symbol_kind::S_map_value: // map_value #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 414 "agent_parser.cc" break; - case 104: // socket_type_value + case symbol_kind::S_socket_type_value: // socket_type_value #line 99 "agent_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 420 "agent_parser.cc" @@ -646,25 +646,25 @@ namespace isc { namespace agent { when using variants. */ switch (yyr1_[yyn]) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value yylhs.value.emplace< ElementPtr > (); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" yylhs.value.emplace< bool > (); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" yylhs.value.emplace< double > (); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" yylhs.value.emplace< int64_t > (); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -688,25 +688,25 @@ namespace isc { namespace agent { { switch (yyn) { - case 2: + case 2: // $@1: %empty #line 110 "agent_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORDS; } #line 695 "agent_parser.cc" break; - case 4: + case 4: // $@2: %empty #line 111 "agent_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 701 "agent_parser.cc" break; - case 6: + case 6: // $@3: %empty #line 112 "agent_parser.yy" { ctx.ctx_ = ctx.AGENT; } #line 707 "agent_parser.cc" break; - case 8: + case 8: // $@4: %empty #line 120 "agent_parser.yy" { // Parse the Control-agent map @@ -716,7 +716,7 @@ namespace isc { namespace agent { #line 717 "agent_parser.cc" break; - case 9: + case 9: // sub_agent: "{" $@4 global_params "}" #line 124 "agent_parser.yy" { // parsing completed @@ -724,7 +724,7 @@ namespace isc { namespace agent { #line 725 "agent_parser.cc" break; - case 10: + case 10: // json: value #line 131 "agent_parser.yy" { // Push back the JSON value on the stack @@ -733,49 +733,49 @@ namespace isc { namespace agent { #line 734 "agent_parser.cc" break; - case 11: + case 11: // value: "integer" #line 137 "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" break; - case 12: + case 12: // value: "floating point" #line 138 "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" break; - case 13: + case 13: // value: "boolean" #line 139 "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" break; - case 14: + case 14: // value: "constant string" #line 140 "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" break; - case 15: + case 15: // value: "null" #line 141 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 764 "agent_parser.cc" break; - case 16: + case 16: // value: map #line 142 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 770 "agent_parser.cc" break; - case 17: + case 17: // value: list_generic #line 143 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 776 "agent_parser.cc" break; - case 18: + case 18: // $@5: %empty #line 147 "agent_parser.yy" { // This code is executed when we're about to start parsing @@ -786,7 +786,7 @@ namespace isc { namespace agent { #line 787 "agent_parser.cc" break; - case 19: + case 19: // map: "{" $@5 map_content "}" #line 152 "agent_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -796,13 +796,13 @@ namespace isc { namespace agent { #line 797 "agent_parser.cc" break; - case 20: + case 20: // map_value: map #line 158 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 803 "agent_parser.cc" break; - case 23: + case 23: // not_empty_map: "constant string" ":" value #line 172 "agent_parser.yy" { // map containing a single entry @@ -811,7 +811,7 @@ namespace isc { namespace agent { #line 812 "agent_parser.cc" break; - case 24: + case 24: // not_empty_map: not_empty_map "," "constant string" ":" value #line 176 "agent_parser.yy" { // map consisting of a shorter map followed by @@ -821,7 +821,7 @@ namespace isc { namespace agent { #line 822 "agent_parser.cc" break; - case 25: + case 25: // $@6: %empty #line 183 "agent_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -830,14 +830,14 @@ namespace isc { namespace agent { #line 831 "agent_parser.cc" break; - case 26: + case 26: // list_generic: "[" $@6 list_content "]" #line 186 "agent_parser.yy" { } #line 838 "agent_parser.cc" break; - case 29: + case 29: // not_empty_list: value #line 193 "agent_parser.yy" { // List consisting of a single element. @@ -846,7 +846,7 @@ namespace isc { namespace agent { #line 847 "agent_parser.cc" break; - case 30: + case 30: // not_empty_list: not_empty_list "," value #line 197 "agent_parser.yy" { // List ending with , and a value. @@ -855,7 +855,7 @@ namespace isc { namespace agent { #line 856 "agent_parser.cc" break; - case 31: + case 31: // unknown_map_entry: "constant string" ":" #line 210 "agent_parser.yy" { const std::string& where = ctx.contextName(); @@ -866,7 +866,7 @@ namespace isc { namespace agent { #line 867 "agent_parser.cc" break; - case 32: + case 32: // $@7: %empty #line 218 "agent_parser.yy" { // This code is executed when we're about to start parsing @@ -877,7 +877,7 @@ namespace isc { namespace agent { #line 878 "agent_parser.cc" break; - case 33: + case 33: // agent_syntax_map: "{" $@7 global_objects "}" #line 223 "agent_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -887,7 +887,7 @@ namespace isc { namespace agent { #line 888 "agent_parser.cc" break; - case 36: + case 36: // $@8: %empty #line 238 "agent_parser.yy" { @@ -903,7 +903,7 @@ namespace isc { namespace agent { #line 904 "agent_parser.cc" break; - case 37: + case 37: // agent_object: "Control-agent" $@8 ":" "{" global_params "}" #line 248 "agent_parser.yy" { // Ok, we're done with parsing control-agent. Let's take the map @@ -914,7 +914,7 @@ namespace isc { namespace agent { #line 915 "agent_parser.cc" break; - case 48: + case 48: // $@9: %empty #line 271 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -922,7 +922,7 @@ namespace isc { namespace agent { #line 923 "agent_parser.cc" break; - case 49: + case 49: // http_host: "http-host" $@9 ":" "constant string" #line 273 "agent_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -932,7 +932,7 @@ namespace isc { namespace agent { #line 933 "agent_parser.cc" break; - case 50: + case 50: // http_port: "http-port" ":" "integer" #line 279 "agent_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -941,7 +941,7 @@ namespace isc { namespace agent { #line 942 "agent_parser.cc" break; - case 51: + case 51: // $@10: %empty #line 284 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -949,7 +949,7 @@ namespace isc { namespace agent { #line 950 "agent_parser.cc" break; - case 52: + case 52: // user_context: "user-context" $@10 ":" map_value #line 286 "agent_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -976,7 +976,7 @@ namespace isc { namespace agent { #line 977 "agent_parser.cc" break; - case 53: + case 53: // $@11: %empty #line 309 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -984,7 +984,7 @@ namespace isc { namespace agent { #line 985 "agent_parser.cc" break; - case 54: + case 54: // comment: "comment" $@11 ":" "constant string" #line 311 "agent_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -1013,7 +1013,7 @@ namespace isc { namespace agent { #line 1014 "agent_parser.cc" break; - case 55: + case 55: // $@12: %empty #line 337 "agent_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1024,7 +1024,7 @@ namespace isc { namespace agent { #line 1025 "agent_parser.cc" break; - case 56: + case 56: // hooks_libraries: "hooks-libraries" $@12 ":" "[" hooks_libraries_list "]" #line 342 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1033,7 +1033,7 @@ namespace isc { namespace agent { #line 1034 "agent_parser.cc" break; - case 61: + case 61: // $@13: %empty #line 355 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1043,7 +1043,7 @@ namespace isc { namespace agent { #line 1044 "agent_parser.cc" break; - case 62: + case 62: // hooks_library: "{" $@13 hooks_params "}" #line 359 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1051,7 +1051,7 @@ namespace isc { namespace agent { #line 1052 "agent_parser.cc" break; - case 68: + case 68: // $@14: %empty #line 372 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1059,7 +1059,7 @@ namespace isc { namespace agent { #line 1060 "agent_parser.cc" break; - case 69: + case 69: // library: "library" $@14 ":" "constant string" #line 374 "agent_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1069,7 +1069,7 @@ namespace isc { namespace agent { #line 1070 "agent_parser.cc" break; - case 70: + case 70: // $@15: %empty #line 380 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1077,7 +1077,7 @@ namespace isc { namespace agent { #line 1078 "agent_parser.cc" break; - case 71: + case 71: // parameters: "parameters" $@15 ":" map_value #line 382 "agent_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); @@ -1086,7 +1086,7 @@ namespace isc { namespace agent { #line 1087 "agent_parser.cc" break; - case 72: + case 72: // $@16: %empty #line 390 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[2].location))); @@ -1097,7 +1097,7 @@ namespace isc { namespace agent { #line 1098 "agent_parser.cc" break; - case 73: + case 73: // control_sockets: "control-sockets" ":" "{" $@16 control_sockets_params "}" #line 395 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1106,7 +1106,7 @@ namespace isc { namespace agent { #line 1107 "agent_parser.cc" break; - case 80: + case 80: // $@17: %empty #line 416 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1117,7 +1117,7 @@ namespace isc { namespace agent { #line 1118 "agent_parser.cc" break; - case 81: + case 81: // dhcp4_server_socket: "dhcp4" $@17 ":" "{" control_socket_params "}" #line 421 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1126,7 +1126,7 @@ namespace isc { namespace agent { #line 1127 "agent_parser.cc" break; - case 82: + case 82: // $@18: %empty #line 427 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1137,7 +1137,7 @@ namespace isc { namespace agent { #line 1138 "agent_parser.cc" break; - case 83: + case 83: // dhcp6_server_socket: "dhcp6" $@18 ":" "{" control_socket_params "}" #line 432 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1146,7 +1146,7 @@ namespace isc { namespace agent { #line 1147 "agent_parser.cc" break; - case 84: + case 84: // $@19: %empty #line 438 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1157,7 +1157,7 @@ namespace isc { namespace agent { #line 1158 "agent_parser.cc" break; - case 85: + case 85: // d2_server_socket: "d2" $@19 ":" "{" control_socket_params "}" #line 443 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1166,7 +1166,7 @@ namespace isc { namespace agent { #line 1167 "agent_parser.cc" break; - case 93: + case 93: // $@20: %empty #line 462 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1174,7 +1174,7 @@ namespace isc { namespace agent { #line 1175 "agent_parser.cc" break; - case 94: + case 94: // socket_name: "socket-name" $@20 ":" "constant string" #line 464 "agent_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1184,7 +1184,7 @@ namespace isc { namespace agent { #line 1185 "agent_parser.cc" break; - case 95: + case 95: // $@21: %empty #line 471 "agent_parser.yy" { ctx.enter(ctx.SOCKET_TYPE); @@ -1192,7 +1192,7 @@ namespace isc { namespace agent { #line 1193 "agent_parser.cc" break; - case 96: + case 96: // socket_type: "socket-type" $@21 ":" socket_type_value #line 473 "agent_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); @@ -1201,13 +1201,13 @@ namespace isc { namespace agent { #line 1202 "agent_parser.cc" break; - case 97: + case 97: // socket_type_value: "unix" #line 479 "agent_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } #line 1208 "agent_parser.cc" break; - case 98: + case 98: // $@22: %empty #line 486 "agent_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1218,7 +1218,7 @@ namespace isc { namespace agent { #line 1219 "agent_parser.cc" break; - case 99: + case 99: // loggers: "loggers" $@22 ":" "[" loggers_entries "]" #line 491 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1227,7 +1227,7 @@ namespace isc { namespace agent { #line 1228 "agent_parser.cc" break; - case 102: + case 102: // $@23: %empty #line 503 "agent_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1237,7 +1237,7 @@ namespace isc { namespace agent { #line 1238 "agent_parser.cc" break; - case 103: + case 103: // logger_entry: "{" $@23 logger_params "}" #line 507 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1245,7 +1245,7 @@ namespace isc { namespace agent { #line 1246 "agent_parser.cc" break; - case 113: + case 113: // $@24: %empty #line 524 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1253,7 +1253,7 @@ namespace isc { namespace agent { #line 1254 "agent_parser.cc" break; - case 114: + case 114: // name: "name" $@24 ":" "constant string" #line 526 "agent_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1263,7 +1263,7 @@ namespace isc { namespace agent { #line 1264 "agent_parser.cc" break; - case 115: + case 115: // debuglevel: "debuglevel" ":" "integer" #line 532 "agent_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1272,7 +1272,7 @@ namespace isc { namespace agent { #line 1273 "agent_parser.cc" break; - case 116: + case 116: // $@25: %empty #line 537 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1280,7 +1280,7 @@ namespace isc { namespace agent { #line 1281 "agent_parser.cc" break; - case 117: + case 117: // severity: "severity" $@25 ":" "constant string" #line 539 "agent_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1290,7 +1290,7 @@ namespace isc { namespace agent { #line 1291 "agent_parser.cc" break; - case 118: + case 118: // $@26: %empty #line 545 "agent_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1301,7 +1301,7 @@ namespace isc { namespace agent { #line 1302 "agent_parser.cc" break; - case 119: + case 119: // output_options_list: "output_options" $@26 ":" "[" output_options_list_content "]" #line 550 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1310,7 +1310,7 @@ namespace isc { namespace agent { #line 1311 "agent_parser.cc" break; - case 122: + case 122: // $@27: %empty #line 559 "agent_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1320,7 +1320,7 @@ namespace isc { namespace agent { #line 1321 "agent_parser.cc" break; - case 123: + case 123: // output_entry: "{" $@27 output_params_list "}" #line 563 "agent_parser.yy" { ctx.stack_.pop_back(); @@ -1328,7 +1328,7 @@ namespace isc { namespace agent { #line 1329 "agent_parser.cc" break; - case 131: + case 131: // $@28: %empty #line 578 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1336,7 +1336,7 @@ namespace isc { namespace agent { #line 1337 "agent_parser.cc" break; - case 132: + case 132: // output: "output" $@28 ":" "constant string" #line 580 "agent_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1346,7 +1346,7 @@ namespace isc { namespace agent { #line 1347 "agent_parser.cc" break; - case 133: + case 133: // flush: "flush" ":" "boolean" #line 586 "agent_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1355,7 +1355,7 @@ namespace isc { namespace agent { #line 1356 "agent_parser.cc" break; - case 134: + case 134: // maxsize: "maxsize" ":" "integer" #line 591 "agent_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1364,7 +1364,7 @@ namespace isc { namespace agent { #line 1365 "agent_parser.cc" break; - case 135: + case 135: // maxver: "maxver" ":" "integer" #line 596 "agent_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1373,7 +1373,7 @@ namespace isc { namespace agent { #line 1374 "agent_parser.cc" break; - case 136: + case 136: // $@29: %empty #line 601 "agent_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1381,7 +1381,7 @@ namespace isc { namespace agent { #line 1382 "agent_parser.cc" break; - case 137: + case 137: // pattern: "pattern" $@29 ":" "constant string" #line 603 "agent_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); diff --git a/src/bin/agent/agent_parser.h b/src/bin/agent/agent_parser.h index 225fbd3cc6..3307fe2ca5 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -704,25 +704,25 @@ namespace isc { namespace agent { { switch (this->kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (std::move (that.value)); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (std::move (that.value)); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (std::move (that.value)); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -836,25 +836,25 @@ namespace isc { namespace agent { // Value type destructor. switch (yykind) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.template destroy< ElementPtr > (); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.template destroy< bool > (); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.template destroy< double > (); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.template destroy< int64_t > (); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.template destroy< std::string > (); break; @@ -1838,7 +1838,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -2069,11 +2069,12 @@ switch (yykind) 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 }; - const int user_token_number_max_ = 296; + // Last valid token kind. + const int code_max = 296; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -2088,25 +2089,25 @@ switch (yykind) { switch (this->kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -2139,25 +2140,25 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 50: // value - case 53: // map_value - case 104: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 41: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 40: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 39: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 38: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -2224,8 +2225,7 @@ switch (yykind) #line 14 "agent_parser.yy" } } // isc::agent -#line 2228 "agent_parser.h" - +#line 2229 "agent_parser.h" diff --git a/src/bin/agent/location.hh b/src/bin/agent/location.hh index 499b94c03e..1c93a118bf 100644 --- a/src/bin/agent/location.hh +++ b/src/bin/agent/location.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021532 +// A Bison parser, made by GNU Bison 3.7.1. // Locations for Bison parsers in C++ @@ -62,11 +62,13 @@ namespace isc { namespace agent { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -76,7 +78,7 @@ namespace isc { namespace agent { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -105,7 +107,7 @@ namespace isc { namespace agent { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -148,24 +150,6 @@ namespace isc { namespace agent { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -183,6 +167,8 @@ namespace isc { namespace agent { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -199,7 +185,7 @@ namespace isc { namespace agent { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -208,7 +194,7 @@ namespace isc { namespace agent { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -290,20 +276,6 @@ namespace isc { namespace agent { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -330,6 +302,6 @@ namespace isc { namespace agent { #line 14 "agent_parser.yy" } } // isc::agent -#line 333 "location.hh" +#line 305 "location.hh" #endif // !YY_AGENT_LOCATION_HH_INCLUDED diff --git a/src/bin/agent/position.hh b/src/bin/agent/position.hh index e0ad590321..0403c938c4 100644 --- a/src/bin/agent/position.hh +++ b/src/bin/agent/position.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021532 +// A Bison parser, made by GNU Bison 3.7.1. // 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/agent/stack.hh b/src/bin/agent/stack.hh index 8dbe273f87..e6bfe5d25d 100644 --- a/src/bin/agent/stack.hh +++ b/src/bin/agent/stack.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021532 +// A Bison parser, made by GNU Bison 3.7.1. // 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/d2/d2_parser.cc b/src/bin/d2/d2_parser.cc index 22389335c6..d2f5febfea 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -209,25 +209,25 @@ namespace isc { namespace d2 { { switch (that.kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -246,25 +246,25 @@ namespace isc { namespace d2 { { switch (that.kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -283,25 +283,25 @@ namespace isc { namespace d2 { state = that.state; switch (that.kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (that.value); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (that.value); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (that.value); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (that.value); break; @@ -319,25 +319,25 @@ namespace isc { namespace d2 { state = that.state; switch (that.kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (that.value); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (that.value); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (that.value); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (that.value); break; @@ -377,43 +377,43 @@ namespace isc { namespace d2 { << yysym.location << ": "; switch (yykind) { - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 384 "d2_parser.cc" break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 390 "d2_parser.cc" break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 396 "d2_parser.cc" break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 402 "d2_parser.cc" break; - case 68: // value + case symbol_kind::S_value: // value #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 408 "d2_parser.cc" break; - case 72: // map_value + case symbol_kind::S_map_value: // map_value #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 414 "d2_parser.cc" break; - case 96: // ncr_protocol_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value #line 111 "d2_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 420 "d2_parser.cc" @@ -646,25 +646,25 @@ namespace isc { namespace d2 { when using variants. */ switch (yyr1_[yyn]) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" yylhs.value.emplace< bool > (); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" yylhs.value.emplace< double > (); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" yylhs.value.emplace< int64_t > (); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -688,103 +688,103 @@ namespace isc { namespace d2 { { switch (yyn) { - case 2: + case 2: // $@1: %empty #line 120 "d2_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 695 "d2_parser.cc" break; - case 4: + case 4: // $@2: %empty #line 121 "d2_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 701 "d2_parser.cc" break; - case 6: + case 6: // $@3: %empty #line 122 "d2_parser.yy" { ctx.ctx_ = ctx.DHCPDDNS; } #line 707 "d2_parser.cc" break; - case 8: + case 8: // $@4: %empty #line 123 "d2_parser.yy" { ctx.ctx_ = ctx.TSIG_KEY; } #line 713 "d2_parser.cc" break; - case 10: + case 10: // $@5: %empty #line 124 "d2_parser.yy" { ctx.ctx_ = ctx.TSIG_KEYS; } #line 719 "d2_parser.cc" break; - case 12: + case 12: // $@6: %empty #line 125 "d2_parser.yy" { ctx.ctx_ = ctx.DDNS_DOMAIN; } #line 725 "d2_parser.cc" break; - case 14: + case 14: // $@7: %empty #line 126 "d2_parser.yy" { ctx.ctx_ = ctx.DDNS_DOMAINS; } #line 731 "d2_parser.cc" break; - case 16: + case 16: // $@8: %empty #line 127 "d2_parser.yy" { ctx.ctx_ = ctx.DNS_SERVERS; } #line 737 "d2_parser.cc" break; - case 18: + case 18: // $@9: %empty #line 128 "d2_parser.yy" { ctx.ctx_ = ctx.DNS_SERVERS; } #line 743 "d2_parser.cc" break; - case 20: + case 20: // value: "integer" #line 136 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 749 "d2_parser.cc" break; - case 21: + case 21: // value: "floating point" #line 137 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 755 "d2_parser.cc" break; - case 22: + case 22: // value: "boolean" #line 138 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 761 "d2_parser.cc" break; - case 23: + case 23: // value: "constant string" #line 139 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 767 "d2_parser.cc" break; - case 24: + case 24: // value: "null" #line 140 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 773 "d2_parser.cc" break; - case 25: + case 25: // value: map2 #line 141 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 779 "d2_parser.cc" break; - case 26: + case 26: // value: list_generic #line 142 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 785 "d2_parser.cc" break; - case 27: + case 27: // sub_json: value #line 145 "d2_parser.yy" { // Push back the JSON value on the stack @@ -793,7 +793,7 @@ namespace isc { namespace d2 { #line 794 "d2_parser.cc" break; - case 28: + case 28: // $@10: %empty #line 150 "d2_parser.yy" { // This code is executed when we're about to start parsing @@ -804,7 +804,7 @@ namespace isc { namespace d2 { #line 805 "d2_parser.cc" break; - case 29: + case 29: // map2: "{" $@10 map_content "}" #line 155 "d2_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -814,13 +814,13 @@ namespace isc { namespace d2 { #line 815 "d2_parser.cc" break; - case 30: + case 30: // map_value: map2 #line 161 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 821 "d2_parser.cc" break; - case 33: + case 33: // not_empty_map: "constant string" ":" value #line 168 "d2_parser.yy" { // map containing a single entry @@ -829,7 +829,7 @@ namespace isc { namespace d2 { #line 830 "d2_parser.cc" break; - case 34: + case 34: // not_empty_map: not_empty_map "," "constant string" ":" value #line 172 "d2_parser.yy" { // map consisting of a shorter map followed by @@ -839,7 +839,7 @@ namespace isc { namespace d2 { #line 840 "d2_parser.cc" break; - case 35: + case 35: // $@11: %empty #line 179 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -848,7 +848,7 @@ namespace isc { namespace d2 { #line 849 "d2_parser.cc" break; - case 36: + case 36: // list_generic: "[" $@11 list_content "]" #line 182 "d2_parser.yy" { // list parsing complete. Put any sanity checking here @@ -856,7 +856,7 @@ namespace isc { namespace d2 { #line 857 "d2_parser.cc" break; - case 39: + case 39: // not_empty_list: value #line 190 "d2_parser.yy" { // List consisting of a single element. @@ -865,7 +865,7 @@ namespace isc { namespace d2 { #line 866 "d2_parser.cc" break; - case 40: + case 40: // not_empty_list: not_empty_list "," value #line 194 "d2_parser.yy" { // List ending with , and a value. @@ -874,7 +874,7 @@ namespace isc { namespace d2 { #line 875 "d2_parser.cc" break; - case 41: + case 41: // unknown_map_entry: "constant string" ":" #line 205 "d2_parser.yy" { const std::string& where = ctx.contextName(); @@ -885,7 +885,7 @@ namespace isc { namespace d2 { #line 886 "d2_parser.cc" break; - case 42: + case 42: // $@12: %empty #line 214 "d2_parser.yy" { // This code is executed when we're about to start parsing @@ -896,7 +896,7 @@ namespace isc { namespace d2 { #line 897 "d2_parser.cc" break; - case 43: + case 43: // syntax_map: "{" $@12 global_objects "}" #line 219 "d2_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -906,7 +906,7 @@ namespace isc { namespace d2 { #line 907 "d2_parser.cc" break; - case 46: + case 46: // $@13: %empty #line 235 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -917,7 +917,7 @@ namespace isc { namespace d2 { #line 918 "d2_parser.cc" break; - case 47: + case 47: // dhcpddns_object: "DhcpDdns" $@13 ":" "{" dhcpddns_params "}" #line 240 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -926,7 +926,7 @@ namespace isc { namespace d2 { #line 927 "d2_parser.cc" break; - case 48: + case 48: // $@14: %empty #line 245 "d2_parser.yy" { // Parse the dhcpddns map @@ -936,7 +936,7 @@ namespace isc { namespace d2 { #line 937 "d2_parser.cc" break; - case 49: + case 49: // sub_dhcpddns: "{" $@14 dhcpddns_params "}" #line 249 "d2_parser.yy" { // parsing completed @@ -944,7 +944,7 @@ namespace isc { namespace d2 { #line 945 "d2_parser.cc" break; - case 65: + case 65: // $@15: %empty #line 273 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -952,7 +952,7 @@ namespace isc { namespace d2 { #line 953 "d2_parser.cc" break; - case 66: + case 66: // ip_address: "ip-address" $@15 ":" "constant string" #line 275 "d2_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -962,7 +962,7 @@ namespace isc { namespace d2 { #line 963 "d2_parser.cc" break; - case 67: + case 67: // port: "port" ":" "integer" #line 281 "d2_parser.yy" { if (yystack_[0].value.as < int64_t > () <= 0 || yystack_[0].value.as < int64_t > () >= 65536 ) { @@ -974,7 +974,7 @@ namespace isc { namespace d2 { #line 975 "d2_parser.cc" break; - case 68: + case 68: // dns_server_timeout: "dns-server-timeout" ":" "integer" #line 289 "d2_parser.yy" { if (yystack_[0].value.as < int64_t > () <= 0) { @@ -987,7 +987,7 @@ namespace isc { namespace d2 { #line 988 "d2_parser.cc" break; - case 69: + case 69: // $@16: %empty #line 298 "d2_parser.yy" { ctx.enter(ctx.NCR_PROTOCOL); @@ -995,7 +995,7 @@ namespace isc { namespace d2 { #line 996 "d2_parser.cc" break; - case 70: + case 70: // ncr_protocol: "ncr-protocol" $@16 ":" ncr_protocol_value #line 300 "d2_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); @@ -1004,19 +1004,19 @@ namespace isc { namespace d2 { #line 1005 "d2_parser.cc" break; - case 71: + case 71: // ncr_protocol_value: "UDP" #line 306 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 1011 "d2_parser.cc" break; - case 72: + case 72: // ncr_protocol_value: "TCP" #line 307 "d2_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 1017 "d2_parser.cc" break; - case 73: + case 73: // $@17: %empty #line 310 "d2_parser.yy" { ctx.enter(ctx.NCR_FORMAT); @@ -1024,7 +1024,7 @@ namespace isc { namespace d2 { #line 1025 "d2_parser.cc" break; - case 74: + case 74: // ncr_format: "ncr-format" $@17 ":" "JSON" #line 312 "d2_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); @@ -1034,7 +1034,7 @@ namespace isc { namespace d2 { #line 1035 "d2_parser.cc" break; - case 75: + case 75: // $@18: %empty #line 318 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1042,7 +1042,7 @@ namespace isc { namespace d2 { #line 1043 "d2_parser.cc" break; - case 76: + case 76: // user_context: "user-context" $@18 ":" map_value #line 320 "d2_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -1069,7 +1069,7 @@ namespace isc { namespace d2 { #line 1070 "d2_parser.cc" break; - case 77: + case 77: // $@19: %empty #line 343 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1077,7 +1077,7 @@ namespace isc { namespace d2 { #line 1078 "d2_parser.cc" break; - case 78: + case 78: // comment: "comment" $@19 ":" "constant string" #line 345 "d2_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -1106,7 +1106,7 @@ namespace isc { namespace d2 { #line 1107 "d2_parser.cc" break; - case 79: + case 79: // $@20: %empty #line 370 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1117,7 +1117,7 @@ namespace isc { namespace d2 { #line 1118 "d2_parser.cc" break; - case 80: + case 80: // forward_ddns: "forward-ddns" $@20 ":" "{" ddns_mgr_params "}" #line 375 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1126,7 +1126,7 @@ namespace isc { namespace d2 { #line 1127 "d2_parser.cc" break; - case 81: + case 81: // $@21: %empty #line 380 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1137,7 +1137,7 @@ namespace isc { namespace d2 { #line 1138 "d2_parser.cc" break; - case 82: + case 82: // reverse_ddns: "reverse-ddns" $@21 ":" "{" ddns_mgr_params "}" #line 385 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1146,7 +1146,7 @@ namespace isc { namespace d2 { #line 1147 "d2_parser.cc" break; - case 89: + case 89: // $@22: %empty #line 404 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1157,7 +1157,7 @@ namespace isc { namespace d2 { #line 1158 "d2_parser.cc" break; - case 90: + case 90: // ddns_domains: "ddns-domains" $@22 ":" "[" ddns_domain_list "]" #line 409 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1166,7 +1166,7 @@ namespace isc { namespace d2 { #line 1167 "d2_parser.cc" break; - case 91: + case 91: // $@23: %empty #line 414 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1175,7 +1175,7 @@ namespace isc { namespace d2 { #line 1176 "d2_parser.cc" break; - case 92: + case 92: // sub_ddns_domains: "[" $@23 ddns_domain_list "]" #line 417 "d2_parser.yy" { // parsing completed @@ -1183,7 +1183,7 @@ namespace isc { namespace d2 { #line 1184 "d2_parser.cc" break; - case 97: + case 97: // $@24: %empty #line 429 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1193,7 +1193,7 @@ namespace isc { namespace d2 { #line 1194 "d2_parser.cc" break; - case 98: + case 98: // ddns_domain: "{" $@24 ddns_domain_params "}" #line 433 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1201,7 +1201,7 @@ namespace isc { namespace d2 { #line 1202 "d2_parser.cc" break; - case 99: + case 99: // $@25: %empty #line 437 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1210,7 +1210,7 @@ namespace isc { namespace d2 { #line 1211 "d2_parser.cc" break; - case 100: + case 100: // sub_ddns_domain: "{" $@25 ddns_domain_params "}" #line 440 "d2_parser.yy" { // parsing completed @@ -1218,7 +1218,7 @@ namespace isc { namespace d2 { #line 1219 "d2_parser.cc" break; - case 109: + case 109: // $@26: %empty #line 457 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1226,7 +1226,7 @@ namespace isc { namespace d2 { #line 1227 "d2_parser.cc" break; - case 110: + case 110: // ddns_domain_name: "name" $@26 ":" "constant string" #line 459 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { @@ -1240,7 +1240,7 @@ namespace isc { namespace d2 { #line 1241 "d2_parser.cc" break; - case 111: + case 111: // $@27: %empty #line 469 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1248,7 +1248,7 @@ namespace isc { namespace d2 { #line 1249 "d2_parser.cc" break; - case 112: + case 112: // ddns_domain_key_name: "key-name" $@27 ":" "constant string" #line 471 "d2_parser.yy" { ElementPtr elem(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1259,7 +1259,7 @@ namespace isc { namespace d2 { #line 1260 "d2_parser.cc" break; - case 113: + case 113: // $@28: %empty #line 481 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1270,7 +1270,7 @@ namespace isc { namespace d2 { #line 1271 "d2_parser.cc" break; - case 114: + case 114: // dns_servers: "dns-servers" $@28 ":" "[" dns_server_list "]" #line 486 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1279,7 +1279,7 @@ namespace isc { namespace d2 { #line 1280 "d2_parser.cc" break; - case 115: + case 115: // $@29: %empty #line 491 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1288,7 +1288,7 @@ namespace isc { namespace d2 { #line 1289 "d2_parser.cc" break; - case 116: + case 116: // sub_dns_servers: "[" $@29 dns_server_list "]" #line 494 "d2_parser.yy" { // parsing completed @@ -1296,7 +1296,7 @@ namespace isc { namespace d2 { #line 1297 "d2_parser.cc" break; - case 119: + case 119: // $@30: %empty #line 502 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1306,7 +1306,7 @@ namespace isc { namespace d2 { #line 1307 "d2_parser.cc" break; - case 120: + case 120: // dns_server: "{" $@30 dns_server_params "}" #line 506 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1314,7 +1314,7 @@ namespace isc { namespace d2 { #line 1315 "d2_parser.cc" break; - case 121: + case 121: // $@31: %empty #line 510 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1323,7 +1323,7 @@ namespace isc { namespace d2 { #line 1324 "d2_parser.cc" break; - case 122: + case 122: // sub_dns_server: "{" $@31 dns_server_params "}" #line 513 "d2_parser.yy" { // parsing completed @@ -1331,7 +1331,7 @@ namespace isc { namespace d2 { #line 1332 "d2_parser.cc" break; - case 131: + case 131: // $@32: %empty #line 529 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1339,7 +1339,7 @@ namespace isc { namespace d2 { #line 1340 "d2_parser.cc" break; - case 132: + case 132: // dns_server_hostname: "hostname" $@32 ":" "constant string" #line 531 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () != "") { @@ -1353,7 +1353,7 @@ namespace isc { namespace d2 { #line 1354 "d2_parser.cc" break; - case 133: + case 133: // $@33: %empty #line 541 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1361,7 +1361,7 @@ namespace isc { namespace d2 { #line 1362 "d2_parser.cc" break; - case 134: + case 134: // dns_server_ip_address: "ip-address" $@33 ":" "constant string" #line 543 "d2_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1371,7 +1371,7 @@ namespace isc { namespace d2 { #line 1372 "d2_parser.cc" break; - case 135: + case 135: // dns_server_port: "port" ":" "integer" #line 549 "d2_parser.yy" { if (yystack_[0].value.as < int64_t > () <= 0 || yystack_[0].value.as < int64_t > () >= 65536 ) { @@ -1383,7 +1383,7 @@ namespace isc { namespace d2 { #line 1384 "d2_parser.cc" break; - case 136: + case 136: // $@34: %empty #line 563 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1394,7 +1394,7 @@ namespace isc { namespace d2 { #line 1395 "d2_parser.cc" break; - case 137: + case 137: // tsig_keys: "tsig-keys" $@34 ":" "[" tsig_keys_list "]" #line 568 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1403,7 +1403,7 @@ namespace isc { namespace d2 { #line 1404 "d2_parser.cc" break; - case 138: + case 138: // $@35: %empty #line 573 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1412,7 +1412,7 @@ namespace isc { namespace d2 { #line 1413 "d2_parser.cc" break; - case 139: + case 139: // sub_tsig_keys: "[" $@35 tsig_keys_list "]" #line 576 "d2_parser.yy" { // parsing completed @@ -1420,7 +1420,7 @@ namespace isc { namespace d2 { #line 1421 "d2_parser.cc" break; - case 144: + case 144: // $@36: %empty #line 588 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1430,7 +1430,7 @@ namespace isc { namespace d2 { #line 1431 "d2_parser.cc" break; - case 145: + case 145: // tsig_key: "{" $@36 tsig_key_params "}" #line 592 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1438,7 +1438,7 @@ namespace isc { namespace d2 { #line 1439 "d2_parser.cc" break; - case 146: + case 146: // $@37: %empty #line 596 "d2_parser.yy" { // Parse tsig key list entry map @@ -1448,7 +1448,7 @@ namespace isc { namespace d2 { #line 1449 "d2_parser.cc" break; - case 147: + case 147: // sub_tsig_key: "{" $@37 tsig_key_params "}" #line 600 "d2_parser.yy" { // parsing completed @@ -1456,7 +1456,7 @@ namespace isc { namespace d2 { #line 1457 "d2_parser.cc" break; - case 157: + case 157: // $@38: %empty #line 618 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1464,7 +1464,7 @@ namespace isc { namespace d2 { #line 1465 "d2_parser.cc" break; - case 158: + case 158: // tsig_key_name: "name" $@38 ":" "constant string" #line 620 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { @@ -1478,7 +1478,7 @@ namespace isc { namespace d2 { #line 1479 "d2_parser.cc" break; - case 159: + case 159: // $@39: %empty #line 630 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1486,7 +1486,7 @@ namespace isc { namespace d2 { #line 1487 "d2_parser.cc" break; - case 160: + case 160: // tsig_key_algorithm: "algorithm" $@39 ":" "constant string" #line 632 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { @@ -1499,7 +1499,7 @@ namespace isc { namespace d2 { #line 1500 "d2_parser.cc" break; - case 161: + case 161: // tsig_key_digest_bits: "digest-bits" ":" "integer" #line 641 "d2_parser.yy" { if (yystack_[0].value.as < int64_t > () < 0 || (yystack_[0].value.as < int64_t > () > 0 && (yystack_[0].value.as < int64_t > () % 8 != 0))) { @@ -1511,7 +1511,7 @@ namespace isc { namespace d2 { #line 1512 "d2_parser.cc" break; - case 162: + case 162: // $@40: %empty #line 649 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1519,7 +1519,7 @@ namespace isc { namespace d2 { #line 1520 "d2_parser.cc" break; - case 163: + case 163: // tsig_key_secret: "secret" $@40 ":" "constant string" #line 651 "d2_parser.yy" { if (yystack_[0].value.as < std::string > () == "") { @@ -1532,7 +1532,7 @@ namespace isc { namespace d2 { #line 1533 "d2_parser.cc" break; - case 164: + case 164: // $@41: %empty #line 665 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1543,7 +1543,7 @@ namespace isc { namespace d2 { #line 1544 "d2_parser.cc" break; - case 165: + case 165: // control_socket: "control-socket" $@41 ":" "{" control_socket_params "}" #line 670 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1552,7 +1552,7 @@ namespace isc { namespace d2 { #line 1553 "d2_parser.cc" break; - case 173: + case 173: // $@42: %empty #line 686 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1560,7 +1560,7 @@ namespace isc { namespace d2 { #line 1561 "d2_parser.cc" break; - case 174: + case 174: // control_socket_type: "socket-type" $@42 ":" "constant string" #line 688 "d2_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1570,7 +1570,7 @@ namespace isc { namespace d2 { #line 1571 "d2_parser.cc" break; - case 175: + case 175: // $@43: %empty #line 694 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1578,7 +1578,7 @@ namespace isc { namespace d2 { #line 1579 "d2_parser.cc" break; - case 176: + case 176: // control_socket_name: "socket-name" $@43 ":" "constant string" #line 696 "d2_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1588,7 +1588,7 @@ namespace isc { namespace d2 { #line 1589 "d2_parser.cc" break; - case 177: + case 177: // $@44: %empty #line 704 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1599,7 +1599,7 @@ namespace isc { namespace d2 { #line 1600 "d2_parser.cc" break; - case 178: + case 178: // loggers: "loggers" $@44 ":" "[" loggers_entries "]" #line 709 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1608,7 +1608,7 @@ namespace isc { namespace d2 { #line 1609 "d2_parser.cc" break; - case 181: + case 181: // $@45: %empty #line 721 "d2_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1618,7 +1618,7 @@ namespace isc { namespace d2 { #line 1619 "d2_parser.cc" break; - case 182: + case 182: // logger_entry: "{" $@45 logger_params "}" #line 725 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1626,7 +1626,7 @@ namespace isc { namespace d2 { #line 1627 "d2_parser.cc" break; - case 192: + case 192: // $@46: %empty #line 742 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1634,7 +1634,7 @@ namespace isc { namespace d2 { #line 1635 "d2_parser.cc" break; - case 193: + case 193: // name: "name" $@46 ":" "constant string" #line 744 "d2_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1644,7 +1644,7 @@ namespace isc { namespace d2 { #line 1645 "d2_parser.cc" break; - case 194: + case 194: // debuglevel: "debuglevel" ":" "integer" #line 750 "d2_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1653,7 +1653,7 @@ namespace isc { namespace d2 { #line 1654 "d2_parser.cc" break; - case 195: + case 195: // $@47: %empty #line 754 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1661,7 +1661,7 @@ namespace isc { namespace d2 { #line 1662 "d2_parser.cc" break; - case 196: + case 196: // severity: "severity" $@47 ":" "constant string" #line 756 "d2_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1671,7 +1671,7 @@ namespace isc { namespace d2 { #line 1672 "d2_parser.cc" break; - case 197: + case 197: // $@48: %empty #line 762 "d2_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1682,7 +1682,7 @@ namespace isc { namespace d2 { #line 1683 "d2_parser.cc" break; - case 198: + case 198: // output_options_list: "output_options" $@48 ":" "[" output_options_list_content "]" #line 767 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1691,7 +1691,7 @@ namespace isc { namespace d2 { #line 1692 "d2_parser.cc" break; - case 201: + case 201: // $@49: %empty #line 776 "d2_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1701,7 +1701,7 @@ namespace isc { namespace d2 { #line 1702 "d2_parser.cc" break; - case 202: + case 202: // output_entry: "{" $@49 output_params_list "}" #line 780 "d2_parser.yy" { ctx.stack_.pop_back(); @@ -1709,7 +1709,7 @@ namespace isc { namespace d2 { #line 1710 "d2_parser.cc" break; - case 210: + case 210: // $@50: %empty #line 795 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1717,7 +1717,7 @@ namespace isc { namespace d2 { #line 1718 "d2_parser.cc" break; - case 211: + case 211: // output: "output" $@50 ":" "constant string" #line 797 "d2_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1727,7 +1727,7 @@ namespace isc { namespace d2 { #line 1728 "d2_parser.cc" break; - case 212: + case 212: // flush: "flush" ":" "boolean" #line 803 "d2_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1736,7 +1736,7 @@ namespace isc { namespace d2 { #line 1737 "d2_parser.cc" break; - case 213: + case 213: // maxsize: "maxsize" ":" "integer" #line 808 "d2_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1745,7 +1745,7 @@ namespace isc { namespace d2 { #line 1746 "d2_parser.cc" break; - case 214: + case 214: // maxver: "maxver" ":" "integer" #line 813 "d2_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1754,7 +1754,7 @@ namespace isc { namespace d2 { #line 1755 "d2_parser.cc" break; - case 215: + case 215: // $@51: %empty #line 818 "d2_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1762,7 +1762,7 @@ namespace isc { namespace d2 { #line 1763 "d2_parser.cc" break; - case 216: + case 216: // pattern: "pattern" $@51 ":" "constant string" #line 820 "d2_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); diff --git a/src/bin/d2/d2_parser.h b/src/bin/d2/d2_parser.h index aba8a2aaaf..cb7763b1fe 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -784,25 +784,25 @@ namespace isc { namespace d2 { { switch (this->kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (std::move (that.value)); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (std::move (that.value)); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (std::move (that.value)); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -916,25 +916,25 @@ namespace isc { namespace d2 { // Value type destructor. switch (yykind) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.template destroy< bool > (); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.template destroy< double > (); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.template destroy< int64_t > (); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.template destroy< std::string > (); break; @@ -2143,7 +2143,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -2376,11 +2376,12 @@ switch (yykind) 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 }; - const int user_token_number_max_ = 311; + // Last valid token kind. + const int code_max = 311; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -2395,25 +2396,25 @@ switch (yykind) { switch (this->kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -2446,25 +2447,25 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 56: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 55: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 54: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 53: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -2531,8 +2532,7 @@ switch (yykind) #line 14 "d2_parser.yy" } } // isc::d2 -#line 2535 "d2_parser.h" - +#line 2536 "d2_parser.h" diff --git a/src/bin/d2/location.hh b/src/bin/d2/location.hh index 3f1c33eae5..a1ffb3adcd 100644 --- a/src/bin/d2/location.hh +++ b/src/bin/d2/location.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // Locations for Bison parsers in C++ @@ -62,11 +62,13 @@ namespace isc { namespace d2 { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -76,7 +78,7 @@ namespace isc { namespace d2 { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -105,7 +107,7 @@ namespace isc { namespace d2 { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -148,24 +150,6 @@ namespace isc { namespace d2 { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -183,6 +167,8 @@ namespace isc { namespace d2 { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -199,7 +185,7 @@ namespace isc { namespace d2 { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -208,7 +194,7 @@ namespace isc { namespace d2 { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -290,20 +276,6 @@ namespace isc { namespace d2 { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -330,6 +302,6 @@ namespace isc { namespace d2 { #line 14 "d2_parser.yy" } } // isc::d2 -#line 333 "location.hh" +#line 305 "location.hh" #endif // !YY_D2_PARSER_LOCATION_HH_INCLUDED diff --git a/src/bin/d2/position.hh b/src/bin/d2/position.hh index e0ad590321..12e7205cc5 100644 --- a/src/bin/d2/position.hh +++ b/src/bin/d2/position.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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 8dbe273f87..fed81e95f8 100644 --- a/src/bin/d2/stack.hh +++ b/src/bin/d2/stack.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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 a149cb8e01..9fe3679827 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -209,30 +209,30 @@ namespace isc { namespace dhcp { { switch (that.kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -251,30 +251,30 @@ namespace isc { namespace dhcp { { switch (that.kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -293,30 +293,30 @@ namespace isc { namespace dhcp { state = that.state; switch (that.kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (that.value); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (that.value); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (that.value); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (that.value); break; @@ -334,30 +334,30 @@ namespace isc { namespace dhcp { state = that.state; switch (that.kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (that.value); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (that.value); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (that.value); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (that.value); break; @@ -397,73 +397,73 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yykind) { - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 404 "dhcp4_parser.cc" break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 410 "dhcp4_parser.cc" break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 416 "dhcp4_parser.cc" break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 422 "dhcp4_parser.cc" break; - case 205: // value + case symbol_kind::S_value: // value #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 428 "dhcp4_parser.cc" break; - case 209: // map_value + case symbol_kind::S_map_value: // map_value #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 434 "dhcp4_parser.cc" break; - case 250: // ddns_replace_client_name_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 440 "dhcp4_parser.cc" break; - case 272: // socket_type + case symbol_kind::S_socket_type: // socket_type #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 446 "dhcp4_parser.cc" break; - case 275: // outbound_interface_value + case symbol_kind::S_outbound_interface_value: // outbound_interface_value #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 452 "dhcp4_parser.cc" break; - case 297: // db_type + case symbol_kind::S_db_type: // db_type #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 458 "dhcp4_parser.cc" break; - case 391: // hr_mode + case symbol_kind::S_hr_mode: // hr_mode #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 464 "dhcp4_parser.cc" break; - case 546: // ncr_protocol_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value #line 268 "dhcp4_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 470 "dhcp4_parser.cc" @@ -696,30 +696,30 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" yylhs.value.emplace< bool > (); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" yylhs.value.emplace< double > (); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" yylhs.value.emplace< int64_t > (); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -743,127 +743,127 @@ namespace isc { namespace dhcp { { switch (yyn) { - case 2: + case 2: // $@1: %empty #line 277 "dhcp4_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 750 "dhcp4_parser.cc" break; - case 4: + case 4: // $@2: %empty #line 278 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 756 "dhcp4_parser.cc" break; - case 6: + case 6: // $@3: %empty #line 279 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 762 "dhcp4_parser.cc" break; - case 8: + case 8: // $@4: %empty #line 280 "dhcp4_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 768 "dhcp4_parser.cc" break; - case 10: + case 10: // $@5: %empty #line 281 "dhcp4_parser.yy" { ctx.ctx_ = ctx.SUBNET4; } #line 774 "dhcp4_parser.cc" break; - case 12: + case 12: // $@6: %empty #line 282 "dhcp4_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 780 "dhcp4_parser.cc" break; - case 14: + case 14: // $@7: %empty #line 283 "dhcp4_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 786 "dhcp4_parser.cc" break; - case 16: + case 16: // $@8: %empty #line 284 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP4; } #line 792 "dhcp4_parser.cc" break; - case 18: + case 18: // $@9: %empty #line 285 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 798 "dhcp4_parser.cc" break; - case 20: + case 20: // $@10: %empty #line 286 "dhcp4_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 804 "dhcp4_parser.cc" break; - case 22: + case 22: // $@11: %empty #line 287 "dhcp4_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 810 "dhcp4_parser.cc" break; - case 24: + case 24: // $@12: %empty #line 288 "dhcp4_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 816 "dhcp4_parser.cc" break; - case 26: + case 26: // $@13: %empty #line 289 "dhcp4_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 822 "dhcp4_parser.cc" break; - case 28: + case 28: // value: "integer" #line 297 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 828 "dhcp4_parser.cc" break; - case 29: + case 29: // value: "floating point" #line 298 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 834 "dhcp4_parser.cc" break; - case 30: + case 30: // value: "boolean" #line 299 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 840 "dhcp4_parser.cc" break; - case 31: + case 31: // value: "constant string" #line 300 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 846 "dhcp4_parser.cc" break; - case 32: + case 32: // value: "null" #line 301 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 852 "dhcp4_parser.cc" break; - case 33: + case 33: // value: map2 #line 302 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 858 "dhcp4_parser.cc" break; - case 34: + case 34: // value: list_generic #line 303 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 864 "dhcp4_parser.cc" break; - case 35: + case 35: // sub_json: value #line 306 "dhcp4_parser.yy" { // Push back the JSON value on the stack @@ -872,7 +872,7 @@ namespace isc { namespace dhcp { #line 873 "dhcp4_parser.cc" break; - case 36: + case 36: // $@14: %empty #line 311 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing @@ -883,7 +883,7 @@ namespace isc { namespace dhcp { #line 884 "dhcp4_parser.cc" break; - case 37: + case 37: // map2: "{" $@14 map_content "}" #line 316 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -893,13 +893,13 @@ namespace isc { namespace dhcp { #line 894 "dhcp4_parser.cc" break; - case 38: + case 38: // map_value: map2 #line 322 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 900 "dhcp4_parser.cc" break; - case 41: + case 41: // not_empty_map: "constant string" ":" value #line 329 "dhcp4_parser.yy" { // map containing a single entry @@ -908,7 +908,7 @@ namespace isc { namespace dhcp { #line 909 "dhcp4_parser.cc" break; - case 42: + case 42: // not_empty_map: not_empty_map "," "constant string" ":" value #line 333 "dhcp4_parser.yy" { // map consisting of a shorter map followed by @@ -918,7 +918,7 @@ namespace isc { namespace dhcp { #line 919 "dhcp4_parser.cc" break; - case 43: + case 43: // $@15: %empty #line 340 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -927,7 +927,7 @@ namespace isc { namespace dhcp { #line 928 "dhcp4_parser.cc" break; - case 44: + case 44: // list_generic: "[" $@15 list_content "]" #line 343 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here @@ -935,7 +935,7 @@ namespace isc { namespace dhcp { #line 936 "dhcp4_parser.cc" break; - case 47: + case 47: // not_empty_list: value #line 351 "dhcp4_parser.yy" { // List consisting of a single element. @@ -944,7 +944,7 @@ namespace isc { namespace dhcp { #line 945 "dhcp4_parser.cc" break; - case 48: + case 48: // not_empty_list: not_empty_list "," value #line 355 "dhcp4_parser.yy" { // List ending with , and a value. @@ -953,7 +953,7 @@ namespace isc { namespace dhcp { #line 954 "dhcp4_parser.cc" break; - case 49: + case 49: // $@16: %empty #line 362 "dhcp4_parser.yy" { // List parsing about to start @@ -961,7 +961,7 @@ namespace isc { namespace dhcp { #line 962 "dhcp4_parser.cc" break; - case 50: + case 50: // list_strings: "[" $@16 list_strings_content "]" #line 364 "dhcp4_parser.yy" { // list parsing complete. Put any sanity checking here @@ -970,7 +970,7 @@ namespace isc { namespace dhcp { #line 971 "dhcp4_parser.cc" break; - case 53: + case 53: // not_empty_list_strings: "constant string" #line 373 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -979,7 +979,7 @@ namespace isc { namespace dhcp { #line 980 "dhcp4_parser.cc" break; - case 54: + case 54: // not_empty_list_strings: not_empty_list_strings "," "constant string" #line 377 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -988,7 +988,7 @@ namespace isc { namespace dhcp { #line 989 "dhcp4_parser.cc" break; - case 55: + case 55: // unknown_map_entry: "constant string" ":" #line 388 "dhcp4_parser.yy" { const std::string& where = ctx.contextName(); @@ -999,7 +999,7 @@ namespace isc { namespace dhcp { #line 1000 "dhcp4_parser.cc" break; - case 56: + case 56: // $@17: %empty #line 397 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing @@ -1010,7 +1010,7 @@ namespace isc { namespace dhcp { #line 1011 "dhcp4_parser.cc" break; - case 57: + case 57: // syntax_map: "{" $@17 global_objects "}" #line 402 "dhcp4_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -1023,7 +1023,7 @@ namespace isc { namespace dhcp { #line 1024 "dhcp4_parser.cc" break; - case 61: + case 61: // $@18: %empty #line 420 "dhcp4_parser.yy" { // This code is executed when we're about to start parsing @@ -1038,7 +1038,7 @@ namespace isc { namespace dhcp { #line 1039 "dhcp4_parser.cc" break; - case 62: + case 62: // dhcp4_object: "Dhcp4" $@18 ":" "{" global_params "}" #line 429 "dhcp4_parser.yy" { // No global parameter is required @@ -1048,7 +1048,7 @@ namespace isc { namespace dhcp { #line 1049 "dhcp4_parser.cc" break; - case 63: + case 63: // $@19: %empty #line 437 "dhcp4_parser.yy" { // Parse the Dhcp4 map @@ -1058,7 +1058,7 @@ namespace isc { namespace dhcp { #line 1059 "dhcp4_parser.cc" break; - case 64: + case 64: // sub_dhcp4: "{" $@19 global_params "}" #line 441 "dhcp4_parser.yy" { // No global parameter is required @@ -1067,7 +1067,7 @@ namespace isc { namespace dhcp { #line 1068 "dhcp4_parser.cc" break; - case 119: + case 119: // valid_lifetime: "valid-lifetime" ":" "integer" #line 506 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1076,7 +1076,7 @@ namespace isc { namespace dhcp { #line 1077 "dhcp4_parser.cc" break; - case 120: + case 120: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" #line 511 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1085,7 +1085,7 @@ namespace isc { namespace dhcp { #line 1086 "dhcp4_parser.cc" break; - case 121: + case 121: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" #line 516 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1094,7 +1094,7 @@ namespace isc { namespace dhcp { #line 1095 "dhcp4_parser.cc" break; - case 122: + case 122: // renew_timer: "renew-timer" ":" "integer" #line 521 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1103,7 +1103,7 @@ namespace isc { namespace dhcp { #line 1104 "dhcp4_parser.cc" break; - case 123: + case 123: // rebind_timer: "rebind-timer" ":" "integer" #line 526 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1112,7 +1112,7 @@ namespace isc { namespace dhcp { #line 1113 "dhcp4_parser.cc" break; - case 124: + case 124: // calculate_tee_times: "calculate-tee-times" ":" "boolean" #line 531 "dhcp4_parser.yy" { ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1121,7 +1121,7 @@ namespace isc { namespace dhcp { #line 1122 "dhcp4_parser.cc" break; - case 125: + case 125: // t1_percent: "t1-percent" ":" "floating point" #line 536 "dhcp4_parser.yy" { ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1130,7 +1130,7 @@ namespace isc { namespace dhcp { #line 1131 "dhcp4_parser.cc" break; - case 126: + case 126: // t2_percent: "t2-percent" ":" "floating point" #line 541 "dhcp4_parser.yy" { ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1139,7 +1139,7 @@ namespace isc { namespace dhcp { #line 1140 "dhcp4_parser.cc" break; - case 127: + case 127: // decline_probation_period: "decline-probation-period" ":" "integer" #line 546 "dhcp4_parser.yy" { ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1148,7 +1148,7 @@ namespace isc { namespace dhcp { #line 1149 "dhcp4_parser.cc" break; - case 128: + case 128: // $@20: %empty #line 551 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1156,7 +1156,7 @@ namespace isc { namespace dhcp { #line 1157 "dhcp4_parser.cc" break; - case 129: + case 129: // server_tag: "server-tag" $@20 ":" "constant string" #line 553 "dhcp4_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1166,7 +1166,7 @@ namespace isc { namespace dhcp { #line 1167 "dhcp4_parser.cc" break; - case 130: + case 130: // echo_client_id: "echo-client-id" ":" "boolean" #line 559 "dhcp4_parser.yy" { ElementPtr echo(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1175,7 +1175,7 @@ namespace isc { namespace dhcp { #line 1176 "dhcp4_parser.cc" break; - case 131: + case 131: // match_client_id: "match-client-id" ":" "boolean" #line 564 "dhcp4_parser.yy" { ElementPtr match(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1184,7 +1184,7 @@ namespace isc { namespace dhcp { #line 1185 "dhcp4_parser.cc" break; - case 132: + case 132: // authoritative: "authoritative" ":" "boolean" #line 569 "dhcp4_parser.yy" { ElementPtr prf(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1193,7 +1193,7 @@ namespace isc { namespace dhcp { #line 1194 "dhcp4_parser.cc" break; - case 133: + case 133: // ddns_send_updates: "ddns-send-updates" ":" "boolean" #line 574 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1202,7 +1202,7 @@ namespace isc { namespace dhcp { #line 1203 "dhcp4_parser.cc" break; - case 134: + case 134: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" #line 579 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1211,7 +1211,7 @@ namespace isc { namespace dhcp { #line 1212 "dhcp4_parser.cc" break; - case 135: + case 135: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" #line 584 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1220,7 +1220,7 @@ namespace isc { namespace dhcp { #line 1221 "dhcp4_parser.cc" break; - case 136: + case 136: // $@21: %empty #line 589 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -1228,7 +1228,7 @@ namespace isc { namespace dhcp { #line 1229 "dhcp4_parser.cc" break; - case 137: + case 137: // ddns_replace_client_name: "ddns-replace-client-name" $@21 ":" ddns_replace_client_name_value #line 591 "dhcp4_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); @@ -1237,7 +1237,7 @@ namespace isc { namespace dhcp { #line 1238 "dhcp4_parser.cc" break; - case 138: + case 138: // ddns_replace_client_name_value: "when-present" #line 597 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); @@ -1245,7 +1245,7 @@ namespace isc { namespace dhcp { #line 1246 "dhcp4_parser.cc" break; - case 139: + case 139: // ddns_replace_client_name_value: "never" #line 600 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); @@ -1253,7 +1253,7 @@ namespace isc { namespace dhcp { #line 1254 "dhcp4_parser.cc" break; - case 140: + case 140: // ddns_replace_client_name_value: "always" #line 603 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); @@ -1261,7 +1261,7 @@ namespace isc { namespace dhcp { #line 1262 "dhcp4_parser.cc" break; - case 141: + case 141: // ddns_replace_client_name_value: "when-not-present" #line 606 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); @@ -1269,7 +1269,7 @@ namespace isc { namespace dhcp { #line 1270 "dhcp4_parser.cc" break; - case 142: + case 142: // ddns_replace_client_name_value: "boolean" #line 609 "dhcp4_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " @@ -1278,7 +1278,7 @@ namespace isc { namespace dhcp { #line 1279 "dhcp4_parser.cc" break; - case 143: + case 143: // $@22: %empty #line 615 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1286,7 +1286,7 @@ namespace isc { namespace dhcp { #line 1287 "dhcp4_parser.cc" break; - case 144: + case 144: // ddns_generated_prefix: "ddns-generated-prefix" $@22 ":" "constant string" #line 617 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1296,7 +1296,7 @@ namespace isc { namespace dhcp { #line 1297 "dhcp4_parser.cc" break; - case 145: + case 145: // $@23: %empty #line 623 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1304,7 +1304,7 @@ namespace isc { namespace dhcp { #line 1305 "dhcp4_parser.cc" break; - case 146: + case 146: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@23 ":" "constant string" #line 625 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1314,7 +1314,7 @@ namespace isc { namespace dhcp { #line 1315 "dhcp4_parser.cc" break; - case 147: + case 147: // $@24: %empty #line 631 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1322,7 +1322,7 @@ namespace isc { namespace dhcp { #line 1323 "dhcp4_parser.cc" break; - case 148: + case 148: // hostname_char_set: "hostname-char-set" $@24 ":" "constant string" #line 633 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1332,7 +1332,7 @@ namespace isc { namespace dhcp { #line 1333 "dhcp4_parser.cc" break; - case 149: + case 149: // $@25: %empty #line 639 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1340,7 +1340,7 @@ namespace isc { namespace dhcp { #line 1341 "dhcp4_parser.cc" break; - case 150: + case 150: // hostname_char_replacement: "hostname-char-replacement" $@25 ":" "constant string" #line 641 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1350,7 +1350,7 @@ namespace isc { namespace dhcp { #line 1351 "dhcp4_parser.cc" break; - case 151: + case 151: // store_extended_info: "store-extended-info" ":" "boolean" #line 647 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1359,7 +1359,7 @@ namespace isc { namespace dhcp { #line 1360 "dhcp4_parser.cc" break; - case 152: + case 152: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" #line 652 "dhcp4_parser.yy" { ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1368,7 +1368,7 @@ namespace isc { namespace dhcp { #line 1369 "dhcp4_parser.cc" break; - case 153: + case 153: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" #line 657 "dhcp4_parser.yy" { ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1377,7 +1377,7 @@ namespace isc { namespace dhcp { #line 1378 "dhcp4_parser.cc" break; - case 154: + case 154: // $@26: %empty #line 662 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1388,7 +1388,7 @@ namespace isc { namespace dhcp { #line 1389 "dhcp4_parser.cc" break; - case 155: + case 155: // interfaces_config: "interfaces-config" $@26 ":" "{" interfaces_config_params "}" #line 667 "dhcp4_parser.yy" { // No interfaces config param is required @@ -1398,7 +1398,7 @@ namespace isc { namespace dhcp { #line 1399 "dhcp4_parser.cc" break; - case 165: + case 165: // $@27: %empty #line 686 "dhcp4_parser.yy" { // Parse the interfaces-config map @@ -1408,7 +1408,7 @@ namespace isc { namespace dhcp { #line 1409 "dhcp4_parser.cc" break; - case 166: + case 166: // sub_interfaces4: "{" $@27 interfaces_config_params "}" #line 690 "dhcp4_parser.yy" { // No interfaces config param is required @@ -1417,7 +1417,7 @@ namespace isc { namespace dhcp { #line 1418 "dhcp4_parser.cc" break; - case 167: + case 167: // $@28: %empty #line 695 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1428,7 +1428,7 @@ namespace isc { namespace dhcp { #line 1429 "dhcp4_parser.cc" break; - case 168: + case 168: // interfaces_list: "interfaces" $@28 ":" list_strings #line 700 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -1437,7 +1437,7 @@ namespace isc { namespace dhcp { #line 1438 "dhcp4_parser.cc" break; - case 169: + case 169: // $@29: %empty #line 705 "dhcp4_parser.yy" { ctx.enter(ctx.DHCP_SOCKET_TYPE); @@ -1445,7 +1445,7 @@ namespace isc { namespace dhcp { #line 1446 "dhcp4_parser.cc" break; - case 170: + case 170: // dhcp_socket_type: "dhcp-socket-type" $@29 ":" socket_type #line 707 "dhcp4_parser.yy" { ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as < ElementPtr > ()); @@ -1454,19 +1454,19 @@ namespace isc { namespace dhcp { #line 1455 "dhcp4_parser.cc" break; - case 171: + case 171: // socket_type: "raw" #line 712 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); } #line 1461 "dhcp4_parser.cc" break; - case 172: + case 172: // socket_type: "udp" #line 713 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); } #line 1467 "dhcp4_parser.cc" break; - case 173: + case 173: // $@30: %empty #line 716 "dhcp4_parser.yy" { ctx.enter(ctx.OUTBOUND_INTERFACE); @@ -1474,7 +1474,7 @@ namespace isc { namespace dhcp { #line 1475 "dhcp4_parser.cc" break; - case 174: + case 174: // outbound_interface: "outbound-interface" $@30 ":" outbound_interface_value #line 718 "dhcp4_parser.yy" { ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as < ElementPtr > ()); @@ -1483,7 +1483,7 @@ namespace isc { namespace dhcp { #line 1484 "dhcp4_parser.cc" break; - case 175: + case 175: // outbound_interface_value: "same-as-inbound" #line 723 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location))); @@ -1491,7 +1491,7 @@ namespace isc { namespace dhcp { #line 1492 "dhcp4_parser.cc" break; - case 176: + case 176: // outbound_interface_value: "use-routing" #line 725 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location))); @@ -1499,7 +1499,7 @@ namespace isc { namespace dhcp { #line 1500 "dhcp4_parser.cc" break; - case 177: + case 177: // re_detect: "re-detect" ":" "boolean" #line 729 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1508,7 +1508,7 @@ namespace isc { namespace dhcp { #line 1509 "dhcp4_parser.cc" break; - case 178: + case 178: // $@31: %empty #line 735 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1519,7 +1519,7 @@ namespace isc { namespace dhcp { #line 1520 "dhcp4_parser.cc" break; - case 179: + case 179: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" #line 740 "dhcp4_parser.yy" { // The type parameter is required @@ -1530,7 +1530,7 @@ namespace isc { namespace dhcp { #line 1531 "dhcp4_parser.cc" break; - case 180: + case 180: // $@32: %empty #line 747 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1541,7 +1541,7 @@ namespace isc { namespace dhcp { #line 1542 "dhcp4_parser.cc" break; - case 181: + case 181: // sanity_checks: "sanity-checks" $@32 ":" "{" sanity_checks_params "}" #line 752 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -1550,7 +1550,7 @@ namespace isc { namespace dhcp { #line 1551 "dhcp4_parser.cc" break; - case 185: + case 185: // $@33: %empty #line 762 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1558,7 +1558,7 @@ namespace isc { namespace dhcp { #line 1559 "dhcp4_parser.cc" break; - case 186: + case 186: // lease_checks: "lease-checks" $@33 ":" "constant string" #line 764 "dhcp4_parser.yy" { @@ -1578,7 +1578,7 @@ namespace isc { namespace dhcp { #line 1579 "dhcp4_parser.cc" break; - case 187: + case 187: // $@34: %empty #line 780 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1589,7 +1589,7 @@ namespace isc { namespace dhcp { #line 1590 "dhcp4_parser.cc" break; - case 188: + case 188: // hosts_database: "hosts-database" $@34 ":" "{" database_map_params "}" #line 785 "dhcp4_parser.yy" { // The type parameter is required @@ -1600,7 +1600,7 @@ namespace isc { namespace dhcp { #line 1601 "dhcp4_parser.cc" break; - case 189: + case 189: // $@35: %empty #line 792 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1611,7 +1611,7 @@ namespace isc { namespace dhcp { #line 1612 "dhcp4_parser.cc" break; - case 190: + case 190: // hosts_databases: "hosts-databases" $@35 ":" "[" database_list "]" #line 797 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -1620,7 +1620,7 @@ namespace isc { namespace dhcp { #line 1621 "dhcp4_parser.cc" break; - case 195: + case 195: // $@36: %empty #line 810 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1630,7 +1630,7 @@ namespace isc { namespace dhcp { #line 1631 "dhcp4_parser.cc" break; - case 196: + case 196: // database: "{" $@36 database_map_params "}" #line 814 "dhcp4_parser.yy" { // The type parameter is required @@ -1640,7 +1640,7 @@ namespace isc { namespace dhcp { #line 1641 "dhcp4_parser.cc" break; - case 220: + case 220: // $@37: %empty #line 847 "dhcp4_parser.yy" { ctx.enter(ctx.DATABASE_TYPE); @@ -1648,7 +1648,7 @@ namespace isc { namespace dhcp { #line 1649 "dhcp4_parser.cc" break; - case 221: + case 221: // database_type: "type" $@37 ":" db_type #line 849 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); @@ -1657,31 +1657,31 @@ namespace isc { namespace dhcp { #line 1658 "dhcp4_parser.cc" break; - case 222: + case 222: // db_type: "memfile" #line 854 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1664 "dhcp4_parser.cc" break; - case 223: + case 223: // db_type: "mysql" #line 855 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1670 "dhcp4_parser.cc" break; - case 224: + case 224: // db_type: "postgresql" #line 856 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1676 "dhcp4_parser.cc" break; - case 225: + case 225: // db_type: "cql" #line 857 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } #line 1682 "dhcp4_parser.cc" break; - case 226: + case 226: // $@38: %empty #line 860 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1689,7 +1689,7 @@ namespace isc { namespace dhcp { #line 1690 "dhcp4_parser.cc" break; - case 227: + case 227: // user: "user" $@38 ":" "constant string" #line 862 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1699,7 +1699,7 @@ namespace isc { namespace dhcp { #line 1700 "dhcp4_parser.cc" break; - case 228: + case 228: // $@39: %empty #line 868 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1707,7 +1707,7 @@ namespace isc { namespace dhcp { #line 1708 "dhcp4_parser.cc" break; - case 229: + case 229: // password: "password" $@39 ":" "constant string" #line 870 "dhcp4_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1717,7 +1717,7 @@ namespace isc { namespace dhcp { #line 1718 "dhcp4_parser.cc" break; - case 230: + case 230: // $@40: %empty #line 876 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1725,7 +1725,7 @@ namespace isc { namespace dhcp { #line 1726 "dhcp4_parser.cc" break; - case 231: + case 231: // host: "host" $@40 ":" "constant string" #line 878 "dhcp4_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1735,7 +1735,7 @@ namespace isc { namespace dhcp { #line 1736 "dhcp4_parser.cc" break; - case 232: + case 232: // port: "port" ":" "integer" #line 884 "dhcp4_parser.yy" { ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1744,7 +1744,7 @@ namespace isc { namespace dhcp { #line 1745 "dhcp4_parser.cc" break; - case 233: + case 233: // $@41: %empty #line 889 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1752,7 +1752,7 @@ namespace isc { namespace dhcp { #line 1753 "dhcp4_parser.cc" break; - case 234: + case 234: // name: "name" $@41 ":" "constant string" #line 891 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1762,7 +1762,7 @@ namespace isc { namespace dhcp { #line 1763 "dhcp4_parser.cc" break; - case 235: + case 235: // persist: "persist" ":" "boolean" #line 897 "dhcp4_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1771,7 +1771,7 @@ namespace isc { namespace dhcp { #line 1772 "dhcp4_parser.cc" break; - case 236: + case 236: // lfc_interval: "lfc-interval" ":" "integer" #line 902 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1780,7 +1780,7 @@ namespace isc { namespace dhcp { #line 1781 "dhcp4_parser.cc" break; - case 237: + case 237: // readonly: "readonly" ":" "boolean" #line 907 "dhcp4_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1789,7 +1789,7 @@ namespace isc { namespace dhcp { #line 1790 "dhcp4_parser.cc" break; - case 238: + case 238: // connect_timeout: "connect-timeout" ":" "integer" #line 912 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1798,7 +1798,7 @@ namespace isc { namespace dhcp { #line 1799 "dhcp4_parser.cc" break; - case 239: + case 239: // request_timeout: "request-timeout" ":" "integer" #line 917 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1807,7 +1807,7 @@ namespace isc { namespace dhcp { #line 1808 "dhcp4_parser.cc" break; - case 240: + case 240: // tcp_keepalive: "tcp-keepalive" ":" "integer" #line 922 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1816,7 +1816,7 @@ namespace isc { namespace dhcp { #line 1817 "dhcp4_parser.cc" break; - case 241: + case 241: // tcp_nodelay: "tcp-nodelay" ":" "boolean" #line 927 "dhcp4_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1825,7 +1825,7 @@ namespace isc { namespace dhcp { #line 1826 "dhcp4_parser.cc" break; - case 242: + case 242: // $@42: %empty #line 932 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1833,7 +1833,7 @@ namespace isc { namespace dhcp { #line 1834 "dhcp4_parser.cc" break; - case 243: + case 243: // contact_points: "contact-points" $@42 ":" "constant string" #line 934 "dhcp4_parser.yy" { ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1843,7 +1843,7 @@ namespace isc { namespace dhcp { #line 1844 "dhcp4_parser.cc" break; - case 244: + case 244: // $@43: %empty #line 940 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1851,7 +1851,7 @@ namespace isc { namespace dhcp { #line 1852 "dhcp4_parser.cc" break; - case 245: + case 245: // keyspace: "keyspace" $@43 ":" "constant string" #line 942 "dhcp4_parser.yy" { ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1861,7 +1861,7 @@ namespace isc { namespace dhcp { #line 1862 "dhcp4_parser.cc" break; - case 246: + case 246: // $@44: %empty #line 948 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1869,7 +1869,7 @@ namespace isc { namespace dhcp { #line 1870 "dhcp4_parser.cc" break; - case 247: + case 247: // consistency: "consistency" $@44 ":" "constant string" #line 950 "dhcp4_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1879,7 +1879,7 @@ namespace isc { namespace dhcp { #line 1880 "dhcp4_parser.cc" break; - case 248: + case 248: // $@45: %empty #line 956 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1887,7 +1887,7 @@ namespace isc { namespace dhcp { #line 1888 "dhcp4_parser.cc" break; - case 249: + case 249: // serial_consistency: "serial-consistency" $@45 ":" "constant string" #line 958 "dhcp4_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1897,7 +1897,7 @@ namespace isc { namespace dhcp { #line 1898 "dhcp4_parser.cc" break; - case 250: + case 250: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" #line 964 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1906,7 +1906,7 @@ namespace isc { namespace dhcp { #line 1907 "dhcp4_parser.cc" break; - case 251: + case 251: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" #line 969 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1915,7 +1915,7 @@ namespace isc { namespace dhcp { #line 1916 "dhcp4_parser.cc" break; - case 252: + case 252: // max_row_errors: "max-row-errors" ":" "integer" #line 974 "dhcp4_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1924,7 +1924,7 @@ namespace isc { namespace dhcp { #line 1925 "dhcp4_parser.cc" break; - case 253: + case 253: // $@46: %empty #line 980 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1935,7 +1935,7 @@ namespace isc { namespace dhcp { #line 1936 "dhcp4_parser.cc" break; - case 254: + case 254: // host_reservation_identifiers: "host-reservation-identifiers" $@46 ":" "[" host_reservation_identifiers_list "]" #line 985 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -1944,7 +1944,7 @@ namespace isc { namespace dhcp { #line 1945 "dhcp4_parser.cc" break; - case 262: + case 262: // duid_id: "duid" #line 1001 "dhcp4_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); @@ -1953,7 +1953,7 @@ namespace isc { namespace dhcp { #line 1954 "dhcp4_parser.cc" break; - case 263: + case 263: // hw_address_id: "hw-address" #line 1006 "dhcp4_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); @@ -1962,7 +1962,7 @@ namespace isc { namespace dhcp { #line 1963 "dhcp4_parser.cc" break; - case 264: + case 264: // circuit_id: "circuit-id" #line 1011 "dhcp4_parser.yy" { ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location))); @@ -1971,7 +1971,7 @@ namespace isc { namespace dhcp { #line 1972 "dhcp4_parser.cc" break; - case 265: + case 265: // client_id: "client-id" #line 1016 "dhcp4_parser.yy" { ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location))); @@ -1980,7 +1980,7 @@ namespace isc { namespace dhcp { #line 1981 "dhcp4_parser.cc" break; - case 266: + case 266: // flex_id: "flex-id" #line 1021 "dhcp4_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); @@ -1989,7 +1989,7 @@ namespace isc { namespace dhcp { #line 1990 "dhcp4_parser.cc" break; - case 267: + case 267: // $@47: %empty #line 1028 "dhcp4_parser.yy" { ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2000,7 +2000,7 @@ namespace isc { namespace dhcp { #line 2001 "dhcp4_parser.cc" break; - case 268: + case 268: // dhcp_multi_threading: "multi-threading" $@47 ":" "{" multi_threading_params "}" #line 1033 "dhcp4_parser.yy" { // The enable parameter is required. @@ -2011,7 +2011,7 @@ namespace isc { namespace dhcp { #line 2012 "dhcp4_parser.cc" break; - case 277: + case 277: // enable_multi_threading: "enable-multi-threading" ":" "boolean" #line 1052 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2020,7 +2020,7 @@ namespace isc { namespace dhcp { #line 2021 "dhcp4_parser.cc" break; - case 278: + case 278: // thread_pool_size: "thread-pool-size" ":" "integer" #line 1057 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2029,7 +2029,7 @@ namespace isc { namespace dhcp { #line 2030 "dhcp4_parser.cc" break; - case 279: + case 279: // packet_queue_size: "packet-queue-size" ":" "integer" #line 1062 "dhcp4_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2038,7 +2038,7 @@ namespace isc { namespace dhcp { #line 2039 "dhcp4_parser.cc" break; - case 280: + case 280: // $@48: %empty #line 1067 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2049,7 +2049,7 @@ namespace isc { namespace dhcp { #line 2050 "dhcp4_parser.cc" break; - case 281: + case 281: // hooks_libraries: "hooks-libraries" $@48 ":" "[" hooks_libraries_list "]" #line 1072 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2058,7 +2058,7 @@ namespace isc { namespace dhcp { #line 2059 "dhcp4_parser.cc" break; - case 286: + case 286: // $@49: %empty #line 1085 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2068,7 +2068,7 @@ namespace isc { namespace dhcp { #line 2069 "dhcp4_parser.cc" break; - case 287: + case 287: // hooks_library: "{" $@49 hooks_params "}" #line 1089 "dhcp4_parser.yy" { // The library hooks parameter is required @@ -2078,7 +2078,7 @@ namespace isc { namespace dhcp { #line 2079 "dhcp4_parser.cc" break; - case 288: + case 288: // $@50: %empty #line 1095 "dhcp4_parser.yy" { // Parse the hooks-libraries list entry map @@ -2088,7 +2088,7 @@ namespace isc { namespace dhcp { #line 2089 "dhcp4_parser.cc" break; - case 289: + case 289: // sub_hooks_library: "{" $@50 hooks_params "}" #line 1099 "dhcp4_parser.yy" { // The library hooks parameter is required @@ -2098,7 +2098,7 @@ namespace isc { namespace dhcp { #line 2099 "dhcp4_parser.cc" break; - case 295: + case 295: // $@51: %empty #line 1114 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2106,7 +2106,7 @@ namespace isc { namespace dhcp { #line 2107 "dhcp4_parser.cc" break; - case 296: + case 296: // library: "library" $@51 ":" "constant string" #line 1116 "dhcp4_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2116,7 +2116,7 @@ namespace isc { namespace dhcp { #line 2117 "dhcp4_parser.cc" break; - case 297: + case 297: // $@52: %empty #line 1122 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2124,7 +2124,7 @@ namespace isc { namespace dhcp { #line 2125 "dhcp4_parser.cc" break; - case 298: + case 298: // parameters: "parameters" $@52 ":" map_value #line 1124 "dhcp4_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); @@ -2133,7 +2133,7 @@ namespace isc { namespace dhcp { #line 2134 "dhcp4_parser.cc" break; - case 299: + case 299: // $@53: %empty #line 1130 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2144,7 +2144,7 @@ namespace isc { namespace dhcp { #line 2145 "dhcp4_parser.cc" break; - case 300: + case 300: // expired_leases_processing: "expired-leases-processing" $@53 ":" "{" expired_leases_params "}" #line 1135 "dhcp4_parser.yy" { // No expired lease parameter is required @@ -2154,7 +2154,7 @@ namespace isc { namespace dhcp { #line 2155 "dhcp4_parser.cc" break; - case 309: + case 309: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" #line 1153 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2163,7 +2163,7 @@ namespace isc { namespace dhcp { #line 2164 "dhcp4_parser.cc" break; - case 310: + case 310: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" #line 1158 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2172,7 +2172,7 @@ namespace isc { namespace dhcp { #line 2173 "dhcp4_parser.cc" break; - case 311: + case 311: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" #line 1163 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2181,7 +2181,7 @@ namespace isc { namespace dhcp { #line 2182 "dhcp4_parser.cc" break; - case 312: + case 312: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" #line 1168 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2190,7 +2190,7 @@ namespace isc { namespace dhcp { #line 2191 "dhcp4_parser.cc" break; - case 313: + case 313: // max_reclaim_time: "max-reclaim-time" ":" "integer" #line 1173 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2199,7 +2199,7 @@ namespace isc { namespace dhcp { #line 2200 "dhcp4_parser.cc" break; - case 314: + case 314: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" #line 1178 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2208,7 +2208,7 @@ namespace isc { namespace dhcp { #line 2209 "dhcp4_parser.cc" break; - case 315: + case 315: // $@54: %empty #line 1186 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2219,7 +2219,7 @@ namespace isc { namespace dhcp { #line 2220 "dhcp4_parser.cc" break; - case 316: + case 316: // subnet4_list: "subnet4" $@54 ":" "[" subnet4_list_content "]" #line 1191 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2228,7 +2228,7 @@ namespace isc { namespace dhcp { #line 2229 "dhcp4_parser.cc" break; - case 321: + case 321: // $@55: %empty #line 1211 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2238,7 +2238,7 @@ namespace isc { namespace dhcp { #line 2239 "dhcp4_parser.cc" break; - case 322: + case 322: // subnet4: "{" $@55 subnet4_params "}" #line 1215 "dhcp4_parser.yy" { // Once we reached this place, the subnet parsing is now complete. @@ -2264,7 +2264,7 @@ namespace isc { namespace dhcp { #line 2265 "dhcp4_parser.cc" break; - case 323: + case 323: // $@56: %empty #line 1237 "dhcp4_parser.yy" { // Parse the subnet4 list entry map @@ -2274,7 +2274,7 @@ namespace isc { namespace dhcp { #line 2275 "dhcp4_parser.cc" break; - case 324: + case 324: // sub_subnet4: "{" $@56 subnet4_params "}" #line 1241 "dhcp4_parser.yy" { // The subnet subnet4 parameter is required @@ -2284,7 +2284,7 @@ namespace isc { namespace dhcp { #line 2285 "dhcp4_parser.cc" break; - case 365: + case 365: // $@57: %empty #line 1293 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2292,7 +2292,7 @@ namespace isc { namespace dhcp { #line 2293 "dhcp4_parser.cc" break; - case 366: + case 366: // subnet: "subnet" $@57 ":" "constant string" #line 1295 "dhcp4_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2302,7 +2302,7 @@ namespace isc { namespace dhcp { #line 2303 "dhcp4_parser.cc" break; - case 367: + case 367: // $@58: %empty #line 1301 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2310,7 +2310,7 @@ namespace isc { namespace dhcp { #line 2311 "dhcp4_parser.cc" break; - case 368: + case 368: // subnet_4o6_interface: "4o6-interface" $@58 ":" "constant string" #line 1303 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2320,7 +2320,7 @@ namespace isc { namespace dhcp { #line 2321 "dhcp4_parser.cc" break; - case 369: + case 369: // $@59: %empty #line 1309 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2328,7 +2328,7 @@ namespace isc { namespace dhcp { #line 2329 "dhcp4_parser.cc" break; - case 370: + case 370: // subnet_4o6_interface_id: "4o6-interface-id" $@59 ":" "constant string" #line 1311 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2338,7 +2338,7 @@ namespace isc { namespace dhcp { #line 2339 "dhcp4_parser.cc" break; - case 371: + case 371: // $@60: %empty #line 1317 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2346,7 +2346,7 @@ namespace isc { namespace dhcp { #line 2347 "dhcp4_parser.cc" break; - case 372: + case 372: // subnet_4o6_subnet: "4o6-subnet" $@60 ":" "constant string" #line 1319 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2356,7 +2356,7 @@ namespace isc { namespace dhcp { #line 2357 "dhcp4_parser.cc" break; - case 373: + case 373: // $@61: %empty #line 1325 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2364,7 +2364,7 @@ namespace isc { namespace dhcp { #line 2365 "dhcp4_parser.cc" break; - case 374: + case 374: // interface: "interface" $@61 ":" "constant string" #line 1327 "dhcp4_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2374,7 +2374,7 @@ namespace isc { namespace dhcp { #line 2375 "dhcp4_parser.cc" break; - case 375: + case 375: // $@62: %empty #line 1333 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2382,7 +2382,7 @@ namespace isc { namespace dhcp { #line 2383 "dhcp4_parser.cc" break; - case 376: + case 376: // client_class: "client-class" $@62 ":" "constant string" #line 1335 "dhcp4_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2392,7 +2392,7 @@ namespace isc { namespace dhcp { #line 2393 "dhcp4_parser.cc" break; - case 377: + case 377: // $@63: %empty #line 1341 "dhcp4_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2403,7 +2403,7 @@ namespace isc { namespace dhcp { #line 2404 "dhcp4_parser.cc" break; - case 378: + case 378: // require_client_classes: "require-client-classes" $@63 ":" list_strings #line 1346 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2412,7 +2412,7 @@ namespace isc { namespace dhcp { #line 2413 "dhcp4_parser.cc" break; - case 379: + case 379: // $@64: %empty #line 1351 "dhcp4_parser.yy" { ctx.enter(ctx.RESERVATION_MODE); @@ -2420,7 +2420,7 @@ namespace isc { namespace dhcp { #line 2421 "dhcp4_parser.cc" break; - case 380: + case 380: // reservation_mode: "reservation-mode" $@64 ":" hr_mode #line 1353 "dhcp4_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); @@ -2429,31 +2429,31 @@ namespace isc { namespace dhcp { #line 2430 "dhcp4_parser.cc" break; - case 381: + case 381: // hr_mode: "disabled" #line 1358 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } #line 2436 "dhcp4_parser.cc" break; - case 382: + case 382: // hr_mode: "out-of-pool" #line 1359 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } #line 2442 "dhcp4_parser.cc" break; - case 383: + case 383: // hr_mode: "global" #line 1360 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } #line 2448 "dhcp4_parser.cc" break; - case 384: + case 384: // hr_mode: "all" #line 1361 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } #line 2454 "dhcp4_parser.cc" break; - case 385: + case 385: // id: "id" ":" "integer" #line 1364 "dhcp4_parser.yy" { ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2462,7 +2462,7 @@ namespace isc { namespace dhcp { #line 2463 "dhcp4_parser.cc" break; - case 386: + case 386: // $@65: %empty #line 1371 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2473,7 +2473,7 @@ namespace isc { namespace dhcp { #line 2474 "dhcp4_parser.cc" break; - case 387: + case 387: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" #line 1376 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2482,7 +2482,7 @@ namespace isc { namespace dhcp { #line 2483 "dhcp4_parser.cc" break; - case 392: + case 392: // $@66: %empty #line 1391 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2492,7 +2492,7 @@ namespace isc { namespace dhcp { #line 2493 "dhcp4_parser.cc" break; - case 393: + case 393: // shared_network: "{" $@66 shared_network_params "}" #line 1395 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2500,7 +2500,7 @@ namespace isc { namespace dhcp { #line 2501 "dhcp4_parser.cc" break; - case 429: + case 429: // $@67: %empty #line 1442 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2511,7 +2511,7 @@ namespace isc { namespace dhcp { #line 2512 "dhcp4_parser.cc" break; - case 430: + case 430: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" #line 1447 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2520,7 +2520,7 @@ namespace isc { namespace dhcp { #line 2521 "dhcp4_parser.cc" break; - case 431: + case 431: // $@68: %empty #line 1455 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2529,7 +2529,7 @@ namespace isc { namespace dhcp { #line 2530 "dhcp4_parser.cc" break; - case 432: + case 432: // sub_option_def_list: "{" $@68 option_def_list "}" #line 1458 "dhcp4_parser.yy" { // parsing completed @@ -2537,7 +2537,7 @@ namespace isc { namespace dhcp { #line 2538 "dhcp4_parser.cc" break; - case 437: + case 437: // $@69: %empty #line 1474 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2547,7 +2547,7 @@ namespace isc { namespace dhcp { #line 2548 "dhcp4_parser.cc" break; - case 438: + case 438: // option_def_entry: "{" $@69 option_def_params "}" #line 1478 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. @@ -2559,7 +2559,7 @@ namespace isc { namespace dhcp { #line 2560 "dhcp4_parser.cc" break; - case 439: + case 439: // $@70: %empty #line 1489 "dhcp4_parser.yy" { // Parse the option-def list entry map @@ -2569,7 +2569,7 @@ namespace isc { namespace dhcp { #line 2570 "dhcp4_parser.cc" break; - case 440: + case 440: // sub_option_def: "{" $@70 option_def_params "}" #line 1493 "dhcp4_parser.yy" { // The name, code and type option def parameters are required. @@ -2581,7 +2581,7 @@ namespace isc { namespace dhcp { #line 2582 "dhcp4_parser.cc" break; - case 456: + case 456: // code: "code" ":" "integer" #line 1525 "dhcp4_parser.yy" { ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2590,7 +2590,7 @@ namespace isc { namespace dhcp { #line 2591 "dhcp4_parser.cc" break; - case 458: + case 458: // $@71: %empty #line 1532 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2598,7 +2598,7 @@ namespace isc { namespace dhcp { #line 2599 "dhcp4_parser.cc" break; - case 459: + case 459: // option_def_type: "type" $@71 ":" "constant string" #line 1534 "dhcp4_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2608,7 +2608,7 @@ namespace isc { namespace dhcp { #line 2609 "dhcp4_parser.cc" break; - case 460: + case 460: // $@72: %empty #line 1540 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2616,7 +2616,7 @@ namespace isc { namespace dhcp { #line 2617 "dhcp4_parser.cc" break; - case 461: + case 461: // option_def_record_types: "record-types" $@72 ":" "constant string" #line 1542 "dhcp4_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2626,7 +2626,7 @@ namespace isc { namespace dhcp { #line 2627 "dhcp4_parser.cc" break; - case 462: + case 462: // $@73: %empty #line 1548 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2634,7 +2634,7 @@ namespace isc { namespace dhcp { #line 2635 "dhcp4_parser.cc" break; - case 463: + case 463: // space: "space" $@73 ":" "constant string" #line 1550 "dhcp4_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2644,7 +2644,7 @@ namespace isc { namespace dhcp { #line 2645 "dhcp4_parser.cc" break; - case 465: + case 465: // $@74: %empty #line 1558 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2652,7 +2652,7 @@ namespace isc { namespace dhcp { #line 2653 "dhcp4_parser.cc" break; - case 466: + case 466: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" #line 1560 "dhcp4_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2662,7 +2662,7 @@ namespace isc { namespace dhcp { #line 2663 "dhcp4_parser.cc" break; - case 467: + case 467: // option_def_array: "array" ":" "boolean" #line 1566 "dhcp4_parser.yy" { ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2671,7 +2671,7 @@ namespace isc { namespace dhcp { #line 2672 "dhcp4_parser.cc" break; - case 468: + case 468: // $@75: %empty #line 1575 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2682,7 +2682,7 @@ namespace isc { namespace dhcp { #line 2683 "dhcp4_parser.cc" break; - case 469: + case 469: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" #line 1580 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2691,7 +2691,7 @@ namespace isc { namespace dhcp { #line 2692 "dhcp4_parser.cc" break; - case 474: + case 474: // $@76: %empty #line 1599 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2701,7 +2701,7 @@ namespace isc { namespace dhcp { #line 2702 "dhcp4_parser.cc" break; - case 475: + case 475: // option_data_entry: "{" $@76 option_data_params "}" #line 1603 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. @@ -2710,7 +2710,7 @@ namespace isc { namespace dhcp { #line 2711 "dhcp4_parser.cc" break; - case 476: + case 476: // $@77: %empty #line 1611 "dhcp4_parser.yy" { // Parse the option-data list entry map @@ -2720,7 +2720,7 @@ namespace isc { namespace dhcp { #line 2721 "dhcp4_parser.cc" break; - case 477: + case 477: // sub_option_data: "{" $@77 option_data_params "}" #line 1615 "dhcp4_parser.yy" { /// @todo: the code or name parameters are required. @@ -2729,7 +2729,7 @@ namespace isc { namespace dhcp { #line 2730 "dhcp4_parser.cc" break; - case 492: + case 492: // $@78: %empty #line 1648 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2737,7 +2737,7 @@ namespace isc { namespace dhcp { #line 2738 "dhcp4_parser.cc" break; - case 493: + case 493: // option_data_data: "data" $@78 ":" "constant string" #line 1650 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2747,7 +2747,7 @@ namespace isc { namespace dhcp { #line 2748 "dhcp4_parser.cc" break; - case 496: + case 496: // option_data_csv_format: "csv-format" ":" "boolean" #line 1660 "dhcp4_parser.yy" { ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2756,7 +2756,7 @@ namespace isc { namespace dhcp { #line 2757 "dhcp4_parser.cc" break; - case 497: + case 497: // option_data_always_send: "always-send" ":" "boolean" #line 1665 "dhcp4_parser.yy" { ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2765,7 +2765,7 @@ namespace isc { namespace dhcp { #line 2766 "dhcp4_parser.cc" break; - case 498: + case 498: // $@79: %empty #line 1673 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2776,7 +2776,7 @@ namespace isc { namespace dhcp { #line 2777 "dhcp4_parser.cc" break; - case 499: + case 499: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" #line 1678 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2785,7 +2785,7 @@ namespace isc { namespace dhcp { #line 2786 "dhcp4_parser.cc" break; - case 504: + case 504: // $@80: %empty #line 1693 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2795,7 +2795,7 @@ namespace isc { namespace dhcp { #line 2796 "dhcp4_parser.cc" break; - case 505: + case 505: // pool_list_entry: "{" $@80 pool_params "}" #line 1697 "dhcp4_parser.yy" { // The pool parameter is required. @@ -2805,7 +2805,7 @@ namespace isc { namespace dhcp { #line 2806 "dhcp4_parser.cc" break; - case 506: + case 506: // $@81: %empty #line 1703 "dhcp4_parser.yy" { // Parse the pool list entry map @@ -2815,7 +2815,7 @@ namespace isc { namespace dhcp { #line 2816 "dhcp4_parser.cc" break; - case 507: + case 507: // sub_pool4: "{" $@81 pool_params "}" #line 1707 "dhcp4_parser.yy" { // The pool parameter is required. @@ -2825,7 +2825,7 @@ namespace isc { namespace dhcp { #line 2826 "dhcp4_parser.cc" break; - case 517: + case 517: // $@82: %empty #line 1726 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2833,7 +2833,7 @@ namespace isc { namespace dhcp { #line 2834 "dhcp4_parser.cc" break; - case 518: + case 518: // pool_entry: "pool" $@82 ":" "constant string" #line 1728 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2843,7 +2843,7 @@ namespace isc { namespace dhcp { #line 2844 "dhcp4_parser.cc" break; - case 519: + case 519: // $@83: %empty #line 1734 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2851,7 +2851,7 @@ namespace isc { namespace dhcp { #line 2852 "dhcp4_parser.cc" break; - case 520: + case 520: // user_context: "user-context" $@83 ":" map_value #line 1736 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -2878,7 +2878,7 @@ namespace isc { namespace dhcp { #line 2879 "dhcp4_parser.cc" break; - case 521: + case 521: // $@84: %empty #line 1759 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2886,7 +2886,7 @@ namespace isc { namespace dhcp { #line 2887 "dhcp4_parser.cc" break; - case 522: + case 522: // comment: "comment" $@84 ":" "constant string" #line 1761 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -2915,7 +2915,7 @@ namespace isc { namespace dhcp { #line 2916 "dhcp4_parser.cc" break; - case 523: + case 523: // $@85: %empty #line 1789 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2926,7 +2926,7 @@ namespace isc { namespace dhcp { #line 2927 "dhcp4_parser.cc" break; - case 524: + case 524: // reservations: "reservations" $@85 ":" "[" reservations_list "]" #line 1794 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -2935,7 +2935,7 @@ namespace isc { namespace dhcp { #line 2936 "dhcp4_parser.cc" break; - case 529: + case 529: // $@86: %empty #line 1807 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2945,7 +2945,7 @@ namespace isc { namespace dhcp { #line 2946 "dhcp4_parser.cc" break; - case 530: + case 530: // reservation: "{" $@86 reservation_params "}" #line 1811 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. @@ -2954,7 +2954,7 @@ namespace isc { namespace dhcp { #line 2955 "dhcp4_parser.cc" break; - case 531: + case 531: // $@87: %empty #line 1816 "dhcp4_parser.yy" { // Parse the reservations list entry map @@ -2964,7 +2964,7 @@ namespace isc { namespace dhcp { #line 2965 "dhcp4_parser.cc" break; - case 532: + case 532: // sub_reservation: "{" $@87 reservation_params "}" #line 1820 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. @@ -2973,7 +2973,7 @@ namespace isc { namespace dhcp { #line 2974 "dhcp4_parser.cc" break; - case 552: + case 552: // $@88: %empty #line 1851 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2981,7 +2981,7 @@ namespace isc { namespace dhcp { #line 2982 "dhcp4_parser.cc" break; - case 553: + case 553: // next_server: "next-server" $@88 ":" "constant string" #line 1853 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2991,7 +2991,7 @@ namespace isc { namespace dhcp { #line 2992 "dhcp4_parser.cc" break; - case 554: + case 554: // $@89: %empty #line 1859 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2999,7 +2999,7 @@ namespace isc { namespace dhcp { #line 3000 "dhcp4_parser.cc" break; - case 555: + case 555: // server_hostname: "server-hostname" $@89 ":" "constant string" #line 1861 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3009,7 +3009,7 @@ namespace isc { namespace dhcp { #line 3010 "dhcp4_parser.cc" break; - case 556: + case 556: // $@90: %empty #line 1867 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3017,7 +3017,7 @@ namespace isc { namespace dhcp { #line 3018 "dhcp4_parser.cc" break; - case 557: + case 557: // boot_file_name: "boot-file-name" $@90 ":" "constant string" #line 1869 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3027,7 +3027,7 @@ namespace isc { namespace dhcp { #line 3028 "dhcp4_parser.cc" break; - case 558: + case 558: // $@91: %empty #line 1875 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3035,7 +3035,7 @@ namespace isc { namespace dhcp { #line 3036 "dhcp4_parser.cc" break; - case 559: + case 559: // ip_address: "ip-address" $@91 ":" "constant string" #line 1877 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3045,7 +3045,7 @@ namespace isc { namespace dhcp { #line 3046 "dhcp4_parser.cc" break; - case 560: + case 560: // $@92: %empty #line 1883 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3056,7 +3056,7 @@ namespace isc { namespace dhcp { #line 3057 "dhcp4_parser.cc" break; - case 561: + case 561: // ip_addresses: "ip-addresses" $@92 ":" list_strings #line 1888 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3065,7 +3065,7 @@ namespace isc { namespace dhcp { #line 3066 "dhcp4_parser.cc" break; - case 562: + case 562: // $@93: %empty #line 1893 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3073,7 +3073,7 @@ namespace isc { namespace dhcp { #line 3074 "dhcp4_parser.cc" break; - case 563: + case 563: // duid: "duid" $@93 ":" "constant string" #line 1895 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3083,7 +3083,7 @@ namespace isc { namespace dhcp { #line 3084 "dhcp4_parser.cc" break; - case 564: + case 564: // $@94: %empty #line 1901 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3091,7 +3091,7 @@ namespace isc { namespace dhcp { #line 3092 "dhcp4_parser.cc" break; - case 565: + case 565: // hw_address: "hw-address" $@94 ":" "constant string" #line 1903 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3101,7 +3101,7 @@ namespace isc { namespace dhcp { #line 3102 "dhcp4_parser.cc" break; - case 566: + case 566: // $@95: %empty #line 1909 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3109,7 +3109,7 @@ namespace isc { namespace dhcp { #line 3110 "dhcp4_parser.cc" break; - case 567: + case 567: // client_id_value: "client-id" $@95 ":" "constant string" #line 1911 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3119,7 +3119,7 @@ namespace isc { namespace dhcp { #line 3120 "dhcp4_parser.cc" break; - case 568: + case 568: // $@96: %empty #line 1917 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3127,7 +3127,7 @@ namespace isc { namespace dhcp { #line 3128 "dhcp4_parser.cc" break; - case 569: + case 569: // circuit_id_value: "circuit-id" $@96 ":" "constant string" #line 1919 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3137,7 +3137,7 @@ namespace isc { namespace dhcp { #line 3138 "dhcp4_parser.cc" break; - case 570: + case 570: // $@97: %empty #line 1925 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3145,7 +3145,7 @@ namespace isc { namespace dhcp { #line 3146 "dhcp4_parser.cc" break; - case 571: + case 571: // flex_id_value: "flex-id" $@97 ":" "constant string" #line 1927 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3155,7 +3155,7 @@ namespace isc { namespace dhcp { #line 3156 "dhcp4_parser.cc" break; - case 572: + case 572: // $@98: %empty #line 1933 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3163,7 +3163,7 @@ namespace isc { namespace dhcp { #line 3164 "dhcp4_parser.cc" break; - case 573: + case 573: // hostname: "hostname" $@98 ":" "constant string" #line 1935 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3173,7 +3173,7 @@ namespace isc { namespace dhcp { #line 3174 "dhcp4_parser.cc" break; - case 574: + case 574: // $@99: %empty #line 1941 "dhcp4_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3184,7 +3184,7 @@ namespace isc { namespace dhcp { #line 3185 "dhcp4_parser.cc" break; - case 575: + case 575: // reservation_client_classes: "client-classes" $@99 ":" list_strings #line 1946 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3193,7 +3193,7 @@ namespace isc { namespace dhcp { #line 3194 "dhcp4_parser.cc" break; - case 576: + case 576: // $@100: %empty #line 1954 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3204,7 +3204,7 @@ namespace isc { namespace dhcp { #line 3205 "dhcp4_parser.cc" break; - case 577: + case 577: // relay: "relay" $@100 ":" "{" relay_map "}" #line 1959 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3213,7 +3213,7 @@ namespace isc { namespace dhcp { #line 3214 "dhcp4_parser.cc" break; - case 580: + case 580: // $@101: %empty #line 1971 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3224,7 +3224,7 @@ namespace isc { namespace dhcp { #line 3225 "dhcp4_parser.cc" break; - case 581: + case 581: // client_classes: "client-classes" $@101 ":" "[" client_classes_list "]" #line 1976 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3233,7 +3233,7 @@ namespace isc { namespace dhcp { #line 3234 "dhcp4_parser.cc" break; - case 584: + case 584: // $@102: %empty #line 1985 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3243,7 +3243,7 @@ namespace isc { namespace dhcp { #line 3244 "dhcp4_parser.cc" break; - case 585: + case 585: // client_class_entry: "{" $@102 client_class_params "}" #line 1989 "dhcp4_parser.yy" { // The name client class parameter is required. @@ -3253,7 +3253,7 @@ namespace isc { namespace dhcp { #line 3254 "dhcp4_parser.cc" break; - case 602: + case 602: // $@103: %empty #line 2018 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3261,7 +3261,7 @@ namespace isc { namespace dhcp { #line 3262 "dhcp4_parser.cc" break; - case 603: + case 603: // client_class_test: "test" $@103 ":" "constant string" #line 2020 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3271,7 +3271,7 @@ namespace isc { namespace dhcp { #line 3272 "dhcp4_parser.cc" break; - case 604: + case 604: // only_if_required: "only-if-required" ":" "boolean" #line 2026 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3280,7 +3280,7 @@ namespace isc { namespace dhcp { #line 3281 "dhcp4_parser.cc" break; - case 605: + case 605: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" #line 2033 "dhcp4_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3289,7 +3289,7 @@ namespace isc { namespace dhcp { #line 3290 "dhcp4_parser.cc" break; - case 606: + case 606: // $@104: %empty #line 2040 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3300,7 +3300,7 @@ namespace isc { namespace dhcp { #line 3301 "dhcp4_parser.cc" break; - case 607: + case 607: // control_socket: "control-socket" $@104 ":" "{" control_socket_params "}" #line 2045 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3309,7 +3309,7 @@ namespace isc { namespace dhcp { #line 3310 "dhcp4_parser.cc" break; - case 615: + case 615: // $@105: %empty #line 2061 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3317,7 +3317,7 @@ namespace isc { namespace dhcp { #line 3318 "dhcp4_parser.cc" break; - case 616: + case 616: // control_socket_type: "socket-type" $@105 ":" "constant string" #line 2063 "dhcp4_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3327,7 +3327,7 @@ namespace isc { namespace dhcp { #line 3328 "dhcp4_parser.cc" break; - case 617: + case 617: // $@106: %empty #line 2069 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3335,7 +3335,7 @@ namespace isc { namespace dhcp { #line 3336 "dhcp4_parser.cc" break; - case 618: + case 618: // control_socket_name: "socket-name" $@106 ":" "constant string" #line 2071 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3345,7 +3345,7 @@ namespace isc { namespace dhcp { #line 3346 "dhcp4_parser.cc" break; - case 619: + case 619: // $@107: %empty #line 2080 "dhcp4_parser.yy" { ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3356,7 +3356,7 @@ namespace isc { namespace dhcp { #line 3357 "dhcp4_parser.cc" break; - case 620: + case 620: // dhcp_queue_control: "dhcp-queue-control" $@107 ":" "{" queue_control_params "}" #line 2085 "dhcp4_parser.yy" { // The enable queue parameter is required. @@ -3367,7 +3367,7 @@ namespace isc { namespace dhcp { #line 3368 "dhcp4_parser.cc" break; - case 629: + case 629: // enable_queue: "enable-queue" ":" "boolean" #line 2104 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3376,7 +3376,7 @@ namespace isc { namespace dhcp { #line 3377 "dhcp4_parser.cc" break; - case 630: + case 630: // $@108: %empty #line 2109 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3384,7 +3384,7 @@ namespace isc { namespace dhcp { #line 3385 "dhcp4_parser.cc" break; - case 631: + case 631: // queue_type: "queue-type" $@108 ":" "constant string" #line 2111 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3394,7 +3394,7 @@ namespace isc { namespace dhcp { #line 3395 "dhcp4_parser.cc" break; - case 632: + case 632: // capacity: "capacity" ":" "integer" #line 2117 "dhcp4_parser.yy" { ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3403,7 +3403,7 @@ namespace isc { namespace dhcp { #line 3404 "dhcp4_parser.cc" break; - case 633: + case 633: // $@109: %empty #line 2122 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3411,7 +3411,7 @@ namespace isc { namespace dhcp { #line 3412 "dhcp4_parser.cc" break; - case 634: + case 634: // arbitrary_map_entry: "constant string" $@109 ":" value #line 2124 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); @@ -3420,7 +3420,7 @@ namespace isc { namespace dhcp { #line 3421 "dhcp4_parser.cc" break; - case 635: + case 635: // $@110: %empty #line 2131 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3431,7 +3431,7 @@ namespace isc { namespace dhcp { #line 3432 "dhcp4_parser.cc" break; - case 636: + case 636: // dhcp_ddns: "dhcp-ddns" $@110 ":" "{" dhcp_ddns_params "}" #line 2136 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. @@ -3442,7 +3442,7 @@ namespace isc { namespace dhcp { #line 3443 "dhcp4_parser.cc" break; - case 637: + case 637: // $@111: %empty #line 2143 "dhcp4_parser.yy" { // Parse the dhcp-ddns map @@ -3452,7 +3452,7 @@ namespace isc { namespace dhcp { #line 3453 "dhcp4_parser.cc" break; - case 638: + case 638: // sub_dhcp_ddns: "{" $@111 dhcp_ddns_params "}" #line 2147 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. @@ -3462,7 +3462,7 @@ namespace isc { namespace dhcp { #line 3463 "dhcp4_parser.cc" break; - case 659: + case 659: // enable_updates: "enable-updates" ":" "boolean" #line 2177 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3471,7 +3471,7 @@ namespace isc { namespace dhcp { #line 3472 "dhcp4_parser.cc" break; - case 660: + case 660: // $@112: %empty #line 2182 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3479,7 +3479,7 @@ namespace isc { namespace dhcp { #line 3480 "dhcp4_parser.cc" break; - case 661: + case 661: // server_ip: "server-ip" $@112 ":" "constant string" #line 2184 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3489,7 +3489,7 @@ namespace isc { namespace dhcp { #line 3490 "dhcp4_parser.cc" break; - case 662: + case 662: // server_port: "server-port" ":" "integer" #line 2190 "dhcp4_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3498,7 +3498,7 @@ namespace isc { namespace dhcp { #line 3499 "dhcp4_parser.cc" break; - case 663: + case 663: // $@113: %empty #line 2195 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3506,7 +3506,7 @@ namespace isc { namespace dhcp { #line 3507 "dhcp4_parser.cc" break; - case 664: + case 664: // sender_ip: "sender-ip" $@113 ":" "constant string" #line 2197 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3516,7 +3516,7 @@ namespace isc { namespace dhcp { #line 3517 "dhcp4_parser.cc" break; - case 665: + case 665: // sender_port: "sender-port" ":" "integer" #line 2203 "dhcp4_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3525,7 +3525,7 @@ namespace isc { namespace dhcp { #line 3526 "dhcp4_parser.cc" break; - case 666: + case 666: // max_queue_size: "max-queue-size" ":" "integer" #line 2208 "dhcp4_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3534,7 +3534,7 @@ namespace isc { namespace dhcp { #line 3535 "dhcp4_parser.cc" break; - case 667: + case 667: // $@114: %empty #line 2213 "dhcp4_parser.yy" { ctx.enter(ctx.NCR_PROTOCOL); @@ -3542,7 +3542,7 @@ namespace isc { namespace dhcp { #line 3543 "dhcp4_parser.cc" break; - case 668: + case 668: // ncr_protocol: "ncr-protocol" $@114 ":" ncr_protocol_value #line 2215 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); @@ -3551,19 +3551,19 @@ namespace isc { namespace dhcp { #line 3552 "dhcp4_parser.cc" break; - case 669: + case 669: // ncr_protocol_value: "udp" #line 2221 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 3558 "dhcp4_parser.cc" break; - case 670: + case 670: // ncr_protocol_value: "tcp" #line 2222 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 3564 "dhcp4_parser.cc" break; - case 671: + case 671: // $@115: %empty #line 2225 "dhcp4_parser.yy" { ctx.enter(ctx.NCR_FORMAT); @@ -3571,7 +3571,7 @@ namespace isc { namespace dhcp { #line 3572 "dhcp4_parser.cc" break; - case 672: + case 672: // ncr_format: "ncr-format" $@115 ":" "JSON" #line 2227 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); @@ -3581,7 +3581,7 @@ namespace isc { namespace dhcp { #line 3582 "dhcp4_parser.cc" break; - case 673: + case 673: // $@116: %empty #line 2234 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3589,7 +3589,7 @@ namespace isc { namespace dhcp { #line 3590 "dhcp4_parser.cc" break; - case 674: + case 674: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" #line 2236 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3599,7 +3599,7 @@ namespace isc { namespace dhcp { #line 3600 "dhcp4_parser.cc" break; - case 675: + case 675: // dep_override_no_update: "override-no-update" ":" "boolean" #line 2243 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3608,7 +3608,7 @@ namespace isc { namespace dhcp { #line 3609 "dhcp4_parser.cc" break; - case 676: + case 676: // dep_override_client_update: "override-client-update" ":" "boolean" #line 2249 "dhcp4_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3617,7 +3617,7 @@ namespace isc { namespace dhcp { #line 3618 "dhcp4_parser.cc" break; - case 677: + case 677: // $@117: %empty #line 2255 "dhcp4_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -3625,7 +3625,7 @@ namespace isc { namespace dhcp { #line 3626 "dhcp4_parser.cc" break; - case 678: + case 678: // dep_replace_client_name: "replace-client-name" $@117 ":" ddns_replace_client_name_value #line 2257 "dhcp4_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); @@ -3634,7 +3634,7 @@ namespace isc { namespace dhcp { #line 3635 "dhcp4_parser.cc" break; - case 679: + case 679: // $@118: %empty #line 2263 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3642,7 +3642,7 @@ namespace isc { namespace dhcp { #line 3643 "dhcp4_parser.cc" break; - case 680: + case 680: // dep_generated_prefix: "generated-prefix" $@118 ":" "constant string" #line 2265 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3652,7 +3652,7 @@ namespace isc { namespace dhcp { #line 3653 "dhcp4_parser.cc" break; - case 681: + case 681: // $@119: %empty #line 2272 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3660,7 +3660,7 @@ namespace isc { namespace dhcp { #line 3661 "dhcp4_parser.cc" break; - case 682: + case 682: // dep_hostname_char_set: "hostname-char-set" $@119 ":" "constant string" #line 2274 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3670,7 +3670,7 @@ namespace isc { namespace dhcp { #line 3671 "dhcp4_parser.cc" break; - case 683: + case 683: // $@120: %empty #line 2281 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3678,7 +3678,7 @@ namespace isc { namespace dhcp { #line 3679 "dhcp4_parser.cc" break; - case 684: + case 684: // dep_hostname_char_replacement: "hostname-char-replacement" $@120 ":" "constant string" #line 2283 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3688,7 +3688,7 @@ namespace isc { namespace dhcp { #line 3689 "dhcp4_parser.cc" break; - case 685: + case 685: // $@121: %empty #line 2292 "dhcp4_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3699,7 +3699,7 @@ namespace isc { namespace dhcp { #line 3700 "dhcp4_parser.cc" break; - case 686: + case 686: // config_control: "config-control" $@121 ":" "{" config_control_params "}" #line 2297 "dhcp4_parser.yy" { // No config control params are required @@ -3709,7 +3709,7 @@ namespace isc { namespace dhcp { #line 3710 "dhcp4_parser.cc" break; - case 687: + case 687: // $@122: %empty #line 2303 "dhcp4_parser.yy" { // Parse the config-control map @@ -3719,7 +3719,7 @@ namespace isc { namespace dhcp { #line 3720 "dhcp4_parser.cc" break; - case 688: + case 688: // sub_config_control: "{" $@122 config_control_params "}" #line 2307 "dhcp4_parser.yy" { // No config_control params are required @@ -3728,7 +3728,7 @@ namespace isc { namespace dhcp { #line 3729 "dhcp4_parser.cc" break; - case 693: + case 693: // $@123: %empty #line 2322 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3739,7 +3739,7 @@ namespace isc { namespace dhcp { #line 3740 "dhcp4_parser.cc" break; - case 694: + case 694: // config_databases: "config-databases" $@123 ":" "[" database_list "]" #line 2327 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3748,7 +3748,7 @@ namespace isc { namespace dhcp { #line 3749 "dhcp4_parser.cc" break; - case 695: + case 695: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" #line 2332 "dhcp4_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3757,7 +3757,7 @@ namespace isc { namespace dhcp { #line 3758 "dhcp4_parser.cc" break; - case 696: + case 696: // $@124: %empty #line 2339 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3768,7 +3768,7 @@ namespace isc { namespace dhcp { #line 3769 "dhcp4_parser.cc" break; - case 697: + case 697: // loggers: "loggers" $@124 ":" "[" loggers_entries "]" #line 2344 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3777,7 +3777,7 @@ namespace isc { namespace dhcp { #line 3778 "dhcp4_parser.cc" break; - case 700: + case 700: // $@125: %empty #line 2356 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3787,7 +3787,7 @@ namespace isc { namespace dhcp { #line 3788 "dhcp4_parser.cc" break; - case 701: + case 701: // logger_entry: "{" $@125 logger_params "}" #line 2360 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3795,7 +3795,7 @@ namespace isc { namespace dhcp { #line 3796 "dhcp4_parser.cc" break; - case 711: + case 711: // debuglevel: "debuglevel" ":" "integer" #line 2377 "dhcp4_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3804,7 +3804,7 @@ namespace isc { namespace dhcp { #line 3805 "dhcp4_parser.cc" break; - case 712: + case 712: // $@126: %empty #line 2382 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3812,7 +3812,7 @@ namespace isc { namespace dhcp { #line 3813 "dhcp4_parser.cc" break; - case 713: + case 713: // severity: "severity" $@126 ":" "constant string" #line 2384 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3822,7 +3822,7 @@ namespace isc { namespace dhcp { #line 3823 "dhcp4_parser.cc" break; - case 714: + case 714: // $@127: %empty #line 2390 "dhcp4_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3833,7 +3833,7 @@ namespace isc { namespace dhcp { #line 3834 "dhcp4_parser.cc" break; - case 715: + case 715: // output_options_list: "output_options" $@127 ":" "[" output_options_list_content "]" #line 2395 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3842,7 +3842,7 @@ namespace isc { namespace dhcp { #line 3843 "dhcp4_parser.cc" break; - case 718: + case 718: // $@128: %empty #line 2404 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3852,7 +3852,7 @@ namespace isc { namespace dhcp { #line 3853 "dhcp4_parser.cc" break; - case 719: + case 719: // output_entry: "{" $@128 output_params_list "}" #line 2408 "dhcp4_parser.yy" { ctx.stack_.pop_back(); @@ -3860,7 +3860,7 @@ namespace isc { namespace dhcp { #line 3861 "dhcp4_parser.cc" break; - case 727: + case 727: // $@129: %empty #line 2423 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3868,7 +3868,7 @@ namespace isc { namespace dhcp { #line 3869 "dhcp4_parser.cc" break; - case 728: + case 728: // output: "output" $@129 ":" "constant string" #line 2425 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3878,7 +3878,7 @@ namespace isc { namespace dhcp { #line 3879 "dhcp4_parser.cc" break; - case 729: + case 729: // flush: "flush" ":" "boolean" #line 2431 "dhcp4_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3887,7 +3887,7 @@ namespace isc { namespace dhcp { #line 3888 "dhcp4_parser.cc" break; - case 730: + case 730: // maxsize: "maxsize" ":" "integer" #line 2436 "dhcp4_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3896,7 +3896,7 @@ namespace isc { namespace dhcp { #line 3897 "dhcp4_parser.cc" break; - case 731: + case 731: // maxver: "maxver" ":" "integer" #line 2441 "dhcp4_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3905,7 +3905,7 @@ namespace isc { namespace dhcp { #line 3906 "dhcp4_parser.cc" break; - case 732: + case 732: // $@130: %empty #line 2446 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3913,7 +3913,7 @@ namespace isc { namespace dhcp { #line 3914 "dhcp4_parser.cc" break; - case 733: + case 733: // pattern: "pattern" $@130 ":" "constant string" #line 2448 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index d899400533..b6b894a325 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -1321,30 +1321,30 @@ namespace isc { namespace dhcp { { switch (this->kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (std::move (that.value)); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (std::move (that.value)); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (std::move (that.value)); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -1458,30 +1458,30 @@ namespace isc { namespace dhcp { // Value type destructor. switch (yykind) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.template destroy< bool > (); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.template destroy< double > (); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.template destroy< int64_t > (); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.template destroy< std::string > (); break; @@ -4685,7 +4685,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -4931,11 +4931,12 @@ switch (yykind) 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189 }; - const int user_token_number_max_ = 444; + // Last valid token kind. + const int code_max = 444; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -4950,30 +4951,30 @@ switch (yykind) { switch (this->kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -5006,30 +5007,30 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 205: // value - case 209: // map_value - case 250: // ddns_replace_client_name_value - case 272: // socket_type - case 275: // outbound_interface_value - case 297: // db_type - case 391: // hr_mode - case 546: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_socket_type: // socket_type + case symbol_kind::S_outbound_interface_value: // outbound_interface_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 189: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 188: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 187: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 186: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -5096,8 +5097,7 @@ switch (yykind) #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5100 "dhcp4_parser.h" - +#line 5101 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index ef3de9421c..6b853a7d0e 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // Locations for Bison parsers in C++ @@ -62,11 +62,13 @@ namespace isc { namespace dhcp { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -76,7 +78,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -105,7 +107,7 @@ namespace isc { namespace dhcp { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -148,24 +150,6 @@ namespace isc { namespace dhcp { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -183,6 +167,8 @@ namespace isc { namespace dhcp { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -199,7 +185,7 @@ namespace isc { namespace dhcp { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -208,7 +194,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -290,20 +276,6 @@ namespace isc { namespace dhcp { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -330,6 +302,6 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 333 "location.hh" +#line 305 "location.hh" #endif // !YY_PARSER4_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp4/position.hh b/src/bin/dhcp4/position.hh index e0ad590321..12e7205cc5 100644 --- a/src/bin/dhcp4/position.hh +++ b/src/bin/dhcp4/position.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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 8dbe273f87..fed81e95f8 100644 --- a/src/bin/dhcp4/stack.hh +++ b/src/bin/dhcp4/stack.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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 ff0ede0273..b8a1e86817 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -209,29 +209,29 @@ namespace isc { namespace dhcp { { switch (that.kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -250,29 +250,29 @@ namespace isc { namespace dhcp { { switch (that.kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -291,29 +291,29 @@ namespace isc { namespace dhcp { state = that.state; switch (that.kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.copy< ElementPtr > (that.value); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (that.value); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (that.value); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (that.value); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (that.value); break; @@ -331,29 +331,29 @@ namespace isc { namespace dhcp { state = that.state; switch (that.kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (that.value); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (that.value); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (that.value); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (that.value); break; @@ -393,67 +393,67 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yykind) { - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 400 "dhcp6_parser.cc" break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 406 "dhcp6_parser.cc" break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 412 "dhcp6_parser.cc" break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 418 "dhcp6_parser.cc" break; - case 214: // value + case symbol_kind::S_value: // value #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 424 "dhcp6_parser.cc" break; - case 218: // map_value + case symbol_kind::S_map_value: // map_value #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 430 "dhcp6_parser.cc" break; - case 259: // ddns_replace_client_name_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 436 "dhcp6_parser.cc" break; - case 296: // db_type + case symbol_kind::S_db_type: // db_type #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 442 "dhcp6_parser.cc" break; - case 397: // hr_mode + case symbol_kind::S_hr_mode: // hr_mode #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 448 "dhcp6_parser.cc" break; - case 533: // duid_type + case symbol_kind::S_duid_type: // duid_type #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 454 "dhcp6_parser.cc" break; - case 576: // ncr_protocol_value + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value #line 274 "dhcp6_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 460 "dhcp6_parser.cc" @@ -686,29 +686,29 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" yylhs.value.emplace< bool > (); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" yylhs.value.emplace< double > (); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" yylhs.value.emplace< int64_t > (); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -732,133 +732,133 @@ namespace isc { namespace dhcp { { switch (yyn) { - case 2: + case 2: // $@1: %empty #line 283 "dhcp6_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORD; } #line 739 "dhcp6_parser.cc" break; - case 4: + case 4: // $@2: %empty #line 284 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 745 "dhcp6_parser.cc" break; - case 6: + case 6: // $@3: %empty #line 285 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 751 "dhcp6_parser.cc" break; - case 8: + case 8: // $@4: %empty #line 286 "dhcp6_parser.yy" { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 757 "dhcp6_parser.cc" break; - case 10: + case 10: // $@5: %empty #line 287 "dhcp6_parser.yy" { ctx.ctx_ = ctx.SUBNET6; } #line 763 "dhcp6_parser.cc" break; - case 12: + case 12: // $@6: %empty #line 288 "dhcp6_parser.yy" { ctx.ctx_ = ctx.POOLS; } #line 769 "dhcp6_parser.cc" break; - case 14: + case 14: // $@7: %empty #line 289 "dhcp6_parser.yy" { ctx.ctx_ = ctx.PD_POOLS; } #line 775 "dhcp6_parser.cc" break; - case 16: + case 16: // $@8: %empty #line 290 "dhcp6_parser.yy" { ctx.ctx_ = ctx.RESERVATIONS; } #line 781 "dhcp6_parser.cc" break; - case 18: + case 18: // $@9: %empty #line 291 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP6; } #line 787 "dhcp6_parser.cc" break; - case 20: + case 20: // $@10: %empty #line 292 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DEF; } #line 793 "dhcp6_parser.cc" break; - case 22: + case 22: // $@11: %empty #line 293 "dhcp6_parser.yy" { ctx.ctx_ = ctx.OPTION_DATA; } #line 799 "dhcp6_parser.cc" break; - case 24: + case 24: // $@12: %empty #line 294 "dhcp6_parser.yy" { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 805 "dhcp6_parser.cc" break; - case 26: + case 26: // $@13: %empty #line 295 "dhcp6_parser.yy" { ctx.ctx_ = ctx.DHCP_DDNS; } #line 811 "dhcp6_parser.cc" break; - case 28: + case 28: // $@14: %empty #line 296 "dhcp6_parser.yy" { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 817 "dhcp6_parser.cc" break; - case 30: + case 30: // value: "integer" #line 304 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 823 "dhcp6_parser.cc" break; - case 31: + case 31: // value: "floating point" #line 305 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 829 "dhcp6_parser.cc" break; - case 32: + case 32: // value: "boolean" #line 306 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 835 "dhcp6_parser.cc" break; - case 33: + case 33: // value: "constant string" #line 307 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 841 "dhcp6_parser.cc" break; - case 34: + case 34: // value: "null" #line 308 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 847 "dhcp6_parser.cc" break; - case 35: + case 35: // value: map2 #line 309 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 853 "dhcp6_parser.cc" break; - case 36: + case 36: // value: list_generic #line 310 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 859 "dhcp6_parser.cc" break; - case 37: + case 37: // sub_json: value #line 313 "dhcp6_parser.yy" { // Push back the JSON value on the stack @@ -867,7 +867,7 @@ namespace isc { namespace dhcp { #line 868 "dhcp6_parser.cc" break; - case 38: + case 38: // $@15: %empty #line 318 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing @@ -878,7 +878,7 @@ namespace isc { namespace dhcp { #line 879 "dhcp6_parser.cc" break; - case 39: + case 39: // map2: "{" $@15 map_content "}" #line 323 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -888,13 +888,13 @@ namespace isc { namespace dhcp { #line 889 "dhcp6_parser.cc" break; - case 40: + case 40: // map_value: map2 #line 329 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 895 "dhcp6_parser.cc" break; - case 43: + case 43: // not_empty_map: "constant string" ":" value #line 336 "dhcp6_parser.yy" { // map containing a single entry @@ -903,7 +903,7 @@ namespace isc { namespace dhcp { #line 904 "dhcp6_parser.cc" break; - case 44: + case 44: // not_empty_map: not_empty_map "," "constant string" ":" value #line 340 "dhcp6_parser.yy" { // map consisting of a shorter map followed by @@ -913,7 +913,7 @@ namespace isc { namespace dhcp { #line 914 "dhcp6_parser.cc" break; - case 45: + case 45: // $@16: %empty #line 347 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -922,7 +922,7 @@ namespace isc { namespace dhcp { #line 923 "dhcp6_parser.cc" break; - case 46: + case 46: // list_generic: "[" $@16 list_content "]" #line 350 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here @@ -930,7 +930,7 @@ namespace isc { namespace dhcp { #line 931 "dhcp6_parser.cc" break; - case 49: + case 49: // not_empty_list: value #line 358 "dhcp6_parser.yy" { // List consisting of a single element. @@ -939,7 +939,7 @@ namespace isc { namespace dhcp { #line 940 "dhcp6_parser.cc" break; - case 50: + case 50: // not_empty_list: not_empty_list "," value #line 362 "dhcp6_parser.yy" { // List ending with , and a value. @@ -948,7 +948,7 @@ namespace isc { namespace dhcp { #line 949 "dhcp6_parser.cc" break; - case 51: + case 51: // $@17: %empty #line 369 "dhcp6_parser.yy" { // List parsing about to start @@ -956,7 +956,7 @@ namespace isc { namespace dhcp { #line 957 "dhcp6_parser.cc" break; - case 52: + case 52: // list_strings: "[" $@17 list_strings_content "]" #line 371 "dhcp6_parser.yy" { // list parsing complete. Put any sanity checking here @@ -965,7 +965,7 @@ namespace isc { namespace dhcp { #line 966 "dhcp6_parser.cc" break; - case 55: + case 55: // not_empty_list_strings: "constant string" #line 380 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -974,7 +974,7 @@ namespace isc { namespace dhcp { #line 975 "dhcp6_parser.cc" break; - case 56: + case 56: // not_empty_list_strings: not_empty_list_strings "," "constant string" #line 384 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -983,7 +983,7 @@ namespace isc { namespace dhcp { #line 984 "dhcp6_parser.cc" break; - case 57: + case 57: // unknown_map_entry: "constant string" ":" #line 395 "dhcp6_parser.yy" { const std::string& where = ctx.contextName(); @@ -994,7 +994,7 @@ namespace isc { namespace dhcp { #line 995 "dhcp6_parser.cc" break; - case 58: + case 58: // $@18: %empty #line 404 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing @@ -1005,7 +1005,7 @@ namespace isc { namespace dhcp { #line 1006 "dhcp6_parser.cc" break; - case 59: + case 59: // syntax_map: "{" $@18 global_objects "}" #line 409 "dhcp6_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp { #line 1019 "dhcp6_parser.cc" break; - case 63: + case 63: // $@19: %empty #line 427 "dhcp6_parser.yy" { // This code is executed when we're about to start parsing @@ -1033,7 +1033,7 @@ namespace isc { namespace dhcp { #line 1034 "dhcp6_parser.cc" break; - case 64: + case 64: // dhcp6_object: "Dhcp6" $@19 ":" "{" global_params "}" #line 436 "dhcp6_parser.yy" { // No global parameter is required @@ -1043,7 +1043,7 @@ namespace isc { namespace dhcp { #line 1044 "dhcp6_parser.cc" break; - case 65: + case 65: // $@20: %empty #line 444 "dhcp6_parser.yy" { // Parse the Dhcp6 map @@ -1053,7 +1053,7 @@ namespace isc { namespace dhcp { #line 1054 "dhcp6_parser.cc" break; - case 66: + case 66: // sub_dhcp6: "{" $@20 global_params "}" #line 448 "dhcp6_parser.yy" { // No global parameter is required @@ -1062,7 +1062,7 @@ namespace isc { namespace dhcp { #line 1063 "dhcp6_parser.cc" break; - case 122: + case 122: // $@21: %empty #line 514 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1070,7 +1070,7 @@ namespace isc { namespace dhcp { #line 1071 "dhcp6_parser.cc" break; - case 123: + case 123: // data_directory: "data-directory" $@21 ":" "constant string" #line 516 "dhcp6_parser.yy" { ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1080,7 +1080,7 @@ namespace isc { namespace dhcp { #line 1081 "dhcp6_parser.cc" break; - case 124: + case 124: // preferred_lifetime: "preferred-lifetime" ":" "integer" #line 522 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1089,7 +1089,7 @@ namespace isc { namespace dhcp { #line 1090 "dhcp6_parser.cc" break; - case 125: + case 125: // min_preferred_lifetime: "min-preferred-lifetime" ":" "integer" #line 527 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1098,7 +1098,7 @@ namespace isc { namespace dhcp { #line 1099 "dhcp6_parser.cc" break; - case 126: + case 126: // max_preferred_lifetime: "max-preferred-lifetime" ":" "integer" #line 532 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1107,7 +1107,7 @@ namespace isc { namespace dhcp { #line 1108 "dhcp6_parser.cc" break; - case 127: + case 127: // valid_lifetime: "valid-lifetime" ":" "integer" #line 537 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1116,7 +1116,7 @@ namespace isc { namespace dhcp { #line 1117 "dhcp6_parser.cc" break; - case 128: + case 128: // min_valid_lifetime: "min-valid-lifetime" ":" "integer" #line 542 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1125,7 +1125,7 @@ namespace isc { namespace dhcp { #line 1126 "dhcp6_parser.cc" break; - case 129: + case 129: // max_valid_lifetime: "max-valid-lifetime" ":" "integer" #line 547 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1134,7 +1134,7 @@ namespace isc { namespace dhcp { #line 1135 "dhcp6_parser.cc" break; - case 130: + case 130: // renew_timer: "renew-timer" ":" "integer" #line 552 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1143,7 +1143,7 @@ namespace isc { namespace dhcp { #line 1144 "dhcp6_parser.cc" break; - case 131: + case 131: // rebind_timer: "rebind-timer" ":" "integer" #line 557 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1152,7 +1152,7 @@ namespace isc { namespace dhcp { #line 1153 "dhcp6_parser.cc" break; - case 132: + case 132: // calculate_tee_times: "calculate-tee-times" ":" "boolean" #line 562 "dhcp6_parser.yy" { ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1161,7 +1161,7 @@ namespace isc { namespace dhcp { #line 1162 "dhcp6_parser.cc" break; - case 133: + case 133: // t1_percent: "t1-percent" ":" "floating point" #line 567 "dhcp6_parser.yy" { ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1170,7 +1170,7 @@ namespace isc { namespace dhcp { #line 1171 "dhcp6_parser.cc" break; - case 134: + case 134: // t2_percent: "t2-percent" ":" "floating point" #line 572 "dhcp6_parser.yy" { ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); @@ -1179,7 +1179,7 @@ namespace isc { namespace dhcp { #line 1180 "dhcp6_parser.cc" break; - case 135: + case 135: // decline_probation_period: "decline-probation-period" ":" "integer" #line 577 "dhcp6_parser.yy" { ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1188,7 +1188,7 @@ namespace isc { namespace dhcp { #line 1189 "dhcp6_parser.cc" break; - case 136: + case 136: // ddns_send_updates: "ddns-send-updates" ":" "boolean" #line 582 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1197,7 +1197,7 @@ namespace isc { namespace dhcp { #line 1198 "dhcp6_parser.cc" break; - case 137: + case 137: // ddns_override_no_update: "ddns-override-no-update" ":" "boolean" #line 587 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1206,7 +1206,7 @@ namespace isc { namespace dhcp { #line 1207 "dhcp6_parser.cc" break; - case 138: + case 138: // ddns_override_client_update: "ddns-override-client-update" ":" "boolean" #line 592 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1215,7 +1215,7 @@ namespace isc { namespace dhcp { #line 1216 "dhcp6_parser.cc" break; - case 139: + case 139: // $@22: %empty #line 597 "dhcp6_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); @@ -1223,7 +1223,7 @@ namespace isc { namespace dhcp { #line 1224 "dhcp6_parser.cc" break; - case 140: + case 140: // ddns_replace_client_name: "ddns-replace-client-name" $@22 ":" ddns_replace_client_name_value #line 599 "dhcp6_parser.yy" { ctx.stack_.back()->set("ddns-replace-client-name", yystack_[0].value.as < ElementPtr > ()); @@ -1232,7 +1232,7 @@ namespace isc { namespace dhcp { #line 1233 "dhcp6_parser.cc" break; - case 141: + case 141: // ddns_replace_client_name_value: "when-present" #line 605 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); @@ -1240,7 +1240,7 @@ namespace isc { namespace dhcp { #line 1241 "dhcp6_parser.cc" break; - case 142: + case 142: // ddns_replace_client_name_value: "never" #line 608 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); @@ -1248,7 +1248,7 @@ namespace isc { namespace dhcp { #line 1249 "dhcp6_parser.cc" break; - case 143: + case 143: // ddns_replace_client_name_value: "always" #line 611 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); @@ -1256,7 +1256,7 @@ namespace isc { namespace dhcp { #line 1257 "dhcp6_parser.cc" break; - case 144: + case 144: // ddns_replace_client_name_value: "when-not-present" #line 614 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); @@ -1264,7 +1264,7 @@ namespace isc { namespace dhcp { #line 1265 "dhcp6_parser.cc" break; - case 145: + case 145: // ddns_replace_client_name_value: "boolean" #line 617 "dhcp6_parser.yy" { error(yystack_[0].location, "boolean values for the replace-client-name are " @@ -1273,7 +1273,7 @@ namespace isc { namespace dhcp { #line 1274 "dhcp6_parser.cc" break; - case 146: + case 146: // $@23: %empty #line 623 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1281,7 +1281,7 @@ namespace isc { namespace dhcp { #line 1282 "dhcp6_parser.cc" break; - case 147: + case 147: // ddns_generated_prefix: "ddns-generated-prefix" $@23 ":" "constant string" #line 625 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1291,7 +1291,7 @@ namespace isc { namespace dhcp { #line 1292 "dhcp6_parser.cc" break; - case 148: + case 148: // $@24: %empty #line 631 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1299,7 +1299,7 @@ namespace isc { namespace dhcp { #line 1300 "dhcp6_parser.cc" break; - case 149: + case 149: // ddns_qualifying_suffix: "ddns-qualifying-suffix" $@24 ":" "constant string" #line 633 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1309,7 +1309,7 @@ namespace isc { namespace dhcp { #line 1310 "dhcp6_parser.cc" break; - case 150: + case 150: // $@25: %empty #line 639 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1317,7 +1317,7 @@ namespace isc { namespace dhcp { #line 1318 "dhcp6_parser.cc" break; - case 151: + case 151: // hostname_char_set: "hostname-char-set" $@25 ":" "constant string" #line 641 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1327,7 +1327,7 @@ namespace isc { namespace dhcp { #line 1328 "dhcp6_parser.cc" break; - case 152: + case 152: // $@26: %empty #line 647 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1335,7 +1335,7 @@ namespace isc { namespace dhcp { #line 1336 "dhcp6_parser.cc" break; - case 153: + case 153: // hostname_char_replacement: "hostname-char-replacement" $@26 ":" "constant string" #line 649 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1345,7 +1345,7 @@ namespace isc { namespace dhcp { #line 1346 "dhcp6_parser.cc" break; - case 154: + case 154: // store_extended_info: "store-extended-info" ":" "boolean" #line 655 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1354,7 +1354,7 @@ namespace isc { namespace dhcp { #line 1355 "dhcp6_parser.cc" break; - case 155: + case 155: // statistic_default_sample_count: "statistic-default-sample-count" ":" "integer" #line 660 "dhcp6_parser.yy" { ElementPtr count(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1363,7 +1363,7 @@ namespace isc { namespace dhcp { #line 1364 "dhcp6_parser.cc" break; - case 156: + case 156: // statistic_default_sample_age: "statistic-default-sample-age" ":" "integer" #line 665 "dhcp6_parser.yy" { ElementPtr age(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1372,7 +1372,7 @@ namespace isc { namespace dhcp { #line 1373 "dhcp6_parser.cc" break; - case 157: + case 157: // $@27: %empty #line 670 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1380,7 +1380,7 @@ namespace isc { namespace dhcp { #line 1381 "dhcp6_parser.cc" break; - case 158: + case 158: // server_tag: "server-tag" $@27 ":" "constant string" #line 672 "dhcp6_parser.yy" { ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1390,7 +1390,7 @@ namespace isc { namespace dhcp { #line 1391 "dhcp6_parser.cc" break; - case 159: + case 159: // $@28: %empty #line 678 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1401,7 +1401,7 @@ namespace isc { namespace dhcp { #line 1402 "dhcp6_parser.cc" break; - case 160: + case 160: // interfaces_config: "interfaces-config" $@28 ":" "{" interfaces_config_params "}" #line 683 "dhcp6_parser.yy" { // No interfaces config param is required @@ -1411,7 +1411,7 @@ namespace isc { namespace dhcp { #line 1412 "dhcp6_parser.cc" break; - case 161: + case 161: // $@29: %empty #line 689 "dhcp6_parser.yy" { // Parse the interfaces-config map @@ -1421,7 +1421,7 @@ namespace isc { namespace dhcp { #line 1422 "dhcp6_parser.cc" break; - case 162: + case 162: // sub_interfaces6: "{" $@29 interfaces_config_params "}" #line 693 "dhcp6_parser.yy" { // No interfaces config param is required @@ -1430,7 +1430,7 @@ namespace isc { namespace dhcp { #line 1431 "dhcp6_parser.cc" break; - case 170: + case 170: // $@30: %empty #line 709 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1441,7 +1441,7 @@ namespace isc { namespace dhcp { #line 1442 "dhcp6_parser.cc" break; - case 171: + case 171: // interfaces_list: "interfaces" $@30 ":" list_strings #line 714 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -1450,7 +1450,7 @@ namespace isc { namespace dhcp { #line 1451 "dhcp6_parser.cc" break; - case 172: + case 172: // re_detect: "re-detect" ":" "boolean" #line 719 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1459,7 +1459,7 @@ namespace isc { namespace dhcp { #line 1460 "dhcp6_parser.cc" break; - case 173: + case 173: // $@31: %empty #line 724 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1470,7 +1470,7 @@ namespace isc { namespace dhcp { #line 1471 "dhcp6_parser.cc" break; - case 174: + case 174: // lease_database: "lease-database" $@31 ":" "{" database_map_params "}" #line 729 "dhcp6_parser.yy" { // The type parameter is required @@ -1481,7 +1481,7 @@ namespace isc { namespace dhcp { #line 1482 "dhcp6_parser.cc" break; - case 175: + case 175: // $@32: %empty #line 736 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1492,7 +1492,7 @@ namespace isc { namespace dhcp { #line 1493 "dhcp6_parser.cc" break; - case 176: + case 176: // hosts_database: "hosts-database" $@32 ":" "{" database_map_params "}" #line 741 "dhcp6_parser.yy" { // The type parameter is required @@ -1503,7 +1503,7 @@ namespace isc { namespace dhcp { #line 1504 "dhcp6_parser.cc" break; - case 177: + case 177: // $@33: %empty #line 748 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1514,7 +1514,7 @@ namespace isc { namespace dhcp { #line 1515 "dhcp6_parser.cc" break; - case 178: + case 178: // hosts_databases: "hosts-databases" $@33 ":" "[" database_list "]" #line 753 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -1523,7 +1523,7 @@ namespace isc { namespace dhcp { #line 1524 "dhcp6_parser.cc" break; - case 183: + case 183: // $@34: %empty #line 766 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1533,7 +1533,7 @@ namespace isc { namespace dhcp { #line 1534 "dhcp6_parser.cc" break; - case 184: + case 184: // database: "{" $@34 database_map_params "}" #line 770 "dhcp6_parser.yy" { // The type parameter is required @@ -1543,7 +1543,7 @@ namespace isc { namespace dhcp { #line 1544 "dhcp6_parser.cc" break; - case 208: + case 208: // $@35: %empty #line 803 "dhcp6_parser.yy" { ctx.enter(ctx.DATABASE_TYPE); @@ -1551,7 +1551,7 @@ namespace isc { namespace dhcp { #line 1552 "dhcp6_parser.cc" break; - case 209: + case 209: // database_type: "type" $@35 ":" db_type #line 805 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); @@ -1560,31 +1560,31 @@ namespace isc { namespace dhcp { #line 1561 "dhcp6_parser.cc" break; - case 210: + case 210: // db_type: "memfile" #line 810 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } #line 1567 "dhcp6_parser.cc" break; - case 211: + case 211: // db_type: "mysql" #line 811 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } #line 1573 "dhcp6_parser.cc" break; - case 212: + case 212: // db_type: "postgresql" #line 812 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } #line 1579 "dhcp6_parser.cc" break; - case 213: + case 213: // db_type: "cql" #line 813 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } #line 1585 "dhcp6_parser.cc" break; - case 214: + case 214: // $@36: %empty #line 816 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1592,7 +1592,7 @@ namespace isc { namespace dhcp { #line 1593 "dhcp6_parser.cc" break; - case 215: + case 215: // user: "user" $@36 ":" "constant string" #line 818 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1602,7 +1602,7 @@ namespace isc { namespace dhcp { #line 1603 "dhcp6_parser.cc" break; - case 216: + case 216: // $@37: %empty #line 824 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1610,7 +1610,7 @@ namespace isc { namespace dhcp { #line 1611 "dhcp6_parser.cc" break; - case 217: + case 217: // password: "password" $@37 ":" "constant string" #line 826 "dhcp6_parser.yy" { ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1620,7 +1620,7 @@ namespace isc { namespace dhcp { #line 1621 "dhcp6_parser.cc" break; - case 218: + case 218: // $@38: %empty #line 832 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1628,7 +1628,7 @@ namespace isc { namespace dhcp { #line 1629 "dhcp6_parser.cc" break; - case 219: + case 219: // host: "host" $@38 ":" "constant string" #line 834 "dhcp6_parser.yy" { ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1638,7 +1638,7 @@ namespace isc { namespace dhcp { #line 1639 "dhcp6_parser.cc" break; - case 220: + case 220: // port: "port" ":" "integer" #line 840 "dhcp6_parser.yy" { ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1647,7 +1647,7 @@ namespace isc { namespace dhcp { #line 1648 "dhcp6_parser.cc" break; - case 221: + case 221: // $@39: %empty #line 845 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1655,7 +1655,7 @@ namespace isc { namespace dhcp { #line 1656 "dhcp6_parser.cc" break; - case 222: + case 222: // name: "name" $@39 ":" "constant string" #line 847 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1665,7 +1665,7 @@ namespace isc { namespace dhcp { #line 1666 "dhcp6_parser.cc" break; - case 223: + case 223: // persist: "persist" ":" "boolean" #line 853 "dhcp6_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1674,7 +1674,7 @@ namespace isc { namespace dhcp { #line 1675 "dhcp6_parser.cc" break; - case 224: + case 224: // lfc_interval: "lfc-interval" ":" "integer" #line 858 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1683,7 +1683,7 @@ namespace isc { namespace dhcp { #line 1684 "dhcp6_parser.cc" break; - case 225: + case 225: // readonly: "readonly" ":" "boolean" #line 863 "dhcp6_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1692,7 +1692,7 @@ namespace isc { namespace dhcp { #line 1693 "dhcp6_parser.cc" break; - case 226: + case 226: // connect_timeout: "connect-timeout" ":" "integer" #line 868 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1701,7 +1701,7 @@ namespace isc { namespace dhcp { #line 1702 "dhcp6_parser.cc" break; - case 227: + case 227: // reconnect_wait_time: "reconnect-wait-time" ":" "integer" #line 873 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1710,7 +1710,7 @@ namespace isc { namespace dhcp { #line 1711 "dhcp6_parser.cc" break; - case 228: + case 228: // max_row_errors: "max-row-errors" ":" "integer" #line 878 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1719,7 +1719,7 @@ namespace isc { namespace dhcp { #line 1720 "dhcp6_parser.cc" break; - case 229: + case 229: // request_timeout: "request-timeout" ":" "integer" #line 883 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1728,7 +1728,7 @@ namespace isc { namespace dhcp { #line 1729 "dhcp6_parser.cc" break; - case 230: + case 230: // tcp_keepalive: "tcp-keepalive" ":" "integer" #line 888 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1737,7 +1737,7 @@ namespace isc { namespace dhcp { #line 1738 "dhcp6_parser.cc" break; - case 231: + case 231: // tcp_nodelay: "tcp-nodelay" ":" "boolean" #line 893 "dhcp6_parser.yy" { ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1746,7 +1746,7 @@ namespace isc { namespace dhcp { #line 1747 "dhcp6_parser.cc" break; - case 232: + case 232: // $@40: %empty #line 898 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1754,7 +1754,7 @@ namespace isc { namespace dhcp { #line 1755 "dhcp6_parser.cc" break; - case 233: + case 233: // contact_points: "contact-points" $@40 ":" "constant string" #line 900 "dhcp6_parser.yy" { ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1764,7 +1764,7 @@ namespace isc { namespace dhcp { #line 1765 "dhcp6_parser.cc" break; - case 234: + case 234: // max_reconnect_tries: "max-reconnect-tries" ":" "integer" #line 906 "dhcp6_parser.yy" { ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1773,7 +1773,7 @@ namespace isc { namespace dhcp { #line 1774 "dhcp6_parser.cc" break; - case 235: + case 235: // $@41: %empty #line 911 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1781,7 +1781,7 @@ namespace isc { namespace dhcp { #line 1782 "dhcp6_parser.cc" break; - case 236: + case 236: // keyspace: "keyspace" $@41 ":" "constant string" #line 913 "dhcp6_parser.yy" { ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1791,7 +1791,7 @@ namespace isc { namespace dhcp { #line 1792 "dhcp6_parser.cc" break; - case 237: + case 237: // $@42: %empty #line 919 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1799,7 +1799,7 @@ namespace isc { namespace dhcp { #line 1800 "dhcp6_parser.cc" break; - case 238: + case 238: // consistency: "consistency" $@42 ":" "constant string" #line 921 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1809,7 +1809,7 @@ namespace isc { namespace dhcp { #line 1810 "dhcp6_parser.cc" break; - case 239: + case 239: // $@43: %empty #line 927 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1817,7 +1817,7 @@ namespace isc { namespace dhcp { #line 1818 "dhcp6_parser.cc" break; - case 240: + case 240: // serial_consistency: "serial-consistency" $@43 ":" "constant string" #line 929 "dhcp6_parser.yy" { ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1827,7 +1827,7 @@ namespace isc { namespace dhcp { #line 1828 "dhcp6_parser.cc" break; - case 241: + case 241: // $@44: %empty #line 935 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1838,7 +1838,7 @@ namespace isc { namespace dhcp { #line 1839 "dhcp6_parser.cc" break; - case 242: + case 242: // sanity_checks: "sanity-checks" $@44 ":" "{" sanity_checks_params "}" #line 940 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -1847,7 +1847,7 @@ namespace isc { namespace dhcp { #line 1848 "dhcp6_parser.cc" break; - case 246: + case 246: // $@45: %empty #line 950 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -1855,7 +1855,7 @@ namespace isc { namespace dhcp { #line 1856 "dhcp6_parser.cc" break; - case 247: + case 247: // lease_checks: "lease-checks" $@45 ":" "constant string" #line 952 "dhcp6_parser.yy" { @@ -1875,7 +1875,7 @@ namespace isc { namespace dhcp { #line 1876 "dhcp6_parser.cc" break; - case 248: + case 248: // $@46: %empty #line 968 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1886,7 +1886,7 @@ namespace isc { namespace dhcp { #line 1887 "dhcp6_parser.cc" break; - case 249: + case 249: // mac_sources: "mac-sources" $@46 ":" "[" mac_sources_list "]" #line 973 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -1895,7 +1895,7 @@ namespace isc { namespace dhcp { #line 1896 "dhcp6_parser.cc" break; - case 254: + case 254: // duid_id: "duid" #line 986 "dhcp6_parser.yy" { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); @@ -1904,7 +1904,7 @@ namespace isc { namespace dhcp { #line 1905 "dhcp6_parser.cc" break; - case 255: + case 255: // string_id: "constant string" #line 991 "dhcp6_parser.yy" { ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1913,7 +1913,7 @@ namespace isc { namespace dhcp { #line 1914 "dhcp6_parser.cc" break; - case 256: + case 256: // $@47: %empty #line 996 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1924,7 +1924,7 @@ namespace isc { namespace dhcp { #line 1925 "dhcp6_parser.cc" break; - case 257: + case 257: // host_reservation_identifiers: "host-reservation-identifiers" $@47 ":" "[" host_reservation_identifiers_list "]" #line 1001 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -1933,7 +1933,7 @@ namespace isc { namespace dhcp { #line 1934 "dhcp6_parser.cc" break; - case 263: + case 263: // hw_address_id: "hw-address" #line 1015 "dhcp6_parser.yy" { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); @@ -1942,7 +1942,7 @@ namespace isc { namespace dhcp { #line 1943 "dhcp6_parser.cc" break; - case 264: + case 264: // flex_id: "flex-id" #line 1020 "dhcp6_parser.yy" { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); @@ -1951,7 +1951,7 @@ namespace isc { namespace dhcp { #line 1952 "dhcp6_parser.cc" break; - case 265: + case 265: // $@48: %empty #line 1027 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1962,7 +1962,7 @@ namespace isc { namespace dhcp { #line 1963 "dhcp6_parser.cc" break; - case 266: + case 266: // relay_supplied_options: "relay-supplied-options" $@48 ":" "[" list_content "]" #line 1032 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -1971,7 +1971,7 @@ namespace isc { namespace dhcp { #line 1972 "dhcp6_parser.cc" break; - case 267: + case 267: // $@49: %empty #line 1039 "dhcp6_parser.yy" { ElementPtr mt(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1982,7 +1982,7 @@ namespace isc { namespace dhcp { #line 1983 "dhcp6_parser.cc" break; - case 268: + case 268: // dhcp_multi_threading: "multi-threading" $@49 ":" "{" multi_threading_params "}" #line 1044 "dhcp6_parser.yy" { // The enable parameter is required. @@ -1993,7 +1993,7 @@ namespace isc { namespace dhcp { #line 1994 "dhcp6_parser.cc" break; - case 277: + case 277: // enable_multi_threading: "enable-multi-threading" ":" "boolean" #line 1063 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2002,7 +2002,7 @@ namespace isc { namespace dhcp { #line 2003 "dhcp6_parser.cc" break; - case 278: + case 278: // thread_pool_size: "thread-pool-size" ":" "integer" #line 1068 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2011,7 +2011,7 @@ namespace isc { namespace dhcp { #line 2012 "dhcp6_parser.cc" break; - case 279: + case 279: // packet_queue_size: "packet-queue-size" ":" "integer" #line 1073 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2020,7 +2020,7 @@ namespace isc { namespace dhcp { #line 2021 "dhcp6_parser.cc" break; - case 280: + case 280: // $@50: %empty #line 1078 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2031,7 +2031,7 @@ namespace isc { namespace dhcp { #line 2032 "dhcp6_parser.cc" break; - case 281: + case 281: // hooks_libraries: "hooks-libraries" $@50 ":" "[" hooks_libraries_list "]" #line 1083 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2040,7 +2040,7 @@ namespace isc { namespace dhcp { #line 2041 "dhcp6_parser.cc" break; - case 286: + case 286: // $@51: %empty #line 1096 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2050,7 +2050,7 @@ namespace isc { namespace dhcp { #line 2051 "dhcp6_parser.cc" break; - case 287: + case 287: // hooks_library: "{" $@51 hooks_params "}" #line 1100 "dhcp6_parser.yy" { // The library hooks parameter is required @@ -2060,7 +2060,7 @@ namespace isc { namespace dhcp { #line 2061 "dhcp6_parser.cc" break; - case 288: + case 288: // $@52: %empty #line 1106 "dhcp6_parser.yy" { // Parse the hooks-libraries list entry map @@ -2070,7 +2070,7 @@ namespace isc { namespace dhcp { #line 2071 "dhcp6_parser.cc" break; - case 289: + case 289: // sub_hooks_library: "{" $@52 hooks_params "}" #line 1110 "dhcp6_parser.yy" { // The library hooks parameter is required @@ -2080,7 +2080,7 @@ namespace isc { namespace dhcp { #line 2081 "dhcp6_parser.cc" break; - case 295: + case 295: // $@53: %empty #line 1125 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2088,7 +2088,7 @@ namespace isc { namespace dhcp { #line 2089 "dhcp6_parser.cc" break; - case 296: + case 296: // library: "library" $@53 ":" "constant string" #line 1127 "dhcp6_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2098,7 +2098,7 @@ namespace isc { namespace dhcp { #line 2099 "dhcp6_parser.cc" break; - case 297: + case 297: // $@54: %empty #line 1133 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2106,7 +2106,7 @@ namespace isc { namespace dhcp { #line 2107 "dhcp6_parser.cc" break; - case 298: + case 298: // parameters: "parameters" $@54 ":" map_value #line 1135 "dhcp6_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); @@ -2115,7 +2115,7 @@ namespace isc { namespace dhcp { #line 2116 "dhcp6_parser.cc" break; - case 299: + case 299: // $@55: %empty #line 1141 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2126,7 +2126,7 @@ namespace isc { namespace dhcp { #line 2127 "dhcp6_parser.cc" break; - case 300: + case 300: // expired_leases_processing: "expired-leases-processing" $@55 ":" "{" expired_leases_params "}" #line 1146 "dhcp6_parser.yy" { // No expired lease parameter is required @@ -2136,7 +2136,7 @@ namespace isc { namespace dhcp { #line 2137 "dhcp6_parser.cc" break; - case 309: + case 309: // reclaim_timer_wait_time: "reclaim-timer-wait-time" ":" "integer" #line 1164 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2145,7 +2145,7 @@ namespace isc { namespace dhcp { #line 2146 "dhcp6_parser.cc" break; - case 310: + case 310: // flush_reclaimed_timer_wait_time: "flush-reclaimed-timer-wait-time" ":" "integer" #line 1169 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2154,7 +2154,7 @@ namespace isc { namespace dhcp { #line 2155 "dhcp6_parser.cc" break; - case 311: + case 311: // hold_reclaimed_time: "hold-reclaimed-time" ":" "integer" #line 1174 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2163,7 +2163,7 @@ namespace isc { namespace dhcp { #line 2164 "dhcp6_parser.cc" break; - case 312: + case 312: // max_reclaim_leases: "max-reclaim-leases" ":" "integer" #line 1179 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2172,7 +2172,7 @@ namespace isc { namespace dhcp { #line 2173 "dhcp6_parser.cc" break; - case 313: + case 313: // max_reclaim_time: "max-reclaim-time" ":" "integer" #line 1184 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2181,7 +2181,7 @@ namespace isc { namespace dhcp { #line 2182 "dhcp6_parser.cc" break; - case 314: + case 314: // unwarned_reclaim_cycles: "unwarned-reclaim-cycles" ":" "integer" #line 1189 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2190,7 +2190,7 @@ namespace isc { namespace dhcp { #line 2191 "dhcp6_parser.cc" break; - case 315: + case 315: // $@56: %empty #line 1197 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2201,7 +2201,7 @@ namespace isc { namespace dhcp { #line 2202 "dhcp6_parser.cc" break; - case 316: + case 316: // subnet6_list: "subnet6" $@56 ":" "[" subnet6_list_content "]" #line 1202 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2210,7 +2210,7 @@ namespace isc { namespace dhcp { #line 2211 "dhcp6_parser.cc" break; - case 321: + case 321: // $@57: %empty #line 1222 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2220,7 +2220,7 @@ namespace isc { namespace dhcp { #line 2221 "dhcp6_parser.cc" break; - case 322: + case 322: // subnet6: "{" $@57 subnet6_params "}" #line 1226 "dhcp6_parser.yy" { // Once we reached this place, the subnet parsing is now complete. @@ -2246,7 +2246,7 @@ namespace isc { namespace dhcp { #line 2247 "dhcp6_parser.cc" break; - case 323: + case 323: // $@58: %empty #line 1248 "dhcp6_parser.yy" { // Parse the subnet6 list entry map @@ -2256,7 +2256,7 @@ namespace isc { namespace dhcp { #line 2257 "dhcp6_parser.cc" break; - case 324: + case 324: // sub_subnet6: "{" $@58 subnet6_params "}" #line 1252 "dhcp6_parser.yy" { // The subnet subnet6 parameter is required @@ -2266,7 +2266,7 @@ namespace isc { namespace dhcp { #line 2267 "dhcp6_parser.cc" break; - case 363: + case 363: // $@59: %empty #line 1302 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2274,7 +2274,7 @@ namespace isc { namespace dhcp { #line 2275 "dhcp6_parser.cc" break; - case 364: + case 364: // subnet: "subnet" $@59 ":" "constant string" #line 1304 "dhcp6_parser.yy" { ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2284,7 +2284,7 @@ namespace isc { namespace dhcp { #line 2285 "dhcp6_parser.cc" break; - case 365: + case 365: // $@60: %empty #line 1310 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2292,7 +2292,7 @@ namespace isc { namespace dhcp { #line 2293 "dhcp6_parser.cc" break; - case 366: + case 366: // interface: "interface" $@60 ":" "constant string" #line 1312 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2302,7 +2302,7 @@ namespace isc { namespace dhcp { #line 2303 "dhcp6_parser.cc" break; - case 367: + case 367: // $@61: %empty #line 1318 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2310,7 +2310,7 @@ namespace isc { namespace dhcp { #line 2311 "dhcp6_parser.cc" break; - case 368: + case 368: // interface_id: "interface-id" $@61 ":" "constant string" #line 1320 "dhcp6_parser.yy" { ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2320,7 +2320,7 @@ namespace isc { namespace dhcp { #line 2321 "dhcp6_parser.cc" break; - case 369: + case 369: // $@62: %empty #line 1326 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2328,7 +2328,7 @@ namespace isc { namespace dhcp { #line 2329 "dhcp6_parser.cc" break; - case 370: + case 370: // client_class: "client-class" $@62 ":" "constant string" #line 1328 "dhcp6_parser.yy" { ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2338,7 +2338,7 @@ namespace isc { namespace dhcp { #line 2339 "dhcp6_parser.cc" break; - case 371: + case 371: // $@63: %empty #line 1334 "dhcp6_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2349,7 +2349,7 @@ namespace isc { namespace dhcp { #line 2350 "dhcp6_parser.cc" break; - case 372: + case 372: // require_client_classes: "require-client-classes" $@63 ":" list_strings #line 1339 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2358,7 +2358,7 @@ namespace isc { namespace dhcp { #line 2359 "dhcp6_parser.cc" break; - case 373: + case 373: // $@64: %empty #line 1344 "dhcp6_parser.yy" { ctx.enter(ctx.RESERVATION_MODE); @@ -2366,7 +2366,7 @@ namespace isc { namespace dhcp { #line 2367 "dhcp6_parser.cc" break; - case 374: + case 374: // reservation_mode: "reservation-mode" $@64 ":" hr_mode #line 1346 "dhcp6_parser.yy" { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ()); @@ -2375,31 +2375,31 @@ namespace isc { namespace dhcp { #line 2376 "dhcp6_parser.cc" break; - case 375: + case 375: // hr_mode: "disabled" #line 1351 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } #line 2382 "dhcp6_parser.cc" break; - case 376: + case 376: // hr_mode: "out-of-pool" #line 1352 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } #line 2388 "dhcp6_parser.cc" break; - case 377: + case 377: // hr_mode: "global" #line 1353 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } #line 2394 "dhcp6_parser.cc" break; - case 378: + case 378: // hr_mode: "all" #line 1354 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } #line 2400 "dhcp6_parser.cc" break; - case 379: + case 379: // id: "id" ":" "integer" #line 1357 "dhcp6_parser.yy" { ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2408,7 +2408,7 @@ namespace isc { namespace dhcp { #line 2409 "dhcp6_parser.cc" break; - case 380: + case 380: // rapid_commit: "rapid-commit" ":" "boolean" #line 1362 "dhcp6_parser.yy" { ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2417,7 +2417,7 @@ namespace isc { namespace dhcp { #line 2418 "dhcp6_parser.cc" break; - case 381: + case 381: // $@65: %empty #line 1369 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2428,7 +2428,7 @@ namespace isc { namespace dhcp { #line 2429 "dhcp6_parser.cc" break; - case 382: + case 382: // shared_networks: "shared-networks" $@65 ":" "[" shared_networks_content "]" #line 1374 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2437,7 +2437,7 @@ namespace isc { namespace dhcp { #line 2438 "dhcp6_parser.cc" break; - case 387: + case 387: // $@66: %empty #line 1389 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2447,7 +2447,7 @@ namespace isc { namespace dhcp { #line 2448 "dhcp6_parser.cc" break; - case 388: + case 388: // shared_network: "{" $@66 shared_network_params "}" #line 1393 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2455,7 +2455,7 @@ namespace isc { namespace dhcp { #line 2456 "dhcp6_parser.cc" break; - case 424: + case 424: // $@67: %empty #line 1440 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2466,7 +2466,7 @@ namespace isc { namespace dhcp { #line 2467 "dhcp6_parser.cc" break; - case 425: + case 425: // option_def_list: "option-def" $@67 ":" "[" option_def_list_content "]" #line 1445 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2475,7 +2475,7 @@ namespace isc { namespace dhcp { #line 2476 "dhcp6_parser.cc" break; - case 426: + case 426: // $@68: %empty #line 1453 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2484,7 +2484,7 @@ namespace isc { namespace dhcp { #line 2485 "dhcp6_parser.cc" break; - case 427: + case 427: // sub_option_def_list: "{" $@68 option_def_list "}" #line 1456 "dhcp6_parser.yy" { // parsing completed @@ -2492,7 +2492,7 @@ namespace isc { namespace dhcp { #line 2493 "dhcp6_parser.cc" break; - case 432: + case 432: // $@69: %empty #line 1472 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2502,7 +2502,7 @@ namespace isc { namespace dhcp { #line 2503 "dhcp6_parser.cc" break; - case 433: + case 433: // option_def_entry: "{" $@69 option_def_params "}" #line 1476 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. @@ -2514,7 +2514,7 @@ namespace isc { namespace dhcp { #line 2515 "dhcp6_parser.cc" break; - case 434: + case 434: // $@70: %empty #line 1487 "dhcp6_parser.yy" { // Parse the option-def list entry map @@ -2524,7 +2524,7 @@ namespace isc { namespace dhcp { #line 2525 "dhcp6_parser.cc" break; - case 435: + case 435: // sub_option_def: "{" $@70 option_def_params "}" #line 1491 "dhcp6_parser.yy" { // The name, code and type option def parameters are required. @@ -2536,7 +2536,7 @@ namespace isc { namespace dhcp { #line 2537 "dhcp6_parser.cc" break; - case 451: + case 451: // code: "code" ":" "integer" #line 1523 "dhcp6_parser.yy" { ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2545,7 +2545,7 @@ namespace isc { namespace dhcp { #line 2546 "dhcp6_parser.cc" break; - case 453: + case 453: // $@71: %empty #line 1530 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2553,7 +2553,7 @@ namespace isc { namespace dhcp { #line 2554 "dhcp6_parser.cc" break; - case 454: + case 454: // option_def_type: "type" $@71 ":" "constant string" #line 1532 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2563,7 +2563,7 @@ namespace isc { namespace dhcp { #line 2564 "dhcp6_parser.cc" break; - case 455: + case 455: // $@72: %empty #line 1538 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2571,7 +2571,7 @@ namespace isc { namespace dhcp { #line 2572 "dhcp6_parser.cc" break; - case 456: + case 456: // option_def_record_types: "record-types" $@72 ":" "constant string" #line 1540 "dhcp6_parser.yy" { ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2581,7 +2581,7 @@ namespace isc { namespace dhcp { #line 2582 "dhcp6_parser.cc" break; - case 457: + case 457: // $@73: %empty #line 1546 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2589,7 +2589,7 @@ namespace isc { namespace dhcp { #line 2590 "dhcp6_parser.cc" break; - case 458: + case 458: // space: "space" $@73 ":" "constant string" #line 1548 "dhcp6_parser.yy" { ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2599,7 +2599,7 @@ namespace isc { namespace dhcp { #line 2600 "dhcp6_parser.cc" break; - case 460: + case 460: // $@74: %empty #line 1556 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2607,7 +2607,7 @@ namespace isc { namespace dhcp { #line 2608 "dhcp6_parser.cc" break; - case 461: + case 461: // option_def_encapsulate: "encapsulate" $@74 ":" "constant string" #line 1558 "dhcp6_parser.yy" { ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2617,7 +2617,7 @@ namespace isc { namespace dhcp { #line 2618 "dhcp6_parser.cc" break; - case 462: + case 462: // option_def_array: "array" ":" "boolean" #line 1564 "dhcp6_parser.yy" { ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2626,7 +2626,7 @@ namespace isc { namespace dhcp { #line 2627 "dhcp6_parser.cc" break; - case 463: + case 463: // $@75: %empty #line 1573 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2637,7 +2637,7 @@ namespace isc { namespace dhcp { #line 2638 "dhcp6_parser.cc" break; - case 464: + case 464: // option_data_list: "option-data" $@75 ":" "[" option_data_list_content "]" #line 1578 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2646,7 +2646,7 @@ namespace isc { namespace dhcp { #line 2647 "dhcp6_parser.cc" break; - case 469: + case 469: // $@76: %empty #line 1597 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2656,7 +2656,7 @@ namespace isc { namespace dhcp { #line 2657 "dhcp6_parser.cc" break; - case 470: + case 470: // option_data_entry: "{" $@76 option_data_params "}" #line 1601 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. @@ -2665,7 +2665,7 @@ namespace isc { namespace dhcp { #line 2666 "dhcp6_parser.cc" break; - case 471: + case 471: // $@77: %empty #line 1609 "dhcp6_parser.yy" { // Parse the option-data list entry map @@ -2675,7 +2675,7 @@ namespace isc { namespace dhcp { #line 2676 "dhcp6_parser.cc" break; - case 472: + case 472: // sub_option_data: "{" $@77 option_data_params "}" #line 1613 "dhcp6_parser.yy" { /// @todo: the code or name parameters are required. @@ -2684,7 +2684,7 @@ namespace isc { namespace dhcp { #line 2685 "dhcp6_parser.cc" break; - case 487: + case 487: // $@78: %empty #line 1646 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2692,7 +2692,7 @@ namespace isc { namespace dhcp { #line 2693 "dhcp6_parser.cc" break; - case 488: + case 488: // option_data_data: "data" $@78 ":" "constant string" #line 1648 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2702,7 +2702,7 @@ namespace isc { namespace dhcp { #line 2703 "dhcp6_parser.cc" break; - case 491: + case 491: // option_data_csv_format: "csv-format" ":" "boolean" #line 1658 "dhcp6_parser.yy" { ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2711,7 +2711,7 @@ namespace isc { namespace dhcp { #line 2712 "dhcp6_parser.cc" break; - case 492: + case 492: // option_data_always_send: "always-send" ":" "boolean" #line 1663 "dhcp6_parser.yy" { ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -2720,7 +2720,7 @@ namespace isc { namespace dhcp { #line 2721 "dhcp6_parser.cc" break; - case 493: + case 493: // $@79: %empty #line 1671 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2731,7 +2731,7 @@ namespace isc { namespace dhcp { #line 2732 "dhcp6_parser.cc" break; - case 494: + case 494: // pools_list: "pools" $@79 ":" "[" pools_list_content "]" #line 1676 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2740,7 +2740,7 @@ namespace isc { namespace dhcp { #line 2741 "dhcp6_parser.cc" break; - case 499: + case 499: // $@80: %empty #line 1691 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2750,7 +2750,7 @@ namespace isc { namespace dhcp { #line 2751 "dhcp6_parser.cc" break; - case 500: + case 500: // pool_list_entry: "{" $@80 pool_params "}" #line 1695 "dhcp6_parser.yy" { // The pool parameter is required. @@ -2760,7 +2760,7 @@ namespace isc { namespace dhcp { #line 2761 "dhcp6_parser.cc" break; - case 501: + case 501: // $@81: %empty #line 1701 "dhcp6_parser.yy" { // Parse the pool list entry map @@ -2770,7 +2770,7 @@ namespace isc { namespace dhcp { #line 2771 "dhcp6_parser.cc" break; - case 502: + case 502: // sub_pool6: "{" $@81 pool_params "}" #line 1705 "dhcp6_parser.yy" { // The pool parameter is required. @@ -2780,7 +2780,7 @@ namespace isc { namespace dhcp { #line 2781 "dhcp6_parser.cc" break; - case 512: + case 512: // $@82: %empty #line 1724 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2788,7 +2788,7 @@ namespace isc { namespace dhcp { #line 2789 "dhcp6_parser.cc" break; - case 513: + case 513: // pool_entry: "pool" $@82 ":" "constant string" #line 1726 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2798,7 +2798,7 @@ namespace isc { namespace dhcp { #line 2799 "dhcp6_parser.cc" break; - case 514: + case 514: // $@83: %empty #line 1732 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2806,7 +2806,7 @@ namespace isc { namespace dhcp { #line 2807 "dhcp6_parser.cc" break; - case 515: + case 515: // user_context: "user-context" $@83 ":" map_value #line 1734 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -2833,7 +2833,7 @@ namespace isc { namespace dhcp { #line 2834 "dhcp6_parser.cc" break; - case 516: + case 516: // $@84: %empty #line 1757 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2841,7 +2841,7 @@ namespace isc { namespace dhcp { #line 2842 "dhcp6_parser.cc" break; - case 517: + case 517: // comment: "comment" $@84 ":" "constant string" #line 1759 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -2870,7 +2870,7 @@ namespace isc { namespace dhcp { #line 2871 "dhcp6_parser.cc" break; - case 518: + case 518: // $@85: %empty #line 1787 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -2881,7 +2881,7 @@ namespace isc { namespace dhcp { #line 2882 "dhcp6_parser.cc" break; - case 519: + case 519: // pd_pools_list: "pd-pools" $@85 ":" "[" pd_pools_list_content "]" #line 1792 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -2890,7 +2890,7 @@ namespace isc { namespace dhcp { #line 2891 "dhcp6_parser.cc" break; - case 524: + case 524: // $@86: %empty #line 1807 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -2900,7 +2900,7 @@ namespace isc { namespace dhcp { #line 2901 "dhcp6_parser.cc" break; - case 525: + case 525: // pd_pool_entry: "{" $@86 pd_pool_params "}" #line 1811 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. @@ -2912,7 +2912,7 @@ namespace isc { namespace dhcp { #line 2913 "dhcp6_parser.cc" break; - case 526: + case 526: // $@87: %empty #line 1819 "dhcp6_parser.yy" { // Parse the pd-pool list entry map @@ -2922,7 +2922,7 @@ namespace isc { namespace dhcp { #line 2923 "dhcp6_parser.cc" break; - case 527: + case 527: // sub_pd_pool: "{" $@87 pd_pool_params "}" #line 1823 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. @@ -2934,7 +2934,7 @@ namespace isc { namespace dhcp { #line 2935 "dhcp6_parser.cc" break; - case 541: + case 541: // $@88: %empty #line 1848 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2942,7 +2942,7 @@ namespace isc { namespace dhcp { #line 2943 "dhcp6_parser.cc" break; - case 542: + case 542: // pd_prefix: "prefix" $@88 ":" "constant string" #line 1850 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2952,7 +2952,7 @@ namespace isc { namespace dhcp { #line 2953 "dhcp6_parser.cc" break; - case 543: + case 543: // pd_prefix_len: "prefix-len" ":" "integer" #line 1856 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2961,7 +2961,7 @@ namespace isc { namespace dhcp { #line 2962 "dhcp6_parser.cc" break; - case 544: + case 544: // $@89: %empty #line 1861 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -2969,7 +2969,7 @@ namespace isc { namespace dhcp { #line 2970 "dhcp6_parser.cc" break; - case 545: + case 545: // excluded_prefix: "excluded-prefix" $@89 ":" "constant string" #line 1863 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -2979,7 +2979,7 @@ namespace isc { namespace dhcp { #line 2980 "dhcp6_parser.cc" break; - case 546: + case 546: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" #line 1869 "dhcp6_parser.yy" { ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2988,7 +2988,7 @@ namespace isc { namespace dhcp { #line 2989 "dhcp6_parser.cc" break; - case 547: + case 547: // pd_delegated_len: "delegated-len" ":" "integer" #line 1874 "dhcp6_parser.yy" { ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -2997,7 +2997,7 @@ namespace isc { namespace dhcp { #line 2998 "dhcp6_parser.cc" break; - case 548: + case 548: // $@90: %empty #line 1882 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3008,7 +3008,7 @@ namespace isc { namespace dhcp { #line 3009 "dhcp6_parser.cc" break; - case 549: + case 549: // reservations: "reservations" $@90 ":" "[" reservations_list "]" #line 1887 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3017,7 +3017,7 @@ namespace isc { namespace dhcp { #line 3018 "dhcp6_parser.cc" break; - case 554: + case 554: // $@91: %empty #line 1900 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3027,7 +3027,7 @@ namespace isc { namespace dhcp { #line 3028 "dhcp6_parser.cc" break; - case 555: + case 555: // reservation: "{" $@91 reservation_params "}" #line 1904 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. @@ -3036,7 +3036,7 @@ namespace isc { namespace dhcp { #line 3037 "dhcp6_parser.cc" break; - case 556: + case 556: // $@92: %empty #line 1909 "dhcp6_parser.yy" { // Parse the reservations list entry map @@ -3046,7 +3046,7 @@ namespace isc { namespace dhcp { #line 3047 "dhcp6_parser.cc" break; - case 557: + case 557: // sub_reservation: "{" $@92 reservation_params "}" #line 1913 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. @@ -3055,7 +3055,7 @@ namespace isc { namespace dhcp { #line 3056 "dhcp6_parser.cc" break; - case 573: + case 573: // $@93: %empty #line 1940 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3066,7 +3066,7 @@ namespace isc { namespace dhcp { #line 3067 "dhcp6_parser.cc" break; - case 574: + case 574: // ip_addresses: "ip-addresses" $@93 ":" list_strings #line 1945 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3075,7 +3075,7 @@ namespace isc { namespace dhcp { #line 3076 "dhcp6_parser.cc" break; - case 575: + case 575: // $@94: %empty #line 1950 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3086,7 +3086,7 @@ namespace isc { namespace dhcp { #line 3087 "dhcp6_parser.cc" break; - case 576: + case 576: // prefixes: "prefixes" $@94 ":" list_strings #line 1955 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3095,7 +3095,7 @@ namespace isc { namespace dhcp { #line 3096 "dhcp6_parser.cc" break; - case 577: + case 577: // $@95: %empty #line 1960 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3103,7 +3103,7 @@ namespace isc { namespace dhcp { #line 3104 "dhcp6_parser.cc" break; - case 578: + case 578: // duid: "duid" $@95 ":" "constant string" #line 1962 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3113,7 +3113,7 @@ namespace isc { namespace dhcp { #line 3114 "dhcp6_parser.cc" break; - case 579: + case 579: // $@96: %empty #line 1968 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3121,7 +3121,7 @@ namespace isc { namespace dhcp { #line 3122 "dhcp6_parser.cc" break; - case 580: + case 580: // hw_address: "hw-address" $@96 ":" "constant string" #line 1970 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3131,7 +3131,7 @@ namespace isc { namespace dhcp { #line 3132 "dhcp6_parser.cc" break; - case 581: + case 581: // $@97: %empty #line 1976 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3139,7 +3139,7 @@ namespace isc { namespace dhcp { #line 3140 "dhcp6_parser.cc" break; - case 582: + case 582: // hostname: "hostname" $@97 ":" "constant string" #line 1978 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3149,7 +3149,7 @@ namespace isc { namespace dhcp { #line 3150 "dhcp6_parser.cc" break; - case 583: + case 583: // $@98: %empty #line 1984 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3157,7 +3157,7 @@ namespace isc { namespace dhcp { #line 3158 "dhcp6_parser.cc" break; - case 584: + case 584: // flex_id_value: "flex-id" $@98 ":" "constant string" #line 1986 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3167,7 +3167,7 @@ namespace isc { namespace dhcp { #line 3168 "dhcp6_parser.cc" break; - case 585: + case 585: // $@99: %empty #line 1992 "dhcp6_parser.yy" { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3178,7 +3178,7 @@ namespace isc { namespace dhcp { #line 3179 "dhcp6_parser.cc" break; - case 586: + case 586: // reservation_client_classes: "client-classes" $@99 ":" list_strings #line 1997 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3187,7 +3187,7 @@ namespace isc { namespace dhcp { #line 3188 "dhcp6_parser.cc" break; - case 587: + case 587: // $@100: %empty #line 2005 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3198,7 +3198,7 @@ namespace isc { namespace dhcp { #line 3199 "dhcp6_parser.cc" break; - case 588: + case 588: // relay: "relay" $@100 ":" "{" relay_map "}" #line 2010 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3207,7 +3207,7 @@ namespace isc { namespace dhcp { #line 3208 "dhcp6_parser.cc" break; - case 591: + case 591: // $@101: %empty #line 2019 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3215,7 +3215,7 @@ namespace isc { namespace dhcp { #line 3216 "dhcp6_parser.cc" break; - case 592: + case 592: // ip_address: "ip-address" $@101 ":" "constant string" #line 2021 "dhcp6_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3225,7 +3225,7 @@ namespace isc { namespace dhcp { #line 3226 "dhcp6_parser.cc" break; - case 593: + case 593: // $@102: %empty #line 2030 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3236,7 +3236,7 @@ namespace isc { namespace dhcp { #line 3237 "dhcp6_parser.cc" break; - case 594: + case 594: // client_classes: "client-classes" $@102 ":" "[" client_classes_list "]" #line 2035 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3245,7 +3245,7 @@ namespace isc { namespace dhcp { #line 3246 "dhcp6_parser.cc" break; - case 597: + case 597: // $@103: %empty #line 2044 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3255,7 +3255,7 @@ namespace isc { namespace dhcp { #line 3256 "dhcp6_parser.cc" break; - case 598: + case 598: // client_class_entry: "{" $@103 client_class_params "}" #line 2048 "dhcp6_parser.yy" { // The name client class parameter is required. @@ -3265,7 +3265,7 @@ namespace isc { namespace dhcp { #line 3266 "dhcp6_parser.cc" break; - case 611: + case 611: // $@104: %empty #line 2073 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3273,7 +3273,7 @@ namespace isc { namespace dhcp { #line 3274 "dhcp6_parser.cc" break; - case 612: + case 612: // client_class_test: "test" $@104 ":" "constant string" #line 2075 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3283,7 +3283,7 @@ namespace isc { namespace dhcp { #line 3284 "dhcp6_parser.cc" break; - case 613: + case 613: // only_if_required: "only-if-required" ":" "boolean" #line 2081 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3292,7 +3292,7 @@ namespace isc { namespace dhcp { #line 3293 "dhcp6_parser.cc" break; - case 614: + case 614: // $@105: %empty #line 2089 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3303,7 +3303,7 @@ namespace isc { namespace dhcp { #line 3304 "dhcp6_parser.cc" break; - case 615: + case 615: // server_id: "server-id" $@105 ":" "{" server_id_params "}" #line 2094 "dhcp6_parser.yy" { // The type parameter is required. @@ -3314,7 +3314,7 @@ namespace isc { namespace dhcp { #line 3315 "dhcp6_parser.cc" break; - case 627: + case 627: // $@106: %empty #line 2116 "dhcp6_parser.yy" { ctx.enter(ctx.DUID_TYPE); @@ -3322,7 +3322,7 @@ namespace isc { namespace dhcp { #line 3323 "dhcp6_parser.cc" break; - case 628: + case 628: // server_id_type: "type" $@106 ":" duid_type #line 2118 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); @@ -3331,25 +3331,25 @@ namespace isc { namespace dhcp { #line 3332 "dhcp6_parser.cc" break; - case 629: + case 629: // duid_type: "LLT" #line 2123 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } #line 3338 "dhcp6_parser.cc" break; - case 630: + case 630: // duid_type: "EN" #line 2124 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } #line 3344 "dhcp6_parser.cc" break; - case 631: + case 631: // duid_type: "LL" #line 2125 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } #line 3350 "dhcp6_parser.cc" break; - case 632: + case 632: // htype: "htype" ":" "integer" #line 2128 "dhcp6_parser.yy" { ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3358,7 +3358,7 @@ namespace isc { namespace dhcp { #line 3359 "dhcp6_parser.cc" break; - case 633: + case 633: // $@107: %empty #line 2133 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3366,7 +3366,7 @@ namespace isc { namespace dhcp { #line 3367 "dhcp6_parser.cc" break; - case 634: + case 634: // identifier: "identifier" $@107 ":" "constant string" #line 2135 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3376,7 +3376,7 @@ namespace isc { namespace dhcp { #line 3377 "dhcp6_parser.cc" break; - case 635: + case 635: // time: "time" ":" "integer" #line 2141 "dhcp6_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3385,7 +3385,7 @@ namespace isc { namespace dhcp { #line 3386 "dhcp6_parser.cc" break; - case 636: + case 636: // enterprise_id: "enterprise-id" ":" "integer" #line 2146 "dhcp6_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3394,7 +3394,7 @@ namespace isc { namespace dhcp { #line 3395 "dhcp6_parser.cc" break; - case 637: + case 637: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" #line 2153 "dhcp6_parser.yy" { ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3403,7 +3403,7 @@ namespace isc { namespace dhcp { #line 3404 "dhcp6_parser.cc" break; - case 638: + case 638: // $@108: %empty #line 2160 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3414,7 +3414,7 @@ namespace isc { namespace dhcp { #line 3415 "dhcp6_parser.cc" break; - case 639: + case 639: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" #line 2165 "dhcp6_parser.yy" { ctx.stack_.pop_back(); @@ -3423,7 +3423,7 @@ namespace isc { namespace dhcp { #line 3424 "dhcp6_parser.cc" break; - case 647: + case 647: // $@109: %empty #line 2181 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3431,7 +3431,7 @@ namespace isc { namespace dhcp { #line 3432 "dhcp6_parser.cc" break; - case 648: + case 648: // socket_type: "socket-type" $@109 ":" "constant string" #line 2183 "dhcp6_parser.yy" { ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3441,7 +3441,7 @@ namespace isc { namespace dhcp { #line 3442 "dhcp6_parser.cc" break; - case 649: + case 649: // $@110: %empty #line 2189 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3449,7 +3449,7 @@ namespace isc { namespace dhcp { #line 3450 "dhcp6_parser.cc" break; - case 650: + case 650: // socket_name: "socket-name" $@110 ":" "constant string" #line 2191 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3459,7 +3459,7 @@ namespace isc { namespace dhcp { #line 3460 "dhcp6_parser.cc" break; - case 651: + case 651: // $@111: %empty #line 2200 "dhcp6_parser.yy" { ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3470,7 +3470,7 @@ namespace isc { namespace dhcp { #line 3471 "dhcp6_parser.cc" break; - case 652: + case 652: // dhcp_queue_control: "dhcp-queue-control" $@111 ":" "{" queue_control_params "}" #line 2205 "dhcp6_parser.yy" { // The enable queue parameter is required. @@ -3481,7 +3481,7 @@ namespace isc { namespace dhcp { #line 3482 "dhcp6_parser.cc" break; - case 661: + case 661: // enable_queue: "enable-queue" ":" "boolean" #line 2224 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3490,7 +3490,7 @@ namespace isc { namespace dhcp { #line 3491 "dhcp6_parser.cc" break; - case 662: + case 662: // $@112: %empty #line 2229 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3498,7 +3498,7 @@ namespace isc { namespace dhcp { #line 3499 "dhcp6_parser.cc" break; - case 663: + case 663: // queue_type: "queue-type" $@112 ":" "constant string" #line 2231 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -3508,7 +3508,7 @@ namespace isc { namespace dhcp { #line 3509 "dhcp6_parser.cc" break; - case 664: + case 664: // capacity: "capacity" ":" "integer" #line 2237 "dhcp6_parser.yy" { ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -3517,7 +3517,7 @@ namespace isc { namespace dhcp { #line 3518 "dhcp6_parser.cc" break; - case 665: + case 665: // $@113: %empty #line 2242 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); @@ -3525,7 +3525,7 @@ namespace isc { namespace dhcp { #line 3526 "dhcp6_parser.cc" break; - case 666: + case 666: // arbitrary_map_entry: "constant string" $@113 ":" value #line 2244 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); @@ -3534,7 +3534,7 @@ namespace isc { namespace dhcp { #line 3535 "dhcp6_parser.cc" break; - case 667: + case 667: // $@114: %empty #line 2251 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3545,7 +3545,7 @@ namespace isc { namespace dhcp { #line 3546 "dhcp6_parser.cc" break; - case 668: + case 668: // dhcp_ddns: "dhcp-ddns" $@114 ":" "{" dhcp_ddns_params "}" #line 2256 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. @@ -3556,7 +3556,7 @@ namespace isc { namespace dhcp { #line 3557 "dhcp6_parser.cc" break; - case 669: + case 669: // $@115: %empty #line 2263 "dhcp6_parser.yy" { // Parse the dhcp-ddns map @@ -3566,7 +3566,7 @@ namespace isc { namespace dhcp { #line 3567 "dhcp6_parser.cc" break; - case 670: + case 670: // sub_dhcp_ddns: "{" $@115 dhcp_ddns_params "}" #line 2267 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. @@ -3576,7 +3576,7 @@ namespace isc { namespace dhcp { #line 3577 "dhcp6_parser.cc" break; - case 691: + case 691: // enable_updates: "enable-updates" ":" "boolean" #line 2297 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3585,16 +3585,16 @@ namespace isc { namespace dhcp { #line 3586 "dhcp6_parser.cc" break; - case 692: -#line 2302 "dhcp6_parser.yy" - { + case 692: // $@116: %empty +#line 2303 "dhcp6_parser.yy" + { ctx.enter(ctx.NO_KEYWORD); } #line 3594 "dhcp6_parser.cc" break; - case 693: -#line 2304 "dhcp6_parser.yy" + case 693: // dep_qualifying_suffix: "qualifying-suffix" $@116 ":" "constant string" +#line 2305 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); @@ -3603,16 +3603,16 @@ namespace isc { namespace dhcp { #line 3604 "dhcp6_parser.cc" break; - case 694: -#line 2310 "dhcp6_parser.yy" + case 694: // $@117: %empty +#line 2311 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3612 "dhcp6_parser.cc" break; - case 695: -#line 2312 "dhcp6_parser.yy" + case 695: // server_ip: "server-ip" $@117 ":" "constant string" +#line 2313 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); @@ -3621,8 +3621,8 @@ namespace isc { namespace dhcp { #line 3622 "dhcp6_parser.cc" break; - case 696: -#line 2318 "dhcp6_parser.yy" + case 696: // server_port: "server-port" ":" "integer" +#line 2319 "dhcp6_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); @@ -3630,16 +3630,16 @@ namespace isc { namespace dhcp { #line 3631 "dhcp6_parser.cc" break; - case 697: -#line 2323 "dhcp6_parser.yy" + case 697: // $@118: %empty +#line 2324 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3639 "dhcp6_parser.cc" break; - case 698: -#line 2325 "dhcp6_parser.yy" + case 698: // sender_ip: "sender-ip" $@118 ":" "constant string" +#line 2326 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); @@ -3648,8 +3648,8 @@ namespace isc { namespace dhcp { #line 3649 "dhcp6_parser.cc" break; - case 699: -#line 2331 "dhcp6_parser.yy" + case 699: // sender_port: "sender-port" ":" "integer" +#line 2332 "dhcp6_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); @@ -3657,8 +3657,8 @@ namespace isc { namespace dhcp { #line 3658 "dhcp6_parser.cc" break; - case 700: -#line 2336 "dhcp6_parser.yy" + case 700: // max_queue_size: "max-queue-size" ":" "integer" +#line 2337 "dhcp6_parser.yy" { ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); @@ -3666,16 +3666,16 @@ namespace isc { namespace dhcp { #line 3667 "dhcp6_parser.cc" break; - case 701: -#line 2341 "dhcp6_parser.yy" + case 701: // $@119: %empty +#line 2342 "dhcp6_parser.yy" { ctx.enter(ctx.NCR_PROTOCOL); } #line 3675 "dhcp6_parser.cc" break; - case 702: -#line 2343 "dhcp6_parser.yy" + case 702: // ncr_protocol: "ncr-protocol" $@119 ":" ncr_protocol_value +#line 2344 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -3683,28 +3683,28 @@ namespace isc { namespace dhcp { #line 3684 "dhcp6_parser.cc" break; - case 703: -#line 2349 "dhcp6_parser.yy" + case 703: // ncr_protocol_value: "UDP" +#line 2350 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 3690 "dhcp6_parser.cc" break; - case 704: -#line 2350 "dhcp6_parser.yy" + case 704: // ncr_protocol_value: "TCP" +#line 2351 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 3696 "dhcp6_parser.cc" break; - case 705: -#line 2353 "dhcp6_parser.yy" + case 705: // $@120: %empty +#line 2354 "dhcp6_parser.yy" { ctx.enter(ctx.NCR_FORMAT); } #line 3704 "dhcp6_parser.cc" break; - case 706: -#line 2355 "dhcp6_parser.yy" + case 706: // ncr_format: "ncr-format" $@120 ":" "JSON" +#line 2356 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); @@ -3713,8 +3713,8 @@ namespace isc { namespace dhcp { #line 3714 "dhcp6_parser.cc" break; - case 707: -#line 2362 "dhcp6_parser.yy" + case 707: // dep_override_no_update: "override-no-update" ":" "boolean" +#line 2363 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); @@ -3722,8 +3722,8 @@ namespace isc { namespace dhcp { #line 3723 "dhcp6_parser.cc" break; - case 708: -#line 2368 "dhcp6_parser.yy" + case 708: // dep_override_client_update: "override-client-update" ":" "boolean" +#line 2369 "dhcp6_parser.yy" { ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); @@ -3731,16 +3731,16 @@ namespace isc { namespace dhcp { #line 3732 "dhcp6_parser.cc" break; - case 709: -#line 2374 "dhcp6_parser.yy" + case 709: // $@121: %empty +#line 2375 "dhcp6_parser.yy" { ctx.enter(ctx.REPLACE_CLIENT_NAME); } #line 3740 "dhcp6_parser.cc" break; - case 710: -#line 2376 "dhcp6_parser.yy" + case 710: // dep_replace_client_name: "replace-client-name" $@121 ":" ddns_replace_client_name_value +#line 2377 "dhcp6_parser.yy" { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); @@ -3748,16 +3748,16 @@ namespace isc { namespace dhcp { #line 3749 "dhcp6_parser.cc" break; - case 711: -#line 2382 "dhcp6_parser.yy" + case 711: // $@122: %empty +#line 2383 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3757 "dhcp6_parser.cc" break; - case 712: -#line 2384 "dhcp6_parser.yy" + case 712: // dep_generated_prefix: "generated-prefix" $@122 ":" "constant string" +#line 2385 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); @@ -3766,16 +3766,16 @@ namespace isc { namespace dhcp { #line 3767 "dhcp6_parser.cc" break; - case 713: -#line 2391 "dhcp6_parser.yy" + case 713: // $@123: %empty +#line 2392 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3775 "dhcp6_parser.cc" break; - case 714: -#line 2393 "dhcp6_parser.yy" + case 714: // dep_hostname_char_set: "hostname-char-set" $@123 ":" "constant string" +#line 2394 "dhcp6_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); @@ -3784,16 +3784,16 @@ namespace isc { namespace dhcp { #line 3785 "dhcp6_parser.cc" break; - case 715: -#line 2400 "dhcp6_parser.yy" + case 715: // $@124: %empty +#line 2401 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3793 "dhcp6_parser.cc" break; - case 716: -#line 2402 "dhcp6_parser.yy" + case 716: // dep_hostname_char_replacement: "hostname-char-replacement" $@124 ":" "constant string" +#line 2403 "dhcp6_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); @@ -3802,8 +3802,8 @@ namespace isc { namespace dhcp { #line 3803 "dhcp6_parser.cc" break; - case 717: -#line 2411 "dhcp6_parser.yy" + case 717: // $@125: %empty +#line 2412 "dhcp6_parser.yy" { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); @@ -3813,8 +3813,8 @@ namespace isc { namespace dhcp { #line 3814 "dhcp6_parser.cc" break; - case 718: -#line 2416 "dhcp6_parser.yy" + case 718: // config_control: "config-control" $@125 ":" "{" config_control_params "}" +#line 2417 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); @@ -3823,8 +3823,8 @@ namespace isc { namespace dhcp { #line 3824 "dhcp6_parser.cc" break; - case 719: -#line 2422 "dhcp6_parser.yy" + case 719: // $@126: %empty +#line 2423 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3833,8 +3833,8 @@ namespace isc { namespace dhcp { #line 3834 "dhcp6_parser.cc" break; - case 720: -#line 2426 "dhcp6_parser.yy" + case 720: // sub_config_control: "{" $@126 config_control_params "}" +#line 2427 "dhcp6_parser.yy" { // No config_control params are required // parsing completed @@ -3842,8 +3842,8 @@ namespace isc { namespace dhcp { #line 3843 "dhcp6_parser.cc" break; - case 725: -#line 2441 "dhcp6_parser.yy" + case 725: // $@127: %empty +#line 2442 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); @@ -3853,8 +3853,8 @@ namespace isc { namespace dhcp { #line 3854 "dhcp6_parser.cc" break; - case 726: -#line 2446 "dhcp6_parser.yy" + case 726: // config_databases: "config-databases" $@127 ":" "[" database_list "]" +#line 2447 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3862,8 +3862,8 @@ namespace isc { namespace dhcp { #line 3863 "dhcp6_parser.cc" break; - case 727: -#line 2451 "dhcp6_parser.yy" + case 727: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2452 "dhcp6_parser.yy" { ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); @@ -3871,8 +3871,8 @@ namespace isc { namespace dhcp { #line 3872 "dhcp6_parser.cc" break; - case 728: -#line 2458 "dhcp6_parser.yy" + case 728: // $@128: %empty +#line 2459 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); @@ -3882,8 +3882,8 @@ namespace isc { namespace dhcp { #line 3883 "dhcp6_parser.cc" break; - case 729: -#line 2463 "dhcp6_parser.yy" + case 729: // loggers: "loggers" $@128 ":" "[" loggers_entries "]" +#line 2464 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3891,8 +3891,8 @@ namespace isc { namespace dhcp { #line 3892 "dhcp6_parser.cc" break; - case 732: -#line 2475 "dhcp6_parser.yy" + case 732: // $@129: %empty +#line 2476 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); @@ -3901,16 +3901,16 @@ namespace isc { namespace dhcp { #line 3902 "dhcp6_parser.cc" break; - case 733: -#line 2479 "dhcp6_parser.yy" + case 733: // logger_entry: "{" $@129 logger_params "}" +#line 2480 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } #line 3910 "dhcp6_parser.cc" break; - case 743: -#line 2496 "dhcp6_parser.yy" + case 743: // debuglevel: "debuglevel" ":" "integer" +#line 2497 "dhcp6_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); @@ -3918,16 +3918,16 @@ namespace isc { namespace dhcp { #line 3919 "dhcp6_parser.cc" break; - case 744: -#line 2501 "dhcp6_parser.yy" + case 744: // $@130: %empty +#line 2502 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3927 "dhcp6_parser.cc" break; - case 745: -#line 2503 "dhcp6_parser.yy" + case 745: // severity: "severity" $@130 ":" "constant string" +#line 2504 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); @@ -3936,8 +3936,8 @@ namespace isc { namespace dhcp { #line 3937 "dhcp6_parser.cc" break; - case 746: -#line 2509 "dhcp6_parser.yy" + case 746: // $@131: %empty +#line 2510 "dhcp6_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); @@ -3947,8 +3947,8 @@ namespace isc { namespace dhcp { #line 3948 "dhcp6_parser.cc" break; - case 747: -#line 2514 "dhcp6_parser.yy" + case 747: // output_options_list: "output_options" $@131 ":" "[" output_options_list_content "]" +#line 2515 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); @@ -3956,8 +3956,8 @@ namespace isc { namespace dhcp { #line 3957 "dhcp6_parser.cc" break; - case 750: -#line 2523 "dhcp6_parser.yy" + case 750: // $@132: %empty +#line 2524 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -3966,24 +3966,24 @@ namespace isc { namespace dhcp { #line 3967 "dhcp6_parser.cc" break; - case 751: -#line 2527 "dhcp6_parser.yy" + case 751: // output_entry: "{" $@132 output_params_list "}" +#line 2528 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } #line 3975 "dhcp6_parser.cc" break; - case 759: -#line 2542 "dhcp6_parser.yy" + case 759: // $@133: %empty +#line 2543 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 3983 "dhcp6_parser.cc" break; - case 760: -#line 2544 "dhcp6_parser.yy" + case 760: // output: "output" $@133 ":" "constant string" +#line 2545 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); @@ -3992,8 +3992,8 @@ namespace isc { namespace dhcp { #line 3993 "dhcp6_parser.cc" break; - case 761: -#line 2550 "dhcp6_parser.yy" + case 761: // flush: "flush" ":" "boolean" +#line 2551 "dhcp6_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); @@ -4001,8 +4001,8 @@ namespace isc { namespace dhcp { #line 4002 "dhcp6_parser.cc" break; - case 762: -#line 2555 "dhcp6_parser.yy" + case 762: // maxsize: "maxsize" ":" "integer" +#line 2556 "dhcp6_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); @@ -4010,8 +4010,8 @@ namespace isc { namespace dhcp { #line 4011 "dhcp6_parser.cc" break; - case 763: -#line 2560 "dhcp6_parser.yy" + case 763: // maxver: "maxver" ":" "integer" +#line 2561 "dhcp6_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); @@ -4019,16 +4019,16 @@ namespace isc { namespace dhcp { #line 4020 "dhcp6_parser.cc" break; - case 764: -#line 2565 "dhcp6_parser.yy" + case 764: // $@134: %empty +#line 2566 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } #line 4028 "dhcp6_parser.cc" break; - case 765: -#line 2567 "dhcp6_parser.yy" + case 765: // pattern: "pattern" $@134 ":" "constant string" +#line 2568 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); @@ -4560,8 +4560,8 @@ namespace isc { namespace dhcp { 475, 477, 478, 479, 480, 481, 482, 483, 484, 295, 297, 292, 0, 290, 293, 294, 0, 692, 694, 0, 697, 0, 0, 701, 705, 0, 0, 709, 711, 713, - 715, 690, 688, 689, 0, 671, 673, 674, 675, 676, - 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, + 715, 690, 688, 689, 0, 671, 673, 685, 674, 675, + 676, 677, 678, 679, 680, 681, 682, 683, 684, 686, 687, 725, 0, 0, 721, 723, 724, 46, 0, 0, 39, 0, 0, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5446,7 +5446,7 @@ namespace isc { namespace dhcp { "queue_control_params", "queue_control_param", "enable_queue", "queue_type", "$@112", "capacity", "arbitrary_map_entry", "$@113", "dhcp_ddns", "$@114", "sub_dhcp_ddns", "$@115", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@116", + "dhcp_ddns_param", "enable_updates", "dep_qualifying_suffix", "$@116", "server_ip", "$@117", "server_port", "sender_ip", "$@118", "sender_port", "max_queue_size", "ncr_protocol", "$@119", "ncr_protocol_value", "ncr_format", "$@120", "dep_override_no_update", @@ -5538,14 +5538,14 @@ namespace isc { namespace dhcp { 2221, 2224, 2229, 2229, 2237, 2242, 2242, 2251, 2251, 2263, 2263, 2273, 2274, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, - 2294, 2297, 2302, 2302, 2310, 2310, 2318, 2323, 2323, 2331, - 2336, 2341, 2341, 2349, 2350, 2353, 2353, 2362, 2368, 2374, - 2374, 2382, 2382, 2391, 2391, 2400, 2400, 2411, 2411, 2422, - 2422, 2432, 2433, 2437, 2438, 2441, 2441, 2451, 2458, 2458, - 2470, 2471, 2475, 2475, 2483, 2484, 2487, 2488, 2489, 2490, - 2491, 2492, 2493, 2496, 2501, 2501, 2509, 2509, 2519, 2520, - 2523, 2523, 2531, 2532, 2535, 2536, 2537, 2538, 2539, 2542, - 2542, 2550, 2555, 2560, 2565, 2565 + 2294, 2297, 2303, 2303, 2311, 2311, 2319, 2324, 2324, 2332, + 2337, 2342, 2342, 2350, 2351, 2354, 2354, 2363, 2369, 2375, + 2375, 2383, 2383, 2392, 2392, 2401, 2401, 2412, 2412, 2423, + 2423, 2433, 2434, 2438, 2439, 2442, 2442, 2452, 2459, 2459, + 2471, 2472, 2476, 2476, 2484, 2485, 2488, 2489, 2490, 2491, + 2492, 2493, 2494, 2497, 2502, 2502, 2510, 2510, 2520, 2521, + 2524, 2524, 2532, 2533, 2536, 2537, 2538, 2539, 2540, 2543, + 2543, 2551, 2556, 2561, 2566, 2566 }; void @@ -5580,7 +5580,7 @@ namespace isc { namespace dhcp { } } // isc::dhcp #line 5582 "dhcp6_parser.cc" -#line 2573 "dhcp6_parser.yy" +#line 2574 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 599c1fef82..95baa9e9fd 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -1263,7 +1263,7 @@ namespace isc { namespace dhcp { S_dhcp_ddns_params = 562, // dhcp_ddns_params S_dhcp_ddns_param = 563, // dhcp_ddns_param S_enable_updates = 564, // enable_updates - S_qualifying_suffix = 565, // qualifying_suffix + S_dep_qualifying_suffix = 565, // dep_qualifying_suffix S_566_116 = 566, // $@116 S_server_ip = 567, // server_ip S_568_117 = 568, // $@117 @@ -1356,29 +1356,29 @@ namespace isc { namespace dhcp { { switch (this->kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (std::move (that.value)); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (std::move (that.value)); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (std::move (that.value)); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -1492,29 +1492,29 @@ namespace isc { namespace dhcp { // Value type destructor. switch (yykind) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.template destroy< ElementPtr > (); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.template destroy< bool > (); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.template destroy< double > (); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.template destroy< int64_t > (); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.template destroy< std::string > (); break; @@ -4838,7 +4838,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -5085,11 +5085,12 @@ switch (yykind) 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197 }; - const int user_token_number_max_ = 452; + // Last valid token kind. + const int code_max = 452; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -5104,29 +5105,29 @@ switch (yykind) { switch (this->kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -5159,29 +5160,29 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 214: // value - case 218: // map_value - case 259: // ddns_replace_client_name_value - case 296: // db_type - case 397: // hr_mode - case 533: // duid_type - case 576: // ncr_protocol_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_ddns_replace_client_name_value: // ddns_replace_client_name_value + case symbol_kind::S_db_type: // db_type + case symbol_kind::S_hr_mode: // hr_mode + case symbol_kind::S_duid_type: // duid_type + case symbol_kind::S_ncr_protocol_value: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 197: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 196: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 195: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 194: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -5248,8 +5249,7 @@ switch (yykind) #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5252 "dhcp6_parser.h" - +#line 5253 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/location.hh b/src/bin/dhcp6/location.hh index 3792581544..9d96b7e801 100644 --- a/src/bin/dhcp6/location.hh +++ b/src/bin/dhcp6/location.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // Locations for Bison parsers in C++ @@ -62,11 +62,13 @@ namespace isc { namespace dhcp { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -76,7 +78,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -105,7 +107,7 @@ namespace isc { namespace dhcp { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -148,24 +150,6 @@ namespace isc { namespace dhcp { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -183,6 +167,8 @@ namespace isc { namespace dhcp { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -199,7 +185,7 @@ namespace isc { namespace dhcp { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -208,7 +194,7 @@ namespace isc { namespace dhcp { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -290,20 +276,6 @@ namespace isc { namespace dhcp { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -330,6 +302,6 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 333 "location.hh" +#line 305 "location.hh" #endif // !YY_PARSER6_LOCATION_HH_INCLUDED diff --git a/src/bin/dhcp6/position.hh b/src/bin/dhcp6/position.hh index e0ad590321..12e7205cc5 100644 --- a/src/bin/dhcp6/position.hh +++ b/src/bin/dhcp6/position.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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 8dbe273f87..fed81e95f8 100644 --- a/src/bin/dhcp6/stack.hh +++ b/src/bin/dhcp6/stack.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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 cdae8cb414..5a00e42b03 100644 --- a/src/bin/netconf/location.hh +++ b/src/bin/netconf/location.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021532 +// A Bison parser, made by GNU Bison 3.7.1. // Locations for Bison parsers in C++ @@ -62,11 +62,13 @@ namespace isc { namespace netconf { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -76,7 +78,7 @@ namespace isc { namespace netconf { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -105,7 +107,7 @@ namespace isc { namespace netconf { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -148,24 +150,6 @@ namespace isc { namespace netconf { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -183,6 +167,8 @@ namespace isc { namespace netconf { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -199,7 +185,7 @@ namespace isc { namespace netconf { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -208,7 +194,7 @@ namespace isc { namespace netconf { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -290,20 +276,6 @@ namespace isc { namespace netconf { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -330,6 +302,6 @@ namespace isc { namespace netconf { #line 14 "netconf_parser.yy" } } // isc::netconf -#line 333 "location.hh" +#line 305 "location.hh" #endif // !YY_NETCONF_LOCATION_HH_INCLUDED diff --git a/src/bin/netconf/netconf_parser.cc b/src/bin/netconf/netconf_parser.cc index da867c58b8..6d593656cc 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -209,25 +209,25 @@ namespace isc { namespace netconf { { switch (that.kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -246,25 +246,25 @@ namespace isc { namespace netconf { { switch (that.kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -283,25 +283,25 @@ namespace isc { namespace netconf { state = that.state; switch (that.kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.copy< ElementPtr > (that.value); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (that.value); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (that.value); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (that.value); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (that.value); break; @@ -319,25 +319,25 @@ namespace isc { namespace netconf { state = that.state; switch (that.kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (that.value); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (that.value); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (that.value); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (that.value); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (that.value); break; @@ -377,43 +377,43 @@ namespace isc { namespace netconf { << yysym.location << ": "; switch (yykind) { - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 384 "netconf_parser.cc" break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < int64_t > (); } #line 390 "netconf_parser.cc" break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < double > (); } #line 396 "netconf_parser.cc" break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < bool > (); } #line 402 "netconf_parser.cc" break; - case 57: // value + case symbol_kind::S_value: // value #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 408 "netconf_parser.cc" break; - case 60: // map_value + case symbol_kind::S_map_value: // map_value #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 414 "netconf_parser.cc" break; - case 119: // socket_type_value + case symbol_kind::S_socket_type_value: // socket_type_value #line 107 "netconf_parser.yy" { yyoutput << yysym.value.template as < ElementPtr > (); } #line 420 "netconf_parser.cc" @@ -646,25 +646,25 @@ namespace isc { namespace netconf { when using variants. */ switch (yyr1_[yyn]) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value yylhs.value.emplace< ElementPtr > (); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" yylhs.value.emplace< bool > (); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" yylhs.value.emplace< double > (); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" yylhs.value.emplace< int64_t > (); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -688,25 +688,25 @@ namespace isc { namespace netconf { { switch (yyn) { - case 2: + case 2: // $@1: %empty #line 118 "netconf_parser.yy" { ctx.ctx_ = ctx.NO_KEYWORDS; } #line 695 "netconf_parser.cc" break; - case 4: + case 4: // $@2: %empty #line 119 "netconf_parser.yy" { ctx.ctx_ = ctx.CONFIG; } #line 701 "netconf_parser.cc" break; - case 6: + case 6: // $@3: %empty #line 120 "netconf_parser.yy" { ctx.ctx_ = ctx.NETCONF; } #line 707 "netconf_parser.cc" break; - case 8: + case 8: // $@4: %empty #line 128 "netconf_parser.yy" { // Parse the Netconf map @@ -716,7 +716,7 @@ namespace isc { namespace netconf { #line 717 "netconf_parser.cc" break; - case 9: + case 9: // sub_netconf: "{" $@4 global_params "}" #line 132 "netconf_parser.yy" { // parsing completed @@ -724,7 +724,7 @@ namespace isc { namespace netconf { #line 725 "netconf_parser.cc" break; - case 10: + case 10: // json: value #line 139 "netconf_parser.yy" { // Push back the JSON value on the stack @@ -733,49 +733,49 @@ namespace isc { namespace netconf { #line 734 "netconf_parser.cc" break; - case 11: + case 11: // value: "integer" #line 145 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 740 "netconf_parser.cc" break; - case 12: + case 12: // value: "floating point" #line 146 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); } #line 746 "netconf_parser.cc" break; - case 13: + case 13: // value: "boolean" #line 147 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); } #line 752 "netconf_parser.cc" break; - case 14: + case 14: // value: "constant string" #line 148 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 758 "netconf_parser.cc" break; - case 15: + case 15: // value: "null" #line 149 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 764 "netconf_parser.cc" break; - case 16: + case 16: // value: map #line 150 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 770 "netconf_parser.cc" break; - case 17: + case 17: // value: list_generic #line 151 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 776 "netconf_parser.cc" break; - case 18: + case 18: // $@5: %empty #line 155 "netconf_parser.yy" { // This code is executed when we're about to start parsing @@ -786,7 +786,7 @@ namespace isc { namespace netconf { #line 787 "netconf_parser.cc" break; - case 19: + case 19: // map: "{" $@5 map_content "}" #line 160 "netconf_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -796,13 +796,13 @@ namespace isc { namespace netconf { #line 797 "netconf_parser.cc" break; - case 20: + case 20: // map_value: map #line 166 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 803 "netconf_parser.cc" break; - case 23: + case 23: // not_empty_map: "constant string" ":" value #line 180 "netconf_parser.yy" { // map containing a single entry @@ -811,7 +811,7 @@ namespace isc { namespace netconf { #line 812 "netconf_parser.cc" break; - case 24: + case 24: // not_empty_map: not_empty_map "," "constant string" ":" value #line 184 "netconf_parser.yy" { // map consisting of a shorter map followed by @@ -821,7 +821,7 @@ namespace isc { namespace netconf { #line 822 "netconf_parser.cc" break; - case 25: + case 25: // $@6: %empty #line 191 "netconf_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -830,14 +830,14 @@ namespace isc { namespace netconf { #line 831 "netconf_parser.cc" break; - case 26: + case 26: // list_generic: "[" $@6 list_content "]" #line 194 "netconf_parser.yy" { } #line 838 "netconf_parser.cc" break; - case 29: + case 29: // not_empty_list: value #line 201 "netconf_parser.yy" { // List consisting of a single element. @@ -846,7 +846,7 @@ namespace isc { namespace netconf { #line 847 "netconf_parser.cc" break; - case 30: + case 30: // not_empty_list: not_empty_list "," value #line 205 "netconf_parser.yy" { // List ending with , and a value. @@ -855,7 +855,7 @@ namespace isc { namespace netconf { #line 856 "netconf_parser.cc" break; - case 31: + case 31: // unknown_map_entry: "constant string" ":" #line 218 "netconf_parser.yy" { const std::string& where = ctx.contextName(); @@ -866,7 +866,7 @@ namespace isc { namespace netconf { #line 867 "netconf_parser.cc" break; - case 32: + case 32: // $@7: %empty #line 226 "netconf_parser.yy" { // This code is executed when we're about to start parsing @@ -877,7 +877,7 @@ namespace isc { namespace netconf { #line 878 "netconf_parser.cc" break; - case 33: + case 33: // netconf_syntax_map: "{" $@7 global_objects "}" #line 231 "netconf_parser.yy" { // map parsing completed. If we ever want to do any wrap up @@ -887,7 +887,7 @@ namespace isc { namespace netconf { #line 888 "netconf_parser.cc" break; - case 37: + case 37: // $@8: %empty #line 247 "netconf_parser.yy" { @@ -906,7 +906,7 @@ namespace isc { namespace netconf { #line 907 "netconf_parser.cc" break; - case 38: + case 38: // netconf_object: "Netconf" $@8 ":" "{" global_params "}" #line 260 "netconf_parser.yy" { // Ok, we're done with parsing Netconf. Let's take the map @@ -917,7 +917,7 @@ namespace isc { namespace netconf { #line 918 "netconf_parser.cc" break; - case 52: + case 52: // boot_update: "boot-update" ":" "boolean" #line 288 "netconf_parser.yy" { ElementPtr flag(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -926,7 +926,7 @@ namespace isc { namespace netconf { #line 927 "netconf_parser.cc" break; - case 53: + case 53: // subscribe_changes: "subscribe-changes" ":" "boolean" #line 293 "netconf_parser.yy" { ElementPtr flag(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -935,7 +935,7 @@ namespace isc { namespace netconf { #line 936 "netconf_parser.cc" break; - case 54: + case 54: // validate_changes: "validate-changes" ":" "boolean" #line 298 "netconf_parser.yy" { ElementPtr flag(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -944,7 +944,7 @@ namespace isc { namespace netconf { #line 945 "netconf_parser.cc" break; - case 55: + case 55: // $@9: %empty #line 303 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -952,7 +952,7 @@ namespace isc { namespace netconf { #line 953 "netconf_parser.cc" break; - case 56: + case 56: // user_context: "user-context" $@9 ":" map_value #line 305 "netconf_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -979,7 +979,7 @@ namespace isc { namespace netconf { #line 980 "netconf_parser.cc" break; - case 57: + case 57: // $@10: %empty #line 328 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -987,7 +987,7 @@ namespace isc { namespace netconf { #line 988 "netconf_parser.cc" break; - case 58: + case 58: // comment: "comment" $@10 ":" "constant string" #line 330 "netconf_parser.yy" { ElementPtr parent = ctx.stack_.back(); @@ -1016,7 +1016,7 @@ namespace isc { namespace netconf { #line 1017 "netconf_parser.cc" break; - case 59: + case 59: // $@11: %empty #line 356 "netconf_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1027,7 +1027,7 @@ namespace isc { namespace netconf { #line 1028 "netconf_parser.cc" break; - case 60: + case 60: // hooks_libraries: "hooks-libraries" $@11 ":" "[" hooks_libraries_list "]" #line 361 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1036,7 +1036,7 @@ namespace isc { namespace netconf { #line 1037 "netconf_parser.cc" break; - case 65: + case 65: // $@12: %empty #line 374 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1046,7 +1046,7 @@ namespace isc { namespace netconf { #line 1047 "netconf_parser.cc" break; - case 66: + case 66: // hooks_library: "{" $@12 hooks_params "}" #line 378 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1054,7 +1054,7 @@ namespace isc { namespace netconf { #line 1055 "netconf_parser.cc" break; - case 72: + case 72: // $@13: %empty #line 391 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1062,7 +1062,7 @@ namespace isc { namespace netconf { #line 1063 "netconf_parser.cc" break; - case 73: + case 73: // library: "library" $@13 ":" "constant string" #line 393 "netconf_parser.yy" { ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1072,7 +1072,7 @@ namespace isc { namespace netconf { #line 1073 "netconf_parser.cc" break; - case 74: + case 74: // $@14: %empty #line 399 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1080,7 +1080,7 @@ namespace isc { namespace netconf { #line 1081 "netconf_parser.cc" break; - case 75: + case 75: // parameters: "parameters" $@14 ":" map_value #line 401 "netconf_parser.yy" { ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ()); @@ -1089,7 +1089,7 @@ namespace isc { namespace netconf { #line 1090 "netconf_parser.cc" break; - case 76: + case 76: // $@15: %empty #line 409 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[2].location))); @@ -1100,7 +1100,7 @@ namespace isc { namespace netconf { #line 1101 "netconf_parser.cc" break; - case 77: + case 77: // managed_servers: "managed-servers" ":" "{" $@15 servers_entries "}" #line 414 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1109,7 +1109,7 @@ namespace isc { namespace netconf { #line 1110 "netconf_parser.cc" break; - case 87: + case 87: // $@16: %empty #line 438 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1120,7 +1120,7 @@ namespace isc { namespace netconf { #line 1121 "netconf_parser.cc" break; - case 88: + case 88: // dhcp4_server: "dhcp4" $@16 ":" "{" managed_server_params "}" #line 443 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1129,7 +1129,7 @@ namespace isc { namespace netconf { #line 1130 "netconf_parser.cc" break; - case 89: + case 89: // $@17: %empty #line 449 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1140,7 +1140,7 @@ namespace isc { namespace netconf { #line 1141 "netconf_parser.cc" break; - case 90: + case 90: // dhcp6_server: "dhcp6" $@17 ":" "{" managed_server_params "}" #line 454 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1149,7 +1149,7 @@ namespace isc { namespace netconf { #line 1150 "netconf_parser.cc" break; - case 91: + case 91: // $@18: %empty #line 460 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1160,7 +1160,7 @@ namespace isc { namespace netconf { #line 1161 "netconf_parser.cc" break; - case 92: + case 92: // d2_server: "d2" $@18 ":" "{" managed_server_params "}" #line 465 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1169,7 +1169,7 @@ namespace isc { namespace netconf { #line 1170 "netconf_parser.cc" break; - case 93: + case 93: // $@19: %empty #line 471 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1180,7 +1180,7 @@ namespace isc { namespace netconf { #line 1181 "netconf_parser.cc" break; - case 94: + case 94: // ca_server: "ca" $@19 ":" "{" managed_server_params "}" #line 476 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1189,7 +1189,7 @@ namespace isc { namespace netconf { #line 1190 "netconf_parser.cc" break; - case 105: + case 105: // $@20: %empty #line 498 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1197,7 +1197,7 @@ namespace isc { namespace netconf { #line 1198 "netconf_parser.cc" break; - case 106: + case 106: // model: "model" $@20 ":" "constant string" #line 500 "netconf_parser.yy" { ElementPtr model(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1207,7 +1207,7 @@ namespace isc { namespace netconf { #line 1208 "netconf_parser.cc" break; - case 107: + case 107: // $@21: %empty #line 507 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1218,7 +1218,7 @@ namespace isc { namespace netconf { #line 1219 "netconf_parser.cc" break; - case 108: + case 108: // control_socket: "control-socket" $@21 ":" "{" control_socket_params "}" #line 512 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1227,7 +1227,7 @@ namespace isc { namespace netconf { #line 1228 "netconf_parser.cc" break; - case 117: + case 117: // $@22: %empty #line 530 "netconf_parser.yy" { ctx.enter(ctx.SOCKET_TYPE); @@ -1235,7 +1235,7 @@ namespace isc { namespace netconf { #line 1236 "netconf_parser.cc" break; - case 118: + case 118: // socket_type: "socket-type" $@22 ":" socket_type_value #line 532 "netconf_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); @@ -1244,25 +1244,25 @@ namespace isc { namespace netconf { #line 1245 "netconf_parser.cc" break; - case 119: + case 119: // socket_type_value: "unix" #line 538 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } #line 1251 "netconf_parser.cc" break; - case 120: + case 120: // socket_type_value: "http" #line 539 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } #line 1257 "netconf_parser.cc" break; - case 121: + case 121: // socket_type_value: "stdout" #line 540 "netconf_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("stdout", ctx.loc2pos(yystack_[0].location))); } #line 1263 "netconf_parser.cc" break; - case 122: + case 122: // $@23: %empty #line 543 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1270,7 +1270,7 @@ namespace isc { namespace netconf { #line 1271 "netconf_parser.cc" break; - case 123: + case 123: // socket_name: "socket-name" $@23 ":" "constant string" #line 545 "netconf_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1280,7 +1280,7 @@ namespace isc { namespace netconf { #line 1281 "netconf_parser.cc" break; - case 124: + case 124: // $@24: %empty #line 552 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1288,7 +1288,7 @@ namespace isc { namespace netconf { #line 1289 "netconf_parser.cc" break; - case 125: + case 125: // socket_url: "socket-url" $@24 ":" "constant string" #line 554 "netconf_parser.yy" { ElementPtr url(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1298,7 +1298,7 @@ namespace isc { namespace netconf { #line 1299 "netconf_parser.cc" break; - case 126: + case 126: // $@25: %empty #line 564 "netconf_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1309,7 +1309,7 @@ namespace isc { namespace netconf { #line 1310 "netconf_parser.cc" break; - case 127: + case 127: // loggers: "loggers" $@25 ":" "[" loggers_entries "]" #line 569 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1318,7 +1318,7 @@ namespace isc { namespace netconf { #line 1319 "netconf_parser.cc" break; - case 130: + case 130: // $@26: %empty #line 581 "netconf_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1328,7 +1328,7 @@ namespace isc { namespace netconf { #line 1329 "netconf_parser.cc" break; - case 131: + case 131: // logger_entry: "{" $@26 logger_params "}" #line 585 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1336,7 +1336,7 @@ namespace isc { namespace netconf { #line 1337 "netconf_parser.cc" break; - case 141: + case 141: // $@27: %empty #line 602 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1344,7 +1344,7 @@ namespace isc { namespace netconf { #line 1345 "netconf_parser.cc" break; - case 142: + case 142: // name: "name" $@27 ":" "constant string" #line 604 "netconf_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1354,7 +1354,7 @@ namespace isc { namespace netconf { #line 1355 "netconf_parser.cc" break; - case 143: + case 143: // debuglevel: "debuglevel" ":" "integer" #line 610 "netconf_parser.yy" { ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1363,7 +1363,7 @@ namespace isc { namespace netconf { #line 1364 "netconf_parser.cc" break; - case 144: + case 144: // $@28: %empty #line 615 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1371,7 +1371,7 @@ namespace isc { namespace netconf { #line 1372 "netconf_parser.cc" break; - case 145: + case 145: // severity: "severity" $@28 ":" "constant string" #line 617 "netconf_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1381,7 +1381,7 @@ namespace isc { namespace netconf { #line 1382 "netconf_parser.cc" break; - case 146: + case 146: // $@29: %empty #line 623 "netconf_parser.yy" { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -1392,7 +1392,7 @@ namespace isc { namespace netconf { #line 1393 "netconf_parser.cc" break; - case 147: + case 147: // output_options_list: "output_options" $@29 ":" "[" output_options_list_content "]" #line 628 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1401,7 +1401,7 @@ namespace isc { namespace netconf { #line 1402 "netconf_parser.cc" break; - case 150: + case 150: // $@30: %empty #line 637 "netconf_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1411,7 +1411,7 @@ namespace isc { namespace netconf { #line 1412 "netconf_parser.cc" break; - case 151: + case 151: // output_entry: "{" $@30 output_params_list "}" #line 641 "netconf_parser.yy" { ctx.stack_.pop_back(); @@ -1419,7 +1419,7 @@ namespace isc { namespace netconf { #line 1420 "netconf_parser.cc" break; - case 159: + case 159: // $@31: %empty #line 656 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1427,7 +1427,7 @@ namespace isc { namespace netconf { #line 1428 "netconf_parser.cc" break; - case 160: + case 160: // output: "output" $@31 ":" "constant string" #line 658 "netconf_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1437,7 +1437,7 @@ namespace isc { namespace netconf { #line 1438 "netconf_parser.cc" break; - case 161: + case 161: // flush: "flush" ":" "boolean" #line 664 "netconf_parser.yy" { ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -1446,7 +1446,7 @@ namespace isc { namespace netconf { #line 1447 "netconf_parser.cc" break; - case 162: + case 162: // maxsize: "maxsize" ":" "integer" #line 669 "netconf_parser.yy" { ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1455,7 +1455,7 @@ namespace isc { namespace netconf { #line 1456 "netconf_parser.cc" break; - case 163: + case 163: // maxver: "maxver" ":" "integer" #line 674 "netconf_parser.yy" { ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); @@ -1464,7 +1464,7 @@ namespace isc { namespace netconf { #line 1465 "netconf_parser.cc" break; - case 164: + case 164: // $@32: %empty #line 679 "netconf_parser.yy" { ctx.enter(ctx.NO_KEYWORDS); @@ -1472,7 +1472,7 @@ namespace isc { namespace netconf { #line 1473 "netconf_parser.cc" break; - case 165: + case 165: // pattern: "pattern" $@32 ":" "constant string" #line 681 "netconf_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); diff --git a/src/bin/netconf/netconf_parser.h b/src/bin/netconf/netconf_parser.h index 6cab9da3be..2f7047df44 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.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -730,25 +730,25 @@ namespace isc { namespace netconf { { switch (this->kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (std::move (that.value)); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (std::move (that.value)); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (std::move (that.value)); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (std::move (that.value)); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (std::move (that.value)); break; @@ -862,25 +862,25 @@ namespace isc { namespace netconf { // Value type destructor. switch (yykind) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.template destroy< ElementPtr > (); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.template destroy< bool > (); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.template destroy< double > (); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.template destroy< int64_t > (); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.template destroy< std::string > (); break; @@ -1969,7 +1969,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -2201,11 +2201,12 @@ switch (yykind) 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }; - const int user_token_number_max_ = 303; + // Last valid token kind. + const int code_max = 303; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -2220,25 +2221,25 @@ switch (yykind) { switch (this->kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.copy< ElementPtr > (YY_MOVE (that.value)); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.copy< bool > (YY_MOVE (that.value)); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.copy< double > (YY_MOVE (that.value)); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.copy< int64_t > (YY_MOVE (that.value)); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.copy< std::string > (YY_MOVE (that.value)); break; @@ -2271,25 +2272,25 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 57: // value - case 60: // map_value - case 119: // socket_type_value + case symbol_kind::S_value: // value + case symbol_kind::S_map_value: // map_value + case symbol_kind::S_socket_type_value: // socket_type_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 48: // "boolean" + case symbol_kind::S_BOOLEAN: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 47: // "floating point" + case symbol_kind::S_FLOAT: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 46: // "integer" + case symbol_kind::S_INTEGER: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 45: // "constant string" + case symbol_kind::S_STRING: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -2356,8 +2357,7 @@ switch (yykind) #line 14 "netconf_parser.yy" } } // isc::netconf -#line 2360 "netconf_parser.h" - +#line 2361 "netconf_parser.h" diff --git a/src/bin/netconf/position.hh b/src/bin/netconf/position.hh index e0ad590321..0403c938c4 100644 --- a/src/bin/netconf/position.hh +++ b/src/bin/netconf/position.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021532 +// A Bison parser, made by GNU Bison 3.7.1. // 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 8dbe273f87..e6bfe5d25d 100644 --- a/src/bin/netconf/stack.hh +++ b/src/bin/netconf/stack.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021532 +// A Bison parser, made by GNU Bison 3.7.1. // 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/lib/eval/location.hh b/src/lib/eval/location.hh index 84738804b9..ee6d0c9d12 100644 --- a/src/lib/eval/location.hh +++ b/src/lib/eval/location.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // Locations for Bison parsers in C++ @@ -62,11 +62,13 @@ namespace isc { namespace eval { class position { public: + /// Type for file name. + typedef const std::string filename_type; /// Type for line and column numbers. typedef int counter_type; /// Construct a position. - explicit position (std::string* f = YY_NULLPTR, + explicit position (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) : filename (f) @@ -76,7 +78,7 @@ namespace isc { namespace eval { /// Initialization. - void initialize (std::string* fn = YY_NULLPTR, + void initialize (filename_type* fn = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -105,7 +107,7 @@ namespace isc { namespace eval { /** \} */ /// File name to which this position refers. - std::string* filename; + filename_type* filename; /// Current line number. counter_type line; /// Current column number. @@ -148,24 +150,6 @@ namespace isc { namespace eval { return res -= width; } - /// Compare two position objects. - inline bool - operator== (const position& pos1, const position& pos2) - { - return (pos1.line == pos2.line - && pos1.column == pos2.column - && (pos1.filename == pos2.filename - || (pos1.filename && pos2.filename - && *pos1.filename == *pos2.filename))); - } - - /// Compare two position objects. - inline bool - operator!= (const position& pos1, const position& pos2) - { - return !(pos1 == pos2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param pos a reference to the position to redirect @@ -183,6 +167,8 @@ namespace isc { namespace eval { class location { public: + /// Type for file name. + typedef position::filename_type filename_type; /// Type for line and column numbers. typedef position::counter_type counter_type; @@ -199,7 +185,7 @@ namespace isc { namespace eval { {} /// Construct a 0-width location in \a f, \a l, \a c. - explicit location (std::string* f, + explicit location (filename_type* f, counter_type l = 1, counter_type c = 1) : begin (f, l, c) @@ -208,7 +194,7 @@ namespace isc { namespace eval { /// Initialization. - void initialize (std::string* f = YY_NULLPTR, + void initialize (filename_type* f = YY_NULLPTR, counter_type l = 1, counter_type c = 1) { @@ -290,20 +276,6 @@ namespace isc { namespace eval { return res -= width; } - /// Compare two location objects. - inline bool - operator== (const location& loc1, const location& loc2) - { - return loc1.begin == loc2.begin && loc1.end == loc2.end; - } - - /// Compare two location objects. - inline bool - operator!= (const location& loc1, const location& loc2) - { - return !(loc1 == loc2); - } - /** \brief Intercept output stream redirection. ** \param ostr the destination output stream ** \param loc a reference to the location to redirect @@ -330,6 +302,6 @@ namespace isc { namespace eval { #line 14 "parser.yy" } } // isc::eval -#line 333 "location.hh" +#line 305 "location.hh" #endif // !YY_EVAL_LOCATION_HH_INCLUDED diff --git a/src/lib/eval/parser.cc b/src/lib/eval/parser.cc index 6c824d7333..20145a31aa 100644 --- a/src/lib/eval/parser.cc +++ b/src/lib/eval/parser.cc @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -209,45 +209,45 @@ namespace isc { namespace eval { { switch (that.kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.YY_MOVE_OR_COPY< TokenOption::RepresentationType > (YY_MOVE (that.value)); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.YY_MOVE_OR_COPY< TokenPkt4::FieldType > (YY_MOVE (that.value)); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.YY_MOVE_OR_COPY< TokenPkt6::FieldType > (YY_MOVE (that.value)); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.YY_MOVE_OR_COPY< TokenPkt::MetadataType > (YY_MOVE (that.value)); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.YY_MOVE_OR_COPY< TokenRelay6Field::FieldType > (YY_MOVE (that.value)); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.YY_MOVE_OR_COPY< int8_t > (YY_MOVE (that.value)); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.YY_MOVE_OR_COPY< uint16_t > (YY_MOVE (that.value)); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.YY_MOVE_OR_COPY< uint32_t > (YY_MOVE (that.value)); break; @@ -266,45 +266,45 @@ namespace isc { namespace eval { { switch (that.kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.move< TokenOption::RepresentationType > (YY_MOVE (that.value)); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.move< TokenPkt4::FieldType > (YY_MOVE (that.value)); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.move< TokenPkt6::FieldType > (YY_MOVE (that.value)); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.move< TokenPkt::MetadataType > (YY_MOVE (that.value)); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.move< TokenRelay6Field::FieldType > (YY_MOVE (that.value)); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.move< int8_t > (YY_MOVE (that.value)); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.move< std::string > (YY_MOVE (that.value)); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.move< uint16_t > (YY_MOVE (that.value)); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.move< uint32_t > (YY_MOVE (that.value)); break; @@ -323,45 +323,45 @@ namespace isc { namespace eval { state = that.state; switch (that.kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.copy< TokenOption::RepresentationType > (that.value); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.copy< TokenPkt4::FieldType > (that.value); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.copy< TokenPkt6::FieldType > (that.value); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.copy< TokenPkt::MetadataType > (that.value); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.copy< TokenRelay6Field::FieldType > (that.value); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.copy< int8_t > (that.value); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.copy< std::string > (that.value); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.copy< uint16_t > (that.value); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.copy< uint32_t > (that.value); break; @@ -379,45 +379,45 @@ namespace isc { namespace eval { state = that.state; switch (that.kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.move< TokenOption::RepresentationType > (that.value); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.move< TokenPkt4::FieldType > (that.value); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.move< TokenPkt6::FieldType > (that.value); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.move< TokenPkt::MetadataType > (that.value); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.move< TokenRelay6Field::FieldType > (that.value); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.move< int8_t > (that.value); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.move< std::string > (that.value); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.move< uint16_t > (that.value); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.move< uint32_t > (that.value); break; @@ -457,91 +457,91 @@ namespace isc { namespace eval { << yysym.location << ": "; switch (yykind) { - case 50: // "constant string" + case symbol_kind::S_STRING: // "constant string" #line 112 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 464 "parser.cc" break; - case 51: // "integer" + case symbol_kind::S_INTEGER: // "integer" #line 112 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 470 "parser.cc" break; - case 52: // "constant hexstring" + case symbol_kind::S_HEXSTRING: // "constant hexstring" #line 112 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 476 "parser.cc" break; - case 53: // "option name" + case symbol_kind::S_OPTION_NAME: // "option name" #line 112 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 482 "parser.cc" break; - case 54: // "ip address" + case symbol_kind::S_IP_ADDRESS: // "ip address" #line 112 "parser.yy" { yyoutput << yysym.value.template as < std::string > (); } #line 488 "parser.cc" break; - case 60: // integer_expr + case symbol_kind::S_integer_expr: // integer_expr #line 112 "parser.yy" { yyoutput << yysym.value.template as < uint32_t > (); } #line 494 "parser.cc" break; - case 61: // option_code + case symbol_kind::S_option_code: // option_code #line 112 "parser.yy" { yyoutput << yysym.value.template as < uint16_t > (); } #line 500 "parser.cc" break; - case 62: // sub_option_code + case symbol_kind::S_sub_option_code: // sub_option_code #line 112 "parser.yy" { yyoutput << yysym.value.template as < uint16_t > (); } #line 506 "parser.cc" break; - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type #line 112 "parser.yy" { yyoutput << yysym.value.template as < TokenOption::RepresentationType > (); } #line 512 "parser.cc" break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level #line 112 "parser.yy" { yyoutput << yysym.value.template as < int8_t > (); } #line 518 "parser.cc" break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata #line 112 "parser.yy" { yyoutput << yysym.value.template as < TokenPkt::MetadataType > (); } #line 524 "parser.cc" break; - case 66: // enterprise_id + case symbol_kind::S_enterprise_id: // enterprise_id #line 112 "parser.yy" { yyoutput << yysym.value.template as < uint32_t > (); } #line 530 "parser.cc" break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field #line 112 "parser.yy" { yyoutput << yysym.value.template as < TokenPkt4::FieldType > (); } #line 536 "parser.cc" break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field #line 112 "parser.yy" { yyoutput << yysym.value.template as < TokenPkt6::FieldType > (); } #line 542 "parser.cc" break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field #line 112 "parser.yy" { yyoutput << yysym.value.template as < TokenRelay6Field::FieldType > (); } #line 548 "parser.cc" @@ -774,45 +774,45 @@ namespace isc { namespace eval { when using variants. */ switch (yyr1_[yyn]) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type yylhs.value.emplace< TokenOption::RepresentationType > (); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field yylhs.value.emplace< TokenPkt4::FieldType > (); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field yylhs.value.emplace< TokenPkt6::FieldType > (); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata yylhs.value.emplace< TokenPkt::MetadataType > (); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field yylhs.value.emplace< TokenRelay6Field::FieldType > (); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level yylhs.value.emplace< int8_t > (); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" yylhs.value.emplace< std::string > (); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code yylhs.value.emplace< uint16_t > (); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id yylhs.value.emplace< uint32_t > (); break; @@ -836,7 +836,7 @@ namespace isc { namespace eval { { switch (yyn) { - case 6: + case 6: // bool_expr: "not" bool_expr #line 132 "parser.yy" { TokenPtr neg(new TokenNot()); @@ -845,7 +845,7 @@ namespace isc { namespace eval { #line 846 "parser.cc" break; - case 7: + case 7: // bool_expr: bool_expr "and" bool_expr #line 137 "parser.yy" { TokenPtr neg(new TokenAnd()); @@ -854,7 +854,7 @@ namespace isc { namespace eval { #line 855 "parser.cc" break; - case 8: + case 8: // bool_expr: bool_expr "or" bool_expr #line 142 "parser.yy" { TokenPtr neg(new TokenOr()); @@ -863,7 +863,7 @@ namespace isc { namespace eval { #line 864 "parser.cc" break; - case 9: + case 9: // bool_expr: string_expr "==" string_expr #line 147 "parser.yy" { TokenPtr eq(new TokenEqual()); @@ -872,7 +872,7 @@ namespace isc { namespace eval { #line 873 "parser.cc" break; - case 10: + case 10: // bool_expr: "option" "[" option_code "]" "." "exists" #line 152 "parser.yy" { TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS)); @@ -881,7 +881,7 @@ namespace isc { namespace eval { #line 882 "parser.cc" break; - case 11: + case 11: // bool_expr: "option" "[" option_code "]" "." "option" "[" sub_option_code "]" "." "exists" #line 157 "parser.yy" { TokenPtr opt(new TokenSubOption(yystack_[8].value.as < uint16_t > (), yystack_[3].value.as < uint16_t > (), TokenOption::EXISTS)); @@ -890,7 +890,7 @@ namespace isc { namespace eval { #line 891 "parser.cc" break; - case 12: + case 12: // bool_expr: "relay4" "[" sub_option_code "]" "." "exists" #line 162 "parser.yy" { switch (ctx.getUniverse()) { @@ -914,7 +914,7 @@ namespace isc { namespace eval { #line 915 "parser.cc" break; - case 13: + case 13: // bool_expr: "relay6" "[" nest_level "]" "." "option" "[" sub_option_code "]" "." "exists" #line 182 "parser.yy" { switch (ctx.getUniverse()) { @@ -932,7 +932,7 @@ namespace isc { namespace eval { #line 933 "parser.cc" break; - case 14: + case 14: // bool_expr: "vendor-class" "[" enterprise_id "]" "." "exists" #line 196 "parser.yy" { // Expression: vendor-class[1234].exists @@ -945,7 +945,7 @@ namespace isc { namespace eval { #line 946 "parser.cc" break; - case 15: + case 15: // bool_expr: "vendor" "[" enterprise_id "]" "." "exists" #line 205 "parser.yy" { // Expression: vendor[1234].exists @@ -958,7 +958,7 @@ namespace isc { namespace eval { #line 959 "parser.cc" break; - case 16: + case 16: // bool_expr: "vendor" "[" enterprise_id "]" "." "option" "[" sub_option_code "]" "." "exists" #line 214 "parser.yy" { // Expression vendor[1234].option[123].exists @@ -972,7 +972,7 @@ namespace isc { namespace eval { #line 973 "parser.cc" break; - case 17: + case 17: // bool_expr: "member" "(" "constant string" ")" #line 224 "parser.yy" { // Expression member('foo') @@ -991,7 +991,7 @@ namespace isc { namespace eval { #line 992 "parser.cc" break; - case 18: + case 18: // string_expr: "constant string" #line 241 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); @@ -1000,7 +1000,7 @@ namespace isc { namespace eval { #line 1001 "parser.cc" break; - case 19: + case 19: // string_expr: "constant hexstring" #line 246 "parser.yy" { TokenPtr hex(new TokenHexString(yystack_[0].value.as < std::string > ())); @@ -1009,7 +1009,7 @@ namespace isc { namespace eval { #line 1010 "parser.cc" break; - case 20: + case 20: // string_expr: "ip address" #line 251 "parser.yy" { TokenPtr ip(new TokenIpAddress(yystack_[0].value.as < std::string > ())); @@ -1018,7 +1018,7 @@ namespace isc { namespace eval { #line 1019 "parser.cc" break; - case 21: + case 21: // string_expr: "option" "[" option_code "]" "." option_repr_type #line 256 "parser.yy" { TokenPtr opt(new TokenOption(yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ())); @@ -1027,7 +1027,7 @@ namespace isc { namespace eval { #line 1028 "parser.cc" break; - case 22: + case 22: // string_expr: "option" "[" option_code "]" "." "option" "[" sub_option_code "]" "." option_repr_type #line 261 "parser.yy" { TokenPtr opt(new TokenSubOption(yystack_[8].value.as < uint16_t > (), yystack_[3].value.as < uint16_t > (), yystack_[0].value.as < TokenOption::RepresentationType > ())); @@ -1036,7 +1036,7 @@ namespace isc { namespace eval { #line 1037 "parser.cc" break; - case 23: + case 23: // string_expr: "relay4" "[" sub_option_code "]" "." option_repr_type #line 266 "parser.yy" { switch (ctx.getUniverse()) { @@ -1060,7 +1060,7 @@ namespace isc { namespace eval { #line 1061 "parser.cc" break; - case 24: + case 24: // string_expr: "relay6" "[" nest_level "]" "." "option" "[" sub_option_code "]" "." option_repr_type #line 287 "parser.yy" { switch (ctx.getUniverse()) { @@ -1078,7 +1078,7 @@ namespace isc { namespace eval { #line 1079 "parser.cc" break; - case 25: + case 25: // string_expr: "pkt" "." pkt_metadata #line 302 "parser.yy" { TokenPtr pkt_metadata(new TokenPkt(yystack_[0].value.as < TokenPkt::MetadataType > ())); @@ -1087,7 +1087,7 @@ namespace isc { namespace eval { #line 1088 "parser.cc" break; - case 26: + case 26: // string_expr: "pkt4" "." pkt4_field #line 307 "parser.yy" { switch (ctx.getUniverse()) { @@ -1105,7 +1105,7 @@ namespace isc { namespace eval { #line 1106 "parser.cc" break; - case 27: + case 27: // string_expr: "pkt6" "." pkt6_field #line 321 "parser.yy" { switch (ctx.getUniverse()) { @@ -1123,7 +1123,7 @@ namespace isc { namespace eval { #line 1124 "parser.cc" break; - case 28: + case 28: // string_expr: "relay6" "[" nest_level "]" "." relay6_field #line 335 "parser.yy" { switch (ctx.getUniverse()) { @@ -1141,7 +1141,7 @@ namespace isc { namespace eval { #line 1142 "parser.cc" break; - case 29: + case 29: // string_expr: "substring" "(" string_expr "," start_expr "," length_expr ")" #line 350 "parser.yy" { TokenPtr sub(new TokenSubstring()); @@ -1150,7 +1150,7 @@ namespace isc { namespace eval { #line 1151 "parser.cc" break; - case 30: + case 30: // string_expr: "concat" "(" string_expr "," string_expr ")" #line 355 "parser.yy" { TokenPtr conc(new TokenConcat()); @@ -1159,7 +1159,7 @@ namespace isc { namespace eval { #line 1160 "parser.cc" break; - case 31: + case 31: // string_expr: "ifelse" "(" bool_expr "," string_expr "," string_expr ")" #line 360 "parser.yy" { TokenPtr cond(new TokenIfElse()); @@ -1168,7 +1168,7 @@ namespace isc { namespace eval { #line 1169 "parser.cc" break; - case 32: + case 32: // string_expr: "hexstring" "(" string_expr "," string_expr ")" #line 365 "parser.yy" { TokenPtr tohex(new TokenToHexString()); @@ -1177,7 +1177,7 @@ namespace isc { namespace eval { #line 1178 "parser.cc" break; - case 33: + case 33: // string_expr: "vendor" "." "enterprise" #line 370 "parser.yy" { // expression: vendor.enterprise @@ -1190,7 +1190,7 @@ namespace isc { namespace eval { #line 1191 "parser.cc" break; - case 34: + case 34: // string_expr: "vendor-class" "." "enterprise" #line 379 "parser.yy" { // expression: vendor-class.enterprise @@ -1204,7 +1204,7 @@ namespace isc { namespace eval { #line 1205 "parser.cc" break; - case 35: + case 35: // string_expr: "vendor" "[" enterprise_id "]" "." "option" "[" sub_option_code "]" "." option_repr_type #line 389 "parser.yy" { // This token will search for vendor option with @@ -1217,7 +1217,7 @@ namespace isc { namespace eval { #line 1218 "parser.cc" break; - case 36: + case 36: // string_expr: "vendor-class" "[" enterprise_id "]" "." "data" #line 398 "parser.yy" { // expression: vendor-class[1234].data @@ -1234,7 +1234,7 @@ namespace isc { namespace eval { #line 1235 "parser.cc" break; - case 37: + case 37: // string_expr: "vendor-class" "[" enterprise_id "]" "." "data" "[" "integer" "]" #line 411 "parser.yy" { // expression: vendor-class[1234].data[5] @@ -1251,7 +1251,7 @@ namespace isc { namespace eval { #line 1252 "parser.cc" break; - case 38: + case 38: // string_expr: integer_expr #line 424 "parser.yy" { TokenPtr integer(new TokenInteger(yystack_[0].value.as < uint32_t > ())); @@ -1260,7 +1260,7 @@ namespace isc { namespace eval { #line 1261 "parser.cc" break; - case 39: + case 39: // integer_expr: "integer" #line 431 "parser.yy" { yylhs.value.as < uint32_t > () = ctx.convertUint32(yystack_[0].value.as < std::string > (), yystack_[0].location); @@ -1268,7 +1268,7 @@ namespace isc { namespace eval { #line 1269 "parser.cc" break; - case 40: + case 40: // option_code: "integer" #line 437 "parser.yy" { yylhs.value.as < uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as < std::string > (), yystack_[0].location); @@ -1276,7 +1276,7 @@ namespace isc { namespace eval { #line 1277 "parser.cc" break; - case 41: + case 41: // option_code: "option name" #line 441 "parser.yy" { yylhs.value.as < uint16_t > () = ctx.convertOptionName(yystack_[0].value.as < std::string > (), yystack_[0].location); @@ -1284,7 +1284,7 @@ namespace isc { namespace eval { #line 1285 "parser.cc" break; - case 42: + case 42: // sub_option_code: "integer" #line 447 "parser.yy" { yylhs.value.as < uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as < std::string > (), yystack_[0].location); @@ -1292,7 +1292,7 @@ namespace isc { namespace eval { #line 1293 "parser.cc" break; - case 43: + case 43: // option_repr_type: "text" #line 453 "parser.yy" { yylhs.value.as < TokenOption::RepresentationType > () = TokenOption::TEXTUAL; @@ -1300,7 +1300,7 @@ namespace isc { namespace eval { #line 1301 "parser.cc" break; - case 44: + case 44: // option_repr_type: "hex" #line 457 "parser.yy" { yylhs.value.as < TokenOption::RepresentationType > () = TokenOption::HEXADECIMAL; @@ -1308,7 +1308,7 @@ namespace isc { namespace eval { #line 1309 "parser.cc" break; - case 45: + case 45: // nest_level: "integer" #line 463 "parser.yy" { yylhs.value.as < int8_t > () = ctx.convertNestLevelNumber(yystack_[0].value.as < std::string > (), yystack_[0].location); @@ -1316,7 +1316,7 @@ namespace isc { namespace eval { #line 1317 "parser.cc" break; - case 46: + case 46: // pkt_metadata: "iface" #line 472 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::IFACE; @@ -1324,7 +1324,7 @@ namespace isc { namespace eval { #line 1325 "parser.cc" break; - case 47: + case 47: // pkt_metadata: "src" #line 476 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::SRC; @@ -1332,7 +1332,7 @@ namespace isc { namespace eval { #line 1333 "parser.cc" break; - case 48: + case 48: // pkt_metadata: "dst" #line 480 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::DST; @@ -1340,7 +1340,7 @@ namespace isc { namespace eval { #line 1341 "parser.cc" break; - case 49: + case 49: // pkt_metadata: "len" #line 484 "parser.yy" { yylhs.value.as < TokenPkt::MetadataType > () = TokenPkt::LEN; @@ -1348,7 +1348,7 @@ namespace isc { namespace eval { #line 1349 "parser.cc" break; - case 50: + case 50: // enterprise_id: "integer" #line 490 "parser.yy" { yylhs.value.as < uint32_t > () = ctx.convertUint32(yystack_[0].value.as < std::string > (), yystack_[0].location); @@ -1356,7 +1356,7 @@ namespace isc { namespace eval { #line 1357 "parser.cc" break; - case 51: + case 51: // enterprise_id: "*" #line 494 "parser.yy" { yylhs.value.as < uint32_t > () = 0; @@ -1364,7 +1364,7 @@ namespace isc { namespace eval { #line 1365 "parser.cc" break; - case 52: + case 52: // pkt4_field: "mac" #line 500 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::CHADDR; @@ -1372,7 +1372,7 @@ namespace isc { namespace eval { #line 1373 "parser.cc" break; - case 53: + case 53: // pkt4_field: "hlen" #line 504 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::HLEN; @@ -1380,7 +1380,7 @@ namespace isc { namespace eval { #line 1381 "parser.cc" break; - case 54: + case 54: // pkt4_field: "htype" #line 508 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::HTYPE; @@ -1388,7 +1388,7 @@ namespace isc { namespace eval { #line 1389 "parser.cc" break; - case 55: + case 55: // pkt4_field: "ciaddr" #line 512 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::CIADDR; @@ -1396,7 +1396,7 @@ namespace isc { namespace eval { #line 1397 "parser.cc" break; - case 56: + case 56: // pkt4_field: "giaddr" #line 516 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::GIADDR; @@ -1404,7 +1404,7 @@ namespace isc { namespace eval { #line 1405 "parser.cc" break; - case 57: + case 57: // pkt4_field: "yiaddr" #line 520 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::YIADDR; @@ -1412,7 +1412,7 @@ namespace isc { namespace eval { #line 1413 "parser.cc" break; - case 58: + case 58: // pkt4_field: "siaddr" #line 524 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::SIADDR; @@ -1420,7 +1420,7 @@ namespace isc { namespace eval { #line 1421 "parser.cc" break; - case 59: + case 59: // pkt4_field: "msgtype" #line 528 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::MSGTYPE; @@ -1428,7 +1428,7 @@ namespace isc { namespace eval { #line 1429 "parser.cc" break; - case 60: + case 60: // pkt4_field: "transid" #line 532 "parser.yy" { yylhs.value.as < TokenPkt4::FieldType > () = TokenPkt4::TRANSID; @@ -1436,7 +1436,7 @@ namespace isc { namespace eval { #line 1437 "parser.cc" break; - case 61: + case 61: // pkt6_field: "msgtype" #line 538 "parser.yy" { yylhs.value.as < TokenPkt6::FieldType > () = TokenPkt6::MSGTYPE; @@ -1444,7 +1444,7 @@ namespace isc { namespace eval { #line 1445 "parser.cc" break; - case 62: + case 62: // pkt6_field: "transid" #line 542 "parser.yy" { yylhs.value.as < TokenPkt6::FieldType > () = TokenPkt6::TRANSID; @@ -1452,7 +1452,7 @@ namespace isc { namespace eval { #line 1453 "parser.cc" break; - case 63: + case 63: // relay6_field: "peeraddr" #line 548 "parser.yy" { yylhs.value.as < TokenRelay6Field::FieldType > () = TokenRelay6Field::PEERADDR; @@ -1460,7 +1460,7 @@ namespace isc { namespace eval { #line 1461 "parser.cc" break; - case 64: + case 64: // relay6_field: "linkaddr" #line 552 "parser.yy" { yylhs.value.as < TokenRelay6Field::FieldType > () = TokenRelay6Field::LINKADDR; @@ -1468,7 +1468,7 @@ namespace isc { namespace eval { #line 1469 "parser.cc" break; - case 65: + case 65: // start_expr: "integer" #line 558 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); @@ -1477,7 +1477,7 @@ namespace isc { namespace eval { #line 1478 "parser.cc" break; - case 66: + case 66: // length_expr: "integer" #line 565 "parser.yy" { TokenPtr str(new TokenString(yystack_[0].value.as < std::string > ())); @@ -1486,7 +1486,7 @@ namespace isc { namespace eval { #line 1487 "parser.cc" break; - case 67: + case 67: // length_expr: "all" #line 570 "parser.yy" { TokenPtr str(new TokenString("all")); diff --git a/src/lib/eval/parser.h b/src/lib/eval/parser.h index a752f55ade..b620e4ca8d 100644 --- a/src/lib/eval/parser.h +++ b/src/lib/eval/parser.h @@ -1,4 +1,4 @@ -// A Bison parser, made by GNU Bison 3.6.4. +// A Bison parser, made by GNU Bison 3.7.1. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -674,45 +674,45 @@ namespace isc { namespace eval { { switch (this->kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.move< TokenOption::RepresentationType > (std::move (that.value)); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.move< TokenPkt4::FieldType > (std::move (that.value)); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.move< TokenPkt6::FieldType > (std::move (that.value)); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.move< TokenPkt::MetadataType > (std::move (that.value)); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.move< TokenRelay6Field::FieldType > (std::move (that.value)); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.move< int8_t > (std::move (that.value)); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.move< std::string > (std::move (that.value)); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.move< uint16_t > (std::move (that.value)); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.move< uint32_t > (std::move (that.value)); break; @@ -878,45 +878,45 @@ namespace isc { namespace eval { // Value type destructor. switch (yykind) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.template destroy< TokenOption::RepresentationType > (); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.template destroy< TokenPkt4::FieldType > (); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.template destroy< TokenPkt6::FieldType > (); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.template destroy< TokenPkt::MetadataType > (); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.template destroy< TokenRelay6Field::FieldType > (); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.template destroy< int8_t > (); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.template destroy< std::string > (); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.template destroy< uint16_t > (); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.template destroy< uint32_t > (); break; @@ -2056,7 +2056,7 @@ switch (yykind) void move (by_state& that); /// The symbol kind (corresponding to \a state). - /// \a S_YYEMPTY when empty. + /// \a symbol_kind::S_YYEMPTY when empty. symbol_kind_type kind () const YY_NOEXCEPT; /// The state number used to denote an empty symbol. @@ -2288,11 +2288,12 @@ switch (yykind) 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }; - const int user_token_number_max_ = 309; + // Last valid token kind. + const int code_max = 309; if (t <= 0) return symbol_kind::S_YYEOF; - else if (t <= user_token_number_max_) + else if (t <= code_max) return YY_CAST (symbol_kind_type, translate_table[t]); else return symbol_kind::S_YYUNDEF; @@ -2307,45 +2308,45 @@ switch (yykind) { switch (this->kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.copy< TokenOption::RepresentationType > (YY_MOVE (that.value)); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.copy< TokenPkt4::FieldType > (YY_MOVE (that.value)); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.copy< TokenPkt6::FieldType > (YY_MOVE (that.value)); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.copy< TokenPkt::MetadataType > (YY_MOVE (that.value)); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.copy< TokenRelay6Field::FieldType > (YY_MOVE (that.value)); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.copy< int8_t > (YY_MOVE (that.value)); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.copy< std::string > (YY_MOVE (that.value)); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.copy< uint16_t > (YY_MOVE (that.value)); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.copy< uint32_t > (YY_MOVE (that.value)); break; @@ -2378,45 +2379,45 @@ switch (yykind) super_type::move (s); switch (this->kind ()) { - case 63: // option_repr_type + case symbol_kind::S_option_repr_type: // option_repr_type value.move< TokenOption::RepresentationType > (YY_MOVE (s.value)); break; - case 67: // pkt4_field + case symbol_kind::S_pkt4_field: // pkt4_field value.move< TokenPkt4::FieldType > (YY_MOVE (s.value)); break; - case 68: // pkt6_field + case symbol_kind::S_pkt6_field: // pkt6_field value.move< TokenPkt6::FieldType > (YY_MOVE (s.value)); break; - case 65: // pkt_metadata + case symbol_kind::S_pkt_metadata: // pkt_metadata value.move< TokenPkt::MetadataType > (YY_MOVE (s.value)); break; - case 69: // relay6_field + case symbol_kind::S_relay6_field: // relay6_field value.move< TokenRelay6Field::FieldType > (YY_MOVE (s.value)); break; - case 64: // nest_level + case symbol_kind::S_nest_level: // nest_level value.move< int8_t > (YY_MOVE (s.value)); break; - case 50: // "constant string" - case 51: // "integer" - case 52: // "constant hexstring" - case 53: // "option name" - case 54: // "ip address" + case symbol_kind::S_STRING: // "constant string" + case symbol_kind::S_INTEGER: // "integer" + case symbol_kind::S_HEXSTRING: // "constant hexstring" + case symbol_kind::S_OPTION_NAME: // "option name" + case symbol_kind::S_IP_ADDRESS: // "ip address" value.move< std::string > (YY_MOVE (s.value)); break; - case 61: // option_code - case 62: // sub_option_code + case symbol_kind::S_option_code: // option_code + case symbol_kind::S_sub_option_code: // sub_option_code value.move< uint16_t > (YY_MOVE (s.value)); break; - case 60: // integer_expr - case 66: // enterprise_id + case symbol_kind::S_integer_expr: // integer_expr + case symbol_kind::S_enterprise_id: // enterprise_id value.move< uint32_t > (YY_MOVE (s.value)); break; @@ -2483,8 +2484,7 @@ switch (yykind) #line 14 "parser.yy" } } // isc::eval -#line 2487 "parser.h" - +#line 2488 "parser.h" diff --git a/src/lib/eval/position.hh b/src/lib/eval/position.hh index e0ad590321..12e7205cc5 100644 --- a/src/lib/eval/position.hh +++ b/src/lib/eval/position.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // 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/lib/eval/stack.hh b/src/lib/eval/stack.hh index 8dbe273f87..fed81e95f8 100644 --- a/src/lib/eval/stack.hh +++ b/src/lib/eval/stack.hh @@ -1,5 +1,5 @@ -// Generated 202007240900 -// A Bison parser, made by GNU Bison 3.6.4. +// Generated 202009021531 +// A Bison parser, made by GNU Bison 3.7.1. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself.