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