diff options
Diffstat (limited to 'src/bin/netconf/netconf_parser.cc')
| -rw-r--r-- | src/bin/netconf/netconf_parser.cc | 895 |
1 files changed, 467 insertions, 428 deletions
diff --git a/src/bin/netconf/netconf_parser.cc b/src/bin/netconf/netconf_parser.cc index a864e2406b..66c8b997a8 100644 --- a/src/bin/netconf/netconf_parser.cc +++ b/src/bin/netconf/netconf_parser.cc @@ -244,25 +244,25 @@ namespace isc { namespace netconf { { switch (that.type_get ()) { - case 54: // value - case 57: // map_value - case 113: // socket_type_value + case 57: // value + case 60: // map_value + case 119: // socket_type_value value.copy< ElementPtr > (that.value); break; - case 45: // "boolean" + case 48: // "boolean" value.copy< bool > (that.value); break; - case 44: // "floating point" + case 47: // "floating point" value.copy< double > (that.value); break; - case 43: // "integer" + case 46: // "integer" value.copy< int64_t > (that.value); break; - case 42: // "constant string" + case 45: // "constant string" value.copy< std::string > (that.value); break; @@ -277,25 +277,25 @@ namespace isc { namespace netconf { { switch (that.type_get ()) { - case 54: // value - case 57: // map_value - case 113: // socket_type_value + case 57: // value + case 60: // map_value + case 119: // socket_type_value value.move< ElementPtr > (that.value); break; - case 45: // "boolean" + case 48: // "boolean" value.move< bool > (that.value); break; - case 44: // "floating point" + case 47: // "floating point" value.move< double > (that.value); break; - case 43: // "integer" + case 46: // "integer" value.move< int64_t > (that.value); break; - case 42: // "constant string" + case 45: // "constant string" value.move< std::string > (that.value); break; @@ -313,25 +313,25 @@ namespace isc { namespace netconf { state = that.state; switch (that.type_get ()) { - case 54: // value - case 57: // map_value - case 113: // socket_type_value + case 57: // value + case 60: // map_value + case 119: // socket_type_value value.copy< ElementPtr > (that.value); break; - case 45: // "boolean" + case 48: // "boolean" value.copy< bool > (that.value); break; - case 44: // "floating point" + case 47: // "floating point" value.copy< double > (that.value); break; - case 43: // "integer" + case 46: // "integer" value.copy< int64_t > (that.value); break; - case 42: // "constant string" + case 45: // "constant string" value.copy< std::string > (that.value); break; @@ -370,51 +370,51 @@ namespace isc { namespace netconf { << yysym.location << ": "; switch (yytype) { - case 42: // "constant string" + case 45: // "constant string" -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< std::string > (); } #line 378 "netconf_parser.cc" // lalr1.cc:635 break; - case 43: // "integer" + case 46: // "integer" -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< int64_t > (); } #line 385 "netconf_parser.cc" // lalr1.cc:635 break; - case 44: // "floating point" + case 47: // "floating point" -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< double > (); } #line 392 "netconf_parser.cc" // lalr1.cc:635 break; - case 45: // "boolean" + case 48: // "boolean" -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< bool > (); } #line 399 "netconf_parser.cc" // lalr1.cc:635 break; - case 54: // value + case 57: // value -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 406 "netconf_parser.cc" // lalr1.cc:635 break; - case 57: // map_value + case 60: // map_value -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 413 "netconf_parser.cc" // lalr1.cc:635 break; - case 113: // socket_type_value + case 119: // socket_type_value -#line 103 "netconf_parser.yy" // lalr1.cc:635 +#line 107 "netconf_parser.yy" // lalr1.cc:635 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 420 "netconf_parser.cc" // lalr1.cc:635 break; @@ -613,25 +613,25 @@ namespace isc { namespace netconf { when using variants. */ switch (yyr1_[yyn]) { - case 54: // value - case 57: // map_value - case 113: // socket_type_value + case 57: // value + case 60: // map_value + case 119: // socket_type_value yylhs.value.build< ElementPtr > (); break; - case 45: // "boolean" + case 48: // "boolean" yylhs.value.build< bool > (); break; - case 44: // "floating point" + case 47: // "floating point" yylhs.value.build< double > (); break; - case 43: // "integer" + case 46: // "integer" yylhs.value.build< int64_t > (); break; - case 42: // "constant string" + case 45: // "constant string" yylhs.value.build< std::string > (); break; @@ -654,27 +654,27 @@ namespace isc { namespace netconf { switch (yyn) { case 2: -#line 114 "netconf_parser.yy" // lalr1.cc:856 +#line 118 "netconf_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.NO_KEYWORDS; } #line 660 "netconf_parser.cc" // lalr1.cc:856 break; case 4: -#line 115 "netconf_parser.yy" // lalr1.cc:856 +#line 119 "netconf_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.CONFIG; } #line 666 "netconf_parser.cc" // lalr1.cc:856 break; case 6: -#line 116 "netconf_parser.yy" // lalr1.cc:856 +#line 120 "netconf_parser.yy" // lalr1.cc:856 { ctx.ctx_ = ctx.NETCONF; } #line 672 "netconf_parser.cc" // lalr1.cc:856 break; case 8: -#line 124 "netconf_parser.yy" // lalr1.cc:856 +#line 128 "netconf_parser.yy" // lalr1.cc:856 { - // Parse the Control-netconf map + // Parse the Netconf map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } @@ -682,7 +682,7 @@ namespace isc { namespace netconf { break; case 9: -#line 128 "netconf_parser.yy" // lalr1.cc:856 +#line 132 "netconf_parser.yy" // lalr1.cc:856 { // parsing completed } @@ -690,7 +690,7 @@ namespace isc { namespace netconf { break; case 10: -#line 135 "netconf_parser.yy" // lalr1.cc:856 +#line 139 "netconf_parser.yy" // lalr1.cc:856 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -699,49 +699,49 @@ namespace isc { namespace netconf { break; case 11: -#line 141 "netconf_parser.yy" // lalr1.cc:856 +#line 145 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 705 "netconf_parser.cc" // lalr1.cc:856 break; case 12: -#line 142 "netconf_parser.yy" // lalr1.cc:856 +#line 146 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 711 "netconf_parser.cc" // lalr1.cc:856 break; case 13: -#line 143 "netconf_parser.yy" // lalr1.cc:856 +#line 147 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 717 "netconf_parser.cc" // lalr1.cc:856 break; case 14: -#line 144 "netconf_parser.yy" // lalr1.cc:856 +#line 148 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 723 "netconf_parser.cc" // lalr1.cc:856 break; case 15: -#line 145 "netconf_parser.yy" // lalr1.cc:856 +#line 149 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 729 "netconf_parser.cc" // lalr1.cc:856 break; case 16: -#line 146 "netconf_parser.yy" // lalr1.cc:856 +#line 150 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 735 "netconf_parser.cc" // lalr1.cc:856 break; case 17: -#line 147 "netconf_parser.yy" // lalr1.cc:856 +#line 151 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 741 "netconf_parser.cc" // lalr1.cc:856 break; case 18: -#line 151 "netconf_parser.yy" // lalr1.cc:856 +#line 155 "netconf_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map @@ -752,7 +752,7 @@ namespace isc { namespace netconf { break; case 19: -#line 156 "netconf_parser.yy" // lalr1.cc:856 +#line 160 "netconf_parser.yy" // lalr1.cc:856 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -762,13 +762,13 @@ namespace isc { namespace netconf { break; case 20: -#line 162 "netconf_parser.yy" // lalr1.cc:856 +#line 166 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 768 "netconf_parser.cc" // lalr1.cc:856 break; case 23: -#line 176 "netconf_parser.yy" // lalr1.cc:856 +#line 180 "netconf_parser.yy" // lalr1.cc:856 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -777,7 +777,7 @@ namespace isc { namespace netconf { break; case 24: -#line 180 "netconf_parser.yy" // lalr1.cc:856 +#line 184 "netconf_parser.yy" // lalr1.cc:856 { // map consisting of a shorter map followed by // comma and string:value @@ -787,7 +787,7 @@ namespace isc { namespace netconf { break; case 25: -#line 187 "netconf_parser.yy" // lalr1.cc:856 +#line 191 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -796,14 +796,14 @@ namespace isc { namespace netconf { break; case 26: -#line 190 "netconf_parser.yy" // lalr1.cc:856 +#line 194 "netconf_parser.yy" // lalr1.cc:856 { } #line 803 "netconf_parser.cc" // lalr1.cc:856 break; case 29: -#line 197 "netconf_parser.yy" // lalr1.cc:856 +#line 201 "netconf_parser.yy" // lalr1.cc:856 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -812,7 +812,7 @@ namespace isc { namespace netconf { break; case 30: -#line 201 "netconf_parser.yy" // lalr1.cc:856 +#line 205 "netconf_parser.yy" // lalr1.cc:856 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -821,7 +821,7 @@ namespace isc { namespace netconf { break; case 31: -#line 214 "netconf_parser.yy" // lalr1.cc:856 +#line 218 "netconf_parser.yy" // lalr1.cc:856 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -832,7 +832,7 @@ namespace isc { namespace netconf { break; case 32: -#line 222 "netconf_parser.yy" // lalr1.cc:856 +#line 226 "netconf_parser.yy" // lalr1.cc:856 { // This code is executed when we're about to start parsing // the content of the map @@ -843,7 +843,7 @@ namespace isc { namespace netconf { break; case 33: -#line 227 "netconf_parser.yy" // lalr1.cc:856 +#line 231 "netconf_parser.yy" // lalr1.cc:856 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -853,7 +853,7 @@ namespace isc { namespace netconf { break; case 38: -#line 244 "netconf_parser.yy" // lalr1.cc:856 +#line 248 "netconf_parser.yy" // lalr1.cc:856 { // Let's create a MapElement that will represent it, add it to the @@ -869,9 +869,9 @@ namespace isc { namespace netconf { break; case 39: -#line 254 "netconf_parser.yy" // lalr1.cc:856 +#line 258 "netconf_parser.yy" // lalr1.cc:856 { - // Ok, we're done with parsing control-netconf. Let's take the map + // Ok, we're done with parsing Netconf. Let's take the map // off the stack. ctx.stack_.pop_back(); ctx.leave(); @@ -879,16 +879,43 @@ namespace isc { namespace netconf { #line 880 "netconf_parser.cc" // lalr1.cc:856 break; - case 49: -#line 278 "netconf_parser.yy" // lalr1.cc:856 + case 52: +#line 285 "netconf_parser.yy" // lalr1.cc:856 + { + ElementPtr flag(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("boot-update", flag); +} +#line 889 "netconf_parser.cc" // lalr1.cc:856 + break; + + case 53: +#line 290 "netconf_parser.yy" // lalr1.cc:856 + { + ElementPtr flag(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("subscribe-changes", flag); +} +#line 898 "netconf_parser.cc" // lalr1.cc:856 + break; + + case 54: +#line 295 "netconf_parser.yy" // lalr1.cc:856 + { + ElementPtr flag(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("validate-changes", flag); +} +#line 907 "netconf_parser.cc" // lalr1.cc:856 + break; + + case 55: +#line 300 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 888 "netconf_parser.cc" // lalr1.cc:856 +#line 915 "netconf_parser.cc" // lalr1.cc:856 break; - case 50: -#line 280 "netconf_parser.yy" // lalr1.cc:856 + case 56: +#line 302 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); @@ -911,19 +938,19 @@ namespace isc { namespace netconf { parent->set("user-context", user_context); ctx.leave(); } -#line 915 "netconf_parser.cc" // lalr1.cc:856 +#line 942 "netconf_parser.cc" // lalr1.cc:856 break; - case 51: -#line 303 "netconf_parser.yy" // lalr1.cc:856 + case 57: +#line 325 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 923 "netconf_parser.cc" // lalr1.cc:856 +#line 950 "netconf_parser.cc" // lalr1.cc:856 break; - case 52: -#line 305 "netconf_parser.yy" // lalr1.cc:856 + case 58: +#line 327 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -948,479 +975,479 @@ namespace isc { namespace netconf { parent->set("user-context", user_context); ctx.leave(); } -#line 952 "netconf_parser.cc" // lalr1.cc:856 +#line 979 "netconf_parser.cc" // lalr1.cc:856 break; - case 53: -#line 331 "netconf_parser.yy" // lalr1.cc:856 + case 59: +#line 353 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 963 "netconf_parser.cc" // lalr1.cc:856 +#line 990 "netconf_parser.cc" // lalr1.cc:856 break; - case 54: -#line 336 "netconf_parser.yy" // lalr1.cc:856 + case 60: +#line 358 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 972 "netconf_parser.cc" // lalr1.cc:856 +#line 999 "netconf_parser.cc" // lalr1.cc:856 break; - case 59: -#line 349 "netconf_parser.yy" // lalr1.cc:856 + case 65: +#line 371 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 982 "netconf_parser.cc" // lalr1.cc:856 +#line 1009 "netconf_parser.cc" // lalr1.cc:856 break; - case 60: -#line 353 "netconf_parser.yy" // lalr1.cc:856 + case 66: +#line 375 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 990 "netconf_parser.cc" // lalr1.cc:856 +#line 1017 "netconf_parser.cc" // lalr1.cc:856 break; - case 66: -#line 366 "netconf_parser.yy" // lalr1.cc:856 + case 72: +#line 388 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 998 "netconf_parser.cc" // lalr1.cc:856 +#line 1025 "netconf_parser.cc" // lalr1.cc:856 break; - case 67: -#line 368 "netconf_parser.yy" // lalr1.cc:856 + case 73: +#line 390 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1008 "netconf_parser.cc" // lalr1.cc:856 +#line 1035 "netconf_parser.cc" // lalr1.cc:856 break; - case 68: -#line 374 "netconf_parser.yy" // lalr1.cc:856 + case 74: +#line 396 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1016 "netconf_parser.cc" // lalr1.cc:856 +#line 1043 "netconf_parser.cc" // lalr1.cc:856 break; - case 69: -#line 376 "netconf_parser.yy" // lalr1.cc:856 + case 75: +#line 398 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1025 "netconf_parser.cc" // lalr1.cc:856 +#line 1052 "netconf_parser.cc" // lalr1.cc:856 break; - case 70: -#line 384 "netconf_parser.yy" // lalr1.cc:856 + case 76: +#line 406 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[2].location))); ctx.stack_.back()->set("managed-servers", m); ctx.stack_.push_back(m); ctx.enter(ctx.MANAGED_SERVERS); } -#line 1036 "netconf_parser.cc" // lalr1.cc:856 +#line 1063 "netconf_parser.cc" // lalr1.cc:856 break; - case 71: -#line 389 "netconf_parser.yy" // lalr1.cc:856 + case 77: +#line 411 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1045 "netconf_parser.cc" // lalr1.cc:856 +#line 1072 "netconf_parser.cc" // lalr1.cc:856 break; - case 81: -#line 413 "netconf_parser.yy" // lalr1.cc:856 + case 87: +#line 435 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1056 "netconf_parser.cc" // lalr1.cc:856 +#line 1083 "netconf_parser.cc" // lalr1.cc:856 break; - case 82: -#line 418 "netconf_parser.yy" // lalr1.cc:856 + case 88: +#line 440 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1065 "netconf_parser.cc" // lalr1.cc:856 +#line 1092 "netconf_parser.cc" // lalr1.cc:856 break; - case 83: -#line 424 "netconf_parser.yy" // lalr1.cc:856 + case 89: +#line 446 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp6", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1076 "netconf_parser.cc" // lalr1.cc:856 +#line 1103 "netconf_parser.cc" // lalr1.cc:856 break; - case 84: -#line 429 "netconf_parser.yy" // lalr1.cc:856 + case 90: +#line 451 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1085 "netconf_parser.cc" // lalr1.cc:856 +#line 1112 "netconf_parser.cc" // lalr1.cc:856 break; - case 85: -#line 435 "netconf_parser.yy" // lalr1.cc:856 + case 91: +#line 457 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("d2", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1096 "netconf_parser.cc" // lalr1.cc:856 +#line 1123 "netconf_parser.cc" // lalr1.cc:856 break; - case 86: -#line 440 "netconf_parser.yy" // lalr1.cc:856 + case 92: +#line 462 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1105 "netconf_parser.cc" // lalr1.cc:856 +#line 1132 "netconf_parser.cc" // lalr1.cc:856 break; - case 87: -#line 446 "netconf_parser.yy" // lalr1.cc:856 + case 93: +#line 468 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ca", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER); } -#line 1116 "netconf_parser.cc" // lalr1.cc:856 +#line 1143 "netconf_parser.cc" // lalr1.cc:856 break; - case 88: -#line 451 "netconf_parser.yy" // lalr1.cc:856 + case 94: +#line 473 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1125 "netconf_parser.cc" // lalr1.cc:856 +#line 1152 "netconf_parser.cc" // lalr1.cc:856 break; - case 96: -#line 470 "netconf_parser.yy" // lalr1.cc:856 + case 105: +#line 495 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1133 "netconf_parser.cc" // lalr1.cc:856 +#line 1160 "netconf_parser.cc" // lalr1.cc:856 break; - case 97: -#line 472 "netconf_parser.yy" // lalr1.cc:856 + case 106: +#line 497 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr model(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("model", model); ctx.leave(); } -#line 1143 "netconf_parser.cc" // lalr1.cc:856 +#line 1170 "netconf_parser.cc" // lalr1.cc:856 break; - case 98: -#line 479 "netconf_parser.yy" // lalr1.cc:856 + case 107: +#line 504 "netconf_parser.yy" // lalr1.cc:856 { 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 1154 "netconf_parser.cc" // lalr1.cc:856 +#line 1181 "netconf_parser.cc" // lalr1.cc:856 break; - case 99: -#line 484 "netconf_parser.yy" // lalr1.cc:856 + case 108: +#line 509 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1163 "netconf_parser.cc" // lalr1.cc:856 +#line 1190 "netconf_parser.cc" // lalr1.cc:856 break; - case 108: -#line 502 "netconf_parser.yy" // lalr1.cc:856 + case 117: +#line 527 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.SOCKET_TYPE); } -#line 1171 "netconf_parser.cc" // lalr1.cc:856 +#line 1198 "netconf_parser.cc" // lalr1.cc:856 break; - case 109: -#line 504 "netconf_parser.yy" // lalr1.cc:856 + case 118: +#line 529 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.back()->set("socket-type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1180 "netconf_parser.cc" // lalr1.cc:856 +#line 1207 "netconf_parser.cc" // lalr1.cc:856 break; - case 110: -#line 510 "netconf_parser.yy" // lalr1.cc:856 + case 119: +#line 535 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 1186 "netconf_parser.cc" // lalr1.cc:856 +#line 1213 "netconf_parser.cc" // lalr1.cc:856 break; - case 111: -#line 511 "netconf_parser.yy" // lalr1.cc:856 + case 120: +#line 536 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 1192 "netconf_parser.cc" // lalr1.cc:856 +#line 1219 "netconf_parser.cc" // lalr1.cc:856 break; - case 112: -#line 512 "netconf_parser.yy" // lalr1.cc:856 + case 121: +#line 537 "netconf_parser.yy" // lalr1.cc:856 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("stdout", ctx.loc2pos(yystack_[0].location))); } -#line 1198 "netconf_parser.cc" // lalr1.cc:856 +#line 1225 "netconf_parser.cc" // lalr1.cc:856 break; - case 113: -#line 515 "netconf_parser.yy" // lalr1.cc:856 + case 122: +#line 540 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1206 "netconf_parser.cc" // lalr1.cc:856 +#line 1233 "netconf_parser.cc" // lalr1.cc:856 break; - case 114: -#line 517 "netconf_parser.yy" // lalr1.cc:856 + case 123: +#line 542 "netconf_parser.yy" // lalr1.cc:856 { 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 1216 "netconf_parser.cc" // lalr1.cc:856 +#line 1243 "netconf_parser.cc" // lalr1.cc:856 break; - case 115: -#line 524 "netconf_parser.yy" // lalr1.cc:856 + case 124: +#line 549 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1224 "netconf_parser.cc" // lalr1.cc:856 +#line 1251 "netconf_parser.cc" // lalr1.cc:856 break; - case 116: -#line 526 "netconf_parser.yy" // lalr1.cc:856 + case 125: +#line 551 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr url(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-url", url); ctx.leave(); } -#line 1234 "netconf_parser.cc" // lalr1.cc:856 +#line 1261 "netconf_parser.cc" // lalr1.cc:856 break; - case 117: -#line 539 "netconf_parser.yy" // lalr1.cc:856 + case 126: +#line 564 "netconf_parser.yy" // lalr1.cc:856 { 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 1245 "netconf_parser.cc" // lalr1.cc:856 +#line 1272 "netconf_parser.cc" // lalr1.cc:856 break; - case 118: -#line 544 "netconf_parser.yy" // lalr1.cc:856 + case 127: +#line 569 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1254 "netconf_parser.cc" // lalr1.cc:856 +#line 1281 "netconf_parser.cc" // lalr1.cc:856 break; - case 122: -#line 561 "netconf_parser.yy" // lalr1.cc:856 + case 131: +#line 586 "netconf_parser.yy" // lalr1.cc:856 { 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 1265 "netconf_parser.cc" // lalr1.cc:856 +#line 1292 "netconf_parser.cc" // lalr1.cc:856 break; - case 123: -#line 566 "netconf_parser.yy" // lalr1.cc:856 + case 132: +#line 591 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1274 "netconf_parser.cc" // lalr1.cc:856 +#line 1301 "netconf_parser.cc" // lalr1.cc:856 break; - case 126: -#line 578 "netconf_parser.yy" // lalr1.cc:856 + case 135: +#line 603 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 1284 "netconf_parser.cc" // lalr1.cc:856 +#line 1311 "netconf_parser.cc" // lalr1.cc:856 break; - case 127: -#line 582 "netconf_parser.yy" // lalr1.cc:856 + case 136: +#line 607 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 1292 "netconf_parser.cc" // lalr1.cc:856 +#line 1319 "netconf_parser.cc" // lalr1.cc:856 break; - case 137: -#line 599 "netconf_parser.yy" // lalr1.cc:856 + case 146: +#line 624 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1300 "netconf_parser.cc" // lalr1.cc:856 +#line 1327 "netconf_parser.cc" // lalr1.cc:856 break; - case 138: -#line 601 "netconf_parser.yy" // lalr1.cc:856 + case 147: +#line 626 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1310 "netconf_parser.cc" // lalr1.cc:856 +#line 1337 "netconf_parser.cc" // lalr1.cc:856 break; - case 139: -#line 607 "netconf_parser.yy" // lalr1.cc:856 + case 148: +#line 632 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 1319 "netconf_parser.cc" // lalr1.cc:856 +#line 1346 "netconf_parser.cc" // lalr1.cc:856 break; - case 140: -#line 612 "netconf_parser.yy" // lalr1.cc:856 + case 149: +#line 637 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1327 "netconf_parser.cc" // lalr1.cc:856 +#line 1354 "netconf_parser.cc" // lalr1.cc:856 break; - case 141: -#line 614 "netconf_parser.yy" // lalr1.cc:856 + case 150: +#line 639 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 1337 "netconf_parser.cc" // lalr1.cc:856 +#line 1364 "netconf_parser.cc" // lalr1.cc:856 break; - case 142: -#line 620 "netconf_parser.yy" // lalr1.cc:856 + case 151: +#line 645 "netconf_parser.yy" // lalr1.cc:856 { 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 1348 "netconf_parser.cc" // lalr1.cc:856 +#line 1375 "netconf_parser.cc" // lalr1.cc:856 break; - case 143: -#line 625 "netconf_parser.yy" // lalr1.cc:856 + case 152: +#line 650 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1357 "netconf_parser.cc" // lalr1.cc:856 +#line 1384 "netconf_parser.cc" // lalr1.cc:856 break; - case 146: -#line 634 "netconf_parser.yy" // lalr1.cc:856 + case 155: +#line 659 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1367 "netconf_parser.cc" // lalr1.cc:856 +#line 1394 "netconf_parser.cc" // lalr1.cc:856 break; - case 147: -#line 638 "netconf_parser.yy" // lalr1.cc:856 + case 156: +#line 663 "netconf_parser.yy" // lalr1.cc:856 { ctx.stack_.pop_back(); } -#line 1375 "netconf_parser.cc" // lalr1.cc:856 +#line 1402 "netconf_parser.cc" // lalr1.cc:856 break; - case 154: -#line 652 "netconf_parser.yy" // lalr1.cc:856 + case 163: +#line 677 "netconf_parser.yy" // lalr1.cc:856 { ctx.enter(ctx.NO_KEYWORDS); } -#line 1383 "netconf_parser.cc" // lalr1.cc:856 +#line 1410 "netconf_parser.cc" // lalr1.cc:856 break; - case 155: -#line 654 "netconf_parser.yy" // lalr1.cc:856 + case 164: +#line 679 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 1393 "netconf_parser.cc" // lalr1.cc:856 +#line 1420 "netconf_parser.cc" // lalr1.cc:856 break; - case 156: -#line 660 "netconf_parser.yy" // lalr1.cc:856 + case 165: +#line 685 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 1402 "netconf_parser.cc" // lalr1.cc:856 +#line 1429 "netconf_parser.cc" // lalr1.cc:856 break; - case 157: -#line 665 "netconf_parser.yy" // lalr1.cc:856 + case 166: +#line 690 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 1411 "netconf_parser.cc" // lalr1.cc:856 +#line 1438 "netconf_parser.cc" // lalr1.cc:856 break; - case 158: -#line 670 "netconf_parser.yy" // lalr1.cc:856 + case 167: +#line 695 "netconf_parser.yy" // lalr1.cc:856 { ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 1420 "netconf_parser.cc" // lalr1.cc:856 +#line 1447 "netconf_parser.cc" // lalr1.cc:856 break; -#line 1424 "netconf_parser.cc" // lalr1.cc:856 +#line 1451 "netconf_parser.cc" // lalr1.cc:856 default: break; } @@ -1674,40 +1701,41 @@ namespace isc { namespace netconf { } - const signed char NetconfParser::yypact_ninf_ = -73; + const signed char NetconfParser::yypact_ninf_ = -64; const signed char NetconfParser::yytable_ninf_ = -1; const short int NetconfParser::yypact_[] = { - 55, -73, -73, -73, 17, 2, 3, 31, -73, -73, - -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, - -73, -73, -73, -73, 2, 6, 10, 11, -73, 46, - 68, 86, 95, 88, -73, -73, 0, -73, -73, -73, - -73, -73, 100, -73, 101, -73, 98, 104, -73, -73, - -73, -73, -73, -73, 2, 2, -73, 66, 105, 106, - 10, -73, 107, 108, 109, 110, -73, -73, 11, -73, - -73, 111, 112, 113, -73, 114, 75, -73, 117, -73, - 2, 11, 93, -73, -73, -73, -2, 118, -73, 116, - -73, 13, -73, -73, -73, -73, -73, -73, -73, 119, - 115, -73, -73, -73, -73, -73, -73, 120, 125, -73, - -73, 126, 93, -73, 127, 128, 129, 130, -73, -2, - 34, -73, 118, 124, -73, 134, 135, 137, 138, -73, - -73, -73, -73, 61, -73, -73, -73, -73, 139, 39, - 39, 39, 39, 131, 132, 57, -73, -73, 27, -73, - -73, -73, -73, -73, -73, 62, -73, -73, -73, 69, - 70, 71, 121, 2, -73, -6, 139, -73, 133, 143, - 39, -73, -73, -73, -73, -73, -73, -73, -73, 144, - -73, -73, -73, -73, 72, -73, -73, -73, -73, -73, - -73, 122, 142, -73, 146, 147, 123, 148, -6, -73, - -73, 7, 136, 149, -73, 140, -73, -73, -73, -73, - -73, -73, -73, 79, -73, -73, -73, -73, -73, 150, - -73, 151, 152, 154, 7, -73, -73, 83, -73, 76, - 141, 145, -73, 30, 150, -73, -73, -73, -73, -73, - -73, -73, -73, 155, 156, 157, 80, -73, -73, -73, - -73, -73, -73, 158, 159, 153, 160, 30, -73, 163, - -73, -73, -73, -73, -73 + 64, -64, -64, -64, 13, 9, 18, 29, -64, -64, + -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, + -64, -64, -64, -64, 9, -22, 10, 15, -64, 1, + 70, 79, 74, 106, -64, -64, 7, -64, -64, -64, + -64, -64, 113, 116, 117, 118, -64, 119, -64, 120, + 121, -64, -64, -64, -64, -64, -64, -64, -64, -64, + 9, 9, -64, 80, 122, 123, 10, -64, 125, 126, + 83, 84, 85, 127, 131, -64, -64, 15, -64, -64, + 132, 130, 133, -64, 134, 97, -64, -64, -64, -64, + 138, -64, 9, 15, 105, -64, -64, -64, 44, 137, + -64, 139, -64, 16, -64, -64, -64, -64, -64, -64, + -64, 140, 136, -64, -64, -64, -64, -64, -64, 143, + 142, -64, -64, 146, 105, -64, 147, 148, 152, 153, + -64, 44, 2, -64, 137, 141, -64, 154, 155, 156, + 157, -64, -64, -64, -64, 40, -64, -64, -64, -64, + 158, 65, 65, 65, 65, 162, 163, 88, -64, -64, + 43, -64, -64, -64, -64, -64, -64, -64, -64, -64, + 62, -64, -64, -64, 82, 91, 92, 114, 9, -64, + 0, 158, -64, 164, 165, 65, -64, -64, -64, -64, + -64, -64, -64, -64, 166, -64, -64, -64, -64, 93, + -64, -64, -64, -64, -64, -64, 115, 167, -64, 168, + 169, 129, 172, 0, -64, -64, -6, 135, 173, -64, + 149, -64, -64, -64, -64, -64, -64, -64, 94, -64, + -64, -64, -64, -64, 170, -64, 175, 177, 178, -6, + -64, -64, 78, -64, 87, 150, 151, -64, 52, 170, + -64, -64, -64, -64, -64, -64, -64, -64, 179, 180, + 181, 95, -64, -64, -64, -64, -64, -64, 188, 145, + 159, 160, 52, -64, 171, -64, -64, -64, -64, -64 }; const unsigned char @@ -1716,169 +1744,176 @@ namespace isc { namespace netconf { 0, 2, 4, 6, 0, 0, 0, 0, 1, 25, 18, 15, 14, 11, 12, 13, 3, 10, 16, 17, 32, 5, 8, 7, 27, 21, 0, 40, 29, 0, - 28, 0, 0, 22, 38, 117, 0, 34, 36, 37, - 49, 51, 0, 53, 0, 48, 0, 41, 42, 46, - 47, 45, 44, 26, 0, 0, 19, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 31, 9, 0, 30, - 23, 0, 0, 0, 35, 0, 0, 70, 0, 43, - 0, 40, 0, 20, 50, 52, 72, 55, 24, 0, - 122, 0, 119, 121, 81, 83, 85, 87, 80, 0, - 73, 74, 76, 77, 78, 79, 59, 0, 56, 57, - 39, 0, 0, 118, 0, 0, 0, 0, 71, 0, - 0, 54, 0, 0, 120, 0, 0, 0, 0, 75, - 66, 68, 63, 0, 61, 64, 65, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 60, 126, 0, 124, - 96, 98, 95, 93, 94, 0, 89, 91, 92, 0, - 0, 0, 0, 0, 62, 0, 0, 123, 0, 0, - 0, 82, 84, 86, 88, 67, 69, 137, 142, 0, - 140, 136, 134, 135, 0, 128, 130, 132, 133, 131, - 125, 0, 0, 90, 0, 0, 0, 0, 0, 127, - 97, 0, 0, 0, 139, 0, 129, 108, 113, 115, - 107, 105, 106, 0, 100, 102, 103, 104, 138, 0, - 141, 0, 0, 0, 0, 99, 146, 0, 144, 0, - 0, 0, 101, 0, 0, 143, 110, 111, 112, 109, - 114, 116, 154, 0, 0, 0, 0, 148, 150, 151, - 152, 153, 145, 0, 0, 0, 0, 0, 147, 0, - 156, 157, 158, 149, 155 + 28, 0, 0, 22, 38, 126, 0, 34, 36, 37, + 55, 57, 0, 0, 0, 0, 59, 0, 51, 0, + 41, 42, 44, 45, 46, 49, 50, 48, 47, 26, + 0, 0, 19, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 31, 9, 0, 30, 23, + 0, 0, 0, 35, 0, 0, 52, 53, 54, 76, + 0, 43, 0, 40, 0, 20, 56, 58, 78, 61, + 24, 0, 131, 0, 128, 130, 87, 89, 91, 93, + 86, 0, 79, 80, 82, 83, 84, 85, 65, 0, + 62, 63, 39, 0, 0, 127, 0, 0, 0, 0, + 77, 0, 0, 60, 0, 0, 129, 0, 0, 0, + 0, 81, 72, 74, 69, 0, 67, 70, 71, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 66, 135, + 0, 133, 105, 107, 104, 98, 99, 100, 102, 103, + 0, 95, 97, 101, 0, 0, 0, 0, 0, 68, + 0, 0, 132, 0, 0, 0, 88, 90, 92, 94, + 73, 75, 146, 151, 0, 149, 145, 143, 144, 0, + 137, 139, 141, 142, 140, 134, 0, 0, 96, 0, + 0, 0, 0, 0, 136, 106, 0, 0, 0, 148, + 0, 138, 117, 122, 124, 116, 114, 115, 0, 109, + 111, 112, 113, 147, 0, 150, 0, 0, 0, 0, + 108, 155, 0, 153, 0, 0, 0, 110, 0, 0, + 152, 119, 120, 121, 118, 123, 125, 163, 0, 0, + 0, 0, 157, 159, 160, 161, 162, 154, 0, 0, + 0, 0, 0, 156, 0, 165, 166, 167, 158, 164 }; const short int NetconfParser::yypgoto_[] = { - -73, -73, -73, -73, -73, -73, -73, -73, -20, 38, - -73, -73, -73, -73, -73, -73, -73, -73, -27, -73, - -73, -73, 161, -73, -73, 84, -73, 85, -26, -73, - -25, -73, -73, -73, -73, -73, 45, -73, -73, 23, - -73, -73, -73, -73, -73, -73, -73, -73, 50, -73, - -73, -73, -73, -73, -73, -73, -73, -40, 9, -73, - -73, -73, -73, -73, -54, -73, -73, -73, -73, -73, - -73, -73, -73, -73, -73, 65, -73, -73, -73, 14, - -73, -73, -17, -73, -73, -73, -73, -73, -73, -73, - -73, -50, -73, -73, -72, -73, -73, -73, -73, -73 + -64, -64, -64, -64, -64, -64, -64, -64, -20, 124, + -64, -64, -64, -64, -64, -64, -64, -64, -27, -64, + -64, -64, 144, -64, -64, 104, -64, 161, -24, -19, + -18, -26, -64, -25, -64, -64, -64, -64, -64, 37, + -64, -64, 41, -64, -64, -64, -64, -64, -64, -64, + -64, 68, -64, -64, -64, -64, -64, -64, -64, -64, + -38, 17, -64, -64, -64, -64, -64, -39, -64, -64, + -64, -64, -64, -64, -64, -64, -64, -64, 77, -64, + -64, -64, 22, -64, -64, -9, -64, -64, -64, -64, + -64, -64, -64, -64, -42, -64, -64, -63, -64, -64, + -64, -64, -64 }; const short int NetconfParser::yydefgoto_[] = { -1, 4, 5, 6, 7, 23, 27, 16, 17, 18, - 25, 84, 32, 33, 19, 24, 29, 30, 152, 21, - 26, 36, 37, 38, 58, 46, 47, 48, 153, 62, - 154, 63, 51, 65, 107, 108, 109, 120, 133, 134, - 135, 143, 136, 144, 52, 86, 99, 100, 101, 102, - 114, 103, 115, 104, 116, 105, 117, 155, 156, 157, - 168, 158, 169, 213, 214, 215, 221, 239, 216, 222, - 217, 223, 39, 59, 91, 92, 93, 111, 148, 149, - 165, 184, 185, 186, 194, 187, 188, 197, 189, 195, - 227, 228, 233, 246, 247, 248, 253, 249, 250, 251 + 25, 96, 32, 33, 19, 24, 29, 30, 164, 21, + 26, 36, 37, 38, 64, 49, 50, 51, 165, 166, + 167, 168, 68, 169, 69, 57, 74, 119, 120, 121, + 132, 145, 146, 147, 155, 148, 156, 58, 98, 111, + 112, 113, 114, 126, 115, 127, 116, 128, 117, 129, + 170, 171, 172, 183, 173, 184, 228, 229, 230, 236, + 254, 231, 237, 232, 238, 39, 65, 103, 104, 105, + 123, 160, 161, 180, 199, 200, 201, 209, 202, 203, + 212, 204, 210, 242, 243, 248, 261, 262, 263, 268, + 264, 265, 266 }; const unsigned short int NetconfParser::yytable_[] = { - 45, 49, 50, 60, 28, 40, 41, 9, 61, 10, - 20, 11, 94, 95, 96, 97, 112, 8, 40, 41, - 34, 113, 40, 41, 42, 177, 178, 207, 179, 180, - 166, 208, 209, 167, 69, 70, 44, 43, 22, 35, - 44, 45, 49, 50, 12, 13, 14, 15, 31, 44, - 40, 41, 53, 44, 45, 49, 50, 150, 151, 98, - 88, 130, 131, 242, 145, 170, 243, 244, 245, 146, - 171, 54, 170, 170, 170, 198, 44, 172, 173, 174, - 199, 44, 224, 257, 130, 131, 234, 225, 258, 235, - 55, 57, 98, 132, 1, 2, 3, 236, 237, 238, - 159, 160, 161, 56, 64, 66, 67, 68, 71, 72, - 73, 75, 76, 83, 78, 80, 77, 85, 119, 81, - 82, 10, 87, 90, 110, 106, 121, 118, 122, 138, - 123, 125, 126, 127, 128, 162, 163, 191, 181, 182, - 183, 139, 140, 176, 141, 142, 147, 192, 196, 201, - 202, 203, 205, 79, 219, 229, 230, 226, 231, 254, - 255, 256, 259, 175, 200, 89, 204, 137, 164, 129, - 232, 181, 182, 183, 210, 211, 212, 124, 218, 193, - 190, 206, 220, 240, 252, 263, 0, 241, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 210, 211, 212, - 0, 0, 0, 262, 260, 264, 0, 0, 0, 0, + 48, 55, 56, 52, 28, 40, 41, 59, 53, 54, + 66, 40, 41, 8, 9, 67, 10, 222, 11, 124, + 34, 223, 224, 31, 125, 20, 40, 41, 42, 43, + 44, 45, 142, 143, 192, 193, 22, 194, 195, 47, + 78, 79, 35, 157, 46, 47, 181, 47, 158, 182, + 48, 55, 56, 52, 12, 13, 14, 15, 53, 54, + 47, 106, 107, 108, 109, 185, 48, 55, 56, 52, + 186, 110, 100, 60, 53, 54, 40, 41, 42, 43, + 44, 249, 62, 61, 250, 185, 162, 163, 257, 47, + 187, 258, 259, 260, 185, 185, 213, 239, 272, 188, + 189, 214, 240, 273, 110, 144, 1, 2, 3, 63, + 47, 251, 252, 253, 174, 175, 176, 70, 142, 143, + 71, 72, 73, 75, 77, 80, 81, 82, 76, 84, + 85, 86, 87, 88, 89, 90, 92, 93, 102, 131, + 94, 10, 97, 99, 118, 134, 150, 122, 130, 133, + 135, 137, 138, 196, 197, 198, 139, 140, 191, 190, + 215, 151, 152, 153, 154, 159, 177, 178, 206, 207, + 211, 149, 217, 218, 216, 219, 220, 241, 234, 244, + 233, 245, 246, 269, 270, 271, 196, 197, 198, 225, + 226, 227, 274, 275, 235, 255, 256, 101, 179, 141, + 247, 136, 208, 205, 221, 276, 277, 267, 95, 278, + 83, 0, 225, 226, 227, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 74 + 0, 0, 0, 0, 0, 0, 0, 0, 91 }; const short int NetconfParser::yycheck_[] = { - 27, 27, 27, 3, 24, 11, 12, 5, 8, 7, - 7, 9, 14, 15, 16, 17, 3, 0, 11, 12, - 10, 8, 11, 12, 13, 31, 32, 20, 34, 35, - 3, 24, 25, 6, 54, 55, 42, 26, 7, 29, - 42, 68, 68, 68, 42, 43, 44, 45, 42, 42, - 11, 12, 6, 42, 81, 81, 81, 18, 19, 86, - 80, 27, 28, 33, 3, 3, 36, 37, 38, 8, - 8, 3, 3, 3, 3, 3, 42, 8, 8, 8, - 8, 42, 3, 3, 27, 28, 3, 8, 8, 6, - 4, 3, 119, 120, 39, 40, 41, 21, 22, 23, - 140, 141, 142, 8, 4, 4, 8, 3, 42, 4, - 4, 4, 4, 75, 4, 4, 7, 42, 3, 7, - 7, 7, 5, 30, 8, 7, 6, 8, 3, 5, - 4, 4, 4, 4, 4, 4, 4, 4, 165, 165, - 165, 7, 7, 163, 7, 7, 7, 4, 4, 7, - 4, 4, 4, 68, 5, 4, 4, 7, 4, 4, - 4, 4, 4, 42, 42, 81, 43, 122, 145, 119, - 224, 198, 198, 198, 201, 201, 201, 112, 42, 170, - 166, 198, 42, 42, 234, 257, -1, 42, -1, -1, - -1, -1, -1, -1, -1, -1, 43, 224, 224, 224, - -1, -1, -1, 43, 45, 42, -1, -1, -1, -1, + 27, 27, 27, 27, 24, 11, 12, 6, 27, 27, + 3, 11, 12, 0, 5, 8, 7, 23, 9, 3, + 10, 27, 28, 45, 8, 7, 11, 12, 13, 14, + 15, 16, 30, 31, 34, 35, 7, 37, 38, 45, + 60, 61, 32, 3, 29, 45, 3, 45, 8, 6, + 77, 77, 77, 77, 45, 46, 47, 48, 77, 77, + 45, 17, 18, 19, 20, 3, 93, 93, 93, 93, + 8, 98, 92, 3, 93, 93, 11, 12, 13, 14, + 15, 3, 8, 4, 6, 3, 21, 22, 36, 45, + 8, 39, 40, 41, 3, 3, 3, 3, 3, 8, + 8, 8, 8, 8, 131, 132, 42, 43, 44, 3, + 45, 24, 25, 26, 152, 153, 154, 4, 30, 31, + 4, 4, 4, 4, 3, 45, 4, 4, 8, 4, + 4, 48, 48, 48, 7, 4, 4, 7, 33, 3, + 7, 7, 45, 5, 7, 3, 5, 8, 8, 6, + 4, 4, 4, 180, 180, 180, 4, 4, 178, 45, + 45, 7, 7, 7, 7, 7, 4, 4, 4, 4, + 4, 134, 4, 4, 7, 46, 4, 7, 5, 4, + 45, 4, 4, 4, 4, 4, 213, 213, 213, 216, + 216, 216, 4, 48, 45, 45, 45, 93, 157, 131, + 239, 124, 185, 181, 213, 46, 46, 249, 84, 272, + 66, -1, 239, 239, 239, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60 + -1, -1, -1, -1, -1, -1, -1, -1, 77 }; const unsigned char NetconfParser::yystos_[] = { - 0, 39, 40, 41, 47, 48, 49, 50, 0, 5, - 7, 9, 42, 43, 44, 45, 53, 54, 55, 60, - 7, 65, 7, 51, 61, 56, 66, 52, 54, 62, - 63, 42, 58, 59, 10, 29, 67, 68, 69, 118, - 11, 12, 13, 26, 42, 64, 71, 72, 73, 74, - 76, 78, 90, 6, 3, 4, 8, 3, 70, 119, - 3, 8, 75, 77, 4, 79, 4, 8, 3, 54, - 54, 42, 4, 4, 68, 4, 4, 7, 4, 73, - 4, 7, 7, 55, 57, 42, 91, 5, 54, 71, - 30, 120, 121, 122, 14, 15, 16, 17, 64, 92, - 93, 94, 95, 97, 99, 101, 7, 80, 81, 82, - 8, 123, 3, 8, 96, 98, 100, 102, 8, 3, - 83, 6, 3, 4, 121, 4, 4, 4, 4, 94, - 27, 28, 64, 84, 85, 86, 88, 82, 5, 7, - 7, 7, 7, 87, 89, 3, 8, 7, 124, 125, - 18, 19, 64, 74, 76, 103, 104, 105, 107, 103, - 103, 103, 4, 4, 85, 126, 3, 6, 106, 108, - 3, 8, 8, 8, 8, 42, 54, 31, 32, 34, - 35, 64, 74, 76, 127, 128, 129, 131, 132, 134, - 125, 4, 4, 104, 130, 135, 4, 133, 3, 8, - 42, 7, 4, 4, 43, 4, 128, 20, 24, 25, - 64, 74, 76, 109, 110, 111, 114, 116, 42, 5, - 42, 112, 115, 117, 3, 8, 7, 136, 137, 4, - 4, 4, 110, 138, 3, 6, 21, 22, 23, 113, - 42, 42, 33, 36, 37, 38, 139, 140, 141, 143, - 144, 145, 137, 142, 4, 4, 4, 3, 8, 4, - 45, 43, 43, 140, 42 + 0, 42, 43, 44, 50, 51, 52, 53, 0, 5, + 7, 9, 45, 46, 47, 48, 56, 57, 58, 63, + 7, 68, 7, 54, 64, 59, 69, 55, 57, 65, + 66, 45, 61, 62, 10, 32, 70, 71, 72, 124, + 11, 12, 13, 14, 15, 16, 29, 45, 67, 74, + 75, 76, 77, 78, 79, 80, 82, 84, 96, 6, + 3, 4, 8, 3, 73, 125, 3, 8, 81, 83, + 4, 4, 4, 4, 85, 4, 8, 3, 57, 57, + 45, 4, 4, 71, 4, 4, 48, 48, 48, 7, + 4, 76, 4, 7, 7, 58, 60, 45, 97, 5, + 57, 74, 33, 126, 127, 128, 17, 18, 19, 20, + 67, 98, 99, 100, 101, 103, 105, 107, 7, 86, + 87, 88, 8, 129, 3, 8, 102, 104, 106, 108, + 8, 3, 89, 6, 3, 4, 127, 4, 4, 4, + 4, 100, 30, 31, 67, 90, 91, 92, 94, 88, + 5, 7, 7, 7, 7, 93, 95, 3, 8, 7, + 130, 131, 21, 22, 67, 77, 78, 79, 80, 82, + 109, 110, 111, 113, 109, 109, 109, 4, 4, 91, + 132, 3, 6, 112, 114, 3, 8, 8, 8, 8, + 45, 57, 34, 35, 37, 38, 67, 80, 82, 133, + 134, 135, 137, 138, 140, 131, 4, 4, 110, 136, + 141, 4, 139, 3, 8, 45, 7, 4, 4, 46, + 4, 134, 23, 27, 28, 67, 80, 82, 115, 116, + 117, 120, 122, 45, 5, 45, 118, 121, 123, 3, + 8, 7, 142, 143, 4, 4, 4, 116, 144, 3, + 6, 24, 25, 26, 119, 45, 45, 36, 39, 40, + 41, 145, 146, 147, 149, 150, 151, 143, 148, 4, + 4, 4, 3, 8, 4, 48, 46, 46, 146, 45 }; const unsigned char NetconfParser::yyr1_[] = { - 0, 46, 48, 47, 49, 47, 50, 47, 52, 51, - 53, 54, 54, 54, 54, 54, 54, 54, 56, 55, - 57, 58, 58, 59, 59, 61, 60, 62, 62, 63, - 63, 64, 66, 65, 67, 67, 68, 68, 70, 69, - 71, 71, 72, 72, 73, 73, 73, 73, 73, 75, - 74, 77, 76, 79, 78, 80, 80, 81, 81, 83, - 82, 84, 84, 84, 85, 85, 87, 86, 89, 88, - 91, 90, 92, 92, 93, 93, 94, 94, 94, 94, - 94, 96, 95, 98, 97, 100, 99, 102, 101, 103, - 103, 104, 104, 104, 104, 104, 106, 105, 108, 107, - 109, 109, 110, 110, 110, 110, 110, 110, 112, 111, - 113, 113, 113, 115, 114, 117, 116, 119, 118, 120, - 120, 121, 123, 122, 124, 124, 126, 125, 127, 127, - 128, 128, 128, 128, 128, 128, 128, 130, 129, 131, - 133, 132, 135, 134, 136, 136, 138, 137, 139, 139, - 140, 140, 140, 140, 142, 141, 143, 144, 145 + 0, 49, 51, 50, 52, 50, 53, 50, 55, 54, + 56, 57, 57, 57, 57, 57, 57, 57, 59, 58, + 60, 61, 61, 62, 62, 64, 63, 65, 65, 66, + 66, 67, 69, 68, 70, 70, 71, 71, 73, 72, + 74, 74, 75, 75, 76, 76, 76, 76, 76, 76, + 76, 76, 77, 78, 79, 81, 80, 83, 82, 85, + 84, 86, 86, 87, 87, 89, 88, 90, 90, 90, + 91, 91, 93, 92, 95, 94, 97, 96, 98, 98, + 99, 99, 100, 100, 100, 100, 100, 102, 101, 104, + 103, 106, 105, 108, 107, 109, 109, 110, 110, 110, + 110, 110, 110, 110, 110, 112, 111, 114, 113, 115, + 115, 116, 116, 116, 116, 116, 116, 118, 117, 119, + 119, 119, 121, 120, 123, 122, 125, 124, 126, 126, + 127, 129, 128, 130, 130, 132, 131, 133, 133, 134, + 134, 134, 134, 134, 134, 134, 136, 135, 137, 139, + 138, 141, 140, 142, 142, 144, 143, 145, 145, 146, + 146, 146, 146, 148, 147, 149, 150, 151 }; const unsigned char @@ -1888,18 +1923,19 @@ namespace isc { namespace netconf { 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, 0, 1, 3, 5, 0, 4, 0, 1, 1, 3, 2, 0, 4, 1, 3, 1, 1, 0, 6, - 0, 1, 1, 3, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 6, 0, 1, 1, 3, 0, - 4, 1, 3, 1, 1, 1, 0, 4, 0, 4, - 0, 6, 0, 1, 1, 3, 1, 1, 1, 1, - 1, 0, 6, 0, 6, 0, 6, 0, 6, 1, - 3, 1, 1, 1, 1, 1, 0, 4, 0, 6, - 1, 3, 1, 1, 1, 1, 1, 1, 0, 4, - 1, 1, 1, 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 + 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 0, 4, 0, 4, 0, + 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, + 1, 1, 0, 4, 0, 4, 0, 6, 0, 1, + 1, 3, 1, 1, 1, 1, 1, 0, 6, 0, + 6, 0, 6, 0, 6, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 6, 1, + 3, 1, 1, 1, 1, 1, 1, 0, 4, 1, + 1, 1, 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 }; @@ -1911,8 +1947,9 @@ namespace isc { namespace netconf { { "\"end of file\"", "error", "$undefined", "\",\"", "\":\"", "\"[\"", "\"]\"", "\"{\"", "\"}\"", "\"null\"", "\"Netconf\"", "\"user-context\"", - "\"comment\"", "\"managed-servers\"", "\"dhcp4\"", "\"dhcp6\"", "\"d2\"", - "\"ca\"", "\"model\"", "\"control-socket\"", "\"socket-type\"", + "\"comment\"", "\"boot-update\"", "\"subscribe-changes\"", + "\"validate-changes\"", "\"managed-servers\"", "\"dhcp4\"", "\"dhcp6\"", + "\"d2\"", "\"ca\"", "\"model\"", "\"control-socket\"", "\"socket-type\"", "\"unix\"", "\"http\"", "\"stdout\"", "\"socket-name\"", "\"socket-url\"", "\"hooks-libraries\"", "\"library\"", "\"parameters\"", "\"Logging\"", "\"loggers\"", "\"name\"", "\"output_options\"", @@ -1925,7 +1962,8 @@ namespace isc { namespace netconf { "not_empty_list", "unknown_map_entry", "netconf_syntax_map", "$@7", "global_objects", "global_object", "netconf_object", "$@8", "global_params", "not_empty_global_params", "global_param", - "user_context", "$@9", "comment", "$@10", "hooks_libraries", "$@11", + "boot_update", "subscribe_changes", "validate_changes", "user_context", + "$@9", "comment", "$@10", "hooks_libraries", "$@11", "hooks_libraries_list", "not_empty_hooks_libraries_list", "hooks_library", "$@12", "hooks_params", "hooks_param", "library", "$@13", "parameters", "$@14", "managed_servers", "$@15", @@ -1947,22 +1985,23 @@ namespace isc { namespace netconf { const unsigned short int NetconfParser::yyrline_[] = { - 0, 114, 114, 114, 115, 115, 116, 116, 124, 124, - 135, 141, 142, 143, 144, 145, 146, 147, 151, 151, - 162, 167, 168, 176, 180, 187, 187, 193, 194, 197, - 201, 214, 222, 222, 234, 235, 239, 240, 244, 244, - 261, 262, 265, 266, 271, 272, 273, 274, 275, 278, - 278, 303, 303, 331, 331, 341, 342, 345, 346, 349, - 349, 357, 358, 359, 362, 363, 366, 366, 374, 374, - 384, 384, 394, 395, 398, 399, 405, 406, 407, 408, - 409, 413, 413, 424, 424, 435, 435, 446, 446, 457, - 458, 462, 463, 464, 465, 466, 470, 470, 479, 479, - 490, 491, 494, 495, 496, 497, 498, 499, 502, 502, - 510, 511, 512, 515, 515, 524, 524, 539, 539, 552, - 553, 557, 561, 561, 573, 574, 578, 578, 586, 587, - 590, 591, 592, 593, 594, 595, 596, 599, 599, 607, - 612, 612, 620, 620, 630, 631, 634, 634, 642, 643, - 646, 647, 648, 649, 652, 652, 660, 665, 670 + 0, 118, 118, 118, 119, 119, 120, 120, 128, 128, + 139, 145, 146, 147, 148, 149, 150, 151, 155, 155, + 166, 171, 172, 180, 184, 191, 191, 197, 198, 201, + 205, 218, 226, 226, 238, 239, 243, 244, 248, 248, + 265, 266, 269, 270, 275, 276, 277, 278, 279, 280, + 281, 282, 285, 290, 295, 300, 300, 325, 325, 353, + 353, 363, 364, 367, 368, 371, 371, 379, 380, 381, + 384, 385, 388, 388, 396, 396, 406, 406, 416, 417, + 420, 421, 427, 428, 429, 430, 431, 435, 435, 446, + 446, 457, 457, 468, 468, 479, 480, 484, 485, 486, + 487, 488, 489, 490, 491, 495, 495, 504, 504, 515, + 516, 519, 520, 521, 522, 523, 524, 527, 527, 535, + 536, 537, 540, 540, 549, 549, 564, 564, 577, 578, + 582, 586, 586, 598, 599, 603, 603, 611, 612, 615, + 616, 617, 618, 619, 620, 621, 624, 624, 632, 637, + 637, 645, 645, 655, 656, 659, 659, 667, 668, 671, + 672, 673, 674, 677, 677, 685, 690, 695 }; // Print the state stack on the debug stream. @@ -1997,8 +2036,8 @@ namespace isc { namespace netconf { #line 14 "netconf_parser.yy" // lalr1.cc:1163 } } // isc::netconf -#line 2001 "netconf_parser.cc" // lalr1.cc:1163 -#line 675 "netconf_parser.yy" // lalr1.cc:1164 +#line 2040 "netconf_parser.cc" // lalr1.cc:1163 +#line 700 "netconf_parser.yy" // lalr1.cc:1164 void |
