39#define yylex d2_parser_lex
47#line 35 "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; \
87# define YYLLOC_DEFAULT(Current, Rhs, N) \ …
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 145 "d2_parser.yy"
395 { yyoutput << yysym.value.template as < std::string > (); }
396#line 397 "d2_parser.cc"
400#line 145 "d2_parser.yy"
401 { yyoutput << yysym.value.template as < int64_t > (); }
402#line 403 "d2_parser.cc"
406#line 145 "d2_parser.yy"
407 { yyoutput << yysym.value.template as < double > (); }
408#line 409 "d2_parser.cc"
412#line 145 "d2_parser.yy"
413 { yyoutput << yysym.value.template as < bool > (); }
414#line 415 "d2_parser.cc"
418#line 145 "d2_parser.yy"
419 { yyoutput << yysym.value.template as < ElementPtr > (); }
420#line 421 "d2_parser.cc"
424#line 145 "d2_parser.yy"
425 { yyoutput << yysym.value.template as < ElementPtr > (); }
426#line 427 "d2_parser.cc"
430#line 145 "d2_parser.yy"
431 { yyoutput << yysym.value.template as < ElementPtr > (); }
432#line 433 "d2_parser.cc"
436#line 145 "d2_parser.yy"
437 { yyoutput << yysym.value.template as < ElementPtr > (); }
438#line 439 "d2_parser.cc"
442#line 145 "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 154 "d2_parser.yy"
721#line 722 "d2_parser.cc"
725#line 155 "d2_parser.yy"
727#line 728 "d2_parser.cc"
731#line 156 "d2_parser.yy"
733#line 734 "d2_parser.cc"
737#line 157 "d2_parser.yy"
739#line 740 "d2_parser.cc"
743#line 158 "d2_parser.yy"
745#line 746 "d2_parser.cc"
749#line 159 "d2_parser.yy"
751#line 752 "d2_parser.cc"
755#line 160 "d2_parser.yy"
757#line 758 "d2_parser.cc"
761#line 161 "d2_parser.yy"
763#line 764 "d2_parser.cc"
767#line 162 "d2_parser.yy"
769#line 770 "d2_parser.cc"
773#line 163 "d2_parser.yy"
775#line 776 "d2_parser.cc"
779#line 171 "d2_parser.yy"
781#line 782 "d2_parser.cc"
785#line 172 "d2_parser.yy"
787#line 788 "d2_parser.cc"
791#line 173 "d2_parser.yy"
793#line 794 "d2_parser.cc"
797#line 174 "d2_parser.yy"
799#line 800 "d2_parser.cc"
803#line 175 "d2_parser.yy"
805#line 806 "d2_parser.cc"
809#line 176 "d2_parser.yy"
811#line 812 "d2_parser.cc"
815#line 177 "d2_parser.yy"
817#line 818 "d2_parser.cc"
821#line 180 "d2_parser.yy"
826#line 827 "d2_parser.cc"
830#line 185 "d2_parser.yy"
837#line 838 "d2_parser.cc"
841#line 190 "d2_parser.yy"
847#line 848 "d2_parser.cc"
851#line 196 "d2_parser.yy"
853#line 854 "d2_parser.cc"
857#line 203 "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 208 "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 214 "d2_parser.yy"
882#line 883 "d2_parser.cc"
886#line 219 "d2_parser.yy"
891#line 892 "d2_parser.cc"
895#line 222 "d2_parser.yy"
899#line 900 "d2_parser.cc"
903#line 230 "d2_parser.yy"
908#line 909 "d2_parser.cc"
912#line 234 "d2_parser.yy"
917#line 918 "d2_parser.cc"
921#line 238 "d2_parser.yy"
925#line 926 "d2_parser.cc"
929#line 248 "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 257 "d2_parser.yy"
947#line 948 "d2_parser.cc"
951#line 262 "d2_parser.yy"
957#line 958 "d2_parser.cc"
961#line 270 "d2_parser.yy"
965 ctx.
stack_.back()->set(
"DhcpDdns", m);
969#line 970 "d2_parser.cc"
973#line 276 "d2_parser.yy"
978#line 979 "d2_parser.cc"
982#line 283 "d2_parser.yy"
986#line 987 "d2_parser.cc"
990#line 287 "d2_parser.yy"
996#line 997 "d2_parser.cc"
1000#line 291 "d2_parser.yy"
1004#line 1005 "d2_parser.cc"
1008#line 297 "d2_parser.yy"
1012#line 1013 "d2_parser.cc"
1016#line 320 "d2_parser.yy"
1018 ctx.
unique(
"ip-address", ctx.
loc2pos(yystack_[0].location));
1021#line 1022 "d2_parser.cc"
1025#line 323 "d2_parser.yy"
1028 ctx.
stack_.back()->set(
"ip-address", s);
1031#line 1032 "d2_parser.cc"
1035#line 329 "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 338 "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 348 "d2_parser.yy"
1064 ctx.
unique(
"ncr-protocol", ctx.
loc2pos(yystack_[0].location));
1067#line 1068 "d2_parser.cc"
1071#line 351 "d2_parser.yy"
1073 ctx.
stack_.back()->set(
"ncr-protocol", yystack_[0].value.as <
ElementPtr > ());
1076#line 1077 "d2_parser.cc"
1080#line 357 "d2_parser.yy"
1082#line 1083 "d2_parser.cc"
1086#line 358 "d2_parser.yy"
1088#line 1089 "d2_parser.cc"
1092#line 361 "d2_parser.yy"
1094 ctx.
unique(
"ncr-format", ctx.
loc2pos(yystack_[0].location));
1097#line 1098 "d2_parser.cc"
1101#line 364 "d2_parser.yy"
1104 ctx.
stack_.back()->set(
"ncr-format", json);
1107#line 1108 "d2_parser.cc"
1111#line 370 "d2_parser.yy"
1115#line 1116 "d2_parser.cc"
1119#line 372 "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 395 "d2_parser.yy"
1150#line 1151 "d2_parser.cc"
1154#line 397 "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 422 "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 428 "d2_parser.yy"
1200#line 1201 "d2_parser.cc"
1204#line 433 "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 439 "d2_parser.yy"
1221#line 1222 "d2_parser.cc"
1225#line 450 "d2_parser.yy"
1229#line 1230 "d2_parser.cc"
1233#line 461 "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 467 "d2_parser.yy"
1250#line 1251 "d2_parser.cc"
1254#line 472 "d2_parser.yy"
1259#line 1260 "d2_parser.cc"
1263#line 475 "d2_parser.yy"
1267#line 1268 "d2_parser.cc"
1271#line 485 "d2_parser.yy"
1275#line 1276 "d2_parser.cc"
1279#line 490 "d2_parser.yy"
1282 ctx.
stack_.back()->add(m);
1285#line 1286 "d2_parser.cc"
1289#line 494 "d2_parser.yy"
1293#line 1294 "d2_parser.cc"
1297#line 498 "d2_parser.yy"
1302#line 1303 "d2_parser.cc"
1306#line 501 "d2_parser.yy"
1310#line 1311 "d2_parser.cc"
1314#line 507 "d2_parser.yy"
1318#line 1319 "d2_parser.cc"
1322#line 521 "d2_parser.yy"
1327#line 1328 "d2_parser.cc"
1331#line 524 "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 534 "d2_parser.yy"
1350#line 1351 "d2_parser.cc"
1354#line 537 "d2_parser.yy"
1358 ctx.
stack_.back()->set(
"key-name", name);
1361#line 1362 "d2_parser.cc"
1365#line 547 "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 553 "d2_parser.yy"
1382#line 1383 "d2_parser.cc"
1386#line 558 "d2_parser.yy"
1391#line 1392 "d2_parser.cc"
1395#line 561 "d2_parser.yy"
1399#line 1400 "d2_parser.cc"
1403#line 567 "d2_parser.yy"
1407#line 1408 "d2_parser.cc"
1411#line 572 "d2_parser.yy"
1414 ctx.
stack_.back()->add(m);
1417#line 1418 "d2_parser.cc"
1421#line 576 "d2_parser.yy"
1425#line 1426 "d2_parser.cc"
1429#line 580 "d2_parser.yy"
1434#line 1435 "d2_parser.cc"
1438#line 583 "d2_parser.yy"
1442#line 1443 "d2_parser.cc"
1446#line 589 "d2_parser.yy"
1450#line 1451 "d2_parser.cc"
1454#line 603 "d2_parser.yy"
1459#line 1460 "d2_parser.cc"
1463#line 606 "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 616 "d2_parser.yy"
1479 ctx.
unique(
"ip-address", ctx.
loc2pos(yystack_[0].location));
1482#line 1483 "d2_parser.cc"
1486#line 619 "d2_parser.yy"
1489 ctx.
stack_.back()->set(
"ip-address", s);
1492#line 1493 "d2_parser.cc"
1496#line 625 "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 640 "d2_parser.yy"
1513 ctx.
stack_.back()->set(
"tsig-keys", l);
1517#line 1518 "d2_parser.cc"
1521#line 646 "d2_parser.yy"
1526#line 1527 "d2_parser.cc"
1530#line 651 "d2_parser.yy"
1535#line 1536 "d2_parser.cc"
1539#line 654 "d2_parser.yy"
1543#line 1544 "d2_parser.cc"
1547#line 664 "d2_parser.yy"
1551#line 1552 "d2_parser.cc"
1555#line 669 "d2_parser.yy"
1558 ctx.
stack_.back()->add(m);
1561#line 1562 "d2_parser.cc"
1565#line 673 "d2_parser.yy"
1569#line 1570 "d2_parser.cc"
1573#line 677 "d2_parser.yy"
1579#line 1580 "d2_parser.cc"
1583#line 681 "d2_parser.yy"
1587#line 1588 "d2_parser.cc"
1591#line 688 "d2_parser.yy"
1595#line 1596 "d2_parser.cc"
1599#line 703 "d2_parser.yy"
1604#line 1605 "d2_parser.cc"
1608#line 706 "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 716 "d2_parser.yy"
1627#line 1628 "d2_parser.cc"
1631#line 719 "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 728 "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 737 "d2_parser.yy"
1660 ctx.
unique(
"secret-file", ctx.
loc2pos(yystack_[0].location));
1663#line 1664 "d2_parser.cc"
1667#line 741 "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 750 "d2_parser.yy"
1683 ctx.
unique(
"secret-file", ctx.
loc2pos(yystack_[0].location));
1686#line 1687 "d2_parser.cc"
1690#line 754 "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 768 "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 775 "d2_parser.yy"
1721#line 1722 "d2_parser.cc"
1725#line 780 "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 787 "d2_parser.yy"
1743#line 1744 "d2_parser.cc"
1747#line 798 "d2_parser.yy"
1751#line 1752 "d2_parser.cc"
1755#line 803 "d2_parser.yy"
1758 ctx.
stack_.back()->add(m);
1761#line 1762 "d2_parser.cc"
1765#line 807 "d2_parser.yy"
1769#line 1770 "d2_parser.cc"
1773#line 813 "d2_parser.yy"
1777#line 1778 "d2_parser.cc"
1781#line 832 "d2_parser.yy"
1783 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1786#line 1787 "d2_parser.cc"
1790#line 835 "d2_parser.yy"
1792 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1795#line 1796 "d2_parser.cc"
1799#line 841 "d2_parser.yy"
1801#line 1802 "d2_parser.cc"
1805#line 842 "d2_parser.yy"
1807#line 1808 "d2_parser.cc"
1811#line 843 "d2_parser.yy"
1813#line 1814 "d2_parser.cc"
1817#line 846 "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 850 "d2_parser.yy"
1830 ctx.
stack_.back()->set(
"socket-name", name);
1833#line 1834 "d2_parser.cc"
1837#line 856 "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 860 "d2_parser.yy"
1850 ctx.
stack_.back()->set(
"socket-address", address);
1853#line 1854 "d2_parser.cc"
1857#line 866 "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 872 "d2_parser.yy"
1869 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
1872#line 1873 "d2_parser.cc"
1876#line 875 "d2_parser.yy"
1879 ctx.
stack_.back()->set(
"trust-anchor", ca);
1882#line 1883 "d2_parser.cc"
1886#line 881 "d2_parser.yy"
1891#line 1892 "d2_parser.cc"
1895#line 884 "d2_parser.yy"
1898 ctx.
stack_.back()->set(
"cert-file", cert);
1901#line 1902 "d2_parser.cc"
1905#line 890 "d2_parser.yy"
1910#line 1911 "d2_parser.cc"
1914#line 893 "d2_parser.yy"
1917 ctx.
stack_.back()->set(
"key-file", key);
1920#line 1921 "d2_parser.cc"
1924#line 899 "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 907 "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 913 "d2_parser.yy"
1953#line 1954 "d2_parser.cc"
1957#line 922 "d2_parser.yy"
1961#line 1962 "d2_parser.cc"
1965#line 936 "d2_parser.yy"
1970#line 1971 "d2_parser.cc"
1974#line 939 "d2_parser.yy"
1979#line 1980 "d2_parser.cc"
1983#line 944 "d2_parser.yy"
1985#line 1986 "d2_parser.cc"
1989#line 947 "d2_parser.yy"
1994#line 1995 "d2_parser.cc"
1998#line 950 "d2_parser.yy"
2001 ctx.
stack_.back()->set(
"realm", realm);
2004#line 2005 "d2_parser.cc"
2008#line 956 "d2_parser.yy"
2013#line 2014 "d2_parser.cc"
2017#line 959 "d2_parser.yy"
2020 ctx.
stack_.back()->set(
"directory", directory);
2023#line 2024 "d2_parser.cc"
2027#line 965 "d2_parser.yy"
2031 ctx.
stack_.back()->set(
"clients", l);
2035#line 2036 "d2_parser.cc"
2039#line 971 "d2_parser.yy"
2044#line 2045 "d2_parser.cc"
2048#line 982 "d2_parser.yy"
2052#line 2053 "d2_parser.cc"
2056#line 987 "d2_parser.yy"
2059 ctx.
stack_.back()->add(m);
2062#line 2063 "d2_parser.cc"
2066#line 991 "d2_parser.yy"
2070#line 2071 "d2_parser.cc"
2074#line 997 "d2_parser.yy"
2078#line 2079 "d2_parser.cc"
2082#line 1011 "d2_parser.yy"
2087#line 2088 "d2_parser.cc"
2091#line 1014 "d2_parser.yy"
2094 ctx.
stack_.back()->set(
"user", user);
2097#line 2098 "d2_parser.cc"
2101#line 1020 "d2_parser.yy"
2106#line 2107 "d2_parser.cc"
2110#line 1023 "d2_parser.yy"
2113 ctx.
stack_.back()->set(
"user-file", user);
2116#line 2117 "d2_parser.cc"
2120#line 1029 "d2_parser.yy"
2125#line 2126 "d2_parser.cc"
2129#line 1032 "d2_parser.yy"
2132 ctx.
stack_.back()->set(
"password", pwd);
2135#line 2136 "d2_parser.cc"
2139#line 1038 "d2_parser.yy"
2141 ctx.
unique(
"password-file", ctx.
loc2pos(yystack_[0].location));
2144#line 2145 "d2_parser.cc"
2148#line 1041 "d2_parser.yy"
2151 ctx.
stack_.back()->set(
"password-file", password);
2154#line 2155 "d2_parser.cc"
2158#line 1049 "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 1055 "d2_parser.yy"
2175#line 2176 "d2_parser.cc"
2179#line 1066 "d2_parser.yy"
2183#line 2184 "d2_parser.cc"
2187#line 1071 "d2_parser.yy"
2190 ctx.
stack_.back()->add(m);
2193#line 2194 "d2_parser.cc"
2197#line 1075 "d2_parser.yy"
2203#line 2204 "d2_parser.cc"
2207#line 1081 "d2_parser.yy"
2213#line 2214 "d2_parser.cc"
2217#line 1085 "d2_parser.yy"
2223#line 2224 "d2_parser.cc"
2227#line 1093 "d2_parser.yy"
2231#line 2232 "d2_parser.cc"
2235#line 1103 "d2_parser.yy"
2240#line 2241 "d2_parser.cc"
2244#line 1106 "d2_parser.yy"
2247 ctx.
stack_.back()->set(
"library", lib);
2250#line 2251 "d2_parser.cc"
2254#line 1112 "d2_parser.yy"
2256 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
2259#line 2260 "d2_parser.cc"
2263#line 1115 "d2_parser.yy"
2265 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
2268#line 2269 "d2_parser.cc"
2272#line 1122 "d2_parser.yy"
2276 ctx.
stack_.back()->set(
"loggers", l);
2280#line 2281 "d2_parser.cc"
2284#line 1128 "d2_parser.yy"
2289#line 2290 "d2_parser.cc"
2293#line 1137 "d2_parser.yy"
2297#line 2298 "d2_parser.cc"
2301#line 1143 "d2_parser.yy"
2304 ctx.
stack_.back()->add(l);
2307#line 2308 "d2_parser.cc"
2311#line 1147 "d2_parser.yy"
2315#line 2316 "d2_parser.cc"
2319#line 1153 "d2_parser.yy"
2323#line 2324 "d2_parser.cc"
2327#line 1167 "d2_parser.yy"
2332#line 2333 "d2_parser.cc"
2336#line 1170 "d2_parser.yy"
2339 ctx.
stack_.back()->set(
"name", name);
2342#line 2343 "d2_parser.cc"
2346#line 1176 "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 1182 "d2_parser.yy"
2361#line 2362 "d2_parser.cc"
2365#line 1185 "d2_parser.yy"
2368 ctx.
stack_.back()->set(
"severity", sev);
2371#line 2372 "d2_parser.cc"
2375#line 1191 "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 1197 "d2_parser.yy"
2392#line 2393 "d2_parser.cc"
2396#line 1204 "d2_parser.yy"
2400#line 2401 "d2_parser.cc"
2404#line 1209 "d2_parser.yy"
2407 ctx.
stack_.back()->add(m);
2410#line 2411 "d2_parser.cc"
2414#line 1213 "d2_parser.yy"
2418#line 2419 "d2_parser.cc"
2422#line 1219 "d2_parser.yy"
2426#line 2427 "d2_parser.cc"
2430#line 1231 "d2_parser.yy"
2435#line 2436 "d2_parser.cc"
2439#line 1234 "d2_parser.yy"
2442 ctx.
stack_.back()->set(
"output", sev);
2445#line 2446 "d2_parser.cc"
2449#line 1240 "d2_parser.yy"
2453 ctx.
stack_.back()->set(
"flush", flush);
2455#line 2456 "d2_parser.cc"
2459#line 1246 "d2_parser.yy"
2463 ctx.
stack_.back()->set(
"maxsize", maxsize);
2465#line 2466 "d2_parser.cc"
2469#line 1252 "d2_parser.yy"
2473 ctx.
stack_.back()->set(
"maxver", maxver);
2475#line 2476 "d2_parser.cc"
2479#line 1258 "d2_parser.yy"
2484#line 2485 "d2_parser.cc"
2488#line 1261 "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, 154, 154, 154, 155, 155, 156, 156, 157, 157,
3337 158, 158, 159, 159, 160, 160, 161, 161, 162, 162,
3338 163, 163, 171, 172, 173, 174, 175, 176, 177, 180,
3339 185, 185, 196, 199, 200, 203, 208, 214, 219, 219,
3340 226, 227, 230, 234, 238, 248, 257, 257, 270, 270,
3341 280, 283, 287, 287, 295, 296, 297, 303, 304, 305,
3342 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
3343 316, 317, 320, 320, 329, 338, 348, 348, 357, 358,
3344 361, 361, 370, 370, 395, 395, 422, 422, 433, 433,
3345 444, 445, 448, 449, 450, 455, 456, 461, 461, 472,
3346 472, 479, 480, 483, 484, 485, 490, 490, 498, 498,
3347 505, 506, 507, 512, 513, 514, 515, 516, 517, 521,
3348 521, 534, 534, 547, 547, 558, 558, 565, 566, 567,
3349 572, 572, 580, 580, 587, 588, 589, 594, 595, 596,
3350 597, 598, 599, 600, 603, 603, 616, 616, 625, 640,
3351 640, 651, 651, 658, 659, 662, 663, 664, 669, 669,
3352 677, 677, 686, 687, 688, 693, 694, 695, 696, 697,
3353 698, 699, 700, 703, 703, 716, 716, 728, 737, 737,
3354 750, 750, 768, 768, 780, 780, 792, 793, 796, 797,
3355 798, 803, 803, 811, 812, 813, 818, 819, 820, 821,
3356 822, 823, 824, 825, 826, 827, 828, 829, 832, 832,
3357 841, 842, 843, 846, 846, 856, 856, 866, 872, 872,
3358 881, 881, 890, 890, 899, 907, 907, 920, 921, 922,
3359 927, 928, 929, 930, 931, 932, 933, 936, 936, 944,
3360 947, 947, 956, 956, 965, 965, 976, 977, 980, 981,
3361 982, 987, 987, 995, 996, 997, 1002, 1003, 1004, 1005,
3362 1006, 1007, 1008, 1011, 1011, 1020, 1020, 1029, 1029, 1038,
3363 1038, 1049, 1049, 1060, 1061, 1064, 1065, 1066, 1071, 1071,
3364 1081, 1081, 1091, 1092, 1093, 1096, 1099, 1100, 1103, 1103,
3365 1112, 1112, 1122, 1122, 1135, 1136, 1137, 1143, 1143, 1151,
3366 1152, 1153, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1167,
3367 1167, 1176, 1182, 1182, 1191, 1191, 1202, 1203, 1204, 1209,
3368 1209, 1217, 1218, 1219, 1224, 1225, 1226, 1227, 1228, 1231,
3369 1231, 1240, 1246, 1252, 1258, 1258
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 1267 "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