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
115extern 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
346union 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};
381typedef union YYSTYPE YYSTYPE;
382# define YYSTYPE_IS_TRIVIAL 1
383# define YYSTYPE_IS_DECLARED 1
384#endif
385
386
387
388
389int yyparse (void* closure);
390
391
392#endif /* !YY_YY_YYSCRIPT_H_INCLUDED  */
393/* Symbol kind.  */
394enum 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};
598typedef 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__
625typedef __INT_LEAST8_TYPE__ yytype_int8;
626#elif defined YY_STDINT_H
627typedef int_least8_t yytype_int8;
628#else
629typedef signed char yytype_int8;
630#endif
631
632#ifdef __INT_LEAST16_MAX__
633typedef __INT_LEAST16_TYPE__ yytype_int16;
634#elif defined YY_STDINT_H
635typedef int_least16_t yytype_int16;
636#else
637typedef 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__
653typedef __UINT_LEAST8_TYPE__ yytype_uint8;
654#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
655       && UINT_LEAST8_MAX <= INT_MAX)
656typedef uint_least8_t yytype_uint8;
657#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
658typedef unsigned char yytype_uint8;
659#else
660typedef short yytype_uint8;
661#endif
662
663#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
664typedef __UINT_LEAST16_TYPE__ yytype_uint16;
665#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
666       && UINT_LEAST16_MAX <= INT_MAX)
667typedef uint_least16_t yytype_uint16;
668#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
669typedef unsigned short yytype_uint16;
670#else
671typedef 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). */
713typedef yytype_int16 yy_state_t;
714
715/* State numbers in computations.  */
716typedef 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
849void *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
855void 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.  */
866union 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.  */
948static 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.  */
991static 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.  */
1027static 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.  */
1031static 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
1073static const char *
1074yysymbol_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.  */
1092static 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.  */
1155static 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].  */
1216static 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].  */
1228static 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.  */
1242static 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
1393static 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.  */
1546static 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.  */
1607static 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.  */
1637static 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
1667enum { 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)                        \
1711do {                                            \
1712  if (yydebug)                                  \
1713    YYFPRINTF Args;                             \
1714} while (0)
1715
1716
1717
1718
1719# define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
1720do {                                                                      \
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
1735static void
1736yy_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
1754static void
1755yy_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
1770static void
1771yy_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)                            \
1783do {                                                            \
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
1793static void
1794yy_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)          \
1814do {                                    \
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.  */
1821int 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.  */
1848typedef 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. */
1860static int
1861yypcontext_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.  */
1902static YYPTRDIFF_T
1903yystrlen (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.  */
1919static char *
1920yystpcpy (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.  */
1941static YYPTRDIFF_T
1942yytnamerr (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
1984static int
1985yy_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.  */
2037static int
2038yysyntax_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
2122static void
2123yydestruct (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
2146int
2147yyparse (void* closure)
2148{
2149/* Lookahead token kind.  */
2150int 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.  */
2156YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2157YYSTYPE 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`------------------------------------------------------------*/
2212yynewstate:
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`--------------------------------------------------------------------*/
2221yysetstate:
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`-----------*/
2302yybackup:
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`-----------------------------------------------------------*/
2376yydefault:
2377  yyn = yydefact[yystate];
2378  if (yyn == 0)
2379    goto yyerrlab;
2380  goto yyreduce;
2381
2382
2383/*-----------------------------.
2384| yyreduce -- do a reduction.  |
2385`-----------------------------*/
2386yyreduce:
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`--------------------------------------*/
3799yyerrlab:
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`---------------------------------------------------*/
3867yyerrorlab:
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`-------------------------------------------------------------*/
3886yyerrlab1:
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`-------------------------------------*/
3931yyacceptlab:
3932  yyresult = 0;
3933  goto yyreturnlab;
3934
3935
3936/*-----------------------------------.
3937| yyabortlab -- YYABORT comes here.  |
3938`-----------------------------------*/
3939yyabortlab:
3940  yyresult = 1;
3941  goto yyreturnlab;
3942
3943
3944/*-----------------------------------------------------------.
3945| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
3946`-----------------------------------------------------------*/
3947yyexhaustedlab:
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`----------------------------------------------------------*/
3956yyreturnlab:
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