148namespace isc {
namespace agent {
149#line 150 "agent_parser.cc"
155 yycdebug_ (&std::cerr),
176 : state (empty_state)
179 AgentParser::by_state::by_state (
const by_state& that)
YY_NOEXCEPT
190 AgentParser::by_state::move (by_state& that)
196 AgentParser::by_state::by_state (state_type s)
YY_NOEXCEPT
203 if (state == empty_state)
209 AgentParser::stack_symbol_type::stack_symbol_type ()
212 AgentParser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
215 switch (that.kind ())
225 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
229 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
233 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
237 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
244#if 201103L <= YY_CPLUSPLUS
246 that.state = empty_state;
250 AgentParser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
251 : super_type (s,
YY_MOVE (that.location))
253 switch (that.kind ())
263 value.move<
bool > (
YY_MOVE (that.value));
267 value.move<
double > (
YY_MOVE (that.value));
271 value.move< int64_t > (
YY_MOVE (that.value));
275 value.move< std::string > (
YY_MOVE (that.value));
286#if YY_CPLUSPLUS < 201103L
287 AgentParser::stack_symbol_type&
288 AgentParser::stack_symbol_type::operator= (
const stack_symbol_type& that)
291 switch (that.kind ())
301 value.copy<
bool > (that.value);
305 value.copy<
double > (that.value);
309 value.copy< int64_t > (that.value);
313 value.copy< std::string > (that.value);
320 location = that.location;
324 AgentParser::stack_symbol_type&
325 AgentParser::stack_symbol_type::operator= (stack_symbol_type& that)
328 switch (that.kind ())
338 value.move<
bool > (that.value);
342 value.move<
double > (that.value);
346 value.move< int64_t > (that.value);
350 value.move< std::string > (that.value);
357 location = that.location;
359 that.state = empty_state;
364 template <
typename Base>
366 AgentParser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
373 template <
typename Base>
375 AgentParser::yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const
377 std::ostream& yyoutput = yyo;
380 yyo <<
"empty symbol";
384 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
385 <<
' ' << yysym.name () <<
" ("
386 << yysym.location <<
": ";
390#line 121 "agent_parser.yy"
391 { yyoutput << yysym.value.template as < std::string > (); }
392#line 393 "agent_parser.cc"
396#line 121 "agent_parser.yy"
397 { yyoutput << yysym.value.template as < int64_t > (); }
398#line 399 "agent_parser.cc"
402#line 121 "agent_parser.yy"
403 { yyoutput << yysym.value.template as < double > (); }
404#line 405 "agent_parser.cc"
408#line 121 "agent_parser.yy"
409 { yyoutput << yysym.value.template as < bool > (); }
410#line 411 "agent_parser.cc"
414#line 121 "agent_parser.yy"
415 { yyoutput << yysym.value.template as < ElementPtr > (); }
416#line 417 "agent_parser.cc"
420#line 121 "agent_parser.yy"
421 { yyoutput << yysym.value.template as < ElementPtr > (); }
422#line 423 "agent_parser.cc"
426#line 121 "agent_parser.yy"
427 { yyoutput << yysym.value.template as < ElementPtr > (); }
428#line 429 "agent_parser.cc"
432#line 121 "agent_parser.yy"
433 { yyoutput << yysym.value.template as < ElementPtr > (); }
434#line 435 "agent_parser.cc"
446 AgentParser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
454 AgentParser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (symbol_type) sym)
456#if 201103L <= YY_CPLUSPLUS
457 yypush_ (m, stack_symbol_type (s, std::move (sym)));
459 stack_symbol_type ss (s, sym);
472 AgentParser::debug_stream ()
const
478 AgentParser::set_debug_stream (std::ostream& o)
484 AgentParser::debug_level_type
485 AgentParser::debug_level ()
const
491 AgentParser::set_debug_level (debug_level_type l)
497 AgentParser::state_type
498 AgentParser::yy_lr_goto_state_ (state_type yystate,
int yysym)
500 int yyr = yypgoto_[yysym -
YYNTOKENS] + yystate;
501 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
502 return yytable_[yyr];
508 AgentParser::yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT
510 return yyvalue == yypact_ninf_;
514 AgentParser::yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT
516 return yyvalue == yytable_ninf_;
534 int yyerrstatus_ = 0;
540 stack_symbol_type yyerror_range[3];
557 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
563 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
567 if (yystack_[0].state == yyfinal_)
578 yyn = yypact_[+yystack_[0].state];
579 if (yy_pact_value_is_default_ (yyn))
591 yyla.move (yylookahead);
596 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
617 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.kind ())
626 if (yy_table_value_is_error_ (yyn))
637 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
645 yyn = yydefact_[+yystack_[0].state];
657 stack_symbol_type yylhs;
658 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
672 yylhs.value.emplace<
bool > ();
676 yylhs.value.emplace<
double > ();
680 yylhs.value.emplace< int64_t > ();
684 yylhs.value.emplace< std::string > ();
694 stack_type::slice range (yystack_, yylen);
696 yyerror_range[1].location = yylhs.location;
708#line 132 "agent_parser.yy"
710#line 711 "agent_parser.cc"
714#line 133 "agent_parser.yy"
716#line 717 "agent_parser.cc"
720#line 134 "agent_parser.yy"
722#line 723 "agent_parser.cc"
726#line 142 "agent_parser.yy"
732#line 733 "agent_parser.cc"
736#line 146 "agent_parser.yy"
740#line 741 "agent_parser.cc"
744#line 153 "agent_parser.yy"
749#line 750 "agent_parser.cc"
753#line 159 "agent_parser.yy"
755#line 756 "agent_parser.cc"
759#line 160 "agent_parser.yy"
761#line 762 "agent_parser.cc"
765#line 161 "agent_parser.yy"
767#line 768 "agent_parser.cc"
771#line 162 "agent_parser.yy"
773#line 774 "agent_parser.cc"
777#line 163 "agent_parser.yy"
779#line 780 "agent_parser.cc"
783#line 164 "agent_parser.yy"
785#line 786 "agent_parser.cc"
789#line 165 "agent_parser.yy"
791#line 792 "agent_parser.cc"
795#line 169 "agent_parser.yy"
802#line 803 "agent_parser.cc"
806#line 174 "agent_parser.yy"
812#line 813 "agent_parser.cc"
816#line 180 "agent_parser.yy"
818#line 819 "agent_parser.cc"
822#line 194 "agent_parser.yy"
825 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
826 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
828#line 829 "agent_parser.cc"
832#line 199 "agent_parser.yy"
836 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
837 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
839#line 840 "agent_parser.cc"
843#line 205 "agent_parser.yy"
847#line 848 "agent_parser.cc"
851#line 210 "agent_parser.yy"
856#line 857 "agent_parser.cc"
860#line 213 "agent_parser.yy"
863#line 864 "agent_parser.cc"
867#line 220 "agent_parser.yy"
872#line 873 "agent_parser.cc"
876#line 224 "agent_parser.yy"
881#line 882 "agent_parser.cc"
885#line 228 "agent_parser.yy"
889#line 890 "agent_parser.cc"
893#line 240 "agent_parser.yy"
896 const std::string& keyword = yystack_[1].value.as < std::string > ();
897 error(yystack_[1].location,
898 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
900#line 901 "agent_parser.cc"
904#line 248 "agent_parser.yy"
911#line 912 "agent_parser.cc"
915#line 253 "agent_parser.yy"
921#line 922 "agent_parser.cc"
925#line 260 "agent_parser.yy"
931 ctx.
unique(
"Control-agent", ctx.
loc2pos(yystack_[0].location));
933 ctx.
stack_.back()->set(
"Control-agent", m);
937#line 938 "agent_parser.cc"
941#line 270 "agent_parser.yy"
948#line 949 "agent_parser.cc"
952#line 279 "agent_parser.yy"
956#line 957 "agent_parser.cc"
960#line 285 "agent_parser.yy"
964#line 965 "agent_parser.cc"
968#line 307 "agent_parser.yy"
973#line 974 "agent_parser.cc"
977#line 310 "agent_parser.yy"
980 ctx.
stack_.back()->set(
"http-host", host);
983#line 984 "agent_parser.cc"
987#line 316 "agent_parser.yy"
991 ctx.
stack_.back()->set(
"http-port", prf);
993#line 994 "agent_parser.cc"
997#line 322 "agent_parser.yy"
999 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
1002#line 1003 "agent_parser.cc"
1006#line 325 "agent_parser.yy"
1009 ctx.
stack_.back()->set(
"trust-anchor", ca);
1012#line 1013 "agent_parser.cc"
1016#line 331 "agent_parser.yy"
1021#line 1022 "agent_parser.cc"
1025#line 334 "agent_parser.yy"
1028 ctx.
stack_.back()->set(
"cert-file", cert);
1031#line 1032 "agent_parser.cc"
1035#line 340 "agent_parser.yy"
1040#line 1041 "agent_parser.cc"
1044#line 343 "agent_parser.yy"
1047 ctx.
stack_.back()->set(
"key-file", key);
1050#line 1051 "agent_parser.cc"
1054#line 349 "agent_parser.yy"
1056 ctx.
unique(
"cert-required", ctx.
loc2pos(yystack_[2].location));
1058 ctx.
stack_.back()->set(
"cert-required", req);
1060#line 1061 "agent_parser.cc"
1064#line 355 "agent_parser.yy"
1068#line 1069 "agent_parser.cc"
1072#line 357 "agent_parser.yy"
1081 if ((old->size() != 1) || !old->contains(
"comment")) {
1082 std::stringstream msg;
1083 msg <<
"duplicate user-context entries (previous at "
1084 << old->getPosition().str() <<
")";
1085 error(yystack_[3].location, msg.str());
1088 user_context->set(
"comment", old->get(
"comment"));
1092 parent->set(
"user-context", user_context);
1095#line 1096 "agent_parser.cc"
1099#line 380 "agent_parser.yy"
1103#line 1104 "agent_parser.cc"
1107#line 382 "agent_parser.yy"
1112 user_context->set(
"comment", comment);
1118 if (old->contains(
"comment")) {
1119 std::stringstream msg;
1120 msg <<
"duplicate user-context/comment entries (previous at "
1121 << old->getPosition().str() <<
")";
1122 error(yystack_[3].location, msg.str());
1125 merge(user_context, old);
1129 parent->set(
"user-context", user_context);
1132#line 1133 "agent_parser.cc"
1136#line 408 "agent_parser.yy"
1138 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
1140 ctx.
stack_.back()->set(
"hooks-libraries", l);
1144#line 1145 "agent_parser.cc"
1148#line 414 "agent_parser.yy"
1153#line 1154 "agent_parser.cc"
1157#line 425 "agent_parser.yy"
1161#line 1162 "agent_parser.cc"
1165#line 430 "agent_parser.yy"
1168 ctx.
stack_.back()->add(m);
1171#line 1172 "agent_parser.cc"
1175#line 434 "agent_parser.yy"
1179#line 1180 "agent_parser.cc"
1183#line 440 "agent_parser.yy"
1187#line 1188 "agent_parser.cc"
1191#line 450 "agent_parser.yy"
1196#line 1197 "agent_parser.cc"
1200#line 453 "agent_parser.yy"
1203 ctx.
stack_.back()->set(
"library", lib);
1206#line 1207 "agent_parser.cc"
1210#line 459 "agent_parser.yy"
1212 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
1215#line 1216 "agent_parser.cc"
1219#line 462 "agent_parser.yy"
1221 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
1224#line 1225 "agent_parser.cc"
1228#line 470 "agent_parser.yy"
1230 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[2].location));
1232 ctx.
stack_.back()->set(
"control-sockets", m);
1236#line 1237 "agent_parser.cc"
1240#line 476 "agent_parser.yy"
1245#line 1246 "agent_parser.cc"
1249#line 486 "agent_parser.yy"
1253#line 1254 "agent_parser.cc"
1257#line 500 "agent_parser.yy"
1261 ctx.
stack_.back()->set(
"dhcp4", m);
1265#line 1266 "agent_parser.cc"
1269#line 506 "agent_parser.yy"
1274#line 1275 "agent_parser.cc"
1278#line 512 "agent_parser.yy"
1282 ctx.
stack_.back()->set(
"dhcp6", m);
1286#line 1287 "agent_parser.cc"
1290#line 518 "agent_parser.yy"
1295#line 1296 "agent_parser.cc"
1299#line 524 "agent_parser.yy"
1303 ctx.
stack_.back()->set(
"d2", m);
1307#line 1308 "agent_parser.cc"
1311#line 530 "agent_parser.yy"
1316#line 1317 "agent_parser.cc"
1320#line 538 "agent_parser.yy"
1324#line 1325 "agent_parser.cc"
1328#line 552 "agent_parser.yy"
1330 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1333#line 1334 "agent_parser.cc"
1337#line 555 "agent_parser.yy"
1340 ctx.
stack_.back()->set(
"socket-name", name);
1343#line 1344 "agent_parser.cc"
1347#line 562 "agent_parser.yy"
1349 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1352#line 1353 "agent_parser.cc"
1356#line 565 "agent_parser.yy"
1358 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1361#line 1362 "agent_parser.cc"
1365#line 571 "agent_parser.yy"
1367#line 1368 "agent_parser.cc"
1371#line 578 "agent_parser.yy"
1373 ctx.
unique(
"authentication", ctx.
loc2pos(yystack_[0].location));
1375 ctx.
stack_.back()->set(
"authentication", m);
1379#line 1380 "agent_parser.cc"
1383#line 584 "agent_parser.yy"
1390#line 1391 "agent_parser.cc"
1394#line 593 "agent_parser.yy"
1398#line 1399 "agent_parser.cc"
1402#line 607 "agent_parser.yy"
1407#line 1408 "agent_parser.cc"
1411#line 610 "agent_parser.yy"
1416#line 1417 "agent_parser.cc"
1420#line 615 "agent_parser.yy"
1422#line 1423 "agent_parser.cc"
1426#line 618 "agent_parser.yy"
1431#line 1432 "agent_parser.cc"
1435#line 621 "agent_parser.yy"
1438 ctx.
stack_.back()->set(
"realm", realm);
1441#line 1442 "agent_parser.cc"
1445#line 627 "agent_parser.yy"
1450#line 1451 "agent_parser.cc"
1454#line 630 "agent_parser.yy"
1457 ctx.
stack_.back()->set(
"directory", directory);
1460#line 1461 "agent_parser.cc"
1464#line 636 "agent_parser.yy"
1468 ctx.
stack_.back()->set(
"clients", l);
1472#line 1473 "agent_parser.cc"
1476#line 642 "agent_parser.yy"
1481#line 1482 "agent_parser.cc"
1485#line 653 "agent_parser.yy"
1489#line 1490 "agent_parser.cc"
1493#line 658 "agent_parser.yy"
1496 ctx.
stack_.back()->add(m);
1499#line 1500 "agent_parser.cc"
1503#line 662 "agent_parser.yy"
1507#line 1508 "agent_parser.cc"
1511#line 668 "agent_parser.yy"
1515#line 1516 "agent_parser.cc"
1519#line 682 "agent_parser.yy"
1524#line 1525 "agent_parser.cc"
1528#line 685 "agent_parser.yy"
1531 ctx.
stack_.back()->set(
"user", user);
1534#line 1535 "agent_parser.cc"
1538#line 691 "agent_parser.yy"
1543#line 1544 "agent_parser.cc"
1547#line 694 "agent_parser.yy"
1550 ctx.
stack_.back()->set(
"user-file", user);
1553#line 1554 "agent_parser.cc"
1557#line 700 "agent_parser.yy"
1562#line 1563 "agent_parser.cc"
1566#line 703 "agent_parser.yy"
1569 ctx.
stack_.back()->set(
"password", password);
1572#line 1573 "agent_parser.cc"
1576#line 709 "agent_parser.yy"
1578 ctx.
unique(
"password-file", ctx.
loc2pos(yystack_[0].location));
1581#line 1582 "agent_parser.cc"
1585#line 712 "agent_parser.yy"
1588 ctx.
stack_.back()->set(
"password-file", password);
1591#line 1592 "agent_parser.cc"
1595#line 722 "agent_parser.yy"
1599 ctx.
stack_.back()->set(
"loggers", l);
1603#line 1604 "agent_parser.cc"
1607#line 728 "agent_parser.yy"
1612#line 1613 "agent_parser.cc"
1616#line 737 "agent_parser.yy"
1620#line 1621 "agent_parser.cc"
1624#line 743 "agent_parser.yy"
1627 ctx.
stack_.back()->add(l);
1630#line 1631 "agent_parser.cc"
1634#line 747 "agent_parser.yy"
1638#line 1639 "agent_parser.cc"
1642#line 753 "agent_parser.yy"
1646#line 1647 "agent_parser.cc"
1650#line 767 "agent_parser.yy"
1655#line 1656 "agent_parser.cc"
1659#line 770 "agent_parser.yy"
1662 ctx.
stack_.back()->set(
"name", name);
1665#line 1666 "agent_parser.cc"
1669#line 776 "agent_parser.yy"
1671 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
1673 ctx.
stack_.back()->set(
"debuglevel", dl);
1675#line 1676 "agent_parser.cc"
1679#line 782 "agent_parser.yy"
1684#line 1685 "agent_parser.cc"
1688#line 785 "agent_parser.yy"
1691 ctx.
stack_.back()->set(
"severity", sev);
1694#line 1695 "agent_parser.cc"
1698#line 791 "agent_parser.yy"
1700 ctx.
unique(
"output-options", ctx.
loc2pos(yystack_[0].location));
1702 ctx.
stack_.back()->set(
"output-options", l);
1706#line 1707 "agent_parser.cc"
1710#line 797 "agent_parser.yy"
1715#line 1716 "agent_parser.cc"
1719#line 804 "agent_parser.yy"
1723#line 1724 "agent_parser.cc"
1727#line 809 "agent_parser.yy"
1730 ctx.
stack_.back()->add(m);
1733#line 1734 "agent_parser.cc"
1737#line 813 "agent_parser.yy"
1741#line 1742 "agent_parser.cc"
1745#line 819 "agent_parser.yy"
1749#line 1750 "agent_parser.cc"
1753#line 831 "agent_parser.yy"
1758#line 1759 "agent_parser.cc"
1762#line 834 "agent_parser.yy"
1765 ctx.
stack_.back()->set(
"output", sev);
1768#line 1769 "agent_parser.cc"
1772#line 840 "agent_parser.yy"
1776 ctx.
stack_.back()->set(
"flush", flush);
1778#line 1779 "agent_parser.cc"
1782#line 846 "agent_parser.yy"
1786 ctx.
stack_.back()->set(
"maxsize", maxsize);
1788#line 1789 "agent_parser.cc"
1792#line 852 "agent_parser.yy"
1796 ctx.
stack_.back()->set(
"maxver", maxver);
1798#line 1799 "agent_parser.cc"
1802#line 858 "agent_parser.yy"
1807#line 1808 "agent_parser.cc"
1811#line 861 "agent_parser.yy"
1814 ctx.
stack_.back()->set(
"pattern", sev);
1817#line 1818 "agent_parser.cc"
1821#line 1822 "agent_parser.cc"
1830 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
1840 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1854 std::string msg = yysyntax_error_ (yyctx);
1859 yyerror_range[1].location = yyla.location;
1860 if (yyerrstatus_ == 3)
1868 else if (!yyla.empty ())
1870 yy_destroy_ (
"Error: discarding", yyla);
1904 yyn = yypact_[+yystack_[0].state];
1905 if (!yy_pact_value_is_default_ (yyn))
1908 if (0 <= yyn && yyn <= yylast_
1911 yyn = yytable_[yyn];
1918 if (yystack_.size () == 1)
1921 yyerror_range[1].location = yystack_[0].location;
1922 yy_destroy_ (
"Error: popping", yystack_[0]);
1927 stack_symbol_type error_token;
1929 yyerror_range[2].location = yyla.location;
1933 error_token.state = state_type (yyn);
1934 yypush_ (
"Shifting",
YY_MOVE (error_token));
1960 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1966 while (1 < yystack_.size ())
1968 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1977 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1981 yy_destroy_ (YY_NULLPTR, yyla);
1983 while (1 < yystack_.size ())
1985 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1996 error (yyexc.location, yyexc.what ());
2005 AgentParser::yytnamerr_ (
const char *yystr)
2010 char const *yyp = yystr;
2017 goto do_not_strip_quotes;
2021 goto do_not_strip_quotes;
2033 do_not_strip_quotes: ;
2042 return yytnamerr_ (yytname_[yysymbol]);
2049 : yyparser_ (yyparser)
2059 const int yyn = yypact_[+yyparser_.yystack_[0].state];
2060 if (!yy_pact_value_is_default_ (yyn))
2065 const int yyxbegin = yyn < 0 ? -yyn : 0;
2067 const int yychecklim = yylast_ - yyn + 1;
2069 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
2071 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
2075 else if (yycount == yyargn)
2082 if (yyarg && yycount == 0 && 0 < yyargn)
2093 AgentParser::yy_syntax_error_arguments_ (
const context& yyctx,
2121 if (!yyctx.lookahead ().empty ())
2124 yyarg[0] = yyctx.token ();
2125 int yyn = yyctx.expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2133 AgentParser::yysyntax_error_ (
const context& yyctx)
const
2136 enum { YYARGS_MAX = 5 };
2139 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
2141 char const* yyformat = YY_NULLPTR;
2144#define YYCASE_(N, S) \
2150 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
2151 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
2152 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
2153 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
2154 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2160 std::ptrdiff_t yyi = 0;
2161 for (
char const* yyp = yyformat; *yyp; ++yyp)
2162 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
2173 const short AgentParser::yypact_ninf_ = -136;
2175 const signed char AgentParser::yytable_ninf_ = -1;
2178 AgentParser::yypact_[] =
2180 71, -136, -136, -136, 4, 0, 1, 16, -136, -136,
2181 -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
2182 -136, -136, -136, -136, 0, -31, 19, -1, -136, 40,
2183 55, 78, 83, 107, -136, 14, -136, -136, 112, -136,
2184 -136, -136, -136, -136, -136, 114, 119, -136, -136, 120,
2185 -136, 42, -136, -136, -136, -136, -136, -136, -136, -136,
2186 -136, -136, -136, -136, -136, -136, 0, 0, -136, 73,
2187 122, -136, -136, 126, 80, 127, 131, 132, 136, 138,
2188 139, 89, 140, 141, 142, -136, -1, -136, -136, -136,
2189 144, 143, 100, -136, 146, 102, 148, 104, 106, 108,
2190 -136, -136, 152, 154, -136, 0, -1, -136, -136, -136,
2191 -136, 23, -136, -136, -136, -12, 155, 156, -136, 75,
2192 -136, -136, -136, -136, -136, -136, -136, 91, -136, -136,
2193 -136, -136, -136, -136, -136, -136, -136, 95, -136, -136,
2194 -136, -136, -136, 145, 158, -136, -136, 28, -136, -136,
2195 160, 161, 162, 163, 23, -136, 164, 165, 166, -12,
2196 -136, -22, -136, 155, 49, 156, -136, 157, 121, 123,
2197 167, -136, 169, 170, 171, -136, -136, -136, -136, 97,
2198 -136, -136, -136, -136, -136, -136, 175, -136, -136, -136,
2199 -136, 99, -136, -136, -136, -136, -136, -136, -136, -136,
2200 -136, -136, 173, 63, 63, 63, 177, 178, -5, -136,
2201 179, 180, 96, 181, 49, -136, -136, 184, 168, -136,
2202 -136, -136, -136, -136, -136, 101, -136, -136, -136, 103,
2203 105, 134, 146, -136, 147, 186, -136, 149, -136, 43,
2204 -136, 173, 188, 189, 63, -136, -136, -136, -136, -136,
2205 -136, 187, -136, -136, -136, -136, -136, -136, -136, -136,
2206 109, -136, -136, -136, -136, -136, -136, 150, 172, -136,
2207 -136, 41, -136, 191, 192, 193, 194, 43, -136, -136,
2208 -136, -136, 26, 187, -136, 151, 153, 159, 174, -136,
2209 -136, 196, 200, 202, -136, 111, -136, -136, -136, -136,
2210 -136, -136, -136, -136, -136, -136, -136, 204, 176, 182,
2211 183, 205, 26, -136, 185, -136, -136, -136, 190, -136,
2216 AgentParser::yydefact_[] =
2218 0, 2, 4, 6, 0, 0, 0, 0, 1, 26,
2219 18, 15, 14, 11, 12, 13, 3, 10, 16, 17,
2220 34, 5, 8, 7, 28, 21, 0, 0, 30, 0,
2221 29, 0, 0, 22, 36, 0, 38, 56, 0, 66,
2222 68, 117, 59, 61, 63, 0, 0, 70, 163, 0,
2223 55, 0, 40, 43, 44, 45, 46, 47, 48, 53,
2224 54, 51, 50, 49, 52, 27, 32, 0, 19, 25,
2225 0, 39, 35, 0, 0, 0, 0, 0, 0, 0,
2226 0, 0, 0, 0, 0, 33, 42, 9, 31, 23,
2227 0, 0, 0, 58, 0, 0, 0, 0, 0, 0,
2228 65, 89, 0, 0, 41, 0, 0, 57, 20, 67,
2229 69, 0, 60, 62, 64, 0, 72, 0, 24, 0,
2230 129, 132, 134, 136, 128, 127, 126, 0, 119, 122,
2231 123, 124, 125, 98, 100, 102, 97, 0, 91, 94,
2232 95, 96, 77, 0, 73, 74, 168, 0, 165, 37,
2233 0, 0, 0, 0, 121, 118, 0, 0, 0, 93,
2234 90, 0, 71, 76, 0, 167, 164, 0, 0, 0,
2235 0, 120, 0, 0, 0, 92, 85, 87, 82, 0,
2236 79, 83, 84, 75, 180, 185, 0, 183, 179, 177,
2237 178, 0, 170, 173, 175, 176, 174, 166, 131, 130,
2238 133, 135, 138, 0, 0, 0, 0, 0, 81, 78,
2239 0, 0, 0, 0, 172, 169, 143, 0, 139, 140,
2240 112, 114, 111, 109, 110, 0, 104, 107, 108, 0,
2241 0, 0, 0, 80, 0, 0, 182, 0, 171, 0,
2242 137, 142, 0, 0, 106, 99, 101, 103, 86, 88,
2243 181, 0, 184, 155, 157, 159, 161, 154, 152, 153,
2244 0, 145, 148, 149, 150, 151, 141, 0, 0, 105,
2245 190, 0, 187, 0, 0, 0, 0, 147, 144, 113,
2246 116, 115, 0, 189, 186, 0, 0, 0, 0, 146,
2247 200, 0, 0, 0, 205, 0, 192, 195, 196, 197,
2248 198, 199, 188, 156, 158, 160, 162, 0, 0, 0,
2249 0, 0, 194, 191, 0, 202, 203, 204, 0, 193,
2254 AgentParser::yypgoto_[] =
2256 -136, -136, -136, -136, -136, -136, -136, -136, -18, -91,
2257 -136, -17, -136, -136, -136, -136, -136, -136, -27, -136,
2258 -136, -136, -136, -136, 110, 124, -136, -136, -136, -136,
2259 -136, -136, -136, -136, -136, -136, -26, -136, -25, -136,
2260 -136, -136, -136, -136, 54, -136, -136, 10, -136, -136,
2261 -136, -136, -136, -136, -136, 60, -136, -136, -136, -136,
2262 -136, -136, -135, -24, -136, -136, -136, -136, -136, -136,
2263 -136, -136, 67, -136, -136, -136, -136, -136, -136, -136,
2264 -136, -136, -136, -136, -19, -136, -136, -54, -136, -136,
2265 -136, -136, -136, -136, -136, -136, -136, -136, -136, 59,
2266 -136, -136, 11, -136, -136, -136, -136, -136, -136, -136,
2267 -136, -56, -136, -136, -84, -136, -136, -136, -136, -136,
2272 AgentParser::yydefgoto_[] =
2274 0, 4, 5, 6, 7, 23, 27, 16, 17, 18,
2275 25, 109, 32, 33, 19, 24, 29, 30, 222, 21,
2276 26, 35, 70, 36, 51, 52, 53, 73, 54, 55,
2277 78, 56, 79, 57, 80, 58, 223, 75, 224, 76,
2278 61, 83, 143, 144, 145, 161, 179, 180, 181, 206,
2279 182, 207, 62, 115, 137, 138, 139, 156, 140, 157,
2280 141, 158, 225, 226, 227, 242, 228, 243, 281, 63,
2281 77, 127, 128, 129, 150, 199, 130, 151, 131, 152,
2282 132, 153, 217, 218, 219, 239, 260, 261, 262, 273,
2283 263, 274, 264, 275, 265, 276, 64, 84, 147, 148,
2284 164, 191, 192, 193, 210, 194, 195, 213, 196, 211,
2285 271, 272, 282, 295, 296, 297, 307, 298, 299, 300,
2290 AgentParser::yytable_[] =
2292 50, 59, 60, 108, 8, 9, 28, 10, 20, 11,
2293 37, 38, 39, 40, 41, 176, 177, 71, 133, 134,
2294 135, 31, 72, 22, 42, 43, 44, 45, 46, 34,
2295 49, 165, 176, 177, 166, 47, 39, 40, 48, 120,
2296 49, 121, 122, 123, 283, 86, 65, 284, 88, 89,
2297 87, 49, 12, 13, 14, 15, 39, 40, 66, 50,
2298 59, 60, 39, 40, 253, 254, 255, 256, 290, 229,
2299 230, 291, 292, 293, 294, 49, 39, 40, 86, 50,
2300 59, 60, 67, 149, 124, 125, 126, 118, 136, 184,
2301 185, 68, 186, 187, 154, 49, 220, 221, 159, 155,
2302 208, 49, 214, 160, 244, 209, 244, 215, 244, 245,
2303 69, 246, 277, 247, 312, 49, 74, 278, 81, 313,
2304 1, 2, 3, 82, 85, 90, 91, 124, 125, 126,
2305 92, 94, 136, 93, 178, 95, 96, 188, 189, 190,
2306 97, 108, 98, 99, 100, 102, 103, 101, 105, 236,
2307 106, 162, 107, 10, 110, 111, 112, 116, 113, 117,
2308 114, 163, 142, 146, 167, 168, 169, 170, 172, 173,
2309 174, 241, 202, 200, 198, 201, 203, 204, 205, 212,
2310 216, 231, 232, 234, 235, 237, 248, 188, 189, 190,
2311 240, 251, 267, 268, 270, 285, 286, 287, 288, 250,
2312 308, 252, 279, 303, 309, 304, 310, 280, 314, 318,
2313 104, 305, 257, 258, 259, 249, 119, 183, 233, 175,
2314 269, 171, 266, 289, 197, 238, 306, 302, 319, 0,
2315 0, 315, 0, 0, 0, 316, 317, 320, 0, 0,
2316 0, 0, 321, 0, 0, 0, 0, 0, 0, 0,
2321 AgentParser::yycheck_[] =
2323 27, 27, 27, 94, 0, 5, 24, 7, 7, 9,
2324 11, 12, 13, 14, 15, 37, 38, 3, 30, 31,
2325 32, 52, 8, 7, 25, 26, 27, 28, 29, 10,
2326 52, 3, 37, 38, 6, 36, 13, 14, 39, 16,
2327 52, 18, 19, 20, 3, 3, 6, 6, 66, 67,
2328 8, 52, 52, 53, 54, 55, 13, 14, 3, 86,
2329 86, 86, 13, 14, 21, 22, 23, 24, 42, 204,
2330 205, 45, 46, 47, 48, 52, 13, 14, 3, 106,
2331 106, 106, 4, 8, 111, 111, 111, 105, 115, 40,
2332 41, 8, 43, 44, 3, 52, 33, 34, 3, 8,
2333 3, 52, 3, 8, 3, 8, 3, 8, 3, 8,
2334 3, 8, 3, 8, 3, 52, 4, 8, 4, 8,
2335 49, 50, 51, 4, 4, 52, 4, 154, 154, 154,
2336 4, 4, 159, 53, 161, 4, 4, 164, 164, 164,
2337 4, 232, 4, 4, 55, 4, 4, 7, 4, 53,
2338 7, 6, 52, 7, 52, 7, 52, 5, 52, 5,
2339 52, 3, 7, 7, 4, 4, 4, 4, 4, 4,
2340 4, 3, 5, 52, 17, 52, 7, 7, 7, 4,
2341 7, 4, 4, 4, 4, 4, 52, 214, 214, 214,
2342 6, 5, 4, 4, 7, 4, 4, 4, 4, 52,
2343 4, 52, 52, 52, 4, 52, 4, 35, 4, 4,
2344 86, 52, 239, 239, 239, 232, 106, 163, 208, 159,
2345 244, 154, 241, 277, 165, 214, 52, 283, 312, -1,
2346 -1, 55, -1, -1, -1, 53, 53, 52, -1, -1,
2347 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
2352 AgentParser::yystos_[] =
2354 0, 49, 50, 51, 57, 58, 59, 60, 0, 5,
2355 7, 9, 52, 53, 54, 55, 63, 64, 65, 70,
2356 7, 75, 7, 61, 71, 66, 76, 62, 64, 72,
2357 73, 52, 68, 69, 10, 77, 79, 11, 12, 13,
2358 14, 15, 25, 26, 27, 28, 29, 36, 39, 52,
2359 74, 80, 81, 82, 84, 85, 87, 89, 91, 92,
2360 94, 96, 108, 125, 152, 6, 3, 4, 8, 3,
2361 78, 3, 8, 83, 4, 93, 95, 126, 86, 88,
2362 90, 4, 4, 97, 153, 4, 3, 8, 64, 64,
2363 52, 4, 4, 53, 4, 4, 4, 4, 4, 4,
2364 55, 7, 4, 4, 81, 4, 7, 52, 65, 67,
2365 52, 7, 52, 52, 52, 109, 5, 5, 64, 80,
2366 16, 18, 19, 20, 74, 92, 94, 127, 128, 129,
2367 132, 134, 136, 30, 31, 32, 74, 110, 111, 112,
2368 114, 116, 7, 98, 99, 100, 7, 154, 155, 8,
2369 130, 133, 135, 137, 3, 8, 113, 115, 117, 3,
2370 8, 101, 6, 3, 156, 3, 6, 4, 4, 4,
2371 4, 128, 4, 4, 4, 111, 37, 38, 74, 102,
2372 103, 104, 106, 100, 40, 41, 43, 44, 74, 92,
2373 94, 157, 158, 159, 161, 162, 164, 155, 17, 131,
2374 52, 52, 5, 7, 7, 7, 105, 107, 3, 8,
2375 160, 165, 4, 163, 3, 8, 7, 138, 139, 140,
2376 33, 34, 74, 92, 94, 118, 119, 120, 122, 118,
2377 118, 4, 4, 103, 4, 4, 53, 4, 158, 141,
2378 6, 3, 121, 123, 3, 8, 8, 8, 52, 67,
2379 52, 5, 52, 21, 22, 23, 24, 74, 92, 94,
2380 142, 143, 144, 146, 148, 150, 140, 4, 4, 119,
2381 7, 166, 167, 145, 147, 149, 151, 3, 8, 52,
2382 35, 124, 168, 3, 6, 4, 4, 4, 4, 143,
2383 42, 45, 46, 47, 48, 169, 170, 171, 173, 174,
2384 175, 176, 167, 52, 52, 52, 52, 172, 4, 4,
2385 4, 177, 3, 8, 4, 55, 53, 53, 4, 170,
2390 AgentParser::yyr1_[] =
2392 0, 56, 58, 57, 59, 57, 60, 57, 62, 61,
2393 63, 64, 64, 64, 64, 64, 64, 64, 66, 65,
2394 67, 68, 68, 69, 69, 69, 71, 70, 72, 72,
2395 73, 73, 73, 74, 76, 75, 78, 77, 77, 79,
2396 80, 80, 80, 81, 81, 81, 81, 81, 81, 81,
2397 81, 81, 81, 81, 81, 81, 83, 82, 84, 86,
2398 85, 88, 87, 90, 89, 91, 93, 92, 95, 94,
2399 97, 96, 98, 98, 99, 99, 99, 101, 100, 102,
2400 102, 102, 102, 103, 103, 105, 104, 107, 106, 109,
2401 108, 110, 110, 110, 111, 111, 111, 111, 113, 112,
2402 115, 114, 117, 116, 118, 118, 118, 119, 119, 119,
2403 119, 119, 121, 120, 123, 122, 124, 126, 125, 127,
2404 127, 127, 128, 128, 128, 128, 128, 128, 128, 130,
2405 129, 131, 133, 132, 135, 134, 137, 136, 138, 138,
2406 139, 139, 139, 141, 140, 142, 142, 142, 143, 143,
2407 143, 143, 143, 143, 143, 145, 144, 147, 146, 149,
2408 148, 151, 150, 153, 152, 154, 154, 154, 156, 155,
2409 157, 157, 157, 158, 158, 158, 158, 158, 158, 158,
2410 160, 159, 161, 163, 162, 165, 164, 166, 166, 166,
2411 168, 167, 169, 169, 169, 170, 170, 170, 170, 170,
2412 172, 171, 173, 174, 175, 177, 176
2416 AgentParser::yyr2_[] =
2418 0, 2, 0, 3, 0, 3, 0, 3, 0, 4,
2419 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
2420 1, 0, 1, 3, 5, 2, 0, 4, 0, 1,
2421 1, 3, 2, 2, 0, 4, 0, 6, 1, 2,
2422 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
2423 1, 1, 1, 1, 1, 1, 0, 4, 3, 0,
2424 4, 0, 4, 0, 4, 3, 0, 4, 0, 4,
2425 0, 6, 0, 1, 1, 3, 2, 0, 4, 1,
2426 3, 2, 1, 1, 1, 0, 4, 0, 4, 0,
2427 6, 1, 3, 2, 1, 1, 1, 1, 0, 6,
2428 0, 6, 0, 6, 1, 3, 2, 1, 1, 1,
2429 1, 1, 0, 4, 0, 4, 1, 0, 6, 1,
2430 3, 2, 1, 1, 1, 1, 1, 1, 1, 0,
2431 4, 1, 0, 4, 0, 4, 0, 6, 0, 1,
2432 1, 3, 2, 0, 4, 1, 3, 2, 1, 1,
2433 1, 1, 1, 1, 1, 0, 4, 0, 4, 0,
2434 4, 0, 4, 0, 6, 1, 3, 2, 0, 4,
2435 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
2436 0, 4, 3, 0, 4, 0, 6, 1, 3, 2,
2437 0, 4, 1, 3, 2, 1, 1, 1, 1, 1,
2446 const AgentParser::yytname_[] =
2448 "\"end of file\"",
"error",
"\"invalid token\"",
"\",\"",
"\":\"",
2449 "\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Control-agent\"",
2450 "\"http-host\"",
"\"http-port\"",
"\"user-context\"",
"\"comment\"",
2451 "\"authentication\"",
"\"type\"",
"\"basic\"",
"\"realm\"",
2452 "\"directory\"",
"\"clients\"",
"\"user\"",
"\"user-file\"",
2453 "\"password\"",
"\"password-file\"",
"\"trust-anchor\"",
"\"cert-file\"",
2454 "\"key-file\"",
"\"cert-required\"",
"\"control-sockets\"",
"\"dhcp4\"",
2455 "\"dhcp6\"",
"\"d2\"",
"\"socket-name\"",
"\"socket-type\"",
"\"unix\"",
2456 "\"hooks-libraries\"",
"\"library\"",
"\"parameters\"",
"\"loggers\"",
2457 "\"name\"",
"\"output-options\"",
"\"output\"",
"\"debuglevel\"",
2458 "\"severity\"",
"\"flush\"",
"\"maxsize\"",
"\"maxver\"",
"\"pattern\"",
2459 "START_JSON",
"START_AGENT",
"START_SUB_AGENT",
"\"constant string\"",
2460 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
2461 "$@1",
"$@2",
"$@3",
"sub_agent",
"$@4",
"json",
"value",
"map",
"$@5",
2462 "map_value",
"map_content",
"not_empty_map",
"list_generic",
"$@6",
2463 "list_content",
"not_empty_list",
"unknown_map_entry",
2464 "agent_syntax_map",
"$@7",
"global_object",
"$@8",
"global_object_comma",
2465 "global_params",
"global_param",
"http_host",
"$@9",
"http_port",
2466 "trust_anchor",
"$@10",
"cert_file",
"$@11",
"key_file",
"$@12",
2467 "cert_required",
"user_context",
"$@13",
"comment",
"$@14",
2468 "hooks_libraries",
"$@15",
"hooks_libraries_list",
2469 "not_empty_hooks_libraries_list",
"hooks_library",
"$@16",
2470 "hooks_params",
"hooks_param",
"library",
"$@17",
"parameters",
"$@18",
2471 "control_sockets",
"$@19",
"control_sockets_params",
"control_socket",
2472 "dhcp4_server_socket",
"$@20",
"dhcp6_server_socket",
"$@21",
2473 "d2_server_socket",
"$@22",
"control_socket_params",
2474 "control_socket_param",
"socket_name",
"$@23",
"socket_type",
"$@24",
2475 "socket_type_value",
"authentication",
"$@25",
"auth_params",
2476 "auth_param",
"auth_type",
"$@26",
"auth_type_value",
"realm",
"$@27",
2477 "directory",
"$@28",
"clients",
"$@29",
"clients_list",
2478 "not_empty_clients_list",
"basic_auth",
"$@30",
"clients_params",
2479 "clients_param",
"user",
"$@31",
"user_file",
"$@32",
"password",
"$@33",
2480 "password_file",
"$@34",
"loggers",
"$@35",
"loggers_entries",
2481 "logger_entry",
"$@36",
"logger_params",
"logger_param",
"name",
"$@37",
2482 "debuglevel",
"severity",
"$@38",
"output_options_list",
"$@39",
2483 "output_options_list_content",
"output_entry",
"$@40",
2484 "output_params_list",
"output_params",
"output",
"$@41",
"flush",
2485 "maxsize",
"maxver",
"pattern",
"$@42", YY_NULLPTR
2492 AgentParser::yyrline_[] =
2494 0, 132, 132, 132, 133, 133, 134, 134, 142, 142,
2495 153, 159, 160, 161, 162, 163, 164, 165, 169, 169,
2496 180, 185, 186, 194, 199, 205, 210, 210, 216, 217,
2497 220, 224, 228, 240, 248, 248, 260, 260, 276, 279,
2498 283, 284, 285, 292, 293, 294, 295, 296, 297, 298,
2499 299, 300, 301, 302, 303, 304, 307, 307, 316, 322,
2500 322, 331, 331, 340, 340, 349, 355, 355, 380, 380,
2501 408, 408, 419, 420, 423, 424, 425, 430, 430, 438,
2502 439, 440, 443, 446, 447, 450, 450, 459, 459, 470,
2503 470, 484, 485, 486, 493, 494, 495, 496, 500, 500,
2504 512, 512, 524, 524, 536, 537, 538, 544, 545, 546,
2505 547, 548, 552, 552, 562, 562, 571, 578, 578, 591,
2506 592, 593, 598, 599, 600, 601, 602, 603, 604, 607,
2507 607, 615, 618, 618, 627, 627, 636, 636, 647, 648,
2508 651, 652, 653, 658, 658, 666, 667, 668, 673, 674,
2509 675, 676, 677, 678, 679, 682, 682, 691, 691, 700,
2510 700, 709, 709, 722, 722, 735, 736, 737, 743, 743,
2511 751, 752, 753, 758, 759, 760, 761, 762, 763, 764,
2512 767, 767, 776, 782, 782, 791, 791, 802, 803, 804,
2513 809, 809, 817, 818, 819, 824, 825, 826, 827, 828,
2514 831, 831, 840, 846, 852, 858, 858
2518 AgentParser::yy_stack_print_ ()
const
2520 *yycdebug_ <<
"Stack now";
2521 for (stack_type::const_iterator
2522 i = yystack_.begin (),
2523 i_end = yystack_.end ();
2525 *yycdebug_ <<
' ' <<
int (i->state);
2530 AgentParser::yy_reduce_print_ (
int yyrule)
const
2532 int yylno = yyrline_[yyrule];
2533 int yynrhs = yyr2_[yyrule];
2535 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2536 <<
" (line " << yylno <<
"):\n";
2538 for (
int yyi = 0; yyi < yynrhs; yyi++)
2540 yystack_[(yynrhs) - (yyi + 1)]);
2545#line 14 "agent_parser.yy"