39 #define yylex netconf_lex
47 #line 36 "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_ (); \
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 "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<
string > (
YY_MOVE (that.value));
238 #if 201103L <= YY_CPLUSPLUS
240 that.state = empty_state;
244 NetconfParser::stack_symbol_type::stack_symbol_type (state_type s,
YY_MOVE_REF (symbol_type) that)
245 : super_type (s,
YY_MOVE (that.location))
247 switch (that.kind ())
256 value.move<
bool > (
YY_MOVE (that.value));
260 value.move<
double > (
YY_MOVE (that.value));
264 value.move< int64_t > (
YY_MOVE (that.value));
268 value.move<
string > (
YY_MOVE (that.value));
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<
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<
string > (that.value);
348 location = that.location;
350 that.state = empty_state;
355 template <
typename Base>
357 NetconfParser::yy_destroy_ (
const char* yymsg, basic_symbol<Base>& yysym)
const
364 template <
typename Base>
366 NetconfParser::yy_print_ (std::ostream& yyo,
const basic_symbol<Base>& yysym)
const
368 std::ostream& yyoutput = yyo;
371 yyo <<
"empty symbol";
375 yyo << (yykind <
YYNTOKENS ?
"token" :
"nterm")
376 <<
' ' << yysym.name () <<
" ("
377 << yysym.location <<
": ";
381 #line 110 "netconf_parser.yy"
382 { yyoutput << yysym.value.template as < string > (); }
383 #line 384 "netconf_parser.cc"
387 #line 110 "netconf_parser.yy"
388 { yyoutput << yysym.value.template as < int64_t > (); }
389 #line 390 "netconf_parser.cc"
393 #line 110 "netconf_parser.yy"
394 { yyoutput << yysym.value.template as < double > (); }
395 #line 396 "netconf_parser.cc"
399 #line 110 "netconf_parser.yy"
400 { yyoutput << yysym.value.template as < bool > (); }
401 #line 402 "netconf_parser.cc"
405 #line 110 "netconf_parser.yy"
406 { yyoutput << yysym.value.template as < ElementPtr > (); }
407 #line 408 "netconf_parser.cc"
411 #line 110 "netconf_parser.yy"
412 { yyoutput << yysym.value.template as < ElementPtr > (); }
413 #line 414 "netconf_parser.cc"
417 #line 110 "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)
439 NetconfParser::yypush_ (
const char* m, state_type s,
YY_MOVE_REF (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);
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];
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))
576 yyla.
move (yylookahead);
581 YYCDEBUG <<
"Caught exception: " << yyexc.what() <<
'\n';
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<
string > ();
680 yyerror_range[1].location = yylhs.location;
692 #line 121 "netconf_parser.yy"
694 #line 695 "netconf_parser.cc"
698 #line 122 "netconf_parser.yy"
700 #line 701 "netconf_parser.cc"
704 #line 123 "netconf_parser.yy"
706 #line 707 "netconf_parser.cc"
710 #line 131 "netconf_parser.yy"
716 #line 717 "netconf_parser.cc"
720 #line 135 "netconf_parser.yy"
724 #line 725 "netconf_parser.cc"
728 #line 142 "netconf_parser.yy"
733 #line 734 "netconf_parser.cc"
737 #line 148 "netconf_parser.yy"
739 #line 740 "netconf_parser.cc"
743 #line 149 "netconf_parser.yy"
745 #line 746 "netconf_parser.cc"
749 #line 150 "netconf_parser.yy"
751 #line 752 "netconf_parser.cc"
755 #line 151 "netconf_parser.yy"
757 #line 758 "netconf_parser.cc"
761 #line 152 "netconf_parser.yy"
763 #line 764 "netconf_parser.cc"
767 #line 153 "netconf_parser.yy"
769 #line 770 "netconf_parser.cc"
773 #line 154 "netconf_parser.yy"
775 #line 776 "netconf_parser.cc"
779 #line 158 "netconf_parser.yy"
786 #line 787 "netconf_parser.cc"
790 #line 163 "netconf_parser.yy"
796 #line 797 "netconf_parser.cc"
800 #line 169 "netconf_parser.yy"
802 #line 803 "netconf_parser.cc"
806 #line 183 "netconf_parser.yy"
809 ctx.
unique(yystack_[2].value.as <
string > (), ctx.
loc2pos(yystack_[2].location));
810 ctx.
stack_.back()->set(yystack_[2].value.as <
string > (), yystack_[0].value.as <
ElementPtr > ());
812 #line 813 "netconf_parser.cc"
816 #line 188 "netconf_parser.yy"
820 ctx.
unique(yystack_[2].value.as <
string > (), ctx.
loc2pos(yystack_[2].location));
821 ctx.
stack_.back()->set(yystack_[2].value.as <
string > (), yystack_[0].value.as <
ElementPtr > ());
823 #line 824 "netconf_parser.cc"
827 #line 194 "netconf_parser.yy"
831 #line 832 "netconf_parser.cc"
835 #line 199 "netconf_parser.yy"
840 #line 841 "netconf_parser.cc"
844 #line 202 "netconf_parser.yy"
847 #line 848 "netconf_parser.cc"
851 #line 209 "netconf_parser.yy"
856 #line 857 "netconf_parser.cc"
860 #line 213 "netconf_parser.yy"
865 #line 866 "netconf_parser.cc"
869 #line 217 "netconf_parser.yy"
873 #line 874 "netconf_parser.cc"
877 #line 229 "netconf_parser.yy"
880 const string& keyword = yystack_[1].value.as <
string > ();
881 error(yystack_[1].location,
882 "got unexpected keyword \"" + keyword +
"\" in " + where +
" map.");
884 #line 885 "netconf_parser.cc"
888 #line 237 "netconf_parser.yy"
895 #line 896 "netconf_parser.cc"
899 #line 242 "netconf_parser.yy"
905 #line 906 "netconf_parser.cc"
909 #line 249 "netconf_parser.yy"
919 ctx.
stack_.back()->set(
"Netconf", m);
923 #line 924 "netconf_parser.cc"
927 #line 261 "netconf_parser.yy"
934 #line 935 "netconf_parser.cc"
938 #line 270 "netconf_parser.yy"
942 #line 943 "netconf_parser.cc"
946 #line 281 "netconf_parser.yy"
950 #line 951 "netconf_parser.cc"
954 #line 299 "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 305 "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 311 "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 317 "netconf_parser.yy"
988 #line 989 "netconf_parser.cc"
992 #line 319 "netconf_parser.yy"
1001 if ((old->size() != 1) || !old->contains(
"comment")) {
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 342 "netconf_parser.yy"
1023 #line 1024 "netconf_parser.cc"
1027 #line 344 "netconf_parser.yy"
1032 user_context->set(
"comment", comment);
1038 if (old->contains(
"comment")) {
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 370 "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 376 "netconf_parser.yy"
1073 #line 1074 "netconf_parser.cc"
1077 #line 387 "netconf_parser.yy"
1081 #line 1082 "netconf_parser.cc"
1085 #line 392 "netconf_parser.yy"
1088 ctx.
stack_.back()->add(m);
1091 #line 1092 "netconf_parser.cc"
1095 #line 396 "netconf_parser.yy"
1099 #line 1100 "netconf_parser.cc"
1103 #line 402 "netconf_parser.yy"
1107 #line 1108 "netconf_parser.cc"
1111 #line 412 "netconf_parser.yy"
1116 #line 1117 "netconf_parser.cc"
1120 #line 415 "netconf_parser.yy"
1123 ctx.
stack_.back()->set(
"library", lib);
1126 #line 1127 "netconf_parser.cc"
1130 #line 421 "netconf_parser.yy"
1132 ctx.
unique(
"parameters", ctx.
loc2pos(yystack_[0].location));
1135 #line 1136 "netconf_parser.cc"
1139 #line 424 "netconf_parser.yy"
1141 ctx.
stack_.back()->set(
"parameters", yystack_[0].value.as <
ElementPtr > ());
1144 #line 1145 "netconf_parser.cc"
1148 #line 432 "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 438 "netconf_parser.yy"
1165 #line 1166 "netconf_parser.cc"
1169 #line 449 "netconf_parser.yy"
1173 #line 1174 "netconf_parser.cc"
1177 #line 465 "netconf_parser.yy"
1181 ctx.
stack_.back()->set(
"dhcp4", m);
1185 #line 1186 "netconf_parser.cc"
1189 #line 471 "netconf_parser.yy"
1194 #line 1195 "netconf_parser.cc"
1198 #line 477 "netconf_parser.yy"
1202 ctx.
stack_.back()->set(
"dhcp6", m);
1206 #line 1207 "netconf_parser.cc"
1210 #line 483 "netconf_parser.yy"
1215 #line 1216 "netconf_parser.cc"
1219 #line 489 "netconf_parser.yy"
1223 ctx.
stack_.back()->set(
"d2", m);
1227 #line 1228 "netconf_parser.cc"
1231 #line 495 "netconf_parser.yy"
1236 #line 1237 "netconf_parser.cc"
1240 #line 501 "netconf_parser.yy"
1244 ctx.
stack_.back()->set(
"ca", m);
1248 #line 1249 "netconf_parser.cc"
1252 #line 507 "netconf_parser.yy"
1257 #line 1258 "netconf_parser.cc"
1261 #line 515 "netconf_parser.yy"
1265 #line 1266 "netconf_parser.cc"
1269 #line 532 "netconf_parser.yy"
1274 #line 1275 "netconf_parser.cc"
1278 #line 535 "netconf_parser.yy"
1281 ctx.
stack_.back()->set(
"model", model);
1284 #line 1285 "netconf_parser.cc"
1288 #line 542 "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 548 "netconf_parser.yy"
1305 #line 1306 "netconf_parser.cc"
1309 #line 556 "netconf_parser.yy"
1313 #line 1314 "netconf_parser.cc"
1317 #line 569 "netconf_parser.yy"
1319 ctx.
unique(
"socket-type", ctx.
loc2pos(yystack_[0].location));
1322 #line 1323 "netconf_parser.cc"
1326 #line 572 "netconf_parser.yy"
1328 ctx.
stack_.back()->set(
"socket-type", yystack_[0].value.as <
ElementPtr > ());
1331 #line 1332 "netconf_parser.cc"
1335 #line 578 "netconf_parser.yy"
1337 #line 1338 "netconf_parser.cc"
1341 #line 579 "netconf_parser.yy"
1343 #line 1344 "netconf_parser.cc"
1347 #line 580 "netconf_parser.yy"
1349 #line 1350 "netconf_parser.cc"
1353 #line 583 "netconf_parser.yy"
1355 ctx.
unique(
"socket-name", ctx.
loc2pos(yystack_[0].location));
1358 #line 1359 "netconf_parser.cc"
1362 #line 586 "netconf_parser.yy"
1365 ctx.
stack_.back()->set(
"socket-name", name);
1368 #line 1369 "netconf_parser.cc"
1372 #line 593 "netconf_parser.yy"
1374 ctx.
unique(
"socket-url", ctx.
loc2pos(yystack_[0].location));
1377 #line 1378 "netconf_parser.cc"
1381 #line 596 "netconf_parser.yy"
1384 ctx.
stack_.back()->set(
"socket-url", url);
1387 #line 1388 "netconf_parser.cc"
1391 #line 606 "netconf_parser.yy"
1395 ctx.
stack_.back()->set(
"loggers", l);
1399 #line 1400 "netconf_parser.cc"
1403 #line 612 "netconf_parser.yy"
1408 #line 1409 "netconf_parser.cc"
1412 #line 621 "netconf_parser.yy"
1416 #line 1417 "netconf_parser.cc"
1420 #line 627 "netconf_parser.yy"
1423 ctx.
stack_.back()->add(l);
1426 #line 1427 "netconf_parser.cc"
1430 #line 631 "netconf_parser.yy"
1434 #line 1435 "netconf_parser.cc"
1438 #line 637 "netconf_parser.yy"
1442 #line 1443 "netconf_parser.cc"
1446 #line 651 "netconf_parser.yy"
1451 #line 1452 "netconf_parser.cc"
1455 #line 654 "netconf_parser.yy"
1458 ctx.
stack_.back()->set(
"name", name);
1461 #line 1462 "netconf_parser.cc"
1465 #line 660 "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 666 "netconf_parser.yy"
1480 #line 1481 "netconf_parser.cc"
1484 #line 669 "netconf_parser.yy"
1487 ctx.
stack_.back()->set(
"severity", sev);
1490 #line 1491 "netconf_parser.cc"
1494 #line 675 "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 681 "netconf_parser.yy"
1511 #line 1512 "netconf_parser.cc"
1515 #line 688 "netconf_parser.yy"
1519 #line 1520 "netconf_parser.cc"
1523 #line 693 "netconf_parser.yy"
1526 ctx.
stack_.back()->add(m);
1529 #line 1530 "netconf_parser.cc"
1533 #line 697 "netconf_parser.yy"
1537 #line 1538 "netconf_parser.cc"
1541 #line 703 "netconf_parser.yy"
1545 #line 1546 "netconf_parser.cc"
1549 #line 715 "netconf_parser.yy"
1554 #line 1555 "netconf_parser.cc"
1558 #line 718 "netconf_parser.yy"
1561 ctx.
stack_.back()->set(
"output", sev);
1564 #line 1565 "netconf_parser.cc"
1568 #line 724 "netconf_parser.yy"
1572 ctx.
stack_.back()->set(
"flush", flush);
1574 #line 1575 "netconf_parser.cc"
1578 #line 730 "netconf_parser.yy"
1582 ctx.
stack_.back()->set(
"maxsize", maxsize);
1584 #line 1585 "netconf_parser.cc"
1588 #line 736 "netconf_parser.yy"
1592 ctx.
stack_.back()->set(
"maxver", maxver);
1594 #line 1595 "netconf_parser.cc"
1598 #line 742 "netconf_parser.yy"
1603 #line 1604 "netconf_parser.cc"
1607 #line 745 "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';
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]);
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, 121, 121, 121, 122, 122, 123, 123, 131, 131,
2253 142, 148, 149, 150, 151, 152, 153, 154, 158, 158,
2254 169, 174, 175, 183, 188, 194, 199, 199, 205, 206,
2255 209, 213, 217, 229, 237, 237, 249, 249, 267, 270,
2256 275, 276, 279, 280, 281, 288, 289, 290, 291, 292,
2257 293, 294, 295, 296, 299, 305, 311, 317, 317, 342,
2258 342, 370, 370, 381, 382, 385, 386, 387, 392, 392,
2259 400, 401, 402, 405, 408, 409, 412, 412, 421, 421,
2260 432, 432, 443, 444, 447, 448, 449, 457, 458, 459,
2261 460, 461, 465, 465, 477, 477, 489, 489, 501, 501,
2262 513, 514, 515, 521, 522, 523, 524, 525, 526, 527,
2263 528, 532, 532, 542, 542, 554, 555, 556, 561, 562,
2264 563, 564, 565, 566, 569, 569, 578, 579, 580, 583,
2265 583, 593, 593, 606, 606, 619, 620, 621, 627, 627,
2266 635, 636, 637, 642, 643, 644, 645, 646, 647, 648,
2267 651, 651, 660, 666, 666, 675, 675, 686, 687, 688,
2268 693, 693, 701, 702, 703, 708, 709, 710, 711, 712,
2269 715, 715, 724, 730, 736, 742, 742
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)]);
2300 #line 14 "netconf_parser.yy"
2302 #line 2303 "netconf_parser.cc"
2304 #line 751 "netconf_parser.yy"
2309 const string& what) {
2310 ctx.error(loc, what);
#define YY_CAST(Type, Val)
#define YY_MOVE_REF(Type)
Notes: IntElement type is changed to int64_t.
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.
symbol_kind_type token() const YY_NOEXCEPT
const symbol_type & lookahead() const YY_NOEXCEPT
context(const NetconfParser &yyparser, const symbol_type &yyla)
Present a slice of the top of a stack.
virtual int parse()
Parse.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
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.
NetconfParser(isc::netconf::ParserContext &ctx_yyarg)
Build a parser object.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
int debug_level_type
Type for debugging levels.
static const symbol_kind_type YYNTOKENS
The number of tokens.
location location_type
Symbol locations.
void set_debug_level(debug_level_type l)
Set the current debugging level.
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
Parser context is a wrapper around flex/bison instances dedicated to Netconf-agent config file parser...
const std::string contextName()
Get the syntactic context name.
LexerContext ctx_
Current syntactic context.
void unique(const std::string &name, isc::data::Element::Position loc)
Check if a parameter is already present.
isc::data::Element::Position loc2pos(isc::netconf::location &loc)
Converts bison's position to one understandable by isc::data::Element.
void enter(const LexerContext &ctx)
Enter a new syntactic context.
@ NO_KEYWORDS
This one is used in pure JSON mode.
@ HOOKS_LIBRARIES
Used while parsing Netconf/loggers structures.
@ CONFIG
Used while parsing content of Netconf.
@ MANAGED_SERVERS
Used while parsing Netconf/managed-servers.
@ SERVER
Used while parsing Netconf/manages-servers/*/control-socket.
@ LOGGERS
Used while parsing Netconf/loggers/output_options structures.
@ SOCKET_TYPE
Used while parsing Netconf/hooks-libraries.
@ CONTROL_SOCKET
Used while parsing Netconf/managed-servers/*/control-socket/socket-type.
std::vector< isc::data::ElementPtr > stack_
JSON elements being parsed.
void warnAboutExtraCommas(const isc::netconf::location &loc)
Warning for extra commas.
void leave()
Leave a syntactic context.
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.
#define YYLLOC_DEFAULT(Current, Rhs, N)
#define YY_REDUCE_PRINT(Rule)
#define YY_SYMBOL_PRINT(Title, Symbol)
Define the isc::netconf::parser class.
bool empty() const YY_NOEXCEPT
Whether empty.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
location_type location
The location.
void clear() YY_NOEXCEPT
Destroy contents, and record that is empty.
"External" symbols: returned by the scanner.
Syntax errors thrown from user actions.
~syntax_error() YY_NOEXCEPT YY_NOTHROW