40 #ifndef YY_HOAYY_PARSEAUT_HH_INCLUDED
41 # define YY_HOAYY_PARSEAUT_HH_INCLUDED
43 #line 31 "parseaut.yy" // lalr1.cc:372
48 #include <unordered_map>
51 #include "twa/formula2bdd.hh"
53 #include "priv/accmap.hh"
54 #include "ltlparse/public.hh"
62 typedef std::map<std::string, bdd> formula_cache;
64 typedef std::pair<int, std::string*> pair;
72 enum label_style_t { Mixed_Labels, State_Labels, Trans_Labels,
74 enum acc_style_t { Mixed_Acc, State_Acc, Trans_Acc };
80 bool declared =
false;
82 spot::location used_loc;
84 spot::parsed_aut_ptr h;
87 named_tgba_t* namer =
nullptr;
88 spot::acc_mapper_int* acc_mapper =
nullptr;
90 std::vector<bdd> guards;
91 std::vector<bdd>::const_iterator cur_guard;
92 std::vector<state_info> info_states;
93 std::vector<std::pair<spot::location, unsigned>> start;
94 std::unordered_map<std::string, bdd> alias;
95 std::unordered_map<std::string, spot::location> props;
96 spot::location states_loc;
97 spot::location ap_loc;
98 spot::location state_label_loc;
99 spot::location accset_loc;
103 std::vector<std::string>* state_names =
nullptr;
104 std::map<unsigned, unsigned> states_map;
105 std::set<int> ap_set;
112 bool has_state_label =
false;
113 bool ignore_more_ap =
false;
115 bool ignore_acc =
false;
117 bool ignore_acc_silent =
false;
118 bool ignore_more_acc =
false;
121 label_style_t label_style = Mixed_Labels;
122 acc_style_t acc_style = Mixed_Acc;
124 bool accept_all_needed =
false;
125 bool accept_all_seen =
false;
126 bool aliased_states =
false;
128 bool deterministic =
false;
129 bool complete =
false;
130 bool trans_acc_seen =
false;
132 std::map<std::string, spot::location> labels;
142 #line 143 "parseaut.hh" // lalr1.cc:372
147 # include <stdexcept>
154 # if (defined __GNUC__ \
155 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
156 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
157 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
159 # define YY_ATTRIBUTE(Spec)
163 #ifndef YY_ATTRIBUTE_PURE
164 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
167 #ifndef YY_ATTRIBUTE_UNUSED
168 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
171 #if !defined _Noreturn \
172 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
173 # if defined _MSC_VER && 1200 <= _MSC_VER
174 # define _Noreturn __declspec (noreturn)
176 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
181 #if ! defined lint || defined __GNUC__
182 # define YYUSE(E) ((void) (E))
187 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
189 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
190 _Pragma ("GCC diagnostic push") \
191 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
192 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
193 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
194 _Pragma ("GCC diagnostic pop")
196 # define YY_INITIAL_VALUE(Value) Value
198 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
199 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
200 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
202 #ifndef YY_INITIAL_VALUE
203 # define YY_INITIAL_VALUE(Value)
213 #line 214 "parseaut.hh" // lalr1.cc:372
227 #line 137 "parseaut.yy" // lalr1.cc:372
234 std::list<pair>* list;
237 #line 238 "parseaut.hh" // lalr1.cc:372
248 syntax_error (
const location_type& l,
const std::string& m);
249 location_type location;
313 template <
typename Base>
327 const location_type& l);
331 const semantic_type& v,
332 const location_type& l);
370 symbol_number_type
type_get ()
const;
373 token_type
token ()
const;
392 virtual int parse ();
403 debug_level_type
debug_level () const YY_ATTRIBUTE_PURE;
411 virtual void error (
const location_type& loc,
const std::string& msg);
422 typedef int state_type;
427 virtual std::string yysyntax_error_ (state_type yystate,
428 symbol_number_type yytoken)
const;
433 state_type yy_lr_goto_state_ (state_type yystate,
int yysym);
437 static bool yy_pact_value_is_default_ (
int yyvalue);
441 static bool yy_table_value_is_error_ (
int yyvalue);
443 static const short int yypact_ninf_;
444 static const signed char yytable_ninf_;
447 static token_number_type yytranslate_ (
int t);
452 static const short int yypact_[];
457 static const unsigned char yydefact_[];
460 static const short int yypgoto_[];
463 static const short int yydefgoto_[];
468 static const short int yytable_[];
470 static const short int yycheck_[];
474 static const unsigned char yystos_[];
477 static const unsigned char yyr1_[];
480 static const unsigned char yyr2_[];
484 static std::string yytnamerr_ (
const char *n);
488 static const char*
const yytname_[];
491 static const unsigned short int yyrline_[];
493 virtual void yy_reduce_print_ (
int r);
495 virtual void yystack_print_ ();
499 std::ostream* yycdebug_;
504 template <
typename Base>
512 template <
typename Base>
523 typedef state_type kind_type;
526 by_state (kind_type s);
529 by_state (
const by_state& other);
532 void move (by_state& that);
536 symbol_number_type type_get ()
const;
545 struct stack_symbol_type : basic_symbol<by_state>
548 typedef basic_symbol<by_state> super_type;
550 stack_symbol_type ();
552 stack_symbol_type (state_type s, symbol_type& sym);
554 stack_symbol_type& operator= (
const stack_symbol_type& that);
558 typedef stack<stack_symbol_type> stack_type;
568 void yypush_ (
const char* m, stack_symbol_type& s);
576 void yypush_ (
const char* m, state_type s, symbol_type& sym);
579 void yypop_ (
unsigned int n = 1);
598 spot::location initial_loc;
604 #line 605 "parseaut.hh" // lalr1.cc:372
609 #endif // !YY_HOAYY_PARSEAUT_HH_INCLUDED
token_number_type type
Definition: parseaut.hh:379
parser(spot::parse_aut_error_list &error_list_yyarg, result_ &res_yyarg, spot::location initial_loc_yyarg)
Build a parser object.
void move(by_type &that)
Steal the symbol type from that.
Definition: parseaut.hh:76
Symbol semantic values.
Definition: parseaut.hh:225
semantic_type value
The semantic value.
Definition: parseaut.hh:340
void move(basic_symbol &s)
Destructive move, s is emptied into this.
std::ostream & debug_stream() const YY_ATTRIBUTE_PURE
The current debugging stream.
Syntax errors thrown from user actions.
Definition: parseaut.hh:246
void set_debug_level(debug_level_type l)
Set the current debugging level.
Definition: formula.hh:515
Definition: parseaut.hh:78
virtual void error(const location_type &loc, const std::string &msg)
token_type token() const
The token.
std::list< parse_aut_error > parse_aut_error_list
A list of parser diagnostics, as filled by parse.
Definition: public.hh:40
token::yytokentype token_type
(External) token type, as returned by yylex.
Definition: parseaut.hh:299
Definition: parseaut.hh:212
Tokens.
Definition: parseaut.hh:253
Type access provider for token (enum) based symbols.
Definition: parseaut.hh:351
token_type kind_type
The symbol type as needed by the constructor.
Definition: parseaut.hh:360
Base super_type
Alias to Base.
Definition: parseaut.hh:317
symbol_number_type type_get() const
unsigned char token_number_type
Internal symbol number for tokens (subsumed by symbol_number_type).
Definition: parseaut.hh:305
basic_symbol< by_type > symbol_type
"External" symbols: returned by the scanner.
Definition: parseaut.hh:383
basic_symbol()
Default constructor.
spot::location location_type
Symbol locations.
Definition: parseaut.hh:243
Definition: parseaut.hh:56
An environment that describes atomic propositions.
Definition: environment.hh:34
A Bison parser.
Definition: parseaut.hh:220
debug_level_type debug_level() const YY_ATTRIBUTE_PURE
The current debugging level.
Definition: parseaut.hh:314
void set_debug_stream(std::ostream &)
Set the current debugging stream.
by_type()
Default constructor.
location_type location
The location.
Definition: parseaut.hh:343
int symbol_number_type
Internal symbol number.
Definition: parseaut.hh:302
int debug_level_type
Type for debugging levels.
Definition: parseaut.hh:401