40 #ifndef YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_DOT_PARSE_HH_INCLUDED
41 # define YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_DOT_PARSE_HH_INCLUDED
43 #line 17 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.yy" // lalr1.cc:377
88 #line 89 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.hh" // lalr1.cc:377
101 # define YYASSERT assert
106 # if (defined __GNUC__ \
107 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
108 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
109 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
111 # define YY_ATTRIBUTE(Spec)
115 #ifndef YY_ATTRIBUTE_PURE
116 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
119 #ifndef YY_ATTRIBUTE_UNUSED
120 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
123 #if !defined _Noreturn \
124 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
125 # if defined _MSC_VER && 1200 <= _MSC_VER
126 # define _Noreturn __declspec (noreturn)
128 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
133 #if ! defined lint || defined __GNUC__
134 # define YYUSE(E) ((void) (E))
139 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
141 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
142 _Pragma ("GCC diagnostic push") \
143 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
144 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
145 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
146 _Pragma ("GCC diagnostic pop")
148 # define YY_INITIAL_VALUE(Value) Value
150 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
151 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
152 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
154 #ifndef YY_INITIAL_VALUE
155 # define YY_INITIAL_VALUE(Value)
163 #line 11 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.yy" // lalr1.cc:377
164 namespace vcsn {
namespace detail {
namespace dot {
165 #line 166 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.hh" // lalr1.cc:377
185 template <
typename T>
189 new (yyas_<T> ()) T (t);
197 template <
typename T>
201 return *
new (yyas_<T> ()) T;
205 template <
typename T>
209 return *
new (yyas_<T> ()) T (t);
213 template <
typename T>
221 template <
typename T>
236 template <
typename T>
240 std::swap (as<T> (), other.
as<T> ());
246 template <
typename T>
256 template <
typename T>
260 build<T> (other.
as<T> ());
264 template <
typename T>
277 template <
typename T>
282 return static_cast<T*
> (yyp);
286 template <
typename T>
291 return static_cast<const T*
> (yyp);
345 syntax_error (
const location_type& l,
const std::string& m);
391 template <
typename Base>
405 basic_symbol (
typename Base::kind_type t,
const location_type& l);
416 const semantic_type&
v,
417 const location_type& l);
465 symbol_number_type
type_get ()
const;
468 token_type
token ()
const;
522 make_EQ (
const location_type& l);
551 virtual int parse ();
570 virtual void error (
const location_type& loc,
const std::string& msg);
587 const symbol_type& yyla)
const;
643 static std::string
yytnamerr_ (
const char *n);
663 template <
typename Base>
671 template <
typename Base>
698 symbol_number_type
type_get ()
const;
740 void yypush_ (
const char* m, state_type s, symbol_type& sym);
743 void yypop_ (
unsigned int n = 1);
768 const token_number_type
771 0, 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, 2, 2, 2, 2,
777 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
778 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
779 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
780 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
781 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
782 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
783 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
784 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
785 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
786 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
787 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
788 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
789 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
790 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
791 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
792 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
793 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
794 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
795 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
796 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
797 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
800 const unsigned int user_token_number_max_ = 272;
801 const token_number_type undef_token_ = 2;
803 if (static_cast<int>(t) <=
yyeof_)
805 else if (static_cast<unsigned int> (t) <= user_token_number_max_)
806 return translate_table[t];
813 :
std::runtime_error (m)
818 template <
typename Base>
824 template <
typename Base>
831 switch (other.type_get ())
864 template <
typename Base>
872 switch (this->type_get ())
906 template <
typename Base>
913 template <
typename Base>
920 template <
typename Base>
927 template <
typename Base>
935 template <
typename Base>
942 template <
typename Base>
948 symbol_number_type yytype = this->type_get ();
961 value.template destroy< paths_t > ();
969 value.template destroy< states_t > ();
981 value.template destroy< string_t > ();
991 template <
typename Base>
999 template <
typename Base>
1004 super_type::move(s);
1005 switch (this->type_get ())
1083 const unsigned short int
1086 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1087 265, 266, 267, 268, 269, 270, 271, 272
1089 return static_cast<token_type
> (yytoken_number_[
type]);
1189 #line 11 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.yy" // lalr1.cc:377
1191 #line 1192 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.hh" // lalr1.cc:377
1195 #line 63 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.yy" // lalr1.cc:377
1197 #define YY_DECL_(Class) \
1198 parser::symbol_type Class lex(driver& driver_)
1199 #define YY_DECL YY_DECL_(yyFlexLexer::)
1201 #line 1202 "/Users/akim/src/lrde/2/lib/vcsn/dot/parse.hh" // lalr1.cc:377
1204 #endif // !YY_YY_USERS_AKIM_SRC_LRDE_2_LIB_VCSN_DOT_PARSE_HH_INCLUDED
static const signed char yypact_[]
static token_number_type yytranslate_(token_type t)
Convert a scanner token number t to a symbol number.
static bool yy_table_value_is_error_(int yyvalue)
Whether the given yytable_ value indicates a syntax error.
unsigned char token_number_type
Internal symbol number for tokens (subsumed by symbol_number_type).
static symbol_type make_RBRACKET(const location_type &l)
Define the vcsn::detail::dot::stack class.
symbol_number_type type_get() const
The (internal) type number (corresponding to state).
static const unsigned char yystos_[]
stack< stack_symbol_type > stack_type
Stack type.
static const signed char yypgoto_[]
parser & operator=(const parser &)
static symbol_type make_NODE(const location_type &l)
#define YY_ATTRIBUTE_PURE
static const signed char yydefgoto_[]
Define the vcsn::rat::location class.
static const signed char yypact_ninf_
void yypush_(const char *m, stack_symbol_type &s)
Push a new state on the stack.
int debug_level_type
Type for debugging levels.
basic_symbol< by_state > super_type
Superclass.
basic_symbol()
Default constructor.
state_type state
The state.
virtual void yy_reduce_print_(int r)
Report on the debug stream that the rule r is going to be reduced.
void yy_print_(std::ostream &yyo, const basic_symbol< Base > &yysym) const
Display a symbol type, value and location.
const T & as() const
Const accessor to a built T (for printer).
T & build()
Instantiate an empty T in here.
by_state()
Default constructor.
void move(self_type &other)
Move the content of other to this.
virtual void error(const location_type &loc, const std::string &msg)
Report a syntax error.
debug_level_type debug_level() const
The current debugging level.
void copy(const self_type &other)
Copy the content of other to this.
variant(const T &t)
Construct and fill.
virtual void yystack_print_()
Print the state stack on the debug stream.
basic_symbol< by_type > symbol_type
"External" symbols: returned by the scanner.
~variant()
Destruction, allowed only if empty.
token::yytokentype token_type
(External) token type, as returned by yylex.
static const unsigned short int yyrline_[]
Provide a variadic mul on top of a binary mul(), and one().
virtual std::string yysyntax_error_(state_type yystate, const symbol_type &yyla) const
Generate an error message.
parser(driver &driver__yyarg)
Build a parser object.
static symbol_type make_DIGRAPH(const location_type &l)
basic_symbol & operator=(const basic_symbol &other)
Assignment operator.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
~basic_symbol()
Destroy the symbol.
state_type yy_lr_goto_state_(state_type yystate, int yysym)
Compute post-reduction state.
static symbol_type make_LBRACKET(const location_type &l)
Type access provider for token (enum) based symbols.
void set_debug_stream(std::ostream &)
Set the current debugging stream.
std::string type(const automaton &a)
The implementation type of a.
void yy_destroy_(const char *yymsg, basic_symbol< Base > &yysym) const
Reclaim the memory associated to a symbol.
by_type()
Default constructor.
T & build(const T &t)
Instantiate a T in here from t.
token_type kind_type
The symbol type as needed by the constructor.
A char[S] buffer to store and retrieve objects.
char yyraw[S]
A buffer large enough to store any of the semantic values.
void yypop_(unsigned int n=1)
Pop n symbols the three stacks.
std::vector< string_t > states_t
static const char *const yytname_[]
For a symbol, its name in clear.
static const signed char yytable_[]
static symbol_type make_COLON(const location_type &l)
vcsn::rat::location location_type
Symbol locations.
variant< S > self_type
Type of *this.
static const unsigned char yyr1_[]
char dummy3[sizeof(string_t)]
variant()
Empty construction.
An auxiliary type to compute the largest semantic type.
static const unsigned char yydefact_[]
Base super_type
Alias to Base.
virtual int parse()
Parse.
static std::string yytnamerr_(const char *n)
Convert the symbol name n to a form suitable for a diagnostic.
std::ostream & debug_stream() const
The current debugging stream.
Syntax errors thrown from user actions.
state_type kind_type
The symbol type as needed by the constructor.
std::ostream & dot(const Aut &aut, std::ostream &out=std::cout, format fmt={}, bool mathjax=false)
Print an automaton in Graphviz's Dot format.
std::vector< std::pair< string_t, string_t >> transitions_t
void move(basic_symbol &s)
Destructive move, s is emptied into this.
Termination state number.
static symbol_type make_EQ(const location_type &l)
syntax_error(const location_type &l, const std::string &m)
location_type location
The location.
static symbol_type make_END(const location_type &l)
"Internal" symbol: element of the stack.
static symbol_type make_COMMA(const location_type &l)
static const unsigned char yyr2_[]
static symbol_type make_ARROW(const location_type &l)
void clear()
Destroy contents, and record that is empty.
stack_symbol_type()
Construct an empty symbol.
static symbol_type make_RBRACE(const location_type &l)
void move(by_type &that)
Steal the symbol type from that.
static symbol_type make_GRAPH(const location_type &l)
static const signed char yycheck_[]
char dummy2[sizeof(states_t)]
token_type token() const
The token.
static symbol_type make_EDGE(const location_type &l)
long double yyalign_me
Strongest alignment constraints.
void move(by_state &that)
Steal the symbol type from that.
static symbol_type make_SEMI(const location_type &l)
void destroy()
Destroy the stored T.
State and public interface for Dot parsing.
const T * yyas_() const
Const accessor to raw memory as T.
char dummy1[sizeof(paths_t)]
variant< sizeof(union_type)> semantic_type
Symbol semantic values.
int state_type
State numbers.
stack_symbol_type & operator=(const stack_symbol_type &that)
Assignment, needed by push_back.
void clear()
Record that this symbol is empty.
T * yyas_()
Accessor to raw memory as T.
static const signed char yytable_ninf_
void clear()
Record that this symbol is empty.
T & as()
Accessor to a built T.
self_type & operator=(const self_type &)
Prohibit blind copies.
Number of nonterminal symbols.
void set_debug_level(debug_level_type l)
Set the current debugging level.
semantic_type value
The semantic value.
union vcsn::detail::dot::variant::@2 yybuffer_
stack_type yystack_
The stack.
bool empty() const
Whether empty.
static symbol_type make_SUBGRAPH(const location_type &l)
static symbol_type make_ID(const string_t &v, const location_type &l)
symbol_number_type type_get() const
The (internal) type number (corresponding to type).
transitions_t transitions
int symbol_number_type
Symbol type: an internal symbol number.
static symbol_type make_LBRACE(const location_type &l)
static bool yy_pact_value_is_default_(int yyvalue)
Whether the given yypact_ value indicates a defaulted state.
Type access provider for state based symbols.
void swap(self_type &other)
Swap the content with other, of same type.