bfd/
[binutils.git] / ld / ldgram.c
blob7219b2a6743b338a9112901b612c5bc264822e4d
1 /* A Bison parser, made by GNU Bison 2.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
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 2, or (at your option)
11 any later version.
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.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
47 #define YYBISON 1
49 /* Bison version. */
50 #define YYBISON_VERSION "2.3"
52 /* Skeleton name. */
53 #define YYSKELETON_NAME "yacc.c"
55 /* Pure parsers. */
56 #define YYPURE 0
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
63 /* Tokens. */
64 #ifndef YYTOKENTYPE
65 # define YYTOKENTYPE
66 /* Put the tokens into the symbol table, so that GDB and other debuggers
67 know about them. */
68 enum yytokentype {
69 INT = 258,
70 NAME = 259,
71 LNAME = 260,
72 OREQ = 261,
73 ANDEQ = 262,
74 RSHIFTEQ = 263,
75 LSHIFTEQ = 264,
76 DIVEQ = 265,
77 MULTEQ = 266,
78 MINUSEQ = 267,
79 PLUSEQ = 268,
80 OROR = 269,
81 ANDAND = 270,
82 NE = 271,
83 EQ = 272,
84 GE = 273,
85 LE = 274,
86 RSHIFT = 275,
87 LSHIFT = 276,
88 UNARY = 277,
89 END = 278,
90 ALIGN_K = 279,
91 BLOCK = 280,
92 BIND = 281,
93 QUAD = 282,
94 SQUAD = 283,
95 LONG = 284,
96 SHORT = 285,
97 BYTE = 286,
98 SECTIONS = 287,
99 PHDRS = 288,
100 INSERT_K = 289,
101 AFTER = 290,
102 BEFORE = 291,
103 DATA_SEGMENT_ALIGN = 292,
104 DATA_SEGMENT_RELRO_END = 293,
105 DATA_SEGMENT_END = 294,
106 SORT_BY_NAME = 295,
107 SORT_BY_ALIGNMENT = 296,
108 SIZEOF_HEADERS = 297,
109 OUTPUT_FORMAT = 298,
110 FORCE_COMMON_ALLOCATION = 299,
111 OUTPUT_ARCH = 300,
112 INHIBIT_COMMON_ALLOCATION = 301,
113 SEGMENT_START = 302,
114 INCLUDE = 303,
115 MEMORY = 304,
116 REGION_ALIAS = 305,
117 NOLOAD = 306,
118 DSECT = 307,
119 COPY = 308,
120 INFO = 309,
121 OVERLAY = 310,
122 DEFINED = 311,
123 TARGET_K = 312,
124 SEARCH_DIR = 313,
125 MAP = 314,
126 ENTRY = 315,
127 NEXT = 316,
128 SIZEOF = 317,
129 ALIGNOF = 318,
130 ADDR = 319,
131 LOADADDR = 320,
132 MAX_K = 321,
133 MIN_K = 322,
134 STARTUP = 323,
135 HLL = 324,
136 SYSLIB = 325,
137 FLOAT = 326,
138 NOFLOAT = 327,
139 NOCROSSREFS = 328,
140 ORIGIN = 329,
141 FILL = 330,
142 LENGTH = 331,
143 CREATE_OBJECT_SYMBOLS = 332,
144 INPUT = 333,
145 GROUP = 334,
146 OUTPUT = 335,
147 CONSTRUCTORS = 336,
148 ALIGNMOD = 337,
149 AT = 338,
150 SUBALIGN = 339,
151 PROVIDE = 340,
152 PROVIDE_HIDDEN = 341,
153 AS_NEEDED = 342,
154 CHIP = 343,
155 LIST = 344,
156 SECT = 345,
157 ABSOLUTE = 346,
158 LOAD = 347,
159 NEWLINE = 348,
160 ENDWORD = 349,
161 ORDER = 350,
162 NAMEWORD = 351,
163 ASSERT_K = 352,
164 FORMAT = 353,
165 PUBLIC = 354,
166 DEFSYMEND = 355,
167 BASE = 356,
168 ALIAS = 357,
169 TRUNCATE = 358,
170 REL = 359,
171 INPUT_SCRIPT = 360,
172 INPUT_MRI_SCRIPT = 361,
173 INPUT_DEFSYM = 362,
174 CASE = 363,
175 EXTERN = 364,
176 START = 365,
177 VERS_TAG = 366,
178 VERS_IDENTIFIER = 367,
179 GLOBAL = 368,
180 LOCAL = 369,
181 VERSIONK = 370,
182 INPUT_VERSION_SCRIPT = 371,
183 KEEP = 372,
184 ONLY_IF_RO = 373,
185 ONLY_IF_RW = 374,
186 SPECIAL = 375,
187 EXCLUDE_FILE = 376,
188 CONSTANT = 377,
189 INPUT_DYNAMIC_LIST = 378
191 #endif
192 /* Tokens. */
193 #define INT 258
194 #define NAME 259
195 #define LNAME 260
196 #define OREQ 261
197 #define ANDEQ 262
198 #define RSHIFTEQ 263
199 #define LSHIFTEQ 264
200 #define DIVEQ 265
201 #define MULTEQ 266
202 #define MINUSEQ 267
203 #define PLUSEQ 268
204 #define OROR 269
205 #define ANDAND 270
206 #define NE 271
207 #define EQ 272
208 #define GE 273
209 #define LE 274
210 #define RSHIFT 275
211 #define LSHIFT 276
212 #define UNARY 277
213 #define END 278
214 #define ALIGN_K 279
215 #define BLOCK 280
216 #define BIND 281
217 #define QUAD 282
218 #define SQUAD 283
219 #define LONG 284
220 #define SHORT 285
221 #define BYTE 286
222 #define SECTIONS 287
223 #define PHDRS 288
224 #define INSERT_K 289
225 #define AFTER 290
226 #define BEFORE 291
227 #define DATA_SEGMENT_ALIGN 292
228 #define DATA_SEGMENT_RELRO_END 293
229 #define DATA_SEGMENT_END 294
230 #define SORT_BY_NAME 295
231 #define SORT_BY_ALIGNMENT 296
232 #define SIZEOF_HEADERS 297
233 #define OUTPUT_FORMAT 298
234 #define FORCE_COMMON_ALLOCATION 299
235 #define OUTPUT_ARCH 300
236 #define INHIBIT_COMMON_ALLOCATION 301
237 #define SEGMENT_START 302
238 #define INCLUDE 303
239 #define MEMORY 304
240 #define REGION_ALIAS 305
241 #define NOLOAD 306
242 #define DSECT 307
243 #define COPY 308
244 #define INFO 309
245 #define OVERLAY 310
246 #define DEFINED 311
247 #define TARGET_K 312
248 #define SEARCH_DIR 313
249 #define MAP 314
250 #define ENTRY 315
251 #define NEXT 316
252 #define SIZEOF 317
253 #define ALIGNOF 318
254 #define ADDR 319
255 #define LOADADDR 320
256 #define MAX_K 321
257 #define MIN_K 322
258 #define STARTUP 323
259 #define HLL 324
260 #define SYSLIB 325
261 #define FLOAT 326
262 #define NOFLOAT 327
263 #define NOCROSSREFS 328
264 #define ORIGIN 329
265 #define FILL 330
266 #define LENGTH 331
267 #define CREATE_OBJECT_SYMBOLS 332
268 #define INPUT 333
269 #define GROUP 334
270 #define OUTPUT 335
271 #define CONSTRUCTORS 336
272 #define ALIGNMOD 337
273 #define AT 338
274 #define SUBALIGN 339
275 #define PROVIDE 340
276 #define PROVIDE_HIDDEN 341
277 #define AS_NEEDED 342
278 #define CHIP 343
279 #define LIST 344
280 #define SECT 345
281 #define ABSOLUTE 346
282 #define LOAD 347
283 #define NEWLINE 348
284 #define ENDWORD 349
285 #define ORDER 350
286 #define NAMEWORD 351
287 #define ASSERT_K 352
288 #define FORMAT 353
289 #define PUBLIC 354
290 #define DEFSYMEND 355
291 #define BASE 356
292 #define ALIAS 357
293 #define TRUNCATE 358
294 #define REL 359
295 #define INPUT_SCRIPT 360
296 #define INPUT_MRI_SCRIPT 361
297 #define INPUT_DEFSYM 362
298 #define CASE 363
299 #define EXTERN 364
300 #define START 365
301 #define VERS_TAG 366
302 #define VERS_IDENTIFIER 367
303 #define GLOBAL 368
304 #define LOCAL 369
305 #define VERSIONK 370
306 #define INPUT_VERSION_SCRIPT 371
307 #define KEEP 372
308 #define ONLY_IF_RO 373
309 #define ONLY_IF_RW 374
310 #define SPECIAL 375
311 #define EXCLUDE_FILE 376
312 #define CONSTANT 377
313 #define INPUT_DYNAMIC_LIST 378
318 /* Copy the first part of user declarations. */
319 #line 24 "ldgram.y"
325 #define DONTDECLARE_MALLOC
327 #include "sysdep.h"
328 #include "bfd.h"
329 #include "bfdlink.h"
330 #include "ld.h"
331 #include "ldexp.h"
332 #include "ldver.h"
333 #include "ldlang.h"
334 #include "ldfile.h"
335 #include "ldemul.h"
336 #include "ldmisc.h"
337 #include "ldmain.h"
338 #include "mri.h"
339 #include "ldctor.h"
340 #include "ldlex.h"
342 #ifndef YYDEBUG
343 #define YYDEBUG 1
344 #endif
346 static enum section_type sectype;
347 static lang_memory_region_type *region;
349 bfd_boolean ldgram_had_keep = FALSE;
350 char *ldgram_vers_current_lang = NULL;
352 #define ERROR_NAME_MAX 20
353 static char *error_names[ERROR_NAME_MAX];
354 static int error_index;
355 #define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
356 #define POP_ERROR() error_index--;
359 /* Enabling traces. */
360 #ifndef YYDEBUG
361 # define YYDEBUG 0
362 #endif
364 /* Enabling verbose error messages. */
365 #ifdef YYERROR_VERBOSE
366 # undef YYERROR_VERBOSE
367 # define YYERROR_VERBOSE 1
368 #else
369 # define YYERROR_VERBOSE 0
370 #endif
372 /* Enabling the token table. */
373 #ifndef YYTOKEN_TABLE
374 # define YYTOKEN_TABLE 0
375 #endif
377 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
378 typedef union YYSTYPE
379 #line 62 "ldgram.y"
381 bfd_vma integer;
382 struct big_int
384 bfd_vma integer;
385 char *str;
386 } bigint;
387 fill_type *fill;
388 char *name;
389 const char *cname;
390 struct wildcard_spec wildcard;
391 struct wildcard_list *wildcard_list;
392 struct name_list *name_list;
393 int token;
394 union etree_union *etree;
395 struct phdr_info
397 bfd_boolean filehdr;
398 bfd_boolean phdrs;
399 union etree_union *at;
400 union etree_union *flags;
401 } phdr;
402 struct lang_nocrossref *nocrossref;
403 struct lang_output_section_phdr_list *section_phdr;
404 struct bfd_elf_version_deps *deflist;
405 struct bfd_elf_version_expr *versyms;
406 struct bfd_elf_version_tree *versnode;
408 /* Line 193 of yacc.c. */
409 #line 410 "ldgram.c"
410 YYSTYPE;
411 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
412 # define YYSTYPE_IS_DECLARED 1
413 # define YYSTYPE_IS_TRIVIAL 1
414 #endif
418 /* Copy the second part of user declarations. */
421 /* Line 216 of yacc.c. */
422 #line 423 "ldgram.c"
424 #ifdef short
425 # undef short
426 #endif
428 #ifdef YYTYPE_UINT8
429 typedef YYTYPE_UINT8 yytype_uint8;
430 #else
431 typedef unsigned char yytype_uint8;
432 #endif
434 #ifdef YYTYPE_INT8
435 typedef YYTYPE_INT8 yytype_int8;
436 #elif (defined __STDC__ || defined __C99__FUNC__ \
437 || defined __cplusplus || defined _MSC_VER)
438 typedef signed char yytype_int8;
439 #else
440 typedef short int yytype_int8;
441 #endif
443 #ifdef YYTYPE_UINT16
444 typedef YYTYPE_UINT16 yytype_uint16;
445 #else
446 typedef unsigned short int yytype_uint16;
447 #endif
449 #ifdef YYTYPE_INT16
450 typedef YYTYPE_INT16 yytype_int16;
451 #else
452 typedef short int yytype_int16;
453 #endif
455 #ifndef YYSIZE_T
456 # ifdef __SIZE_TYPE__
457 # define YYSIZE_T __SIZE_TYPE__
458 # elif defined size_t
459 # define YYSIZE_T size_t
460 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
461 || defined __cplusplus || defined _MSC_VER)
462 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
463 # define YYSIZE_T size_t
464 # else
465 # define YYSIZE_T unsigned int
466 # endif
467 #endif
469 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
471 #ifndef YY_
472 # if defined YYENABLE_NLS && YYENABLE_NLS
473 # if ENABLE_NLS
474 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
475 # define YY_(msgid) dgettext ("bison-runtime", msgid)
476 # endif
477 # endif
478 # ifndef YY_
479 # define YY_(msgid) msgid
480 # endif
481 #endif
483 /* Suppress unused-variable warnings by "using" E. */
484 #if ! defined lint || defined __GNUC__
485 # define YYUSE(e) ((void) (e))
486 #else
487 # define YYUSE(e) /* empty */
488 #endif
490 /* Identity function, used to suppress warnings about constant conditions. */
491 #ifndef lint
492 # define YYID(n) (n)
493 #else
494 #if (defined __STDC__ || defined __C99__FUNC__ \
495 || defined __cplusplus || defined _MSC_VER)
496 static int
497 YYID (int i)
498 #else
499 static int
500 YYID (i)
501 int i;
502 #endif
504 return i;
506 #endif
508 #if ! defined yyoverflow || YYERROR_VERBOSE
510 /* The parser invokes alloca or malloc; define the necessary symbols. */
512 # ifdef YYSTACK_USE_ALLOCA
513 # if YYSTACK_USE_ALLOCA
514 # ifdef __GNUC__
515 # define YYSTACK_ALLOC __builtin_alloca
516 # elif defined __BUILTIN_VA_ARG_INCR
517 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
518 # elif defined _AIX
519 # define YYSTACK_ALLOC __alloca
520 # elif defined _MSC_VER
521 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
522 # define alloca _alloca
523 # else
524 # define YYSTACK_ALLOC alloca
525 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
526 || defined __cplusplus || defined _MSC_VER)
527 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
528 # ifndef _STDLIB_H
529 # define _STDLIB_H 1
530 # endif
531 # endif
532 # endif
533 # endif
534 # endif
536 # ifdef YYSTACK_ALLOC
537 /* Pacify GCC's `empty if-body' warning. */
538 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
539 # ifndef YYSTACK_ALLOC_MAXIMUM
540 /* The OS might guarantee only one guard page at the bottom of the stack,
541 and a page size can be as small as 4096 bytes. So we cannot safely
542 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
543 to allow for a few compiler-allocated temporary stack slots. */
544 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
545 # endif
546 # else
547 # define YYSTACK_ALLOC YYMALLOC
548 # define YYSTACK_FREE YYFREE
549 # ifndef YYSTACK_ALLOC_MAXIMUM
550 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
551 # endif
552 # if (defined __cplusplus && ! defined _STDLIB_H \
553 && ! ((defined YYMALLOC || defined malloc) \
554 && (defined YYFREE || defined free)))
555 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
556 # ifndef _STDLIB_H
557 # define _STDLIB_H 1
558 # endif
559 # endif
560 # ifndef YYMALLOC
561 # define YYMALLOC malloc
562 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
563 || defined __cplusplus || defined _MSC_VER)
564 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
565 # endif
566 # endif
567 # ifndef YYFREE
568 # define YYFREE free
569 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
570 || defined __cplusplus || defined _MSC_VER)
571 void free (void *); /* INFRINGES ON USER NAME SPACE */
572 # endif
573 # endif
574 # endif
575 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
578 #if (! defined yyoverflow \
579 && (! defined __cplusplus \
580 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
582 /* A type that is properly aligned for any stack member. */
583 union yyalloc
585 yytype_int16 yyss;
586 YYSTYPE yyvs;
589 /* The size of the maximum gap between one aligned stack and the next. */
590 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
592 /* The size of an array large to enough to hold all stacks, each with
593 N elements. */
594 # define YYSTACK_BYTES(N) \
595 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
596 + YYSTACK_GAP_MAXIMUM)
598 /* Copy COUNT objects from FROM to TO. The source and destination do
599 not overlap. */
600 # ifndef YYCOPY
601 # if defined __GNUC__ && 1 < __GNUC__
602 # define YYCOPY(To, From, Count) \
603 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
604 # else
605 # define YYCOPY(To, From, Count) \
606 do \
608 YYSIZE_T yyi; \
609 for (yyi = 0; yyi < (Count); yyi++) \
610 (To)[yyi] = (From)[yyi]; \
612 while (YYID (0))
613 # endif
614 # endif
616 /* Relocate STACK from its old location to the new one. The
617 local variables YYSIZE and YYSTACKSIZE give the old and new number of
618 elements in the stack, and YYPTR gives the new location of the
619 stack. Advance YYPTR to a properly aligned location for the next
620 stack. */
621 # define YYSTACK_RELOCATE(Stack) \
622 do \
624 YYSIZE_T yynewbytes; \
625 YYCOPY (&yyptr->Stack, Stack, yysize); \
626 Stack = &yyptr->Stack; \
627 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
628 yyptr += yynewbytes / sizeof (*yyptr); \
630 while (YYID (0))
632 #endif
634 /* YYFINAL -- State number of the termination state. */
635 #define YYFINAL 17
636 /* YYLAST -- Last index in YYTABLE. */
637 #define YYLAST 1838
639 /* YYNTOKENS -- Number of terminals. */
640 #define YYNTOKENS 147
641 /* YYNNTS -- Number of nonterminals. */
642 #define YYNNTS 126
643 /* YYNRULES -- Number of rules. */
644 #define YYNRULES 356
645 /* YYNRULES -- Number of states. */
646 #define YYNSTATES 763
648 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
649 #define YYUNDEFTOK 2
650 #define YYMAXUTOK 378
652 #define YYTRANSLATE(YYX) \
653 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
655 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
656 static const yytype_uint8 yytranslate[] =
658 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
661 2, 2, 2, 145, 2, 2, 2, 34, 21, 2,
662 37, 142, 32, 30, 140, 31, 2, 33, 2, 2,
663 2, 2, 2, 2, 2, 2, 2, 2, 16, 141,
664 24, 6, 25, 15, 2, 2, 2, 2, 2, 2,
665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
667 2, 143, 2, 144, 20, 2, 2, 2, 2, 2,
668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
670 2, 2, 2, 56, 19, 57, 146, 2, 2, 2,
671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
679 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
683 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
684 5, 7, 8, 9, 10, 11, 12, 13, 14, 17,
685 18, 22, 23, 26, 27, 28, 29, 35, 36, 38,
686 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
687 49, 50, 51, 52, 53, 54, 55, 58, 59, 60,
688 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
689 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
690 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
691 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
692 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
693 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
694 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
695 131, 132, 133, 134, 135, 136, 137, 138, 139
698 #if YYDEBUG
699 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
700 YYRHS. */
701 static const yytype_uint16 yyprhs[] =
703 0, 0, 3, 6, 9, 12, 15, 18, 20, 21,
704 26, 27, 30, 34, 35, 38, 43, 45, 47, 50,
705 52, 57, 62, 66, 69, 74, 78, 83, 88, 93,
706 98, 103, 106, 109, 112, 117, 122, 125, 128, 131,
707 134, 135, 141, 144, 145, 149, 152, 153, 155, 159,
708 161, 165, 166, 168, 172, 173, 176, 178, 181, 185,
709 186, 189, 192, 193, 195, 197, 199, 201, 203, 205,
710 207, 209, 211, 213, 218, 223, 228, 233, 242, 247,
711 249, 251, 256, 257, 263, 268, 269, 275, 280, 285,
712 289, 293, 300, 302, 306, 309, 311, 315, 318, 319,
713 325, 326, 334, 335, 342, 347, 350, 353, 354, 359,
714 362, 363, 371, 373, 375, 377, 379, 385, 390, 395,
715 403, 411, 419, 427, 436, 439, 441, 445, 447, 449,
716 453, 458, 460, 461, 467, 470, 472, 474, 476, 481,
717 483, 488, 493, 494, 503, 504, 510, 513, 515, 516,
718 518, 520, 522, 524, 526, 528, 530, 533, 534, 536,
719 538, 540, 542, 544, 546, 548, 550, 552, 554, 558,
720 562, 569, 576, 578, 579, 584, 586, 587, 591, 593,
721 594, 602, 603, 609, 613, 617, 618, 622, 624, 627,
722 629, 632, 637, 642, 646, 650, 652, 657, 661, 662,
723 664, 666, 667, 670, 674, 675, 678, 681, 685, 690,
724 693, 696, 699, 703, 707, 711, 715, 719, 723, 727,
725 731, 735, 739, 743, 747, 751, 755, 759, 763, 769,
726 773, 777, 782, 784, 786, 791, 796, 801, 806, 811,
727 816, 821, 828, 835, 842, 847, 854, 859, 861, 868,
728 875, 882, 887, 892, 896, 897, 902, 903, 908, 909,
729 914, 915, 917, 919, 921, 922, 923, 924, 925, 926,
730 927, 947, 948, 949, 950, 951, 952, 971, 972, 973,
731 981, 982, 988, 990, 992, 994, 996, 998, 1002, 1003,
732 1006, 1010, 1013, 1020, 1031, 1034, 1036, 1037, 1039, 1042,
733 1043, 1044, 1048, 1049, 1050, 1051, 1052, 1064, 1069, 1070,
734 1073, 1074, 1075, 1082, 1084, 1085, 1089, 1095, 1096, 1100,
735 1101, 1104, 1106, 1109, 1114, 1117, 1118, 1121, 1122, 1128,
736 1130, 1133, 1138, 1144, 1151, 1153, 1156, 1157, 1160, 1165,
737 1170, 1179, 1181, 1183, 1187, 1191, 1192, 1202, 1203, 1211,
738 1213, 1217, 1219, 1223, 1225, 1229, 1230
741 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
742 static const yytype_int16 yyrhs[] =
744 148, 0, -1, 121, 164, -1, 122, 152, -1, 132,
745 261, -1, 139, 256, -1, 123, 150, -1, 4, -1,
746 -1, 151, 4, 6, 217, -1, -1, 153, 154, -1,
747 154, 155, 109, -1, -1, 104, 217, -1, 104, 217,
748 140, 217, -1, 4, -1, 105, -1, 111, 157, -1,
749 110, -1, 115, 4, 6, 217, -1, 115, 4, 140,
750 217, -1, 115, 4, 217, -1, 114, 4, -1, 106,
751 4, 140, 217, -1, 106, 4, 217, -1, 106, 4,
752 6, 217, -1, 38, 4, 6, 217, -1, 38, 4,
753 140, 217, -1, 98, 4, 6, 217, -1, 98, 4,
754 140, 217, -1, 107, 159, -1, 108, 158, -1, 112,
755 4, -1, 118, 4, 140, 4, -1, 118, 4, 140,
756 3, -1, 117, 217, -1, 119, 3, -1, 124, 160,
757 -1, 125, 161, -1, -1, 64, 149, 156, 154, 36,
758 -1, 126, 4, -1, -1, 157, 140, 4, -1, 157,
759 4, -1, -1, 4, -1, 158, 140, 4, -1, 4,
760 -1, 159, 140, 4, -1, -1, 4, -1, 160, 140,
761 4, -1, -1, 162, 163, -1, 4, -1, 163, 4,
762 -1, 163, 140, 4, -1, -1, 165, 166, -1, 166,
763 167, -1, -1, 197, -1, 174, -1, 248, -1, 208,
764 -1, 209, -1, 211, -1, 213, -1, 176, -1, 263,
765 -1, 141, -1, 73, 37, 4, 142, -1, 74, 37,
766 149, 142, -1, 96, 37, 149, 142, -1, 59, 37,
767 4, 142, -1, 59, 37, 4, 140, 4, 140, 4,
768 142, -1, 61, 37, 4, 142, -1, 60, -1, 62,
769 -1, 94, 37, 170, 142, -1, -1, 95, 168, 37,
770 170, 142, -1, 75, 37, 149, 142, -1, -1, 64,
771 149, 169, 166, 36, -1, 89, 37, 214, 142, -1,
772 125, 37, 161, 142, -1, 48, 49, 4, -1, 48,
773 50, 4, -1, 66, 37, 4, 140, 4, 142, -1,
774 4, -1, 170, 140, 4, -1, 170, 4, -1, 5,
775 -1, 170, 140, 5, -1, 170, 5, -1, -1, 103,
776 37, 171, 170, 142, -1, -1, 170, 140, 103, 37,
777 172, 170, 142, -1, -1, 170, 103, 37, 173, 170,
778 142, -1, 46, 56, 175, 57, -1, 175, 223, -1,
779 175, 176, -1, -1, 76, 37, 4, 142, -1, 195,
780 194, -1, -1, 113, 177, 37, 217, 140, 4, 142,
781 -1, 4, -1, 32, -1, 15, -1, 178, -1, 137,
782 37, 180, 142, 178, -1, 54, 37, 178, 142, -1,
783 55, 37, 178, 142, -1, 54, 37, 55, 37, 178,
784 142, 142, -1, 54, 37, 54, 37, 178, 142, 142,
785 -1, 55, 37, 54, 37, 178, 142, 142, -1, 55,
786 37, 55, 37, 178, 142, 142, -1, 54, 37, 137,
787 37, 180, 142, 178, 142, -1, 180, 178, -1, 178,
788 -1, 181, 196, 179, -1, 179, -1, 4, -1, 143,
789 181, 144, -1, 179, 37, 181, 142, -1, 182, -1,
790 -1, 133, 37, 184, 182, 142, -1, 195, 194, -1,
791 93, -1, 141, -1, 97, -1, 54, 37, 97, 142,
792 -1, 183, -1, 190, 37, 215, 142, -1, 91, 37,
793 191, 142, -1, -1, 113, 186, 37, 217, 140, 4,
794 142, 194, -1, -1, 64, 149, 187, 189, 36, -1,
795 188, 185, -1, 185, -1, -1, 188, -1, 41, -1,
796 42, -1, 43, -1, 44, -1, 45, -1, 215, -1,
797 6, 191, -1, -1, 14, -1, 13, -1, 12, -1,
798 11, -1, 10, -1, 9, -1, 8, -1, 7, -1,
799 141, -1, 140, -1, 4, 6, 215, -1, 4, 193,
800 215, -1, 101, 37, 4, 6, 215, 142, -1, 102,
801 37, 4, 6, 215, 142, -1, 140, -1, -1, 65,
802 56, 198, 57, -1, 199, -1, -1, 199, 196, 200,
803 -1, 200, -1, -1, 4, 201, 205, 16, 203, 196,
804 204, -1, -1, 64, 149, 202, 198, 36, -1, 90,
805 6, 215, -1, 92, 6, 215, -1, -1, 37, 206,
806 142, -1, 207, -1, 206, 207, -1, 4, -1, 145,
807 4, -1, 84, 37, 149, 142, -1, 85, 37, 210,
808 142, -1, 85, 37, 142, -1, 210, 196, 149, -1,
809 149, -1, 86, 37, 212, 142, -1, 212, 196, 149,
810 -1, -1, 87, -1, 88, -1, -1, 4, 214, -1,
811 4, 140, 214, -1, -1, 216, 217, -1, 31, 217,
812 -1, 37, 217, 142, -1, 77, 37, 217, 142, -1,
813 145, 217, -1, 30, 217, -1, 146, 217, -1, 217,
814 32, 217, -1, 217, 33, 217, -1, 217, 34, 217,
815 -1, 217, 30, 217, -1, 217, 31, 217, -1, 217,
816 29, 217, -1, 217, 28, 217, -1, 217, 23, 217,
817 -1, 217, 22, 217, -1, 217, 27, 217, -1, 217,
818 26, 217, -1, 217, 24, 217, -1, 217, 25, 217,
819 -1, 217, 21, 217, -1, 217, 20, 217, -1, 217,
820 19, 217, -1, 217, 15, 217, 16, 217, -1, 217,
821 18, 217, -1, 217, 17, 217, -1, 72, 37, 4,
822 142, -1, 3, -1, 58, -1, 79, 37, 4, 142,
823 -1, 78, 37, 4, 142, -1, 80, 37, 4, 142,
824 -1, 81, 37, 4, 142, -1, 138, 37, 4, 142,
825 -1, 107, 37, 217, 142, -1, 38, 37, 217, 142,
826 -1, 38, 37, 217, 140, 217, 142, -1, 51, 37,
827 217, 140, 217, 142, -1, 52, 37, 217, 140, 217,
828 142, -1, 53, 37, 217, 142, -1, 63, 37, 4,
829 140, 217, 142, -1, 39, 37, 217, 142, -1, 4,
830 -1, 82, 37, 217, 140, 217, 142, -1, 83, 37,
831 217, 140, 217, 142, -1, 113, 37, 217, 140, 4,
832 142, -1, 90, 37, 4, 142, -1, 92, 37, 4,
833 142, -1, 99, 25, 4, -1, -1, 99, 37, 217,
834 142, -1, -1, 38, 37, 217, 142, -1, -1, 100,
835 37, 217, 142, -1, -1, 134, -1, 135, -1, 136,
836 -1, -1, -1, -1, -1, -1, -1, 4, 224, 239,
837 219, 220, 221, 225, 222, 56, 226, 189, 57, 227,
838 242, 218, 243, 192, 228, 196, -1, -1, -1, -1,
839 -1, -1, 71, 229, 240, 241, 219, 221, 230, 56,
840 231, 244, 57, 232, 242, 218, 243, 192, 233, 196,
841 -1, -1, -1, 95, 234, 239, 235, 56, 175, 57,
842 -1, -1, 64, 149, 236, 175, 36, -1, 67, -1,
843 68, -1, 69, -1, 70, -1, 71, -1, 37, 237,
844 142, -1, -1, 37, 142, -1, 217, 238, 16, -1,
845 238, 16, -1, 40, 37, 217, 142, 238, 16, -1,
846 40, 37, 217, 142, 39, 37, 217, 142, 238, 16,
847 -1, 217, 16, -1, 16, -1, -1, 89, -1, 25,
848 4, -1, -1, -1, 243, 16, 4, -1, -1, -1,
849 -1, -1, 244, 4, 245, 56, 189, 57, 246, 243,
850 192, 247, 196, -1, 47, 56, 249, 57, -1, -1,
851 249, 250, -1, -1, -1, 4, 251, 253, 254, 252,
852 141, -1, 217, -1, -1, 4, 255, 254, -1, 99,
853 37, 217, 142, 254, -1, -1, 37, 217, 142, -1,
854 -1, 257, 258, -1, 259, -1, 258, 259, -1, 56,
855 260, 57, 141, -1, 269, 141, -1, -1, 262, 265,
856 -1, -1, 264, 131, 56, 265, 57, -1, 266, -1,
857 265, 266, -1, 56, 268, 57, 141, -1, 127, 56,
858 268, 57, 141, -1, 127, 56, 268, 57, 267, 141,
859 -1, 127, -1, 267, 127, -1, -1, 269, 141, -1,
860 129, 16, 269, 141, -1, 130, 16, 269, 141, -1,
861 129, 16, 269, 141, 130, 16, 269, 141, -1, 128,
862 -1, 4, -1, 269, 141, 128, -1, 269, 141, 4,
863 -1, -1, 269, 141, 125, 4, 56, 270, 269, 272,
864 57, -1, -1, 125, 4, 56, 271, 269, 272, 57,
865 -1, 129, -1, 269, 141, 129, -1, 130, -1, 269,
866 141, 130, -1, 125, -1, 269, 141, 125, -1, -1,
867 141, -1
870 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
871 static const yytype_uint16 yyrline[] =
873 0, 162, 162, 163, 164, 165, 166, 170, 174, 174,
874 184, 184, 197, 198, 202, 203, 204, 207, 210, 211,
875 212, 214, 216, 218, 220, 222, 224, 226, 228, 230,
876 232, 234, 235, 236, 238, 240, 242, 244, 246, 247,
877 249, 248, 252, 254, 258, 259, 260, 264, 266, 270,
878 272, 277, 278, 279, 284, 284, 289, 291, 293, 298,
879 298, 304, 305, 310, 311, 312, 313, 314, 315, 316,
880 317, 318, 319, 320, 322, 324, 326, 329, 331, 333,
881 335, 337, 339, 338, 342, 345, 344, 348, 352, 353,
882 355, 357, 362, 365, 368, 371, 374, 377, 381, 380,
883 385, 384, 389, 388, 395, 399, 400, 401, 405, 407,
884 408, 408, 416, 420, 424, 431, 437, 443, 449, 455,
885 461, 467, 473, 479, 488, 497, 508, 517, 528, 536,
886 540, 547, 549, 548, 555, 556, 560, 561, 566, 571,
887 572, 577, 581, 581, 585, 584, 591, 592, 595, 597,
888 601, 603, 605, 607, 609, 614, 621, 623, 627, 629,
889 631, 633, 635, 637, 639, 641, 646, 646, 651, 655,
890 663, 667, 675, 675, 679, 682, 682, 685, 686, 691,
891 690, 696, 695, 702, 710, 718, 719, 723, 724, 728,
892 730, 735, 740, 741, 746, 748, 754, 756, 758, 762,
893 764, 770, 773, 782, 793, 793, 799, 801, 803, 805,
894 807, 809, 812, 814, 816, 818, 820, 822, 824, 826,
895 828, 830, 832, 834, 836, 838, 840, 842, 844, 846,
896 848, 850, 852, 854, 857, 859, 861, 863, 865, 867,
897 869, 871, 873, 875, 877, 879, 888, 890, 892, 894,
898 896, 898, 900, 906, 907, 911, 912, 916, 917, 921,
899 922, 926, 927, 928, 929, 932, 936, 939, 945, 947,
900 932, 954, 956, 958, 963, 965, 953, 975, 977, 975,
901 983, 982, 989, 990, 991, 992, 993, 997, 998, 999,
902 1003, 1004, 1009, 1010, 1015, 1016, 1021, 1022, 1027, 1029,
903 1034, 1037, 1050, 1054, 1059, 1061, 1052, 1069, 1072, 1074,
904 1078, 1079, 1078, 1088, 1133, 1136, 1148, 1157, 1160, 1167,
905 1167, 1179, 1180, 1184, 1188, 1197, 1197, 1211, 1211, 1221,
906 1222, 1226, 1230, 1234, 1241, 1245, 1253, 1256, 1260, 1264,
907 1268, 1275, 1279, 1283, 1287, 1292, 1291, 1305, 1304, 1314,
908 1318, 1322, 1326, 1330, 1334, 1340, 1342
910 #endif
912 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
913 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
914 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
915 static const char *const yytname[] =
917 "$end", "error", "$undefined", "INT", "NAME", "LNAME", "'='", "OREQ",
918 "ANDEQ", "RSHIFTEQ", "LSHIFTEQ", "DIVEQ", "MULTEQ", "MINUSEQ", "PLUSEQ",
919 "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "NE", "EQ", "'<'",
920 "'>'", "GE", "LE", "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'",
921 "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD", "SQUAD",
922 "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "INSERT_K", "AFTER",
923 "BEFORE", "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_RELRO_END",
924 "DATA_SEGMENT_END", "SORT_BY_NAME", "SORT_BY_ALIGNMENT", "'{'", "'}'",
925 "SIZEOF_HEADERS", "OUTPUT_FORMAT", "FORCE_COMMON_ALLOCATION",
926 "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION", "SEGMENT_START", "INCLUDE",
927 "MEMORY", "REGION_ALIAS", "NOLOAD", "DSECT", "COPY", "INFO", "OVERLAY",
928 "DEFINED", "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT", "SIZEOF",
929 "ALIGNOF", "ADDR", "LOADADDR", "MAX_K", "MIN_K", "STARTUP", "HLL",
930 "SYSLIB", "FLOAT", "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL", "LENGTH",
931 "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", "CONSTRUCTORS",
932 "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE", "PROVIDE_HIDDEN", "AS_NEEDED",
933 "CHIP", "LIST", "SECT", "ABSOLUTE", "LOAD", "NEWLINE", "ENDWORD",
934 "ORDER", "NAMEWORD", "ASSERT_K", "FORMAT", "PUBLIC", "DEFSYMEND", "BASE",
935 "ALIAS", "TRUNCATE", "REL", "INPUT_SCRIPT", "INPUT_MRI_SCRIPT",
936 "INPUT_DEFSYM", "CASE", "EXTERN", "START", "VERS_TAG", "VERS_IDENTIFIER",
937 "GLOBAL", "LOCAL", "VERSIONK", "INPUT_VERSION_SCRIPT", "KEEP",
938 "ONLY_IF_RO", "ONLY_IF_RW", "SPECIAL", "EXCLUDE_FILE", "CONSTANT",
939 "INPUT_DYNAMIC_LIST", "','", "';'", "')'", "'['", "']'", "'!'", "'~'",
940 "$accept", "file", "filename", "defsym_expr", "@1", "mri_script_file",
941 "@2", "mri_script_lines", "mri_script_command", "@3", "ordernamelist",
942 "mri_load_name_list", "mri_abs_name_list", "casesymlist",
943 "extern_name_list", "@4", "extern_name_list_body", "script_file", "@5",
944 "ifile_list", "ifile_p1", "@6", "@7", "input_list", "@8", "@9", "@10",
945 "sections", "sec_or_group_p1", "statement_anywhere", "@11",
946 "wildcard_name", "wildcard_spec", "exclude_name_list", "file_NAME_list",
947 "input_section_spec_no_keep", "input_section_spec", "@12", "statement",
948 "@13", "@14", "statement_list", "statement_list_opt", "length",
949 "fill_exp", "fill_opt", "assign_op", "end", "assignment", "opt_comma",
950 "memory", "memory_spec_list_opt", "memory_spec_list", "memory_spec",
951 "@15", "@16", "origin_spec", "length_spec", "attributes_opt",
952 "attributes_list", "attributes_string", "startup", "high_level_library",
953 "high_level_library_NAME_list", "low_level_library",
954 "low_level_library_NAME_list", "floating_point_support",
955 "nocrossref_list", "mustbe_exp", "@17", "exp", "memspec_at_opt",
956 "opt_at", "opt_align", "opt_subalign", "sect_constraint", "section",
957 "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25", "@26", "@27",
958 "@28", "@29", "@30", "type", "atype", "opt_exp_with_type",
959 "opt_exp_without_type", "opt_nocrossrefs", "memspec_opt", "phdr_opt",
960 "overlay_section", "@31", "@32", "@33", "phdrs", "phdr_list", "phdr",
961 "@34", "@35", "phdr_type", "phdr_qualifiers", "phdr_val",
962 "dynamic_list_file", "@36", "dynamic_list_nodes", "dynamic_list_node",
963 "dynamic_list_tag", "version_script_file", "@37", "version", "@38",
964 "vers_nodes", "vers_node", "verdep", "vers_tag", "vers_defns", "@39",
965 "@40", "opt_semicolon", 0
967 #endif
969 # ifdef YYPRINT
970 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
971 token YYLEX-NUM. */
972 static const yytype_uint16 yytoknum[] =
974 0, 256, 257, 258, 259, 260, 61, 261, 262, 263,
975 264, 265, 266, 267, 268, 63, 58, 269, 270, 124,
976 94, 38, 271, 272, 60, 62, 273, 274, 275, 276,
977 43, 45, 42, 47, 37, 277, 278, 40, 279, 280,
978 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
979 291, 292, 293, 294, 295, 296, 123, 125, 297, 298,
980 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
981 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
982 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
983 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
984 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
985 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
986 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
987 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
988 44, 59, 41, 91, 93, 33, 126
990 # endif
992 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
993 static const yytype_uint16 yyr1[] =
995 0, 147, 148, 148, 148, 148, 148, 149, 151, 150,
996 153, 152, 154, 154, 155, 155, 155, 155, 155, 155,
997 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
998 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
999 156, 155, 155, 155, 157, 157, 157, 158, 158, 159,
1000 159, 160, 160, 160, 162, 161, 163, 163, 163, 165,
1001 164, 166, 166, 167, 167, 167, 167, 167, 167, 167,
1002 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1003 167, 167, 168, 167, 167, 169, 167, 167, 167, 167,
1004 167, 167, 170, 170, 170, 170, 170, 170, 171, 170,
1005 172, 170, 173, 170, 174, 175, 175, 175, 176, 176,
1006 177, 176, 178, 178, 178, 179, 179, 179, 179, 179,
1007 179, 179, 179, 179, 180, 180, 181, 181, 182, 182,
1008 182, 183, 184, 183, 185, 185, 185, 185, 185, 185,
1009 185, 185, 186, 185, 187, 185, 188, 188, 189, 189,
1010 190, 190, 190, 190, 190, 191, 192, 192, 193, 193,
1011 193, 193, 193, 193, 193, 193, 194, 194, 195, 195,
1012 195, 195, 196, 196, 197, 198, 198, 199, 199, 201,
1013 200, 202, 200, 203, 204, 205, 205, 206, 206, 207,
1014 207, 208, 209, 209, 210, 210, 211, 212, 212, 213,
1015 213, 214, 214, 214, 216, 215, 217, 217, 217, 217,
1016 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
1017 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
1018 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
1019 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
1020 217, 217, 217, 218, 218, 219, 219, 220, 220, 221,
1021 221, 222, 222, 222, 222, 224, 225, 226, 227, 228,
1022 223, 229, 230, 231, 232, 233, 223, 234, 235, 223,
1023 236, 223, 237, 237, 237, 237, 237, 238, 238, 238,
1024 239, 239, 239, 239, 240, 240, 241, 241, 242, 242,
1025 243, 243, 244, 245, 246, 247, 244, 248, 249, 249,
1026 251, 252, 250, 253, 254, 254, 254, 255, 255, 257,
1027 256, 258, 258, 259, 260, 262, 261, 264, 263, 265,
1028 265, 266, 266, 266, 267, 267, 268, 268, 268, 268,
1029 268, 269, 269, 269, 269, 270, 269, 271, 269, 269,
1030 269, 269, 269, 269, 269, 272, 272
1033 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1034 static const yytype_uint8 yyr2[] =
1036 0, 2, 2, 2, 2, 2, 2, 1, 0, 4,
1037 0, 2, 3, 0, 2, 4, 1, 1, 2, 1,
1038 4, 4, 3, 2, 4, 3, 4, 4, 4, 4,
1039 4, 2, 2, 2, 4, 4, 2, 2, 2, 2,
1040 0, 5, 2, 0, 3, 2, 0, 1, 3, 1,
1041 3, 0, 1, 3, 0, 2, 1, 2, 3, 0,
1042 2, 2, 0, 1, 1, 1, 1, 1, 1, 1,
1043 1, 1, 1, 4, 4, 4, 4, 8, 4, 1,
1044 1, 4, 0, 5, 4, 0, 5, 4, 4, 3,
1045 3, 6, 1, 3, 2, 1, 3, 2, 0, 5,
1046 0, 7, 0, 6, 4, 2, 2, 0, 4, 2,
1047 0, 7, 1, 1, 1, 1, 5, 4, 4, 7,
1048 7, 7, 7, 8, 2, 1, 3, 1, 1, 3,
1049 4, 1, 0, 5, 2, 1, 1, 1, 4, 1,
1050 4, 4, 0, 8, 0, 5, 2, 1, 0, 1,
1051 1, 1, 1, 1, 1, 1, 2, 0, 1, 1,
1052 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
1053 6, 6, 1, 0, 4, 1, 0, 3, 1, 0,
1054 7, 0, 5, 3, 3, 0, 3, 1, 2, 1,
1055 2, 4, 4, 3, 3, 1, 4, 3, 0, 1,
1056 1, 0, 2, 3, 0, 2, 2, 3, 4, 2,
1057 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
1058 3, 3, 3, 3, 3, 3, 3, 3, 5, 3,
1059 3, 4, 1, 1, 4, 4, 4, 4, 4, 4,
1060 4, 6, 6, 6, 4, 6, 4, 1, 6, 6,
1061 6, 4, 4, 3, 0, 4, 0, 4, 0, 4,
1062 0, 1, 1, 1, 0, 0, 0, 0, 0, 0,
1063 19, 0, 0, 0, 0, 0, 18, 0, 0, 7,
1064 0, 5, 1, 1, 1, 1, 1, 3, 0, 2,
1065 3, 2, 6, 10, 2, 1, 0, 1, 2, 0,
1066 0, 3, 0, 0, 0, 0, 11, 4, 0, 2,
1067 0, 0, 6, 1, 0, 3, 5, 0, 3, 0,
1068 2, 1, 2, 4, 2, 0, 2, 0, 5, 1,
1069 2, 4, 5, 6, 1, 2, 0, 2, 4, 4,
1070 8, 1, 1, 3, 3, 0, 9, 0, 7, 1,
1071 3, 1, 3, 1, 3, 0, 1
1074 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
1075 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
1076 means the default is an error. */
1077 static const yytype_uint16 yydefact[] =
1079 0, 59, 10, 8, 325, 319, 0, 2, 62, 3,
1080 13, 6, 0, 4, 0, 5, 0, 1, 60, 11,
1081 0, 336, 0, 326, 329, 0, 320, 321, 0, 0,
1082 0, 0, 0, 79, 0, 80, 0, 0, 0, 0,
1083 0, 0, 0, 0, 0, 0, 199, 200, 0, 0,
1084 82, 0, 0, 0, 110, 0, 72, 61, 64, 70,
1085 0, 63, 66, 67, 68, 69, 65, 71, 0, 16,
1086 0, 0, 0, 0, 17, 0, 0, 0, 19, 46,
1087 0, 0, 0, 0, 0, 0, 51, 54, 0, 0,
1088 0, 342, 353, 341, 349, 351, 0, 0, 336, 330,
1089 349, 351, 0, 0, 322, 204, 165, 164, 163, 162,
1090 161, 160, 159, 158, 204, 107, 308, 0, 0, 0,
1091 0, 7, 85, 176, 0, 0, 0, 0, 0, 0,
1092 0, 198, 201, 0, 0, 0, 0, 0, 0, 54,
1093 167, 166, 109, 0, 0, 40, 0, 232, 247, 0,
1094 0, 0, 0, 0, 0, 0, 0, 233, 0, 0,
1095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1096 0, 0, 0, 0, 14, 0, 49, 31, 47, 32,
1097 18, 33, 23, 0, 36, 0, 37, 52, 38, 39,
1098 0, 42, 12, 9, 0, 0, 0, 0, 337, 0,
1099 0, 324, 168, 0, 169, 0, 0, 89, 90, 0,
1100 0, 62, 179, 0, 0, 173, 178, 0, 0, 0,
1101 0, 0, 0, 193, 195, 173, 173, 201, 0, 92,
1102 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1103 0, 0, 13, 0, 0, 210, 206, 0, 0, 0,
1104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105 0, 0, 0, 0, 0, 0, 0, 209, 211, 0,
1106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 25, 0, 0, 45, 0, 0, 0, 22, 0,
1109 0, 56, 55, 347, 0, 0, 331, 344, 354, 343,
1110 350, 352, 0, 323, 205, 265, 104, 0, 271, 277,
1111 106, 105, 310, 307, 309, 0, 76, 78, 327, 185,
1112 181, 174, 172, 0, 0, 73, 74, 84, 108, 191,
1113 192, 0, 196, 0, 201, 202, 87, 98, 94, 97,
1114 0, 0, 81, 0, 75, 204, 204, 0, 88, 0,
1115 27, 28, 43, 29, 30, 207, 0, 0, 0, 0,
1116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1117 0, 0, 0, 0, 0, 0, 230, 229, 227, 226,
1118 225, 220, 219, 223, 224, 222, 221, 218, 217, 215,
1119 216, 212, 213, 214, 15, 26, 24, 50, 48, 44,
1120 20, 21, 35, 34, 53, 57, 0, 0, 338, 339,
1121 0, 334, 332, 0, 288, 280, 0, 288, 0, 0,
1122 86, 0, 0, 176, 177, 0, 194, 197, 203, 0,
1123 102, 93, 96, 0, 83, 0, 0, 0, 328, 41,
1124 0, 240, 246, 0, 0, 244, 0, 231, 208, 235,
1125 234, 236, 237, 0, 0, 251, 252, 239, 0, 238,
1126 0, 58, 355, 352, 345, 335, 333, 0, 0, 288,
1127 0, 256, 107, 295, 0, 296, 278, 313, 314, 0,
1128 189, 0, 0, 187, 0, 0, 91, 0, 0, 100,
1129 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
1130 228, 356, 0, 0, 0, 282, 283, 284, 285, 286,
1131 289, 0, 0, 0, 0, 291, 0, 258, 0, 294,
1132 297, 256, 0, 317, 0, 311, 0, 190, 186, 188,
1133 0, 173, 182, 99, 0, 0, 111, 241, 242, 243,
1134 245, 248, 249, 250, 348, 0, 355, 287, 0, 290,
1135 0, 0, 260, 281, 260, 107, 0, 314, 0, 0,
1136 77, 204, 0, 103, 0, 340, 0, 288, 0, 0,
1137 0, 266, 272, 0, 0, 315, 0, 312, 183, 0,
1138 180, 101, 346, 0, 0, 255, 0, 0, 264, 0,
1139 279, 318, 314, 204, 0, 292, 257, 0, 261, 262,
1140 263, 0, 273, 316, 184, 0, 259, 267, 302, 288,
1141 148, 0, 0, 128, 114, 113, 150, 151, 152, 153,
1142 154, 0, 0, 0, 0, 135, 137, 142, 0, 0,
1143 136, 0, 115, 0, 131, 139, 147, 149, 0, 0,
1144 0, 303, 274, 293, 0, 0, 144, 204, 0, 132,
1145 0, 112, 0, 127, 173, 0, 146, 268, 204, 134,
1146 0, 299, 0, 0, 0, 0, 0, 0, 0, 0,
1147 148, 0, 155, 0, 0, 125, 0, 0, 129, 0,
1148 173, 299, 0, 148, 0, 254, 0, 0, 138, 0,
1149 117, 0, 0, 118, 0, 141, 0, 112, 0, 0,
1150 124, 126, 130, 254, 140, 0, 298, 0, 300, 0,
1151 0, 0, 0, 0, 145, 0, 133, 116, 300, 304,
1152 0, 157, 0, 0, 0, 0, 0, 0, 157, 300,
1153 253, 204, 0, 275, 120, 119, 0, 121, 122, 0,
1154 269, 157, 156, 301, 173, 123, 143, 173, 305, 276,
1155 270, 173, 306
1158 /* YYDEFGOTO[NTERM-NUM]. */
1159 static const yytype_int16 yydefgoto[] =
1161 -1, 6, 122, 11, 12, 9, 10, 19, 89, 242,
1162 180, 179, 177, 188, 189, 190, 302, 7, 8, 18,
1163 57, 134, 211, 232, 439, 545, 498, 58, 205, 320,
1164 138, 642, 643, 686, 664, 644, 645, 684, 646, 658,
1165 680, 647, 648, 649, 681, 743, 114, 142, 60, 689,
1166 61, 214, 215, 216, 329, 433, 541, 590, 432, 492,
1167 493, 62, 63, 225, 64, 226, 65, 228, 682, 203,
1168 247, 718, 527, 562, 581, 611, 321, 424, 598, 620,
1169 691, 757, 426, 599, 618, 671, 754, 427, 532, 482,
1170 521, 480, 481, 485, 531, 695, 731, 621, 670, 739,
1171 761, 66, 206, 324, 428, 569, 488, 535, 567, 15,
1172 16, 26, 27, 102, 13, 14, 67, 68, 23, 24,
1173 423, 96, 97, 514, 417, 512
1176 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1177 STATE-NUM. */
1178 #define YYPACT_NINF -621
1179 static const yytype_int16 yypact[] =
1181 180, -621, -621, -621, -621, -621, 27, -621, -621, -621,
1182 -621, -621, 38, -621, -21, -621, 23, -621, 824, 1581,
1183 111, 112, 75, -21, -621, 120, 23, -621, 623, 95,
1184 128, 170, 153, -621, 201, -621, 242, 195, 220, 223,
1185 226, 238, 245, 252, 280, 285, -621, -621, 286, 288,
1186 -621, 290, 291, 299, -621, 315, -621, -621, -621, -621,
1187 129, -621, -621, -621, -621, -621, -621, -621, 206, -621,
1188 352, 242, 354, 680, -621, 355, 359, 360, -621, -621,
1189 361, 363, 366, 680, 367, 369, 372, -621, 374, 266,
1190 680, -621, 378, -621, 373, 376, 331, 253, 112, -621,
1191 -621, -621, 338, 255, -621, -621, -621, -621, -621, -621,
1192 -621, -621, -621, -621, -621, -621, -621, 402, 404, 405,
1193 406, -621, -621, 24, 409, 411, 242, 242, 412, 242,
1194 4, -621, 418, 20, 388, 242, 423, 424, 392, -621,
1195 -621, -621, -621, 375, 33, -621, 41, -621, -621, 680,
1196 680, 680, 393, 399, 400, 401, 403, -621, 408, 413,
1197 414, 415, 417, 419, 420, 428, 429, 430, 432, 433,
1198 435, 438, 680, 680, 1400, 228, -621, 301, -621, 302,
1199 5, -621, -621, 381, 1756, 303, -621, -621, 307, -621,
1200 444, -621, -621, 1756, 421, 120, 120, 314, 217, 422,
1201 335, 217, -621, 680, -621, 322, 46, -621, -621, 10,
1202 336, -621, -621, 242, 425, -2, -621, 340, 341, 342,
1203 343, 347, 348, -621, -621, 87, 114, 22, 349, -621,
1204 -621, 455, 32, 20, 356, 490, 491, 680, 357, -21,
1205 680, 680, -621, 680, 680, -621, -621, 833, 680, 680,
1206 680, 680, 680, 497, 498, 680, 503, 504, 505, 506,
1207 680, 680, 509, 510, 680, 680, 511, -621, -621, 680,
1208 680, 680, 680, 680, 680, 680, 680, 680, 680, 680,
1209 680, 680, 680, 680, 680, 680, 680, 680, 680, 680,
1210 680, 1756, 512, 513, -621, 514, 680, 680, 1756, 310,
1211 516, -621, 25, -621, 384, 387, -621, -621, 518, -621,
1212 -621, -621, -12, -621, 1756, 623, -621, 242, -621, -621,
1213 -621, -621, -621, -621, -621, 525, -621, -621, 897, 493,
1214 -621, -621, -621, 24, 528, -621, -621, -621, -621, -621,
1215 -621, 242, -621, 242, 418, -621, -621, -621, -621, -621,
1216 496, 39, -621, 86, -621, -621, -621, 1420, -621, 6,
1217 1756, 1756, 691, 1756, 1756, -621, 1022, 1042, 1440, 1460,
1218 1062, 394, 395, 1082, 396, 426, 427, 436, 1480, 1500,
1219 437, 440, 1102, 1524, 441, 1716, 1773, 1789, 1804, 1002,
1220 1643, 987, 987, 371, 371, 371, 371, 300, 300, 37,
1221 37, -621, -621, -621, 1756, 1756, 1756, -621, -621, -621,
1222 1756, 1756, -621, -621, -621, -621, 531, 120, 232, 217,
1223 480, -621, -621, -7, 536, -621, 608, 536, 680, 407,
1224 -621, 3, 527, 24, -621, 442, -621, -621, -621, 20,
1225 -621, -621, -621, 507, -621, 443, 448, 537, -621, -621,
1226 680, -621, -621, 680, 680, -621, 680, -621, -621, -621,
1227 -621, -621, -621, 680, 680, -621, -621, -621, 542, -621,
1228 680, -621, 431, 532, -621, -621, -621, 15, 522, 1693,
1229 545, 461, -621, -621, 1736, 473, -621, 1756, 19, 560,
1230 -621, 566, 2, -621, 481, 541, -621, 122, 20, -621,
1231 -621, -621, 449, 1122, 1148, 1168, 1188, 1208, 1228, 450,
1232 1756, 217, 523, 120, 120, -621, -621, -621, -621, -621,
1233 -621, 451, 680, 227, 570, -621, 558, 559, 410, -621,
1234 -621, 461, 540, 561, 563, -621, 459, -621, -621, -621,
1235 596, 463, -621, -621, 132, 20, -621, -621, -621, -621,
1236 -621, -621, -621, -621, -621, 465, 431, -621, 1248, -621,
1237 680, 567, 520, -621, 520, -621, 680, 19, 680, 466,
1238 -621, -621, 517, -621, 136, 217, 564, 248, 1274, 680,
1239 585, -621, -621, 601, 1294, -621, 1314, -621, -621, 617,
1240 -621, -621, -621, 588, 611, -621, 1334, 680, 214, 584,
1241 -621, -621, 19, -621, 680, -621, -621, 1354, -621, -621,
1242 -621, 586, -621, -621, -621, 1374, -621, -621, -621, 604,
1243 736, 47, 628, 544, -621, -621, -621, -621, -621, -621,
1244 -621, 613, 614, 242, 615, -621, -621, -621, 616, 618,
1245 -621, 284, -621, 619, -621, -621, -621, 736, 591, 620,
1246 129, -621, -621, -621, 57, 229, -621, -621, 625, -621,
1247 151, -621, 626, -621, -31, 284, -621, -621, -621, -621,
1248 598, 639, 630, 631, 533, 632, 534, 633, 636, 550,
1249 736, 551, -621, 680, 26, -621, 16, 289, -621, 284,
1250 150, 639, 552, 736, 674, 580, 151, 151, -621, 151,
1251 -621, 151, 151, -621, 661, -621, 1544, 557, 562, 151,
1252 -621, -621, -621, 580, -621, 644, -621, 681, -621, 565,
1253 571, 17, 574, 578, -621, 701, -621, -621, -621, -621,
1254 704, 58, 581, 582, 151, 583, 592, 593, 58, -621,
1255 -621, -621, 705, -621, -621, -621, 594, -621, -621, 129,
1256 -621, 58, -621, -621, 463, -621, -621, 463, -621, -621,
1257 -621, 463, -621
1260 /* YYPGOTO[NTERM-NUM]. */
1261 static const yytype_int16 yypgoto[] =
1263 -621, -621, -70, -621, -621, -621, -621, 470, -621, -621,
1264 -621, -621, -621, -621, 587, -621, -621, -621, -621, 519,
1265 -621, -621, -621, -221, -621, -621, -621, -621, -444, -13,
1266 -621, 927, -540, 29, 72, 55, -621, -621, 94, -621,
1267 -621, -621, -500, -621, 1, -508, -621, -617, -425, -212,
1268 -621, 311, -621, 389, -621, -621, -621, -621, -621, -621,
1269 256, -621, -621, -621, -621, -621, -621, -205, -103, -621,
1270 -73, 34, 218, -621, 181, -621, -621, -621, -621, -621,
1271 -621, -621, -621, -621, -621, -621, -621, -621, -621, -621,
1272 -621, -463, 323, -621, -621, 65, -620, -621, -621, -621,
1273 -621, -621, -621, -621, -621, -621, -621, -527, -621, -621,
1274 -621, -621, 738, -621, -621, -621, -621, -621, 526, -19,
1275 -621, 668, -10, -621, -621, 211
1278 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
1279 positive, shift that token. If negative, reduce the rule which
1280 number is the opposite. If zero, do what YYDEFACT says.
1281 If YYTABLE_NINF, syntax error. */
1282 #define YYTABLE_NINF -328
1283 static const yytype_int16 yytable[] =
1285 174, 145, 202, 333, 99, 59, 490, 490, 121, 294,
1286 184, 204, 353, 341, 343, 103, 524, 193, 147, 148,
1287 661, 661, 345, 533, 229, 230, 227, 17, 212, 415,
1288 707, 624, 624, 669, -175, 21, 348, 349, 528, 240,
1289 585, 624, 20, 441, 442, 149, 150, 243, 625, 625,
1290 322, 651, 151, 152, 153, -175, 219, 220, 625, 222,
1291 224, 661, 21, 448, 741, 234, 154, 155, 156, 285,
1292 286, 287, 624, 157, 742, 613, 245, 246, 158, 25,
1293 662, 632, 515, 516, 517, 518, 519, 159, 213, 625,
1294 348, 349, 160, 161, 162, 163, 164, 165, 166, 267,
1295 268, 663, 291, 323, 652, 167, 22, 168, 738, 332,
1296 298, 672, 673, 688, 594, 421, 91, 90, 534, 751,
1297 475, 583, 169, 231, 91, 663, 348, 349, 170, 422,
1298 314, 98, 756, 22, 476, 350, 348, 349, 332, 438,
1299 348, 349, 443, 330, 538, 295, 223, 491, 491, 711,
1300 325, 115, 326, 171, 674, 661, 622, 520, 709, 734,
1301 172, 173, 344, 639, 357, 416, 624, 360, 361, 641,
1302 363, 364, 351, 241, 352, 366, 367, 368, 369, 370,
1303 704, 244, 373, 625, 116, 304, 305, 378, 379, 350,
1304 119, 382, 383, 715, 675, 650, 385, 386, 387, 388,
1305 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
1306 399, 400, 401, 402, 403, 404, 405, 406, 497, 117,
1307 118, 307, 650, 410, 411, 350, 351, 332, 444, 340,
1308 750, 147, 148, 661, 289, 350, 307, 92, 120, 350,
1309 93, 94, 95, 758, 624, 92, 121, 425, 93, 100,
1310 101, 123, 445, 446, 332, 650, 342, 124, 149, 150,
1311 125, 625, 351, 126, 543, 151, 152, 153, 650, 140,
1312 141, 436, 351, 437, 573, 127, 351, 544, 591, 154,
1313 155, 156, 128, 677, 678, 523, 157, 593, 661, 129,
1314 332, 158, 712, 661, 515, 516, 517, 518, 519, 624,
1315 159, 1, 2, 3, 624, 160, 161, 162, 163, 164,
1316 165, 166, 4, 412, 413, 59, 625, 130, 167, 5,
1317 168, 625, 131, 132, 574, 133, 315, 135, 136, 572,
1318 283, 284, 285, 286, 287, 169, 137, 143, 662, 632,
1319 99, 170, 308, 672, 673, 309, 310, 311, 608, 609,
1320 610, 479, 139, 484, 479, 487, 144, 308, 146, 175,
1321 309, 310, 473, 176, 178, 181, 171, 182, 290, 520,
1322 183, 185, 186, 172, 173, 192, 187, 503, 191, 316,
1323 504, 505, 194, 506, 147, 148, 317, 296, 197, 195,
1324 507, 508, 196, 318, 198, 200, 201, 510, 42, 281,
1325 282, 283, 284, 285, 286, 287, 207, 472, 208, 209,
1326 210, 149, 150, 217, 315, 218, 221, 319, 151, 152,
1327 153, 639, 227, 52, 53, 233, 675, 235, 236, 237,
1328 248, 239, 154, 155, 156, 54, 249, 250, 251, 157,
1329 252, 292, 293, 299, 158, 253, 563, 300, 301, 558,
1330 254, 255, 256, 159, 257, 306, 258, 259, 160, 161,
1331 162, 163, 164, 165, 166, 260, 261, 262, 588, 263,
1332 264, 167, 265, 168, 317, 266, 313, 303, 327, 312,
1333 334, 318, 331, 335, 336, 337, 42, 578, 169, 338,
1334 339, 346, 347, 584, 170, 586, 355, 356, 354, 358,
1335 614, 371, 372, 555, 556, 319, 596, 374, 375, 376,
1336 377, 52, 53, 380, 381, 384, 407, 408, 409, 171,
1337 414, 297, 420, 54, 607, 418, 172, 173, 419, 429,
1338 431, 615, 435, 440, 456, 471, 474, 457, 459, 147,
1339 148, 502, 759, 494, 499, 760, 509, 489, 513, 762,
1340 105, 106, 107, 108, 109, 110, 111, 112, 113, 522,
1341 526, 525, 530, 656, 536, 692, 149, 150, 460, 461,
1342 537, 540, 511, 477, 152, 153, 478, 542, 462, 465,
1343 554, -112, 466, 469, 496, 500, 559, 154, 155, 156,
1344 501, 546, 553, 557, 157, 560, 565, 561, 566, 158,
1345 568, 570, 571, 332, 579, 315, 575, 587, 159, 589,
1346 706, 147, 148, 160, 161, 162, 163, 164, 165, 166,
1347 580, 592, 597, 603, 483, 604, 167, 605, 168, 105,
1348 106, 107, 108, 109, 110, 111, 112, 113, 149, 150,
1349 612, 523, 617, 169, 653, 151, 152, 153, 667, 170,
1350 654, 655, 657, 659, 693, 660, 665, 668, 600, 154,
1351 155, 156, 683, 687, 694, 317, 157, 696, 697, 699,
1352 701, 158, 318, 702, 171, 698, 700, 42, 716, 717,
1353 159, 172, 173, 147, 148, 160, 161, 162, 163, 164,
1354 165, 166, 703, 705, 714, 69, 319, 724, 167, -128,
1355 168, 729, 52, 53, 726, 737, 730, 732, 740, 753,
1356 149, 150, 362, 733, 54, 169, 735, 151, 152, 153,
1357 736, 170, 434, 744, 745, 747, 238, 449, 721, 70,
1358 328, 154, 155, 156, 748, 749, 755, 690, 157, 708,
1359 623, 666, 752, 158, 495, 582, 171, 728, 539, 564,
1360 486, 624, 159, 172, 173, 71, 713, 160, 161, 162,
1361 163, 164, 165, 166, 104, 359, 199, 576, 625, 0,
1362 167, 0, 168, 0, 0, 0, 0, 626, 627, 628,
1363 629, 630, 0, 0, 0, 0, 0, 169, 0, 72,
1364 631, 632, 0, 170, 0, 73, 74, 75, 76, 77,
1365 633, 78, 79, 80, 0, 81, 82, 0, 83, 84,
1366 85, 0, 0, 0, 0, 86, 87, 88, 171, 0,
1367 0, 0, 0, 0, 0, 172, 173, 634, 28, 635,
1368 0, 0, 0, 636, 0, 0, 0, 52, 53, 0,
1369 0, 0, 0, 0, 0, 0, 0, 0, 269, 637,
1370 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1371 280, 281, 282, 283, 284, 285, 286, 287, 0, 638,
1372 29, 30, 31, 639, 0, 0, 0, 640, 0, 641,
1373 0, 0, 0, 32, 33, 34, 35, 0, 36, 37,
1374 38, 0, 0, 0, 0, 0, 0, 39, 40, 41,
1375 42, 28, 0, 0, 0, 0, 0, 0, 43, 44,
1376 45, 46, 47, 48, 0, 0, 0, 0, 49, 50,
1377 51, 0, 0, 0, 0, 52, 53, 0, 0, 0,
1378 0, 0, 0, 430, 0, 0, 0, 54, 0, 0,
1379 0, 0, 0, 29, 30, 31, 0, 0, 0, 55,
1380 0, 0, 0, 0, 0, -327, 32, 33, 34, 35,
1381 0, 36, 37, 38, 0, 56, 0, 0, 0, 0,
1382 39, 40, 41, 42, 0, 365, 0, 0, 0, 0,
1383 0, 43, 44, 45, 46, 47, 48, 0, 0, 0,
1384 0, 49, 50, 51, 0, 0, 0, 0, 52, 53,
1385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1386 54, 277, 278, 279, 280, 281, 282, 283, 284, 285,
1387 286, 287, 55, 274, 275, 276, 277, 278, 279, 280,
1388 281, 282, 283, 284, 285, 286, 287, 269, 56, 270,
1389 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1390 281, 282, 283, 284, 285, 286, 287, 269, 0, 270,
1391 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1392 281, 282, 283, 284, 285, 286, 287, 269, 0, 270,
1393 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1394 281, 282, 283, 284, 285, 286, 287, 269, 0, 270,
1395 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1396 281, 282, 283, 284, 285, 286, 287, 269, 0, 270,
1397 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1398 281, 282, 283, 284, 285, 286, 287, 269, 0, 270,
1399 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
1400 281, 282, 283, 284, 285, 286, 287, 0, 0, 0,
1401 0, 0, 450, 269, 451, 270, 271, 272, 273, 274,
1402 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1403 285, 286, 287, 269, 452, 270, 271, 272, 273, 274,
1404 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1405 285, 286, 287, 269, 455, 270, 271, 272, 273, 274,
1406 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1407 285, 286, 287, 269, 458, 270, 271, 272, 273, 274,
1408 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1409 285, 286, 287, 269, 467, 270, 271, 272, 273, 274,
1410 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1411 285, 286, 287, 269, 547, 270, 271, 272, 273, 274,
1412 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1413 285, 286, 287, 0, 0, 0, 0, 0, 0, 269,
1414 548, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1415 279, 280, 281, 282, 283, 284, 285, 286, 287, 269,
1416 549, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1417 279, 280, 281, 282, 283, 284, 285, 286, 287, 269,
1418 550, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1419 279, 280, 281, 282, 283, 284, 285, 286, 287, 269,
1420 551, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1421 279, 280, 281, 282, 283, 284, 285, 286, 287, 269,
1422 552, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1423 279, 280, 281, 282, 283, 284, 285, 286, 287, 269,
1424 577, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1425 279, 280, 281, 282, 283, 284, 285, 286, 287, 0,
1426 0, 0, 0, 0, 0, 269, 595, 270, 271, 272,
1427 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1428 283, 284, 285, 286, 287, 269, 601, 270, 271, 272,
1429 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1430 283, 284, 285, 286, 287, 269, 602, 270, 271, 272,
1431 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1432 283, 284, 285, 286, 287, 269, 606, 270, 271, 272,
1433 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1434 283, 284, 285, 286, 287, 269, 616, 270, 271, 272,
1435 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1436 283, 284, 285, 286, 287, 269, 619, 270, 271, 272,
1437 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1438 283, 284, 285, 286, 287, 0, 0, 0, 0, 269,
1439 288, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1440 279, 280, 281, 282, 283, 284, 285, 286, 287, 269,
1441 447, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1442 279, 280, 281, 282, 283, 284, 285, 286, 287, 0,
1443 453, 676, 679, 0, 0, 69, 0, 685, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445 454, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 710, 676, 0, 0, 0, 0, 70,
1447 463, 0, 0, 719, 720, 0, 685, 0, 722, 723,
1448 0, 0, 0, 0, 0, 0, 727, 0, 0, 0,
1449 464, 0, 0, 0, 0, 71, 0, 0, 710, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 746, 0, 0, 468, 275, 276, 277, 278, 279,
1452 280, 281, 282, 283, 284, 285, 286, 287, 0, 72,
1453 0, 0, 0, 0, 725, 73, 74, 75, 76, 77,
1454 -43, 78, 79, 80, 0, 81, 82, 0, 83, 84,
1455 85, 0, 0, 0, 0, 86, 87, 88, 269, 0,
1456 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1457 280, 281, 282, 283, 284, 285, 286, 287, 0, 0,
1458 523, 269, 470, 270, 271, 272, 273, 274, 275, 276,
1459 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1460 287, 269, 529, 270, 271, 272, 273, 274, 275, 276,
1461 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1462 287, 269, 0, 270, 271, 272, 273, 274, 275, 276,
1463 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
1464 287, 271, 272, 273, 274, 275, 276, 277, 278, 279,
1465 280, 281, 282, 283, 284, 285, 286, 287, 272, 273,
1466 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
1467 284, 285, 286, 287, 273, 274, 275, 276, 277, 278,
1468 279, 280, 281, 282, 283, 284, 285, 286, 287
1471 static const yytype_int16 yycheck[] =
1473 73, 71, 105, 215, 23, 18, 4, 4, 4, 4,
1474 83, 114, 233, 225, 226, 25, 479, 90, 3, 4,
1475 4, 4, 227, 4, 4, 5, 4, 0, 4, 4,
1476 4, 15, 15, 650, 36, 56, 4, 5, 482, 6,
1477 567, 15, 4, 4, 5, 30, 31, 6, 32, 32,
1478 4, 4, 37, 38, 39, 57, 126, 127, 32, 129,
1479 130, 4, 56, 57, 6, 135, 51, 52, 53, 32,
1480 33, 34, 15, 58, 16, 602, 149, 150, 63, 56,
1481 54, 55, 67, 68, 69, 70, 71, 72, 64, 32,
1482 4, 5, 77, 78, 79, 80, 81, 82, 83, 172,
1483 173, 641, 175, 57, 57, 90, 127, 92, 728, 140,
1484 183, 54, 55, 144, 577, 127, 4, 6, 99, 739,
1485 127, 565, 107, 103, 4, 665, 4, 5, 113, 141,
1486 203, 56, 749, 127, 141, 103, 4, 5, 140, 344,
1487 4, 5, 103, 213, 142, 140, 142, 145, 145, 689,
1488 140, 56, 142, 138, 97, 4, 619, 142, 142, 142,
1489 145, 146, 140, 137, 237, 140, 15, 240, 241, 143,
1490 243, 244, 140, 140, 142, 248, 249, 250, 251, 252,
1491 680, 140, 255, 32, 56, 195, 196, 260, 261, 103,
1492 37, 264, 265, 693, 137, 620, 269, 270, 271, 272,
1493 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
1494 283, 284, 285, 286, 287, 288, 289, 290, 439, 49,
1495 50, 4, 647, 296, 297, 103, 140, 140, 142, 142,
1496 738, 3, 4, 4, 6, 103, 4, 125, 37, 103,
1497 128, 129, 130, 751, 15, 125, 4, 317, 128, 129,
1498 130, 56, 355, 356, 140, 680, 142, 37, 30, 31,
1499 37, 32, 140, 37, 142, 37, 38, 39, 693, 140,
1500 141, 341, 140, 343, 142, 37, 140, 498, 142, 51,
1501 52, 53, 37, 54, 55, 37, 58, 39, 4, 37,
1502 140, 63, 142, 4, 67, 68, 69, 70, 71, 15,
1503 72, 121, 122, 123, 15, 77, 78, 79, 80, 81,
1504 82, 83, 132, 3, 4, 328, 32, 37, 90, 139,
1505 92, 32, 37, 37, 545, 37, 4, 37, 37, 541,
1506 30, 31, 32, 33, 34, 107, 37, 131, 54, 55,
1507 359, 113, 125, 54, 55, 128, 129, 130, 134, 135,
1508 136, 424, 37, 426, 427, 428, 4, 125, 4, 4,
1509 128, 129, 130, 4, 4, 4, 138, 4, 140, 142,
1510 4, 4, 3, 145, 146, 109, 4, 450, 4, 57,
1511 453, 454, 4, 456, 3, 4, 64, 6, 57, 16,
1512 463, 464, 16, 71, 141, 57, 141, 470, 76, 28,
1513 29, 30, 31, 32, 33, 34, 4, 417, 4, 4,
1514 4, 30, 31, 4, 4, 4, 4, 95, 37, 38,
1515 39, 137, 4, 101, 102, 37, 137, 4, 4, 37,
1516 37, 56, 51, 52, 53, 113, 37, 37, 37, 58,
1517 37, 140, 140, 140, 63, 37, 36, 140, 4, 522,
1518 37, 37, 37, 72, 37, 141, 37, 37, 77, 78,
1519 79, 80, 81, 82, 83, 37, 37, 37, 571, 37,
1520 37, 90, 37, 92, 64, 37, 141, 56, 142, 57,
1521 140, 71, 57, 142, 142, 142, 76, 560, 107, 142,
1522 142, 142, 37, 566, 113, 568, 6, 6, 142, 142,
1523 603, 4, 4, 513, 514, 95, 579, 4, 4, 4,
1524 4, 101, 102, 4, 4, 4, 4, 4, 4, 138,
1525 4, 140, 4, 113, 597, 141, 145, 146, 141, 4,
1526 37, 604, 4, 37, 140, 4, 56, 142, 142, 3,
1527 4, 4, 754, 16, 37, 757, 4, 140, 16, 761,
1528 6, 7, 8, 9, 10, 11, 12, 13, 14, 37,
1529 99, 16, 89, 633, 4, 668, 30, 31, 142, 142,
1530 4, 90, 141, 37, 38, 39, 40, 36, 142, 142,
1531 57, 37, 142, 142, 142, 142, 16, 51, 52, 53,
1532 142, 142, 142, 142, 58, 37, 56, 38, 37, 63,
1533 37, 142, 6, 140, 37, 4, 141, 141, 72, 92,
1534 683, 3, 4, 77, 78, 79, 80, 81, 82, 83,
1535 100, 57, 37, 6, 16, 37, 90, 16, 92, 6,
1536 7, 8, 9, 10, 11, 12, 13, 14, 30, 31,
1537 56, 37, 56, 107, 16, 37, 38, 39, 57, 113,
1538 37, 37, 37, 37, 56, 37, 37, 37, 57, 51,
1539 52, 53, 37, 37, 25, 64, 58, 37, 37, 37,
1540 37, 63, 71, 37, 138, 142, 142, 76, 4, 99,
1541 72, 145, 146, 3, 4, 77, 78, 79, 80, 81,
1542 82, 83, 142, 142, 142, 4, 95, 36, 90, 142,
1543 92, 57, 101, 102, 142, 4, 25, 142, 4, 4,
1544 30, 31, 242, 142, 113, 107, 142, 37, 38, 39,
1545 142, 113, 333, 142, 142, 142, 139, 36, 699, 38,
1546 211, 51, 52, 53, 142, 142, 142, 665, 58, 684,
1547 4, 647, 741, 63, 433, 564, 138, 713, 492, 531,
1548 427, 15, 72, 145, 146, 64, 691, 77, 78, 79,
1549 80, 81, 82, 83, 26, 239, 98, 556, 32, -1,
1550 90, -1, 92, -1, -1, -1, -1, 41, 42, 43,
1551 44, 45, -1, -1, -1, -1, -1, 107, -1, 98,
1552 54, 55, -1, 113, -1, 104, 105, 106, 107, 108,
1553 64, 110, 111, 112, -1, 114, 115, -1, 117, 118,
1554 119, -1, -1, -1, -1, 124, 125, 126, 138, -1,
1555 -1, -1, -1, -1, -1, 145, 146, 91, 4, 93,
1556 -1, -1, -1, 97, -1, -1, -1, 101, 102, -1,
1557 -1, -1, -1, -1, -1, -1, -1, -1, 15, 113,
1558 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1559 27, 28, 29, 30, 31, 32, 33, 34, -1, 133,
1560 46, 47, 48, 137, -1, -1, -1, 141, -1, 143,
1561 -1, -1, -1, 59, 60, 61, 62, -1, 64, 65,
1562 66, -1, -1, -1, -1, -1, -1, 73, 74, 75,
1563 76, 4, -1, -1, -1, -1, -1, -1, 84, 85,
1564 86, 87, 88, 89, -1, -1, -1, -1, 94, 95,
1565 96, -1, -1, -1, -1, 101, 102, -1, -1, -1,
1566 -1, -1, -1, 36, -1, -1, -1, 113, -1, -1,
1567 -1, -1, -1, 46, 47, 48, -1, -1, -1, 125,
1568 -1, -1, -1, -1, -1, 131, 59, 60, 61, 62,
1569 -1, 64, 65, 66, -1, 141, -1, -1, -1, -1,
1570 73, 74, 75, 76, -1, 142, -1, -1, -1, -1,
1571 -1, 84, 85, 86, 87, 88, 89, -1, -1, -1,
1572 -1, 94, 95, 96, -1, -1, -1, -1, 101, 102,
1573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1574 113, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1575 33, 34, 125, 21, 22, 23, 24, 25, 26, 27,
1576 28, 29, 30, 31, 32, 33, 34, 15, 141, 17,
1577 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1578 28, 29, 30, 31, 32, 33, 34, 15, -1, 17,
1579 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1580 28, 29, 30, 31, 32, 33, 34, 15, -1, 17,
1581 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1582 28, 29, 30, 31, 32, 33, 34, 15, -1, 17,
1583 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1584 28, 29, 30, 31, 32, 33, 34, 15, -1, 17,
1585 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1586 28, 29, 30, 31, 32, 33, 34, 15, -1, 17,
1587 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1588 28, 29, 30, 31, 32, 33, 34, -1, -1, -1,
1589 -1, -1, 140, 15, 142, 17, 18, 19, 20, 21,
1590 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1591 32, 33, 34, 15, 142, 17, 18, 19, 20, 21,
1592 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1593 32, 33, 34, 15, 142, 17, 18, 19, 20, 21,
1594 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1595 32, 33, 34, 15, 142, 17, 18, 19, 20, 21,
1596 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1597 32, 33, 34, 15, 142, 17, 18, 19, 20, 21,
1598 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1599 32, 33, 34, 15, 142, 17, 18, 19, 20, 21,
1600 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1601 32, 33, 34, -1, -1, -1, -1, -1, -1, 15,
1602 142, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1603 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
1604 142, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1605 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
1606 142, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1607 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
1608 142, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1609 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
1610 142, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1611 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
1612 142, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1613 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1614 -1, -1, -1, -1, -1, 15, 142, 17, 18, 19,
1615 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1616 30, 31, 32, 33, 34, 15, 142, 17, 18, 19,
1617 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1618 30, 31, 32, 33, 34, 15, 142, 17, 18, 19,
1619 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1620 30, 31, 32, 33, 34, 15, 142, 17, 18, 19,
1621 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1622 30, 31, 32, 33, 34, 15, 142, 17, 18, 19,
1623 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1624 30, 31, 32, 33, 34, 15, 142, 17, 18, 19,
1625 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1626 30, 31, 32, 33, 34, -1, -1, -1, -1, 15,
1627 140, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1628 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
1629 140, 17, 18, 19, 20, 21, 22, 23, 24, 25,
1630 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
1631 140, 654, 655, -1, -1, 4, -1, 660, -1, -1,
1632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1633 140, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1634 -1, -1, -1, 686, 687, -1, -1, -1, -1, 38,
1635 140, -1, -1, 696, 697, -1, 699, -1, 701, 702,
1636 -1, -1, -1, -1, -1, -1, 709, -1, -1, -1,
1637 140, -1, -1, -1, -1, 64, -1, -1, 721, -1,
1638 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1639 -1, 734, -1, -1, 140, 22, 23, 24, 25, 26,
1640 27, 28, 29, 30, 31, 32, 33, 34, -1, 98,
1641 -1, -1, -1, -1, 140, 104, 105, 106, 107, 108,
1642 109, 110, 111, 112, -1, 114, 115, -1, 117, 118,
1643 119, -1, -1, -1, -1, 124, 125, 126, 15, -1,
1644 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1645 27, 28, 29, 30, 31, 32, 33, 34, -1, -1,
1646 37, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1647 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1648 34, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1649 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1650 34, 15, -1, 17, 18, 19, 20, 21, 22, 23,
1651 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
1652 34, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1653 27, 28, 29, 30, 31, 32, 33, 34, 19, 20,
1654 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1655 31, 32, 33, 34, 20, 21, 22, 23, 24, 25,
1656 26, 27, 28, 29, 30, 31, 32, 33, 34
1659 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1660 symbol of state STATE-NUM. */
1661 static const yytype_uint16 yystos[] =
1663 0, 121, 122, 123, 132, 139, 148, 164, 165, 152,
1664 153, 150, 151, 261, 262, 256, 257, 0, 166, 154,
1665 4, 56, 127, 265, 266, 56, 258, 259, 4, 46,
1666 47, 48, 59, 60, 61, 62, 64, 65, 66, 73,
1667 74, 75, 76, 84, 85, 86, 87, 88, 89, 94,
1668 95, 96, 101, 102, 113, 125, 141, 167, 174, 176,
1669 195, 197, 208, 209, 211, 213, 248, 263, 264, 4,
1670 38, 64, 98, 104, 105, 106, 107, 108, 110, 111,
1671 112, 114, 115, 117, 118, 119, 124, 125, 126, 155,
1672 6, 4, 125, 128, 129, 130, 268, 269, 56, 266,
1673 129, 130, 260, 269, 259, 6, 7, 8, 9, 10,
1674 11, 12, 13, 14, 193, 56, 56, 49, 50, 37,
1675 37, 4, 149, 56, 37, 37, 37, 37, 37, 37,
1676 37, 37, 37, 37, 168, 37, 37, 37, 177, 37,
1677 140, 141, 194, 131, 4, 149, 4, 3, 4, 30,
1678 31, 37, 38, 39, 51, 52, 53, 58, 63, 72,
1679 77, 78, 79, 80, 81, 82, 83, 90, 92, 107,
1680 113, 138, 145, 146, 217, 4, 4, 159, 4, 158,
1681 157, 4, 4, 4, 217, 4, 3, 4, 160, 161,
1682 162, 4, 109, 217, 4, 16, 16, 57, 141, 268,
1683 57, 141, 215, 216, 215, 175, 249, 4, 4, 4,
1684 4, 169, 4, 64, 198, 199, 200, 4, 4, 149,
1685 149, 4, 149, 142, 149, 210, 212, 4, 214, 4,
1686 5, 103, 170, 37, 149, 4, 4, 37, 161, 56,
1687 6, 140, 156, 6, 140, 217, 217, 217, 37, 37,
1688 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
1689 37, 37, 37, 37, 37, 37, 37, 217, 217, 15,
1690 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
1691 27, 28, 29, 30, 31, 32, 33, 34, 140, 6,
1692 140, 217, 140, 140, 4, 140, 6, 140, 217, 140,
1693 140, 4, 163, 56, 269, 269, 141, 4, 125, 128,
1694 129, 130, 57, 141, 217, 4, 57, 64, 71, 95,
1695 176, 223, 4, 57, 250, 140, 142, 142, 166, 201,
1696 149, 57, 140, 196, 140, 142, 142, 142, 142, 142,
1697 142, 196, 142, 196, 140, 214, 142, 37, 4, 5,
1698 103, 140, 142, 170, 142, 6, 6, 217, 142, 265,
1699 217, 217, 154, 217, 217, 142, 217, 217, 217, 217,
1700 217, 4, 4, 217, 4, 4, 4, 4, 217, 217,
1701 4, 4, 217, 217, 4, 217, 217, 217, 217, 217,
1702 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
1703 217, 217, 217, 217, 217, 217, 217, 4, 4, 4,
1704 217, 217, 3, 4, 4, 4, 140, 271, 141, 141,
1705 4, 127, 141, 267, 224, 149, 229, 234, 251, 4,
1706 36, 37, 205, 202, 200, 4, 149, 149, 214, 171,
1707 37, 4, 5, 103, 142, 215, 215, 140, 57, 36,
1708 140, 142, 142, 140, 140, 142, 140, 142, 142, 142,
1709 142, 142, 142, 140, 140, 142, 142, 142, 140, 142,
1710 16, 4, 269, 130, 56, 127, 141, 37, 40, 217,
1711 238, 239, 236, 16, 217, 240, 239, 217, 253, 140,
1712 4, 145, 206, 207, 16, 198, 142, 170, 173, 37,
1713 142, 142, 4, 217, 217, 217, 217, 217, 217, 4,
1714 217, 141, 272, 16, 270, 67, 68, 69, 70, 71,
1715 142, 237, 37, 37, 238, 16, 99, 219, 175, 16,
1716 89, 241, 235, 4, 99, 254, 4, 4, 142, 207,
1717 90, 203, 36, 142, 170, 172, 142, 142, 142, 142,
1718 142, 142, 142, 142, 57, 269, 269, 142, 217, 16,
1719 37, 38, 220, 36, 219, 56, 37, 255, 37, 252,
1720 142, 6, 196, 142, 170, 141, 272, 142, 217, 37,
1721 100, 221, 221, 175, 217, 254, 217, 141, 215, 92,
1722 204, 142, 57, 39, 238, 142, 217, 37, 225, 230,
1723 57, 142, 142, 6, 37, 16, 142, 217, 134, 135,
1724 136, 222, 56, 254, 215, 217, 142, 56, 231, 142,
1725 226, 244, 238, 4, 15, 32, 41, 42, 43, 44,
1726 45, 54, 55, 64, 91, 93, 97, 113, 133, 137,
1727 141, 143, 178, 179, 182, 183, 185, 188, 189, 190,
1728 195, 4, 57, 16, 37, 37, 149, 37, 186, 37,
1729 37, 4, 54, 179, 181, 37, 185, 57, 37, 194,
1730 245, 232, 54, 55, 97, 137, 178, 54, 55, 178,
1731 187, 191, 215, 37, 184, 178, 180, 37, 144, 196,
1732 181, 227, 215, 56, 25, 242, 37, 37, 142, 37,
1733 142, 37, 37, 142, 189, 142, 217, 4, 182, 142,
1734 178, 179, 142, 242, 142, 189, 4, 99, 218, 178,
1735 178, 180, 178, 178, 36, 140, 142, 178, 218, 57,
1736 25, 243, 142, 142, 142, 142, 142, 4, 243, 246,
1737 4, 6, 16, 192, 142, 142, 178, 142, 142, 142,
1738 192, 243, 191, 4, 233, 142, 194, 228, 192, 196,
1739 196, 247, 196
1742 #define yyerrok (yyerrstatus = 0)
1743 #define yyclearin (yychar = YYEMPTY)
1744 #define YYEMPTY (-2)
1745 #define YYEOF 0
1747 #define YYACCEPT goto yyacceptlab
1748 #define YYABORT goto yyabortlab
1749 #define YYERROR goto yyerrorlab
1752 /* Like YYERROR except do call yyerror. This remains here temporarily
1753 to ease the transition to the new meaning of YYERROR, for GCC.
1754 Once GCC version 2 has supplanted version 1, this can go. */
1756 #define YYFAIL goto yyerrlab
1758 #define YYRECOVERING() (!!yyerrstatus)
1760 #define YYBACKUP(Token, Value) \
1761 do \
1762 if (yychar == YYEMPTY && yylen == 1) \
1764 yychar = (Token); \
1765 yylval = (Value); \
1766 yytoken = YYTRANSLATE (yychar); \
1767 YYPOPSTACK (1); \
1768 goto yybackup; \
1770 else \
1772 yyerror (YY_("syntax error: cannot back up")); \
1773 YYERROR; \
1775 while (YYID (0))
1778 #define YYTERROR 1
1779 #define YYERRCODE 256
1782 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1783 If N is 0, then set CURRENT to the empty location which ends
1784 the previous symbol: RHS[0] (always defined). */
1786 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1787 #ifndef YYLLOC_DEFAULT
1788 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1789 do \
1790 if (YYID (N)) \
1792 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1793 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1794 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1795 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1797 else \
1799 (Current).first_line = (Current).last_line = \
1800 YYRHSLOC (Rhs, 0).last_line; \
1801 (Current).first_column = (Current).last_column = \
1802 YYRHSLOC (Rhs, 0).last_column; \
1804 while (YYID (0))
1805 #endif
1808 /* YY_LOCATION_PRINT -- Print the location on the stream.
1809 This macro was not mandated originally: define only if we know
1810 we won't break user code: when these are the locations we know. */
1812 #ifndef YY_LOCATION_PRINT
1813 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
1814 # define YY_LOCATION_PRINT(File, Loc) \
1815 fprintf (File, "%d.%d-%d.%d", \
1816 (Loc).first_line, (Loc).first_column, \
1817 (Loc).last_line, (Loc).last_column)
1818 # else
1819 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1820 # endif
1821 #endif
1824 /* YYLEX -- calling `yylex' with the right arguments. */
1826 #ifdef YYLEX_PARAM
1827 # define YYLEX yylex (YYLEX_PARAM)
1828 #else
1829 # define YYLEX yylex ()
1830 #endif
1832 /* Enable debugging if requested. */
1833 #if YYDEBUG
1835 # ifndef YYFPRINTF
1836 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1837 # define YYFPRINTF fprintf
1838 # endif
1840 # define YYDPRINTF(Args) \
1841 do { \
1842 if (yydebug) \
1843 YYFPRINTF Args; \
1844 } while (YYID (0))
1846 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1847 do { \
1848 if (yydebug) \
1850 YYFPRINTF (stderr, "%s ", Title); \
1851 yy_symbol_print (stderr, \
1852 Type, Value); \
1853 YYFPRINTF (stderr, "\n"); \
1855 } while (YYID (0))
1858 /*--------------------------------.
1859 | Print this symbol on YYOUTPUT. |
1860 `--------------------------------*/
1862 /*ARGSUSED*/
1863 #if (defined __STDC__ || defined __C99__FUNC__ \
1864 || defined __cplusplus || defined _MSC_VER)
1865 static void
1866 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1867 #else
1868 static void
1869 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1870 FILE *yyoutput;
1871 int yytype;
1872 YYSTYPE const * const yyvaluep;
1873 #endif
1875 if (!yyvaluep)
1876 return;
1877 # ifdef YYPRINT
1878 if (yytype < YYNTOKENS)
1879 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1880 # else
1881 YYUSE (yyoutput);
1882 # endif
1883 switch (yytype)
1885 default:
1886 break;
1891 /*--------------------------------.
1892 | Print this symbol on YYOUTPUT. |
1893 `--------------------------------*/
1895 #if (defined __STDC__ || defined __C99__FUNC__ \
1896 || defined __cplusplus || defined _MSC_VER)
1897 static void
1898 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1899 #else
1900 static void
1901 yy_symbol_print (yyoutput, yytype, yyvaluep)
1902 FILE *yyoutput;
1903 int yytype;
1904 YYSTYPE const * const yyvaluep;
1905 #endif
1907 if (yytype < YYNTOKENS)
1908 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1909 else
1910 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1912 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1913 YYFPRINTF (yyoutput, ")");
1916 /*------------------------------------------------------------------.
1917 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1918 | TOP (included). |
1919 `------------------------------------------------------------------*/
1921 #if (defined __STDC__ || defined __C99__FUNC__ \
1922 || defined __cplusplus || defined _MSC_VER)
1923 static void
1924 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1925 #else
1926 static void
1927 yy_stack_print (bottom, top)
1928 yytype_int16 *bottom;
1929 yytype_int16 *top;
1930 #endif
1932 YYFPRINTF (stderr, "Stack now");
1933 for (; bottom <= top; ++bottom)
1934 YYFPRINTF (stderr, " %d", *bottom);
1935 YYFPRINTF (stderr, "\n");
1938 # define YY_STACK_PRINT(Bottom, Top) \
1939 do { \
1940 if (yydebug) \
1941 yy_stack_print ((Bottom), (Top)); \
1942 } while (YYID (0))
1945 /*------------------------------------------------.
1946 | Report that the YYRULE is going to be reduced. |
1947 `------------------------------------------------*/
1949 #if (defined __STDC__ || defined __C99__FUNC__ \
1950 || defined __cplusplus || defined _MSC_VER)
1951 static void
1952 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1953 #else
1954 static void
1955 yy_reduce_print (yyvsp, yyrule)
1956 YYSTYPE *yyvsp;
1957 int yyrule;
1958 #endif
1960 int yynrhs = yyr2[yyrule];
1961 int yyi;
1962 unsigned long int yylno = yyrline[yyrule];
1963 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1964 yyrule - 1, yylno);
1965 /* The symbols being reduced. */
1966 for (yyi = 0; yyi < yynrhs; yyi++)
1968 fprintf (stderr, " $%d = ", yyi + 1);
1969 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1970 &(yyvsp[(yyi + 1) - (yynrhs)])
1972 fprintf (stderr, "\n");
1976 # define YY_REDUCE_PRINT(Rule) \
1977 do { \
1978 if (yydebug) \
1979 yy_reduce_print (yyvsp, Rule); \
1980 } while (YYID (0))
1982 /* Nonzero means print parse trace. It is left uninitialized so that
1983 multiple parsers can coexist. */
1984 int yydebug;
1985 #else /* !YYDEBUG */
1986 # define YYDPRINTF(Args)
1987 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1988 # define YY_STACK_PRINT(Bottom, Top)
1989 # define YY_REDUCE_PRINT(Rule)
1990 #endif /* !YYDEBUG */
1993 /* YYINITDEPTH -- initial size of the parser's stacks. */
1994 #ifndef YYINITDEPTH
1995 # define YYINITDEPTH 200
1996 #endif
1998 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1999 if the built-in stack extension method is used).
2001 Do not make this value too large; the results are undefined if
2002 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2003 evaluated with infinite-precision integer arithmetic. */
2005 #ifndef YYMAXDEPTH
2006 # define YYMAXDEPTH 10000
2007 #endif
2011 #if YYERROR_VERBOSE
2013 # ifndef yystrlen
2014 # if defined __GLIBC__ && defined _STRING_H
2015 # define yystrlen strlen
2016 # else
2017 /* Return the length of YYSTR. */
2018 #if (defined __STDC__ || defined __C99__FUNC__ \
2019 || defined __cplusplus || defined _MSC_VER)
2020 static YYSIZE_T
2021 yystrlen (const char *yystr)
2022 #else
2023 static YYSIZE_T
2024 yystrlen (yystr)
2025 const char *yystr;
2026 #endif
2028 YYSIZE_T yylen;
2029 for (yylen = 0; yystr[yylen]; yylen++)
2030 continue;
2031 return yylen;
2033 # endif
2034 # endif
2036 # ifndef yystpcpy
2037 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2038 # define yystpcpy stpcpy
2039 # else
2040 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2041 YYDEST. */
2042 #if (defined __STDC__ || defined __C99__FUNC__ \
2043 || defined __cplusplus || defined _MSC_VER)
2044 static char *
2045 yystpcpy (char *yydest, const char *yysrc)
2046 #else
2047 static char *
2048 yystpcpy (yydest, yysrc)
2049 char *yydest;
2050 const char *yysrc;
2051 #endif
2053 char *yyd = yydest;
2054 const char *yys = yysrc;
2056 while ((*yyd++ = *yys++) != '\0')
2057 continue;
2059 return yyd - 1;
2061 # endif
2062 # endif
2064 # ifndef yytnamerr
2065 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2066 quotes and backslashes, so that it's suitable for yyerror. The
2067 heuristic is that double-quoting is unnecessary unless the string
2068 contains an apostrophe, a comma, or backslash (other than
2069 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2070 null, do not copy; instead, return the length of what the result
2071 would have been. */
2072 static YYSIZE_T
2073 yytnamerr (char *yyres, const char *yystr)
2075 if (*yystr == '"')
2077 YYSIZE_T yyn = 0;
2078 char const *yyp = yystr;
2080 for (;;)
2081 switch (*++yyp)
2083 case '\'':
2084 case ',':
2085 goto do_not_strip_quotes;
2087 case '\\':
2088 if (*++yyp != '\\')
2089 goto do_not_strip_quotes;
2090 /* Fall through. */
2091 default:
2092 if (yyres)
2093 yyres[yyn] = *yyp;
2094 yyn++;
2095 break;
2097 case '"':
2098 if (yyres)
2099 yyres[yyn] = '\0';
2100 return yyn;
2102 do_not_strip_quotes: ;
2105 if (! yyres)
2106 return yystrlen (yystr);
2108 return yystpcpy (yyres, yystr) - yyres;
2110 # endif
2112 /* Copy into YYRESULT an error message about the unexpected token
2113 YYCHAR while in state YYSTATE. Return the number of bytes copied,
2114 including the terminating null byte. If YYRESULT is null, do not
2115 copy anything; just return the number of bytes that would be
2116 copied. As a special case, return 0 if an ordinary "syntax error"
2117 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
2118 size calculation. */
2119 static YYSIZE_T
2120 yysyntax_error (char *yyresult, int yystate, int yychar)
2122 int yyn = yypact[yystate];
2124 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
2125 return 0;
2126 else
2128 int yytype = YYTRANSLATE (yychar);
2129 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
2130 YYSIZE_T yysize = yysize0;
2131 YYSIZE_T yysize1;
2132 int yysize_overflow = 0;
2133 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2134 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2135 int yyx;
2137 # if 0
2138 /* This is so xgettext sees the translatable formats that are
2139 constructed on the fly. */
2140 YY_("syntax error, unexpected %s");
2141 YY_("syntax error, unexpected %s, expecting %s");
2142 YY_("syntax error, unexpected %s, expecting %s or %s");
2143 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
2144 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
2145 # endif
2146 char *yyfmt;
2147 char const *yyf;
2148 static char const yyunexpected[] = "syntax error, unexpected %s";
2149 static char const yyexpecting[] = ", expecting %s";
2150 static char const yyor[] = " or %s";
2151 char yyformat[sizeof yyunexpected
2152 + sizeof yyexpecting - 1
2153 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
2154 * (sizeof yyor - 1))];
2155 char const *yyprefix = yyexpecting;
2157 /* Start YYX at -YYN if negative to avoid negative indexes in
2158 YYCHECK. */
2159 int yyxbegin = yyn < 0 ? -yyn : 0;
2161 /* Stay within bounds of both yycheck and yytname. */
2162 int yychecklim = YYLAST - yyn + 1;
2163 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2164 int yycount = 1;
2166 yyarg[0] = yytname[yytype];
2167 yyfmt = yystpcpy (yyformat, yyunexpected);
2169 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2170 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2172 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2174 yycount = 1;
2175 yysize = yysize0;
2176 yyformat[sizeof yyunexpected - 1] = '\0';
2177 break;
2179 yyarg[yycount++] = yytname[yyx];
2180 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
2181 yysize_overflow |= (yysize1 < yysize);
2182 yysize = yysize1;
2183 yyfmt = yystpcpy (yyfmt, yyprefix);
2184 yyprefix = yyor;
2187 yyf = YY_(yyformat);
2188 yysize1 = yysize + yystrlen (yyf);
2189 yysize_overflow |= (yysize1 < yysize);
2190 yysize = yysize1;
2192 if (yysize_overflow)
2193 return YYSIZE_MAXIMUM;
2195 if (yyresult)
2197 /* Avoid sprintf, as that infringes on the user's name space.
2198 Don't have undefined behavior even if the translation
2199 produced a string with the wrong number of "%s"s. */
2200 char *yyp = yyresult;
2201 int yyi = 0;
2202 while ((*yyp = *yyf) != '\0')
2204 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
2206 yyp += yytnamerr (yyp, yyarg[yyi++]);
2207 yyf += 2;
2209 else
2211 yyp++;
2212 yyf++;
2216 return yysize;
2219 #endif /* YYERROR_VERBOSE */
2222 /*-----------------------------------------------.
2223 | Release the memory associated to this symbol. |
2224 `-----------------------------------------------*/
2226 /*ARGSUSED*/
2227 #if (defined __STDC__ || defined __C99__FUNC__ \
2228 || defined __cplusplus || defined _MSC_VER)
2229 static void
2230 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2231 #else
2232 static void
2233 yydestruct (yymsg, yytype, yyvaluep)
2234 const char *yymsg;
2235 int yytype;
2236 YYSTYPE *yyvaluep;
2237 #endif
2239 YYUSE (yyvaluep);
2241 if (!yymsg)
2242 yymsg = "Deleting";
2243 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2245 switch (yytype)
2248 default:
2249 break;
2254 /* Prevent warnings from -Wmissing-prototypes. */
2256 #ifdef YYPARSE_PARAM
2257 #if defined __STDC__ || defined __cplusplus
2258 int yyparse (void *YYPARSE_PARAM);
2259 #else
2260 int yyparse ();
2261 #endif
2262 #else /* ! YYPARSE_PARAM */
2263 #if defined __STDC__ || defined __cplusplus
2264 int yyparse (void);
2265 #else
2266 int yyparse ();
2267 #endif
2268 #endif /* ! YYPARSE_PARAM */
2272 /* The look-ahead symbol. */
2273 int yychar;
2275 /* The semantic value of the look-ahead symbol. */
2276 YYSTYPE yylval;
2278 /* Number of syntax errors so far. */
2279 int yynerrs;
2283 /*----------.
2284 | yyparse. |
2285 `----------*/
2287 #ifdef YYPARSE_PARAM
2288 #if (defined __STDC__ || defined __C99__FUNC__ \
2289 || defined __cplusplus || defined _MSC_VER)
2291 yyparse (void *YYPARSE_PARAM)
2292 #else
2294 yyparse (YYPARSE_PARAM)
2295 void *YYPARSE_PARAM;
2296 #endif
2297 #else /* ! YYPARSE_PARAM */
2298 #if (defined __STDC__ || defined __C99__FUNC__ \
2299 || defined __cplusplus || defined _MSC_VER)
2301 yyparse (void)
2302 #else
2304 yyparse ()
2306 #endif
2307 #endif
2310 int yystate;
2311 int yyn;
2312 int yyresult;
2313 /* Number of tokens to shift before error messages enabled. */
2314 int yyerrstatus;
2315 /* Look-ahead token as an internal (translated) token number. */
2316 int yytoken = 0;
2317 #if YYERROR_VERBOSE
2318 /* Buffer for error messages, and its allocated size. */
2319 char yymsgbuf[128];
2320 char *yymsg = yymsgbuf;
2321 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2322 #endif
2324 /* Three stacks and their tools:
2325 `yyss': related to states,
2326 `yyvs': related to semantic values,
2327 `yyls': related to locations.
2329 Refer to the stacks thru separate pointers, to allow yyoverflow
2330 to reallocate them elsewhere. */
2332 /* The state stack. */
2333 yytype_int16 yyssa[YYINITDEPTH];
2334 yytype_int16 *yyss = yyssa;
2335 yytype_int16 *yyssp;
2337 /* The semantic value stack. */
2338 YYSTYPE yyvsa[YYINITDEPTH];
2339 YYSTYPE *yyvs = yyvsa;
2340 YYSTYPE *yyvsp;
2344 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2346 YYSIZE_T yystacksize = YYINITDEPTH;
2348 /* The variables used to return semantic value and location from the
2349 action routines. */
2350 YYSTYPE yyval;
2353 /* The number of symbols on the RHS of the reduced rule.
2354 Keep to zero when no symbol should be popped. */
2355 int yylen = 0;
2357 YYDPRINTF ((stderr, "Starting parse\n"));
2359 yystate = 0;
2360 yyerrstatus = 0;
2361 yynerrs = 0;
2362 yychar = YYEMPTY; /* Cause a token to be read. */
2364 /* Initialize stack pointers.
2365 Waste one element of value and location stack
2366 so that they stay on the same level as the state stack.
2367 The wasted elements are never initialized. */
2369 yyssp = yyss;
2370 yyvsp = yyvs;
2372 goto yysetstate;
2374 /*------------------------------------------------------------.
2375 | yynewstate -- Push a new state, which is found in yystate. |
2376 `------------------------------------------------------------*/
2377 yynewstate:
2378 /* In all cases, when you get here, the value and location stacks
2379 have just been pushed. So pushing a state here evens the stacks. */
2380 yyssp++;
2382 yysetstate:
2383 *yyssp = yystate;
2385 if (yyss + yystacksize - 1 <= yyssp)
2387 /* Get the current used size of the three stacks, in elements. */
2388 YYSIZE_T yysize = yyssp - yyss + 1;
2390 #ifdef yyoverflow
2392 /* Give user a chance to reallocate the stack. Use copies of
2393 these so that the &'s don't force the real ones into
2394 memory. */
2395 YYSTYPE *yyvs1 = yyvs;
2396 yytype_int16 *yyss1 = yyss;
2399 /* Each stack pointer address is followed by the size of the
2400 data in use in that stack, in bytes. This used to be a
2401 conditional around just the two extra args, but that might
2402 be undefined if yyoverflow is a macro. */
2403 yyoverflow (YY_("memory exhausted"),
2404 &yyss1, yysize * sizeof (*yyssp),
2405 &yyvs1, yysize * sizeof (*yyvsp),
2407 &yystacksize);
2409 yyss = yyss1;
2410 yyvs = yyvs1;
2412 #else /* no yyoverflow */
2413 # ifndef YYSTACK_RELOCATE
2414 goto yyexhaustedlab;
2415 # else
2416 /* Extend the stack our own way. */
2417 if (YYMAXDEPTH <= yystacksize)
2418 goto yyexhaustedlab;
2419 yystacksize *= 2;
2420 if (YYMAXDEPTH < yystacksize)
2421 yystacksize = YYMAXDEPTH;
2424 yytype_int16 *yyss1 = yyss;
2425 union yyalloc *yyptr =
2426 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2427 if (! yyptr)
2428 goto yyexhaustedlab;
2429 YYSTACK_RELOCATE (yyss);
2430 YYSTACK_RELOCATE (yyvs);
2432 # undef YYSTACK_RELOCATE
2433 if (yyss1 != yyssa)
2434 YYSTACK_FREE (yyss1);
2436 # endif
2437 #endif /* no yyoverflow */
2439 yyssp = yyss + yysize - 1;
2440 yyvsp = yyvs + yysize - 1;
2443 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2444 (unsigned long int) yystacksize));
2446 if (yyss + yystacksize - 1 <= yyssp)
2447 YYABORT;
2450 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2452 goto yybackup;
2454 /*-----------.
2455 | yybackup. |
2456 `-----------*/
2457 yybackup:
2459 /* Do appropriate processing given the current state. Read a
2460 look-ahead token if we need one and don't already have one. */
2462 /* First try to decide what to do without reference to look-ahead token. */
2463 yyn = yypact[yystate];
2464 if (yyn == YYPACT_NINF)
2465 goto yydefault;
2467 /* Not known => get a look-ahead token if don't already have one. */
2469 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
2470 if (yychar == YYEMPTY)
2472 YYDPRINTF ((stderr, "Reading a token: "));
2473 yychar = YYLEX;
2476 if (yychar <= YYEOF)
2478 yychar = yytoken = YYEOF;
2479 YYDPRINTF ((stderr, "Now at end of input.\n"));
2481 else
2483 yytoken = YYTRANSLATE (yychar);
2484 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2487 /* If the proper action on seeing token YYTOKEN is to reduce or to
2488 detect an error, take that action. */
2489 yyn += yytoken;
2490 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2491 goto yydefault;
2492 yyn = yytable[yyn];
2493 if (yyn <= 0)
2495 if (yyn == 0 || yyn == YYTABLE_NINF)
2496 goto yyerrlab;
2497 yyn = -yyn;
2498 goto yyreduce;
2501 if (yyn == YYFINAL)
2502 YYACCEPT;
2504 /* Count tokens shifted since error; after three, turn off error
2505 status. */
2506 if (yyerrstatus)
2507 yyerrstatus--;
2509 /* Shift the look-ahead token. */
2510 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2512 /* Discard the shifted token unless it is eof. */
2513 if (yychar != YYEOF)
2514 yychar = YYEMPTY;
2516 yystate = yyn;
2517 *++yyvsp = yylval;
2519 goto yynewstate;
2522 /*-----------------------------------------------------------.
2523 | yydefault -- do the default action for the current state. |
2524 `-----------------------------------------------------------*/
2525 yydefault:
2526 yyn = yydefact[yystate];
2527 if (yyn == 0)
2528 goto yyerrlab;
2529 goto yyreduce;
2532 /*-----------------------------.
2533 | yyreduce -- Do a reduction. |
2534 `-----------------------------*/
2535 yyreduce:
2536 /* yyn is the number of a rule to reduce with. */
2537 yylen = yyr2[yyn];
2539 /* If YYLEN is nonzero, implement the default value of the action:
2540 `$$ = $1'.
2542 Otherwise, the following line sets YYVAL to garbage.
2543 This behavior is undocumented and Bison
2544 users should not rely upon it. Assigning to YYVAL
2545 unconditionally makes the parser a bit smaller, and it avoids a
2546 GCC warning that YYVAL may be used uninitialized. */
2547 yyval = yyvsp[1-yylen];
2550 YY_REDUCE_PRINT (yyn);
2551 switch (yyn)
2553 case 8:
2554 #line 174 "ldgram.y"
2555 { ldlex_defsym(); }
2556 break;
2558 case 9:
2559 #line 176 "ldgram.y"
2561 ldlex_popstate();
2562 lang_add_assignment(exp_assop((yyvsp[(3) - (4)].token),(yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)));
2564 break;
2566 case 10:
2567 #line 184 "ldgram.y"
2569 ldlex_mri_script ();
2570 PUSH_ERROR (_("MRI style script"));
2572 break;
2574 case 11:
2575 #line 189 "ldgram.y"
2577 ldlex_popstate ();
2578 mri_draw_tree ();
2579 POP_ERROR ();
2581 break;
2583 case 16:
2584 #line 204 "ldgram.y"
2586 einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[(1) - (1)].name));
2588 break;
2590 case 17:
2591 #line 207 "ldgram.y"
2593 config.map_filename = "-";
2595 break;
2597 case 20:
2598 #line 213 "ldgram.y"
2599 { mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
2600 break;
2602 case 21:
2603 #line 215 "ldgram.y"
2604 { mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
2605 break;
2607 case 22:
2608 #line 217 "ldgram.y"
2609 { mri_public((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree)); }
2610 break;
2612 case 23:
2613 #line 219 "ldgram.y"
2614 { mri_format((yyvsp[(2) - (2)].name)); }
2615 break;
2617 case 24:
2618 #line 221 "ldgram.y"
2619 { mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
2620 break;
2622 case 25:
2623 #line 223 "ldgram.y"
2624 { mri_output_section((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree));}
2625 break;
2627 case 26:
2628 #line 225 "ldgram.y"
2629 { mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
2630 break;
2632 case 27:
2633 #line 227 "ldgram.y"
2634 { mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
2635 break;
2637 case 28:
2638 #line 229 "ldgram.y"
2639 { mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
2640 break;
2642 case 29:
2643 #line 231 "ldgram.y"
2644 { mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
2645 break;
2647 case 30:
2648 #line 233 "ldgram.y"
2649 { mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
2650 break;
2652 case 33:
2653 #line 237 "ldgram.y"
2654 { mri_name((yyvsp[(2) - (2)].name)); }
2655 break;
2657 case 34:
2658 #line 239 "ldgram.y"
2659 { mri_alias((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].name),0);}
2660 break;
2662 case 35:
2663 #line 241 "ldgram.y"
2664 { mri_alias ((yyvsp[(2) - (4)].name), 0, (int) (yyvsp[(4) - (4)].bigint).integer); }
2665 break;
2667 case 36:
2668 #line 243 "ldgram.y"
2669 { mri_base((yyvsp[(2) - (2)].etree)); }
2670 break;
2672 case 37:
2673 #line 245 "ldgram.y"
2674 { mri_truncate ((unsigned int) (yyvsp[(2) - (2)].bigint).integer); }
2675 break;
2677 case 40:
2678 #line 249 "ldgram.y"
2679 { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
2680 break;
2682 case 41:
2683 #line 251 "ldgram.y"
2684 { ldlex_popstate (); }
2685 break;
2687 case 42:
2688 #line 253 "ldgram.y"
2689 { lang_add_entry ((yyvsp[(2) - (2)].name), FALSE); }
2690 break;
2692 case 44:
2693 #line 258 "ldgram.y"
2694 { mri_order((yyvsp[(3) - (3)].name)); }
2695 break;
2697 case 45:
2698 #line 259 "ldgram.y"
2699 { mri_order((yyvsp[(2) - (2)].name)); }
2700 break;
2702 case 47:
2703 #line 265 "ldgram.y"
2704 { mri_load((yyvsp[(1) - (1)].name)); }
2705 break;
2707 case 48:
2708 #line 266 "ldgram.y"
2709 { mri_load((yyvsp[(3) - (3)].name)); }
2710 break;
2712 case 49:
2713 #line 271 "ldgram.y"
2714 { mri_only_load((yyvsp[(1) - (1)].name)); }
2715 break;
2717 case 50:
2718 #line 273 "ldgram.y"
2719 { mri_only_load((yyvsp[(3) - (3)].name)); }
2720 break;
2722 case 51:
2723 #line 277 "ldgram.y"
2724 { (yyval.name) = NULL; }
2725 break;
2727 case 54:
2728 #line 284 "ldgram.y"
2729 { ldlex_expression (); }
2730 break;
2732 case 55:
2733 #line 286 "ldgram.y"
2734 { ldlex_popstate (); }
2735 break;
2737 case 56:
2738 #line 290 "ldgram.y"
2739 { ldlang_add_undef ((yyvsp[(1) - (1)].name)); }
2740 break;
2742 case 57:
2743 #line 292 "ldgram.y"
2744 { ldlang_add_undef ((yyvsp[(2) - (2)].name)); }
2745 break;
2747 case 58:
2748 #line 294 "ldgram.y"
2749 { ldlang_add_undef ((yyvsp[(3) - (3)].name)); }
2750 break;
2752 case 59:
2753 #line 298 "ldgram.y"
2754 { ldlex_both(); }
2755 break;
2757 case 60:
2758 #line 300 "ldgram.y"
2759 { ldlex_popstate(); }
2760 break;
2762 case 73:
2763 #line 321 "ldgram.y"
2764 { lang_add_target((yyvsp[(3) - (4)].name)); }
2765 break;
2767 case 74:
2768 #line 323 "ldgram.y"
2769 { ldfile_add_library_path ((yyvsp[(3) - (4)].name), FALSE); }
2770 break;
2772 case 75:
2773 #line 325 "ldgram.y"
2774 { lang_add_output((yyvsp[(3) - (4)].name), 1); }
2775 break;
2777 case 76:
2778 #line 327 "ldgram.y"
2779 { lang_add_output_format ((yyvsp[(3) - (4)].name), (char *) NULL,
2780 (char *) NULL, 1); }
2781 break;
2783 case 77:
2784 #line 330 "ldgram.y"
2785 { lang_add_output_format ((yyvsp[(3) - (8)].name), (yyvsp[(5) - (8)].name), (yyvsp[(7) - (8)].name), 1); }
2786 break;
2788 case 78:
2789 #line 332 "ldgram.y"
2790 { ldfile_set_output_arch ((yyvsp[(3) - (4)].name), bfd_arch_unknown); }
2791 break;
2793 case 79:
2794 #line 334 "ldgram.y"
2795 { command_line.force_common_definition = TRUE ; }
2796 break;
2798 case 80:
2799 #line 336 "ldgram.y"
2800 { command_line.inhibit_common_definition = TRUE ; }
2801 break;
2803 case 82:
2804 #line 339 "ldgram.y"
2805 { lang_enter_group (); }
2806 break;
2808 case 83:
2809 #line 341 "ldgram.y"
2810 { lang_leave_group (); }
2811 break;
2813 case 84:
2814 #line 343 "ldgram.y"
2815 { lang_add_map((yyvsp[(3) - (4)].name)); }
2816 break;
2818 case 85:
2819 #line 345 "ldgram.y"
2820 { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
2821 break;
2823 case 86:
2824 #line 347 "ldgram.y"
2825 { ldlex_popstate (); }
2826 break;
2828 case 87:
2829 #line 349 "ldgram.y"
2831 lang_add_nocrossref ((yyvsp[(3) - (4)].nocrossref));
2833 break;
2835 case 89:
2836 #line 354 "ldgram.y"
2837 { lang_add_insert ((yyvsp[(3) - (3)].name), 0); }
2838 break;
2840 case 90:
2841 #line 356 "ldgram.y"
2842 { lang_add_insert ((yyvsp[(3) - (3)].name), 1); }
2843 break;
2845 case 91:
2846 #line 358 "ldgram.y"
2847 { lang_memory_region_alias ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].name)); }
2848 break;
2850 case 92:
2851 #line 363 "ldgram.y"
2852 { lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_search_file_enum,
2853 (char *)NULL); }
2854 break;
2856 case 93:
2857 #line 366 "ldgram.y"
2858 { lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_search_file_enum,
2859 (char *)NULL); }
2860 break;
2862 case 94:
2863 #line 369 "ldgram.y"
2864 { lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_search_file_enum,
2865 (char *)NULL); }
2866 break;
2868 case 95:
2869 #line 372 "ldgram.y"
2870 { lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_l_enum,
2871 (char *)NULL); }
2872 break;
2874 case 96:
2875 #line 375 "ldgram.y"
2876 { lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_l_enum,
2877 (char *)NULL); }
2878 break;
2880 case 97:
2881 #line 378 "ldgram.y"
2882 { lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_l_enum,
2883 (char *)NULL); }
2884 break;
2886 case 98:
2887 #line 381 "ldgram.y"
2888 { (yyval.integer) = as_needed; as_needed = TRUE; }
2889 break;
2891 case 99:
2892 #line 383 "ldgram.y"
2893 { as_needed = (yyvsp[(3) - (5)].integer); }
2894 break;
2896 case 100:
2897 #line 385 "ldgram.y"
2898 { (yyval.integer) = as_needed; as_needed = TRUE; }
2899 break;
2901 case 101:
2902 #line 387 "ldgram.y"
2903 { as_needed = (yyvsp[(5) - (7)].integer); }
2904 break;
2906 case 102:
2907 #line 389 "ldgram.y"
2908 { (yyval.integer) = as_needed; as_needed = TRUE; }
2909 break;
2911 case 103:
2912 #line 391 "ldgram.y"
2913 { as_needed = (yyvsp[(4) - (6)].integer); }
2914 break;
2916 case 108:
2917 #line 406 "ldgram.y"
2918 { lang_add_entry ((yyvsp[(3) - (4)].name), FALSE); }
2919 break;
2921 case 110:
2922 #line 408 "ldgram.y"
2923 {ldlex_expression ();}
2924 break;
2926 case 111:
2927 #line 409 "ldgram.y"
2928 { ldlex_popstate ();
2929 lang_add_assignment (exp_assert ((yyvsp[(4) - (7)].etree), (yyvsp[(6) - (7)].name))); }
2930 break;
2932 case 112:
2933 #line 417 "ldgram.y"
2935 (yyval.cname) = (yyvsp[(1) - (1)].name);
2937 break;
2939 case 113:
2940 #line 421 "ldgram.y"
2942 (yyval.cname) = "*";
2944 break;
2946 case 114:
2947 #line 425 "ldgram.y"
2949 (yyval.cname) = "?";
2951 break;
2953 case 115:
2954 #line 432 "ldgram.y"
2956 (yyval.wildcard).name = (yyvsp[(1) - (1)].cname);
2957 (yyval.wildcard).sorted = none;
2958 (yyval.wildcard).exclude_name_list = NULL;
2960 break;
2962 case 116:
2963 #line 438 "ldgram.y"
2965 (yyval.wildcard).name = (yyvsp[(5) - (5)].cname);
2966 (yyval.wildcard).sorted = none;
2967 (yyval.wildcard).exclude_name_list = (yyvsp[(3) - (5)].name_list);
2969 break;
2971 case 117:
2972 #line 444 "ldgram.y"
2974 (yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
2975 (yyval.wildcard).sorted = by_name;
2976 (yyval.wildcard).exclude_name_list = NULL;
2978 break;
2980 case 118:
2981 #line 450 "ldgram.y"
2983 (yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
2984 (yyval.wildcard).sorted = by_alignment;
2985 (yyval.wildcard).exclude_name_list = NULL;
2987 break;
2989 case 119:
2990 #line 456 "ldgram.y"
2992 (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
2993 (yyval.wildcard).sorted = by_name_alignment;
2994 (yyval.wildcard).exclude_name_list = NULL;
2996 break;
2998 case 120:
2999 #line 462 "ldgram.y"
3001 (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
3002 (yyval.wildcard).sorted = by_name;
3003 (yyval.wildcard).exclude_name_list = NULL;
3005 break;
3007 case 121:
3008 #line 468 "ldgram.y"
3010 (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
3011 (yyval.wildcard).sorted = by_alignment_name;
3012 (yyval.wildcard).exclude_name_list = NULL;
3014 break;
3016 case 122:
3017 #line 474 "ldgram.y"
3019 (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
3020 (yyval.wildcard).sorted = by_alignment;
3021 (yyval.wildcard).exclude_name_list = NULL;
3023 break;
3025 case 123:
3026 #line 480 "ldgram.y"
3028 (yyval.wildcard).name = (yyvsp[(7) - (8)].cname);
3029 (yyval.wildcard).sorted = by_name;
3030 (yyval.wildcard).exclude_name_list = (yyvsp[(5) - (8)].name_list);
3032 break;
3034 case 124:
3035 #line 489 "ldgram.y"
3037 struct name_list *tmp;
3038 tmp = (struct name_list *) xmalloc (sizeof *tmp);
3039 tmp->name = (yyvsp[(2) - (2)].cname);
3040 tmp->next = (yyvsp[(1) - (2)].name_list);
3041 (yyval.name_list) = tmp;
3043 break;
3045 case 125:
3046 #line 498 "ldgram.y"
3048 struct name_list *tmp;
3049 tmp = (struct name_list *) xmalloc (sizeof *tmp);
3050 tmp->name = (yyvsp[(1) - (1)].cname);
3051 tmp->next = NULL;
3052 (yyval.name_list) = tmp;
3054 break;
3056 case 126:
3057 #line 509 "ldgram.y"
3059 struct wildcard_list *tmp;
3060 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
3061 tmp->next = (yyvsp[(1) - (3)].wildcard_list);
3062 tmp->spec = (yyvsp[(3) - (3)].wildcard);
3063 (yyval.wildcard_list) = tmp;
3065 break;
3067 case 127:
3068 #line 518 "ldgram.y"
3070 struct wildcard_list *tmp;
3071 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
3072 tmp->next = NULL;
3073 tmp->spec = (yyvsp[(1) - (1)].wildcard);
3074 (yyval.wildcard_list) = tmp;
3076 break;
3078 case 128:
3079 #line 529 "ldgram.y"
3081 struct wildcard_spec tmp;
3082 tmp.name = (yyvsp[(1) - (1)].name);
3083 tmp.exclude_name_list = NULL;
3084 tmp.sorted = none;
3085 lang_add_wild (&tmp, NULL, ldgram_had_keep);
3087 break;
3089 case 129:
3090 #line 537 "ldgram.y"
3092 lang_add_wild (NULL, (yyvsp[(2) - (3)].wildcard_list), ldgram_had_keep);
3094 break;
3096 case 130:
3097 #line 541 "ldgram.y"
3099 lang_add_wild (&(yyvsp[(1) - (4)].wildcard), (yyvsp[(3) - (4)].wildcard_list), ldgram_had_keep);
3101 break;
3103 case 132:
3104 #line 549 "ldgram.y"
3105 { ldgram_had_keep = TRUE; }
3106 break;
3108 case 133:
3109 #line 551 "ldgram.y"
3110 { ldgram_had_keep = FALSE; }
3111 break;
3113 case 135:
3114 #line 557 "ldgram.y"
3116 lang_add_attribute(lang_object_symbols_statement_enum);
3118 break;
3120 case 137:
3121 #line 562 "ldgram.y"
3124 lang_add_attribute(lang_constructors_statement_enum);
3126 break;
3128 case 138:
3129 #line 567 "ldgram.y"
3131 constructors_sorted = TRUE;
3132 lang_add_attribute (lang_constructors_statement_enum);
3134 break;
3136 case 140:
3137 #line 573 "ldgram.y"
3139 lang_add_data ((int) (yyvsp[(1) - (4)].integer), (yyvsp[(3) - (4)].etree));
3141 break;
3143 case 141:
3144 #line 578 "ldgram.y"
3146 lang_add_fill ((yyvsp[(3) - (4)].fill));
3148 break;
3150 case 142:
3151 #line 581 "ldgram.y"
3152 {ldlex_expression ();}
3153 break;
3155 case 143:
3156 #line 582 "ldgram.y"
3157 { ldlex_popstate ();
3158 lang_add_assignment (exp_assert ((yyvsp[(4) - (8)].etree), (yyvsp[(6) - (8)].name))); }
3159 break;
3161 case 144:
3162 #line 585 "ldgram.y"
3163 { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
3164 break;
3166 case 145:
3167 #line 587 "ldgram.y"
3168 { ldlex_popstate (); }
3169 break;
3171 case 150:
3172 #line 602 "ldgram.y"
3173 { (yyval.integer) = (yyvsp[(1) - (1)].token); }
3174 break;
3176 case 151:
3177 #line 604 "ldgram.y"
3178 { (yyval.integer) = (yyvsp[(1) - (1)].token); }
3179 break;
3181 case 152:
3182 #line 606 "ldgram.y"
3183 { (yyval.integer) = (yyvsp[(1) - (1)].token); }
3184 break;
3186 case 153:
3187 #line 608 "ldgram.y"
3188 { (yyval.integer) = (yyvsp[(1) - (1)].token); }
3189 break;
3191 case 154:
3192 #line 610 "ldgram.y"
3193 { (yyval.integer) = (yyvsp[(1) - (1)].token); }
3194 break;
3196 case 155:
3197 #line 615 "ldgram.y"
3199 (yyval.fill) = exp_get_fill ((yyvsp[(1) - (1)].etree), 0, "fill value");
3201 break;
3203 case 156:
3204 #line 622 "ldgram.y"
3205 { (yyval.fill) = (yyvsp[(2) - (2)].fill); }
3206 break;
3208 case 157:
3209 #line 623 "ldgram.y"
3210 { (yyval.fill) = (fill_type *) 0; }
3211 break;
3213 case 158:
3214 #line 628 "ldgram.y"
3215 { (yyval.token) = '+'; }
3216 break;
3218 case 159:
3219 #line 630 "ldgram.y"
3220 { (yyval.token) = '-'; }
3221 break;
3223 case 160:
3224 #line 632 "ldgram.y"
3225 { (yyval.token) = '*'; }
3226 break;
3228 case 161:
3229 #line 634 "ldgram.y"
3230 { (yyval.token) = '/'; }
3231 break;
3233 case 162:
3234 #line 636 "ldgram.y"
3235 { (yyval.token) = LSHIFT; }
3236 break;
3238 case 163:
3239 #line 638 "ldgram.y"
3240 { (yyval.token) = RSHIFT; }
3241 break;
3243 case 164:
3244 #line 640 "ldgram.y"
3245 { (yyval.token) = '&'; }
3246 break;
3248 case 165:
3249 #line 642 "ldgram.y"
3250 { (yyval.token) = '|'; }
3251 break;
3253 case 168:
3254 #line 652 "ldgram.y"
3256 lang_add_assignment (exp_assop ((yyvsp[(2) - (3)].token), (yyvsp[(1) - (3)].name), (yyvsp[(3) - (3)].etree)));
3258 break;
3260 case 169:
3261 #line 656 "ldgram.y"
3263 lang_add_assignment (exp_assop ('=', (yyvsp[(1) - (3)].name),
3264 exp_binop ((yyvsp[(2) - (3)].token),
3265 exp_nameop (NAME,
3266 (yyvsp[(1) - (3)].name)),
3267 (yyvsp[(3) - (3)].etree))));
3269 break;
3271 case 170:
3272 #line 664 "ldgram.y"
3274 lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), FALSE));
3276 break;
3278 case 171:
3279 #line 668 "ldgram.y"
3281 lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), TRUE));
3283 break;
3285 case 179:
3286 #line 691 "ldgram.y"
3287 { region = lang_memory_region_lookup ((yyvsp[(1) - (1)].name), TRUE); }
3288 break;
3290 case 180:
3291 #line 694 "ldgram.y"
3293 break;
3295 case 181:
3296 #line 696 "ldgram.y"
3297 { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
3298 break;
3300 case 182:
3301 #line 698 "ldgram.y"
3302 { ldlex_popstate (); }
3303 break;
3305 case 183:
3306 #line 703 "ldgram.y"
3308 region->origin = exp_get_vma ((yyvsp[(3) - (3)].etree), 0, "origin");
3309 region->current = region->origin;
3311 break;
3313 case 184:
3314 #line 711 "ldgram.y"
3316 region->length = exp_get_vma ((yyvsp[(3) - (3)].etree), -1, "length");
3318 break;
3320 case 185:
3321 #line 718 "ldgram.y"
3322 { /* dummy action to avoid bison 1.25 error message */ }
3323 break;
3325 case 189:
3326 #line 729 "ldgram.y"
3327 { lang_set_flags (region, (yyvsp[(1) - (1)].name), 0); }
3328 break;
3330 case 190:
3331 #line 731 "ldgram.y"
3332 { lang_set_flags (region, (yyvsp[(2) - (2)].name), 1); }
3333 break;
3335 case 191:
3336 #line 736 "ldgram.y"
3337 { lang_startup((yyvsp[(3) - (4)].name)); }
3338 break;
3340 case 193:
3341 #line 742 "ldgram.y"
3342 { ldemul_hll((char *)NULL); }
3343 break;
3345 case 194:
3346 #line 747 "ldgram.y"
3347 { ldemul_hll((yyvsp[(3) - (3)].name)); }
3348 break;
3350 case 195:
3351 #line 749 "ldgram.y"
3352 { ldemul_hll((yyvsp[(1) - (1)].name)); }
3353 break;
3355 case 197:
3356 #line 757 "ldgram.y"
3357 { ldemul_syslib((yyvsp[(3) - (3)].name)); }
3358 break;
3360 case 199:
3361 #line 763 "ldgram.y"
3362 { lang_float(TRUE); }
3363 break;
3365 case 200:
3366 #line 765 "ldgram.y"
3367 { lang_float(FALSE); }
3368 break;
3370 case 201:
3371 #line 770 "ldgram.y"
3373 (yyval.nocrossref) = NULL;
3375 break;
3377 case 202:
3378 #line 774 "ldgram.y"
3380 struct lang_nocrossref *n;
3382 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
3383 n->name = (yyvsp[(1) - (2)].name);
3384 n->next = (yyvsp[(2) - (2)].nocrossref);
3385 (yyval.nocrossref) = n;
3387 break;
3389 case 203:
3390 #line 783 "ldgram.y"
3392 struct lang_nocrossref *n;
3394 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
3395 n->name = (yyvsp[(1) - (3)].name);
3396 n->next = (yyvsp[(3) - (3)].nocrossref);
3397 (yyval.nocrossref) = n;
3399 break;
3401 case 204:
3402 #line 793 "ldgram.y"
3403 { ldlex_expression (); }
3404 break;
3406 case 205:
3407 #line 795 "ldgram.y"
3408 { ldlex_popstate (); (yyval.etree)=(yyvsp[(2) - (2)].etree);}
3409 break;
3411 case 206:
3412 #line 800 "ldgram.y"
3413 { (yyval.etree) = exp_unop ('-', (yyvsp[(2) - (2)].etree)); }
3414 break;
3416 case 207:
3417 #line 802 "ldgram.y"
3418 { (yyval.etree) = (yyvsp[(2) - (3)].etree); }
3419 break;
3421 case 208:
3422 #line 804 "ldgram.y"
3423 { (yyval.etree) = exp_unop ((int) (yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].etree)); }
3424 break;
3426 case 209:
3427 #line 806 "ldgram.y"
3428 { (yyval.etree) = exp_unop ('!', (yyvsp[(2) - (2)].etree)); }
3429 break;
3431 case 210:
3432 #line 808 "ldgram.y"
3433 { (yyval.etree) = (yyvsp[(2) - (2)].etree); }
3434 break;
3436 case 211:
3437 #line 810 "ldgram.y"
3438 { (yyval.etree) = exp_unop ('~', (yyvsp[(2) - (2)].etree));}
3439 break;
3441 case 212:
3442 #line 813 "ldgram.y"
3443 { (yyval.etree) = exp_binop ('*', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3444 break;
3446 case 213:
3447 #line 815 "ldgram.y"
3448 { (yyval.etree) = exp_binop ('/', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3449 break;
3451 case 214:
3452 #line 817 "ldgram.y"
3453 { (yyval.etree) = exp_binop ('%', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3454 break;
3456 case 215:
3457 #line 819 "ldgram.y"
3458 { (yyval.etree) = exp_binop ('+', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3459 break;
3461 case 216:
3462 #line 821 "ldgram.y"
3463 { (yyval.etree) = exp_binop ('-' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3464 break;
3466 case 217:
3467 #line 823 "ldgram.y"
3468 { (yyval.etree) = exp_binop (LSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3469 break;
3471 case 218:
3472 #line 825 "ldgram.y"
3473 { (yyval.etree) = exp_binop (RSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3474 break;
3476 case 219:
3477 #line 827 "ldgram.y"
3478 { (yyval.etree) = exp_binop (EQ , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3479 break;
3481 case 220:
3482 #line 829 "ldgram.y"
3483 { (yyval.etree) = exp_binop (NE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3484 break;
3486 case 221:
3487 #line 831 "ldgram.y"
3488 { (yyval.etree) = exp_binop (LE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3489 break;
3491 case 222:
3492 #line 833 "ldgram.y"
3493 { (yyval.etree) = exp_binop (GE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3494 break;
3496 case 223:
3497 #line 835 "ldgram.y"
3498 { (yyval.etree) = exp_binop ('<' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3499 break;
3501 case 224:
3502 #line 837 "ldgram.y"
3503 { (yyval.etree) = exp_binop ('>' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3504 break;
3506 case 225:
3507 #line 839 "ldgram.y"
3508 { (yyval.etree) = exp_binop ('&' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3509 break;
3511 case 226:
3512 #line 841 "ldgram.y"
3513 { (yyval.etree) = exp_binop ('^' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3514 break;
3516 case 227:
3517 #line 843 "ldgram.y"
3518 { (yyval.etree) = exp_binop ('|' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3519 break;
3521 case 228:
3522 #line 845 "ldgram.y"
3523 { (yyval.etree) = exp_trinop ('?' , (yyvsp[(1) - (5)].etree), (yyvsp[(3) - (5)].etree), (yyvsp[(5) - (5)].etree)); }
3524 break;
3526 case 229:
3527 #line 847 "ldgram.y"
3528 { (yyval.etree) = exp_binop (ANDAND , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3529 break;
3531 case 230:
3532 #line 849 "ldgram.y"
3533 { (yyval.etree) = exp_binop (OROR , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
3534 break;
3536 case 231:
3537 #line 851 "ldgram.y"
3538 { (yyval.etree) = exp_nameop (DEFINED, (yyvsp[(3) - (4)].name)); }
3539 break;
3541 case 232:
3542 #line 853 "ldgram.y"
3543 { (yyval.etree) = exp_bigintop ((yyvsp[(1) - (1)].bigint).integer, (yyvsp[(1) - (1)].bigint).str); }
3544 break;
3546 case 233:
3547 #line 855 "ldgram.y"
3548 { (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); }
3549 break;
3551 case 234:
3552 #line 858 "ldgram.y"
3553 { (yyval.etree) = exp_nameop (ALIGNOF,(yyvsp[(3) - (4)].name)); }
3554 break;
3556 case 235:
3557 #line 860 "ldgram.y"
3558 { (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[(3) - (4)].name)); }
3559 break;
3561 case 236:
3562 #line 862 "ldgram.y"
3563 { (yyval.etree) = exp_nameop (ADDR,(yyvsp[(3) - (4)].name)); }
3564 break;
3566 case 237:
3567 #line 864 "ldgram.y"
3568 { (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[(3) - (4)].name)); }
3569 break;
3571 case 238:
3572 #line 866 "ldgram.y"
3573 { (yyval.etree) = exp_nameop (CONSTANT,(yyvsp[(3) - (4)].name)); }
3574 break;
3576 case 239:
3577 #line 868 "ldgram.y"
3578 { (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[(3) - (4)].etree)); }
3579 break;
3581 case 240:
3582 #line 870 "ldgram.y"
3583 { (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
3584 break;
3586 case 241:
3587 #line 872 "ldgram.y"
3588 { (yyval.etree) = exp_binop (ALIGN_K,(yyvsp[(3) - (6)].etree),(yyvsp[(5) - (6)].etree)); }
3589 break;
3591 case 242:
3592 #line 874 "ldgram.y"
3593 { (yyval.etree) = exp_binop (DATA_SEGMENT_ALIGN, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree)); }
3594 break;
3596 case 243:
3597 #line 876 "ldgram.y"
3598 { (yyval.etree) = exp_binop (DATA_SEGMENT_RELRO_END, (yyvsp[(5) - (6)].etree), (yyvsp[(3) - (6)].etree)); }
3599 break;
3601 case 244:
3602 #line 878 "ldgram.y"
3603 { (yyval.etree) = exp_unop (DATA_SEGMENT_END, (yyvsp[(3) - (4)].etree)); }
3604 break;
3606 case 245:
3607 #line 880 "ldgram.y"
3608 { /* The operands to the expression node are
3609 placed in the opposite order from the way
3610 in which they appear in the script as
3611 that allows us to reuse more code in
3612 fold_binary. */
3613 (yyval.etree) = exp_binop (SEGMENT_START,
3614 (yyvsp[(5) - (6)].etree),
3615 exp_nameop (NAME, (yyvsp[(3) - (6)].name))); }
3616 break;
3618 case 246:
3619 #line 889 "ldgram.y"
3620 { (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
3621 break;
3623 case 247:
3624 #line 891 "ldgram.y"
3625 { (yyval.etree) = exp_nameop (NAME,(yyvsp[(1) - (1)].name)); }
3626 break;
3628 case 248:
3629 #line 893 "ldgram.y"
3630 { (yyval.etree) = exp_binop (MAX_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
3631 break;
3633 case 249:
3634 #line 895 "ldgram.y"
3635 { (yyval.etree) = exp_binop (MIN_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
3636 break;
3638 case 250:
3639 #line 897 "ldgram.y"
3640 { (yyval.etree) = exp_assert ((yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].name)); }
3641 break;
3643 case 251:
3644 #line 899 "ldgram.y"
3645 { (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[(3) - (4)].name)); }
3646 break;
3648 case 252:
3649 #line 901 "ldgram.y"
3650 { (yyval.etree) = exp_nameop (LENGTH, (yyvsp[(3) - (4)].name)); }
3651 break;
3653 case 253:
3654 #line 906 "ldgram.y"
3655 { (yyval.name) = (yyvsp[(3) - (3)].name); }
3656 break;
3658 case 254:
3659 #line 907 "ldgram.y"
3660 { (yyval.name) = 0; }
3661 break;
3663 case 255:
3664 #line 911 "ldgram.y"
3665 { (yyval.etree) = (yyvsp[(3) - (4)].etree); }
3666 break;
3668 case 256:
3669 #line 912 "ldgram.y"
3670 { (yyval.etree) = 0; }
3671 break;
3673 case 257:
3674 #line 916 "ldgram.y"
3675 { (yyval.etree) = (yyvsp[(3) - (4)].etree); }
3676 break;
3678 case 258:
3679 #line 917 "ldgram.y"
3680 { (yyval.etree) = 0; }
3681 break;
3683 case 259:
3684 #line 921 "ldgram.y"
3685 { (yyval.etree) = (yyvsp[(3) - (4)].etree); }
3686 break;
3688 case 260:
3689 #line 922 "ldgram.y"
3690 { (yyval.etree) = 0; }
3691 break;
3693 case 261:
3694 #line 926 "ldgram.y"
3695 { (yyval.token) = ONLY_IF_RO; }
3696 break;
3698 case 262:
3699 #line 927 "ldgram.y"
3700 { (yyval.token) = ONLY_IF_RW; }
3701 break;
3703 case 263:
3704 #line 928 "ldgram.y"
3705 { (yyval.token) = SPECIAL; }
3706 break;
3708 case 264:
3709 #line 929 "ldgram.y"
3710 { (yyval.token) = 0; }
3711 break;
3713 case 265:
3714 #line 932 "ldgram.y"
3715 { ldlex_expression(); }
3716 break;
3718 case 266:
3719 #line 936 "ldgram.y"
3720 { ldlex_popstate (); ldlex_script (); }
3721 break;
3723 case 267:
3724 #line 939 "ldgram.y"
3726 lang_enter_output_section_statement((yyvsp[(1) - (9)].name), (yyvsp[(3) - (9)].etree),
3727 sectype,
3728 (yyvsp[(5) - (9)].etree), (yyvsp[(6) - (9)].etree), (yyvsp[(4) - (9)].etree), (yyvsp[(8) - (9)].token));
3730 break;
3732 case 268:
3733 #line 945 "ldgram.y"
3734 { ldlex_popstate (); ldlex_expression (); }
3735 break;
3737 case 269:
3738 #line 947 "ldgram.y"
3740 ldlex_popstate ();
3741 lang_leave_output_section_statement ((yyvsp[(17) - (17)].fill), (yyvsp[(14) - (17)].name), (yyvsp[(16) - (17)].section_phdr), (yyvsp[(15) - (17)].name));
3743 break;
3745 case 270:
3746 #line 952 "ldgram.y"
3748 break;
3750 case 271:
3751 #line 954 "ldgram.y"
3752 { ldlex_expression (); }
3753 break;
3755 case 272:
3756 #line 956 "ldgram.y"
3757 { ldlex_popstate (); ldlex_script (); }
3758 break;
3760 case 273:
3761 #line 958 "ldgram.y"
3763 lang_enter_overlay ((yyvsp[(3) - (8)].etree), (yyvsp[(6) - (8)].etree));
3765 break;
3767 case 274:
3768 #line 963 "ldgram.y"
3769 { ldlex_popstate (); ldlex_expression (); }
3770 break;
3772 case 275:
3773 #line 965 "ldgram.y"
3775 ldlex_popstate ();
3776 lang_leave_overlay ((yyvsp[(5) - (16)].etree), (int) (yyvsp[(4) - (16)].integer),
3777 (yyvsp[(16) - (16)].fill), (yyvsp[(13) - (16)].name), (yyvsp[(15) - (16)].section_phdr), (yyvsp[(14) - (16)].name));
3779 break;
3781 case 277:
3782 #line 975 "ldgram.y"
3783 { ldlex_expression (); }
3784 break;
3786 case 278:
3787 #line 977 "ldgram.y"
3789 ldlex_popstate ();
3790 lang_add_assignment (exp_assop ('=', ".", (yyvsp[(3) - (3)].etree)));
3792 break;
3794 case 280:
3795 #line 983 "ldgram.y"
3796 { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
3797 break;
3799 case 281:
3800 #line 985 "ldgram.y"
3801 { ldlex_popstate (); }
3802 break;
3804 case 282:
3805 #line 989 "ldgram.y"
3806 { sectype = noload_section; }
3807 break;
3809 case 283:
3810 #line 990 "ldgram.y"
3811 { sectype = noalloc_section; }
3812 break;
3814 case 284:
3815 #line 991 "ldgram.y"
3816 { sectype = noalloc_section; }
3817 break;
3819 case 285:
3820 #line 992 "ldgram.y"
3821 { sectype = noalloc_section; }
3822 break;
3824 case 286:
3825 #line 993 "ldgram.y"
3826 { sectype = noalloc_section; }
3827 break;
3829 case 288:
3830 #line 998 "ldgram.y"
3831 { sectype = normal_section; }
3832 break;
3834 case 289:
3835 #line 999 "ldgram.y"
3836 { sectype = normal_section; }
3837 break;
3839 case 290:
3840 #line 1003 "ldgram.y"
3841 { (yyval.etree) = (yyvsp[(1) - (3)].etree); }
3842 break;
3844 case 291:
3845 #line 1004 "ldgram.y"
3846 { (yyval.etree) = (etree_type *)NULL; }
3847 break;
3849 case 292:
3850 #line 1009 "ldgram.y"
3851 { (yyval.etree) = (yyvsp[(3) - (6)].etree); }
3852 break;
3854 case 293:
3855 #line 1011 "ldgram.y"
3856 { (yyval.etree) = (yyvsp[(3) - (10)].etree); }
3857 break;
3859 case 294:
3860 #line 1015 "ldgram.y"
3861 { (yyval.etree) = (yyvsp[(1) - (2)].etree); }
3862 break;
3864 case 295:
3865 #line 1016 "ldgram.y"
3866 { (yyval.etree) = (etree_type *) NULL; }
3867 break;
3869 case 296:
3870 #line 1021 "ldgram.y"
3871 { (yyval.integer) = 0; }
3872 break;
3874 case 297:
3875 #line 1023 "ldgram.y"
3876 { (yyval.integer) = 1; }
3877 break;
3879 case 298:
3880 #line 1028 "ldgram.y"
3881 { (yyval.name) = (yyvsp[(2) - (2)].name); }
3882 break;
3884 case 299:
3885 #line 1029 "ldgram.y"
3886 { (yyval.name) = DEFAULT_MEMORY_REGION; }
3887 break;
3889 case 300:
3890 #line 1034 "ldgram.y"
3892 (yyval.section_phdr) = NULL;
3894 break;
3896 case 301:
3897 #line 1038 "ldgram.y"
3899 struct lang_output_section_phdr_list *n;
3901 n = ((struct lang_output_section_phdr_list *)
3902 xmalloc (sizeof *n));
3903 n->name = (yyvsp[(3) - (3)].name);
3904 n->used = FALSE;
3905 n->next = (yyvsp[(1) - (3)].section_phdr);
3906 (yyval.section_phdr) = n;
3908 break;
3910 case 303:
3911 #line 1054 "ldgram.y"
3913 ldlex_script ();
3914 lang_enter_overlay_section ((yyvsp[(2) - (2)].name));
3916 break;
3918 case 304:
3919 #line 1059 "ldgram.y"
3920 { ldlex_popstate (); ldlex_expression (); }
3921 break;
3923 case 305:
3924 #line 1061 "ldgram.y"
3926 ldlex_popstate ();
3927 lang_leave_overlay_section ((yyvsp[(9) - (9)].fill), (yyvsp[(8) - (9)].section_phdr));
3929 break;
3931 case 310:
3932 #line 1078 "ldgram.y"
3933 { ldlex_expression (); }
3934 break;
3936 case 311:
3937 #line 1079 "ldgram.y"
3938 { ldlex_popstate (); }
3939 break;
3941 case 312:
3942 #line 1081 "ldgram.y"
3944 lang_new_phdr ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].etree), (yyvsp[(4) - (6)].phdr).filehdr, (yyvsp[(4) - (6)].phdr).phdrs, (yyvsp[(4) - (6)].phdr).at,
3945 (yyvsp[(4) - (6)].phdr).flags);
3947 break;
3949 case 313:
3950 #line 1089 "ldgram.y"
3952 (yyval.etree) = (yyvsp[(1) - (1)].etree);
3954 if ((yyvsp[(1) - (1)].etree)->type.node_class == etree_name
3955 && (yyvsp[(1) - (1)].etree)->type.node_code == NAME)
3957 const char *s;
3958 unsigned int i;
3959 static const char * const phdr_types[] =
3961 "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
3962 "PT_INTERP", "PT_NOTE", "PT_SHLIB",
3963 "PT_PHDR", "PT_TLS"
3966 s = (yyvsp[(1) - (1)].etree)->name.name;
3967 for (i = 0;
3968 i < sizeof phdr_types / sizeof phdr_types[0];
3969 i++)
3970 if (strcmp (s, phdr_types[i]) == 0)
3972 (yyval.etree) = exp_intop (i);
3973 break;
3975 if (i == sizeof phdr_types / sizeof phdr_types[0])
3977 if (strcmp (s, "PT_GNU_EH_FRAME") == 0)
3978 (yyval.etree) = exp_intop (0x6474e550);
3979 else if (strcmp (s, "PT_GNU_STACK") == 0)
3980 (yyval.etree) = exp_intop (0x6474e551);
3981 else
3983 einfo (_("\
3984 %X%P:%S: unknown phdr type `%s' (try integer literal)\n"),
3986 (yyval.etree) = exp_intop (0);
3991 break;
3993 case 314:
3994 #line 1133 "ldgram.y"
3996 memset (&(yyval.phdr), 0, sizeof (struct phdr_info));
3998 break;
4000 case 315:
4001 #line 1137 "ldgram.y"
4003 (yyval.phdr) = (yyvsp[(3) - (3)].phdr);
4004 if (strcmp ((yyvsp[(1) - (3)].name), "FILEHDR") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
4005 (yyval.phdr).filehdr = TRUE;
4006 else if (strcmp ((yyvsp[(1) - (3)].name), "PHDRS") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
4007 (yyval.phdr).phdrs = TRUE;
4008 else if (strcmp ((yyvsp[(1) - (3)].name), "FLAGS") == 0 && (yyvsp[(2) - (3)].etree) != NULL)
4009 (yyval.phdr).flags = (yyvsp[(2) - (3)].etree);
4010 else
4011 einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"), (yyvsp[(1) - (3)].name));
4013 break;
4015 case 316:
4016 #line 1149 "ldgram.y"
4018 (yyval.phdr) = (yyvsp[(5) - (5)].phdr);
4019 (yyval.phdr).at = (yyvsp[(3) - (5)].etree);
4021 break;
4023 case 317:
4024 #line 1157 "ldgram.y"
4026 (yyval.etree) = NULL;
4028 break;
4030 case 318:
4031 #line 1161 "ldgram.y"
4033 (yyval.etree) = (yyvsp[(2) - (3)].etree);
4035 break;
4037 case 319:
4038 #line 1167 "ldgram.y"
4040 ldlex_version_file ();
4041 PUSH_ERROR (_("dynamic list"));
4043 break;
4045 case 320:
4046 #line 1172 "ldgram.y"
4048 ldlex_popstate ();
4049 POP_ERROR ();
4051 break;
4053 case 324:
4054 #line 1189 "ldgram.y"
4056 lang_append_dynamic_list ((yyvsp[(1) - (2)].versyms));
4058 break;
4060 case 325:
4061 #line 1197 "ldgram.y"
4063 ldlex_version_file ();
4064 PUSH_ERROR (_("VERSION script"));
4066 break;
4068 case 326:
4069 #line 1202 "ldgram.y"
4071 ldlex_popstate ();
4072 POP_ERROR ();
4074 break;
4076 case 327:
4077 #line 1211 "ldgram.y"
4079 ldlex_version_script ();
4081 break;
4083 case 328:
4084 #line 1215 "ldgram.y"
4086 ldlex_popstate ();
4088 break;
4090 case 331:
4091 #line 1227 "ldgram.y"
4093 lang_register_vers_node (NULL, (yyvsp[(2) - (4)].versnode), NULL);
4095 break;
4097 case 332:
4098 #line 1231 "ldgram.y"
4100 lang_register_vers_node ((yyvsp[(1) - (5)].name), (yyvsp[(3) - (5)].versnode), NULL);
4102 break;
4104 case 333:
4105 #line 1235 "ldgram.y"
4107 lang_register_vers_node ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].versnode), (yyvsp[(5) - (6)].deflist));
4109 break;
4111 case 334:
4112 #line 1242 "ldgram.y"
4114 (yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[(1) - (1)].name));
4116 break;
4118 case 335:
4119 #line 1246 "ldgram.y"
4121 (yyval.deflist) = lang_add_vers_depend ((yyvsp[(1) - (2)].deflist), (yyvsp[(2) - (2)].name));
4123 break;
4125 case 336:
4126 #line 1253 "ldgram.y"
4128 (yyval.versnode) = lang_new_vers_node (NULL, NULL);
4130 break;
4132 case 337:
4133 #line 1257 "ldgram.y"
4135 (yyval.versnode) = lang_new_vers_node ((yyvsp[(1) - (2)].versyms), NULL);
4137 break;
4139 case 338:
4140 #line 1261 "ldgram.y"
4142 (yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (4)].versyms), NULL);
4144 break;
4146 case 339:
4147 #line 1265 "ldgram.y"
4149 (yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[(3) - (4)].versyms));
4151 break;
4153 case 340:
4154 #line 1269 "ldgram.y"
4156 (yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (8)].versyms), (yyvsp[(7) - (8)].versyms));
4158 break;
4160 case 341:
4161 #line 1276 "ldgram.y"
4163 (yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, FALSE);
4165 break;
4167 case 342:
4168 #line 1280 "ldgram.y"
4170 (yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, TRUE);
4172 break;
4174 case 343:
4175 #line 1284 "ldgram.y"
4177 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, FALSE);
4179 break;
4181 case 344:
4182 #line 1288 "ldgram.y"
4184 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, TRUE);
4186 break;
4188 case 345:
4189 #line 1292 "ldgram.y"
4191 (yyval.name) = ldgram_vers_current_lang;
4192 ldgram_vers_current_lang = (yyvsp[(4) - (5)].name);
4194 break;
4196 case 346:
4197 #line 1297 "ldgram.y"
4199 struct bfd_elf_version_expr *pat;
4200 for (pat = (yyvsp[(7) - (9)].versyms); pat->next != NULL; pat = pat->next);
4201 pat->next = (yyvsp[(1) - (9)].versyms);
4202 (yyval.versyms) = (yyvsp[(7) - (9)].versyms);
4203 ldgram_vers_current_lang = (yyvsp[(6) - (9)].name);
4205 break;
4207 case 347:
4208 #line 1305 "ldgram.y"
4210 (yyval.name) = ldgram_vers_current_lang;
4211 ldgram_vers_current_lang = (yyvsp[(2) - (3)].name);
4213 break;
4215 case 348:
4216 #line 1310 "ldgram.y"
4218 (yyval.versyms) = (yyvsp[(5) - (7)].versyms);
4219 ldgram_vers_current_lang = (yyvsp[(4) - (7)].name);
4221 break;
4223 case 349:
4224 #line 1315 "ldgram.y"
4226 (yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE);
4228 break;
4230 case 350:
4231 #line 1319 "ldgram.y"
4233 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "global", ldgram_vers_current_lang, FALSE);
4235 break;
4237 case 351:
4238 #line 1323 "ldgram.y"
4240 (yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE);
4242 break;
4244 case 352:
4245 #line 1327 "ldgram.y"
4247 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "local", ldgram_vers_current_lang, FALSE);
4249 break;
4251 case 353:
4252 #line 1331 "ldgram.y"
4254 (yyval.versyms) = lang_new_vers_pattern (NULL, "extern", ldgram_vers_current_lang, FALSE);
4256 break;
4258 case 354:
4259 #line 1335 "ldgram.y"
4261 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "extern", ldgram_vers_current_lang, FALSE);
4263 break;
4266 /* Line 1267 of yacc.c. */
4267 #line 4268 "ldgram.c"
4268 default: break;
4270 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4272 YYPOPSTACK (yylen);
4273 yylen = 0;
4274 YY_STACK_PRINT (yyss, yyssp);
4276 *++yyvsp = yyval;
4279 /* Now `shift' the result of the reduction. Determine what state
4280 that goes to, based on the state we popped back to and the rule
4281 number reduced by. */
4283 yyn = yyr1[yyn];
4285 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4286 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4287 yystate = yytable[yystate];
4288 else
4289 yystate = yydefgoto[yyn - YYNTOKENS];
4291 goto yynewstate;
4294 /*------------------------------------.
4295 | yyerrlab -- here on detecting error |
4296 `------------------------------------*/
4297 yyerrlab:
4298 /* If not already recovering from an error, report this error. */
4299 if (!yyerrstatus)
4301 ++yynerrs;
4302 #if ! YYERROR_VERBOSE
4303 yyerror (YY_("syntax error"));
4304 #else
4306 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
4307 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
4309 YYSIZE_T yyalloc = 2 * yysize;
4310 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
4311 yyalloc = YYSTACK_ALLOC_MAXIMUM;
4312 if (yymsg != yymsgbuf)
4313 YYSTACK_FREE (yymsg);
4314 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
4315 if (yymsg)
4316 yymsg_alloc = yyalloc;
4317 else
4319 yymsg = yymsgbuf;
4320 yymsg_alloc = sizeof yymsgbuf;
4324 if (0 < yysize && yysize <= yymsg_alloc)
4326 (void) yysyntax_error (yymsg, yystate, yychar);
4327 yyerror (yymsg);
4329 else
4331 yyerror (YY_("syntax error"));
4332 if (yysize != 0)
4333 goto yyexhaustedlab;
4336 #endif
4341 if (yyerrstatus == 3)
4343 /* If just tried and failed to reuse look-ahead token after an
4344 error, discard it. */
4346 if (yychar <= YYEOF)
4348 /* Return failure if at end of input. */
4349 if (yychar == YYEOF)
4350 YYABORT;
4352 else
4354 yydestruct ("Error: discarding",
4355 yytoken, &yylval);
4356 yychar = YYEMPTY;
4360 /* Else will try to reuse look-ahead token after shifting the error
4361 token. */
4362 goto yyerrlab1;
4365 /*---------------------------------------------------.
4366 | yyerrorlab -- error raised explicitly by YYERROR. |
4367 `---------------------------------------------------*/
4368 yyerrorlab:
4370 /* Pacify compilers like GCC when the user code never invokes
4371 YYERROR and the label yyerrorlab therefore never appears in user
4372 code. */
4373 if (/*CONSTCOND*/ 0)
4374 goto yyerrorlab;
4376 /* Do not reclaim the symbols of the rule which action triggered
4377 this YYERROR. */
4378 YYPOPSTACK (yylen);
4379 yylen = 0;
4380 YY_STACK_PRINT (yyss, yyssp);
4381 yystate = *yyssp;
4382 goto yyerrlab1;
4385 /*-------------------------------------------------------------.
4386 | yyerrlab1 -- common code for both syntax error and YYERROR. |
4387 `-------------------------------------------------------------*/
4388 yyerrlab1:
4389 yyerrstatus = 3; /* Each real token shifted decrements this. */
4391 for (;;)
4393 yyn = yypact[yystate];
4394 if (yyn != YYPACT_NINF)
4396 yyn += YYTERROR;
4397 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4399 yyn = yytable[yyn];
4400 if (0 < yyn)
4401 break;
4405 /* Pop the current state because it cannot handle the error token. */
4406 if (yyssp == yyss)
4407 YYABORT;
4410 yydestruct ("Error: popping",
4411 yystos[yystate], yyvsp);
4412 YYPOPSTACK (1);
4413 yystate = *yyssp;
4414 YY_STACK_PRINT (yyss, yyssp);
4417 if (yyn == YYFINAL)
4418 YYACCEPT;
4420 *++yyvsp = yylval;
4423 /* Shift the error token. */
4424 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4426 yystate = yyn;
4427 goto yynewstate;
4430 /*-------------------------------------.
4431 | yyacceptlab -- YYACCEPT comes here. |
4432 `-------------------------------------*/
4433 yyacceptlab:
4434 yyresult = 0;
4435 goto yyreturn;
4437 /*-----------------------------------.
4438 | yyabortlab -- YYABORT comes here. |
4439 `-----------------------------------*/
4440 yyabortlab:
4441 yyresult = 1;
4442 goto yyreturn;
4444 #ifndef yyoverflow
4445 /*-------------------------------------------------.
4446 | yyexhaustedlab -- memory exhaustion comes here. |
4447 `-------------------------------------------------*/
4448 yyexhaustedlab:
4449 yyerror (YY_("memory exhausted"));
4450 yyresult = 2;
4451 /* Fall through. */
4452 #endif
4454 yyreturn:
4455 if (yychar != YYEOF && yychar != YYEMPTY)
4456 yydestruct ("Cleanup: discarding lookahead",
4457 yytoken, &yylval);
4458 /* Do not reclaim the symbols of the rule which action triggered
4459 this YYABORT or YYACCEPT. */
4460 YYPOPSTACK (yylen);
4461 YY_STACK_PRINT (yyss, yyssp);
4462 while (yyssp != yyss)
4464 yydestruct ("Cleanup: popping",
4465 yystos[*yyssp], yyvsp);
4466 YYPOPSTACK (1);
4468 #ifndef yyoverflow
4469 if (yyss != yyssa)
4470 YYSTACK_FREE (yyss);
4471 #endif
4472 #if YYERROR_VERBOSE
4473 if (yymsg != yymsgbuf)
4474 YYSTACK_FREE (yymsg);
4475 #endif
4476 /* Make sure YYID is used. */
4477 return YYID (yyresult);
4481 #line 1345 "ldgram.y"
4483 void
4484 yyerror(arg)
4485 const char *arg;
4487 if (ldfile_assumed_script)
4488 einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
4489 ldfile_input_filename);
4490 if (error_index > 0 && error_index < ERROR_NAME_MAX)
4491 einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]);
4492 else
4493 einfo ("%P%F:%S: %s\n", arg);