1 /* A Bison parser, made by GNU Bison 3.0.5.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2015, 2018 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.5"
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     default: /* Avoid compiler warnings. */
1725       YYCASE_(0, YY_("syntax error"));
1726       YYCASE_(1, YY_("syntax error, unexpected %s"));
1727       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1728       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1729       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1730       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1731 # undef YYCASE_
1732     }
1733 
1734   {
1735     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1736     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1737       return 2;
1738     yysize = yysize1;
1739   }
1740 
1741   if (*yymsg_alloc < yysize)
1742     {
1743       *yymsg_alloc = 2 * yysize;
1744       if (! (yysize <= *yymsg_alloc
1745              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1746         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1747       return 1;
1748     }
1749 
1750   /* Avoid sprintf, as that infringes on the user's name space.
1751      Don't have undefined behavior even if the translation
1752      produced a string with the wrong number of "%s"s.  */
1753   {
1754     char *yyp = *yymsg;
1755     int yyi = 0;
1756     while ((*yyp = *yyformat) != '\0')
1757       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1758         {
1759           yyp += yytnamerr (yyp, yyarg[yyi++]);
1760           yyformat += 2;
1761         }
1762       else
1763         {
1764           yyp++;
1765           yyformat++;
1766         }
1767   }
1768   return 0;
1769 }
1770 #endif /* YYERROR_VERBOSE */
1771 
1772 /*-----------------------------------------------.
1773 | Release the memory associated to this symbol.  |
1774 `-----------------------------------------------*/
1775 
1776 static void
1777 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* closure)
1778 {
1779   YYUSE (yyvaluep);
1780   YYUSE (closure);
1781   if (!yymsg)
1782     yymsg = "Deleting";
1783   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1784 
1785   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1786   YYUSE (yytype);
1787   YY_IGNORE_MAYBE_UNINITIALIZED_END
1788 }
1789 
1790 
1791 
1792 
1793 /*----------.
1794 | yyparse.  |
1795 `----------*/
1796 
1797 int
1798 yyparse (void* closure)
1799 {
1800 /* The lookahead symbol.  */
1801 int yychar;
1802 
1803 
1804 /* The semantic value of the lookahead symbol.  */
1805 /* Default value used for initialization, for pacifying older GCCs
1806    or non-GCC compilers.  */
1807 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1808 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1809 
1810     /* Number of syntax errors so far.  */
1811     int yynerrs;
1812 
1813     int yystate;
1814     /* Number of tokens to shift before error messages enabled.  */
1815     int yyerrstatus;
1816 
1817     /* The stacks and their tools:
1818        'yyss': related to states.
1819        'yyvs': related to semantic values.
1820 
1821        Refer to the stacks through separate pointers, to allow yyoverflow
1822        to reallocate them elsewhere.  */
1823 
1824     /* The state stack.  */
1825     yytype_int16 yyssa[YYINITDEPTH];
1826     yytype_int16 *yyss;
1827     yytype_int16 *yyssp;
1828 
1829     /* The semantic value stack.  */
1830     YYSTYPE yyvsa[YYINITDEPTH];
1831     YYSTYPE *yyvs;
1832     YYSTYPE *yyvsp;
1833 
1834     YYSIZE_T yystacksize;
1835 
1836   int yyn;
1837   int yyresult;
1838   /* Lookahead token as an internal (translated) token number.  */
1839   int yytoken = 0;
1840   /* The variables used to return semantic value and location from the
1841      action routines.  */
1842   YYSTYPE yyval;
1843 
1844 #if YYERROR_VERBOSE
1845   /* Buffer for error messages, and its allocated size.  */
1846   char yymsgbuf[128];
1847   char *yymsg = yymsgbuf;
1848   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1849 #endif
1850 
1851 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1852 
1853   /* The number of symbols on the RHS of the reduced rule.
1854      Keep to zero when no symbol should be popped.  */
1855   int yylen = 0;
1856 
1857   yyssp = yyss = yyssa;
1858   yyvsp = yyvs = yyvsa;
1859   yystacksize = YYINITDEPTH;
1860 
1861   YYDPRINTF ((stderr, "Starting parse\n"));
1862 
1863   yystate = 0;
1864   yyerrstatus = 0;
1865   yynerrs = 0;
1866   yychar = YYEMPTY; /* Cause a token to be read.  */
1867   goto yysetstate;
1868 
1869 /*------------------------------------------------------------.
1870 | yynewstate -- Push a new state, which is found in yystate.  |
1871 `------------------------------------------------------------*/
1872  yynewstate:
1873   /* In all cases, when you get here, the value and location stacks
1874      have just been pushed.  So pushing a state here evens the stacks.  */
1875   yyssp++;
1876 
1877  yysetstate:
1878   *yyssp = yystate;
1879 
1880   if (yyss + yystacksize - 1 <= yyssp)
1881     {
1882       /* Get the current used size of the three stacks, in elements.  */
1883       YYSIZE_T yysize = yyssp - yyss + 1;
1884 
1885 #ifdef yyoverflow
1886       {
1887         /* Give user a chance to reallocate the stack.  Use copies of
1888            these so that the &'s don't force the real ones into
1889            memory.  */
1890         YYSTYPE *yyvs1 = yyvs;
1891         yytype_int16 *yyss1 = yyss;
1892 
1893         /* Each stack pointer address is followed by the size of the
1894            data in use in that stack, in bytes.  This used to be a
1895            conditional around just the two extra args, but that might
1896            be undefined if yyoverflow is a macro.  */
1897         yyoverflow (YY_("memory exhausted"),
1898                     &yyss1, yysize * sizeof (*yyssp),
1899                     &yyvs1, yysize * sizeof (*yyvsp),
1900                     &yystacksize);
1901 
1902         yyss = yyss1;
1903         yyvs = yyvs1;
1904       }
1905 #else /* no yyoverflow */
1906 # ifndef YYSTACK_RELOCATE
1907       goto yyexhaustedlab;
1908 # else
1909       /* Extend the stack our own way.  */
1910       if (YYMAXDEPTH <= yystacksize)
1911         goto yyexhaustedlab;
1912       yystacksize *= 2;
1913       if (YYMAXDEPTH < yystacksize)
1914         yystacksize = YYMAXDEPTH;
1915 
1916       {
1917         yytype_int16 *yyss1 = yyss;
1918         union yyalloc *yyptr =
1919           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1920         if (! yyptr)
1921           goto yyexhaustedlab;
1922         YYSTACK_RELOCATE (yyss_alloc, yyss);
1923         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1924 #  undef YYSTACK_RELOCATE
1925         if (yyss1 != yyssa)
1926           YYSTACK_FREE (yyss1);
1927       }
1928 # endif
1929 #endif /* no yyoverflow */
1930 
1931       yyssp = yyss + yysize - 1;
1932       yyvsp = yyvs + yysize - 1;
1933 
1934       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1935                   (unsigned long int) yystacksize));
1936 
1937       if (yyss + yystacksize - 1 <= yyssp)
1938         YYABORT;
1939     }
1940 
1941   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1942 
1943   if (yystate == YYFINAL)
1944     YYACCEPT;
1945 
1946   goto yybackup;
1947 
1948 /*-----------.
1949 | yybackup.  |
1950 `-----------*/
1951 yybackup:
1952 
1953   /* Do appropriate processing given the current state.  Read a
1954      lookahead token if we need one and don't already have one.  */
1955 
1956   /* First try to decide what to do without reference to lookahead token.  */
1957   yyn = yypact[yystate];
1958   if (yypact_value_is_default (yyn))
1959     goto yydefault;
1960 
1961   /* Not known => get a lookahead token if don't already have one.  */
1962 
1963   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1964   if (yychar == YYEMPTY)
1965     {
1966       YYDPRINTF ((stderr, "Reading a token: "));
1967       yychar = yylex (&yylval, closure);
1968     }
1969 
1970   if (yychar <= YYEOF)
1971     {
1972       yychar = yytoken = YYEOF;
1973       YYDPRINTF ((stderr, "Now at end of input.\n"));
1974     }
1975   else
1976     {
1977       yytoken = YYTRANSLATE (yychar);
1978       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1979     }
1980 
1981   /* If the proper action on seeing token YYTOKEN is to reduce or to
1982      detect an error, take that action.  */
1983   yyn += yytoken;
1984   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1985     goto yydefault;
1986   yyn = yytable[yyn];
1987   if (yyn <= 0)
1988     {
1989       if (yytable_value_is_error (yyn))
1990         goto yyerrlab;
1991       yyn = -yyn;
1992       goto yyreduce;
1993     }
1994 
1995   /* Count tokens shifted since error; after three, turn off error
1996      status.  */
1997   if (yyerrstatus)
1998     yyerrstatus--;
1999 
2000   /* Shift the lookahead token.  */
2001   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2002 
2003   /* Discard the shifted token.  */
2004   yychar = YYEMPTY;
2005 
2006   yystate = yyn;
2007   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2008   *++yyvsp = yylval;
2009   YY_IGNORE_MAYBE_UNINITIALIZED_END
2010 
2011   goto yynewstate;
2012 
2013 
2014 /*-----------------------------------------------------------.
2015 | yydefault -- do the default action for the current state.  |
2016 `-----------------------------------------------------------*/
2017 yydefault:
2018   yyn = yydefact[yystate];
2019   if (yyn == 0)
2020     goto yyerrlab;
2021   goto yyreduce;
2022 
2023 
2024 /*-----------------------------.
2025 | yyreduce -- Do a reduction.  |
2026 `-----------------------------*/
2027 yyreduce:
2028   /* yyn is the number of a rule to reduce with.  */
2029   yylen = yyr2[yyn];
2030 
2031   /* If YYLEN is nonzero, implement the default value of the action:
2032      '$$ = $1'.
2033 
2034      Otherwise, the following line sets YYVAL to garbage.
2035      This behavior is undocumented and Bison
2036      users should not rely upon it.  Assigning to YYVAL
2037      unconditionally makes the parser a bit smaller, and it avoids a
2038      GCC warning that YYVAL may be used uninitialized.  */
2039   yyval = yyvsp[1-yylen];
2040 
2041 
2042   YY_REDUCE_PRINT (yyn);
2043   switch (yyn)
2044     {
2045         case 12:
2046 #line 255 "yyscript.y" /* yacc.c:1648  */
2047     { script_set_common_allocation(closure, 1); }
2048 #line 2049 "yyscript.c" /* yacc.c:1648  */
2049     break;
2050 
2051   case 13:
2052 #line 257 "yyscript.y" /* yacc.c:1648  */
2053     { script_start_group(closure); }
2054 #line 2055 "yyscript.c" /* yacc.c:1648  */
2055     break;
2056 
2057   case 14:
2058 #line 259 "yyscript.y" /* yacc.c:1648  */
2059     { script_end_group(closure); }
2060 #line 2061 "yyscript.c" /* yacc.c:1648  */
2061     break;
2062 
2063   case 15:
2064 #line 261 "yyscript.y" /* yacc.c:1648  */
2065     { script_set_common_allocation(closure, 0); }
2066 #line 2067 "yyscript.c" /* yacc.c:1648  */
2067     break;
2068 
2069   case 18:
2070 #line 265 "yyscript.y" /* yacc.c:1648  */
2071     { script_parse_option(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2072 #line 2073 "yyscript.c" /* yacc.c:1648  */
2073     break;
2074 
2075   case 19:
2076 #line 267 "yyscript.y" /* yacc.c:1648  */
2077     {
2078 	      if (!script_check_output_format(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length,
2079 					      NULL, 0, NULL, 0))
2080 		YYABORT;
2081 	    }
2082 #line 2083 "yyscript.c" /* yacc.c:1648  */
2083     break;
2084 
2085   case 20:
2086 #line 273 "yyscript.y" /* yacc.c:1648  */
2087     {
2088 	      if (!script_check_output_format(closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length,
2089 					      (yyvsp[-3].string).value, (yyvsp[-3].string).length,
2090 					      (yyvsp[-1].string).value, (yyvsp[-1].string).length))
2091 		YYABORT;
2092 	    }
2093 #line 2094 "yyscript.c" /* yacc.c:1648  */
2094     break;
2095 
2096   case 22:
2097 #line 281 "yyscript.y" /* yacc.c:1648  */
2098     { script_add_search_dir(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2099 #line 2100 "yyscript.c" /* yacc.c:1648  */
2100     break;
2101 
2102   case 23:
2103 #line 283 "yyscript.y" /* yacc.c:1648  */
2104     { script_start_sections(closure); }
2105 #line 2106 "yyscript.c" /* yacc.c:1648  */
2106     break;
2107 
2108   case 24:
2109 #line 285 "yyscript.y" /* yacc.c:1648  */
2110     { script_finish_sections(closure); }
2111 #line 2112 "yyscript.c" /* yacc.c:1648  */
2112     break;
2113 
2114   case 25:
2115 #line 287 "yyscript.y" /* yacc.c:1648  */
2116     { script_set_target(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2117 #line 2118 "yyscript.c" /* yacc.c:1648  */
2118     break;
2119 
2120   case 26:
2121 #line 289 "yyscript.y" /* yacc.c:1648  */
2122     { script_push_lex_into_version_mode(closure); }
2123 #line 2124 "yyscript.c" /* yacc.c:1648  */
2124     break;
2125 
2126   case 27:
2127 #line 291 "yyscript.y" /* yacc.c:1648  */
2128     { script_pop_lex_mode(closure); }
2129 #line 2130 "yyscript.c" /* yacc.c:1648  */
2130     break;
2131 
2132   case 28:
2133 #line 293 "yyscript.y" /* yacc.c:1648  */
2134     { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2135 #line 2136 "yyscript.c" /* yacc.c:1648  */
2136     break;
2137 
2138   case 30:
2139 #line 296 "yyscript.y" /* yacc.c:1648  */
2140     { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2141 #line 2142 "yyscript.c" /* yacc.c:1648  */
2142     break;
2143 
2144   case 31:
2145 #line 298 "yyscript.y" /* yacc.c:1648  */
2146     { script_include_directive(PARSING_LINKER_SCRIPT, closure,
2147 				       (yyvsp[0].string).value, (yyvsp[0].string).length); }
2148 #line 2149 "yyscript.c" /* yacc.c:1648  */
2149     break;
2150 
2151   case 35:
2152 #line 317 "yyscript.y" /* yacc.c:1648  */
2153     { script_push_lex_into_expression_mode(closure); }
2154 #line 2155 "yyscript.c" /* yacc.c:1648  */
2155     break;
2156 
2157   case 36:
2158 #line 319 "yyscript.y" /* yacc.c:1648  */
2159     { script_pop_lex_mode(closure); }
2160 #line 2161 "yyscript.c" /* yacc.c:1648  */
2161     break;
2162 
2163   case 37:
2164 #line 324 "yyscript.y" /* yacc.c:1648  */
2165     { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2166 #line 2167 "yyscript.c" /* yacc.c:1648  */
2167     break;
2168 
2169   case 38:
2170 #line 326 "yyscript.y" /* yacc.c:1648  */
2171     { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2172 #line 2173 "yyscript.c" /* yacc.c:1648  */
2173     break;
2174 
2175   case 39:
2176 #line 328 "yyscript.y" /* yacc.c:1648  */
2177     { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2178 #line 2179 "yyscript.c" /* yacc.c:1648  */
2179     break;
2180 
2181   case 42:
2182 #line 340 "yyscript.y" /* yacc.c:1648  */
2183     { script_add_file(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2184 #line 2185 "yyscript.c" /* yacc.c:1648  */
2185     break;
2186 
2187   case 43:
2188 #line 342 "yyscript.y" /* yacc.c:1648  */
2189     { script_add_library(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2190 #line 2191 "yyscript.c" /* yacc.c:1648  */
2191     break;
2192 
2193   case 44:
2194 #line 344 "yyscript.y" /* yacc.c:1648  */
2195     { script_start_as_needed(closure); }
2196 #line 2197 "yyscript.c" /* yacc.c:1648  */
2197     break;
2198 
2199   case 45:
2200 #line 346 "yyscript.y" /* yacc.c:1648  */
2201     { script_end_as_needed(closure); }
2202 #line 2203 "yyscript.c" /* yacc.c:1648  */
2203     break;
2204 
2205   case 48:
2206 #line 358 "yyscript.y" /* yacc.c:1648  */
2207     { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2208 #line 2209 "yyscript.c" /* yacc.c:1648  */
2209     break;
2210 
2211   case 50:
2212 #line 361 "yyscript.y" /* yacc.c:1648  */
2213     { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2214 #line 2215 "yyscript.c" /* yacc.c:1648  */
2215     break;
2216 
2217   case 51:
2218 #line 363 "yyscript.y" /* yacc.c:1648  */
2219     { script_include_directive(PARSING_SECTIONS_BLOCK, closure,
2220 				       (yyvsp[0].string).value, (yyvsp[0].string).length); }
2221 #line 2222 "yyscript.c" /* yacc.c:1648  */
2222     break;
2223 
2224   case 52:
2225 #line 366 "yyscript.y" /* yacc.c:1648  */
2226     { script_start_output_section(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, &(yyvsp[0].output_section_header)); }
2227 #line 2228 "yyscript.c" /* yacc.c:1648  */
2228     break;
2229 
2230   case 53:
2231 #line 368 "yyscript.y" /* yacc.c:1648  */
2232     { script_finish_output_section(closure, &(yyvsp[0].output_section_trailer)); }
2233 #line 2234 "yyscript.c" /* yacc.c:1648  */
2234     break;
2235 
2236   case 54:
2237 #line 374 "yyscript.y" /* yacc.c:1648  */
2238     { script_push_lex_into_expression_mode(closure); }
2239 #line 2240 "yyscript.c" /* yacc.c:1648  */
2240     break;
2241 
2242   case 55:
2243 #line 376 "yyscript.y" /* yacc.c:1648  */
2244     { script_pop_lex_mode(closure); }
2245 #line 2246 "yyscript.c" /* yacc.c:1648  */
2246     break;
2247 
2248   case 56:
2249 #line 378 "yyscript.y" /* yacc.c:1648  */
2250     {
2251 	      (yyval.output_section_header).address = (yyvsp[-5].output_section_header).address;
2252 	      (yyval.output_section_header).section_type = (yyvsp[-5].output_section_header).section_type;
2253 	      (yyval.output_section_header).load_address = (yyvsp[-4].expr);
2254 	      (yyval.output_section_header).align = (yyvsp[-3].expr);
2255 	      (yyval.output_section_header).subalign = (yyvsp[-2].expr);
2256 	      (yyval.output_section_header).constraint = (yyvsp[0].constraint);
2257 	    }
2258 #line 2259 "yyscript.c" /* yacc.c:1648  */
2259     break;
2260 
2261   case 57:
2262 #line 394 "yyscript.y" /* yacc.c:1648  */
2263     {
2264 	      (yyval.output_section_header).address = NULL;
2265 	      (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2266 	    }
2267 #line 2268 "yyscript.c" /* yacc.c:1648  */
2268     break;
2269 
2270   case 58:
2271 #line 399 "yyscript.y" /* yacc.c:1648  */
2272     {
2273 	      (yyval.output_section_header).address = NULL;
2274 	      (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2275 	    }
2276 #line 2277 "yyscript.c" /* yacc.c:1648  */
2277     break;
2278 
2279   case 59:
2280 #line 404 "yyscript.y" /* yacc.c:1648  */
2281     {
2282 	      (yyval.output_section_header).address = (yyvsp[-1].expr);
2283 	      (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2284 	    }
2285 #line 2286 "yyscript.c" /* yacc.c:1648  */
2286     break;
2287 
2288   case 60:
2289 #line 409 "yyscript.y" /* yacc.c:1648  */
2290     {
2291 	      (yyval.output_section_header).address = (yyvsp[-3].expr);
2292 	      (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE;
2293 	    }
2294 #line 2295 "yyscript.c" /* yacc.c:1648  */
2295     break;
2296 
2297   case 61:
2298 #line 414 "yyscript.y" /* yacc.c:1648  */
2299     {
2300 	      (yyval.output_section_header).address = NULL;
2301 	      (yyval.output_section_header).section_type = (yyvsp[-2].section_type);
2302 	    }
2303 #line 2304 "yyscript.c" /* yacc.c:1648  */
2304     break;
2305 
2306   case 62:
2307 #line 419 "yyscript.y" /* yacc.c:1648  */
2308     {
2309 	      (yyval.output_section_header).address = (yyvsp[-4].expr);
2310 	      (yyval.output_section_header).section_type = (yyvsp[-2].section_type);
2311 	    }
2312 #line 2313 "yyscript.c" /* yacc.c:1648  */
2313     break;
2314 
2315   case 63:
2316 #line 428 "yyscript.y" /* yacc.c:1648  */
2317     { (yyval.section_type) = SCRIPT_SECTION_TYPE_NOLOAD; }
2318 #line 2319 "yyscript.c" /* yacc.c:1648  */
2319     break;
2320 
2321   case 64:
2322 #line 430 "yyscript.y" /* yacc.c:1648  */
2323     {
2324 	      yyerror(closure, "DSECT section type is unsupported");
2325 	      (yyval.section_type) = SCRIPT_SECTION_TYPE_DSECT;
2326 	    }
2327 #line 2328 "yyscript.c" /* yacc.c:1648  */
2328     break;
2329 
2330   case 65:
2331 #line 435 "yyscript.y" /* yacc.c:1648  */
2332     {
2333 	      yyerror(closure, "COPY section type is unsupported");
2334 	      (yyval.section_type) = SCRIPT_SECTION_TYPE_COPY;
2335 	    }
2336 #line 2337 "yyscript.c" /* yacc.c:1648  */
2337     break;
2338 
2339   case 66:
2340 #line 440 "yyscript.y" /* yacc.c:1648  */
2341     {
2342 	      yyerror(closure, "INFO section type is unsupported");
2343 	      (yyval.section_type) = SCRIPT_SECTION_TYPE_INFO;
2344 	    }
2345 #line 2346 "yyscript.c" /* yacc.c:1648  */
2346     break;
2347 
2348   case 67:
2349 #line 445 "yyscript.y" /* yacc.c:1648  */
2350     {
2351 	      yyerror(closure, "OVERLAY section type is unsupported");
2352 	      (yyval.section_type) = SCRIPT_SECTION_TYPE_OVERLAY;
2353 	    }
2354 #line 2355 "yyscript.c" /* yacc.c:1648  */
2355     break;
2356 
2357   case 68:
2358 #line 454 "yyscript.y" /* yacc.c:1648  */
2359     { (yyval.expr) = NULL; }
2360 #line 2361 "yyscript.c" /* yacc.c:1648  */
2361     break;
2362 
2363   case 69:
2364 #line 456 "yyscript.y" /* yacc.c:1648  */
2365     { (yyval.expr) = (yyvsp[-1].expr); }
2366 #line 2367 "yyscript.c" /* yacc.c:1648  */
2367     break;
2368 
2369   case 70:
2370 #line 462 "yyscript.y" /* yacc.c:1648  */
2371     { (yyval.expr) = NULL; }
2372 #line 2373 "yyscript.c" /* yacc.c:1648  */
2373     break;
2374 
2375   case 71:
2376 #line 464 "yyscript.y" /* yacc.c:1648  */
2377     { (yyval.expr) = (yyvsp[-1].expr); }
2378 #line 2379 "yyscript.c" /* yacc.c:1648  */
2379     break;
2380 
2381   case 72:
2382 #line 470 "yyscript.y" /* yacc.c:1648  */
2383     { (yyval.expr) = NULL; }
2384 #line 2385 "yyscript.c" /* yacc.c:1648  */
2385     break;
2386 
2387   case 73:
2388 #line 472 "yyscript.y" /* yacc.c:1648  */
2389     { (yyval.expr) = (yyvsp[-1].expr); }
2390 #line 2391 "yyscript.c" /* yacc.c:1648  */
2391     break;
2392 
2393   case 74:
2394 #line 478 "yyscript.y" /* yacc.c:1648  */
2395     { (yyval.constraint) = CONSTRAINT_NONE; }
2396 #line 2397 "yyscript.c" /* yacc.c:1648  */
2397     break;
2398 
2399   case 75:
2400 #line 480 "yyscript.y" /* yacc.c:1648  */
2401     { (yyval.constraint) = CONSTRAINT_ONLY_IF_RO; }
2402 #line 2403 "yyscript.c" /* yacc.c:1648  */
2403     break;
2404 
2405   case 76:
2406 #line 482 "yyscript.y" /* yacc.c:1648  */
2407     { (yyval.constraint) = CONSTRAINT_ONLY_IF_RW; }
2408 #line 2409 "yyscript.c" /* yacc.c:1648  */
2409     break;
2410 
2411   case 77:
2412 #line 484 "yyscript.y" /* yacc.c:1648  */
2413     { (yyval.constraint) = CONSTRAINT_SPECIAL; }
2414 #line 2415 "yyscript.c" /* yacc.c:1648  */
2415     break;
2416 
2417   case 78:
2418 #line 490 "yyscript.y" /* yacc.c:1648  */
2419     {
2420 	      (yyval.output_section_trailer).fill = (yyvsp[-1].expr);
2421 	      (yyval.output_section_trailer).phdrs = (yyvsp[-2].string_list);
2422 	    }
2423 #line 2424 "yyscript.c" /* yacc.c:1648  */
2424     break;
2425 
2426   case 79:
2427 #line 499 "yyscript.y" /* yacc.c:1648  */
2428     { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 1); }
2429 #line 2430 "yyscript.c" /* yacc.c:1648  */
2430     break;
2431 
2432   case 81:
2433 #line 506 "yyscript.y" /* yacc.c:1648  */
2434     { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 0); }
2435 #line 2436 "yyscript.c" /* yacc.c:1648  */
2436     break;
2437 
2438   case 83:
2439 #line 513 "yyscript.y" /* yacc.c:1648  */
2440     { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); }
2441 #line 2442 "yyscript.c" /* yacc.c:1648  */
2442     break;
2443 
2444   case 84:
2445 #line 515 "yyscript.y" /* yacc.c:1648  */
2446     { (yyval.string_list) = NULL; }
2447 #line 2448 "yyscript.c" /* yacc.c:1648  */
2448     break;
2449 
2450   case 85:
2451 #line 522 "yyscript.y" /* yacc.c:1648  */
2452     { (yyval.expr) = (yyvsp[0].expr); }
2453 #line 2454 "yyscript.c" /* yacc.c:1648  */
2454     break;
2455 
2456   case 86:
2457 #line 524 "yyscript.y" /* yacc.c:1648  */
2458     { (yyval.expr) = NULL; }
2459 #line 2460 "yyscript.c" /* yacc.c:1648  */
2460     break;
2461 
2462   case 91:
2463 #line 540 "yyscript.y" /* yacc.c:1648  */
2464     { script_add_data(closure, (yyvsp[-3].integer), (yyvsp[-1].expr)); }
2465 #line 2466 "yyscript.c" /* yacc.c:1648  */
2466     break;
2467 
2468   case 92:
2469 #line 542 "yyscript.y" /* yacc.c:1648  */
2470     { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
2471 #line 2472 "yyscript.c" /* yacc.c:1648  */
2472     break;
2473 
2474   case 93:
2475 #line 544 "yyscript.y" /* yacc.c:1648  */
2476     { script_add_fill(closure, (yyvsp[-1].expr)); }
2477 #line 2478 "yyscript.c" /* yacc.c:1648  */
2478     break;
2479 
2480   case 94:
2481 #line 546 "yyscript.y" /* yacc.c:1648  */
2482     {
2483 	      /* The GNU linker uses CONSTRUCTORS for the a.out object
2484 		 file format.  It does nothing when using ELF.  Since
2485 		 some ELF linker scripts use it although it does
2486 		 nothing, we accept it and ignore it.  */
2487 	    }
2488 #line 2489 "yyscript.c" /* yacc.c:1648  */
2489     break;
2490 
2491   case 96:
2492 #line 554 "yyscript.y" /* yacc.c:1648  */
2493     { script_include_directive(PARSING_SECTION_COMMANDS, closure,
2494 				       (yyvsp[0].string).value, (yyvsp[0].string).length); }
2495 #line 2496 "yyscript.c" /* yacc.c:1648  */
2496     break;
2497 
2498   case 98:
2499 #line 563 "yyscript.y" /* yacc.c:1648  */
2500     { (yyval.integer) = QUAD; }
2501 #line 2502 "yyscript.c" /* yacc.c:1648  */
2502     break;
2503 
2504   case 99:
2505 #line 565 "yyscript.y" /* yacc.c:1648  */
2506     { (yyval.integer) = SQUAD; }
2507 #line 2508 "yyscript.c" /* yacc.c:1648  */
2508     break;
2509 
2510   case 100:
2511 #line 567 "yyscript.y" /* yacc.c:1648  */
2512     { (yyval.integer) = LONG; }
2513 #line 2514 "yyscript.c" /* yacc.c:1648  */
2514     break;
2515 
2516   case 101:
2517 #line 569 "yyscript.y" /* yacc.c:1648  */
2518     { (yyval.integer) = SHORT; }
2519 #line 2520 "yyscript.c" /* yacc.c:1648  */
2520     break;
2521 
2522   case 102:
2523 #line 571 "yyscript.y" /* yacc.c:1648  */
2524     { (yyval.integer) = BYTE; }
2525 #line 2526 "yyscript.c" /* yacc.c:1648  */
2526     break;
2527 
2528   case 103:
2529 #line 578 "yyscript.y" /* yacc.c:1648  */
2530     { script_add_input_section(closure, &(yyvsp[0].input_section_spec), 0); }
2531 #line 2532 "yyscript.c" /* yacc.c:1648  */
2532     break;
2533 
2534   case 104:
2535 #line 580 "yyscript.y" /* yacc.c:1648  */
2536     { script_add_input_section(closure, &(yyvsp[-1].input_section_spec), 1); }
2537 #line 2538 "yyscript.c" /* yacc.c:1648  */
2538     break;
2539 
2540   case 105:
2541 #line 586 "yyscript.y" /* yacc.c:1648  */
2542     {
2543 	      (yyval.input_section_spec).file.name = (yyvsp[0].string);
2544 	      (yyval.input_section_spec).file.sort = SORT_WILDCARD_NONE;
2545 	      (yyval.input_section_spec).input_sections.sections = NULL;
2546 	      (yyval.input_section_spec).input_sections.exclude = NULL;
2547 	    }
2548 #line 2549 "yyscript.c" /* yacc.c:1648  */
2549     break;
2550 
2551   case 106:
2552 #line 593 "yyscript.y" /* yacc.c:1648  */
2553     {
2554 	      (yyval.input_section_spec).file = (yyvsp[-3].wildcard_section);
2555 	      (yyval.input_section_spec).input_sections = (yyvsp[-1].wildcard_sections);
2556 	    }
2557 #line 2558 "yyscript.c" /* yacc.c:1648  */
2558     break;
2559 
2560   case 107:
2561 #line 602 "yyscript.y" /* yacc.c:1648  */
2562     {
2563 	      (yyval.wildcard_section).name = (yyvsp[0].string);
2564 	      (yyval.wildcard_section).sort = SORT_WILDCARD_NONE;
2565 	    }
2566 #line 2567 "yyscript.c" /* yacc.c:1648  */
2567     break;
2568 
2569   case 108:
2570 #line 607 "yyscript.y" /* yacc.c:1648  */
2571     {
2572 	      (yyval.wildcard_section).name = (yyvsp[-1].string);
2573 	      (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME;
2574 	    }
2575 #line 2576 "yyscript.c" /* yacc.c:1648  */
2576     break;
2577 
2578   case 109:
2579 #line 616 "yyscript.y" /* yacc.c:1648  */
2580     {
2581 	      (yyval.wildcard_sections).sections = script_string_sort_list_add((yyvsp[-2].wildcard_sections).sections, &(yyvsp[0].wildcard_section));
2582 	      (yyval.wildcard_sections).exclude = (yyvsp[-2].wildcard_sections).exclude;
2583 	    }
2584 #line 2585 "yyscript.c" /* yacc.c:1648  */
2585     break;
2586 
2587   case 110:
2588 #line 621 "yyscript.y" /* yacc.c:1648  */
2589     {
2590 	      (yyval.wildcard_sections).sections = script_new_string_sort_list(&(yyvsp[0].wildcard_section));
2591 	      (yyval.wildcard_sections).exclude = NULL;
2592 	    }
2593 #line 2594 "yyscript.c" /* yacc.c:1648  */
2594     break;
2595 
2596   case 111:
2597 #line 626 "yyscript.y" /* yacc.c:1648  */
2598     {
2599 	      (yyval.wildcard_sections).sections = (yyvsp[-5].wildcard_sections).sections;
2600 	      (yyval.wildcard_sections).exclude = script_string_list_append((yyvsp[-5].wildcard_sections).exclude, (yyvsp[-1].string_list));
2601 	    }
2602 #line 2603 "yyscript.c" /* yacc.c:1648  */
2603     break;
2604 
2605   case 112:
2606 #line 631 "yyscript.y" /* yacc.c:1648  */
2607     {
2608 	      (yyval.wildcard_sections).sections = NULL;
2609 	      (yyval.wildcard_sections).exclude = (yyvsp[-1].string_list);
2610 	    }
2611 #line 2612 "yyscript.c" /* yacc.c:1648  */
2612     break;
2613 
2614   case 113:
2615 #line 640 "yyscript.y" /* yacc.c:1648  */
2616     {
2617 	      (yyval.wildcard_section).name = (yyvsp[0].string);
2618 	      (yyval.wildcard_section).sort = SORT_WILDCARD_NONE;
2619 	    }
2620 #line 2621 "yyscript.c" /* yacc.c:1648  */
2621     break;
2622 
2623   case 114:
2624 #line 645 "yyscript.y" /* yacc.c:1648  */
2625     {
2626 	      (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name;
2627 	      switch ((yyvsp[-1].wildcard_section).sort)
2628 		{
2629 		case SORT_WILDCARD_NONE:
2630 		  (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME;
2631 		  break;
2632 		case SORT_WILDCARD_BY_NAME:
2633 		case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT:
2634 		  break;
2635 		case SORT_WILDCARD_BY_ALIGNMENT:
2636 		case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME:
2637 		  (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME_BY_ALIGNMENT;
2638 		  break;
2639 		default:
2640 		  abort();
2641 		}
2642 	    }
2643 #line 2644 "yyscript.c" /* yacc.c:1648  */
2644     break;
2645 
2646   case 115:
2647 #line 664 "yyscript.y" /* yacc.c:1648  */
2648     {
2649 	      (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name;
2650 	      switch ((yyvsp[-1].wildcard_section).sort)
2651 		{
2652 		case SORT_WILDCARD_NONE:
2653 		  (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT;
2654 		  break;
2655 		case SORT_WILDCARD_BY_ALIGNMENT:
2656 		case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME:
2657 		  break;
2658 		case SORT_WILDCARD_BY_NAME:
2659 		case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT:
2660 		  (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT_BY_NAME;
2661 		  break;
2662 		default:
2663 		  abort();
2664 		}
2665 	    }
2666 #line 2667 "yyscript.c" /* yacc.c:1648  */
2667     break;
2668 
2669   case 116:
2670 #line 683 "yyscript.y" /* yacc.c:1648  */
2671     {
2672 	      (yyval.wildcard_section).name = (yyvsp[-1].string);
2673 	      (yyval.wildcard_section).sort = SORT_WILDCARD_BY_INIT_PRIORITY;
2674 	    }
2675 #line 2676 "yyscript.c" /* yacc.c:1648  */
2676     break;
2677 
2678   case 117:
2679 #line 692 "yyscript.y" /* yacc.c:1648  */
2680     { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); }
2681 #line 2682 "yyscript.c" /* yacc.c:1648  */
2682     break;
2683 
2684   case 118:
2685 #line 694 "yyscript.y" /* yacc.c:1648  */
2686     { (yyval.string_list) = script_new_string_list((yyvsp[0].string).value, (yyvsp[0].string).length); }
2687 #line 2688 "yyscript.c" /* yacc.c:1648  */
2688     break;
2689 
2690   case 119:
2691 #line 701 "yyscript.y" /* yacc.c:1648  */
2692     { (yyval.string) = (yyvsp[0].string); }
2693 #line 2694 "yyscript.c" /* yacc.c:1648  */
2694     break;
2695 
2696   case 120:
2697 #line 703 "yyscript.y" /* yacc.c:1648  */
2698     {
2699 	      (yyval.string).value = "*";
2700 	      (yyval.string).length = 1;
2701 	    }
2702 #line 2703 "yyscript.c" /* yacc.c:1648  */
2703     break;
2704 
2705   case 121:
2706 #line 708 "yyscript.y" /* yacc.c:1648  */
2707     {
2708 	      (yyval.string).value = "?";
2709 	      (yyval.string).length = 1;
2710 	    }
2711 #line 2712 "yyscript.c" /* yacc.c:1648  */
2712     break;
2713 
2714   case 124:
2715 #line 723 "yyscript.y" /* yacc.c:1648  */
2716     { script_add_memory(closure, (yyvsp[-9].string).value, (yyvsp[-9].string).length, (yyvsp[-8].integer), (yyvsp[-4].expr), (yyvsp[0].expr)); }
2717 #line 2718 "yyscript.c" /* yacc.c:1648  */
2718     break;
2719 
2720   case 125:
2721 #line 726 "yyscript.y" /* yacc.c:1648  */
2722     { script_include_directive(PARSING_MEMORY_DEF, closure,
2723 				     (yyvsp[0].string).value, (yyvsp[0].string).length); }
2724 #line 2725 "yyscript.c" /* yacc.c:1648  */
2725     break;
2726 
2727   case 127:
2728 #line 734 "yyscript.y" /* yacc.c:1648  */
2729     { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 0); }
2730 #line 2731 "yyscript.c" /* yacc.c:1648  */
2731     break;
2732 
2733   case 128:
2734 #line 737 "yyscript.y" /* yacc.c:1648  */
2735     { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 1); }
2736 #line 2737 "yyscript.c" /* yacc.c:1648  */
2737     break;
2738 
2739   case 129:
2740 #line 739 "yyscript.y" /* yacc.c:1648  */
2741     { (yyval.integer) = 0; }
2742 #line 2743 "yyscript.c" /* yacc.c:1648  */
2743     break;
2744 
2745   case 138:
2746 #line 767 "yyscript.y" /* yacc.c:1648  */
2747     { script_add_phdr(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-2].integer), &(yyvsp[-1].phdr_info)); }
2748 #line 2749 "yyscript.c" /* yacc.c:1648  */
2749     break;
2750 
2751   case 139:
2752 #line 776 "yyscript.y" /* yacc.c:1648  */
2753     { (yyval.integer) = script_phdr_string_to_type(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
2754 #line 2755 "yyscript.c" /* yacc.c:1648  */
2755     break;
2756 
2757   case 140:
2758 #line 778 "yyscript.y" /* yacc.c:1648  */
2759     { (yyval.integer) = (yyvsp[0].integer); }
2760 #line 2761 "yyscript.c" /* yacc.c:1648  */
2761     break;
2762 
2763   case 141:
2764 #line 784 "yyscript.y" /* yacc.c:1648  */
2765     { memset(&(yyval.phdr_info), 0, sizeof(struct Phdr_info)); }
2766 #line 2767 "yyscript.c" /* yacc.c:1648  */
2767     break;
2768 
2769   case 142:
2770 #line 786 "yyscript.y" /* yacc.c:1648  */
2771     {
2772 	      (yyval.phdr_info) = (yyvsp[0].phdr_info);
2773 	      if ((yyvsp[-1].string).length == 7 && strncmp((yyvsp[-1].string).value, "FILEHDR", 7) == 0)
2774 		(yyval.phdr_info).includes_filehdr = 1;
2775 	      else
2776 		yyerror(closure, "PHDRS syntax error");
2777 	    }
2778 #line 2779 "yyscript.c" /* yacc.c:1648  */
2779     break;
2780 
2781   case 143:
2782 #line 794 "yyscript.y" /* yacc.c:1648  */
2783     {
2784 	      (yyval.phdr_info) = (yyvsp[0].phdr_info);
2785 	      (yyval.phdr_info).includes_phdrs = 1;
2786 	    }
2787 #line 2788 "yyscript.c" /* yacc.c:1648  */
2788     break;
2789 
2790   case 144:
2791 #line 799 "yyscript.y" /* yacc.c:1648  */
2792     {
2793 	      (yyval.phdr_info) = (yyvsp[0].phdr_info);
2794 	      if ((yyvsp[-4].string).length == 5 && strncmp((yyvsp[-4].string).value, "FLAGS", 5) == 0)
2795 		{
2796 		  (yyval.phdr_info).is_flags_valid = 1;
2797 		  (yyval.phdr_info).flags = (yyvsp[-2].integer);
2798 		}
2799 	      else
2800 		yyerror(closure, "PHDRS syntax error");
2801 	    }
2802 #line 2803 "yyscript.c" /* yacc.c:1648  */
2803     break;
2804 
2805   case 145:
2806 #line 810 "yyscript.y" /* yacc.c:1648  */
2807     {
2808 	      (yyval.phdr_info) = (yyvsp[0].phdr_info);
2809 	      (yyval.phdr_info).load_address = (yyvsp[-2].expr);
2810 	    }
2811 #line 2812 "yyscript.c" /* yacc.c:1648  */
2812     break;
2813 
2814   case 146:
2815 #line 819 "yyscript.y" /* yacc.c:1648  */
2816     { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); }
2817 #line 2818 "yyscript.c" /* yacc.c:1648  */
2818     break;
2819 
2820   case 147:
2821 #line 821 "yyscript.y" /* yacc.c:1648  */
2822     {
2823 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2824 	      Expression_ptr e = script_exp_binary_add(s, (yyvsp[0].expr));
2825 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2826 	    }
2827 #line 2828 "yyscript.c" /* yacc.c:1648  */
2828     break;
2829 
2830   case 148:
2831 #line 827 "yyscript.y" /* yacc.c:1648  */
2832     {
2833 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2834 	      Expression_ptr e = script_exp_binary_sub(s, (yyvsp[0].expr));
2835 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2836 	    }
2837 #line 2838 "yyscript.c" /* yacc.c:1648  */
2838     break;
2839 
2840   case 149:
2841 #line 833 "yyscript.y" /* yacc.c:1648  */
2842     {
2843 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2844 	      Expression_ptr e = script_exp_binary_mult(s, (yyvsp[0].expr));
2845 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2846 	    }
2847 #line 2848 "yyscript.c" /* yacc.c:1648  */
2848     break;
2849 
2850   case 150:
2851 #line 839 "yyscript.y" /* yacc.c:1648  */
2852     {
2853 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2854 	      Expression_ptr e = script_exp_binary_div(s, (yyvsp[0].expr));
2855 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2856 	    }
2857 #line 2858 "yyscript.c" /* yacc.c:1648  */
2858     break;
2859 
2860   case 151:
2861 #line 845 "yyscript.y" /* yacc.c:1648  */
2862     {
2863 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2864 	      Expression_ptr e = script_exp_binary_lshift(s, (yyvsp[0].expr));
2865 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2866 	    }
2867 #line 2868 "yyscript.c" /* yacc.c:1648  */
2868     break;
2869 
2870   case 152:
2871 #line 851 "yyscript.y" /* yacc.c:1648  */
2872     {
2873 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2874 	      Expression_ptr e = script_exp_binary_rshift(s, (yyvsp[0].expr));
2875 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2876 	    }
2877 #line 2878 "yyscript.c" /* yacc.c:1648  */
2878     break;
2879 
2880   case 153:
2881 #line 857 "yyscript.y" /* yacc.c:1648  */
2882     {
2883 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2884 	      Expression_ptr e = script_exp_binary_bitwise_and(s, (yyvsp[0].expr));
2885 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2886 	    }
2887 #line 2888 "yyscript.c" /* yacc.c:1648  */
2888     break;
2889 
2890   case 154:
2891 #line 863 "yyscript.y" /* yacc.c:1648  */
2892     {
2893 	      Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length);
2894 	      Expression_ptr e = script_exp_binary_bitwise_or(s, (yyvsp[0].expr));
2895 	      script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0);
2896 	    }
2897 #line 2898 "yyscript.c" /* yacc.c:1648  */
2898     break;
2899 
2900   case 155:
2901 #line 869 "yyscript.y" /* yacc.c:1648  */
2902     { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 0, 1); }
2903 #line 2904 "yyscript.c" /* yacc.c:1648  */
2904     break;
2905 
2906   case 156:
2907 #line 871 "yyscript.y" /* yacc.c:1648  */
2908     { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 0); }
2909 #line 2910 "yyscript.c" /* yacc.c:1648  */
2910     break;
2911 
2912   case 157:
2913 #line 873 "yyscript.y" /* yacc.c:1648  */
2914     { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 1); }
2915 #line 2916 "yyscript.c" /* yacc.c:1648  */
2916     break;
2917 
2918   case 158:
2919 #line 878 "yyscript.y" /* yacc.c:1648  */
2920     { script_push_lex_into_expression_mode(closure); }
2921 #line 2922 "yyscript.c" /* yacc.c:1648  */
2922     break;
2923 
2924   case 159:
2925 #line 880 "yyscript.y" /* yacc.c:1648  */
2926     {
2927 	      script_pop_lex_mode(closure);
2928 	      (yyval.expr) = (yyvsp[0].expr);
2929 	    }
2930 #line 2931 "yyscript.c" /* yacc.c:1648  */
2931     break;
2932 
2933   case 160:
2934 #line 889 "yyscript.y" /* yacc.c:1648  */
2935     { (yyval.expr) = (yyvsp[-1].expr); }
2936 #line 2937 "yyscript.c" /* yacc.c:1648  */
2937     break;
2938 
2939   case 161:
2940 #line 891 "yyscript.y" /* yacc.c:1648  */
2941     { (yyval.expr) = script_exp_unary_minus((yyvsp[0].expr)); }
2942 #line 2943 "yyscript.c" /* yacc.c:1648  */
2943     break;
2944 
2945   case 162:
2946 #line 893 "yyscript.y" /* yacc.c:1648  */
2947     { (yyval.expr) = script_exp_unary_logical_not((yyvsp[0].expr)); }
2948 #line 2949 "yyscript.c" /* yacc.c:1648  */
2949     break;
2950 
2951   case 163:
2952 #line 895 "yyscript.y" /* yacc.c:1648  */
2953     { (yyval.expr) = script_exp_unary_bitwise_not((yyvsp[0].expr)); }
2954 #line 2955 "yyscript.c" /* yacc.c:1648  */
2955     break;
2956 
2957   case 164:
2958 #line 897 "yyscript.y" /* yacc.c:1648  */
2959     { (yyval.expr) = (yyvsp[0].expr); }
2960 #line 2961 "yyscript.c" /* yacc.c:1648  */
2961     break;
2962 
2963   case 165:
2964 #line 899 "yyscript.y" /* yacc.c:1648  */
2965     { (yyval.expr) = script_exp_binary_mult((yyvsp[-2].expr), (yyvsp[0].expr)); }
2966 #line 2967 "yyscript.c" /* yacc.c:1648  */
2967     break;
2968 
2969   case 166:
2970 #line 901 "yyscript.y" /* yacc.c:1648  */
2971     { (yyval.expr) = script_exp_binary_div((yyvsp[-2].expr), (yyvsp[0].expr)); }
2972 #line 2973 "yyscript.c" /* yacc.c:1648  */
2973     break;
2974 
2975   case 167:
2976 #line 903 "yyscript.y" /* yacc.c:1648  */
2977     { (yyval.expr) = script_exp_binary_mod((yyvsp[-2].expr), (yyvsp[0].expr)); }
2978 #line 2979 "yyscript.c" /* yacc.c:1648  */
2979     break;
2980 
2981   case 168:
2982 #line 905 "yyscript.y" /* yacc.c:1648  */
2983     { (yyval.expr) = script_exp_binary_add((yyvsp[-2].expr), (yyvsp[0].expr)); }
2984 #line 2985 "yyscript.c" /* yacc.c:1648  */
2985     break;
2986 
2987   case 169:
2988 #line 907 "yyscript.y" /* yacc.c:1648  */
2989     { (yyval.expr) = script_exp_binary_sub((yyvsp[-2].expr), (yyvsp[0].expr)); }
2990 #line 2991 "yyscript.c" /* yacc.c:1648  */
2991     break;
2992 
2993   case 170:
2994 #line 909 "yyscript.y" /* yacc.c:1648  */
2995     { (yyval.expr) = script_exp_binary_lshift((yyvsp[-2].expr), (yyvsp[0].expr)); }
2996 #line 2997 "yyscript.c" /* yacc.c:1648  */
2997     break;
2998 
2999   case 171:
3000 #line 911 "yyscript.y" /* yacc.c:1648  */
3001     { (yyval.expr) = script_exp_binary_rshift((yyvsp[-2].expr), (yyvsp[0].expr)); }
3002 #line 3003 "yyscript.c" /* yacc.c:1648  */
3003     break;
3004 
3005   case 172:
3006 #line 913 "yyscript.y" /* yacc.c:1648  */
3007     { (yyval.expr) = script_exp_binary_eq((yyvsp[-2].expr), (yyvsp[0].expr)); }
3008 #line 3009 "yyscript.c" /* yacc.c:1648  */
3009     break;
3010 
3011   case 173:
3012 #line 915 "yyscript.y" /* yacc.c:1648  */
3013     { (yyval.expr) = script_exp_binary_ne((yyvsp[-2].expr), (yyvsp[0].expr)); }
3014 #line 3015 "yyscript.c" /* yacc.c:1648  */
3015     break;
3016 
3017   case 174:
3018 #line 917 "yyscript.y" /* yacc.c:1648  */
3019     { (yyval.expr) = script_exp_binary_le((yyvsp[-2].expr), (yyvsp[0].expr)); }
3020 #line 3021 "yyscript.c" /* yacc.c:1648  */
3021     break;
3022 
3023   case 175:
3024 #line 919 "yyscript.y" /* yacc.c:1648  */
3025     { (yyval.expr) = script_exp_binary_ge((yyvsp[-2].expr), (yyvsp[0].expr)); }
3026 #line 3027 "yyscript.c" /* yacc.c:1648  */
3027     break;
3028 
3029   case 176:
3030 #line 921 "yyscript.y" /* yacc.c:1648  */
3031     { (yyval.expr) = script_exp_binary_lt((yyvsp[-2].expr), (yyvsp[0].expr)); }
3032 #line 3033 "yyscript.c" /* yacc.c:1648  */
3033     break;
3034 
3035   case 177:
3036 #line 923 "yyscript.y" /* yacc.c:1648  */
3037     { (yyval.expr) = script_exp_binary_gt((yyvsp[-2].expr), (yyvsp[0].expr)); }
3038 #line 3039 "yyscript.c" /* yacc.c:1648  */
3039     break;
3040 
3041   case 178:
3042 #line 925 "yyscript.y" /* yacc.c:1648  */
3043     { (yyval.expr) = script_exp_binary_bitwise_and((yyvsp[-2].expr), (yyvsp[0].expr)); }
3044 #line 3045 "yyscript.c" /* yacc.c:1648  */
3045     break;
3046 
3047   case 179:
3048 #line 927 "yyscript.y" /* yacc.c:1648  */
3049     { (yyval.expr) = script_exp_binary_bitwise_xor((yyvsp[-2].expr), (yyvsp[0].expr)); }
3050 #line 3051 "yyscript.c" /* yacc.c:1648  */
3051     break;
3052 
3053   case 180:
3054 #line 929 "yyscript.y" /* yacc.c:1648  */
3055     { (yyval.expr) = script_exp_binary_bitwise_or((yyvsp[-2].expr), (yyvsp[0].expr)); }
3056 #line 3057 "yyscript.c" /* yacc.c:1648  */
3057     break;
3058 
3059   case 181:
3060 #line 931 "yyscript.y" /* yacc.c:1648  */
3061     { (yyval.expr) = script_exp_binary_logical_and((yyvsp[-2].expr), (yyvsp[0].expr)); }
3062 #line 3063 "yyscript.c" /* yacc.c:1648  */
3063     break;
3064 
3065   case 182:
3066 #line 933 "yyscript.y" /* yacc.c:1648  */
3067     { (yyval.expr) = script_exp_binary_logical_or((yyvsp[-2].expr), (yyvsp[0].expr)); }
3068 #line 3069 "yyscript.c" /* yacc.c:1648  */
3069     break;
3070 
3071   case 183:
3072 #line 935 "yyscript.y" /* yacc.c:1648  */
3073     { (yyval.expr) = script_exp_trinary_cond((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); }
3074 #line 3075 "yyscript.c" /* yacc.c:1648  */
3075     break;
3076 
3077   case 184:
3078 #line 937 "yyscript.y" /* yacc.c:1648  */
3079     { (yyval.expr) = script_exp_integer((yyvsp[0].integer)); }
3080 #line 3081 "yyscript.c" /* yacc.c:1648  */
3081     break;
3082 
3083   case 185:
3084 #line 939 "yyscript.y" /* yacc.c:1648  */
3085     { (yyval.expr) = script_symbol(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); }
3086 #line 3087 "yyscript.c" /* yacc.c:1648  */
3087     break;
3088 
3089   case 186:
3090 #line 941 "yyscript.y" /* yacc.c:1648  */
3091     { (yyval.expr) = script_exp_function_max((yyvsp[-3].expr), (yyvsp[-1].expr)); }
3092 #line 3093 "yyscript.c" /* yacc.c:1648  */
3093     break;
3094 
3095   case 187:
3096 #line 943 "yyscript.y" /* yacc.c:1648  */
3097     { (yyval.expr) = script_exp_function_min((yyvsp[-3].expr), (yyvsp[-1].expr)); }
3098 #line 3099 "yyscript.c" /* yacc.c:1648  */
3099     break;
3100 
3101   case 188:
3102 #line 945 "yyscript.y" /* yacc.c:1648  */
3103     { (yyval.expr) = script_exp_function_defined((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3104 #line 3105 "yyscript.c" /* yacc.c:1648  */
3105     break;
3106 
3107   case 189:
3108 #line 947 "yyscript.y" /* yacc.c:1648  */
3109     { (yyval.expr) = script_exp_function_sizeof_headers(); }
3110 #line 3111 "yyscript.c" /* yacc.c:1648  */
3111     break;
3112 
3113   case 190:
3114 #line 949 "yyscript.y" /* yacc.c:1648  */
3115     { (yyval.expr) = script_exp_function_alignof((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3116 #line 3117 "yyscript.c" /* yacc.c:1648  */
3117     break;
3118 
3119   case 191:
3120 #line 951 "yyscript.y" /* yacc.c:1648  */
3121     { (yyval.expr) = script_exp_function_sizeof((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3122 #line 3123 "yyscript.c" /* yacc.c:1648  */
3123     break;
3124 
3125   case 192:
3126 #line 953 "yyscript.y" /* yacc.c:1648  */
3127     { (yyval.expr) = script_exp_function_addr((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3128 #line 3129 "yyscript.c" /* yacc.c:1648  */
3129     break;
3130 
3131   case 193:
3132 #line 955 "yyscript.y" /* yacc.c:1648  */
3133     { (yyval.expr) = script_exp_function_loadaddr((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3134 #line 3135 "yyscript.c" /* yacc.c:1648  */
3135     break;
3136 
3137   case 194:
3138 #line 957 "yyscript.y" /* yacc.c:1648  */
3139     { (yyval.expr) = script_exp_function_origin(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3140 #line 3141 "yyscript.c" /* yacc.c:1648  */
3141     break;
3142 
3143   case 195:
3144 #line 959 "yyscript.y" /* yacc.c:1648  */
3145     { (yyval.expr) = script_exp_function_length(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3146 #line 3147 "yyscript.c" /* yacc.c:1648  */
3147     break;
3148 
3149   case 196:
3150 #line 961 "yyscript.y" /* yacc.c:1648  */
3151     { (yyval.expr) = script_exp_function_constant((yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3152 #line 3153 "yyscript.c" /* yacc.c:1648  */
3153     break;
3154 
3155   case 197:
3156 #line 963 "yyscript.y" /* yacc.c:1648  */
3157     { (yyval.expr) = script_exp_function_absolute((yyvsp[-1].expr)); }
3158 #line 3159 "yyscript.c" /* yacc.c:1648  */
3159     break;
3160 
3161   case 198:
3162 #line 965 "yyscript.y" /* yacc.c:1648  */
3163     { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); }
3164 #line 3165 "yyscript.c" /* yacc.c:1648  */
3165     break;
3166 
3167   case 199:
3168 #line 967 "yyscript.y" /* yacc.c:1648  */
3169     { (yyval.expr) = script_exp_function_align((yyvsp[-3].expr), (yyvsp[-1].expr)); }
3170 #line 3171 "yyscript.c" /* yacc.c:1648  */
3171     break;
3172 
3173   case 200:
3174 #line 969 "yyscript.y" /* yacc.c:1648  */
3175     { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); }
3176 #line 3177 "yyscript.c" /* yacc.c:1648  */
3177     break;
3178 
3179   case 201:
3180 #line 971 "yyscript.y" /* yacc.c:1648  */
3181     {
3182 	      script_data_segment_align(closure);
3183 	      (yyval.expr) = script_exp_function_data_segment_align((yyvsp[-3].expr), (yyvsp[-1].expr));
3184 	    }
3185 #line 3186 "yyscript.c" /* yacc.c:1648  */
3186     break;
3187 
3188   case 202:
3189 #line 976 "yyscript.y" /* yacc.c:1648  */
3190     {
3191 	      script_data_segment_relro_end(closure);
3192 	      (yyval.expr) = script_exp_function_data_segment_relro_end((yyvsp[-3].expr), (yyvsp[-1].expr));
3193 	    }
3194 #line 3195 "yyscript.c" /* yacc.c:1648  */
3195     break;
3196 
3197   case 203:
3198 #line 981 "yyscript.y" /* yacc.c:1648  */
3199     { (yyval.expr) = script_exp_function_data_segment_end((yyvsp[-1].expr)); }
3200 #line 3201 "yyscript.c" /* yacc.c:1648  */
3201     break;
3202 
3203   case 204:
3204 #line 983 "yyscript.y" /* yacc.c:1648  */
3205     {
3206 	      (yyval.expr) = script_exp_function_segment_start((yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr));
3207 	      /* We need to take note of any SEGMENT_START expressions
3208 		 because they change the behaviour of -Ttext, -Tdata and
3209 		 -Tbss options.  */
3210 	      script_saw_segment_start_expression(closure);
3211 	    }
3212 #line 3213 "yyscript.c" /* yacc.c:1648  */
3213     break;
3214 
3215   case 205:
3216 #line 991 "yyscript.y" /* yacc.c:1648  */
3217     { (yyval.expr) = script_exp_function_assert((yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3218 #line 3219 "yyscript.c" /* yacc.c:1648  */
3219     break;
3220 
3221   case 206:
3222 #line 997 "yyscript.y" /* yacc.c:1648  */
3223     { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); }
3224 #line 3225 "yyscript.c" /* yacc.c:1648  */
3225     break;
3226 
3227   case 210:
3228 #line 1015 "yyscript.y" /* yacc.c:1648  */
3229     { script_new_vers_node (closure, NULL, (yyvsp[-3].versyms)); }
3230 #line 3231 "yyscript.c" /* yacc.c:1648  */
3231     break;
3232 
3233   case 214:
3234 #line 1030 "yyscript.y" /* yacc.c:1648  */
3235     {
3236 	      script_register_vers_node (closure, NULL, 0, (yyvsp[-2].versnode), NULL);
3237 	    }
3238 #line 3239 "yyscript.c" /* yacc.c:1648  */
3239     break;
3240 
3241   case 215:
3242 #line 1034 "yyscript.y" /* yacc.c:1648  */
3243     {
3244 	      script_register_vers_node (closure, (yyvsp[-4].string).value, (yyvsp[-4].string).length, (yyvsp[-2].versnode),
3245 					 NULL);
3246 	    }
3247 #line 3248 "yyscript.c" /* yacc.c:1648  */
3248     break;
3249 
3250   case 216:
3251 #line 1039 "yyscript.y" /* yacc.c:1648  */
3252     {
3253 	      script_register_vers_node (closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length, (yyvsp[-3].versnode), (yyvsp[-1].deplist));
3254 	    }
3255 #line 3256 "yyscript.c" /* yacc.c:1648  */
3256     break;
3257 
3258   case 217:
3259 #line 1046 "yyscript.y" /* yacc.c:1648  */
3260     {
3261 	      (yyval.deplist) = script_add_vers_depend (closure, NULL, (yyvsp[0].string).value, (yyvsp[0].string).length);
3262 	    }
3263 #line 3264 "yyscript.c" /* yacc.c:1648  */
3264     break;
3265 
3266   case 218:
3267 #line 1050 "yyscript.y" /* yacc.c:1648  */
3268     {
3269 	      (yyval.deplist) = script_add_vers_depend (closure, (yyvsp[-1].deplist), (yyvsp[0].string).value, (yyvsp[0].string).length);
3270 	    }
3271 #line 3272 "yyscript.c" /* yacc.c:1648  */
3272     break;
3273 
3274   case 219:
3275 #line 1057 "yyscript.y" /* yacc.c:1648  */
3276     { (yyval.versnode) = script_new_vers_node (closure, NULL, NULL); }
3277 #line 3278 "yyscript.c" /* yacc.c:1648  */
3278     break;
3279 
3280   case 220:
3281 #line 1059 "yyscript.y" /* yacc.c:1648  */
3282     { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); }
3283 #line 3284 "yyscript.c" /* yacc.c:1648  */
3284     break;
3285 
3286   case 221:
3287 #line 1061 "yyscript.y" /* yacc.c:1648  */
3288     { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); }
3289 #line 3290 "yyscript.c" /* yacc.c:1648  */
3290     break;
3291 
3292   case 222:
3293 #line 1063 "yyscript.y" /* yacc.c:1648  */
3294     { (yyval.versnode) = script_new_vers_node (closure, NULL, (yyvsp[-1].versyms)); }
3295 #line 3296 "yyscript.c" /* yacc.c:1648  */
3296     break;
3297 
3298   case 223:
3299 #line 1065 "yyscript.y" /* yacc.c:1648  */
3300     { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-5].versyms), (yyvsp[-1].versyms)); }
3301 #line 3302 "yyscript.c" /* yacc.c:1648  */
3302     break;
3303 
3304   case 224:
3305 #line 1074 "yyscript.y" /* yacc.c:1648  */
3306     {
3307 	      (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value,
3308 					    (yyvsp[0].string).length, 0);
3309 	    }
3310 #line 3311 "yyscript.c" /* yacc.c:1648  */
3311     break;
3312 
3313   case 225:
3314 #line 1079 "yyscript.y" /* yacc.c:1648  */
3315     {
3316 	      (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value,
3317 					    (yyvsp[0].string).length, 1);
3318 	    }
3319 #line 3320 "yyscript.c" /* yacc.c:1648  */
3320     break;
3321 
3322   case 226:
3323 #line 1084 "yyscript.y" /* yacc.c:1648  */
3324     {
3325 	      (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value,
3326                                             (yyvsp[0].string).length, 0);
3327 	    }
3328 #line 3329 "yyscript.c" /* yacc.c:1648  */
3329     break;
3330 
3331   case 227:
3332 #line 1089 "yyscript.y" /* yacc.c:1648  */
3333     {
3334 	      (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value,
3335                                             (yyvsp[0].string).length, 1);
3336 	    }
3337 #line 3338 "yyscript.c" /* yacc.c:1648  */
3338     break;
3339 
3340   case 228:
3341 #line 1095 "yyscript.y" /* yacc.c:1648  */
3342     { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3343 #line 3344 "yyscript.c" /* yacc.c:1648  */
3344     break;
3345 
3346   case 229:
3347 #line 1097 "yyscript.y" /* yacc.c:1648  */
3348     {
3349 	      (yyval.versyms) = (yyvsp[-2].versyms);
3350 	      version_script_pop_lang(closure);
3351 	    }
3352 #line 3353 "yyscript.c" /* yacc.c:1648  */
3353     break;
3354 
3355   case 230:
3356 #line 1105 "yyscript.y" /* yacc.c:1648  */
3357     { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); }
3358 #line 3359 "yyscript.c" /* yacc.c:1648  */
3359     break;
3360 
3361   case 231:
3362 #line 1107 "yyscript.y" /* yacc.c:1648  */
3363     {
3364 	      (yyval.versyms) = script_merge_expressions ((yyvsp[-8].versyms), (yyvsp[-2].versyms));
3365 	      version_script_pop_lang(closure);
3366 	    }
3367 #line 3368 "yyscript.c" /* yacc.c:1648  */
3368     break;
3369 
3370   case 232:
3371 #line 1112 "yyscript.y" /* yacc.c:1648  */
3372     {
3373 	      (yyval.versyms) = script_new_vers_pattern (closure, NULL, "extern",
3374 					    sizeof("extern") - 1, 1);
3375 	    }
3376 #line 3377 "yyscript.c" /* yacc.c:1648  */
3377     break;
3378 
3379   case 233:
3380 #line 1117 "yyscript.y" /* yacc.c:1648  */
3381     {
3382 	      (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), "extern",
3383 					    sizeof("extern") - 1, 1);
3384 	    }
3385 #line 3386 "yyscript.c" /* yacc.c:1648  */
3386     break;
3387 
3388   case 234:
3389 #line 1127 "yyscript.y" /* yacc.c:1648  */
3390     { (yyval.string) = (yyvsp[0].string); }
3391 #line 3392 "yyscript.c" /* yacc.c:1648  */
3392     break;
3393 
3394   case 235:
3395 #line 1129 "yyscript.y" /* yacc.c:1648  */
3396     { (yyval.string) = (yyvsp[0].string); }
3397 #line 3398 "yyscript.c" /* yacc.c:1648  */
3398     break;
3399 
3400 
3401 #line 3402 "yyscript.c" /* yacc.c:1648  */
3402       default: break;
3403     }
3404   /* User semantic actions sometimes alter yychar, and that requires
3405      that yytoken be updated with the new translation.  We take the
3406      approach of translating immediately before every use of yytoken.
3407      One alternative is translating here after every semantic action,
3408      but that translation would be missed if the semantic action invokes
3409      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3410      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3411      incorrect destructor might then be invoked immediately.  In the
3412      case of YYERROR or YYBACKUP, subsequent parser actions might lead
3413      to an incorrect destructor call or verbose syntax error message
3414      before the lookahead is translated.  */
3415   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3416 
3417   YYPOPSTACK (yylen);
3418   yylen = 0;
3419   YY_STACK_PRINT (yyss, yyssp);
3420 
3421   *++yyvsp = yyval;
3422 
3423   /* Now 'shift' the result of the reduction.  Determine what state
3424      that goes to, based on the state we popped back to and the rule
3425      number reduced by.  */
3426 
3427   yyn = yyr1[yyn];
3428 
3429   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3430   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3431     yystate = yytable[yystate];
3432   else
3433     yystate = yydefgoto[yyn - YYNTOKENS];
3434 
3435   goto yynewstate;
3436 
3437 
3438 /*--------------------------------------.
3439 | yyerrlab -- here on detecting error.  |
3440 `--------------------------------------*/
3441 yyerrlab:
3442   /* Make sure we have latest lookahead translation.  See comments at
3443      user semantic actions for why this is necessary.  */
3444   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3445 
3446   /* If not already recovering from an error, report this error.  */
3447   if (!yyerrstatus)
3448     {
3449       ++yynerrs;
3450 #if ! YYERROR_VERBOSE
3451       yyerror (closure, YY_("syntax error"));
3452 #else
3453 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3454                                         yyssp, yytoken)
3455       {
3456         char const *yymsgp = YY_("syntax error");
3457         int yysyntax_error_status;
3458         yysyntax_error_status = YYSYNTAX_ERROR;
3459         if (yysyntax_error_status == 0)
3460           yymsgp = yymsg;
3461         else if (yysyntax_error_status == 1)
3462           {
3463             if (yymsg != yymsgbuf)
3464               YYSTACK_FREE (yymsg);
3465             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3466             if (!yymsg)
3467               {
3468                 yymsg = yymsgbuf;
3469                 yymsg_alloc = sizeof yymsgbuf;
3470                 yysyntax_error_status = 2;
3471               }
3472             else
3473               {
3474                 yysyntax_error_status = YYSYNTAX_ERROR;
3475                 yymsgp = yymsg;
3476               }
3477           }
3478         yyerror (closure, yymsgp);
3479         if (yysyntax_error_status == 2)
3480           goto yyexhaustedlab;
3481       }
3482 # undef YYSYNTAX_ERROR
3483 #endif
3484     }
3485 
3486 
3487 
3488   if (yyerrstatus == 3)
3489     {
3490       /* If just tried and failed to reuse lookahead token after an
3491          error, discard it.  */
3492 
3493       if (yychar <= YYEOF)
3494         {
3495           /* Return failure if at end of input.  */
3496           if (yychar == YYEOF)
3497             YYABORT;
3498         }
3499       else
3500         {
3501           yydestruct ("Error: discarding",
3502                       yytoken, &yylval, closure);
3503           yychar = YYEMPTY;
3504         }
3505     }
3506 
3507   /* Else will try to reuse lookahead token after shifting the error
3508      token.  */
3509   goto yyerrlab1;
3510 
3511 
3512 /*---------------------------------------------------.
3513 | yyerrorlab -- error raised explicitly by YYERROR.  |
3514 `---------------------------------------------------*/
3515 yyerrorlab:
3516 
3517   /* Pacify compilers like GCC when the user code never invokes
3518      YYERROR and the label yyerrorlab therefore never appears in user
3519      code.  */
3520   if (/*CONSTCOND*/ 0)
3521      goto yyerrorlab;
3522 
3523   /* Do not reclaim the symbols of the rule whose action triggered
3524      this YYERROR.  */
3525   YYPOPSTACK (yylen);
3526   yylen = 0;
3527   YY_STACK_PRINT (yyss, yyssp);
3528   yystate = *yyssp;
3529   goto yyerrlab1;
3530 
3531 
3532 /*-------------------------------------------------------------.
3533 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3534 `-------------------------------------------------------------*/
3535 yyerrlab1:
3536   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3537 
3538   for (;;)
3539     {
3540       yyn = yypact[yystate];
3541       if (!yypact_value_is_default (yyn))
3542         {
3543           yyn += YYTERROR;
3544           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3545             {
3546               yyn = yytable[yyn];
3547               if (0 < yyn)
3548                 break;
3549             }
3550         }
3551 
3552       /* Pop the current state because it cannot handle the error token.  */
3553       if (yyssp == yyss)
3554         YYABORT;
3555 
3556 
3557       yydestruct ("Error: popping",
3558                   yystos[yystate], yyvsp, closure);
3559       YYPOPSTACK (1);
3560       yystate = *yyssp;
3561       YY_STACK_PRINT (yyss, yyssp);
3562     }
3563 
3564   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3565   *++yyvsp = yylval;
3566   YY_IGNORE_MAYBE_UNINITIALIZED_END
3567 
3568 
3569   /* Shift the error token.  */
3570   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3571 
3572   yystate = yyn;
3573   goto yynewstate;
3574 
3575 
3576 /*-------------------------------------.
3577 | yyacceptlab -- YYACCEPT comes here.  |
3578 `-------------------------------------*/
3579 yyacceptlab:
3580   yyresult = 0;
3581   goto yyreturn;
3582 
3583 /*-----------------------------------.
3584 | yyabortlab -- YYABORT comes here.  |
3585 `-----------------------------------*/
3586 yyabortlab:
3587   yyresult = 1;
3588   goto yyreturn;
3589 
3590 #if !defined yyoverflow || YYERROR_VERBOSE
3591 /*-------------------------------------------------.
3592 | yyexhaustedlab -- memory exhaustion comes here.  |
3593 `-------------------------------------------------*/
3594 yyexhaustedlab:
3595   yyerror (closure, YY_("memory exhausted"));
3596   yyresult = 2;
3597   /* Fall through.  */
3598 #endif
3599 
3600 yyreturn:
3601   if (yychar != YYEMPTY)
3602     {
3603       /* Make sure we have latest lookahead translation.  See comments at
3604          user semantic actions for why this is necessary.  */
3605       yytoken = YYTRANSLATE (yychar);
3606       yydestruct ("Cleanup: discarding lookahead",
3607                   yytoken, &yylval, closure);
3608     }
3609   /* Do not reclaim the symbols of the rule whose action triggered
3610      this YYABORT or YYACCEPT.  */
3611   YYPOPSTACK (yylen);
3612   YY_STACK_PRINT (yyss, yyssp);
3613   while (yyssp != yyss)
3614     {
3615       yydestruct ("Cleanup: popping",
3616                   yystos[*yyssp], yyvsp, closure);
3617       YYPOPSTACK (1);
3618     }
3619 #ifndef yyoverflow
3620   if (yyss != yyssa)
3621     YYSTACK_FREE (yyss);
3622 #endif
3623 #if YYERROR_VERBOSE
3624   if (yymsg != yymsgbuf)
3625     YYSTACK_FREE (yymsg);
3626 #endif
3627   return yyresult;
3628 }
3629 #line 1151 "yyscript.y" /* yacc.c:1907  */
3630 
3631