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