33 #line 130 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:392
36 #define TRY(Loc, Stm) \
42 catch (std::exception& e) \
44 error(Loc, e.what()); \
49 #line 50 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:392
54 #line 55 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:399
57 # if defined __cplusplus && 201103L <= __cplusplus
58 # define YY_NULLPTR nullptr
68 #line 69 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:407
70 #line 73 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:408
106 o << t.first <<
"->" << t.second;
118 return driver_.
scanner_->lex(driver_);
124 #line 125 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:408
128 # if defined YYENABLE_NLS && YYENABLE_NLS
130 # include <libintl.h>
131 # define YY_(msgid) dgettext ("bison-runtime", msgid)
135 # define YY_(msgid) msgid
139 #define YYRHSLOC(Rhs, K) ((Rhs)[K].location)
144 # ifndef YYLLOC_DEFAULT
145 # define YYLLOC_DEFAULT(Current, Rhs, N) \
149 (Current).begin = YYRHSLOC (Rhs, 1).begin; \
150 (Current).end = YYRHSLOC (Rhs, N).end; \
154 (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end; \
161 #define YYUSE(E) ((void) (E))
167 # define YYCDEBUG if (yydebug_) (*yycdebug_)
169 # define YY_SYMBOL_PRINT(Title, Symbol) \
173 *yycdebug_ << Title << ' '; \
174 yy_print_ (*yycdebug_, Symbol); \
175 *yycdebug_ << std::endl; \
179 # define YY_REDUCE_PRINT(Rule) \
182 yy_reduce_print_ (Rule); \
185 # define YY_STACK_PRINT() \
193 # define YYCDEBUG if (false) std::cerr
194 # define YY_SYMBOL_PRINT(Title, Symbol) YYUSE(Symbol)
195 # define YY_REDUCE_PRINT(Rule) static_cast<void>(0)
196 # define YY_STACK_PRINT() static_cast<void>(0)
200 #define yyerrok (yyerrstatus_ = 0)
201 #define yyclearin (yyempty = true)
203 #define YYACCEPT goto yyacceptlab
204 #define YYABORT goto yyabortlab
205 #define YYERROR goto yyerrorlab
206 #define YYRECOVERING() (!!yyerrstatus_)
208 #line 11 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:474
209 namespace vcsn {
namespace detail {
namespace dot {
210 #line 211 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:474
222 std::string yyr =
"";
223 char const *yyp = yystr;
230 goto do_not_strip_quotes;
234 goto do_not_strip_quotes;
243 do_not_strip_quotes: ;
255 yycdebug_ (&std::cerr),
257 driver_ (driver__yyarg)
278 : state (other.state)
298 return state == empty ? 0 :
yystos_[state];
310 switch (that.type_get ())
384 template <
typename Base>
394 template <
typename Base>
399 std::ostream& yyoutput = yyo;
402 yyo << (yytype <
yyntokens_ ?
"token" :
"nterm")
409 #line 173 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
411 #line 412 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
423 #line 177 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
425 #line 426 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
458 #line 173 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
460 #line 461 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
465 #line 177 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
467 #line 468 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
472 #line 281 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
474 #line 475 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
479 #line 177 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
481 #line 482 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
493 #line 173 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
495 #line 496 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
500 #line 177 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
502 #line 503 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
507 #line 173 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:617
509 #line 510 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:617
606 int yyerrstatus_ = 0;
621 YYCDEBUG <<
"Starting parse" << std::endl;
625 #line 147 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:725
630 #line 631 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:725
664 yyla.
move (yylookahead);
677 yyn += yyla.type_get ();
699 yypush_ (
"Shifting", yyn, yyla);
772 #line 188 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
774 #line 775 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
778 #line 190 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
782 for (
auto s: yystack_[1].value.as<
states_t > ())
785 #line 786 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
789 #line 199 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
791 #line 792 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
795 #line 200 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
797 #line 798 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
807 #line 202 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
809 #line 810 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
813 #line 203 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
815 #line 816 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
831 #line 209 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
833 #line 834 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
837 #line 214 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
841 #line 842 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
845 #line 222 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
847 #line 848 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
851 #line 223 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
853 #line 854 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
857 #line 228 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
860 static const string_t vcsn_context{
"vcsn_context"};
863 else if (yystack_[2].value.as<
string_t > () == vcsn_context)
869 #line 870 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
873 #line 243 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
877 #line 878 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
881 #line 259 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
883 #line 884 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
887 #line 260 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
889 #line 890 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
893 #line 264 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
895 #line 896 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
899 #line 265 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
901 #line 902 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
905 #line 284 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
907 for (
auto s1: yystack_[2].value.as<
states_t > ())
908 for (
auto s2: yystack_[0].value.as<
states_t > ())
912 #line 913 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
916 #line 291 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
919 for (
auto s1: yystack_[2].value.as<
paths_t > ().
ends)
920 for (
auto s2: yystack_[0].value.as<
states_t > ())
924 #line 925 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
928 #line 302 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
933 #line 934 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
937 #line 310 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
941 #line 942 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
945 #line 317 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
959 #line 960 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
975 #line 339 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
977 #line 978 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
987 #line 344 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
989 #line 990 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
993 #line 348 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
995 #line 996 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
999 #line 349 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:847
1001 #line 1002 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
1005 #line 1006 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:847
1034 yyempty ?
yyempty_ : yyla.type_get ()));
1039 if (yyerrstatus_ == 3)
1045 if (yyla.type_get () ==
yyeof_)
1084 yyn =
yypact_[yystack_[0].state];
1097 if (yystack_.size () == 1)
1110 error_token.
state = yyn;
1111 yypush_ (
"Shifting", error_token);
1127 yy_destroy_ (
"Cleanup: discarding lookahead", yyla);
1132 while (1 < yystack_.size ())
1142 YYCDEBUG <<
"Exception caught: cleaning lookahead and stack"
1173 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1175 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1204 yyarg[yycount++] =
yytname_[yytoken];
1211 int yyxbegin = yyn < 0 ? -yyn : 0;
1213 int yychecklim =
yylast_ - yyn + 1;
1215 for (
int yyx = yyxbegin; yyx < yyxend; ++yyx)
1219 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1233 #define YYCASE_(N, S) \
1238 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
1239 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
1240 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
1241 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
1242 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1248 for (
char const* yyp = yyformat; *yyp; ++yyp)
1249 if (yyp[0] ==
'%' && yyp[1] ==
's' && yyi < yycount)
1267 45, 8, 49, -23, 43, -23, -23, -1, 42, 42,
1268 42, -23, -23, 19, 8, 37, -23, -23, 41, 5,
1269 -23, -23, 22, 44, 38, -23, -23, -23, 4, 39,
1270 46, -23, 50, -23, -23, 6, 6, -23, -23, -23,
1271 47, 28, -23, 51, -23, -23, 52, -23, 53, -23,
1272 -23, -23, -23, -23, -23, 38, 42, 48, 21, -23,
1279 0, 37, 0, 38, 0, 1, 3, 0, 0, 0,
1280 0, 3, 2, 32, 37, 21, 7, 8, 0, 14,
1281 6, 5, 14, 9, 23, 12, 10, 11, 0, 0,
1282 0, 31, 0, 22, 4, 0, 0, 15, 29, 30,
1283 0, 18, 24, 0, 36, 16, 33, 3, 32, 27,
1284 25, 26, 28, 19, 20, 23, 14, 0, 0, 17,
1291 -23, -23, -11, -23, -23, 31, -21, -22, -23, -23,
1292 -23, 12, -17, -23, -23, -23, 9, -23, 11, 54
1298 -1, 2, 7, 15, 16, 37, 38, 17, 42, 55,
1299 34, 43, 18, 19, 20, 21, 22, 31, 23, 4
1305 28, 39, 41, 8, 9, 10, 11, 12, 8, 9,
1306 10, 11, 44, 11, 24, 13, 14, 36, 49, 52,
1307 13, 14, 48, 14, 3, 8, 9, 10, 11, 62,
1308 29, 24, 30, 41, -25, 60, 58, 13, 14, 25,
1309 26, 27, 53, 54, 50, 50, 51, 51, 1, 5,
1310 6, 24, 33, 35, 40, 45, -26, 47, 29, 0,
1311 0, 56, 46, 0, 61, 57, 30, 59, 32
1317 11, 22, 24, 4, 5, 6, 7, 8, 4, 5,
1318 6, 7, 8, 7, 9, 16, 17, 12, 35, 36,
1319 16, 17, 16, 17, 16, 4, 5, 6, 7, 8,
1320 11, 9, 13, 55, 12, 56, 47, 16, 17, 8,
1321 9, 10, 14, 15, 35, 36, 35, 36, 3, 0,
1322 7, 9, 15, 12, 16, 16, 12, 7, 11, -1,
1323 -1, 10, 16, -1, 16, 13, 13, 55, 14
1329 0, 3, 19, 16, 37, 0, 7, 20, 4, 5,
1330 6, 7, 8, 16, 17, 21, 22, 25, 30, 31,
1331 32, 33, 34, 36, 9, 23, 23, 23, 20, 11,
1332 13, 35, 37, 15, 28, 12, 12, 23, 24, 24,
1333 16, 25, 26, 29, 8, 16, 16, 7, 16, 30,
1334 34, 36, 30, 14, 15, 27, 10, 13, 20, 29,
1341 0, 18, 19, 20, 20, 21, 21, 21, 21, 21,
1342 22, 22, 22, 23, 24, 24, 25, 26, 27, 27,
1343 27, 28, 28, 29, 29, 30, 30, 31, 31, 32,
1344 33, 34, 35, 35, 35, 36, 36, 37, 37
1350 0, 2, 5, 0, 3, 1, 1, 1, 1, 1,
1351 2, 2, 2, 4, 0, 1, 3, 3, 0, 1,
1352 1, 0, 1, 0, 1, 1, 1, 3, 3, 2,
1353 2, 2, 0, 2, 4, 5, 3, 0, 1
1363 "END",
"error",
"$undefined",
"\"digraph\"",
"\"edge\"",
"\"graph\"",
1364 "\"node\"",
"\"{\"",
"\"}\"",
"\"[\"",
"\"]\"",
"\"=\"",
"\"->\"",
1365 "\":\"",
"\",\"",
"\";\"",
"ID",
"\"subgraph\"",
"$accept",
"graph",
1366 "stmt_list",
"stmt",
"attr_stmt",
"attr_list",
"attr_list.opt",
1367 "attr_assign",
"a_list.1",
"comma.opt",
"semi.opt",
"a_list.0",
"nodes",
1368 "path",
"edge_stmt",
"node_stmt",
"node_id",
"port.opt",
"subgraph",
1373 const unsigned short int
1376 0, 184, 184, 188, 189, 199, 200, 201, 202, 203,
1377 207, 208, 209, 213, 222, 223, 227, 242, 249, 249,
1378 249, 253, 254, 259, 260, 264, 265, 283, 290, 301,
1379 309, 316, 337, 338, 339, 343, 344, 348, 349
1399 unsigned int yylno =
yyrline_[yyrule];
1400 int yynrhs =
yyr2_[yyrule];
1402 *
yycdebug_ <<
"Reducing stack by rule " << yyrule - 1
1403 <<
" (line " << yylno <<
"):" << std::endl;
1405 for (
int yyi = 0; yyi < yynrhs; yyi++)
1412 #line 11 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:1155
1414 #line 1415 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.cc" // lalr1.cc:1155
1415 #line 351 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:1156
virtual void yystack_print_()
Print the state stack on the debug stream.
Type access provider for state based symbols.
#define TRY(Loc, Stm)
Run Stm, and bounces exceptions into parse errors at Loc.
void move(by_state &that)
Steal the symbol type from that.
void move(self_type &other)
Move the content of other to this.
#define YY_REDUCE_PRINT(Rule)
location_type location
The location.
static const signed char yytable_ninf_
static bool yy_pact_value_is_default_(int yyvalue)
Whether the given yypact_ value indicates a defaulted state.
#define YY_SYMBOL_PRINT(Title, Symbol)
symbol_number_type type_get() const
The (internal) type number (corresponding to state).
S::const_reverse_iterator const_iterator
stack_symbol_type()
Construct an empty symbol.
stack_symbol_type & operator=(const stack_symbol_type &that)
Assignment, needed by push_back.
static const char *const yytname_[]
For a symbol, its name in clear.
static const signed char yypact_[]
static const unsigned char yyr1_[]
State and public interface for Dot parsing.
#define YYLLOC_DEFAULT(Current, Rhs, N)
void move(basic_symbol &s)
Destructive move, s is emptied into this.
int debug_level_type
Type for debugging levels.
static const signed char yytable_[]
location_t location_
The inital location.
void yy_destroy_(const char *yymsg, basic_symbol< Base > &yysym) const
Reclaim the memory associated to a symbol.
static const unsigned char yydefact_[]
static bool yy_table_value_is_error_(int yyvalue)
Whether the given yytable_ value indicates a syntax error.
Termination state number.
location(const position &b, const position &e)
Construct a location from b to e.
static std::string yytnamerr_(const char *n)
Convert the symbol name n to a form suitable for a diagnostic.
void push(T &t)
Steal the contents of t.
static const signed char yypgoto_[]
T & build()
Instantiate an empty T in here.
basic_symbol< by_type > symbol_type
"External" symbols: returned by the scanner.
static const unsigned short int yyrline_[]
static const unsigned char yystos_[]
static parser::symbol_type yylex(driver &driver_)
Use our local scanner object.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
static const unsigned char yyr2_[]
void yypush_(const char *m, stack_symbol_type &s)
Push a new state on the stack.
boost::flyweight< std::string, boost::flyweights::no_tracking > string_t
std::ostream & debug_stream() const
The current debugging stream.
state_type yy_lr_goto_state_(state_type yystate, int yysym)
Compute post-reduction state.
by_state()
Default constructor.
const_iterator begin() const
virtual std::string yysyntax_error_(state_type yystate, symbol_number_type yytoken) const
Generate an error message.
debug_level_type debug_level() const
The current debugging level.
T & as()
Accessor to a built T.
virtual void yy_reduce_print_(int r)
Report on the debug stream that the rule r is going to be reduced.
int state_type
State numbers.
void error(const location_t &l, const std::string &m)
Report an error m at l.
semantic_type value
The semantic value.
static const signed char yycheck_[]
std::unique_ptr< yyFlexLexer > scanner_
The scanner.
Define the vcsn::detail::dot::parser class.
std::vector< string_t > states_t
void yy_print_(std::ostream &yyo, const basic_symbol< Base > &yysym) const
Display a symbol type, value and location.
std::shared_ptr< const detail::label_base > label
int symbol_number_type
Internal symbol number.
Syntax errors thrown from user actions.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
static std::ostream & operator<<(std::ostream &o, const states_t ss)
stack_type yystack_
The stack.
static const signed char yydefgoto_[]
void setup_(const location_t &l, const std::string &ctx)
From context_, build edit_.
Present a slice of the top of a stack.
void set_debug_level(debug_level_type l)
Set the current debugging level.
transitions_t transitions
state_type state
The state.
std::shared_ptr< vcsn::automaton_editor > edit_
An automaton editor that stores the one being built.
void yypop_(unsigned int n=1)
Pop n symbols the three stacks.
const_iterator end() const
static const signed char yypact_ninf_
"Internal" symbol: element of the stack.
parser(driver &driver__yyarg)
Build a parser object.
virtual int parse()
Parse.
void pop(unsigned int n=1)
S::size_type size() const
std::ostream & dot(const Aut &aut, std::ostream &out, bool dot2tex=false)
void require(bool b, Args &&...args)
If b is not verified, raise an error with args as message.