36 #line 37 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:404 39 # if defined __cplusplus && 201103L <= __cplusplus 40 # define YY_NULLPTR nullptr 50 #line 51 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:412 52 #line 63 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:413 60 #define TRY(Loc, Stm) \ 65 catch (std::exception& e) \ 67 error(Loc, e.what()); \ 103 #line 104 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:413 107 # if defined YYENABLE_NLS && YYENABLE_NLS 109 # include <libintl.h> 110 # define YY_(msgid) dgettext ("bison-runtime", msgid) 114 # define YY_(msgid) msgid 118 #define YYRHSLOC(Rhs, K) ((Rhs)[K].location) 123 # ifndef YYLLOC_DEFAULT 124 # define YYLLOC_DEFAULT(Current, Rhs, N) \ 128 (Current).begin = YYRHSLOC (Rhs, 1).begin; \ 129 (Current).end = YYRHSLOC (Rhs, N).end; \ 133 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \ 140 #define YYUSE(E) ((void) (E)) 146 # define YYCDEBUG if (yydebug_) (*yycdebug_) 148 # define YY_SYMBOL_PRINT(Title, Symbol) \ 152 *yycdebug_ << Title << ' '; \ 153 yy_print_ (*yycdebug_, Symbol); \ 154 *yycdebug_ << std::endl; \ 158 # define YY_REDUCE_PRINT(Rule) \ 161 yy_reduce_print_ (Rule); \ 164 # define YY_STACK_PRINT() \ 172 # define YYCDEBUG if (false) std::cerr 173 # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol) 174 # define YY_REDUCE_PRINT(Rule) static_cast<void>(0) 175 # define YY_STACK_PRINT() static_cast<void>(0) 179 #define yyerrok (yyerrstatus_ = 0) 180 #define yyclearin (yyla.clear ()) 182 #define YYACCEPT goto yyacceptlab 183 #define YYABORT goto yyabortlab 184 #define YYERROR goto yyerrorlab 185 #define YYRECOVERING() (!!yyerrstatus_) 187 #line 11 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:479 188 namespace vcsn {
namespace rat {
189 #line 190 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:479 201 std::string yyr =
"";
202 char const *yyp = yystr;
209 goto do_not_strip_quotes;
213 goto do_not_strip_quotes;
222 do_not_strip_quotes: ;
234 yycdebug_ (&
std::cerr),
236 driver_ (driver__yyarg)
252 : state (empty_state)
299 switch (that.type_get ())
381 template <
typename Base>
391 template <
typename Base>
396 std::ostream& yyoutput = yyo;
403 yyo << (yytype <
yyntokens_ ?
"token" :
"nterm")
410 #line 121 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 411 { yyo <<
'"' << yysym.
value.template as< std::string > () <<
'"'; }
412 #line 413 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 417 #line 128 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 418 { yyo <<
'<' << yysym.
value.template as< std::string > () <<
'>'; }
419 #line 420 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 446 #line 130 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 449 yyo << (yysym.
value.template as< braced_expression > ().lparen ?
" (lpar, " :
" (no lpar, ");
450 yyo << (yysym.
value.template as< braced_expression > ().rparen ?
"rpar)" :
"no rpar)");
452 #line 453 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 457 #line 136 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 459 const char* sep =
"[[";
460 for (
auto e: yysym.
value.template as< std::vector<vcsn::dyn::expression> > ())
467 #line 468 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 472 #line 130 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 475 yyo << (yysym.
value.template as< braced_expression > ().lparen ?
" (lpar, " :
" (no lpar, ");
476 yyo << (yysym.
value.template as< braced_expression > ().rparen ?
"rpar)" :
"no rpar)");
478 #line 479 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 483 #line 146 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 485 #line 486 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 490 #line 123 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:636 493 for (
auto c: yysym.
value.template as< class_t > ()) yyo << c.first <<
"-" << c.second;
496 #line 497 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:636 590 int yyerrstatus_ = 0;
605 YYCDEBUG <<
"Starting parse" << std::endl;
609 #line 117 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:741 614 #line 615 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:741 648 yyla.
move (yylookahead);
660 yyn += yyla.type_get ();
679 yypush_ (
"Shifting", yyn, yyla);
729 yylhs.
value.
build< std::vector<vcsn::dyn::expression> > ();
750 #line 206 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 754 if (dim_exp != dim_ctx)
766 #line 767 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 770 #line 224 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 772 #line 773 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 776 #line 225 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 778 #line 779 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 782 #line 226 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 784 #line 785 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 788 #line 230 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 790 #line 791 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 794 #line 231 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 796 #line 797 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 800 #line 232 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 802 #line 803 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 806 #line 238 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 808 #line 809 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 812 #line 239 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 815 if (yystack_[0].
value.
as< std::vector<vcsn::dyn::expression> > ().size() == 1)
822 +
std::to_string(yystack_[0].value.as< std::vector<vcsn::dyn::expression> > ().size())
826 #line 827 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 830 #line 256 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 834 #line 835 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 838 #line 259 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 840 #line 841 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 844 #line 260 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 846 yylhs.
value.
as< std::vector<vcsn::dyn::expression> > () = yystack_[3].
value.
as< std::vector<vcsn::dyn::expression> > ();
849 #line 850 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 853 #line 267 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 855 #line 856 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 859 #line 268 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 861 #line 862 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 865 #line 269 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 867 #line 868 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 871 #line 270 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 873 #line 874 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 877 #line 271 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 879 #line 880 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 883 #line 272 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 885 #line 886 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 889 #line 273 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 891 #line 892 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 895 #line 274 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 898 #line 899 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 902 #line 276 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 904 #line 905 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 908 #line 277 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 910 #line 911 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 914 #line 279 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 926 #line 927 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 930 #line 290 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 934 std::get<0>(yystack_[0].value.as<
irange_type > ()), std::get<1>(yystack_[0].value.as<
irange_type > ()))); }
935 #line 936 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 939 #line 294 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 941 #line 942 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 945 #line 295 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 947 #line 948 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 951 #line 296 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 953 #line 954 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 957 #line 297 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 959 #line 960 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 963 #line 298 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 965 #line 966 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 969 #line 299 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 971 #line 972 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 975 #line 300 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 977 #line 978 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 981 #line 301 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 983 #line 984 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 987 #line 302 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 989 #line 990 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 993 #line 303 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 995 #line 996 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 999 #line 307 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 1001 #line 1002 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 1005 #line 308 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 1007 #line 1008 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 1011 #line 312 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 1013 #line 1014 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 1017 #line 313 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 1019 #line 1020 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 1023 #line 314 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:859 1025 #line 1026 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 1029 #line 1030 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:859 1062 if (yyerrstatus_ == 3)
1068 if (yyla.type_get () ==
yyeof_)
1070 else if (!yyla.
empty ())
1107 yyn =
yypact_[yystack_[0].state];
1120 if (yystack_.size () == 1)
1133 error_token.
state = yyn;
1134 yypush_ (
"Shifting", error_token);
1150 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1155 while (1 < yystack_.size ())
1165 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack" 1195 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1197 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1226 int yytoken = yyla.type_get ();
1227 yyarg[yycount++] =
yytname_[yytoken];
1234 int yyxbegin = yyn < 0 ? -yyn : 0;
1236 int yychecklim =
yylast_ - yyn + 1;
1238 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1242 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1256 #define YYCASE_(N, S) \ 1261 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1262 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1263 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1264 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1265 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1272 for (
char const* yyp = yyformat; *yyp; ++yyp)
1273 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
1291 -26, 2, 14, -26, -6, -26, -26, -26, -26, -26,
1292 -26, -6, 4, -26, -26, -26, -26, -25, -5, 52,
1293 -6, -26, 13, 173, -26, -15, 40, -26, -26, -6,
1294 -6, -6, -6, -26, -6, -6, -6, -6, -26, -26,
1295 -26, 192, 149, 100, 43, -26, 17, -26, -6, 130,
1296 130, 154, 130, 192, 79, 106, 154, -26, 7, 52,
1303 9, 0, 3, 6, 0, 1, 9, 4, 9, 5,
1304 2, 0, 38, 9, 31, 30, 32, 36, 10, 11,
1305 0, 8, 7, 27, 38, 0, 0, 37, 12, 0,
1306 0, 0, 0, 26, 0, 0, 0, 0, 28, 29,
1307 25, 24, 23, 22, 0, 33, 39, 35, 0, 15,
1308 17, 19, 16, 14, 18, 21, 20, 34, 0, 13,
1315 -26, -26, -26, -3, -26, -26, -26, -26, -4, -2,
1322 -1, 1, 10, 2, 3, 4, 18, 48, 41, 20,
1329 19, 11, 5, 21, 17, 22, 45, 23, 12, 13,
1330 26, 14, 24, 46, 28, 27, 43, 42, 6, 6,
1331 15, 42, 16, 17, 7, 49, 50, 51, 52, 58,
1332 53, 54, 55, 56, 8, 60, 9, 0, 43, 42,
1333 44, 42, 0, 0, 59, 6, 0, 42, 42, 42,
1334 42, 42, 42, 42, 42, 29, 30, 42, 31, 11,
1335 8, 32, 47, 33, 57, 34, 12, 13, 35, 14,
1336 36, 46, 0, 0, 0, 37, 38, 39, 15, 40,
1337 16, 17, 29, 30, 0, 31, 11, 0, 32, 0,
1338 33, 0, 34, 12, 13, 0, 14, 36, 0, 0,
1339 0, 0, 37, 38, 39, 15, 40, 16, 17, 29,
1340 30, 33, 31, 11, 0, 32, 0, 33, 0, 34,
1341 12, 13, 0, 14, 38, 39, 0, 40, 0, 37,
1342 38, 39, 15, 40, 16, 17, 31, 11, 0, 0,
1343 0, 33, 0, 34, 12, 13, 0, 14, 0, 0,
1344 0, 0, 0, 37, 38, 39, 15, 40, 16, 17,
1345 31, 11, 0, 12, 13, 33, 14, 34, 12, 13,
1346 0, 14, 0, 0, 0, 15, 0, 16, 38, 39,
1347 15, 40, 16, 17, 33, 0, 34, 12, 13, 0,
1348 14, 0, 0, 0, 0, 0, 0, 38, 39, 15,
1349 40, 16, 17, 33, 0, 0, 12, 13, 0, 14,
1350 0, 0, 0, 0, 0, 0, 38, 39, 15, 40,
1357 4, 7, 0, 6, 29, 8, 21, 11, 14, 15,
1358 13, 17, 8, 28, 19, 17, 20, 19, 5, 5,
1359 26, 23, 28, 29, 10, 29, 30, 31, 32, 12,
1360 34, 35, 36, 37, 20, 28, 22, -1, 42, 41,
1361 24, 43, -1, -1, 48, 5, -1, 49, 50, 51,
1362 52, 53, 54, 55, 56, 3, 4, 59, 6, 7,
1363 20, 9, 22, 11, 21, 13, 14, 15, 16, 17,
1364 18, 28, -1, -1, -1, 23, 24, 25, 26, 27,
1365 28, 29, 3, 4, -1, 6, 7, -1, 9, -1,
1366 11, -1, 13, 14, 15, -1, 17, 18, -1, -1,
1367 -1, -1, 23, 24, 25, 26, 27, 28, 29, 3,
1368 4, 11, 6, 7, -1, 9, -1, 11, -1, 13,
1369 14, 15, -1, 17, 24, 25, -1, 27, -1, 23,
1370 24, 25, 26, 27, 28, 29, 6, 7, -1, -1,
1371 -1, 11, -1, 13, 14, 15, -1, 17, -1, -1,
1372 -1, -1, -1, 23, 24, 25, 26, 27, 28, 29,
1373 6, 7, -1, 14, 15, 11, 17, 13, 14, 15,
1374 -1, 17, -1, -1, -1, 26, -1, 28, 24, 25,
1375 26, 27, 28, 29, 11, -1, 13, 14, 15, -1,
1376 17, -1, -1, -1, -1, -1, -1, 24, 25, 26,
1377 27, 28, 29, 11, -1, -1, 14, 15, -1, 17,
1378 -1, -1, -1, -1, -1, -1, 24, 25, 26, 27,
1385 0, 34, 36, 37, 38, 0, 5, 10, 20, 22,
1386 35, 7, 14, 15, 17, 26, 28, 29, 39, 41,
1387 42, 36, 36, 41, 8, 43, 36, 42, 19, 3,
1388 4, 6, 9, 11, 13, 16, 18, 23, 24, 25,
1389 27, 41, 42, 41, 43, 21, 28, 22, 40, 41,
1390 41, 41, 41, 41, 41, 41, 41, 21, 12, 41,
1397 0, 33, 34, 35, 35, 35, 36, 36, 36, 38,
1398 37, 39, 40, 39, 41, 41, 41, 41, 41, 41,
1399 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
1400 41, 41, 41, 41, 41, 41, 42, 42, 43, 43,
1407 0, 2, 2, 0, 1, 1, 1, 3, 3, 0,
1408 2, 1, 0, 4, 3, 3, 3, 3, 3, 3,
1409 3, 3, 2, 2, 2, 2, 2, 2, 2, 2,
1410 1, 1, 1, 3, 4, 3, 1, 2, 0, 2,
1421 "\"end\"",
"error",
"$undefined",
"\"&\"",
"\"&:\"",
"\"@\"",
1422 "\"{\\\\}\"",
"\"!\"",
"\"^\"",
"\":\"",
"\",\"",
"\"{c}\"",
"\"-\"",
1423 "\".\"",
"\"[\"",
"\"(\"",
"\"<+\"",
"\"\\\\e\"",
"\"%\"",
"\"|\"",
1424 "\"+\"",
"\"]\"",
"\")\"",
"\"{/}\"",
"\"{T}\"",
"\"{t}\"",
"\"\\\\z\"",
1425 "\"*\"",
"\"letter\"",
"\"weight\"",
"CONCAT",
"RWEIGHT",
"LWEIGHT",
1426 "$accept",
"input",
"terminator.opt",
"add",
"tuple",
"$@1",
"tuple.1",
1431 const unsigned short int 1434 0, 205, 205, 224, 225, 226, 230, 231, 232, 238,
1435 238, 255, 259, 259, 267, 268, 269, 270, 271, 272,
1436 273, 274, 276, 277, 278, 290, 294, 295, 296, 297,
1437 298, 299, 300, 301, 302, 303, 307, 308, 312, 313,
1458 unsigned int yylno =
yyrline_[yyrule];
1459 int yynrhs =
yyr2_[yyrule];
1461 *
yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
1462 <<
" (line " << yylno <<
"):" << std::endl;
1464 for (
int yyi = 0; yyi < yynrhs; yyi++)
1471 #line 11 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:1167 1473 #line 1474 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.cc" // lalr1.cc:1167 1474 #line 317 "/Users/akim/src/lrde/2/lib/vcsn/rat/parse.yy" // lalr1.cc:1168 static const short int yypact_[]
stack_type yystack_
The stack.
int debug_level_type
Type for debugging levels.
state_type state
The state.
void tape_inc(const location &l)
Increment the top most tape.
static const signed char yypgoto_[]
location(const position &b, const position &e)
Construct a location from b to e.
static const signed char yytable_ninf_
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
bool empty() const
Whether empty.
semantic_type value
The semantic value.
expression concatenate(const expression &lhs, const expression &rhs)
Concatenate two expressions.
void tape_pop()
Pop the tape stack.
std::tuple< int, int > irange_type
An integer range, for quantifiers/exponents.
parser(driver &driver__yyarg)
Build a parser object.
int state_type
State numbers.
S::size_type size() const
dyn::weight make_weight(const location &loc, const std::string &s)
From a string, generate a weight.
virtual std::string yysyntax_error_(state_type yystate, const symbol_type &yyla) const
Generate an error message.
automaton rdivide(const automaton &lhs, const automaton &rhs)
Right-division of two automata (lhs / rhs).
static parser::symbol_type yylex(driver &d)
Use our local scanner object.
std::size_t num_tapes(const context &ctx)
The number of input tapes.
void set_debug_level(debug_level_type l)
Set the current debugging level.
static dyn::expression prefer(const dyn::expression &e, const dyn::expression &f)
Generate an expression for "e <+ f = e % f + f".
void move(self_type &other)
Move the content of other to this.
static const unsigned char yyr2_[]
value_impl< detail::expression_tag > expression
T & build()
Instantiate an empty T in here.
An expressionset can implement several different sets of identities on expressions.
virtual int parse()
Parse.
#define YYLLOC_DEFAULT(Current, Rhs, N)
An expression that "remembers" whether it was in parentheses.
void tape_push()
Push a new tape number on the stack.
std::ostream & print(const automaton &aut, std::ostream &out=std::cout, const std::string &format="default")
Print automaton a on out using format format.
static dyn::context ctx(const driver &d)
Get the context of the driver.
virtual void yystack_print_()
Print the state stack on the debug stream.
static const unsigned char yyr1_[]
virtual void yy_reduce_print_(int r)
Report on the debug stream that the rule r is going to be reduced.
void move(basic_symbol &s)
Destructive move, s is emptied into this.
automaton transpose(automaton &aut)
Transpose aut.
void error(const location &l, const std::string &m)
Report an error m at l.
static const signed char yydefgoto_[]
auto & as()
Extract wrapped typed value.
void yypop_(unsigned int n=1)
Pop n symbols the three stacks.
rat::identities identities() const
Get the identities.
static const unsigned char yystos_[]
expression expression_one(const context &c, identities ids)
The expression for \\e.
Syntax errors thrown from user actions.
context context_of(const automaton &a)
The context of this automaton.
void copy(const self_type &other)
Copy the content of other to this.
static identities ids(const driver &d)
Get the identities of the driver.
std::vector< dyn::context > tape_ctx_
The context for each tape. If single-tape, [0] is ctx_.
std::string to_string(identities i)
Wrapper around operator<<.
T & as()
Accessor to a built T.
stack_symbol_type & operator=(const stack_symbol_type &that)
Assignment, needed by push_back.
dyn::expression make_expression(const location &loc, const class_t &c, bool accept)
From a label class, generate an expression.
symbol_number_type type_get() const
The (internal) type number (corresponding to state).
void move(by_state &that)
Steal the symbol type from that.
void yypush_(const char *m, stack_symbol_type &s)
Push a new state on the stack.
std::ostream & debug_stream() const
The current debugging stream.
const_iterator end() const
automaton tuple(const automaton &lhs, const automaton &rhs)
Build a two-tape automaton from two automata.
"Internal" symbol: element of the stack.
static bool yy_pact_value_is_default_(int yyvalue)
Whether the given yypact_ value indicates a defaulted state.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
static const unsigned short int yyrline_[]
void context(const dyn::context &ctx)
Set the expressionset to use from this context.
void yy_print_(std::ostream &yyo, const basic_symbol< Base > &yysym) const
Display a symbol type, value and location.
static const unsigned char yytable_[]
dyn::expression result_
The parsed expression.
const_iterator begin() const
by_state()
Default constructor.
static const char *const yytname_[]
For a symbol, its name in clear.
state_type yy_lr_goto_state_(state_type yystate, int yysym)
Compute post-reduction state.
int symbol_number_type
Symbol type: an internal symbol number.
State and public interface for rational expression parsing.
std::unique_ptr< yyFlexLexer > scanner_
The scanner.
Termination state number.
static const signed char yypact_ninf_
void push(T &t)
Steal the contents of t.
std::vector< stack_symbol_type > ::const_reverse_iterator const_iterator
bool lparen
Whether there was a left-paren.
static const unsigned char yydefact_[]
Define the vcsn::rat::parser class.
#define YY_SYMBOL_PRINT(Title, Symbol)
bool rparen
Whether there was a right-paren.
dyn::context ctx_
The context used to read the expression.
#define YY_REDUCE_PRINT(Rule)
dyn::expression make_atom(const location &loc, const std::string &s)
From a string, generate an expression.
void clear()
Destroy contents, and record that is empty.
Container::value_type back(const Container &container)
The last member of this Container.
void pop(unsigned int n=1)
void yy_destroy_(const char *yymsg, basic_symbol< Base > &yysym) const
Reclaim the memory associated to a symbol.
Present a slice of the top of a stack.
expression expression_zero(const context &c, identities ids)
The expression for \\z.
Type access provider for state based symbols.
dyn::expression exp
The expression parsed so far.
automaton multiply(const automaton &lhs, const automaton &rhs, const std::string &algo="auto")
Multiply (concatenate) two automata.
static bool yy_table_value_is_error_(int yyvalue)
Whether the given yytable_ value indicates a syntax error.
The abstract, non-parameterized, root for all rational expression node types.
void clear()
Record that this symbol is empty.
static std::string yytnamerr_(const char *n)
Convert the symbol name n to a form suitable for a diagnostic.
debug_level_type debug_level() const
The current debugging level.
location location_
The inital location.
stack_symbol_type()
Construct an empty symbol.
Template-less root for contexts.
static const signed char yycheck_[]
location_type location
The location.
std::set< std::pair< std::string, std::string > > class_t
A set of label ranges.