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
105extern 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
328union 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
363typedef union YYSTYPE YYSTYPE;
364# define YYSTYPE_IS_TRIVIAL 1
365# define YYSTYPE_IS_DECLARED 1
366#endif
367
368
369
370int 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
383typedef YYTYPE_UINT8 yytype_uint8;
384#else
385typedef unsigned char yytype_uint8;
386#endif
387
388#ifdef YYTYPE_INT8
389typedef YYTYPE_INT8 yytype_int8;
390#else
391typedef signed char yytype_int8;
392#endif
393
394#ifdef YYTYPE_UINT16
395typedef YYTYPE_UINT16 yytype_uint16;
396#else
397typedef unsigned short int yytype_uint16;
398#endif
399
400#ifdef YYTYPE_INT16
401typedef YYTYPE_INT16 yytype_int16;
402#else
403typedef 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
542void *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
548void 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.  */
560union 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.  */
639static 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.  */
682static 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.  */
715static 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).  */
761static 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.  */
791static 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.  */
854static 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].  */
915static 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].  */
927static 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.  */
941static 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
1092static 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.  */
1245static 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.  */
1306static 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.  */
1336static 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)                                  \
1379do                                                              \
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    }                                                           \
1393while (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)                        \
1410do {                                            \
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)                    \
1422do {                                                                      \
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
1437static void
1438yy_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
1457static void
1458yy_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
1472static void
1473yy_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)                            \
1485do {                                                            \
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
1495static void
1496yy_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)          \
1516do {                                    \
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.  */
1523int 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.  */
1556static YYSIZE_T
1557yystrlen (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.  */
1573static char *
1574yystpcpy (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.  */
1595static YYSIZE_T
1596yytnamerr (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.  */
1643static int
1644yysyntax_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
1776static void
1777yydestruct (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
1797int
1798yyparse (void* closure)
1799{
1800/* The lookahead symbol.  */
1801int 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.  */
1807YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1808YYSTYPE 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`-----------*/
1951yybackup:
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`-----------------------------------------------------------*/
2017yydefault:
2018  yyn = yydefact[yystate];
2019  if (yyn == 0)
2020    goto yyerrlab;
2021  goto yyreduce;
2022
2023
2024/*-----------------------------.
2025| yyreduce -- Do a reduction.  |
2026`-----------------------------*/
2027yyreduce:
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`--------------------------------------*/
3441yyerrlab:
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`---------------------------------------------------*/
3515yyerrorlab:
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`-------------------------------------------------------------*/
3535yyerrlab1:
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`-------------------------------------*/
3579yyacceptlab:
3580  yyresult = 0;
3581  goto yyreturn;
3582
3583/*-----------------------------------.
3584| yyabortlab -- YYABORT comes here.  |
3585`-----------------------------------*/
3586yyabortlab:
3587  yyresult = 1;
3588  goto yyreturn;
3589
3590#if !defined yyoverflow || YYERROR_VERBOSE
3591/*-------------------------------------------------.
3592| yyexhaustedlab -- memory exhaustion comes here.  |
3593`-------------------------------------------------*/
3594yyexhaustedlab:
3595  yyerror (closure, YY_("memory exhausted"));
3596  yyresult = 2;
3597  /* Fall through.  */
3598#endif
3599
3600yyreturn:
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