40 #ifndef YY_YY_USERS_AKIM_SRC_LRDE_VAUCANSON2_LIB_VCSN_DOT_PARSE_HH_INCLUDED
41 # define YY_YY_USERS_AKIM_SRC_LRDE_VAUCANSON2_LIB_VCSN_DOT_PARSE_HH_INCLUDED
43 #line 17 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:372
48 #include <boost/flyweight.hpp>
49 #include <boost/flyweight/no_tracking.hpp>
68 boost::flyweight<std::string, boost::flyweights::no_tracking>;
90 #line 91 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.hh" // lalr1.cc:372
102 # define YYASSERT assert
107 # if (defined __GNUC__ \
108 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
109 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
110 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
112 # define YY_ATTRIBUTE(Spec)
116 #ifndef YY_ATTRIBUTE_PURE
117 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
120 #ifndef YY_ATTRIBUTE_UNUSED
121 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
124 #if !defined _Noreturn \
125 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
126 # if defined _MSC_VER && 1200 <= _MSC_VER
127 # define _Noreturn __declspec (noreturn)
129 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
134 #if ! defined lint || defined __GNUC__
135 # define YYUSE(E) ((void) (E))
140 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
142 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
143 _Pragma ("GCC diagnostic push") \
144 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
145 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
146 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
147 _Pragma ("GCC diagnostic pop")
149 # define YY_INITIAL_VALUE(Value) Value
151 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
152 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
153 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
155 #ifndef YY_INITIAL_VALUE
156 # define YY_INITIAL_VALUE(Value)
164 #line 11 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:372
165 namespace vcsn {
namespace detail {
namespace dot {
166 #line 167 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.hh" // lalr1.cc:372
186 template <
typename T>
190 new (yyas_<T> ()) T (t);
198 template <
typename T>
202 return *
new (yyas_<T> ()) T;
206 template <
typename T>
210 return *
new (yyas_<T> ()) T (t);
214 template <
typename T>
222 template <
typename T>
237 template <
typename T>
241 std::swap (as<T> (), other.
as<T> ());
247 template <
typename T>
257 template <
typename T>
261 build<T> (other.
as<T> ());
265 template <
typename T>
278 template <
typename T>
283 return static_cast<T*
> (yyp);
287 template <
typename T>
292 return static_cast<const T*
> (yyp);
388 template <
typename Base>
535 virtual int parse ();
627 static std::string
yytnamerr_ (
const char *n);
647 template <
typename Base>
655 template <
typename Base>
722 void yypop_ (
unsigned int n = 1);
751 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
752 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
753 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
754 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
755 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
756 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
757 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
758 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
759 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
760 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
761 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
762 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
763 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
764 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
765 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
766 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
767 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
768 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
769 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
770 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
771 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
772 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
773 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
774 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
775 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
776 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
777 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
780 const unsigned int user_token_number_max_ = 272;
783 if (static_cast<int>(t) <=
yyeof_)
785 else if (static_cast<unsigned int> (t) <= user_token_number_max_)
786 return translate_table[t];
793 : std::runtime_error (m)
798 template <
typename Base>
804 template <
typename Base>
811 switch (other.type_get ())
844 template <
typename Base>
852 switch (this->type_get ())
886 template <
typename Base>
893 template <
typename Base>
900 template <
typename Base>
907 template <
typename Base>
915 template <
typename Base>
933 value.template destroy< paths_t > ();
941 value.template destroy< states_t > ();
953 value.template destroy< string_t > ();
962 template <
typename Base>
968 switch (this->type_get ())
1039 const unsigned short int
1042 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1043 265, 266, 267, 268, 269, 270, 271, 272
1045 return static_cast<token_type> (yytoken_number_[type]);
1139 #line 11 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:372
1141 #line 1142 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.hh" // lalr1.cc:372
1145 #line 65 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.yy" // lalr1.cc:372
1147 #define YY_DECL_(Class) \
1148 parser::symbol_type Class lex(driver& driver_)
1149 #define YY_DECL YY_DECL_(yyFlexLexer::)
1151 #line 1152 "/Users/akim/src/lrde/vaucanson2/lib/vcsn/dot/parse.hh" // lalr1.cc:372
1154 #endif // !YY_YY_USERS_AKIM_SRC_LRDE_VAUCANSON2_LIB_VCSN_DOT_PARSE_HH_INCLUDED
Type access provider for token (enum) based symbols.
virtual void yystack_print_()
Print the state stack on the debug stream.
char yyraw[S]
A buffer large enough to store any of the semantic values.
Type access provider for state based symbols.
static symbol_type make_DIGRAPH(const location_type &l)
union vcsn::detail::dot::variant::@1 yybuffer_
void move(by_state &that)
Steal the symbol type from that.
void move(self_type &other)
Move the content of other to this.
location_type location
The location.
variant(const T &t)
Construct and fill.
static symbol_type make_EDGE(const location_type &l)
static const signed char yytable_ninf_
token_type token() const
The token.
static bool yy_pact_value_is_default_(int yyvalue)
Whether the given yypact_ value indicates a defaulted state.
symbol_number_type type_get() const
The (internal) type number (corresponding to state).
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 symbol_type make_NODE(const location_type &l)
char dummy2[sizeof(states_t)]
static symbol_type make_GRAPH(const location_type &l)
static const unsigned char yyr1_[]
T * yyas_()
Accessor to raw memory as T.
State and public interface for Dot parsing.
syntax_error(const location_type &l, const std::string &m)
static symbol_type make_COLON(const location_type &l)
vcsn::rat::location location_type
Symbol locations.
static symbol_type make_RBRACE(const location_type &l)
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_[]
void destroy()
Destroy the stored T.
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.
long double yyalign_me
Strongest alignment constraints.
Termination state number.
static std::string yytnamerr_(const char *n)
Convert the symbol name n to a form suitable for a diagnostic.
A char[S] buffer to store and retrieve objects.
void swap(self_type &other)
Swap the content with other, of same type.
static const signed char yypgoto_[]
T & build()
Instantiate an empty T in here.
state_type kind_type
The symbol type as needed by the constructor.
basic_symbol< by_type > symbol_type
"External" symbols: returned by the scanner.
variant()
Empty construction.
token_type kind_type
The symbol type as needed by the constructor.
static symbol_type make_EQ(const location_type &l)
static const unsigned short int yyrline_[]
static const unsigned char yystos_[]
stack< stack_symbol_type > stack_type
Stack type.
static symbol_type make_COMMA(const location_type &l)
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
char dummy3[sizeof(string_t)]
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.
void copy(const self_type &other)
Copy the content of other to this.
state_type yy_lr_goto_state_(state_type yystate, int yysym)
Compute post-reduction state.
by_state()
Default constructor.
#define YY_ATTRIBUTE_PURE
self_type & operator=(const self_type &)
Prohibit blind copies.
~variant()
Destruction, allowed only if empty.
static symbol_type make_LBRACKET(const location_type &l)
basic_symbol()
Default constructor.
static symbol_type make_END(const location_type &l)
Number of nonterminal symbols.
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.
const T & as() const
Const accessor to a built T (for printer).
int state_type
State numbers.
by_type()
Default constructor.
An auxiliary type to compute the largest semantic type.
variant< sizeof(union_type)> semantic_type
Symbol semantic values.
basic_symbol & operator=(const basic_symbol &other)
Assignment operator.
semantic_type value
The semantic value.
symbol_number_type type_get() const
The (internal) type number (corresponding to type).
const T * yyas_() const
Const accessor to raw memory as T.
static const signed char yycheck_[]
static symbol_type make_LBRACE(const location_type &l)
Define the vcsn::rat::location class.
std::vector< string_t > states_t
basic_symbol< by_state > super_type
Superclass.
static symbol_type make_ID(const string_t &v, const location_type &l)
void yy_print_(std::ostream &yyo, const basic_symbol< Base > &yysym) const
Display a symbol type, value and location.
int symbol_number_type
Internal symbol number.
Provide a variadic mul on top of a binary mul(), and one().
Syntax errors thrown from user actions.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
std::vector< std::pair< string_t, string_t >> transitions_t
stack_type yystack_
The stack.
unsigned char token_number_type
Internal symbol number for tokens (subsumed by symbol_number_type).
variant< S > self_type
Type of *this.
static const signed char yydefgoto_[]
token_number_type type
The symbol type.
char dummy1[sizeof(paths_t)]
void set_debug_level(debug_level_type l)
Set the current debugging level.
T & build(const T &t)
Instantiate a T in here from t.
void move(by_type &that)
Steal the symbol type from that.
transitions_t transitions
static token_number_type yytranslate_(token_type t)
Convert a scanner token number t to a symbol number.
state_type state
The state.
void yypop_(unsigned int n=1)
Pop n symbols the three stacks.
"Internal" symbol: element of the stack.
static const signed char yypact_ninf_
Define the vcsn::detail::dot::stack class.
parser(driver &driver__yyarg)
Build a parser object.
virtual int parse()
Parse.
parser & operator=(const parser &)
Base super_type
Alias to Base.
std::ostream & dot(const Aut &aut, std::ostream &out, bool dot2tex=false)
static symbol_type make_RBRACKET(const location_type &l)
static symbol_type make_SEMI(const location_type &l)
static symbol_type make_ARROW(const location_type &l)
token::yytokentype token_type
(External) token type, as returned by yylex.