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_ (); \
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)
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"
143namespace 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;
245 AgentParser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
246 : super_type (s,
YY_MOVE (that.location))
248 switch (that.kind ())
258 value.move<
bool > (
YY_MOVE (that.value));
262 value.move<
double > (
YY_MOVE (that.value));
266 value.move< int64_t > (
YY_MOVE (that.value));
270 value.move< std::string > (
YY_MOVE (that.value));
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>
361 AgentParser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
368 template <
typename Base>
370 AgentParser::yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const
372 std::ostream& yyoutput = yyo;
375 yyo <<
"empty symbol";
379 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
380 <<
' ' << yysym.name () <<
" ("
381 << yysym.location <<
": ";
385#line 113 "agent_parser.yy"
386 { yyoutput << yysym.value.template as < std::string > (); }
387#line 388 "agent_parser.cc"
391#line 113 "agent_parser.yy"
392 { yyoutput << yysym.value.template as < int64_t > (); }
393#line 394 "agent_parser.cc"
397#line 113 "agent_parser.yy"
398 { yyoutput << yysym.value.template as < double > (); }
399#line 400 "agent_parser.cc"
403#line 113 "agent_parser.yy"
404 { yyoutput << yysym.value.template as < bool > (); }
405#line 406 "agent_parser.cc"
409#line 113 "agent_parser.yy"
410 { yyoutput << yysym.value.template as < ElementPtr > (); }
411#line 412 "agent_parser.cc"
415#line 113 "agent_parser.yy"
416 { yyoutput << yysym.value.template as < ElementPtr > (); }
417#line 418 "agent_parser.cc"
421#line 113 "agent_parser.yy"
422 { yyoutput << yysym.value.template as < ElementPtr > (); }
423#line 424 "agent_parser.cc"
427#line 113 "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)
449 AgentParser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (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);
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];
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))
586 yyla.
move (yylookahead);
591 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
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;
703#line 124 "agent_parser.yy"
705#line 706 "agent_parser.cc"
709#line 125 "agent_parser.yy"
711#line 712 "agent_parser.cc"
715#line 126 "agent_parser.yy"
717#line 718 "agent_parser.cc"
721#line 134 "agent_parser.yy"
727#line 728 "agent_parser.cc"
731#line 138 "agent_parser.yy"
735#line 736 "agent_parser.cc"
739#line 145 "agent_parser.yy"
744#line 745 "agent_parser.cc"
748#line 151 "agent_parser.yy"
750#line 751 "agent_parser.cc"
754#line 152 "agent_parser.yy"
756#line 757 "agent_parser.cc"
760#line 153 "agent_parser.yy"
762#line 763 "agent_parser.cc"
766#line 154 "agent_parser.yy"
768#line 769 "agent_parser.cc"
772#line 155 "agent_parser.yy"
774#line 775 "agent_parser.cc"
778#line 156 "agent_parser.yy"
780#line 781 "agent_parser.cc"
784#line 157 "agent_parser.yy"
786#line 787 "agent_parser.cc"
790#line 161 "agent_parser.yy"
797#line 798 "agent_parser.cc"
801#line 166 "agent_parser.yy"
807#line 808 "agent_parser.cc"
811#line 172 "agent_parser.yy"
813#line 814 "agent_parser.cc"
817#line 186 "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 191 "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 199 "agent_parser.yy"
843#line 844 "agent_parser.cc"
847#line 202 "agent_parser.yy"
850#line 851 "agent_parser.cc"
854#line 209 "agent_parser.yy"
859#line 860 "agent_parser.cc"
863#line 213 "agent_parser.yy"
868#line 869 "agent_parser.cc"
872#line 226 "agent_parser.yy"
875 const std::string& keyword = yystack_[1].value.as < std::string > ();
876 error(yystack_[1].location,
877 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
879#line 880 "agent_parser.cc"
883#line 234 "agent_parser.yy"
890#line 891 "agent_parser.cc"
894#line 239 "agent_parser.yy"
900#line 901 "agent_parser.cc"
904#line 246 "agent_parser.yy"
911 ctx.
unique(
"Control-agent", ctx.
loc2pos(yystack_[0].location));
913 ctx.
stack_.back()->set(
"Control-agent", m);
917#line 918 "agent_parser.cc"
921#line 257 "agent_parser.yy"
928#line 929 "agent_parser.cc"
932#line 285 "agent_parser.yy"
937#line 938 "agent_parser.cc"
941#line 288 "agent_parser.yy"
944 ctx.
stack_.back()->set(
"http-host", host);
947#line 948 "agent_parser.cc"
951#line 294 "agent_parser.yy"
955 ctx.
stack_.back()->set(
"http-port", prf);
957#line 958 "agent_parser.cc"
961#line 300 "agent_parser.yy"
963 ctx.
unique(
"trust-anchor", ctx.
loc2pos(yystack_[0].location));
966#line 967 "agent_parser.cc"
970#line 303 "agent_parser.yy"
973 ctx.
stack_.back()->set(
"trust-anchor", ca);
976#line 977 "agent_parser.cc"
980#line 309 "agent_parser.yy"
985#line 986 "agent_parser.cc"
989#line 312 "agent_parser.yy"
992 ctx.
stack_.back()->set(
"cert-file", cert);
995#line 996 "agent_parser.cc"
999#line 318 "agent_parser.yy"
1004#line 1005 "agent_parser.cc"
1008#line 321 "agent_parser.yy"
1011 ctx.
stack_.back()->set(
"key-file", key);
1014#line 1015 "agent_parser.cc"
1018#line 327 "agent_parser.yy"
1020 ctx.
unique(
"cert-required", ctx.
loc2pos(yystack_[2].location));
1022 ctx.
stack_.back()->set(
"cert-required", req);
1024#line 1025 "agent_parser.cc"
1028#line 333 "agent_parser.yy"
1032#line 1033 "agent_parser.cc"
1036#line 335 "agent_parser.yy"
1045 if ((old->size() != 1) || !old->contains(
"comment")) {
1046 std::stringstream msg;
1047 msg <<
"duplicate user-context entries (previous at "
1048 << old->getPosition().str() <<
")";
1049 error(yystack_[3].location, msg.str());
1052 user_context->set(
"comment", old->get(
"comment"));
1056 parent->set(
"user-context", user_context);
1059#line 1060 "agent_parser.cc"
1063#line 358 "agent_parser.yy"
1067#line 1068 "agent_parser.cc"
1071#line 360 "agent_parser.yy"
1076 user_context->set(
"comment", comment);
1082 if (old->contains(
"comment")) {
1083 std::stringstream msg;
1084 msg <<
"duplicate user-context/comment entries (previous at "
1085 << old->getPosition().str() <<
")";
1086 error(yystack_[3].location, msg.str());
1089 merge(user_context, old);
1093 parent->set(
"user-context", user_context);
1096#line 1097 "agent_parser.cc"
1100#line 386 "agent_parser.yy"
1102 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
1104 ctx.
stack_.back()->set(
"hooks-libraries", l);
1108#line 1109 "agent_parser.cc"
1112#line 392 "agent_parser.yy"
1117#line 1118 "agent_parser.cc"
1121#line 405 "agent_parser.yy"
1124 ctx.
stack_.back()->add(m);
1127#line 1128 "agent_parser.cc"
1131#line 409 "agent_parser.yy"
1135#line 1136 "agent_parser.cc"
1139#line 422 "agent_parser.yy"
1144#line 1145 "agent_parser.cc"
1148#line 425 "agent_parser.yy"
1151 ctx.
stack_.back()->set(
"library", lib);
1154#line 1155 "agent_parser.cc"
1158#line 431 "agent_parser.yy"
1160 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
1163#line 1164 "agent_parser.cc"
1167#line 434 "agent_parser.yy"
1169 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
1172#line 1173 "agent_parser.cc"
1176#line 442 "agent_parser.yy"
1178 ctx.
unique(
"control-sockets", ctx.
loc2pos(yystack_[2].location));
1180 ctx.
stack_.back()->set(
"control-sockets", m);
1184#line 1185 "agent_parser.cc"
1188#line 448 "agent_parser.yy"
1193#line 1194 "agent_parser.cc"
1197#line 469 "agent_parser.yy"
1201 ctx.
stack_.back()->set(
"dhcp4", m);
1205#line 1206 "agent_parser.cc"
1209#line 475 "agent_parser.yy"
1214#line 1215 "agent_parser.cc"
1218#line 481 "agent_parser.yy"
1222 ctx.
stack_.back()->set(
"dhcp6", m);
1226#line 1227 "agent_parser.cc"
1230#line 487 "agent_parser.yy"
1235#line 1236 "agent_parser.cc"
1239#line 493 "agent_parser.yy"
1243 ctx.
stack_.back()->set(
"d2", m);
1247#line 1248 "agent_parser.cc"
1251#line 499 "agent_parser.yy"
1256#line 1257 "agent_parser.cc"
1260#line 518 "agent_parser.yy"
1262 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1265#line 1266 "agent_parser.cc"
1269#line 521 "agent_parser.yy"
1272 ctx.
stack_.back()->set(
"socket-name", name);
1275#line 1276 "agent_parser.cc"
1279#line 528 "agent_parser.yy"
1281 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1284#line 1285 "agent_parser.cc"
1288#line 531 "agent_parser.yy"
1290 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1293#line 1294 "agent_parser.cc"
1297#line 537 "agent_parser.yy"
1299#line 1300 "agent_parser.cc"
1303#line 544 "agent_parser.yy"
1305 ctx.
unique(
"authentication", ctx.
loc2pos(yystack_[0].location));
1307 ctx.
stack_.back()->set(
"authentication", m);
1311#line 1312 "agent_parser.cc"
1315#line 550 "agent_parser.yy"
1322#line 1323 "agent_parser.cc"
1326#line 569 "agent_parser.yy"
1331#line 1332 "agent_parser.cc"
1335#line 572 "agent_parser.yy"
1340#line 1341 "agent_parser.cc"
1344#line 577 "agent_parser.yy"
1346#line 1347 "agent_parser.cc"
1350#line 580 "agent_parser.yy"
1355#line 1356 "agent_parser.cc"
1359#line 583 "agent_parser.yy"
1362 ctx.
stack_.back()->set(
"realm", realm);
1365#line 1366 "agent_parser.cc"
1369#line 589 "agent_parser.yy"
1373 ctx.
stack_.back()->set(
"clients", l);
1377#line 1378 "agent_parser.cc"
1381#line 595 "agent_parser.yy"
1386#line 1387 "agent_parser.cc"
1390#line 608 "agent_parser.yy"
1393 ctx.
stack_.back()->add(m);
1396#line 1397 "agent_parser.cc"
1400#line 612 "agent_parser.yy"
1404#line 1405 "agent_parser.cc"
1408#line 627 "agent_parser.yy"
1413#line 1414 "agent_parser.cc"
1417#line 630 "agent_parser.yy"
1420 ctx.
stack_.back()->set(
"user", user);
1423#line 1424 "agent_parser.cc"
1427#line 636 "agent_parser.yy"
1432#line 1433 "agent_parser.cc"
1436#line 639 "agent_parser.yy"
1439 ctx.
stack_.back()->set(
"password", password);
1442#line 1443 "agent_parser.cc"
1446#line 649 "agent_parser.yy"
1450 ctx.
stack_.back()->set(
"loggers", l);
1454#line 1455 "agent_parser.cc"
1458#line 655 "agent_parser.yy"
1463#line 1464 "agent_parser.cc"
1467#line 667 "agent_parser.yy"
1470 ctx.
stack_.back()->add(l);
1473#line 1474 "agent_parser.cc"
1477#line 671 "agent_parser.yy"
1481#line 1482 "agent_parser.cc"
1485#line 688 "agent_parser.yy"
1490#line 1491 "agent_parser.cc"
1494#line 691 "agent_parser.yy"
1497 ctx.
stack_.back()->set(
"name", name);
1500#line 1501 "agent_parser.cc"
1504#line 697 "agent_parser.yy"
1506 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
1508 ctx.
stack_.back()->set(
"debuglevel", dl);
1510#line 1511 "agent_parser.cc"
1514#line 703 "agent_parser.yy"
1519#line 1520 "agent_parser.cc"
1523#line 706 "agent_parser.yy"
1526 ctx.
stack_.back()->set(
"severity", sev);
1529#line 1530 "agent_parser.cc"
1533#line 712 "agent_parser.yy"
1535 ctx.
unique(
"output_options", ctx.
loc2pos(yystack_[0].location));
1537 ctx.
stack_.back()->set(
"output_options", l);
1541#line 1542 "agent_parser.cc"
1545#line 718 "agent_parser.yy"
1550#line 1551 "agent_parser.cc"
1554#line 727 "agent_parser.yy"
1557 ctx.
stack_.back()->add(m);
1560#line 1561 "agent_parser.cc"
1564#line 731 "agent_parser.yy"
1568#line 1569 "agent_parser.cc"
1572#line 746 "agent_parser.yy"
1577#line 1578 "agent_parser.cc"
1581#line 749 "agent_parser.yy"
1584 ctx.
stack_.back()->set(
"output", sev);
1587#line 1588 "agent_parser.cc"
1591#line 755 "agent_parser.yy"
1595 ctx.
stack_.back()->set(
"flush", flush);
1597#line 1598 "agent_parser.cc"
1601#line 761 "agent_parser.yy"
1605 ctx.
stack_.back()->set(
"maxsize", maxsize);
1607#line 1608 "agent_parser.cc"
1611#line 767 "agent_parser.yy"
1615 ctx.
stack_.back()->set(
"maxver", maxver);
1617#line 1618 "agent_parser.cc"
1621#line 773 "agent_parser.yy"
1626#line 1627 "agent_parser.cc"
1630#line 776 "agent_parser.yy"
1633 ctx.
stack_.back()->set(
"pattern", sev);
1636#line 1637 "agent_parser.cc"
1640#line 1641 "agent_parser.cc"
1649 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
1659 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1673 std::string msg = yysyntax_error_ (yyctx);
1678 yyerror_range[1].location = yyla.
location;
1679 if (yyerrstatus_ == 3)
1687 else if (!yyla.
empty ())
1689 yy_destroy_ (
"Error: discarding", yyla);
1723 yyn = yypact_[+yystack_[0].state];
1724 if (!yy_pact_value_is_default_ (yyn))
1727 if (0 <= yyn && yyn <= yylast_
1730 yyn = yytable_[yyn];
1737 if (yystack_.size () == 1)
1740 yyerror_range[1].location = yystack_[0].location;
1741 yy_destroy_ (
"Error: popping", yystack_[0]);
1746 stack_symbol_type error_token;
1748 yyerror_range[2].location = yyla.
location;
1752 error_token.state = state_type (yyn);
1753 yypush_ (
"Shifting",
YY_MOVE (error_token));
1779 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1785 while (1 < yystack_.size ())
1787 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1796 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1800 yy_destroy_ (YY_NULLPTR, yyla);
1802 while (1 < yystack_.size ())
1804 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1824 AgentParser::yytnamerr_ (
const char *yystr)
1829 char const *yyp = yystr;
1836 goto do_not_strip_quotes;
1840 goto do_not_strip_quotes;
1852 do_not_strip_quotes: ;
1861 return yytnamerr_ (yytname_[yysymbol]);
1868 : yyparser_ (yyparser)
1878 const int yyn = yypact_[+yyparser_.yystack_[0].state];
1879 if (!yy_pact_value_is_default_ (yyn))
1884 const int yyxbegin = yyn < 0 ? -yyn : 0;
1886 const int yychecklim = yylast_ - yyn + 1;
1888 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1890 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
1894 else if (yycount == yyargn)
1901 if (yyarg && yycount == 0 && 0 < yyargn)
1912 AgentParser::yy_syntax_error_arguments_ (
const context& yyctx,
1943 yyarg[0] = yyctx.
token ();
1944 int yyn = yyctx.
expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
1952 AgentParser::yysyntax_error_ (
const context& yyctx)
const
1955 enum { YYARGS_MAX = 5 };
1958 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
1960 char const* yyformat = YY_NULLPTR;
1963#define YYCASE_(N, S) \
1969 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
1970 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1971 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1972 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1973 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1979 std::ptrdiff_t yyi = 0;
1980 for (
char const* yyp = yyformat; *yyp; ++yyp)
1981 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
1992 const short AgentParser::yypact_ninf_ = -165;
1994 const signed char AgentParser::yytable_ninf_ = -1;
1997 AgentParser::yypact_[] =
1999 71, -165, -165, -165, 14, 0, -3, 37, -165, -165,
2000 -165, -165, -165, -165, -165, -165, -165, -165, -165, -165,
2001 -165, -165, -165, -165, 0, -4, 44, 4, -165, 49,
2002 72, 86, 90, 106, -165, 102, -165, 109, -165, -165,
2003 -165, -165, -165, -165, 110, 111, -165, -165, 116, -165,
2004 5, -165, -165, -165, -165, -165, -165, -165, -165, -165,
2005 -165, -165, -165, -165, -165, 0, 0, -165, 76, 117,
2006 -165, 122, 78, 126, 127, 131, 133, 134, 135, 89,
2007 136, 138, 140, -165, 4, -165, -165, -165, 141, 139,
2008 91, -165, 142, 99, 143, 103, 107, 108, -165, -165,
2009 146, 148, -165, 0, 4, -165, -165, -165, -165, 54,
2010 -165, -165, -165, -17, 147, 151, -165, 28, -165, -165,
2011 -165, -165, -165, -165, 53, -165, -165, -165, -165, -165,
2012 -165, -165, -165, 61, -165, -165, -165, -165, -165, 149,
2013 144, -165, -165, 40, -165, -165, 155, 156, 157, 54,
2014 -165, 158, 159, 160, -17, -165, -14, -165, 147, 25,
2015 151, -165, 150, 119, 161, -165, 162, 163, 164, -165,
2016 -165, -165, -165, 68, -165, -165, -165, -165, -165, -165,
2017 168, -165, -165, -165, -165, 88, -165, -165, -165, -165,
2018 -165, -165, -165, -165, -165, 166, 11, 11, 11, 170,
2019 171, -12, -165, 172, 173, 115, 174, 25, -165, -165,
2020 177, 176, -165, -165, -165, -165, -165, -165, 94, -165,
2021 -165, -165, 96, 97, 137, 142, -165, 145, 179, -165,
2022 152, -165, 67, -165, 166, 181, 183, 11, -165, -165,
2023 -165, -165, -165, -165, 182, -165, -165, -165, -165, -165,
2024 -165, 98, -165, -165, -165, -165, 153, 165, -165, -165,
2025 105, -165, 184, 186, 67, -165, -165, -165, -165, 50,
2026 182, -165, 154, 167, -165, -165, 187, 188, 189, -165,
2027 104, -165, -165, -165, -165, -165, -165, -165, -165, -165,
2028 191, 169, 175, 178, 192, 50, -165, 180, -165, -165,
2029 -165, 185, -165, -165, -165
2033 AgentParser::yydefact_[] =
2035 0, 2, 4, 6, 0, 0, 0, 0, 1, 25,
2036 18, 15, 14, 11, 12, 13, 3, 10, 16, 17,
2037 32, 5, 8, 7, 27, 21, 0, 0, 29, 0,
2038 28, 0, 0, 22, 34, 0, 51, 0, 61, 63,
2039 108, 54, 56, 58, 0, 0, 65, 142, 0, 50,
2040 0, 36, 38, 39, 40, 41, 42, 43, 48, 49,
2041 46, 45, 44, 47, 26, 0, 0, 19, 0, 0,
2042 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 31, 0, 9, 30, 23, 0, 0,
2044 0, 53, 0, 0, 0, 0, 0, 0, 60, 82,
2045 0, 0, 37, 0, 0, 52, 20, 62, 64, 0,
2046 55, 57, 59, 0, 67, 0, 24, 0, 118, 121,
2047 123, 117, 116, 115, 0, 110, 112, 113, 114, 90,
2048 92, 94, 89, 0, 84, 86, 87, 88, 71, 0,
2049 68, 69, 146, 0, 144, 35, 0, 0, 0, 0,
2050 109, 0, 0, 0, 0, 83, 0, 66, 0, 0,
2051 0, 143, 0, 0, 0, 111, 0, 0, 0, 85,
2052 78, 80, 75, 0, 73, 76, 77, 70, 157, 162,
2053 0, 160, 156, 154, 155, 0, 148, 150, 152, 153,
2054 151, 145, 120, 119, 122, 125, 0, 0, 0, 0,
2055 0, 0, 72, 0, 0, 0, 0, 0, 147, 129,
2056 0, 126, 127, 103, 105, 102, 100, 101, 0, 96,
2057 98, 99, 0, 0, 0, 0, 74, 0, 0, 159,
2058 0, 149, 0, 124, 0, 0, 0, 0, 91, 93,
2059 95, 79, 81, 158, 0, 161, 138, 140, 137, 135,
2060 136, 0, 131, 133, 134, 128, 0, 0, 97, 166,
2061 0, 164, 0, 0, 0, 130, 104, 107, 106, 0,
2062 0, 163, 0, 0, 132, 175, 0, 0, 0, 180,
2063 0, 168, 170, 171, 172, 173, 174, 165, 139, 141,
2064 0, 0, 0, 0, 0, 0, 167, 0, 177, 178,
2065 179, 0, 169, 176, 181
2069 AgentParser::yypgoto_[] =
2071 -165, -165, -165, -165, -165, -165, -165, -165, -18, -89,
2072 -165, -21, -165, -165, -165, -165, -165, -165, -27, -165,
2073 -165, -165, -165, 95, 114, -165, -165, -165, -165, -165,
2074 -165, -165, -165, -165, -165, -26, -165, -25, -165, -165,
2075 -165, -165, -165, 42, -165, -165, 7, -165, -165, -165,
2076 -165, -165, -165, -165, 55, -165, -165, -165, -165, -165,
2077 -165, -164, -24, -165, -165, -165, -165, -165, -165, -165,
2078 -165, 62, -165, -165, -165, -165, -165, -165, -165, -165,
2079 -165, -22, -165, -165, -54, -165, -165, -165, -165, -165,
2080 -165, -165, 57, -165, -165, 8, -165, -165, -165, -165,
2081 -165, -165, -165, -165, -56, -165, -165, -77, -165, -165,
2082 -165, -165, -165, -165, -165
2086 AgentParser::yydefgoto_[] =
2088 0, 4, 5, 6, 7, 23, 27, 16, 17, 18,
2089 25, 107, 32, 33, 19, 24, 29, 30, 215, 21,
2090 26, 35, 69, 50, 51, 52, 71, 53, 54, 76,
2091 55, 77, 56, 78, 57, 216, 73, 217, 74, 60,
2092 81, 139, 140, 141, 156, 173, 174, 175, 199, 176,
2093 200, 61, 113, 133, 134, 135, 151, 136, 152, 137,
2094 153, 218, 219, 220, 235, 221, 236, 268, 62, 75,
2095 124, 125, 126, 146, 193, 127, 147, 128, 148, 210,
2096 211, 212, 232, 251, 252, 253, 262, 254, 263, 63,
2097 82, 143, 144, 159, 185, 186, 187, 203, 188, 189,
2098 206, 190, 204, 260, 261, 269, 280, 281, 282, 290,
2099 283, 284, 285, 286, 294
2103 AgentParser::yytable_[] =
2105 49, 58, 59, 106, 20, 9, 28, 10, 84, 11,
2106 129, 130, 131, 85, 8, 36, 37, 38, 39, 40,
2107 170, 171, 170, 171, 38, 39, 41, 42, 43, 44,
2108 45, 84, 48, 222, 223, 48, 145, 46, 38, 39,
2109 47, 213, 214, 160, 22, 31, 161, 86, 87, 12,
2110 13, 14, 15, 48, 34, 64, 149, 49, 58, 59,
2111 48, 150, 178, 179, 154, 180, 181, 38, 39, 155,
2112 118, 201, 119, 120, 48, 65, 202, 49, 58, 59,
2113 38, 39, 121, 122, 123, 116, 132, 246, 247, 275,
2114 66, 207, 276, 277, 278, 279, 208, 237, 67, 237,
2115 237, 264, 238, 48, 239, 240, 265, 295, 270, 68,
2116 70, 271, 296, 72, 79, 80, 48, 1, 2, 3,
2117 83, 89, 121, 122, 123, 88, 90, 132, 91, 172,
2118 92, 93, 182, 183, 184, 94, 106, 95, 96, 97,
2119 105, 98, 100, 99, 101, 103, 104, 158, 108, 10,
2120 109, 114, 110, 115, 138, 157, 111, 112, 142, 162,
2121 163, 164, 166, 167, 168, 229, 195, 192, 194, 196,
2122 197, 198, 205, 209, 224, 225, 227, 228, 230, 234,
2123 182, 183, 184, 233, 244, 256, 241, 257, 272, 259,
2124 273, 291, 292, 293, 243, 297, 301, 267, 102, 117,
2125 177, 245, 266, 288, 242, 248, 249, 250, 226, 169,
2126 274, 165, 255, 258, 287, 231, 289, 191, 302, 0,
2127 0, 298, 0, 0, 0, 299, 0, 0, 300, 303,
2128 0, 0, 0, 0, 304, 0, 0, 248, 249, 250
2132 AgentParser::yycheck_[] =
2134 27, 27, 27, 92, 7, 5, 24, 7, 3, 9,
2135 27, 28, 29, 8, 0, 11, 12, 13, 14, 15,
2136 34, 35, 34, 35, 13, 14, 22, 23, 24, 25,
2137 26, 3, 49, 197, 198, 49, 8, 33, 13, 14,
2138 36, 30, 31, 3, 7, 49, 6, 65, 66, 49,
2139 50, 51, 52, 49, 10, 6, 3, 84, 84, 84,
2140 49, 8, 37, 38, 3, 40, 41, 13, 14, 8,
2141 16, 3, 18, 19, 49, 3, 8, 104, 104, 104,
2142 13, 14, 109, 109, 109, 103, 113, 20, 21, 39,
2143 4, 3, 42, 43, 44, 45, 8, 3, 8, 3,
2144 3, 3, 8, 49, 8, 8, 8, 3, 3, 3,
2145 8, 6, 8, 4, 4, 4, 49, 46, 47, 48,
2146 4, 4, 149, 149, 149, 49, 4, 154, 50, 156,
2147 4, 4, 159, 159, 159, 4, 225, 4, 4, 4,
2148 49, 52, 4, 7, 4, 4, 7, 3, 49, 7,
2149 7, 5, 49, 5, 7, 6, 49, 49, 7, 4,
2150 4, 4, 4, 4, 4, 50, 5, 17, 49, 7,
2151 7, 7, 4, 7, 4, 4, 4, 4, 4, 3,
2152 207, 207, 207, 6, 5, 4, 49, 4, 4, 7,
2153 4, 4, 4, 4, 49, 4, 4, 32, 84, 104,
2154 158, 49, 49, 49, 225, 232, 232, 232, 201, 154,
2155 264, 149, 234, 237, 270, 207, 49, 160, 295, -1,
2156 -1, 52, -1, -1, -1, 50, -1, -1, 50, 49,
2157 -1, -1, -1, -1, 49, -1, -1, 264, 264, 264
2161 AgentParser::yystos_[] =
2163 0, 46, 47, 48, 54, 55, 56, 57, 0, 5,
2164 7, 9, 49, 50, 51, 52, 60, 61, 62, 67,
2165 7, 72, 7, 58, 68, 63, 73, 59, 61, 69,
2166 70, 49, 65, 66, 10, 74, 11, 12, 13, 14,
2167 15, 22, 23, 24, 25, 26, 33, 36, 49, 71,
2168 76, 77, 78, 80, 81, 83, 85, 87, 88, 90,
2169 92, 104, 121, 142, 6, 3, 4, 8, 3, 75,
2170 8, 79, 4, 89, 91, 122, 82, 84, 86, 4,
2171 4, 93, 143, 4, 3, 8, 61, 61, 49, 4,
2172 4, 50, 4, 4, 4, 4, 4, 4, 52, 7,
2173 4, 4, 77, 4, 7, 49, 62, 64, 49, 7,
2174 49, 49, 49, 105, 5, 5, 61, 76, 16, 18,
2175 19, 71, 88, 90, 123, 124, 125, 128, 130, 27,
2176 28, 29, 71, 106, 107, 108, 110, 112, 7, 94,
2177 95, 96, 7, 144, 145, 8, 126, 129, 131, 3,
2178 8, 109, 111, 113, 3, 8, 97, 6, 3, 146,
2179 3, 6, 4, 4, 4, 124, 4, 4, 4, 107,
2180 34, 35, 71, 98, 99, 100, 102, 96, 37, 38,
2181 40, 41, 71, 88, 90, 147, 148, 149, 151, 152,
2182 154, 145, 17, 127, 49, 5, 7, 7, 7, 101,
2183 103, 3, 8, 150, 155, 4, 153, 3, 8, 7,
2184 132, 133, 134, 30, 31, 71, 88, 90, 114, 115,
2185 116, 118, 114, 114, 4, 4, 99, 4, 4, 50,
2186 4, 148, 135, 6, 3, 117, 119, 3, 8, 8,
2187 8, 49, 64, 49, 5, 49, 20, 21, 71, 88,
2188 90, 136, 137, 138, 140, 134, 4, 4, 115, 7,
2189 156, 157, 139, 141, 3, 8, 49, 32, 120, 158,
2190 3, 6, 4, 4, 137, 39, 42, 43, 44, 45,
2191 159, 160, 161, 163, 164, 165, 166, 157, 49, 49,
2192 162, 4, 4, 4, 167, 3, 8, 4, 52, 50,
2197 AgentParser::yyr1_[] =
2199 0, 53, 55, 54, 56, 54, 57, 54, 59, 58,
2200 60, 61, 61, 61, 61, 61, 61, 61, 63, 62,
2201 64, 65, 65, 66, 66, 68, 67, 69, 69, 70,
2202 70, 71, 73, 72, 75, 74, 76, 76, 77, 77,
2203 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
2204 77, 79, 78, 80, 82, 81, 84, 83, 86, 85,
2205 87, 89, 88, 91, 90, 93, 92, 94, 94, 95,
2206 95, 97, 96, 98, 98, 98, 99, 99, 101, 100,
2207 103, 102, 105, 104, 106, 106, 107, 107, 107, 107,
2208 109, 108, 111, 110, 113, 112, 114, 114, 115, 115,
2209 115, 115, 115, 117, 116, 119, 118, 120, 122, 121,
2210 123, 123, 124, 124, 124, 124, 124, 124, 126, 125,
2211 127, 129, 128, 131, 130, 132, 132, 133, 133, 135,
2212 134, 136, 136, 137, 137, 137, 137, 137, 139, 138,
2213 141, 140, 143, 142, 144, 144, 146, 145, 147, 147,
2214 148, 148, 148, 148, 148, 148, 148, 150, 149, 151,
2215 153, 152, 155, 154, 156, 156, 158, 157, 159, 159,
2216 160, 160, 160, 160, 160, 162, 161, 163, 164, 165,
2221 AgentParser::yyr2_[] =
2223 0, 2, 0, 3, 0, 3, 0, 3, 0, 4,
2224 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
2225 1, 0, 1, 3, 5, 0, 4, 0, 1, 1,
2226 3, 2, 0, 4, 0, 6, 1, 3, 1, 1,
2227 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2228 1, 0, 4, 3, 0, 4, 0, 4, 0, 4,
2229 3, 0, 4, 0, 4, 0, 6, 0, 1, 1,
2230 3, 0, 4, 1, 3, 1, 1, 1, 0, 4,
2231 0, 4, 0, 6, 1, 3, 1, 1, 1, 1,
2232 0, 6, 0, 6, 0, 6, 1, 3, 1, 1,
2233 1, 1, 1, 0, 4, 0, 4, 1, 0, 6,
2234 1, 3, 1, 1, 1, 1, 1, 1, 0, 4,
2235 1, 0, 4, 0, 6, 0, 1, 1, 3, 0,
2236 4, 1, 3, 1, 1, 1, 1, 1, 0, 4,
2237 0, 4, 0, 6, 1, 3, 0, 4, 1, 3,
2238 1, 1, 1, 1, 1, 1, 1, 0, 4, 3,
2239 0, 4, 0, 6, 1, 3, 0, 4, 1, 3,
2240 1, 1, 1, 1, 1, 0, 4, 3, 3, 3,
2249 const AgentParser::yytname_[] =
2251 "\"end of file\"",
"error",
"\"invalid token\"",
"\",\"",
"\":\"",
2252 "\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Control-agent\"",
2253 "\"http-host\"",
"\"http-port\"",
"\"user-context\"",
"\"comment\"",
2254 "\"authentication\"",
"\"type\"",
"\"basic\"",
"\"realm\"",
2255 "\"clients\"",
"\"user\"",
"\"password\"",
"\"trust-anchor\"",
2256 "\"cert-file\"",
"\"key-file\"",
"\"cert-required\"",
2257 "\"control-sockets\"",
"\"dhcp4\"",
"\"dhcp6\"",
"\"d2\"",
2258 "\"socket-name\"",
"\"socket-type\"",
"\"unix\"",
"\"hooks-libraries\"",
2259 "\"library\"",
"\"parameters\"",
"\"loggers\"",
"\"name\"",
2260 "\"output_options\"",
"\"output\"",
"\"debuglevel\"",
"\"severity\"",
2261 "\"flush\"",
"\"maxsize\"",
"\"maxver\"",
"\"pattern\"",
"START_JSON",
2262 "START_AGENT",
"START_SUB_AGENT",
"\"constant string\"",
"\"integer\"",
2263 "\"floating point\"",
"\"boolean\"",
"$accept",
"start",
"$@1",
"$@2",
2264 "$@3",
"sub_agent",
"$@4",
"json",
"value",
"map",
"$@5",
"map_value",
2265 "map_content",
"not_empty_map",
"list_generic",
"$@6",
"list_content",
2266 "not_empty_list",
"unknown_map_entry",
"agent_syntax_map",
"$@7",
2267 "global_object",
"$@8",
"global_params",
"global_param",
"http_host",
2268 "$@9",
"http_port",
"trust_anchor",
"$@10",
"cert_file",
"$@11",
2269 "key_file",
"$@12",
"cert_required",
"user_context",
"$@13",
"comment",
2270 "$@14",
"hooks_libraries",
"$@15",
"hooks_libraries_list",
2271 "not_empty_hooks_libraries_list",
"hooks_library",
"$@16",
2272 "hooks_params",
"hooks_param",
"library",
"$@17",
"parameters",
"$@18",
2273 "control_sockets",
"$@19",
"control_sockets_params",
"control_socket",
2274 "dhcp4_server_socket",
"$@20",
"dhcp6_server_socket",
"$@21",
2275 "d2_server_socket",
"$@22",
"control_socket_params",
2276 "control_socket_param",
"socket_name",
"$@23",
"socket_type",
"$@24",
2277 "socket_type_value",
"authentication",
"$@25",
"auth_params",
2278 "auth_param",
"auth_type",
"$@26",
"auth_type_value",
"realm",
"$@27",
2279 "clients",
"$@28",
"clients_list",
"not_empty_clients_list",
2280 "basic_auth",
"$@29",
"clients_params",
"clients_param",
"user",
"$@30",
2281 "password",
"$@31",
"loggers",
"$@32",
"loggers_entries",
"logger_entry",
2282 "$@33",
"logger_params",
"logger_param",
"name",
"$@34",
"debuglevel",
2283 "severity",
"$@35",
"output_options_list",
"$@36",
2284 "output_options_list_content",
"output_entry",
"$@37",
2285 "output_params_list",
"output_params",
"output",
"$@38",
"flush",
2286 "maxsize",
"maxver",
"pattern",
"$@39", YY_NULLPTR
2293 AgentParser::yyrline_[] =
2295 0, 124, 124, 124, 125, 125, 126, 126, 134, 134,
2296 145, 151, 152, 153, 154, 155, 156, 157, 161, 161,
2297 172, 177, 178, 186, 191, 199, 199, 205, 206, 209,
2298 213, 226, 234, 234, 246, 246, 264, 265, 270, 271,
2299 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
2300 282, 285, 285, 294, 300, 300, 309, 309, 318, 318,
2301 327, 333, 333, 358, 358, 386, 386, 397, 398, 401,
2302 402, 405, 405, 413, 414, 415, 418, 419, 422, 422,
2303 431, 431, 442, 442, 456, 457, 462, 463, 464, 465,
2304 469, 469, 481, 481, 493, 493, 505, 506, 510, 511,
2305 512, 513, 514, 518, 518, 528, 528, 537, 544, 544,
2306 557, 558, 561, 562, 563, 564, 565, 566, 569, 569,
2307 577, 580, 580, 589, 589, 600, 601, 604, 605, 608,
2308 608, 616, 617, 620, 621, 622, 623, 624, 627, 627,
2309 636, 636, 649, 649, 662, 663, 667, 667, 675, 676,
2310 679, 680, 681, 682, 683, 684, 685, 688, 688, 697,
2311 703, 703, 712, 712, 723, 724, 727, 727, 735, 736,
2312 739, 740, 741, 742, 743, 746, 746, 755, 761, 767,
2317 AgentParser::yy_stack_print_ ()
const
2319 *yycdebug_ <<
"Stack now";
2320 for (stack_type::const_iterator
2321 i = yystack_.begin (),
2322 i_end = yystack_.end ();
2324 *yycdebug_ <<
' ' << int (i->state);
2329 AgentParser::yy_reduce_print_ (
int yyrule)
const
2331 int yylno = yyrline_[yyrule];
2332 int yynrhs = yyr2_[yyrule];
2334 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2335 <<
" (line " << yylno <<
"):\n";
2337 for (
int yyi = 0; yyi < yynrhs; yyi++)
2339 yystack_[(yynrhs) - (yyi + 1)]);
2344#line 14 "agent_parser.yy"
2346#line 2347 "agent_parser.cc"
2348#line 782 "agent_parser.yy"
2353 const std::string& what)
2355 ctx.error(loc, what);
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_REDUCE_PRINT(Rule)
#define YY_SYMBOL_PRINT(Title, Symbol)
Define the isc::agent::parser class.
#define YY_CAST(Type, Val)
#define YY_MOVE_REF(Type)
context(const AgentParser &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.
void set_debug_level(debug_level_type l)
Set the current debugging level.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
AgentParser(isc::agent::ParserContext &ctx_yyarg)
Build a parser object.
int debug_level_type
Type for debugging levels.
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
location location_type
Symbol locations.
virtual int parse()
Parse.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
static const symbol_kind_type YYNTOKENS
The number of tokens.
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
Parser context is a wrapper around flex/bison instances dedicated to Control-agent config file parser...
void unique(const std::string &name, isc::data::Element::Position loc)
Check if a parameter is already present.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
const std::string contextName()
Get the syntactic context name.
isc::data::Element::Position loc2pos(isc::agent::location &loc)
Converts bison's position to one understandable by isc::data::Element.
LexerContext ctx_
Current syntactic context.
void leave()
Leave a syntactic context.
@ CONFIG
Used while parsing content of Agent.
@ SERVER
Used while parsing Control-agent/control-socket/*-server/socket-type.
@ NO_KEYWORDS
This one is used in pure JSON mode.
@ HOOKS_LIBRARIES
Used while parsing Control-agent/loggers structures.
@ CONTROL_SOCKETS
Used while parsing Control-agent/control-socket/*-server.
@ SOCKET_TYPE
Used while parsing Control-agent/hooks-libraries.
@ AGENT
Used while parsing Control-agent/Authentication.
@ CLIENTS
Used while parsing Control-agent/control-sockets.
@ AUTHENTICATION
Used while parsing Control-agent/Authentication/type.
@ AUTH_TYPE
Used while parsing Control-agent/Authentication/clients.
@ LOGGERS
Used while parsing Control-agent/loggers/output_options 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.
void enter(const LexerContext &ctx)
Enter a new syntactic context.
Notes: IntElement type is changed to int64_t.
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.
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.
bool empty() const YY_NOEXCEPT
Whether empty.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
symbol_kind_type kind_
The symbol kind.
"External" symbols: returned by the scanner.
Syntax errors thrown from user actions.
~syntax_error() YY_NOEXCEPT YY_NOTHROW