39#define yylex d2_parser_lex
47#line 34 "d2_parser.yy"
52#if defined(__GNUC__) || defined(__clang__)
53#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
56#line 57 "d2_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 "d2_parser.yy"
148namespace isc {
namespace d2 {
149#line 150 "d2_parser.cc"
155 yycdebug_ (&std::cerr),
176 : state (empty_state)
179 D2Parser::by_state::by_state (
const by_state& that)
YY_NOEXCEPT
190 D2Parser::by_state::move (by_state& that)
196 D2Parser::by_state::by_state (state_type s)
YY_NOEXCEPT
203 if (state == empty_state)
209 D2Parser::stack_symbol_type::stack_symbol_type ()
212 D2Parser::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_ncr_protocol_value:
220 case symbol_kind::S_control_socket_type_value:
221 case symbol_kind::S_auth_type_value:
222 value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
225 case symbol_kind::S_BOOLEAN:
226 value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
229 case symbol_kind::S_FLOAT:
230 value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
233 case symbol_kind::S_INTEGER:
234 value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
237 case symbol_kind::S_STRING:
238 value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
247 that.state = empty_state;
251 D2Parser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
252 : super_type (s,
YY_MOVE (that.location))
254 switch (that.kind ())
256 case symbol_kind::S_value:
257 case symbol_kind::S_map_value:
258 case symbol_kind::S_ncr_protocol_value:
259 case symbol_kind::S_control_socket_type_value:
260 case symbol_kind::S_auth_type_value:
261 value.move< ElementPtr > (YY_MOVE (that.value));
264 case symbol_kind::S_BOOLEAN:
265 value.move< bool > (YY_MOVE (that.value));
268 case symbol_kind::S_FLOAT:
269 value.move< double > (YY_MOVE (that.value));
272 case symbol_kind::S_INTEGER:
273 value.move< int64_t > (YY_MOVE (that.value));
276 case symbol_kind::S_STRING:
277 value.move< std::string > (YY_MOVE (that.value));
288#if YY_CPLUSPLUS < 201103L
289 D2Parser::stack_symbol_type&
290 D2Parser::stack_symbol_type::operator= (
const stack_symbol_type& that)
293 switch (that.kind ())
304 value.copy<
bool > (that.value);
308 value.copy<
double > (that.value);
312 value.copy< int64_t > (that.value);
316 value.copy< std::string > (that.value);
323 location = that.location;
327 D2Parser::stack_symbol_type&
328 D2Parser::stack_symbol_type::operator= (stack_symbol_type& that)
331 switch (that.kind ())
342 value.move<
bool > (that.value);
346 value.move<
double > (that.value);
350 value.move< int64_t > (that.value);
354 value.move< std::string > (that.value);
361 location = that.location;
363 that.state = empty_state;
368 template <
typename Base>
370 D2Parser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
377 template <
typename Base>
379 D2Parser::yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const
381 std::ostream& yyoutput = yyo;
384 yyo <<
"empty symbol";
388 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
389 <<
' ' << yysym.name () <<
" ("
390 << yysym.location <<
": ";
394#line 144 "d2_parser.yy"
395 { yyoutput << yysym.value.template as < std::string > (); }
396#line 397 "d2_parser.cc"
400#line 144 "d2_parser.yy"
401 { yyoutput << yysym.value.template as < int64_t > (); }
402#line 403 "d2_parser.cc"
406#line 144 "d2_parser.yy"
407 { yyoutput << yysym.value.template as < double > (); }
408#line 409 "d2_parser.cc"
412#line 144 "d2_parser.yy"
413 { yyoutput << yysym.value.template as < bool > (); }
414#line 415 "d2_parser.cc"
418#line 144 "d2_parser.yy"
419 { yyoutput << yysym.value.template as < ElementPtr > (); }
420#line 421 "d2_parser.cc"
424#line 144 "d2_parser.yy"
425 { yyoutput << yysym.value.template as < ElementPtr > (); }
426#line 427 "d2_parser.cc"
430#line 144 "d2_parser.yy"
431 { yyoutput << yysym.value.template as < ElementPtr > (); }
432#line 433 "d2_parser.cc"
436#line 144 "d2_parser.yy"
437 { yyoutput << yysym.value.template as < ElementPtr > (); }
438#line 439 "d2_parser.cc"
442#line 144 "d2_parser.yy"
443 { yyoutput << yysym.value.template as < ElementPtr > (); }
444#line 445 "d2_parser.cc"
456 D2Parser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
464 D2Parser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym)
466#if 201103L <= YY_CPLUSPLUS
467 yypush_ (m, stack_symbol_type (s, std::move (sym)));
469 stack_symbol_type ss (s, sym);
482 D2Parser::debug_stream ()
const
488 D2Parser::set_debug_stream (std::ostream& o)
494 D2Parser::debug_level_type
495 D2Parser::debug_level ()
const
501 D2Parser::set_debug_level (debug_level_type l)
508 D2Parser::yy_lr_goto_state_ (state_type yystate,
int yysym)
510 int yyr = yypgoto_[yysym -
YYNTOKENS] + yystate;
511 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
512 return yytable_[yyr];
518 D2Parser::yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT
520 return yyvalue == yypact_ninf_;
524 D2Parser::yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT
526 return yyvalue == yytable_ninf_;
544 int yyerrstatus_ = 0;
550 stack_symbol_type yyerror_range[3];
567 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
573 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
577 if (yystack_[0].state == yyfinal_)
588 yyn = yypact_[+yystack_[0].state];
589 if (yy_pact_value_is_default_ (yyn))
601 yyla.
move (yylookahead);
606 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
627 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.
kind ())
636 if (yy_table_value_is_error_ (yyn))
647 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
655 yyn = yydefact_[+yystack_[0].state];
667 stack_symbol_type yylhs;
668 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
705 stack_type::slice range (yystack_, yylen);
719#line 153 "d2_parser.yy"
721#line 722 "d2_parser.cc"
725#line 154 "d2_parser.yy"
727#line 728 "d2_parser.cc"
731#line 155 "d2_parser.yy"
733#line 734 "d2_parser.cc"
737#line 156 "d2_parser.yy"
739#line 740 "d2_parser.cc"
743#line 157 "d2_parser.yy"
745#line 746 "d2_parser.cc"
749#line 158 "d2_parser.yy"
751#line 752 "d2_parser.cc"
755#line 159 "d2_parser.yy"
757#line 758 "d2_parser.cc"
761#line 160 "d2_parser.yy"
763#line 764 "d2_parser.cc"
767#line 161 "d2_parser.yy"
769#line 770 "d2_parser.cc"
773#line 162 "d2_parser.yy"
775#line 776 "d2_parser.cc"
779#line 170 "d2_parser.yy"
781#line 782 "d2_parser.cc"
785#line 171 "d2_parser.yy"
787#line 788 "d2_parser.cc"
791#line 172 "d2_parser.yy"
793#line 794 "d2_parser.cc"
797#line 173 "d2_parser.yy"
799#line 800 "d2_parser.cc"
803#line 174 "d2_parser.yy"
805#line 806 "d2_parser.cc"
809#line 175 "d2_parser.yy"
811#line 812 "d2_parser.cc"
815#line 176 "d2_parser.yy"
817#line 818 "d2_parser.cc"
821#line 179 "d2_parser.yy"
826#line 827 "d2_parser.cc"
830#line 184 "d2_parser.yy"
837#line 838 "d2_parser.cc"
841#line 189 "d2_parser.yy"
847#line 848 "d2_parser.cc"
851#line 195 "d2_parser.yy"
853#line 854 "d2_parser.cc"
857#line 202 "d2_parser.yy"
860 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
861 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
863#line 864 "d2_parser.cc"
867#line 207 "d2_parser.yy"
871 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
872 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
874#line 875 "d2_parser.cc"
878#line 213 "d2_parser.yy"
882#line 883 "d2_parser.cc"
886#line 218 "d2_parser.yy"
891#line 892 "d2_parser.cc"
895#line 221 "d2_parser.yy"
899#line 900 "d2_parser.cc"
903#line 229 "d2_parser.yy"
908#line 909 "d2_parser.cc"
912#line 233 "d2_parser.yy"
917#line 918 "d2_parser.cc"
921#line 237 "d2_parser.yy"
925#line 926 "d2_parser.cc"
929#line 247 "d2_parser.yy"
932 const std::string& keyword = yystack_[1].value.as < std::string > ();
933 error(yystack_[1].location,
934 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
936#line 937 "d2_parser.cc"
940#line 256 "d2_parser.yy"
947#line 948 "d2_parser.cc"
951#line 261 "d2_parser.yy"
957#line 958 "d2_parser.cc"
961#line 269 "d2_parser.yy"
965 ctx.
stack_.back()->set(
"DhcpDdns", m);
969#line 970 "d2_parser.cc"
973#line 275 "d2_parser.yy"
978#line 979 "d2_parser.cc"
982#line 282 "d2_parser.yy"
986#line 987 "d2_parser.cc"
990#line 286 "d2_parser.yy"
996#line 997 "d2_parser.cc"
1000#line 290 "d2_parser.yy"
1004#line 1005 "d2_parser.cc"
1008#line 296 "d2_parser.yy"
1012#line 1013 "d2_parser.cc"
1016#line 319 "d2_parser.yy"
1018 ctx.
unique(
"ip-address", ctx.
loc2pos(yystack_[0].location));
1021#line 1022 "d2_parser.cc"
1025#line 322 "d2_parser.yy"
1028 ctx.
stack_.back()->set(
"ip-address", s);
1031#line 1032 "d2_parser.cc"
1035#line 328 "d2_parser.yy"
1038 if (yystack_[0].value.as < int64_t > () <= 0 || yystack_[0].value.as < int64_t > () >= 65536 ) {
1039 error(yystack_[0].location,
"port must be greater than zero but less than 65536");
1042 ctx.
stack_.back()->set(
"port", i);
1044#line 1045 "d2_parser.cc"
1048#line 337 "d2_parser.yy"
1050 ctx.
unique(
"dns-server-timeout", ctx.
loc2pos(yystack_[2].location));
1051 if (yystack_[0].value.as < int64_t > () <= 0) {
1052 error(yystack_[0].location,
"dns-server-timeout must be greater than zero");
1055 ctx.
stack_.back()->set(
"dns-server-timeout", i);
1058#line 1059 "d2_parser.cc"
1062#line 347 "d2_parser.yy"
1064 ctx.
unique(
"ncr-protocol", ctx.
loc2pos(yystack_[0].location));
1067#line 1068 "d2_parser.cc"
1071#line 350 "d2_parser.yy"
1073 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as <
ElementPtr > ());
1076#line 1077 "d2_parser.cc"
1080#line 356 "d2_parser.yy"
1082#line 1083 "d2_parser.cc"
1086#line 357 "d2_parser.yy"
1088#line 1089 "d2_parser.cc"
1092#line 360 "d2_parser.yy"
1094 ctx.
unique(
"ncr-format", ctx.
loc2pos(yystack_[0].location));
1097#line 1098 "d2_parser.cc"
1101#line 363 "d2_parser.yy"
1104 ctx.
stack_.back()->set(
"ncr-format", json);
1107#line 1108 "d2_parser.cc"
1111#line 369 "d2_parser.yy"
1115#line 1116 "d2_parser.cc"
1119#line 371 "d2_parser.yy"
1128 if ((old->size() != 1) || !old->contains(
"comment")) {
1129 std::stringstream msg;
1130 msg <<
"duplicate user-context entries (previous at "
1131 << old->getPosition().str() <<
")";
1132 error(yystack_[3].location, msg.str());
1135 user_context->set(
"comment", old->get(
"comment"));
1139 parent->set(
"user-context", user_context);
1142#line 1143 "d2_parser.cc"
1146#line 394 "d2_parser.yy"
1150#line 1151 "d2_parser.cc"
1154#line 396 "d2_parser.yy"
1159 user_context->set(
"comment", comment);
1165 if (old->contains(
"comment")) {
1166 std::stringstream msg;
1167 msg <<
"duplicate user-context/comment entries (previous at "
1168 << old->getPosition().str() <<
")";
1169 error(yystack_[3].location, msg.str());
1172 merge(user_context, old);
1176 parent->set(
"user-context", user_context);
1179#line 1180 "d2_parser.cc"
1183#line 421 "d2_parser.yy"
1185 ctx.
unique(
"forward-ddns", ctx.
loc2pos(yystack_[0].location));
1187 ctx.
stack_.back()->set(
"forward-ddns", m);
1191#line 1192 "d2_parser.cc"
1195#line 427 "d2_parser.yy"
1200#line 1201 "d2_parser.cc"
1204#line 432 "d2_parser.yy"
1206 ctx.
unique(
"reverse-ddns", ctx.
loc2pos(yystack_[0].location));
1208 ctx.
stack_.back()->set(
"reverse-ddns", m);
1212#line 1213 "d2_parser.cc"
1216#line 438 "d2_parser.yy"
1221#line 1222 "d2_parser.cc"
1225#line 449 "d2_parser.yy"
1229#line 1230 "d2_parser.cc"
1233#line 460 "d2_parser.yy"
1235 ctx.
unique(
"ddns-domains", ctx.
loc2pos(yystack_[0].location));
1237 ctx.
stack_.back()->set(
"ddns-domains", l);
1241#line 1242 "d2_parser.cc"
1245#line 466 "d2_parser.yy"
1250#line 1251 "d2_parser.cc"
1254#line 471 "d2_parser.yy"
1259#line 1260 "d2_parser.cc"
1263#line 474 "d2_parser.yy"
1267#line 1268 "d2_parser.cc"
1271#line 484 "d2_parser.yy"
1275#line 1276 "d2_parser.cc"
1279#line 489 "d2_parser.yy"
1282 ctx.
stack_.back()->add(m);
1285#line 1286 "d2_parser.cc"
1289#line 493 "d2_parser.yy"
1293#line 1294 "d2_parser.cc"
1297#line 497 "d2_parser.yy"
1302#line 1303 "d2_parser.cc"
1306#line 500 "d2_parser.yy"
1310#line 1311 "d2_parser.cc"
1314#line 506 "d2_parser.yy"
1318#line 1319 "d2_parser.cc"
1322#line 520 "d2_parser.yy"
1327#line 1328 "d2_parser.cc"
1331#line 523 "d2_parser.yy"
1333 if (yystack_[0].value.as < std::string > () ==
"") {
1334 error(yystack_[1].location,
"Ddns domain name cannot be blank");
1338 ctx.
stack_.back()->set(
"name", name);
1341#line 1342 "d2_parser.cc"
1345#line 533 "d2_parser.yy"
1350#line 1351 "d2_parser.cc"
1354#line 536 "d2_parser.yy"
1358 ctx.
stack_.back()->set(
"key-name", name);
1361#line 1362 "d2_parser.cc"
1365#line 546 "d2_parser.yy"
1367 ctx.
unique(
"dns-servers", ctx.
loc2pos(yystack_[0].location));
1369 ctx.
stack_.back()->set(
"dns-servers", l);
1373#line 1374 "d2_parser.cc"
1377#line 552 "d2_parser.yy"
1382#line 1383 "d2_parser.cc"
1386#line 557 "d2_parser.yy"
1391#line 1392 "d2_parser.cc"
1395#line 560 "d2_parser.yy"
1399#line 1400 "d2_parser.cc"
1403#line 566 "d2_parser.yy"
1407#line 1408 "d2_parser.cc"
1411#line 571 "d2_parser.yy"
1414 ctx.
stack_.back()->add(m);
1417#line 1418 "d2_parser.cc"
1421#line 575 "d2_parser.yy"
1425#line 1426 "d2_parser.cc"
1429#line 579 "d2_parser.yy"
1434#line 1435 "d2_parser.cc"
1438#line 582 "d2_parser.yy"
1442#line 1443 "d2_parser.cc"
1446#line 588 "d2_parser.yy"
1450#line 1451 "d2_parser.cc"
1454#line 602 "d2_parser.yy"
1459#line 1460 "d2_parser.cc"
1463#line 605 "d2_parser.yy"
1465 if (yystack_[0].value.as < std::string > () !=
"") {
1466 error(yystack_[1].location,
"hostname is not yet supported");
1470 ctx.
stack_.back()->set(
"hostname", name);
1473#line 1474 "d2_parser.cc"
1477#line 615 "d2_parser.yy"
1479 ctx.
unique(
"ip-address", ctx.
loc2pos(yystack_[0].location));
1482#line 1483 "d2_parser.cc"
1486#line 618 "d2_parser.yy"
1489 ctx.
stack_.back()->set(
"ip-address", s);
1492#line 1493 "d2_parser.cc"
1496#line 624 "d2_parser.yy"
1499 if (yystack_[0].value.as < int64_t > () <= 0 || yystack_[0].value.as < int64_t > () >= 65536 ) {
1500 error(yystack_[0].location,
"port must be greater than zero but less than 65536");
1503 ctx.
stack_.back()->set(
"port", i);
1505#line 1506 "d2_parser.cc"
1509#line 639 "d2_parser.yy"
1513 ctx.
stack_.back()->set(
"tsig-keys", l);
1517#line 1518 "d2_parser.cc"
1521#line 645 "d2_parser.yy"
1526#line 1527 "d2_parser.cc"
1530#line 650 "d2_parser.yy"
1535#line 1536 "d2_parser.cc"
1539#line 653 "d2_parser.yy"
1543#line 1544 "d2_parser.cc"
1547#line 663 "d2_parser.yy"
1551#line 1552 "d2_parser.cc"
1555#line 668 "d2_parser.yy"
1558 ctx.
stack_.back()->add(m);
1561#line 1562 "d2_parser.cc"
1565#line 672 "d2_parser.yy"
1569#line 1570 "d2_parser.cc"
1573#line 676 "d2_parser.yy"
1579#line 1580 "d2_parser.cc"
1583#line 680 "d2_parser.yy"
1587#line 1588 "d2_parser.cc"
1591#line 687 "d2_parser.yy"
1595#line 1596 "d2_parser.cc"
1599#line 702 "d2_parser.yy"
1604#line 1605 "d2_parser.cc"
1608#line 705 "d2_parser.yy"
1610 if (yystack_[0].value.as < std::string > () ==
"") {
1611 error(yystack_[1].location,
"TSIG key name cannot be blank");
1615 ctx.
stack_.back()->set(
"name", name);
1618#line 1619 "d2_parser.cc"
1622#line 715 "d2_parser.yy"
1627#line 1628 "d2_parser.cc"
1631#line 718 "d2_parser.yy"
1633 if (yystack_[0].value.as < std::string > () ==
"") {
1634 error(yystack_[1].location,
"TSIG key algorithm cannot be blank");
1637 ctx.
stack_.back()->set(
"algorithm", elem);
1640#line 1641 "d2_parser.cc"
1644#line 727 "d2_parser.yy"
1646 ctx.
unique(
"digest-bits", ctx.
loc2pos(yystack_[2].location));
1647 if (yystack_[0].value.as < int64_t > () < 0 || (yystack_[0].value.as < int64_t > () > 0 && (yystack_[0].value.as < int64_t > () % 8 != 0))) {
1648 error(yystack_[0].location,
"TSIG key digest-bits must either be zero or a positive, multiple of eight");
1651 ctx.
stack_.back()->set(
"digest-bits", elem);
1653#line 1654 "d2_parser.cc"
1657#line 736 "d2_parser.yy"
1660 ctx.
unique(
"secret-file", ctx.
loc2pos(yystack_[0].location));
1663#line 1664 "d2_parser.cc"
1667#line 740 "d2_parser.yy"
1669 if (yystack_[0].value.as < std::string > () ==
"") {
1670 error(yystack_[1].location,
"TSIG key secret cannot be blank");
1673 ctx.
stack_.back()->set(
"secret", elem);
1676#line 1677 "d2_parser.cc"
1680#line 749 "d2_parser.yy"
1683 ctx.
unique(
"secret-file", ctx.
loc2pos(yystack_[0].location));
1686#line 1687 "d2_parser.cc"
1690#line 753 "d2_parser.yy"
1692 if (yystack_[0].value.as < std::string > () ==
"") {
1693 error(yystack_[1].location,
"TSIG key secret file name cannot be blank");
1696 ctx.
stack_.back()->set(
"secret-file", elem);
1699#line 1700 "d2_parser.cc"
1703#line 767 "d2_parser.yy"
1705 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
1706 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[0].location));
1708 ctx.
stack_.back()->set(
"control-socket", m);
1712#line 1713 "d2_parser.cc"
1716#line 774 "d2_parser.yy"
1721#line 1722 "d2_parser.cc"
1725#line 779 "d2_parser.yy"
1727 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[0].location));
1728 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
1730 ctx.
stack_.back()->set(
"control-sockets", l);
1734#line 1735 "d2_parser.cc"
1738#line 786 "d2_parser.yy"
1743#line 1744 "d2_parser.cc"
1747#line 797 "d2_parser.yy"
1751#line 1752 "d2_parser.cc"
1755#line 802 "d2_parser.yy"
1758 ctx.
stack_.back()->add(m);
1761#line 1762 "d2_parser.cc"
1765#line 806 "d2_parser.yy"
1769#line 1770 "d2_parser.cc"
1773#line 812 "d2_parser.yy"
1777#line 1778 "d2_parser.cc"
1781#line 831 "d2_parser.yy"
1783 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1786#line 1787 "d2_parser.cc"
1790#line 834 "d2_parser.yy"
1792 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1795#line 1796 "d2_parser.cc"
1799#line 840 "d2_parser.yy"
1801#line 1802 "d2_parser.cc"
1805#line 841 "d2_parser.yy"
1807#line 1808 "d2_parser.cc"
1811#line 842 "d2_parser.yy"
1813#line 1814 "d2_parser.cc"
1817#line 845 "d2_parser.yy"
1819 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1820 ctx.
unique(
"socket-address", ctx.
loc2pos(yystack_[0].location));
1823#line 1824 "d2_parser.cc"
1827#line 849 "d2_parser.yy"
1830 ctx.
stack_.back()->set(
"socket-name", name);
1833#line 1834 "d2_parser.cc"
1837#line 855 "d2_parser.yy"
1839 ctx.
unique(
"socket-address", ctx.
loc2pos(yystack_[0].location));
1840 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1843#line 1844 "d2_parser.cc"
1847#line 859 "d2_parser.yy"
1850 ctx.
stack_.back()->set(
"socket-address", address);
1853#line 1854 "d2_parser.cc"
1857#line 865 "d2_parser.yy"
1859 ctx.
unique(
"socket-port", ctx.
loc2pos(yystack_[2].location));
1861 ctx.
stack_.back()->set(
"socket-port", port);
1863#line 1864 "d2_parser.cc"
1867#line 871 "d2_parser.yy"
1869 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
1872#line 1873 "d2_parser.cc"
1876#line 874 "d2_parser.yy"
1879 ctx.
stack_.back()->set(
"trust-anchor", ca);
1882#line 1883 "d2_parser.cc"
1886#line 880 "d2_parser.yy"
1891#line 1892 "d2_parser.cc"
1895#line 883 "d2_parser.yy"
1898 ctx.
stack_.back()->set(
"cert-file", cert);
1901#line 1902 "d2_parser.cc"
1905#line 889 "d2_parser.yy"
1910#line 1911 "d2_parser.cc"
1914#line 892 "d2_parser.yy"
1917 ctx.
stack_.back()->set(
"key-file", key);
1920#line 1921 "d2_parser.cc"
1924#line 898 "d2_parser.yy"
1926 ctx.
unique(
"cert-required", ctx.
loc2pos(yystack_[2].location));
1928 ctx.
stack_.back()->set(
"cert-required", req);
1930#line 1931 "d2_parser.cc"
1934#line 906 "d2_parser.yy"
1936 ctx.
unique(
"authentication", ctx.
loc2pos(yystack_[0].location));
1938 ctx.
stack_.back()->set(
"authentication", m);
1942#line 1943 "d2_parser.cc"
1946#line 912 "d2_parser.yy"
1953#line 1954 "d2_parser.cc"
1957#line 921 "d2_parser.yy"
1961#line 1962 "d2_parser.cc"
1965#line 935 "d2_parser.yy"
1970#line 1971 "d2_parser.cc"
1974#line 938 "d2_parser.yy"
1979#line 1980 "d2_parser.cc"
1983#line 943 "d2_parser.yy"
1985#line 1986 "d2_parser.cc"
1989#line 946 "d2_parser.yy"
1994#line 1995 "d2_parser.cc"
1998#line 949 "d2_parser.yy"
2001 ctx.
stack_.back()->set(
"realm", realm);
2004#line 2005 "d2_parser.cc"
2008#line 955 "d2_parser.yy"
2013#line 2014 "d2_parser.cc"
2017#line 958 "d2_parser.yy"
2020 ctx.
stack_.back()->set(
"directory", directory);
2023#line 2024 "d2_parser.cc"
2027#line 964 "d2_parser.yy"
2031 ctx.
stack_.back()->set(
"clients", l);
2035#line 2036 "d2_parser.cc"
2039#line 970 "d2_parser.yy"
2044#line 2045 "d2_parser.cc"
2048#line 981 "d2_parser.yy"
2052#line 2053 "d2_parser.cc"
2056#line 986 "d2_parser.yy"
2059 ctx.
stack_.back()->add(m);
2062#line 2063 "d2_parser.cc"
2066#line 990 "d2_parser.yy"
2070#line 2071 "d2_parser.cc"
2074#line 996 "d2_parser.yy"
2078#line 2079 "d2_parser.cc"
2082#line 1010 "d2_parser.yy"
2087#line 2088 "d2_parser.cc"
2091#line 1013 "d2_parser.yy"
2094 ctx.
stack_.back()->set(
"user", user);
2097#line 2098 "d2_parser.cc"
2101#line 1019 "d2_parser.yy"
2106#line 2107 "d2_parser.cc"
2110#line 1022 "d2_parser.yy"
2113 ctx.
stack_.back()->set(
"user-file", user);
2116#line 2117 "d2_parser.cc"
2120#line 1028 "d2_parser.yy"
2125#line 2126 "d2_parser.cc"
2129#line 1031 "d2_parser.yy"
2132 ctx.
stack_.back()->set(
"password", pwd);
2135#line 2136 "d2_parser.cc"
2139#line 1037 "d2_parser.yy"
2141 ctx.
unique(
"password-file", ctx.
loc2pos(yystack_[0].location));
2144#line 2145 "d2_parser.cc"
2148#line 1040 "d2_parser.yy"
2151 ctx.
stack_.back()->set(
"password-file", password);
2154#line 2155 "d2_parser.cc"
2158#line 1048 "d2_parser.yy"
2160 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
2162 ctx.
stack_.back()->set(
"hooks-libraries", l);
2166#line 2167 "d2_parser.cc"
2170#line 1054 "d2_parser.yy"
2175#line 2176 "d2_parser.cc"
2179#line 1065 "d2_parser.yy"
2183#line 2184 "d2_parser.cc"
2187#line 1070 "d2_parser.yy"
2190 ctx.
stack_.back()->add(m);
2193#line 2194 "d2_parser.cc"
2197#line 1074 "d2_parser.yy"
2203#line 2204 "d2_parser.cc"
2207#line 1080 "d2_parser.yy"
2213#line 2214 "d2_parser.cc"
2217#line 1084 "d2_parser.yy"
2223#line 2224 "d2_parser.cc"
2227#line 1092 "d2_parser.yy"
2231#line 2232 "d2_parser.cc"
2235#line 1102 "d2_parser.yy"
2240#line 2241 "d2_parser.cc"
2244#line 1105 "d2_parser.yy"
2247 ctx.
stack_.back()->set(
"library", lib);
2250#line 2251 "d2_parser.cc"
2254#line 1111 "d2_parser.yy"
2256 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
2259#line 2260 "d2_parser.cc"
2263#line 1114 "d2_parser.yy"
2265 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
2268#line 2269 "d2_parser.cc"
2272#line 1121 "d2_parser.yy"
2276 ctx.
stack_.back()->set(
"loggers", l);
2280#line 2281 "d2_parser.cc"
2284#line 1127 "d2_parser.yy"
2289#line 2290 "d2_parser.cc"
2293#line 1136 "d2_parser.yy"
2297#line 2298 "d2_parser.cc"
2301#line 1142 "d2_parser.yy"
2304 ctx.
stack_.back()->add(l);
2307#line 2308 "d2_parser.cc"
2311#line 1146 "d2_parser.yy"
2315#line 2316 "d2_parser.cc"
2319#line 1152 "d2_parser.yy"
2323#line 2324 "d2_parser.cc"
2327#line 1166 "d2_parser.yy"
2332#line 2333 "d2_parser.cc"
2336#line 1169 "d2_parser.yy"
2339 ctx.
stack_.back()->set(
"name", name);
2342#line 2343 "d2_parser.cc"
2346#line 1175 "d2_parser.yy"
2348 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
2350 ctx.
stack_.back()->set(
"debuglevel", dl);
2352#line 2353 "d2_parser.cc"
2356#line 1181 "d2_parser.yy"
2361#line 2362 "d2_parser.cc"
2365#line 1184 "d2_parser.yy"
2368 ctx.
stack_.back()->set(
"severity", sev);
2371#line 2372 "d2_parser.cc"
2375#line 1190 "d2_parser.yy"
2377 ctx.
unique(
"output-options", ctx.
loc2pos(yystack_[0].location));
2379 ctx.
stack_.back()->set(
"output-options", l);
2383#line 2384 "d2_parser.cc"
2387#line 1196 "d2_parser.yy"
2392#line 2393 "d2_parser.cc"
2396#line 1203 "d2_parser.yy"
2400#line 2401 "d2_parser.cc"
2404#line 1208 "d2_parser.yy"
2407 ctx.
stack_.back()->add(m);
2410#line 2411 "d2_parser.cc"
2414#line 1212 "d2_parser.yy"
2418#line 2419 "d2_parser.cc"
2422#line 1218 "d2_parser.yy"
2426#line 2427 "d2_parser.cc"
2430#line 1230 "d2_parser.yy"
2435#line 2436 "d2_parser.cc"
2439#line 1233 "d2_parser.yy"
2442 ctx.
stack_.back()->set(
"output", sev);
2445#line 2446 "d2_parser.cc"
2449#line 1239 "d2_parser.yy"
2453 ctx.
stack_.back()->set(
"flush", flush);
2455#line 2456 "d2_parser.cc"
2459#line 1245 "d2_parser.yy"
2463 ctx.
stack_.back()->set(
"maxsize", maxsize);
2465#line 2466 "d2_parser.cc"
2469#line 1251 "d2_parser.yy"
2473 ctx.
stack_.back()->set(
"maxver", maxver);
2475#line 2476 "d2_parser.cc"
2479#line 1257 "d2_parser.yy"
2484#line 2485 "d2_parser.cc"
2488#line 1260 "d2_parser.yy"
2491 ctx.
stack_.back()->set(
"pattern", sev);
2494#line 2495 "d2_parser.cc"
2498#line 2499 "d2_parser.cc"
2507 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
2517 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
2531 std::string msg = yysyntax_error_ (yyctx);
2537 if (yyerrstatus_ == 3)
2545 else if (!yyla.
empty ())
2547 yy_destroy_ (
"Error: discarding", yyla);
2581 yyn = yypact_[+yystack_[0].state];
2582 if (!yy_pact_value_is_default_ (yyn))
2585 if (0 <= yyn && yyn <= yylast_
2588 yyn = yytable_[yyn];
2595 if (yystack_.size () == 1)
2598 yyerror_range[1].
location = yystack_[0].location;
2599 yy_destroy_ (
"Error: popping", yystack_[0]);
2604 stack_symbol_type error_token;
2610 error_token.state = state_type (yyn);
2611 yypush_ (
"Shifting",
YY_MOVE (error_token));
2637 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
2643 while (1 < yystack_.size ())
2645 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
2654 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
2658 yy_destroy_ (YY_NULLPTR, yyla);
2660 while (1 < yystack_.size ())
2662 yy_destroy_ (YY_NULLPTR, yystack_[0]);
2682 D2Parser::yytnamerr_ (
const char *yystr)
2687 char const *yyp = yystr;
2694 goto do_not_strip_quotes;
2698 goto do_not_strip_quotes;
2710 do_not_strip_quotes: ;
2719 return yytnamerr_ (yytname_[yysymbol]);
2726 : yyparser_ (yyparser)
2736 const int yyn = yypact_[+yyparser_.yystack_[0].state];
2737 if (!yy_pact_value_is_default_ (yyn))
2742 const int yyxbegin = yyn < 0 ? -yyn : 0;
2744 const int yychecklim = yylast_ - yyn + 1;
2746 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
2748 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
2752 else if (yycount == yyargn)
2759 if (yyarg && yycount == 0 && 0 < yyargn)
2770 D2Parser::yy_syntax_error_arguments_ (
const context& yyctx,
2801 yyarg[0] = yyctx.
token ();
2802 int yyn = yyctx.
expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2810 D2Parser::yysyntax_error_ (
const context& yyctx)
const
2813 enum { YYARGS_MAX = 5 };
2816 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
2818 char const* yyformat = YY_NULLPTR;
2821#define YYCASE_(N, S) \
2827 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
2828 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
2829 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
2830 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
2831 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2837 std::ptrdiff_t yyi = 0;
2838 for (
char const* yyp = yyformat; *yyp; ++yyp)
2839 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
2850 const short D2Parser::yypact_ninf_ = -215;
2852 const signed char D2Parser::yytable_ninf_ = -1;
2855 D2Parser::yypact_[] =
2857 99, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2858 -215, 33, 8, 0, 38, 42, 55, 73, 105, 96,
2859 107, 125, -215, -215, -215, -215, -215, -215, -215, -215,
2860 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2861 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2862 -215, -215, 8, 44, 129, 7, 47, 133, 141, 140,
2863 24, 142, -25, -215, 153, 160, 197, 194, 200, -215,
2864 22, -215, -215, 201, 202, -215, -215, -215, -215, -215,
2865 -215, -215, -215, -215, -215, -215, 203, -215, 39, -215,
2866 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2867 -215, -215, -215, -215, -215, 204, -215, -215, -215, -215,
2868 -215, -215, 43, -215, -215, -215, -215, -215, -215, -215,
2869 198, 206, -215, -215, -215, -215, -215, -215, -215, 65,
2870 -215, -215, -215, -215, -215, 207, 214, -215, -215, 216,
2871 -215, -215, -215, -215, -215, 71, -215, -215, -215, -215,
2872 -215, 58, -215, -215, -215, -215, 115, -215, -215, -215,
2873 -215, 8, 8, -215, 132, 217, -215, -215, 218, 139,
2874 144, 220, 221, 223, 224, 225, 226, 227, 228, 229,
2875 230, 231, -215, 7, -215, 232, 158, 234, 235, 236,
2876 47, -215, 47, -215, 133, 237, 238, 239, 141, -215,
2877 141, -215, 140, 240, 166, 242, 24, -215, 24, 142,
2878 -215, 243, 244, -34, -215, -215, -215, 245, 246, 172,
2879 -215, -215, 76, 233, 247, 179, 248, 249, 253, 252,
2880 255, 256, 257, -215, 189, -215, 190, 191, 192, -215,
2881 116, -215, 193, 258, 195, -215, 123, -215, 196, -215,
2882 199, -215, 130, -215, 205, 247, -215, 8, 7, -215,
2883 -215, -215, -215, -215, -215, -215, -215, -15, -15, 133,
2884 18, 259, 265, 268, -215, -215, -215, -215, -215, -215,
2885 142, -215, -215, -215, -215, -215, -215, -215, -215, 174,
2886 -215, -215, 175, -215, -215, -215, 176, 270, -215, -215,
2887 -215, 260, -215, -215, -215, -215, 261, -215, -215, -215,
2888 177, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2889 -215, -215, 272, 277, -215, -215, 275, 279, -215, -215,
2890 78, -215, 87, -215, 280, -15, -215, -215, -215, 281,
2891 282, 283, 173, 284, 285, 286, 287, 215, 18, -215,
2892 18, -215, 259, -25, -215, 265, 35, 268, -215, -215,
2893 293, -215, 162, 241, 250, -215, 292, 251, 254, 262,
2894 -215, -215, 178, -215, 184, -215, -215, -215, 298, -215,
2895 -215, -215, -215, 185, -215, -215, -215, -215, -215, -215,
2896 140, -215, -215, -215, -215, -215, -215, 63, -215, -215,
2897 -215, -215, -215, 299, 301, 264, 303, 35, -215, 302,
2898 -215, -215, -215, -215, -215, -215, -215, 186, -215, -215,
2899 -215, -215, -215, 266, 304, -215, 267, -215, -215, 306,
2900 307, 309, 310, 63, -215, -215, 308, -215, 273, 269,
2901 271, 312, -215, -215, 98, -215, -215, -215, -215, -215,
2902 311, 50, 308, -215, -215, 314, 318, -215, -215, 319,
2903 320, 321, -215, 187, -215, -215, -215, -215, -215, -215,
2904 -215, 80, -215, 311, 322, 274, 278, 288, 323, 50,
2905 -215, -215, -215, -215, -215, -215, -215, -215, 188, -215,
2906 -215, -215, -215, -215, -215, 276, -215, -215, -215, 290,
2907 -215, 326, 327, 329, 330, 80, -215, -215, -215, 291,
2908 294, 295, 296, -215, -215, -215, -215, -215
2912 D2Parser::yydefact_[] =
2914 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
2915 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2916 0, 0, 1, 38, 30, 26, 25, 22, 23, 24,
2917 29, 3, 27, 28, 46, 5, 52, 7, 160, 9,
2918 151, 11, 108, 13, 99, 15, 132, 17, 125, 19,
2919 280, 21, 40, 33, 0, 0, 0, 153, 0, 101,
2920 0, 0, 0, 42, 0, 41, 0, 0, 34, 48,
2921 0, 50, 72, 0, 0, 76, 80, 82, 84, 86,
2922 88, 149, 182, 184, 271, 292, 0, 71, 0, 54,
2923 57, 58, 59, 60, 61, 69, 70, 62, 63, 64,
2924 65, 66, 67, 68, 175, 0, 178, 180, 173, 172,
2925 170, 171, 0, 162, 165, 166, 167, 168, 169, 158,
2926 0, 154, 155, 121, 123, 119, 118, 116, 117, 0,
2927 110, 113, 114, 115, 106, 0, 102, 103, 146, 0,
2928 144, 143, 141, 142, 140, 0, 134, 137, 138, 139,
2929 130, 0, 127, 288, 290, 285, 0, 282, 286, 287,
2930 39, 44, 0, 31, 37, 0, 51, 47, 0, 0,
2931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932 0, 0, 45, 56, 53, 0, 0, 0, 0, 0,
2933 164, 161, 0, 152, 157, 0, 0, 0, 112, 109,
2934 0, 100, 105, 0, 0, 0, 136, 133, 0, 129,
2935 126, 0, 0, 284, 281, 43, 35, 0, 0, 0,
2936 74, 75, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 0, 55, 0, 177, 0, 0, 0, 163,
2938 0, 156, 0, 0, 0, 111, 0, 104, 0, 148,
2939 0, 135, 0, 128, 0, 0, 283, 0, 0, 73,
2940 78, 79, 77, 81, 32, 83, 85, 90, 90, 153,
2941 0, 186, 273, 0, 176, 179, 181, 174, 159, 122,
2942 0, 120, 107, 147, 145, 131, 289, 291, 36, 0,
2943 97, 96, 0, 91, 92, 95, 0, 0, 208, 213,
2944 215, 0, 225, 218, 220, 222, 0, 207, 205, 206,
2945 0, 193, 196, 197, 198, 199, 201, 202, 203, 204,
2946 200, 191, 0, 187, 188, 278, 0, 274, 275, 297,
2947 0, 294, 0, 49, 0, 94, 87, 89, 150, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 195, 183,
2949 0, 185, 190, 0, 272, 277, 0, 296, 293, 124,
2950 0, 93, 0, 0, 0, 217, 0, 0, 0, 0,
2951 224, 194, 0, 189, 0, 276, 309, 314, 0, 312,
2952 308, 306, 307, 0, 299, 302, 304, 305, 303, 295,
2953 101, 210, 211, 212, 209, 214, 216, 0, 219, 221,
2954 223, 192, 279, 0, 0, 0, 0, 301, 298, 0,
2955 237, 240, 242, 244, 236, 235, 234, 0, 227, 230,
2956 231, 232, 233, 0, 0, 311, 0, 300, 98, 0,
2957 0, 0, 0, 229, 226, 310, 0, 313, 0, 0,
2958 0, 0, 228, 319, 0, 316, 239, 238, 241, 243,
2959 246, 0, 318, 315, 251, 0, 247, 248, 329, 0,
2960 0, 0, 334, 0, 321, 324, 325, 326, 327, 328,
2961 317, 0, 245, 250, 0, 0, 0, 0, 0, 323,
2962 320, 263, 265, 267, 269, 262, 260, 261, 0, 253,
2963 256, 257, 258, 259, 249, 0, 331, 332, 333, 0,
2964 322, 0, 0, 0, 0, 255, 252, 330, 335, 0,
2965 0, 0, 0, 254, 264, 266, 268, 270
2969 D2Parser::yypgoto_[] =
2971 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2972 -215, -215, -41, -215, -214, -215, 67, -215, -215, -215,
2973 -215, -215, -215, -56, -215, -215, -215, -215, -215, -215,
2974 -215, 77, 154, -215, -215, -215, -215, -215, -215, -215,
2975 -215, -215, -55, -215, -44, -215, -215, -215, -215, -215,
2976 68, -215, 3, -215, -215, -215, -215, -42, -215, 137,
2977 -215, -215, -215, 146, 152, -215, -215, -51, -215, -215,
2978 -215, -215, -215, 79, 147, -215, -215, -215, 150, 155,
2979 -215, -215, -215, -215, -215, -215, -215, -215, -215, 91,
2980 -215, 168, -215, -215, -215, 183, 180, -215, -215, -215,
2981 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2982 -215, -215, 12, -215, 15, 23, -215, -215, -215, -215,
2983 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2984 -215, -215, -215, -215, -67, -215, -215, -215, -215, -215,
2985 -215, -215, -215, -215, -215, -215, -97, -215, -215, -126,
2986 -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
2987 -215, -215, 25, -215, -215, -215, 28, 169, -215, -215,
2988 -215, -215, -215, -215, -215, 26, -215, -215, -23, -215,
2989 -215, -215, -215, -215, -215, -215, -215, -66, -215, -215,
2990 -94, -215, -215, -215, -215, -215, -215, -215
2994 D2Parser::yydefgoto_[] =
2996 0, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2997 20, 21, 30, 31, 32, 53, 265, 67, 68, 33,
2998 52, 64, 65, 87, 35, 54, 70, 165, 71, 37,
2999 55, 88, 89, 90, 168, 91, 92, 93, 171, 262,
3000 94, 172, 95, 173, 96, 174, 97, 175, 98, 176,
3001 292, 293, 294, 295, 334, 45, 59, 135, 136, 137,
3002 200, 43, 58, 129, 130, 131, 197, 132, 195, 133,
3003 196, 49, 61, 151, 152, 208, 47, 60, 145, 146,
3004 147, 205, 148, 203, 149, 99, 177, 41, 57, 120,
3005 121, 122, 192, 39, 56, 112, 113, 114, 189, 115,
3006 185, 116, 117, 187, 118, 188, 100, 178, 101, 179,
3007 322, 323, 324, 350, 310, 311, 312, 339, 394, 313,
3008 340, 314, 341, 315, 316, 344, 317, 345, 318, 346,
3009 319, 320, 343, 417, 418, 419, 429, 447, 420, 430,
3010 421, 431, 422, 432, 455, 456, 457, 471, 488, 489,
3011 490, 501, 491, 502, 492, 503, 493, 504, 102, 180,
3012 326, 327, 328, 353, 51, 62, 156, 157, 158, 211,
3013 159, 212, 103, 181, 330, 331, 356, 383, 384, 385,
3014 403, 386, 387, 406, 388, 404, 444, 445, 451, 463,
3015 464, 465, 474, 466, 467, 468, 469, 478
3019 D2Parser::yytable_[] =
3021 109, 110, 126, 127, 141, 142, 155, 34, 290, 144,
3022 264, 63, 111, 23, 128, 24, 143, 25, 72, 73,
3023 74, 75, 153, 154, 76, 166, 77, 78, 79, 80,
3024 167, 153, 154, 22, 81, 138, 139, 77, 78, 82,
3025 83, 264, 183, 77, 78, 36, 190, 184, 123, 38,
3026 140, 191, 298, 86, 77, 78, 299, 300, 301, 302,
3027 40, 209, 84, 86, 210, 85, 77, 78, 198, 303,
3028 304, 305, 306, 199, 206, 104, 105, 106, 107, 207,
3029 42, 357, 77, 78, 358, 86, 26, 27, 28, 29,
3030 209, 260, 261, 359, 376, 377, 86, 378, 379, 77,
3031 78, 452, 86, 46, 453, 410, 108, 411, 412, 413,
3032 44, 458, 48, 86, 459, 460, 461, 462, 213, 190,
3033 215, 216, 66, 214, 278, 86, 198, 481, 482, 483,
3034 484, 282, 50, 206, 109, 110, 109, 110, 285, 69,
3035 119, 86, 126, 127, 126, 127, 111, 134, 111, 150,
3036 141, 142, 141, 142, 128, 144, 128, 144, 86, 160,
3037 77, 78, 143, 161, 143, 123, 124, 1, 2, 3,
3038 4, 5, 6, 7, 8, 9, 10, 183, 335, 335,
3039 348, 348, 333, 336, 337, 349, 401, 213, 407, 433,
3040 479, 505, 402, 408, 434, 480, 506, 391, 392, 393,
3041 125, 162, 163, 164, 193, 169, 170, 182, 186, 194,
3042 217, 291, 291, 201, 307, 308, 288, 202, 220, 86,
3043 204, 218, 219, 221, 222, 223, 309, 224, 225, 226,
3044 227, 228, 229, 230, 231, 232, 234, 235, 236, 237,
3045 238, 242, 243, 244, 248, 249, 250, 254, 255, 257,
3046 259, 263, 365, 258, 24, 267, 268, 266, 269, 270,
3047 271, 272, 273, 280, 342, 347, 321, 274, 275, 276,
3048 277, 279, 325, 281, 283, 329, 338, 284, 351, 291,
3049 352, 354, 355, 286, 360, 362, 363, 364, 366, 367,
3050 368, 369, 307, 308, 307, 308, 370, 155, 390, 397,
3051 380, 381, 405, 423, 309, 424, 309, 426, 428, 436,
3052 438, 439, 382, 440, 441, 443, 446, 450, 454, 395,
3053 472, 473, 287, 475, 476, 477, 495, 499, 396, 398,
3054 509, 510, 399, 511, 512, 289, 296, 233, 361, 247,
3055 400, 414, 415, 425, 435, 437, 246, 448, 409, 449,
3056 245, 380, 381, 416, 507, 496, 253, 497, 252, 332,
3057 297, 251, 241, 382, 373, 372, 442, 498, 508, 514,
3058 239, 371, 515, 516, 517, 240, 494, 414, 415, 513,
3059 375, 374, 256, 389, 427, 500, 470, 0, 0, 416,
3060 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3061 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062 0, 0, 0, 0, 0, 485, 486, 0, 0, 0,
3063 0, 0, 0, 0, 0, 0, 0, 487, 0, 0,
3064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3065 0, 0, 0, 0, 0, 0, 0, 0, 0, 485,
3066 486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 D2Parser::yycheck_[] =
3073 56, 56, 58, 58, 60, 60, 62, 7, 23, 60,
3074 224, 52, 56, 5, 58, 7, 60, 9, 11, 12,
3075 13, 14, 56, 57, 17, 3, 19, 20, 21, 22,
3076 8, 56, 57, 0, 27, 11, 12, 19, 20, 32,
3077 33, 255, 3, 19, 20, 7, 3, 8, 24, 7,
3078 26, 8, 34, 78, 19, 20, 38, 39, 40, 41,
3079 5, 3, 55, 78, 6, 58, 19, 20, 3, 51,
3080 52, 53, 54, 8, 3, 28, 29, 30, 31, 8,
3081 7, 3, 19, 20, 6, 78, 78, 79, 80, 81,
3082 3, 15, 16, 6, 59, 60, 78, 62, 63, 19,
3083 20, 3, 78, 7, 6, 42, 59, 44, 45, 46,
3084 5, 61, 5, 78, 64, 65, 66, 67, 3, 3,
3085 161, 162, 78, 8, 8, 78, 3, 47, 48, 49,
3086 50, 8, 7, 3, 190, 190, 192, 192, 8, 10,
3087 7, 78, 198, 198, 200, 200, 190, 7, 192, 7,
3088 206, 206, 208, 208, 198, 206, 200, 208, 78, 6,
3089 19, 20, 206, 3, 208, 24, 25, 68, 69, 70,
3090 71, 72, 73, 74, 75, 76, 77, 3, 3, 3,
3091 3, 3, 8, 8, 8, 8, 8, 3, 3, 3,
3092 3, 3, 8, 8, 8, 8, 8, 35, 36, 37,
3093 59, 4, 8, 3, 6, 4, 4, 4, 4, 3,
3094 78, 267, 268, 6, 270, 270, 257, 3, 79, 78,
3095 4, 4, 4, 79, 4, 4, 270, 4, 4, 4,
3096 4, 4, 4, 4, 4, 4, 4, 79, 4, 4,
3097 4, 4, 4, 4, 4, 79, 4, 4, 4, 4,
3098 78, 18, 79, 7, 7, 7, 7, 78, 5, 7,
3099 5, 5, 5, 5, 4, 4, 7, 78, 78, 78,
3100 78, 78, 7, 78, 78, 7, 6, 78, 6, 335,
3101 3, 6, 3, 78, 4, 4, 4, 4, 4, 4,
3102 4, 4, 348, 348, 350, 350, 81, 353, 5, 7,
3103 356, 356, 4, 4, 348, 4, 350, 4, 6, 5,
3104 4, 4, 356, 4, 4, 7, 43, 5, 7, 78,
3105 6, 3, 255, 4, 4, 4, 4, 4, 78, 78,
3106 4, 4, 78, 4, 4, 258, 268, 183, 335, 202,
3107 78, 397, 397, 79, 78, 78, 200, 78, 390, 78,
3108 198, 407, 407, 397, 78, 81, 209, 79, 208, 280,
3109 269, 206, 194, 407, 352, 350, 433, 79, 78, 78,
3110 190, 348, 78, 78, 78, 192, 473, 433, 433, 505,
3111 355, 353, 213, 357, 407, 479, 452, -1, -1, 433,
3112 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3113 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3114 -1, -1, -1, -1, -1, 471, 471, -1, -1, -1,
3115 -1, -1, -1, -1, -1, -1, -1, 471, -1, -1,
3116 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3117 -1, -1, -1, -1, -1, -1, -1, -1, -1, 505,
3118 505, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3123 D2Parser::yystos_[] =
3125 0, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3126 77, 83, 84, 85, 86, 87, 88, 89, 90, 91,
3127 92, 93, 0, 5, 7, 9, 78, 79, 80, 81,
3128 94, 95, 96, 101, 7, 106, 7, 111, 7, 175,
3129 5, 169, 7, 143, 5, 137, 7, 158, 5, 153,
3130 7, 246, 102, 97, 107, 112, 176, 170, 144, 138,
3131 159, 154, 247, 94, 103, 104, 78, 99, 100, 10,
3132 108, 110, 11, 12, 13, 14, 17, 19, 20, 21,
3133 22, 27, 32, 33, 55, 58, 78, 105, 113, 114,
3134 115, 117, 118, 119, 122, 124, 126, 128, 130, 167,
3135 188, 190, 240, 254, 28, 29, 30, 31, 59, 105,
3136 124, 126, 177, 178, 179, 181, 183, 184, 186, 7,
3137 171, 172, 173, 24, 25, 59, 105, 124, 126, 145,
3138 146, 147, 149, 151, 7, 139, 140, 141, 11, 12,
3139 26, 105, 124, 126, 149, 160, 161, 162, 164, 166,
3140 7, 155, 156, 56, 57, 105, 248, 249, 250, 252,
3141 6, 3, 4, 8, 3, 109, 3, 8, 116, 4,
3142 4, 120, 123, 125, 127, 129, 131, 168, 189, 191,
3143 241, 255, 4, 3, 8, 182, 4, 185, 187, 180,
3144 3, 8, 174, 6, 3, 150, 152, 148, 3, 8,
3145 142, 6, 3, 165, 4, 163, 3, 8, 157, 3,
3146 6, 251, 253, 3, 8, 94, 94, 78, 4, 4,
3147 79, 79, 4, 4, 4, 4, 4, 4, 4, 4,
3148 4, 4, 4, 114, 4, 79, 4, 4, 4, 178,
3149 177, 173, 4, 4, 4, 146, 145, 141, 4, 79,
3150 4, 161, 160, 156, 4, 4, 249, 4, 7, 78,
3151 15, 16, 121, 18, 96, 98, 78, 7, 7, 5,
3152 7, 5, 5, 5, 78, 78, 78, 78, 8, 78,
3153 5, 78, 8, 78, 78, 8, 78, 98, 94, 113,
3154 23, 105, 132, 133, 134, 135, 132, 171, 34, 38,
3155 39, 40, 41, 51, 52, 53, 54, 105, 124, 126,
3156 196, 197, 198, 201, 203, 205, 206, 208, 210, 212,
3157 213, 7, 192, 193, 194, 7, 242, 243, 244, 7,
3158 256, 257, 155, 8, 136, 3, 8, 8, 6, 199,
3159 202, 204, 4, 214, 207, 209, 211, 4, 3, 8,
3160 195, 6, 3, 245, 6, 3, 258, 3, 6, 6,
3161 4, 134, 4, 4, 4, 79, 4, 4, 4, 4,
3162 81, 197, 196, 194, 248, 244, 59, 60, 62, 63,
3163 105, 124, 126, 259, 260, 261, 263, 264, 266, 257,
3164 5, 35, 36, 37, 200, 78, 78, 7, 78, 78,
3165 78, 8, 8, 262, 267, 4, 265, 3, 8, 139,
3166 42, 44, 45, 46, 105, 124, 126, 215, 216, 217,
3167 220, 222, 224, 4, 4, 79, 4, 260, 6, 218,
3168 221, 223, 225, 3, 8, 78, 5, 78, 4, 4,
3169 4, 4, 216, 7, 268, 269, 43, 219, 78, 78,
3170 5, 270, 3, 6, 7, 226, 227, 228, 61, 64,
3171 65, 66, 67, 271, 272, 273, 275, 276, 277, 278,
3172 269, 229, 6, 3, 274, 4, 4, 4, 279, 3,
3173 8, 47, 48, 49, 50, 105, 124, 126, 230, 231,
3174 232, 234, 236, 238, 228, 4, 81, 79, 79, 4,
3175 272, 233, 235, 237, 239, 3, 8, 78, 78, 4,
3176 4, 4, 4, 231, 78, 78, 78, 78
3182 0, 82, 84, 83, 85, 83, 86, 83, 87, 83,
3183 88, 83, 89, 83, 90, 83, 91, 83, 92, 83,
3184 93, 83, 94, 94, 94, 94, 94, 94, 94, 95,
3185 97, 96, 98, 99, 99, 100, 100, 100, 102, 101,
3186 103, 103, 104, 104, 104, 105, 107, 106, 109, 108,
3187 108, 110, 112, 111, 113, 113, 113, 114, 114, 114,
3188 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
3189 114, 114, 116, 115, 117, 118, 120, 119, 121, 121,
3190 123, 122, 125, 124, 127, 126, 129, 128, 131, 130,
3191 132, 132, 133, 133, 133, 134, 134, 136, 135, 138,
3192 137, 139, 139, 140, 140, 140, 142, 141, 144, 143,
3193 145, 145, 145, 146, 146, 146, 146, 146, 146, 148,
3194 147, 150, 149, 152, 151, 154, 153, 155, 155, 155,
3195 157, 156, 159, 158, 160, 160, 160, 161, 161, 161,
3196 161, 161, 161, 161, 163, 162, 165, 164, 166, 168,
3197 167, 170, 169, 171, 171, 172, 172, 172, 174, 173,
3198 176, 175, 177, 177, 177, 178, 178, 178, 178, 178,
3199 178, 178, 178, 180, 179, 182, 181, 183, 185, 184,
3200 187, 186, 189, 188, 191, 190, 192, 192, 193, 193,
3201 193, 195, 194, 196, 196, 196, 197, 197, 197, 197,
3202 197, 197, 197, 197, 197, 197, 197, 197, 199, 198,
3203 200, 200, 200, 202, 201, 204, 203, 205, 207, 206,
3204 209, 208, 211, 210, 212, 214, 213, 215, 215, 215,
3205 216, 216, 216, 216, 216, 216, 216, 218, 217, 219,
3206 221, 220, 223, 222, 225, 224, 226, 226, 227, 227,
3207 227, 229, 228, 230, 230, 230, 231, 231, 231, 231,
3208 231, 231, 231, 233, 232, 235, 234, 237, 236, 239,
3209 238, 241, 240, 242, 242, 243, 243, 243, 245, 244,
3210 247, 246, 248, 248, 248, 248, 249, 249, 251, 250,
3211 253, 252, 255, 254, 256, 256, 256, 258, 257, 259,
3212 259, 259, 260, 260, 260, 260, 260, 260, 260, 262,
3213 261, 263, 265, 264, 267, 266, 268, 268, 268, 270,
3214 269, 271, 271, 271, 272, 272, 272, 272, 272, 274,
3215 273, 275, 276, 277, 279, 278
3221 0, 2, 0, 3, 0, 3, 0, 3, 0, 3,
3222 0, 3, 0, 3, 0, 3, 0, 3, 0, 3,
3223 0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
3224 0, 4, 1, 0, 1, 3, 5, 2, 0, 4,
3225 0, 1, 1, 3, 2, 2, 0, 4, 0, 6,
3226 1, 2, 0, 4, 1, 3, 2, 1, 1, 1,
3227 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3228 1, 1, 0, 4, 3, 3, 0, 4, 1, 1,
3229 0, 4, 0, 4, 0, 4, 0, 6, 0, 6,
3230 0, 1, 1, 3, 2, 1, 1, 0, 6, 0,
3231 4, 0, 1, 1, 3, 2, 0, 4, 0, 4,
3232 1, 3, 2, 1, 1, 1, 1, 1, 1, 0,
3233 4, 0, 4, 0, 6, 0, 4, 1, 3, 2,
3234 0, 4, 0, 4, 1, 3, 2, 1, 1, 1,
3235 1, 1, 1, 1, 0, 4, 0, 4, 3, 0,
3236 6, 0, 4, 0, 1, 1, 3, 2, 0, 4,
3237 0, 4, 1, 3, 2, 1, 1, 1, 1, 1,
3238 1, 1, 1, 0, 4, 0, 4, 3, 0, 4,
3239 0, 4, 0, 6, 0, 6, 0, 1, 1, 3,
3240 2, 0, 4, 1, 3, 2, 1, 1, 1, 1,
3241 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
3242 1, 1, 1, 0, 4, 0, 4, 3, 0, 4,
3243 0, 4, 0, 4, 3, 0, 6, 1, 3, 2,
3244 1, 1, 1, 1, 1, 1, 1, 0, 4, 1,
3245 0, 4, 0, 4, 0, 6, 0, 1, 1, 3,
3246 2, 0, 4, 1, 3, 2, 1, 1, 1, 1,
3247 1, 1, 1, 0, 4, 0, 4, 0, 4, 0,
3248 4, 0, 6, 0, 1, 1, 3, 2, 0, 4,
3249 0, 4, 1, 3, 2, 1, 1, 1, 0, 4,
3250 0, 4, 0, 6, 1, 3, 2, 0, 4, 1,
3251 3, 2, 1, 1, 1, 1, 1, 1, 1, 0,
3252 4, 3, 0, 4, 0, 6, 1, 3, 2, 0,
3253 4, 1, 3, 2, 1, 1, 1, 1, 1, 0,
3258#if D2_PARSER_DEBUG || 1
3262 const D2Parser::yytname_[] =
3264 "\"end of file\"",
"error",
"\"invalid token\"",
"\",\"",
"\":\"",
3265 "\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"DhcpDdns\"",
3266 "\"ip-address\"",
"\"port\"",
"\"dns-server-timeout\"",
3267 "\"ncr-protocol\"",
"\"UDP\"",
"\"TCP\"",
"\"ncr-format\"",
"\"JSON\"",
3268 "\"user-context\"",
"\"comment\"",
"\"forward-ddns\"",
3269 "\"reverse-ddns\"",
"\"ddns-domains\"",
"\"key-name\"",
3270 "\"dns-servers\"",
"\"hostname\"",
"\"tsig-keys\"",
"\"algorithm\"",
3271 "\"digest-bits\"",
"\"secret\"",
"\"secret-file\"",
"\"control-socket\"",
3272 "\"control-sockets\"",
"\"socket-type\"",
"\"unix\"",
"\"http\"",
3273 "\"https\"",
"\"socket-name\"",
"\"socket-address\"",
"\"socket-port\"",
3274 "\"authentication\"",
"\"type\"",
"\"basic\"",
"\"realm\"",
3275 "\"directory\"",
"\"clients\"",
"\"user\"",
"\"user-file\"",
3276 "\"password\"",
"\"password-file\"",
"\"trust-anchor\"",
"\"cert-file\"",
3277 "\"key-file\"",
"\"cert-required\"",
"\"hooks-libraries\"",
3278 "\"library\"",
"\"parameters\"",
"\"loggers\"",
"\"name\"",
3279 "\"output-options\"",
"\"output\"",
"\"debuglevel\"",
"\"severity\"",
3280 "\"flush\"",
"\"maxsize\"",
"\"maxver\"",
"\"pattern\"",
"TOPLEVEL_JSON",
3281 "TOPLEVEL_DHCPDDNS",
"SUB_DHCPDDNS",
"SUB_TSIG_KEY",
"SUB_TSIG_KEYS",
3282 "SUB_DDNS_DOMAIN",
"SUB_DDNS_DOMAINS",
"SUB_DNS_SERVER",
3283 "SUB_DNS_SERVERS",
"SUB_HOOKS_LIBRARY",
"\"constant string\"",
3284 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
3285 "$@1",
"$@2",
"$@3",
"$@4",
"$@5",
"$@6",
"$@7",
"$@8",
"$@9",
"$@10",
3286 "value",
"sub_json",
"map2",
"$@11",
"map_value",
"map_content",
3287 "not_empty_map",
"list_generic",
"$@12",
"list_content",
3288 "not_empty_list",
"unknown_map_entry",
"syntax_map",
"$@13",
3289 "global_object",
"$@14",
"global_object_comma",
"sub_dhcpddns",
"$@15",
3290 "dhcpddns_params",
"dhcpddns_param",
"ip_address",
"$@16",
"port",
3291 "dns_server_timeout",
"ncr_protocol",
"$@17",
"ncr_protocol_value",
3292 "ncr_format",
"$@18",
"user_context",
"$@19",
"comment",
"$@20",
3293 "forward_ddns",
"$@21",
"reverse_ddns",
"$@22",
"ddns_mgr_params",
3294 "not_empty_ddns_mgr_params",
"ddns_mgr_param",
"ddns_domains",
"$@23",
3295 "sub_ddns_domains",
"$@24",
"ddns_domain_list",
3296 "not_empty_ddns_domain_list",
"ddns_domain",
"$@25",
"sub_ddns_domain",
3297 "$@26",
"ddns_domain_params",
"ddns_domain_param",
"ddns_domain_name",
3298 "$@27",
"ddns_key_name",
"$@28",
"dns_servers",
"$@29",
3299 "sub_dns_servers",
"$@30",
"dns_server_list",
"dns_server",
"$@31",
3300 "sub_dns_server",
"$@32",
"dns_server_params",
"dns_server_param",
3301 "dns_server_hostname",
"$@33",
"dns_server_ip_address",
"$@34",
3302 "dns_server_port",
"tsig_keys",
"$@35",
"sub_tsig_keys",
"$@36",
3303 "tsig_keys_list",
"not_empty_tsig_keys_list",
"tsig_key",
"$@37",
3304 "sub_tsig_key",
"$@38",
"tsig_key_params",
"tsig_key_param",
3305 "tsig_key_name",
"$@39",
"tsig_key_algorithm",
"$@40",
3306 "tsig_key_digest_bits",
"tsig_key_secret",
"$@41",
3307 "tsig_key_secret_file",
"$@42",
"control_socket",
"$@43",
3308 "control_sockets",
"$@44",
"control_socket_list",
3309 "not_empty_control_socket_list",
"control_socket_entry",
"$@45",
3310 "control_socket_params",
"control_socket_param",
"control_socket_type",
3311 "$@46",
"control_socket_type_value",
"control_socket_name",
"$@47",
3312 "control_socket_address",
"$@48",
"control_socket_port",
"trust_anchor",
3313 "$@49",
"cert_file",
"$@50",
"key_file",
"$@51",
"cert_required",
3314 "authentication",
"$@52",
"auth_params",
"auth_param",
"auth_type",
3315 "$@53",
"auth_type_value",
"realm",
"$@54",
"directory",
"$@55",
3316 "clients",
"$@56",
"clients_list",
"not_empty_clients_list",
3317 "basic_auth",
"$@57",
"clients_params",
"clients_param",
"user",
"$@58",
3318 "user_file",
"$@59",
"password",
"$@60",
"password_file",
"$@61",
3319 "hooks_libraries",
"$@62",
"hooks_libraries_list",
3320 "not_empty_hooks_libraries_list",
"hooks_library",
"$@63",
3321 "sub_hooks_library",
"$@64",
"hooks_params",
"hooks_param",
"library",
3322 "$@65",
"parameters",
"$@66",
"loggers",
"$@67",
"loggers_entries",
3323 "logger_entry",
"$@68",
"logger_params",
"logger_param",
"name",
"$@69",
3324 "debuglevel",
"severity",
"$@70",
"output_options_list",
"$@71",
3325 "output_options_list_content",
"output_entry",
"$@72",
3326 "output_params_list",
"output_params",
"output",
"$@73",
"flush",
3327 "maxsize",
"maxver",
"pattern",
"$@74", YY_NULLPTR
3334 D2Parser::yyrline_[] =
3336 0, 153, 153, 153, 154, 154, 155, 155, 156, 156,
3337 157, 157, 158, 158, 159, 159, 160, 160, 161, 161,
3338 162, 162, 170, 171, 172, 173, 174, 175, 176, 179,
3339 184, 184, 195, 198, 199, 202, 207, 213, 218, 218,
3340 225, 226, 229, 233, 237, 247, 256, 256, 269, 269,
3341 279, 282, 286, 286, 294, 295, 296, 302, 303, 304,
3342 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
3343 315, 316, 319, 319, 328, 337, 347, 347, 356, 357,
3344 360, 360, 369, 369, 394, 394, 421, 421, 432, 432,
3345 443, 444, 447, 448, 449, 454, 455, 460, 460, 471,
3346 471, 478, 479, 482, 483, 484, 489, 489, 497, 497,
3347 504, 505, 506, 511, 512, 513, 514, 515, 516, 520,
3348 520, 533, 533, 546, 546, 557, 557, 564, 565, 566,
3349 571, 571, 579, 579, 586, 587, 588, 593, 594, 595,
3350 596, 597, 598, 599, 602, 602, 615, 615, 624, 639,
3351 639, 650, 650, 657, 658, 661, 662, 663, 668, 668,
3352 676, 676, 685, 686, 687, 692, 693, 694, 695, 696,
3353 697, 698, 699, 702, 702, 715, 715, 727, 736, 736,
3354 749, 749, 767, 767, 779, 779, 791, 792, 795, 796,
3355 797, 802, 802, 810, 811, 812, 817, 818, 819, 820,
3356 821, 822, 823, 824, 825, 826, 827, 828, 831, 831,
3357 840, 841, 842, 845, 845, 855, 855, 865, 871, 871,
3358 880, 880, 889, 889, 898, 906, 906, 919, 920, 921,
3359 926, 927, 928, 929, 930, 931, 932, 935, 935, 943,
3360 946, 946, 955, 955, 964, 964, 975, 976, 979, 980,
3361 981, 986, 986, 994, 995, 996, 1001, 1002, 1003, 1004,
3362 1005, 1006, 1007, 1010, 1010, 1019, 1019, 1028, 1028, 1037,
3363 1037, 1048, 1048, 1059, 1060, 1063, 1064, 1065, 1070, 1070,
3364 1080, 1080, 1090, 1091, 1092, 1095, 1098, 1099, 1102, 1102,
3365 1111, 1111, 1121, 1121, 1134, 1135, 1136, 1142, 1142, 1150,
3366 1151, 1152, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1166,
3367 1166, 1175, 1181, 1181, 1190, 1190, 1201, 1202, 1203, 1208,
3368 1208, 1216, 1217, 1218, 1223, 1224, 1225, 1226, 1227, 1230,
3369 1230, 1239, 1245, 1251, 1257, 1257
3373 D2Parser::yy_stack_print_ ()
const
3375 *yycdebug_ <<
"Stack now";
3376 for (stack_type::const_iterator
3377 i = yystack_.begin (),
3378 i_end = yystack_.end ();
3380 *yycdebug_ <<
' ' << int (i->state);
3385 D2Parser::yy_reduce_print_ (
int yyrule)
const
3387 int yylno = yyrline_[yyrule];
3388 int yynrhs = yyr2_[yyrule];
3390 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
3391 <<
" (line " << yylno <<
"):\n";
3393 for (
int yyi = 0; yyi < yynrhs; yyi++)
3395 yystack_[(yynrhs) - (yyi + 1)]);
3400#line 14 "d2_parser.yy"
3402#line 3403 "d2_parser.cc"
3404#line 1266 "d2_parser.yy"
3409 const std::string& what)
3411 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)
Evaluation context, an interface to the expression evaluation.
@ AUTHENTICATION
Used while parsing content of an authentication type.
@ DDNS_DOMAIN
Used while parsing a list of ddns-domains.
@ DNS_SERVERS
Used while parsing content of a control-socket.
@ DDNS_DOMAINS
Used while parsing content of a dns-server.
@ AUTH_TYPE
Used while parsing content of a client.
@ 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 DhcpDdns/loggers/output-options structures.
@ FORWARD_DDNS
Used while parsing content of DhcpDdns/reverse-ddns.
@ CONTROL_SOCKET_TYPE
Used while parsing content of an authentication.
@ TSIG_KEY
Used while parsing a list of tsig-keys.
@ REVERSE_DDNS
Used while parsing content of a ddns-domain.
@ LOGGERS
Used while parsing DhcpDdns/loggers structures.
@ HOOKS_LIBRARIES
Used while parsing DhcpDdns/hooks-libraries.
@ TSIG_KEYS
Used while parsing content of DhcpDdns/tsig-keys/algorithm.
@ CONTROL_SOCKET
Used while parsing content of a socket-type.
@ CONFIG
Used while parsing content of DhcpDdns.
const std::string contextName()
Get the syntax context name.
void leave()
Leave a syntactic context.
void warnAboutExtraCommas(const isc::d2::location &loc)
Warning for extra commas.
void unique(const std::string &name, isc::data::Element::Position loc)
Check if a parameter is already present.
ParserContext ctx_
Current syntactic context.
void require(const std::string &name, isc::data::Element::Position open_loc, isc::data::Element::Position close_loc)
Check if a required parameter is present.
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.
context(const D2Parser &yyparser, const symbol_type &yyla)
const symbol_type & lookahead() const YY_NOEXCEPT
symbol_kind_type token() const YY_NOEXCEPT
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.
T & emplace()
Instantiate an empty T in here.
T & as() YY_NOEXCEPT
Accessor to a built T.
D2Parser(isc::d2::D2ParserContext &ctx_yyarg)
Build a parser object.
static const symbol_kind_type YYNTOKENS
The number of tokens.
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.
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
location location_type
Symbol locations.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
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-lfc.
value_type value
The semantic value.
bool empty() const YY_NOEXCEPT
Whether empty.
location_type location
The location.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
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.
@ S_control_socket_type_value
"External" symbols: returned by the scanner.
Syntax errors thrown from user actions.
~syntax_error() YY_NOEXCEPT YY_NOTHROW