39 #define yylex agent_lex 47 #line 33 "agent_parser.yy" 51 #line 52 "agent_parser.cc" 55 # if defined YYENABLE_NLS && YYENABLE_NLS 58 # define YY_(msgid) dgettext ("bison-runtime", msgid) 62 # define YY_(msgid) msgid 69 # if defined __GNUC__ && !defined __EXCEPTIONS 70 # define YY_EXCEPTIONS 0 72 # define YY_EXCEPTIONS 1 76 #define YYRHSLOC(Rhs, K) ((Rhs)[K].location) 81 # ifndef YYLLOC_DEFAULT 82 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 86 (Current).begin = YYRHSLOC (Rhs, 1).begin; \ 87 (Current).end = YYRHSLOC (Rhs, N).end; \ 91 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ 101 # define YYCDEBUG if (yydebug_) (*yycdebug_) 103 # define YY_SYMBOL_PRINT(Title, Symbol) \ 107 *yycdebug_ << Title << ' '; \ 108 yy_print_ (*yycdebug_, Symbol); \ 109 *yycdebug_ << '\n'; \ 113 # define YY_REDUCE_PRINT(Rule) \ 116 yy_reduce_print_ (Rule); \ 119 # define YY_STACK_PRINT() \ 122 yy_stack_print_ (); \ 125 #else // !AGENT_DEBUG 127 # define YYCDEBUG if (false) std::cerr 128 # define YY_SYMBOL_PRINT(Title, Symbol) YY_USE (Symbol) 129 # define YY_REDUCE_PRINT(Rule) static_cast<void> (0) 130 # define YY_STACK_PRINT() static_cast<void> (0) 132 #endif // !AGENT_DEBUG 134 #define yyerrok (yyerrstatus_ = 0) 135 #define yyclearin (yyla.clear ()) 137 #define YYACCEPT goto yyacceptlab 138 #define YYABORT goto yyabortlab 139 #define YYERROR goto yyerrorlab 140 #define YYRECOVERING() (!!yyerrstatus_) 142 #line 14 "agent_parser.yy" 143 namespace isc {
namespace agent {
144 #line 145 "agent_parser.cc" 150 yycdebug_ (&std::cerr),
171 : state (empty_state)
174 AgentParser::by_state::by_state (
const by_state& that)
YY_NOEXCEPT 185 AgentParser::by_state::move (by_state& that)
191 AgentParser::by_state::by_state (state_type s)
YY_NOEXCEPT 198 if (state == empty_state)
204 AgentParser::stack_symbol_type::stack_symbol_type ()
207 AgentParser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
210 switch (that.kind ())
220 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
224 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
228 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
232 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
239 #if 201103L <= YY_CPLUSPLUS 241 that.state = empty_state;
248 switch (that.
kind ())
281 #if YY_CPLUSPLUS < 201103L 282 AgentParser::stack_symbol_type&
283 AgentParser::stack_symbol_type::operator= (
const stack_symbol_type& that)
286 switch (that.kind ())
296 value.copy<
bool > (that.value);
300 value.copy<
double > (that.value);
304 value.copy< int64_t > (that.value);
308 value.copy< std::string > (that.value);
315 location = that.location;
319 AgentParser::stack_symbol_type&
320 AgentParser::stack_symbol_type::operator= (stack_symbol_type& that)
323 switch (that.kind ())
333 value.move<
bool > (that.value);
337 value.move<
double > (that.value);
341 value.move< int64_t > (that.value);
345 value.move< std::string > (that.value);
352 location = that.location;
354 that.state = empty_state;
359 template <
typename Base>
368 template <
typename Base>
372 std::ostream& yyoutput = yyo;
375 yyo <<
"empty symbol";
379 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
380 <<
' ' << yysym.
name () <<
" (" 385 #line 116 "agent_parser.yy" 386 { yyoutput << yysym.
value.template as < std::string > (); }
387 #line 388 "agent_parser.cc" 391 #line 116 "agent_parser.yy" 392 { yyoutput << yysym.
value.template as < int64_t > (); }
393 #line 394 "agent_parser.cc" 397 #line 116 "agent_parser.yy" 398 { yyoutput << yysym.
value.template as < double > (); }
399 #line 400 "agent_parser.cc" 403 #line 116 "agent_parser.yy" 404 { yyoutput << yysym.
value.template as < bool > (); }
405 #line 406 "agent_parser.cc" 409 #line 116 "agent_parser.yy" 410 { yyoutput << yysym.
value.template as < ElementPtr > (); }
411 #line 412 "agent_parser.cc" 415 #line 116 "agent_parser.yy" 416 { yyoutput << yysym.
value.template as < ElementPtr > (); }
417 #line 418 "agent_parser.cc" 421 #line 116 "agent_parser.yy" 422 { yyoutput << yysym.
value.template as < ElementPtr > (); }
423 #line 424 "agent_parser.cc" 427 #line 116 "agent_parser.yy" 428 { yyoutput << yysym.
value.template as < ElementPtr > (); }
429 #line 430 "agent_parser.cc" 441 AgentParser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
451 #if 201103L <= YY_CPLUSPLUS 452 yypush_ (m, stack_symbol_type (s, std::move (sym)));
454 stack_symbol_type ss (s, sym);
490 #endif // AGENT_DEBUG 492 AgentParser::state_type
493 AgentParser::yy_lr_goto_state_ (state_type yystate,
int yysym)
495 int yyr = yypgoto_[yysym -
YYNTOKENS] + yystate;
496 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
497 return yytable_[yyr];
503 AgentParser::yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT 505 return yyvalue == yypact_ninf_;
509 AgentParser::yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT 511 return yyvalue == yytable_ninf_;
529 int yyerrstatus_ = 0;
535 stack_symbol_type yyerror_range[3];
542 #endif // YY_EXCEPTIONS 552 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
558 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
562 if (yystack_[0].state == yyfinal_)
573 yyn = yypact_[+yystack_[0].state];
574 if (yy_pact_value_is_default_ (yyn))
583 #endif // YY_EXCEPTIONS 586 yyla.
move (yylookahead);
591 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
595 #endif // YY_EXCEPTIONS 612 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.
kind ())
621 if (yy_table_value_is_error_ (yyn))
632 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
640 yyn = yydefact_[+yystack_[0].state];
652 stack_symbol_type yylhs;
653 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
667 yylhs.value.emplace<
bool > ();
671 yylhs.value.emplace<
double > ();
675 yylhs.value.emplace< int64_t > ();
679 yylhs.value.emplace< std::string > ();
689 stack_type::slice range (yystack_, yylen);
691 yyerror_range[1].location = yylhs.location;
698 #endif // YY_EXCEPTIONS 703 #line 127 "agent_parser.yy" 705 #line 706 "agent_parser.cc" 709 #line 128 "agent_parser.yy" 711 #line 712 "agent_parser.cc" 715 #line 129 "agent_parser.yy" 717 #line 718 "agent_parser.cc" 721 #line 137 "agent_parser.yy" 727 #line 728 "agent_parser.cc" 731 #line 141 "agent_parser.yy" 735 #line 736 "agent_parser.cc" 739 #line 148 "agent_parser.yy" 744 #line 745 "agent_parser.cc" 748 #line 154 "agent_parser.yy" 750 #line 751 "agent_parser.cc" 754 #line 155 "agent_parser.yy" 756 #line 757 "agent_parser.cc" 760 #line 156 "agent_parser.yy" 762 #line 763 "agent_parser.cc" 766 #line 157 "agent_parser.yy" 768 #line 769 "agent_parser.cc" 772 #line 158 "agent_parser.yy" 774 #line 775 "agent_parser.cc" 778 #line 159 "agent_parser.yy" 780 #line 781 "agent_parser.cc" 784 #line 160 "agent_parser.yy" 786 #line 787 "agent_parser.cc" 790 #line 164 "agent_parser.yy" 797 #line 798 "agent_parser.cc" 801 #line 169 "agent_parser.yy" 807 #line 808 "agent_parser.cc" 811 #line 175 "agent_parser.yy" 813 #line 814 "agent_parser.cc" 817 #line 189 "agent_parser.yy" 820 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
821 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
823 #line 824 "agent_parser.cc" 827 #line 194 "agent_parser.yy" 831 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
832 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
834 #line 835 "agent_parser.cc" 838 #line 200 "agent_parser.yy" 842 #line 843 "agent_parser.cc" 846 #line 205 "agent_parser.yy" 851 #line 852 "agent_parser.cc" 855 #line 208 "agent_parser.yy" 858 #line 859 "agent_parser.cc" 862 #line 215 "agent_parser.yy" 867 #line 868 "agent_parser.cc" 871 #line 219 "agent_parser.yy" 876 #line 877 "agent_parser.cc" 880 #line 223 "agent_parser.yy" 884 #line 885 "agent_parser.cc" 888 #line 235 "agent_parser.yy" 891 const std::string& keyword = yystack_[1].value.as < std::string > ();
892 error(yystack_[1].location,
893 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
895 #line 896 "agent_parser.cc" 899 #line 243 "agent_parser.yy" 906 #line 907 "agent_parser.cc" 910 #line 248 "agent_parser.yy" 916 #line 917 "agent_parser.cc" 920 #line 255 "agent_parser.yy" 926 ctx.
unique(
"Control-agent", ctx.
loc2pos(yystack_[0].location));
928 ctx.
stack_.back()->set(
"Control-agent", m);
932 #line 933 "agent_parser.cc" 936 #line 265 "agent_parser.yy" 943 #line 944 "agent_parser.cc" 947 #line 274 "agent_parser.yy" 951 #line 952 "agent_parser.cc" 955 #line 280 "agent_parser.yy" 959 #line 960 "agent_parser.cc" 963 #line 302 "agent_parser.yy" 968 #line 969 "agent_parser.cc" 972 #line 305 "agent_parser.yy" 975 ctx.
stack_.back()->set(
"http-host", host);
978 #line 979 "agent_parser.cc" 982 #line 311 "agent_parser.yy" 986 ctx.
stack_.back()->set(
"http-port", prf);
988 #line 989 "agent_parser.cc" 992 #line 317 "agent_parser.yy" 994 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
997 #line 998 "agent_parser.cc" 1001 #line 320 "agent_parser.yy" 1004 ctx.
stack_.back()->set(
"trust-anchor", ca);
1007 #line 1008 "agent_parser.cc" 1011 #line 326 "agent_parser.yy" 1016 #line 1017 "agent_parser.cc" 1020 #line 329 "agent_parser.yy" 1023 ctx.
stack_.back()->set(
"cert-file", cert);
1026 #line 1027 "agent_parser.cc" 1030 #line 335 "agent_parser.yy" 1035 #line 1036 "agent_parser.cc" 1039 #line 338 "agent_parser.yy" 1042 ctx.
stack_.back()->set(
"key-file", key);
1045 #line 1046 "agent_parser.cc" 1049 #line 344 "agent_parser.yy" 1051 ctx.
unique(
"cert-required", ctx.
loc2pos(yystack_[2].location));
1053 ctx.
stack_.back()->set(
"cert-required", req);
1055 #line 1056 "agent_parser.cc" 1059 #line 350 "agent_parser.yy" 1063 #line 1064 "agent_parser.cc" 1067 #line 352 "agent_parser.yy" 1076 if ((old->size() != 1) || !old->contains(
"comment")) {
1077 std::stringstream msg;
1078 msg <<
"duplicate user-context entries (previous at " 1079 << old->getPosition().str() <<
")";
1080 error(yystack_[3].location, msg.str());
1083 user_context->set(
"comment", old->get(
"comment"));
1087 parent->set(
"user-context", user_context);
1090 #line 1091 "agent_parser.cc" 1094 #line 375 "agent_parser.yy" 1098 #line 1099 "agent_parser.cc" 1102 #line 377 "agent_parser.yy" 1107 user_context->set(
"comment", comment);
1113 if (old->contains(
"comment")) {
1114 std::stringstream msg;
1115 msg <<
"duplicate user-context/comment entries (previous at " 1116 << old->getPosition().str() <<
")";
1117 error(yystack_[3].location, msg.str());
1120 merge(user_context, old);
1124 parent->set(
"user-context", user_context);
1127 #line 1128 "agent_parser.cc" 1131 #line 403 "agent_parser.yy" 1133 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
1135 ctx.
stack_.back()->set(
"hooks-libraries", l);
1139 #line 1140 "agent_parser.cc" 1143 #line 409 "agent_parser.yy" 1148 #line 1149 "agent_parser.cc" 1152 #line 420 "agent_parser.yy" 1156 #line 1157 "agent_parser.cc" 1160 #line 425 "agent_parser.yy" 1163 ctx.
stack_.back()->add(m);
1166 #line 1167 "agent_parser.cc" 1170 #line 429 "agent_parser.yy" 1174 #line 1175 "agent_parser.cc" 1178 #line 435 "agent_parser.yy" 1182 #line 1183 "agent_parser.cc" 1186 #line 445 "agent_parser.yy" 1191 #line 1192 "agent_parser.cc" 1195 #line 448 "agent_parser.yy" 1198 ctx.
stack_.back()->set(
"library", lib);
1201 #line 1202 "agent_parser.cc" 1205 #line 454 "agent_parser.yy" 1207 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
1210 #line 1211 "agent_parser.cc" 1214 #line 457 "agent_parser.yy" 1216 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
1219 #line 1220 "agent_parser.cc" 1223 #line 465 "agent_parser.yy" 1225 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[2].location));
1227 ctx.
stack_.back()->set(
"control-sockets", m);
1231 #line 1232 "agent_parser.cc" 1235 #line 471 "agent_parser.yy" 1240 #line 1241 "agent_parser.cc" 1244 #line 481 "agent_parser.yy" 1248 #line 1249 "agent_parser.cc" 1252 #line 495 "agent_parser.yy" 1256 ctx.
stack_.back()->set(
"dhcp4", m);
1260 #line 1261 "agent_parser.cc" 1264 #line 501 "agent_parser.yy" 1269 #line 1270 "agent_parser.cc" 1273 #line 507 "agent_parser.yy" 1277 ctx.
stack_.back()->set(
"dhcp6", m);
1281 #line 1282 "agent_parser.cc" 1285 #line 513 "agent_parser.yy" 1290 #line 1291 "agent_parser.cc" 1294 #line 519 "agent_parser.yy" 1298 ctx.
stack_.back()->set(
"d2", m);
1302 #line 1303 "agent_parser.cc" 1306 #line 525 "agent_parser.yy" 1311 #line 1312 "agent_parser.cc" 1315 #line 533 "agent_parser.yy" 1319 #line 1320 "agent_parser.cc" 1323 #line 547 "agent_parser.yy" 1325 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1328 #line 1329 "agent_parser.cc" 1332 #line 550 "agent_parser.yy" 1335 ctx.
stack_.back()->set(
"socket-name", name);
1338 #line 1339 "agent_parser.cc" 1342 #line 557 "agent_parser.yy" 1344 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1347 #line 1348 "agent_parser.cc" 1351 #line 560 "agent_parser.yy" 1353 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1356 #line 1357 "agent_parser.cc" 1360 #line 566 "agent_parser.yy" 1362 #line 1363 "agent_parser.cc" 1366 #line 573 "agent_parser.yy" 1368 ctx.
unique(
"authentication", ctx.
loc2pos(yystack_[0].location));
1370 ctx.
stack_.back()->set(
"authentication", m);
1374 #line 1375 "agent_parser.cc" 1378 #line 579 "agent_parser.yy" 1385 #line 1386 "agent_parser.cc" 1389 #line 588 "agent_parser.yy" 1393 #line 1394 "agent_parser.cc" 1397 #line 602 "agent_parser.yy" 1402 #line 1403 "agent_parser.cc" 1406 #line 605 "agent_parser.yy" 1411 #line 1412 "agent_parser.cc" 1415 #line 610 "agent_parser.yy" 1417 #line 1418 "agent_parser.cc" 1421 #line 613 "agent_parser.yy" 1426 #line 1427 "agent_parser.cc" 1430 #line 616 "agent_parser.yy" 1433 ctx.
stack_.back()->set(
"realm", realm);
1436 #line 1437 "agent_parser.cc" 1440 #line 622 "agent_parser.yy" 1445 #line 1446 "agent_parser.cc" 1449 #line 625 "agent_parser.yy" 1452 ctx.
stack_.back()->set(
"directory", directory);
1455 #line 1456 "agent_parser.cc" 1459 #line 631 "agent_parser.yy" 1463 ctx.
stack_.back()->set(
"clients", l);
1467 #line 1468 "agent_parser.cc" 1471 #line 637 "agent_parser.yy" 1476 #line 1477 "agent_parser.cc" 1480 #line 648 "agent_parser.yy" 1484 #line 1485 "agent_parser.cc" 1488 #line 653 "agent_parser.yy" 1491 ctx.
stack_.back()->add(m);
1494 #line 1495 "agent_parser.cc" 1498 #line 657 "agent_parser.yy" 1502 #line 1503 "agent_parser.cc" 1506 #line 663 "agent_parser.yy" 1510 #line 1511 "agent_parser.cc" 1514 #line 677 "agent_parser.yy" 1519 #line 1520 "agent_parser.cc" 1523 #line 680 "agent_parser.yy" 1526 ctx.
stack_.back()->set(
"user", user);
1529 #line 1530 "agent_parser.cc" 1533 #line 686 "agent_parser.yy" 1538 #line 1539 "agent_parser.cc" 1542 #line 689 "agent_parser.yy" 1545 ctx.
stack_.back()->set(
"user-file", user);
1548 #line 1549 "agent_parser.cc" 1552 #line 695 "agent_parser.yy" 1557 #line 1558 "agent_parser.cc" 1561 #line 698 "agent_parser.yy" 1564 ctx.
stack_.back()->set(
"password", password);
1567 #line 1568 "agent_parser.cc" 1571 #line 704 "agent_parser.yy" 1573 ctx.
unique(
"password-file", ctx.
loc2pos(yystack_[0].location));
1576 #line 1577 "agent_parser.cc" 1580 #line 707 "agent_parser.yy" 1583 ctx.
stack_.back()->set(
"password-file", password);
1586 #line 1587 "agent_parser.cc" 1590 #line 717 "agent_parser.yy" 1594 ctx.
stack_.back()->set(
"loggers", l);
1598 #line 1599 "agent_parser.cc" 1602 #line 723 "agent_parser.yy" 1607 #line 1608 "agent_parser.cc" 1611 #line 732 "agent_parser.yy" 1615 #line 1616 "agent_parser.cc" 1619 #line 738 "agent_parser.yy" 1622 ctx.
stack_.back()->add(l);
1625 #line 1626 "agent_parser.cc" 1629 #line 742 "agent_parser.yy" 1633 #line 1634 "agent_parser.cc" 1637 #line 748 "agent_parser.yy" 1641 #line 1642 "agent_parser.cc" 1645 #line 762 "agent_parser.yy" 1650 #line 1651 "agent_parser.cc" 1654 #line 765 "agent_parser.yy" 1657 ctx.
stack_.back()->set(
"name", name);
1660 #line 1661 "agent_parser.cc" 1664 #line 771 "agent_parser.yy" 1666 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
1668 ctx.
stack_.back()->set(
"debuglevel", dl);
1670 #line 1671 "agent_parser.cc" 1674 #line 777 "agent_parser.yy" 1679 #line 1680 "agent_parser.cc" 1683 #line 780 "agent_parser.yy" 1686 ctx.
stack_.back()->set(
"severity", sev);
1689 #line 1690 "agent_parser.cc" 1693 #line 786 "agent_parser.yy" 1695 ctx.
unique(
"output_options", ctx.
loc2pos(yystack_[0].location));
1697 ctx.
stack_.back()->set(
"output_options", l);
1701 #line 1702 "agent_parser.cc" 1705 #line 792 "agent_parser.yy" 1710 #line 1711 "agent_parser.cc" 1714 #line 799 "agent_parser.yy" 1718 #line 1719 "agent_parser.cc" 1722 #line 804 "agent_parser.yy" 1725 ctx.
stack_.back()->add(m);
1728 #line 1729 "agent_parser.cc" 1732 #line 808 "agent_parser.yy" 1736 #line 1737 "agent_parser.cc" 1740 #line 814 "agent_parser.yy" 1744 #line 1745 "agent_parser.cc" 1748 #line 826 "agent_parser.yy" 1753 #line 1754 "agent_parser.cc" 1757 #line 829 "agent_parser.yy" 1760 ctx.
stack_.back()->set(
"output", sev);
1763 #line 1764 "agent_parser.cc" 1767 #line 835 "agent_parser.yy" 1771 ctx.
stack_.back()->set(
"flush", flush);
1773 #line 1774 "agent_parser.cc" 1777 #line 841 "agent_parser.yy" 1781 ctx.
stack_.back()->set(
"maxsize", maxsize);
1783 #line 1784 "agent_parser.cc" 1787 #line 847 "agent_parser.yy" 1791 ctx.
stack_.back()->set(
"maxver", maxver);
1793 #line 1794 "agent_parser.cc" 1797 #line 853 "agent_parser.yy" 1802 #line 1803 "agent_parser.cc" 1806 #line 856 "agent_parser.yy" 1809 ctx.
stack_.back()->set(
"pattern", sev);
1812 #line 1813 "agent_parser.cc" 1816 #line 1817 "agent_parser.cc" 1825 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
1829 #endif // YY_EXCEPTIONS 1835 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1849 std::string msg = yysyntax_error_ (yyctx);
1854 yyerror_range[1].location = yyla.
location;
1855 if (yyerrstatus_ == 3)
1863 else if (!yyla.
empty ())
1865 yy_destroy_ (
"Error: discarding", yyla);
1899 yyn = yypact_[+yystack_[0].state];
1900 if (!yy_pact_value_is_default_ (yyn))
1903 if (0 <= yyn && yyn <= yylast_
1906 yyn = yytable_[yyn];
1913 if (yystack_.size () == 1)
1916 yyerror_range[1].location = yystack_[0].location;
1917 yy_destroy_ (
"Error: popping", yystack_[0]);
1922 stack_symbol_type error_token;
1924 yyerror_range[2].location = yyla.
location;
1928 error_token.state = state_type (yyn);
1929 yypush_ (
"Shifting",
YY_MOVE (error_token));
1955 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1961 while (1 < yystack_.size ())
1963 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1972 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1976 yy_destroy_ (YY_NULLPTR, yyla);
1978 while (1 < yystack_.size ())
1980 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1985 #endif // YY_EXCEPTIONS 2000 AgentParser::yytnamerr_ (
const char *yystr)
2005 char const *yyp = yystr;
2012 goto do_not_strip_quotes;
2016 goto do_not_strip_quotes;
2028 do_not_strip_quotes: ;
2037 return yytnamerr_ (yytname_[yysymbol]);
2044 : yyparser_ (yyparser)
2054 const int yyn = yypact_[+yyparser_.yystack_[0].state];
2055 if (!yy_pact_value_is_default_ (yyn))
2060 const int yyxbegin = yyn < 0 ? -yyn : 0;
2062 const int yychecklim = yylast_ - yyn + 1;
2064 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
2066 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
2070 else if (yycount == yyargn)
2077 if (yyarg && yycount == 0 && 0 < yyargn)
2088 AgentParser::yy_syntax_error_arguments_ (
const context& yyctx,
2119 yyarg[0] = yyctx.
token ();
2120 int yyn = yyctx.
expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2128 AgentParser::yysyntax_error_ (
const context& yyctx)
const 2131 enum { YYARGS_MAX = 5 };
2134 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
2136 char const* yyformat = YY_NULLPTR;
2139 #define YYCASE_(N, S) \ 2145 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
2146 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
2147 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
2148 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
2149 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2155 std::ptrdiff_t yyi = 0;
2156 for (
char const* yyp = yyformat; *yyp; ++yyp)
2157 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
2168 const short AgentParser::yypact_ninf_ = -136;
2170 const signed char AgentParser::yytable_ninf_ = -1;
2173 AgentParser::yypact_[] =
2175 71, -136, -136, -136, 4, 0, 1, 16, -136, -136,
2176 -136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
2177 -136, -136, -136, -136, 0, -31, 19, -1, -136, 40,
2178 55, 78, 83, 107, -136, 14, -136, -136, 112, -136,
2179 -136, -136, -136, -136, -136, 114, 119, -136, -136, 120,
2180 -136, 42, -136, -136, -136, -136, -136, -136, -136, -136,
2181 -136, -136, -136, -136, -136, -136, 0, 0, -136, 73,
2182 122, -136, -136, 126, 80, 127, 131, 132, 136, 138,
2183 139, 89, 140, 141, 142, -136, -1, -136, -136, -136,
2184 144, 143, 100, -136, 146, 102, 148, 104, 106, 108,
2185 -136, -136, 152, 154, -136, 0, -1, -136, -136, -136,
2186 -136, 23, -136, -136, -136, -12, 155, 156, -136, 75,
2187 -136, -136, -136, -136, -136, -136, -136, 91, -136, -136,
2188 -136, -136, -136, -136, -136, -136, -136, 95, -136, -136,
2189 -136, -136, -136, 145, 158, -136, -136, 28, -136, -136,
2190 160, 161, 162, 163, 23, -136, 164, 165, 166, -12,
2191 -136, -22, -136, 155, 49, 156, -136, 157, 121, 123,
2192 167, -136, 169, 170, 171, -136, -136, -136, -136, 97,
2193 -136, -136, -136, -136, -136, -136, 175, -136, -136, -136,
2194 -136, 99, -136, -136, -136, -136, -136, -136, -136, -136,
2195 -136, -136, 173, 63, 63, 63, 177, 178, -5, -136,
2196 179, 180, 96, 181, 49, -136, -136, 184, 168, -136,
2197 -136, -136, -136, -136, -136, 101, -136, -136, -136, 103,
2198 105, 134, 146, -136, 147, 186, -136, 149, -136, 43,
2199 -136, 173, 188, 189, 63, -136, -136, -136, -136, -136,
2200 -136, 187, -136, -136, -136, -136, -136, -136, -136, -136,
2201 109, -136, -136, -136, -136, -136, -136, 150, 172, -136,
2202 -136, 41, -136, 191, 192, 193, 194, 43, -136, -136,
2203 -136, -136, 26, 187, -136, 151, 153, 159, 174, -136,
2204 -136, 196, 200, 202, -136, 111, -136, -136, -136, -136,
2205 -136, -136, -136, -136, -136, -136, -136, 204, 176, 182,
2206 183, 205, 26, -136, 185, -136, -136, -136, 190, -136,
2211 AgentParser::yydefact_[] =
2213 0, 2, 4, 6, 0, 0, 0, 0, 1, 26,
2214 18, 15, 14, 11, 12, 13, 3, 10, 16, 17,
2215 34, 5, 8, 7, 28, 21, 0, 0, 30, 0,
2216 29, 0, 0, 22, 36, 0, 38, 56, 0, 66,
2217 68, 117, 59, 61, 63, 0, 0, 70, 163, 0,
2218 55, 0, 40, 43, 44, 45, 46, 47, 48, 53,
2219 54, 51, 50, 49, 52, 27, 32, 0, 19, 25,
2220 0, 39, 35, 0, 0, 0, 0, 0, 0, 0,
2221 0, 0, 0, 0, 0, 33, 42, 9, 31, 23,
2222 0, 0, 0, 58, 0, 0, 0, 0, 0, 0,
2223 65, 89, 0, 0, 41, 0, 0, 57, 20, 67,
2224 69, 0, 60, 62, 64, 0, 72, 0, 24, 0,
2225 129, 132, 134, 136, 128, 127, 126, 0, 119, 122,
2226 123, 124, 125, 98, 100, 102, 97, 0, 91, 94,
2227 95, 96, 77, 0, 73, 74, 168, 0, 165, 37,
2228 0, 0, 0, 0, 121, 118, 0, 0, 0, 93,
2229 90, 0, 71, 76, 0, 167, 164, 0, 0, 0,
2230 0, 120, 0, 0, 0, 92, 85, 87, 82, 0,
2231 79, 83, 84, 75, 180, 185, 0, 183, 179, 177,
2232 178, 0, 170, 173, 175, 176, 174, 166, 131, 130,
2233 133, 135, 138, 0, 0, 0, 0, 0, 81, 78,
2234 0, 0, 0, 0, 172, 169, 143, 0, 139, 140,
2235 112, 114, 111, 109, 110, 0, 104, 107, 108, 0,
2236 0, 0, 0, 80, 0, 0, 182, 0, 171, 0,
2237 137, 142, 0, 0, 106, 99, 101, 103, 86, 88,
2238 181, 0, 184, 155, 157, 159, 161, 154, 152, 153,
2239 0, 145, 148, 149, 150, 151, 141, 0, 0, 105,
2240 190, 0, 187, 0, 0, 0, 0, 147, 144, 113,
2241 116, 115, 0, 189, 186, 0, 0, 0, 0, 146,
2242 200, 0, 0, 0, 205, 0, 192, 195, 196, 197,
2243 198, 199, 188, 156, 158, 160, 162, 0, 0, 0,
2244 0, 0, 194, 191, 0, 202, 203, 204, 0, 193,
2249 AgentParser::yypgoto_[] =
2251 -136, -136, -136, -136, -136, -136, -136, -136, -18, -91,
2252 -136, -17, -136, -136, -136, -136, -136, -136, -27, -136,
2253 -136, -136, -136, -136, 110, 124, -136, -136, -136, -136,
2254 -136, -136, -136, -136, -136, -136, -26, -136, -25, -136,
2255 -136, -136, -136, -136, 54, -136, -136, 10, -136, -136,
2256 -136, -136, -136, -136, -136, 60, -136, -136, -136, -136,
2257 -136, -136, -135, -24, -136, -136, -136, -136, -136, -136,
2258 -136, -136, 67, -136, -136, -136, -136, -136, -136, -136,
2259 -136, -136, -136, -136, -19, -136, -136, -54, -136, -136,
2260 -136, -136, -136, -136, -136, -136, -136, -136, -136, 59,
2261 -136, -136, 11, -136, -136, -136, -136, -136, -136, -136,
2262 -136, -56, -136, -136, -84, -136, -136, -136, -136, -136,
2267 AgentParser::yydefgoto_[] =
2269 0, 4, 5, 6, 7, 23, 27, 16, 17, 18,
2270 25, 109, 32, 33, 19, 24, 29, 30, 222, 21,
2271 26, 35, 70, 36, 51, 52, 53, 73, 54, 55,
2272 78, 56, 79, 57, 80, 58, 223, 75, 224, 76,
2273 61, 83, 143, 144, 145, 161, 179, 180, 181, 206,
2274 182, 207, 62, 115, 137, 138, 139, 156, 140, 157,
2275 141, 158, 225, 226, 227, 242, 228, 243, 281, 63,
2276 77, 127, 128, 129, 150, 199, 130, 151, 131, 152,
2277 132, 153, 217, 218, 219, 239, 260, 261, 262, 273,
2278 263, 274, 264, 275, 265, 276, 64, 84, 147, 148,
2279 164, 191, 192, 193, 210, 194, 195, 213, 196, 211,
2280 271, 272, 282, 295, 296, 297, 307, 298, 299, 300,
2285 AgentParser::yytable_[] =
2287 50, 59, 60, 108, 8, 9, 28, 10, 20, 11,
2288 37, 38, 39, 40, 41, 176, 177, 71, 133, 134,
2289 135, 31, 72, 22, 42, 43, 44, 45, 46, 34,
2290 49, 165, 176, 177, 166, 47, 39, 40, 48, 120,
2291 49, 121, 122, 123, 283, 86, 65, 284, 88, 89,
2292 87, 49, 12, 13, 14, 15, 39, 40, 66, 50,
2293 59, 60, 39, 40, 253, 254, 255, 256, 290, 229,
2294 230, 291, 292, 293, 294, 49, 39, 40, 86, 50,
2295 59, 60, 67, 149, 124, 125, 126, 118, 136, 184,
2296 185, 68, 186, 187, 154, 49, 220, 221, 159, 155,
2297 208, 49, 214, 160, 244, 209, 244, 215, 244, 245,
2298 69, 246, 277, 247, 312, 49, 74, 278, 81, 313,
2299 1, 2, 3, 82, 85, 90, 91, 124, 125, 126,
2300 92, 94, 136, 93, 178, 95, 96, 188, 189, 190,
2301 97, 108, 98, 99, 100, 102, 103, 101, 105, 236,
2302 106, 162, 107, 10, 110, 111, 112, 116, 113, 117,
2303 114, 163, 142, 146, 167, 168, 169, 170, 172, 173,
2304 174, 241, 202, 200, 198, 201, 203, 204, 205, 212,
2305 216, 231, 232, 234, 235, 237, 248, 188, 189, 190,
2306 240, 251, 267, 268, 270, 285, 286, 287, 288, 250,
2307 308, 252, 279, 303, 309, 304, 310, 280, 314, 318,
2308 104, 305, 257, 258, 259, 249, 119, 183, 233, 175,
2309 269, 171, 266, 289, 197, 238, 306, 302, 319, 0,
2310 0, 315, 0, 0, 0, 316, 317, 320, 0, 0,
2311 0, 0, 321, 0, 0, 0, 0, 0, 0, 0,
2316 AgentParser::yycheck_[] =
2318 27, 27, 27, 94, 0, 5, 24, 7, 7, 9,
2319 11, 12, 13, 14, 15, 37, 38, 3, 30, 31,
2320 32, 52, 8, 7, 25, 26, 27, 28, 29, 10,
2321 52, 3, 37, 38, 6, 36, 13, 14, 39, 16,
2322 52, 18, 19, 20, 3, 3, 6, 6, 66, 67,
2323 8, 52, 52, 53, 54, 55, 13, 14, 3, 86,
2324 86, 86, 13, 14, 21, 22, 23, 24, 42, 204,
2325 205, 45, 46, 47, 48, 52, 13, 14, 3, 106,
2326 106, 106, 4, 8, 111, 111, 111, 105, 115, 40,
2327 41, 8, 43, 44, 3, 52, 33, 34, 3, 8,
2328 3, 52, 3, 8, 3, 8, 3, 8, 3, 8,
2329 3, 8, 3, 8, 3, 52, 4, 8, 4, 8,
2330 49, 50, 51, 4, 4, 52, 4, 154, 154, 154,
2331 4, 4, 159, 53, 161, 4, 4, 164, 164, 164,
2332 4, 232, 4, 4, 55, 4, 4, 7, 4, 53,
2333 7, 6, 52, 7, 52, 7, 52, 5, 52, 5,
2334 52, 3, 7, 7, 4, 4, 4, 4, 4, 4,
2335 4, 3, 5, 52, 17, 52, 7, 7, 7, 4,
2336 7, 4, 4, 4, 4, 4, 52, 214, 214, 214,
2337 6, 5, 4, 4, 7, 4, 4, 4, 4, 52,
2338 4, 52, 52, 52, 4, 52, 4, 35, 4, 4,
2339 86, 52, 239, 239, 239, 232, 106, 163, 208, 159,
2340 244, 154, 241, 277, 165, 214, 52, 283, 312, -1,
2341 -1, 55, -1, -1, -1, 53, 53, 52, -1, -1,
2342 -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
2347 AgentParser::yystos_[] =
2349 0, 49, 50, 51, 57, 58, 59, 60, 0, 5,
2350 7, 9, 52, 53, 54, 55, 63, 64, 65, 70,
2351 7, 75, 7, 61, 71, 66, 76, 62, 64, 72,
2352 73, 52, 68, 69, 10, 77, 79, 11, 12, 13,
2353 14, 15, 25, 26, 27, 28, 29, 36, 39, 52,
2354 74, 80, 81, 82, 84, 85, 87, 89, 91, 92,
2355 94, 96, 108, 125, 152, 6, 3, 4, 8, 3,
2356 78, 3, 8, 83, 4, 93, 95, 126, 86, 88,
2357 90, 4, 4, 97, 153, 4, 3, 8, 64, 64,
2358 52, 4, 4, 53, 4, 4, 4, 4, 4, 4,
2359 55, 7, 4, 4, 81, 4, 7, 52, 65, 67,
2360 52, 7, 52, 52, 52, 109, 5, 5, 64, 80,
2361 16, 18, 19, 20, 74, 92, 94, 127, 128, 129,
2362 132, 134, 136, 30, 31, 32, 74, 110, 111, 112,
2363 114, 116, 7, 98, 99, 100, 7, 154, 155, 8,
2364 130, 133, 135, 137, 3, 8, 113, 115, 117, 3,
2365 8, 101, 6, 3, 156, 3, 6, 4, 4, 4,
2366 4, 128, 4, 4, 4, 111, 37, 38, 74, 102,
2367 103, 104, 106, 100, 40, 41, 43, 44, 74, 92,
2368 94, 157, 158, 159, 161, 162, 164, 155, 17, 131,
2369 52, 52, 5, 7, 7, 7, 105, 107, 3, 8,
2370 160, 165, 4, 163, 3, 8, 7, 138, 139, 140,
2371 33, 34, 74, 92, 94, 118, 119, 120, 122, 118,
2372 118, 4, 4, 103, 4, 4, 53, 4, 158, 141,
2373 6, 3, 121, 123, 3, 8, 8, 8, 52, 67,
2374 52, 5, 52, 21, 22, 23, 24, 74, 92, 94,
2375 142, 143, 144, 146, 148, 150, 140, 4, 4, 119,
2376 7, 166, 167, 145, 147, 149, 151, 3, 8, 52,
2377 35, 124, 168, 3, 6, 4, 4, 4, 4, 143,
2378 42, 45, 46, 47, 48, 169, 170, 171, 173, 174,
2379 175, 176, 167, 52, 52, 52, 52, 172, 4, 4,
2380 4, 177, 3, 8, 4, 55, 53, 53, 4, 170,
2385 AgentParser::yyr1_[] =
2387 0, 56, 58, 57, 59, 57, 60, 57, 62, 61,
2388 63, 64, 64, 64, 64, 64, 64, 64, 66, 65,
2389 67, 68, 68, 69, 69, 69, 71, 70, 72, 72,
2390 73, 73, 73, 74, 76, 75, 78, 77, 77, 79,
2391 80, 80, 80, 81, 81, 81, 81, 81, 81, 81,
2392 81, 81, 81, 81, 81, 81, 83, 82, 84, 86,
2393 85, 88, 87, 90, 89, 91, 93, 92, 95, 94,
2394 97, 96, 98, 98, 99, 99, 99, 101, 100, 102,
2395 102, 102, 102, 103, 103, 105, 104, 107, 106, 109,
2396 108, 110, 110, 110, 111, 111, 111, 111, 113, 112,
2397 115, 114, 117, 116, 118, 118, 118, 119, 119, 119,
2398 119, 119, 121, 120, 123, 122, 124, 126, 125, 127,
2399 127, 127, 128, 128, 128, 128, 128, 128, 128, 130,
2400 129, 131, 133, 132, 135, 134, 137, 136, 138, 138,
2401 139, 139, 139, 141, 140, 142, 142, 142, 143, 143,
2402 143, 143, 143, 143, 143, 145, 144, 147, 146, 149,
2403 148, 151, 150, 153, 152, 154, 154, 154, 156, 155,
2404 157, 157, 157, 158, 158, 158, 158, 158, 158, 158,
2405 160, 159, 161, 163, 162, 165, 164, 166, 166, 166,
2406 168, 167, 169, 169, 169, 170, 170, 170, 170, 170,
2407 172, 171, 173, 174, 175, 177, 176
2411 AgentParser::yyr2_[] =
2413 0, 2, 0, 3, 0, 3, 0, 3, 0, 4,
2414 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
2415 1, 0, 1, 3, 5, 2, 0, 4, 0, 1,
2416 1, 3, 2, 2, 0, 4, 0, 6, 1, 2,
2417 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
2418 1, 1, 1, 1, 1, 1, 0, 4, 3, 0,
2419 4, 0, 4, 0, 4, 3, 0, 4, 0, 4,
2420 0, 6, 0, 1, 1, 3, 2, 0, 4, 1,
2421 3, 2, 1, 1, 1, 0, 4, 0, 4, 0,
2422 6, 1, 3, 2, 1, 1, 1, 1, 0, 6,
2423 0, 6, 0, 6, 1, 3, 2, 1, 1, 1,
2424 1, 1, 0, 4, 0, 4, 1, 0, 6, 1,
2425 3, 2, 1, 1, 1, 1, 1, 1, 1, 0,
2426 4, 1, 0, 4, 0, 4, 0, 6, 0, 1,
2427 1, 3, 2, 0, 4, 1, 3, 2, 1, 1,
2428 1, 1, 1, 1, 1, 0, 4, 0, 4, 0,
2429 4, 0, 4, 0, 6, 1, 3, 2, 0, 4,
2430 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
2431 0, 4, 3, 0, 4, 0, 6, 1, 3, 2,
2432 0, 4, 1, 3, 2, 1, 1, 1, 1, 1,
2437 #if AGENT_DEBUG || 1 2441 const AgentParser::yytname_[] =
2443 "\"end of file\"",
"error",
"\"invalid token\"",
"\",\"",
"\":\"",
2444 "\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Control-agent\"",
2445 "\"http-host\"",
"\"http-port\"",
"\"user-context\"",
"\"comment\"",
2446 "\"authentication\"",
"\"type\"",
"\"basic\"",
"\"realm\"",
2447 "\"directory\"",
"\"clients\"",
"\"user\"",
"\"user-file\"",
2448 "\"password\"",
"\"password-file\"",
"\"trust-anchor\"",
"\"cert-file\"",
2449 "\"key-file\"",
"\"cert-required\"",
"\"control-sockets\"",
"\"dhcp4\"",
2450 "\"dhcp6\"",
"\"d2\"",
"\"socket-name\"",
"\"socket-type\"",
"\"unix\"",
2451 "\"hooks-libraries\"",
"\"library\"",
"\"parameters\"",
"\"loggers\"",
2452 "\"name\"",
"\"output_options\"",
"\"output\"",
"\"debuglevel\"",
2453 "\"severity\"",
"\"flush\"",
"\"maxsize\"",
"\"maxver\"",
"\"pattern\"",
2454 "START_JSON",
"START_AGENT",
"START_SUB_AGENT",
"\"constant string\"",
2455 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
2456 "$@1",
"$@2",
"$@3",
"sub_agent",
"$@4",
"json",
"value",
"map",
"$@5",
2457 "map_value",
"map_content",
"not_empty_map",
"list_generic",
"$@6",
2458 "list_content",
"not_empty_list",
"unknown_map_entry",
2459 "agent_syntax_map",
"$@7",
"global_object",
"$@8",
"global_object_comma",
2460 "global_params",
"global_param",
"http_host",
"$@9",
"http_port",
2461 "trust_anchor",
"$@10",
"cert_file",
"$@11",
"key_file",
"$@12",
2462 "cert_required",
"user_context",
"$@13",
"comment",
"$@14",
2463 "hooks_libraries",
"$@15",
"hooks_libraries_list",
2464 "not_empty_hooks_libraries_list",
"hooks_library",
"$@16",
2465 "hooks_params",
"hooks_param",
"library",
"$@17",
"parameters",
"$@18",
2466 "control_sockets",
"$@19",
"control_sockets_params",
"control_socket",
2467 "dhcp4_server_socket",
"$@20",
"dhcp6_server_socket",
"$@21",
2468 "d2_server_socket",
"$@22",
"control_socket_params",
2469 "control_socket_param",
"socket_name",
"$@23",
"socket_type",
"$@24",
2470 "socket_type_value",
"authentication",
"$@25",
"auth_params",
2471 "auth_param",
"auth_type",
"$@26",
"auth_type_value",
"realm",
"$@27",
2472 "directory",
"$@28",
"clients",
"$@29",
"clients_list",
2473 "not_empty_clients_list",
"basic_auth",
"$@30",
"clients_params",
2474 "clients_param",
"user",
"$@31",
"user_file",
"$@32",
"password",
"$@33",
2475 "password_file",
"$@34",
"loggers",
"$@35",
"loggers_entries",
2476 "logger_entry",
"$@36",
"logger_params",
"logger_param",
"name",
"$@37",
2477 "debuglevel",
"severity",
"$@38",
"output_options_list",
"$@39",
2478 "output_options_list_content",
"output_entry",
"$@40",
2479 "output_params_list",
"output_params",
"output",
"$@41",
"flush",
2480 "maxsize",
"maxver",
"pattern",
"$@42", YY_NULLPTR
2487 AgentParser::yyrline_[] =
2489 0, 127, 127, 127, 128, 128, 129, 129, 137, 137,
2490 148, 154, 155, 156, 157, 158, 159, 160, 164, 164,
2491 175, 180, 181, 189, 194, 200, 205, 205, 211, 212,
2492 215, 219, 223, 235, 243, 243, 255, 255, 271, 274,
2493 278, 279, 280, 287, 288, 289, 290, 291, 292, 293,
2494 294, 295, 296, 297, 298, 299, 302, 302, 311, 317,
2495 317, 326, 326, 335, 335, 344, 350, 350, 375, 375,
2496 403, 403, 414, 415, 418, 419, 420, 425, 425, 433,
2497 434, 435, 438, 441, 442, 445, 445, 454, 454, 465,
2498 465, 479, 480, 481, 488, 489, 490, 491, 495, 495,
2499 507, 507, 519, 519, 531, 532, 533, 539, 540, 541,
2500 542, 543, 547, 547, 557, 557, 566, 573, 573, 586,
2501 587, 588, 593, 594, 595, 596, 597, 598, 599, 602,
2502 602, 610, 613, 613, 622, 622, 631, 631, 642, 643,
2503 646, 647, 648, 653, 653, 661, 662, 663, 668, 669,
2504 670, 671, 672, 673, 674, 677, 677, 686, 686, 695,
2505 695, 704, 704, 717, 717, 730, 731, 732, 738, 738,
2506 746, 747, 748, 753, 754, 755, 756, 757, 758, 759,
2507 762, 762, 771, 777, 777, 786, 786, 797, 798, 799,
2508 804, 804, 812, 813, 814, 819, 820, 821, 822, 823,
2509 826, 826, 835, 841, 847, 853, 853
2513 AgentParser::yy_stack_print_ ()
const 2515 *yycdebug_ <<
"Stack now";
2516 for (stack_type::const_iterator
2517 i = yystack_.begin (),
2518 i_end = yystack_.end ();
2520 *yycdebug_ <<
' ' <<
int (i->state);
2525 AgentParser::yy_reduce_print_ (
int yyrule)
const 2527 int yylno = yyrline_[yyrule];
2528 int yynrhs = yyr2_[yyrule];
2530 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2531 <<
" (line " << yylno <<
"):\n";
2533 for (
int yyi = 0; yyi < yynrhs; yyi++)
2535 yystack_[(yynrhs) - (yyi + 1)]);
2537 #endif // AGENT_DEBUG 2540 #line 14 "agent_parser.yy" 2542 #line 2543 "agent_parser.cc" 2544 #line 862 "agent_parser.yy" 2549 const std::string& what)
2551 ctx.error(loc, what);
void move(basic_symbol &s)
Destructive move, s is emptied into this.
Used while parsing Control-agent/Authentication/type.
Used while parsing content of Agent.
void unique(const std::string &name, isc::data::Element::Position loc)
Check if a parameter is already present.
void enter(const LexerContext &ctx)
Enter a new syntactic context.
#define YY_CAST(Type, Val)
LexerContext ctx_
Current syntactic context.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
void warnAboutExtraCommas(const isc::agent::location &loc)
Warning for extra commas.
#define YY_REDUCE_PRINT(Rule)
Used while parsing Control-agent/control-socket/*-server/socket-type.
#define YY_MOVE_REF(Type)
#define YY_SYMBOL_PRINT(Title, Symbol)
boost::shared_ptr< Element > ElementPtr
Syntax errors thrown from user actions.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
value_type value
The semantic value.
Used while parsing Control-agent/loggers structures.
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::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
location_type location
The location.
isc::data::Element::Position loc2pos(isc::agent::location &loc)
Converts bison's position to one understandable by isc::data::Element.
Notes: IntElement type is changed to int64_t.
const std::string contextName()
Get the syntactic context name.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
boost::shared_ptr< const Element > ConstElementPtr
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
void set_debug_level(debug_level_type l)
Set the current debugging level.
void leave()
Leave a syntactic context.
symbol_kind_type kind_
The symbol kind.
static const symbol_kind_type YYNTOKENS
The number of tokens.
Used while parsing Control-agent/loggers/output_options structures.
virtual int parse()
Parse.
#define YYLLOC_DEFAULT(Current, Rhs, N)
This one is used in pure JSON mode.
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
Defines the logger used by the top-level component of kea-lfc.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
~syntax_error() YY_NOEXCEPT YY_NOTHROW
const symbol_type & lookahead() const YY_NOEXCEPT
void merge(ElementPtr element, ConstElementPtr other)
Merges the data from other into element.
Define the isc::agent::parser class.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
int debug_level_type
Type for debugging levels.
Used while parsing Control-agent/hooks-libraries.
location location_type
Symbol locations.
"External" symbols: returned by the scanner.
bool empty() const YY_NOEXCEPT
Whether empty.
Used while parsing Control-agent/control-sockets.
Used while parsing Control-agent/Authentication.
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...
AgentParser(isc::agent::ParserContext &ctx_yyarg)
Build a parser object.
Used while parsing Control-agent/Authentication/clients.
Parser context is a wrapper around flex/bison instances dedicated to Control-agent config file parser...
context(const AgentParser &yyparser, const symbol_type &yyla)
Used while parsing Control-agent/control-socket/*-server.
symbol_kind_type token() const YY_NOEXCEPT