44#ifndef YY_SEAMS_APREPRO_PARSER_H_INCLUDED
45#define YY_SEAMS_APREPRO_PARSER_H_INCLUDED
53#if defined __cplusplus
54#define YY_CPLUSPLUS __cplusplus
56#define YY_CPLUSPLUS 199711L
60#if 201103L <= YY_CPLUSPLUS
61#define YY_MOVE std::move
62#define YY_MOVE_OR_COPY move
63#define YY_MOVE_REF(Type) Type &&
64#define YY_RVREF(Type) Type &&
65#define YY_COPY(Type) Type
68#define YY_MOVE_OR_COPY copy
69#define YY_MOVE_REF(Type) Type &
70#define YY_RVREF(Type) const Type &
71#define YY_COPY(Type) const Type &
75#if 201103L <= YY_CPLUSPLUS
76#define YY_NOEXCEPT noexcept
80#define YY_NOTHROW throw()
84#if 201703 <= YY_CPLUSPLUS
85#define YY_CONSTEXPR constexpr
90#ifndef YY_ATTRIBUTE_PURE
91#if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
92#define YY_ATTRIBUTE_PURE __attribute__((__pure__))
94#define YY_ATTRIBUTE_PURE
98#ifndef YY_ATTRIBUTE_UNUSED
99#if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
100#define YY_ATTRIBUTE_UNUSED __attribute__((__unused__))
102#define YY_ATTRIBUTE_UNUSED
107#if !defined lint || defined __GNUC__
108#define YY_USE(E) ((void)(E))
114#if defined __GNUC__ && !defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
115#if __GNUC__ * 100 + __GNUC_MINOR__ < 407
116#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
117 _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wuninitialized\"")
119#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
120 _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wuninitialized\"") \
121 _Pragma("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
123#define YY_IGNORE_MAYBE_UNINITIALIZED_END _Pragma("GCC diagnostic pop")
125#define YY_INITIAL_VALUE(Value) Value
127#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
128#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
129#define YY_IGNORE_MAYBE_UNINITIALIZED_END
131#ifndef YY_INITIAL_VALUE
132#define YY_INITIAL_VALUE(Value)
135#if defined __cplusplus && defined __GNUC__ && !defined __ICC && 6 <= __GNUC__
136#define YY_IGNORE_USELESS_CAST_BEGIN \
137 _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wuseless-cast\"")
138#define YY_IGNORE_USELESS_CAST_END _Pragma("GCC diagnostic pop")
140#ifndef YY_IGNORE_USELESS_CAST_BEGIN
141#define YY_IGNORE_USELESS_CAST_BEGIN
142#define YY_IGNORE_USELESS_CAST_END
147#define YY_CAST(Type, Val) static_cast<Type>(Val)
148#define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type>(Val)
150#define YY_CAST(Type, Val) ((Type)(Val))
151#define YY_REINTERPRET_CAST(Type, Val) ((Type)(Val))
155#if defined __cplusplus
156#if 201103L <= __cplusplus
157#define YY_NULLPTR nullptr
162#define YY_NULLPTR ((void *)0)
187#pragma GCC message "bison: do not #define SEAMSSTYPE in C++, use %define api.value.type"
364#if 201103L <= YY_CPLUSPLUS
399#if YY_CPLUSPLUS < 201103L
414#if 201103L <= YY_CPLUSPLUS
455#if 201103L <= YY_CPLUSPLUS
474 void set_debug_stream(std::ostream &);
477 typedef
int debug_level_type;
481 void set_debug_level(debug_level_type l);
486 virtual void error(
const std::string &msg);
512#if YY_CPLUSPLUS < 201103L
551 static std::string
yytnamerr_(
const char *yystr);
591 static const short yyrline_[];
593 virtual void yy_reduce_print_(
int r)
const;
595 virtual void yy_stack_print_()
const;
600 std::ostream *yycdebug_;
605 template <
typename Base>
661#if YY_CPLUSPLUS < 201103L
673 template <
typename T,
typename S = std::vector<T>>
class stack
684#if 201103L <= YY_CPLUSPLUS
743#if YY_CPLUSPLUS < 201103L
#define YY_RVREF(Type)
Definition aprepro_parser.h:70
#define YY_MOVE_REF(Type)
Definition aprepro_parser.h:69
#define YY_NOEXCEPT
Definition aprepro_parser.h:79
#define YY_ATTRIBUTE_PURE
Definition aprepro_parser.h:94
#define YY_NOTHROW
Definition aprepro_parser.h:80
Definition aprepro_parser.h:496
const symbol_type & lookahead() const YY_NOEXCEPT
Definition aprepro_parser.h:499
context(const Parser &yyparser, const symbol_type &yyla)
Definition apr_parser.cc:2093
symbol_kind_type token() const YY_NOEXCEPT
Definition aprepro_parser.h:500
const symbol_type & yyla_
Definition aprepro_parser.h:508
const Parser & yyparser_
Definition aprepro_parser.h:507
slice(const stack &stack, index_type range) YY_NOEXCEPT
Definition aprepro_parser.h:733
const T & operator[](index_type i) const
Definition aprepro_parser.h:735
index_type range_
Definition aprepro_parser.h:739
const stack & stack_
Definition aprepro_parser.h:738
A stack with random access from its top.
Definition aprepro_parser.h:674
std::ptrdiff_t index_type
Definition aprepro_parser.h:680
stack & operator=(const stack &)
Non copyable.
T & operator[](index_type i)
Definition aprepro_parser.h:699
const_iterator begin() const YY_NOEXCEPT
Iterator on top of the stack (going downwards).
Definition aprepro_parser.h:724
void push(YY_MOVE_REF(T) t)
Definition aprepro_parser.h:704
S::const_iterator const_iterator
Definition aprepro_parser.h:678
const_iterator end() const YY_NOEXCEPT
Bottom of the stack.
Definition aprepro_parser.h:727
void pop(std::ptrdiff_t n=1) YY_NOEXCEPT
Pop elements from the stack.
Definition aprepro_parser.h:711
const T & operator[](index_type i) const
Definition aprepro_parser.h:694
stack(size_type n=200) YY_NOEXCEPT
Definition aprepro_parser.h:682
stack(const stack &)
Non copyable.
index_type size() const YY_NOEXCEPT
Definition aprepro_parser.h:721
void clear() YY_NOEXCEPT
Pop all elements from the stack.
Definition aprepro_parser.h:718
std::vector< stack_symbol_type > seq_
Definition aprepro_parser.h:750
S::iterator iterator
Definition aprepro_parser.h:677
S::size_type size_type
Definition aprepro_parser.h:679
Parser & operator=(const Parser &)
Non copyable.
value_type semantic_type
Backward compatibility (Bison 3.8).
Definition aprepro_parser.h:201
static bool yy_table_value_is_error_(int yyvalue) YY_NOEXCEPT
Definition apr_parser.cc:369
stack_type yystack_
The stack.
Definition aprepro_parser.h:757
by_kind by_type
Backward compatibility for a private implementation detail (Bison 3.6).
Definition aprepro_parser.h:444
virtual int parse()
Definition apr_parser.cc:376
static const signed char yytable_ninf_
Definition aprepro_parser.h:543
void yypush_(const char *m, YY_MOVE_REF(stack_symbol_type) sym)
Definition apr_parser.cc:326
token_kind_type token_type
Backward compatibility alias (Bison 3.6).
Definition aprepro_parser.h:276
static bool yy_pact_value_is_default_(int yyvalue) YY_NOEXCEPT
Definition apr_parser.cc:364
static const short yycheck_[]
Definition aprepro_parser.h:577
static const symbol_kind_type YYNTOKENS
The number of tokens.
Definition aprepro_parser.h:348
static const unsigned char yydefact_[]
Definition aprepro_parser.h:564
static symbol_kind_type yytranslate_(int t) YY_NOEXCEPT
Definition apr_parser.cc:2614
static std::string yytnamerr_(const char *yystr)
Convert the symbol name n to a form suitable for a diagnostic.
Definition apr_parser.cc:2059
static const char *const yytname_[]
For a symbol, its name in clear.
Definition aprepro_parser.h:554
void yypop_(int n=1) YY_NOEXCEPT
Pop n symbols from the stack.
Definition apr_parser.cc:343
token::token_kind_type token_kind_type
Token kind, as returned by yylex.
Definition aprepro_parser.h:273
static const signed char yyr2_[]
Definition aprepro_parser.h:587
static const short yypgoto_[]
Definition aprepro_parser.h:567
virtual std::string yysyntax_error_(const context &yyctx) const
Definition apr_parser.cc:2167
int yy_syntax_error_arguments_(const context &yyctx, symbol_kind_type yyarg[], int yyargn) const
The arguments of the error message.
Definition apr_parser.cc:2129
static const signed char yystos_[]
Definition aprepro_parser.h:581
stack< stack_symbol_type > stack_type
Stack type.
Definition aprepro_parser.h:754
@ yyfinal_
Termination state number.
Definition aprepro_parser.h:781
@ yylast_
Last index in yytable_.
Definition aprepro_parser.h:779
@ yynnts_
Number of nonterminal symbols.
Definition aprepro_parser.h:780
static const unsigned char yydefgoto_[]
Definition aprepro_parser.h:570
symbol_kind::symbol_kind_type symbol_kind_type
(Internal) symbol kind.
Definition aprepro_parser.h:345
short state_type
Stored state numbers (used for stacks).
Definition aprepro_parser.h:520
Parser(class Aprepro &aprepro_yyarg)
Build a parser object.
Definition apr_parser.cc:164
static const short yytable_[]
Definition aprepro_parser.h:575
static state_type yy_lr_goto_state_(state_type yystate, int yysym)
Definition apr_parser.cc:355
class Aprepro & aprepro
Definition aprepro_parser.h:785
static const signed char yypact_ninf_
Definition aprepro_parser.h:542
static std::string symbol_name(symbol_kind_type yysymbol)
Definition apr_parser.cc:2087
static const short yypact_[]
Definition aprepro_parser.h:559
virtual void error(const std::string &msg)
Definition apr_parser.cc:2646
static const signed char yyr1_[]
Definition aprepro_parser.h:584
Parser(const Parser &)
Non copyable.
void yy_destroy_(const char *yymsg, basic_symbol< Base > &yysym) const
Reclaim the memory associated to a symbol.
Definition apr_parser.cc:300
int operator()()
Definition apr_parser.cc:374
Definition apr_aprepro.cc:57
Definition aprepro_parser.h:357
basic_symbol(const basic_symbol &that)
Copy constructor.
Definition apr_parser.cc:184
void move(basic_symbol &s)
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
Definition apr_parser.cc:201
value_type value
Definition aprepro_parser.h:396
Base super_type
Alias to Base.
Definition aprepro_parser.h:359
~basic_symbol()
Destroy the symbol.
Definition aprepro_parser.h:378
std::string name() const YY_NOEXCEPT
The user-facing name of this symbol.
Definition aprepro_parser.h:384
basic_symbol(typename Base::kind_type t, YY_RVREF(value_type) v)
Constructor for symbols with semantic value.
Definition apr_parser.cc:195
bool empty() const YY_NOEXCEPT
basic_symbol(typename Base::kind_type t)
Constructor for valueless symbols.
Definition apr_parser.cc:190
basic_symbol() YY_NOEXCEPT
Default constructor.
Definition aprepro_parser.h:362
basic_symbol & operator=(const basic_symbol &that)
Assignment operator.
void clear() YY_NOEXCEPT
Definition aprepro_parser.h:381
Type access provider for token (enum) based symbols.
Definition aprepro_parser.h:407
void move(by_kind &that)
Steal the symbol kind from that.
Definition apr_parser.cc:230
by_kind() YY_NOEXCEPT
Default constructor.
Definition apr_parser.cc:218
void clear() YY_NOEXCEPT
Record that this symbol is empty.
Definition apr_parser.cc:228
symbol_kind_type type_get() const YY_NOEXCEPT
Backward compatibility (Bison 3.6).
Definition apr_parser.cc:238
symbol_kind_type kind() const YY_NOEXCEPT
Definition apr_parser.cc:236
token_kind_type kind_type
The symbol kind as needed by the constructor.
Definition aprepro_parser.h:409
symbol_kind_type kind_
Definition aprepro_parser.h:440
void clear() YY_NOEXCEPT
Record that this symbol is empty.
Definition apr_parser.cc:245
symbol_kind_type kind() const YY_NOEXCEPT
Definition apr_parser.cc:255
void move(by_state &that)
Steal the symbol kind from that.
Definition apr_parser.cc:247
state_type kind_type
The symbol kind as needed by the constructor.
Definition aprepro_parser.h:623
by_state() YY_NOEXCEPT
Default constructor.
Definition apr_parser.cc:241
@ empty_state
Definition aprepro_parser.h:643
state_type state
Definition aprepro_parser.h:647
"Internal" symbol: element of the stack.
Definition aprepro_parser.h:652
stack_symbol_type & operator=(stack_symbol_type &that)
Definition apr_parser.cc:289
basic_symbol< by_state > super_type
Superclass.
Definition aprepro_parser.h:654
stack_symbol_type()
Construct an empty symbol.
Definition apr_parser.cc:263
Symbol kinds.
Definition aprepro_parser.h:280
symbol_kind_type
Definition aprepro_parser.h:281
@ S_MOD
Definition aprepro_parser.h:326
@ S_exp
Definition aprepro_parser.h:340
@ S_POW
Definition aprepro_parser.h:329
@ S_EQ_PLUS
Definition aprepro_parser.h:307
@ S_RPAR
Definition aprepro_parser.h:300
@ S_RBRACK
Definition aprepro_parser.h:302
@ S_LE
Definition aprepro_parser.h:318
@ S_EQ_DIV
Definition aprepro_parser.h:310
@ S_YYACCEPT
Definition aprepro_parser.h:334
@ S_IMMVAR
Definition aprepro_parser.h:292
@ S_NOT
Definition aprepro_parser.h:328
@ S_RBRACE
Definition aprepro_parser.h:304
@ S_QUEST
Definition aprepro_parser.h:312
@ YYNTOKENS
Number of tokens.
Definition aprepro_parser.h:282
@ S_LOR
Definition aprepro_parser.h:314
@ S_SUB
Definition aprepro_parser.h:323
@ S_GE
Definition aprepro_parser.h:319
@ S_LAND
Definition aprepro_parser.h:315
@ S_49_n_
Definition aprepro_parser.h:333
@ S_NUM
Definition aprepro_parser.h:287
@ S_FNCT
Definition aprepro_parser.h:295
@ S_bool
Definition aprepro_parser.h:337
@ S_UNDVAR
Definition aprepro_parser.h:289
@ S_EQUAL
Definition aprepro_parser.h:306
@ S_EQ_MINUS
Definition aprepro_parser.h:308
@ S_AVAR
Definition aprepro_parser.h:294
@ S_LBRACE
Definition aprepro_parser.h:303
@ S_input
Definition aprepro_parser.h:335
@ S_SFNCT
Definition aprepro_parser.h:296
@ S_IMMSVAR
Definition aprepro_parser.h:293
@ S_PLU
Definition aprepro_parser.h:322
@ S_VAR
Definition aprepro_parser.h:290
@ S_sexp
Definition aprepro_parser.h:339
@ S_LPAR
Definition aprepro_parser.h:299
@ S_YYEMPTY
Definition aprepro_parser.h:283
@ S_COLON
Definition aprepro_parser.h:313
@ S_COMMA
Definition aprepro_parser.h:298
@ S_YYUNDEF
Definition aprepro_parser.h:286
@ S_AFNCT
Definition aprepro_parser.h:297
@ S_DIV
Definition aprepro_parser.h:324
@ S_line
Definition aprepro_parser.h:336
@ S_LT
Definition aprepro_parser.h:316
@ S_SEMI
Definition aprepro_parser.h:305
@ S_LBRACK
Definition aprepro_parser.h:301
@ S_NE
Definition aprepro_parser.h:321
@ S_EQ_TIME
Definition aprepro_parser.h:309
@ S_DEC
Definition aprepro_parser.h:331
@ S_TIM
Definition aprepro_parser.h:325
@ S_SVAR
Definition aprepro_parser.h:291
@ S_YYEOF
Definition aprepro_parser.h:284
@ S_EQ
Definition aprepro_parser.h:320
@ S_INC
Definition aprepro_parser.h:330
@ S_aexp
Definition aprepro_parser.h:338
@ S_UNARY
Definition aprepro_parser.h:327
@ S_GT
Definition aprepro_parser.h:317
@ S_QSTRING
Definition aprepro_parser.h:288
@ S_YYerror
Definition aprepro_parser.h:285
@ S_CONCAT
Definition aprepro_parser.h:332
@ S_EQ_POW
Definition aprepro_parser.h:311
"External" symbols: returned by the scanner.
Definition aprepro_parser.h:448
Syntax errors thrown from user actions.
Definition aprepro_parser.h:205
syntax_error(const syntax_error &s)
Definition aprepro_parser.h:208
~syntax_error() YY_NOEXCEPT YY_NOTHROW
Definition apr_parser.cc:176
syntax_error(const std::string &m)
Definition aprepro_parser.h:206
Token kinds.
Definition aprepro_parser.h:215
token_kind_type
Definition aprepro_parser.h:216
@ QSTRING
Definition aprepro_parser.h:222
@ RBRACK
Definition aprepro_parser.h:236
@ NE
Definition aprepro_parser.h:255
@ END
Definition aprepro_parser.h:218
@ SVAR
Definition aprepro_parser.h:225
@ CONCAT
Definition aprepro_parser.h:266
@ FNCT
Definition aprepro_parser.h:229
@ LT
Definition aprepro_parser.h:250
@ MOD
Definition aprepro_parser.h:260
@ RPAR
Definition aprepro_parser.h:234
@ GT
Definition aprepro_parser.h:251
@ EQ_DIV
Definition aprepro_parser.h:244
@ EQ_MINUS
Definition aprepro_parser.h:242
@ QUEST
Definition aprepro_parser.h:246
@ IMMVAR
Definition aprepro_parser.h:226
@ EQ
Definition aprepro_parser.h:254
@ COMMA
Definition aprepro_parser.h:232
@ NUM
Definition aprepro_parser.h:221
@ GE
Definition aprepro_parser.h:253
@ PLU
Definition aprepro_parser.h:256
@ POW
Definition aprepro_parser.h:263
@ INC
Definition aprepro_parser.h:264
@ LAND
Definition aprepro_parser.h:249
@ AFNCT
Definition aprepro_parser.h:231
@ EQUAL
Definition aprepro_parser.h:240
@ DEC
Definition aprepro_parser.h:265
@ VAR
Definition aprepro_parser.h:224
@ TIM
Definition aprepro_parser.h:259
@ LBRACK
Definition aprepro_parser.h:235
@ UNARY
Definition aprepro_parser.h:261
@ SEMI
Definition aprepro_parser.h:239
@ LBRACE
Definition aprepro_parser.h:237
@ COLON
Definition aprepro_parser.h:247
@ EQ_TIME
Definition aprepro_parser.h:243
@ RBRACE
Definition aprepro_parser.h:238
@ EQ_POW
Definition aprepro_parser.h:245
@ IMMSVAR
Definition aprepro_parser.h:227
@ SUB
Definition aprepro_parser.h:257
@ EQ_PLUS
Definition aprepro_parser.h:241
@ SFNCT
Definition aprepro_parser.h:230
@ NOT
Definition aprepro_parser.h:262
@ LE
Definition aprepro_parser.h:252
@ LOR
Definition aprepro_parser.h:248
@ UNDVAR
Definition aprepro_parser.h:223
@ SEAMSEMPTY
Definition aprepro_parser.h:217
@ SEAMSerror
Definition aprepro_parser.h:219
@ AVAR
Definition aprepro_parser.h:228
@ DIV
Definition aprepro_parser.h:258
@ LPAR
Definition aprepro_parser.h:233
@ SEAMSUNDEF
Definition aprepro_parser.h:220
token_kind_type yytokentype
Backward compatibility alias (Bison 3.6).
Definition aprepro_parser.h:269
Definition apr_symrec.h:17
Definition apr_symrec.h:26
Symbol semantic values.
Definition aprepro_parser.h:192
double val
Definition aprepro_parser.h:194
struct symrec * tptr
Definition aprepro_parser.h:195
char * string
Definition aprepro_parser.h:196
struct array * arrval
Definition aprepro_parser.h:197