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