39 #define yylex netconf_lex 47 #line 33 "netconf_parser.yy" 51 #line 52 "netconf_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 // !NETCONF_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 // !NETCONF_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 "netconf_parser.yy" 143 namespace isc {
namespace netconf {
144 #line 145 "netconf_parser.cc" 150 yycdebug_ (&std::cerr),
171 : state (empty_state)
174 NetconfParser::by_state::by_state (
const by_state& that)
YY_NOEXCEPT 185 NetconfParser::by_state::move (by_state& that)
191 NetconfParser::by_state::by_state (state_type s)
YY_NOEXCEPT 198 if (state == empty_state)
204 NetconfParser::stack_symbol_type::stack_symbol_type ()
207 NetconfParser::stack_symbol_type::stack_symbol_type (
YY_RVREF (stack_symbol_type) that)
210 switch (that.kind ())
219 value.YY_MOVE_OR_COPY<
bool > (
YY_MOVE (that.value));
223 value.YY_MOVE_OR_COPY<
double > (
YY_MOVE (that.value));
227 value.YY_MOVE_OR_COPY< int64_t > (
YY_MOVE (that.value));
231 value.YY_MOVE_OR_COPY< std::string > (
YY_MOVE (that.value));
238 #if 201103L <= YY_CPLUSPLUS 240 that.state = empty_state;
247 switch (that.
kind ())
279 #if YY_CPLUSPLUS < 201103L 280 NetconfParser::stack_symbol_type&
281 NetconfParser::stack_symbol_type::operator= (
const stack_symbol_type& that)
284 switch (that.kind ())
293 value.copy<
bool > (that.value);
297 value.copy<
double > (that.value);
301 value.copy< int64_t > (that.value);
305 value.copy< std::string > (that.value);
312 location = that.location;
316 NetconfParser::stack_symbol_type&
317 NetconfParser::stack_symbol_type::operator= (stack_symbol_type& that)
320 switch (that.kind ())
329 value.move<
bool > (that.value);
333 value.move<
double > (that.value);
337 value.move< int64_t > (that.value);
341 value.move< std::string > (that.value);
348 location = that.location;
350 that.state = empty_state;
355 template <
typename Base>
364 template <
typename Base>
368 std::ostream& yyoutput = yyo;
371 yyo <<
"empty symbol";
375 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
376 <<
' ' << yysym.
name () <<
" (" 381 #line 107 "netconf_parser.yy" 382 { yyoutput << yysym.
value.template as < std::string > (); }
383 #line 384 "netconf_parser.cc" 387 #line 107 "netconf_parser.yy" 388 { yyoutput << yysym.
value.template as < int64_t > (); }
389 #line 390 "netconf_parser.cc" 393 #line 107 "netconf_parser.yy" 394 { yyoutput << yysym.
value.template as < double > (); }
395 #line 396 "netconf_parser.cc" 399 #line 107 "netconf_parser.yy" 400 { yyoutput << yysym.
value.template as < bool > (); }
401 #line 402 "netconf_parser.cc" 405 #line 107 "netconf_parser.yy" 406 { yyoutput << yysym.
value.template as < ElementPtr > (); }
407 #line 408 "netconf_parser.cc" 411 #line 107 "netconf_parser.yy" 412 { yyoutput << yysym.
value.template as < ElementPtr > (); }
413 #line 414 "netconf_parser.cc" 417 #line 107 "netconf_parser.yy" 418 { yyoutput << yysym.
value.template as < ElementPtr > (); }
419 #line 420 "netconf_parser.cc" 431 NetconfParser::yypush_ (
const char* m,
YY_MOVE_REF (stack_symbol_type) sym)
441 #if 201103L <= YY_CPLUSPLUS 442 yypush_ (m, stack_symbol_type (s, std::move (sym)));
444 stack_symbol_type ss (s, sym);
480 #endif // NETCONF_DEBUG 482 NetconfParser::state_type
483 NetconfParser::yy_lr_goto_state_ (state_type yystate,
int yysym)
485 int yyr = yypgoto_[yysym -
YYNTOKENS] + yystate;
486 if (0 <= yyr && yyr <= yylast_ && yycheck_[yyr] == yystate)
487 return yytable_[yyr];
493 NetconfParser::yy_pact_value_is_default_ (
int yyvalue)
YY_NOEXCEPT 495 return yyvalue == yypact_ninf_;
499 NetconfParser::yy_table_value_is_error_ (
int yyvalue)
YY_NOEXCEPT 501 return yyvalue == yytable_ninf_;
519 int yyerrstatus_ = 0;
525 stack_symbol_type yyerror_range[3];
532 #endif // YY_EXCEPTIONS 542 yypush_ (YY_NULLPTR, 0,
YY_MOVE (yyla));
548 YYCDEBUG <<
"Entering state " << int (yystack_[0].state) <<
'\n';
552 if (yystack_[0].state == yyfinal_)
563 yyn = yypact_[+yystack_[0].state];
564 if (yy_pact_value_is_default_ (yyn))
573 #endif // YY_EXCEPTIONS 576 yyla.
move (yylookahead);
581 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
585 #endif // YY_EXCEPTIONS 602 if (yyn < 0 || yylast_ < yyn || yycheck_[yyn] != yyla.
kind ())
611 if (yy_table_value_is_error_ (yyn))
622 yypush_ (
"Shifting", state_type (yyn),
YY_MOVE (yyla));
630 yyn = yydefact_[+yystack_[0].state];
642 stack_symbol_type yylhs;
643 yylhs.state = yy_lr_goto_state_ (yystack_[yylen].state, yyr1_[yyn]);
656 yylhs.value.emplace<
bool > ();
660 yylhs.value.emplace<
double > ();
664 yylhs.value.emplace< int64_t > ();
668 yylhs.value.emplace< std::string > ();
678 stack_type::slice range (yystack_, yylen);
680 yyerror_range[1].location = yylhs.location;
687 #endif // YY_EXCEPTIONS 692 #line 118 "netconf_parser.yy" 694 #line 695 "netconf_parser.cc" 698 #line 119 "netconf_parser.yy" 700 #line 701 "netconf_parser.cc" 704 #line 120 "netconf_parser.yy" 706 #line 707 "netconf_parser.cc" 710 #line 128 "netconf_parser.yy" 716 #line 717 "netconf_parser.cc" 720 #line 132 "netconf_parser.yy" 724 #line 725 "netconf_parser.cc" 728 #line 139 "netconf_parser.yy" 733 #line 734 "netconf_parser.cc" 737 #line 145 "netconf_parser.yy" 739 #line 740 "netconf_parser.cc" 743 #line 146 "netconf_parser.yy" 745 #line 746 "netconf_parser.cc" 749 #line 147 "netconf_parser.yy" 751 #line 752 "netconf_parser.cc" 755 #line 148 "netconf_parser.yy" 757 #line 758 "netconf_parser.cc" 761 #line 149 "netconf_parser.yy" 763 #line 764 "netconf_parser.cc" 767 #line 150 "netconf_parser.yy" 769 #line 770 "netconf_parser.cc" 773 #line 151 "netconf_parser.yy" 775 #line 776 "netconf_parser.cc" 779 #line 155 "netconf_parser.yy" 786 #line 787 "netconf_parser.cc" 790 #line 160 "netconf_parser.yy" 796 #line 797 "netconf_parser.cc" 800 #line 166 "netconf_parser.yy" 802 #line 803 "netconf_parser.cc" 806 #line 180 "netconf_parser.yy" 809 ctx.
unique(yystack_[2].value.as < std::string > (), ctx.
loc2pos(yystack_[2].location));
810 ctx.
stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as <
ElementPtr > ());
812 #line 813 "netconf_parser.cc" 816 #line 185 "netconf_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 "netconf_parser.cc" 827 #line 191 "netconf_parser.yy" 831 #line 832 "netconf_parser.cc" 835 #line 196 "netconf_parser.yy" 840 #line 841 "netconf_parser.cc" 844 #line 199 "netconf_parser.yy" 847 #line 848 "netconf_parser.cc" 851 #line 206 "netconf_parser.yy" 856 #line 857 "netconf_parser.cc" 860 #line 210 "netconf_parser.yy" 865 #line 866 "netconf_parser.cc" 869 #line 214 "netconf_parser.yy" 873 #line 874 "netconf_parser.cc" 877 #line 226 "netconf_parser.yy" 880 const std::string& keyword = yystack_[1].value.as < std::string > ();
881 error(yystack_[1].location,
882 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
884 #line 885 "netconf_parser.cc" 888 #line 234 "netconf_parser.yy" 895 #line 896 "netconf_parser.cc" 899 #line 239 "netconf_parser.yy" 905 #line 906 "netconf_parser.cc" 909 #line 246 "netconf_parser.yy" 919 ctx.
stack_.back()->set(
"Netconf", m);
923 #line 924 "netconf_parser.cc" 927 #line 258 "netconf_parser.yy" 934 #line 935 "netconf_parser.cc" 938 #line 267 "netconf_parser.yy" 942 #line 943 "netconf_parser.cc" 946 #line 278 "netconf_parser.yy" 950 #line 951 "netconf_parser.cc" 954 #line 296 "netconf_parser.yy" 956 ctx.
unique(
"boot-update", ctx.
loc2pos(yystack_[2].location));
958 ctx.
stack_.back()->set(
"boot-update", flag);
960 #line 961 "netconf_parser.cc" 964 #line 302 "netconf_parser.yy" 966 ctx.
unique(
"subscribe-changes", ctx.
loc2pos(yystack_[2].location));
968 ctx.
stack_.back()->set(
"subscribe-changes", flag);
970 #line 971 "netconf_parser.cc" 974 #line 308 "netconf_parser.yy" 976 ctx.
unique(
"validate-changes", ctx.
loc2pos(yystack_[2].location));
978 ctx.
stack_.back()->set(
"validate-changes", flag);
980 #line 981 "netconf_parser.cc" 984 #line 314 "netconf_parser.yy" 988 #line 989 "netconf_parser.cc" 992 #line 316 "netconf_parser.yy" 1001 if ((old->size() != 1) || !old->contains(
"comment")) {
1002 std::stringstream msg;
1003 msg <<
"duplicate user-context entries (previous at " 1004 << old->getPosition().str() <<
")";
1005 error(yystack_[3].location, msg.str());
1008 user_context->set(
"comment", old->get(
"comment"));
1012 parent->set(
"user-context", user_context);
1015 #line 1016 "netconf_parser.cc" 1019 #line 339 "netconf_parser.yy" 1023 #line 1024 "netconf_parser.cc" 1027 #line 341 "netconf_parser.yy" 1032 user_context->set(
"comment", comment);
1038 if (old->contains(
"comment")) {
1039 std::stringstream msg;
1040 msg <<
"duplicate user-context/comment entries (previous at " 1041 << old->getPosition().str() <<
")";
1042 error(yystack_[3].location, msg.str());
1045 merge(user_context, old);
1049 parent->set(
"user-context", user_context);
1052 #line 1053 "netconf_parser.cc" 1056 #line 367 "netconf_parser.yy" 1058 ctx.
unique(
"hooks-libraries", ctx.
loc2pos(yystack_[0].location));
1060 ctx.
stack_.back()->set(
"hooks-libraries", l);
1064 #line 1065 "netconf_parser.cc" 1068 #line 373 "netconf_parser.yy" 1073 #line 1074 "netconf_parser.cc" 1077 #line 384 "netconf_parser.yy" 1081 #line 1082 "netconf_parser.cc" 1085 #line 389 "netconf_parser.yy" 1088 ctx.
stack_.back()->add(m);
1091 #line 1092 "netconf_parser.cc" 1095 #line 393 "netconf_parser.yy" 1099 #line 1100 "netconf_parser.cc" 1103 #line 399 "netconf_parser.yy" 1107 #line 1108 "netconf_parser.cc" 1111 #line 409 "netconf_parser.yy" 1116 #line 1117 "netconf_parser.cc" 1120 #line 412 "netconf_parser.yy" 1123 ctx.
stack_.back()->set(
"library", lib);
1126 #line 1127 "netconf_parser.cc" 1130 #line 418 "netconf_parser.yy" 1132 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
1135 #line 1136 "netconf_parser.cc" 1139 #line 421 "netconf_parser.yy" 1141 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
1144 #line 1145 "netconf_parser.cc" 1148 #line 429 "netconf_parser.yy" 1150 ctx.
unique(
"managed-servers", ctx.
loc2pos(yystack_[2].location));
1152 ctx.
stack_.back()->set(
"managed-servers", m);
1156 #line 1157 "netconf_parser.cc" 1160 #line 435 "netconf_parser.yy" 1165 #line 1166 "netconf_parser.cc" 1169 #line 446 "netconf_parser.yy" 1173 #line 1174 "netconf_parser.cc" 1177 #line 462 "netconf_parser.yy" 1181 ctx.
stack_.back()->set(
"dhcp4", m);
1185 #line 1186 "netconf_parser.cc" 1189 #line 468 "netconf_parser.yy" 1194 #line 1195 "netconf_parser.cc" 1198 #line 474 "netconf_parser.yy" 1202 ctx.
stack_.back()->set(
"dhcp6", m);
1206 #line 1207 "netconf_parser.cc" 1210 #line 480 "netconf_parser.yy" 1215 #line 1216 "netconf_parser.cc" 1219 #line 486 "netconf_parser.yy" 1223 ctx.
stack_.back()->set(
"d2", m);
1227 #line 1228 "netconf_parser.cc" 1231 #line 492 "netconf_parser.yy" 1236 #line 1237 "netconf_parser.cc" 1240 #line 498 "netconf_parser.yy" 1244 ctx.
stack_.back()->set(
"ca", m);
1248 #line 1249 "netconf_parser.cc" 1252 #line 504 "netconf_parser.yy" 1257 #line 1258 "netconf_parser.cc" 1261 #line 512 "netconf_parser.yy" 1265 #line 1266 "netconf_parser.cc" 1269 #line 529 "netconf_parser.yy" 1274 #line 1275 "netconf_parser.cc" 1278 #line 532 "netconf_parser.yy" 1281 ctx.
stack_.back()->set(
"model", model);
1284 #line 1285 "netconf_parser.cc" 1288 #line 539 "netconf_parser.yy" 1290 ctx.
unique(
"control-socket", ctx.
loc2pos(yystack_[0].location));
1292 ctx.
stack_.back()->set(
"control-socket", m);
1296 #line 1297 "netconf_parser.cc" 1300 #line 545 "netconf_parser.yy" 1305 #line 1306 "netconf_parser.cc" 1309 #line 553 "netconf_parser.yy" 1313 #line 1314 "netconf_parser.cc" 1317 #line 566 "netconf_parser.yy" 1319 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1322 #line 1323 "netconf_parser.cc" 1326 #line 569 "netconf_parser.yy" 1328 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1331 #line 1332 "netconf_parser.cc" 1335 #line 575 "netconf_parser.yy" 1337 #line 1338 "netconf_parser.cc" 1341 #line 576 "netconf_parser.yy" 1343 #line 1344 "netconf_parser.cc" 1347 #line 577 "netconf_parser.yy" 1349 #line 1350 "netconf_parser.cc" 1353 #line 580 "netconf_parser.yy" 1355 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1358 #line 1359 "netconf_parser.cc" 1362 #line 583 "netconf_parser.yy" 1365 ctx.
stack_.back()->set(
"socket-name", name);
1368 #line 1369 "netconf_parser.cc" 1372 #line 590 "netconf_parser.yy" 1374 ctx.
unique(
"socket-url", ctx.
loc2pos(yystack_[0].location));
1377 #line 1378 "netconf_parser.cc" 1381 #line 593 "netconf_parser.yy" 1384 ctx.
stack_.back()->set(
"socket-url", url);
1387 #line 1388 "netconf_parser.cc" 1391 #line 603 "netconf_parser.yy" 1395 ctx.
stack_.back()->set(
"loggers", l);
1399 #line 1400 "netconf_parser.cc" 1403 #line 609 "netconf_parser.yy" 1408 #line 1409 "netconf_parser.cc" 1412 #line 618 "netconf_parser.yy" 1416 #line 1417 "netconf_parser.cc" 1420 #line 624 "netconf_parser.yy" 1423 ctx.
stack_.back()->add(l);
1426 #line 1427 "netconf_parser.cc" 1430 #line 628 "netconf_parser.yy" 1434 #line 1435 "netconf_parser.cc" 1438 #line 634 "netconf_parser.yy" 1442 #line 1443 "netconf_parser.cc" 1446 #line 648 "netconf_parser.yy" 1451 #line 1452 "netconf_parser.cc" 1455 #line 651 "netconf_parser.yy" 1458 ctx.
stack_.back()->set(
"name", name);
1461 #line 1462 "netconf_parser.cc" 1465 #line 657 "netconf_parser.yy" 1467 ctx.
unique(
"debuglevel", ctx.
loc2pos(yystack_[2].location));
1469 ctx.
stack_.back()->set(
"debuglevel", dl);
1471 #line 1472 "netconf_parser.cc" 1475 #line 663 "netconf_parser.yy" 1480 #line 1481 "netconf_parser.cc" 1484 #line 666 "netconf_parser.yy" 1487 ctx.
stack_.back()->set(
"severity", sev);
1490 #line 1491 "netconf_parser.cc" 1494 #line 672 "netconf_parser.yy" 1496 ctx.
unique(
"output_options", ctx.
loc2pos(yystack_[0].location));
1498 ctx.
stack_.back()->set(
"output_options", l);
1502 #line 1503 "netconf_parser.cc" 1506 #line 678 "netconf_parser.yy" 1511 #line 1512 "netconf_parser.cc" 1515 #line 685 "netconf_parser.yy" 1519 #line 1520 "netconf_parser.cc" 1523 #line 690 "netconf_parser.yy" 1526 ctx.
stack_.back()->add(m);
1529 #line 1530 "netconf_parser.cc" 1533 #line 694 "netconf_parser.yy" 1537 #line 1538 "netconf_parser.cc" 1541 #line 700 "netconf_parser.yy" 1545 #line 1546 "netconf_parser.cc" 1549 #line 712 "netconf_parser.yy" 1554 #line 1555 "netconf_parser.cc" 1558 #line 715 "netconf_parser.yy" 1561 ctx.
stack_.back()->set(
"output", sev);
1564 #line 1565 "netconf_parser.cc" 1568 #line 721 "netconf_parser.yy" 1572 ctx.
stack_.back()->set(
"flush", flush);
1574 #line 1575 "netconf_parser.cc" 1578 #line 727 "netconf_parser.yy" 1582 ctx.
stack_.back()->set(
"maxsize", maxsize);
1584 #line 1585 "netconf_parser.cc" 1588 #line 733 "netconf_parser.yy" 1592 ctx.
stack_.back()->set(
"maxver", maxver);
1594 #line 1595 "netconf_parser.cc" 1598 #line 739 "netconf_parser.yy" 1603 #line 1604 "netconf_parser.cc" 1607 #line 742 "netconf_parser.yy" 1610 ctx.
stack_.back()->set(
"pattern", sev);
1613 #line 1614 "netconf_parser.cc" 1617 #line 1618 "netconf_parser.cc" 1626 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
1630 #endif // YY_EXCEPTIONS 1636 yypush_ (YY_NULLPTR,
YY_MOVE (yylhs));
1650 std::string msg = yysyntax_error_ (yyctx);
1655 yyerror_range[1].location = yyla.
location;
1656 if (yyerrstatus_ == 3)
1664 else if (!yyla.
empty ())
1666 yy_destroy_ (
"Error: discarding", yyla);
1700 yyn = yypact_[+yystack_[0].state];
1701 if (!yy_pact_value_is_default_ (yyn))
1704 if (0 <= yyn && yyn <= yylast_
1707 yyn = yytable_[yyn];
1714 if (yystack_.size () == 1)
1717 yyerror_range[1].location = yystack_[0].location;
1718 yy_destroy_ (
"Error: popping", yystack_[0]);
1723 stack_symbol_type error_token;
1725 yyerror_range[2].location = yyla.
location;
1729 error_token.state = state_type (yyn);
1730 yypush_ (
"Shifting",
YY_MOVE (error_token));
1756 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1762 while (1 < yystack_.size ())
1764 yy_destroy_ (
"Cleanup: popping", yystack_[0]);
1773 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack\n";
1777 yy_destroy_ (YY_NULLPTR, yyla);
1779 while (1 < yystack_.size ())
1781 yy_destroy_ (YY_NULLPTR, yystack_[0]);
1786 #endif // YY_EXCEPTIONS 1801 NetconfParser::yytnamerr_ (
const char *yystr)
1806 char const *yyp = yystr;
1813 goto do_not_strip_quotes;
1817 goto do_not_strip_quotes;
1829 do_not_strip_quotes: ;
1838 return yytnamerr_ (yytname_[yysymbol]);
1845 : yyparser_ (yyparser)
1855 const int yyn = yypact_[+yyparser_.yystack_[0].state];
1856 if (!yy_pact_value_is_default_ (yyn))
1861 const int yyxbegin = yyn < 0 ? -yyn : 0;
1863 const int yychecklim = yylast_ - yyn + 1;
1865 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1867 && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
1871 else if (yycount == yyargn)
1878 if (yyarg && yycount == 0 && 0 < yyargn)
1889 NetconfParser::yy_syntax_error_arguments_ (
const context& yyctx,
1920 yyarg[0] = yyctx.
token ();
1921 int yyn = yyctx.
expected_tokens (yyarg ? yyarg + 1 : yyarg, yyargn - 1);
1929 NetconfParser::yysyntax_error_ (
const context& yyctx)
const 1932 enum { YYARGS_MAX = 5 };
1935 int yycount = yy_syntax_error_arguments_ (yyctx, yyarg, YYARGS_MAX);
1937 char const* yyformat = YY_NULLPTR;
1940 #define YYCASE_(N, S) \ 1946 YYCASE_ (1,
YY_(
"syntax error, unexpected %s"));
1947 YYCASE_ (2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1948 YYCASE_ (3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1949 YYCASE_ (4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1950 YYCASE_ (5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1956 std::ptrdiff_t yyi = 0;
1957 for (
char const* yyp = yyformat; *yyp; ++yyp)
1958 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
1969 const signed char NetconfParser::yypact_ninf_ = -79;
1971 const signed char NetconfParser::yytable_ninf_ = -1;
1974 NetconfParser::yypact_[] =
1976 -8, -79, -79, -79, 16, 14, 13, 15, -79, -79,
1977 -79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
1978 -79, -79, -79, -79, 14, 2, 45, -1, -79, 61,
1979 68, 75, 73, 79, -79, 30, -79, -79, -79, 89,
1980 90, 123, 124, -79, -79, 125, -79, 108, 94, -79,
1981 -79, -79, -79, -79, -79, -79, -79, -79, -79, 14,
1982 14, -79, 85, 127, -79, -79, 128, 129, 86, 87,
1983 88, 130, 134, 135, -79, -79, -1, -79, -79, 136,
1984 140, 141, 96, -79, -79, -79, -79, 137, 138, -79,
1985 14, -1, -79, -79, -79, 7, 142, 143, -79, 144,
1986 -79, -79, -79, -79, -79, 145, 148, -79, -79, -79,
1987 -79, -79, -79, 149, 151, -79, -79, 50, -79, -79,
1988 152, 153, 154, 155, -79, 7, -13, -79, 142, 76,
1989 143, -79, 156, 157, 158, 159, -79, -79, -79, -79,
1990 34, -79, -79, -79, -79, -79, -79, 163, -79, -79,
1991 -79, -79, 40, -79, -79, -79, -79, -79, -79, 63,
1992 63, 63, 63, 164, 165, -24, -79, 166, 167, 116,
1993 168, 76, -79, -79, -79, -79, -79, -79, -79, -79,
1994 -79, 92, -79, -79, -79, 93, 111, 112, 131, 141,
1995 -79, 132, 169, -79, 133, -79, 171, 175, 63, -79,
1996 -79, -79, -79, -79, -79, -79, 173, -79, 139, 174,
1997 -79, -79, 77, -79, -79, 18, 51, 173, -79, -79,
1998 -79, -79, -79, -79, -79, 114, -79, -79, -79, -79,
1999 -79, 178, 179, 181, -79, 115, -79, -79, -79, -79,
2000 -79, -79, -79, 182, 183, 187, 18, -79, 188, 113,
2001 147, 150, 190, 51, -79, 81, 160, 161, -79, 162,
2002 -79, -79, -79, 170, -79, -79, -79, -79, -79, -79,
2007 NetconfParser::yydefact_[] =
2009 0, 2, 4, 6, 0, 0, 0, 0, 1, 26,
2010 18, 15, 14, 11, 12, 13, 3, 10, 16, 17,
2011 34, 5, 8, 7, 28, 21, 0, 40, 30, 0,
2012 29, 0, 0, 22, 36, 0, 38, 57, 59, 0,
2013 0, 0, 0, 61, 133, 0, 53, 0, 41, 42,
2014 45, 46, 47, 51, 52, 49, 48, 50, 27, 32,
2015 0, 19, 25, 0, 39, 35, 0, 0, 0, 0,
2016 0, 0, 0, 0, 33, 9, 44, 31, 23, 0,
2017 0, 0, 0, 54, 55, 56, 80, 0, 0, 43,
2018 0, 40, 20, 58, 60, 82, 63, 0, 24, 0,
2019 92, 94, 96, 98, 91, 0, 83, 84, 87, 88,
2020 89, 90, 68, 0, 64, 65, 138, 0, 135, 37,
2021 0, 0, 0, 0, 81, 86, 0, 62, 67, 0,
2022 137, 134, 0, 0, 0, 0, 85, 76, 78, 73,
2023 0, 70, 74, 75, 66, 150, 155, 0, 153, 149,
2024 147, 148, 0, 140, 143, 145, 146, 144, 136, 0,
2025 0, 0, 0, 0, 0, 72, 69, 0, 0, 0,
2026 0, 142, 139, 111, 113, 110, 104, 105, 106, 108,
2027 109, 0, 100, 103, 107, 0, 0, 0, 0, 0,
2028 71, 0, 0, 152, 0, 141, 0, 0, 102, 93,
2029 95, 97, 99, 77, 79, 151, 0, 154, 0, 0,
2030 101, 160, 0, 157, 112, 0, 0, 159, 156, 124,
2031 129, 131, 123, 121, 122, 0, 115, 118, 119, 120,
2032 170, 0, 0, 0, 175, 0, 162, 165, 166, 167,
2033 168, 169, 158, 0, 0, 0, 117, 114, 0, 0,
2034 0, 0, 0, 164, 161, 0, 0, 0, 116, 0,
2035 172, 173, 174, 0, 163, 126, 127, 128, 125, 130,
2040 NetconfParser::yypgoto_[] =
2042 -79, -79, -79, -79, -79, -79, -79, -79, -20, -78,
2043 -79, -29, -79, -79, -79, -79, -79, -79, -27, -79,
2044 -79, -79, -79, -79, 82, -79, 119, -22, -19, -18,
2045 -26, -79, -25, -79, -79, -79, -79, -79, 69, -79,
2046 -79, 33, -79, -79, -79, -79, -79, -79, -79, -79,
2047 74, -79, -79, -79, -79, -79, -79, -79, -79, -36,
2048 3, -79, -79, -79, -79, -79, -46, -79, -79, -79,
2049 -79, -79, -79, -79, -79, -79, -79, 72, -79, -79,
2050 32, -79, -79, -79, -79, -79, -79, -79, -79, -9,
2051 -79, -79, -49, -79, -79, -79, -79, -79, -79, -79
2055 NetconfParser::yydefgoto_[] =
2057 0, 4, 5, 6, 7, 23, 27, 16, 17, 18,
2058 25, 93, 32, 33, 19, 24, 29, 30, 175, 21,
2059 26, 35, 63, 36, 47, 48, 49, 176, 177, 178,
2060 179, 66, 180, 67, 55, 72, 113, 114, 115, 126,
2061 140, 141, 142, 163, 143, 164, 56, 95, 105, 106,
2062 107, 108, 120, 109, 121, 110, 122, 111, 123, 181,
2063 182, 183, 196, 184, 197, 225, 226, 227, 243, 268,
2064 228, 244, 229, 245, 57, 73, 117, 118, 129, 152,
2065 153, 154, 167, 155, 156, 170, 157, 168, 212, 213,
2066 216, 235, 236, 237, 248, 238, 239, 240, 241, 252
2070 NetconfParser::yytable_[] =
2072 46, 53, 54, 92, 28, 50, 137, 138, 51, 52,
2073 37, 38, 39, 40, 41, 42, 8, 137, 138, 9,
2074 20, 10, 22, 11, 100, 101, 102, 103, 43, 37,
2075 38, 44, 45, 64, 1, 2, 3, 165, 65, 77,
2076 78, 219, 166, 171, 45, 220, 221, 31, 172, 46,
2077 53, 54, 45, 130, 50, 34, 131, 51, 52, 12,
2078 13, 14, 15, 45, 46, 53, 54, 58, 104, 50,
2079 98, 59, 51, 52, 37, 38, 39, 40, 41, 60,
2080 217, 61, 62, 218, 173, 174, 230, 37, 38, 231,
2081 232, 233, 234, 68, 69, 198, 198, 76, 104, 139,
2082 199, 200, 149, 150, 151, 265, 266, 267, 45, 145,
2083 146, 92, 147, 148, 198, 198, 75, 246, 253, 201,
2084 202, 45, 247, 254, 185, 186, 187, 70, 71, 74,
2085 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2086 90, 94, 96, 97, 149, 150, 151, 91, 10, 112,
2087 116, 125, 119, 124, 128, 127, 132, 133, 134, 135,
2088 204, 260, 193, 159, 160, 161, 162, 169, 188, 189,
2089 191, 192, 194, 99, 206, 208, 203, 205, 207, 209,
2090 211, 215, 249, 250, 214, 251, 255, 256, 222, 223,
2091 224, 257, 259, 261, 263, 89, 262, 144, 190, 136,
2092 258, 210, 158, 195, 264, 269, 270, 271, 242, 0,
2093 0, 0, 0, 0, 0, 272, 0, 0, 0, 222,
2098 NetconfParser::yycheck_[] =
2100 27, 27, 27, 81, 24, 27, 30, 31, 27, 27,
2101 11, 12, 13, 14, 15, 16, 0, 30, 31, 5,
2102 7, 7, 7, 9, 17, 18, 19, 20, 29, 11,
2103 12, 32, 45, 3, 42, 43, 44, 3, 8, 59,
2104 60, 23, 8, 3, 45, 27, 28, 45, 8, 76,
2105 76, 76, 45, 3, 76, 10, 6, 76, 76, 45,
2106 46, 47, 48, 45, 91, 91, 91, 6, 95, 91,
2107 90, 3, 91, 91, 11, 12, 13, 14, 15, 4,
2108 3, 8, 3, 6, 21, 22, 35, 11, 12, 38,
2109 39, 40, 41, 4, 4, 3, 3, 3, 125, 126,
2110 8, 8, 129, 129, 129, 24, 25, 26, 45, 33,
2111 34, 189, 36, 37, 3, 3, 8, 3, 3, 8,
2112 8, 45, 8, 8, 160, 161, 162, 4, 4, 4,
2113 45, 4, 4, 4, 48, 48, 48, 7, 4, 4,
2114 4, 45, 5, 5, 171, 171, 171, 7, 7, 7,
2115 7, 3, 8, 8, 3, 6, 4, 4, 4, 4,
2116 189, 48, 46, 7, 7, 7, 7, 4, 4, 4,
2117 4, 4, 4, 91, 5, 4, 45, 45, 45, 4,
2118 7, 7, 4, 4, 45, 4, 4, 4, 215, 215,
2119 215, 4, 4, 46, 4, 76, 46, 128, 165, 125,
2120 246, 198, 130, 171, 253, 45, 45, 45, 217, -1,
2121 -1, -1, -1, -1, -1, 45, -1, -1, -1, 246,
2126 NetconfParser::yystos_[] =
2128 0, 42, 43, 44, 50, 51, 52, 53, 0, 5,
2129 7, 9, 45, 46, 47, 48, 56, 57, 58, 63,
2130 7, 68, 7, 54, 64, 59, 69, 55, 57, 65,
2131 66, 45, 61, 62, 10, 70, 72, 11, 12, 13,
2132 14, 15, 16, 29, 32, 45, 67, 73, 74, 75,
2133 76, 77, 78, 79, 81, 83, 95, 123, 6, 3,
2134 4, 8, 3, 71, 3, 8, 80, 82, 4, 4,
2135 4, 4, 84, 124, 4, 8, 3, 57, 57, 45,
2136 4, 4, 4, 48, 48, 48, 7, 4, 4, 75,
2137 4, 7, 58, 60, 45, 96, 5, 5, 57, 73,
2138 17, 18, 19, 20, 67, 97, 98, 99, 100, 102,
2139 104, 106, 7, 85, 86, 87, 7, 125, 126, 8,
2140 101, 103, 105, 107, 8, 3, 88, 6, 3, 127,
2141 3, 6, 4, 4, 4, 4, 99, 30, 31, 67,
2142 89, 90, 91, 93, 87, 33, 34, 36, 37, 67,
2143 79, 81, 128, 129, 130, 132, 133, 135, 126, 7,
2144 7, 7, 7, 92, 94, 3, 8, 131, 136, 4,
2145 134, 3, 8, 21, 22, 67, 76, 77, 78, 79,
2146 81, 108, 109, 110, 112, 108, 108, 108, 4, 4,
2147 90, 4, 4, 46, 4, 129, 111, 113, 3, 8,
2148 8, 8, 8, 45, 60, 45, 5, 45, 4, 4,
2149 109, 7, 137, 138, 45, 7, 139, 3, 6, 23,
2150 27, 28, 67, 79, 81, 114, 115, 116, 119, 121,
2151 35, 38, 39, 40, 41, 140, 141, 142, 144, 145,
2152 146, 147, 138, 117, 120, 122, 3, 8, 143, 4,
2153 4, 4, 148, 3, 8, 4, 4, 4, 115, 4,
2154 48, 46, 46, 4, 141, 24, 25, 26, 118, 45,
2159 NetconfParser::yyr1_[] =
2161 0, 49, 51, 50, 52, 50, 53, 50, 55, 54,
2162 56, 57, 57, 57, 57, 57, 57, 57, 59, 58,
2163 60, 61, 61, 62, 62, 62, 64, 63, 65, 65,
2164 66, 66, 66, 67, 69, 68, 71, 70, 70, 72,
2165 73, 73, 74, 74, 74, 75, 75, 75, 75, 75,
2166 75, 75, 75, 75, 76, 77, 78, 80, 79, 82,
2167 81, 84, 83, 85, 85, 86, 86, 86, 88, 87,
2168 89, 89, 89, 89, 90, 90, 92, 91, 94, 93,
2169 96, 95, 97, 97, 98, 98, 98, 99, 99, 99,
2170 99, 99, 101, 100, 103, 102, 105, 104, 107, 106,
2171 108, 108, 108, 109, 109, 109, 109, 109, 109, 109,
2172 109, 111, 110, 113, 112, 114, 114, 114, 115, 115,
2173 115, 115, 115, 115, 117, 116, 118, 118, 118, 120,
2174 119, 122, 121, 124, 123, 125, 125, 125, 127, 126,
2175 128, 128, 128, 129, 129, 129, 129, 129, 129, 129,
2176 131, 130, 132, 134, 133, 136, 135, 137, 137, 137,
2177 139, 138, 140, 140, 140, 141, 141, 141, 141, 141,
2178 143, 142, 144, 145, 146, 148, 147
2182 NetconfParser::yyr2_[] =
2184 0, 2, 0, 3, 0, 3, 0, 3, 0, 4,
2185 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
2186 1, 0, 1, 3, 5, 2, 0, 4, 0, 1,
2187 1, 3, 2, 2, 0, 4, 0, 6, 1, 2,
2188 0, 1, 1, 3, 2, 1, 1, 1, 1, 1,
2189 1, 1, 1, 1, 3, 3, 3, 0, 4, 0,
2190 4, 0, 6, 0, 1, 1, 3, 2, 0, 4,
2191 1, 3, 2, 1, 1, 1, 0, 4, 0, 4,
2192 0, 6, 0, 1, 1, 3, 2, 1, 1, 1,
2193 1, 1, 0, 6, 0, 6, 0, 6, 0, 6,
2194 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
2195 1, 0, 4, 0, 6, 1, 3, 2, 1, 1,
2196 1, 1, 1, 1, 0, 4, 1, 1, 1, 0,
2197 4, 0, 4, 0, 6, 1, 3, 2, 0, 4,
2198 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
2199 0, 4, 3, 0, 4, 0, 6, 1, 3, 2,
2200 0, 4, 1, 3, 2, 1, 1, 1, 1, 1,
2205 #if NETCONF_DEBUG || 1 2209 const NetconfParser::yytname_[] =
2211 "\"end of file\"",
"error",
"\"invalid token\"",
"\",\"",
"\":\"",
2212 "\"[\"",
"\"]\"",
"\"{\"",
"\"}\"",
"\"null\"",
"\"Netconf\"",
2213 "\"user-context\"",
"\"comment\"",
"\"boot-update\"",
2214 "\"subscribe-changes\"",
"\"validate-changes\"",
"\"managed-servers\"",
2215 "\"dhcp4\"",
"\"dhcp6\"",
"\"d2\"",
"\"ca\"",
"\"model\"",
2216 "\"control-socket\"",
"\"socket-type\"",
"\"unix\"",
"\"http\"",
2217 "\"stdout\"",
"\"socket-name\"",
"\"socket-url\"",
"\"hooks-libraries\"",
2218 "\"library\"",
"\"parameters\"",
"\"loggers\"",
"\"name\"",
2219 "\"output_options\"",
"\"output\"",
"\"debuglevel\"",
"\"severity\"",
2220 "\"flush\"",
"\"maxsize\"",
"\"maxver\"",
"\"pattern\"",
"START_JSON",
2221 "START_NETCONF",
"START_SUB_NETCONF",
"\"constant string\"",
2222 "\"integer\"",
"\"floating point\"",
"\"boolean\"",
"$accept",
"start",
2223 "$@1",
"$@2",
"$@3",
"sub_netconf",
"$@4",
"json",
"value",
"map",
"$@5",
2224 "map_value",
"map_content",
"not_empty_map",
"list_generic",
"$@6",
2225 "list_content",
"not_empty_list",
"unknown_map_entry",
2226 "netconf_syntax_map",
"$@7",
"global_object",
"$@8",
2227 "global_object_comma",
"global_params",
"not_empty_global_params",
2228 "global_param",
"boot_update",
"subscribe_changes",
"validate_changes",
2229 "user_context",
"$@9",
"comment",
"$@10",
"hooks_libraries",
"$@11",
2230 "hooks_libraries_list",
"not_empty_hooks_libraries_list",
2231 "hooks_library",
"$@12",
"hooks_params",
"hooks_param",
"library",
2232 "$@13",
"parameters",
"$@14",
"managed_servers",
"$@15",
2233 "servers_entries",
"not_empty_servers_entries",
"server_entry",
2234 "dhcp4_server",
"$@16",
"dhcp6_server",
"$@17",
"d2_server",
"$@18",
2235 "ca_server",
"$@19",
"managed_server_params",
"managed_server_param",
2236 "model",
"$@20",
"control_socket",
"$@21",
"control_socket_params",
2237 "control_socket_param",
"socket_type",
"$@22",
"socket_type_value",
2238 "socket_name",
"$@23",
"socket_url",
"$@24",
"loggers",
"$@25",
2239 "loggers_entries",
"logger_entry",
"$@26",
"logger_params",
2240 "logger_param",
"name",
"$@27",
"debuglevel",
"severity",
"$@28",
2241 "output_options_list",
"$@29",
"output_options_list_content",
2242 "output_entry",
"$@30",
"output_params_list",
"output_params",
"output",
2243 "$@31",
"flush",
"maxsize",
"maxver",
"pattern",
"$@32", YY_NULLPTR
2250 NetconfParser::yyrline_[] =
2252 0, 118, 118, 118, 119, 119, 120, 120, 128, 128,
2253 139, 145, 146, 147, 148, 149, 150, 151, 155, 155,
2254 166, 171, 172, 180, 185, 191, 196, 196, 202, 203,
2255 206, 210, 214, 226, 234, 234, 246, 246, 264, 267,
2256 272, 273, 276, 277, 278, 285, 286, 287, 288, 289,
2257 290, 291, 292, 293, 296, 302, 308, 314, 314, 339,
2258 339, 367, 367, 378, 379, 382, 383, 384, 389, 389,
2259 397, 398, 399, 402, 405, 406, 409, 409, 418, 418,
2260 429, 429, 440, 441, 444, 445, 446, 454, 455, 456,
2261 457, 458, 462, 462, 474, 474, 486, 486, 498, 498,
2262 510, 511, 512, 518, 519, 520, 521, 522, 523, 524,
2263 525, 529, 529, 539, 539, 551, 552, 553, 558, 559,
2264 560, 561, 562, 563, 566, 566, 575, 576, 577, 580,
2265 580, 590, 590, 603, 603, 616, 617, 618, 624, 624,
2266 632, 633, 634, 639, 640, 641, 642, 643, 644, 645,
2267 648, 648, 657, 663, 663, 672, 672, 683, 684, 685,
2268 690, 690, 698, 699, 700, 705, 706, 707, 708, 709,
2269 712, 712, 721, 727, 733, 739, 739
2273 NetconfParser::yy_stack_print_ ()
const 2275 *yycdebug_ <<
"Stack now";
2276 for (stack_type::const_iterator
2277 i = yystack_.begin (),
2278 i_end = yystack_.end ();
2280 *yycdebug_ <<
' ' <<
int (i->state);
2285 NetconfParser::yy_reduce_print_ (
int yyrule)
const 2287 int yylno = yyrline_[yyrule];
2288 int yynrhs = yyr2_[yyrule];
2290 *yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
2291 <<
" (line " << yylno <<
"):\n";
2293 for (
int yyi = 0; yyi < yynrhs; yyi++)
2295 yystack_[(yynrhs) - (yyi + 1)]);
2297 #endif // NETCONF_DEBUG 2300 #line 14 "netconf_parser.yy" 2302 #line 2303 "netconf_parser.cc" 2304 #line 748 "netconf_parser.yy" 2309 const std::string& what)
2311 ctx.error(loc, what);
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
value_type value
The semantic value.
Used while parsing Netconf/loggers/output_options structures.
Used while parsing Netconf/managed-servers/*/control-socket/socket-type.
location location_type
Symbol locations.
#define YY_CAST(Type, Val)
symbol_kind_type kind_
The symbol kind.
#define YY_SYMBOL_PRINT(Title, Symbol)
NetconfParser(isc::netconf::ParserContext &ctx_yyarg)
Build a parser object.
bool empty() const YY_NOEXCEPT
Whether empty.
symbol_kind_type kind() const YY_NOEXCEPT
The (internal) type number (corresponding to type).
void leave()
Leave a syntactic context.
#define YY_MOVE_REF(Type)
boost::shared_ptr< Element > ElementPtr
LexerContext ctx_
Current syntactic context.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
location_type location
The location.
#define YY_REDUCE_PRINT(Rule)
void set_debug_stream(std::ostream &)
Set the current debugging stream.
void set_debug_level(debug_level_type l)
Set the current debugging level.
virtual int parse()
Parse.
static const symbol_kind_type YYNTOKENS
The number of tokens.
Notes: IntElement type is changed to int64_t.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
boost::shared_ptr< const Element > ConstElementPtr
"External" symbols: returned by the scanner.
static std::string symbol_name(symbol_kind_type yysymbol)
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
void warnAboutExtraCommas(const isc::netconf::location &loc)
Warning for extra commas.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
Used while parsing Netconf/hooks-libraries.
isc::data::Element::Position loc2pos(isc::netconf::location &loc)
Converts bison's position to one understandable by isc::data::Element.
#define YYLLOC_DEFAULT(Current, Rhs, N)
Used while parsing Netconf/loggers structures.
Used while parsing Netconf/manages-servers/*/control-socket.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
Defines the logger used by the top-level component of kea-lfc.
Used while parsing content of Netconf.
This one is used in pure JSON mode.
Define the isc::netconf::parser class.
void merge(ElementPtr element, ConstElementPtr other)
Merges the data from other into element.
void unique(const std::string &name, isc::data::Element::Position loc)
Check if a parameter is already present.
Parser context is a wrapper around flex/bison instances dedicated to Netconf-agent config file parser...
const symbol_type & lookahead() const YY_NOEXCEPT
int debug_level_type
Type for debugging levels.
void enter(const LexerContext &ctx)
Enter a new syntactic context.
symbol_kind_type token() const YY_NOEXCEPT
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
~syntax_error() YY_NOEXCEPT YY_NOTHROW
Syntax errors thrown from user actions.
Used while parsing Netconf/managed-servers.
context(const NetconfParser &yyparser, const symbol_type &yyla)
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...
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
const std::string contextName()
Get the syntactic context name.