39#define yylex   netconf_lex 
   47#line 36 "netconf_parser.yy" 
   52#if defined(__GNUC__) || defined(__clang__) 
   53#pragma GCC diagnostic ignored "-Wunused-but-set-variable" 
   56#line 57 "netconf_parser.cc" 
   60# if defined YYENABLE_NLS && YYENABLE_NLS 
   63#   define YY_(msgid) dgettext ("bison-runtime", msgid) 
   67#  define YY_(msgid) msgid 
   74# if defined __GNUC__ && !defined __EXCEPTIONS 
   75#  define YY_EXCEPTIONS 0 
   77#  define YY_EXCEPTIONS 1 
   81#define YYRHSLOC(Rhs, K) ((Rhs)[K].location) 
   86# ifndef YYLLOC_DEFAULT 
   87#  define YYLLOC_DEFAULT(Current, Rhs, N)                               \ 
   91          (Current).begin  = YYRHSLOC (Rhs, 1).begin;                   \ 
   92          (Current).end    = YYRHSLOC (Rhs, N).end;                     \ 
   96          (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;      \ 
 
  106# define YYCDEBUG if (yydebug_) (*yycdebug_) 
  108# define YY_SYMBOL_PRINT(Title, Symbol)         \ 
  112      *yycdebug_ << Title << ' ';               \ 
  113      yy_print_ (*yycdebug_, Symbol);           \ 
  114      *yycdebug_ << '\n';                       \ 
  118# define YY_REDUCE_PRINT(Rule)          \ 
  121      yy_reduce_print_ (Rule);          \ 
  124# define YY_STACK_PRINT()               \ 
  127      yy_stack_print_ ();                \ 
  132# define YYCDEBUG if (false) std::cerr 
  133# define YY_SYMBOL_PRINT(Title, Symbol)  YY_USE (Symbol) 
  134# define YY_REDUCE_PRINT(Rule)           static_cast<void> (0) 
  135# define YY_STACK_PRINT()                static_cast<void> (0) 
  139#define yyerrok         (yyerrstatus_ = 0) 
  140#define yyclearin       (yyla.clear ()) 
  142#define YYACCEPT        goto yyacceptlab 
  143#define YYABORT         goto yyabortlab 
  144#define YYERROR         goto yyerrorlab 
  145#define YYRECOVERING()  (!!yyerrstatus_) 
  147#line 14 "netconf_parser.yy" 
  148namespace isc { 
namespace netconf {
 
  149#line 150 "netconf_parser.cc" 
  155      yycdebug_ (&std::cerr),
 
 
  176    : state (empty_state)
 
  179  NetconfParser::by_state::by_state (
const by_state& that) 
YY_NOEXCEPT 
  190  NetconfParser::by_state::move (by_state& that)
 
  196  NetconfParser::by_state::by_state (state_type s) 
YY_NOEXCEPT 
  203    if (state == empty_state)
 
  209  NetconfParser::stack_symbol_type::stack_symbol_type ()
 
  212  NetconfParser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
 
  215    switch (that.kind ())
 
  217      case symbol_kind::S_value: 
 
  218      case symbol_kind::S_map_value: 
 
  219      case symbol_kind::S_socket_type_value: 
 
  220        value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
 
  223      case symbol_kind::S_BOOLEAN: 
 
  224        value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
 
  227      case symbol_kind::S_FLOAT: 
 
  228        value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
 
  231      case symbol_kind::S_INTEGER: 
 
  232        value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
 
  235      case symbol_kind::S_STRING: 
 
  236        value.YY_MOVE_OR_COPY< string > (YY_MOVE (that.value));
 
  245    that.state = empty_state;
 
  250    : super_type (s, 
YY_MOVE (that.location))
 
  252    switch (that.kind ())
 
  254      case symbol_kind::S_value: 
 
  255      case symbol_kind::S_map_value: 
 
  256      case symbol_kind::S_socket_type_value: 
 
  257        value.move< ElementPtr > (YY_MOVE (that.value));
 
  260      case symbol_kind::S_BOOLEAN: 
 
  261        value.move< bool > (YY_MOVE (that.value));
 
  264      case symbol_kind::S_FLOAT: 
 
  265        value.move< double > (YY_MOVE (that.value));
 
  268      case symbol_kind::S_INTEGER: 
 
  269        value.move< int64_t > (YY_MOVE (that.value));
 
  272      case symbol_kind::S_STRING: 
 
  273        value.move< string > (YY_MOVE (that.value));
 
  284#if YY_CPLUSPLUS < 201103L 
  285  NetconfParser::stack_symbol_type&
 
  286  NetconfParser::stack_symbol_type::operator= (
const stack_symbol_type& that)
 
  289    switch (that.kind ())
 
  298        value.copy< 
bool > (that.value);
 
  302        value.copy< 
double > (that.value);
 
  306        value.copy< int64_t > (that.value);
 
  310        value.copy< 
string > (that.value);
 
  317    location = that.location;
 
  321  NetconfParser::stack_symbol_type&
 
  322  NetconfParser::stack_symbol_type::operator= (stack_symbol_type& that)
 
  325    switch (that.kind ())
 
  334        value.move< 
bool > (that.value);
 
  338        value.move< 
double > (that.value);
 
  342        value.move< int64_t > (that.value);
 
  346        value.move< 
string > (that.value);
 
  353    location = that.location;
 
  355    that.state = empty_state;
 
  360  template <
typename Base>
 
  369  template <
typename Base>
 
  373    std::ostream& yyoutput = yyo;
 
  376      yyo << 
"empty symbol";
 
  380        yyo << (yykind < 
YYNTOKENS ? 
"token" : 
"nterm")
 
  381            << 
' ' << yysym.name () << 
" (" 
  382            << yysym.location << 
": ";
 
  386#line 115 "netconf_parser.yy" 
  387                 { yyoutput << yysym.value.template as < string > (); }
 
  388#line 389 "netconf_parser.cc" 
  392#line 115 "netconf_parser.yy" 
  393                 { yyoutput << yysym.value.template as < int64_t > (); }
 
  394#line 395 "netconf_parser.cc" 
  398#line 115 "netconf_parser.yy" 
  399                 { yyoutput << yysym.value.template as < double > (); }
 
  400#line 401 "netconf_parser.cc" 
  404#line 115 "netconf_parser.yy" 
  405                 { yyoutput << yysym.value.template as < bool > (); }
 
  406#line 407 "netconf_parser.cc" 
  410#line 115 "netconf_parser.yy" 
  411                 { yyoutput << yysym.value.template as < ElementPtr > (); }
 
  412#line 413 "netconf_parser.cc" 
  416#line 115 "netconf_parser.yy" 
  417                 { yyoutput << yysym.value.template as < ElementPtr > (); }
 
  418#line 419 "netconf_parser.cc" 
  422#line 115 "netconf_parser.yy" 
  423                 { yyoutput << yysym.value.template as < ElementPtr > (); }
 
  424#line 425 "netconf_parser.cc" 
  436  NetconfParser::yypush_ (
const char* m, 
YY_MOVE_REF (stack_symbol_type) sym)
 
  446#if 201103L <= YY_CPLUSPLUS 
  447    yypush_ (m, stack_symbol_type (s, std::move (sym)));
 
  449    stack_symbol_type ss (s, sym);
 
  462  NetconfParser::debug_stream ()
 const 
  468  NetconfParser::set_debug_stream (std::ostream& o)
 
  474  NetconfParser::debug_level_type
 
  475  NetconfParser::debug_level ()
 const 
  481  NetconfParser::set_debug_level (debug_level_type l)
 
  487  NetconfParser::state_type
 
  488  NetconfParser::yy_lr_goto_state_ (state_type yystate, 
int yysym)
 
  490    int yyr = yypgoto_[yysym - 
YYNTOKENS] + yystate;
 
  491    if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
 
  492      return yytable_[yyr];
 
  498  NetconfParser::yy_pact_value_is_default_ (
int yyvalue) 
YY_NOEXCEPT 
  500    return yyvalue == yypact_ninf_;
 
  504  NetconfParser::yy_table_value_is_error_ (
int yyvalue) 
YY_NOEXCEPT 
  506    return yyvalue == yytable_ninf_;
 
  524    int yyerrstatus_ = 0;
 
  530    stack_symbol_type yyerror_range[3];
 
  547    yypush_ (YY_NULLPTR, 0, 
YY_MOVE (yyla));
 
  553    YYCDEBUG << 
"Entering state " << int (yystack_[0].state) << 
'\n';
 
  557    if (yystack_[0].state == yyfinal_)
 
  568    yyn = yypact_[+yystack_[0].state];
 
  569    if (yy_pact_value_is_default_ (yyn))
 
  581            yyla.
move (yylookahead);
 
  586            YYCDEBUG << 
"Caught exception: " << yyexc.what() << 
'\n';
 
  607    if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.
kind ())
 
  616        if (yy_table_value_is_error_ (yyn))
 
  627    yypush_ (
"Shifting", state_type (yyn), 
YY_MOVE (yyla));
 
  635    yyn = yydefact_[+yystack_[0].state];
 
  647      stack_symbol_type yylhs;
 
  648      yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
 
  683        stack_type::slice range (yystack_, yylen);
 
  697#line 126 "netconf_parser.yy" 
  698                       { ctx.ctx_ = ctx.NO_KEYWORDS; }
 
  699#line 700 "netconf_parser.cc" 
  703#line 127 "netconf_parser.yy" 
  704                         { ctx.ctx_ = ctx.CONFIG; }
 
  705#line 706 "netconf_parser.cc" 
  709#line 128 "netconf_parser.yy" 
  710                         { ctx.ctx_ = ctx.NETCONF; }
 
  711#line 712 "netconf_parser.cc" 
  715#line 136 "netconf_parser.yy" 
  719    ctx.stack_.push_back(m);
 
  721#line 722 "netconf_parser.cc" 
  725#line 140 "netconf_parser.yy" 
  729#line 730 "netconf_parser.cc" 
  733#line 147 "netconf_parser.yy" 
  736    ctx.stack_.push_back(yystack_[0].value.as < 
ElementPtr > ());
 
  738#line 739 "netconf_parser.cc" 
  742#line 153 "netconf_parser.yy" 
  744#line 745 "netconf_parser.cc" 
  748#line 154 "netconf_parser.yy" 
  750#line 751 "netconf_parser.cc" 
  754#line 155 "netconf_parser.yy" 
  756#line 757 "netconf_parser.cc" 
  760#line 156 "netconf_parser.yy" 
  762#line 763 "netconf_parser.cc" 
  766#line 157 "netconf_parser.yy" 
  768#line 769 "netconf_parser.cc" 
  772#line 158 "netconf_parser.yy" 
  774#line 775 "netconf_parser.cc" 
  778#line 159 "netconf_parser.yy" 
  780#line 781 "netconf_parser.cc" 
  784#line 163 "netconf_parser.yy" 
  789    ctx.stack_.push_back(m);
 
  791#line 792 "netconf_parser.cc" 
  795#line 168 "netconf_parser.yy" 
  801#line 802 "netconf_parser.cc" 
  805#line 174 "netconf_parser.yy" 
  807#line 808 "netconf_parser.cc" 
  811#line 188 "netconf_parser.yy" 
  814                  ctx.unique(yystack_[2].value.as < 
string > (), ctx.loc2pos(yystack_[2].location));
 
  815                  ctx.stack_.back()->set(yystack_[2].value.as < 
string > (), yystack_[0].value.as < 
ElementPtr > ());
 
  817#line 818 "netconf_parser.cc" 
  821#line 193 "netconf_parser.yy" 
  825                  ctx.unique(yystack_[2].value.as < 
string > (), ctx.loc2pos(yystack_[2].location));
 
  826                  ctx.stack_.back()->set(yystack_[2].value.as < 
string > (), yystack_[0].value.as < 
ElementPtr > ());
 
  828#line 829 "netconf_parser.cc" 
  832#line 199 "netconf_parser.yy" 
  834                 ctx.warnAboutExtraCommas(yystack_[0].location);
 
  836#line 837 "netconf_parser.cc" 
  840#line 204 "netconf_parser.yy" 
  843    ctx.stack_.push_back(l);
 
  845#line 846 "netconf_parser.cc" 
  849#line 207 "netconf_parser.yy" 
  852#line 853 "netconf_parser.cc" 
  856#line 214 "netconf_parser.yy" 
  859                  ctx.stack_.back()->add(yystack_[0].value.as < 
ElementPtr > ());
 
  861#line 862 "netconf_parser.cc" 
  865#line 218 "netconf_parser.yy" 
  868                  ctx.stack_.back()->add(yystack_[0].value.as < 
ElementPtr > ());
 
  870#line 871 "netconf_parser.cc" 
  874#line 222 "netconf_parser.yy" 
  876                  ctx.warnAboutExtraCommas(yystack_[0].location);
 
  878#line 879 "netconf_parser.cc" 
  882#line 234 "netconf_parser.yy" 
  884    const string& where = ctx.contextName();
 
  885    const string& keyword = yystack_[1].value.as < 
string > ();
 
  886    error(yystack_[1].location,
 
  887          "got unexpected keyword \"" + keyword + 
"\" in " + where + 
" map.");
 
  889#line 890 "netconf_parser.cc" 
  893#line 242 "netconf_parser.yy" 
  898    ctx.stack_.push_back(m);
 
  900#line 901 "netconf_parser.cc" 
  904#line 247 "netconf_parser.yy" 
  910#line 911 "netconf_parser.cc" 
  914#line 254 "netconf_parser.yy" 
  922    ctx.unique(
"Netconf", ctx.loc2pos(yystack_[0].location));
 
  924    ctx.stack_.back()->set(
"Netconf", m);
 
  925    ctx.stack_.push_back(m);
 
  926    ctx.enter(ctx.NETCONF);
 
  928#line 929 "netconf_parser.cc" 
  932#line 266 "netconf_parser.yy" 
  936    ctx.stack_.pop_back();
 
  939#line 940 "netconf_parser.cc" 
  943#line 275 "netconf_parser.yy" 
  945    ctx.warnAboutExtraCommas(yystack_[0].location);
 
  947#line 948 "netconf_parser.cc" 
  951#line 286 "netconf_parser.yy" 
  953                           ctx.warnAboutExtraCommas(yystack_[0].location);
 
  955#line 956 "netconf_parser.cc" 
  959#line 304 "netconf_parser.yy" 
  961    ctx.unique(
"boot-update", ctx.loc2pos(yystack_[2].location));
 
  962    ElementPtr flag(
new BoolElement(yystack_[0].value.as < 
bool > (), ctx.loc2pos(yystack_[0].location)));
 
  963    ctx.stack_.back()->set(
"boot-update", flag);
 
  965#line 966 "netconf_parser.cc" 
  969#line 310 "netconf_parser.yy" 
  971    ctx.unique(
"subscribe-changes", ctx.loc2pos(yystack_[2].location));
 
  972    ElementPtr flag(
new BoolElement(yystack_[0].value.as < 
bool > (), ctx.loc2pos(yystack_[0].location)));
 
  973    ctx.stack_.back()->set(
"subscribe-changes", flag);
 
  975#line 976 "netconf_parser.cc" 
  979#line 316 "netconf_parser.yy" 
  981    ctx.unique(
"validate-changes", ctx.loc2pos(yystack_[2].location));
 
  982    ElementPtr flag(
new BoolElement(yystack_[0].value.as < 
bool > (), ctx.loc2pos(yystack_[0].location)));
 
  983    ctx.stack_.back()->set(
"validate-changes", flag);
 
  985#line 986 "netconf_parser.cc" 
  989#line 322 "netconf_parser.yy" 
  991    ctx.enter(ctx.NO_KEYWORDS);
 
  993#line 994 "netconf_parser.cc" 
  997#line 324 "netconf_parser.yy" 
 1006        if ((old->size() != 1) || !old->contains(
"comment")) {
 
 1008            msg << 
"duplicate user-context entries (previous at " 
 1009                << old->getPosition().str() << 
")";
 
 1010            error(yystack_[3].location, msg.str());
 
 1013        user_context->set(
"comment", old->get(
"comment"));
 
 1017    parent->set(
"user-context", user_context);
 
 1020#line 1021 "netconf_parser.cc" 
 1024#line 347 "netconf_parser.yy" 
 1026    ctx.enter(ctx.NO_KEYWORDS);
 
 1028#line 1029 "netconf_parser.cc" 
 1032#line 349 "netconf_parser.yy" 
 1037    user_context->set(
"comment", comment);
 
 1043        if (old->contains(
"comment")) {
 
 1045            msg << 
"duplicate user-context/comment entries (previous at " 
 1046                << old->getPosition().str() << 
")";
 
 1047            error(yystack_[3].location, msg.str());
 
 1050        merge(user_context, old);
 
 1054    parent->set(
"user-context", user_context);
 
 1057#line 1058 "netconf_parser.cc" 
 1061#line 375 "netconf_parser.yy" 
 1063    ctx.unique(
"hooks-libraries", ctx.loc2pos(yystack_[0].location));
 
 1065    ctx.stack_.back()->set(
"hooks-libraries", l);
 
 1066    ctx.stack_.push_back(l);
 
 1067    ctx.enter(ctx.HOOKS_LIBRARIES);
 
 1069#line 1070 "netconf_parser.cc" 
 1073#line 381 "netconf_parser.yy" 
 1075    ctx.stack_.pop_back();
 
 1078#line 1079 "netconf_parser.cc" 
 1082#line 392 "netconf_parser.yy" 
 1084        ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1086#line 1087 "netconf_parser.cc" 
 1090#line 397 "netconf_parser.yy" 
 1093    ctx.stack_.back()->add(m);
 
 1094    ctx.stack_.push_back(m);
 
 1096#line 1097 "netconf_parser.cc" 
 1100#line 401 "netconf_parser.yy" 
 1102    ctx.stack_.pop_back();
 
 1104#line 1105 "netconf_parser.cc" 
 1108#line 407 "netconf_parser.yy" 
 1110              ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1112#line 1113 "netconf_parser.cc" 
 1116#line 417 "netconf_parser.yy" 
 1118    ctx.unique(
"library", ctx.loc2pos(yystack_[0].location));
 
 1119    ctx.enter(ctx.NO_KEYWORDS);
 
 1121#line 1122 "netconf_parser.cc" 
 1125#line 420 "netconf_parser.yy" 
 1128    ctx.stack_.back()->set(
"library", lib);
 
 1131#line 1132 "netconf_parser.cc" 
 1135#line 426 "netconf_parser.yy" 
 1137    ctx.unique(
"parameters", ctx.loc2pos(yystack_[0].location));
 
 1138    ctx.enter(ctx.NO_KEYWORDS);
 
 1140#line 1141 "netconf_parser.cc" 
 1144#line 429 "netconf_parser.yy" 
 1146    ctx.stack_.back()->set(
"parameters", yystack_[0].value.as < 
ElementPtr > ());
 
 1149#line 1150 "netconf_parser.cc" 
 1153#line 437 "netconf_parser.yy" 
 1155    ctx.unique(
"managed-servers", ctx.loc2pos(yystack_[2].location));
 
 1157    ctx.stack_.back()->set(
"managed-servers", m);
 
 1158    ctx.stack_.push_back(m);
 
 1159    ctx.enter(ctx.MANAGED_SERVERS);
 
 1161#line 1162 "netconf_parser.cc" 
 1165#line 443 "netconf_parser.yy" 
 1167    ctx.stack_.pop_back();
 
 1170#line 1171 "netconf_parser.cc" 
 1174#line 454 "netconf_parser.yy" 
 1176                             ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1178#line 1179 "netconf_parser.cc" 
 1182#line 470 "netconf_parser.yy" 
 1184    ctx.unique(
"dhcp4", ctx.loc2pos(yystack_[0].location));
 
 1186    ctx.stack_.back()->set(
"dhcp4", m);
 
 1187    ctx.stack_.push_back(m);
 
 1188    ctx.enter(ctx.SERVER);
 
 1190#line 1191 "netconf_parser.cc" 
 1194#line 476 "netconf_parser.yy" 
 1196    ctx.stack_.pop_back();
 
 1199#line 1200 "netconf_parser.cc" 
 1203#line 482 "netconf_parser.yy" 
 1205    ctx.unique(
"dhcp6", ctx.loc2pos(yystack_[0].location));
 
 1207    ctx.stack_.back()->set(
"dhcp6", m);
 
 1208    ctx.stack_.push_back(m);
 
 1209    ctx.enter(ctx.SERVER);
 
 1211#line 1212 "netconf_parser.cc" 
 1215#line 488 "netconf_parser.yy" 
 1217    ctx.stack_.pop_back();
 
 1220#line 1221 "netconf_parser.cc" 
 1224#line 494 "netconf_parser.yy" 
 1226    ctx.unique(
"d2", ctx.loc2pos(yystack_[0].location));
 
 1228    ctx.stack_.back()->set(
"d2", m);
 
 1229    ctx.stack_.push_back(m);
 
 1230    ctx.enter(ctx.SERVER);
 
 1232#line 1233 "netconf_parser.cc" 
 1236#line 500 "netconf_parser.yy" 
 1238    ctx.stack_.pop_back();
 
 1241#line 1242 "netconf_parser.cc" 
 1245#line 506 "netconf_parser.yy" 
 1247    ctx.unique(
"ca", ctx.loc2pos(yystack_[0].location));
 
 1249    ctx.stack_.back()->set(
"ca", m);
 
 1250    ctx.stack_.push_back(m);
 
 1251    ctx.enter(ctx.SERVER);
 
 1253#line 1254 "netconf_parser.cc" 
 1257#line 512 "netconf_parser.yy" 
 1259    ctx.stack_.pop_back();
 
 1262#line 1263 "netconf_parser.cc" 
 1266#line 520 "netconf_parser.yy" 
 1268                         ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1270#line 1271 "netconf_parser.cc" 
 1274#line 537 "netconf_parser.yy" 
 1276    ctx.unique(
"model", ctx.loc2pos(yystack_[0].location));
 
 1277    ctx.enter(ctx.NO_KEYWORDS);
 
 1279#line 1280 "netconf_parser.cc" 
 1283#line 540 "netconf_parser.yy" 
 1286    ctx.stack_.back()->set(
"model", model);
 
 1289#line 1290 "netconf_parser.cc" 
 1293#line 547 "netconf_parser.yy" 
 1295    ctx.unique(
"control-socket", ctx.loc2pos(yystack_[0].location));
 
 1297    ctx.stack_.back()->set(
"control-socket", m);
 
 1298    ctx.stack_.push_back(m);
 
 1299    ctx.enter(ctx.CONTROL_SOCKET);
 
 1301#line 1302 "netconf_parser.cc" 
 1305#line 553 "netconf_parser.yy" 
 1307    ctx.stack_.pop_back();
 
 1310#line 1311 "netconf_parser.cc" 
 1314#line 561 "netconf_parser.yy" 
 1316                         ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1318#line 1319 "netconf_parser.cc" 
 1322#line 574 "netconf_parser.yy" 
 1324    ctx.unique(
"socket-type", ctx.loc2pos(yystack_[0].location));
 
 1325    ctx.enter(ctx.SOCKET_TYPE);
 
 1327#line 1328 "netconf_parser.cc" 
 1331#line 577 "netconf_parser.yy" 
 1333    ctx.stack_.back()->set(
"socket-type", yystack_[0].value.as < 
ElementPtr > ());
 
 1336#line 1337 "netconf_parser.cc" 
 1340#line 583 "netconf_parser.yy" 
 1342#line 1343 "netconf_parser.cc" 
 1346#line 584 "netconf_parser.yy" 
 1348#line 1349 "netconf_parser.cc" 
 1352#line 585 "netconf_parser.yy" 
 1354#line 1355 "netconf_parser.cc" 
 1358#line 588 "netconf_parser.yy" 
 1360    ctx.unique(
"socket-name", ctx.loc2pos(yystack_[0].location));
 
 1361    ctx.enter(ctx.NO_KEYWORDS);
 
 1363#line 1364 "netconf_parser.cc" 
 1367#line 591 "netconf_parser.yy" 
 1370    ctx.stack_.back()->set(
"socket-name", name);
 
 1373#line 1374 "netconf_parser.cc" 
 1377#line 598 "netconf_parser.yy" 
 1379    ctx.unique(
"socket-url", ctx.loc2pos(yystack_[0].location));
 
 1380    ctx.enter(ctx.NO_KEYWORDS);
 
 1382#line 1383 "netconf_parser.cc" 
 1386#line 601 "netconf_parser.yy" 
 1389    ctx.stack_.back()->set(
"socket-url", url);
 
 1392#line 1393 "netconf_parser.cc" 
 1396#line 611 "netconf_parser.yy" 
 1398    ctx.unique(
"loggers", ctx.loc2pos(yystack_[0].location));
 
 1400    ctx.stack_.back()->set(
"loggers", l);
 
 1401    ctx.stack_.push_back(l);
 
 1402    ctx.enter(ctx.LOGGERS);
 
 1404#line 1405 "netconf_parser.cc" 
 1408#line 617 "netconf_parser.yy" 
 1410    ctx.stack_.pop_back();
 
 1413#line 1414 "netconf_parser.cc" 
 1417#line 626 "netconf_parser.yy" 
 1419                   ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1421#line 1422 "netconf_parser.cc" 
 1425#line 632 "netconf_parser.yy" 
 1428    ctx.stack_.back()->add(l);
 
 1429    ctx.stack_.push_back(l);
 
 1431#line 1432 "netconf_parser.cc" 
 1435#line 636 "netconf_parser.yy" 
 1437    ctx.stack_.pop_back();
 
 1439#line 1440 "netconf_parser.cc" 
 1443#line 642 "netconf_parser.yy" 
 1445                 ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1447#line 1448 "netconf_parser.cc" 
 1451#line 656 "netconf_parser.yy" 
 1453    ctx.unique(
"name", ctx.loc2pos(yystack_[0].location));
 
 1454    ctx.enter(ctx.NO_KEYWORDS);
 
 1456#line 1457 "netconf_parser.cc" 
 1460#line 659 "netconf_parser.yy" 
 1463    ctx.stack_.back()->set(
"name", name);
 
 1466#line 1467 "netconf_parser.cc" 
 1470#line 665 "netconf_parser.yy" 
 1472    ctx.unique(
"debuglevel", ctx.loc2pos(yystack_[2].location));
 
 1473    ElementPtr dl(
new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
 
 1474    ctx.stack_.back()->set(
"debuglevel", dl);
 
 1476#line 1477 "netconf_parser.cc" 
 1480#line 671 "netconf_parser.yy" 
 1482    ctx.unique(
"severity", ctx.loc2pos(yystack_[0].location));
 
 1483    ctx.enter(ctx.NO_KEYWORDS);
 
 1485#line 1486 "netconf_parser.cc" 
 1489#line 674 "netconf_parser.yy" 
 1492    ctx.stack_.back()->set(
"severity", sev);
 
 1495#line 1496 "netconf_parser.cc" 
 1499#line 680 "netconf_parser.yy" 
 1501    ctx.unique(
"output-options", ctx.loc2pos(yystack_[0].location));
 
 1503    ctx.stack_.back()->set(
"output-options", l);
 
 1504    ctx.stack_.push_back(l);
 
 1505    ctx.enter(ctx.OUTPUT_OPTIONS);
 
 1507#line 1508 "netconf_parser.cc" 
 1511#line 686 "netconf_parser.yy" 
 1513    ctx.stack_.pop_back();
 
 1516#line 1517 "netconf_parser.cc" 
 1520#line 693 "netconf_parser.yy" 
 1522                               ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1524#line 1525 "netconf_parser.cc" 
 1528#line 698 "netconf_parser.yy" 
 1531    ctx.stack_.back()->add(m);
 
 1532    ctx.stack_.push_back(m);
 
 1534#line 1535 "netconf_parser.cc" 
 1538#line 702 "netconf_parser.yy" 
 1540    ctx.stack_.pop_back();
 
 1542#line 1543 "netconf_parser.cc" 
 1546#line 708 "netconf_parser.yy" 
 1548                 ctx.warnAboutExtraCommas(yystack_[0].location);
 
 1550#line 1551 "netconf_parser.cc" 
 1554#line 720 "netconf_parser.yy" 
 1556    ctx.unique(
"output", ctx.loc2pos(yystack_[0].location));
 
 1557    ctx.enter(ctx.NO_KEYWORDS);
 
 1559#line 1560 "netconf_parser.cc" 
 1563#line 723 "netconf_parser.yy" 
 1566    ctx.stack_.back()->set(
"output", sev);
 
 1569#line 1570 "netconf_parser.cc" 
 1573#line 729 "netconf_parser.yy" 
 1575    ctx.unique(
"flush", ctx.loc2pos(yystack_[2].location));
 
 1576    ElementPtr flush(
new BoolElement(yystack_[0].value.as < 
bool > (), ctx.loc2pos(yystack_[0].location)));
 
 1577    ctx.stack_.back()->set(
"flush", flush);
 
 1579#line 1580 "netconf_parser.cc" 
 1583#line 735 "netconf_parser.yy" 
 1585    ctx.unique(
"maxsize", ctx.loc2pos(yystack_[2].location));
 
 1586    ElementPtr maxsize(
new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
 
 1587    ctx.stack_.back()->set(
"maxsize", maxsize);
 
 1589#line 1590 "netconf_parser.cc" 
 1593#line 741 "netconf_parser.yy" 
 1595    ctx.unique(
"maxver", ctx.loc2pos(yystack_[2].location));
 
 1596    ElementPtr maxver(
new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
 
 1597    ctx.stack_.back()->set(
"maxver", maxver);
 
 1599#line 1600 "netconf_parser.cc" 
 1603#line 747 "netconf_parser.yy" 
 1605    ctx.unique(
"pattern", ctx.loc2pos(yystack_[0].location));
 
 1606    ctx.enter(ctx.NO_KEYWORDS);
 
 1608#line 1609 "netconf_parser.cc" 
 1612#line 750 "netconf_parser.yy" 
 1615    ctx.stack_.back()->set(
"pattern", sev);
 
 1618#line 1619 "netconf_parser.cc" 
 1622#line 1623 "netconf_parser.cc" 
 1631          YYCDEBUG << 
"Caught exception: " << yyexc.what() << 
'\n';
 
 1641      yypush_ (YY_NULLPTR, 
YY_MOVE (yylhs));
 
 1655        std::string msg = yysyntax_error_ (yyctx);
 
 1661    if (yyerrstatus_ == 3)
 
 1669        else if (!yyla.
empty ())
 
 1671            yy_destroy_ (
"Error: discarding", yyla);
 
 1705        yyn = yypact_[+yystack_[0].state];
 
 1706        if (!yy_pact_value_is_default_ (yyn))
 
 1709            if (0 <= yyn && yyn <= yylast_
 
 1712                yyn = yytable_[yyn];
 
 1719        if (yystack_.size () == 1)
 
 1722        yyerror_range[1].
location = yystack_[0].location;
 
 1723        yy_destroy_ (
"Error: popping", yystack_[0]);
 
 1728      stack_symbol_type error_token;
 
 1734      error_token.state = state_type (yyn);
 
 1735      yypush_ (
"Shifting", 
YY_MOVE (error_token));
 
 1761      yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
 
 1767    while (1 < yystack_.size ())
 
 1769        yy_destroy_ (
"Cleanup: popping", yystack_[0]);
 
 1778        YYCDEBUG << 
"Exception caught: cleaning lookahead and stack\n";
 
 1782          yy_destroy_ (YY_NULLPTR, yyla);
 
 1784        while (1 < yystack_.size ())
 
 1786            yy_destroy_ (YY_NULLPTR, yystack_[0]);
 
 
 1806  NetconfParser::yytnamerr_ (
const char *yystr)
 
 1811        char const *yyp = yystr;
 
 1818              goto do_not_strip_quotes;
 
 1822                goto do_not_strip_quotes;
 
 1834      do_not_strip_quotes: ;
 
 1843    return yytnamerr_ (yytname_[yysymbol]);
 
 
 1850    : yyparser_ (yyparser)
 
 
 1860    const int yyn = yypact_[+yyparser_.yystack_[0].state];
 
 1861    if (!yy_pact_value_is_default_ (yyn))
 
 1866        const int yyxbegin = yyn < 0 ? -yyn : 0;
 
 1868        const int yychecklim = yylast_ - yyn + 1;
 
 1870        for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
 
 1872              && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
 
 1876              else if (yycount == yyargn)
 
 1883    if (yyarg && yycount == 0 && 0 < yyargn)
 
 
 1894  NetconfParser::yy_syntax_error_arguments_ (
const context& yyctx,
 
 1925          yyarg[0] = yyctx.
token ();
 
 1926        int yyn = yyctx.
expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
 
 1934  NetconfParser::yysyntax_error_ (
const context& yyctx)
 const 
 1937    enum { YYARGS_MAX = 5 };
 
 1940    int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
 
 1942    char const* yyformat = YY_NULLPTR;
 
 1945#define YYCASE_(N, S)                         \ 
 1951        YYCASE_ (1, 
YY_(
"syntax error, unexpected %s"));
 
 1952        YYCASE_ (2, 
YY_(
"syntax error, unexpected %s, expecting %s"));
 
 1953        YYCASE_ (3, 
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
 
 1954        YYCASE_ (4, 
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
 
 1955        YYCASE_ (5, 
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
 
 1961    std::ptrdiff_t yyi = 0;
 
 1962    for (
char const* yyp = yyformat; *yyp; ++yyp)
 
 1963      if (yyp[0] == 
'%' && yyp[1] == 
's' && yyi < yycount)
 
 1974  const signed char NetconfParser::yypact_ninf_ = -79;
 
 1976  const signed char NetconfParser::yytable_ninf_ = -1;
 
 1979  NetconfParser::yypact_[] =
 
 1981      -8,   -79,   -79,   -79,    16,    14,    13,    15,   -79,   -79,
 
 1982     -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,
 
 1983     -79,   -79,   -79,   -79,    14,     2,    45,    -1,   -79,    61,
 
 1984      68,    75,    73,    79,   -79,    30,   -79,   -79,   -79,    89,
 
 1985      90,   123,   124,   -79,   -79,   125,   -79,   108,    94,   -79,
 
 1986     -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,    14,
 
 1987      14,   -79,    85,   127,   -79,   -79,   128,   129,    86,    87,
 
 1988      88,   130,   134,   135,   -79,   -79,    -1,   -79,   -79,   136,
 
 1989     140,   141,    96,   -79,   -79,   -79,   -79,   137,   138,   -79,
 
 1990      14,    -1,   -79,   -79,   -79,     7,   142,   143,   -79,   144,
 
 1991     -79,   -79,   -79,   -79,   -79,   145,   148,   -79,   -79,   -79,
 
 1992     -79,   -79,   -79,   149,   151,   -79,   -79,    50,   -79,   -79,
 
 1993     152,   153,   154,   155,   -79,     7,   -13,   -79,   142,    76,
 
 1994     143,   -79,   156,   157,   158,   159,   -79,   -79,   -79,   -79,
 
 1995      34,   -79,   -79,   -79,   -79,   -79,   -79,   163,   -79,   -79,
 
 1996     -79,   -79,    40,   -79,   -79,   -79,   -79,   -79,   -79,    63,
 
 1997      63,    63,    63,   164,   165,   -24,   -79,   166,   167,   116,
 
 1998     168,    76,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,
 
 1999     -79,    92,   -79,   -79,   -79,    93,   111,   112,   131,   141,
 
 2000     -79,   132,   169,   -79,   133,   -79,   171,   175,    63,   -79,
 
 2001     -79,   -79,   -79,   -79,   -79,   -79,   173,   -79,   139,   174,
 
 2002     -79,   -79,    77,   -79,   -79,    18,    51,   173,   -79,   -79,
 
 2003     -79,   -79,   -79,   -79,   -79,   114,   -79,   -79,   -79,   -79,
 
 2004     -79,   178,   179,   181,   -79,   115,   -79,   -79,   -79,   -79,
 
 2005     -79,   -79,   -79,   182,   183,   187,    18,   -79,   188,   113,
 
 2006     147,   150,   190,    51,   -79,    81,   160,   161,   -79,   162,
 
 2007     -79,   -79,   -79,   170,   -79,   -79,   -79,   -79,   -79,   -79,
 
 2012  NetconfParser::yydefact_[] =
 
 2014       0,     2,     4,     6,     0,     0,     0,     0,     1,    26,
 
 2015      18,    15,    14,    11,    12,    13,     3,    10,    16,    17,
 
 2016      34,     5,     8,     7,    28,    21,     0,    40,    30,     0,
 
 2017      29,     0,     0,    22,    36,     0,    38,    57,    59,     0,
 
 2018       0,     0,     0,    61,   133,     0,    53,     0,    41,    42,
 
 2019      45,    46,    47,    51,    52,    49,    48,    50,    27,    32,
 
 2020       0,    19,    25,     0,    39,    35,     0,     0,     0,     0,
 
 2021       0,     0,     0,     0,    33,     9,    44,    31,    23,     0,
 
 2022       0,     0,     0,    54,    55,    56,    80,     0,     0,    43,
 
 2023       0,    40,    20,    58,    60,    82,    63,     0,    24,     0,
 
 2024      92,    94,    96,    98,    91,     0,    83,    84,    87,    88,
 
 2025      89,    90,    68,     0,    64,    65,   138,     0,   135,    37,
 
 2026       0,     0,     0,     0,    81,    86,     0,    62,    67,     0,
 
 2027     137,   134,     0,     0,     0,     0,    85,    76,    78,    73,
 
 2028       0,    70,    74,    75,    66,   150,   155,     0,   153,   149,
 
 2029     147,   148,     0,   140,   143,   145,   146,   144,   136,     0,
 
 2030       0,     0,     0,     0,     0,    72,    69,     0,     0,     0,
 
 2031       0,   142,   139,   111,   113,   110,   104,   105,   106,   108,
 
 2032     109,     0,   100,   103,   107,     0,     0,     0,     0,     0,
 
 2033      71,     0,     0,   152,     0,   141,     0,     0,   102,    93,
 
 2034      95,    97,    99,    77,    79,   151,     0,   154,     0,     0,
 
 2035     101,   160,     0,   157,   112,     0,     0,   159,   156,   124,
 
 2036     129,   131,   123,   121,   122,     0,   115,   118,   119,   120,
 
 2037     170,     0,     0,     0,   175,     0,   162,   165,   166,   167,
 
 2038     168,   169,   158,     0,     0,     0,   117,   114,     0,     0,
 
 2039       0,     0,     0,   164,   161,     0,     0,     0,   116,     0,
 
 2040     172,   173,   174,     0,   163,   126,   127,   128,   125,   130,
 
 2045  NetconfParser::yypgoto_[] =
 
 2047     -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -20,   -78,
 
 2048     -79,   -29,   -79,   -79,   -79,   -79,   -79,   -79,   -27,   -79,
 
 2049     -79,   -79,   -79,   -79,    82,   -79,   119,   -22,   -19,   -18,
 
 2050     -26,   -79,   -25,   -79,   -79,   -79,   -79,   -79,    69,   -79,
 
 2051     -79,    33,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,
 
 2052      74,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -36,
 
 2053       3,   -79,   -79,   -79,   -79,   -79,   -46,   -79,   -79,   -79,
 
 2054     -79,   -79,   -79,   -79,   -79,   -79,   -79,    72,   -79,   -79,
 
 2055      32,   -79,   -79,   -79,   -79,   -79,   -79,   -79,   -79,    -9,
 
 2056     -79,   -79,   -49,   -79,   -79,   -79,   -79,   -79,   -79,   -79
 
 2060  NetconfParser::yydefgoto_[] =
 
 2062       0,     4,     5,     6,     7,    23,    27,    16,    17,    18,
 
 2063      25,    93,    32,    33,    19,    24,    29,    30,   175,    21,
 
 2064      26,    35,    63,    36,    47,    48,    49,   176,   177,   178,
 
 2065     179,    66,   180,    67,    55,    72,   113,   114,   115,   126,
 
 2066     140,   141,   142,   163,   143,   164,    56,    95,   105,   106,
 
 2067     107,   108,   120,   109,   121,   110,   122,   111,   123,   181,
 
 2068     182,   183,   196,   184,   197,   225,   226,   227,   243,   268,
 
 2069     228,   244,   229,   245,    57,    73,   117,   118,   129,   152,
 
 2070     153,   154,   167,   155,   156,   170,   157,   168,   212,   213,
 
 2071     216,   235,   236,   237,   248,   238,   239,   240,   241,   252
 
 2075  NetconfParser::yytable_[] =
 
 2077      46,    53,    54,    92,    28,    50,   137,   138,    51,    52,
 
 2078      37,    38,    39,    40,    41,    42,     8,   137,   138,     9,
 
 2079      20,    10,    22,    11,   100,   101,   102,   103,    43,    37,
 
 2080      38,    44,    45,    64,     1,     2,     3,   165,    65,    77,
 
 2081      78,   219,   166,   171,    45,   220,   221,    31,   172,    46,
 
 2082      53,    54,    45,   130,    50,    34,   131,    51,    52,    12,
 
 2083      13,    14,    15,    45,    46,    53,    54,    58,   104,    50,
 
 2084      98,    59,    51,    52,    37,    38,    39,    40,    41,    60,
 
 2085     217,    61,    62,   218,   173,   174,   230,    37,    38,   231,
 
 2086     232,   233,   234,    68,    69,   198,   198,    76,   104,   139,
 
 2087     199,   200,   149,   150,   151,   265,   266,   267,    45,   145,
 
 2088     146,    92,   147,   148,   198,   198,    75,   246,   253,   201,
 
 2089     202,    45,   247,   254,   185,   186,   187,    70,    71,    74,
 
 2090      79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
 
 2091      90,    94,    96,    97,   149,   150,   151,    91,    10,   112,
 
 2092     116,   125,   119,   124,   128,   127,   132,   133,   134,   135,
 
 2093     204,   260,   193,   159,   160,   161,   162,   169,   188,   189,
 
 2094     191,   192,   194,    99,   206,   208,   203,   205,   207,   209,
 
 2095     211,   215,   249,   250,   214,   251,   255,   256,   222,   223,
 
 2096     224,   257,   259,   261,   263,    89,   262,   144,   190,   136,
 
 2097     258,   210,   158,   195,   264,   269,   270,   271,   242,     0,
 
 2098       0,     0,     0,     0,     0,   272,     0,     0,     0,   222,
 
 2103  NetconfParser::yycheck_[] =
 
 2105      27,    27,    27,    81,    24,    27,    30,    31,    27,    27,
 
 2106      11,    12,    13,    14,    15,    16,     0,    30,    31,     5,
 
 2107       7,     7,     7,     9,    17,    18,    19,    20,    29,    11,
 
 2108      12,    32,    45,     3,    42,    43,    44,     3,     8,    59,
 
 2109      60,    23,     8,     3,    45,    27,    28,    45,     8,    76,
 
 2110      76,    76,    45,     3,    76,    10,     6,    76,    76,    45,
 
 2111      46,    47,    48,    45,    91,    91,    91,     6,    95,    91,
 
 2112      90,     3,    91,    91,    11,    12,    13,    14,    15,     4,
 
 2113       3,     8,     3,     6,    21,    22,    35,    11,    12,    38,
 
 2114      39,    40,    41,     4,     4,     3,     3,     3,   125,   126,
 
 2115       8,     8,   129,   129,   129,    24,    25,    26,    45,    33,
 
 2116      34,   189,    36,    37,     3,     3,     8,     3,     3,     8,
 
 2117       8,    45,     8,     8,   160,   161,   162,     4,     4,     4,
 
 2118      45,     4,     4,     4,    48,    48,    48,     7,     4,     4,
 
 2119       4,    45,     5,     5,   171,   171,   171,     7,     7,     7,
 
 2120       7,     3,     8,     8,     3,     6,     4,     4,     4,     4,
 
 2121     189,    48,    46,     7,     7,     7,     7,     4,     4,     4,
 
 2122       4,     4,     4,    91,     5,     4,    45,    45,    45,     4,
 
 2123       7,     7,     4,     4,    45,     4,     4,     4,   215,   215,
 
 2124     215,     4,     4,    46,     4,    76,    46,   128,   165,   125,
 
 2125     246,   198,   130,   171,   253,    45,    45,    45,   217,    -1,
 
 2126      -1,    -1,    -1,    -1,    -1,    45,    -1,    -1,    -1,   246,
 
 2131  NetconfParser::yystos_[] =
 
 2133       0,    42,    43,    44,    50,    51,    52,    53,     0,     5,
 
 2134       7,     9,    45,    46,    47,    48,    56,    57,    58,    63,
 
 2135       7,    68,     7,    54,    64,    59,    69,    55,    57,    65,
 
 2136      66,    45,    61,    62,    10,    70,    72,    11,    12,    13,
 
 2137      14,    15,    16,    29,    32,    45,    67,    73,    74,    75,
 
 2138      76,    77,    78,    79,    81,    83,    95,   123,     6,     3,
 
 2139       4,     8,     3,    71,     3,     8,    80,    82,     4,     4,
 
 2140       4,     4,    84,   124,     4,     8,     3,    57,    57,    45,
 
 2141       4,     4,     4,    48,    48,    48,     7,     4,     4,    75,
 
 2142       4,     7,    58,    60,    45,    96,     5,     5,    57,    73,
 
 2143      17,    18,    19,    20,    67,    97,    98,    99,   100,   102,
 
 2144     104,   106,     7,    85,    86,    87,     7,   125,   126,     8,
 
 2145     101,   103,   105,   107,     8,     3,    88,     6,     3,   127,
 
 2146       3,     6,     4,     4,     4,     4,    99,    30,    31,    67,
 
 2147      89,    90,    91,    93,    87,    33,    34,    36,    37,    67,
 
 2148      79,    81,   128,   129,   130,   132,   133,   135,   126,     7,
 
 2149       7,     7,     7,    92,    94,     3,     8,   131,   136,     4,
 
 2150     134,     3,     8,    21,    22,    67,    76,    77,    78,    79,
 
 2151      81,   108,   109,   110,   112,   108,   108,   108,     4,     4,
 
 2152      90,     4,     4,    46,     4,   129,   111,   113,     3,     8,
 
 2153       8,     8,     8,    45,    60,    45,     5,    45,     4,     4,
 
 2154     109,     7,   137,   138,    45,     7,   139,     3,     6,    23,
 
 2155      27,    28,    67,    79,    81,   114,   115,   116,   119,   121,
 
 2156      35,    38,    39,    40,    41,   140,   141,   142,   144,   145,
 
 2157     146,   147,   138,   117,   120,   122,     3,     8,   143,     4,
 
 2158       4,     4,   148,     3,     8,     4,     4,     4,   115,     4,
 
 2159      48,    46,    46,     4,   141,    24,    25,    26,   118,    45,
 
 2164  NetconfParser::yyr1_[] =
 
 2166       0,    49,    51,    50,    52,    50,    53,    50,    55,    54,
 
 2167      56,    57,    57,    57,    57,    57,    57,    57,    59,    58,
 
 2168      60,    61,    61,    62,    62,    62,    64,    63,    65,    65,
 
 2169      66,    66,    66,    67,    69,    68,    71,    70,    70,    72,
 
 2170      73,    73,    74,    74,    74,    75,    75,    75,    75,    75,
 
 2171      75,    75,    75,    75,    76,    77,    78,    80,    79,    82,
 
 2172      81,    84,    83,    85,    85,    86,    86,    86,    88,    87,
 
 2173      89,    89,    89,    89,    90,    90,    92,    91,    94,    93,
 
 2174      96,    95,    97,    97,    98,    98,    98,    99,    99,    99,
 
 2175      99,    99,   101,   100,   103,   102,   105,   104,   107,   106,
 
 2176     108,   108,   108,   109,   109,   109,   109,   109,   109,   109,
 
 2177     109,   111,   110,   113,   112,   114,   114,   114,   115,   115,
 
 2178     115,   115,   115,   115,   117,   116,   118,   118,   118,   120,
 
 2179     119,   122,   121,   124,   123,   125,   125,   125,   127,   126,
 
 2180     128,   128,   128,   129,   129,   129,   129,   129,   129,   129,
 
 2181     131,   130,   132,   134,   133,   136,   135,   137,   137,   137,
 
 2182     139,   138,   140,   140,   140,   141,   141,   141,   141,   141,
 
 2183     143,   142,   144,   145,   146,   148,   147
 
 2187  NetconfParser::yyr2_[] =
 
 2189       0,     2,     0,     3,     0,     3,     0,     3,     0,     4,
 
 2190       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
 
 2191       1,     0,     1,     3,     5,     2,     0,     4,     0,     1,
 
 2192       1,     3,     2,     2,     0,     4,     0,     6,     1,     2,
 
 2193       0,     1,     1,     3,     2,     1,     1,     1,     1,     1,
 
 2194       1,     1,     1,     1,     3,     3,     3,     0,     4,     0,
 
 2195       4,     0,     6,     0,     1,     1,     3,     2,     0,     4,
 
 2196       1,     3,     2,     1,     1,     1,     0,     4,     0,     4,
 
 2197       0,     6,     0,     1,     1,     3,     2,     1,     1,     1,
 
 2198       1,     1,     0,     6,     0,     6,     0,     6,     0,     6,
 
 2199       1,     3,     2,     1,     1,     1,     1,     1,     1,     1,
 
 2200       1,     0,     4,     0,     6,     1,     3,     2,     1,     1,
 
 2201       1,     1,     1,     1,     0,     4,     1,     1,     1,     0,
 
 2202       4,     0,     4,     0,     6,     1,     3,     2,     0,     4,
 
 2203       1,     3,     2,     1,     1,     1,     1,     1,     1,     1,
 
 2204       0,     4,     3,     0,     4,     0,     6,     1,     3,     2,
 
 2205       0,     4,     1,     3,     2,     1,     1,     1,     1,     1,
 
 2210#if NETCONF_DEBUG || 1 
 2214  const NetconfParser::yytname_[] =
 
 2216  "\"end of file\"", 
"error", 
"\"invalid token\"", 
"\",\"", 
"\":\"",
 
 2217  "\"[\"", 
"\"]\"", 
"\"{\"", 
"\"}\"", 
"\"null\"", 
"\"Netconf\"",
 
 2218  "\"user-context\"", 
"\"comment\"", 
"\"boot-update\"",
 
 2219  "\"subscribe-changes\"", 
"\"validate-changes\"", 
"\"managed-servers\"",
 
 2220  "\"dhcp4\"", 
"\"dhcp6\"", 
"\"d2\"", 
"\"ca\"", 
"\"model\"",
 
 2221  "\"control-socket\"", 
"\"socket-type\"", 
"\"unix\"", 
"\"http\"",
 
 2222  "\"stdout\"", 
"\"socket-name\"", 
"\"socket-url\"", 
"\"hooks-libraries\"",
 
 2223  "\"library\"", 
"\"parameters\"", 
"\"loggers\"", 
"\"name\"",
 
 2224  "\"output-options\"", 
"\"output\"", 
"\"debuglevel\"", 
"\"severity\"",
 
 2225  "\"flush\"", 
"\"maxsize\"", 
"\"maxver\"", 
"\"pattern\"", 
"START_JSON",
 
 2226  "START_NETCONF", 
"START_SUB_NETCONF", 
"\"constant string\"",
 
 2227  "\"integer\"", 
"\"floating point\"", 
"\"boolean\"", 
"$accept", 
"start",
 
 2228  "$@1", 
"$@2", 
"$@3", 
"sub_netconf", 
"$@4", 
"json", 
"value", 
"map", 
"$@5",
 
 2229  "map_value", 
"map_content", 
"not_empty_map", 
"list_generic", 
"$@6",
 
 2230  "list_content", 
"not_empty_list", 
"unknown_map_entry",
 
 2231  "netconf_syntax_map", 
"$@7", 
"global_object", 
"$@8",
 
 2232  "global_object_comma", 
"global_params", 
"not_empty_global_params",
 
 2233  "global_param", 
"boot_update", 
"subscribe_changes", 
"validate_changes",
 
 2234  "user_context", 
"$@9", 
"comment", 
"$@10", 
"hooks_libraries", 
"$@11",
 
 2235  "hooks_libraries_list", 
"not_empty_hooks_libraries_list",
 
 2236  "hooks_library", 
"$@12", 
"hooks_params", 
"hooks_param", 
"library",
 
 2237  "$@13", 
"parameters", 
"$@14", 
"managed_servers", 
"$@15",
 
 2238  "servers_entries", 
"not_empty_servers_entries", 
"server_entry",
 
 2239  "dhcp4_server", 
"$@16", 
"dhcp6_server", 
"$@17", 
"d2_server", 
"$@18",
 
 2240  "ca_server", 
"$@19", 
"managed_server_params", 
"managed_server_param",
 
 2241  "model", 
"$@20", 
"control_socket", 
"$@21", 
"control_socket_params",
 
 2242  "control_socket_param", 
"socket_type", 
"$@22", 
"socket_type_value",
 
 2243  "socket_name", 
"$@23", 
"socket_url", 
"$@24", 
"loggers", 
"$@25",
 
 2244  "loggers_entries", 
"logger_entry", 
"$@26", 
"logger_params",
 
 2245  "logger_param", 
"name", 
"$@27", 
"debuglevel", 
"severity", 
"$@28",
 
 2246  "output_options_list", 
"$@29", 
"output_options_list_content",
 
 2247  "output_entry", 
"$@30", 
"output_params_list", 
"output_params", 
"output",
 
 2248  "$@31", 
"flush", 
"maxsize", 
"maxver", 
"pattern", 
"$@32", YY_NULLPTR
 
 2255  NetconfParser::yyrline_[] =
 
 2257       0,   126,   126,   126,   127,   127,   128,   128,   136,   136,
 
 2258     147,   153,   154,   155,   156,   157,   158,   159,   163,   163,
 
 2259     174,   179,   180,   188,   193,   199,   204,   204,   210,   211,
 
 2260     214,   218,   222,   234,   242,   242,   254,   254,   272,   275,
 
 2261     280,   281,   284,   285,   286,   293,   294,   295,   296,   297,
 
 2262     298,   299,   300,   301,   304,   310,   316,   322,   322,   347,
 
 2263     347,   375,   375,   386,   387,   390,   391,   392,   397,   397,
 
 2264     405,   406,   407,   410,   413,   414,   417,   417,   426,   426,
 
 2265     437,   437,   448,   449,   452,   453,   454,   462,   463,   464,
 
 2266     465,   466,   470,   470,   482,   482,   494,   494,   506,   506,
 
 2267     518,   519,   520,   526,   527,   528,   529,   530,   531,   532,
 
 2268     533,   537,   537,   547,   547,   559,   560,   561,   566,   567,
 
 2269     568,   569,   570,   571,   574,   574,   583,   584,   585,   588,
 
 2270     588,   598,   598,   611,   611,   624,   625,   626,   632,   632,
 
 2271     640,   641,   642,   647,   648,   649,   650,   651,   652,   653,
 
 2272     656,   656,   665,   671,   671,   680,   680,   691,   692,   693,
 
 2273     698,   698,   706,   707,   708,   713,   714,   715,   716,   717,
 
 2274     720,   720,   729,   735,   741,   747,   747
 
 2278  NetconfParser::yy_stack_print_ ()
 const 
 2280    *yycdebug_ << 
"Stack now";
 
 2281    for (stack_type::const_iterator
 
 2282           i = yystack_.begin (),
 
 2283           i_end = yystack_.end ();
 
 2285      *yycdebug_ << 
' ' << int (i->state);
 
 2290  NetconfParser::yy_reduce_print_ (
int yyrule)
 const 
 2292    int yylno = yyrline_[yyrule];
 
 2293    int yynrhs = yyr2_[yyrule];
 
 2295    *yycdebug_ << 
"Reducing stack by rule " << yyrule - 1
 
 2296               << 
" (line " << yylno << 
"):\n";
 
 2298    for (
int yyi = 0; yyi < yynrhs; yyi++)
 
 2300                       yystack_[(yynrhs) - (yyi + 1)]);
 
 2305#line 14 "netconf_parser.yy" 
 2307#line 2308 "netconf_parser.cc" 
 2309#line 756 "netconf_parser.yy" 
 2314                                   const string& what) {
 
 2315    ctx.error(loc, what);
 
 
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_REDUCE_PRINT(Rule)
#define YY_SYMBOL_PRINT(Title, Symbol)
#define YY_CAST(Type, Val)
#define YY_MOVE_REF(Type)
Notes: IntElement type is changed to int64_t.
int expected_tokens(symbol_kind_type yyarg[], int yyargn) const
Put in YYARG at most YYARGN of the expected tokens, and return the number of tokens stored in YYARG.
symbol_kind_type token() const YY_NOEXCEPT
context(const NetconfParser &yyparser, const symbol_type &yyla)
const symbol_type & lookahead() const YY_NOEXCEPT
T & as() YY_NOEXCEPT
Accessor to a built T.
T & emplace()
Instantiate an empty T in here.
virtual int parse()
Parse.
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
NetconfParser(isc::netconf::ParserContext &ctx_yyarg)
Build a parser object.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static const symbol_kind_type YYNTOKENS
The number of tokens.
location location_type
Symbol locations.
Parser context is a wrapper around flex/bison instances dedicated to Netconf-agent config file parser...
void merge(ElementPtr element, ConstElementPtr other)
Merges the data from other into element.
boost::shared_ptr< const Element > ConstElementPtr
boost::shared_ptr< Element > ElementPtr
Defines the logger used by the top-level component of kea-lfc.
Define the isc::netconf::parser class.
bool empty() const YY_NOEXCEPT
Whether empty.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
value_type value
The semantic value.
location_type location
The location.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
symbol_kind_type kind_
The symbol kind.
"External" symbols: returned by the scanner.
Syntax errors thrown from user actions.
~syntax_error() YY_NOEXCEPT YY_NOTHROW