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