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