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