1*c42dbd0eSchristos /* A Bison parser, made by GNU Bison 3.8.2. */
2e6c7e151Schristos
3e6c7e151Schristos /* Bison implementation for Yacc-like parsers in C
4e6c7e151Schristos
5*c42dbd0eSchristos Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6*c42dbd0eSchristos Inc.
7e6c7e151Schristos
8e6c7e151Schristos This program is free software: you can redistribute it and/or modify
9e6c7e151Schristos it under the terms of the GNU General Public License as published by
10e6c7e151Schristos the Free Software Foundation, either version 3 of the License, or
11e6c7e151Schristos (at your option) any later version.
12e6c7e151Schristos
13e6c7e151Schristos This program is distributed in the hope that it will be useful,
14e6c7e151Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of
15e6c7e151Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16e6c7e151Schristos GNU General Public License for more details.
17e6c7e151Schristos
18e6c7e151Schristos You should have received a copy of the GNU General Public License
19*c42dbd0eSchristos along with this program. If not, see <https://www.gnu.org/licenses/>. */
20e6c7e151Schristos
21e6c7e151Schristos /* As a special exception, you may create a larger work that contains
22e6c7e151Schristos part or all of the Bison parser skeleton and distribute that work
23e6c7e151Schristos under terms of your choice, so long as that work isn't itself a
24e6c7e151Schristos parser generator using the skeleton or a modified version thereof
25e6c7e151Schristos as a parser skeleton. Alternatively, if you modify or redistribute
26e6c7e151Schristos the parser skeleton itself, you may (at your option) remove this
27e6c7e151Schristos special exception, which will cause the skeleton and the resulting
28e6c7e151Schristos Bison output files to be licensed under the GNU General Public
29e6c7e151Schristos License without this special exception.
30e6c7e151Schristos
31e6c7e151Schristos This special exception was added by the Free Software Foundation in
32e6c7e151Schristos version 2.2 of Bison. */
33e6c7e151Schristos
34e6c7e151Schristos /* C LALR(1) parser skeleton written by Richard Stallman, by
35e6c7e151Schristos simplifying the original so-called "semantic" parser. */
36e6c7e151Schristos
37*c42dbd0eSchristos /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38*c42dbd0eSchristos especially those whose name start with YY_ or yy_. They are
39*c42dbd0eSchristos private implementation details that can be changed or removed. */
40*c42dbd0eSchristos
41e6c7e151Schristos /* All symbols defined below should begin with yy or YY, to avoid
42e6c7e151Schristos infringing on user name space. This should be done even for local
43e6c7e151Schristos variables, as they might otherwise be expanded by user macros.
44e6c7e151Schristos There are some unavoidable exceptions within include files to
45e6c7e151Schristos define necessary library symbols; they are noted "INFRINGES ON
46e6c7e151Schristos USER NAME SPACE" below. */
47e6c7e151Schristos
48*c42dbd0eSchristos /* Identify Bison output, and Bison version. */
49*c42dbd0eSchristos #define YYBISON 30802
50e6c7e151Schristos
51*c42dbd0eSchristos /* Bison version string. */
52*c42dbd0eSchristos #define YYBISON_VERSION "3.8.2"
53e6c7e151Schristos
54e6c7e151Schristos /* Skeleton name. */
55e6c7e151Schristos #define YYSKELETON_NAME "yacc.c"
56e6c7e151Schristos
57e6c7e151Schristos /* Pure parsers. */
58e6c7e151Schristos #define YYPURE 1
59e6c7e151Schristos
60e6c7e151Schristos /* Push parsers. */
61e6c7e151Schristos #define YYPUSH 0
62e6c7e151Schristos
63e6c7e151Schristos /* Pull parsers. */
64e6c7e151Schristos #define YYPULL 1
65e6c7e151Schristos
66e6c7e151Schristos
67e6c7e151Schristos
68e6c7e151Schristos
69*c42dbd0eSchristos /* First part of user prologue. */
70*c42dbd0eSchristos #line 26 "yyscript.y"
71e6c7e151Schristos
72e6c7e151Schristos
73e6c7e151Schristos #include "config.h"
74e6c7e151Schristos
75e6c7e151Schristos #include <stddef.h>
76e6c7e151Schristos #include <stdint.h>
77e6c7e151Schristos #include <stdlib.h>
78e6c7e151Schristos #include <string.h>
79e6c7e151Schristos
80e6c7e151Schristos #include "script-c.h"
81e6c7e151Schristos
82e6c7e151Schristos
83*c42dbd0eSchristos #line 84 "yyscript.c"
84e6c7e151Schristos
85*c42dbd0eSchristos # ifndef YY_CAST
86*c42dbd0eSchristos # ifdef __cplusplus
87*c42dbd0eSchristos # define YY_CAST(Type, Val) static_cast<Type> (Val)
88*c42dbd0eSchristos # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
89*c42dbd0eSchristos # else
90*c42dbd0eSchristos # define YY_CAST(Type, Val) ((Type) (Val))
91*c42dbd0eSchristos # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
92*c42dbd0eSchristos # endif
93*c42dbd0eSchristos # endif
94e6c7e151Schristos # ifndef YY_NULLPTR
95*c42dbd0eSchristos # if defined __cplusplus
96*c42dbd0eSchristos # if 201103L <= __cplusplus
97e6c7e151Schristos # define YY_NULLPTR nullptr
98e6c7e151Schristos # else
99e6c7e151Schristos # define YY_NULLPTR 0
100e6c7e151Schristos # endif
101e6c7e151Schristos # else
102*c42dbd0eSchristos # define YY_NULLPTR ((void*)0)
103*c42dbd0eSchristos # endif
104e6c7e151Schristos # endif
105e6c7e151Schristos
106*c42dbd0eSchristos /* Use api.header.include to #include this header
107*c42dbd0eSchristos instead of duplicating it here. */
108e6c7e151Schristos #ifndef YY_YY_YYSCRIPT_H_INCLUDED
109e6c7e151Schristos # define YY_YY_YYSCRIPT_H_INCLUDED
110e6c7e151Schristos /* Debug traces. */
111e6c7e151Schristos #ifndef YYDEBUG
112e6c7e151Schristos # define YYDEBUG 0
113e6c7e151Schristos #endif
114e6c7e151Schristos #if YYDEBUG
115e6c7e151Schristos extern int yydebug;
116e6c7e151Schristos #endif
117e6c7e151Schristos
118*c42dbd0eSchristos /* Token kinds. */
119e6c7e151Schristos #ifndef YYTOKENTYPE
120e6c7e151Schristos # define YYTOKENTYPE
121e6c7e151Schristos enum yytokentype
122e6c7e151Schristos {
123*c42dbd0eSchristos YYEMPTY = -2,
124*c42dbd0eSchristos YYEOF = 0, /* "end of file" */
125*c42dbd0eSchristos YYerror = 256, /* error */
126*c42dbd0eSchristos YYUNDEF = 257, /* "invalid token" */
127*c42dbd0eSchristos PLUSEQ = 258, /* PLUSEQ */
128*c42dbd0eSchristos MINUSEQ = 259, /* MINUSEQ */
129*c42dbd0eSchristos MULTEQ = 260, /* MULTEQ */
130*c42dbd0eSchristos DIVEQ = 261, /* DIVEQ */
131*c42dbd0eSchristos LSHIFTEQ = 262, /* LSHIFTEQ */
132*c42dbd0eSchristos RSHIFTEQ = 263, /* RSHIFTEQ */
133*c42dbd0eSchristos ANDEQ = 264, /* ANDEQ */
134*c42dbd0eSchristos OREQ = 265, /* OREQ */
135*c42dbd0eSchristos OROR = 266, /* OROR */
136*c42dbd0eSchristos ANDAND = 267, /* ANDAND */
137*c42dbd0eSchristos EQ = 268, /* EQ */
138*c42dbd0eSchristos NE = 269, /* NE */
139*c42dbd0eSchristos LE = 270, /* LE */
140*c42dbd0eSchristos GE = 271, /* GE */
141*c42dbd0eSchristos LSHIFT = 272, /* LSHIFT */
142*c42dbd0eSchristos RSHIFT = 273, /* RSHIFT */
143*c42dbd0eSchristos UNARY = 274, /* UNARY */
144*c42dbd0eSchristos STRING = 275, /* STRING */
145*c42dbd0eSchristos QUOTED_STRING = 276, /* QUOTED_STRING */
146*c42dbd0eSchristos INTEGER = 277, /* INTEGER */
147*c42dbd0eSchristos ABSOLUTE = 278, /* ABSOLUTE */
148*c42dbd0eSchristos ADDR = 279, /* ADDR */
149*c42dbd0eSchristos ALIGN_K = 280, /* ALIGN_K */
150*c42dbd0eSchristos ALIGNOF = 281, /* ALIGNOF */
151*c42dbd0eSchristos ASSERT_K = 282, /* ASSERT_K */
152*c42dbd0eSchristos AS_NEEDED = 283, /* AS_NEEDED */
153*c42dbd0eSchristos AT = 284, /* AT */
154*c42dbd0eSchristos BIND = 285, /* BIND */
155*c42dbd0eSchristos BLOCK = 286, /* BLOCK */
156*c42dbd0eSchristos BYTE = 287, /* BYTE */
157*c42dbd0eSchristos CONSTANT = 288, /* CONSTANT */
158*c42dbd0eSchristos CONSTRUCTORS = 289, /* CONSTRUCTORS */
159*c42dbd0eSchristos COPY = 290, /* COPY */
160*c42dbd0eSchristos CREATE_OBJECT_SYMBOLS = 291, /* CREATE_OBJECT_SYMBOLS */
161*c42dbd0eSchristos DATA_SEGMENT_ALIGN = 292, /* DATA_SEGMENT_ALIGN */
162*c42dbd0eSchristos DATA_SEGMENT_END = 293, /* DATA_SEGMENT_END */
163*c42dbd0eSchristos DATA_SEGMENT_RELRO_END = 294, /* DATA_SEGMENT_RELRO_END */
164*c42dbd0eSchristos DEFINED = 295, /* DEFINED */
165*c42dbd0eSchristos DSECT = 296, /* DSECT */
166*c42dbd0eSchristos ENTRY = 297, /* ENTRY */
167*c42dbd0eSchristos EXCLUDE_FILE = 298, /* EXCLUDE_FILE */
168*c42dbd0eSchristos EXTERN = 299, /* EXTERN */
169*c42dbd0eSchristos FILL = 300, /* FILL */
170*c42dbd0eSchristos FLOAT = 301, /* FLOAT */
171*c42dbd0eSchristos FORCE_COMMON_ALLOCATION = 302, /* FORCE_COMMON_ALLOCATION */
172*c42dbd0eSchristos GLOBAL = 303, /* GLOBAL */
173*c42dbd0eSchristos GROUP = 304, /* GROUP */
174*c42dbd0eSchristos HIDDEN = 305, /* HIDDEN */
175*c42dbd0eSchristos HLL = 306, /* HLL */
176*c42dbd0eSchristos INCLUDE = 307, /* INCLUDE */
177*c42dbd0eSchristos INHIBIT_COMMON_ALLOCATION = 308, /* INHIBIT_COMMON_ALLOCATION */
178*c42dbd0eSchristos INFO = 309, /* INFO */
179*c42dbd0eSchristos INPUT = 310, /* INPUT */
180*c42dbd0eSchristos KEEP = 311, /* KEEP */
181*c42dbd0eSchristos LEN = 312, /* LEN */
182*c42dbd0eSchristos LENGTH = 313, /* LENGTH */
183*c42dbd0eSchristos LOADADDR = 314, /* LOADADDR */
184*c42dbd0eSchristos LOCAL = 315, /* LOCAL */
185*c42dbd0eSchristos LONG = 316, /* LONG */
186*c42dbd0eSchristos MAP = 317, /* MAP */
187*c42dbd0eSchristos MAX_K = 318, /* MAX_K */
188*c42dbd0eSchristos MEMORY = 319, /* MEMORY */
189*c42dbd0eSchristos MIN_K = 320, /* MIN_K */
190*c42dbd0eSchristos NEXT = 321, /* NEXT */
191*c42dbd0eSchristos NOCROSSREFS = 322, /* NOCROSSREFS */
192*c42dbd0eSchristos NOFLOAT = 323, /* NOFLOAT */
193*c42dbd0eSchristos NOLOAD = 324, /* NOLOAD */
194*c42dbd0eSchristos ONLY_IF_RO = 325, /* ONLY_IF_RO */
195*c42dbd0eSchristos ONLY_IF_RW = 326, /* ONLY_IF_RW */
196*c42dbd0eSchristos ORG = 327, /* ORG */
197*c42dbd0eSchristos ORIGIN = 328, /* ORIGIN */
198*c42dbd0eSchristos OUTPUT = 329, /* OUTPUT */
199*c42dbd0eSchristos OUTPUT_ARCH = 330, /* OUTPUT_ARCH */
200*c42dbd0eSchristos OUTPUT_FORMAT = 331, /* OUTPUT_FORMAT */
201*c42dbd0eSchristos OVERLAY = 332, /* OVERLAY */
202*c42dbd0eSchristos PHDRS = 333, /* PHDRS */
203*c42dbd0eSchristos PROVIDE = 334, /* PROVIDE */
204*c42dbd0eSchristos PROVIDE_HIDDEN = 335, /* PROVIDE_HIDDEN */
205*c42dbd0eSchristos QUAD = 336, /* QUAD */
206*c42dbd0eSchristos SEARCH_DIR = 337, /* SEARCH_DIR */
207*c42dbd0eSchristos SECTIONS = 338, /* SECTIONS */
208*c42dbd0eSchristos SEGMENT_START = 339, /* SEGMENT_START */
209*c42dbd0eSchristos SHORT = 340, /* SHORT */
210*c42dbd0eSchristos SIZEOF = 341, /* SIZEOF */
211*c42dbd0eSchristos SIZEOF_HEADERS = 342, /* SIZEOF_HEADERS */
212*c42dbd0eSchristos SORT_BY_ALIGNMENT = 343, /* SORT_BY_ALIGNMENT */
213*c42dbd0eSchristos SORT_BY_INIT_PRIORITY = 344, /* SORT_BY_INIT_PRIORITY */
214*c42dbd0eSchristos SORT_BY_NAME = 345, /* SORT_BY_NAME */
215*c42dbd0eSchristos SPECIAL = 346, /* SPECIAL */
216*c42dbd0eSchristos SQUAD = 347, /* SQUAD */
217*c42dbd0eSchristos STARTUP = 348, /* STARTUP */
218*c42dbd0eSchristos SUBALIGN = 349, /* SUBALIGN */
219*c42dbd0eSchristos SYSLIB = 350, /* SYSLIB */
220*c42dbd0eSchristos TARGET_K = 351, /* TARGET_K */
221*c42dbd0eSchristos TRUNCATE = 352, /* TRUNCATE */
222*c42dbd0eSchristos VERSIONK = 353, /* VERSIONK */
223*c42dbd0eSchristos OPTION = 354, /* OPTION */
224*c42dbd0eSchristos PARSING_LINKER_SCRIPT = 355, /* PARSING_LINKER_SCRIPT */
225*c42dbd0eSchristos PARSING_VERSION_SCRIPT = 356, /* PARSING_VERSION_SCRIPT */
226*c42dbd0eSchristos PARSING_DEFSYM = 357, /* PARSING_DEFSYM */
227*c42dbd0eSchristos PARSING_DYNAMIC_LIST = 358, /* PARSING_DYNAMIC_LIST */
228*c42dbd0eSchristos PARSING_SECTIONS_BLOCK = 359, /* PARSING_SECTIONS_BLOCK */
229*c42dbd0eSchristos PARSING_SECTION_COMMANDS = 360, /* PARSING_SECTION_COMMANDS */
230*c42dbd0eSchristos PARSING_MEMORY_DEF = 361 /* PARSING_MEMORY_DEF */
231e6c7e151Schristos };
232*c42dbd0eSchristos typedef enum yytokentype yytoken_kind_t;
233e6c7e151Schristos #endif
234*c42dbd0eSchristos /* Token kinds. */
235*c42dbd0eSchristos #define YYEMPTY -2
236*c42dbd0eSchristos #define YYEOF 0
237*c42dbd0eSchristos #define YYerror 256
238*c42dbd0eSchristos #define YYUNDEF 257
239e6c7e151Schristos #define PLUSEQ 258
240e6c7e151Schristos #define MINUSEQ 259
241e6c7e151Schristos #define MULTEQ 260
242e6c7e151Schristos #define DIVEQ 261
243e6c7e151Schristos #define LSHIFTEQ 262
244e6c7e151Schristos #define RSHIFTEQ 263
245e6c7e151Schristos #define ANDEQ 264
246e6c7e151Schristos #define OREQ 265
247e6c7e151Schristos #define OROR 266
248e6c7e151Schristos #define ANDAND 267
249e6c7e151Schristos #define EQ 268
250e6c7e151Schristos #define NE 269
251e6c7e151Schristos #define LE 270
252e6c7e151Schristos #define GE 271
253e6c7e151Schristos #define LSHIFT 272
254e6c7e151Schristos #define RSHIFT 273
255e6c7e151Schristos #define UNARY 274
256e6c7e151Schristos #define STRING 275
257e6c7e151Schristos #define QUOTED_STRING 276
258e6c7e151Schristos #define INTEGER 277
259e6c7e151Schristos #define ABSOLUTE 278
260e6c7e151Schristos #define ADDR 279
261e6c7e151Schristos #define ALIGN_K 280
262e6c7e151Schristos #define ALIGNOF 281
263e6c7e151Schristos #define ASSERT_K 282
264e6c7e151Schristos #define AS_NEEDED 283
265e6c7e151Schristos #define AT 284
266e6c7e151Schristos #define BIND 285
267e6c7e151Schristos #define BLOCK 286
268e6c7e151Schristos #define BYTE 287
269e6c7e151Schristos #define CONSTANT 288
270e6c7e151Schristos #define CONSTRUCTORS 289
271e6c7e151Schristos #define COPY 290
272e6c7e151Schristos #define CREATE_OBJECT_SYMBOLS 291
273e6c7e151Schristos #define DATA_SEGMENT_ALIGN 292
274e6c7e151Schristos #define DATA_SEGMENT_END 293
275e6c7e151Schristos #define DATA_SEGMENT_RELRO_END 294
276e6c7e151Schristos #define DEFINED 295
277e6c7e151Schristos #define DSECT 296
278e6c7e151Schristos #define ENTRY 297
279e6c7e151Schristos #define EXCLUDE_FILE 298
280e6c7e151Schristos #define EXTERN 299
281e6c7e151Schristos #define FILL 300
282e6c7e151Schristos #define FLOAT 301
283e6c7e151Schristos #define FORCE_COMMON_ALLOCATION 302
284e6c7e151Schristos #define GLOBAL 303
285e6c7e151Schristos #define GROUP 304
286e6c7e151Schristos #define HIDDEN 305
287e6c7e151Schristos #define HLL 306
288e6c7e151Schristos #define INCLUDE 307
289e6c7e151Schristos #define INHIBIT_COMMON_ALLOCATION 308
290e6c7e151Schristos #define INFO 309
291e6c7e151Schristos #define INPUT 310
292e6c7e151Schristos #define KEEP 311
293e6c7e151Schristos #define LEN 312
294e6c7e151Schristos #define LENGTH 313
295e6c7e151Schristos #define LOADADDR 314
296e6c7e151Schristos #define LOCAL 315
297e6c7e151Schristos #define LONG 316
298e6c7e151Schristos #define MAP 317
299e6c7e151Schristos #define MAX_K 318
300e6c7e151Schristos #define MEMORY 319
301e6c7e151Schristos #define MIN_K 320
302e6c7e151Schristos #define NEXT 321
303e6c7e151Schristos #define NOCROSSREFS 322
304e6c7e151Schristos #define NOFLOAT 323
305e6c7e151Schristos #define NOLOAD 324
306e6c7e151Schristos #define ONLY_IF_RO 325
307e6c7e151Schristos #define ONLY_IF_RW 326
308e6c7e151Schristos #define ORG 327
309e6c7e151Schristos #define ORIGIN 328
310e6c7e151Schristos #define OUTPUT 329
311e6c7e151Schristos #define OUTPUT_ARCH 330
312e6c7e151Schristos #define OUTPUT_FORMAT 331
313e6c7e151Schristos #define OVERLAY 332
314e6c7e151Schristos #define PHDRS 333
315e6c7e151Schristos #define PROVIDE 334
316e6c7e151Schristos #define PROVIDE_HIDDEN 335
317e6c7e151Schristos #define QUAD 336
318e6c7e151Schristos #define SEARCH_DIR 337
319e6c7e151Schristos #define SECTIONS 338
320e6c7e151Schristos #define SEGMENT_START 339
321e6c7e151Schristos #define SHORT 340
322e6c7e151Schristos #define SIZEOF 341
323e6c7e151Schristos #define SIZEOF_HEADERS 342
324e6c7e151Schristos #define SORT_BY_ALIGNMENT 343
325e6c7e151Schristos #define SORT_BY_INIT_PRIORITY 344
326e6c7e151Schristos #define SORT_BY_NAME 345
327e6c7e151Schristos #define SPECIAL 346
328e6c7e151Schristos #define SQUAD 347
329e6c7e151Schristos #define STARTUP 348
330e6c7e151Schristos #define SUBALIGN 349
331e6c7e151Schristos #define SYSLIB 350
332e6c7e151Schristos #define TARGET_K 351
333e6c7e151Schristos #define TRUNCATE 352
334e6c7e151Schristos #define VERSIONK 353
335e6c7e151Schristos #define OPTION 354
336e6c7e151Schristos #define PARSING_LINKER_SCRIPT 355
337e6c7e151Schristos #define PARSING_VERSION_SCRIPT 356
338e6c7e151Schristos #define PARSING_DEFSYM 357
339e6c7e151Schristos #define PARSING_DYNAMIC_LIST 358
340e6c7e151Schristos #define PARSING_SECTIONS_BLOCK 359
341e6c7e151Schristos #define PARSING_SECTION_COMMANDS 360
342e6c7e151Schristos #define PARSING_MEMORY_DEF 361
343e6c7e151Schristos
344e6c7e151Schristos /* Value type. */
345e6c7e151Schristos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
346e6c7e151Schristos union YYSTYPE
347e6c7e151Schristos {
348*c42dbd0eSchristos #line 53 "yyscript.y"
349e6c7e151Schristos
350e6c7e151Schristos /* A string. */
351e6c7e151Schristos struct Parser_string string;
352e6c7e151Schristos /* A number. */
353e6c7e151Schristos uint64_t integer;
354e6c7e151Schristos /* An expression. */
355e6c7e151Schristos Expression_ptr expr;
356e6c7e151Schristos /* An output section header. */
357e6c7e151Schristos struct Parser_output_section_header output_section_header;
358e6c7e151Schristos /* An output section trailer. */
359e6c7e151Schristos struct Parser_output_section_trailer output_section_trailer;
360e6c7e151Schristos /* A section constraint. */
361e6c7e151Schristos enum Section_constraint constraint;
362e6c7e151Schristos /* A complete input section specification. */
363e6c7e151Schristos struct Input_section_spec input_section_spec;
364e6c7e151Schristos /* A list of wildcard specifications, with exclusions. */
365e6c7e151Schristos struct Wildcard_sections wildcard_sections;
366e6c7e151Schristos /* A single wildcard specification. */
367e6c7e151Schristos struct Wildcard_section wildcard_section;
368e6c7e151Schristos /* A list of strings. */
369e6c7e151Schristos String_list_ptr string_list;
370e6c7e151Schristos /* Information for a program header. */
371e6c7e151Schristos struct Phdr_info phdr_info;
372e6c7e151Schristos /* Used for version scripts and within VERSION {}. */
373e6c7e151Schristos struct Version_dependency_list* deplist;
374e6c7e151Schristos struct Version_expression_list* versyms;
375e6c7e151Schristos struct Version_tree* versnode;
376e6c7e151Schristos enum Script_section_type section_type;
377e6c7e151Schristos
378*c42dbd0eSchristos #line 379 "yyscript.c"
379e6c7e151Schristos
380*c42dbd0eSchristos };
381e6c7e151Schristos typedef union YYSTYPE YYSTYPE;
382e6c7e151Schristos # define YYSTYPE_IS_TRIVIAL 1
383e6c7e151Schristos # define YYSTYPE_IS_DECLARED 1
384e6c7e151Schristos #endif
385e6c7e151Schristos
386e6c7e151Schristos
387e6c7e151Schristos
388*c42dbd0eSchristos
389e6c7e151Schristos int yyparse (void* closure);
390e6c7e151Schristos
391*c42dbd0eSchristos
392e6c7e151Schristos #endif /* !YY_YY_YYSCRIPT_H_INCLUDED */
393*c42dbd0eSchristos /* Symbol kind. */
394*c42dbd0eSchristos enum yysymbol_kind_t
395*c42dbd0eSchristos {
396*c42dbd0eSchristos YYSYMBOL_YYEMPTY = -2,
397*c42dbd0eSchristos YYSYMBOL_YYEOF = 0, /* "end of file" */
398*c42dbd0eSchristos YYSYMBOL_YYerror = 1, /* error */
399*c42dbd0eSchristos YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
400*c42dbd0eSchristos YYSYMBOL_PLUSEQ = 3, /* PLUSEQ */
401*c42dbd0eSchristos YYSYMBOL_MINUSEQ = 4, /* MINUSEQ */
402*c42dbd0eSchristos YYSYMBOL_MULTEQ = 5, /* MULTEQ */
403*c42dbd0eSchristos YYSYMBOL_DIVEQ = 6, /* DIVEQ */
404*c42dbd0eSchristos YYSYMBOL_7_ = 7, /* '=' */
405*c42dbd0eSchristos YYSYMBOL_LSHIFTEQ = 8, /* LSHIFTEQ */
406*c42dbd0eSchristos YYSYMBOL_RSHIFTEQ = 9, /* RSHIFTEQ */
407*c42dbd0eSchristos YYSYMBOL_ANDEQ = 10, /* ANDEQ */
408*c42dbd0eSchristos YYSYMBOL_OREQ = 11, /* OREQ */
409*c42dbd0eSchristos YYSYMBOL_12_ = 12, /* '?' */
410*c42dbd0eSchristos YYSYMBOL_13_ = 13, /* ':' */
411*c42dbd0eSchristos YYSYMBOL_OROR = 14, /* OROR */
412*c42dbd0eSchristos YYSYMBOL_ANDAND = 15, /* ANDAND */
413*c42dbd0eSchristos YYSYMBOL_16_ = 16, /* '|' */
414*c42dbd0eSchristos YYSYMBOL_17_ = 17, /* '^' */
415*c42dbd0eSchristos YYSYMBOL_18_ = 18, /* '&' */
416*c42dbd0eSchristos YYSYMBOL_EQ = 19, /* EQ */
417*c42dbd0eSchristos YYSYMBOL_NE = 20, /* NE */
418*c42dbd0eSchristos YYSYMBOL_21_ = 21, /* '<' */
419*c42dbd0eSchristos YYSYMBOL_22_ = 22, /* '>' */
420*c42dbd0eSchristos YYSYMBOL_LE = 23, /* LE */
421*c42dbd0eSchristos YYSYMBOL_GE = 24, /* GE */
422*c42dbd0eSchristos YYSYMBOL_LSHIFT = 25, /* LSHIFT */
423*c42dbd0eSchristos YYSYMBOL_RSHIFT = 26, /* RSHIFT */
424*c42dbd0eSchristos YYSYMBOL_27_ = 27, /* '+' */
425*c42dbd0eSchristos YYSYMBOL_28_ = 28, /* '-' */
426*c42dbd0eSchristos YYSYMBOL_29_ = 29, /* '*' */
427*c42dbd0eSchristos YYSYMBOL_30_ = 30, /* '/' */
428*c42dbd0eSchristos YYSYMBOL_31_ = 31, /* '%' */
429*c42dbd0eSchristos YYSYMBOL_UNARY = 32, /* UNARY */
430*c42dbd0eSchristos YYSYMBOL_STRING = 33, /* STRING */
431*c42dbd0eSchristos YYSYMBOL_QUOTED_STRING = 34, /* QUOTED_STRING */
432*c42dbd0eSchristos YYSYMBOL_INTEGER = 35, /* INTEGER */
433*c42dbd0eSchristos YYSYMBOL_ABSOLUTE = 36, /* ABSOLUTE */
434*c42dbd0eSchristos YYSYMBOL_ADDR = 37, /* ADDR */
435*c42dbd0eSchristos YYSYMBOL_ALIGN_K = 38, /* ALIGN_K */
436*c42dbd0eSchristos YYSYMBOL_ALIGNOF = 39, /* ALIGNOF */
437*c42dbd0eSchristos YYSYMBOL_ASSERT_K = 40, /* ASSERT_K */
438*c42dbd0eSchristos YYSYMBOL_AS_NEEDED = 41, /* AS_NEEDED */
439*c42dbd0eSchristos YYSYMBOL_AT = 42, /* AT */
440*c42dbd0eSchristos YYSYMBOL_BIND = 43, /* BIND */
441*c42dbd0eSchristos YYSYMBOL_BLOCK = 44, /* BLOCK */
442*c42dbd0eSchristos YYSYMBOL_BYTE = 45, /* BYTE */
443*c42dbd0eSchristos YYSYMBOL_CONSTANT = 46, /* CONSTANT */
444*c42dbd0eSchristos YYSYMBOL_CONSTRUCTORS = 47, /* CONSTRUCTORS */
445*c42dbd0eSchristos YYSYMBOL_COPY = 48, /* COPY */
446*c42dbd0eSchristos YYSYMBOL_CREATE_OBJECT_SYMBOLS = 49, /* CREATE_OBJECT_SYMBOLS */
447*c42dbd0eSchristos YYSYMBOL_DATA_SEGMENT_ALIGN = 50, /* DATA_SEGMENT_ALIGN */
448*c42dbd0eSchristos YYSYMBOL_DATA_SEGMENT_END = 51, /* DATA_SEGMENT_END */
449*c42dbd0eSchristos YYSYMBOL_DATA_SEGMENT_RELRO_END = 52, /* DATA_SEGMENT_RELRO_END */
450*c42dbd0eSchristos YYSYMBOL_DEFINED = 53, /* DEFINED */
451*c42dbd0eSchristos YYSYMBOL_DSECT = 54, /* DSECT */
452*c42dbd0eSchristos YYSYMBOL_ENTRY = 55, /* ENTRY */
453*c42dbd0eSchristos YYSYMBOL_EXCLUDE_FILE = 56, /* EXCLUDE_FILE */
454*c42dbd0eSchristos YYSYMBOL_EXTERN = 57, /* EXTERN */
455*c42dbd0eSchristos YYSYMBOL_FILL = 58, /* FILL */
456*c42dbd0eSchristos YYSYMBOL_FLOAT = 59, /* FLOAT */
457*c42dbd0eSchristos YYSYMBOL_FORCE_COMMON_ALLOCATION = 60, /* FORCE_COMMON_ALLOCATION */
458*c42dbd0eSchristos YYSYMBOL_GLOBAL = 61, /* GLOBAL */
459*c42dbd0eSchristos YYSYMBOL_GROUP = 62, /* GROUP */
460*c42dbd0eSchristos YYSYMBOL_HIDDEN = 63, /* HIDDEN */
461*c42dbd0eSchristos YYSYMBOL_HLL = 64, /* HLL */
462*c42dbd0eSchristos YYSYMBOL_INCLUDE = 65, /* INCLUDE */
463*c42dbd0eSchristos YYSYMBOL_INHIBIT_COMMON_ALLOCATION = 66, /* INHIBIT_COMMON_ALLOCATION */
464*c42dbd0eSchristos YYSYMBOL_INFO = 67, /* INFO */
465*c42dbd0eSchristos YYSYMBOL_INPUT = 68, /* INPUT */
466*c42dbd0eSchristos YYSYMBOL_KEEP = 69, /* KEEP */
467*c42dbd0eSchristos YYSYMBOL_LEN = 70, /* LEN */
468*c42dbd0eSchristos YYSYMBOL_LENGTH = 71, /* LENGTH */
469*c42dbd0eSchristos YYSYMBOL_LOADADDR = 72, /* LOADADDR */
470*c42dbd0eSchristos YYSYMBOL_LOCAL = 73, /* LOCAL */
471*c42dbd0eSchristos YYSYMBOL_LONG = 74, /* LONG */
472*c42dbd0eSchristos YYSYMBOL_MAP = 75, /* MAP */
473*c42dbd0eSchristos YYSYMBOL_MAX_K = 76, /* MAX_K */
474*c42dbd0eSchristos YYSYMBOL_MEMORY = 77, /* MEMORY */
475*c42dbd0eSchristos YYSYMBOL_MIN_K = 78, /* MIN_K */
476*c42dbd0eSchristos YYSYMBOL_NEXT = 79, /* NEXT */
477*c42dbd0eSchristos YYSYMBOL_NOCROSSREFS = 80, /* NOCROSSREFS */
478*c42dbd0eSchristos YYSYMBOL_NOFLOAT = 81, /* NOFLOAT */
479*c42dbd0eSchristos YYSYMBOL_NOLOAD = 82, /* NOLOAD */
480*c42dbd0eSchristos YYSYMBOL_ONLY_IF_RO = 83, /* ONLY_IF_RO */
481*c42dbd0eSchristos YYSYMBOL_ONLY_IF_RW = 84, /* ONLY_IF_RW */
482*c42dbd0eSchristos YYSYMBOL_ORG = 85, /* ORG */
483*c42dbd0eSchristos YYSYMBOL_ORIGIN = 86, /* ORIGIN */
484*c42dbd0eSchristos YYSYMBOL_OUTPUT = 87, /* OUTPUT */
485*c42dbd0eSchristos YYSYMBOL_OUTPUT_ARCH = 88, /* OUTPUT_ARCH */
486*c42dbd0eSchristos YYSYMBOL_OUTPUT_FORMAT = 89, /* OUTPUT_FORMAT */
487*c42dbd0eSchristos YYSYMBOL_OVERLAY = 90, /* OVERLAY */
488*c42dbd0eSchristos YYSYMBOL_PHDRS = 91, /* PHDRS */
489*c42dbd0eSchristos YYSYMBOL_PROVIDE = 92, /* PROVIDE */
490*c42dbd0eSchristos YYSYMBOL_PROVIDE_HIDDEN = 93, /* PROVIDE_HIDDEN */
491*c42dbd0eSchristos YYSYMBOL_QUAD = 94, /* QUAD */
492*c42dbd0eSchristos YYSYMBOL_SEARCH_DIR = 95, /* SEARCH_DIR */
493*c42dbd0eSchristos YYSYMBOL_SECTIONS = 96, /* SECTIONS */
494*c42dbd0eSchristos YYSYMBOL_SEGMENT_START = 97, /* SEGMENT_START */
495*c42dbd0eSchristos YYSYMBOL_SHORT = 98, /* SHORT */
496*c42dbd0eSchristos YYSYMBOL_SIZEOF = 99, /* SIZEOF */
497*c42dbd0eSchristos YYSYMBOL_SIZEOF_HEADERS = 100, /* SIZEOF_HEADERS */
498*c42dbd0eSchristos YYSYMBOL_SORT_BY_ALIGNMENT = 101, /* SORT_BY_ALIGNMENT */
499*c42dbd0eSchristos YYSYMBOL_SORT_BY_INIT_PRIORITY = 102, /* SORT_BY_INIT_PRIORITY */
500*c42dbd0eSchristos YYSYMBOL_SORT_BY_NAME = 103, /* SORT_BY_NAME */
501*c42dbd0eSchristos YYSYMBOL_SPECIAL = 104, /* SPECIAL */
502*c42dbd0eSchristos YYSYMBOL_SQUAD = 105, /* SQUAD */
503*c42dbd0eSchristos YYSYMBOL_STARTUP = 106, /* STARTUP */
504*c42dbd0eSchristos YYSYMBOL_SUBALIGN = 107, /* SUBALIGN */
505*c42dbd0eSchristos YYSYMBOL_SYSLIB = 108, /* SYSLIB */
506*c42dbd0eSchristos YYSYMBOL_TARGET_K = 109, /* TARGET_K */
507*c42dbd0eSchristos YYSYMBOL_TRUNCATE = 110, /* TRUNCATE */
508*c42dbd0eSchristos YYSYMBOL_VERSIONK = 111, /* VERSIONK */
509*c42dbd0eSchristos YYSYMBOL_OPTION = 112, /* OPTION */
510*c42dbd0eSchristos YYSYMBOL_PARSING_LINKER_SCRIPT = 113, /* PARSING_LINKER_SCRIPT */
511*c42dbd0eSchristos YYSYMBOL_PARSING_VERSION_SCRIPT = 114, /* PARSING_VERSION_SCRIPT */
512*c42dbd0eSchristos YYSYMBOL_PARSING_DEFSYM = 115, /* PARSING_DEFSYM */
513*c42dbd0eSchristos YYSYMBOL_PARSING_DYNAMIC_LIST = 116, /* PARSING_DYNAMIC_LIST */
514*c42dbd0eSchristos YYSYMBOL_PARSING_SECTIONS_BLOCK = 117, /* PARSING_SECTIONS_BLOCK */
515*c42dbd0eSchristos YYSYMBOL_PARSING_SECTION_COMMANDS = 118, /* PARSING_SECTION_COMMANDS */
516*c42dbd0eSchristos YYSYMBOL_PARSING_MEMORY_DEF = 119, /* PARSING_MEMORY_DEF */
517*c42dbd0eSchristos YYSYMBOL_120_ = 120, /* '(' */
518*c42dbd0eSchristos YYSYMBOL_121_ = 121, /* ')' */
519*c42dbd0eSchristos YYSYMBOL_122_ = 122, /* '{' */
520*c42dbd0eSchristos YYSYMBOL_123_ = 123, /* '}' */
521*c42dbd0eSchristos YYSYMBOL_124_ = 124, /* ',' */
522*c42dbd0eSchristos YYSYMBOL_125_ = 125, /* ';' */
523*c42dbd0eSchristos YYSYMBOL_126_ = 126, /* '!' */
524*c42dbd0eSchristos YYSYMBOL_127_o_ = 127, /* 'o' */
525*c42dbd0eSchristos YYSYMBOL_128_l_ = 128, /* 'l' */
526*c42dbd0eSchristos YYSYMBOL_129_ = 129, /* '~' */
527*c42dbd0eSchristos YYSYMBOL_YYACCEPT = 130, /* $accept */
528*c42dbd0eSchristos YYSYMBOL_top = 131, /* top */
529*c42dbd0eSchristos YYSYMBOL_linker_script = 132, /* linker_script */
530*c42dbd0eSchristos YYSYMBOL_file_cmd = 133, /* file_cmd */
531*c42dbd0eSchristos YYSYMBOL_134_1 = 134, /* $@1 */
532*c42dbd0eSchristos YYSYMBOL_135_2 = 135, /* $@2 */
533*c42dbd0eSchristos YYSYMBOL_136_3 = 136, /* $@3 */
534*c42dbd0eSchristos YYSYMBOL_ignore_cmd = 137, /* ignore_cmd */
535*c42dbd0eSchristos YYSYMBOL_extern_name_list = 138, /* extern_name_list */
536*c42dbd0eSchristos YYSYMBOL_139_4 = 139, /* $@4 */
537*c42dbd0eSchristos YYSYMBOL_extern_name_list_body = 140, /* extern_name_list_body */
538*c42dbd0eSchristos YYSYMBOL_input_list = 141, /* input_list */
539*c42dbd0eSchristos YYSYMBOL_input_list_element = 142, /* input_list_element */
540*c42dbd0eSchristos YYSYMBOL_143_5 = 143, /* $@5 */
541*c42dbd0eSchristos YYSYMBOL_sections_block = 144, /* sections_block */
542*c42dbd0eSchristos YYSYMBOL_section_block_cmd = 145, /* section_block_cmd */
543*c42dbd0eSchristos YYSYMBOL_146_6 = 146, /* $@6 */
544*c42dbd0eSchristos YYSYMBOL_section_header = 147, /* section_header */
545*c42dbd0eSchristos YYSYMBOL_148_7 = 148, /* $@7 */
546*c42dbd0eSchristos YYSYMBOL_149_8 = 149, /* $@8 */
547*c42dbd0eSchristos YYSYMBOL_opt_address_and_section_type = 150, /* opt_address_and_section_type */
548*c42dbd0eSchristos YYSYMBOL_section_type = 151, /* section_type */
549*c42dbd0eSchristos YYSYMBOL_opt_at = 152, /* opt_at */
550*c42dbd0eSchristos YYSYMBOL_opt_align = 153, /* opt_align */
551*c42dbd0eSchristos YYSYMBOL_opt_subalign = 154, /* opt_subalign */
552*c42dbd0eSchristos YYSYMBOL_opt_constraint = 155, /* opt_constraint */
553*c42dbd0eSchristos YYSYMBOL_section_trailer = 156, /* section_trailer */
554*c42dbd0eSchristos YYSYMBOL_opt_memspec = 157, /* opt_memspec */
555*c42dbd0eSchristos YYSYMBOL_opt_at_memspec = 158, /* opt_at_memspec */
556*c42dbd0eSchristos YYSYMBOL_opt_phdr = 159, /* opt_phdr */
557*c42dbd0eSchristos YYSYMBOL_opt_fill = 160, /* opt_fill */
558*c42dbd0eSchristos YYSYMBOL_section_cmds = 161, /* section_cmds */
559*c42dbd0eSchristos YYSYMBOL_section_cmd = 162, /* section_cmd */
560*c42dbd0eSchristos YYSYMBOL_data_length = 163, /* data_length */
561*c42dbd0eSchristos YYSYMBOL_input_section_spec = 164, /* input_section_spec */
562*c42dbd0eSchristos YYSYMBOL_input_section_no_keep = 165, /* input_section_no_keep */
563*c42dbd0eSchristos YYSYMBOL_wildcard_file = 166, /* wildcard_file */
564*c42dbd0eSchristos YYSYMBOL_wildcard_sections = 167, /* wildcard_sections */
565*c42dbd0eSchristos YYSYMBOL_wildcard_section = 168, /* wildcard_section */
566*c42dbd0eSchristos YYSYMBOL_exclude_names = 169, /* exclude_names */
567*c42dbd0eSchristos YYSYMBOL_wildcard_name = 170, /* wildcard_name */
568*c42dbd0eSchristos YYSYMBOL_memory_defs = 171, /* memory_defs */
569*c42dbd0eSchristos YYSYMBOL_memory_def = 172, /* memory_def */
570*c42dbd0eSchristos YYSYMBOL_memory_attr = 173, /* memory_attr */
571*c42dbd0eSchristos YYSYMBOL_memory_origin = 174, /* memory_origin */
572*c42dbd0eSchristos YYSYMBOL_memory_length = 175, /* memory_length */
573*c42dbd0eSchristos YYSYMBOL_phdrs_defs = 176, /* phdrs_defs */
574*c42dbd0eSchristos YYSYMBOL_phdr_def = 177, /* phdr_def */
575*c42dbd0eSchristos YYSYMBOL_phdr_type = 178, /* phdr_type */
576*c42dbd0eSchristos YYSYMBOL_phdr_info = 179, /* phdr_info */
577*c42dbd0eSchristos YYSYMBOL_assignment = 180, /* assignment */
578*c42dbd0eSchristos YYSYMBOL_parse_exp = 181, /* parse_exp */
579*c42dbd0eSchristos YYSYMBOL_182_9 = 182, /* $@9 */
580*c42dbd0eSchristos YYSYMBOL_exp = 183, /* exp */
581*c42dbd0eSchristos YYSYMBOL_defsym_expr = 184, /* defsym_expr */
582*c42dbd0eSchristos YYSYMBOL_dynamic_list_expr = 185, /* dynamic_list_expr */
583*c42dbd0eSchristos YYSYMBOL_dynamic_list_nodes = 186, /* dynamic_list_nodes */
584*c42dbd0eSchristos YYSYMBOL_dynamic_list_node = 187, /* dynamic_list_node */
585*c42dbd0eSchristos YYSYMBOL_version_script = 188, /* version_script */
586*c42dbd0eSchristos YYSYMBOL_vers_nodes = 189, /* vers_nodes */
587*c42dbd0eSchristos YYSYMBOL_vers_node = 190, /* vers_node */
588*c42dbd0eSchristos YYSYMBOL_verdep = 191, /* verdep */
589*c42dbd0eSchristos YYSYMBOL_vers_tag = 192, /* vers_tag */
590*c42dbd0eSchristos YYSYMBOL_vers_defns = 193, /* vers_defns */
591*c42dbd0eSchristos YYSYMBOL_194_10 = 194, /* $@10 */
592*c42dbd0eSchristos YYSYMBOL_195_11 = 195, /* $@11 */
593*c42dbd0eSchristos YYSYMBOL_string = 196, /* string */
594*c42dbd0eSchristos YYSYMBOL_end = 197, /* end */
595*c42dbd0eSchristos YYSYMBOL_opt_semicolon = 198, /* opt_semicolon */
596*c42dbd0eSchristos YYSYMBOL_opt_comma = 199 /* opt_comma */
597*c42dbd0eSchristos };
598*c42dbd0eSchristos typedef enum yysymbol_kind_t yysymbol_kind_t;
599e6c7e151Schristos
600e6c7e151Schristos
601*c42dbd0eSchristos
602e6c7e151Schristos
603e6c7e151Schristos #ifdef short
604e6c7e151Schristos # undef short
605e6c7e151Schristos #endif
606e6c7e151Schristos
607*c42dbd0eSchristos /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
608*c42dbd0eSchristos <limits.h> and (if available) <stdint.h> are included
609*c42dbd0eSchristos so that the code can choose integer types of a good width. */
610*c42dbd0eSchristos
611*c42dbd0eSchristos #ifndef __PTRDIFF_MAX__
612*c42dbd0eSchristos # include <limits.h> /* INFRINGES ON USER NAME SPACE */
613*c42dbd0eSchristos # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
614*c42dbd0eSchristos # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
615*c42dbd0eSchristos # define YY_STDINT_H
616*c42dbd0eSchristos # endif
617e6c7e151Schristos #endif
618e6c7e151Schristos
619*c42dbd0eSchristos /* Narrow types that promote to a signed type and that can represent a
620*c42dbd0eSchristos signed or unsigned integer of at least N bits. In tables they can
621*c42dbd0eSchristos save space and decrease cache pressure. Promoting to a signed type
622*c42dbd0eSchristos helps avoid bugs in integer arithmetic. */
623*c42dbd0eSchristos
624*c42dbd0eSchristos #ifdef __INT_LEAST8_MAX__
625*c42dbd0eSchristos typedef __INT_LEAST8_TYPE__ yytype_int8;
626*c42dbd0eSchristos #elif defined YY_STDINT_H
627*c42dbd0eSchristos typedef int_least8_t yytype_int8;
628e6c7e151Schristos #else
629e6c7e151Schristos typedef signed char yytype_int8;
630e6c7e151Schristos #endif
631e6c7e151Schristos
632*c42dbd0eSchristos #ifdef __INT_LEAST16_MAX__
633*c42dbd0eSchristos typedef __INT_LEAST16_TYPE__ yytype_int16;
634*c42dbd0eSchristos #elif defined YY_STDINT_H
635*c42dbd0eSchristos typedef int_least16_t yytype_int16;
636e6c7e151Schristos #else
637*c42dbd0eSchristos typedef short yytype_int16;
638e6c7e151Schristos #endif
639e6c7e151Schristos
640*c42dbd0eSchristos /* Work around bug in HP-UX 11.23, which defines these macros
641*c42dbd0eSchristos incorrectly for preprocessor constants. This workaround can likely
642*c42dbd0eSchristos be removed in 2023, as HPE has promised support for HP-UX 11.23
643*c42dbd0eSchristos (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
644*c42dbd0eSchristos <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
645*c42dbd0eSchristos #ifdef __hpux
646*c42dbd0eSchristos # undef UINT_LEAST8_MAX
647*c42dbd0eSchristos # undef UINT_LEAST16_MAX
648*c42dbd0eSchristos # define UINT_LEAST8_MAX 255
649*c42dbd0eSchristos # define UINT_LEAST16_MAX 65535
650*c42dbd0eSchristos #endif
651*c42dbd0eSchristos
652*c42dbd0eSchristos #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
653*c42dbd0eSchristos typedef __UINT_LEAST8_TYPE__ yytype_uint8;
654*c42dbd0eSchristos #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
655*c42dbd0eSchristos && UINT_LEAST8_MAX <= INT_MAX)
656*c42dbd0eSchristos typedef uint_least8_t yytype_uint8;
657*c42dbd0eSchristos #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
658*c42dbd0eSchristos typedef unsigned char yytype_uint8;
659e6c7e151Schristos #else
660*c42dbd0eSchristos typedef short yytype_uint8;
661*c42dbd0eSchristos #endif
662*c42dbd0eSchristos
663*c42dbd0eSchristos #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
664*c42dbd0eSchristos typedef __UINT_LEAST16_TYPE__ yytype_uint16;
665*c42dbd0eSchristos #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
666*c42dbd0eSchristos && UINT_LEAST16_MAX <= INT_MAX)
667*c42dbd0eSchristos typedef uint_least16_t yytype_uint16;
668*c42dbd0eSchristos #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
669*c42dbd0eSchristos typedef unsigned short yytype_uint16;
670*c42dbd0eSchristos #else
671*c42dbd0eSchristos typedef int yytype_uint16;
672*c42dbd0eSchristos #endif
673*c42dbd0eSchristos
674*c42dbd0eSchristos #ifndef YYPTRDIFF_T
675*c42dbd0eSchristos # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
676*c42dbd0eSchristos # define YYPTRDIFF_T __PTRDIFF_TYPE__
677*c42dbd0eSchristos # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
678*c42dbd0eSchristos # elif defined PTRDIFF_MAX
679*c42dbd0eSchristos # ifndef ptrdiff_t
680*c42dbd0eSchristos # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
681*c42dbd0eSchristos # endif
682*c42dbd0eSchristos # define YYPTRDIFF_T ptrdiff_t
683*c42dbd0eSchristos # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
684*c42dbd0eSchristos # else
685*c42dbd0eSchristos # define YYPTRDIFF_T long
686*c42dbd0eSchristos # define YYPTRDIFF_MAXIMUM LONG_MAX
687*c42dbd0eSchristos # endif
688e6c7e151Schristos #endif
689e6c7e151Schristos
690e6c7e151Schristos #ifndef YYSIZE_T
691e6c7e151Schristos # ifdef __SIZE_TYPE__
692e6c7e151Schristos # define YYSIZE_T __SIZE_TYPE__
693e6c7e151Schristos # elif defined size_t
694e6c7e151Schristos # define YYSIZE_T size_t
695*c42dbd0eSchristos # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
696e6c7e151Schristos # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
697e6c7e151Schristos # define YYSIZE_T size_t
698e6c7e151Schristos # else
699*c42dbd0eSchristos # define YYSIZE_T unsigned
700e6c7e151Schristos # endif
701e6c7e151Schristos #endif
702e6c7e151Schristos
703*c42dbd0eSchristos #define YYSIZE_MAXIMUM \
704*c42dbd0eSchristos YY_CAST (YYPTRDIFF_T, \
705*c42dbd0eSchristos (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
706*c42dbd0eSchristos ? YYPTRDIFF_MAXIMUM \
707*c42dbd0eSchristos : YY_CAST (YYSIZE_T, -1)))
708*c42dbd0eSchristos
709*c42dbd0eSchristos #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
710*c42dbd0eSchristos
711*c42dbd0eSchristos
712*c42dbd0eSchristos /* Stored state numbers (used for stacks). */
713*c42dbd0eSchristos typedef yytype_int16 yy_state_t;
714*c42dbd0eSchristos
715*c42dbd0eSchristos /* State numbers in computations. */
716*c42dbd0eSchristos typedef int yy_state_fast_t;
717e6c7e151Schristos
718e6c7e151Schristos #ifndef YY_
719e6c7e151Schristos # if defined YYENABLE_NLS && YYENABLE_NLS
720e6c7e151Schristos # if ENABLE_NLS
721e6c7e151Schristos # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
722e6c7e151Schristos # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
723e6c7e151Schristos # endif
724e6c7e151Schristos # endif
725e6c7e151Schristos # ifndef YY_
726e6c7e151Schristos # define YY_(Msgid) Msgid
727e6c7e151Schristos # endif
728e6c7e151Schristos #endif
729e6c7e151Schristos
730e6c7e151Schristos
731e6c7e151Schristos #ifndef YY_ATTRIBUTE_PURE
732*c42dbd0eSchristos # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
733*c42dbd0eSchristos # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
734*c42dbd0eSchristos # else
735*c42dbd0eSchristos # define YY_ATTRIBUTE_PURE
736*c42dbd0eSchristos # endif
737e6c7e151Schristos #endif
738e6c7e151Schristos
739e6c7e151Schristos #ifndef YY_ATTRIBUTE_UNUSED
740*c42dbd0eSchristos # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
741*c42dbd0eSchristos # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
742e6c7e151Schristos # else
743*c42dbd0eSchristos # define YY_ATTRIBUTE_UNUSED
744e6c7e151Schristos # endif
745e6c7e151Schristos #endif
746e6c7e151Schristos
747e6c7e151Schristos /* Suppress unused-variable warnings by "using" E. */
748e6c7e151Schristos #if ! defined lint || defined __GNUC__
749*c42dbd0eSchristos # define YY_USE(E) ((void) (E))
750e6c7e151Schristos #else
751*c42dbd0eSchristos # define YY_USE(E) /* empty */
752e6c7e151Schristos #endif
753e6c7e151Schristos
754e6c7e151Schristos /* Suppress an incorrect diagnostic about yylval being uninitialized. */
755*c42dbd0eSchristos #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
756*c42dbd0eSchristos # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
757*c42dbd0eSchristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
758*c42dbd0eSchristos _Pragma ("GCC diagnostic push") \
759*c42dbd0eSchristos _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
760*c42dbd0eSchristos # else
761e6c7e151Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
762e6c7e151Schristos _Pragma ("GCC diagnostic push") \
763e6c7e151Schristos _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
764e6c7e151Schristos _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
765*c42dbd0eSchristos # endif
766e6c7e151Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
767e6c7e151Schristos _Pragma ("GCC diagnostic pop")
768e6c7e151Schristos #else
769e6c7e151Schristos # define YY_INITIAL_VALUE(Value) Value
770e6c7e151Schristos #endif
771e6c7e151Schristos #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
772e6c7e151Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
773e6c7e151Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END
774e6c7e151Schristos #endif
775e6c7e151Schristos #ifndef YY_INITIAL_VALUE
776e6c7e151Schristos # define YY_INITIAL_VALUE(Value) /* Nothing. */
777e6c7e151Schristos #endif
778e6c7e151Schristos
779*c42dbd0eSchristos #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
780*c42dbd0eSchristos # define YY_IGNORE_USELESS_CAST_BEGIN \
781*c42dbd0eSchristos _Pragma ("GCC diagnostic push") \
782*c42dbd0eSchristos _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
783*c42dbd0eSchristos # define YY_IGNORE_USELESS_CAST_END \
784*c42dbd0eSchristos _Pragma ("GCC diagnostic pop")
785*c42dbd0eSchristos #endif
786*c42dbd0eSchristos #ifndef YY_IGNORE_USELESS_CAST_BEGIN
787*c42dbd0eSchristos # define YY_IGNORE_USELESS_CAST_BEGIN
788*c42dbd0eSchristos # define YY_IGNORE_USELESS_CAST_END
789*c42dbd0eSchristos #endif
790e6c7e151Schristos
791*c42dbd0eSchristos
792*c42dbd0eSchristos #define YY_ASSERT(E) ((void) (0 && (E)))
793*c42dbd0eSchristos
794*c42dbd0eSchristos #if 1
795e6c7e151Schristos
796e6c7e151Schristos /* The parser invokes alloca or malloc; define the necessary symbols. */
797e6c7e151Schristos
798e6c7e151Schristos # ifdef YYSTACK_USE_ALLOCA
799e6c7e151Schristos # if YYSTACK_USE_ALLOCA
800e6c7e151Schristos # ifdef __GNUC__
801e6c7e151Schristos # define YYSTACK_ALLOC __builtin_alloca
802e6c7e151Schristos # elif defined __BUILTIN_VA_ARG_INCR
803e6c7e151Schristos # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
804e6c7e151Schristos # elif defined _AIX
805e6c7e151Schristos # define YYSTACK_ALLOC __alloca
806e6c7e151Schristos # elif defined _MSC_VER
807e6c7e151Schristos # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
808e6c7e151Schristos # define alloca _alloca
809e6c7e151Schristos # else
810e6c7e151Schristos # define YYSTACK_ALLOC alloca
811e6c7e151Schristos # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
812e6c7e151Schristos # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
813e6c7e151Schristos /* Use EXIT_SUCCESS as a witness for stdlib.h. */
814e6c7e151Schristos # ifndef EXIT_SUCCESS
815e6c7e151Schristos # define EXIT_SUCCESS 0
816e6c7e151Schristos # endif
817e6c7e151Schristos # endif
818e6c7e151Schristos # endif
819e6c7e151Schristos # endif
820e6c7e151Schristos # endif
821e6c7e151Schristos
822e6c7e151Schristos # ifdef YYSTACK_ALLOC
823e6c7e151Schristos /* Pacify GCC's 'empty if-body' warning. */
824e6c7e151Schristos # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
825e6c7e151Schristos # ifndef YYSTACK_ALLOC_MAXIMUM
826e6c7e151Schristos /* The OS might guarantee only one guard page at the bottom of the stack,
827e6c7e151Schristos and a page size can be as small as 4096 bytes. So we cannot safely
828e6c7e151Schristos invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
829e6c7e151Schristos to allow for a few compiler-allocated temporary stack slots. */
830e6c7e151Schristos # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
831e6c7e151Schristos # endif
832e6c7e151Schristos # else
833e6c7e151Schristos # define YYSTACK_ALLOC YYMALLOC
834e6c7e151Schristos # define YYSTACK_FREE YYFREE
835e6c7e151Schristos # ifndef YYSTACK_ALLOC_MAXIMUM
836e6c7e151Schristos # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
837e6c7e151Schristos # endif
838e6c7e151Schristos # if (defined __cplusplus && ! defined EXIT_SUCCESS \
839e6c7e151Schristos && ! ((defined YYMALLOC || defined malloc) \
840e6c7e151Schristos && (defined YYFREE || defined free)))
841e6c7e151Schristos # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
842e6c7e151Schristos # ifndef EXIT_SUCCESS
843e6c7e151Schristos # define EXIT_SUCCESS 0
844e6c7e151Schristos # endif
845e6c7e151Schristos # endif
846e6c7e151Schristos # ifndef YYMALLOC
847e6c7e151Schristos # define YYMALLOC malloc
848e6c7e151Schristos # if ! defined malloc && ! defined EXIT_SUCCESS
849e6c7e151Schristos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
850e6c7e151Schristos # endif
851e6c7e151Schristos # endif
852e6c7e151Schristos # ifndef YYFREE
853e6c7e151Schristos # define YYFREE free
854e6c7e151Schristos # if ! defined free && ! defined EXIT_SUCCESS
855e6c7e151Schristos void free (void *); /* INFRINGES ON USER NAME SPACE */
856e6c7e151Schristos # endif
857e6c7e151Schristos # endif
858e6c7e151Schristos # endif
859*c42dbd0eSchristos #endif /* 1 */
860e6c7e151Schristos
861e6c7e151Schristos #if (! defined yyoverflow \
862e6c7e151Schristos && (! defined __cplusplus \
863e6c7e151Schristos || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
864e6c7e151Schristos
865e6c7e151Schristos /* A type that is properly aligned for any stack member. */
866e6c7e151Schristos union yyalloc
867e6c7e151Schristos {
868*c42dbd0eSchristos yy_state_t yyss_alloc;
869e6c7e151Schristos YYSTYPE yyvs_alloc;
870e6c7e151Schristos };
871e6c7e151Schristos
872e6c7e151Schristos /* The size of the maximum gap between one aligned stack and the next. */
873*c42dbd0eSchristos # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
874e6c7e151Schristos
875e6c7e151Schristos /* The size of an array large to enough to hold all stacks, each with
876e6c7e151Schristos N elements. */
877e6c7e151Schristos # define YYSTACK_BYTES(N) \
878*c42dbd0eSchristos ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
879e6c7e151Schristos + YYSTACK_GAP_MAXIMUM)
880e6c7e151Schristos
881e6c7e151Schristos # define YYCOPY_NEEDED 1
882e6c7e151Schristos
883e6c7e151Schristos /* Relocate STACK from its old location to the new one. The
884e6c7e151Schristos local variables YYSIZE and YYSTACKSIZE give the old and new number of
885e6c7e151Schristos elements in the stack, and YYPTR gives the new location of the
886e6c7e151Schristos stack. Advance YYPTR to a properly aligned location for the next
887e6c7e151Schristos stack. */
888e6c7e151Schristos # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
889e6c7e151Schristos do \
890e6c7e151Schristos { \
891*c42dbd0eSchristos YYPTRDIFF_T yynewbytes; \
892e6c7e151Schristos YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
893e6c7e151Schristos Stack = &yyptr->Stack_alloc; \
894*c42dbd0eSchristos yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
895*c42dbd0eSchristos yyptr += yynewbytes / YYSIZEOF (*yyptr); \
896e6c7e151Schristos } \
897e6c7e151Schristos while (0)
898e6c7e151Schristos
899e6c7e151Schristos #endif
900e6c7e151Schristos
901e6c7e151Schristos #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
902e6c7e151Schristos /* Copy COUNT objects from SRC to DST. The source and destination do
903e6c7e151Schristos not overlap. */
904e6c7e151Schristos # ifndef YYCOPY
905e6c7e151Schristos # if defined __GNUC__ && 1 < __GNUC__
906e6c7e151Schristos # define YYCOPY(Dst, Src, Count) \
907*c42dbd0eSchristos __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
908e6c7e151Schristos # else
909e6c7e151Schristos # define YYCOPY(Dst, Src, Count) \
910e6c7e151Schristos do \
911e6c7e151Schristos { \
912*c42dbd0eSchristos YYPTRDIFF_T yyi; \
913e6c7e151Schristos for (yyi = 0; yyi < (Count); yyi++) \
914e6c7e151Schristos (Dst)[yyi] = (Src)[yyi]; \
915e6c7e151Schristos } \
916e6c7e151Schristos while (0)
917e6c7e151Schristos # endif
918e6c7e151Schristos # endif
919e6c7e151Schristos #endif /* !YYCOPY_NEEDED */
920e6c7e151Schristos
921e6c7e151Schristos /* YYFINAL -- State number of the termination state. */
922e6c7e151Schristos #define YYFINAL 26
923e6c7e151Schristos /* YYLAST -- Last index in YYTABLE. */
924e6c7e151Schristos #define YYLAST 1465
925e6c7e151Schristos
926e6c7e151Schristos /* YYNTOKENS -- Number of terminals. */
927e6c7e151Schristos #define YYNTOKENS 130
928e6c7e151Schristos /* YYNNTS -- Number of nonterminals. */
929e6c7e151Schristos #define YYNNTS 70
930e6c7e151Schristos /* YYNRULES -- Number of rules. */
931e6c7e151Schristos #define YYNRULES 241
932e6c7e151Schristos /* YYNSTATES -- Number of states. */
933e6c7e151Schristos #define YYNSTATES 555
934e6c7e151Schristos
935*c42dbd0eSchristos /* YYMAXUTOK -- Last valid token kind. */
936e6c7e151Schristos #define YYMAXUTOK 361
937e6c7e151Schristos
938*c42dbd0eSchristos
939*c42dbd0eSchristos /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
940*c42dbd0eSchristos as returned by yylex, with out-of-bounds checking. */
941e6c7e151Schristos #define YYTRANSLATE(YYX) \
942*c42dbd0eSchristos (0 <= (YYX) && (YYX) <= YYMAXUTOK \
943*c42dbd0eSchristos ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
944*c42dbd0eSchristos : YYSYMBOL_YYUNDEF)
945e6c7e151Schristos
946e6c7e151Schristos /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
947*c42dbd0eSchristos as returned by yylex. */
948e6c7e151Schristos static const yytype_uint8 yytranslate[] =
949e6c7e151Schristos {
950e6c7e151Schristos 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
951e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
952e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
953e6c7e151Schristos 2, 2, 2, 126, 2, 2, 2, 31, 18, 2,
954e6c7e151Schristos 120, 121, 29, 27, 124, 28, 2, 30, 2, 2,
955e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 13, 125,
956e6c7e151Schristos 21, 7, 22, 12, 2, 2, 2, 2, 2, 2,
957e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
958e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
959e6c7e151Schristos 2, 2, 2, 2, 17, 2, 2, 2, 2, 2,
960e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 128, 2,
961e6c7e151Schristos 2, 127, 2, 2, 2, 2, 2, 2, 2, 2,
962e6c7e151Schristos 2, 2, 2, 122, 16, 123, 129, 2, 2, 2,
963e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
964e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
965e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
966e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
967e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
968e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
969e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
970e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
971e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
972e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
973e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
974e6c7e151Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
975e6c7e151Schristos 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
976e6c7e151Schristos 5, 6, 8, 9, 10, 11, 14, 15, 19, 20,
977e6c7e151Schristos 23, 24, 25, 26, 32, 33, 34, 35, 36, 37,
978e6c7e151Schristos 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
979e6c7e151Schristos 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
980e6c7e151Schristos 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
981e6c7e151Schristos 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
982e6c7e151Schristos 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
983e6c7e151Schristos 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
984e6c7e151Schristos 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
985e6c7e151Schristos 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
986e6c7e151Schristos 118, 119
987e6c7e151Schristos };
988e6c7e151Schristos
989e6c7e151Schristos #if YYDEBUG
990e6c7e151Schristos /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
991*c42dbd0eSchristos static const yytype_int16 yyrline[] =
992e6c7e151Schristos {
993e6c7e151Schristos 0, 236, 236, 237, 238, 239, 240, 241, 242, 247,
994e6c7e151Schristos 248, 253, 254, 257, 256, 260, 262, 263, 264, 266,
995e6c7e151Schristos 272, 279, 280, 283, 282, 286, 289, 288, 292, 294,
996e6c7e151Schristos 295, 297, 300, 301, 309, 317, 317, 323, 325, 327,
997e6c7e151Schristos 333, 334, 339, 341, 344, 343, 351, 352, 357, 359,
998e6c7e151Schristos 360, 362, 366, 365, 374, 376, 374, 393, 398, 403,
999e6c7e151Schristos 408, 413, 418, 427, 429, 434, 439, 444, 454, 455,
1000e6c7e151Schristos 462, 463, 470, 471, 478, 479, 481, 483, 489, 498,
1001e6c7e151Schristos 500, 505, 507, 512, 515, 521, 524, 529, 531, 537,
1002e6c7e151Schristos 538, 539, 541, 543, 545, 552, 553, 556, 562, 564,
1003e6c7e151Schristos 566, 568, 570, 577, 579, 585, 592, 601, 606, 615,
1004e6c7e151Schristos 620, 625, 630, 639, 644, 663, 682, 691, 693, 700,
1005e6c7e151Schristos 702, 707, 716, 717, 722, 725, 728, 733, 736, 739,
1006e6c7e151Schristos 743, 745, 747, 751, 753, 755, 760, 761, 766, 775,
1007e6c7e151Schristos 777, 784, 785, 793, 798, 809, 818, 820, 826, 832,
1008e6c7e151Schristos 838, 844, 850, 856, 862, 868, 870, 872, 878, 878,
1009e6c7e151Schristos 888, 890, 892, 894, 896, 898, 900, 902, 904, 906,
1010e6c7e151Schristos 908, 910, 912, 914, 916, 918, 920, 922, 924, 926,
1011e6c7e151Schristos 928, 930, 932, 934, 936, 938, 940, 942, 944, 946,
1012e6c7e151Schristos 948, 950, 952, 954, 956, 958, 960, 962, 964, 966,
1013e6c7e151Schristos 968, 970, 975, 980, 982, 990, 996, 1006, 1009, 1010,
1014e6c7e151Schristos 1014, 1020, 1024, 1025, 1029, 1033, 1038, 1045, 1049, 1057,
1015e6c7e151Schristos 1058, 1060, 1062, 1064, 1073, 1078, 1083, 1088, 1095, 1094,
1016e6c7e151Schristos 1105, 1104, 1111, 1116, 1126, 1128, 1135, 1136, 1141, 1142,
1017e6c7e151Schristos 1147, 1148
1018e6c7e151Schristos };
1019e6c7e151Schristos #endif
1020e6c7e151Schristos
1021*c42dbd0eSchristos /** Accessing symbol of state STATE. */
1022*c42dbd0eSchristos #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
1023*c42dbd0eSchristos
1024*c42dbd0eSchristos #if 1
1025*c42dbd0eSchristos /* The user-facing name of the symbol whose (internal) number is
1026*c42dbd0eSchristos YYSYMBOL. No bounds checking. */
1027*c42dbd0eSchristos static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
1028*c42dbd0eSchristos
1029e6c7e151Schristos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1030e6c7e151Schristos First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1031e6c7e151Schristos static const char *const yytname[] =
1032e6c7e151Schristos {
1033*c42dbd0eSchristos "\"end of file\"", "error", "\"invalid token\"", "PLUSEQ", "MINUSEQ",
1034*c42dbd0eSchristos "MULTEQ", "DIVEQ", "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ", "OREQ", "'?'",
1035*c42dbd0eSchristos "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE", "'<'", "'>'",
1036*c42dbd0eSchristos "LE", "GE", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'",
1037*c42dbd0eSchristos "UNARY", "STRING", "QUOTED_STRING", "INTEGER", "ABSOLUTE", "ADDR",
1038*c42dbd0eSchristos "ALIGN_K", "ALIGNOF", "ASSERT_K", "AS_NEEDED", "AT", "BIND", "BLOCK",
1039*c42dbd0eSchristos "BYTE", "CONSTANT", "CONSTRUCTORS", "COPY", "CREATE_OBJECT_SYMBOLS",
1040*c42dbd0eSchristos "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_END", "DATA_SEGMENT_RELRO_END",
1041*c42dbd0eSchristos "DEFINED", "DSECT", "ENTRY", "EXCLUDE_FILE", "EXTERN", "FILL", "FLOAT",
1042e6c7e151Schristos "FORCE_COMMON_ALLOCATION", "GLOBAL", "GROUP", "HIDDEN", "HLL", "INCLUDE",
1043e6c7e151Schristos "INHIBIT_COMMON_ALLOCATION", "INFO", "INPUT", "KEEP", "LEN", "LENGTH",
1044e6c7e151Schristos "LOADADDR", "LOCAL", "LONG", "MAP", "MAX_K", "MEMORY", "MIN_K", "NEXT",
1045e6c7e151Schristos "NOCROSSREFS", "NOFLOAT", "NOLOAD", "ONLY_IF_RO", "ONLY_IF_RW", "ORG",
1046e6c7e151Schristos "ORIGIN", "OUTPUT", "OUTPUT_ARCH", "OUTPUT_FORMAT", "OVERLAY", "PHDRS",
1047e6c7e151Schristos "PROVIDE", "PROVIDE_HIDDEN", "QUAD", "SEARCH_DIR", "SECTIONS",
1048e6c7e151Schristos "SEGMENT_START", "SHORT", "SIZEOF", "SIZEOF_HEADERS",
1049e6c7e151Schristos "SORT_BY_ALIGNMENT", "SORT_BY_INIT_PRIORITY", "SORT_BY_NAME", "SPECIAL",
1050e6c7e151Schristos "SQUAD", "STARTUP", "SUBALIGN", "SYSLIB", "TARGET_K", "TRUNCATE",
1051e6c7e151Schristos "VERSIONK", "OPTION", "PARSING_LINKER_SCRIPT", "PARSING_VERSION_SCRIPT",
1052e6c7e151Schristos "PARSING_DEFSYM", "PARSING_DYNAMIC_LIST", "PARSING_SECTIONS_BLOCK",
1053e6c7e151Schristos "PARSING_SECTION_COMMANDS", "PARSING_MEMORY_DEF", "'('", "')'", "'{'",
1054e6c7e151Schristos "'}'", "','", "';'", "'!'", "'o'", "'l'", "'~'", "$accept", "top",
1055e6c7e151Schristos "linker_script", "file_cmd", "$@1", "$@2", "$@3", "ignore_cmd",
1056e6c7e151Schristos "extern_name_list", "$@4", "extern_name_list_body", "input_list",
1057e6c7e151Schristos "input_list_element", "$@5", "sections_block", "section_block_cmd",
1058e6c7e151Schristos "$@6", "section_header", "$@7", "$@8", "opt_address_and_section_type",
1059e6c7e151Schristos "section_type", "opt_at", "opt_align", "opt_subalign", "opt_constraint",
1060e6c7e151Schristos "section_trailer", "opt_memspec", "opt_at_memspec", "opt_phdr",
1061e6c7e151Schristos "opt_fill", "section_cmds", "section_cmd", "data_length",
1062e6c7e151Schristos "input_section_spec", "input_section_no_keep", "wildcard_file",
1063e6c7e151Schristos "wildcard_sections", "wildcard_section", "exclude_names",
1064e6c7e151Schristos "wildcard_name", "memory_defs", "memory_def", "memory_attr",
1065e6c7e151Schristos "memory_origin", "memory_length", "phdrs_defs", "phdr_def", "phdr_type",
1066e6c7e151Schristos "phdr_info", "assignment", "parse_exp", "$@9", "exp", "defsym_expr",
1067e6c7e151Schristos "dynamic_list_expr", "dynamic_list_nodes", "dynamic_list_node",
1068e6c7e151Schristos "version_script", "vers_nodes", "vers_node", "verdep", "vers_tag",
1069e6c7e151Schristos "vers_defns", "$@10", "$@11", "string", "end", "opt_semicolon",
1070e6c7e151Schristos "opt_comma", YY_NULLPTR
1071e6c7e151Schristos };
1072e6c7e151Schristos
1073*c42dbd0eSchristos static const char *
yysymbol_name(yysymbol_kind_t yysymbol)1074*c42dbd0eSchristos yysymbol_name (yysymbol_kind_t yysymbol)
1075e6c7e151Schristos {
1076*c42dbd0eSchristos return yytname[yysymbol];
1077*c42dbd0eSchristos }
1078e6c7e151Schristos #endif
1079e6c7e151Schristos
1080*c42dbd0eSchristos #define YYPACT_NINF (-423)
1081e6c7e151Schristos
1082*c42dbd0eSchristos #define yypact_value_is_default(Yyn) \
1083*c42dbd0eSchristos ((Yyn) == YYPACT_NINF)
1084e6c7e151Schristos
1085*c42dbd0eSchristos #define YYTABLE_NINF (-120)
1086e6c7e151Schristos
1087*c42dbd0eSchristos #define yytable_value_is_error(Yyn) \
1088e6c7e151Schristos 0
1089e6c7e151Schristos
1090e6c7e151Schristos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1091e6c7e151Schristos STATE-NUM. */
1092e6c7e151Schristos static const yytype_int16 yypact[] =
1093e6c7e151Schristos {
1094e6c7e151Schristos 365, -423, 81, 214, -112, -423, -423, -423, 14, 1300,
1095e6c7e151Schristos -423, -423, 33, -423, 81, -423, -93, -423, 52, 103,
1096e6c7e151Schristos -423, -112, -423, 177, 568, 9, -423, -37, -28, -1,
1097e6c7e151Schristos -423, -423, 15, 214, -423, 19, -69, 60, 62, 1,
1098e6c7e151Schristos 64, 80, 82, 73, 84, 90, 86, -423, -423, -423,
1099e6c7e151Schristos 136, 318, -423, -423, 214, 208, 217, 104, 108, -423,
1100e6c7e151Schristos 33, -423, 113, -423, 132, 155, 214, -423, 136, 318,
1101e6c7e151Schristos -423, -423, 157, -423, -423, 160, 214, 162, -423, -423,
1102e6c7e151Schristos -423, 168, -423, -423, -423, 169, -423, -423, 174, -423,
1103e6c7e151Schristos 136, 38, -423, 92, -423, 214, -423, 195, 214, -423,
1104e6c7e151Schristos 231, -423, 214, 214, -423, 214, 214, 214, -423, 214,
1105e6c7e151Schristos -423, 214, -423, -423, -423, -423, -423, -423, -423, -423,
1106e6c7e151Schristos -423, -423, -423, -423, 151, 103, 103, 192, 159, 156,
1107e6c7e151Schristos -423, 1253, 21, -423, 214, -423, -423, -423, 137, -423,
1108e6c7e151Schristos -423, -423, 39, 422, -423, 46, -423, 214, -423, 199,
1109e6c7e151Schristos 207, 215, 220, 214, 231, 341, 316, -423, -40, -423,
1110e6c7e151Schristos -423, 144, 229, 3, 36, 345, 346, 264, -423, 266,
1111e6c7e151Schristos 81, 267, -423, -423, -423, -423, -423, -423, -423, -423,
1112e6c7e151Schristos -423, -423, 269, 270, -423, -423, -423, 214, -17, 1253,
1113e6c7e151Schristos 1253, -423, 271, 272, 276, 279, 280, 305, 306, 309,
1114e6c7e151Schristos 310, 312, 322, 323, 324, 330, 332, 333, 337, 339,
1115e6c7e151Schristos -423, 1253, 1253, 1253, 1434, -423, 335, 265, 340, 343,
1116e6c7e151Schristos -423, 1156, 420, 1151, 350, 349, 355, 364, 356, 374,
1117e6c7e151Schristos 375, -423, 376, 397, 398, 399, 400, 7, -423, -423,
1118e6c7e151Schristos -423, -10, 508, 214, -423, -423, -6, -423, 70, -423,
1119e6c7e151Schristos -423, 402, -423, 231, -423, -423, -423, 214, -423, -423,
1120e6c7e151Schristos 300, -423, -423, -423, 191, -423, 401, -423, 103, 96,
1121e6c7e151Schristos 159, 403, -423, -8, -423, -423, -423, 1253, 214, 1253,
1122e6c7e151Schristos 214, 1253, 1253, 214, 1253, 1253, 1253, 214, 214, 214,
1123e6c7e151Schristos 1253, 1253, 214, 214, 214, 281, -423, -423, 1253, 1253,
1124e6c7e151Schristos 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253,
1125e6c7e151Schristos 1253, 1253, 1253, 1253, 1253, 1253, 1253, -423, 214, -423,
1126e6c7e151Schristos -423, -423, -423, -423, -423, -423, 510, 406, 408, 491,
1127e6c7e151Schristos -423, 153, 214, -423, 216, -423, -423, -423, -423, 216,
1128e6c7e151Schristos 53, 216, 53, -423, 412, 214, 410, -67, 413, 214,
1129e6c7e151Schristos -423, -423, 416, 231, -423, 415, -423, 29, -423, 421,
1130e6c7e151Schristos 426, -423, -423, 405, 535, -423, -423, -423, 825, 430,
1131e6c7e151Schristos 342, 431, 392, 862, 432, 714, 882, 751, 433, 434,
1132e6c7e151Schristos 435, 771, 791, 455, 454, 458, -423, 1414, 731, 841,
1133e6c7e151Schristos 948, 481, 562, 353, 353, 463, 463, 463, 463, 409,
1134e6c7e151Schristos 409, 315, 315, -423, -423, -423, 474, 565, -423, 583,
1135e6c7e151Schristos 1253, 480, 496, 591, 485, 486, 75, -423, 488, 490,
1136e6c7e151Schristos 493, 497, -423, 495, -423, -423, -423, -423, 611, -423,
1137e6c7e151Schristos -423, -423, 98, 214, 499, 29, 500, 43, -423, -423,
1138e6c7e151Schristos 159, 498, 103, 103, -423, -423, -423, 1253, -423, 214,
1139e6c7e151Schristos -423, -423, 1253, -423, 1253, -423, -423, -423, 1253, 1253,
1140e6c7e151Schristos -423, 1253, -423, 1253, -423, 598, -423, 902, 1253, 502,
1141e6c7e151Schristos -423, -423, 614, -423, -423, 216, -423, -423, -423, 216,
1142e6c7e151Schristos -423, -423, -423, 503, -423, -423, -423, 594, -423, -423,
1143e6c7e151Schristos 507, 405, 933, 514, 970, 990, 1010, 1041, 1078, 1434,
1144e6c7e151Schristos 214, -423, 596, -423, 1098, 1253, 114, -423, -423, 105,
1145e6c7e151Schristos 512, -423, 519, 520, 159, 521, -423, -423, -423, -423,
1146e6c7e151Schristos -423, -423, -423, -423, 621, -423, -423, 1118, -423, -423,
1147e6c7e151Schristos -423, -423, -423, 18, 29, 29, -423, 214, 154, -423,
1148e6c7e151Schristos -423, -423, -423, 638, -423, -423, -423, -423, 214, 512,
1149e6c7e151Schristos -423, -423, -423, -423, -423
1150e6c7e151Schristos };
1151e6c7e151Schristos
1152e6c7e151Schristos /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1153e6c7e151Schristos Performed when YYTABLE does not specify something else to do. Zero
1154e6c7e151Schristos means the default is an error. */
1155e6c7e151Schristos static const yytype_uint8 yydefact[] =
1156e6c7e151Schristos {
1157e6c7e151Schristos 0, 10, 0, 0, 0, 47, 87, 123, 0, 2,
1158e6c7e151Schristos 234, 235, 219, 3, 211, 212, 0, 4, 0, 0,
1159e6c7e151Schristos 5, 207, 208, 6, 7, 241, 1, 0, 0, 0,
1160e6c7e151Schristos 12, 13, 0, 0, 15, 0, 0, 0, 0, 0,
1161e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 33, 9, 32,
1162e6c7e151Schristos 0, 0, 224, 225, 232, 0, 0, 0, 0, 213,
1163e6c7e151Schristos 219, 158, 0, 209, 0, 0, 0, 46, 0, 54,
1164e6c7e151Schristos 121, 120, 0, 102, 94, 0, 0, 0, 100, 98,
1165e6c7e151Schristos 101, 0, 99, 97, 88, 0, 90, 103, 0, 107,
1166e6c7e151Schristos 0, 105, 240, 126, 158, 0, 35, 0, 0, 31,
1167e6c7e151Schristos 0, 123, 0, 0, 137, 0, 0, 0, 23, 0,
1168e6c7e151Schristos 26, 0, 237, 236, 29, 158, 158, 158, 158, 158,
1169e6c7e151Schristos 158, 158, 158, 158, 0, 0, 0, 0, 220, 0,
1170e6c7e151Schristos 206, 0, 0, 158, 0, 51, 49, 52, 0, 158,
1171e6c7e151Schristos 158, 96, 0, 0, 158, 0, 89, 0, 122, 129,
1172e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 44, 241, 40,
1173e6c7e151Schristos 42, 241, 0, 0, 0, 0, 0, 0, 47, 0,
1174e6c7e151Schristos 0, 0, 147, 148, 149, 150, 146, 151, 152, 153,
1175e6c7e151Schristos 154, 228, 0, 0, 214, 226, 227, 233, 0, 0,
1176e6c7e151Schristos 0, 184, 0, 0, 0, 0, 0, 0, 0, 0,
1177e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1178e6c7e151Schristos 189, 0, 0, 0, 159, 185, 0, 0, 0, 0,
1179e6c7e151Schristos 57, 0, 68, 0, 0, 0, 0, 0, 105, 0,
1180e6c7e151Schristos 0, 119, 0, 0, 0, 0, 0, 241, 110, 113,
1181e6c7e151Schristos 125, 0, 0, 0, 28, 11, 36, 37, 241, 158,
1182e6c7e151Schristos 43, 0, 16, 0, 17, 34, 19, 0, 21, 136,
1183e6c7e151Schristos 0, 158, 158, 22, 0, 25, 0, 18, 0, 221,
1184e6c7e151Schristos 222, 0, 215, 0, 217, 164, 161, 0, 0, 0,
1185e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1186e6c7e151Schristos 0, 0, 0, 0, 0, 0, 162, 163, 0, 0,
1187e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 210, 0, 48,
1189e6c7e151Schristos 87, 65, 64, 66, 63, 67, 0, 0, 0, 70,
1190e6c7e151Schristos 59, 0, 0, 93, 0, 104, 95, 108, 91, 0,
1191e6c7e151Schristos 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
1192e6c7e151Schristos 38, 14, 0, 0, 41, 0, 140, 141, 139, 0,
1193e6c7e151Schristos 0, 24, 27, 239, 0, 230, 216, 218, 0, 0,
1194e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1195e6c7e151Schristos 0, 0, 0, 0, 0, 0, 160, 0, 182, 181,
1196e6c7e151Schristos 180, 179, 178, 172, 173, 176, 177, 174, 175, 170,
1197e6c7e151Schristos 171, 168, 169, 165, 166, 167, 0, 0, 58, 0,
1198e6c7e151Schristos 0, 0, 72, 0, 0, 0, 241, 118, 0, 0,
1199e6c7e151Schristos 0, 0, 109, 0, 127, 131, 130, 132, 0, 30,
1200e6c7e151Schristos 39, 155, 241, 0, 0, 141, 0, 141, 156, 157,
1201e6c7e151Schristos 238, 0, 0, 0, 197, 192, 198, 0, 190, 0,
1202e6c7e151Schristos 200, 196, 0, 203, 0, 188, 195, 193, 0, 0,
1203e6c7e151Schristos 194, 0, 191, 0, 50, 80, 61, 0, 0, 0,
1204e6c7e151Schristos 55, 60, 0, 92, 112, 0, 115, 116, 114, 0,
1205e6c7e151Schristos 128, 158, 45, 0, 158, 143, 138, 0, 142, 229,
1206e6c7e151Schristos 0, 239, 0, 0, 0, 0, 0, 0, 0, 183,
1207e6c7e151Schristos 0, 53, 82, 69, 0, 0, 74, 62, 117, 241,
1208e6c7e151Schristos 241, 20, 0, 0, 223, 0, 199, 205, 201, 202,
1209e6c7e151Schristos 186, 187, 204, 79, 0, 84, 71, 0, 75, 76,
1210e6c7e151Schristos 77, 56, 111, 0, 141, 141, 231, 0, 86, 73,
1211e6c7e151Schristos 134, 133, 135, 0, 145, 144, 81, 158, 0, 241,
1212e6c7e151Schristos 158, 85, 83, 78, 124
1213e6c7e151Schristos };
1214e6c7e151Schristos
1215e6c7e151Schristos /* YYPGOTO[NTERM-NUM]. */
1216e6c7e151Schristos static const yytype_int16 yypgoto[] =
1217e6c7e151Schristos {
1218e6c7e151Schristos -423, -423, -423, -423, -423, -423, -423, -423, -423, -423,
1219e6c7e151Schristos -423, -148, 393, -423, 479, -423, -423, -423, -423, -423,
1220e6c7e151Schristos -423, 317, -423, -423, -423, -423, -423, -423, -423, -423,
1221e6c7e151Schristos -423, 329, -423, -423, -423, 509, -423, -423, -245, 171,
1222e6c7e151Schristos -21, 551, -423, -423, -423, -423, -423, -423, -423, -422,
1223e6c7e151Schristos -4, -83, -423, 259, -423, -423, -423, 632, 484, -423,
1224e6c7e151Schristos 641, -423, 604, -15, -423, -423, -2, -60, 165, -23
1225e6c7e151Schristos };
1226e6c7e151Schristos
1227e6c7e151Schristos /* YYDEFGOTO[NTERM-NUM]. */
1228e6c7e151Schristos static const yytype_int16 yydefgoto[] =
1229e6c7e151Schristos {
1230*c42dbd0eSchristos 0, 8, 9, 48, 97, 168, 170, 49, 152, 153,
1231e6c7e151Schristos 246, 158, 159, 251, 23, 67, 219, 137, 138, 506,
1232e6c7e151Schristos 222, 327, 329, 412, 470, 531, 501, 502, 525, 538,
1233e6c7e151Schristos 549, 24, 84, 85, 86, 87, 88, 237, 238, 416,
1234e6c7e151Schristos 239, 25, 148, 242, 428, 543, 164, 259, 357, 436,
1235e6c7e151Schristos 68, 130, 131, 295, 17, 20, 21, 22, 13, 14,
1236e6c7e151Schristos 15, 273, 57, 58, 268, 443, 215, 114, 441, 253
1237e6c7e151Schristos };
1238e6c7e151Schristos
1239e6c7e151Schristos /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1240e6c7e151Schristos positive, shift that token. If negative, reduce the rule whose
1241e6c7e151Schristos number is the opposite. If YYTABLE_NINF, syntax error. */
1242e6c7e151Schristos static const yytype_int16 yytable[] =
1243e6c7e151Schristos {
1244e6c7e151Schristos 16, 18, 93, 89, 62, 50, 248, 51, 136, -8,
1245e6c7e151Schristos 19, 150, 16, 485, 26, 488, 10, 11, 425, 426,
1246e6c7e151Schristos 90, 69, 91, 10, 11, 10, 11, 10, 11, 60,
1247e6c7e151Schristos 146, 99, 172, 173, 174, 175, 176, 177, 178, 179,
1248e6c7e151Schristos 180, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1249e6c7e151Schristos 217, 70, 124, 101, 185, 186, 224, 225, 70, 61,
1250e6c7e151Schristos 427, 232, 10, 11, 135, 70, 52, 53, 71, 10,
1251e6c7e151Schristos 11, 434, 10, 11, 141, 71, 10, 11, 187, 10,
1252e6c7e151Schristos 11, 252, 71, 94, 92, 434, 10, 11, 540, 541,
1253e6c7e151Schristos 54, 149, 95, 151, 55, 418, 155, 420, 160, 422,
1254e6c7e151Schristos 162, 163, 233, 165, 166, 167, 56, 169, 272, 171,
1255e6c7e151Schristos 182, 183, 544, 545, 10, 11, 345, 366, 349, 96,
1256e6c7e151Schristos 435, 89, 230, 104, 256, 10, 11, 257, 343, 185,
1257e6c7e151Schristos 186, 92, 218, 92, 435, 98, 52, 53, 93, 100,
1258e6c7e151Schristos 228, 231, 226, 231, 216, 240, 542, 234, 235, 236,
1259e6c7e151Schristos 220, 247, 160, 187, 234, 235, 236, 147, -119, 258,
1260e6c7e151Schristos 54, 547, 260, 487, 189, 190, 352, 548, 16, 364,
1261e6c7e151Schristos 10, 11, 191, 192, 193, 194, 195, 196, 359, 360,
1262e6c7e151Schristos 102, 197, 103, 198, 105, 271, 274, 199, 200, 201,
1263e6c7e151Schristos 202, 351, 185, 186, 92, 108, 474, 528, 529, 92,
1264e6c7e151Schristos 106, 321, 107, 12, 109, 432, 111, 322, 203, 204,
1265e6c7e151Schristos 10, 11, 110, 205, 344, 206, 187, 64, 530, 482,
1266e6c7e151Schristos 323, 125, 92, 207, 10, 11, 532, 127, 70, 92,
1267e6c7e151Schristos 126, 64, 65, 128, 208, 324, 209, 210, 132, 346,
1268e6c7e151Schristos 32, 348, 66, 325, 350, 71, 65, 10, 11, 10,
1269e6c7e151Schristos 11, 160, 133, 363, 32, 355, 66, 221, 358, 156,
1270e6c7e151Schristos 112, 113, 69, 212, 10, 11, 213, 254, 92, 40,
1271e6c7e151Schristos 41, 367, 157, 181, 413, 134, 369, 139, 371, 188,
1272e6c7e151Schristos 140, 374, 142, 40, 41, 378, 379, 380, 143, 144,
1273e6c7e151Schristos 383, 384, 385, 298, 145, 299, 300, 301, 302, 303,
1274e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1275e6c7e151Schristos 314, 315, 316, 230, 361, 154, 406, 184, 417, 241,
1276e6c7e151Schristos 419, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1277e6c7e151Schristos 415, 243, 231, 10, 11, 356, 244, 231, 231, 231,
1278e6c7e151Schristos 231, 245, 231, 423, 314, 315, 316, 430, 249, 250,
1279e6c7e151Schristos 255, 160, 261, 262, 298, 437, 299, 300, 301, 302,
1280e6c7e151Schristos 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1281e6c7e151Schristos 313, 314, 315, 316, 306, 307, 308, 309, 310, 311,
1282e6c7e151Schristos 312, 313, 314, 315, 316, 263, 89, 265, 267, 318,
1283e6c7e151Schristos 214, 277, 278, 475, 269, 270, 279, 223, 510, 280,
1284e6c7e151Schristos 281, 512, 386, 90, 298, 91, 299, 300, 301, 302,
1285e6c7e151Schristos 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1286e6c7e151Schristos 313, 314, 315, 316, 70, 282, 283, 490, 491, 284,
1287e6c7e151Schristos 285, 483, 286, 437, 70, 437, 312, 313, 314, 315,
1288e6c7e151Schristos 316, 71, 287, 288, 289, 10, 11, 493, 275, 276,
1289e6c7e151Schristos 290, 71, 291, 292, 508, 10, 11, 293, 417, 294,
1290e6c7e151Schristos 317, 319, 328, 446, 551, 320, 447, 554, 421, 229,
1291e6c7e151Schristos 333, 296, 297, 231, 332, 334, -119, 231, 1, 2,
1292e6c7e151Schristos 3, 4, 5, 6, 7, 335, 475, 533, 310, 311,
1293e6c7e151Schristos 312, 313, 314, 315, 316, 336, 337, 338, 523, 303,
1294e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1295e6c7e151Schristos 314, 315, 316, 234, 235, 236, 449, 339, 340, 341,
1296e6c7e151Schristos 342, 347, 353, 408, 362, 365, 553, 409, 410, 411,
1297e6c7e151Schristos 440, 424, 437, 437, 429, 546, 368, 431, 370, 433,
1298e6c7e151Schristos 372, 373, 438, 375, 376, 377, 552, 439, 442, 381,
1299e6c7e151Schristos 382, 445, 448, 451, 455, 456, 457, 387, 388, 389,
1300e6c7e151Schristos 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
1301e6c7e151Schristos 400, 401, 402, 403, 404, 405, 460, 70, 461, 462,
1302e6c7e151Schristos 70, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1303e6c7e151Schristos 313, 314, 315, 316, 71, 464, 466, 71, 10, 11,
1304e6c7e151Schristos 468, 10, 11, 469, 471, 72, 472, 473, 72, 476,
1305e6c7e151Schristos 73, 477, 74, 73, 478, 74, 480, 479, 481, 484,
1306e6c7e151Schristos 500, 489, 505, 75, 511, 486, 75, 507, 32, 513,
1307e6c7e151Schristos 76, 32, 514, 76, 77, 517, 92, 77, 524, 78,
1308e6c7e151Schristos 534, 535, 78, 537, 536, 550, 354, 264, 414, 407,
1309e6c7e151Schristos 509, 227, 161, 63, 266, 59, 515, 40, 41, 79,
1310e6c7e151Schristos 40, 41, 79, 80, 129, 0, 80, 0, 81, 467,
1311e6c7e151Schristos 82, 81, 0, 82, 0, 0, 0, 0, 0, 0,
1312e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 465, 0,
1313e6c7e151Schristos 83, 0, 0, 83, 0, 0, 0, 0, 0, 0,
1314e6c7e151Schristos 0, 0, 0, 0, 0, 0, 492, 0, 0, 0,
1315e6c7e151Schristos 0, 494, 0, 495, 0, 0, 0, 496, 497, 0,
1316e6c7e151Schristos 498, 0, 499, 0, 0, 0, 298, 504, 299, 300,
1317e6c7e151Schristos 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1318e6c7e151Schristos 311, 312, 313, 314, 315, 316, 300, 301, 302, 303,
1319e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1320e6c7e151Schristos 314, 315, 316, 298, 527, 299, 300, 301, 302, 303,
1321e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1322e6c7e151Schristos 314, 315, 316, 298, 0, 299, 300, 301, 302, 303,
1323e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1324e6c7e151Schristos 314, 315, 316, 298, 0, 299, 300, 301, 302, 303,
1325e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1326e6c7e151Schristos 314, 315, 316, 0, 0, 0, 0, 0, 0, 0,
1327e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 298, 452, 299,
1328e6c7e151Schristos 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1329e6c7e151Schristos 310, 311, 312, 313, 314, 315, 316, 301, 302, 303,
1330e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1331e6c7e151Schristos 314, 315, 316, 0, 298, 454, 299, 300, 301, 302,
1332e6c7e151Schristos 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1333e6c7e151Schristos 313, 314, 315, 316, 298, 458, 299, 300, 301, 302,
1334e6c7e151Schristos 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1335e6c7e151Schristos 313, 314, 315, 316, 298, 459, 299, 300, 301, 302,
1336e6c7e151Schristos 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
1337e6c7e151Schristos 313, 314, 315, 316, 0, 0, 0, 0, 0, 0,
1338e6c7e151Schristos 0, 0, 0, 0, 0, 298, 444, 299, 300, 301,
1339e6c7e151Schristos 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
1340e6c7e151Schristos 312, 313, 314, 315, 316, 302, 303, 304, 305, 306,
1341e6c7e151Schristos 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
1342e6c7e151Schristos 0, 0, 298, 450, 299, 300, 301, 302, 303, 304,
1343e6c7e151Schristos 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1344e6c7e151Schristos 315, 316, 298, 453, 299, 300, 301, 302, 303, 304,
1345e6c7e151Schristos 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1346e6c7e151Schristos 315, 316, 298, 503, 299, 300, 301, 302, 303, 304,
1347e6c7e151Schristos 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1348e6c7e151Schristos 315, 316, 0, 0, 0, 0, 0, 0, 0, 0,
1349e6c7e151Schristos 0, 0, 0, 298, 516, 299, 300, 301, 302, 303,
1350e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1351e6c7e151Schristos 314, 315, 316, 0, 0, 0, 0, 0, 0, 0,
1352e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1353e6c7e151Schristos 298, 518, 299, 300, 301, 302, 303, 304, 305, 306,
1354e6c7e151Schristos 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
1355e6c7e151Schristos 298, 519, 299, 300, 301, 302, 303, 304, 305, 306,
1356e6c7e151Schristos 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
1357e6c7e151Schristos 298, 520, 299, 300, 301, 302, 303, 304, 305, 306,
1358e6c7e151Schristos 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
1359e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360e6c7e151Schristos 0, 0, 521, 298, 330, 299, 300, 301, 302, 303,
1361e6c7e151Schristos 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
1362e6c7e151Schristos 314, 315, 316, 189, 190, 0, 0, 0, 0, 10,
1363e6c7e151Schristos 11, 191, 192, 193, 194, 195, 196, 0, 0, 522,
1364e6c7e151Schristos 197, 0, 198, 0, 321, 0, 199, 200, 201, 202,
1365e6c7e151Schristos 322, 0, 0, 0, 0, 0, 0, 0, 0, 526,
1366e6c7e151Schristos 0, 0, 0, 323, 0, 0, 0, 203, 204, 0,
1367e6c7e151Schristos 0, 0, 205, 0, 206, 0, 0, 0, 324, 539,
1368e6c7e151Schristos 0, 0, 207, 0, 0, 0, 325, 0, 0, 0,
1369e6c7e151Schristos 0, 0, 0, 208, 0, 209, 210, 0, 0, 0,
1370e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1371e6c7e151Schristos 0, 331, 0, 0, 0, 0, 211, 326, 0, 0,
1372e6c7e151Schristos 189, 190, 212, 0, 0, 213, 10, 11, 191, 192,
1373e6c7e151Schristos 193, 194, 195, 196, 0, 0, 0, 197, 0, 198,
1374e6c7e151Schristos 0, 0, 0, 199, 200, 201, 202, 0, 0, 0,
1375e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1376e6c7e151Schristos 0, 0, 0, 0, 203, 204, 0, 0, 0, 205,
1377e6c7e151Schristos 0, 206, 0, 10, 11, 0, 0, 0, 0, 207,
1378e6c7e151Schristos 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1379e6c7e151Schristos 208, 0, 209, 210, 0, 28, 0, 29, 0, 0,
1380e6c7e151Schristos 30, 0, 31, 32, 0, 33, 34, 0, 35, 0,
1381e6c7e151Schristos 0, 0, 0, 211, 0, 0, 0, 36, 0, 212,
1382e6c7e151Schristos 0, 0, 213, 0, 0, 0, 0, 0, 37, 38,
1383e6c7e151Schristos 0, 39, 40, 41, 0, 42, 43, 0, 0, 0,
1384e6c7e151Schristos 0, 0, 0, 0, 0, 0, 0, 0, 0, 44,
1385e6c7e151Schristos 0, 45, 46, 0, 0, 0, 0, 0, 0, 0,
1386e6c7e151Schristos 0, 0, 0, 0, 0, 47, 298, 463, 299, 300,
1387e6c7e151Schristos 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1388e6c7e151Schristos 311, 312, 313, 314, 315, 316, 298, 0, 299, 300,
1389e6c7e151Schristos 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1390e6c7e151Schristos 311, 312, 313, 314, 315, 316
1391e6c7e151Schristos };
1392e6c7e151Schristos
1393e6c7e151Schristos static const yytype_int16 yycheck[] =
1394e6c7e151Schristos {
1395e6c7e151Schristos 2, 3, 25, 24, 19, 9, 154, 9, 68, 0,
1396e6c7e151Schristos 122, 94, 14, 435, 0, 437, 33, 34, 85, 86,
1397e6c7e151Schristos 24, 23, 24, 33, 34, 33, 34, 33, 34, 122,
1398e6c7e151Schristos 90, 33, 115, 116, 117, 118, 119, 120, 121, 122,
1399e6c7e151Schristos 123, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1400e6c7e151Schristos 133, 12, 54, 122, 33, 34, 139, 140, 12, 7,
1401e6c7e151Schristos 127, 144, 33, 34, 66, 12, 33, 34, 29, 33,
1402e6c7e151Schristos 34, 42, 33, 34, 76, 29, 33, 34, 57, 33,
1403e6c7e151Schristos 34, 121, 29, 120, 124, 42, 33, 34, 70, 71,
1404e6c7e151Schristos 57, 93, 120, 95, 61, 340, 98, 342, 100, 344,
1405e6c7e151Schristos 102, 103, 56, 105, 106, 107, 73, 109, 125, 111,
1406e6c7e151Schristos 125, 126, 534, 535, 33, 34, 126, 125, 124, 120,
1407e6c7e151Schristos 91, 142, 143, 122, 121, 33, 34, 124, 121, 33,
1408e6c7e151Schristos 34, 124, 134, 124, 91, 120, 33, 34, 161, 120,
1409e6c7e151Schristos 142, 143, 103, 145, 123, 147, 128, 101, 102, 103,
1410e6c7e151Schristos 13, 153, 154, 57, 101, 102, 103, 65, 120, 123,
1411e6c7e151Schristos 57, 7, 164, 120, 27, 28, 249, 13, 170, 73,
1412e6c7e151Schristos 33, 34, 35, 36, 37, 38, 39, 40, 261, 262,
1413e6c7e151Schristos 120, 44, 120, 46, 120, 187, 188, 50, 51, 52,
1414e6c7e151Schristos 53, 121, 33, 34, 124, 122, 121, 83, 84, 124,
1415e6c7e151Schristos 120, 48, 120, 122, 120, 353, 120, 54, 71, 72,
1416e6c7e151Schristos 33, 34, 122, 76, 237, 78, 57, 40, 104, 121,
1417e6c7e151Schristos 67, 13, 124, 86, 33, 34, 121, 123, 12, 124,
1418e6c7e151Schristos 13, 40, 55, 125, 97, 82, 99, 100, 125, 241,
1419e6c7e151Schristos 63, 243, 65, 90, 246, 29, 55, 33, 34, 33,
1420e6c7e151Schristos 34, 253, 120, 268, 63, 257, 65, 120, 260, 28,
1421e6c7e151Schristos 124, 125, 264, 126, 33, 34, 129, 123, 124, 92,
1422e6c7e151Schristos 93, 273, 41, 122, 121, 120, 278, 120, 280, 123,
1423e6c7e151Schristos 120, 283, 120, 92, 93, 287, 288, 289, 120, 120,
1424e6c7e151Schristos 292, 293, 294, 12, 120, 14, 15, 16, 17, 18,
1425e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1426e6c7e151Schristos 29, 30, 31, 334, 123, 120, 318, 125, 339, 120,
1427e6c7e151Schristos 341, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1428e6c7e151Schristos 332, 124, 334, 33, 34, 35, 121, 339, 340, 341,
1429e6c7e151Schristos 342, 121, 344, 345, 29, 30, 31, 349, 7, 33,
1430e6c7e151Schristos 121, 353, 7, 7, 12, 357, 14, 15, 16, 17,
1431e6c7e151Schristos 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1432e6c7e151Schristos 28, 29, 30, 31, 21, 22, 23, 24, 25, 26,
1433e6c7e151Schristos 27, 28, 29, 30, 31, 121, 407, 121, 121, 124,
1434e6c7e151Schristos 131, 120, 120, 416, 125, 125, 120, 138, 481, 120,
1435e6c7e151Schristos 120, 484, 121, 407, 12, 407, 14, 15, 16, 17,
1436e6c7e151Schristos 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1437e6c7e151Schristos 28, 29, 30, 31, 12, 120, 120, 442, 443, 120,
1438e6c7e151Schristos 120, 433, 120, 435, 12, 437, 27, 28, 29, 30,
1439e6c7e151Schristos 31, 29, 120, 120, 120, 33, 34, 449, 189, 190,
1440e6c7e151Schristos 120, 29, 120, 120, 475, 33, 34, 120, 479, 120,
1441e6c7e151Schristos 125, 121, 42, 121, 547, 122, 124, 550, 56, 47,
1442e6c7e151Schristos 121, 212, 213, 475, 124, 120, 120, 479, 113, 114,
1443e6c7e151Schristos 115, 116, 117, 118, 119, 121, 509, 510, 25, 26,
1444e6c7e151Schristos 27, 28, 29, 30, 31, 121, 121, 121, 500, 18,
1445e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1446e6c7e151Schristos 29, 30, 31, 101, 102, 103, 124, 120, 120, 120,
1447e6c7e151Schristos 120, 13, 120, 13, 123, 122, 549, 121, 120, 38,
1448e6c7e151Schristos 125, 121, 534, 535, 121, 537, 277, 121, 279, 124,
1449e6c7e151Schristos 281, 282, 121, 284, 285, 286, 548, 121, 13, 290,
1450e6c7e151Schristos 291, 121, 121, 121, 121, 121, 121, 298, 299, 300,
1451e6c7e151Schristos 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
1452e6c7e151Schristos 311, 312, 313, 314, 315, 316, 121, 12, 124, 121,
1453e6c7e151Schristos 12, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1454e6c7e151Schristos 28, 29, 30, 31, 29, 121, 13, 29, 33, 34,
1455e6c7e151Schristos 120, 33, 34, 107, 13, 40, 121, 121, 40, 121,
1456e6c7e151Schristos 45, 121, 47, 45, 121, 47, 121, 120, 7, 120,
1457e6c7e151Schristos 22, 123, 120, 58, 121, 125, 58, 13, 63, 35,
1458e6c7e151Schristos 65, 63, 125, 65, 69, 121, 124, 69, 42, 74,
1459e6c7e151Schristos 121, 121, 74, 22, 123, 7, 253, 168, 331, 320,
1460e6c7e151Schristos 479, 142, 101, 21, 170, 14, 491, 92, 93, 94,
1461e6c7e151Schristos 92, 93, 94, 98, 60, -1, 98, -1, 103, 410,
1462e6c7e151Schristos 105, 103, -1, 105, -1, -1, -1, -1, -1, -1,
1463e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
1464e6c7e151Schristos 125, -1, -1, 125, -1, -1, -1, -1, -1, -1,
1465e6c7e151Schristos -1, -1, -1, -1, -1, -1, 447, -1, -1, -1,
1466e6c7e151Schristos -1, 452, -1, 454, -1, -1, -1, 458, 459, -1,
1467e6c7e151Schristos 461, -1, 463, -1, -1, -1, 12, 468, 14, 15,
1468e6c7e151Schristos 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1469e6c7e151Schristos 26, 27, 28, 29, 30, 31, 15, 16, 17, 18,
1470e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1471e6c7e151Schristos 29, 30, 31, 12, 505, 14, 15, 16, 17, 18,
1472e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1473e6c7e151Schristos 29, 30, 31, 12, -1, 14, 15, 16, 17, 18,
1474e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1475e6c7e151Schristos 29, 30, 31, 12, -1, 14, 15, 16, 17, 18,
1476e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1477e6c7e151Schristos 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1478e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, 12, 124, 14,
1479e6c7e151Schristos 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1480e6c7e151Schristos 25, 26, 27, 28, 29, 30, 31, 16, 17, 18,
1481e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1482e6c7e151Schristos 29, 30, 31, -1, 12, 124, 14, 15, 16, 17,
1483e6c7e151Schristos 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1484e6c7e151Schristos 28, 29, 30, 31, 12, 124, 14, 15, 16, 17,
1485e6c7e151Schristos 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1486e6c7e151Schristos 28, 29, 30, 31, 12, 124, 14, 15, 16, 17,
1487e6c7e151Schristos 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1488e6c7e151Schristos 28, 29, 30, 31, -1, -1, -1, -1, -1, -1,
1489e6c7e151Schristos -1, -1, -1, -1, -1, 12, 121, 14, 15, 16,
1490e6c7e151Schristos 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1491e6c7e151Schristos 27, 28, 29, 30, 31, 17, 18, 19, 20, 21,
1492e6c7e151Schristos 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1493e6c7e151Schristos -1, -1, 12, 121, 14, 15, 16, 17, 18, 19,
1494e6c7e151Schristos 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1495e6c7e151Schristos 30, 31, 12, 121, 14, 15, 16, 17, 18, 19,
1496e6c7e151Schristos 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1497e6c7e151Schristos 30, 31, 12, 121, 14, 15, 16, 17, 18, 19,
1498e6c7e151Schristos 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1499e6c7e151Schristos 30, 31, -1, -1, -1, -1, -1, -1, -1, -1,
1500e6c7e151Schristos -1, -1, -1, 12, 121, 14, 15, 16, 17, 18,
1501e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1502e6c7e151Schristos 29, 30, 31, -1, -1, -1, -1, -1, -1, -1,
1503e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1504e6c7e151Schristos 12, 121, 14, 15, 16, 17, 18, 19, 20, 21,
1505e6c7e151Schristos 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1506e6c7e151Schristos 12, 121, 14, 15, 16, 17, 18, 19, 20, 21,
1507e6c7e151Schristos 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1508e6c7e151Schristos 12, 121, 14, 15, 16, 17, 18, 19, 20, 21,
1509e6c7e151Schristos 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1510e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1511e6c7e151Schristos -1, -1, 121, 12, 13, 14, 15, 16, 17, 18,
1512e6c7e151Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1513e6c7e151Schristos 29, 30, 31, 27, 28, -1, -1, -1, -1, 33,
1514e6c7e151Schristos 34, 35, 36, 37, 38, 39, 40, -1, -1, 121,
1515e6c7e151Schristos 44, -1, 46, -1, 48, -1, 50, 51, 52, 53,
1516e6c7e151Schristos 54, -1, -1, -1, -1, -1, -1, -1, -1, 121,
1517e6c7e151Schristos -1, -1, -1, 67, -1, -1, -1, 71, 72, -1,
1518e6c7e151Schristos -1, -1, 76, -1, 78, -1, -1, -1, 82, 121,
1519e6c7e151Schristos -1, -1, 86, -1, -1, -1, 90, -1, -1, -1,
1520e6c7e151Schristos -1, -1, -1, 97, -1, 99, 100, -1, -1, -1,
1521e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1522e6c7e151Schristos -1, 120, -1, -1, -1, -1, 120, 121, -1, -1,
1523e6c7e151Schristos 27, 28, 126, -1, -1, 129, 33, 34, 35, 36,
1524e6c7e151Schristos 37, 38, 39, 40, -1, -1, -1, 44, -1, 46,
1525e6c7e151Schristos -1, -1, -1, 50, 51, 52, 53, -1, -1, -1,
1526e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1527e6c7e151Schristos -1, -1, -1, -1, 71, 72, -1, -1, -1, 76,
1528e6c7e151Schristos -1, 78, -1, 33, 34, -1, -1, -1, -1, 86,
1529e6c7e151Schristos 40, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1530e6c7e151Schristos 97, -1, 99, 100, -1, 55, -1, 57, -1, -1,
1531e6c7e151Schristos 60, -1, 62, 63, -1, 65, 66, -1, 68, -1,
1532e6c7e151Schristos -1, -1, -1, 120, -1, -1, -1, 77, -1, 126,
1533e6c7e151Schristos -1, -1, 129, -1, -1, -1, -1, -1, 88, 89,
1534e6c7e151Schristos -1, 91, 92, 93, -1, 95, 96, -1, -1, -1,
1535e6c7e151Schristos -1, -1, -1, -1, -1, -1, -1, -1, -1, 109,
1536e6c7e151Schristos -1, 111, 112, -1, -1, -1, -1, -1, -1, -1,
1537e6c7e151Schristos -1, -1, -1, -1, -1, 125, 12, 13, 14, 15,
1538e6c7e151Schristos 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1539e6c7e151Schristos 26, 27, 28, 29, 30, 31, 12, -1, 14, 15,
1540e6c7e151Schristos 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1541e6c7e151Schristos 26, 27, 28, 29, 30, 31
1542e6c7e151Schristos };
1543e6c7e151Schristos
1544*c42dbd0eSchristos /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
1545*c42dbd0eSchristos state STATE-NUM. */
1546e6c7e151Schristos static const yytype_uint8 yystos[] =
1547e6c7e151Schristos {
1548e6c7e151Schristos 0, 113, 114, 115, 116, 117, 118, 119, 131, 132,
1549e6c7e151Schristos 33, 34, 122, 188, 189, 190, 196, 184, 196, 122,
1550e6c7e151Schristos 185, 186, 187, 144, 161, 171, 0, 40, 55, 57,
1551e6c7e151Schristos 60, 62, 63, 65, 66, 68, 77, 88, 89, 91,
1552e6c7e151Schristos 92, 93, 95, 96, 109, 111, 112, 125, 133, 137,
1553e6c7e151Schristos 180, 196, 33, 34, 57, 61, 73, 192, 193, 190,
1554e6c7e151Schristos 122, 7, 193, 187, 40, 55, 65, 145, 180, 196,
1555e6c7e151Schristos 12, 29, 40, 45, 47, 58, 65, 69, 74, 94,
1556e6c7e151Schristos 98, 103, 105, 125, 162, 163, 164, 165, 166, 170,
1557e6c7e151Schristos 180, 196, 124, 199, 120, 120, 120, 134, 120, 196,
1558e6c7e151Schristos 120, 122, 120, 120, 122, 120, 120, 120, 122, 120,
1559e6c7e151Schristos 122, 120, 124, 125, 197, 3, 4, 5, 6, 7,
1560e6c7e151Schristos 8, 9, 10, 11, 196, 13, 13, 123, 125, 192,
1561e6c7e151Schristos 181, 182, 125, 120, 120, 196, 197, 147, 148, 120,
1562e6c7e151Schristos 120, 196, 120, 120, 120, 120, 197, 65, 172, 196,
1563e6c7e151Schristos 181, 196, 138, 139, 120, 196, 28, 41, 141, 142,
1564e6c7e151Schristos 196, 171, 196, 196, 176, 196, 196, 196, 135, 196,
1565e6c7e151Schristos 136, 196, 181, 181, 181, 181, 181, 181, 181, 181,
1566e6c7e151Schristos 181, 122, 193, 193, 125, 33, 34, 57, 123, 27,
1567e6c7e151Schristos 28, 35, 36, 37, 38, 39, 40, 44, 46, 50,
1568e6c7e151Schristos 51, 52, 53, 71, 72, 76, 78, 86, 97, 99,
1569e6c7e151Schristos 100, 120, 126, 129, 183, 196, 123, 181, 196, 146,
1570e6c7e151Schristos 13, 120, 150, 183, 181, 181, 103, 165, 196, 47,
1571e6c7e151Schristos 170, 196, 181, 56, 101, 102, 103, 167, 168, 170,
1572e6c7e151Schristos 196, 120, 173, 124, 121, 121, 140, 196, 141, 7,
1573e6c7e151Schristos 33, 143, 121, 199, 123, 121, 121, 124, 123, 177,
1574e6c7e151Schristos 196, 7, 7, 121, 144, 121, 188, 121, 194, 125,
1575e6c7e151Schristos 125, 196, 125, 191, 196, 183, 183, 120, 120, 120,
1576e6c7e151Schristos 120, 120, 120, 120, 120, 120, 120, 120, 120, 120,
1577e6c7e151Schristos 120, 120, 120, 120, 120, 183, 183, 183, 12, 14,
1578e6c7e151Schristos 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1579e6c7e151Schristos 25, 26, 27, 28, 29, 30, 31, 125, 124, 121,
1580e6c7e151Schristos 122, 48, 54, 67, 82, 90, 121, 151, 42, 152,
1581e6c7e151Schristos 13, 120, 124, 121, 120, 121, 121, 121, 121, 120,
1582e6c7e151Schristos 120, 120, 120, 121, 199, 126, 196, 13, 196, 124,
1583e6c7e151Schristos 196, 121, 181, 120, 142, 196, 35, 178, 196, 181,
1584e6c7e151Schristos 181, 123, 123, 193, 73, 122, 125, 196, 183, 196,
1585e6c7e151Schristos 183, 196, 183, 183, 196, 183, 183, 183, 196, 196,
1586e6c7e151Schristos 196, 183, 183, 196, 196, 196, 121, 183, 183, 183,
1587e6c7e151Schristos 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1588e6c7e151Schristos 183, 183, 183, 183, 183, 183, 196, 161, 13, 121,
1589e6c7e151Schristos 120, 38, 153, 121, 151, 196, 169, 170, 168, 170,
1590e6c7e151Schristos 168, 56, 168, 196, 121, 85, 86, 127, 174, 121,
1591e6c7e151Schristos 196, 121, 141, 124, 42, 91, 179, 196, 121, 121,
1592e6c7e151Schristos 125, 198, 13, 195, 121, 121, 121, 124, 121, 124,
1593e6c7e151Schristos 121, 121, 124, 121, 124, 121, 121, 121, 124, 124,
1594e6c7e151Schristos 121, 124, 121, 13, 121, 123, 13, 183, 120, 107,
1595e6c7e151Schristos 154, 13, 121, 121, 121, 199, 121, 121, 121, 120,
1596e6c7e151Schristos 121, 7, 121, 196, 120, 179, 125, 120, 179, 123,
1597e6c7e151Schristos 193, 193, 183, 196, 183, 183, 183, 183, 183, 183,
1598e6c7e151Schristos 22, 156, 157, 121, 183, 120, 149, 13, 170, 169,
1599e6c7e151Schristos 181, 121, 181, 35, 125, 198, 121, 121, 121, 121,
1600e6c7e151Schristos 121, 121, 121, 196, 42, 158, 121, 183, 83, 84,
1601e6c7e151Schristos 104, 155, 121, 199, 121, 121, 123, 22, 159, 121,
1602e6c7e151Schristos 70, 71, 128, 175, 179, 179, 196, 7, 13, 160,
1603e6c7e151Schristos 7, 181, 196, 199, 181
1604e6c7e151Schristos };
1605e6c7e151Schristos
1606*c42dbd0eSchristos /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
1607e6c7e151Schristos static const yytype_uint8 yyr1[] =
1608e6c7e151Schristos {
1609e6c7e151Schristos 0, 130, 131, 131, 131, 131, 131, 131, 131, 132,
1610e6c7e151Schristos 132, 133, 133, 134, 133, 133, 133, 133, 133, 133,
1611e6c7e151Schristos 133, 133, 133, 135, 133, 133, 136, 133, 133, 133,
1612e6c7e151Schristos 133, 133, 133, 133, 137, 139, 138, 140, 140, 140,
1613e6c7e151Schristos 141, 141, 142, 142, 143, 142, 144, 144, 145, 145,
1614e6c7e151Schristos 145, 145, 146, 145, 148, 149, 147, 150, 150, 150,
1615e6c7e151Schristos 150, 150, 150, 151, 151, 151, 151, 151, 152, 152,
1616e6c7e151Schristos 153, 153, 154, 154, 155, 155, 155, 155, 156, 157,
1617e6c7e151Schristos 157, 158, 158, 159, 159, 160, 160, 161, 161, 162,
1618e6c7e151Schristos 162, 162, 162, 162, 162, 162, 162, 162, 163, 163,
1619e6c7e151Schristos 163, 163, 163, 164, 164, 165, 165, 166, 166, 167,
1620e6c7e151Schristos 167, 167, 167, 168, 168, 168, 168, 169, 169, 170,
1621e6c7e151Schristos 170, 170, 171, 171, 172, 172, 172, 173, 173, 173,
1622e6c7e151Schristos 174, 174, 174, 175, 175, 175, 176, 176, 177, 178,
1623e6c7e151Schristos 178, 179, 179, 179, 179, 179, 180, 180, 180, 180,
1624e6c7e151Schristos 180, 180, 180, 180, 180, 180, 180, 180, 182, 181,
1625e6c7e151Schristos 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1626e6c7e151Schristos 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1627e6c7e151Schristos 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1628e6c7e151Schristos 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1629e6c7e151Schristos 183, 183, 183, 183, 183, 183, 184, 185, 186, 186,
1630e6c7e151Schristos 187, 188, 189, 189, 190, 190, 190, 191, 191, 192,
1631e6c7e151Schristos 192, 192, 192, 192, 193, 193, 193, 193, 194, 193,
1632e6c7e151Schristos 195, 193, 193, 193, 196, 196, 197, 197, 198, 198,
1633e6c7e151Schristos 199, 199
1634e6c7e151Schristos };
1635e6c7e151Schristos
1636*c42dbd0eSchristos /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
1637*c42dbd0eSchristos static const yytype_int8 yyr2[] =
1638e6c7e151Schristos {
1639e6c7e151Schristos 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1640e6c7e151Schristos 0, 4, 1, 0, 5, 1, 4, 4, 4, 4,
1641e6c7e151Schristos 8, 4, 4, 0, 5, 4, 0, 5, 4, 2,
1642e6c7e151Schristos 6, 2, 1, 1, 4, 0, 2, 1, 2, 3,
1643e6c7e151Schristos 1, 3, 1, 2, 0, 5, 2, 0, 4, 2,
1644e6c7e151Schristos 6, 2, 0, 7, 0, 0, 7, 1, 3, 2,
1645e6c7e151Schristos 4, 4, 5, 1, 1, 1, 1, 1, 0, 4,
1646e6c7e151Schristos 0, 4, 0, 4, 0, 1, 1, 1, 5, 2,
1647e6c7e151Schristos 0, 3, 0, 3, 0, 2, 0, 0, 2, 2,
1648e6c7e151Schristos 1, 4, 6, 4, 1, 4, 2, 1, 1, 1,
1649e6c7e151Schristos 1, 1, 1, 1, 4, 1, 4, 1, 4, 3,
1650e6c7e151Schristos 1, 6, 4, 1, 4, 4, 4, 3, 1, 1,
1651e6c7e151Schristos 1, 1, 3, 0, 10, 2, 0, 3, 4, 0,
1652e6c7e151Schristos 1, 1, 1, 1, 1, 1, 2, 0, 4, 1,
1653e6c7e151Schristos 1, 0, 2, 2, 5, 5, 3, 3, 3, 3,
1654e6c7e151Schristos 3, 3, 3, 3, 3, 6, 6, 6, 0, 2,
1655e6c7e151Schristos 3, 2, 2, 2, 2, 3, 3, 3, 3, 3,
1656e6c7e151Schristos 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1657e6c7e151Schristos 3, 3, 3, 5, 1, 1, 6, 6, 4, 1,
1658e6c7e151Schristos 4, 4, 4, 4, 4, 4, 4, 4, 4, 6,
1659e6c7e151Schristos 4, 6, 6, 4, 6, 6, 3, 1, 1, 2,
1660e6c7e151Schristos 5, 1, 1, 2, 4, 5, 6, 1, 2, 0,
1661e6c7e151Schristos 2, 4, 4, 8, 1, 1, 3, 3, 0, 7,
1662e6c7e151Schristos 0, 9, 1, 3, 1, 1, 1, 1, 1, 0,
1663e6c7e151Schristos 1, 0
1664e6c7e151Schristos };
1665e6c7e151Schristos
1666e6c7e151Schristos
1667*c42dbd0eSchristos enum { YYENOMEM = -2 };
1668*c42dbd0eSchristos
1669e6c7e151Schristos #define yyerrok (yyerrstatus = 0)
1670e6c7e151Schristos #define yyclearin (yychar = YYEMPTY)
1671e6c7e151Schristos
1672e6c7e151Schristos #define YYACCEPT goto yyacceptlab
1673e6c7e151Schristos #define YYABORT goto yyabortlab
1674e6c7e151Schristos #define YYERROR goto yyerrorlab
1675*c42dbd0eSchristos #define YYNOMEM goto yyexhaustedlab
1676e6c7e151Schristos
1677e6c7e151Schristos
1678e6c7e151Schristos #define YYRECOVERING() (!!yyerrstatus)
1679e6c7e151Schristos
1680e6c7e151Schristos #define YYBACKUP(Token, Value) \
1681e6c7e151Schristos do \
1682e6c7e151Schristos if (yychar == YYEMPTY) \
1683e6c7e151Schristos { \
1684e6c7e151Schristos yychar = (Token); \
1685e6c7e151Schristos yylval = (Value); \
1686e6c7e151Schristos YYPOPSTACK (yylen); \
1687e6c7e151Schristos yystate = *yyssp; \
1688e6c7e151Schristos goto yybackup; \
1689e6c7e151Schristos } \
1690e6c7e151Schristos else \
1691e6c7e151Schristos { \
1692e6c7e151Schristos yyerror (closure, YY_("syntax error: cannot back up")); \
1693e6c7e151Schristos YYERROR; \
1694e6c7e151Schristos } \
1695e6c7e151Schristos while (0)
1696e6c7e151Schristos
1697*c42dbd0eSchristos /* Backward compatibility with an undocumented macro.
1698*c42dbd0eSchristos Use YYerror or YYUNDEF. */
1699*c42dbd0eSchristos #define YYERRCODE YYUNDEF
1700e6c7e151Schristos
1701e6c7e151Schristos
1702e6c7e151Schristos /* Enable debugging if requested. */
1703e6c7e151Schristos #if YYDEBUG
1704e6c7e151Schristos
1705e6c7e151Schristos # ifndef YYFPRINTF
1706e6c7e151Schristos # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1707e6c7e151Schristos # define YYFPRINTF fprintf
1708e6c7e151Schristos # endif
1709e6c7e151Schristos
1710e6c7e151Schristos # define YYDPRINTF(Args) \
1711e6c7e151Schristos do { \
1712e6c7e151Schristos if (yydebug) \
1713e6c7e151Schristos YYFPRINTF Args; \
1714e6c7e151Schristos } while (0)
1715e6c7e151Schristos
1716e6c7e151Schristos
1717e6c7e151Schristos
1718*c42dbd0eSchristos
1719*c42dbd0eSchristos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
1720e6c7e151Schristos do { \
1721e6c7e151Schristos if (yydebug) \
1722e6c7e151Schristos { \
1723e6c7e151Schristos YYFPRINTF (stderr, "%s ", Title); \
1724e6c7e151Schristos yy_symbol_print (stderr, \
1725*c42dbd0eSchristos Kind, Value, closure); \
1726e6c7e151Schristos YYFPRINTF (stderr, "\n"); \
1727e6c7e151Schristos } \
1728e6c7e151Schristos } while (0)
1729e6c7e151Schristos
1730e6c7e151Schristos
1731*c42dbd0eSchristos /*-----------------------------------.
1732*c42dbd0eSchristos | Print this symbol's value on YYO. |
1733*c42dbd0eSchristos `-----------------------------------*/
1734e6c7e151Schristos
1735e6c7e151Schristos static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,void * closure)1736*c42dbd0eSchristos yy_symbol_value_print (FILE *yyo,
1737*c42dbd0eSchristos yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, void* closure)
1738e6c7e151Schristos {
1739*c42dbd0eSchristos FILE *yyoutput = yyo;
1740*c42dbd0eSchristos YY_USE (yyoutput);
1741*c42dbd0eSchristos YY_USE (closure);
1742e6c7e151Schristos if (!yyvaluep)
1743e6c7e151Schristos return;
1744*c42dbd0eSchristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1745*c42dbd0eSchristos YY_USE (yykind);
1746*c42dbd0eSchristos YY_IGNORE_MAYBE_UNINITIALIZED_END
1747e6c7e151Schristos }
1748e6c7e151Schristos
1749e6c7e151Schristos
1750*c42dbd0eSchristos /*---------------------------.
1751*c42dbd0eSchristos | Print this symbol on YYO. |
1752*c42dbd0eSchristos `---------------------------*/
1753e6c7e151Schristos
1754e6c7e151Schristos static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,void * closure)1755*c42dbd0eSchristos yy_symbol_print (FILE *yyo,
1756*c42dbd0eSchristos yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, void* closure)
1757e6c7e151Schristos {
1758*c42dbd0eSchristos YYFPRINTF (yyo, "%s %s (",
1759*c42dbd0eSchristos yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
1760e6c7e151Schristos
1761*c42dbd0eSchristos yy_symbol_value_print (yyo, yykind, yyvaluep, closure);
1762*c42dbd0eSchristos YYFPRINTF (yyo, ")");
1763e6c7e151Schristos }
1764e6c7e151Schristos
1765e6c7e151Schristos /*------------------------------------------------------------------.
1766e6c7e151Schristos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1767e6c7e151Schristos | TOP (included). |
1768e6c7e151Schristos `------------------------------------------------------------------*/
1769e6c7e151Schristos
1770e6c7e151Schristos static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)1771*c42dbd0eSchristos yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
1772e6c7e151Schristos {
1773e6c7e151Schristos YYFPRINTF (stderr, "Stack now");
1774e6c7e151Schristos for (; yybottom <= yytop; yybottom++)
1775e6c7e151Schristos {
1776e6c7e151Schristos int yybot = *yybottom;
1777e6c7e151Schristos YYFPRINTF (stderr, " %d", yybot);
1778e6c7e151Schristos }
1779e6c7e151Schristos YYFPRINTF (stderr, "\n");
1780e6c7e151Schristos }
1781e6c7e151Schristos
1782e6c7e151Schristos # define YY_STACK_PRINT(Bottom, Top) \
1783e6c7e151Schristos do { \
1784e6c7e151Schristos if (yydebug) \
1785e6c7e151Schristos yy_stack_print ((Bottom), (Top)); \
1786e6c7e151Schristos } while (0)
1787e6c7e151Schristos
1788e6c7e151Schristos
1789e6c7e151Schristos /*------------------------------------------------.
1790e6c7e151Schristos | Report that the YYRULE is going to be reduced. |
1791e6c7e151Schristos `------------------------------------------------*/
1792e6c7e151Schristos
1793e6c7e151Schristos static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,int yyrule,void * closure)1794*c42dbd0eSchristos yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
1795*c42dbd0eSchristos int yyrule, void* closure)
1796e6c7e151Schristos {
1797*c42dbd0eSchristos int yylno = yyrline[yyrule];
1798e6c7e151Schristos int yynrhs = yyr2[yyrule];
1799e6c7e151Schristos int yyi;
1800*c42dbd0eSchristos YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
1801e6c7e151Schristos yyrule - 1, yylno);
1802e6c7e151Schristos /* The symbols being reduced. */
1803e6c7e151Schristos for (yyi = 0; yyi < yynrhs; yyi++)
1804e6c7e151Schristos {
1805e6c7e151Schristos YYFPRINTF (stderr, " $%d = ", yyi + 1);
1806e6c7e151Schristos yy_symbol_print (stderr,
1807*c42dbd0eSchristos YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1808*c42dbd0eSchristos &yyvsp[(yyi + 1) - (yynrhs)], closure);
1809e6c7e151Schristos YYFPRINTF (stderr, "\n");
1810e6c7e151Schristos }
1811e6c7e151Schristos }
1812e6c7e151Schristos
1813e6c7e151Schristos # define YY_REDUCE_PRINT(Rule) \
1814e6c7e151Schristos do { \
1815e6c7e151Schristos if (yydebug) \
1816e6c7e151Schristos yy_reduce_print (yyssp, yyvsp, Rule, closure); \
1817e6c7e151Schristos } while (0)
1818e6c7e151Schristos
1819e6c7e151Schristos /* Nonzero means print parse trace. It is left uninitialized so that
1820e6c7e151Schristos multiple parsers can coexist. */
1821e6c7e151Schristos int yydebug;
1822e6c7e151Schristos #else /* !YYDEBUG */
1823*c42dbd0eSchristos # define YYDPRINTF(Args) ((void) 0)
1824*c42dbd0eSchristos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1825e6c7e151Schristos # define YY_STACK_PRINT(Bottom, Top)
1826e6c7e151Schristos # define YY_REDUCE_PRINT(Rule)
1827e6c7e151Schristos #endif /* !YYDEBUG */
1828e6c7e151Schristos
1829e6c7e151Schristos
1830e6c7e151Schristos /* YYINITDEPTH -- initial size of the parser's stacks. */
1831e6c7e151Schristos #ifndef YYINITDEPTH
1832e6c7e151Schristos # define YYINITDEPTH 200
1833e6c7e151Schristos #endif
1834e6c7e151Schristos
1835e6c7e151Schristos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1836e6c7e151Schristos if the built-in stack extension method is used).
1837e6c7e151Schristos
1838e6c7e151Schristos Do not make this value too large; the results are undefined if
1839e6c7e151Schristos YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1840e6c7e151Schristos evaluated with infinite-precision integer arithmetic. */
1841e6c7e151Schristos
1842e6c7e151Schristos #ifndef YYMAXDEPTH
1843e6c7e151Schristos # define YYMAXDEPTH 10000
1844e6c7e151Schristos #endif
1845e6c7e151Schristos
1846e6c7e151Schristos
1847*c42dbd0eSchristos /* Context of a parse error. */
1848*c42dbd0eSchristos typedef struct
1849*c42dbd0eSchristos {
1850*c42dbd0eSchristos yy_state_t *yyssp;
1851*c42dbd0eSchristos yysymbol_kind_t yytoken;
1852*c42dbd0eSchristos } yypcontext_t;
1853*c42dbd0eSchristos
1854*c42dbd0eSchristos /* Put in YYARG at most YYARGN of the expected tokens given the
1855*c42dbd0eSchristos current YYCTX, and return the number of tokens stored in YYARG. If
1856*c42dbd0eSchristos YYARG is null, return the number of expected tokens (guaranteed to
1857*c42dbd0eSchristos be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
1858*c42dbd0eSchristos Return 0 if there are more than YYARGN expected tokens, yet fill
1859*c42dbd0eSchristos YYARG up to YYARGN. */
1860*c42dbd0eSchristos static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)1861*c42dbd0eSchristos yypcontext_expected_tokens (const yypcontext_t *yyctx,
1862*c42dbd0eSchristos yysymbol_kind_t yyarg[], int yyargn)
1863*c42dbd0eSchristos {
1864*c42dbd0eSchristos /* Actual size of YYARG. */
1865*c42dbd0eSchristos int yycount = 0;
1866*c42dbd0eSchristos int yyn = yypact[+*yyctx->yyssp];
1867*c42dbd0eSchristos if (!yypact_value_is_default (yyn))
1868*c42dbd0eSchristos {
1869*c42dbd0eSchristos /* Start YYX at -YYN if negative to avoid negative indexes in
1870*c42dbd0eSchristos YYCHECK. In other words, skip the first -YYN actions for
1871*c42dbd0eSchristos this state because they are default actions. */
1872*c42dbd0eSchristos int yyxbegin = yyn < 0 ? -yyn : 0;
1873*c42dbd0eSchristos /* Stay within bounds of both yycheck and yytname. */
1874*c42dbd0eSchristos int yychecklim = YYLAST - yyn + 1;
1875*c42dbd0eSchristos int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1876*c42dbd0eSchristos int yyx;
1877*c42dbd0eSchristos for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1878*c42dbd0eSchristos if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
1879*c42dbd0eSchristos && !yytable_value_is_error (yytable[yyx + yyn]))
1880*c42dbd0eSchristos {
1881*c42dbd0eSchristos if (!yyarg)
1882*c42dbd0eSchristos ++yycount;
1883*c42dbd0eSchristos else if (yycount == yyargn)
1884*c42dbd0eSchristos return 0;
1885*c42dbd0eSchristos else
1886*c42dbd0eSchristos yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
1887*c42dbd0eSchristos }
1888*c42dbd0eSchristos }
1889*c42dbd0eSchristos if (yyarg && yycount == 0 && 0 < yyargn)
1890*c42dbd0eSchristos yyarg[0] = YYSYMBOL_YYEMPTY;
1891*c42dbd0eSchristos return yycount;
1892*c42dbd0eSchristos }
1893*c42dbd0eSchristos
1894*c42dbd0eSchristos
1895*c42dbd0eSchristos
1896e6c7e151Schristos
1897e6c7e151Schristos #ifndef yystrlen
1898e6c7e151Schristos # if defined __GLIBC__ && defined _STRING_H
1899*c42dbd0eSchristos # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
1900e6c7e151Schristos # else
1901e6c7e151Schristos /* Return the length of YYSTR. */
1902*c42dbd0eSchristos static YYPTRDIFF_T
yystrlen(const char * yystr)1903e6c7e151Schristos yystrlen (const char *yystr)
1904e6c7e151Schristos {
1905*c42dbd0eSchristos YYPTRDIFF_T yylen;
1906e6c7e151Schristos for (yylen = 0; yystr[yylen]; yylen++)
1907e6c7e151Schristos continue;
1908e6c7e151Schristos return yylen;
1909e6c7e151Schristos }
1910e6c7e151Schristos # endif
1911e6c7e151Schristos #endif
1912e6c7e151Schristos
1913e6c7e151Schristos #ifndef yystpcpy
1914e6c7e151Schristos # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1915e6c7e151Schristos # define yystpcpy stpcpy
1916e6c7e151Schristos # else
1917e6c7e151Schristos /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1918e6c7e151Schristos YYDEST. */
1919e6c7e151Schristos static char *
yystpcpy(char * yydest,const char * yysrc)1920e6c7e151Schristos yystpcpy (char *yydest, const char *yysrc)
1921e6c7e151Schristos {
1922e6c7e151Schristos char *yyd = yydest;
1923e6c7e151Schristos const char *yys = yysrc;
1924e6c7e151Schristos
1925e6c7e151Schristos while ((*yyd++ = *yys++) != '\0')
1926e6c7e151Schristos continue;
1927e6c7e151Schristos
1928e6c7e151Schristos return yyd - 1;
1929e6c7e151Schristos }
1930e6c7e151Schristos # endif
1931e6c7e151Schristos #endif
1932e6c7e151Schristos
1933e6c7e151Schristos #ifndef yytnamerr
1934e6c7e151Schristos /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1935e6c7e151Schristos quotes and backslashes, so that it's suitable for yyerror. The
1936e6c7e151Schristos heuristic is that double-quoting is unnecessary unless the string
1937e6c7e151Schristos contains an apostrophe, a comma, or backslash (other than
1938e6c7e151Schristos backslash-backslash). YYSTR is taken from yytname. If YYRES is
1939e6c7e151Schristos null, do not copy; instead, return the length of what the result
1940e6c7e151Schristos would have been. */
1941*c42dbd0eSchristos static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)1942e6c7e151Schristos yytnamerr (char *yyres, const char *yystr)
1943e6c7e151Schristos {
1944e6c7e151Schristos if (*yystr == '"')
1945e6c7e151Schristos {
1946*c42dbd0eSchristos YYPTRDIFF_T yyn = 0;
1947e6c7e151Schristos char const *yyp = yystr;
1948e6c7e151Schristos for (;;)
1949e6c7e151Schristos switch (*++yyp)
1950e6c7e151Schristos {
1951e6c7e151Schristos case '\'':
1952e6c7e151Schristos case ',':
1953e6c7e151Schristos goto do_not_strip_quotes;
1954e6c7e151Schristos
1955e6c7e151Schristos case '\\':
1956e6c7e151Schristos if (*++yyp != '\\')
1957e6c7e151Schristos goto do_not_strip_quotes;
1958*c42dbd0eSchristos else
1959*c42dbd0eSchristos goto append;
1960*c42dbd0eSchristos
1961*c42dbd0eSchristos append:
1962e6c7e151Schristos default:
1963e6c7e151Schristos if (yyres)
1964e6c7e151Schristos yyres[yyn] = *yyp;
1965e6c7e151Schristos yyn++;
1966e6c7e151Schristos break;
1967e6c7e151Schristos
1968e6c7e151Schristos case '"':
1969e6c7e151Schristos if (yyres)
1970e6c7e151Schristos yyres[yyn] = '\0';
1971e6c7e151Schristos return yyn;
1972e6c7e151Schristos }
1973e6c7e151Schristos do_not_strip_quotes: ;
1974e6c7e151Schristos }
1975e6c7e151Schristos
1976*c42dbd0eSchristos if (yyres)
1977e6c7e151Schristos return yystpcpy (yyres, yystr) - yyres;
1978*c42dbd0eSchristos else
1979*c42dbd0eSchristos return yystrlen (yystr);
1980e6c7e151Schristos }
1981e6c7e151Schristos #endif
1982e6c7e151Schristos
1983e6c7e151Schristos
1984e6c7e151Schristos static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)1985*c42dbd0eSchristos yy_syntax_error_arguments (const yypcontext_t *yyctx,
1986*c42dbd0eSchristos yysymbol_kind_t yyarg[], int yyargn)
1987e6c7e151Schristos {
1988*c42dbd0eSchristos /* Actual size of YYARG. */
1989e6c7e151Schristos int yycount = 0;
1990e6c7e151Schristos /* There are many possibilities here to consider:
1991e6c7e151Schristos - If this state is a consistent state with a default action, then
1992e6c7e151Schristos the only way this function was invoked is if the default action
1993e6c7e151Schristos is an error action. In that case, don't check for expected
1994e6c7e151Schristos tokens because there are none.
1995e6c7e151Schristos - The only way there can be no lookahead present (in yychar) is if
1996e6c7e151Schristos this state is a consistent state with a default action. Thus,
1997e6c7e151Schristos detecting the absence of a lookahead is sufficient to determine
1998e6c7e151Schristos that there is no unexpected or expected token to report. In that
1999e6c7e151Schristos case, just report a simple "syntax error".
2000e6c7e151Schristos - Don't assume there isn't a lookahead just because this state is a
2001e6c7e151Schristos consistent state with a default action. There might have been a
2002e6c7e151Schristos previous inconsistent state, consistent state with a non-default
2003e6c7e151Schristos action, or user semantic action that manipulated yychar.
2004e6c7e151Schristos - Of course, the expected token list depends on states to have
2005e6c7e151Schristos correct lookahead information, and it depends on the parser not
2006e6c7e151Schristos to perform extra reductions after fetching a lookahead from the
2007e6c7e151Schristos scanner and before detecting a syntax error. Thus, state merging
2008e6c7e151Schristos (from LALR or IELR) and default reductions corrupt the expected
2009e6c7e151Schristos token list. However, the list is correct for canonical LR with
2010e6c7e151Schristos one exception: it will still contain any token that will not be
2011e6c7e151Schristos accepted due to an error action in a later state.
2012e6c7e151Schristos */
2013*c42dbd0eSchristos if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2014e6c7e151Schristos {
2015*c42dbd0eSchristos int yyn;
2016*c42dbd0eSchristos if (yyarg)
2017*c42dbd0eSchristos yyarg[yycount] = yyctx->yytoken;
2018*c42dbd0eSchristos ++yycount;
2019*c42dbd0eSchristos yyn = yypcontext_expected_tokens (yyctx,
2020*c42dbd0eSchristos yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2021*c42dbd0eSchristos if (yyn == YYENOMEM)
2022*c42dbd0eSchristos return YYENOMEM;
2023*c42dbd0eSchristos else
2024*c42dbd0eSchristos yycount += yyn;
2025*c42dbd0eSchristos }
2026*c42dbd0eSchristos return yycount;
2027*c42dbd0eSchristos }
2028e6c7e151Schristos
2029*c42dbd0eSchristos /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2030*c42dbd0eSchristos about the unexpected token YYTOKEN for the state stack whose top is
2031*c42dbd0eSchristos YYSSP.
2032*c42dbd0eSchristos
2033*c42dbd0eSchristos Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
2034*c42dbd0eSchristos not large enough to hold the message. In that case, also set
2035*c42dbd0eSchristos *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
2036*c42dbd0eSchristos required number of bytes is too large to store. */
2037*c42dbd0eSchristos static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2038*c42dbd0eSchristos yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2039*c42dbd0eSchristos const yypcontext_t *yyctx)
2040e6c7e151Schristos {
2041*c42dbd0eSchristos enum { YYARGS_MAX = 5 };
2042*c42dbd0eSchristos /* Internationalized format string. */
2043*c42dbd0eSchristos const char *yyformat = YY_NULLPTR;
2044*c42dbd0eSchristos /* Arguments of yyformat: reported tokens (one for the "unexpected",
2045*c42dbd0eSchristos one per "expected"). */
2046*c42dbd0eSchristos yysymbol_kind_t yyarg[YYARGS_MAX];
2047*c42dbd0eSchristos /* Cumulated lengths of YYARG. */
2048*c42dbd0eSchristos YYPTRDIFF_T yysize = 0;
2049*c42dbd0eSchristos
2050*c42dbd0eSchristos /* Actual size of YYARG. */
2051*c42dbd0eSchristos int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2052*c42dbd0eSchristos if (yycount == YYENOMEM)
2053*c42dbd0eSchristos return YYENOMEM;
2054e6c7e151Schristos
2055e6c7e151Schristos switch (yycount)
2056e6c7e151Schristos {
2057e6c7e151Schristos #define YYCASE_(N, S) \
2058e6c7e151Schristos case N: \
2059e6c7e151Schristos yyformat = S; \
2060e6c7e151Schristos break
2061867d70fcSchristos default: /* Avoid compiler warnings. */
2062e6c7e151Schristos YYCASE_(0, YY_("syntax error"));
2063e6c7e151Schristos YYCASE_(1, YY_("syntax error, unexpected %s"));
2064e6c7e151Schristos YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2065e6c7e151Schristos YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2066e6c7e151Schristos YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2067e6c7e151Schristos YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2068e6c7e151Schristos #undef YYCASE_
2069e6c7e151Schristos }
2070e6c7e151Schristos
2071*c42dbd0eSchristos /* Compute error message size. Don't count the "%s"s, but reserve
2072*c42dbd0eSchristos room for the terminator. */
2073*c42dbd0eSchristos yysize = yystrlen (yyformat) - 2 * yycount + 1;
2074e6c7e151Schristos {
2075*c42dbd0eSchristos int yyi;
2076*c42dbd0eSchristos for (yyi = 0; yyi < yycount; ++yyi)
2077*c42dbd0eSchristos {
2078*c42dbd0eSchristos YYPTRDIFF_T yysize1
2079*c42dbd0eSchristos = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2080*c42dbd0eSchristos if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2081e6c7e151Schristos yysize = yysize1;
2082*c42dbd0eSchristos else
2083*c42dbd0eSchristos return YYENOMEM;
2084*c42dbd0eSchristos }
2085e6c7e151Schristos }
2086e6c7e151Schristos
2087e6c7e151Schristos if (*yymsg_alloc < yysize)
2088e6c7e151Schristos {
2089e6c7e151Schristos *yymsg_alloc = 2 * yysize;
2090e6c7e151Schristos if (! (yysize <= *yymsg_alloc
2091e6c7e151Schristos && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2092e6c7e151Schristos *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2093*c42dbd0eSchristos return -1;
2094e6c7e151Schristos }
2095e6c7e151Schristos
2096e6c7e151Schristos /* Avoid sprintf, as that infringes on the user's name space.
2097e6c7e151Schristos Don't have undefined behavior even if the translation
2098e6c7e151Schristos produced a string with the wrong number of "%s"s. */
2099e6c7e151Schristos {
2100e6c7e151Schristos char *yyp = *yymsg;
2101e6c7e151Schristos int yyi = 0;
2102e6c7e151Schristos while ((*yyp = *yyformat) != '\0')
2103e6c7e151Schristos if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2104e6c7e151Schristos {
2105*c42dbd0eSchristos yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2106e6c7e151Schristos yyformat += 2;
2107e6c7e151Schristos }
2108e6c7e151Schristos else
2109e6c7e151Schristos {
2110*c42dbd0eSchristos ++yyp;
2111*c42dbd0eSchristos ++yyformat;
2112e6c7e151Schristos }
2113e6c7e151Schristos }
2114e6c7e151Schristos return 0;
2115e6c7e151Schristos }
2116*c42dbd0eSchristos
2117e6c7e151Schristos
2118e6c7e151Schristos /*-----------------------------------------------.
2119e6c7e151Schristos | Release the memory associated to this symbol. |
2120e6c7e151Schristos `-----------------------------------------------*/
2121e6c7e151Schristos
2122e6c7e151Schristos static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,void * closure)2123*c42dbd0eSchristos yydestruct (const char *yymsg,
2124*c42dbd0eSchristos yysymbol_kind_t yykind, YYSTYPE *yyvaluep, void* closure)
2125e6c7e151Schristos {
2126*c42dbd0eSchristos YY_USE (yyvaluep);
2127*c42dbd0eSchristos YY_USE (closure);
2128e6c7e151Schristos if (!yymsg)
2129e6c7e151Schristos yymsg = "Deleting";
2130*c42dbd0eSchristos YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2131e6c7e151Schristos
2132e6c7e151Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2133*c42dbd0eSchristos YY_USE (yykind);
2134e6c7e151Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
2135e6c7e151Schristos }
2136e6c7e151Schristos
2137e6c7e151Schristos
2138e6c7e151Schristos
2139e6c7e151Schristos
2140*c42dbd0eSchristos
2141*c42dbd0eSchristos
2142e6c7e151Schristos /*----------.
2143e6c7e151Schristos | yyparse. |
2144e6c7e151Schristos `----------*/
2145e6c7e151Schristos
2146e6c7e151Schristos int
yyparse(void * closure)2147e6c7e151Schristos yyparse (void* closure)
2148e6c7e151Schristos {
2149*c42dbd0eSchristos /* Lookahead token kind. */
2150e6c7e151Schristos int yychar;
2151e6c7e151Schristos
2152e6c7e151Schristos
2153e6c7e151Schristos /* The semantic value of the lookahead symbol. */
2154e6c7e151Schristos /* Default value used for initialization, for pacifying older GCCs
2155e6c7e151Schristos or non-GCC compilers. */
2156e6c7e151Schristos YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2157e6c7e151Schristos YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2158e6c7e151Schristos
2159e6c7e151Schristos /* Number of syntax errors so far. */
2160*c42dbd0eSchristos int yynerrs = 0;
2161e6c7e151Schristos
2162*c42dbd0eSchristos yy_state_fast_t yystate = 0;
2163e6c7e151Schristos /* Number of tokens to shift before error messages enabled. */
2164*c42dbd0eSchristos int yyerrstatus = 0;
2165e6c7e151Schristos
2166*c42dbd0eSchristos /* Refer to the stacks through separate pointers, to allow yyoverflow
2167e6c7e151Schristos to reallocate them elsewhere. */
2168e6c7e151Schristos
2169*c42dbd0eSchristos /* Their size. */
2170*c42dbd0eSchristos YYPTRDIFF_T yystacksize = YYINITDEPTH;
2171e6c7e151Schristos
2172*c42dbd0eSchristos /* The state stack: array, bottom, top. */
2173*c42dbd0eSchristos yy_state_t yyssa[YYINITDEPTH];
2174*c42dbd0eSchristos yy_state_t *yyss = yyssa;
2175*c42dbd0eSchristos yy_state_t *yyssp = yyss;
2176*c42dbd0eSchristos
2177*c42dbd0eSchristos /* The semantic value stack: array, bottom, top. */
2178e6c7e151Schristos YYSTYPE yyvsa[YYINITDEPTH];
2179*c42dbd0eSchristos YYSTYPE *yyvs = yyvsa;
2180*c42dbd0eSchristos YYSTYPE *yyvsp = yyvs;
2181e6c7e151Schristos
2182e6c7e151Schristos int yyn;
2183*c42dbd0eSchristos /* The return value of yyparse. */
2184e6c7e151Schristos int yyresult;
2185*c42dbd0eSchristos /* Lookahead symbol kind. */
2186*c42dbd0eSchristos yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
2187e6c7e151Schristos /* The variables used to return semantic value and location from the
2188e6c7e151Schristos action routines. */
2189e6c7e151Schristos YYSTYPE yyval;
2190e6c7e151Schristos
2191e6c7e151Schristos /* Buffer for error messages, and its allocated size. */
2192e6c7e151Schristos char yymsgbuf[128];
2193e6c7e151Schristos char *yymsg = yymsgbuf;
2194*c42dbd0eSchristos YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2195e6c7e151Schristos
2196e6c7e151Schristos #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2197e6c7e151Schristos
2198e6c7e151Schristos /* The number of symbols on the RHS of the reduced rule.
2199e6c7e151Schristos Keep to zero when no symbol should be popped. */
2200e6c7e151Schristos int yylen = 0;
2201e6c7e151Schristos
2202e6c7e151Schristos YYDPRINTF ((stderr, "Starting parse\n"));
2203e6c7e151Schristos
2204e6c7e151Schristos yychar = YYEMPTY; /* Cause a token to be read. */
2205*c42dbd0eSchristos
2206e6c7e151Schristos goto yysetstate;
2207e6c7e151Schristos
2208*c42dbd0eSchristos
2209e6c7e151Schristos /*------------------------------------------------------------.
2210*c42dbd0eSchristos | yynewstate -- push a new state, which is found in yystate. |
2211e6c7e151Schristos `------------------------------------------------------------*/
2212e6c7e151Schristos yynewstate:
2213e6c7e151Schristos /* In all cases, when you get here, the value and location stacks
2214e6c7e151Schristos have just been pushed. So pushing a state here evens the stacks. */
2215e6c7e151Schristos yyssp++;
2216e6c7e151Schristos
2217*c42dbd0eSchristos
2218*c42dbd0eSchristos /*--------------------------------------------------------------------.
2219*c42dbd0eSchristos | yysetstate -- set current state (the top of the stack) to yystate. |
2220*c42dbd0eSchristos `--------------------------------------------------------------------*/
2221e6c7e151Schristos yysetstate:
2222*c42dbd0eSchristos YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2223*c42dbd0eSchristos YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2224*c42dbd0eSchristos YY_IGNORE_USELESS_CAST_BEGIN
2225*c42dbd0eSchristos *yyssp = YY_CAST (yy_state_t, yystate);
2226*c42dbd0eSchristos YY_IGNORE_USELESS_CAST_END
2227*c42dbd0eSchristos YY_STACK_PRINT (yyss, yyssp);
2228e6c7e151Schristos
2229e6c7e151Schristos if (yyss + yystacksize - 1 <= yyssp)
2230*c42dbd0eSchristos #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2231*c42dbd0eSchristos YYNOMEM;
2232*c42dbd0eSchristos #else
2233e6c7e151Schristos {
2234e6c7e151Schristos /* Get the current used size of the three stacks, in elements. */
2235*c42dbd0eSchristos YYPTRDIFF_T yysize = yyssp - yyss + 1;
2236e6c7e151Schristos
2237*c42dbd0eSchristos # if defined yyoverflow
2238e6c7e151Schristos {
2239e6c7e151Schristos /* Give user a chance to reallocate the stack. Use copies of
2240e6c7e151Schristos these so that the &'s don't force the real ones into
2241e6c7e151Schristos memory. */
2242*c42dbd0eSchristos yy_state_t *yyss1 = yyss;
2243e6c7e151Schristos YYSTYPE *yyvs1 = yyvs;
2244e6c7e151Schristos
2245e6c7e151Schristos /* Each stack pointer address is followed by the size of the
2246e6c7e151Schristos data in use in that stack, in bytes. This used to be a
2247e6c7e151Schristos conditional around just the two extra args, but that might
2248e6c7e151Schristos be undefined if yyoverflow is a macro. */
2249e6c7e151Schristos yyoverflow (YY_("memory exhausted"),
2250*c42dbd0eSchristos &yyss1, yysize * YYSIZEOF (*yyssp),
2251*c42dbd0eSchristos &yyvs1, yysize * YYSIZEOF (*yyvsp),
2252e6c7e151Schristos &yystacksize);
2253e6c7e151Schristos yyss = yyss1;
2254e6c7e151Schristos yyvs = yyvs1;
2255e6c7e151Schristos }
2256*c42dbd0eSchristos # else /* defined YYSTACK_RELOCATE */
2257e6c7e151Schristos /* Extend the stack our own way. */
2258e6c7e151Schristos if (YYMAXDEPTH <= yystacksize)
2259*c42dbd0eSchristos YYNOMEM;
2260e6c7e151Schristos yystacksize *= 2;
2261e6c7e151Schristos if (YYMAXDEPTH < yystacksize)
2262e6c7e151Schristos yystacksize = YYMAXDEPTH;
2263e6c7e151Schristos
2264e6c7e151Schristos {
2265*c42dbd0eSchristos yy_state_t *yyss1 = yyss;
2266e6c7e151Schristos union yyalloc *yyptr =
2267*c42dbd0eSchristos YY_CAST (union yyalloc *,
2268*c42dbd0eSchristos YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
2269e6c7e151Schristos if (! yyptr)
2270*c42dbd0eSchristos YYNOMEM;
2271e6c7e151Schristos YYSTACK_RELOCATE (yyss_alloc, yyss);
2272e6c7e151Schristos YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2273e6c7e151Schristos # undef YYSTACK_RELOCATE
2274e6c7e151Schristos if (yyss1 != yyssa)
2275e6c7e151Schristos YYSTACK_FREE (yyss1);
2276e6c7e151Schristos }
2277e6c7e151Schristos # endif
2278e6c7e151Schristos
2279e6c7e151Schristos yyssp = yyss + yysize - 1;
2280e6c7e151Schristos yyvsp = yyvs + yysize - 1;
2281e6c7e151Schristos
2282*c42dbd0eSchristos YY_IGNORE_USELESS_CAST_BEGIN
2283*c42dbd0eSchristos YYDPRINTF ((stderr, "Stack size increased to %ld\n",
2284*c42dbd0eSchristos YY_CAST (long, yystacksize)));
2285*c42dbd0eSchristos YY_IGNORE_USELESS_CAST_END
2286e6c7e151Schristos
2287e6c7e151Schristos if (yyss + yystacksize - 1 <= yyssp)
2288e6c7e151Schristos YYABORT;
2289e6c7e151Schristos }
2290*c42dbd0eSchristos #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
2291e6c7e151Schristos
2292e6c7e151Schristos
2293e6c7e151Schristos if (yystate == YYFINAL)
2294e6c7e151Schristos YYACCEPT;
2295e6c7e151Schristos
2296e6c7e151Schristos goto yybackup;
2297e6c7e151Schristos
2298*c42dbd0eSchristos
2299e6c7e151Schristos /*-----------.
2300e6c7e151Schristos | yybackup. |
2301e6c7e151Schristos `-----------*/
2302e6c7e151Schristos yybackup:
2303e6c7e151Schristos /* Do appropriate processing given the current state. Read a
2304e6c7e151Schristos lookahead token if we need one and don't already have one. */
2305e6c7e151Schristos
2306e6c7e151Schristos /* First try to decide what to do without reference to lookahead token. */
2307e6c7e151Schristos yyn = yypact[yystate];
2308e6c7e151Schristos if (yypact_value_is_default (yyn))
2309e6c7e151Schristos goto yydefault;
2310e6c7e151Schristos
2311e6c7e151Schristos /* Not known => get a lookahead token if don't already have one. */
2312e6c7e151Schristos
2313*c42dbd0eSchristos /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
2314e6c7e151Schristos if (yychar == YYEMPTY)
2315e6c7e151Schristos {
2316*c42dbd0eSchristos YYDPRINTF ((stderr, "Reading a token\n"));
2317e6c7e151Schristos yychar = yylex (&yylval, closure);
2318e6c7e151Schristos }
2319e6c7e151Schristos
2320e6c7e151Schristos if (yychar <= YYEOF)
2321e6c7e151Schristos {
2322*c42dbd0eSchristos yychar = YYEOF;
2323*c42dbd0eSchristos yytoken = YYSYMBOL_YYEOF;
2324e6c7e151Schristos YYDPRINTF ((stderr, "Now at end of input.\n"));
2325e6c7e151Schristos }
2326*c42dbd0eSchristos else if (yychar == YYerror)
2327*c42dbd0eSchristos {
2328*c42dbd0eSchristos /* The scanner already issued an error message, process directly
2329*c42dbd0eSchristos to error recovery. But do not keep the error token as
2330*c42dbd0eSchristos lookahead, it is too special and may lead us to an endless
2331*c42dbd0eSchristos loop in error recovery. */
2332*c42dbd0eSchristos yychar = YYUNDEF;
2333*c42dbd0eSchristos yytoken = YYSYMBOL_YYerror;
2334*c42dbd0eSchristos goto yyerrlab1;
2335*c42dbd0eSchristos }
2336e6c7e151Schristos else
2337e6c7e151Schristos {
2338e6c7e151Schristos yytoken = YYTRANSLATE (yychar);
2339e6c7e151Schristos YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2340e6c7e151Schristos }
2341e6c7e151Schristos
2342e6c7e151Schristos /* If the proper action on seeing token YYTOKEN is to reduce or to
2343e6c7e151Schristos detect an error, take that action. */
2344e6c7e151Schristos yyn += yytoken;
2345e6c7e151Schristos if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2346e6c7e151Schristos goto yydefault;
2347e6c7e151Schristos yyn = yytable[yyn];
2348e6c7e151Schristos if (yyn <= 0)
2349e6c7e151Schristos {
2350e6c7e151Schristos if (yytable_value_is_error (yyn))
2351e6c7e151Schristos goto yyerrlab;
2352e6c7e151Schristos yyn = -yyn;
2353e6c7e151Schristos goto yyreduce;
2354e6c7e151Schristos }
2355e6c7e151Schristos
2356e6c7e151Schristos /* Count tokens shifted since error; after three, turn off error
2357e6c7e151Schristos status. */
2358e6c7e151Schristos if (yyerrstatus)
2359e6c7e151Schristos yyerrstatus--;
2360e6c7e151Schristos
2361e6c7e151Schristos /* Shift the lookahead token. */
2362e6c7e151Schristos YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2363e6c7e151Schristos yystate = yyn;
2364e6c7e151Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2365e6c7e151Schristos *++yyvsp = yylval;
2366e6c7e151Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
2367e6c7e151Schristos
2368*c42dbd0eSchristos /* Discard the shifted token. */
2369*c42dbd0eSchristos yychar = YYEMPTY;
2370e6c7e151Schristos goto yynewstate;
2371e6c7e151Schristos
2372e6c7e151Schristos
2373e6c7e151Schristos /*-----------------------------------------------------------.
2374e6c7e151Schristos | yydefault -- do the default action for the current state. |
2375e6c7e151Schristos `-----------------------------------------------------------*/
2376e6c7e151Schristos yydefault:
2377e6c7e151Schristos yyn = yydefact[yystate];
2378e6c7e151Schristos if (yyn == 0)
2379e6c7e151Schristos goto yyerrlab;
2380e6c7e151Schristos goto yyreduce;
2381e6c7e151Schristos
2382e6c7e151Schristos
2383e6c7e151Schristos /*-----------------------------.
2384*c42dbd0eSchristos | yyreduce -- do a reduction. |
2385e6c7e151Schristos `-----------------------------*/
2386e6c7e151Schristos yyreduce:
2387e6c7e151Schristos /* yyn is the number of a rule to reduce with. */
2388e6c7e151Schristos yylen = yyr2[yyn];
2389e6c7e151Schristos
2390e6c7e151Schristos /* If YYLEN is nonzero, implement the default value of the action:
2391e6c7e151Schristos '$$ = $1'.
2392e6c7e151Schristos
2393e6c7e151Schristos Otherwise, the following line sets YYVAL to garbage.
2394e6c7e151Schristos This behavior is undocumented and Bison
2395e6c7e151Schristos users should not rely upon it. Assigning to YYVAL
2396e6c7e151Schristos unconditionally makes the parser a bit smaller, and it avoids a
2397e6c7e151Schristos GCC warning that YYVAL may be used uninitialized. */
2398e6c7e151Schristos yyval = yyvsp[1-yylen];
2399e6c7e151Schristos
2400e6c7e151Schristos
2401e6c7e151Schristos YY_REDUCE_PRINT (yyn);
2402e6c7e151Schristos switch (yyn)
2403e6c7e151Schristos {
2404*c42dbd0eSchristos case 12: /* file_cmd: FORCE_COMMON_ALLOCATION */
2405*c42dbd0eSchristos #line 255 "yyscript.y"
2406e6c7e151Schristos { script_set_common_allocation(closure, 1); }
2407*c42dbd0eSchristos #line 2408 "yyscript.c"
2408e6c7e151Schristos break;
2409e6c7e151Schristos
2410*c42dbd0eSchristos case 13: /* $@1: %empty */
2411*c42dbd0eSchristos #line 257 "yyscript.y"
2412e6c7e151Schristos { script_start_group(closure); }
2413*c42dbd0eSchristos #line 2414 "yyscript.c"
2414e6c7e151Schristos break;
2415e6c7e151Schristos
2416*c42dbd0eSchristos case 14: /* file_cmd: GROUP $@1 '(' input_list ')' */
2417*c42dbd0eSchristos #line 259 "yyscript.y"
2418e6c7e151Schristos { script_end_group(closure); }
2419*c42dbd0eSchristos #line 2420 "yyscript.c"
2420e6c7e151Schristos break;
2421e6c7e151Schristos
2422*c42dbd0eSchristos case 15: /* file_cmd: INHIBIT_COMMON_ALLOCATION */
2423*c42dbd0eSchristos #line 261 "yyscript.y"
2424e6c7e151Schristos { script_set_common_allocation(closure, 0); }
2425*c42dbd0eSchristos #line 2426 "yyscript.c"
2426e6c7e151Schristos break;
2427e6c7e151Schristos
2428*c42dbd0eSchristos case 18: /* file_cmd: OPTION '(' string ')' */
2429*c42dbd0eSchristos #line 265 "yyscript.y"
2430e6c7e151Schristos { script_parse_option(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2431*c42dbd0eSchristos #line 2432 "yyscript.c"
2432e6c7e151Schristos break;
2433e6c7e151Schristos
2434*c42dbd0eSchristos case 19: /* file_cmd: OUTPUT_FORMAT '(' string ')' */
2435*c42dbd0eSchristos #line 267 "yyscript.y"
2436e6c7e151Schristos {
2437e6c7e151Schristos if (!script_check_output_format(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length,
2438e6c7e151Schristos NULL, 0, NULL, 0))
2439e6c7e151Schristos YYABORT;
2440e6c7e151Schristos }
2441*c42dbd0eSchristos #line 2442 "yyscript.c"
2442e6c7e151Schristos break;
2443e6c7e151Schristos
2444*c42dbd0eSchristos case 20: /* file_cmd: OUTPUT_FORMAT '(' string ',' string ',' string ')' */
2445*c42dbd0eSchristos #line 273 "yyscript.y"
2446e6c7e151Schristos {
2447e6c7e151Schristos if (!script_check_output_format(closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length,
2448e6c7e151Schristos (yyvsp[-3].string).value, (yyvsp[-3].string).length,
2449e6c7e151Schristos (yyvsp[-1].string).value, (yyvsp[-1].string).length))
2450e6c7e151Schristos YYABORT;
2451e6c7e151Schristos }
2452*c42dbd0eSchristos #line 2453 "yyscript.c"
2453e6c7e151Schristos break;
2454e6c7e151Schristos
2455*c42dbd0eSchristos case 22: /* file_cmd: SEARCH_DIR '(' string ')' */
2456*c42dbd0eSchristos #line 281 "yyscript.y"
2457e6c7e151Schristos { script_add_search_dir(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2458*c42dbd0eSchristos #line 2459 "yyscript.c"
2459e6c7e151Schristos break;
2460e6c7e151Schristos
2461*c42dbd0eSchristos case 23: /* $@2: %empty */
2462*c42dbd0eSchristos #line 283 "yyscript.y"
2463e6c7e151Schristos { script_start_sections(closure); }
2464*c42dbd0eSchristos #line 2465 "yyscript.c"
2465e6c7e151Schristos break;
2466e6c7e151Schristos
2467*c42dbd0eSchristos case 24: /* file_cmd: SECTIONS '{' $@2 sections_block '}' */
2468*c42dbd0eSchristos #line 285 "yyscript.y"
2469e6c7e151Schristos { script_finish_sections(closure); }
2470*c42dbd0eSchristos #line 2471 "yyscript.c"
2471e6c7e151Schristos break;
2472e6c7e151Schristos
2473*c42dbd0eSchristos case 25: /* file_cmd: TARGET_K '(' string ')' */
2474*c42dbd0eSchristos #line 287 "yyscript.y"
2475e6c7e151Schristos { script_set_target(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2476*c42dbd0eSchristos #line 2477 "yyscript.c"
2477e6c7e151Schristos break;
2478e6c7e151Schristos
2479*c42dbd0eSchristos case 26: /* $@3: %empty */
2480*c42dbd0eSchristos #line 289 "yyscript.y"
2481e6c7e151Schristos { script_push_lex_into_version_mode(closure); }
2482*c42dbd0eSchristos #line 2483 "yyscript.c"
2483e6c7e151Schristos break;
2484e6c7e151Schristos
2485*c42dbd0eSchristos case 27: /* file_cmd: VERSIONK '{' $@3 version_script '}' */
2486*c42dbd0eSchristos #line 291 "yyscript.y"
2487e6c7e151Schristos { script_pop_lex_mode(closure); }
2488*c42dbd0eSchristos #line 2489 "yyscript.c"
2489e6c7e151Schristos break;
2490e6c7e151Schristos
2491*c42dbd0eSchristos case 28: /* file_cmd: ENTRY '(' string ')' */
2492*c42dbd0eSchristos #line 293 "yyscript.y"
2493e6c7e151Schristos { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2494*c42dbd0eSchristos #line 2495 "yyscript.c"
2495e6c7e151Schristos break;
2496e6c7e151Schristos
2497*c42dbd0eSchristos case 30: /* file_cmd: ASSERT_K '(' parse_exp ',' string ')' */
2498*c42dbd0eSchristos #line 296 "yyscript.y"
2499e6c7e151Schristos { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2500*c42dbd0eSchristos #line 2501 "yyscript.c"
2501e6c7e151Schristos break;
2502e6c7e151Schristos
2503*c42dbd0eSchristos case 31: /* file_cmd: INCLUDE string */
2504*c42dbd0eSchristos #line 298 "yyscript.y"
2505e6c7e151Schristos { script_include_directive(PARSING_LINKER_SCRIPT, closure,
2506e6c7e151Schristos (yyvsp[0].string).value, (yyvsp[0].string).length); }
2507*c42dbd0eSchristos #line 2508 "yyscript.c"
2508e6c7e151Schristos break;
2509e6c7e151Schristos
2510*c42dbd0eSchristos case 35: /* $@4: %empty */
2511*c42dbd0eSchristos #line 317 "yyscript.y"
2512e6c7e151Schristos { script_push_lex_into_expression_mode(closure); }
2513*c42dbd0eSchristos #line 2514 "yyscript.c"
2514e6c7e151Schristos break;
2515e6c7e151Schristos
2516*c42dbd0eSchristos case 36: /* extern_name_list: $@4 extern_name_list_body */
2517*c42dbd0eSchristos #line 319 "yyscript.y"
2518e6c7e151Schristos { script_pop_lex_mode(closure); }
2519*c42dbd0eSchristos #line 2520 "yyscript.c"
2520e6c7e151Schristos break;
2521e6c7e151Schristos
2522*c42dbd0eSchristos case 37: /* extern_name_list_body: string */
2523*c42dbd0eSchristos #line 324 "yyscript.y"
2524e6c7e151Schristos { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2525*c42dbd0eSchristos #line 2526 "yyscript.c"
2526e6c7e151Schristos break;
2527e6c7e151Schristos
2528*c42dbd0eSchristos case 38: /* extern_name_list_body: extern_name_list_body string */
2529*c42dbd0eSchristos #line 326 "yyscript.y"
2530e6c7e151Schristos { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2531*c42dbd0eSchristos #line 2532 "yyscript.c"
2532e6c7e151Schristos break;
2533e6c7e151Schristos
2534*c42dbd0eSchristos case 39: /* extern_name_list_body: extern_name_list_body ',' string */
2535*c42dbd0eSchristos #line 328 "yyscript.y"
2536e6c7e151Schristos { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2537*c42dbd0eSchristos #line 2538 "yyscript.c"
2538e6c7e151Schristos break;
2539e6c7e151Schristos
2540*c42dbd0eSchristos case 42: /* input_list_element: string */
2541*c42dbd0eSchristos #line 340 "yyscript.y"
2542e6c7e151Schristos { script_add_file(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2543*c42dbd0eSchristos #line 2544 "yyscript.c"
2544e6c7e151Schristos break;
2545e6c7e151Schristos
2546*c42dbd0eSchristos case 43: /* input_list_element: '-' STRING */
2547*c42dbd0eSchristos #line 342 "yyscript.y"
2548e6c7e151Schristos { script_add_library(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2549*c42dbd0eSchristos #line 2550 "yyscript.c"
2550e6c7e151Schristos break;
2551e6c7e151Schristos
2552*c42dbd0eSchristos case 44: /* $@5: %empty */
2553*c42dbd0eSchristos #line 344 "yyscript.y"
2554e6c7e151Schristos { script_start_as_needed(closure); }
2555*c42dbd0eSchristos #line 2556 "yyscript.c"
2556e6c7e151Schristos break;
2557e6c7e151Schristos
2558*c42dbd0eSchristos case 45: /* input_list_element: AS_NEEDED $@5 '(' input_list ')' */
2559*c42dbd0eSchristos #line 346 "yyscript.y"
2560e6c7e151Schristos { script_end_as_needed(closure); }
2561*c42dbd0eSchristos #line 2562 "yyscript.c"
2562e6c7e151Schristos break;
2563e6c7e151Schristos
2564*c42dbd0eSchristos case 48: /* section_block_cmd: ENTRY '(' string ')' */
2565*c42dbd0eSchristos #line 358 "yyscript.y"
2566e6c7e151Schristos { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2567*c42dbd0eSchristos #line 2568 "yyscript.c"
2568e6c7e151Schristos break;
2569e6c7e151Schristos
2570*c42dbd0eSchristos case 50: /* section_block_cmd: ASSERT_K '(' parse_exp ',' string ')' */
2571*c42dbd0eSchristos #line 361 "yyscript.y"
2572e6c7e151Schristos { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2573*c42dbd0eSchristos #line 2574 "yyscript.c"
2574e6c7e151Schristos break;
2575e6c7e151Schristos
2576*c42dbd0eSchristos case 51: /* section_block_cmd: INCLUDE string */
2577*c42dbd0eSchristos #line 363 "yyscript.y"
2578e6c7e151Schristos { script_include_directive(PARSING_SECTIONS_BLOCK, closure,
2579e6c7e151Schristos (yyvsp[0].string).value, (yyvsp[0].string).length); }
2580*c42dbd0eSchristos #line 2581 "yyscript.c"
2581e6c7e151Schristos break;
2582e6c7e151Schristos
2583*c42dbd0eSchristos case 52: /* $@6: %empty */
2584*c42dbd0eSchristos #line 366 "yyscript.y"
2585e6c7e151Schristos { script_start_output_section(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, &(yyvsp[0].output_section_header)); }
2586*c42dbd0eSchristos #line 2587 "yyscript.c"
2587e6c7e151Schristos break;
2588e6c7e151Schristos
2589*c42dbd0eSchristos case 53: /* section_block_cmd: string section_header $@6 '{' section_cmds '}' section_trailer */
2590*c42dbd0eSchristos #line 368 "yyscript.y"
2591e6c7e151Schristos { script_finish_output_section(closure, &(yyvsp[0].output_section_trailer)); }
2592*c42dbd0eSchristos #line 2593 "yyscript.c"
2593e6c7e151Schristos break;
2594e6c7e151Schristos
2595*c42dbd0eSchristos case 54: /* $@7: %empty */
2596*c42dbd0eSchristos #line 374 "yyscript.y"
2597e6c7e151Schristos { script_push_lex_into_expression_mode(closure); }
2598*c42dbd0eSchristos #line 2599 "yyscript.c"
2599e6c7e151Schristos break;
2600e6c7e151Schristos
2601*c42dbd0eSchristos case 55: /* $@8: %empty */
2602*c42dbd0eSchristos #line 376 "yyscript.y"
2603e6c7e151Schristos { script_pop_lex_mode(closure); }
2604*c42dbd0eSchristos #line 2605 "yyscript.c"
2605e6c7e151Schristos break;
2606e6c7e151Schristos
2607*c42dbd0eSchristos case 56: /* section_header: $@7 opt_address_and_section_type opt_at opt_align opt_subalign $@8 opt_constraint */
2608*c42dbd0eSchristos #line 378 "yyscript.y"
2609e6c7e151Schristos {
2610e6c7e151Schristos (yyval.output_section_header).address = (yyvsp[-5].output_section_header).address;
2611e6c7e151Schristos (yyval.output_section_header).section_type = (yyvsp[-5].output_section_header).section_type;
2612e6c7e151Schristos (yyval.output_section_header).load_address = (yyvsp[-4].expr);
2613e6c7e151Schristos (yyval.output_section_header).align = (yyvsp[-3].expr);
2614e6c7e151Schristos (yyval.output_section_header).subalign = (yyvsp[-2].expr);
2615e6c7e151Schristos (yyval.output_section_header).constraint = (yyvsp[0].constraint);
2616e6c7e151Schristos }
2617*c42dbd0eSchristos #line 2618 "yyscript.c"
2618e6c7e151Schristos break;
2619e6c7e151Schristos
2620*c42dbd0eSchristos case 57: /* opt_address_and_section_type: ':' */
2621*c42dbd0eSchristos #line 394 "yyscript.y"
2622e6c7e151Schristos {
2623e6c7e151Schristos (yyval.output_section_header).address = NULL;
2624e6c7e151Schristos (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2625e6c7e151Schristos }
2626*c42dbd0eSchristos #line 2627 "yyscript.c"
2627e6c7e151Schristos break;
2628e6c7e151Schristos
2629*c42dbd0eSchristos case 58: /* opt_address_and_section_type: '(' ')' ':' */
2630*c42dbd0eSchristos #line 399 "yyscript.y"
2631e6c7e151Schristos {
2632e6c7e151Schristos (yyval.output_section_header).address = NULL;
2633e6c7e151Schristos (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2634e6c7e151Schristos }
2635*c42dbd0eSchristos #line 2636 "yyscript.c"
2636e6c7e151Schristos break;
2637e6c7e151Schristos
2638*c42dbd0eSchristos case 59: /* opt_address_and_section_type: exp ':' */
2639*c42dbd0eSchristos #line 404 "yyscript.y"
2640e6c7e151Schristos {
2641e6c7e151Schristos (yyval.output_section_header).address = (yyvsp[-1].expr);
2642e6c7e151Schristos (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2643e6c7e151Schristos }
2644*c42dbd0eSchristos #line 2645 "yyscript.c"
2645e6c7e151Schristos break;
2646e6c7e151Schristos
2647*c42dbd0eSchristos case 60: /* opt_address_and_section_type: exp '(' ')' ':' */
2648*c42dbd0eSchristos #line 409 "yyscript.y"
2649e6c7e151Schristos {
2650e6c7e151Schristos (yyval.output_section_header).address = (yyvsp[-3].expr);
2651e6c7e151Schristos (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2652e6c7e151Schristos }
2653*c42dbd0eSchristos #line 2654 "yyscript.c"
2654e6c7e151Schristos break;
2655e6c7e151Schristos
2656*c42dbd0eSchristos case 61: /* opt_address_and_section_type: '(' section_type ')' ':' */
2657*c42dbd0eSchristos #line 414 "yyscript.y"
2658e6c7e151Schristos {
2659e6c7e151Schristos (yyval.output_section_header).address = NULL;
2660e6c7e151Schristos (yyval.output_section_header).section_type = (yyvsp[-2].section_type);
2661e6c7e151Schristos }
2662*c42dbd0eSchristos #line 2663 "yyscript.c"
2663e6c7e151Schristos break;
2664e6c7e151Schristos
2665*c42dbd0eSchristos case 62: /* opt_address_and_section_type: exp '(' section_type ')' ':' */
2666*c42dbd0eSchristos #line 419 "yyscript.y"
2667e6c7e151Schristos {
2668e6c7e151Schristos (yyval.output_section_header).address = (yyvsp[-4].expr);
2669e6c7e151Schristos (yyval.output_section_header).section_type = (yyvsp[-2].section_type);
2670e6c7e151Schristos }
2671*c42dbd0eSchristos #line 2672 "yyscript.c"
2672e6c7e151Schristos break;
2673e6c7e151Schristos
2674*c42dbd0eSchristos case 63: /* section_type: NOLOAD */
2675*c42dbd0eSchristos #line 428 "yyscript.y"
2676e6c7e151Schristos { (yyval.section_type) = SCRIPT_SECTION_TYPE_NOLOAD; }
2677*c42dbd0eSchristos #line 2678 "yyscript.c"
2678e6c7e151Schristos break;
2679e6c7e151Schristos
2680*c42dbd0eSchristos case 64: /* section_type: DSECT */
2681*c42dbd0eSchristos #line 430 "yyscript.y"
2682e6c7e151Schristos {
2683e6c7e151Schristos yyerror(closure, "DSECT section type is unsupported");
2684e6c7e151Schristos (yyval.section_type) = SCRIPT_SECTION_TYPE_DSECT;
2685e6c7e151Schristos }
2686*c42dbd0eSchristos #line 2687 "yyscript.c"
2687e6c7e151Schristos break;
2688e6c7e151Schristos
2689*c42dbd0eSchristos case 65: /* section_type: COPY */
2690*c42dbd0eSchristos #line 435 "yyscript.y"
2691e6c7e151Schristos {
2692e6c7e151Schristos yyerror(closure, "COPY section type is unsupported");
2693e6c7e151Schristos (yyval.section_type) = SCRIPT_SECTION_TYPE_COPY;
2694e6c7e151Schristos }
2695*c42dbd0eSchristos #line 2696 "yyscript.c"
2696e6c7e151Schristos break;
2697e6c7e151Schristos
2698*c42dbd0eSchristos case 66: /* section_type: INFO */
2699*c42dbd0eSchristos #line 440 "yyscript.y"
2700e6c7e151Schristos {
2701e6c7e151Schristos yyerror(closure, "INFO section type is unsupported");
2702e6c7e151Schristos (yyval.section_type) = SCRIPT_SECTION_TYPE_INFO;
2703e6c7e151Schristos }
2704*c42dbd0eSchristos #line 2705 "yyscript.c"
2705e6c7e151Schristos break;
2706e6c7e151Schristos
2707*c42dbd0eSchristos case 67: /* section_type: OVERLAY */
2708*c42dbd0eSchristos #line 445 "yyscript.y"
2709e6c7e151Schristos {
2710e6c7e151Schristos yyerror(closure, "OVERLAY section type is unsupported");
2711e6c7e151Schristos (yyval.section_type) = SCRIPT_SECTION_TYPE_OVERLAY;
2712e6c7e151Schristos }
2713*c42dbd0eSchristos #line 2714 "yyscript.c"
2714e6c7e151Schristos break;
2715e6c7e151Schristos
2716*c42dbd0eSchristos case 68: /* opt_at: %empty */
2717*c42dbd0eSchristos #line 454 "yyscript.y"
2718e6c7e151Schristos { (yyval.expr) = NULL; }
2719*c42dbd0eSchristos #line 2720 "yyscript.c"
2720e6c7e151Schristos break;
2721e6c7e151Schristos
2722*c42dbd0eSchristos case 69: /* opt_at: AT '(' exp ')' */
2723*c42dbd0eSchristos #line 456 "yyscript.y"
2724e6c7e151Schristos { (yyval.expr) = (yyvsp[-1].expr); }
2725*c42dbd0eSchristos #line 2726 "yyscript.c"
2726e6c7e151Schristos break;
2727e6c7e151Schristos
2728*c42dbd0eSchristos case 70: /* opt_align: %empty */
2729*c42dbd0eSchristos #line 462 "yyscript.y"
2730e6c7e151Schristos { (yyval.expr) = NULL; }
2731*c42dbd0eSchristos #line 2732 "yyscript.c"
2732e6c7e151Schristos break;
2733e6c7e151Schristos
2734*c42dbd0eSchristos case 71: /* opt_align: ALIGN_K '(' exp ')' */
2735*c42dbd0eSchristos #line 464 "yyscript.y"
2736e6c7e151Schristos { (yyval.expr) = (yyvsp[-1].expr); }
2737*c42dbd0eSchristos #line 2738 "yyscript.c"
2738e6c7e151Schristos break;
2739e6c7e151Schristos
2740*c42dbd0eSchristos case 72: /* opt_subalign: %empty */
2741*c42dbd0eSchristos #line 470 "yyscript.y"
2742e6c7e151Schristos { (yyval.expr) = NULL; }
2743*c42dbd0eSchristos #line 2744 "yyscript.c"
2744e6c7e151Schristos break;
2745e6c7e151Schristos
2746*c42dbd0eSchristos case 73: /* opt_subalign: SUBALIGN '(' exp ')' */
2747*c42dbd0eSchristos #line 472 "yyscript.y"
2748e6c7e151Schristos { (yyval.expr) = (yyvsp[-1].expr); }
2749*c42dbd0eSchristos #line 2750 "yyscript.c"
2750e6c7e151Schristos break;
2751e6c7e151Schristos
2752*c42dbd0eSchristos case 74: /* opt_constraint: %empty */
2753*c42dbd0eSchristos #line 478 "yyscript.y"
2754e6c7e151Schristos { (yyval.constraint) = CONSTRAINT_NONE; }
2755*c42dbd0eSchristos #line 2756 "yyscript.c"
2756e6c7e151Schristos break;
2757e6c7e151Schristos
2758*c42dbd0eSchristos case 75: /* opt_constraint: ONLY_IF_RO */
2759*c42dbd0eSchristos #line 480 "yyscript.y"
2760e6c7e151Schristos { (yyval.constraint) = CONSTRAINT_ONLY_IF_RO; }
2761*c42dbd0eSchristos #line 2762 "yyscript.c"
2762e6c7e151Schristos break;
2763e6c7e151Schristos
2764*c42dbd0eSchristos case 76: /* opt_constraint: ONLY_IF_RW */
2765*c42dbd0eSchristos #line 482 "yyscript.y"
2766e6c7e151Schristos { (yyval.constraint) = CONSTRAINT_ONLY_IF_RW; }
2767*c42dbd0eSchristos #line 2768 "yyscript.c"
2768e6c7e151Schristos break;
2769e6c7e151Schristos
2770*c42dbd0eSchristos case 77: /* opt_constraint: SPECIAL */
2771*c42dbd0eSchristos #line 484 "yyscript.y"
2772e6c7e151Schristos { (yyval.constraint) = CONSTRAINT_SPECIAL; }
2773*c42dbd0eSchristos #line 2774 "yyscript.c"
2774e6c7e151Schristos break;
2775e6c7e151Schristos
2776*c42dbd0eSchristos case 78: /* section_trailer: opt_memspec opt_at_memspec opt_phdr opt_fill opt_comma */
2777*c42dbd0eSchristos #line 490 "yyscript.y"
2778e6c7e151Schristos {
2779e6c7e151Schristos (yyval.output_section_trailer).fill = (yyvsp[-1].expr);
2780e6c7e151Schristos (yyval.output_section_trailer).phdrs = (yyvsp[-2].string_list);
2781e6c7e151Schristos }
2782*c42dbd0eSchristos #line 2783 "yyscript.c"
2783e6c7e151Schristos break;
2784e6c7e151Schristos
2785*c42dbd0eSchristos case 79: /* opt_memspec: '>' string */
2786*c42dbd0eSchristos #line 499 "yyscript.y"
2787e6c7e151Schristos { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 1); }
2788*c42dbd0eSchristos #line 2789 "yyscript.c"
2789e6c7e151Schristos break;
2790e6c7e151Schristos
2791*c42dbd0eSchristos case 81: /* opt_at_memspec: AT '>' string */
2792*c42dbd0eSchristos #line 506 "yyscript.y"
2793e6c7e151Schristos { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 0); }
2794*c42dbd0eSchristos #line 2795 "yyscript.c"
2795e6c7e151Schristos break;
2796e6c7e151Schristos
2797*c42dbd0eSchristos case 83: /* opt_phdr: opt_phdr ':' string */
2798*c42dbd0eSchristos #line 513 "yyscript.y"
2799e6c7e151Schristos { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); }
2800*c42dbd0eSchristos #line 2801 "yyscript.c"
2801e6c7e151Schristos break;
2802e6c7e151Schristos
2803*c42dbd0eSchristos case 84: /* opt_phdr: %empty */
2804*c42dbd0eSchristos #line 515 "yyscript.y"
2805e6c7e151Schristos { (yyval.string_list) = NULL; }
2806*c42dbd0eSchristos #line 2807 "yyscript.c"
2807e6c7e151Schristos break;
2808e6c7e151Schristos
2809*c42dbd0eSchristos case 85: /* opt_fill: '=' parse_exp */
2810*c42dbd0eSchristos #line 522 "yyscript.y"
2811e6c7e151Schristos { (yyval.expr) = (yyvsp[0].expr); }
2812*c42dbd0eSchristos #line 2813 "yyscript.c"
2813e6c7e151Schristos break;
2814e6c7e151Schristos
2815*c42dbd0eSchristos case 86: /* opt_fill: %empty */
2816*c42dbd0eSchristos #line 524 "yyscript.y"
2817e6c7e151Schristos { (yyval.expr) = NULL; }
2818*c42dbd0eSchristos #line 2819 "yyscript.c"
2819e6c7e151Schristos break;
2820e6c7e151Schristos
2821*c42dbd0eSchristos case 91: /* section_cmd: data_length '(' parse_exp ')' */
2822*c42dbd0eSchristos #line 540 "yyscript.y"
2823e6c7e151Schristos { script_add_data(closure, (yyvsp[-3].integer), (yyvsp[-1].expr)); }
2824*c42dbd0eSchristos #line 2825 "yyscript.c"
2825e6c7e151Schristos break;
2826e6c7e151Schristos
2827*c42dbd0eSchristos case 92: /* section_cmd: ASSERT_K '(' parse_exp ',' string ')' */
2828*c42dbd0eSchristos #line 542 "yyscript.y"
2829e6c7e151Schristos { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2830*c42dbd0eSchristos #line 2831 "yyscript.c"
2831e6c7e151Schristos break;
2832e6c7e151Schristos
2833*c42dbd0eSchristos case 93: /* section_cmd: FILL '(' parse_exp ')' */
2834*c42dbd0eSchristos #line 544 "yyscript.y"
2835e6c7e151Schristos { script_add_fill(closure, (yyvsp[-1].expr)); }
2836*c42dbd0eSchristos #line 2837 "yyscript.c"
2837e6c7e151Schristos break;
2838e6c7e151Schristos
2839*c42dbd0eSchristos case 94: /* section_cmd: CONSTRUCTORS */
2840*c42dbd0eSchristos #line 546 "yyscript.y"
2841e6c7e151Schristos {
2842e6c7e151Schristos /* The GNU linker uses CONSTRUCTORS for the a.out object
2843e6c7e151Schristos file format. It does nothing when using ELF. Since
2844e6c7e151Schristos some ELF linker scripts use it although it does
2845e6c7e151Schristos nothing, we accept it and ignore it. */
2846e6c7e151Schristos }
2847*c42dbd0eSchristos #line 2848 "yyscript.c"
2848e6c7e151Schristos break;
2849e6c7e151Schristos
2850*c42dbd0eSchristos case 96: /* section_cmd: INCLUDE string */
2851*c42dbd0eSchristos #line 554 "yyscript.y"
2852e6c7e151Schristos { script_include_directive(PARSING_SECTION_COMMANDS, closure,
2853e6c7e151Schristos (yyvsp[0].string).value, (yyvsp[0].string).length); }
2854*c42dbd0eSchristos #line 2855 "yyscript.c"
2855e6c7e151Schristos break;
2856e6c7e151Schristos
2857*c42dbd0eSchristos case 98: /* data_length: QUAD */
2858*c42dbd0eSchristos #line 563 "yyscript.y"
2859e6c7e151Schristos { (yyval.integer) = QUAD; }
2860*c42dbd0eSchristos #line 2861 "yyscript.c"
2861e6c7e151Schristos break;
2862e6c7e151Schristos
2863*c42dbd0eSchristos case 99: /* data_length: SQUAD */
2864*c42dbd0eSchristos #line 565 "yyscript.y"
2865e6c7e151Schristos { (yyval.integer) = SQUAD; }
2866*c42dbd0eSchristos #line 2867 "yyscript.c"
2867e6c7e151Schristos break;
2868e6c7e151Schristos
2869*c42dbd0eSchristos case 100: /* data_length: LONG */
2870*c42dbd0eSchristos #line 567 "yyscript.y"
2871e6c7e151Schristos { (yyval.integer) = LONG; }
2872*c42dbd0eSchristos #line 2873 "yyscript.c"
2873e6c7e151Schristos break;
2874e6c7e151Schristos
2875*c42dbd0eSchristos case 101: /* data_length: SHORT */
2876*c42dbd0eSchristos #line 569 "yyscript.y"
2877e6c7e151Schristos { (yyval.integer) = SHORT; }
2878*c42dbd0eSchristos #line 2879 "yyscript.c"
2879e6c7e151Schristos break;
2880e6c7e151Schristos
2881*c42dbd0eSchristos case 102: /* data_length: BYTE */
2882*c42dbd0eSchristos #line 571 "yyscript.y"
2883e6c7e151Schristos { (yyval.integer) = BYTE; }
2884*c42dbd0eSchristos #line 2885 "yyscript.c"
2885e6c7e151Schristos break;
2886e6c7e151Schristos
2887*c42dbd0eSchristos case 103: /* input_section_spec: input_section_no_keep */
2888*c42dbd0eSchristos #line 578 "yyscript.y"
2889e6c7e151Schristos { script_add_input_section(closure, &(yyvsp[0].input_section_spec), 0); }
2890*c42dbd0eSchristos #line 2891 "yyscript.c"
2891e6c7e151Schristos break;
2892e6c7e151Schristos
2893*c42dbd0eSchristos case 104: /* input_section_spec: KEEP '(' input_section_no_keep ')' */
2894*c42dbd0eSchristos #line 580 "yyscript.y"
2895e6c7e151Schristos { script_add_input_section(closure, &(yyvsp[-1].input_section_spec), 1); }
2896*c42dbd0eSchristos #line 2897 "yyscript.c"
2897e6c7e151Schristos break;
2898e6c7e151Schristos
2899*c42dbd0eSchristos case 105: /* input_section_no_keep: string */
2900*c42dbd0eSchristos #line 586 "yyscript.y"
2901e6c7e151Schristos {
2902e6c7e151Schristos (yyval.input_section_spec).file.name = (yyvsp[0].string);
2903e6c7e151Schristos (yyval.input_section_spec).file.sort = SORT_WILDCARD_NONE;
2904e6c7e151Schristos (yyval.input_section_spec).input_sections.sections = NULL;
2905e6c7e151Schristos (yyval.input_section_spec).input_sections.exclude = NULL;
2906e6c7e151Schristos }
2907*c42dbd0eSchristos #line 2908 "yyscript.c"
2908e6c7e151Schristos break;
2909e6c7e151Schristos
2910*c42dbd0eSchristos case 106: /* input_section_no_keep: wildcard_file '(' wildcard_sections ')' */
2911*c42dbd0eSchristos #line 593 "yyscript.y"
2912e6c7e151Schristos {
2913e6c7e151Schristos (yyval.input_section_spec).file = (yyvsp[-3].wildcard_section);
2914e6c7e151Schristos (yyval.input_section_spec).input_sections = (yyvsp[-1].wildcard_sections);
2915e6c7e151Schristos }
2916*c42dbd0eSchristos #line 2917 "yyscript.c"
2917e6c7e151Schristos break;
2918e6c7e151Schristos
2919*c42dbd0eSchristos case 107: /* wildcard_file: wildcard_name */
2920*c42dbd0eSchristos #line 602 "yyscript.y"
2921e6c7e151Schristos {
2922e6c7e151Schristos (yyval.wildcard_section).name = (yyvsp[0].string);
2923e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_NONE;
2924e6c7e151Schristos }
2925*c42dbd0eSchristos #line 2926 "yyscript.c"
2926e6c7e151Schristos break;
2927e6c7e151Schristos
2928*c42dbd0eSchristos case 108: /* wildcard_file: SORT_BY_NAME '(' wildcard_name ')' */
2929*c42dbd0eSchristos #line 607 "yyscript.y"
2930e6c7e151Schristos {
2931e6c7e151Schristos (yyval.wildcard_section).name = (yyvsp[-1].string);
2932e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME;
2933e6c7e151Schristos }
2934*c42dbd0eSchristos #line 2935 "yyscript.c"
2935e6c7e151Schristos break;
2936e6c7e151Schristos
2937*c42dbd0eSchristos case 109: /* wildcard_sections: wildcard_sections opt_comma wildcard_section */
2938*c42dbd0eSchristos #line 616 "yyscript.y"
2939e6c7e151Schristos {
2940e6c7e151Schristos (yyval.wildcard_sections).sections = script_string_sort_list_add((yyvsp[-2].wildcard_sections).sections, &(yyvsp[0].wildcard_section));
2941e6c7e151Schristos (yyval.wildcard_sections).exclude = (yyvsp[-2].wildcard_sections).exclude;
2942e6c7e151Schristos }
2943*c42dbd0eSchristos #line 2944 "yyscript.c"
2944e6c7e151Schristos break;
2945e6c7e151Schristos
2946*c42dbd0eSchristos case 110: /* wildcard_sections: wildcard_section */
2947*c42dbd0eSchristos #line 621 "yyscript.y"
2948e6c7e151Schristos {
2949e6c7e151Schristos (yyval.wildcard_sections).sections = script_new_string_sort_list(&(yyvsp[0].wildcard_section));
2950e6c7e151Schristos (yyval.wildcard_sections).exclude = NULL;
2951e6c7e151Schristos }
2952*c42dbd0eSchristos #line 2953 "yyscript.c"
2953e6c7e151Schristos break;
2954e6c7e151Schristos
2955*c42dbd0eSchristos case 111: /* wildcard_sections: wildcard_sections opt_comma EXCLUDE_FILE '(' exclude_names ')' */
2956*c42dbd0eSchristos #line 626 "yyscript.y"
2957e6c7e151Schristos {
2958e6c7e151Schristos (yyval.wildcard_sections).sections = (yyvsp[-5].wildcard_sections).sections;
2959e6c7e151Schristos (yyval.wildcard_sections).exclude = script_string_list_append((yyvsp[-5].wildcard_sections).exclude, (yyvsp[-1].string_list));
2960e6c7e151Schristos }
2961*c42dbd0eSchristos #line 2962 "yyscript.c"
2962e6c7e151Schristos break;
2963e6c7e151Schristos
2964*c42dbd0eSchristos case 112: /* wildcard_sections: EXCLUDE_FILE '(' exclude_names ')' */
2965*c42dbd0eSchristos #line 631 "yyscript.y"
2966e6c7e151Schristos {
2967e6c7e151Schristos (yyval.wildcard_sections).sections = NULL;
2968e6c7e151Schristos (yyval.wildcard_sections).exclude = (yyvsp[-1].string_list);
2969e6c7e151Schristos }
2970*c42dbd0eSchristos #line 2971 "yyscript.c"
2971e6c7e151Schristos break;
2972e6c7e151Schristos
2973*c42dbd0eSchristos case 113: /* wildcard_section: wildcard_name */
2974*c42dbd0eSchristos #line 640 "yyscript.y"
2975e6c7e151Schristos {
2976e6c7e151Schristos (yyval.wildcard_section).name = (yyvsp[0].string);
2977e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_NONE;
2978e6c7e151Schristos }
2979*c42dbd0eSchristos #line 2980 "yyscript.c"
2980e6c7e151Schristos break;
2981e6c7e151Schristos
2982*c42dbd0eSchristos case 114: /* wildcard_section: SORT_BY_NAME '(' wildcard_section ')' */
2983*c42dbd0eSchristos #line 645 "yyscript.y"
2984e6c7e151Schristos {
2985e6c7e151Schristos (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name;
2986e6c7e151Schristos switch ((yyvsp[-1].wildcard_section).sort)
2987e6c7e151Schristos {
2988e6c7e151Schristos case SORT_WILDCARD_NONE:
2989e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME;
2990e6c7e151Schristos break;
2991e6c7e151Schristos case SORT_WILDCARD_BY_NAME:
2992e6c7e151Schristos case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT:
2993e6c7e151Schristos break;
2994e6c7e151Schristos case SORT_WILDCARD_BY_ALIGNMENT:
2995e6c7e151Schristos case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME:
2996e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME_BY_ALIGNMENT;
2997e6c7e151Schristos break;
2998e6c7e151Schristos default:
2999e6c7e151Schristos abort();
3000e6c7e151Schristos }
3001e6c7e151Schristos }
3002*c42dbd0eSchristos #line 3003 "yyscript.c"
3003e6c7e151Schristos break;
3004e6c7e151Schristos
3005*c42dbd0eSchristos case 115: /* wildcard_section: SORT_BY_ALIGNMENT '(' wildcard_section ')' */
3006*c42dbd0eSchristos #line 664 "yyscript.y"
3007e6c7e151Schristos {
3008e6c7e151Schristos (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name;
3009e6c7e151Schristos switch ((yyvsp[-1].wildcard_section).sort)
3010e6c7e151Schristos {
3011e6c7e151Schristos case SORT_WILDCARD_NONE:
3012e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT;
3013e6c7e151Schristos break;
3014e6c7e151Schristos case SORT_WILDCARD_BY_ALIGNMENT:
3015e6c7e151Schristos case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME:
3016e6c7e151Schristos break;
3017e6c7e151Schristos case SORT_WILDCARD_BY_NAME:
3018e6c7e151Schristos case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT:
3019e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT_BY_NAME;
3020e6c7e151Schristos break;
3021e6c7e151Schristos default:
3022e6c7e151Schristos abort();
3023e6c7e151Schristos }
3024e6c7e151Schristos }
3025*c42dbd0eSchristos #line 3026 "yyscript.c"
3026e6c7e151Schristos break;
3027e6c7e151Schristos
3028*c42dbd0eSchristos case 116: /* wildcard_section: SORT_BY_INIT_PRIORITY '(' wildcard_name ')' */
3029*c42dbd0eSchristos #line 683 "yyscript.y"
3030e6c7e151Schristos {
3031e6c7e151Schristos (yyval.wildcard_section).name = (yyvsp[-1].string);
3032e6c7e151Schristos (yyval.wildcard_section).sort = SORT_WILDCARD_BY_INIT_PRIORITY;
3033e6c7e151Schristos }
3034*c42dbd0eSchristos #line 3035 "yyscript.c"
3035e6c7e151Schristos break;
3036e6c7e151Schristos
3037*c42dbd0eSchristos case 117: /* exclude_names: exclude_names opt_comma wildcard_name */
3038*c42dbd0eSchristos #line 692 "yyscript.y"
3039e6c7e151Schristos { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); }
3040*c42dbd0eSchristos #line 3041 "yyscript.c"
3041e6c7e151Schristos break;
3042e6c7e151Schristos
3043*c42dbd0eSchristos case 118: /* exclude_names: wildcard_name */
3044*c42dbd0eSchristos #line 694 "yyscript.y"
3045e6c7e151Schristos { (yyval.string_list) = script_new_string_list((yyvsp[0].string).value, (yyvsp[0].string).length); }
3046*c42dbd0eSchristos #line 3047 "yyscript.c"
3047e6c7e151Schristos break;
3048e6c7e151Schristos
3049*c42dbd0eSchristos case 119: /* wildcard_name: string */
3050*c42dbd0eSchristos #line 701 "yyscript.y"
3051e6c7e151Schristos { (yyval.string) = (yyvsp[0].string); }
3052*c42dbd0eSchristos #line 3053 "yyscript.c"
3053e6c7e151Schristos break;
3054e6c7e151Schristos
3055*c42dbd0eSchristos case 120: /* wildcard_name: '*' */
3056*c42dbd0eSchristos #line 703 "yyscript.y"
3057e6c7e151Schristos {
3058e6c7e151Schristos (yyval.string).value = "*";
3059e6c7e151Schristos (yyval.string).length = 1;
3060e6c7e151Schristos }
3061*c42dbd0eSchristos #line 3062 "yyscript.c"
3062e6c7e151Schristos break;
3063e6c7e151Schristos
3064*c42dbd0eSchristos case 121: /* wildcard_name: '?' */
3065*c42dbd0eSchristos #line 708 "yyscript.y"
3066e6c7e151Schristos {
3067e6c7e151Schristos (yyval.string).value = "?";
3068e6c7e151Schristos (yyval.string).length = 1;
3069e6c7e151Schristos }
3070*c42dbd0eSchristos #line 3071 "yyscript.c"
3071e6c7e151Schristos break;
3072e6c7e151Schristos
3073*c42dbd0eSchristos case 124: /* memory_def: string memory_attr ':' memory_origin '=' parse_exp opt_comma memory_length '=' parse_exp */
3074*c42dbd0eSchristos #line 723 "yyscript.y"
3075e6c7e151Schristos { script_add_memory(closure, (yyvsp[-9].string).value, (yyvsp[-9].string).length, (yyvsp[-8].integer), (yyvsp[-4].expr), (yyvsp[0].expr)); }
3076*c42dbd0eSchristos #line 3077 "yyscript.c"
3077e6c7e151Schristos break;
3078e6c7e151Schristos
3079*c42dbd0eSchristos case 125: /* memory_def: INCLUDE string */
3080*c42dbd0eSchristos #line 726 "yyscript.y"
3081e6c7e151Schristos { script_include_directive(PARSING_MEMORY_DEF, closure,
3082e6c7e151Schristos (yyvsp[0].string).value, (yyvsp[0].string).length); }
3083*c42dbd0eSchristos #line 3084 "yyscript.c"
3084e6c7e151Schristos break;
3085e6c7e151Schristos
3086*c42dbd0eSchristos case 127: /* memory_attr: '(' string ')' */
3087*c42dbd0eSchristos #line 734 "yyscript.y"
3088e6c7e151Schristos { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 0); }
3089*c42dbd0eSchristos #line 3090 "yyscript.c"
3090e6c7e151Schristos break;
3091e6c7e151Schristos
3092*c42dbd0eSchristos case 128: /* memory_attr: '(' '!' string ')' */
3093*c42dbd0eSchristos #line 737 "yyscript.y"
3094e6c7e151Schristos { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 1); }
3095*c42dbd0eSchristos #line 3096 "yyscript.c"
3096e6c7e151Schristos break;
3097e6c7e151Schristos
3098*c42dbd0eSchristos case 129: /* memory_attr: %empty */
3099*c42dbd0eSchristos #line 739 "yyscript.y"
3100e6c7e151Schristos { (yyval.integer) = 0; }
3101*c42dbd0eSchristos #line 3102 "yyscript.c"
3102e6c7e151Schristos break;
3103e6c7e151Schristos
3104*c42dbd0eSchristos case 138: /* phdr_def: string phdr_type phdr_info ';' */
3105*c42dbd0eSchristos #line 767 "yyscript.y"
3106e6c7e151Schristos { script_add_phdr(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-2].integer), &(yyvsp[-1].phdr_info)); }
3107*c42dbd0eSchristos #line 3108 "yyscript.c"
3108e6c7e151Schristos break;
3109e6c7e151Schristos
3110*c42dbd0eSchristos case 139: /* phdr_type: string */
3111*c42dbd0eSchristos #line 776 "yyscript.y"
3112e6c7e151Schristos { (yyval.integer) = script_phdr_string_to_type(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
3113*c42dbd0eSchristos #line 3114 "yyscript.c"
3114e6c7e151Schristos break;
3115e6c7e151Schristos
3116*c42dbd0eSchristos case 140: /* phdr_type: INTEGER */
3117*c42dbd0eSchristos #line 778 "yyscript.y"
3118e6c7e151Schristos { (yyval.integer) = (yyvsp[0].integer); }
3119*c42dbd0eSchristos #line 3120 "yyscript.c"
3120e6c7e151Schristos break;
3121e6c7e151Schristos
3122*c42dbd0eSchristos case 141: /* phdr_info: %empty */
3123*c42dbd0eSchristos #line 784 "yyscript.y"
3124e6c7e151Schristos { memset(&(yyval.phdr_info), 0, sizeof(struct Phdr_info)); }
3125*c42dbd0eSchristos #line 3126 "yyscript.c"
3126e6c7e151Schristos break;
3127e6c7e151Schristos
3128*c42dbd0eSchristos case 142: /* phdr_info: string phdr_info */
3129*c42dbd0eSchristos #line 786 "yyscript.y"
3130e6c7e151Schristos {
3131e6c7e151Schristos (yyval.phdr_info) = (yyvsp[0].phdr_info);
3132e6c7e151Schristos if ((yyvsp[-1].string).length == 7 && strncmp((yyvsp[-1].string).value, "FILEHDR", 7) == 0)
3133e6c7e151Schristos (yyval.phdr_info).includes_filehdr = 1;
3134e6c7e151Schristos else
3135e6c7e151Schristos yyerror(closure, "PHDRS syntax error");
3136e6c7e151Schristos }
3137*c42dbd0eSchristos #line 3138 "yyscript.c"
3138e6c7e151Schristos break;
3139e6c7e151Schristos
3140*c42dbd0eSchristos case 143: /* phdr_info: PHDRS phdr_info */
3141*c42dbd0eSchristos #line 794 "yyscript.y"
3142e6c7e151Schristos {
3143e6c7e151Schristos (yyval.phdr_info) = (yyvsp[0].phdr_info);
3144e6c7e151Schristos (yyval.phdr_info).includes_phdrs = 1;
3145e6c7e151Schristos }
3146*c42dbd0eSchristos #line 3147 "yyscript.c"
3147e6c7e151Schristos break;
3148e6c7e151Schristos
3149*c42dbd0eSchristos case 144: /* phdr_info: string '(' INTEGER ')' phdr_info */
3150*c42dbd0eSchristos #line 799 "yyscript.y"
3151e6c7e151Schristos {
3152e6c7e151Schristos (yyval.phdr_info) = (yyvsp[0].phdr_info);
3153e6c7e151Schristos if ((yyvsp[-4].string).length == 5 && strncmp((yyvsp[-4].string).value, "FLAGS", 5) == 0)
3154e6c7e151Schristos {
3155e6c7e151Schristos (yyval.phdr_info).is_flags_valid = 1;
3156e6c7e151Schristos (yyval.phdr_info).flags = (yyvsp[-2].integer);
3157e6c7e151Schristos }
3158e6c7e151Schristos else
3159e6c7e151Schristos yyerror(closure, "PHDRS syntax error");
3160e6c7e151Schristos }
3161*c42dbd0eSchristos #line 3162 "yyscript.c"
3162e6c7e151Schristos break;
3163e6c7e151Schristos
3164*c42dbd0eSchristos case 145: /* phdr_info: AT '(' parse_exp ')' phdr_info */
3165*c42dbd0eSchristos #line 810 "yyscript.y"
3166e6c7e151Schristos {
3167e6c7e151Schristos (yyval.phdr_info) = (yyvsp[0].phdr_info);
3168e6c7e151Schristos (yyval.phdr_info).load_address = (yyvsp[-2].expr);
3169e6c7e151Schristos }
3170*c42dbd0eSchristos #line 3171 "yyscript.c"
3171e6c7e151Schristos break;
3172e6c7e151Schristos
3173*c42dbd0eSchristos case 146: /* assignment: string '=' parse_exp */
3174*c42dbd0eSchristos #line 819 "yyscript.y"
3175e6c7e151Schristos { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); }
3176*c42dbd0eSchristos #line 3177 "yyscript.c"
3177e6c7e151Schristos break;
3178e6c7e151Schristos
3179*c42dbd0eSchristos case 147: /* assignment: string PLUSEQ parse_exp */
3180*c42dbd0eSchristos #line 821 "yyscript.y"
3181e6c7e151Schristos {
3182e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3183e6c7e151Schristos Expression_ptr e = script_exp_binary_add(s, (yyvsp[0].expr));
3184e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3185e6c7e151Schristos }
3186*c42dbd0eSchristos #line 3187 "yyscript.c"
3187e6c7e151Schristos break;
3188e6c7e151Schristos
3189*c42dbd0eSchristos case 148: /* assignment: string MINUSEQ parse_exp */
3190*c42dbd0eSchristos #line 827 "yyscript.y"
3191e6c7e151Schristos {
3192e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3193e6c7e151Schristos Expression_ptr e = script_exp_binary_sub(s, (yyvsp[0].expr));
3194e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3195e6c7e151Schristos }
3196*c42dbd0eSchristos #line 3197 "yyscript.c"
3197e6c7e151Schristos break;
3198e6c7e151Schristos
3199*c42dbd0eSchristos case 149: /* assignment: string MULTEQ parse_exp */
3200*c42dbd0eSchristos #line 833 "yyscript.y"
3201e6c7e151Schristos {
3202e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3203e6c7e151Schristos Expression_ptr e = script_exp_binary_mult(s, (yyvsp[0].expr));
3204e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3205e6c7e151Schristos }
3206*c42dbd0eSchristos #line 3207 "yyscript.c"
3207e6c7e151Schristos break;
3208e6c7e151Schristos
3209*c42dbd0eSchristos case 150: /* assignment: string DIVEQ parse_exp */
3210*c42dbd0eSchristos #line 839 "yyscript.y"
3211e6c7e151Schristos {
3212e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3213e6c7e151Schristos Expression_ptr e = script_exp_binary_div(s, (yyvsp[0].expr));
3214e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3215e6c7e151Schristos }
3216*c42dbd0eSchristos #line 3217 "yyscript.c"
3217e6c7e151Schristos break;
3218e6c7e151Schristos
3219*c42dbd0eSchristos case 151: /* assignment: string LSHIFTEQ parse_exp */
3220*c42dbd0eSchristos #line 845 "yyscript.y"
3221e6c7e151Schristos {
3222e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3223e6c7e151Schristos Expression_ptr e = script_exp_binary_lshift(s, (yyvsp[0].expr));
3224e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3225e6c7e151Schristos }
3226*c42dbd0eSchristos #line 3227 "yyscript.c"
3227e6c7e151Schristos break;
3228e6c7e151Schristos
3229*c42dbd0eSchristos case 152: /* assignment: string RSHIFTEQ parse_exp */
3230*c42dbd0eSchristos #line 851 "yyscript.y"
3231e6c7e151Schristos {
3232e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3233e6c7e151Schristos Expression_ptr e = script_exp_binary_rshift(s, (yyvsp[0].expr));
3234e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3235e6c7e151Schristos }
3236*c42dbd0eSchristos #line 3237 "yyscript.c"
3237e6c7e151Schristos break;
3238e6c7e151Schristos
3239*c42dbd0eSchristos case 153: /* assignment: string ANDEQ parse_exp */
3240*c42dbd0eSchristos #line 857 "yyscript.y"
3241e6c7e151Schristos {
3242e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3243e6c7e151Schristos Expression_ptr e = script_exp_binary_bitwise_and(s, (yyvsp[0].expr));
3244e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3245e6c7e151Schristos }
3246*c42dbd0eSchristos #line 3247 "yyscript.c"
3247e6c7e151Schristos break;
3248e6c7e151Schristos
3249*c42dbd0eSchristos case 154: /* assignment: string OREQ parse_exp */
3250*c42dbd0eSchristos #line 863 "yyscript.y"
3251e6c7e151Schristos {
3252e6c7e151Schristos Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
3253e6c7e151Schristos Expression_ptr e = script_exp_binary_bitwise_or(s, (yyvsp[0].expr));
3254e6c7e151Schristos script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
3255e6c7e151Schristos }
3256*c42dbd0eSchristos #line 3257 "yyscript.c"
3257e6c7e151Schristos break;
3258e6c7e151Schristos
3259*c42dbd0eSchristos case 155: /* assignment: HIDDEN '(' string '=' parse_exp ')' */
3260*c42dbd0eSchristos #line 869 "yyscript.y"
3261e6c7e151Schristos { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 0, 1); }
3262*c42dbd0eSchristos #line 3263 "yyscript.c"
3263e6c7e151Schristos break;
3264e6c7e151Schristos
3265*c42dbd0eSchristos case 156: /* assignment: PROVIDE '(' string '=' parse_exp ')' */
3266*c42dbd0eSchristos #line 871 "yyscript.y"
3267e6c7e151Schristos { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 0); }
3268*c42dbd0eSchristos #line 3269 "yyscript.c"
3269e6c7e151Schristos break;
3270e6c7e151Schristos
3271*c42dbd0eSchristos case 157: /* assignment: PROVIDE_HIDDEN '(' string '=' parse_exp ')' */
3272*c42dbd0eSchristos #line 873 "yyscript.y"
3273e6c7e151Schristos { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 1); }
3274*c42dbd0eSchristos #line 3275 "yyscript.c"
3275e6c7e151Schristos break;
3276e6c7e151Schristos
3277*c42dbd0eSchristos case 158: /* $@9: %empty */
3278*c42dbd0eSchristos #line 878 "yyscript.y"
3279e6c7e151Schristos { script_push_lex_into_expression_mode(closure); }
3280*c42dbd0eSchristos #line 3281 "yyscript.c"
3281e6c7e151Schristos break;
3282e6c7e151Schristos
3283*c42dbd0eSchristos case 159: /* parse_exp: $@9 exp */
3284*c42dbd0eSchristos #line 880 "yyscript.y"
3285e6c7e151Schristos {
3286e6c7e151Schristos script_pop_lex_mode(closure);
3287e6c7e151Schristos (yyval.expr) = (yyvsp[0].expr);
3288e6c7e151Schristos }
3289*c42dbd0eSchristos #line 3290 "yyscript.c"
3290e6c7e151Schristos break;
3291e6c7e151Schristos
3292*c42dbd0eSchristos case 160: /* exp: '(' exp ')' */
3293*c42dbd0eSchristos #line 889 "yyscript.y"
3294e6c7e151Schristos { (yyval.expr) = (yyvsp[-1].expr); }
3295*c42dbd0eSchristos #line 3296 "yyscript.c"
3296e6c7e151Schristos break;
3297e6c7e151Schristos
3298*c42dbd0eSchristos case 161: /* exp: '-' exp */
3299*c42dbd0eSchristos #line 891 "yyscript.y"
3300e6c7e151Schristos { (yyval.expr) = script_exp_unary_minus((yyvsp[0].expr)); }
3301*c42dbd0eSchristos #line 3302 "yyscript.c"
3302e6c7e151Schristos break;
3303e6c7e151Schristos
3304*c42dbd0eSchristos case 162: /* exp: '!' exp */
3305*c42dbd0eSchristos #line 893 "yyscript.y"
3306e6c7e151Schristos { (yyval.expr) = script_exp_unary_logical_not((yyvsp[0].expr)); }
3307*c42dbd0eSchristos #line 3308 "yyscript.c"
3308e6c7e151Schristos break;
3309e6c7e151Schristos
3310*c42dbd0eSchristos case 163: /* exp: '~' exp */
3311*c42dbd0eSchristos #line 895 "yyscript.y"
3312e6c7e151Schristos { (yyval.expr) = script_exp_unary_bitwise_not((yyvsp[0].expr)); }
3313*c42dbd0eSchristos #line 3314 "yyscript.c"
3314e6c7e151Schristos break;
3315e6c7e151Schristos
3316*c42dbd0eSchristos case 164: /* exp: '+' exp */
3317*c42dbd0eSchristos #line 897 "yyscript.y"
3318e6c7e151Schristos { (yyval.expr) = (yyvsp[0].expr); }
3319*c42dbd0eSchristos #line 3320 "yyscript.c"
3320e6c7e151Schristos break;
3321e6c7e151Schristos
3322*c42dbd0eSchristos case 165: /* exp: exp '*' exp */
3323*c42dbd0eSchristos #line 899 "yyscript.y"
3324e6c7e151Schristos { (yyval.expr) = script_exp_binary_mult((yyvsp[-2].expr), (yyvsp[0].expr)); }
3325*c42dbd0eSchristos #line 3326 "yyscript.c"
3326e6c7e151Schristos break;
3327e6c7e151Schristos
3328*c42dbd0eSchristos case 166: /* exp: exp '/' exp */
3329*c42dbd0eSchristos #line 901 "yyscript.y"
3330e6c7e151Schristos { (yyval.expr) = script_exp_binary_div((yyvsp[-2].expr), (yyvsp[0].expr)); }
3331*c42dbd0eSchristos #line 3332 "yyscript.c"
3332e6c7e151Schristos break;
3333e6c7e151Schristos
3334*c42dbd0eSchristos case 167: /* exp: exp '%' exp */
3335*c42dbd0eSchristos #line 903 "yyscript.y"
3336e6c7e151Schristos { (yyval.expr) = script_exp_binary_mod((yyvsp[-2].expr), (yyvsp[0].expr)); }
3337*c42dbd0eSchristos #line 3338 "yyscript.c"
3338e6c7e151Schristos break;
3339e6c7e151Schristos
3340*c42dbd0eSchristos case 168: /* exp: exp '+' exp */
3341*c42dbd0eSchristos #line 905 "yyscript.y"
3342e6c7e151Schristos { (yyval.expr) = script_exp_binary_add((yyvsp[-2].expr), (yyvsp[0].expr)); }
3343*c42dbd0eSchristos #line 3344 "yyscript.c"
3344e6c7e151Schristos break;
3345e6c7e151Schristos
3346*c42dbd0eSchristos case 169: /* exp: exp '-' exp */
3347*c42dbd0eSchristos #line 907 "yyscript.y"
3348e6c7e151Schristos { (yyval.expr) = script_exp_binary_sub((yyvsp[-2].expr), (yyvsp[0].expr)); }
3349*c42dbd0eSchristos #line 3350 "yyscript.c"
3350e6c7e151Schristos break;
3351e6c7e151Schristos
3352*c42dbd0eSchristos case 170: /* exp: exp LSHIFT exp */
3353*c42dbd0eSchristos #line 909 "yyscript.y"
3354e6c7e151Schristos { (yyval.expr) = script_exp_binary_lshift((yyvsp[-2].expr), (yyvsp[0].expr)); }
3355*c42dbd0eSchristos #line 3356 "yyscript.c"
3356e6c7e151Schristos break;
3357e6c7e151Schristos
3358*c42dbd0eSchristos case 171: /* exp: exp RSHIFT exp */
3359*c42dbd0eSchristos #line 911 "yyscript.y"
3360e6c7e151Schristos { (yyval.expr) = script_exp_binary_rshift((yyvsp[-2].expr), (yyvsp[0].expr)); }
3361*c42dbd0eSchristos #line 3362 "yyscript.c"
3362e6c7e151Schristos break;
3363e6c7e151Schristos
3364*c42dbd0eSchristos case 172: /* exp: exp EQ exp */
3365*c42dbd0eSchristos #line 913 "yyscript.y"
3366e6c7e151Schristos { (yyval.expr) = script_exp_binary_eq((yyvsp[-2].expr), (yyvsp[0].expr)); }
3367*c42dbd0eSchristos #line 3368 "yyscript.c"
3368e6c7e151Schristos break;
3369e6c7e151Schristos
3370*c42dbd0eSchristos case 173: /* exp: exp NE exp */
3371*c42dbd0eSchristos #line 915 "yyscript.y"
3372e6c7e151Schristos { (yyval.expr) = script_exp_binary_ne((yyvsp[-2].expr), (yyvsp[0].expr)); }
3373*c42dbd0eSchristos #line 3374 "yyscript.c"
3374e6c7e151Schristos break;
3375e6c7e151Schristos
3376*c42dbd0eSchristos case 174: /* exp: exp LE exp */
3377*c42dbd0eSchristos #line 917 "yyscript.y"
3378e6c7e151Schristos { (yyval.expr) = script_exp_binary_le((yyvsp[-2].expr), (yyvsp[0].expr)); }
3379*c42dbd0eSchristos #line 3380 "yyscript.c"
3380e6c7e151Schristos break;
3381e6c7e151Schristos
3382*c42dbd0eSchristos case 175: /* exp: exp GE exp */
3383*c42dbd0eSchristos #line 919 "yyscript.y"
3384e6c7e151Schristos { (yyval.expr) = script_exp_binary_ge((yyvsp[-2].expr), (yyvsp[0].expr)); }
3385*c42dbd0eSchristos #line 3386 "yyscript.c"
3386e6c7e151Schristos break;
3387e6c7e151Schristos
3388*c42dbd0eSchristos case 176: /* exp: exp '<' exp */
3389*c42dbd0eSchristos #line 921 "yyscript.y"
3390e6c7e151Schristos { (yyval.expr) = script_exp_binary_lt((yyvsp[-2].expr), (yyvsp[0].expr)); }
3391*c42dbd0eSchristos #line 3392 "yyscript.c"
3392e6c7e151Schristos break;
3393e6c7e151Schristos
3394*c42dbd0eSchristos case 177: /* exp: exp '>' exp */
3395*c42dbd0eSchristos #line 923 "yyscript.y"
3396e6c7e151Schristos { (yyval.expr) = script_exp_binary_gt((yyvsp[-2].expr), (yyvsp[0].expr)); }
3397*c42dbd0eSchristos #line 3398 "yyscript.c"
3398e6c7e151Schristos break;
3399e6c7e151Schristos
3400*c42dbd0eSchristos case 178: /* exp: exp '&' exp */
3401*c42dbd0eSchristos #line 925 "yyscript.y"
3402e6c7e151Schristos { (yyval.expr) = script_exp_binary_bitwise_and((yyvsp[-2].expr), (yyvsp[0].expr)); }
3403*c42dbd0eSchristos #line 3404 "yyscript.c"
3404e6c7e151Schristos break;
3405e6c7e151Schristos
3406*c42dbd0eSchristos case 179: /* exp: exp '^' exp */
3407*c42dbd0eSchristos #line 927 "yyscript.y"
3408e6c7e151Schristos { (yyval.expr) = script_exp_binary_bitwise_xor((yyvsp[-2].expr), (yyvsp[0].expr)); }
3409*c42dbd0eSchristos #line 3410 "yyscript.c"
3410e6c7e151Schristos break;
3411e6c7e151Schristos
3412*c42dbd0eSchristos case 180: /* exp: exp '|' exp */
3413*c42dbd0eSchristos #line 929 "yyscript.y"
3414e6c7e151Schristos { (yyval.expr) = script_exp_binary_bitwise_or((yyvsp[-2].expr), (yyvsp[0].expr)); }
3415*c42dbd0eSchristos #line 3416 "yyscript.c"
3416e6c7e151Schristos break;
3417e6c7e151Schristos
3418*c42dbd0eSchristos case 181: /* exp: exp ANDAND exp */
3419*c42dbd0eSchristos #line 931 "yyscript.y"
3420e6c7e151Schristos { (yyval.expr) = script_exp_binary_logical_and((yyvsp[-2].expr), (yyvsp[0].expr)); }
3421*c42dbd0eSchristos #line 3422 "yyscript.c"
3422e6c7e151Schristos break;
3423e6c7e151Schristos
3424*c42dbd0eSchristos case 182: /* exp: exp OROR exp */
3425*c42dbd0eSchristos #line 933 "yyscript.y"
3426e6c7e151Schristos { (yyval.expr) = script_exp_binary_logical_or((yyvsp[-2].expr), (yyvsp[0].expr)); }
3427*c42dbd0eSchristos #line 3428 "yyscript.c"
3428e6c7e151Schristos break;
3429e6c7e151Schristos
3430*c42dbd0eSchristos case 183: /* exp: exp '?' exp ':' exp */
3431*c42dbd0eSchristos #line 935 "yyscript.y"
3432e6c7e151Schristos { (yyval.expr) = script_exp_trinary_cond((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); }
3433*c42dbd0eSchristos #line 3434 "yyscript.c"
3434e6c7e151Schristos break;
3435e6c7e151Schristos
3436*c42dbd0eSchristos case 184: /* exp: INTEGER */
3437*c42dbd0eSchristos #line 937 "yyscript.y"
3438e6c7e151Schristos { (yyval.expr) = script_exp_integer((yyvsp[0].integer)); }
3439*c42dbd0eSchristos #line 3440 "yyscript.c"
3440e6c7e151Schristos break;
3441e6c7e151Schristos
3442*c42dbd0eSchristos case 185: /* exp: string */
3443*c42dbd0eSchristos #line 939 "yyscript.y"
3444e6c7e151Schristos { (yyval.expr) = script_symbol(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
3445*c42dbd0eSchristos #line 3446 "yyscript.c"
3446e6c7e151Schristos break;
3447e6c7e151Schristos
3448*c42dbd0eSchristos case 186: /* exp: MAX_K '(' exp ',' exp ')' */
3449*c42dbd0eSchristos #line 941 "yyscript.y"
3450e6c7e151Schristos { (yyval.expr) = script_exp_function_max((yyvsp[-3].expr), (yyvsp[-1].expr)); }
3451*c42dbd0eSchristos #line 3452 "yyscript.c"
3452e6c7e151Schristos break;
3453e6c7e151Schristos
3454*c42dbd0eSchristos case 187: /* exp: MIN_K '(' exp ',' exp ')' */
3455*c42dbd0eSchristos #line 943 "yyscript.y"
3456e6c7e151Schristos { (yyval.expr) = script_exp_function_min((yyvsp[-3].expr), (yyvsp[-1].expr)); }
3457*c42dbd0eSchristos #line 3458 "yyscript.c"
3458e6c7e151Schristos break;
3459e6c7e151Schristos
3460*c42dbd0eSchristos case 188: /* exp: DEFINED '(' string ')' */
3461*c42dbd0eSchristos #line 945 "yyscript.y"
3462e6c7e151Schristos { (yyval.expr) = script_exp_function_defined((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3463*c42dbd0eSchristos #line 3464 "yyscript.c"
3464e6c7e151Schristos break;
3465e6c7e151Schristos
3466*c42dbd0eSchristos case 189: /* exp: SIZEOF_HEADERS */
3467*c42dbd0eSchristos #line 947 "yyscript.y"
3468e6c7e151Schristos { (yyval.expr) = script_exp_function_sizeof_headers(); }
3469*c42dbd0eSchristos #line 3470 "yyscript.c"
3470e6c7e151Schristos break;
3471e6c7e151Schristos
3472*c42dbd0eSchristos case 190: /* exp: ALIGNOF '(' string ')' */
3473*c42dbd0eSchristos #line 949 "yyscript.y"
3474e6c7e151Schristos { (yyval.expr) = script_exp_function_alignof((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3475*c42dbd0eSchristos #line 3476 "yyscript.c"
3476e6c7e151Schristos break;
3477e6c7e151Schristos
3478*c42dbd0eSchristos case 191: /* exp: SIZEOF '(' string ')' */
3479*c42dbd0eSchristos #line 951 "yyscript.y"
3480e6c7e151Schristos { (yyval.expr) = script_exp_function_sizeof((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3481*c42dbd0eSchristos #line 3482 "yyscript.c"
3482e6c7e151Schristos break;
3483e6c7e151Schristos
3484*c42dbd0eSchristos case 192: /* exp: ADDR '(' string ')' */
3485*c42dbd0eSchristos #line 953 "yyscript.y"
3486e6c7e151Schristos { (yyval.expr) = script_exp_function_addr((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3487*c42dbd0eSchristos #line 3488 "yyscript.c"
3488e6c7e151Schristos break;
3489e6c7e151Schristos
3490*c42dbd0eSchristos case 193: /* exp: LOADADDR '(' string ')' */
3491*c42dbd0eSchristos #line 955 "yyscript.y"
3492e6c7e151Schristos { (yyval.expr) = script_exp_function_loadaddr((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3493*c42dbd0eSchristos #line 3494 "yyscript.c"
3494e6c7e151Schristos break;
3495e6c7e151Schristos
3496*c42dbd0eSchristos case 194: /* exp: ORIGIN '(' string ')' */
3497*c42dbd0eSchristos #line 957 "yyscript.y"
3498e6c7e151Schristos { (yyval.expr) = script_exp_function_origin(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3499*c42dbd0eSchristos #line 3500 "yyscript.c"
3500e6c7e151Schristos break;
3501e6c7e151Schristos
3502*c42dbd0eSchristos case 195: /* exp: LENGTH '(' string ')' */
3503*c42dbd0eSchristos #line 959 "yyscript.y"
3504e6c7e151Schristos { (yyval.expr) = script_exp_function_length(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3505*c42dbd0eSchristos #line 3506 "yyscript.c"
3506e6c7e151Schristos break;
3507e6c7e151Schristos
3508*c42dbd0eSchristos case 196: /* exp: CONSTANT '(' string ')' */
3509*c42dbd0eSchristos #line 961 "yyscript.y"
3510e6c7e151Schristos { (yyval.expr) = script_exp_function_constant((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3511*c42dbd0eSchristos #line 3512 "yyscript.c"
3512e6c7e151Schristos break;
3513e6c7e151Schristos
3514*c42dbd0eSchristos case 197: /* exp: ABSOLUTE '(' exp ')' */
3515*c42dbd0eSchristos #line 963 "yyscript.y"
3516e6c7e151Schristos { (yyval.expr) = script_exp_function_absolute((yyvsp[-1].expr)); }
3517*c42dbd0eSchristos #line 3518 "yyscript.c"
3518e6c7e151Schristos break;
3519e6c7e151Schristos
3520*c42dbd0eSchristos case 198: /* exp: ALIGN_K '(' exp ')' */
3521*c42dbd0eSchristos #line 965 "yyscript.y"
3522e6c7e151Schristos { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); }
3523*c42dbd0eSchristos #line 3524 "yyscript.c"
3524e6c7e151Schristos break;
3525e6c7e151Schristos
3526*c42dbd0eSchristos case 199: /* exp: ALIGN_K '(' exp ',' exp ')' */
3527*c42dbd0eSchristos #line 967 "yyscript.y"
3528e6c7e151Schristos { (yyval.expr) = script_exp_function_align((yyvsp[-3].expr), (yyvsp[-1].expr)); }
3529*c42dbd0eSchristos #line 3530 "yyscript.c"
3530e6c7e151Schristos break;
3531e6c7e151Schristos
3532*c42dbd0eSchristos case 200: /* exp: BLOCK '(' exp ')' */
3533*c42dbd0eSchristos #line 969 "yyscript.y"
3534e6c7e151Schristos { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); }
3535*c42dbd0eSchristos #line 3536 "yyscript.c"
3536e6c7e151Schristos break;
3537e6c7e151Schristos
3538*c42dbd0eSchristos case 201: /* exp: DATA_SEGMENT_ALIGN '(' exp ',' exp ')' */
3539*c42dbd0eSchristos #line 971 "yyscript.y"
3540e6c7e151Schristos {
3541e6c7e151Schristos script_data_segment_align(closure);
3542e6c7e151Schristos (yyval.expr) = script_exp_function_data_segment_align((yyvsp[-3].expr), (yyvsp[-1].expr));
3543e6c7e151Schristos }
3544*c42dbd0eSchristos #line 3545 "yyscript.c"
3545e6c7e151Schristos break;
3546e6c7e151Schristos
3547*c42dbd0eSchristos case 202: /* exp: DATA_SEGMENT_RELRO_END '(' exp ',' exp ')' */
3548*c42dbd0eSchristos #line 976 "yyscript.y"
3549e6c7e151Schristos {
3550e6c7e151Schristos script_data_segment_relro_end(closure);
3551e6c7e151Schristos (yyval.expr) = script_exp_function_data_segment_relro_end((yyvsp[-3].expr), (yyvsp[-1].expr));
3552e6c7e151Schristos }
3553*c42dbd0eSchristos #line 3554 "yyscript.c"
3554e6c7e151Schristos break;
3555e6c7e151Schristos
3556*c42dbd0eSchristos case 203: /* exp: DATA_SEGMENT_END '(' exp ')' */
3557*c42dbd0eSchristos #line 981 "yyscript.y"
3558e6c7e151Schristos { (yyval.expr) = script_exp_function_data_segment_end((yyvsp[-1].expr)); }
3559*c42dbd0eSchristos #line 3560 "yyscript.c"
3560e6c7e151Schristos break;
3561e6c7e151Schristos
3562*c42dbd0eSchristos case 204: /* exp: SEGMENT_START '(' string ',' exp ')' */
3563*c42dbd0eSchristos #line 983 "yyscript.y"
3564e6c7e151Schristos {
3565e6c7e151Schristos (yyval.expr) = script_exp_function_segment_start((yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr));
3566e6c7e151Schristos /* We need to take note of any SEGMENT_START expressions
3567e6c7e151Schristos because they change the behaviour of -Ttext, -Tdata and
3568e6c7e151Schristos -Tbss options. */
3569e6c7e151Schristos script_saw_segment_start_expression(closure);
3570e6c7e151Schristos }
3571*c42dbd0eSchristos #line 3572 "yyscript.c"
3572e6c7e151Schristos break;
3573e6c7e151Schristos
3574*c42dbd0eSchristos case 205: /* exp: ASSERT_K '(' exp ',' string ')' */
3575*c42dbd0eSchristos #line 991 "yyscript.y"
3576e6c7e151Schristos { (yyval.expr) = script_exp_function_assert((yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3577*c42dbd0eSchristos #line 3578 "yyscript.c"
3578e6c7e151Schristos break;
3579e6c7e151Schristos
3580*c42dbd0eSchristos case 206: /* defsym_expr: string '=' parse_exp */
3581*c42dbd0eSchristos #line 997 "yyscript.y"
3582e6c7e151Schristos { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); }
3583*c42dbd0eSchristos #line 3584 "yyscript.c"
3584e6c7e151Schristos break;
3585e6c7e151Schristos
3586*c42dbd0eSchristos case 210: /* dynamic_list_node: '{' vers_defns ';' '}' ';' */
3587*c42dbd0eSchristos #line 1015 "yyscript.y"
3588e6c7e151Schristos { script_new_vers_node (closure, NULL, (yyvsp[-3].versyms)); }
3589*c42dbd0eSchristos #line 3590 "yyscript.c"
3590e6c7e151Schristos break;
3591e6c7e151Schristos
3592*c42dbd0eSchristos case 214: /* vers_node: '{' vers_tag '}' ';' */
3593*c42dbd0eSchristos #line 1030 "yyscript.y"
3594e6c7e151Schristos {
3595e6c7e151Schristos script_register_vers_node (closure, NULL, 0, (yyvsp[-2].versnode), NULL);
3596e6c7e151Schristos }
3597*c42dbd0eSchristos #line 3598 "yyscript.c"
3598e6c7e151Schristos break;
3599e6c7e151Schristos
3600*c42dbd0eSchristos case 215: /* vers_node: string '{' vers_tag '}' ';' */
3601*c42dbd0eSchristos #line 1034 "yyscript.y"
3602e6c7e151Schristos {
3603e6c7e151Schristos script_register_vers_node (closure, (yyvsp[-4].string).value, (yyvsp[-4].string).length, (yyvsp[-2].versnode),
3604e6c7e151Schristos NULL);
3605e6c7e151Schristos }
3606*c42dbd0eSchristos #line 3607 "yyscript.c"
3607e6c7e151Schristos break;
3608e6c7e151Schristos
3609*c42dbd0eSchristos case 216: /* vers_node: string '{' vers_tag '}' verdep ';' */
3610*c42dbd0eSchristos #line 1039 "yyscript.y"
3611e6c7e151Schristos {
3612e6c7e151Schristos script_register_vers_node (closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length, (yyvsp[-3].versnode), (yyvsp[-1].deplist));
3613e6c7e151Schristos }
3614*c42dbd0eSchristos #line 3615 "yyscript.c"
3615e6c7e151Schristos break;
3616e6c7e151Schristos
3617*c42dbd0eSchristos case 217: /* verdep: string */
3618*c42dbd0eSchristos #line 1046 "yyscript.y"
3619e6c7e151Schristos {
3620e6c7e151Schristos (yyval.deplist) = script_add_vers_depend (closure, NULL, (yyvsp[0].string).value, (yyvsp[0].string).length);
3621e6c7e151Schristos }
3622*c42dbd0eSchristos #line 3623 "yyscript.c"
3623e6c7e151Schristos break;
3624e6c7e151Schristos
3625*c42dbd0eSchristos case 218: /* verdep: verdep string */
3626*c42dbd0eSchristos #line 1050 "yyscript.y"
3627e6c7e151Schristos {
3628e6c7e151Schristos (yyval.deplist) = script_add_vers_depend (closure, (yyvsp[-1].deplist), (yyvsp[0].string).value, (yyvsp[0].string).length);
3629e6c7e151Schristos }
3630*c42dbd0eSchristos #line 3631 "yyscript.c"
3631e6c7e151Schristos break;
3632e6c7e151Schristos
3633*c42dbd0eSchristos case 219: /* vers_tag: %empty */
3634*c42dbd0eSchristos #line 1057 "yyscript.y"
3635e6c7e151Schristos { (yyval.versnode) = script_new_vers_node (closure, NULL, NULL); }
3636*c42dbd0eSchristos #line 3637 "yyscript.c"
3637e6c7e151Schristos break;
3638e6c7e151Schristos
3639*c42dbd0eSchristos case 220: /* vers_tag: vers_defns ';' */
3640*c42dbd0eSchristos #line 1059 "yyscript.y"
3641e6c7e151Schristos { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); }
3642*c42dbd0eSchristos #line 3643 "yyscript.c"
3643e6c7e151Schristos break;
3644e6c7e151Schristos
3645*c42dbd0eSchristos case 221: /* vers_tag: GLOBAL ':' vers_defns ';' */
3646*c42dbd0eSchristos #line 1061 "yyscript.y"
3647e6c7e151Schristos { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); }
3648*c42dbd0eSchristos #line 3649 "yyscript.c"
3649e6c7e151Schristos break;
3650e6c7e151Schristos
3651*c42dbd0eSchristos case 222: /* vers_tag: LOCAL ':' vers_defns ';' */
3652*c42dbd0eSchristos #line 1063 "yyscript.y"
3653e6c7e151Schristos { (yyval.versnode) = script_new_vers_node (closure, NULL, (yyvsp[-1].versyms)); }
3654*c42dbd0eSchristos #line 3655 "yyscript.c"
3655e6c7e151Schristos break;
3656e6c7e151Schristos
3657*c42dbd0eSchristos case 223: /* vers_tag: GLOBAL ':' vers_defns ';' LOCAL ':' vers_defns ';' */
3658*c42dbd0eSchristos #line 1065 "yyscript.y"
3659e6c7e151Schristos { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-5].versyms), (yyvsp[-1].versyms)); }
3660*c42dbd0eSchristos #line 3661 "yyscript.c"
3661e6c7e151Schristos break;
3662e6c7e151Schristos
3663*c42dbd0eSchristos case 224: /* vers_defns: STRING */
3664*c42dbd0eSchristos #line 1074 "yyscript.y"
3665e6c7e151Schristos {
3666e6c7e151Schristos (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value,
3667e6c7e151Schristos (yyvsp[0].string).length, 0);
3668e6c7e151Schristos }
3669*c42dbd0eSchristos #line 3670 "yyscript.c"
3670e6c7e151Schristos break;
3671e6c7e151Schristos
3672*c42dbd0eSchristos case 225: /* vers_defns: QUOTED_STRING */
3673*c42dbd0eSchristos #line 1079 "yyscript.y"
3674e6c7e151Schristos {
3675e6c7e151Schristos (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value,
3676e6c7e151Schristos (yyvsp[0].string).length, 1);
3677e6c7e151Schristos }
3678*c42dbd0eSchristos #line 3679 "yyscript.c"
3679e6c7e151Schristos break;
3680e6c7e151Schristos
3681*c42dbd0eSchristos case 226: /* vers_defns: vers_defns ';' STRING */
3682*c42dbd0eSchristos #line 1084 "yyscript.y"
3683e6c7e151Schristos {
3684e6c7e151Schristos (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value,
3685e6c7e151Schristos (yyvsp[0].string).length, 0);
3686e6c7e151Schristos }
3687*c42dbd0eSchristos #line 3688 "yyscript.c"
3688e6c7e151Schristos break;
3689e6c7e151Schristos
3690*c42dbd0eSchristos case 227: /* vers_defns: vers_defns ';' QUOTED_STRING */
3691*c42dbd0eSchristos #line 1089 "yyscript.y"
3692e6c7e151Schristos {
3693e6c7e151Schristos (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value,
3694e6c7e151Schristos (yyvsp[0].string).length, 1);
3695e6c7e151Schristos }
3696*c42dbd0eSchristos #line 3697 "yyscript.c"
3697e6c7e151Schristos break;
3698e6c7e151Schristos
3699*c42dbd0eSchristos case 228: /* $@10: %empty */
3700*c42dbd0eSchristos #line 1095 "yyscript.y"
3701e6c7e151Schristos { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3702*c42dbd0eSchristos #line 3703 "yyscript.c"
3703e6c7e151Schristos break;
3704e6c7e151Schristos
3705*c42dbd0eSchristos case 229: /* vers_defns: EXTERN string '{' $@10 vers_defns opt_semicolon '}' */
3706*c42dbd0eSchristos #line 1097 "yyscript.y"
3707e6c7e151Schristos {
3708e6c7e151Schristos (yyval.versyms) = (yyvsp[-2].versyms);
3709e6c7e151Schristos version_script_pop_lang(closure);
3710e6c7e151Schristos }
3711*c42dbd0eSchristos #line 3712 "yyscript.c"
3712e6c7e151Schristos break;
3713e6c7e151Schristos
3714*c42dbd0eSchristos case 230: /* $@11: %empty */
3715*c42dbd0eSchristos #line 1105 "yyscript.y"
3716e6c7e151Schristos { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3717*c42dbd0eSchristos #line 3718 "yyscript.c"
3718e6c7e151Schristos break;
3719e6c7e151Schristos
3720*c42dbd0eSchristos case 231: /* vers_defns: vers_defns ';' EXTERN string '{' $@11 vers_defns opt_semicolon '}' */
3721*c42dbd0eSchristos #line 1107 "yyscript.y"
3722e6c7e151Schristos {
3723e6c7e151Schristos (yyval.versyms) = script_merge_expressions ((yyvsp[-8].versyms), (yyvsp[-2].versyms));
3724e6c7e151Schristos version_script_pop_lang(closure);
3725e6c7e151Schristos }
3726*c42dbd0eSchristos #line 3727 "yyscript.c"
3727e6c7e151Schristos break;
3728e6c7e151Schristos
3729*c42dbd0eSchristos case 232: /* vers_defns: EXTERN */
3730*c42dbd0eSchristos #line 1112 "yyscript.y"
3731e6c7e151Schristos {
3732e6c7e151Schristos (yyval.versyms) = script_new_vers_pattern (closure, NULL, "extern",
3733e6c7e151Schristos sizeof("extern") - 1, 1);
3734e6c7e151Schristos }
3735*c42dbd0eSchristos #line 3736 "yyscript.c"
3736e6c7e151Schristos break;
3737e6c7e151Schristos
3738*c42dbd0eSchristos case 233: /* vers_defns: vers_defns ';' EXTERN */
3739*c42dbd0eSchristos #line 1117 "yyscript.y"
3740e6c7e151Schristos {
3741e6c7e151Schristos (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), "extern",
3742e6c7e151Schristos sizeof("extern") - 1, 1);
3743e6c7e151Schristos }
3744*c42dbd0eSchristos #line 3745 "yyscript.c"
3745e6c7e151Schristos break;
3746e6c7e151Schristos
3747*c42dbd0eSchristos case 234: /* string: STRING */
3748*c42dbd0eSchristos #line 1127 "yyscript.y"
3749e6c7e151Schristos { (yyval.string) = (yyvsp[0].string); }
3750*c42dbd0eSchristos #line 3751 "yyscript.c"
3751e6c7e151Schristos break;
3752e6c7e151Schristos
3753*c42dbd0eSchristos case 235: /* string: QUOTED_STRING */
3754*c42dbd0eSchristos #line 1129 "yyscript.y"
3755e6c7e151Schristos { (yyval.string) = (yyvsp[0].string); }
3756*c42dbd0eSchristos #line 3757 "yyscript.c"
3757e6c7e151Schristos break;
3758e6c7e151Schristos
3759e6c7e151Schristos
3760*c42dbd0eSchristos #line 3761 "yyscript.c"
3761*c42dbd0eSchristos
3762e6c7e151Schristos default: break;
3763e6c7e151Schristos }
3764e6c7e151Schristos /* User semantic actions sometimes alter yychar, and that requires
3765e6c7e151Schristos that yytoken be updated with the new translation. We take the
3766e6c7e151Schristos approach of translating immediately before every use of yytoken.
3767e6c7e151Schristos One alternative is translating here after every semantic action,
3768e6c7e151Schristos but that translation would be missed if the semantic action invokes
3769e6c7e151Schristos YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3770e6c7e151Schristos if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3771e6c7e151Schristos incorrect destructor might then be invoked immediately. In the
3772e6c7e151Schristos case of YYERROR or YYBACKUP, subsequent parser actions might lead
3773e6c7e151Schristos to an incorrect destructor call or verbose syntax error message
3774e6c7e151Schristos before the lookahead is translated. */
3775*c42dbd0eSchristos YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3776e6c7e151Schristos
3777e6c7e151Schristos YYPOPSTACK (yylen);
3778e6c7e151Schristos yylen = 0;
3779e6c7e151Schristos
3780e6c7e151Schristos *++yyvsp = yyval;
3781e6c7e151Schristos
3782e6c7e151Schristos /* Now 'shift' the result of the reduction. Determine what state
3783e6c7e151Schristos that goes to, based on the state we popped back to and the rule
3784e6c7e151Schristos number reduced by. */
3785*c42dbd0eSchristos {
3786*c42dbd0eSchristos const int yylhs = yyr1[yyn] - YYNTOKENS;
3787*c42dbd0eSchristos const int yyi = yypgoto[yylhs] + *yyssp;
3788*c42dbd0eSchristos yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3789*c42dbd0eSchristos ? yytable[yyi]
3790*c42dbd0eSchristos : yydefgoto[yylhs]);
3791*c42dbd0eSchristos }
3792e6c7e151Schristos
3793e6c7e151Schristos goto yynewstate;
3794e6c7e151Schristos
3795e6c7e151Schristos
3796e6c7e151Schristos /*--------------------------------------.
3797e6c7e151Schristos | yyerrlab -- here on detecting error. |
3798e6c7e151Schristos `--------------------------------------*/
3799e6c7e151Schristos yyerrlab:
3800e6c7e151Schristos /* Make sure we have latest lookahead translation. See comments at
3801e6c7e151Schristos user semantic actions for why this is necessary. */
3802*c42dbd0eSchristos yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3803e6c7e151Schristos /* If not already recovering from an error, report this error. */
3804e6c7e151Schristos if (!yyerrstatus)
3805e6c7e151Schristos {
3806e6c7e151Schristos ++yynerrs;
3807e6c7e151Schristos {
3808*c42dbd0eSchristos yypcontext_t yyctx
3809*c42dbd0eSchristos = {yyssp, yytoken};
3810e6c7e151Schristos char const *yymsgp = YY_("syntax error");
3811e6c7e151Schristos int yysyntax_error_status;
3812*c42dbd0eSchristos yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3813e6c7e151Schristos if (yysyntax_error_status == 0)
3814e6c7e151Schristos yymsgp = yymsg;
3815*c42dbd0eSchristos else if (yysyntax_error_status == -1)
3816e6c7e151Schristos {
3817e6c7e151Schristos if (yymsg != yymsgbuf)
3818e6c7e151Schristos YYSTACK_FREE (yymsg);
3819*c42dbd0eSchristos yymsg = YY_CAST (char *,
3820*c42dbd0eSchristos YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3821*c42dbd0eSchristos if (yymsg)
3822e6c7e151Schristos {
3823*c42dbd0eSchristos yysyntax_error_status
3824*c42dbd0eSchristos = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3825*c42dbd0eSchristos yymsgp = yymsg;
3826e6c7e151Schristos }
3827e6c7e151Schristos else
3828e6c7e151Schristos {
3829*c42dbd0eSchristos yymsg = yymsgbuf;
3830*c42dbd0eSchristos yymsg_alloc = sizeof yymsgbuf;
3831*c42dbd0eSchristos yysyntax_error_status = YYENOMEM;
3832e6c7e151Schristos }
3833e6c7e151Schristos }
3834e6c7e151Schristos yyerror (closure, yymsgp);
3835*c42dbd0eSchristos if (yysyntax_error_status == YYENOMEM)
3836*c42dbd0eSchristos YYNOMEM;
3837e6c7e151Schristos }
3838e6c7e151Schristos }
3839e6c7e151Schristos
3840e6c7e151Schristos if (yyerrstatus == 3)
3841e6c7e151Schristos {
3842e6c7e151Schristos /* If just tried and failed to reuse lookahead token after an
3843e6c7e151Schristos error, discard it. */
3844e6c7e151Schristos
3845e6c7e151Schristos if (yychar <= YYEOF)
3846e6c7e151Schristos {
3847e6c7e151Schristos /* Return failure if at end of input. */
3848e6c7e151Schristos if (yychar == YYEOF)
3849e6c7e151Schristos YYABORT;
3850e6c7e151Schristos }
3851e6c7e151Schristos else
3852e6c7e151Schristos {
3853e6c7e151Schristos yydestruct ("Error: discarding",
3854e6c7e151Schristos yytoken, &yylval, closure);
3855e6c7e151Schristos yychar = YYEMPTY;
3856e6c7e151Schristos }
3857e6c7e151Schristos }
3858e6c7e151Schristos
3859e6c7e151Schristos /* Else will try to reuse lookahead token after shifting the error
3860e6c7e151Schristos token. */
3861e6c7e151Schristos goto yyerrlab1;
3862e6c7e151Schristos
3863e6c7e151Schristos
3864e6c7e151Schristos /*---------------------------------------------------.
3865e6c7e151Schristos | yyerrorlab -- error raised explicitly by YYERROR. |
3866e6c7e151Schristos `---------------------------------------------------*/
3867e6c7e151Schristos yyerrorlab:
3868*c42dbd0eSchristos /* Pacify compilers when the user code never invokes YYERROR and the
3869*c42dbd0eSchristos label yyerrorlab therefore never appears in user code. */
3870*c42dbd0eSchristos if (0)
3871*c42dbd0eSchristos YYERROR;
3872*c42dbd0eSchristos ++yynerrs;
3873e6c7e151Schristos
3874e6c7e151Schristos /* Do not reclaim the symbols of the rule whose action triggered
3875e6c7e151Schristos this YYERROR. */
3876e6c7e151Schristos YYPOPSTACK (yylen);
3877e6c7e151Schristos yylen = 0;
3878e6c7e151Schristos YY_STACK_PRINT (yyss, yyssp);
3879e6c7e151Schristos yystate = *yyssp;
3880e6c7e151Schristos goto yyerrlab1;
3881e6c7e151Schristos
3882e6c7e151Schristos
3883e6c7e151Schristos /*-------------------------------------------------------------.
3884e6c7e151Schristos | yyerrlab1 -- common code for both syntax error and YYERROR. |
3885e6c7e151Schristos `-------------------------------------------------------------*/
3886e6c7e151Schristos yyerrlab1:
3887e6c7e151Schristos yyerrstatus = 3; /* Each real token shifted decrements this. */
3888e6c7e151Schristos
3889*c42dbd0eSchristos /* Pop stack until we find a state that shifts the error token. */
3890e6c7e151Schristos for (;;)
3891e6c7e151Schristos {
3892e6c7e151Schristos yyn = yypact[yystate];
3893e6c7e151Schristos if (!yypact_value_is_default (yyn))
3894e6c7e151Schristos {
3895*c42dbd0eSchristos yyn += YYSYMBOL_YYerror;
3896*c42dbd0eSchristos if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3897e6c7e151Schristos {
3898e6c7e151Schristos yyn = yytable[yyn];
3899e6c7e151Schristos if (0 < yyn)
3900e6c7e151Schristos break;
3901e6c7e151Schristos }
3902e6c7e151Schristos }
3903e6c7e151Schristos
3904e6c7e151Schristos /* Pop the current state because it cannot handle the error token. */
3905e6c7e151Schristos if (yyssp == yyss)
3906e6c7e151Schristos YYABORT;
3907e6c7e151Schristos
3908e6c7e151Schristos
3909e6c7e151Schristos yydestruct ("Error: popping",
3910*c42dbd0eSchristos YY_ACCESSING_SYMBOL (yystate), yyvsp, closure);
3911e6c7e151Schristos YYPOPSTACK (1);
3912e6c7e151Schristos yystate = *yyssp;
3913e6c7e151Schristos YY_STACK_PRINT (yyss, yyssp);
3914e6c7e151Schristos }
3915e6c7e151Schristos
3916e6c7e151Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3917e6c7e151Schristos *++yyvsp = yylval;
3918e6c7e151Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
3919e6c7e151Schristos
3920e6c7e151Schristos
3921e6c7e151Schristos /* Shift the error token. */
3922*c42dbd0eSchristos YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3923e6c7e151Schristos
3924e6c7e151Schristos yystate = yyn;
3925e6c7e151Schristos goto yynewstate;
3926e6c7e151Schristos
3927e6c7e151Schristos
3928e6c7e151Schristos /*-------------------------------------.
3929e6c7e151Schristos | yyacceptlab -- YYACCEPT comes here. |
3930e6c7e151Schristos `-------------------------------------*/
3931e6c7e151Schristos yyacceptlab:
3932e6c7e151Schristos yyresult = 0;
3933*c42dbd0eSchristos goto yyreturnlab;
3934*c42dbd0eSchristos
3935e6c7e151Schristos
3936e6c7e151Schristos /*-----------------------------------.
3937e6c7e151Schristos | yyabortlab -- YYABORT comes here. |
3938e6c7e151Schristos `-----------------------------------*/
3939e6c7e151Schristos yyabortlab:
3940e6c7e151Schristos yyresult = 1;
3941*c42dbd0eSchristos goto yyreturnlab;
3942e6c7e151Schristos
3943*c42dbd0eSchristos
3944*c42dbd0eSchristos /*-----------------------------------------------------------.
3945*c42dbd0eSchristos | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
3946*c42dbd0eSchristos `-----------------------------------------------------------*/
3947e6c7e151Schristos yyexhaustedlab:
3948e6c7e151Schristos yyerror (closure, YY_("memory exhausted"));
3949e6c7e151Schristos yyresult = 2;
3950*c42dbd0eSchristos goto yyreturnlab;
3951e6c7e151Schristos
3952*c42dbd0eSchristos
3953*c42dbd0eSchristos /*----------------------------------------------------------.
3954*c42dbd0eSchristos | yyreturnlab -- parsing is finished, clean up and return. |
3955*c42dbd0eSchristos `----------------------------------------------------------*/
3956*c42dbd0eSchristos yyreturnlab:
3957e6c7e151Schristos if (yychar != YYEMPTY)
3958e6c7e151Schristos {
3959e6c7e151Schristos /* Make sure we have latest lookahead translation. See comments at
3960e6c7e151Schristos user semantic actions for why this is necessary. */
3961e6c7e151Schristos yytoken = YYTRANSLATE (yychar);
3962e6c7e151Schristos yydestruct ("Cleanup: discarding lookahead",
3963e6c7e151Schristos yytoken, &yylval, closure);
3964e6c7e151Schristos }
3965e6c7e151Schristos /* Do not reclaim the symbols of the rule whose action triggered
3966e6c7e151Schristos this YYABORT or YYACCEPT. */
3967e6c7e151Schristos YYPOPSTACK (yylen);
3968e6c7e151Schristos YY_STACK_PRINT (yyss, yyssp);
3969e6c7e151Schristos while (yyssp != yyss)
3970e6c7e151Schristos {
3971e6c7e151Schristos yydestruct ("Cleanup: popping",
3972*c42dbd0eSchristos YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, closure);
3973e6c7e151Schristos YYPOPSTACK (1);
3974e6c7e151Schristos }
3975e6c7e151Schristos #ifndef yyoverflow
3976e6c7e151Schristos if (yyss != yyssa)
3977e6c7e151Schristos YYSTACK_FREE (yyss);
3978e6c7e151Schristos #endif
3979e6c7e151Schristos if (yymsg != yymsgbuf)
3980e6c7e151Schristos YYSTACK_FREE (yymsg);
3981e6c7e151Schristos return yyresult;
3982e6c7e151Schristos }
3983*c42dbd0eSchristos
3984*c42dbd0eSchristos #line 1151 "yyscript.y"
3985e6c7e151Schristos
3986