38#define yylex d2_parser_lex
46#line 34 "d2_parser.yy"
50#line 51 "d2_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 "d2_parser.yy"
144namespace isc {
namespace d2 {
145#line 146 "d2_parser.cc"
153 D2Parser::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 D2Parser::by_state::by_state ()
207 : state (empty_state)
210 D2Parser::by_state::by_state (
const by_state& other)
211 : state (other.state)
215 D2Parser::by_state::clear ()
221 D2Parser::by_state::move (by_state& that)
227 D2Parser::by_state::by_state (state_type s)
232 D2Parser::by_state::type_get ()
const
234 if (state == empty_state)
237 return yystos_[state];
240 D2Parser::stack_symbol_type::stack_symbol_type ()
243 D2Parser::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 D2Parser::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 D2Parser::stack_symbol_type&
317 D2Parser::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 D2Parser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
364 template <
typename Base>
366 D2Parser::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 111 "d2_parser.yy"
384 { yyoutput << yysym.value.template as< std::string > (); }
385#line 386 "d2_parser.cc"
390#line 111 "d2_parser.yy"
391 { yyoutput << yysym.value.template as< int64_t > (); }
392#line 393 "d2_parser.cc"
397#line 111 "d2_parser.yy"
398 { yyoutput << yysym.value.template as< double > (); }
399#line 400 "d2_parser.cc"
404#line 111 "d2_parser.yy"
405 { yyoutput << yysym.value.template as< bool > (); }
406#line 407 "d2_parser.cc"
411#line 111 "d2_parser.yy"
412 { yyoutput << yysym.value.template as< ElementPtr > (); }
413#line 414 "d2_parser.cc"
418#line 111 "d2_parser.yy"
419 { yyoutput << yysym.value.template as< ElementPtr > (); }
420#line 421 "d2_parser.cc"
425#line 111 "d2_parser.yy"
426 { yyoutput << yysym.value.template as< ElementPtr > (); }
427#line 428 "d2_parser.cc"
439 D2Parser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
447 D2Parser::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 D2Parser::yypop_ (
int n)
465 D2Parser::debug_stream ()
const
471 D2Parser::set_debug_stream (std::ostream& o)
477 D2Parser::debug_level_type
478 D2Parser::debug_level ()
const
484 D2Parser::set_debug_level (debug_level_type l)
491 D2Parser::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 D2Parser::yy_pact_value_is_default_ (
int yyvalue)
503 return yyvalue == yypact_ninf_;
507 D2Parser::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 120 "d2_parser.yy"
682#line 683 "d2_parser.cc"
686#line 121 "d2_parser.yy"
688#line 689 "d2_parser.cc"
692#line 122 "d2_parser.yy"
694#line 695 "d2_parser.cc"
698#line 123 "d2_parser.yy"
700#line 701 "d2_parser.cc"
704#line 124 "d2_parser.yy"
706#line 707 "d2_parser.cc"
710#line 125 "d2_parser.yy"
712#line 713 "d2_parser.cc"
716#line 126 "d2_parser.yy"
718#line 719 "d2_parser.cc"
722#line 127 "d2_parser.yy"
724#line 725 "d2_parser.cc"
728#line 128 "d2_parser.yy"
730#line 731 "d2_parser.cc"
734#line 136 "d2_parser.yy"
736#line 737 "d2_parser.cc"
740#line 137 "d2_parser.yy"
742#line 743 "d2_parser.cc"
746#line 138 "d2_parser.yy"
748#line 749 "d2_parser.cc"
752#line 139 "d2_parser.yy"
754#line 755 "d2_parser.cc"
758#line 140 "d2_parser.yy"
760#line 761 "d2_parser.cc"
764#line 141 "d2_parser.yy"
766#line 767 "d2_parser.cc"
770#line 142 "d2_parser.yy"
772#line 773 "d2_parser.cc"
776#line 145 "d2_parser.yy"
781#line 782 "d2_parser.cc"
785#line 150 "d2_parser.yy"
792#line 793 "d2_parser.cc"
796#line 155 "d2_parser.yy"
802#line 803 "d2_parser.cc"
806#line 161 "d2_parser.yy"
808#line 809 "d2_parser.cc"
812#line 168 "d2_parser.yy"
815 ctx.
stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as<
ElementPtr > ());
817#line 818 "d2_parser.cc"
821#line 172 "d2_parser.yy"
825 ctx.
stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as<
ElementPtr > ());
827#line 828 "d2_parser.cc"
831#line 179 "d2_parser.yy"
836#line 837 "d2_parser.cc"
840#line 182 "d2_parser.yy"
844#line 845 "d2_parser.cc"
848#line 190 "d2_parser.yy"
853#line 854 "d2_parser.cc"
857#line 194 "d2_parser.yy"
862#line 863 "d2_parser.cc"
866#line 205 "d2_parser.yy"
869 const std::string& keyword = yystack_[1].value.as< std::string > ();
870 error(yystack_[1].location,
871 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
873#line 874 "d2_parser.cc"
877#line 215 "d2_parser.yy"
884#line 885 "d2_parser.cc"
888#line 220 "d2_parser.yy"
894#line 895 "d2_parser.cc"
898#line 242 "d2_parser.yy"
901 ctx.
stack_.back()->set(
"DhcpDdns", m);
905#line 906 "d2_parser.cc"
909#line 247 "d2_parser.yy"
914#line 915 "d2_parser.cc"
918#line 252 "d2_parser.yy"
924#line 925 "d2_parser.cc"
928#line 256 "d2_parser.yy"
932#line 933 "d2_parser.cc"
936#line 278 "d2_parser.yy"
940#line 941 "d2_parser.cc"
944#line 280 "d2_parser.yy"
947 ctx.
stack_.back()->set(
"ip-address", s);
950#line 951 "d2_parser.cc"
954#line 286 "d2_parser.yy"
956 if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) {
957 error(yystack_[0].location,
"port must be greater than zero but less than 65536");
960 ctx.
stack_.back()->set(
"port", i);
962#line 963 "d2_parser.cc"
966#line 294 "d2_parser.yy"
968 if (yystack_[0].value.as< int64_t > () <= 0) {
969 error(yystack_[0].location,
"dns-server-timeout must be greater than zero");
972 ctx.
stack_.back()->set(
"dns-server-timeout", i);
975#line 976 "d2_parser.cc"
979#line 303 "d2_parser.yy"
983#line 984 "d2_parser.cc"
987#line 305 "d2_parser.yy"
989 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as<
ElementPtr > ());
992#line 993 "d2_parser.cc"
996#line 311 "d2_parser.yy"
998#line 999 "d2_parser.cc"
1002#line 312 "d2_parser.yy"
1004#line 1005 "d2_parser.cc"
1008#line 315 "d2_parser.yy"
1012#line 1013 "d2_parser.cc"
1016#line 317 "d2_parser.yy"
1019 ctx.
stack_.back()->set(
"ncr-format", json);
1022#line 1023 "d2_parser.cc"
1026#line 323 "d2_parser.yy"
1030#line 1031 "d2_parser.cc"
1034#line 325 "d2_parser.yy"
1043 if ((old->size() != 1) || !old->contains(
"comment")) {
1044 std::stringstream msg;
1045 msg <<
"duplicate user-context entries (previous at "
1046 << old->getPosition().str() <<
")";
1047 error(yystack_[3].location, msg.str());
1050 user_context->set(
"comment", old->get(
"comment"));
1054 parent->set(
"user-context", user_context);
1057#line 1058 "d2_parser.cc"
1061#line 348 "d2_parser.yy"
1065#line 1066 "d2_parser.cc"
1069#line 350 "d2_parser.yy"
1074 user_context->set(
"comment", comment);
1080 if (old->contains(
"comment")) {
1081 std::stringstream msg;
1082 msg <<
"duplicate user-context/comment entries (previous at "
1083 << old->getPosition().str() <<
")";
1084 error(yystack_[3].location, msg.str());
1087 merge(user_context, old);
1091 parent->set(
"user-context", user_context);
1094#line 1095 "d2_parser.cc"
1098#line 375 "d2_parser.yy"
1101 ctx.
stack_.back()->set(
"forward-ddns", m);
1105#line 1106 "d2_parser.cc"
1109#line 380 "d2_parser.yy"
1114#line 1115 "d2_parser.cc"
1118#line 385 "d2_parser.yy"
1121 ctx.
stack_.back()->set(
"reverse-ddns", m);
1125#line 1126 "d2_parser.cc"
1129#line 390 "d2_parser.yy"
1134#line 1135 "d2_parser.cc"
1138#line 409 "d2_parser.yy"
1141 ctx.
stack_.back()->set(
"ddns-domains", l);
1145#line 1146 "d2_parser.cc"
1149#line 414 "d2_parser.yy"
1154#line 1155 "d2_parser.cc"
1158#line 419 "d2_parser.yy"
1163#line 1164 "d2_parser.cc"
1167#line 422 "d2_parser.yy"
1171#line 1172 "d2_parser.cc"
1175#line 434 "d2_parser.yy"
1178 ctx.
stack_.back()->add(m);
1181#line 1182 "d2_parser.cc"
1185#line 438 "d2_parser.yy"
1189#line 1190 "d2_parser.cc"
1193#line 442 "d2_parser.yy"
1198#line 1199 "d2_parser.cc"
1202#line 445 "d2_parser.yy"
1206#line 1207 "d2_parser.cc"
1210#line 462 "d2_parser.yy"
1214#line 1215 "d2_parser.cc"
1218#line 464 "d2_parser.yy"
1220 if (yystack_[0].value.as< std::string > () ==
"") {
1221 error(yystack_[1].location,
"Ddns domain name cannot be blank");
1225 ctx.
stack_.back()->set(
"name", name);
1228#line 1229 "d2_parser.cc"
1232#line 474 "d2_parser.yy"
1236#line 1237 "d2_parser.cc"
1240#line 476 "d2_parser.yy"
1244 ctx.
stack_.back()->set(
"key-name", name);
1247#line 1248 "d2_parser.cc"
1251#line 486 "d2_parser.yy"
1254 ctx.
stack_.back()->set(
"dns-servers", l);
1258#line 1259 "d2_parser.cc"
1262#line 491 "d2_parser.yy"
1267#line 1268 "d2_parser.cc"
1271#line 496 "d2_parser.yy"
1276#line 1277 "d2_parser.cc"
1280#line 499 "d2_parser.yy"
1284#line 1285 "d2_parser.cc"
1288#line 507 "d2_parser.yy"
1291 ctx.
stack_.back()->add(m);
1294#line 1295 "d2_parser.cc"
1298#line 511 "d2_parser.yy"
1302#line 1303 "d2_parser.cc"
1306#line 515 "d2_parser.yy"
1311#line 1312 "d2_parser.cc"
1315#line 518 "d2_parser.yy"
1319#line 1320 "d2_parser.cc"
1323#line 534 "d2_parser.yy"
1327#line 1328 "d2_parser.cc"
1331#line 536 "d2_parser.yy"
1333 if (yystack_[0].value.as< std::string > () !=
"") {
1334 error(yystack_[1].location,
"hostname is not yet supported");
1338 ctx.
stack_.back()->set(
"hostname", name);
1341#line 1342 "d2_parser.cc"
1345#line 546 "d2_parser.yy"
1349#line 1350 "d2_parser.cc"
1353#line 548 "d2_parser.yy"
1356 ctx.
stack_.back()->set(
"ip-address", s);
1359#line 1360 "d2_parser.cc"
1363#line 554 "d2_parser.yy"
1365 if (yystack_[0].value.as< int64_t > () <= 0 || yystack_[0].value.as< int64_t > () >= 65536 ) {
1366 error(yystack_[0].location,
"port must be greater than zero but less than 65536");
1369 ctx.
stack_.back()->set(
"port", i);
1371#line 1372 "d2_parser.cc"
1375#line 568 "d2_parser.yy"
1378 ctx.
stack_.back()->set(
"tsig-keys", l);
1382#line 1383 "d2_parser.cc"
1386#line 573 "d2_parser.yy"
1391#line 1392 "d2_parser.cc"
1395#line 578 "d2_parser.yy"
1400#line 1401 "d2_parser.cc"
1404#line 581 "d2_parser.yy"
1408#line 1409 "d2_parser.cc"
1412#line 593 "d2_parser.yy"
1415 ctx.
stack_.back()->add(m);
1418#line 1419 "d2_parser.cc"
1422#line 597 "d2_parser.yy"
1426#line 1427 "d2_parser.cc"
1430#line 601 "d2_parser.yy"
1436#line 1437 "d2_parser.cc"
1440#line 605 "d2_parser.yy"
1444#line 1445 "d2_parser.cc"
1448#line 623 "d2_parser.yy"
1452#line 1453 "d2_parser.cc"
1456#line 625 "d2_parser.yy"
1458 if (yystack_[0].value.as< std::string > () ==
"") {
1459 error(yystack_[1].location,
"TSIG key name cannot be blank");
1463 ctx.
stack_.back()->set(
"name", name);
1466#line 1467 "d2_parser.cc"
1470#line 635 "d2_parser.yy"
1474#line 1475 "d2_parser.cc"
1478#line 637 "d2_parser.yy"
1480 if (yystack_[0].value.as< std::string > () ==
"") {
1481 error(yystack_[1].location,
"TSIG key algorithm cannot be blank");
1484 ctx.
stack_.back()->set(
"algorithm", elem);
1487#line 1488 "d2_parser.cc"
1491#line 646 "d2_parser.yy"
1493 if (yystack_[0].value.as< int64_t > () < 0 || (yystack_[0].value.as< int64_t > () > 0 && (yystack_[0].value.as< int64_t > () % 8 != 0))) {
1494 error(yystack_[0].location,
"TSIG key digest-bits must either be zero or a positive, multiple of eight");
1497 ctx.
stack_.back()->set(
"digest-bits", elem);
1499#line 1500 "d2_parser.cc"
1503#line 654 "d2_parser.yy"
1507#line 1508 "d2_parser.cc"
1511#line 656 "d2_parser.yy"
1513 if (yystack_[0].value.as< std::string > () ==
"") {
1514 error(yystack_[1].location,
"TSIG key secret cannot be blank");
1517 ctx.
stack_.back()->set(
"secret", elem);
1520#line 1521 "d2_parser.cc"
1524#line 669 "d2_parser.yy"
1528#line 1529 "d2_parser.cc"
1532#line 671 "d2_parser.yy"
1537#line 1538 "d2_parser.cc"
1541#line 676 "d2_parser.yy"
1545#line 1546 "d2_parser.cc"
1549#line 678 "d2_parser.yy"
1554#line 1555 "d2_parser.cc"
1558#line 683 "d2_parser.yy"
1562#line 1563 "d2_parser.cc"
1566#line 685 "d2_parser.yy"
1568 ctx.
stack_.back()->set(
"Control-agent", yystack_[0].value.as<
ElementPtr > ());
1571#line 1572 "d2_parser.cc"
1575#line 695 "d2_parser.yy"
1578 ctx.
stack_.back()->set(
"Logging", m);
1582#line 1583 "d2_parser.cc"
1586#line 700 "d2_parser.yy"
1591#line 1592 "d2_parser.cc"
1595#line 717 "d2_parser.yy"
1598 ctx.
stack_.back()->set(
"loggers", l);
1602#line 1603 "d2_parser.cc"
1606#line 722 "d2_parser.yy"
1611#line 1612 "d2_parser.cc"
1615#line 734 "d2_parser.yy"
1618 ctx.
stack_.back()->add(l);
1621#line 1622 "d2_parser.cc"
1625#line 738 "d2_parser.yy"
1629#line 1630 "d2_parser.cc"
1633#line 755 "d2_parser.yy"
1637#line 1638 "d2_parser.cc"
1641#line 757 "d2_parser.yy"
1644 ctx.
stack_.back()->set(
"name", name);
1647#line 1648 "d2_parser.cc"
1651#line 763 "d2_parser.yy"
1654 ctx.
stack_.back()->set(
"debuglevel", dl);
1656#line 1657 "d2_parser.cc"
1660#line 767 "d2_parser.yy"
1664#line 1665 "d2_parser.cc"
1668#line 769 "d2_parser.yy"
1671 ctx.
stack_.back()->set(
"severity", sev);
1674#line 1675 "d2_parser.cc"
1678#line 775 "d2_parser.yy"
1681 ctx.
stack_.back()->set(
"output_options", l);
1685#line 1686 "d2_parser.cc"
1689#line 780 "d2_parser.yy"
1694#line 1695 "d2_parser.cc"
1698#line 789 "d2_parser.yy"
1701 ctx.
stack_.back()->add(m);
1704#line 1705 "d2_parser.cc"
1708#line 793 "d2_parser.yy"
1712#line 1713 "d2_parser.cc"
1716#line 807 "d2_parser.yy"
1720#line 1721 "d2_parser.cc"
1724#line 809 "d2_parser.yy"
1727 ctx.
stack_.back()->set(
"output", sev);
1730#line 1731 "d2_parser.cc"
1734#line 815 "d2_parser.yy"
1737 ctx.
stack_.back()->set(
"flush", flush);
1739#line 1740 "d2_parser.cc"
1743#line 820 "d2_parser.yy"
1746 ctx.
stack_.back()->set(
"maxsize", maxsize);
1748#line 1749 "d2_parser.cc"
1752#line 825 "d2_parser.yy"
1755 ctx.
stack_.back()->set(
"maxver", maxver);
1757#line 1758 "d2_parser.cc"
1761#line 1762 "d2_parser.cc"
1779 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1791 error (yyla.
location, yysyntax_error_ (yystack_[0].state, yyla));
1795 yyerror_range[1].location = yyla.
location;
1796 if (yyerrstatus_ == 3)
1802 if (yyla.type_get () == yyeof_)
1804 else if (!yyla.
empty ())
1806 yy_destroy_ (
"Error: discarding", yyla);
1837 stack_symbol_type error_token;
1840 yyn = yypact_[yystack_[0].state];
1841 if (!yy_pact_value_is_default_ (yyn))
1844 if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_)
1846 yyn = yytable_[yyn];
1853 if (yystack_.size () == 1)
1856 yyerror_range[1].location = yystack_[0].location;
1857 yy_destroy_ (
"Error: popping", yystack_[0]);
1862 yyerror_range[2].location = yyla.
location;
1866 error_token.state = yyn;
1867 yypush_ (
"Shifting",
YY_MOVE (error_token));
1883 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1888 while (1 < yystack_.size ())
1890 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1899 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1903 yy_destroy_ (YY_NULLPTR, yyla);
1905 while (1 < yystack_.
size ())
1907 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1923 D2Parser::yysyntax_error_ (state_type yystate,
const symbol_type& yyla)
const
1929 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1931 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1960 int yytoken = yyla.type_get ();
1961 yyarg[yycount++] = yytname_[yytoken];
1962 int yyn = yypact_[yystate];
1963 if (!yy_pact_value_is_default_ (yyn))
1968 int yyxbegin = yyn < 0 ? -yyn : 0;
1970 int yychecklim = yylast_ - yyn + 1;
1971 int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
1972 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1973 if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
1974 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
1976 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1982 yyarg[yycount++] = yytname_[yyx];
1987 char const* yyformat = YY_NULLPTR;
1990#define YYCASE_(N, S) \
1996 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
1997 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1998 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1999 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
2000 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2007 for (
char const* yyp = yyformat; *yyp; ++yyp)
2008 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
2010 yyres += yytnamerr_ (yyarg[yyi++]);
2019 const signed char D2Parser::yypact_ninf_ = -90;
2021 const signed char D2Parser::yytable_ninf_ = -1;
2024 D2Parser::yypact_[] =
2026 47, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2027 12, 2, 1, 23, 33, 11, 38, 58, 64, 73,
2028 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2029 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2030 -90, -90, -90, -90, -90, -90, -90, -90, 2, -25,
2031 8, 9, 15, 96, 37, 115, 21, 116, -90, 124,
2032 113, 127, 130, 137, -90, -90, -90, -90, -90, 146,
2033 -90, 19, -90, -90, -90, -90, -90, -90, -90, 148,
2034 150, -90, -90, -90, -90, -90, -90, -90, -90, 46,
2035 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2036 -90, -90, 152, -90, -90, -90, -90, -90, 76, -90,
2037 -90, -90, -90, -90, -90, 151, 155, -90, -90, -90,
2038 -90, -90, -90, -90, 77, -90, -90, -90, -90, -90,
2039 153, 157, -90, -90, 161, -90, -90, -90, -90, 78,
2040 -90, -90, -90, -90, -90, 118, -90, -90, 2, 2,
2041 -90, 108, 162, 163, 164, 165, 166, -90, 8, -90,
2042 167, 119, 120, 168, 171, 172, 173, 174, 175, 176,
2043 9, -90, 177, 128, 179, 180, 15, -90, 15, -90,
2044 96, 181, 182, 183, 37, -90, 37, -90, 115, 184,
2045 135, 186, 21, -90, 21, 116, -90, -90, -90, 187,
2046 2, 2, 2, 185, 188, -90, 140, -90, -90, 70,
2047 178, 189, 141, 190, 195, 198, -90, 154, -90, 156,
2048 158, -90, 79, -90, 159, 199, 160, -90, 97, -90,
2049 169, -90, 170, -90, 98, -90, 2, -90, -90, -90,
2050 9, 191, -90, -90, -90, -90, -90, -90, -90, -90,
2051 -12, -12, 96, -90, -90, -90, -90, -90, 116, -90,
2052 -90, -90, -90, -90, -90, 99, -90, 101, -90, -90,
2053 -90, -90, 109, -90, -90, -90, 110, 200, 126, -90,
2054 201, 191, -90, 204, -12, -90, -90, -90, -90, 205,
2055 -90, 209, -90, 208, 115, -90, 143, -90, 210, 30,
2056 208, -90, -90, -90, -90, 213, -90, -90, -90, -90,
2057 111, -90, -90, -90, -90, -90, -90, 214, 215, 192,
2058 216, 30, -90, 194, 219, -90, 197, -90, -90, 218,
2059 -90, -90, 145, -90, 34, 218, -90, -90, 217, 223,
2060 224, 112, -90, -90, -90, -90, -90, -90, 225, 196,
2061 202, 203, 34, -90, 206, -90, -90, -90, -90, -90
2065 D2Parser::yydefact_[] =
2067 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
2068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2069 1, 35, 28, 24, 23, 20, 21, 22, 27, 3,
2070 25, 26, 42, 5, 54, 7, 150, 9, 142, 11,
2071 103, 13, 95, 15, 125, 17, 119, 19, 37, 31,
2072 0, 0, 0, 144, 0, 97, 0, 0, 39, 0,
2073 38, 0, 0, 32, 168, 170, 172, 52, 174, 0,
2074 51, 0, 44, 49, 46, 48, 50, 47, 69, 0,
2075 0, 73, 77, 79, 81, 83, 85, 140, 68, 0,
2076 56, 58, 59, 60, 61, 62, 66, 67, 63, 64,
2077 65, 163, 0, 166, 161, 160, 158, 159, 0, 152,
2078 154, 155, 156, 157, 148, 0, 145, 146, 115, 117,
2079 113, 112, 110, 111, 0, 105, 107, 108, 109, 101,
2080 0, 98, 99, 137, 0, 135, 134, 132, 133, 0,
2081 127, 129, 130, 131, 123, 0, 121, 36, 0, 0,
2082 29, 0, 0, 0, 0, 0, 0, 41, 0, 43,
2083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2084 0, 55, 0, 0, 0, 0, 0, 151, 0, 143,
2085 0, 0, 0, 0, 0, 104, 0, 96, 0, 0,
2086 0, 0, 0, 126, 0, 0, 120, 40, 33, 0,
2087 0, 0, 0, 0, 0, 45, 0, 71, 72, 0,
2088 0, 0, 0, 0, 0, 0, 57, 0, 165, 0,
2089 0, 153, 0, 147, 0, 0, 0, 106, 0, 100,
2090 0, 139, 0, 128, 0, 122, 0, 169, 171, 173,
2091 0, 0, 70, 75, 76, 74, 78, 30, 80, 82,
2092 87, 87, 144, 164, 167, 162, 149, 116, 0, 114,
2093 102, 138, 136, 124, 34, 0, 179, 0, 176, 178,
2094 93, 92, 0, 88, 89, 91, 0, 0, 0, 53,
2095 0, 0, 175, 0, 0, 84, 86, 141, 118, 0,
2096 177, 0, 90, 0, 97, 183, 0, 181, 0, 0,
2097 0, 180, 94, 194, 199, 0, 197, 193, 191, 192,
2098 0, 185, 187, 189, 190, 188, 182, 0, 0, 0,
2099 0, 0, 184, 0, 0, 196, 0, 186, 195, 0,
2100 198, 203, 0, 201, 0, 0, 200, 211, 0, 0,
2101 0, 0, 205, 207, 208, 209, 210, 202, 0, 0,
2102 0, 0, 0, 204, 0, 213, 214, 215, 206, 212
2106 D2Parser::yypgoto_[] =
2108 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2109 -90, -38, -90, 20, -90, -90, -90, -90, -90, -90,
2110 -90, -90, -50, -90, -90, -90, 72, -90, -90, -90,
2111 -90, -8, 63, -90, -90, -90, -90, -90, -90, -90,
2112 -90, -90, -51, -90, -39, -90, -90, -90, -90, -90,
2113 -16, -90, -48, -90, -90, -90, -90, -57, -90, 50,
2114 -90, -90, -90, 53, 56, -90, -90, -90, -90, -90,
2115 -90, -90, -90, -17, 48, -90, -90, -90, 51, 52,
2116 -90, -90, -90, -90, -90, -90, -90, -90, -90, -10,
2117 -90, 71, -90, -90, -90, 75, 82, -90, -90, -90,
2118 -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
2119 -90, -90, -90, -27, -90, -90, -90, -45, -90, -90,
2120 -60, -90, -90, -90, -90, -90, -90, -90, -90, -73,
2121 -90, -90, -89, -90, -90, -90, -90, -90
2125 D2Parser::yydefgoto_[] =
2127 -1, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2128 19, 28, 29, 30, 49, 248, 62, 63, 31, 48,
2129 59, 60, 88, 33, 50, 71, 72, 73, 155, 35,
2130 51, 89, 90, 91, 160, 92, 93, 94, 163, 245,
2131 95, 164, 96, 165, 97, 166, 98, 167, 99, 168,
2132 272, 273, 274, 275, 283, 43, 55, 130, 131, 132,
2133 186, 41, 54, 124, 125, 126, 183, 127, 181, 128,
2134 182, 47, 57, 145, 146, 194, 45, 56, 139, 140,
2135 141, 191, 142, 189, 143, 100, 169, 39, 53, 115,
2136 116, 117, 178, 37, 52, 108, 109, 110, 175, 111,
2137 172, 112, 113, 174, 74, 152, 75, 153, 76, 154,
2138 77, 156, 267, 268, 269, 280, 296, 297, 299, 310,
2139 311, 312, 317, 313, 314, 320, 315, 318, 332, 333,
2140 334, 341, 342, 343, 348, 344, 345, 346
2143 const unsigned short
2144 D2Parser::yytable_[] =
2146 70, 106, 105, 122, 121, 137, 136, 21, 32, 22,
2147 58, 23, 20, 107, 270, 123, 38, 138, 64, 65,
2148 66, 67, 158, 78, 79, 80, 81, 159, 61, 82,
2149 34, 83, 84, 85, 86, 133, 134, 83, 84, 87,
2150 36, 69, 68, 83, 84, 40, 101, 102, 103, 170,
2151 135, 104, 83, 84, 171, 24, 25, 26, 27, 83,
2152 84, 69, 69, 42, 118, 119, 303, 304, 69, 305,
2153 306, 44, 337, 120, 69, 338, 339, 340, 46, 176,
2154 184, 192, 176, 69, 177, 185, 193, 256, 243, 244,
2155 69, 1, 2, 3, 4, 5, 6, 7, 8, 9,
2156 184, 192, 170, 114, 281, 260, 263, 279, 70, 282,
2157 197, 198, 284, 284, 321, 352, 148, 285, 286, 322,
2158 353, 195, 129, 144, 196, 106, 105, 106, 105, 195,
2159 147, 149, 288, 122, 121, 122, 121, 107, 150, 107,
2160 151, 137, 136, 137, 136, 123, 300, 123, 335, 301,
2161 157, 336, 161, 138, 162, 138, 173, 179, 180, 187,
2162 188, 199, 237, 238, 239, 190, 200, 201, 202, 203,
2163 204, 206, 209, 207, 208, 210, 211, 212, 213, 214,
2164 215, 217, 218, 219, 220, 224, 225, 226, 230, 231,
2165 232, 236, 240, 242, 249, 241, 22, 250, 264, 246,
2166 271, 271, 251, 252, 258, 289, 287, 253, 291, 254,
2167 293, 255, 257, 259, 294, 295, 302, 319, 323, 324,
2168 326, 349, 261, 262, 329, 331, 266, 350, 351, 354,
2169 205, 247, 265, 216, 271, 276, 292, 298, 229, 228,
2170 227, 278, 277, 235, 233, 234, 325, 328, 308, 307,
2171 330, 223, 355, 222, 290, 316, 356, 357, 221, 359,
2172 309, 327, 347, 358, 0, 0, 0, 0, 0, 0,
2173 308, 307, 0, 0, 0, 0, 0, 0, 0, 0,
2178 D2Parser::yycheck_[] =
2180 50, 52, 52, 54, 54, 56, 56, 5, 7, 7,
2181 48, 9, 0, 52, 26, 54, 5, 56, 10, 11,
2182 12, 13, 3, 14, 15, 16, 17, 8, 53, 20,
2183 7, 22, 23, 24, 25, 14, 15, 22, 23, 30,
2184 7, 53, 34, 22, 23, 7, 31, 32, 33, 3,
2185 29, 36, 22, 23, 8, 53, 54, 55, 56, 22,
2186 23, 53, 53, 5, 27, 28, 36, 37, 53, 39,
2187 40, 7, 38, 36, 53, 41, 42, 43, 5, 3,
2188 3, 3, 3, 53, 8, 8, 8, 8, 18, 19,
2189 53, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2190 3, 3, 3, 7, 3, 8, 8, 8, 158, 8,
2191 148, 149, 3, 3, 3, 3, 3, 8, 8, 8,
2192 8, 3, 7, 7, 6, 176, 176, 178, 178, 3,
2193 6, 4, 6, 184, 184, 186, 186, 176, 8, 178,
2194 3, 192, 192, 194, 194, 184, 3, 186, 3, 6,
2195 4, 6, 4, 192, 4, 194, 4, 6, 3, 6,
2196 3, 53, 200, 201, 202, 4, 4, 4, 4, 4,
2197 4, 4, 4, 54, 54, 4, 4, 4, 4, 4,
2198 4, 4, 54, 4, 4, 4, 4, 4, 4, 54,
2199 4, 4, 7, 53, 53, 7, 7, 7, 236, 21,
2200 250, 251, 7, 5, 5, 4, 6, 53, 4, 53,
2201 5, 53, 53, 53, 5, 7, 6, 4, 4, 4,
2202 4, 4, 53, 53, 5, 7, 35, 4, 4, 4,
2203 158, 211, 240, 170, 284, 251, 284, 294, 188, 186,
2204 184, 258, 252, 195, 192, 194, 54, 53, 299, 299,
2205 53, 180, 56, 178, 281, 300, 54, 54, 176, 53,
2206 299, 321, 335, 352, -1, -1, -1, -1, -1, -1,
2207 321, 321, -1, -1, -1, -1, -1, -1, -1, -1,
2212 D2Parser::yystos_[] =
2214 0, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2215 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
2216 0, 5, 7, 9, 53, 54, 55, 56, 68, 69,
2217 70, 75, 7, 80, 7, 86, 7, 150, 5, 144,
2218 7, 118, 5, 112, 7, 133, 5, 128, 76, 71,
2219 81, 87, 151, 145, 119, 113, 134, 129, 68, 77,
2220 78, 53, 73, 74, 10, 11, 12, 13, 34, 53,
2221 79, 82, 83, 84, 161, 163, 165, 167, 14, 15,
2222 16, 17, 20, 22, 23, 24, 25, 30, 79, 88,
2223 89, 90, 92, 93, 94, 97, 99, 101, 103, 105,
2224 142, 31, 32, 33, 36, 79, 99, 101, 152, 153,
2225 154, 156, 158, 159, 7, 146, 147, 148, 27, 28,
2226 36, 79, 99, 101, 120, 121, 122, 124, 126, 7,
2227 114, 115, 116, 14, 15, 29, 79, 99, 101, 135,
2228 136, 137, 139, 141, 7, 130, 131, 6, 3, 4,
2229 8, 3, 162, 164, 166, 85, 168, 4, 3, 8,
2230 91, 4, 4, 95, 98, 100, 102, 104, 106, 143,
2231 3, 8, 157, 4, 160, 155, 3, 8, 149, 6,
2232 3, 125, 127, 123, 3, 8, 117, 6, 3, 140,
2233 4, 138, 3, 8, 132, 3, 6, 68, 68, 53,
2234 4, 4, 4, 4, 4, 83, 4, 54, 54, 4,
2235 4, 4, 4, 4, 4, 4, 89, 4, 54, 4,
2236 4, 153, 152, 148, 4, 4, 4, 121, 120, 116,
2237 4, 54, 4, 136, 135, 131, 4, 68, 68, 68,
2238 7, 7, 53, 18, 19, 96, 21, 70, 72, 53,
2239 7, 7, 5, 53, 53, 53, 8, 53, 5, 53,
2240 8, 53, 53, 8, 68, 88, 35, 169, 170, 171,
2241 26, 79, 107, 108, 109, 110, 107, 146, 130, 8,
2242 172, 3, 8, 111, 3, 8, 8, 6, 6, 4,
2243 170, 4, 109, 5, 5, 7, 173, 174, 114, 175,
2244 3, 6, 6, 36, 37, 39, 40, 79, 99, 101,
2245 176, 177, 178, 180, 181, 183, 174, 179, 184, 4,
2246 182, 3, 8, 4, 4, 54, 4, 177, 53, 5,
2247 53, 7, 185, 186, 187, 3, 6, 38, 41, 42,
2248 43, 188, 189, 190, 192, 193, 194, 186, 191, 4,
2249 4, 4, 3, 8, 4, 56, 54, 54, 189, 53
2255 0, 57, 59, 58, 60, 58, 61, 58, 62, 58,
2256 63, 58, 64, 58, 65, 58, 66, 58, 67, 58,
2257 68, 68, 68, 68, 68, 68, 68, 69, 71, 70,
2258 72, 73, 73, 74, 74, 76, 75, 77, 77, 78,
2259 78, 79, 81, 80, 82, 82, 83, 83, 83, 83,
2260 83, 83, 85, 84, 87, 86, 88, 88, 89, 89,
2261 89, 89, 89, 89, 89, 89, 89, 89, 89, 91,
2262 90, 92, 93, 95, 94, 96, 96, 98, 97, 100,
2263 99, 102, 101, 104, 103, 106, 105, 107, 107, 108,
2264 108, 109, 109, 111, 110, 113, 112, 114, 114, 115,
2265 115, 117, 116, 119, 118, 120, 120, 121, 121, 121,
2266 121, 121, 121, 123, 122, 125, 124, 127, 126, 129,
2267 128, 130, 130, 132, 131, 134, 133, 135, 135, 136,
2268 136, 136, 136, 136, 136, 138, 137, 140, 139, 141,
2269 143, 142, 145, 144, 146, 146, 147, 147, 149, 148,
2270 151, 150, 152, 152, 153, 153, 153, 153, 153, 153,
2271 153, 155, 154, 157, 156, 158, 160, 159, 162, 161,
2272 164, 163, 166, 165, 168, 167, 169, 169, 170, 172,
2273 171, 173, 173, 175, 174, 176, 176, 177, 177, 177,
2274 177, 177, 177, 177, 179, 178, 180, 182, 181, 184,
2275 183, 185, 185, 187, 186, 188, 188, 189, 189, 189,
2276 189, 191, 190, 192, 193, 194
2282 0, 2, 0, 3, 0, 3, 0, 3, 0, 3,
2283 0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
2284 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
2285 1, 0, 1, 3, 5, 0, 4, 0, 1, 1,
2286 3, 2, 0, 4, 1, 3, 1, 1, 1, 1,
2287 1, 1, 0, 6, 0, 4, 1, 3, 1, 1,
2288 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2289 4, 3, 3, 0, 4, 1, 1, 0, 4, 0,
2290 4, 0, 4, 0, 6, 0, 6, 0, 1, 1,
2291 3, 1, 1, 0, 6, 0, 4, 0, 1, 1,
2292 3, 0, 4, 0, 4, 1, 3, 1, 1, 1,
2293 1, 1, 1, 0, 4, 0, 4, 0, 6, 0,
2294 4, 1, 3, 0, 4, 0, 4, 1, 3, 1,
2295 1, 1, 1, 1, 1, 0, 4, 0, 4, 3,
2296 0, 6, 0, 4, 0, 1, 1, 3, 0, 4,
2297 0, 4, 1, 3, 1, 1, 1, 1, 1, 1,
2298 1, 0, 4, 0, 4, 3, 0, 4, 0, 4,
2299 0, 4, 0, 4, 0, 6, 1, 3, 1, 0,
2300 6, 1, 3, 0, 4, 1, 3, 1, 1, 1,
2301 1, 1, 1, 1, 0, 4, 3, 0, 4, 0,
2302 6, 1, 3, 0, 4, 1, 3, 1, 1, 1,
2311 const D2Parser::yytname_[] =
2313 "\"end of file\"",
"error",
"$undefined",
"\",\"",
"\":\"",
"\"[\"",
2314 "\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Dhcp6\"",
"\"Dhcp4\"",
2315 "\"Control-agent\"",
"\"DhcpDdns\"",
"\"ip-address\"",
"\"port\"",
2316 "\"dns-server-timeout\"",
"\"ncr-protocol\"",
"\"UDP\"",
"\"TCP\"",
2317 "\"ncr-format\"",
"\"JSON\"",
"\"user-context\"",
"\"comment\"",
2318 "\"forward-ddns\"",
"\"reverse-ddns\"",
"\"ddns-domains\"",
2319 "\"key-name\"",
"\"dns-servers\"",
"\"hostname\"",
"\"tsig-keys\"",
2320 "\"algorithm\"",
"\"digest-bits\"",
"\"secret\"",
"\"Logging\"",
2321 "\"loggers\"",
"\"name\"",
"\"output_options\"",
"\"output\"",
2322 "\"debuglevel\"",
"\"severity\"",
"\"flush\"",
"\"maxsize\"",
2323 "\"maxver\"",
"TOPLEVEL_JSON",
"TOPLEVEL_DHCPDDNS",
"SUB_DHCPDDNS",
2324 "SUB_TSIG_KEY",
"SUB_TSIG_KEYS",
"SUB_DDNS_DOMAIN",
"SUB_DDNS_DOMAINS",
2325 "SUB_DNS_SERVER",
"SUB_DNS_SERVERS",
"\"constant string\"",
2326 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
2327 "$@1",
"$@2",
"$@3",
"$@4",
"$@5",
"$@6",
"$@7",
"$@8",
"$@9",
"value",
2328 "sub_json",
"map2",
"$@10",
"map_value",
"map_content",
"not_empty_map",
2329 "list_generic",
"$@11",
"list_content",
"not_empty_list",
2330 "unknown_map_entry",
"syntax_map",
"$@12",
"global_objects",
2331 "global_object",
"dhcpddns_object",
"$@13",
"sub_dhcpddns",
"$@14",
2332 "dhcpddns_params",
"dhcpddns_param",
"ip_address",
"$@15",
"port",
2333 "dns_server_timeout",
"ncr_protocol",
"$@16",
"ncr_protocol_value",
2334 "ncr_format",
"$@17",
"user_context",
"$@18",
"comment",
"$@19",
2335 "forward_ddns",
"$@20",
"reverse_ddns",
"$@21",
"ddns_mgr_params",
2336 "not_empty_ddns_mgr_params",
"ddns_mgr_param",
"ddns_domains",
"$@22",
2337 "sub_ddns_domains",
"$@23",
"ddns_domain_list",
2338 "not_empty_ddns_domain_list",
"ddns_domain",
"$@24",
"sub_ddns_domain",
2339 "$@25",
"ddns_domain_params",
"ddns_domain_param",
"ddns_domain_name",
2340 "$@26",
"ddns_domain_key_name",
"$@27",
"dns_servers",
"$@28",
2341 "sub_dns_servers",
"$@29",
"dns_server_list",
"dns_server",
"$@30",
2342 "sub_dns_server",
"$@31",
"dns_server_params",
"dns_server_param",
2343 "dns_server_hostname",
"$@32",
"dns_server_ip_address",
"$@33",
2344 "dns_server_port",
"tsig_keys",
"$@34",
"sub_tsig_keys",
"$@35",
2345 "tsig_keys_list",
"not_empty_tsig_keys_list",
"tsig_key",
"$@36",
2346 "sub_tsig_key",
"$@37",
"tsig_key_params",
"tsig_key_param",
2347 "tsig_key_name",
"$@38",
"tsig_key_algorithm",
"$@39",
2348 "tsig_key_digest_bits",
"tsig_key_secret",
"$@40",
"dhcp6_json_object",
2349 "$@41",
"dhcp4_json_object",
"$@42",
"control_agent_json_object",
"$@43",
2350 "logging_object",
"$@44",
"logging_params",
"logging_param",
"loggers",
2351 "$@45",
"loggers_entries",
"logger_entry",
"$@46",
"logger_params",
2352 "logger_param",
"name",
"$@47",
"debuglevel",
"severity",
"$@48",
2353 "output_options_list",
"$@49",
"output_options_list_content",
2354 "output_entry",
"$@50",
"output_params_list",
"output_params",
"output",
2355 "$@51",
"flush",
"maxsize",
"maxver", YY_NULLPTR
2359 const unsigned short
2360 D2Parser::yyrline_[] =
2362 0, 120, 120, 120, 121, 121, 122, 122, 123, 123,
2363 124, 124, 125, 125, 126, 126, 127, 127, 128, 128,
2364 136, 137, 138, 139, 140, 141, 142, 145, 150, 150,
2365 161, 164, 165, 168, 172, 179, 179, 186, 187, 190,
2366 194, 205, 215, 215, 227, 228, 232, 233, 234, 235,
2367 236, 237, 242, 242, 252, 252, 260, 261, 265, 266,
2368 267, 268, 269, 270, 271, 272, 273, 274, 275, 278,
2369 278, 286, 294, 303, 303, 311, 312, 315, 315, 323,
2370 323, 348, 348, 375, 375, 385, 385, 395, 396, 399,
2371 400, 403, 404, 409, 409, 419, 419, 426, 427, 430,
2372 431, 434, 434, 442, 442, 449, 450, 453, 454, 455,
2373 456, 457, 458, 462, 462, 474, 474, 486, 486, 496,
2374 496, 503, 504, 507, 507, 515, 515, 522, 523, 526,
2375 527, 528, 529, 530, 531, 534, 534, 546, 546, 554,
2376 568, 568, 578, 578, 585, 586, 589, 590, 593, 593,
2377 601, 601, 610, 611, 614, 615, 616, 617, 618, 619,
2378 620, 623, 623, 635, 635, 646, 654, 654, 669, 669,
2379 676, 676, 683, 683, 695, 695, 708, 709, 713, 717,
2380 717, 729, 730, 734, 734, 742, 743, 746, 747, 748,
2381 749, 750, 751, 752, 755, 755, 763, 767, 767, 775,
2382 775, 785, 786, 789, 789, 797, 798, 801, 802, 803,
2383 804, 807, 807, 815, 820, 825
2388 D2Parser::yystack_print_ ()
2390 *yycdebug_ <<
"Stack now";
2392 i = yystack_.
begin (),
2393 i_end = yystack_.
end ();
2395 *yycdebug_ <<
' ' << i->state;
2401 D2Parser::yy_reduce_print_ (
int yyrule)
2403 unsigned yylno = yyrline_[yyrule];
2404 int yynrhs = yyr2_[yyrule];
2406 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2407 <<
" (line " << yylno <<
"):\n";
2409 for (
int yyi = 0; yyi < yynrhs; yyi++)
2411 yystack_[(yynrhs) - (yyi + 1)]);
2416#line 14 "d2_parser.yy"
2418#line 2419 "d2_parser.cc"
2419#line 830 "d2_parser.yy"
2424 const std::string& what)
2426 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)
Evaluation context, an interface to the expression evaluation.
@ DDNS_DOMAIN
Used while parsing a list of ddns-domains.
@ DNS_SERVERS
Used while parsing content of Logging.
@ DDNS_DOMAINS
Used while parsing content of a dns-server.
@ NCR_FORMAT
Used while parsing DhcpDdns/ncr-format.
@ NCR_PROTOCOL
Used while parsing DhcpDdns/ncr-protocol.
@ NO_KEYWORD
This one is used in pure JSON mode.
@ DHCPDDNS
Used while parsing content of a tsig-key.
@ OUTPUT_OPTIONS
Used while parsing Logging/loggers/output_options structures.
@ FORWARD_DDNS
Used while parsing content of DhcpDdns/reverse-ddns.
@ TSIG_KEY
Used while parsing a list of tsig-keys.
@ REVERSE_DDNS
Used while parsing content of a ddns-domain.
@ LOGGERS
Used while parsing Logging/loggers structures.
@ TSIG_KEYS
Used while parsing content of DhcpDdns/tsig-keys/algorithm.
@ CONFIG
Used while parsing content of DhcpDdns.
const std::string contextName()
Get the syntax context name.
void leave()
Leave a syntactic context.
ParserContext ctx_
Current syntactic context.
void error(const isc::d2::location &loc, const std::string &what)
Error handler.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
void enter(const ParserContext &ctx)
Enter a new syntactic context.
isc::data::Element::Position loc2pos(isc::d2::location &loc)
Converts bison's position to one understood by isc::data::Element.
D2Parser(isc::d2::D2ParserContext &ctx_yyarg)
Build a parser object.
location location_type
Symbol locations.
int symbol_number_type
Symbol type: an internal symbol number.
virtual int parse()
Parse.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
Present a slice of the top of a stack.
S::const_reverse_iterator const_iterator
void push(YY_MOVE_REF(T) t)
Steal the contents of t.
const_iterator begin() const
const_iterator end() const
Notes: IntElement type is changed to int64_t.
Define the isc::d2::parser class.
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.
void clear()
Destroy contents, and record that is empty.
bool empty() const
Whether empty.
location_type location
The location.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
Syntax errors thrown from user actions.