38#define yylex netconf_lex
46#line 33 "netconf_parser.yy"
50#line 51 "netconf_parser.cc"
54# if defined YYENABLE_NLS && YYENABLE_NLS
57# define YY_(msgid) dgettext ("bison-runtime", msgid)
61# define YY_(msgid) msgid
67# if defined __GNUC__ && !defined __EXCEPTIONS
68# define YY_EXCEPTIONS 0
70# define YY_EXCEPTIONS 1
74#define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
79# ifndef YYLLOC_DEFAULT
80# define YYLLOC_DEFAULT(Current, Rhs, N) \
84 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
85 (Current).end = YYRHSLOC (Rhs, N).end; \
89 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
96#define YYUSE(E) ((void) (E))
102# define YYCDEBUG if (yydebug_) (*yycdebug_)
104# define YY_SYMBOL_PRINT(Title, Symbol) \
108 *yycdebug_ << Title << ' '; \
109 yy_print_ (*yycdebug_, Symbol); \
110 *yycdebug_ << '\n'; \
114# define YY_REDUCE_PRINT(Rule) \
117 yy_reduce_print_ (Rule); \
120# define YY_STACK_PRINT() \
128# define YYCDEBUG if (false) std::cerr
129# define YY_SYMBOL_PRINT(Title, Symbol) YYUSE (Symbol)
130# define YY_REDUCE_PRINT(Rule) static_cast<void> (0)
131# define YY_STACK_PRINT() static_cast<void> (0)
135#define yyerrok (yyerrstatus_ = 0)
136#define yyclearin (yyla.clear ())
138#define YYACCEPT goto yyacceptlab
139#define YYABORT goto yyabortlab
140#define YYERROR goto yyerrorlab
141#define YYRECOVERING() (!!yyerrstatus_)
143#line 14 "netconf_parser.yy"
144namespace isc {
namespace netconf {
145#line 146 "netconf_parser.cc"
153 NetconfParser::yytnamerr_ (
const char *yystr)
157 std::string yyr =
"";
158 char const *yyp = yystr;
165 goto do_not_strip_quotes;
169 goto do_not_strip_quotes;
178 do_not_strip_quotes: ;
190 yycdebug_ (&std::cerr),
206 NetconfParser::by_state::by_state ()
207 : state (empty_state)
210 NetconfParser::by_state::by_state (
const by_state& other)
211 : state (other.state)
215 NetconfParser::by_state::clear ()
221 NetconfParser::by_state::move (by_state& that)
227 NetconfParser::by_state::by_state (state_type s)
232 NetconfParser::by_state::type_get ()
const
234 if (state == empty_state)
237 return yystos_[state];
240 NetconfParser::stack_symbol_type::stack_symbol_type ()
243 NetconfParser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
246 switch (that.type_get ())
255 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
259 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
263 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
267 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
274#if 201103L <= YY_CPLUSPLUS
276 that.state = empty_state;
280 NetconfParser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
281 : super_type (s,
YY_MOVE (that.location))
283 switch (that.type_get ())
292 value.move<
bool > (
YY_MOVE (that.value));
296 value.move<
double > (
YY_MOVE (that.value));
300 value.move< int64_t > (
YY_MOVE (that.value));
304 value.move< std::string > (
YY_MOVE (that.value));
315#if YY_CPLUSPLUS < 201103L
316 NetconfParser::stack_symbol_type&
317 NetconfParser::stack_symbol_type::operator= (stack_symbol_type& that)
320 switch (that.type_get ())
329 value.move<
bool > (that.value);
333 value.move<
double > (that.value);
337 value.move< int64_t > (that.value);
341 value.move< std::string > (that.value);
348 location = that.location;
350 that.state = empty_state;
355 template <
typename Base>
357 NetconfParser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
364 template <
typename Base>
366 NetconfParser::yy_print_ (std::ostream& yyo,
367 const basic_symbol<Base>& yysym)
const
369 std::ostream& yyoutput = yyo;
376 yyo << (yytype < yyntokens_ ?
"token" :
"nterm")
377 <<
' ' << yytname_[yytype] <<
" ("
378 << yysym.location <<
": ";
383#line 107 "netconf_parser.yy"
384 { yyoutput << yysym.value.template as< std::string > (); }
385#line 386 "netconf_parser.cc"
390#line 107 "netconf_parser.yy"
391 { yyoutput << yysym.value.template as< int64_t > (); }
392#line 393 "netconf_parser.cc"
397#line 107 "netconf_parser.yy"
398 { yyoutput << yysym.value.template as< double > (); }
399#line 400 "netconf_parser.cc"
404#line 107 "netconf_parser.yy"
405 { yyoutput << yysym.value.template as< bool > (); }
406#line 407 "netconf_parser.cc"
411#line 107 "netconf_parser.yy"
412 { yyoutput << yysym.value.template as< ElementPtr > (); }
413#line 414 "netconf_parser.cc"
418#line 107 "netconf_parser.yy"
419 { yyoutput << yysym.value.template as< ElementPtr > (); }
420#line 421 "netconf_parser.cc"
425#line 107 "netconf_parser.yy"
426 { yyoutput << yysym.value.template as< ElementPtr > (); }
427#line 428 "netconf_parser.cc"
439 NetconfParser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
447 NetconfParser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym)
449#if 201103L <= YY_CPLUSPLUS
450 yypush_ (m, stack_symbol_type (s, std::move (sym)));
452 stack_symbol_type ss (s, sym);
458 NetconfParser::yypop_ (
int n)
465 NetconfParser::debug_stream ()
const
471 NetconfParser::set_debug_stream (std::ostream& o)
477 NetconfParser::debug_level_type
478 NetconfParser::debug_level ()
const
484 NetconfParser::set_debug_level (debug_level_type l)
490 NetconfParser::state_type
491 NetconfParser::yy_lr_goto_state_ (state_type yystate,
int yysym)
493 int yyr = yypgoto_[yysym - yyntokens_] + yystate;
494 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
495 return yytable_[yyr];
497 return yydefgoto_[yysym - yyntokens_];
501 NetconfParser::yy_pact_value_is_default_ (
int yyvalue)
503 return yyvalue == yypact_ninf_;
507 NetconfParser::yy_table_value_is_error_ (
int yyvalue)
509 return yyvalue == yytable_ninf_;
528 int yyerrstatus_ = 0;
534 stack_symbol_type yyerror_range[3];
551 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
555 YYCDEBUG <<
"Entering state " << yystack_[0].state <<
'\n';
558 if (yystack_[0].state == yyfinal_)
566 yyn = yypact_[yystack_[0].state];
567 if (yy_pact_value_is_default_ (yyn))
579 yyla.
move (yylookahead);
593 yyn += yyla.type_get ();
594 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.type_get ())
601 if (yy_table_value_is_error_ (yyn))
612 yypush_ (
"Shifting", yyn,
YY_MOVE (yyla));
619 yyn = yydefact_[yystack_[0].state];
630 stack_symbol_type yylhs;
631 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
644 yylhs.value.emplace<
bool > ();
648 yylhs.value.emplace<
double > ();
652 yylhs.value.emplace< int64_t > ();
656 yylhs.value.emplace< std::string > ();
668 yyerror_range[1].location = yylhs.location;
680#line 118 "netconf_parser.yy"
682#line 683 "netconf_parser.cc"
686#line 119 "netconf_parser.yy"
688#line 689 "netconf_parser.cc"
692#line 120 "netconf_parser.yy"
694#line 695 "netconf_parser.cc"
698#line 128 "netconf_parser.yy"
704#line 705 "netconf_parser.cc"
708#line 132 "netconf_parser.yy"
712#line 713 "netconf_parser.cc"
716#line 139 "netconf_parser.yy"
721#line 722 "netconf_parser.cc"
725#line 145 "netconf_parser.yy"
727#line 728 "netconf_parser.cc"
731#line 146 "netconf_parser.yy"
733#line 734 "netconf_parser.cc"
737#line 147 "netconf_parser.yy"
739#line 740 "netconf_parser.cc"
743#line 148 "netconf_parser.yy"
745#line 746 "netconf_parser.cc"
749#line 149 "netconf_parser.yy"
751#line 752 "netconf_parser.cc"
755#line 150 "netconf_parser.yy"
757#line 758 "netconf_parser.cc"
761#line 151 "netconf_parser.yy"
763#line 764 "netconf_parser.cc"
767#line 155 "netconf_parser.yy"
774#line 775 "netconf_parser.cc"
778#line 160 "netconf_parser.yy"
784#line 785 "netconf_parser.cc"
788#line 166 "netconf_parser.yy"
790#line 791 "netconf_parser.cc"
794#line 180 "netconf_parser.yy"
797 ctx.
stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as<
ElementPtr > ());
799#line 800 "netconf_parser.cc"
803#line 184 "netconf_parser.yy"
807 ctx.
stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as<
ElementPtr > ());
809#line 810 "netconf_parser.cc"
813#line 191 "netconf_parser.yy"
818#line 819 "netconf_parser.cc"
822#line 194 "netconf_parser.yy"
825#line 826 "netconf_parser.cc"
829#line 201 "netconf_parser.yy"
834#line 835 "netconf_parser.cc"
838#line 205 "netconf_parser.yy"
843#line 844 "netconf_parser.cc"
847#line 218 "netconf_parser.yy"
850 const std::string& keyword = yystack_[1].value.as< std::string > ();
851 error(yystack_[1].location,
852 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
854#line 855 "netconf_parser.cc"
858#line 226 "netconf_parser.yy"
865#line 866 "netconf_parser.cc"
869#line 231 "netconf_parser.yy"
875#line 876 "netconf_parser.cc"
879#line 248 "netconf_parser.yy"
887 ctx.
stack_.back()->set(
"Netconf", m);
891#line 892 "netconf_parser.cc"
895#line 258 "netconf_parser.yy"
902#line 903 "netconf_parser.cc"
906#line 285 "netconf_parser.yy"
909 ctx.
stack_.back()->set(
"boot-update", flag);
911#line 912 "netconf_parser.cc"
915#line 290 "netconf_parser.yy"
918 ctx.
stack_.back()->set(
"subscribe-changes", flag);
920#line 921 "netconf_parser.cc"
924#line 295 "netconf_parser.yy"
927 ctx.
stack_.back()->set(
"validate-changes", flag);
929#line 930 "netconf_parser.cc"
933#line 300 "netconf_parser.yy"
937#line 938 "netconf_parser.cc"
941#line 302 "netconf_parser.yy"
950 if ((old->size() != 1) || !old->contains(
"comment")) {
951 std::stringstream msg;
952 msg <<
"duplicate user-context entries (previous at "
953 << old->getPosition().str() <<
")";
954 error(yystack_[3].location, msg.str());
957 user_context->set(
"comment", old->get(
"comment"));
961 parent->set(
"user-context", user_context);
964#line 965 "netconf_parser.cc"
968#line 325 "netconf_parser.yy"
972#line 973 "netconf_parser.cc"
976#line 327 "netconf_parser.yy"
981 user_context->set(
"comment", comment);
987 if (old->contains(
"comment")) {
988 std::stringstream msg;
989 msg <<
"duplicate user-context/comment entries (previous at "
990 << old->getPosition().str() <<
")";
991 error(yystack_[3].location, msg.str());
994 merge(user_context, old);
998 parent->set(
"user-context", user_context);
1001#line 1002 "netconf_parser.cc"
1005#line 353 "netconf_parser.yy"
1008 ctx.
stack_.back()->set(
"hooks-libraries", l);
1012#line 1013 "netconf_parser.cc"
1016#line 358 "netconf_parser.yy"
1021#line 1022 "netconf_parser.cc"
1025#line 371 "netconf_parser.yy"
1028 ctx.
stack_.back()->add(m);
1031#line 1032 "netconf_parser.cc"
1035#line 375 "netconf_parser.yy"
1039#line 1040 "netconf_parser.cc"
1043#line 388 "netconf_parser.yy"
1047#line 1048 "netconf_parser.cc"
1051#line 390 "netconf_parser.yy"
1054 ctx.
stack_.back()->set(
"library", lib);
1057#line 1058 "netconf_parser.cc"
1061#line 396 "netconf_parser.yy"
1065#line 1066 "netconf_parser.cc"
1069#line 398 "netconf_parser.yy"
1071 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as<
ElementPtr > ());
1074#line 1075 "netconf_parser.cc"
1078#line 406 "netconf_parser.yy"
1081 ctx.
stack_.back()->set(
"managed-servers", m);
1085#line 1086 "netconf_parser.cc"
1089#line 411 "netconf_parser.yy"
1094#line 1095 "netconf_parser.cc"
1098#line 435 "netconf_parser.yy"
1101 ctx.
stack_.back()->set(
"dhcp4", m);
1105#line 1106 "netconf_parser.cc"
1109#line 440 "netconf_parser.yy"
1114#line 1115 "netconf_parser.cc"
1118#line 446 "netconf_parser.yy"
1121 ctx.
stack_.back()->set(
"dhcp6", m);
1125#line 1126 "netconf_parser.cc"
1129#line 451 "netconf_parser.yy"
1134#line 1135 "netconf_parser.cc"
1138#line 457 "netconf_parser.yy"
1141 ctx.
stack_.back()->set(
"d2", m);
1145#line 1146 "netconf_parser.cc"
1149#line 462 "netconf_parser.yy"
1154#line 1155 "netconf_parser.cc"
1158#line 468 "netconf_parser.yy"
1161 ctx.
stack_.back()->set(
"ca", m);
1165#line 1166 "netconf_parser.cc"
1169#line 473 "netconf_parser.yy"
1174#line 1175 "netconf_parser.cc"
1178#line 495 "netconf_parser.yy"
1182#line 1183 "netconf_parser.cc"
1186#line 497 "netconf_parser.yy"
1189 ctx.
stack_.back()->set(
"model", model);
1192#line 1193 "netconf_parser.cc"
1196#line 504 "netconf_parser.yy"
1199 ctx.
stack_.back()->set(
"control-socket", m);
1203#line 1204 "netconf_parser.cc"
1207#line 509 "netconf_parser.yy"
1212#line 1213 "netconf_parser.cc"
1216#line 527 "netconf_parser.yy"
1220#line 1221 "netconf_parser.cc"
1224#line 529 "netconf_parser.yy"
1226 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as<
ElementPtr > ());
1229#line 1230 "netconf_parser.cc"
1233#line 535 "netconf_parser.yy"
1235#line 1236 "netconf_parser.cc"
1239#line 536 "netconf_parser.yy"
1241#line 1242 "netconf_parser.cc"
1245#line 537 "netconf_parser.yy"
1247#line 1248 "netconf_parser.cc"
1251#line 540 "netconf_parser.yy"
1255#line 1256 "netconf_parser.cc"
1259#line 542 "netconf_parser.yy"
1262 ctx.
stack_.back()->set(
"socket-name", name);
1265#line 1266 "netconf_parser.cc"
1269#line 549 "netconf_parser.yy"
1273#line 1274 "netconf_parser.cc"
1277#line 551 "netconf_parser.yy"
1280 ctx.
stack_.back()->set(
"socket-url", url);
1283#line 1284 "netconf_parser.cc"
1287#line 564 "netconf_parser.yy"
1290 ctx.
stack_.back()->set(
"Logging", m);
1294#line 1295 "netconf_parser.cc"
1298#line 569 "netconf_parser.yy"
1303#line 1304 "netconf_parser.cc"
1307#line 586 "netconf_parser.yy"
1310 ctx.
stack_.back()->set(
"loggers", l);
1314#line 1315 "netconf_parser.cc"
1318#line 591 "netconf_parser.yy"
1323#line 1324 "netconf_parser.cc"
1327#line 603 "netconf_parser.yy"
1330 ctx.
stack_.back()->add(l);
1333#line 1334 "netconf_parser.cc"
1337#line 607 "netconf_parser.yy"
1341#line 1342 "netconf_parser.cc"
1345#line 624 "netconf_parser.yy"
1349#line 1350 "netconf_parser.cc"
1353#line 626 "netconf_parser.yy"
1356 ctx.
stack_.back()->set(
"name", name);
1359#line 1360 "netconf_parser.cc"
1363#line 632 "netconf_parser.yy"
1366 ctx.
stack_.back()->set(
"debuglevel", dl);
1368#line 1369 "netconf_parser.cc"
1372#line 637 "netconf_parser.yy"
1376#line 1377 "netconf_parser.cc"
1380#line 639 "netconf_parser.yy"
1383 ctx.
stack_.back()->set(
"severity", sev);
1386#line 1387 "netconf_parser.cc"
1390#line 645 "netconf_parser.yy"
1393 ctx.
stack_.back()->set(
"output_options", l);
1397#line 1398 "netconf_parser.cc"
1401#line 650 "netconf_parser.yy"
1406#line 1407 "netconf_parser.cc"
1410#line 659 "netconf_parser.yy"
1413 ctx.
stack_.back()->add(m);
1416#line 1417 "netconf_parser.cc"
1420#line 663 "netconf_parser.yy"
1424#line 1425 "netconf_parser.cc"
1428#line 677 "netconf_parser.yy"
1432#line 1433 "netconf_parser.cc"
1436#line 679 "netconf_parser.yy"
1439 ctx.
stack_.back()->set(
"output", sev);
1442#line 1443 "netconf_parser.cc"
1446#line 685 "netconf_parser.yy"
1449 ctx.
stack_.back()->set(
"flush", flush);
1451#line 1452 "netconf_parser.cc"
1455#line 690 "netconf_parser.yy"
1458 ctx.
stack_.back()->set(
"maxsize", maxsize);
1460#line 1461 "netconf_parser.cc"
1464#line 695 "netconf_parser.yy"
1467 ctx.
stack_.back()->set(
"maxver", maxver);
1469#line 1470 "netconf_parser.cc"
1473#line 1474 "netconf_parser.cc"
1491 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1503 error (yyla.
location, yysyntax_error_ (yystack_[0].state, yyla));
1507 yyerror_range[1].location = yyla.
location;
1508 if (yyerrstatus_ == 3)
1514 if (yyla.type_get () == yyeof_)
1516 else if (!yyla.
empty ())
1518 yy_destroy_ (
"Error: discarding", yyla);
1549 stack_symbol_type error_token;
1552 yyn = yypact_[yystack_[0].state];
1553 if (!yy_pact_value_is_default_ (yyn))
1556 if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
1558 yyn = yytable_[yyn];
1565 if (yystack_.size () == 1)
1568 yyerror_range[1].location = yystack_[0].location;
1569 yy_destroy_ (
"Error: popping", yystack_[0]);
1574 yyerror_range[2].location = yyla.
location;
1578 error_token.state = yyn;
1579 yypush_ (
"Shifting",
YY_MOVE (error_token));
1595 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1600 while (1 < yystack_.size ())
1602 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1611 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1615 yy_destroy_ (YY_NULLPTR, yyla);
1617 while (1 < yystack_.
size ())
1619 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1635 NetconfParser::yysyntax_error_ (state_type yystate,
const symbol_type& yyla)
const
1641 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1643 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1672 int yytoken = yyla.type_get ();
1673 yyarg[yycount++] = yytname_[yytoken];
1674 int yyn = yypact_[yystate];
1675 if (!yy_pact_value_is_default_ (yyn))
1680 int yyxbegin = yyn < 0 ? -yyn : 0;
1682 int yychecklim = yylast_ - yyn + 1;
1683 int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
1684 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1685 if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
1686 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
1688 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1694 yyarg[yycount++] = yytname_[yyx];
1699 char const* yyformat = YY_NULLPTR;
1702#define YYCASE_(N, S) \
1708 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
1709 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1710 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1711 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1712 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1719 for (
char const* yyp = yyformat; *yyp; ++yyp)
1720 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
1722 yyres += yytnamerr_ (yyarg[yyi++]);
1731 const signed char NetconfParser::yypact_ninf_ = -64;
1733 const signed char NetconfParser::yytable_ninf_ = -1;
1736 NetconfParser::yypact_[] =
1738 64, -64, -64, -64, 13, 9, 18, 29, -64, -64,
1739 -64, -64, -64, -64, -64, -64, -64, -64, -64, -64,
1740 -64, -64, -64, -64, 9, -22, 10, 15, -64, 1,
1741 70, 79, 74, 106, -64, -64, 7, -64, -64, -64,
1742 -64, -64, 113, 116, 117, 118, -64, 119, -64, 120,
1743 121, -64, -64, -64, -64, -64, -64, -64, -64, -64,
1744 9, 9, -64, 80, 122, 123, 10, -64, 125, 126,
1745 83, 84, 85, 127, 131, -64, -64, 15, -64, -64,
1746 132, 130, 133, -64, 134, 97, -64, -64, -64, -64,
1747 138, -64, 9, 15, 105, -64, -64, -64, 44, 137,
1748 -64, 139, -64, 16, -64, -64, -64, -64, -64, -64,
1749 -64, 140, 136, -64, -64, -64, -64, -64, -64, 143,
1750 142, -64, -64, 146, 105, -64, 147, 148, 152, 153,
1751 -64, 44, 2, -64, 137, 141, -64, 154, 155, 156,
1752 157, -64, -64, -64, -64, 40, -64, -64, -64, -64,
1753 158, 65, 65, 65, 65, 162, 163, 88, -64, -64,
1754 43, -64, -64, -64, -64, -64, -64, -64, -64, -64,
1755 62, -64, -64, -64, 82, 91, 92, 114, 9, -64,
1756 0, 158, -64, 164, 165, 65, -64, -64, -64, -64,
1757 -64, -64, -64, -64, 166, -64, -64, -64, -64, 93,
1758 -64, -64, -64, -64, -64, -64, 115, 167, -64, 168,
1759 169, 129, 172, 0, -64, -64, -6, 135, 173, -64,
1760 149, -64, -64, -64, -64, -64, -64, -64, 94, -64,
1761 -64, -64, -64, -64, 170, -64, 175, 177, 178, -6,
1762 -64, -64, 78, -64, 87, 150, 151, -64, 52, 170,
1763 -64, -64, -64, -64, -64, -64, -64, -64, 179, 180,
1764 181, 95, -64, -64, -64, -64, -64, -64, 188, 145,
1765 159, 160, 52, -64, 171, -64, -64, -64, -64, -64
1769 NetconfParser::yydefact_[] =
1771 0, 2, 4, 6, 0, 0, 0, 0, 1, 25,
1772 18, 15, 14, 11, 12, 13, 3, 10, 16, 17,
1773 32, 5, 8, 7, 27, 21, 0, 40, 29, 0,
1774 28, 0, 0, 22, 38, 126, 0, 34, 36, 37,
1775 55, 57, 0, 0, 0, 0, 59, 0, 51, 0,
1776 41, 42, 44, 45, 46, 49, 50, 48, 47, 26,
1777 0, 0, 19, 0, 0, 0, 0, 33, 0, 0,
1778 0, 0, 0, 0, 0, 31, 9, 0, 30, 23,
1779 0, 0, 0, 35, 0, 0, 52, 53, 54, 76,
1780 0, 43, 0, 40, 0, 20, 56, 58, 78, 61,
1781 24, 0, 131, 0, 128, 130, 87, 89, 91, 93,
1782 86, 0, 79, 80, 82, 83, 84, 85, 65, 0,
1783 62, 63, 39, 0, 0, 127, 0, 0, 0, 0,
1784 77, 0, 0, 60, 0, 0, 129, 0, 0, 0,
1785 0, 81, 72, 74, 69, 0, 67, 70, 71, 64,
1786 0, 0, 0, 0, 0, 0, 0, 0, 66, 135,
1787 0, 133, 105, 107, 104, 98, 99, 100, 102, 103,
1788 0, 95, 97, 101, 0, 0, 0, 0, 0, 68,
1789 0, 0, 132, 0, 0, 0, 88, 90, 92, 94,
1790 73, 75, 146, 151, 0, 149, 145, 143, 144, 0,
1791 137, 139, 141, 142, 140, 134, 0, 0, 96, 0,
1792 0, 0, 0, 0, 136, 106, 0, 0, 0, 148,
1793 0, 138, 117, 122, 124, 116, 114, 115, 0, 109,
1794 111, 112, 113, 147, 0, 150, 0, 0, 0, 0,
1795 108, 155, 0, 153, 0, 0, 0, 110, 0, 0,
1796 152, 119, 120, 121, 118, 123, 125, 163, 0, 0,
1797 0, 0, 157, 159, 160, 161, 162, 154, 0, 0,
1798 0, 0, 0, 156, 0, 165, 166, 167, 158, 164
1802 NetconfParser::yypgoto_[] =
1804 -64, -64, -64, -64, -64, -64, -64, -64, -20, 124,
1805 -64, -64, -64, -64, -64, -64, -64, -64, -27, -64,
1806 -64, -64, 144, -64, -64, 104, -64, 161, -24, -19,
1807 -18, -26, -64, -25, -64, -64, -64, -64, -64, 37,
1808 -64, -64, 41, -64, -64, -64, -64, -64, -64, -64,
1809 -64, 68, -64, -64, -64, -64, -64, -64, -64, -64,
1810 -38, 17, -64, -64, -64, -64, -64, -39, -64, -64,
1811 -64, -64, -64, -64, -64, -64, -64, -64, 77, -64,
1812 -64, -64, 22, -64, -64, -9, -64, -64, -64, -64,
1813 -64, -64, -64, -64, -42, -64, -64, -63, -64, -64,
1818 NetconfParser::yydefgoto_[] =
1820 -1, 4, 5, 6, 7, 23, 27, 16, 17, 18,
1821 25, 96, 32, 33, 19, 24, 29, 30, 164, 21,
1822 26, 36, 37, 38, 64, 49, 50, 51, 165, 166,
1823 167, 168, 68, 169, 69, 57, 74, 119, 120, 121,
1824 132, 145, 146, 147, 155, 148, 156, 58, 98, 111,
1825 112, 113, 114, 126, 115, 127, 116, 128, 117, 129,
1826 170, 171, 172, 183, 173, 184, 228, 229, 230, 236,
1827 254, 231, 237, 232, 238, 39, 65, 103, 104, 105,
1828 123, 160, 161, 180, 199, 200, 201, 209, 202, 203,
1829 212, 204, 210, 242, 243, 248, 261, 262, 263, 268,
1833 const unsigned short
1834 NetconfParser::yytable_[] =
1836 48, 55, 56, 52, 28, 40, 41, 59, 53, 54,
1837 66, 40, 41, 8, 9, 67, 10, 222, 11, 124,
1838 34, 223, 224, 31, 125, 20, 40, 41, 42, 43,
1839 44, 45, 142, 143, 192, 193, 22, 194, 195, 47,
1840 78, 79, 35, 157, 46, 47, 181, 47, 158, 182,
1841 48, 55, 56, 52, 12, 13, 14, 15, 53, 54,
1842 47, 106, 107, 108, 109, 185, 48, 55, 56, 52,
1843 186, 110, 100, 60, 53, 54, 40, 41, 42, 43,
1844 44, 249, 62, 61, 250, 185, 162, 163, 257, 47,
1845 187, 258, 259, 260, 185, 185, 213, 239, 272, 188,
1846 189, 214, 240, 273, 110, 144, 1, 2, 3, 63,
1847 47, 251, 252, 253, 174, 175, 176, 70, 142, 143,
1848 71, 72, 73, 75, 77, 80, 81, 82, 76, 84,
1849 85, 86, 87, 88, 89, 90, 92, 93, 102, 131,
1850 94, 10, 97, 99, 118, 134, 150, 122, 130, 133,
1851 135, 137, 138, 196, 197, 198, 139, 140, 191, 190,
1852 215, 151, 152, 153, 154, 159, 177, 178, 206, 207,
1853 211, 149, 217, 218, 216, 219, 220, 241, 234, 244,
1854 233, 245, 246, 269, 270, 271, 196, 197, 198, 225,
1855 226, 227, 274, 275, 235, 255, 256, 101, 179, 141,
1856 247, 136, 208, 205, 221, 276, 277, 267, 95, 278,
1857 83, 0, 225, 226, 227, 0, 279, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0, 91
1863 NetconfParser::yycheck_[] =
1865 27, 27, 27, 27, 24, 11, 12, 6, 27, 27,
1866 3, 11, 12, 0, 5, 8, 7, 23, 9, 3,
1867 10, 27, 28, 45, 8, 7, 11, 12, 13, 14,
1868 15, 16, 30, 31, 34, 35, 7, 37, 38, 45,
1869 60, 61, 32, 3, 29, 45, 3, 45, 8, 6,
1870 77, 77, 77, 77, 45, 46, 47, 48, 77, 77,
1871 45, 17, 18, 19, 20, 3, 93, 93, 93, 93,
1872 8, 98, 92, 3, 93, 93, 11, 12, 13, 14,
1873 15, 3, 8, 4, 6, 3, 21, 22, 36, 45,
1874 8, 39, 40, 41, 3, 3, 3, 3, 3, 8,
1875 8, 8, 8, 8, 131, 132, 42, 43, 44, 3,
1876 45, 24, 25, 26, 152, 153, 154, 4, 30, 31,
1877 4, 4, 4, 4, 3, 45, 4, 4, 8, 4,
1878 4, 48, 48, 48, 7, 4, 4, 7, 33, 3,
1879 7, 7, 45, 5, 7, 3, 5, 8, 8, 6,
1880 4, 4, 4, 180, 180, 180, 4, 4, 178, 45,
1881 45, 7, 7, 7, 7, 7, 4, 4, 4, 4,
1882 4, 134, 4, 4, 7, 46, 4, 7, 5, 4,
1883 45, 4, 4, 4, 4, 4, 213, 213, 213, 216,
1884 216, 216, 4, 48, 45, 45, 45, 93, 157, 131,
1885 239, 124, 185, 181, 213, 46, 46, 249, 84, 272,
1886 66, -1, 239, 239, 239, -1, 45, -1, -1, -1,
1887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, -1, -1, -1, -1, -1, -1, -1, 77
1892 NetconfParser::yystos_[] =
1894 0, 42, 43, 44, 50, 51, 52, 53, 0, 5,
1895 7, 9, 45, 46, 47, 48, 56, 57, 58, 63,
1896 7, 68, 7, 54, 64, 59, 69, 55, 57, 65,
1897 66, 45, 61, 62, 10, 32, 70, 71, 72, 124,
1898 11, 12, 13, 14, 15, 16, 29, 45, 67, 74,
1899 75, 76, 77, 78, 79, 80, 82, 84, 96, 6,
1900 3, 4, 8, 3, 73, 125, 3, 8, 81, 83,
1901 4, 4, 4, 4, 85, 4, 8, 3, 57, 57,
1902 45, 4, 4, 71, 4, 4, 48, 48, 48, 7,
1903 4, 76, 4, 7, 7, 58, 60, 45, 97, 5,
1904 57, 74, 33, 126, 127, 128, 17, 18, 19, 20,
1905 67, 98, 99, 100, 101, 103, 105, 107, 7, 86,
1906 87, 88, 8, 129, 3, 8, 102, 104, 106, 108,
1907 8, 3, 89, 6, 3, 4, 127, 4, 4, 4,
1908 4, 100, 30, 31, 67, 90, 91, 92, 94, 88,
1909 5, 7, 7, 7, 7, 93, 95, 3, 8, 7,
1910 130, 131, 21, 22, 67, 77, 78, 79, 80, 82,
1911 109, 110, 111, 113, 109, 109, 109, 4, 4, 91,
1912 132, 3, 6, 112, 114, 3, 8, 8, 8, 8,
1913 45, 57, 34, 35, 37, 38, 67, 80, 82, 133,
1914 134, 135, 137, 138, 140, 131, 4, 4, 110, 136,
1915 141, 4, 139, 3, 8, 45, 7, 4, 4, 46,
1916 4, 134, 23, 27, 28, 67, 80, 82, 115, 116,
1917 117, 120, 122, 45, 5, 45, 118, 121, 123, 3,
1918 8, 7, 142, 143, 4, 4, 4, 116, 144, 3,
1919 6, 24, 25, 26, 119, 45, 45, 36, 39, 40,
1920 41, 145, 146, 147, 149, 150, 151, 143, 148, 4,
1921 4, 4, 3, 8, 4, 48, 46, 46, 146, 45
1925 NetconfParser::yyr1_[] =
1927 0, 49, 51, 50, 52, 50, 53, 50, 55, 54,
1928 56, 57, 57, 57, 57, 57, 57, 57, 59, 58,
1929 60, 61, 61, 62, 62, 64, 63, 65, 65, 66,
1930 66, 67, 69, 68, 70, 70, 71, 71, 73, 72,
1931 74, 74, 75, 75, 76, 76, 76, 76, 76, 76,
1932 76, 76, 77, 78, 79, 81, 80, 83, 82, 85,
1933 84, 86, 86, 87, 87, 89, 88, 90, 90, 90,
1934 91, 91, 93, 92, 95, 94, 97, 96, 98, 98,
1935 99, 99, 100, 100, 100, 100, 100, 102, 101, 104,
1936 103, 106, 105, 108, 107, 109, 109, 110, 110, 110,
1937 110, 110, 110, 110, 110, 112, 111, 114, 113, 115,
1938 115, 116, 116, 116, 116, 116, 116, 118, 117, 119,
1939 119, 119, 121, 120, 123, 122, 125, 124, 126, 126,
1940 127, 129, 128, 130, 130, 132, 131, 133, 133, 134,
1941 134, 134, 134, 134, 134, 134, 136, 135, 137, 139,
1942 138, 141, 140, 142, 142, 144, 143, 145, 145, 146,
1943 146, 146, 146, 148, 147, 149, 150, 151
1947 NetconfParser::yyr2_[] =
1949 0, 2, 0, 3, 0, 3, 0, 3, 0, 4,
1950 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
1951 1, 0, 1, 3, 5, 0, 4, 0, 1, 1,
1952 3, 2, 0, 4, 1, 3, 1, 1, 0, 6,
1953 0, 1, 1, 3, 1, 1, 1, 1, 1, 1,
1954 1, 1, 3, 3, 3, 0, 4, 0, 4, 0,
1955 6, 0, 1, 1, 3, 0, 4, 1, 3, 1,
1956 1, 1, 0, 4, 0, 4, 0, 6, 0, 1,
1957 1, 3, 1, 1, 1, 1, 1, 0, 6, 0,
1958 6, 0, 6, 0, 6, 1, 3, 1, 1, 1,
1959 1, 1, 1, 1, 1, 0, 4, 0, 6, 1,
1960 3, 1, 1, 1, 1, 1, 1, 0, 4, 1,
1961 1, 1, 0, 4, 0, 4, 0, 6, 1, 3,
1962 1, 0, 6, 1, 3, 0, 4, 1, 3, 1,
1963 1, 1, 1, 1, 1, 1, 0, 4, 3, 0,
1964 4, 0, 6, 1, 3, 0, 4, 1, 3, 1,
1965 1, 1, 1, 0, 4, 3, 3, 3
1973 const NetconfParser::yytname_[] =
1975 "\"end of file\"",
"error",
"$undefined",
"\",\"",
"\":\"",
"\"[\"",
1976 "\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Netconf\"",
"\"user-context\"",
1977 "\"comment\"",
"\"boot-update\"",
"\"subscribe-changes\"",
1978 "\"validate-changes\"",
"\"managed-servers\"",
"\"dhcp4\"",
"\"dhcp6\"",
1979 "\"d2\"",
"\"ca\"",
"\"model\"",
"\"control-socket\"",
"\"socket-type\"",
1980 "\"unix\"",
"\"http\"",
"\"stdout\"",
"\"socket-name\"",
1981 "\"socket-url\"",
"\"hooks-libraries\"",
"\"library\"",
"\"parameters\"",
1982 "\"Logging\"",
"\"loggers\"",
"\"name\"",
"\"output_options\"",
1983 "\"output\"",
"\"debuglevel\"",
"\"severity\"",
"\"flush\"",
1984 "\"maxsize\"",
"\"maxver\"",
"START_JSON",
"START_NETCONF",
1985 "START_SUB_NETCONF",
"\"constant string\"",
"\"integer\"",
1986 "\"floating point\"",
"\"boolean\"",
"$accept",
"start",
"$@1",
"$@2",
1987 "$@3",
"sub_netconf",
"$@4",
"json",
"value",
"map",
"$@5",
"map_value",
1988 "map_content",
"not_empty_map",
"list_generic",
"$@6",
"list_content",
1989 "not_empty_list",
"unknown_map_entry",
"netconf_syntax_map",
"$@7",
1990 "global_objects",
"global_object",
"netconf_object",
"$@8",
1991 "global_params",
"not_empty_global_params",
"global_param",
1992 "boot_update",
"subscribe_changes",
"validate_changes",
"user_context",
1993 "$@9",
"comment",
"$@10",
"hooks_libraries",
"$@11",
1994 "hooks_libraries_list",
"not_empty_hooks_libraries_list",
1995 "hooks_library",
"$@12",
"hooks_params",
"hooks_param",
"library",
1996 "$@13",
"parameters",
"$@14",
"managed_servers",
"$@15",
1997 "servers_entries",
"not_empty_servers_entries",
"server_entry",
1998 "dhcp4_server",
"$@16",
"dhcp6_server",
"$@17",
"d2_server",
"$@18",
1999 "ca_server",
"$@19",
"managed_server_params",
"managed_server_param",
2000 "model",
"$@20",
"control_socket",
"$@21",
"control_socket_params",
2001 "control_socket_param",
"socket_type",
"$@22",
"socket_type_value",
2002 "socket_name",
"$@23",
"socket_url",
"$@24",
"logging_object",
"$@25",
2003 "logging_params",
"logging_param",
"loggers",
"$@26",
"loggers_entries",
2004 "logger_entry",
"$@27",
"logger_params",
"logger_param",
"name",
"$@28",
2005 "debuglevel",
"severity",
"$@29",
"output_options_list",
"$@30",
2006 "output_options_list_content",
"output_entry",
"$@31",
2007 "output_params_list",
"output_params",
"output",
"$@32",
"flush",
2008 "maxsize",
"maxver", YY_NULLPTR
2012 const unsigned short
2013 NetconfParser::yyrline_[] =
2015 0, 118, 118, 118, 119, 119, 120, 120, 128, 128,
2016 139, 145, 146, 147, 148, 149, 150, 151, 155, 155,
2017 166, 171, 172, 180, 184, 191, 191, 197, 198, 201,
2018 205, 218, 226, 226, 238, 239, 243, 244, 248, 248,
2019 265, 266, 269, 270, 275, 276, 277, 278, 279, 280,
2020 281, 282, 285, 290, 295, 300, 300, 325, 325, 353,
2021 353, 363, 364, 367, 368, 371, 371, 379, 380, 381,
2022 384, 385, 388, 388, 396, 396, 406, 406, 416, 417,
2023 420, 421, 427, 428, 429, 430, 431, 435, 435, 446,
2024 446, 457, 457, 468, 468, 479, 480, 484, 485, 486,
2025 487, 488, 489, 490, 491, 495, 495, 504, 504, 515,
2026 516, 519, 520, 521, 522, 523, 524, 527, 527, 535,
2027 536, 537, 540, 540, 549, 549, 564, 564, 577, 578,
2028 582, 586, 586, 598, 599, 603, 603, 611, 612, 615,
2029 616, 617, 618, 619, 620, 621, 624, 624, 632, 637,
2030 637, 645, 645, 655, 656, 659, 659, 667, 668, 671,
2031 672, 673, 674, 677, 677, 685, 690, 695
2036 NetconfParser::yystack_print_ ()
2038 *yycdebug_ <<
"Stack now";
2040 i = yystack_.
begin (),
2041 i_end = yystack_.
end ();
2043 *yycdebug_ <<
' ' << i->state;
2049 NetconfParser::yy_reduce_print_ (
int yyrule)
2051 unsigned yylno = yyrline_[yyrule];
2052 int yynrhs = yyr2_[yyrule];
2054 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2055 <<
" (line " << yylno <<
"):\n";
2057 for (
int yyi = 0; yyi < yynrhs; yyi++)
2059 yystack_[(yynrhs) - (yyi + 1)]);
2064#line 14 "netconf_parser.yy"
2066#line 2067 "netconf_parser.cc"
2067#line 700 "netconf_parser.yy"
2072 const std::string& what)
2074 ctx.
error(loc, what);
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_REDUCE_PRINT(Rule)
#define YY_SYMBOL_PRINT(Title, Symbol)
#define YY_MOVE_REF(Type)
Notes: IntElement type is changed to int64_t.
virtual int parse()
Parse.
int symbol_number_type
Symbol type: an internal symbol number.
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.
location location_type
Symbol locations.
Parser context is a wrapper around flex/bison instances dedicated to Netconf-agent config file parser...
LexerContext ctx_
Current syntactic context.
const std::string contextName()
Get the syntactic context name.
isc::data::Element::Position loc2pos(isc::netconf::location &loc)
Converts bison's position to one understandable by isc::data::Element.
void error(const isc::netconf::location &loc, const std::string &what)
Error handler.
void enter(const LexerContext &ctx)
Enter a new syntactic context.
@ NO_KEYWORDS
This one is used in pure JSON mode.
@ HOOKS_LIBRARIES
Used while parsing Logging/loggers structures.
@ NETCONF
Used while parsing content of Logging.
@ CONFIG
Used while parsing content of Netconf.
@ MANAGED_SERVERS
Used while parsing Netconf/managed-servers.
@ SERVER
Used while parsing Netconf/manages-servers/*/control-socket.
@ LOGGERS
Used while parsing Logging/loggers/output_options structures.
@ SOCKET_TYPE
Used while parsing Netconf/hooks-libraries.
@ CONTROL_SOCKET
Used while parsing Netconf/managed-servers/*/control-socket/socket-type.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
void leave()
Leave a syntactic context.
Present a slice of the top of a stack.
void push(YY_MOVE_REF(T) t)
Steal the contents of t.
const_iterator begin() const
S::const_reverse_iterator const_iterator
const_iterator end() const
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-dhcp-ddns.
Define the isc::netconf::parser class.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
void clear()
Destroy contents, and record that is empty.
location_type location
The location.
bool empty() const
Whether empty.
Syntax errors thrown from user actions.