From 20155aeb9f7da925eeaf42931bbebc1a6209456f Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Thu, 27 Dec 2018 20:10:20 +0000 Subject: [PATCH] [#30,!37] Regen bison --- src/bin/d2/d2_parser.cc | 1156 ++++++++++--------- src/bin/d2/d2_parser.h | 2405 ++++++++++++++++++++++++++------------- src/bin/d2/location.hh | 4 +- src/bin/d2/position.hh | 4 +- src/bin/d2/stack.hh | 4 +- 5 files changed, 2249 insertions(+), 1324 deletions(-) diff --git a/src/bin/d2/d2_parser.cc b/src/bin/d2/d2_parser.cc index 72d47f37b2..7633b75e36 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.2.1. +// A Bison parser, made by GNU Bison 3.2.4. // Skeleton implementation for Bison LALR(1) parsers in C++ @@ -245,25 +245,25 @@ namespace isc { namespace d2 { { switch (that.type_get ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case 59: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case 58: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case 57: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case 56: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -282,25 +282,25 @@ namespace isc { namespace d2 { { switch (that.type_get ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 56: // "boolean" + case 59: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 55: // "floating point" + case 58: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 54: // "integer" + case 57: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 53: // "constant string" + case 56: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -319,25 +319,25 @@ namespace isc { namespace d2 { state = that.state; switch (that.type_get ()) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value value.move< ElementPtr > (that.value); break; - case 56: // "boolean" + case 59: // "boolean" value.move< bool > (that.value); break; - case 55: // "floating point" + case 58: // "floating point" value.move< double > (that.value); break; - case 54: // "integer" + case 57: // "integer" value.move< int64_t > (that.value); break; - case 53: // "constant string" + case 56: // "constant string" value.move< std::string > (that.value); break; @@ -378,51 +378,51 @@ namespace isc { namespace d2 { << yysym.location << ": "; switch (yytype) { - case 53: // "constant string" + case 56: // "constant string" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< std::string > (); } #line 386 "d2_parser.cc" // lalr1.cc:672 break; - case 54: // "integer" + case 57: // "integer" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< int64_t > (); } #line 393 "d2_parser.cc" // lalr1.cc:672 break; - case 55: // "floating point" + case 58: // "floating point" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< double > (); } #line 400 "d2_parser.cc" // lalr1.cc:672 break; - case 56: // "boolean" + case 59: // "boolean" -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< bool > (); } #line 407 "d2_parser.cc" // lalr1.cc:672 break; - case 68: // value + case 71: // value -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 414 "d2_parser.cc" // lalr1.cc:672 break; - case 72: // map_value + case 75: // map_value -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 421 "d2_parser.cc" // lalr1.cc:672 break; - case 96: // ncr_protocol_value + case 99: // ncr_protocol_value -#line 111 "d2_parser.yy" // lalr1.cc:672 +#line 115 "d2_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 428 "d2_parser.cc" // lalr1.cc:672 break; @@ -634,25 +634,25 @@ namespace isc { namespace d2 { when using variants. */ switch (yyr1_[yyn]) { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value yylhs.value.emplace< ElementPtr > (); break; - case 56: // "boolean" + case 59: // "boolean" yylhs.value.emplace< bool > (); break; - case 55: // "floating point" + case 58: // "floating point" yylhs.value.emplace< double > (); break; - case 54: // "integer" + case 57: // "integer" yylhs.value.emplace< int64_t > (); break; - case 53: // "constant string" + case 56: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -677,103 +677,103 @@ namespace isc { namespace d2 { switch (yyn) { case 2: -#line 120 "d2_parser.yy" // lalr1.cc:907 +#line 124 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.NO_KEYWORD; } #line 683 "d2_parser.cc" // lalr1.cc:907 break; case 4: -#line 121 "d2_parser.yy" // lalr1.cc:907 +#line 125 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.CONFIG; } #line 689 "d2_parser.cc" // lalr1.cc:907 break; case 6: -#line 122 "d2_parser.yy" // lalr1.cc:907 +#line 126 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCPDDNS; } #line 695 "d2_parser.cc" // lalr1.cc:907 break; case 8: -#line 123 "d2_parser.yy" // lalr1.cc:907 +#line 127 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.TSIG_KEY; } #line 701 "d2_parser.cc" // lalr1.cc:907 break; case 10: -#line 124 "d2_parser.yy" // lalr1.cc:907 +#line 128 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.TSIG_KEYS; } #line 707 "d2_parser.cc" // lalr1.cc:907 break; case 12: -#line 125 "d2_parser.yy" // lalr1.cc:907 +#line 129 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DDNS_DOMAIN; } #line 713 "d2_parser.cc" // lalr1.cc:907 break; case 14: -#line 126 "d2_parser.yy" // lalr1.cc:907 +#line 130 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DDNS_DOMAINS; } #line 719 "d2_parser.cc" // lalr1.cc:907 break; case 16: -#line 127 "d2_parser.yy" // lalr1.cc:907 +#line 131 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DNS_SERVERS; } #line 725 "d2_parser.cc" // lalr1.cc:907 break; case 18: -#line 128 "d2_parser.yy" // lalr1.cc:907 +#line 132 "d2_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DNS_SERVERS; } #line 731 "d2_parser.cc" // lalr1.cc:907 break; case 20: -#line 136 "d2_parser.yy" // lalr1.cc:907 +#line 140 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 737 "d2_parser.cc" // lalr1.cc:907 break; case 21: -#line 137 "d2_parser.yy" // lalr1.cc:907 +#line 141 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 743 "d2_parser.cc" // lalr1.cc:907 break; case 22: -#line 138 "d2_parser.yy" // lalr1.cc:907 +#line 142 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 749 "d2_parser.cc" // lalr1.cc:907 break; case 23: -#line 139 "d2_parser.yy" // lalr1.cc:907 +#line 143 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 755 "d2_parser.cc" // lalr1.cc:907 break; case 24: -#line 140 "d2_parser.yy" // lalr1.cc:907 +#line 144 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 761 "d2_parser.cc" // lalr1.cc:907 break; case 25: -#line 141 "d2_parser.yy" // lalr1.cc:907 +#line 145 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 767 "d2_parser.cc" // lalr1.cc:907 break; case 26: -#line 142 "d2_parser.yy" // lalr1.cc:907 +#line 146 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 773 "d2_parser.cc" // lalr1.cc:907 break; case 27: -#line 145 "d2_parser.yy" // lalr1.cc:907 +#line 149 "d2_parser.yy" // lalr1.cc:907 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -782,7 +782,7 @@ namespace isc { namespace d2 { break; case 28: -#line 150 "d2_parser.yy" // lalr1.cc:907 +#line 154 "d2_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -793,7 +793,7 @@ namespace isc { namespace d2 { break; case 29: -#line 155 "d2_parser.yy" // lalr1.cc:907 +#line 159 "d2_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -803,13 +803,13 @@ namespace isc { namespace d2 { break; case 30: -#line 161 "d2_parser.yy" // lalr1.cc:907 +#line 165 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 809 "d2_parser.cc" // lalr1.cc:907 break; case 33: -#line 168 "d2_parser.yy" // lalr1.cc:907 +#line 172 "d2_parser.yy" // lalr1.cc:907 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -818,7 +818,7 @@ namespace isc { namespace d2 { break; case 34: -#line 172 "d2_parser.yy" // lalr1.cc:907 +#line 176 "d2_parser.yy" // lalr1.cc:907 { // map consisting of a shorter map followed by // comma and string:value @@ -828,7 +828,7 @@ namespace isc { namespace d2 { break; case 35: -#line 179 "d2_parser.yy" // lalr1.cc:907 +#line 183 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -837,7 +837,7 @@ namespace isc { namespace d2 { break; case 36: -#line 182 "d2_parser.yy" // lalr1.cc:907 +#line 186 "d2_parser.yy" // lalr1.cc:907 { // list parsing complete. Put any sanity checking here } @@ -845,7 +845,7 @@ namespace isc { namespace d2 { break; case 39: -#line 190 "d2_parser.yy" // lalr1.cc:907 +#line 194 "d2_parser.yy" // lalr1.cc:907 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -854,7 +854,7 @@ namespace isc { namespace d2 { break; case 40: -#line 194 "d2_parser.yy" // lalr1.cc:907 +#line 198 "d2_parser.yy" // lalr1.cc:907 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -863,7 +863,7 @@ namespace isc { namespace d2 { break; case 41: -#line 205 "d2_parser.yy" // lalr1.cc:907 +#line 209 "d2_parser.yy" // lalr1.cc:907 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -874,7 +874,7 @@ namespace isc { namespace d2 { break; case 42: -#line 215 "d2_parser.yy" // lalr1.cc:907 +#line 219 "d2_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -885,7 +885,7 @@ namespace isc { namespace d2 { break; case 43: -#line 220 "d2_parser.yy" // lalr1.cc:907 +#line 224 "d2_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -895,7 +895,7 @@ namespace isc { namespace d2 { break; case 52: -#line 242 "d2_parser.yy" // lalr1.cc:907 +#line 246 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("DhcpDdns", m); @@ -906,7 +906,7 @@ namespace isc { namespace d2 { break; case 53: -#line 247 "d2_parser.yy" // lalr1.cc:907 +#line 251 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -915,7 +915,7 @@ namespace isc { namespace d2 { break; case 54: -#line 252 "d2_parser.yy" // lalr1.cc:907 +#line 256 "d2_parser.yy" // lalr1.cc:907 { // Parse the dhcpddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -925,23 +925,23 @@ namespace isc { namespace d2 { break; case 55: -#line 256 "d2_parser.yy" // lalr1.cc:907 +#line 260 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 933 "d2_parser.cc" // lalr1.cc:907 break; - case 69: -#line 278 "d2_parser.yy" // lalr1.cc:907 + case 70: +#line 283 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 941 "d2_parser.cc" // lalr1.cc:907 break; - case 70: -#line 280 "d2_parser.yy" // lalr1.cc:907 + case 71: +#line 285 "d2_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", s); @@ -950,8 +950,8 @@ namespace isc { namespace d2 { #line 951 "d2_parser.cc" // lalr1.cc:907 break; - case 71: -#line 286 "d2_parser.yy" // lalr1.cc:907 + case 72: +#line 291 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) { error(yystack_[0].location, "port must be greater than zero but less than 65536"); @@ -962,8 +962,8 @@ namespace isc { namespace d2 { #line 963 "d2_parser.cc" // lalr1.cc:907 break; - case 72: -#line 294 "d2_parser.yy" // lalr1.cc:907 + case 73: +#line 299 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () <= 0) { error(yystack_[0].location, "dns-server-timeout must be greater than zero"); @@ -975,16 +975,16 @@ namespace isc { namespace d2 { #line 976 "d2_parser.cc" // lalr1.cc:907 break; - case 73: -#line 303 "d2_parser.yy" // lalr1.cc:907 + case 74: +#line 308 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_PROTOCOL); } #line 984 "d2_parser.cc" // lalr1.cc:907 break; - case 74: -#line 305 "d2_parser.yy" // lalr1.cc:907 + case 75: +#line 310 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); @@ -992,28 +992,28 @@ namespace isc { namespace d2 { #line 993 "d2_parser.cc" // lalr1.cc:907 break; - case 75: -#line 311 "d2_parser.yy" // lalr1.cc:907 + case 76: +#line 316 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } #line 999 "d2_parser.cc" // lalr1.cc:907 break; - case 76: -#line 312 "d2_parser.yy" // lalr1.cc:907 + case 77: +#line 317 "d2_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } #line 1005 "d2_parser.cc" // lalr1.cc:907 break; - case 77: -#line 315 "d2_parser.yy" // lalr1.cc:907 + case 78: +#line 320 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_FORMAT); } #line 1013 "d2_parser.cc" // lalr1.cc:907 break; - case 78: -#line 317 "d2_parser.yy" // lalr1.cc:907 + case 79: +#line 322 "d2_parser.yy" // lalr1.cc:907 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); @@ -1022,16 +1022,16 @@ namespace isc { namespace d2 { #line 1023 "d2_parser.cc" // lalr1.cc:907 break; - case 79: -#line 323 "d2_parser.yy" // lalr1.cc:907 + case 80: +#line 328 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1031 "d2_parser.cc" // lalr1.cc:907 break; - case 80: -#line 325 "d2_parser.yy" // lalr1.cc:907 + case 81: +#line 330 "d2_parser.yy" // lalr1.cc:907 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); @@ -1057,16 +1057,16 @@ namespace isc { namespace d2 { #line 1058 "d2_parser.cc" // lalr1.cc:907 break; - case 81: -#line 348 "d2_parser.yy" // lalr1.cc:907 + case 82: +#line 353 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1066 "d2_parser.cc" // lalr1.cc:907 break; - case 82: -#line 350 "d2_parser.yy" // lalr1.cc:907 + case 83: +#line 355 "d2_parser.yy" // lalr1.cc:907 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -1094,8 +1094,8 @@ namespace isc { namespace d2 { #line 1095 "d2_parser.cc" // lalr1.cc:907 break; - case 83: -#line 375 "d2_parser.yy" // lalr1.cc:907 + case 84: +#line 380 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("forward-ddns", m); @@ -1105,8 +1105,8 @@ namespace isc { namespace d2 { #line 1106 "d2_parser.cc" // lalr1.cc:907 break; - case 84: -#line 380 "d2_parser.yy" // lalr1.cc:907 + case 85: +#line 385 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1114,8 +1114,8 @@ namespace isc { namespace d2 { #line 1115 "d2_parser.cc" // lalr1.cc:907 break; - case 85: -#line 385 "d2_parser.yy" // lalr1.cc:907 + case 86: +#line 390 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reverse-ddns", m); @@ -1125,8 +1125,8 @@ namespace isc { namespace d2 { #line 1126 "d2_parser.cc" // lalr1.cc:907 break; - case 86: -#line 390 "d2_parser.yy" // lalr1.cc:907 + case 87: +#line 395 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1134,8 +1134,8 @@ namespace isc { namespace d2 { #line 1135 "d2_parser.cc" // lalr1.cc:907 break; - case 93: -#line 409 "d2_parser.yy" // lalr1.cc:907 + case 94: +#line 414 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ddns-domains", l); @@ -1145,8 +1145,8 @@ namespace isc { namespace d2 { #line 1146 "d2_parser.cc" // lalr1.cc:907 break; - case 94: -#line 414 "d2_parser.yy" // lalr1.cc:907 + case 95: +#line 419 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1154,8 +1154,8 @@ namespace isc { namespace d2 { #line 1155 "d2_parser.cc" // lalr1.cc:907 break; - case 95: -#line 419 "d2_parser.yy" // lalr1.cc:907 + case 96: +#line 424 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -1163,16 +1163,16 @@ namespace isc { namespace d2 { #line 1164 "d2_parser.cc" // lalr1.cc:907 break; - case 96: -#line 422 "d2_parser.yy" // lalr1.cc:907 + case 97: +#line 427 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1172 "d2_parser.cc" // lalr1.cc:907 break; - case 101: -#line 434 "d2_parser.yy" // lalr1.cc:907 + case 102: +#line 439 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1181,16 +1181,16 @@ namespace isc { namespace d2 { #line 1182 "d2_parser.cc" // lalr1.cc:907 break; - case 102: -#line 438 "d2_parser.yy" // lalr1.cc:907 + case 103: +#line 443 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } #line 1190 "d2_parser.cc" // lalr1.cc:907 break; - case 103: -#line 442 "d2_parser.yy" // lalr1.cc:907 + case 104: +#line 447 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -1198,24 +1198,24 @@ namespace isc { namespace d2 { #line 1199 "d2_parser.cc" // lalr1.cc:907 break; - case 104: -#line 445 "d2_parser.yy" // lalr1.cc:907 + case 105: +#line 450 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1207 "d2_parser.cc" // lalr1.cc:907 break; - case 113: -#line 462 "d2_parser.yy" // lalr1.cc:907 + case 114: +#line 467 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1215 "d2_parser.cc" // lalr1.cc:907 break; - case 114: -#line 464 "d2_parser.yy" // lalr1.cc:907 + case 115: +#line 469 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "Ddns domain name cannot be blank"); @@ -1228,16 +1228,16 @@ namespace isc { namespace d2 { #line 1229 "d2_parser.cc" // lalr1.cc:907 break; - case 115: -#line 474 "d2_parser.yy" // lalr1.cc:907 + case 116: +#line 479 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1237 "d2_parser.cc" // lalr1.cc:907 break; - case 116: -#line 476 "d2_parser.yy" // lalr1.cc:907 + case 117: +#line 481 "d2_parser.yy" // lalr1.cc:907 { ElementPtr elem(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); @@ -1247,8 +1247,8 @@ namespace isc { namespace d2 { #line 1248 "d2_parser.cc" // lalr1.cc:907 break; - case 117: -#line 486 "d2_parser.yy" // lalr1.cc:907 + case 118: +#line 491 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dns-servers", l); @@ -1258,8 +1258,8 @@ namespace isc { namespace d2 { #line 1259 "d2_parser.cc" // lalr1.cc:907 break; - case 118: -#line 491 "d2_parser.yy" // lalr1.cc:907 + case 119: +#line 496 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1267,8 +1267,8 @@ namespace isc { namespace d2 { #line 1268 "d2_parser.cc" // lalr1.cc:907 break; - case 119: -#line 496 "d2_parser.yy" // lalr1.cc:907 + case 120: +#line 501 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -1276,16 +1276,16 @@ namespace isc { namespace d2 { #line 1277 "d2_parser.cc" // lalr1.cc:907 break; - case 120: -#line 499 "d2_parser.yy" // lalr1.cc:907 + case 121: +#line 504 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1285 "d2_parser.cc" // lalr1.cc:907 break; - case 123: -#line 507 "d2_parser.yy" // lalr1.cc:907 + case 124: +#line 512 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1294,16 +1294,16 @@ namespace isc { namespace d2 { #line 1295 "d2_parser.cc" // lalr1.cc:907 break; - case 124: -#line 511 "d2_parser.yy" // lalr1.cc:907 + case 125: +#line 516 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } #line 1303 "d2_parser.cc" // lalr1.cc:907 break; - case 125: -#line 515 "d2_parser.yy" // lalr1.cc:907 + case 126: +#line 520 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); @@ -1311,24 +1311,24 @@ namespace isc { namespace d2 { #line 1312 "d2_parser.cc" // lalr1.cc:907 break; - case 126: -#line 518 "d2_parser.yy" // lalr1.cc:907 + case 127: +#line 523 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1320 "d2_parser.cc" // lalr1.cc:907 break; - case 135: -#line 534 "d2_parser.yy" // lalr1.cc:907 + case 136: +#line 539 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1328 "d2_parser.cc" // lalr1.cc:907 break; - case 136: -#line 536 "d2_parser.yy" // lalr1.cc:907 + case 137: +#line 541 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () != "") { error(yystack_[1].location, "hostname is not yet supported"); @@ -1341,16 +1341,16 @@ namespace isc { namespace d2 { #line 1342 "d2_parser.cc" // lalr1.cc:907 break; - case 137: -#line 546 "d2_parser.yy" // lalr1.cc:907 + case 138: +#line 551 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1350 "d2_parser.cc" // lalr1.cc:907 break; - case 138: -#line 548 "d2_parser.yy" // lalr1.cc:907 + case 139: +#line 553 "d2_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", s); @@ -1359,8 +1359,8 @@ namespace isc { namespace d2 { #line 1360 "d2_parser.cc" // lalr1.cc:907 break; - case 139: -#line 554 "d2_parser.yy" // lalr1.cc:907 + case 140: +#line 559 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) { error(yystack_[0].location, "port must be greater than zero but less than 65536"); @@ -1371,8 +1371,8 @@ namespace isc { namespace d2 { #line 1372 "d2_parser.cc" // lalr1.cc:907 break; - case 140: -#line 568 "d2_parser.yy" // lalr1.cc:907 + case 141: +#line 573 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tsig-keys", l); @@ -1382,8 +1382,8 @@ namespace isc { namespace d2 { #line 1383 "d2_parser.cc" // lalr1.cc:907 break; - case 141: -#line 573 "d2_parser.yy" // lalr1.cc:907 + case 142: +#line 578 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); @@ -1391,8 +1391,8 @@ namespace isc { namespace d2 { #line 1392 "d2_parser.cc" // lalr1.cc:907 break; - case 142: -#line 578 "d2_parser.yy" // lalr1.cc:907 + case 143: +#line 583 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -1400,16 +1400,16 @@ namespace isc { namespace d2 { #line 1401 "d2_parser.cc" // lalr1.cc:907 break; - case 143: -#line 581 "d2_parser.yy" // lalr1.cc:907 + case 144: +#line 586 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1409 "d2_parser.cc" // lalr1.cc:907 break; - case 148: -#line 593 "d2_parser.yy" // lalr1.cc:907 + case 149: +#line 598 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); @@ -1418,16 +1418,16 @@ namespace isc { namespace d2 { #line 1419 "d2_parser.cc" // lalr1.cc:907 break; - case 149: -#line 597 "d2_parser.yy" // lalr1.cc:907 + case 150: +#line 602 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } #line 1427 "d2_parser.cc" // lalr1.cc:907 break; - case 150: -#line 601 "d2_parser.yy" // lalr1.cc:907 + case 151: +#line 606 "d2_parser.yy" // lalr1.cc:907 { // Parse tsig key list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1436,24 +1436,24 @@ namespace isc { namespace d2 { #line 1437 "d2_parser.cc" // lalr1.cc:907 break; - case 151: -#line 605 "d2_parser.yy" // lalr1.cc:907 + case 152: +#line 610 "d2_parser.yy" // lalr1.cc:907 { // parsing completed } #line 1445 "d2_parser.cc" // lalr1.cc:907 break; - case 161: -#line 623 "d2_parser.yy" // lalr1.cc:907 + case 162: +#line 628 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1453 "d2_parser.cc" // lalr1.cc:907 break; - case 162: -#line 625 "d2_parser.yy" // lalr1.cc:907 + case 163: +#line 630 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "TSIG key name cannot be blank"); @@ -1466,16 +1466,16 @@ namespace isc { namespace d2 { #line 1467 "d2_parser.cc" // lalr1.cc:907 break; - case 163: -#line 635 "d2_parser.yy" // lalr1.cc:907 + case 164: +#line 640 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1475 "d2_parser.cc" // lalr1.cc:907 break; - case 164: -#line 637 "d2_parser.yy" // lalr1.cc:907 + case 165: +#line 642 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "TSIG key algorithm cannot be blank"); @@ -1487,8 +1487,8 @@ namespace isc { namespace d2 { #line 1488 "d2_parser.cc" // lalr1.cc:907 break; - case 165: -#line 646 "d2_parser.yy" // lalr1.cc:907 + case 166: +#line 651 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< int64_t > () < 0 || (yystack_[0].value.as< int64_t > () > 0 && (yystack_[0].value.as< int64_t > () % 8 != 0))) { error(yystack_[0].location, "TSIG key digest-bits must either be zero or a positive, multiple of eight"); @@ -1499,16 +1499,16 @@ namespace isc { namespace d2 { #line 1500 "d2_parser.cc" // lalr1.cc:907 break; - case 166: -#line 654 "d2_parser.yy" // lalr1.cc:907 + case 167: +#line 659 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1508 "d2_parser.cc" // lalr1.cc:907 break; - case 167: -#line 656 "d2_parser.yy" // lalr1.cc:907 + case 168: +#line 661 "d2_parser.yy" // lalr1.cc:907 { if (yystack_[0].value.as< std::string > () == "") { error(yystack_[1].location, "TSIG key secret cannot be blank"); @@ -1520,245 +1520,301 @@ namespace isc { namespace d2 { #line 1521 "d2_parser.cc" // lalr1.cc:907 break; - case 168: -#line 669 "d2_parser.yy" // lalr1.cc:907 + case 169: +#line 675 "d2_parser.yy" // lalr1.cc:907 + { + ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("control-socket", m); + ctx.stack_.push_back(m); + ctx.enter(ctx.CONTROL_SOCKET); +} +#line 1532 "d2_parser.cc" // lalr1.cc:907 + break; + + case 170: +#line 680 "d2_parser.yy" // lalr1.cc:907 + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 1541 "d2_parser.cc" // lalr1.cc:907 + break; + + case 178: +#line 696 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1529 "d2_parser.cc" // lalr1.cc:907 +#line 1549 "d2_parser.cc" // lalr1.cc:907 break; - case 169: -#line 671 "d2_parser.yy" // lalr1.cc:907 + case 179: +#line 698 "d2_parser.yy" // lalr1.cc:907 + { + ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("socket-type", stype); + ctx.leave(); +} +#line 1559 "d2_parser.cc" // lalr1.cc:907 + break; + + case 180: +#line 704 "d2_parser.yy" // lalr1.cc:907 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1567 "d2_parser.cc" // lalr1.cc:907 + break; + + case 181: +#line 706 "d2_parser.yy" // lalr1.cc:907 + { + ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("socket-name", name); + ctx.leave(); +} +#line 1577 "d2_parser.cc" // lalr1.cc:907 + break; + + case 182: +#line 714 "d2_parser.yy" // lalr1.cc:907 + { + ctx.enter(ctx.NO_KEYWORD); +} +#line 1585 "d2_parser.cc" // lalr1.cc:907 + break; + + case 183: +#line 716 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1538 "d2_parser.cc" // lalr1.cc:907 +#line 1594 "d2_parser.cc" // lalr1.cc:907 break; - case 170: -#line 676 "d2_parser.yy" // lalr1.cc:907 + case 184: +#line 721 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1546 "d2_parser.cc" // lalr1.cc:907 +#line 1602 "d2_parser.cc" // lalr1.cc:907 break; - case 171: -#line 678 "d2_parser.yy" // lalr1.cc:907 + case 185: +#line 723 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1555 "d2_parser.cc" // lalr1.cc:907 +#line 1611 "d2_parser.cc" // lalr1.cc:907 break; - case 172: -#line 683 "d2_parser.yy" // lalr1.cc:907 + case 186: +#line 728 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1563 "d2_parser.cc" // lalr1.cc:907 +#line 1619 "d2_parser.cc" // lalr1.cc:907 break; - case 173: -#line 685 "d2_parser.yy" // lalr1.cc:907 + case 187: +#line 730 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1572 "d2_parser.cc" // lalr1.cc:907 +#line 1628 "d2_parser.cc" // lalr1.cc:907 break; - case 174: -#line 695 "d2_parser.yy" // lalr1.cc:907 + case 188: +#line 740 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 1583 "d2_parser.cc" // lalr1.cc:907 +#line 1639 "d2_parser.cc" // lalr1.cc:907 break; - case 175: -#line 700 "d2_parser.yy" // lalr1.cc:907 + case 189: +#line 745 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1592 "d2_parser.cc" // lalr1.cc:907 +#line 1648 "d2_parser.cc" // lalr1.cc:907 break; - case 179: -#line 717 "d2_parser.yy" // lalr1.cc:907 + case 193: +#line 762 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 1603 "d2_parser.cc" // lalr1.cc:907 +#line 1659 "d2_parser.cc" // lalr1.cc:907 break; - case 180: -#line 722 "d2_parser.yy" // lalr1.cc:907 + case 194: +#line 767 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1612 "d2_parser.cc" // lalr1.cc:907 +#line 1668 "d2_parser.cc" // lalr1.cc:907 break; - case 183: -#line 734 "d2_parser.yy" // lalr1.cc:907 + case 197: +#line 779 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 1622 "d2_parser.cc" // lalr1.cc:907 +#line 1678 "d2_parser.cc" // lalr1.cc:907 break; - case 184: -#line 738 "d2_parser.yy" // lalr1.cc:907 + case 198: +#line 783 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 1630 "d2_parser.cc" // lalr1.cc:907 +#line 1686 "d2_parser.cc" // lalr1.cc:907 break; - case 194: -#line 755 "d2_parser.yy" // lalr1.cc:907 + case 208: +#line 800 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1638 "d2_parser.cc" // lalr1.cc:907 +#line 1694 "d2_parser.cc" // lalr1.cc:907 break; - case 195: -#line 757 "d2_parser.yy" // lalr1.cc:907 + case 209: +#line 802 "d2_parser.yy" // lalr1.cc:907 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1648 "d2_parser.cc" // lalr1.cc:907 +#line 1704 "d2_parser.cc" // lalr1.cc:907 break; - case 196: -#line 763 "d2_parser.yy" // lalr1.cc:907 + case 210: +#line 808 "d2_parser.yy" // lalr1.cc:907 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 1657 "d2_parser.cc" // lalr1.cc:907 +#line 1713 "d2_parser.cc" // lalr1.cc:907 break; - case 197: -#line 767 "d2_parser.yy" // lalr1.cc:907 + case 211: +#line 812 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1665 "d2_parser.cc" // lalr1.cc:907 +#line 1721 "d2_parser.cc" // lalr1.cc:907 break; - case 198: -#line 769 "d2_parser.yy" // lalr1.cc:907 + case 212: +#line 814 "d2_parser.yy" // lalr1.cc:907 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 1675 "d2_parser.cc" // lalr1.cc:907 +#line 1731 "d2_parser.cc" // lalr1.cc:907 break; - case 199: -#line 775 "d2_parser.yy" // lalr1.cc:907 + case 213: +#line 820 "d2_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 1686 "d2_parser.cc" // lalr1.cc:907 +#line 1742 "d2_parser.cc" // lalr1.cc:907 break; - case 200: -#line 780 "d2_parser.yy" // lalr1.cc:907 + case 214: +#line 825 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1695 "d2_parser.cc" // lalr1.cc:907 +#line 1751 "d2_parser.cc" // lalr1.cc:907 break; - case 203: -#line 789 "d2_parser.yy" // lalr1.cc:907 + case 217: +#line 834 "d2_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1705 "d2_parser.cc" // lalr1.cc:907 +#line 1761 "d2_parser.cc" // lalr1.cc:907 break; - case 204: -#line 793 "d2_parser.yy" // lalr1.cc:907 + case 218: +#line 838 "d2_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 1713 "d2_parser.cc" // lalr1.cc:907 +#line 1769 "d2_parser.cc" // lalr1.cc:907 break; - case 211: -#line 807 "d2_parser.yy" // lalr1.cc:907 + case 225: +#line 852 "d2_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1721 "d2_parser.cc" // lalr1.cc:907 +#line 1777 "d2_parser.cc" // lalr1.cc:907 break; - case 212: -#line 809 "d2_parser.yy" // lalr1.cc:907 + case 226: +#line 854 "d2_parser.yy" // lalr1.cc:907 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 1731 "d2_parser.cc" // lalr1.cc:907 +#line 1787 "d2_parser.cc" // lalr1.cc:907 break; - case 213: -#line 815 "d2_parser.yy" // lalr1.cc:907 + case 227: +#line 860 "d2_parser.yy" // lalr1.cc:907 { ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 1740 "d2_parser.cc" // lalr1.cc:907 +#line 1796 "d2_parser.cc" // lalr1.cc:907 break; - case 214: -#line 820 "d2_parser.yy" // lalr1.cc:907 + case 228: +#line 865 "d2_parser.yy" // lalr1.cc:907 { ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 1749 "d2_parser.cc" // lalr1.cc:907 +#line 1805 "d2_parser.cc" // lalr1.cc:907 break; - case 215: -#line 825 "d2_parser.yy" // lalr1.cc:907 + case 229: +#line 870 "d2_parser.yy" // lalr1.cc:907 { ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 1758 "d2_parser.cc" // lalr1.cc:907 +#line 1814 "d2_parser.cc" // lalr1.cc:907 break; -#line 1762 "d2_parser.cc" // lalr1.cc:907 +#line 1818 "d2_parser.cc" // lalr1.cc:907 default: break; } @@ -2016,49 +2072,52 @@ namespace isc { namespace d2 { } - const signed char D2Parser::yypact_ninf_ = -90; + const signed char D2Parser::yypact_ninf_ = -92; const signed char D2Parser::yytable_ninf_ = -1; const short D2Parser::yypact_[] = { - 47, -90, -90, -90, -90, -90, -90, -90, -90, -90, - 12, 2, 1, 23, 33, 11, 38, 58, 64, 73, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -90, -90, -90, -90, -90, 2, -25, - 8, 9, 15, 96, 37, 115, 21, 116, -90, 124, - 113, 127, 130, 137, -90, -90, -90, -90, -90, 146, - -90, 19, -90, -90, -90, -90, -90, -90, -90, 148, - 150, -90, -90, -90, -90, -90, -90, -90, -90, 46, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, 152, -90, -90, -90, -90, -90, 76, -90, - -90, -90, -90, -90, -90, 151, 155, -90, -90, -90, - -90, -90, -90, -90, 77, -90, -90, -90, -90, -90, - 153, 157, -90, -90, 161, -90, -90, -90, -90, 78, - -90, -90, -90, -90, -90, 118, -90, -90, 2, 2, - -90, 108, 162, 163, 164, 165, 166, -90, 8, -90, - 167, 119, 120, 168, 171, 172, 173, 174, 175, 176, - 9, -90, 177, 128, 179, 180, 15, -90, 15, -90, - 96, 181, 182, 183, 37, -90, 37, -90, 115, 184, - 135, 186, 21, -90, 21, 116, -90, -90, -90, 187, - 2, 2, 2, 185, 188, -90, 140, -90, -90, 70, - 178, 189, 141, 190, 195, 198, -90, 154, -90, 156, - 158, -90, 79, -90, 159, 199, 160, -90, 97, -90, - 169, -90, 170, -90, 98, -90, 2, -90, -90, -90, - 9, 191, -90, -90, -90, -90, -90, -90, -90, -90, - -12, -12, 96, -90, -90, -90, -90, -90, 116, -90, - -90, -90, -90, -90, -90, 99, -90, 101, -90, -90, - -90, -90, 109, -90, -90, -90, 110, 200, 126, -90, - 201, 191, -90, 204, -12, -90, -90, -90, -90, 205, - -90, 209, -90, 208, 115, -90, 143, -90, 210, 30, - 208, -90, -90, -90, -90, 213, -90, -90, -90, -90, - 111, -90, -90, -90, -90, -90, -90, 214, 215, 192, - 216, 30, -90, 194, 219, -90, 197, -90, -90, 218, - -90, -90, 145, -90, 34, 218, -90, -90, 217, 223, - 224, 112, -90, -90, -90, -90, -90, -90, 225, 196, - 202, 203, 34, -90, 206, -90, -90, -90, -90, -90 + 50, -92, -92, -92, -92, -92, -92, -92, -92, -92, + 12, 2, 1, 23, 42, 11, 44, 17, 59, 65, + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, 2, 18, + 8, 9, 15, 87, 40, 99, 13, 100, -92, 102, + 122, 129, 118, 131, -92, -92, -92, -92, -92, 137, + -92, 49, -92, -92, -92, -92, -92, -92, -92, 139, + 147, -92, -92, -92, -92, -92, -92, -92, -92, -92, + 78, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, 157, -92, -92, -92, -92, -92, + 79, -92, -92, -92, -92, -92, -92, 164, 132, -92, + -92, -92, -92, -92, -92, -92, 85, -92, -92, -92, + -92, -92, 167, 150, -92, -92, 158, -92, -92, -92, + -92, 106, -92, -92, -92, -92, -92, 47, -92, -92, + 2, 2, -92, 107, 170, 171, 172, 173, 174, -92, + 8, -92, 175, 123, 125, 177, 179, 180, 181, 182, + 183, 184, 185, 9, -92, 186, 134, 188, 189, 15, + -92, 15, -92, 87, 190, 191, 192, 40, -92, 40, + -92, 99, 193, 141, 195, 13, -92, 13, 100, -92, + -92, -92, 196, 2, 2, 2, 194, 201, -92, 153, + -92, -92, 22, 198, 203, 155, 205, 206, 209, 208, + -92, 160, -92, 161, 168, -92, 112, -92, 169, 215, + 176, -92, 113, -92, 178, -92, 187, -92, 114, -92, + 2, -92, -92, -92, 9, 197, -92, -92, -92, -92, + -92, -92, -92, -92, -12, -12, 87, 55, -92, -92, + -92, -92, -92, 100, -92, -92, -92, -92, -92, -92, + 115, -92, 116, -92, -92, -92, -92, 124, -92, -92, + -92, 146, 216, -92, -92, -92, -92, -92, 149, -92, + -92, -92, 89, -92, 199, 197, -92, 217, -12, -92, + -92, -92, 219, 222, 55, -92, -92, 223, -92, 224, + -92, 200, 202, -92, 220, 99, -92, -92, -92, 165, + -92, 225, 33, 220, -92, -92, -92, -92, 226, -92, + -92, -92, -92, 152, -92, -92, -92, -92, -92, -92, + 229, 232, 204, 233, 33, -92, 207, 234, -92, 210, + -92, -92, 231, -92, -92, 166, -92, 39, 231, -92, + -92, 236, 237, 238, 156, -92, -92, -92, -92, -92, + -92, 240, 211, 212, 218, 39, -92, 221, -92, -92, + -92, -92, -92 }; const unsigned char @@ -2067,111 +2126,118 @@ namespace isc { namespace d2 { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 35, 28, 24, 23, 20, 21, 22, 27, 3, - 25, 26, 42, 5, 54, 7, 150, 9, 142, 11, - 103, 13, 95, 15, 125, 17, 119, 19, 37, 31, - 0, 0, 0, 144, 0, 97, 0, 0, 39, 0, - 38, 0, 0, 32, 168, 170, 172, 52, 174, 0, - 51, 0, 44, 49, 46, 48, 50, 47, 69, 0, - 0, 73, 77, 79, 81, 83, 85, 140, 68, 0, - 56, 58, 59, 60, 61, 62, 66, 67, 63, 64, - 65, 163, 0, 166, 161, 160, 158, 159, 0, 152, - 154, 155, 156, 157, 148, 0, 145, 146, 115, 117, - 113, 112, 110, 111, 0, 105, 107, 108, 109, 101, - 0, 98, 99, 137, 0, 135, 134, 132, 133, 0, - 127, 129, 130, 131, 123, 0, 121, 36, 0, 0, - 29, 0, 0, 0, 0, 0, 0, 41, 0, 43, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 151, 0, 143, - 0, 0, 0, 0, 0, 104, 0, 96, 0, 0, - 0, 0, 0, 126, 0, 0, 120, 40, 33, 0, - 0, 0, 0, 0, 0, 45, 0, 71, 72, 0, - 0, 0, 0, 0, 0, 0, 57, 0, 165, 0, - 0, 153, 0, 147, 0, 0, 0, 106, 0, 100, - 0, 139, 0, 128, 0, 122, 0, 169, 171, 173, - 0, 0, 70, 75, 76, 74, 78, 30, 80, 82, - 87, 87, 144, 164, 167, 162, 149, 116, 0, 114, - 102, 138, 136, 124, 34, 0, 179, 0, 176, 178, - 93, 92, 0, 88, 89, 91, 0, 0, 0, 53, - 0, 0, 175, 0, 0, 84, 86, 141, 118, 0, - 177, 0, 90, 0, 97, 183, 0, 181, 0, 0, - 0, 180, 94, 194, 199, 0, 197, 193, 191, 192, - 0, 185, 187, 189, 190, 188, 182, 0, 0, 0, - 0, 0, 184, 0, 0, 196, 0, 186, 195, 0, - 198, 203, 0, 201, 0, 0, 200, 211, 0, 0, - 0, 0, 205, 207, 208, 209, 210, 202, 0, 0, - 0, 0, 0, 204, 0, 213, 214, 215, 206, 212 + 25, 26, 42, 5, 54, 7, 151, 9, 143, 11, + 104, 13, 96, 15, 126, 17, 120, 19, 37, 31, + 0, 0, 0, 145, 0, 98, 0, 0, 39, 0, + 38, 0, 0, 32, 182, 184, 186, 52, 188, 0, + 51, 0, 44, 49, 46, 48, 50, 47, 70, 0, + 0, 74, 78, 80, 82, 84, 86, 141, 169, 69, + 0, 56, 58, 59, 60, 61, 62, 67, 68, 63, + 64, 65, 66, 164, 0, 167, 162, 161, 159, 160, + 0, 153, 155, 156, 157, 158, 149, 0, 146, 147, + 116, 118, 114, 113, 111, 112, 0, 106, 108, 109, + 110, 102, 0, 99, 100, 138, 0, 136, 135, 133, + 134, 0, 128, 130, 131, 132, 124, 0, 122, 36, + 0, 0, 29, 0, 0, 0, 0, 0, 0, 41, + 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 152, 0, 144, 0, 0, 0, 0, 0, 105, 0, + 97, 0, 0, 0, 0, 0, 127, 0, 0, 121, + 40, 33, 0, 0, 0, 0, 0, 0, 45, 0, + 72, 73, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 166, 0, 0, 154, 0, 148, 0, 0, + 0, 107, 0, 101, 0, 140, 0, 129, 0, 123, + 0, 183, 185, 187, 0, 0, 71, 76, 77, 75, + 79, 30, 81, 83, 88, 88, 145, 0, 165, 168, + 163, 150, 117, 0, 115, 103, 139, 137, 125, 34, + 0, 193, 0, 190, 192, 94, 93, 0, 89, 90, + 92, 0, 0, 178, 180, 177, 175, 176, 0, 171, + 173, 174, 0, 53, 0, 0, 189, 0, 0, 85, + 87, 142, 0, 0, 0, 170, 119, 0, 191, 0, + 91, 0, 0, 172, 0, 98, 179, 181, 197, 0, + 195, 0, 0, 0, 194, 95, 208, 213, 0, 211, + 207, 205, 206, 0, 199, 201, 203, 204, 202, 196, + 0, 0, 0, 0, 0, 198, 0, 0, 210, 0, + 200, 209, 0, 212, 217, 0, 215, 0, 0, 214, + 225, 0, 0, 0, 0, 219, 221, 222, 223, 224, + 216, 0, 0, 0, 0, 0, 218, 0, 227, 228, + 229, 220, 226 }; const signed char D2Parser::yypgoto_[] = { - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -38, -90, 20, -90, -90, -90, -90, -90, -90, - -90, -90, -50, -90, -90, -90, 72, -90, -90, -90, - -90, -8, 63, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -51, -90, -39, -90, -90, -90, -90, -90, - -16, -90, -48, -90, -90, -90, -90, -57, -90, 50, - -90, -90, -90, 53, 56, -90, -90, -90, -90, -90, - -90, -90, -90, -17, 48, -90, -90, -90, 51, 52, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -10, - -90, 71, -90, -90, -90, 75, 82, -90, -90, -90, - -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, - -90, -90, -90, -27, -90, -90, -90, -45, -90, -90, - -60, -90, -90, -90, -90, -90, -90, -90, -90, -73, - -90, -90, -89, -90, -90, -90, -90, -90 + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -38, -92, 31, -92, -92, -92, -92, -92, -92, + -92, -92, -50, -92, -92, -92, 86, -92, -92, -92, + -92, 3, 76, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -51, -92, -39, -92, -92, -92, -92, -92, + -5, -92, -47, -92, -92, -92, -92, -63, -92, 64, + -92, -92, -92, 68, 72, -92, -92, -92, -92, -92, + -92, -92, -92, -3, 66, -92, -92, -92, 70, 67, + -92, -92, -92, -92, -92, -92, -92, -92, -92, 20, + -92, 90, -92, -92, -92, 93, 101, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -36, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -17, -92, -92, -92, -44, -92, -92, -62, -92, + -92, -92, -92, -92, -92, -92, -92, -77, -92, -92, + -91, -92, -92, -92, -92, -92 }; const short D2Parser::yydefgoto_[] = { -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 28, 29, 30, 49, 248, 62, 63, 31, 48, - 59, 60, 88, 33, 50, 71, 72, 73, 155, 35, - 51, 89, 90, 91, 160, 92, 93, 94, 163, 245, - 95, 164, 96, 165, 97, 166, 98, 167, 99, 168, - 272, 273, 274, 275, 283, 43, 55, 130, 131, 132, - 186, 41, 54, 124, 125, 126, 183, 127, 181, 128, - 182, 47, 57, 145, 146, 194, 45, 56, 139, 140, - 141, 191, 142, 189, 143, 100, 169, 39, 53, 115, - 116, 117, 178, 37, 52, 108, 109, 110, 175, 111, - 172, 112, 113, 174, 74, 152, 75, 153, 76, 154, - 77, 156, 267, 268, 269, 280, 296, 297, 299, 310, - 311, 312, 317, 313, 314, 320, 315, 318, 332, 333, - 334, 341, 342, 343, 348, 344, 345, 346 + 19, 28, 29, 30, 49, 252, 62, 63, 31, 48, + 59, 60, 89, 33, 50, 71, 72, 73, 157, 35, + 51, 90, 91, 92, 162, 93, 94, 95, 165, 249, + 96, 166, 97, 167, 98, 168, 99, 169, 100, 170, + 277, 278, 279, 280, 297, 43, 55, 132, 133, 134, + 189, 41, 54, 126, 127, 128, 186, 129, 184, 130, + 185, 47, 57, 147, 148, 197, 45, 56, 141, 142, + 143, 194, 144, 192, 145, 101, 171, 39, 53, 117, + 118, 119, 181, 37, 52, 110, 111, 112, 178, 113, + 175, 114, 115, 177, 102, 172, 288, 289, 290, 302, + 291, 303, 74, 154, 75, 155, 76, 156, 77, 158, + 272, 273, 274, 294, 319, 320, 322, 333, 334, 335, + 340, 336, 337, 343, 338, 341, 355, 356, 357, 364, + 365, 366, 371, 367, 368, 369 }; const unsigned short D2Parser::yytable_[] = { - 70, 106, 105, 122, 121, 137, 136, 21, 32, 22, - 58, 23, 20, 107, 270, 123, 38, 138, 64, 65, - 66, 67, 158, 78, 79, 80, 81, 159, 61, 82, - 34, 83, 84, 85, 86, 133, 134, 83, 84, 87, - 36, 69, 68, 83, 84, 40, 101, 102, 103, 170, - 135, 104, 83, 84, 171, 24, 25, 26, 27, 83, - 84, 69, 69, 42, 118, 119, 303, 304, 69, 305, - 306, 44, 337, 120, 69, 338, 339, 340, 46, 176, - 184, 192, 176, 69, 177, 185, 193, 256, 243, 244, - 69, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 184, 192, 170, 114, 281, 260, 263, 279, 70, 282, - 197, 198, 284, 284, 321, 352, 148, 285, 286, 322, - 353, 195, 129, 144, 196, 106, 105, 106, 105, 195, - 147, 149, 288, 122, 121, 122, 121, 107, 150, 107, - 151, 137, 136, 137, 136, 123, 300, 123, 335, 301, - 157, 336, 161, 138, 162, 138, 173, 179, 180, 187, - 188, 199, 237, 238, 239, 190, 200, 201, 202, 203, - 204, 206, 209, 207, 208, 210, 211, 212, 213, 214, - 215, 217, 218, 219, 220, 224, 225, 226, 230, 231, - 232, 236, 240, 242, 249, 241, 22, 250, 264, 246, - 271, 271, 251, 252, 258, 289, 287, 253, 291, 254, - 293, 255, 257, 259, 294, 295, 302, 319, 323, 324, - 326, 349, 261, 262, 329, 331, 266, 350, 351, 354, - 205, 247, 265, 216, 271, 276, 292, 298, 229, 228, - 227, 278, 277, 235, 233, 234, 325, 328, 308, 307, - 330, 223, 355, 222, 290, 316, 356, 357, 221, 359, - 309, 327, 347, 358, 0, 0, 0, 0, 0, 0, - 308, 307, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 309 + 70, 108, 107, 124, 123, 139, 138, 21, 32, 22, + 58, 23, 20, 109, 275, 125, 38, 140, 64, 65, + 66, 67, 42, 78, 79, 80, 81, 135, 136, 82, + 34, 83, 84, 85, 86, 83, 84, 83, 84, 87, + 247, 248, 137, 88, 69, 68, 103, 104, 105, 36, + 198, 40, 160, 199, 106, 83, 84, 161, 24, 25, + 26, 27, 83, 84, 69, 69, 44, 120, 121, 69, + 46, 69, 326, 327, 61, 328, 329, 83, 84, 122, + 360, 173, 179, 361, 362, 363, 174, 180, 187, 69, + 283, 284, 198, 188, 116, 306, 69, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 131, 146, 149, 195, + 70, 69, 200, 201, 196, 179, 187, 195, 173, 295, + 261, 265, 268, 293, 296, 150, 152, 298, 108, 107, + 108, 107, 299, 151, 153, 183, 124, 123, 124, 123, + 109, 159, 109, 163, 139, 138, 139, 138, 125, 298, + 125, 164, 304, 191, 300, 344, 140, 305, 140, 375, + 345, 176, 193, 202, 376, 241, 242, 243, 323, 358, + 182, 324, 359, 190, 203, 204, 205, 206, 207, 209, + 210, 212, 211, 213, 214, 215, 216, 217, 218, 219, + 221, 222, 223, 224, 228, 229, 230, 234, 235, 236, + 240, 244, 269, 307, 276, 276, 286, 285, 245, 246, + 22, 253, 254, 255, 256, 257, 258, 259, 287, 250, + 263, 309, 301, 311, 260, 262, 312, 318, 314, 315, + 342, 325, 264, 346, 266, 271, 347, 349, 354, 352, + 372, 373, 374, 267, 377, 251, 208, 270, 276, 220, + 281, 310, 321, 286, 285, 233, 316, 232, 317, 231, + 292, 348, 237, 351, 239, 287, 353, 238, 313, 379, + 378, 331, 330, 227, 226, 380, 282, 382, 308, 339, + 225, 370, 350, 332, 381, 0, 0, 0, 0, 0, + 0, 0, 0, 331, 330, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 332 }; const short @@ -2179,101 +2245,107 @@ namespace isc { namespace d2 { { 50, 52, 52, 54, 54, 56, 56, 5, 7, 7, 48, 9, 0, 52, 26, 54, 5, 56, 10, 11, - 12, 13, 3, 14, 15, 16, 17, 8, 53, 20, - 7, 22, 23, 24, 25, 14, 15, 22, 23, 30, - 7, 53, 34, 22, 23, 7, 31, 32, 33, 3, - 29, 36, 22, 23, 8, 53, 54, 55, 56, 22, - 23, 53, 53, 5, 27, 28, 36, 37, 53, 39, - 40, 7, 38, 36, 53, 41, 42, 43, 5, 3, - 3, 3, 3, 53, 8, 8, 8, 8, 18, 19, - 53, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 3, 3, 3, 7, 3, 8, 8, 8, 158, 8, - 148, 149, 3, 3, 3, 3, 3, 8, 8, 8, - 8, 3, 7, 7, 6, 176, 176, 178, 178, 3, - 6, 4, 6, 184, 184, 186, 186, 176, 8, 178, - 3, 192, 192, 194, 194, 184, 3, 186, 3, 6, - 4, 6, 4, 192, 4, 194, 4, 6, 3, 6, - 3, 53, 200, 201, 202, 4, 4, 4, 4, 4, - 4, 4, 4, 54, 54, 4, 4, 4, 4, 4, - 4, 4, 54, 4, 4, 4, 4, 4, 4, 54, - 4, 4, 7, 53, 53, 7, 7, 7, 236, 21, - 250, 251, 7, 5, 5, 4, 6, 53, 4, 53, - 5, 53, 53, 53, 5, 7, 6, 4, 4, 4, - 4, 4, 53, 53, 5, 7, 35, 4, 4, 4, - 158, 211, 240, 170, 284, 251, 284, 294, 188, 186, - 184, 258, 252, 195, 192, 194, 54, 53, 299, 299, - 53, 180, 56, 178, 281, 300, 54, 54, 176, 53, - 299, 321, 335, 352, -1, -1, -1, -1, -1, -1, - 321, 321, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 321 + 12, 13, 5, 14, 15, 16, 17, 14, 15, 20, + 7, 22, 23, 24, 25, 22, 23, 22, 23, 30, + 18, 19, 29, 34, 56, 37, 31, 32, 33, 7, + 3, 7, 3, 6, 39, 22, 23, 8, 56, 57, + 58, 59, 22, 23, 56, 56, 7, 27, 28, 56, + 5, 56, 39, 40, 56, 42, 43, 22, 23, 39, + 41, 3, 3, 44, 45, 46, 8, 8, 3, 56, + 35, 36, 3, 8, 7, 6, 56, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 7, 7, 6, 3, + 160, 56, 150, 151, 8, 3, 3, 3, 3, 3, + 8, 8, 8, 8, 8, 3, 8, 3, 179, 179, + 181, 181, 8, 4, 3, 3, 187, 187, 189, 189, + 179, 4, 181, 4, 195, 195, 197, 197, 187, 3, + 189, 4, 3, 3, 8, 3, 195, 8, 197, 3, + 8, 4, 4, 56, 8, 203, 204, 205, 3, 3, + 6, 6, 6, 6, 4, 4, 4, 4, 4, 4, + 57, 4, 57, 4, 4, 4, 4, 4, 4, 4, + 4, 57, 4, 4, 4, 4, 4, 4, 57, 4, + 4, 7, 240, 4, 254, 255, 257, 257, 7, 56, + 7, 56, 7, 7, 5, 7, 56, 56, 257, 21, + 5, 4, 6, 4, 56, 56, 4, 7, 5, 5, + 4, 6, 56, 4, 56, 38, 4, 4, 7, 5, + 4, 4, 4, 56, 4, 214, 160, 244, 298, 173, + 255, 298, 315, 304, 304, 191, 56, 189, 56, 187, + 263, 57, 195, 56, 198, 304, 56, 197, 304, 57, + 59, 322, 322, 183, 181, 57, 256, 56, 295, 323, + 179, 358, 344, 322, 375, -1, -1, -1, -1, -1, + -1, -1, -1, 344, 344, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 344 }; const unsigned char D2Parser::yystos_[] = { - 0, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 0, 5, 7, 9, 53, 54, 55, 56, 68, 69, - 70, 75, 7, 80, 7, 86, 7, 150, 5, 144, - 7, 118, 5, 112, 7, 133, 5, 128, 76, 71, - 81, 87, 151, 145, 119, 113, 134, 129, 68, 77, - 78, 53, 73, 74, 10, 11, 12, 13, 34, 53, - 79, 82, 83, 84, 161, 163, 165, 167, 14, 15, - 16, 17, 20, 22, 23, 24, 25, 30, 79, 88, - 89, 90, 92, 93, 94, 97, 99, 101, 103, 105, - 142, 31, 32, 33, 36, 79, 99, 101, 152, 153, - 154, 156, 158, 159, 7, 146, 147, 148, 27, 28, - 36, 79, 99, 101, 120, 121, 122, 124, 126, 7, - 114, 115, 116, 14, 15, 29, 79, 99, 101, 135, - 136, 137, 139, 141, 7, 130, 131, 6, 3, 4, - 8, 3, 162, 164, 166, 85, 168, 4, 3, 8, - 91, 4, 4, 95, 98, 100, 102, 104, 106, 143, - 3, 8, 157, 4, 160, 155, 3, 8, 149, 6, - 3, 125, 127, 123, 3, 8, 117, 6, 3, 140, - 4, 138, 3, 8, 132, 3, 6, 68, 68, 53, - 4, 4, 4, 4, 4, 83, 4, 54, 54, 4, - 4, 4, 4, 4, 4, 4, 89, 4, 54, 4, - 4, 153, 152, 148, 4, 4, 4, 121, 120, 116, - 4, 54, 4, 136, 135, 131, 4, 68, 68, 68, - 7, 7, 53, 18, 19, 96, 21, 70, 72, 53, - 7, 7, 5, 53, 53, 53, 8, 53, 5, 53, - 8, 53, 53, 8, 68, 88, 35, 169, 170, 171, - 26, 79, 107, 108, 109, 110, 107, 146, 130, 8, - 172, 3, 8, 111, 3, 8, 8, 6, 6, 4, - 170, 4, 109, 5, 5, 7, 173, 174, 114, 175, - 3, 6, 6, 36, 37, 39, 40, 79, 99, 101, - 176, 177, 178, 180, 181, 183, 174, 179, 184, 4, - 182, 3, 8, 4, 4, 54, 4, 177, 53, 5, - 53, 7, 185, 186, 187, 3, 6, 38, 41, 42, - 43, 188, 189, 190, 192, 193, 194, 186, 191, 4, - 4, 4, 3, 8, 4, 56, 54, 54, 189, 53 + 0, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 0, 5, 7, 9, 56, 57, 58, 59, 71, 72, + 73, 78, 7, 83, 7, 89, 7, 153, 5, 147, + 7, 121, 5, 115, 7, 136, 5, 131, 79, 74, + 84, 90, 154, 148, 122, 116, 137, 132, 71, 80, + 81, 56, 76, 77, 10, 11, 12, 13, 37, 56, + 82, 85, 86, 87, 172, 174, 176, 178, 14, 15, + 16, 17, 20, 22, 23, 24, 25, 30, 34, 82, + 91, 92, 93, 95, 96, 97, 100, 102, 104, 106, + 108, 145, 164, 31, 32, 33, 39, 82, 102, 104, + 155, 156, 157, 159, 161, 162, 7, 149, 150, 151, + 27, 28, 39, 82, 102, 104, 123, 124, 125, 127, + 129, 7, 117, 118, 119, 14, 15, 29, 82, 102, + 104, 138, 139, 140, 142, 144, 7, 133, 134, 6, + 3, 4, 8, 3, 173, 175, 177, 88, 179, 4, + 3, 8, 94, 4, 4, 98, 101, 103, 105, 107, + 109, 146, 165, 3, 8, 160, 4, 163, 158, 3, + 8, 152, 6, 3, 128, 130, 126, 3, 8, 120, + 6, 3, 143, 4, 141, 3, 8, 135, 3, 6, + 71, 71, 56, 4, 4, 4, 4, 4, 86, 4, + 57, 57, 4, 4, 4, 4, 4, 4, 4, 4, + 92, 4, 57, 4, 4, 156, 155, 151, 4, 4, + 4, 124, 123, 119, 4, 57, 4, 139, 138, 134, + 4, 71, 71, 71, 7, 7, 56, 18, 19, 99, + 21, 73, 75, 56, 7, 7, 5, 7, 56, 56, + 56, 8, 56, 5, 56, 8, 56, 56, 8, 71, + 91, 38, 180, 181, 182, 26, 82, 110, 111, 112, + 113, 110, 149, 35, 36, 82, 102, 104, 166, 167, + 168, 170, 133, 8, 183, 3, 8, 114, 3, 8, + 8, 6, 169, 171, 3, 8, 6, 4, 181, 4, + 112, 4, 4, 167, 5, 5, 56, 56, 7, 184, + 185, 117, 186, 3, 6, 6, 39, 40, 42, 43, + 82, 102, 104, 187, 188, 189, 191, 192, 194, 185, + 190, 195, 4, 193, 3, 8, 4, 4, 57, 4, + 188, 56, 5, 56, 7, 196, 197, 198, 3, 6, + 41, 44, 45, 46, 199, 200, 201, 203, 204, 205, + 197, 202, 4, 4, 4, 3, 8, 4, 59, 57, + 57, 200, 56 }; const unsigned char D2Parser::yyr1_[] = { - 0, 57, 59, 58, 60, 58, 61, 58, 62, 58, - 63, 58, 64, 58, 65, 58, 66, 58, 67, 58, - 68, 68, 68, 68, 68, 68, 68, 69, 71, 70, - 72, 73, 73, 74, 74, 76, 75, 77, 77, 78, - 78, 79, 81, 80, 82, 82, 83, 83, 83, 83, - 83, 83, 85, 84, 87, 86, 88, 88, 89, 89, - 89, 89, 89, 89, 89, 89, 89, 89, 89, 91, - 90, 92, 93, 95, 94, 96, 96, 98, 97, 100, - 99, 102, 101, 104, 103, 106, 105, 107, 107, 108, - 108, 109, 109, 111, 110, 113, 112, 114, 114, 115, - 115, 117, 116, 119, 118, 120, 120, 121, 121, 121, - 121, 121, 121, 123, 122, 125, 124, 127, 126, 129, - 128, 130, 130, 132, 131, 134, 133, 135, 135, 136, - 136, 136, 136, 136, 136, 138, 137, 140, 139, 141, - 143, 142, 145, 144, 146, 146, 147, 147, 149, 148, - 151, 150, 152, 152, 153, 153, 153, 153, 153, 153, - 153, 155, 154, 157, 156, 158, 160, 159, 162, 161, - 164, 163, 166, 165, 168, 167, 169, 169, 170, 172, - 171, 173, 173, 175, 174, 176, 176, 177, 177, 177, - 177, 177, 177, 177, 179, 178, 180, 182, 181, 184, - 183, 185, 185, 187, 186, 188, 188, 189, 189, 189, - 189, 191, 190, 192, 193, 194 + 0, 60, 62, 61, 63, 61, 64, 61, 65, 61, + 66, 61, 67, 61, 68, 61, 69, 61, 70, 61, + 71, 71, 71, 71, 71, 71, 71, 72, 74, 73, + 75, 76, 76, 77, 77, 79, 78, 80, 80, 81, + 81, 82, 84, 83, 85, 85, 86, 86, 86, 86, + 86, 86, 88, 87, 90, 89, 91, 91, 92, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 94, 93, 95, 96, 98, 97, 99, 99, 101, 100, + 103, 102, 105, 104, 107, 106, 109, 108, 110, 110, + 111, 111, 112, 112, 114, 113, 116, 115, 117, 117, + 118, 118, 120, 119, 122, 121, 123, 123, 124, 124, + 124, 124, 124, 124, 126, 125, 128, 127, 130, 129, + 132, 131, 133, 133, 135, 134, 137, 136, 138, 138, + 139, 139, 139, 139, 139, 139, 141, 140, 143, 142, + 144, 146, 145, 148, 147, 149, 149, 150, 150, 152, + 151, 154, 153, 155, 155, 156, 156, 156, 156, 156, + 156, 156, 158, 157, 160, 159, 161, 163, 162, 165, + 164, 166, 166, 167, 167, 167, 167, 167, 169, 168, + 171, 170, 173, 172, 175, 174, 177, 176, 179, 178, + 180, 180, 181, 183, 182, 184, 184, 186, 185, 187, + 187, 188, 188, 188, 188, 188, 188, 188, 190, 189, + 191, 193, 192, 195, 194, 196, 196, 198, 197, 199, + 199, 200, 200, 200, 200, 202, 201, 203, 204, 205 }; const unsigned char @@ -2285,22 +2357,23 @@ namespace isc { namespace d2 { 1, 0, 1, 3, 5, 0, 4, 0, 1, 1, 3, 2, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 0, 6, 0, 4, 1, 3, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 3, 3, 0, 4, 1, 1, 0, 4, 0, - 4, 0, 4, 0, 6, 0, 6, 0, 1, 1, - 3, 1, 1, 0, 6, 0, 4, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 6, 0, - 4, 1, 3, 0, 4, 0, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, - 0, 6, 0, 4, 0, 1, 1, 3, 0, 4, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 3, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 6, 1, 3, 1, 0, - 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 3, 0, 4, 0, - 6, 1, 3, 0, 4, 1, 3, 1, 1, 1, - 1, 0, 4, 3, 3, 3 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 3, 3, 0, 4, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 6, 0, 6, 0, 1, + 1, 3, 1, 1, 0, 6, 0, 4, 0, 1, + 1, 3, 0, 4, 0, 4, 1, 3, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, + 0, 4, 1, 3, 0, 4, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 3, 0, 6, 0, 4, 0, 1, 1, 3, 0, + 4, 0, 4, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 0, 4, 3, 0, 4, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 1, 3, 1, 0, 6, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 3, 0, 4, 0, 6, 1, 3, 0, 4, 1, + 3, 1, 1, 1, 1, 0, 4, 3, 3, 3 }; @@ -2317,15 +2390,16 @@ namespace isc { namespace d2 { "\"ncr-format\"", "\"JSON\"", "\"user-context\"", "\"comment\"", "\"forward-ddns\"", "\"reverse-ddns\"", "\"ddns-domains\"", "\"key-name\"", "\"dns-servers\"", "\"hostname\"", "\"tsig-keys\"", - "\"algorithm\"", "\"digest-bits\"", "\"secret\"", "\"Logging\"", - "\"loggers\"", "\"name\"", "\"output_options\"", "\"output\"", - "\"debuglevel\"", "\"severity\"", "\"flush\"", "\"maxsize\"", - "\"maxver\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCPDDNS", "SUB_DHCPDDNS", - "SUB_TSIG_KEY", "SUB_TSIG_KEYS", "SUB_DDNS_DOMAIN", "SUB_DDNS_DOMAINS", - "SUB_DNS_SERVER", "SUB_DNS_SERVERS", "\"constant string\"", - "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start", - "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "value", - "sub_json", "map2", "$@10", "map_value", "map_content", "not_empty_map", + "\"algorithm\"", "\"digest-bits\"", "\"secret\"", "\"control-socket\"", + "\"socket-type\"", "\"socket-name\"", "\"Logging\"", "\"loggers\"", + "\"name\"", "\"output_options\"", "\"output\"", "\"debuglevel\"", + "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", + "TOPLEVEL_JSON", "TOPLEVEL_DHCPDDNS", "SUB_DHCPDDNS", "SUB_TSIG_KEY", + "SUB_TSIG_KEYS", "SUB_DDNS_DOMAIN", "SUB_DDNS_DOMAINS", "SUB_DNS_SERVER", + "SUB_DNS_SERVERS", "\"constant string\"", "\"integer\"", + "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2", + "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "value", "sub_json", + "map2", "$@10", "map_value", "map_content", "not_empty_map", "list_generic", "$@11", "list_content", "not_empty_list", "unknown_map_entry", "syntax_map", "$@12", "global_objects", "global_object", "dhcpddns_object", "$@13", "sub_dhcpddns", "$@14", @@ -2345,42 +2419,46 @@ namespace isc { namespace d2 { "tsig_keys_list", "not_empty_tsig_keys_list", "tsig_key", "$@36", "sub_tsig_key", "$@37", "tsig_key_params", "tsig_key_param", "tsig_key_name", "$@38", "tsig_key_algorithm", "$@39", - "tsig_key_digest_bits", "tsig_key_secret", "$@40", "dhcp6_json_object", - "$@41", "dhcp4_json_object", "$@42", "control_agent_json_object", "$@43", - "logging_object", "$@44", "logging_params", "logging_param", "loggers", - "$@45", "loggers_entries", "logger_entry", "$@46", "logger_params", - "logger_param", "name", "$@47", "debuglevel", "severity", "$@48", - "output_options_list", "$@49", "output_options_list_content", - "output_entry", "$@50", "output_params_list", "output_params", "output", - "$@51", "flush", "maxsize", "maxver", YY_NULLPTR + "tsig_key_digest_bits", "tsig_key_secret", "$@40", "control_socket", + "$@41", "control_socket_params", "control_socket_param", + "control_socket_type", "$@42", "control_socket_name", "$@43", + "dhcp6_json_object", "$@44", "dhcp4_json_object", "$@45", + "control_agent_json_object", "$@46", "logging_object", "$@47", + "logging_params", "logging_param", "loggers", "$@48", "loggers_entries", + "logger_entry", "$@49", "logger_params", "logger_param", "name", "$@50", + "debuglevel", "severity", "$@51", "output_options_list", "$@52", + "output_options_list_content", "output_entry", "$@53", + "output_params_list", "output_params", "output", "$@54", "flush", + "maxsize", "maxver", YY_NULLPTR }; #if D2_PARSER_DEBUG const unsigned short D2Parser::yyrline_[] = { - 0, 120, 120, 120, 121, 121, 122, 122, 123, 123, - 124, 124, 125, 125, 126, 126, 127, 127, 128, 128, - 136, 137, 138, 139, 140, 141, 142, 145, 150, 150, - 161, 164, 165, 168, 172, 179, 179, 186, 187, 190, - 194, 205, 215, 215, 227, 228, 232, 233, 234, 235, - 236, 237, 242, 242, 252, 252, 260, 261, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 278, - 278, 286, 294, 303, 303, 311, 312, 315, 315, 323, - 323, 348, 348, 375, 375, 385, 385, 395, 396, 399, - 400, 403, 404, 409, 409, 419, 419, 426, 427, 430, - 431, 434, 434, 442, 442, 449, 450, 453, 454, 455, - 456, 457, 458, 462, 462, 474, 474, 486, 486, 496, - 496, 503, 504, 507, 507, 515, 515, 522, 523, 526, - 527, 528, 529, 530, 531, 534, 534, 546, 546, 554, - 568, 568, 578, 578, 585, 586, 589, 590, 593, 593, - 601, 601, 610, 611, 614, 615, 616, 617, 618, 619, - 620, 623, 623, 635, 635, 646, 654, 654, 669, 669, - 676, 676, 683, 683, 695, 695, 708, 709, 713, 717, - 717, 729, 730, 734, 734, 742, 743, 746, 747, 748, - 749, 750, 751, 752, 755, 755, 763, 767, 767, 775, - 775, 785, 786, 789, 789, 797, 798, 801, 802, 803, - 804, 807, 807, 815, 820, 825 + 0, 124, 124, 124, 125, 125, 126, 126, 127, 127, + 128, 128, 129, 129, 130, 130, 131, 131, 132, 132, + 140, 141, 142, 143, 144, 145, 146, 149, 154, 154, + 165, 168, 169, 172, 176, 183, 183, 190, 191, 194, + 198, 209, 219, 219, 231, 232, 236, 237, 238, 239, + 240, 241, 246, 246, 256, 256, 264, 265, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 283, 283, 291, 299, 308, 308, 316, 317, 320, 320, + 328, 328, 353, 353, 380, 380, 390, 390, 400, 401, + 404, 405, 408, 409, 414, 414, 424, 424, 431, 432, + 435, 436, 439, 439, 447, 447, 454, 455, 458, 459, + 460, 461, 462, 463, 467, 467, 479, 479, 491, 491, + 501, 501, 508, 509, 512, 512, 520, 520, 527, 528, + 531, 532, 533, 534, 535, 536, 539, 539, 551, 551, + 559, 573, 573, 583, 583, 590, 591, 594, 595, 598, + 598, 606, 606, 615, 616, 619, 620, 621, 622, 623, + 624, 625, 628, 628, 640, 640, 651, 659, 659, 675, + 675, 685, 686, 689, 690, 691, 692, 693, 696, 696, + 704, 704, 714, 714, 721, 721, 728, 728, 740, 740, + 753, 754, 758, 762, 762, 774, 775, 779, 779, 787, + 788, 791, 792, 793, 794, 795, 796, 797, 800, 800, + 808, 812, 812, 820, 820, 830, 831, 834, 834, 842, + 843, 846, 847, 848, 849, 852, 852, 860, 865, 870 }; // Print the state stack on the debug stream. @@ -2415,8 +2493,8 @@ namespace isc { namespace d2 { #line 14 "d2_parser.yy" // lalr1.cc:1218 } } // isc::d2 -#line 2419 "d2_parser.cc" // lalr1.cc:1218 -#line 830 "d2_parser.yy" // lalr1.cc:1219 +#line 2497 "d2_parser.cc" // lalr1.cc:1218 +#line 875 "d2_parser.yy" // lalr1.cc:1219 void diff --git a/src/bin/d2/d2_parser.h b/src/bin/d2/d2_parser.h index c32be0d7c0..4ebefde709 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.2.1. +// A Bison parser, made by GNU Bison 3.2.4. // Skeleton interface for Bison LALR(1) parsers in C++ @@ -569,29 +569,32 @@ namespace isc { namespace d2 { TOKEN_ALGORITHM = 286, TOKEN_DIGEST_BITS = 287, TOKEN_SECRET = 288, - TOKEN_LOGGING = 289, - TOKEN_LOGGERS = 290, - TOKEN_NAME = 291, - TOKEN_OUTPUT_OPTIONS = 292, - TOKEN_OUTPUT = 293, - TOKEN_DEBUGLEVEL = 294, - TOKEN_SEVERITY = 295, - TOKEN_FLUSH = 296, - TOKEN_MAXSIZE = 297, - TOKEN_MAXVER = 298, - TOKEN_TOPLEVEL_JSON = 299, - TOKEN_TOPLEVEL_DHCPDDNS = 300, - TOKEN_SUB_DHCPDDNS = 301, - TOKEN_SUB_TSIG_KEY = 302, - TOKEN_SUB_TSIG_KEYS = 303, - TOKEN_SUB_DDNS_DOMAIN = 304, - TOKEN_SUB_DDNS_DOMAINS = 305, - TOKEN_SUB_DNS_SERVER = 306, - TOKEN_SUB_DNS_SERVERS = 307, - TOKEN_STRING = 308, - TOKEN_INTEGER = 309, - TOKEN_FLOAT = 310, - TOKEN_BOOLEAN = 311 + TOKEN_CONTROL_SOCKET = 289, + TOKEN_SOCKET_TYPE = 290, + TOKEN_SOCKET_NAME = 291, + TOKEN_LOGGING = 292, + TOKEN_LOGGERS = 293, + TOKEN_NAME = 294, + TOKEN_OUTPUT_OPTIONS = 295, + TOKEN_OUTPUT = 296, + TOKEN_DEBUGLEVEL = 297, + TOKEN_SEVERITY = 298, + TOKEN_FLUSH = 299, + TOKEN_MAXSIZE = 300, + TOKEN_MAXVER = 301, + TOKEN_TOPLEVEL_JSON = 302, + TOKEN_TOPLEVEL_DHCPDDNS = 303, + TOKEN_SUB_DHCPDDNS = 304, + TOKEN_SUB_TSIG_KEY = 305, + TOKEN_SUB_TSIG_KEYS = 306, + TOKEN_SUB_DDNS_DOMAIN = 307, + TOKEN_SUB_DDNS_DOMAINS = 308, + TOKEN_SUB_DNS_SERVER = 309, + TOKEN_SUB_DNS_SERVERS = 310, + TOKEN_STRING = 311, + TOKEN_INTEGER = 312, + TOKEN_FLOAT = 313, + TOKEN_BOOLEAN = 314 }; }; @@ -622,8 +625,13 @@ namespace isc { namespace d2 { /// Default constructor. basic_symbol (); - /// Move or copy constructor. - basic_symbol (YY_RVREF (basic_symbol) other); +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + basic_symbol (basic_symbol&& that); +#endif + + /// Copy constructor. + basic_symbol (const basic_symbol& that); /// Constructor for valueless symbols, and symbols from each type. @@ -680,7 +688,7 @@ namespace isc { namespace d2 { private: #if YY_CPLUSPLUS < 201103L /// Assignment operator. - basic_symbol& operator= (const basic_symbol& other); + basic_symbol& operator= (const basic_symbol& that); #endif }; @@ -690,8 +698,13 @@ namespace isc { namespace d2 { /// Default constructor. by_type (); +#if 201103L <= YY_CPLUSPLUS + /// Move constructor. + by_type (by_type&& that); +#endif + /// Copy constructor. - by_type (const by_type& other); + by_type (const by_type& that); /// The symbol type as needed by the constructor. typedef token_type kind_type; @@ -756,1158 +769,1992 @@ namespace isc { namespace d2 { void error (const syntax_error& err); // Symbol constructors declarations. +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_END (YY_COPY (location_type) l); - + make_END (location_type l); +#else static symbol_type - make_COMMA (YY_COPY (location_type) l); - + make_END (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_COLON (YY_COPY (location_type) l); - + make_COMMA (location_type l); +#else static symbol_type - make_LSQUARE_BRACKET (YY_COPY (location_type) l); - + make_COMMA (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_RSQUARE_BRACKET (YY_COPY (location_type) l); - + make_COLON (location_type l); +#else static symbol_type - make_LCURLY_BRACKET (YY_COPY (location_type) l); - + make_COLON (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_RCURLY_BRACKET (YY_COPY (location_type) l); - + make_LSQUARE_BRACKET (location_type l); +#else static symbol_type - make_NULL_TYPE (YY_COPY (location_type) l); - + make_LSQUARE_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DHCP6 (YY_COPY (location_type) l); - + make_RSQUARE_BRACKET (location_type l); +#else static symbol_type - make_DHCP4 (YY_COPY (location_type) l); - + make_RSQUARE_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_CONTROL_AGENT (YY_COPY (location_type) l); - + make_LCURLY_BRACKET (location_type l); +#else static symbol_type - make_DHCPDDNS (YY_COPY (location_type) l); - + make_LCURLY_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_IP_ADDRESS (YY_COPY (location_type) l); - + make_RCURLY_BRACKET (location_type l); +#else static symbol_type - make_PORT (YY_COPY (location_type) l); - + make_RCURLY_BRACKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DNS_SERVER_TIMEOUT (YY_COPY (location_type) l); - + make_NULL_TYPE (location_type l); +#else static symbol_type - make_NCR_PROTOCOL (YY_COPY (location_type) l); - + make_NULL_TYPE (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_UDP (YY_COPY (location_type) l); - + make_DHCP6 (location_type l); +#else static symbol_type - make_TCP (YY_COPY (location_type) l); - + make_DHCP6 (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_NCR_FORMAT (YY_COPY (location_type) l); - + make_DHCP4 (location_type l); +#else static symbol_type - make_JSON (YY_COPY (location_type) l); - + make_DHCP4 (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_USER_CONTEXT (YY_COPY (location_type) l); - + make_CONTROL_AGENT (location_type l); +#else static symbol_type - make_COMMENT (YY_COPY (location_type) l); - + make_CONTROL_AGENT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_FORWARD_DDNS (YY_COPY (location_type) l); - + make_DHCPDDNS (location_type l); +#else static symbol_type - make_REVERSE_DDNS (YY_COPY (location_type) l); - + make_DHCPDDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DDNS_DOMAINS (YY_COPY (location_type) l); - + make_IP_ADDRESS (location_type l); +#else static symbol_type - make_KEY_NAME (YY_COPY (location_type) l); - + make_IP_ADDRESS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DNS_SERVERS (YY_COPY (location_type) l); - + make_PORT (location_type l); +#else static symbol_type - make_HOSTNAME (YY_COPY (location_type) l); - + make_PORT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_TSIG_KEYS (YY_COPY (location_type) l); - + make_DNS_SERVER_TIMEOUT (location_type l); +#else static symbol_type - make_ALGORITHM (YY_COPY (location_type) l); - + make_DNS_SERVER_TIMEOUT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_DIGEST_BITS (YY_COPY (location_type) l); - + make_NCR_PROTOCOL (location_type l); +#else static symbol_type - make_SECRET (YY_COPY (location_type) l); - + make_NCR_PROTOCOL (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_LOGGING (YY_COPY (location_type) l); - + make_UDP (location_type l); +#else static symbol_type - make_LOGGERS (YY_COPY (location_type) l); - + make_UDP (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_NAME (YY_COPY (location_type) l); - + make_TCP (location_type l); +#else static symbol_type - make_OUTPUT_OPTIONS (YY_COPY (location_type) l); - + make_TCP (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_OUTPUT (YY_COPY (location_type) l); - + make_NCR_FORMAT (location_type l); +#else static symbol_type - make_DEBUGLEVEL (YY_COPY (location_type) l); - + make_NCR_FORMAT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SEVERITY (YY_COPY (location_type) l); - + make_JSON (location_type l); +#else static symbol_type - make_FLUSH (YY_COPY (location_type) l); - + make_JSON (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_MAXSIZE (YY_COPY (location_type) l); - + make_USER_CONTEXT (location_type l); +#else static symbol_type - make_MAXVER (YY_COPY (location_type) l); - + make_USER_CONTEXT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_TOPLEVEL_JSON (YY_COPY (location_type) l); - + make_COMMENT (location_type l); +#else static symbol_type - make_TOPLEVEL_DHCPDDNS (YY_COPY (location_type) l); - + make_COMMENT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_DHCPDDNS (YY_COPY (location_type) l); - + make_FORWARD_DDNS (location_type l); +#else static symbol_type - make_SUB_TSIG_KEY (YY_COPY (location_type) l); - + make_FORWARD_DDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_TSIG_KEYS (YY_COPY (location_type) l); - + make_REVERSE_DDNS (location_type l); +#else static symbol_type - make_SUB_DDNS_DOMAIN (YY_COPY (location_type) l); - + make_REVERSE_DDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_DDNS_DOMAINS (YY_COPY (location_type) l); - + make_DDNS_DOMAINS (location_type l); +#else static symbol_type - make_SUB_DNS_SERVER (YY_COPY (location_type) l); - + make_DDNS_DOMAINS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_SUB_DNS_SERVERS (YY_COPY (location_type) l); - + make_KEY_NAME (location_type l); +#else static symbol_type - make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l); - + make_KEY_NAME (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l); - + make_DNS_SERVERS (location_type l); +#else static symbol_type - make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l); - + make_DNS_SERVERS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS static symbol_type - make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l); - - - - private: - /// This class is not copyable. - D2Parser (const D2Parser&); - D2Parser& operator= (const D2Parser&); - - /// State numbers. - typedef int state_type; - - /// Generate an error message. - /// \param yystate the state where the error occurred. - /// \param yyla the lookahead token. - virtual std::string yysyntax_error_ (state_type yystate, - const symbol_type& yyla) const; - - /// Compute post-reduction state. - /// \param yystate the current state - /// \param yysym the nonterminal to push on the stack - state_type yy_lr_goto_state_ (state_type yystate, int yysym); - - /// Whether the given \c yypact_ value indicates a defaulted state. - /// \param yyvalue the value to check - static bool yy_pact_value_is_default_ (int yyvalue); - - /// Whether the given \c yytable_ value indicates a syntax error. - /// \param yyvalue the value to check - static bool yy_table_value_is_error_ (int yyvalue); - - static const signed char yypact_ninf_; - static const signed char yytable_ninf_; - - /// Convert a scanner token number \a t to a symbol number. - static token_number_type yytranslate_ (token_type t); - - // Tables. - // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - // STATE-NUM. - static const short yypact_[]; - - // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - // Performed when YYTABLE does not specify something else to do. Zero - // means the default is an error. - static const unsigned char yydefact_[]; - - // YYPGOTO[NTERM-NUM]. - static const signed char yypgoto_[]; - - // YYDEFGOTO[NTERM-NUM]. - static const short yydefgoto_[]; - - // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - // positive, shift that token. If negative, reduce the rule whose - // number is the opposite. If YYTABLE_NINF, syntax error. - static const unsigned short yytable_[]; - - static const short yycheck_[]; - - // YYSTOS[STATE-NUM] -- The (internal number of the) accessing - // symbol of state STATE-NUM. - static const unsigned char yystos_[]; - - // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. - static const unsigned char yyr1_[]; - - // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. - static const unsigned char yyr2_[]; - - - /// Convert the symbol name \a n to a form suitable for a diagnostic. - static std::string yytnamerr_ (const char *n); - - - /// For a symbol, its name in clear. - static const char* const yytname_[]; -#if D2_PARSER_DEBUG - // YYRLINE[YYN] -- Source line where rule number YYN was defined. - static const unsigned short yyrline_[]; - /// Report on the debug stream that the rule \a r is going to be reduced. - virtual void yy_reduce_print_ (int r); - /// Print the state stack on the debug stream. - virtual void yystack_print_ (); - - /// Debugging level. - int yydebug_; - /// Debug stream. - std::ostream* yycdebug_; - - /// \brief Display a symbol type, value and location. - /// \param yyo The output stream. - /// \param yysym The symbol. - template - void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; + make_HOSTNAME (location_type l); +#else + static + symbol_type + make_HOSTNAME (const location_type& l); #endif - - /// \brief Reclaim the memory associated to a symbol. - /// \param yymsg Why this token is reclaimed. - /// If null, print nothing. - /// \param yysym The symbol. - template - void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; - - private: - /// Type access provider for state based symbols. - struct by_state - { - /// Default constructor. - by_state (); - - /// The symbol type as needed by the constructor. +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TSIG_KEYS (location_type l); +#else + static + symbol_type + make_TSIG_KEYS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_ALGORITHM (location_type l); +#else + static + symbol_type + make_ALGORITHM (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DIGEST_BITS (location_type l); +#else + static + symbol_type + make_DIGEST_BITS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SECRET (location_type l); +#else + static + symbol_type + make_SECRET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_CONTROL_SOCKET (location_type l); +#else + static + symbol_type + make_CONTROL_SOCKET (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SOCKET_TYPE (location_type l); +#else + static + symbol_type + make_SOCKET_TYPE (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SOCKET_NAME (location_type l); +#else + static + symbol_type + make_SOCKET_NAME (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_LOGGING (location_type l); +#else + static + symbol_type + make_LOGGING (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_LOGGERS (location_type l); +#else + static + symbol_type + make_LOGGERS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_NAME (location_type l); +#else + static + symbol_type + make_NAME (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_OUTPUT_OPTIONS (location_type l); +#else + static + symbol_type + make_OUTPUT_OPTIONS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_OUTPUT (location_type l); +#else + static + symbol_type + make_OUTPUT (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_DEBUGLEVEL (location_type l); +#else + static + symbol_type + make_DEBUGLEVEL (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SEVERITY (location_type l); +#else + static + symbol_type + make_SEVERITY (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_FLUSH (location_type l); +#else + static + symbol_type + make_FLUSH (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAXSIZE (location_type l); +#else + static + symbol_type + make_MAXSIZE (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_MAXVER (location_type l); +#else + static + symbol_type + make_MAXVER (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TOPLEVEL_JSON (location_type l); +#else + static + symbol_type + make_TOPLEVEL_JSON (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_TOPLEVEL_DHCPDDNS (location_type l); +#else + static + symbol_type + make_TOPLEVEL_DHCPDDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DHCPDDNS (location_type l); +#else + static + symbol_type + make_SUB_DHCPDDNS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_TSIG_KEY (location_type l); +#else + static + symbol_type + make_SUB_TSIG_KEY (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_TSIG_KEYS (location_type l); +#else + static + symbol_type + make_SUB_TSIG_KEYS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DDNS_DOMAIN (location_type l); +#else + static + symbol_type + make_SUB_DDNS_DOMAIN (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DDNS_DOMAINS (location_type l); +#else + static + symbol_type + make_SUB_DDNS_DOMAINS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DNS_SERVER (location_type l); +#else + static + symbol_type + make_SUB_DNS_SERVER (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_SUB_DNS_SERVERS (location_type l); +#else + static + symbol_type + make_SUB_DNS_SERVERS (const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_STRING (std::string v, location_type l); +#else + static + symbol_type + make_STRING (const std::string& v, const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_INTEGER (int64_t v, location_type l); +#else + static + symbol_type + make_INTEGER (const int64_t& v, const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_FLOAT (double v, location_type l); +#else + static + symbol_type + make_FLOAT (const double& v, const location_type& l); +#endif +#if 201103L <= YY_CPLUSPLUS + static + symbol_type + make_BOOLEAN (bool v, location_type l); +#else + static + symbol_type + make_BOOLEAN (const bool& v, const location_type& l); +#endif + + + private: + /// This class is not copyable. + D2Parser (const D2Parser&); + D2Parser& operator= (const D2Parser&); + + /// State numbers. + typedef int state_type; + + /// Generate an error message. + /// \param yystate the state where the error occurred. + /// \param yyla the lookahead token. + virtual std::string yysyntax_error_ (state_type yystate, + const symbol_type& yyla) const; + + /// Compute post-reduction state. + /// \param yystate the current state + /// \param yysym the nonterminal to push on the stack + state_type yy_lr_goto_state_ (state_type yystate, int yysym); + + /// Whether the given \c yypact_ value indicates a defaulted state. + /// \param yyvalue the value to check + static bool yy_pact_value_is_default_ (int yyvalue); + + /// Whether the given \c yytable_ value indicates a syntax error. + /// \param yyvalue the value to check + static bool yy_table_value_is_error_ (int yyvalue); + + static const signed char yypact_ninf_; + static const signed char yytable_ninf_; + + /// Convert a scanner token number \a t to a symbol number. + static token_number_type yytranslate_ (token_type t); + + // Tables. + // YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + // STATE-NUM. + static const short yypact_[]; + + // YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + // Performed when YYTABLE does not specify something else to do. Zero + // means the default is an error. + static const unsigned char yydefact_[]; + + // YYPGOTO[NTERM-NUM]. + static const signed char yypgoto_[]; + + // YYDEFGOTO[NTERM-NUM]. + static const short yydefgoto_[]; + + // YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + // positive, shift that token. If negative, reduce the rule whose + // number is the opposite. If YYTABLE_NINF, syntax error. + static const unsigned short yytable_[]; + + static const short yycheck_[]; + + // YYSTOS[STATE-NUM] -- The (internal number of the) accessing + // symbol of state STATE-NUM. + static const unsigned char yystos_[]; + + // YYR1[YYN] -- Symbol number of symbol that rule YYN derives. + static const unsigned char yyr1_[]; + + // YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. + static const unsigned char yyr2_[]; + + + /// Convert the symbol name \a n to a form suitable for a diagnostic. + static std::string yytnamerr_ (const char *n); + + + /// For a symbol, its name in clear. + static const char* const yytname_[]; +#if D2_PARSER_DEBUG + // YYRLINE[YYN] -- Source line where rule number YYN was defined. + static const unsigned short yyrline_[]; + /// Report on the debug stream that the rule \a r is going to be reduced. + virtual void yy_reduce_print_ (int r); + /// Print the state stack on the debug stream. + virtual void yystack_print_ (); + + /// Debugging level. + int yydebug_; + /// Debug stream. + std::ostream* yycdebug_; + + /// \brief Display a symbol type, value and location. + /// \param yyo The output stream. + /// \param yysym The symbol. + template + void yy_print_ (std::ostream& yyo, const basic_symbol& yysym) const; +#endif + + /// \brief Reclaim the memory associated to a symbol. + /// \param yymsg Why this token is reclaimed. + /// If null, print nothing. + /// \param yysym The symbol. + template + void yy_destroy_ (const char* yymsg, basic_symbol& yysym) const; + + private: + /// Type access provider for state based symbols. + struct by_state + { + /// Default constructor. + by_state (); + + /// The symbol type as needed by the constructor. typedef state_type kind_type; - /// Constructor. - by_state (kind_type s); + /// Constructor. + by_state (kind_type s); + + /// Copy constructor. + by_state (const by_state& other); + + /// Record that this symbol is empty. + void clear (); + + /// Steal the symbol type from \a that. + void move (by_state& that); + + /// The (internal) type number (corresponding to \a state). + /// \a empty_symbol when empty. + symbol_number_type type_get () const; + + /// The state number used to denote an empty symbol. + enum { empty_state = -1 }; + + /// The state. + /// \a empty when empty. + state_type state; + }; + + /// "Internal" symbol: element of the stack. + struct stack_symbol_type : basic_symbol + { + /// Superclass. + typedef basic_symbol super_type; + /// Construct an empty symbol. + stack_symbol_type (); + /// Move or copy construction. + stack_symbol_type (YY_RVREF (stack_symbol_type) that); + /// Steal the contents from \a sym to build this. + stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); +#if YY_CPLUSPLUS < 201103L + /// Assignment, needed by push_back by some old implementations. + /// Moves the contents of that. + stack_symbol_type& operator= (stack_symbol_type& that); +#endif + }; + + /// Stack type. + typedef stack stack_type; + + /// The stack. + stack_type yystack_; + + /// Push a new state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param sym the symbol + /// \warning the contents of \a s.value is stolen. + void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + + /// Push a new look ahead token on the state on the stack. + /// \param m a debug message to display + /// if null, no trace is output. + /// \param s the state + /// \param sym the symbol (for its value and location). + /// \warning the contents of \a sym.value is stolen. + void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + + /// Pop \a n symbols from the stack. + void yypop_ (int n = 1); + + /// Constants. + enum + { + yyeof_ = 0, + yylast_ = 305, ///< Last index in yytable_. + yynnts_ = 146, ///< Number of nonterminal symbols. + yyfinal_ = 20, ///< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = 60 ///< Number of tokens. + }; + + + // User arguments. + isc::d2::D2ParserContext& ctx; + }; + + // Symbol number corresponding to token number t. + inline + D2Parser::token_number_type + D2Parser::yytranslate_ (token_type t) + { + static + const token_number_type + translate_table[] = + { + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59 + }; + const unsigned user_token_number_max_ = 314; + const token_number_type undef_token_ = 2; + + if (static_cast (t) <= yyeof_) + return yyeof_; + else if (static_cast (t) <= user_token_number_max_) + return translate_table[t]; + else + return undef_token_; + } + + inline + D2Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) + : std::runtime_error (m) + , location (l) + {} + + // basic_symbol. + template + D2Parser::basic_symbol::basic_symbol () + : value () + , location () + {} - /// Copy constructor. - by_state (const by_state& other); +#if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (basic_symbol&& that) + : Base (std::move (that)) + , value () + , location (std::move (that.location)) + { + switch (this->type_get ()) + { + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.move< ElementPtr > (std::move (that.value)); + break; - /// Record that this symbol is empty. - void clear (); + case 59: // "boolean" + value.move< bool > (std::move (that.value)); + break; - /// Steal the symbol type from \a that. - void move (by_state& that); + case 58: // "floating point" + value.move< double > (std::move (that.value)); + break; - /// The (internal) type number (corresponding to \a state). - /// \a empty_symbol when empty. - symbol_number_type type_get () const; + case 57: // "integer" + value.move< int64_t > (std::move (that.value)); + break; - /// The state number used to denote an empty symbol. - enum { empty_state = -1 }; + case 56: // "constant string" + value.move< std::string > (std::move (that.value)); + break; - /// The state. - /// \a empty when empty. - state_type state; - }; + default: + break; + } - /// "Internal" symbol: element of the stack. - struct stack_symbol_type : basic_symbol + } +#endif + + template + D2Parser::basic_symbol::basic_symbol (const basic_symbol& that) + : Base (that) + , value () + , location (that.location) + { + switch (this->type_get ()) { - /// Superclass. - typedef basic_symbol super_type; - /// Construct an empty symbol. - stack_symbol_type (); - /// Move or copy construction. - stack_symbol_type (YY_RVREF (stack_symbol_type) that); - /// Steal the contents from \a sym to build this. - stack_symbol_type (state_type s, YY_MOVE_REF (symbol_type) sym); -#if YY_CPLUSPLUS < 201103L - /// Assignment, needed by push_back by some old implementations. - /// Moves the contents of that. - stack_symbol_type& operator= (stack_symbol_type& that); + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.copy< ElementPtr > (that.value); + break; + + case 59: // "boolean" + value.copy< bool > (that.value); + break; + + case 58: // "floating point" + value.copy< double > (that.value); + break; + + case 57: // "integer" + value.copy< int64_t > (that.value); + break; + + case 56: // "constant string" + value.copy< std::string > (that.value); + break; + + default: + break; + } + + } + + + // Implementation of basic_symbol constructor for each type. +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, location_type&& l) + : Base (t) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) + : Base (t) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif +# if 201103L <= YY_CPLUSPLUS + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) + : Base (t) + , value (std::move (v)) + , location (std::move (l)) + {} +#else + template + D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) + : Base (t) + , value (v) + , location (l) + {} +#endif + + + template + D2Parser::basic_symbol::~basic_symbol () + { + clear (); + } + + template + void + D2Parser::basic_symbol::clear () + { + // User destructor. + symbol_number_type yytype = this->type_get (); + basic_symbol& yysym = *this; + (void) yysym; + switch (yytype) + { + default: + break; + } + + // Type destructor. + switch (yytype) + { + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.template destroy< ElementPtr > (); + break; + + case 59: // "boolean" + value.template destroy< bool > (); + break; + + case 58: // "floating point" + value.template destroy< double > (); + break; + + case 57: // "integer" + value.template destroy< int64_t > (); + break; + + case 56: // "constant string" + value.template destroy< std::string > (); + break; + + default: + break; + } + + Base::clear (); + } + + template + bool + D2Parser::basic_symbol::empty () const + { + return Base::type_get () == empty_symbol; + } + + template + void + D2Parser::basic_symbol::move (basic_symbol& s) + { + super_type::move (s); + switch (this->type_get ()) + { + case 71: // value + case 75: // map_value + case 99: // ncr_protocol_value + value.move< ElementPtr > (YY_MOVE (s.value)); + break; + + case 59: // "boolean" + value.move< bool > (YY_MOVE (s.value)); + break; + + case 58: // "floating point" + value.move< double > (YY_MOVE (s.value)); + break; + + case 57: // "integer" + value.move< int64_t > (YY_MOVE (s.value)); + break; + + case 56: // "constant string" + value.move< std::string > (YY_MOVE (s.value)); + break; + + default: + break; + } + + location = YY_MOVE (s.location); + } + + // by_type. + inline + D2Parser::by_type::by_type () + : type (empty_symbol) + {} + +#if 201103L <= YY_CPLUSPLUS + inline + D2Parser::by_type::by_type (by_type&& that) + : type (that.type) + { + that.clear (); + } #endif - }; - /// Stack type. - typedef stack stack_type; + inline + D2Parser::by_type::by_type (const by_type& that) + : type (that.type) + {} - /// The stack. - stack_type yystack_; + inline + D2Parser::by_type::by_type (token_type t) + : type (yytranslate_ (t)) + {} - /// Push a new state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param sym the symbol - /// \warning the contents of \a s.value is stolen. - void yypush_ (const char* m, YY_MOVE_REF (stack_symbol_type) sym); + inline + void + D2Parser::by_type::clear () + { + type = empty_symbol; + } - /// Push a new look ahead token on the state on the stack. - /// \param m a debug message to display - /// if null, no trace is output. - /// \param s the state - /// \param sym the symbol (for its value and location). - /// \warning the contents of \a sym.value is stolen. - void yypush_ (const char* m, state_type s, YY_MOVE_REF (symbol_type) sym); + inline + void + D2Parser::by_type::move (by_type& that) + { + type = that.type; + that.clear (); + } - /// Pop \a n symbols from the stack. - void yypop_ (int n = 1); + inline + int + D2Parser::by_type::type_get () const + { + return type; + } - /// Constants. - enum + inline + D2Parser::token_type + D2Parser::by_type::token () const + { + // YYTOKNUM[NUM] -- (External) token number corresponding to the + // (internal) symbol number NUM (which must be that of a token). */ + static + const unsigned short + yytoken_number_[] = { - yyeof_ = 0, - yylast_ = 282, ///< Last index in yytable_. - yynnts_ = 138, ///< Number of nonterminal symbols. - yyfinal_ = 20, ///< Termination state number. - yyterror_ = 1, - yyerrcode_ = 256, - yyntokens_ = 57 ///< Number of tokens. + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314 }; + return static_cast (yytoken_number_[type]); + } - - // User arguments. - isc::d2::D2ParserContext& ctx; - }; - - // Symbol number corresponding to token number t. + // Implementation of make_symbol for each symbol type. +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::token_number_type - D2Parser::yytranslate_ (token_type t) + D2Parser::symbol_type + D2Parser::make_END (location_type l) + { + return symbol_type (token::TOKEN_END, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_END (const location_type& l) + { + return symbol_type (token::TOKEN_END, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_COMMA (location_type l) + { + return symbol_type (token::TOKEN_COMMA, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_COMMA (const location_type& l) + { + return symbol_type (token::TOKEN_COMMA, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_COLON (location_type l) + { + return symbol_type (token::TOKEN_COLON, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_COLON (const location_type& l) + { + return symbol_type (token::TOKEN_COLON, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_LSQUARE_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_LSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LSQUARE_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_RSQUARE_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_RSQUARE_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RSQUARE_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_LCURLY_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_LCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_LCURLY_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_RCURLY_BRACKET (location_type l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_RCURLY_BRACKET (const location_type& l) + { + return symbol_type (token::TOKEN_RCURLY_BRACKET, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_NULL_TYPE (location_type l) + { + return symbol_type (token::TOKEN_NULL_TYPE, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_NULL_TYPE (const location_type& l) + { + return symbol_type (token::TOKEN_NULL_TYPE, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DHCP6 (location_type l) + { + return symbol_type (token::TOKEN_DHCP6, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DHCP6 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP6, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DHCP4 (location_type l) + { + return symbol_type (token::TOKEN_DHCP4, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DHCP4 (const location_type& l) + { + return symbol_type (token::TOKEN_DHCP4, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_CONTROL_AGENT (location_type l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_CONTROL_AGENT (const location_type& l) + { + return symbol_type (token::TOKEN_CONTROL_AGENT, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DHCPDDNS (location_type l) + { + return symbol_type (token::TOKEN_DHCPDDNS, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DHCPDDNS (const location_type& l) + { + return symbol_type (token::TOKEN_DHCPDDNS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_IP_ADDRESS (location_type l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_IP_ADDRESS (const location_type& l) + { + return symbol_type (token::TOKEN_IP_ADDRESS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_PORT (location_type l) + { + return symbol_type (token::TOKEN_PORT, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_PORT (const location_type& l) + { + return symbol_type (token::TOKEN_PORT, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DNS_SERVER_TIMEOUT (location_type l) + { + return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DNS_SERVER_TIMEOUT (const location_type& l) + { + return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_NCR_PROTOCOL (location_type l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_NCR_PROTOCOL (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_PROTOCOL, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_UDP (location_type l) { - static - const token_number_type - translate_table[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56 - }; - const unsigned user_token_number_max_ = 311; - const token_number_type undef_token_ = 2; - - if (static_cast (t) <= yyeof_) - return yyeof_; - else if (static_cast (t) <= user_token_number_max_) - return translate_table[t]; - else - return undef_token_; + return symbol_type (token::TOKEN_UDP, std::move (l)); } - +#else inline - D2Parser::syntax_error::syntax_error (const location_type& l, const std::string& m) - : std::runtime_error (m) - , location (l) - {} - - // basic_symbol. - template - D2Parser::basic_symbol::basic_symbol () - : value () - , location () - {} - - template - D2Parser::basic_symbol::basic_symbol (YY_RVREF (basic_symbol) other) - : Base (YY_MOVE (other)) - , value () - , location (YY_MOVE (other.location)) + D2Parser::symbol_type + D2Parser::make_UDP (const location_type& l) { - switch (other.type_get ()) - { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value - value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value)); - break; - - case 56: // "boolean" - value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value)); - break; - - case 55: // "floating point" - value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value)); - break; - - case 54: // "integer" - value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value)); - break; - - case 53: // "constant string" - value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value)); - break; - - default: - break; - } - + return symbol_type (token::TOKEN_UDP, l); } - - - // Implementation of basic_symbol constructor for each type. +#endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, location_type&& l) - : Base (t) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_TCP (location_type l) + { + return symbol_type (token::TOKEN_TCP, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const location_type& l) - : Base (t) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_TCP (const location_type& l) + { + return symbol_type (token::TOKEN_TCP, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, ElementPtr&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_NCR_FORMAT (location_type l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const ElementPtr& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_NCR_FORMAT (const location_type& l) + { + return symbol_type (token::TOKEN_NCR_FORMAT, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, bool&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_JSON (location_type l) + { + return symbol_type (token::TOKEN_JSON, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const bool& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_JSON (const location_type& l) + { + return symbol_type (token::TOKEN_JSON, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, double&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_USER_CONTEXT (location_type l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const double& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_USER_CONTEXT (const location_type& l) + { + return symbol_type (token::TOKEN_USER_CONTEXT, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, int64_t&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_COMMENT (location_type l) + { + return symbol_type (token::TOKEN_COMMENT, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const int64_t& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_COMMENT (const location_type& l) + { + return symbol_type (token::TOKEN_COMMENT, l); + } #endif # if 201103L <= YY_CPLUSPLUS - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, std::string&& v, location_type&& l) - : Base (t) - , value (std::move (v)) - , location (std::move (l)) - {} + inline + D2Parser::symbol_type + D2Parser::make_FORWARD_DDNS (location_type l) + { + return symbol_type (token::TOKEN_FORWARD_DDNS, std::move (l)); + } #else - template - D2Parser::basic_symbol::basic_symbol (typename Base::kind_type t, const std::string& v, const location_type& l) - : Base (t) - , value (v) - , location (l) - {} + inline + D2Parser::symbol_type + D2Parser::make_FORWARD_DDNS (const location_type& l) + { + return symbol_type (token::TOKEN_FORWARD_DDNS, l); + } #endif - - - template - D2Parser::basic_symbol::~basic_symbol () +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_REVERSE_DDNS (location_type l) { - clear (); + return symbol_type (token::TOKEN_REVERSE_DDNS, std::move (l)); } - - template - void - D2Parser::basic_symbol::clear () +#else + inline + D2Parser::symbol_type + D2Parser::make_REVERSE_DDNS (const location_type& l) { - // User destructor. - symbol_number_type yytype = this->type_get (); - basic_symbol& yysym = *this; - (void) yysym; - switch (yytype) - { - default: - break; - } - - // Type destructor. - switch (yytype) - { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value - value.template destroy< ElementPtr > (); - break; - - case 56: // "boolean" - value.template destroy< bool > (); - break; - - case 55: // "floating point" - value.template destroy< double > (); - break; - - case 54: // "integer" - value.template destroy< int64_t > (); - break; - - case 53: // "constant string" - value.template destroy< std::string > (); - break; - - default: - break; - } - - Base::clear (); + return symbol_type (token::TOKEN_REVERSE_DDNS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_DDNS_DOMAINS (location_type l) + { + return symbol_type (token::TOKEN_DDNS_DOMAINS, std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_DDNS_DOMAINS (const location_type& l) + { + return symbol_type (token::TOKEN_DDNS_DOMAINS, l); } - - template - bool - D2Parser::basic_symbol::empty () const +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_KEY_NAME (location_type l) { - return Base::type_get () == empty_symbol; + return symbol_type (token::TOKEN_KEY_NAME, std::move (l)); } - - template - void - D2Parser::basic_symbol::move (basic_symbol& s) +#else + inline + D2Parser::symbol_type + D2Parser::make_KEY_NAME (const location_type& l) { - super_type::move (s); - switch (this->type_get ()) - { - case 68: // value - case 72: // map_value - case 96: // ncr_protocol_value - value.move< ElementPtr > (YY_MOVE (s.value)); - break; - - case 56: // "boolean" - value.move< bool > (YY_MOVE (s.value)); - break; - - case 55: // "floating point" - value.move< double > (YY_MOVE (s.value)); - break; - - case 54: // "integer" - value.move< int64_t > (YY_MOVE (s.value)); - break; - - case 53: // "constant string" - value.move< std::string > (YY_MOVE (s.value)); - break; - - default: - break; - } - - location = YY_MOVE (s.location); + return symbol_type (token::TOKEN_KEY_NAME, l); } - - // by_type. +#endif +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::by_type::by_type () - : type (empty_symbol) - {} - + D2Parser::symbol_type + D2Parser::make_DNS_SERVERS (location_type l) + { + return symbol_type (token::TOKEN_DNS_SERVERS, std::move (l)); + } +#else inline - D2Parser::by_type::by_type (const by_type& other) - : type (other.type) - {} - + D2Parser::symbol_type + D2Parser::make_DNS_SERVERS (const location_type& l) + { + return symbol_type (token::TOKEN_DNS_SERVERS, l); + } +#endif +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::by_type::by_type (token_type t) - : type (yytranslate_ (t)) - {} - + D2Parser::symbol_type + D2Parser::make_HOSTNAME (location_type l) + { + return symbol_type (token::TOKEN_HOSTNAME, std::move (l)); + } +#else inline - void - D2Parser::by_type::clear () + D2Parser::symbol_type + D2Parser::make_HOSTNAME (const location_type& l) { - type = empty_symbol; + return symbol_type (token::TOKEN_HOSTNAME, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline - void - D2Parser::by_type::move (by_type& that) + D2Parser::symbol_type + D2Parser::make_TSIG_KEYS (location_type l) { - type = that.type; - that.clear (); + return symbol_type (token::TOKEN_TSIG_KEYS, std::move (l)); } - +#else inline - int - D2Parser::by_type::type_get () const + D2Parser::symbol_type + D2Parser::make_TSIG_KEYS (const location_type& l) { - return type; + return symbol_type (token::TOKEN_TSIG_KEYS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline - D2Parser::token_type - D2Parser::by_type::token () const + D2Parser::symbol_type + D2Parser::make_ALGORITHM (location_type l) { - // YYTOKNUM[NUM] -- (External) token number corresponding to the - // (internal) symbol number NUM (which must be that of a token). */ - static - const unsigned short - yytoken_number_[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311 - }; - return static_cast (yytoken_number_[type]); + return symbol_type (token::TOKEN_ALGORITHM, std::move (l)); } - - // Implementation of make_symbol for each symbol type. +#else inline D2Parser::symbol_type - D2Parser::make_END (YY_COPY (location_type) l) + D2Parser::make_ALGORITHM (const location_type& l) { - return symbol_type (token::TOKEN_END, YY_MOVE (l)); + return symbol_type (token::TOKEN_ALGORITHM, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_COMMA (YY_COPY (location_type) l) + D2Parser::make_DIGEST_BITS (location_type l) { - return symbol_type (token::TOKEN_COMMA, YY_MOVE (l)); + return symbol_type (token::TOKEN_DIGEST_BITS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_COLON (YY_COPY (location_type) l) + D2Parser::make_DIGEST_BITS (const location_type& l) { - return symbol_type (token::TOKEN_COLON, YY_MOVE (l)); + return symbol_type (token::TOKEN_DIGEST_BITS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_LSQUARE_BRACKET (YY_COPY (location_type) l) + D2Parser::make_SECRET (location_type l) { - return symbol_type (token::TOKEN_LSQUARE_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_SECRET, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_RSQUARE_BRACKET (YY_COPY (location_type) l) + D2Parser::make_SECRET (const location_type& l) { - return symbol_type (token::TOKEN_RSQUARE_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_SECRET, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_LCURLY_BRACKET (YY_COPY (location_type) l) + D2Parser::make_CONTROL_SOCKET (location_type l) { - return symbol_type (token::TOKEN_LCURLY_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_CONTROL_SOCKET, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_RCURLY_BRACKET (YY_COPY (location_type) l) + D2Parser::make_CONTROL_SOCKET (const location_type& l) { - return symbol_type (token::TOKEN_RCURLY_BRACKET, YY_MOVE (l)); + return symbol_type (token::TOKEN_CONTROL_SOCKET, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_NULL_TYPE (YY_COPY (location_type) l) + D2Parser::make_SOCKET_TYPE (location_type l) { - return symbol_type (token::TOKEN_NULL_TYPE, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_TYPE, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DHCP6 (YY_COPY (location_type) l) + D2Parser::make_SOCKET_TYPE (const location_type& l) { - return symbol_type (token::TOKEN_DHCP6, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_TYPE, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_DHCP4 (YY_COPY (location_type) l) + D2Parser::make_SOCKET_NAME (location_type l) { - return symbol_type (token::TOKEN_DHCP4, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_NAME, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_CONTROL_AGENT (YY_COPY (location_type) l) + D2Parser::make_SOCKET_NAME (const location_type& l) { - return symbol_type (token::TOKEN_CONTROL_AGENT, YY_MOVE (l)); + return symbol_type (token::TOKEN_SOCKET_NAME, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_DHCPDDNS (YY_COPY (location_type) l) + D2Parser::make_LOGGING (location_type l) { - return symbol_type (token::TOKEN_DHCPDDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGING, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_IP_ADDRESS (YY_COPY (location_type) l) + D2Parser::make_LOGGING (const location_type& l) { - return symbol_type (token::TOKEN_IP_ADDRESS, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGING, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_PORT (YY_COPY (location_type) l) + D2Parser::make_LOGGERS (location_type l) { - return symbol_type (token::TOKEN_PORT, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGERS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DNS_SERVER_TIMEOUT (YY_COPY (location_type) l) + D2Parser::make_LOGGERS (const location_type& l) { - return symbol_type (token::TOKEN_DNS_SERVER_TIMEOUT, YY_MOVE (l)); + return symbol_type (token::TOKEN_LOGGERS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_NCR_PROTOCOL (YY_COPY (location_type) l) + D2Parser::make_NAME (location_type l) { - return symbol_type (token::TOKEN_NCR_PROTOCOL, YY_MOVE (l)); + return symbol_type (token::TOKEN_NAME, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_UDP (YY_COPY (location_type) l) + D2Parser::make_NAME (const location_type& l) { - return symbol_type (token::TOKEN_UDP, YY_MOVE (l)); + return symbol_type (token::TOKEN_NAME, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_TCP (YY_COPY (location_type) l) + D2Parser::make_OUTPUT_OPTIONS (location_type l) { - return symbol_type (token::TOKEN_TCP, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_NCR_FORMAT (YY_COPY (location_type) l) + D2Parser::make_OUTPUT_OPTIONS (const location_type& l) { - return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT_OPTIONS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_JSON (YY_COPY (location_type) l) + D2Parser::make_OUTPUT (location_type l) { - return symbol_type (token::TOKEN_JSON, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_USER_CONTEXT (YY_COPY (location_type) l) + D2Parser::make_OUTPUT (const location_type& l) { - return symbol_type (token::TOKEN_USER_CONTEXT, YY_MOVE (l)); + return symbol_type (token::TOKEN_OUTPUT, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_COMMENT (YY_COPY (location_type) l) + D2Parser::make_DEBUGLEVEL (location_type l) { - return symbol_type (token::TOKEN_COMMENT, YY_MOVE (l)); + return symbol_type (token::TOKEN_DEBUGLEVEL, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_FORWARD_DDNS (YY_COPY (location_type) l) + D2Parser::make_DEBUGLEVEL (const location_type& l) { - return symbol_type (token::TOKEN_FORWARD_DDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_DEBUGLEVEL, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_REVERSE_DDNS (YY_COPY (location_type) l) + D2Parser::make_SEVERITY (location_type l) { - return symbol_type (token::TOKEN_REVERSE_DDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SEVERITY, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DDNS_DOMAINS (YY_COPY (location_type) l) + D2Parser::make_SEVERITY (const location_type& l) { - return symbol_type (token::TOKEN_DDNS_DOMAINS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SEVERITY, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_KEY_NAME (YY_COPY (location_type) l) + D2Parser::make_FLUSH (location_type l) { - return symbol_type (token::TOKEN_KEY_NAME, YY_MOVE (l)); + return symbol_type (token::TOKEN_FLUSH, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DNS_SERVERS (YY_COPY (location_type) l) + D2Parser::make_FLUSH (const location_type& l) { - return symbol_type (token::TOKEN_DNS_SERVERS, YY_MOVE (l)); + return symbol_type (token::TOKEN_FLUSH, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_HOSTNAME (YY_COPY (location_type) l) + D2Parser::make_MAXSIZE (location_type l) { - return symbol_type (token::TOKEN_HOSTNAME, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXSIZE, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_TSIG_KEYS (YY_COPY (location_type) l) + D2Parser::make_MAXSIZE (const location_type& l) { - return symbol_type (token::TOKEN_TSIG_KEYS, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXSIZE, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_ALGORITHM (YY_COPY (location_type) l) + D2Parser::make_MAXVER (location_type l) { - return symbol_type (token::TOKEN_ALGORITHM, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXVER, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_DIGEST_BITS (YY_COPY (location_type) l) + D2Parser::make_MAXVER (const location_type& l) { - return symbol_type (token::TOKEN_DIGEST_BITS, YY_MOVE (l)); + return symbol_type (token::TOKEN_MAXVER, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SECRET (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_JSON (location_type l) { - return symbol_type (token::TOKEN_SECRET, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_JSON, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_LOGGING (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_JSON (const location_type& l) { - return symbol_type (token::TOKEN_LOGGING, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_JSON, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_LOGGERS (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_DHCPDDNS (location_type l) { - return symbol_type (token::TOKEN_LOGGERS, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_NAME (YY_COPY (location_type) l) + D2Parser::make_TOPLEVEL_DHCPDDNS (const location_type& l) { - return symbol_type (token::TOKEN_NAME, YY_MOVE (l)); + return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_OUTPUT_OPTIONS (YY_COPY (location_type) l) + D2Parser::make_SUB_DHCPDDNS (location_type l) { - return symbol_type (token::TOKEN_OUTPUT_OPTIONS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DHCPDDNS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_OUTPUT (YY_COPY (location_type) l) + D2Parser::make_SUB_DHCPDDNS (const location_type& l) { - return symbol_type (token::TOKEN_OUTPUT, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DHCPDDNS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_DEBUGLEVEL (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEY (location_type l) { - return symbol_type (token::TOKEN_DEBUGLEVEL, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEY, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SEVERITY (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEY (const location_type& l) { - return symbol_type (token::TOKEN_SEVERITY, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEY, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_FLUSH (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEYS (location_type l) { - return symbol_type (token::TOKEN_FLUSH, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEYS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_MAXSIZE (YY_COPY (location_type) l) + D2Parser::make_SUB_TSIG_KEYS (const location_type& l) { - return symbol_type (token::TOKEN_MAXSIZE, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_TSIG_KEYS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_MAXVER (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAIN (location_type l) { - return symbol_type (token::TOKEN_MAXVER, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_TOPLEVEL_JSON (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAIN (const location_type& l) { - return symbol_type (token::TOKEN_TOPLEVEL_JSON, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_TOPLEVEL_DHCPDDNS (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAINS (location_type l) { - return symbol_type (token::TOKEN_TOPLEVEL_DHCPDDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_DHCPDDNS (YY_COPY (location_type) l) + D2Parser::make_SUB_DDNS_DOMAINS (const location_type& l) { - return symbol_type (token::TOKEN_SUB_DHCPDDNS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SUB_TSIG_KEY (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVER (location_type l) { - return symbol_type (token::TOKEN_SUB_TSIG_KEY, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVER, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_TSIG_KEYS (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVER (const location_type& l) { - return symbol_type (token::TOKEN_SUB_TSIG_KEYS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVER, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SUB_DDNS_DOMAIN (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVERS (location_type l) { - return symbol_type (token::TOKEN_SUB_DDNS_DOMAIN, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVERS, std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_DDNS_DOMAINS (YY_COPY (location_type) l) + D2Parser::make_SUB_DNS_SERVERS (const location_type& l) { - return symbol_type (token::TOKEN_SUB_DDNS_DOMAINS, YY_MOVE (l)); + return symbol_type (token::TOKEN_SUB_DNS_SERVERS, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_SUB_DNS_SERVER (YY_COPY (location_type) l) + D2Parser::make_STRING (std::string v, location_type l) { - return symbol_type (token::TOKEN_SUB_DNS_SERVER, YY_MOVE (l)); + return symbol_type (token::TOKEN_STRING, std::move (v), std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_SUB_DNS_SERVERS (YY_COPY (location_type) l) + D2Parser::make_STRING (const std::string& v, const location_type& l) { - return symbol_type (token::TOKEN_SUB_DNS_SERVERS, YY_MOVE (l)); + return symbol_type (token::TOKEN_STRING, v, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_STRING (YY_COPY (std::string) v, YY_COPY (location_type) l) + D2Parser::make_INTEGER (int64_t v, location_type l) { - return symbol_type (token::TOKEN_STRING, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_INTEGER, std::move (v), std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_INTEGER (YY_COPY (int64_t) v, YY_COPY (location_type) l) + D2Parser::make_INTEGER (const int64_t& v, const location_type& l) { - return symbol_type (token::TOKEN_INTEGER, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_INTEGER, v, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS inline D2Parser::symbol_type - D2Parser::make_FLOAT (YY_COPY (double) v, YY_COPY (location_type) l) + D2Parser::make_FLOAT (double v, location_type l) { - return symbol_type (token::TOKEN_FLOAT, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_FLOAT, std::move (v), std::move (l)); } - +#else inline D2Parser::symbol_type - D2Parser::make_BOOLEAN (YY_COPY (bool) v, YY_COPY (location_type) l) + D2Parser::make_FLOAT (const double& v, const location_type& l) { - return symbol_type (token::TOKEN_BOOLEAN, YY_MOVE (v), YY_MOVE (l)); + return symbol_type (token::TOKEN_FLOAT, v, l); } - +#endif +# if 201103L <= YY_CPLUSPLUS + inline + D2Parser::symbol_type + D2Parser::make_BOOLEAN (bool v, location_type l) + { + return symbol_type (token::TOKEN_BOOLEAN, std::move (v), std::move (l)); + } +#else + inline + D2Parser::symbol_type + D2Parser::make_BOOLEAN (const bool& v, const location_type& l) + { + return symbol_type (token::TOKEN_BOOLEAN, v, l); + } +#endif #line 14 "d2_parser.yy" // lalr1.cc:404 } } // isc::d2 -#line 1911 "d2_parser.h" // lalr1.cc:404 +#line 2758 "d2_parser.h" // lalr1.cc:404 diff --git a/src/bin/d2/location.hh b/src/bin/d2/location.hh index 0b7e416642..c0116b1c93 100644 --- a/src/bin/d2/location.hh +++ b/src/bin/d2/location.hh @@ -1,5 +1,5 @@ -// Generated 201811271344 -// A Bison parser, made by GNU Bison 3.2.1. +// Generated 201812272009 +// A Bison parser, made by GNU Bison 3.2.4. // Locations for Bison parsers in C++ diff --git a/src/bin/d2/position.hh b/src/bin/d2/position.hh index 5a854e9334..b9c0d0695a 100644 --- a/src/bin/d2/position.hh +++ b/src/bin/d2/position.hh @@ -1,5 +1,5 @@ -// Generated 201811271344 -// A Bison parser, made by GNU Bison 3.2.1. +// Generated 201812272009 +// A Bison parser, made by GNU Bison 3.2.4. // 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 4fcda222f5..c6b99890a5 100644 --- a/src/bin/d2/stack.hh +++ b/src/bin/d2/stack.hh @@ -1,5 +1,5 @@ -// Generated 201811271344 -// A Bison parser, made by GNU Bison 3.2.1. +// Generated 201812272009 +// A Bison parser, made by GNU Bison 3.2.4. // Starting with Bison 3.2, this file is useless: the structure it // used to define is now defined with the parser itself. -- 2.47.2