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