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