Bug Summary

File:src/gnu/usr.bin/binutils-2.17/obj/ld/ldgram.c
Warning:line 1771, column 26
Use of zero-allocated memory

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name ldgram.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -pic-is-pie -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/gnu/usr.bin/binutils-2.17/obj/ld -resource-dir /usr/local/lib/clang/13.0.0 -D HAVE_CONFIG_H -I . -I /usr/src/gnu/usr.bin/binutils-2.17/ld -I . -D _GNU_SOURCE -I . -I /usr/src/gnu/usr.bin/binutils-2.17/ld -I ../bfd -I /usr/src/gnu/usr.bin/binutils-2.17/ld/../bfd -I /usr/src/gnu/usr.bin/binutils-2.17/ld/../include -I /usr/src/gnu/usr.bin/binutils-2.17/ld/../intl -I ../intl -D PIE_DEFAULT=1 -D LOCALEDIR="/usr/share/locale" -D PIE_DEFAULT=1 -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -Wno-null-pointer-arithmetic -fdebug-compilation-dir=/usr/src/gnu/usr.bin/binutils-2.17/obj/ld -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c ldgram.c
1#include <stdlib.h>
2#include <string.h>
3#define YYBYACC1 1
4#define YYMAJOR1 1
5#define YYMINOR9 9
6#define YYLEXyylex() yylex()
7#define YYEMPTY-1 -1
8#define yyclearin(yychar=(-1)) (yychar=(YYEMPTY-1))
9#define yyerrok(yyerrflag=0) (yyerrflag=0)
10#define YYRECOVERING()(yyerrflag!=0) (yyerrflag!=0)
11#define YYPREFIX"yy" "yy"
12#line 23 "ldgram.y"
13/*
14
15 */
16
17#define DONTDECLARE_MALLOC
18
19#include "bfd.h"
20#include "sysdep.h"
21#include "bfdlink.h"
22#include "ld.h"
23#include "ldexp.h"
24#include "ldver.h"
25#include "ldlang.h"
26#include "ldfile.h"
27#include "ldemul.h"
28#include "ldmisc.h"
29#include "ldmain.h"
30#include "mri.h"
31#include "ldctor.h"
32#include "ldlex.h"
33
34#ifndef YYDEBUG1
35#define YYDEBUG1 1
36#endif
37
38static enum section_type sectype;
39static lang_memory_region_type *region;
40
41FILE *saved_script_handle = NULL((void *)0);
42bfd_boolean force_make_executable = FALSE0;
43
44bfd_boolean ldgram_in_script = FALSE0;
45bfd_boolean ldgram_had_equals = FALSE0;
46bfd_boolean ldgram_had_keep = FALSE0;
47char *ldgram_vers_current_lang = NULL((void *)0);
48
49#define ERROR_NAME_MAX20 20
50static char *error_names[ERROR_NAME_MAX20];
51static int error_index;
52#define PUSH_ERROR(x)if (error_index < 20) error_names[error_index] = x; error_index
++;
if (error_index < ERROR_NAME_MAX20) error_names[error_index] = x; error_index++;
53#define POP_ERROR()error_index--; error_index--;
54#line 65 "ldgram.y"
55#ifndef YYSTYPE_DEFINED
56#define YYSTYPE_DEFINED
57typedef union {
58 bfd_vma integer;
59 struct big_int
60 {
61 bfd_vma integer;
62 char *str;
63 } bigint;
64 fill_type *fill;
65 char *name;
66 const char *cname;
67 struct wildcard_spec wildcard;
68 struct wildcard_list *wildcard_list;
69 struct name_list *name_list;
70 int token;
71 union etree_union *etree;
72 struct phdr_info
73 {
74 bfd_boolean filehdr;
75 bfd_boolean phdrs;
76 union etree_union *at;
77 union etree_union *flags;
78 } phdr;
79 struct lang_nocrossref *nocrossref;
80 struct lang_output_section_phdr_list *section_phdr;
81 struct bfd_elf_version_deps *deflist;
82 struct bfd_elf_version_expr *versyms;
83 struct bfd_elf_version_tree *versnode;
84} YYSTYPE;
85#endif /* YYSTYPE_DEFINED */
86#line 87 "ldgram.c"
87#define INT257 257
88#define NAME258 258
89#define LNAME259 259
90#define PLUSEQ260 260
91#define MINUSEQ261 261
92#define MULTEQ262 262
93#define DIVEQ263 263
94#define LSHIFTEQ264 264
95#define RSHIFTEQ265 265
96#define ANDEQ266 266
97#define OREQ267 267
98#define OROR268 268
99#define ANDAND269 269
100#define EQ270 270
101#define NE271 271
102#define LE272 272
103#define GE273 273
104#define LSHIFT274 274
105#define RSHIFT275 275
106#define UNARY276 276
107#define END277 277
108#define ALIGN_K278 278
109#define BLOCK279 279
110#define BIND280 280
111#define QUAD281 281
112#define SQUAD282 282
113#define LONG283 283
114#define SHORT284 284
115#define BYTE285 285
116#define SECTIONS286 286
117#define PHDRS287 287
118#define DATA_SEGMENT_ALIGN288 288
119#define DATA_SEGMENT_RELRO_END289 289
120#define DATA_SEGMENT_END290 290
121#define SORT_BY_NAME291 291
122#define SORT_BY_ALIGNMENT292 292
123#define SIZEOF_HEADERS293 293
124#define OUTPUT_FORMAT294 294
125#define FORCE_COMMON_ALLOCATION295 295
126#define OUTPUT_ARCH296 296
127#define INHIBIT_COMMON_ALLOCATION297 297
128#define SEGMENT_START298 298
129#define INCLUDE299 299
130#define MEMORY300 300
131#define DEFSYMEND301 301
132#define NOLOAD302 302
133#define DSECT303 303
134#define COPY304 304
135#define INFO305 305
136#define OVERLAY306 306
137#define DEFINED307 307
138#define TARGET_K308 308
139#define SEARCH_DIR309 309
140#define MAP310 310
141#define ENTRY311 311
142#define NEXT312 312
143#define SIZEOF313 313
144#define ADDR314 314
145#define LOADADDR315 315
146#define MAX_K316 316
147#define MIN_K317 317
148#define STARTUP318 318
149#define HLL319 319
150#define SYSLIB320 320
151#define FLOAT321 321
152#define NOFLOAT322 322
153#define NOCROSSREFS323 323
154#define ORIGIN324 324
155#define FILL325 325
156#define LENGTH326 326
157#define CREATE_OBJECT_SYMBOLS327 327
158#define INPUT328 328
159#define GROUP329 329
160#define OUTPUT330 330
161#define CONSTRUCTORS331 331
162#define ALIGNMOD332 332
163#define AT333 333
164#define SUBALIGN334 334
165#define PROVIDE335 335
166#define PROVIDE_HIDDEN336 336
167#define AS_NEEDED337 337
168#define CHIP338 338
169#define LIST339 339
170#define SECT340 340
171#define ABSOLUTE341 341
172#define LOAD342 342
173#define NEWLINE343 343
174#define ENDWORD344 344
175#define ORDER345 345
176#define NAMEWORD346 346
177#define ASSERT_K347 347
178#define FORMAT348 348
179#define PUBLIC349 349
180#define BASE350 350
181#define ALIAS351 351
182#define TRUNCATE352 352
183#define REL353 353
184#define INPUT_SCRIPT354 354
185#define INPUT_MRI_SCRIPT355 355
186#define INPUT_DEFSYM356 356
187#define CASE357 357
188#define EXTERN358 358
189#define START359 359
190#define VERS_TAG360 360
191#define VERS_IDENTIFIER361 361
192#define GLOBAL362 362
193#define LOCAL363 363
194#define VERSIONK364 364
195#define INPUT_VERSION_SCRIPT365 365
196#define KEEP366 366
197#define ONLY_IF_RO367 367
198#define ONLY_IF_RW368 368
199#define SPECIAL369 369
200#define EXCLUDE_FILE370 370
201#define YYERRCODE256 256
202const short yylhs[] =
203 { -1,
204 0, 0, 0, 0, 28, 36, 35, 38, 33, 37,
205 37, 39, 39, 39, 39, 39, 39, 39, 39, 39,
206 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
207 39, 39, 39, 39, 39, 39, 39, 44, 39, 39,
208 39, 40, 40, 40, 42, 42, 41, 41, 15, 15,
209 15, 43, 43, 43, 46, 32, 45, 45, 47, 47,
210 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
211 47, 47, 47, 47, 47, 47, 47, 58, 47, 47,
212 59, 47, 47, 47, 57, 57, 57, 57, 57, 57,
213 60, 57, 61, 57, 62, 57, 49, 63, 63, 63,
214 55, 55, 67, 55, 17, 17, 17, 18, 18, 18,
215 18, 18, 18, 18, 18, 18, 12, 12, 13, 13,
216 69, 69, 69, 70, 71, 70, 72, 72, 72, 72,
217 72, 72, 72, 72, 73, 73, 74, 74, 19, 19,
218 19, 19, 19, 11, 10, 10, 24, 24, 24, 24,
219 24, 24, 24, 24, 66, 66, 65, 65, 65, 65,
220 68, 68, 48, 76, 76, 76, 77, 75, 78, 79,
221 26, 26, 80, 80, 81, 81, 51, 52, 52, 82,
222 82, 53, 83, 83, 54, 54, 21, 21, 21, 84,
223 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
224 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
225 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
226 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
227 1, 1, 1, 1, 1, 1, 16, 16, 4, 4,
228 9, 9, 8, 8, 27, 27, 27, 27, 85, 86,
229 87, 88, 89, 64, 90, 91, 93, 94, 95, 64,
230 96, 97, 64, 98, 98, 98, 98, 98, 25, 25,
231 25, 2, 2, 2, 2, 7, 7, 23, 23, 14,
232 14, 22, 22, 92, 99, 100, 101, 92, 50, 102,
233 102, 104, 105, 103, 5, 20, 20, 20, 6, 6,
234 107, 34, 108, 56, 106, 106, 109, 109, 109, 31,
235 31, 30, 30, 30, 30, 30, 29, 29, 29, 29,
236 110, 29, 112, 29, 29, 29, 29, 29, 29, 29,
237 111, 111,
238};
239const short yylen[] =
240 { 2,
241 2, 2, 2, 2, 1, 0, 4, 0, 2, 3,
242 0, 2, 4, 1, 1, 2, 1, 4, 4, 3,
243 2, 4, 3, 4, 4, 4, 4, 4, 2, 2,
244 2, 4, 4, 2, 2, 2, 2, 0, 5, 2,
245 0, 3, 2, 0, 1, 3, 1, 3, 0, 1,
246 3, 1, 2, 3, 0, 2, 2, 0, 1, 1,
247 1, 1, 1, 1, 1, 1, 1, 1, 4, 4,
248 4, 4, 8, 4, 1, 1, 4, 0, 5, 4,
249 0, 5, 4, 4, 1, 3, 2, 1, 3, 2,
250 0, 5, 0, 7, 0, 6, 4, 2, 2, 0,
251 4, 2, 0, 7, 1, 1, 1, 1, 5, 4,
252 4, 7, 7, 7, 7, 8, 2, 1, 3, 1,
253 1, 3, 4, 1, 0, 5, 2, 1, 1, 1,
254 4, 1, 4, 4, 2, 1, 0, 1, 1, 1,
255 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
256 1, 1, 1, 1, 1, 1, 3, 3, 6, 6,
257 1, 0, 5, 2, 3, 0, 0, 7, 3, 3,
258 0, 3, 1, 2, 1, 2, 4, 4, 3, 3,
259 1, 4, 3, 0, 1, 1, 0, 2, 3, 0,
260 2, 2, 3, 4, 2, 2, 2, 3, 3, 3,
261 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
262 3, 3, 3, 5, 3, 3, 4, 1, 1, 4,
263 4, 4, 4, 4, 6, 6, 6, 4, 6, 4,
264 1, 6, 6, 6, 4, 4, 3, 0, 4, 0,
265 4, 0, 4, 0, 1, 1, 1, 0, 0, 0,
266 0, 0, 0, 19, 0, 0, 0, 0, 0, 18,
267 0, 0, 7, 1, 1, 1, 1, 1, 3, 0,
268 2, 3, 2, 6, 10, 2, 1, 0, 1, 2,
269 0, 0, 3, 0, 0, 0, 0, 11, 4, 0,
270 2, 0, 0, 6, 1, 0, 3, 5, 0, 3,
271 0, 2, 0, 5, 1, 2, 4, 5, 6, 1,
272 2, 0, 2, 4, 4, 8, 1, 1, 3, 3,
273 0, 9, 0, 7, 1, 3, 1, 3, 1, 3,
274 0, 1,
275};
276const short yydefred[] =
277 { 0,
278 55, 8, 6, 301, 0, 1, 58, 2, 11, 4,
279 0, 3, 0, 0, 0, 0, 0, 0, 0, 305,
280 0, 0, 0, 0, 75, 0, 76, 0, 0, 0,
281 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
282 78, 0, 0, 0, 103, 0, 68, 57, 59, 60,
283 61, 62, 63, 64, 65, 66, 67, 0, 0, 14,
284 0, 0, 0, 0, 15, 0, 0, 0, 17, 44,
285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
286 0, 318, 0, 317, 0, 0, 0, 0, 0, 306,
287 147, 148, 149, 150, 190, 151, 152, 153, 154, 190,
288 100, 290, 0, 0, 5, 81, 0, 0, 0, 0,
289 0, 0, 0, 184, 0, 0, 0, 0, 0, 0,
290 0, 0, 156, 155, 102, 0, 0, 38, 0, 218,
291 231, 0, 0, 0, 0, 0, 0, 0, 0, 219,
292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 0, 0, 0, 0, 0, 0, 47, 0, 45, 0,
294 0, 31, 21, 0, 0, 0, 35, 50, 0, 52,
295 0, 40, 10, 0, 0, 0, 0, 0, 0, 0,
296 157, 0, 158, 0, 0, 0, 0, 58, 167, 166,
297 0, 0, 0, 0, 0, 179, 181, 0, 0, 0,
298 0, 85, 88, 0, 0, 0, 0, 0, 0, 0,
299 0, 0, 0, 0, 11, 0, 0, 196, 192, 0,
300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
301 0, 0, 0, 0, 0, 0, 0, 195, 197, 0,
302 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
304 0, 0, 0, 0, 43, 0, 0, 0, 0, 0,
305 0, 53, 0, 323, 325, 327, 0, 0, 320, 0,
306 319, 326, 328, 307, 0, 0, 0, 97, 255, 261,
307 99, 98, 292, 289, 291, 0, 72, 74, 0, 0,
308 0, 69, 70, 80, 101, 177, 161, 178, 0, 182,
309 0, 0, 188, 83, 91, 87, 90, 0, 0, 77,
310 0, 71, 190, 190, 0, 84, 0, 0, 0, 0,
311 0, 0, 193, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
314 0, 0, 0, 0, 0, 0, 198, 199, 200, 0,
315 0, 0, 48, 46, 42, 0, 0, 33, 32, 51,
316 54, 0, 0, 0, 0, 310, 308, 0, 0, 0,
317 0, 0, 0, 82, 0, 0, 163, 0, 164, 180,
318 183, 189, 0, 95, 86, 89, 0, 79, 0, 0,
319 0, 304, 39, 0, 224, 230, 0, 0, 228, 0,
320 217, 194, 220, 221, 222, 0, 0, 235, 236, 223,
321 0, 0, 0, 0, 321, 311, 309, 0, 0, 0,
322 0, 0, 277, 0, 0, 262, 0, 0, 0, 175,
323 0, 0, 173, 0, 165, 0, 0, 93, 159, 160,
324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
325 0, 0, 0, 264, 265, 266, 267, 268, 271, 0,
326 0, 0, 0, 0, 0, 273, 276, 279, 0, 0,
327 0, 0, 293, 0, 176, 172, 174, 0, 0, 92,
328 0, 0, 104, 225, 226, 227, 229, 232, 233, 234,
329 324, 0, 0, 269, 0, 272, 0, 0, 0, 0,
330 100, 0, 0, 0, 0, 73, 190, 0, 96, 0,
331 0, 0, 0, 0, 0, 0, 250, 256, 0, 0,
332 297, 0, 294, 169, 0, 168, 94, 322, 0, 0,
333 239, 0, 0, 0, 0, 263, 300, 0, 190, 0,
334 274, 241, 0, 245, 246, 247, 0, 257, 298, 170,
335 0, 243, 251, 284, 0, 0, 0, 0, 0, 107,
336 106, 139, 140, 141, 142, 143, 0, 0, 0, 128,
337 130, 0, 0, 129, 0, 108, 0, 0, 0, 124,
338 132, 136, 0, 0, 285, 258, 275, 0, 0, 190,
339 125, 0, 105, 0, 0, 120, 0, 190, 127, 135,
340 252, 0, 0, 0, 0, 0, 0, 0, 0, 0,
341 0, 144, 0, 0, 0, 118, 0, 122, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 131, 0, 110,
343 0, 0, 111, 134, 0, 0, 0, 117, 119, 123,
344 133, 0, 0, 280, 0, 282, 0, 0, 0, 0,
345 0, 126, 109, 282, 286, 0, 0, 0, 0, 0,
346 0, 0, 0, 282, 237, 190, 0, 259, 113, 112,
347 0, 114, 115, 253, 0, 145, 283, 0, 116, 0,
348 287, 260, 254, 0, 288,
349};
350const short yydgoto[] =
351 { 5,
352 220, 441, 632, 485, 448, 523, 445, 537, 519, 688,
353 633, 635, 615, 645, 169, 666, 596, 597, 598, 493,
354 201, 677, 489, 100, 442, 396, 567, 106, 87, 88,
355 388, 6, 8, 12, 10, 11, 15, 9, 80, 161,
356 158, 160, 171, 215, 14, 7, 48, 49, 50, 51,
357 52, 53, 54, 55, 56, 57, 205, 117, 188, 403,
358 502, 457, 184, 292, 58, 125, 121, 639, 600, 601,
359 634, 602, 603, 604, 190, 301, 300, 499, 546, 452,
360 453, 198, 199, 182, 389, 554, 576, 642, 700, 390,
361 555, 577, 574, 623, 698, 391, 490, 480, 622, 684,
362 704, 185, 295, 392, 525, 19, 13, 59, 20, 473,
363 471, 382,
364};
365const short yysindex[] =
366 { 44,
367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368 -195, 0, -104, 1716, 3004, 30, -221, 51, -104, 0,
369 709, 55, 81, 77, 0, 96, 0, -101, 89, 175,
370 178, 194, 198, 202, 222, 226, 0, 0, 243, 247,
371 0, 250, 268, 281, 0, 287, 0, 0, 0, 0,
372 0, 0, 0, 0, 0, 0, 0, 18, -147, 0,
373 -14, -101, 26, 1598, 0, 74, 83, 88, 0, 0,
374 102, 104, 105, 1598, 114, 118, 133, 137, 138, 59,
375 1598, 0, 148, 0, 353, 366, 367, 302, -221, 0,
376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
377 0, 0, 170, 172, 0, 0, 173, 185, -101, -101,
378 186, -101, -27, 0, 188, -135, 413, -101, 197, 199,
379 420, 137, 0, 0, 0, 342, 61, 0, 72, 0,
380 0, 1598, 1598, 1598, 427, 431, 435, 437, 446, 0,
381 447, 449, 458, 460, 464, 465, 466, 477, 478, 480,
382 482, 484, 1598, 1598, 2024, 1239, 0, 428, 0, 490,
383 -15, 0, 0, 1311, 2958, 491, 0, 0, 494, 0,
384 -11, 0, 0, 2958, 370, 208, 208, 275, 481, 416,
385 0, 1598, 0, 485, -81, 20, 501, 0, 0, 0,
386 506, 507, 510, 511, 515, 0, 0, 106, 107, 16,
387 520, 0, 0, 518, -23, -135, 524, 516, 521, 1598,
388 34, -104, 1598, 1598, 0, 1598, 1598, 0, 0, 2035,
389 1598, 1598, 1598, 1598, 1598, 309, 314, 1598, 318, 323,
390 326, 1598, 1598, 330, 331, 1598, 1598, 0, 0, 1598,
391 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
392 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
393 1598, 2958, 336, 337, 0, 338, 1598, 1598, 2958, -89,
394 339, 0, 340, 0, 0, 0, 540, 542, 0, 344,
395 0, 0, 0, 0, -35, 2958, 709, 0, 0, 0,
396 0, 0, 0, 0, 0, 347, 0, 0, 1660, 566,
397 -17, 0, 0, 0, 0, 0, 0, 0, -101, 0,
398 -101, 188, 0, 0, 0, 0, 0, 567, -100, 0,
399 182, 0, 0, 0, 2062, 0, -97, 2958, 2958, 2976,
400 2958, 2958, 0, 1785, 2074, 2102, 2129, 2140, 564, 568,
401 2167, 570, 571, 580, 2194, 2322, 581, 583, 2385, 2412,
402 2439, 3016, 3027, 3142, 1015, 1340, 1388, 1388, 177, 177,
403 177, 177, 517, 517, 78, 78, 0, 0, 0, 2958,
404 2958, 2958, 0, 0, 0, 2958, 2958, 0, 0, 0,
405 0, 208, 291, 275, 508, 0, 0, -34, 1450, 1527,
406 1450, 1598, 586, 0, 6, 574, 0, 173, 0, 0,
407 0, 0, -135, 0, 0, 0, 599, 0, 600, 601,
408 388, 0, 0, 1598, 0, 0, 1598, 1598, 0, 1598,
409 0, 0, 0, 0, 0, 1598, 1598, 0, 0, 0,
410 392, 1598, 596, 603, 0, 0, 0, 1165, 617, 2451,
411 349, 605, 0, 2479, 352, 0, 2958, -220, 412, 0,
412 414, -18, 0, 359, 0, 369, -135, 0, 0, 0,
413 636, 2506, 2517, 2571, 2582, 2699, 2764, 643, 2958, 275,
414 560, 208, 208, 0, 0, 0, 0, 0, 0, 646,
415 1598, 132, 631, 653, 417, 0, 0, 0, 349, 573,
416 654, 657, 0, 658, 0, 0, 0, 637, 656, 0,
417 401, -135, 0, 0, 0, 0, 0, 0, 0, 0,
418 0, 644, 596, 0, 2775, 0, 1598, 661, 368, 368,
419 0, 1598, -220, 1598, 648, 0, 0, 379, 0, 432,
420 275, 587, -30, 2823, 1598, 675, 0, 0, 541, 2834,
421 0, 2863, 0, 0, 655, 0, 0, 0, 685, 670,
422 0, 2892, 1598, 49, 606, 0, 0, -220, 0, 1598,
423 0, 0, 2903, 0, 0, 0, 610, 0, 0, 0,
424 2947, 0, 0, 0, 694, 1022, -57, 677, 709, 0,
425 0, 0, 0, 0, 0, 0, 697, 699, 700, 0,
426 0, 701, 702, 0, -6, 0, 707, 710, 18, 0,
427 0, 0, 1022, 628, 0, 0, 0, -31, 204, 0,
428 0, 48, 0, 717, 9, 0, -6, 0, 0, 0,
429 0, 635, 703, 722, 723, 725, 727, 730, 732, 733,
430 734, 0, 736, -33, 13, 0, 31, 0, -6, 164,
431 737, 703, 1022, 523, 441, 48, 48, 0, 48, 0,
432 48, 48, 0, 0, 0, 743, 48, 0, 0, 0,
433 0, 441, 662, 0, 728, 0, 751, 753, 47, 754,
434 761, 0, 0, 0, 0, 545, -2, 763, 764, 48,
435 766, 772, -2, 0, 0, 0, 557, 0, 0, 0,
436 775, 0, 0, 0, -2, 0, 0, 656, 0, 656,
437 0, 0, 0, 656, 0,};
438const short yyrindex[] =
439 { 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 4, 12, 0, 692, 0, 818, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
447 0, 0, 0, 0, 0, 0, -36, 0, 0, 0,
448 0, 0, -19, 0, 760, 765, 0, 0, 692, 0,
449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
451 0, 0, 0, 0, 781, 0, 0, 0, 0, 0,
452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 0, 0, 0, 0, 486, 0, 0, 492, 0, 493,
456 495, 0, 0, 0, 503, 0, 0, 0, 505, 0,
457 522, 0, 0, 823, 0, 0, 0, 708, 0, 0,
458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
459 0, 0, 0, 0, 0, 0, 0, 102, 102, 781,
460 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466 0, 525, 0, 0, 0, 0, 0, 0, 526, 0,
467 0, 0, 0, 0, 0, 0, 0, 0, 0, -16,
468 0, 0, 0, 0, 0, 1467, 1376, 0, 0, 0,
469 0, 0, 0, 0, 0, 0, 0, 0, 461, 776,
470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
471 0, 781, 0, 0, 0, 0, 0, 0, 0, 0,
472 0, 0, 0, 0, 0, 0, 0, 528, 529, 530,
473 531, 532, 0, 0, 0, 0, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
475 0, 991, 673, 922, 889, 840, 41, 801, 450, 585,
476 686, 768, 257, 345, 7, 210, 0, 0, 0, 536,
477 539, 543, 0, 0, 0, 544, 547, 0, 0, 0,
478 0, 0, 712, 719, 0, 0, 0, 0, 791, 0,
479 791, 0, 0, 0, 0, 0, 0, 0, 0, 0,
480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
483 0, 0, 726, 802, 0, 0, 0, 0, 0, 791,
484 80, 0, 0, 0, 15, 0, -42, 804, 0, 0,
485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 0, 0, 0, 0, 0, 0, 0, 0, 86, 741,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 300, 0, 0, 0, -40, 0,
489 -37, 0, 0, 0, 0, 0, 0, 0, 559, 0,
490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
491 0, 0, 726, 0, 0, 0, 0, 0, 11, 744,
492 0, 0, 804, 0, 0, 0, 0, 0, 0, 0,
493 758, 0, 791, 0, 0, 0, 0, 0, 0, 0,
494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
495 0, 0, 0, 771, 0, 0, 0, 804, 0, 0,
496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
497 0, 0, 0, 0, 791, 777, 0, 0, 1079, 0,
498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
500 0, 0, 779, 0, 0, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 167, 0, 0, 0, 0, 0,
502 0, 0, 329, 0, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
504 0, 329, 777, 0, 453, 0, 0, 0, 0, 0,
505 0, 0, 0, 0, 192, 0, 0, 0, 0, 0,
506 0, 453, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
508 0, 0, 244, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, -13, 0, 0, 820, 0, 820,
510 0, 0, 0, -45, 0,};
511const short yygindex[] =
512 { 0,
513 -61, 459, -95, 408, 0, 0, 0, 380, 0, -576,
514 215, 256, 289, 265, 0, 246, 1064, -521, 0, -474,
515 -166, -545, 0, 0, -405, 0, 0, 642, -79, 821,
516 0, 0, 0, 0, 0, 0, 698, 0, 0, 0,
517 0, 0, 787, 0, 724, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, -178, 0, -164, 0, 0, 0,
519 0, 0, 394, 0, -489, 317, 0, -197, 283, 0,
520 0, 316, 0, 280, -255, 0, 0, 0, 0, 0,
521 472, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 715, 0, 0, -3, 0,
524 422, 0,
525};
526#define YYTABLESIZE3417 3417
527const short yytable[] =
528 { 181,
529 309, 311, 155, 56, 183, 291, 201, 49, 581, 482,
530 581, 9, 165, 196, 451, 90, 295, 320, 17, 174,
531 319, 299, 496, 387, 437, 17, 398, 412, 266, 580,
532 146, 580, 273, 313, 483, 581, 82, 491, 451, 329,
533 205, 321, 330, 294, 201, 399, 201, 201, 541, 201,
534 201, 201, 307, 657, 581, 687, 580, 595, 686, 312,
535 297, 123, 16, 296, 201, 201, 201, 606, 201, 201,
536 218, 219, 581, 616, 326, 580, 124, 273, 205, 162,
537 205, 205, 240, 569, 205, 214, 599, 680, 581, 581,
538 81, 238, 239, 580, 262, 616, 277, 278, 205, 205,
539 201, 638, 269, 205, 214, 329, 694, 397, 330, 580,
540 580, 146, 492, 599, 258, 217, 103, 659, 701, 256,
541 286, 213, 202, 203, 257, 214, 214, 550, 683, 214,
542 201, 201, 216, 244, 205, 104, 83, 278, 695, 84,
543 85, 86, 455, 214, 214, 402, 308, 310, 325, 307,
544 307, 328, 329, 599, 331, 332, 105, 405, 406, 334,
545 335, 336, 337, 338, 205, 205, 341, 378, 379, 578,
546 345, 346, 479, 89, 349, 350, 293, 101, 351, 352,
547 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
548 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
549 605, 204, 240, 102, 660, 376, 377, 307, 162, 202,
550 214, 107, 162, 258, 108, 295, 126, 109, 256, 254,
551 299, 255, 408, 257, 655, 319, 613, 409, 410, 162,
552 105, 105, 121, 110, 316, 317, 407, 111, 456, 450,
553 189, 112, 265, 127, 146, 581, 272, 202, 549, 202,
554 202, 613, 202, 202, 202, 18, 203, 614, 588, 624,
555 625, 113, 18, 450, 201, 114, 580, 202, 202, 202,
556 613, 202, 202, 200, 201, 201, 201, 201, 201, 201,
557 201, 201, 115, 129, 614, 588, 116, 146, 613, 118,
558 295, 272, 501, 240, 203, 299, 203, 203, 205, 626,
559 203, 528, 433, 202, 613, 613, 49, 119, 205, 205,
560 205, 205, 201, 318, 203, 203, 203, 201, 203, 203,
561 120, 624, 625, 90, 386, 436, 122, 440, 444, 440,
562 447, 156, 201, 202, 202, 201, 593, 530, 627, 201,
563 157, 201, 201, 214, 204, 159, 205, 278, 278, 201,
564 203, 205, 462, 201, 41, 463, 464, 240, 465, 162,
565 291, 163, 164, 593, 466, 467, 205, 303, 146, 205,
566 469, 166, 281, 205, 167, 205, 205, 244, 244, 244,
567 203, 203, 204, 205, 204, 204, 281, 205, 204, 281,
568 168, 214, 512, 513, 170, 172, 214, 1, 2, 3,
569 627, 173, 204, 204, 204, 175, 204, 204, 4, 500,
570 176, 214, 319, 240, 214, 564, 565, 566, 214, 515,
571 214, 214, 242, 177, 162, 178, 179, 186, 214, 187,
572 189, 544, 214, 474, 475, 476, 477, 478, 204, 316,
573 317, 529, 191, 194, 319, 200, 240, 240, 240, 209,
574 252, 253, 206, 281, 208, 534, 209, 162, 162, 210,
575 540, 613, 542, 570, 212, 82, 221, 202, 204, 204,
576 222, 263, 547, 552, 223, 319, 224, 202, 202, 202,
577 202, 202, 202, 202, 202, 225, 226, 209, 227, 209,
578 209, 563, 274, 209, 629, 630, 238, 228, 571, 229,
579 702, 146, 703, 230, 231, 232, 705, 209, 209, 209,
580 238, 209, 209, 238, 203, 202, 233, 234, 318, 235,
581 202, 236, 641, 237, 203, 203, 203, 203, 203, 203,
582 203, 203, 279, 264, 270, 202, 162, 271, 202, 284,
583 285, 298, 202, 209, 202, 202, 302, 303, 279, 146,
584 304, 305, 202, 258, 146, 306, 202, 315, 256, 254,
585 314, 255, 203, 257, 322, 83, 339, 203, 84, 275,
586 276, 340, 146, 209, 209, 342, 323, 238, 146, 146,
587 343, 324, 203, 344, 210, 203, 281, 347, 348, 203,
588 146, 203, 203, 373, 374, 375, 380, 381, 383, 203,
589 384, 385, 204, 203, 393, 395, 404, 420, 421, 288,
590 423, 424, 204, 204, 204, 204, 204, 204, 204, 204,
591 425, 428, 210, 429, 210, 210, 316, 317, 210, 449,
592 435, 454, 280, 242, 281, 281, 282, 283, 458, 281,
593 459, 460, 210, 210, 210, 461, 210, 210, 280, 468,
594 204, 281, 282, 434, 470, 204, 481, 281, 316, 317,
595 472, 281, 486, 281, 281, 556, 242, 242, 242, 494,
596 204, 495, 215, 204, 488, 281, 503, 204, 210, 204,
597 204, 484, 498, 510, 511, 207, 514, 204, 516, 316,
598 317, 204, 517, 522, 518, 521, 524, 527, 526, 307,
599 535, 536, 531, 128, 545, 318, 543, 209, 210, 210,
600 238, 548, 215, 215, 553, 559, 215, 209, 209, 209,
601 209, 209, 209, 207, 560, 207, 207, 561, 568, 207,
602 215, 215, 573, 482, 607, 215, 608, 318, 609, 610,
603 611, 612, 287, 207, 207, 207, 617, 207, 207, 618,
604 192, 193, 621, 195, 197, 209, 637, 643, 238, 207,
605 209, 646, 647, 238, 644, 648, 649, 208, 318, 95,
606 650, 651, 652, 665, 653, 209, 654, 661, 209, 207,
607 664, 238, 209, 672, 209, 209, 675, 238, 238, 676,
608 289, 678, 209, 679, 681, 33, 209, 215, 287, 238,
609 206, 682, 685, 689, 690, 208, 692, 208, 208, 207,
610 207, 208, 693, 290, 697, 699, 312, 302, 325, 43,
611 44, 187, 7, 327, 303, 208, 208, 208, 12, 208,
612 208, 45, 313, 171, 29, 30, 314, 16, 206, 211,
613 206, 206, 210, 315, 206, 34, 289, 36, 270, 446,
614 331, 33, 210, 210, 210, 210, 210, 210, 206, 206,
615 328, 208, 296, 206, 37, 332, 244, 23, 20, 290,
616 25, 26, 41, 27, 28, 43, 44, 211, 13, 211,
617 211, 24, 316, 211, 162, 22, 18, 45, 212, 19,
618 210, 208, 208, 248, 206, 210, 520, 211, 211, 538,
619 696, 137, 211, 138, 669, 640, 662, 674, 211, 180,
620 210, 299, 330, 210, 539, 619, 656, 210, 620, 210,
621 210, 213, 663, 497, 206, 206, 327, 210, 212, 212,
622 215, 210, 212, 211, 532, 0, 0, 0, 0, 0,
623 215, 215, 0, 207, 162, 0, 212, 212, 0, 0,
624 400, 212, 401, 207, 207, 207, 207, 207, 207, 0,
625 0, 213, 213, 211, 211, 213, 0, 0, 91, 92,
626 93, 94, 96, 97, 98, 99, 0, 0, 215, 213,
627 213, 0, 212, 215, 213, 0, 0, 0, 0, 0,
628 216, 207, 0, 0, 0, 0, 207, 0, 215, 0,
629 0, 215, 0, 0, 0, 215, 0, 215, 215, 0,
630 0, 207, 212, 212, 207, 215, 0, 0, 207, 215,
631 207, 207, 0, 0, 0, 208, 0, 0, 207, 0,
632 216, 216, 207, 0, 216, 208, 208, 208, 208, 208,
633 208, 0, 0, 0, 0, 213, 213, 0, 216, 216,
634 0, 258, 245, 216, 0, 0, 256, 254, 206, 255,
635 0, 257, 0, 581, 0, 0, 0, 0, 206, 206,
636 206, 206, 0, 208, 248, 0, 249, 162, 208, 0,
637 594, 0, 0, 0, 580, 0, 0, 0, 0, 0,
638 0, 0, 0, 208, 0, 0, 208, 211, 0, 0,
639 208, 0, 208, 208, 0, 0, 206, 211, 211, 0,
640 208, 206, 595, 0, 208, 216, 0, 0, 105, 0,
641 121, 0, 0, 0, 0, 162, 206, 0, 0, 206,
642 162, 0, 0, 206, 0, 206, 206, 121, 0, 0,
643 0, 121, 0, 206, 0, 211, 212, 206, 162, 0,
644 211, 0, 0, 0, 162, 162, 212, 212, 0, 0,
645 0, 0, 0, 0, 0, 211, 162, 0, 211, 121,
646 0, 0, 211, 0, 211, 211, 0, 0, 0, 213,
647 0, 0, 211, 0, 0, 0, 211, 0, 0, 213,
648 213, 0, 0, 0, 212, 0, 0, 153, 0, 212,
649 0, 0, 0, 121, 134, 479, 0, 132, 0, 133,
650 0, 0, 0, 0, 212, 0, 0, 212, 0, 0,
651 0, 212, 0, 212, 212, 0, 0, 213, 0, 0,
652 0, 212, 213, 0, 0, 212, 0, 0, 0, 0,
653 0, 0, 0, 0, 0, 0, 0, 213, 216, 0,
654 213, 0, 0, 0, 213, 0, 213, 213, 216, 0,
655 0, 0, 0, 0, 213, 0, 0, 0, 213, 0,
656 0, 153, 0, 0, 0, 0, 0, 0, 134, 579,
657 0, 132, 261, 133, 246, 247, 250, 251, 252, 253,
658 154, 0, 0, 0, 0, 0, 216, 0, 0, 260,
659 0, 216, 582, 583, 584, 585, 586, 0, 0, 0,
660 0, 0, 587, 588, 0, 0, 216, 0, 0, 216,
661 0, 0, 0, 216, 0, 216, 216, 0, 0, 0,
662 0, 0, 0, 216, 0, 0, 121, 216, 0, 0,
663 0, 0, 0, 153, 0, 0, 589, 0, 590, 0,
664 134, 0, 591, 132, 268, 133, 43, 44, 0, 121,
665 121, 121, 121, 121, 154, 0, 0, 0, 0, 121,
666 121, 267, 0, 0, 0, 0, 258, 0, 0, 0,
667 0, 256, 254, 0, 255, 0, 257, 592, 0, 0,
668 0, 593, 0, 0, 0, 0, 0, 0, 0, 248,
669 0, 249, 0, 121, 0, 121, 0, 0, 249, 121,
670 0, 0, 0, 121, 121, 249, 0, 0, 249, 0,
671 249, 130, 131, 0, 258, 0, 0, 0, 0, 256,
672 254, 0, 255, 249, 257, 0, 154, 0, 0, 0,
673 0, 0, 135, 136, 121, 0, 0, 248, 121, 249,
674 0, 0, 137, 138, 139, 0, 0, 140, 0, 0,
675 0, 0, 141, 0, 0, 0, 474, 475, 476, 477,
676 478, 142, 0, 0, 0, 0, 143, 144, 145, 146,
677 147, 148, 153, 0, 0, 0, 0, 0, 149, 438,
678 150, 0, 132, 0, 133, 130, 131, 0, 0, 0,
679 0, 249, 0, 0, 0, 151, 0, 191, 0, 0,
680 191, 152, 0, 0, 0, 0, 135, 136, 0, 0,
681 0, 0, 0, 0, 0, 191, 137, 138, 139, 0,
682 0, 140, 0, 0, 0, 0, 141, 0, 0, 0,
683 0, 0, 0, 0, 0, 142, 0, 0, 0, 0,
684 143, 144, 145, 146, 147, 148, 0, 0, 0, 153,
685 0, 0, 149, 0, 150, 0, 134, 130, 131, 132,
686 0, 133, 0, 0, 0, 154, 0, 0, 0, 151,
687 0, 0, 0, 0, 443, 152, 0, 0, 135, 136,
688 0, 191, 0, 0, 0, 0, 0, 0, 137, 138,
689 139, 0, 0, 140, 0, 0, 0, 0, 141, 246,
690 247, 250, 251, 252, 253, 0, 0, 142, 0, 0,
691 0, 0, 143, 144, 145, 146, 147, 148, 0, 0,
692 153, 0, 249, 249, 149, 0, 150, 134, 0, 0,
693 132, 0, 133, 0, 0, 0, 0, 0, 0, 0,
694 0, 151, 154, 249, 249, 249, 0, 152, 0, 250,
695 251, 252, 253, 249, 249, 249, 0, 0, 249, 0,
696 0, 628, 631, 249, 0, 636, 0, 0, 0, 0,
697 0, 0, 249, 0, 0, 0, 0, 249, 249, 249,
698 249, 249, 249, 0, 0, 0, 0, 0, 658, 249,
699 628, 249, 0, 0, 0, 0, 130, 131, 0, 667,
700 668, 0, 636, 0, 670, 671, 249, 0, 47, 0,
701 673, 0, 249, 154, 191, 0, 0, 135, 136, 439,
702 0, 0, 658, 0, 0, 0, 0, 137, 138, 139,
703 0, 0, 140, 691, 0, 0, 0, 141, 0, 0,
704 0, 0, 0, 0, 0, 0, 142, 0, 0, 0,
705 0, 143, 144, 145, 146, 147, 148, 0, 0, 0,
706 0, 0, 191, 149, 47, 150, 0, 191, 0, 0,
707 0, 0, 0, 130, 131, 0, 0, 0, 0, 0,
708 151, 0, 191, 0, 0, 191, 152, 0, 0, 0,
709 0, 191, 191, 0, 135, 136, 0, 0, 0, 0,
710 0, 0, 0, 191, 137, 138, 139, 0, 0, 140,
711 0, 258, 245, 0, 141, 415, 256, 254, 414, 255,
712 0, 257, 0, 142, 0, 0, 0, 0, 143, 144,
713 145, 146, 147, 148, 248, 0, 249, 240, 0, 0,
714 149, 0, 150, 0, 130, 131, 0, 0, 0, 0,
715 0, 0, 0, 0, 0, 0, 0, 151, 0, 0,
716 0, 0, 0, 152, 0, 135, 136, 0, 244, 0,
717 0, 0, 0, 0, 0, 137, 138, 139, 0, 0,
718 140, 0, 0, 0, 0, 141, 0, 0, 0, 0,
719 0, 0, 0, 0, 142, 0, 0, 0, 243, 143,
720 144, 145, 146, 147, 148, 0, 0, 21, 0, 0,
721 0, 149, 0, 150, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 394, 0, 151, 0,
723 0, 0, 0, 0, 152, 22, 23, 0, 0, 0,
724 0, 0, 0, 24, 25, 26, 27, 0, 28, 29,
725 0, 0, 0, 0, 0, 0, 0, 30, 31, 32,
726 33, 0, 0, 21, 0, 0, 0, 34, 35, 36,
727 37, 38, 39, 0, 0, 0, 0, 40, 41, 42,
728 0, 0, 0, 0, 43, 44, 0, 0, 0, 0,
729 0, 22, 23, 0, 0, 0, 45, 0, 0, 24,
730 25, 26, 27, 0, 28, 29, 0, 46, 0, 0,
731 0, 0, 0, 30, 31, 32, 33, 0, 0, 0,
732 0, 0, 0, 34, 35, 36, 37, 38, 39, 0,
733 0, 0, 0, 40, 41, 42, 0, 0, 0, 0,
734 43, 44, 241, 242, 246, 247, 250, 251, 252, 253,
735 258, 245, 45, 0, 0, 256, 254, 259, 255, 0,
736 257, 258, 245, 46, 0, 333, 256, 254, 0, 255,
737 0, 257, 0, 248, 0, 249, 240, 0, 0, 0,
738 0, 0, 0, 0, 248, 0, 249, 240, 258, 245,
739 0, 0, 0, 256, 254, 411, 255, 0, 257, 0,
740 258, 245, 0, 0, 416, 256, 254, 244, 255, 0,
741 257, 248, 0, 249, 240, 0, 0, 0, 244, 0,
742 0, 0, 0, 248, 0, 249, 240, 0, 258, 245,
743 0, 0, 0, 256, 254, 417, 255, 243, 257, 0,
744 0, 0, 0, 0, 0, 244, 0, 0, 243, 0,
745 0, 248, 0, 249, 240, 258, 245, 244, 0, 0,
746 256, 254, 418, 255, 0, 257, 258, 245, 0, 0,
747 419, 256, 254, 0, 255, 243, 257, 0, 248, 0,
748 249, 240, 0, 0, 0, 244, 0, 243, 0, 248,
749 0, 249, 240, 258, 245, 0, 0, 422, 256, 254,
750 0, 255, 0, 257, 0, 0, 0, 0, 0, 0,
751 0, 0, 244, 0, 0, 243, 248, 0, 249, 240,
752 258, 245, 0, 244, 0, 256, 254, 426, 255, 0,
753 257, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 243, 248, 0, 249, 240, 0, 0, 0,
755 244, 0, 0, 243, 0, 0, 0, 0, 0, 0,
756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 244, 0, 0,
758 243, 241, 242, 246, 247, 250, 251, 252, 253, 0,
759 0, 0, 241, 242, 246, 247, 250, 251, 252, 253,
760 0, 0, 0, 0, 0, 0, 0, 243, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 241,
762 242, 246, 247, 250, 251, 252, 253, 0, 0, 0,
763 0, 241, 242, 246, 247, 250, 251, 252, 253, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 258, 245,
765 0, 0, 0, 256, 254, 427, 255, 0, 257, 241,
766 242, 246, 247, 250, 251, 252, 253, 0, 0, 0,
767 0, 248, 0, 249, 240, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 241, 242, 246, 247,
769 250, 251, 252, 253, 0, 0, 0, 241, 242, 246,
770 247, 250, 251, 252, 253, 244, 0, 0, 0, 0,
771 0, 258, 245, 0, 0, 430, 256, 254, 0, 255,
772 0, 257, 0, 0, 241, 242, 246, 247, 250, 251,
773 252, 253, 0, 0, 248, 243, 249, 240, 258, 245,
774 0, 0, 0, 256, 254, 431, 255, 0, 257, 0,
775 0, 241, 242, 246, 247, 250, 251, 252, 253, 0,
776 0, 248, 0, 249, 240, 258, 245, 0, 244, 0,
777 256, 254, 0, 255, 0, 257, 0, 258, 245, 0,
778 482, 0, 256, 254, 0, 255, 432, 257, 248, 0,
779 249, 240, 0, 0, 0, 244, 0, 0, 243, 0,
780 248, 0, 249, 240, 0, 258, 245, 0, 0, 0,
781 256, 254, 0, 255, 0, 257, 0, 0, 0, 0,
782 0, 0, 244, 0, 0, 243, 487, 0, 248, 0,
783 249, 240, 258, 245, 244, 0, 504, 256, 254, 0,
784 255, 0, 257, 258, 245, 0, 0, 505, 256, 254,
785 0, 255, 243, 257, 0, 248, 0, 249, 240, 0,
786 0, 0, 244, 0, 243, 0, 248, 0, 249, 240,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 241,
788 242, 246, 247, 250, 251, 252, 253, 0, 0, 244,
789 0, 0, 243, 0, 0, 0, 0, 258, 245, 0,
790 244, 506, 256, 254, 0, 255, 0, 257, 258, 245,
791 0, 0, 507, 256, 254, 0, 255, 0, 257, 243,
792 248, 0, 249, 240, 0, 0, 0, 0, 0, 0,
793 243, 248, 0, 249, 240, 0, 0, 0, 0, 0,
794 0, 0, 241, 242, 246, 247, 250, 251, 252, 253,
795 0, 0, 0, 0, 244, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 244, 0, 0, 0, 241,
797 242, 246, 247, 250, 251, 252, 253, 0, 0, 0,
798 0, 0, 0, 0, 243, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 243, 241, 242, 246, 247,
800 250, 251, 252, 253, 0, 0, 0, 0, 241, 242,
801 246, 247, 250, 251, 252, 253, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 258, 245, 0, 0, 508,
803 256, 254, 0, 255, 0, 257, 241, 242, 246, 247,
804 250, 251, 252, 253, 0, 0, 0, 0, 248, 0,
805 249, 240, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 241, 242, 246, 247, 250, 251, 252,
807 253, 0, 0, 0, 241, 242, 246, 247, 250, 251,
808 252, 253, 244, 0, 0, 0, 0, 0, 0, 0,
809 258, 245, 0, 0, 509, 256, 254, 0, 255, 0,
810 257, 258, 245, 0, 0, 533, 256, 254, 0, 255,
811 0, 257, 243, 248, 0, 249, 240, 0, 0, 0,
812 0, 0, 0, 0, 248, 0, 249, 240, 241, 242,
813 246, 247, 250, 251, 252, 253, 0, 0, 0, 241,
814 242, 246, 247, 250, 251, 252, 253, 244, 0, 258,
815 245, 0, 0, 551, 256, 254, 0, 255, 244, 257,
816 258, 245, 0, 0, 557, 256, 254, 0, 255, 0,
817 257, 0, 248, 0, 249, 240, 0, 243, 0, 0,
818 0, 0, 0, 248, 0, 249, 240, 0, 243, 258,
819 245, 0, 0, 558, 256, 254, 0, 255, 0, 257,
820 0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
821 0, 0, 248, 0, 249, 240, 0, 244, 258, 245,
822 0, 0, 562, 256, 254, 0, 255, 0, 257, 258,
823 245, 0, 0, 572, 256, 254, 243, 255, 0, 257,
824 0, 248, 0, 249, 240, 0, 244, 243, 0, 0,
825 0, 0, 248, 0, 249, 240, 241, 242, 246, 247,
826 250, 251, 252, 253, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 258, 245, 244, 243, 575, 256, 254,
828 0, 255, 0, 257, 258, 245, 244, 0, 0, 256,
829 254, 0, 255, 0, 257, 0, 248, 0, 249, 240,
830 0, 0, 0, 0, 0, 243, 0, 248, 0, 249,
831 240, 0, 0, 0, 0, 0, 243, 0, 0, 0,
832 0, 241, 242, 246, 247, 250, 251, 252, 253, 0,
833 244, 0, 241, 242, 246, 247, 250, 251, 252, 253,
834 0, 244, 258, 245, 0, 0, 0, 256, 254, 0,
835 255, 0, 257, 258, 245, 0, 0, 0, 256, 254,
836 243, 255, 0, 257, 0, 248, 0, 249, 0, 0,
837 0, 243, 0, 0, 0, 0, 248, 0, 249, 0,
838 241, 242, 246, 247, 250, 251, 252, 253, 0, 0,
839 0, 241, 242, 246, 247, 250, 251, 252, 253, 244,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 244, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 241, 242, 246, 247, 250, 251, 252, 253, 0, 243,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 243, 0, 0, 0, 0, 0, 0, 0, 0, 241,
845 242, 246, 247, 250, 251, 252, 253, 0, 0, 0,
846 241, 242, 246, 247, 250, 251, 252, 253, 258, 245,
847 0, 0, 0, 256, 254, 0, 255, 0, 257, 0,
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 248, 0, 249, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 241, 242, 246, 247, 250, 251,
851 252, 253, 0, 0, 0, 241, 242, 246, 247, 250,
852 251, 252, 253, 60, 0, 244, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 413, 61, 0, 0, 0, 0, 0, 0,
855 0, 60, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 62, 0, 0, 0, 0, 0,
857 0, 61, 0, 0, 242, 246, 247, 250, 251, 252,
858 253, 0, 0, 0, 0, 0, 246, 247, 250, 251,
859 252, 253, 62, 0, 0, 0, 0, 63, 0, 0,
860 0, 0, 0, 64, 65, 66, 67, 68, 0, 69,
861 70, 71, 0, 72, 73, 74, 75, 76, 0, 0,
862 0, 0, 77, 78, 79, 63, 0, 0, 0, 0,
863 0, 64, 65, 66, 67, 68, 0, 69, 70, 71,
864 0, 72, 73, 74, 75, 76, 0, 0, 0, 0,
865 77, 78, 79, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
870 0, 246, 247, 250, 251, 252, 253,
871};
872const short yycheck[] =
873 { 95,
874 198, 199, 64, 0, 100, 184, 0, 44, 42, 40,
875 42, 0, 74, 41, 33, 19, 59, 41, 123, 81,
876 44, 59, 41, 59, 59, 123, 44, 125, 44, 63,
877 44, 63, 44, 200, 440, 42, 258, 258, 33, 59,
878 0, 206, 59, 125, 38, 301, 40, 41, 523, 43,
879 44, 45, 44, 41, 42, 58, 63, 91, 61, 44,
880 41, 44, 258, 44, 58, 59, 60, 125, 62, 63,
881 132, 133, 42, 595, 41, 63, 59, 44, 38, 125,
882 40, 41, 123, 558, 44, 0, 576, 41, 42, 42,
883 61, 153, 154, 63, 156, 617, 176, 177, 58, 59,
884 94, 93, 164, 63, 44, 125, 683, 125, 125, 63,
885 63, 125, 333, 603, 37, 44, 40, 639, 695, 42,
886 182, 61, 258, 259, 47, 40, 41, 533, 674, 44,
887 124, 125, 61, 123, 94, 40, 358, 123, 684, 361,
888 362, 363, 398, 58, 59, 312, 41, 41, 210, 44,
889 44, 213, 214, 643, 216, 217, 258, 258, 259, 221,
890 222, 223, 224, 225, 124, 125, 228, 257, 258, 575,
891 232, 233, 41, 123, 236, 237, 258, 123, 240, 241,
892 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
893 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
894 258, 337, 123, 123, 41, 267, 268, 44, 42, 0,
895 125, 123, 258, 37, 40, 258, 364, 40, 42, 43,
896 258, 45, 41, 47, 258, 44, 258, 323, 324, 63,
897 258, 40, 41, 40, 258, 259, 337, 40, 403, 258,
898 258, 40, 258, 258, 258, 42, 258, 38, 279, 40,
899 41, 258, 43, 44, 45, 360, 0, 291, 292, 291,
900 292, 40, 360, 258, 258, 40, 63, 58, 59, 60,
901 258, 62, 63, 258, 268, 269, 270, 271, 272, 273,
902 274, 275, 40, 258, 291, 292, 40, 44, 258, 40,
903 333, 258, 457, 334, 38, 333, 40, 41, 258, 331,
904 44, 499, 382, 94, 258, 258, 343, 40, 268, 269,
905 270, 271, 306, 337, 58, 59, 60, 311, 62, 63,
906 40, 291, 292, 327, 360, 360, 40, 389, 390, 391,
907 392, 258, 326, 124, 125, 329, 370, 502, 370, 333,
908 258, 335, 336, 258, 0, 258, 306, 333, 334, 343,
909 94, 311, 414, 347, 343, 417, 418, 278, 420, 258,
910 539, 258, 258, 370, 426, 427, 326, 364, 125, 329,
911 432, 258, 44, 333, 257, 335, 336, 367, 368, 369,
912 124, 125, 38, 343, 40, 41, 58, 347, 44, 61,
913 258, 306, 472, 473, 258, 258, 311, 354, 355, 356,
914 370, 343, 58, 59, 60, 258, 62, 63, 365, 41,
915 58, 326, 44, 334, 329, 367, 368, 369, 333, 481,
916 335, 336, 123, 58, 258, 59, 125, 258, 343, 258,
917 258, 527, 347, 302, 303, 304, 305, 306, 94, 258,
918 259, 41, 258, 258, 44, 258, 367, 368, 369, 0,
919 274, 275, 40, 125, 258, 517, 258, 291, 292, 40,
920 522, 258, 524, 559, 123, 258, 40, 258, 124, 125,
921 40, 44, 41, 535, 40, 44, 40, 268, 269, 270,
922 271, 272, 273, 274, 275, 40, 40, 38, 40, 40,
923 41, 553, 123, 44, 291, 292, 44, 40, 560, 40,
924 698, 258, 700, 40, 40, 40, 704, 58, 59, 60,
925 58, 62, 63, 61, 258, 306, 40, 40, 337, 40,
926 311, 40, 618, 40, 268, 269, 270, 271, 272, 273,
927 274, 275, 258, 44, 44, 326, 370, 44, 329, 59,
928 125, 41, 333, 94, 335, 336, 41, 41, 258, 306,
929 41, 41, 343, 37, 311, 41, 347, 40, 42, 43,
930 41, 45, 306, 47, 41, 358, 258, 311, 361, 362,
931 363, 258, 329, 124, 125, 258, 61, 125, 335, 336,
932 258, 61, 326, 258, 0, 329, 258, 258, 258, 333,
933 347, 335, 336, 258, 258, 258, 258, 258, 59, 343,
934 59, 258, 258, 347, 258, 40, 40, 44, 41, 125,
935 41, 41, 268, 269, 270, 271, 272, 273, 274, 275,
936 41, 41, 38, 41, 40, 41, 258, 259, 44, 44,
937 123, 58, 358, 334, 306, 361, 362, 363, 40, 311,
938 41, 41, 58, 59, 60, 258, 62, 63, 358, 258,
939 306, 361, 362, 363, 59, 311, 40, 329, 258, 259,
940 58, 333, 58, 335, 336, 125, 367, 368, 369, 258,
941 326, 258, 0, 329, 323, 347, 41, 333, 94, 335,
942 336, 333, 324, 41, 125, 0, 41, 343, 58, 258,
943 259, 347, 40, 40, 278, 123, 40, 61, 41, 44,
944 40, 334, 59, 62, 326, 337, 59, 258, 124, 125,
945 258, 125, 40, 41, 40, 61, 44, 268, 269, 270,
946 271, 272, 273, 38, 40, 40, 41, 58, 123, 44,
947 58, 59, 123, 40, 58, 63, 40, 337, 40, 40,
948 40, 40, 258, 58, 59, 60, 40, 62, 63, 40,
949 109, 110, 125, 112, 113, 306, 40, 123, 306, 118,
950 311, 40, 40, 311, 62, 41, 40, 0, 337, 61,
951 41, 40, 40, 333, 41, 326, 41, 41, 329, 94,
952 258, 329, 333, 41, 335, 336, 125, 335, 336, 62,
953 306, 41, 343, 41, 41, 311, 347, 125, 258, 347,
954 0, 41, 258, 41, 41, 38, 41, 40, 41, 124,
955 125, 44, 41, 329, 258, 41, 125, 0, 59, 335,
956 336, 41, 0, 59, 364, 58, 59, 60, 343, 62,
957 63, 347, 125, 58, 343, 343, 125, 343, 38, 0,
958 40, 41, 258, 125, 44, 343, 306, 343, 58, 391,
959 125, 311, 268, 269, 270, 271, 272, 273, 58, 59,
960 59, 94, 59, 63, 343, 125, 123, 343, 343, 329,
961 343, 343, 343, 343, 343, 335, 336, 38, 343, 40,
962 41, 343, 125, 44, 326, 343, 343, 347, 0, 343,
963 306, 124, 125, 123, 94, 311, 489, 58, 59, 520,
964 686, 125, 63, 125, 649, 617, 642, 662, 122, 89,
965 326, 188, 215, 329, 521, 599, 634, 333, 603, 335,
966 336, 0, 643, 452, 124, 125, 212, 343, 40, 41,
967 258, 347, 44, 94, 513, -1, -1, -1, -1, -1,
968 268, 269, -1, 258, 125, -1, 58, 59, -1, -1,
969 309, 63, 311, 268, 269, 270, 271, 272, 273, -1,
970 -1, 40, 41, 124, 125, 44, -1, -1, 260, 261,
971 262, 263, 264, 265, 266, 267, -1, -1, 306, 58,
972 59, -1, 94, 311, 63, -1, -1, -1, -1, -1,
973 0, 306, -1, -1, -1, -1, 311, -1, 326, -1,
974 -1, 329, -1, -1, -1, 333, -1, 335, 336, -1,
975 -1, 326, 124, 125, 329, 343, -1, -1, 333, 347,
976 335, 336, -1, -1, -1, 258, -1, -1, 343, -1,
977 40, 41, 347, -1, 44, 268, 269, 270, 271, 272,
978 273, -1, -1, -1, -1, 124, 125, -1, 58, 59,
979 -1, 37, 38, 63, -1, -1, 42, 43, 258, 45,
980 -1, 47, -1, 42, -1, -1, -1, -1, 268, 269,
981 270, 271, -1, 306, 60, -1, 62, 258, 311, -1,
982 59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
983 -1, -1, -1, 326, -1, -1, 329, 258, -1, -1,
984 333, -1, 335, 336, -1, -1, 306, 268, 269, -1,
985 343, 311, 91, -1, 347, 125, -1, -1, 40, -1,
986 42, -1, -1, -1, -1, 306, 326, -1, -1, 329,
987 311, -1, -1, 333, -1, 335, 336, 59, -1, -1,
988 -1, 63, -1, 343, -1, 306, 258, 347, 329, -1,
989 311, -1, -1, -1, 335, 336, 268, 269, -1, -1,
990 -1, -1, -1, -1, -1, 326, 347, -1, 329, 91,
991 -1, -1, 333, -1, 335, 336, -1, -1, -1, 258,
992 -1, -1, 343, -1, -1, -1, 347, -1, -1, 268,
993 269, -1, -1, -1, 306, -1, -1, 33, -1, 311,
994 -1, -1, -1, 125, 40, 41, -1, 43, -1, 45,
995 -1, -1, -1, -1, 326, -1, -1, 329, -1, -1,
996 -1, 333, -1, 335, 336, -1, -1, 306, -1, -1,
997 -1, 343, 311, -1, -1, 347, -1, -1, -1, -1,
998 -1, -1, -1, -1, -1, -1, -1, 326, 258, -1,
999 329, -1, -1, -1, 333, -1, 335, 336, 268, -1,
1000 -1, -1, -1, -1, 343, -1, -1, -1, 347, -1,
1001 -1, 33, -1, -1, -1, -1, -1, -1, 40, 258,
1002 -1, 43, 44, 45, 270, 271, 272, 273, 274, 275,
1003 126, -1, -1, -1, -1, -1, 306, -1, -1, 61,
1004 -1, 311, 281, 282, 283, 284, 285, -1, -1, -1,
1005 -1, -1, 291, 292, -1, -1, 326, -1, -1, 329,
1006 -1, -1, -1, 333, -1, 335, 336, -1, -1, -1,
1007 -1, -1, -1, 343, -1, -1, 258, 347, -1, -1,
1008 -1, -1, -1, 33, -1, -1, 325, -1, 327, -1,
1009 40, -1, 331, 43, 44, 45, 335, 336, -1, 281,
1010 282, 283, 284, 285, 126, -1, -1, -1, -1, 291,
1011 292, 61, -1, -1, -1, -1, 37, -1, -1, -1,
1012 -1, 42, 43, -1, 45, -1, 47, 366, -1, -1,
1013 -1, 370, -1, -1, -1, -1, -1, -1, -1, 60,
1014 -1, 62, -1, 325, -1, 327, -1, -1, 33, 331,
1015 -1, -1, -1, 335, 336, 40, -1, -1, 43, -1,
1016 45, 257, 258, -1, 37, -1, -1, -1, -1, 42,
1017 43, -1, 45, 58, 47, -1, 126, -1, -1, -1,
1018 -1, -1, 278, 279, 366, -1, -1, 60, 370, 62,
1019 -1, -1, 288, 289, 290, -1, -1, 293, -1, -1,
1020 -1, -1, 298, -1, -1, -1, 302, 303, 304, 305,
1021 306, 307, -1, -1, -1, -1, 312, 313, 314, 315,
1022 316, 317, 33, -1, -1, -1, -1, -1, 324, 40,
1023 326, -1, 43, -1, 45, 257, 258, -1, -1, -1,
1024 -1, 126, -1, -1, -1, 341, -1, 41, -1, -1,
1025 44, 347, -1, -1, -1, -1, 278, 279, -1, -1,
1026 -1, -1, -1, -1, -1, 59, 288, 289, 290, -1,
1027 -1, 293, -1, -1, -1, -1, 298, -1, -1, -1,
1028 -1, -1, -1, -1, -1, 307, -1, -1, -1, -1,
1029 312, 313, 314, 315, 316, 317, -1, -1, -1, 33,
1030 -1, -1, 324, -1, 326, -1, 40, 257, 258, 43,
1031 -1, 45, -1, -1, -1, 126, -1, -1, -1, 341,
1032 -1, -1, -1, -1, 58, 347, -1, -1, 278, 279,
1033 -1, 125, -1, -1, -1, -1, -1, -1, 288, 289,
1034 290, -1, -1, 293, -1, -1, -1, -1, 298, 270,
1035 271, 272, 273, 274, 275, -1, -1, 307, -1, -1,
1036 -1, -1, 312, 313, 314, 315, 316, 317, -1, -1,
1037 33, -1, 257, 258, 324, -1, 326, 40, -1, -1,
1038 43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
1039 -1, 341, 126, 278, 279, 280, -1, 347, -1, 272,
1040 273, 274, 275, 288, 289, 290, -1, -1, 293, -1,
1041 -1, 608, 609, 298, -1, 612, -1, -1, -1, -1,
1042 -1, -1, 307, -1, -1, -1, -1, 312, 313, 314,
1043 315, 316, 317, -1, -1, -1, -1, -1, 635, 324,
1044 637, 326, -1, -1, -1, -1, 257, 258, -1, 646,
1045 647, -1, 649, -1, 651, 652, 341, -1, 59, -1,
1046 657, -1, 347, 126, 258, -1, -1, 278, 279, 280,
1047 -1, -1, 669, -1, -1, -1, -1, 288, 289, 290,
1048 -1, -1, 293, 680, -1, -1, -1, 298, -1, -1,
1049 -1, -1, -1, -1, -1, -1, 307, -1, -1, -1,
1050 -1, 312, 313, 314, 315, 316, 317, -1, -1, -1,
1051 -1, -1, 306, 324, 59, 326, -1, 311, -1, -1,
1052 -1, -1, -1, 257, 258, -1, -1, -1, -1, -1,
1053 341, -1, 326, -1, -1, 329, 347, -1, -1, -1,
1054 -1, 335, 336, -1, 278, 279, -1, -1, -1, -1,
1055 -1, -1, -1, 347, 288, 289, 290, -1, -1, 293,
1056 -1, 37, 38, -1, 298, 41, 42, 43, 44, 45,
1057 -1, 47, -1, 307, -1, -1, -1, -1, 312, 313,
1058 314, 315, 316, 317, 60, -1, 62, 63, -1, -1,
1059 324, -1, 326, -1, 257, 258, -1, -1, -1, -1,
1060 -1, -1, -1, -1, -1, -1, -1, 341, -1, -1,
1061 -1, -1, -1, 347, -1, 278, 279, -1, 94, -1,
1062 -1, -1, -1, -1, -1, 288, 289, 290, -1, -1,
1063 293, -1, -1, -1, -1, 298, -1, -1, -1, -1,
1064 -1, -1, -1, -1, 307, -1, -1, -1, 124, 312,
1065 313, 314, 315, 316, 317, -1, -1, 258, -1, -1,
1066 -1, 324, -1, 326, -1, -1, -1, -1, -1, -1,
1067 -1, -1, -1, -1, -1, -1, 277, -1, 341, -1,
1068 -1, -1, -1, -1, 347, 286, 287, -1, -1, -1,
1069 -1, -1, -1, 294, 295, 296, 297, -1, 299, 300,
1070 -1, -1, -1, -1, -1, -1, -1, 308, 309, 310,
1071 311, -1, -1, 258, -1, -1, -1, 318, 319, 320,
1072 321, 322, 323, -1, -1, -1, -1, 328, 329, 330,
1073 -1, -1, -1, -1, 335, 336, -1, -1, -1, -1,
1074 -1, 286, 287, -1, -1, -1, 347, -1, -1, 294,
1075 295, 296, 297, -1, 299, 300, -1, 358, -1, -1,
1076 -1, -1, -1, 308, 309, 310, 311, -1, -1, -1,
1077 -1, -1, -1, 318, 319, 320, 321, 322, 323, -1,
1078 -1, -1, -1, 328, 329, 330, -1, -1, -1, -1,
1079 335, 336, 268, 269, 270, 271, 272, 273, 274, 275,
1080 37, 38, 347, -1, -1, 42, 43, 44, 45, -1,
1081 47, 37, 38, 358, -1, 41, 42, 43, -1, 45,
1082 -1, 47, -1, 60, -1, 62, 63, -1, -1, -1,
1083 -1, -1, -1, -1, 60, -1, 62, 63, 37, 38,
1084 -1, -1, -1, 42, 43, 44, 45, -1, 47, -1,
1085 37, 38, -1, -1, 41, 42, 43, 94, 45, -1,
1086 47, 60, -1, 62, 63, -1, -1, -1, 94, -1,
1087 -1, -1, -1, 60, -1, 62, 63, -1, 37, 38,
1088 -1, -1, -1, 42, 43, 44, 45, 124, 47, -1,
1089 -1, -1, -1, -1, -1, 94, -1, -1, 124, -1,
1090 -1, 60, -1, 62, 63, 37, 38, 94, -1, -1,
1091 42, 43, 44, 45, -1, 47, 37, 38, -1, -1,
1092 41, 42, 43, -1, 45, 124, 47, -1, 60, -1,
1093 62, 63, -1, -1, -1, 94, -1, 124, -1, 60,
1094 -1, 62, 63, 37, 38, -1, -1, 41, 42, 43,
1095 -1, 45, -1, 47, -1, -1, -1, -1, -1, -1,
1096 -1, -1, 94, -1, -1, 124, 60, -1, 62, 63,
1097 37, 38, -1, 94, -1, 42, 43, 44, 45, -1,
1098 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1099 -1, -1, 124, 60, -1, 62, 63, -1, -1, -1,
1100 94, -1, -1, 124, -1, -1, -1, -1, -1, -1,
1101 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1102 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1,
1103 124, 268, 269, 270, 271, 272, 273, 274, 275, -1,
1104 -1, -1, 268, 269, 270, 271, 272, 273, 274, 275,
1105 -1, -1, -1, -1, -1, -1, -1, 124, -1, -1,
1106 -1, -1, -1, -1, -1, -1, -1, -1, -1, 268,
1107 269, 270, 271, 272, 273, 274, 275, -1, -1, -1,
1108 -1, 268, 269, 270, 271, 272, 273, 274, 275, -1,
1109 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
1110 -1, -1, -1, 42, 43, 44, 45, -1, 47, 268,
1111 269, 270, 271, 272, 273, 274, 275, -1, -1, -1,
1112 -1, 60, -1, 62, 63, -1, -1, -1, -1, -1,
1113 -1, -1, -1, -1, -1, -1, 268, 269, 270, 271,
1114 272, 273, 274, 275, -1, -1, -1, 268, 269, 270,
1115 271, 272, 273, 274, 275, 94, -1, -1, -1, -1,
1116 -1, 37, 38, -1, -1, 41, 42, 43, -1, 45,
1117 -1, 47, -1, -1, 268, 269, 270, 271, 272, 273,
1118 274, 275, -1, -1, 60, 124, 62, 63, 37, 38,
1119 -1, -1, -1, 42, 43, 44, 45, -1, 47, -1,
1120 -1, 268, 269, 270, 271, 272, 273, 274, 275, -1,
1121 -1, 60, -1, 62, 63, 37, 38, -1, 94, -1,
1122 42, 43, -1, 45, -1, 47, -1, 37, 38, -1,
1123 40, -1, 42, 43, -1, 45, 58, 47, 60, -1,
1124 62, 63, -1, -1, -1, 94, -1, -1, 124, -1,
1125 60, -1, 62, 63, -1, 37, 38, -1, -1, -1,
1126 42, 43, -1, 45, -1, 47, -1, -1, -1, -1,
1127 -1, -1, 94, -1, -1, 124, 58, -1, 60, -1,
1128 62, 63, 37, 38, 94, -1, 41, 42, 43, -1,
1129 45, -1, 47, 37, 38, -1, -1, 41, 42, 43,
1130 -1, 45, 124, 47, -1, 60, -1, 62, 63, -1,
1131 -1, -1, 94, -1, 124, -1, 60, -1, 62, 63,
1132 -1, -1, -1, -1, -1, -1, -1, -1, -1, 268,
1133 269, 270, 271, 272, 273, 274, 275, -1, -1, 94,
1134 -1, -1, 124, -1, -1, -1, -1, 37, 38, -1,
1135 94, 41, 42, 43, -1, 45, -1, 47, 37, 38,
1136 -1, -1, 41, 42, 43, -1, 45, -1, 47, 124,
1137 60, -1, 62, 63, -1, -1, -1, -1, -1, -1,
1138 124, 60, -1, 62, 63, -1, -1, -1, -1, -1,
1139 -1, -1, 268, 269, 270, 271, 272, 273, 274, 275,
1140 -1, -1, -1, -1, 94, -1, -1, -1, -1, -1,
1141 -1, -1, -1, -1, -1, 94, -1, -1, -1, 268,
1142 269, 270, 271, 272, 273, 274, 275, -1, -1, -1,
1143 -1, -1, -1, -1, 124, -1, -1, -1, -1, -1,
1144 -1, -1, -1, -1, -1, 124, 268, 269, 270, 271,
1145 272, 273, 274, 275, -1, -1, -1, -1, 268, 269,
1146 270, 271, 272, 273, 274, 275, -1, -1, -1, -1,
1147 -1, -1, -1, -1, -1, 37, 38, -1, -1, 41,
1148 42, 43, -1, 45, -1, 47, 268, 269, 270, 271,
1149 272, 273, 274, 275, -1, -1, -1, -1, 60, -1,
1150 62, 63, -1, -1, -1, -1, -1, -1, -1, -1,
1151 -1, -1, -1, 268, 269, 270, 271, 272, 273, 274,
1152 275, -1, -1, -1, 268, 269, 270, 271, 272, 273,
1153 274, 275, 94, -1, -1, -1, -1, -1, -1, -1,
1154 37, 38, -1, -1, 41, 42, 43, -1, 45, -1,
1155 47, 37, 38, -1, -1, 41, 42, 43, -1, 45,
1156 -1, 47, 124, 60, -1, 62, 63, -1, -1, -1,
1157 -1, -1, -1, -1, 60, -1, 62, 63, 268, 269,
1158 270, 271, 272, 273, 274, 275, -1, -1, -1, 268,
1159 269, 270, 271, 272, 273, 274, 275, 94, -1, 37,
1160 38, -1, -1, 41, 42, 43, -1, 45, 94, 47,
1161 37, 38, -1, -1, 41, 42, 43, -1, 45, -1,
1162 47, -1, 60, -1, 62, 63, -1, 124, -1, -1,
1163 -1, -1, -1, 60, -1, 62, 63, -1, 124, 37,
1164 38, -1, -1, 41, 42, 43, -1, 45, -1, 47,
1165 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1,
1166 -1, -1, 60, -1, 62, 63, -1, 94, 37, 38,
1167 -1, -1, 41, 42, 43, -1, 45, -1, 47, 37,
1168 38, -1, -1, 41, 42, 43, 124, 45, -1, 47,
1169 -1, 60, -1, 62, 63, -1, 94, 124, -1, -1,
1170 -1, -1, 60, -1, 62, 63, 268, 269, 270, 271,
1171 272, 273, 274, 275, -1, -1, -1, -1, -1, -1,
1172 -1, -1, -1, 37, 38, 94, 124, 41, 42, 43,
1173 -1, 45, -1, 47, 37, 38, 94, -1, -1, 42,
1174 43, -1, 45, -1, 47, -1, 60, -1, 62, 63,
1175 -1, -1, -1, -1, -1, 124, -1, 60, -1, 62,
1176 63, -1, -1, -1, -1, -1, 124, -1, -1, -1,
1177 -1, 268, 269, 270, 271, 272, 273, 274, 275, -1,
1178 94, -1, 268, 269, 270, 271, 272, 273, 274, 275,
1179 -1, 94, 37, 38, -1, -1, -1, 42, 43, -1,
1180 45, -1, 47, 37, 38, -1, -1, -1, 42, 43,
1181 124, 45, -1, 47, -1, 60, -1, 62, -1, -1,
1182 -1, 124, -1, -1, -1, -1, 60, -1, 62, -1,
1183 268, 269, 270, 271, 272, 273, 274, 275, -1, -1,
1184 -1, 268, 269, 270, 271, 272, 273, 274, 275, 94,
1185 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1186 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1187 268, 269, 270, 271, 272, 273, 274, 275, -1, 124,
1188 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1189 124, -1, -1, -1, -1, -1, -1, -1, -1, 268,
1190 269, 270, 271, 272, 273, 274, 275, -1, -1, -1,
1191 268, 269, 270, 271, 272, 273, 274, 275, 37, 38,
1192 -1, -1, -1, 42, 43, -1, 45, -1, 47, -1,
1193 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1194 -1, 60, -1, 62, -1, -1, -1, -1, -1, -1,
1195 -1, -1, -1, -1, 268, 269, 270, 271, 272, 273,
1196 274, 275, -1, -1, -1, 268, 269, 270, 271, 272,
1197 273, 274, 275, 258, -1, 94, -1, -1, -1, -1,
1198 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1199 -1, -1, 277, 278, -1, -1, -1, -1, -1, -1,
1200 -1, 258, -1, -1, -1, -1, -1, -1, -1, -1,
1201 -1, -1, -1, -1, 299, -1, -1, -1, -1, -1,
1202 -1, 278, -1, -1, 269, 270, 271, 272, 273, 274,
1203 275, -1, -1, -1, -1, -1, 270, 271, 272, 273,
1204 274, 275, 299, -1, -1, -1, -1, 332, -1, -1,
1205 -1, -1, -1, 338, 339, 340, 341, 342, -1, 344,
1206 345, 346, -1, 348, 349, 350, 351, 352, -1, -1,
1207 -1, -1, 357, 358, 359, 332, -1, -1, -1, -1,
1208 -1, 338, 339, 340, 341, 342, -1, 344, 345, 346,
1209 -1, 348, 349, 350, 351, 352, -1, -1, -1, -1,
1210 357, 358, 359, -1, -1, -1, -1, -1, -1, -1,
1211 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1212 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1214 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1215 -1, 270, 271, 272, 273, 274, 275,
1216};
1217#define YYFINAL5 5
1218#ifndef YYDEBUG1
1219#define YYDEBUG1 0
1220#endif
1221#define YYMAXTOKEN370 370
1222#if YYDEBUG1
1223const char * const yyname[] =
1224 {
1225"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1226"'!'",0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,
12270,0,0,0,0,"':'","';'","'<'","'='","'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
12280,0,0,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
12290,0,0,0,0,0,0,0,"'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
12300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
12310,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
12320,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"INT","NAME",
1233"LNAME","PLUSEQ","MINUSEQ","MULTEQ","DIVEQ","LSHIFTEQ","RSHIFTEQ","ANDEQ",
1234"OREQ","OROR","ANDAND","EQ","NE","LE","GE","LSHIFT","RSHIFT","UNARY","END",
1235"ALIGN_K","BLOCK","BIND","QUAD","SQUAD","LONG","SHORT","BYTE","SECTIONS",
1236"PHDRS","DATA_SEGMENT_ALIGN","DATA_SEGMENT_RELRO_END","DATA_SEGMENT_END",
1237"SORT_BY_NAME","SORT_BY_ALIGNMENT","SIZEOF_HEADERS","OUTPUT_FORMAT",
1238"FORCE_COMMON_ALLOCATION","OUTPUT_ARCH","INHIBIT_COMMON_ALLOCATION",
1239"SEGMENT_START","INCLUDE","MEMORY","DEFSYMEND","NOLOAD","DSECT","COPY","INFO",
1240"OVERLAY","DEFINED","TARGET_K","SEARCH_DIR","MAP","ENTRY","NEXT","SIZEOF",
1241"ADDR","LOADADDR","MAX_K","MIN_K","STARTUP","HLL","SYSLIB","FLOAT","NOFLOAT",
1242"NOCROSSREFS","ORIGIN","FILL","LENGTH","CREATE_OBJECT_SYMBOLS","INPUT","GROUP",
1243"OUTPUT","CONSTRUCTORS","ALIGNMOD","AT","SUBALIGN","PROVIDE","PROVIDE_HIDDEN",
1244"AS_NEEDED","CHIP","LIST","SECT","ABSOLUTE","LOAD","NEWLINE","ENDWORD","ORDER",
1245"NAMEWORD","ASSERT_K","FORMAT","PUBLIC","BASE","ALIAS","TRUNCATE","REL",
1246"INPUT_SCRIPT","INPUT_MRI_SCRIPT","INPUT_DEFSYM","CASE","EXTERN","START",
1247"VERS_TAG","VERS_IDENTIFIER","GLOBAL","LOCAL","VERSIONK","INPUT_VERSION_SCRIPT",
1248"KEEP","ONLY_IF_RO","ONLY_IF_RW","SPECIAL","EXCLUDE_FILE",
1249};
1250const char * const yyrule[] =
1251 {"$accept : file",
1252"file : INPUT_SCRIPT script_file",
1253"file : INPUT_MRI_SCRIPT mri_script_file",
1254"file : INPUT_VERSION_SCRIPT version_script_file",
1255"file : INPUT_DEFSYM defsym_expr",
1256"filename : NAME",
1257"$$1 :",
1258"defsym_expr : $$1 NAME '=' exp",
1259"$$2 :",
1260"mri_script_file : $$2 mri_script_lines",
1261"mri_script_lines : mri_script_lines mri_script_command NEWLINE",
1262"mri_script_lines :",
1263"mri_script_command : CHIP exp",
1264"mri_script_command : CHIP exp ',' exp",
1265"mri_script_command : NAME",
1266"mri_script_command : LIST",
1267"mri_script_command : ORDER ordernamelist",
1268"mri_script_command : ENDWORD",
1269"mri_script_command : PUBLIC NAME '=' exp",
1270"mri_script_command : PUBLIC NAME ',' exp",
1271"mri_script_command : PUBLIC NAME exp",
1272"mri_script_command : FORMAT NAME",
1273"mri_script_command : SECT NAME ',' exp",
1274"mri_script_command : SECT NAME exp",
1275"mri_script_command : SECT NAME '=' exp",
1276"mri_script_command : ALIGN_K NAME '=' exp",
1277"mri_script_command : ALIGN_K NAME ',' exp",
1278"mri_script_command : ALIGNMOD NAME '=' exp",
1279"mri_script_command : ALIGNMOD NAME ',' exp",
1280"mri_script_command : ABSOLUTE mri_abs_name_list",
1281"mri_script_command : LOAD mri_load_name_list",
1282"mri_script_command : NAMEWORD NAME",
1283"mri_script_command : ALIAS NAME ',' NAME",
1284"mri_script_command : ALIAS NAME ',' INT",
1285"mri_script_command : BASE exp",
1286"mri_script_command : TRUNCATE INT",
1287"mri_script_command : CASE casesymlist",
1288"mri_script_command : EXTERN extern_name_list",
1289"$$3 :",
1290"mri_script_command : INCLUDE filename $$3 mri_script_lines END",
1291"mri_script_command : START NAME",
1292"mri_script_command :",
1293"ordernamelist : ordernamelist ',' NAME",
1294"ordernamelist : ordernamelist NAME",
1295"ordernamelist :",
1296"mri_load_name_list : NAME",
1297"mri_load_name_list : mri_load_name_list ',' NAME",
1298"mri_abs_name_list : NAME",
1299"mri_abs_name_list : mri_abs_name_list ',' NAME",
1300"casesymlist :",
1301"casesymlist : NAME",
1302"casesymlist : casesymlist ',' NAME",
1303"extern_name_list : NAME",
1304"extern_name_list : extern_name_list NAME",
1305"extern_name_list : extern_name_list ',' NAME",
1306"$$4 :",
1307"script_file : $$4 ifile_list",
1308"ifile_list : ifile_list ifile_p1",
1309"ifile_list :",
1310"ifile_p1 : memory",
1311"ifile_p1 : sections",
1312"ifile_p1 : phdrs",
1313"ifile_p1 : startup",
1314"ifile_p1 : high_level_library",
1315"ifile_p1 : low_level_library",
1316"ifile_p1 : floating_point_support",
1317"ifile_p1 : statement_anywhere",
1318"ifile_p1 : version",
1319"ifile_p1 : ';'",
1320"ifile_p1 : TARGET_K '(' NAME ')'",
1321"ifile_p1 : SEARCH_DIR '(' filename ')'",
1322"ifile_p1 : OUTPUT '(' filename ')'",
1323"ifile_p1 : OUTPUT_FORMAT '(' NAME ')'",
1324"ifile_p1 : OUTPUT_FORMAT '(' NAME ',' NAME ',' NAME ')'",
1325"ifile_p1 : OUTPUT_ARCH '(' NAME ')'",
1326"ifile_p1 : FORCE_COMMON_ALLOCATION",
1327"ifile_p1 : INHIBIT_COMMON_ALLOCATION",
1328"ifile_p1 : INPUT '(' input_list ')'",
1329"$$5 :",
1330"ifile_p1 : GROUP $$5 '(' input_list ')'",
1331"ifile_p1 : MAP '(' filename ')'",
1332"$$6 :",
1333"ifile_p1 : INCLUDE filename $$6 ifile_list END",
1334"ifile_p1 : NOCROSSREFS '(' nocrossref_list ')'",
1335"ifile_p1 : EXTERN '(' extern_name_list ')'",
1336"input_list : NAME",
1337"input_list : input_list ',' NAME",
1338"input_list : input_list NAME",
1339"input_list : LNAME",
1340"input_list : input_list ',' LNAME",
1341"input_list : input_list LNAME",
1342"$$7 :",
1343"input_list : AS_NEEDED '(' $$7 input_list ')'",
1344"$$8 :",
1345"input_list : input_list ',' AS_NEEDED '(' $$8 input_list ')'",
1346"$$9 :",
1347"input_list : input_list AS_NEEDED '(' $$9 input_list ')'",
1348"sections : SECTIONS '{' sec_or_group_p1 '}'",
1349"sec_or_group_p1 : sec_or_group_p1 section",
1350"sec_or_group_p1 : sec_or_group_p1 statement_anywhere",
1351"sec_or_group_p1 :",
1352"statement_anywhere : ENTRY '(' NAME ')'",
1353"statement_anywhere : assignment end",
1354"$$10 :",
1355"statement_anywhere : ASSERT_K $$10 '(' exp ',' NAME ')'",
1356"wildcard_name : NAME",
1357"wildcard_name : '*'",
1358"wildcard_name : '?'",
1359"wildcard_spec : wildcard_name",
1360"wildcard_spec : EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name",
1361"wildcard_spec : SORT_BY_NAME '(' wildcard_name ')'",
1362"wildcard_spec : SORT_BY_ALIGNMENT '(' wildcard_name ')'",
1363"wildcard_spec : SORT_BY_NAME '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'",
1364"wildcard_spec : SORT_BY_NAME '(' SORT_BY_NAME '(' wildcard_name ')' ')'",
1365"wildcard_spec : SORT_BY_ALIGNMENT '(' SORT_BY_NAME '(' wildcard_name ')' ')'",
1366"wildcard_spec : SORT_BY_ALIGNMENT '(' SORT_BY_ALIGNMENT '(' wildcard_name ')' ')'",
1367"wildcard_spec : SORT_BY_NAME '(' EXCLUDE_FILE '(' exclude_name_list ')' wildcard_name ')'",
1368"exclude_name_list : exclude_name_list wildcard_name",
1369"exclude_name_list : wildcard_name",
1370"file_NAME_list : file_NAME_list opt_comma wildcard_spec",
1371"file_NAME_list : wildcard_spec",
1372"input_section_spec_no_keep : NAME",
1373"input_section_spec_no_keep : '[' file_NAME_list ']'",
1374"input_section_spec_no_keep : wildcard_spec '(' file_NAME_list ')'",
1375"input_section_spec : input_section_spec_no_keep",
1376"$$11 :",
1377"input_section_spec : KEEP '(' $$11 input_section_spec_no_keep ')'",
1378"statement : assignment end",
1379"statement : CREATE_OBJECT_SYMBOLS",
1380"statement : ';'",
1381"statement : CONSTRUCTORS",
1382"statement : SORT_BY_NAME '(' CONSTRUCTORS ')'",
1383"statement : input_section_spec",
1384"statement : length '(' mustbe_exp ')'",
1385"statement : FILL '(' fill_exp ')'",
1386"statement_list : statement_list statement",
1387"statement_list : statement",
1388"statement_list_opt :",
1389"statement_list_opt : statement_list",
1390"length : QUAD",
1391"length : SQUAD",
1392"length : LONG",
1393"length : SHORT",
1394"length : BYTE",
1395"fill_exp : mustbe_exp",
1396"fill_opt : '=' fill_exp",
1397"fill_opt :",
1398"assign_op : PLUSEQ",
1399"assign_op : MINUSEQ",
1400"assign_op : MULTEQ",
1401"assign_op : DIVEQ",
1402"assign_op : LSHIFTEQ",
1403"assign_op : RSHIFTEQ",
1404"assign_op : ANDEQ",
1405"assign_op : OREQ",
1406"end : ';'",
1407"end : ','",
1408"assignment : NAME '=' mustbe_exp",
1409"assignment : NAME assign_op mustbe_exp",
1410"assignment : PROVIDE '(' NAME '=' mustbe_exp ')'",
1411"assignment : PROVIDE_HIDDEN '(' NAME '=' mustbe_exp ')'",
1412"opt_comma : ','",
1413"opt_comma :",
1414"memory : MEMORY '{' memory_spec memory_spec_list '}'",
1415"memory_spec_list : memory_spec_list memory_spec",
1416"memory_spec_list : memory_spec_list ',' memory_spec",
1417"memory_spec_list :",
1418"$$12 :",
1419"memory_spec : NAME $$12 attributes_opt ':' origin_spec opt_comma length_spec",
1420"origin_spec : ORIGIN '=' mustbe_exp",
1421"length_spec : LENGTH '=' mustbe_exp",
1422"attributes_opt :",
1423"attributes_opt : '(' attributes_list ')'",
1424"attributes_list : attributes_string",
1425"attributes_list : attributes_list attributes_string",
1426"attributes_string : NAME",
1427"attributes_string : '!' NAME",
1428"startup : STARTUP '(' filename ')'",
1429"high_level_library : HLL '(' high_level_library_NAME_list ')'",
1430"high_level_library : HLL '(' ')'",
1431"high_level_library_NAME_list : high_level_library_NAME_list opt_comma filename",
1432"high_level_library_NAME_list : filename",
1433"low_level_library : SYSLIB '(' low_level_library_NAME_list ')'",
1434"low_level_library_NAME_list : low_level_library_NAME_list opt_comma filename",
1435"low_level_library_NAME_list :",
1436"floating_point_support : FLOAT",
1437"floating_point_support : NOFLOAT",
1438"nocrossref_list :",
1439"nocrossref_list : NAME nocrossref_list",
1440"nocrossref_list : NAME ',' nocrossref_list",
1441"$$13 :",
1442"mustbe_exp : $$13 exp",
1443"exp : '-' exp",
1444"exp : '(' exp ')'",
1445"exp : NEXT '(' exp ')'",
1446"exp : '!' exp",
1447"exp : '+' exp",
1448"exp : '~' exp",
1449"exp : exp '*' exp",
1450"exp : exp '/' exp",
1451"exp : exp '%' exp",
1452"exp : exp '+' exp",
1453"exp : exp '-' exp",
1454"exp : exp LSHIFT exp",
1455"exp : exp RSHIFT exp",
1456"exp : exp EQ exp",
1457"exp : exp NE exp",
1458"exp : exp LE exp",
1459"exp : exp GE exp",
1460"exp : exp '<' exp",
1461"exp : exp '>' exp",
1462"exp : exp '&' exp",
1463"exp : exp '^' exp",
1464"exp : exp '|' exp",
1465"exp : exp '?' exp ':' exp",
1466"exp : exp ANDAND exp",
1467"exp : exp OROR exp",
1468"exp : DEFINED '(' NAME ')'",
1469"exp : INT",
1470"exp : SIZEOF_HEADERS",
1471"exp : SIZEOF '(' NAME ')'",
1472"exp : ADDR '(' NAME ')'",
1473"exp : LOADADDR '(' NAME ')'",
1474"exp : ABSOLUTE '(' exp ')'",
1475"exp : ALIGN_K '(' exp ')'",
1476"exp : ALIGN_K '(' exp ',' exp ')'",
1477"exp : DATA_SEGMENT_ALIGN '(' exp ',' exp ')'",
1478"exp : DATA_SEGMENT_RELRO_END '(' exp ',' exp ')'",
1479"exp : DATA_SEGMENT_END '(' exp ')'",
1480"exp : SEGMENT_START '(' NAME ',' exp ')'",
1481"exp : BLOCK '(' exp ')'",
1482"exp : NAME",
1483"exp : MAX_K '(' exp ',' exp ')'",
1484"exp : MIN_K '(' exp ',' exp ')'",
1485"exp : ASSERT_K '(' exp ',' NAME ')'",
1486"exp : ORIGIN '(' NAME ')'",
1487"exp : LENGTH '(' NAME ')'",
1488"memspec_at_opt : AT '>' NAME",
1489"memspec_at_opt :",
1490"opt_at : AT '(' exp ')'",
1491"opt_at :",
1492"opt_align : ALIGN_K '(' exp ')'",
1493"opt_align :",
1494"opt_subalign : SUBALIGN '(' exp ')'",
1495"opt_subalign :",
1496"sect_constraint : ONLY_IF_RO",
1497"sect_constraint : ONLY_IF_RW",
1498"sect_constraint : SPECIAL",
1499"sect_constraint :",
1500"$$14 :",
1501"$$15 :",
1502"$$16 :",
1503"$$17 :",
1504"$$18 :",
1505"section : NAME $$14 opt_exp_with_type opt_at opt_align opt_subalign $$15 sect_constraint '{' $$16 statement_list_opt '}' $$17 memspec_opt memspec_at_opt phdr_opt fill_opt $$18 opt_comma",
1506"$$19 :",
1507"$$20 :",
1508"$$21 :",
1509"$$22 :",
1510"$$23 :",
1511"section : OVERLAY $$19 opt_exp_without_type opt_nocrossrefs opt_at opt_subalign $$20 '{' $$21 overlay_section '}' $$22 memspec_opt memspec_at_opt phdr_opt fill_opt $$23 opt_comma",
1512"$$24 :",
1513"$$25 :",
1514"section : GROUP $$24 opt_exp_with_type $$25 '{' sec_or_group_p1 '}'",
1515"type : NOLOAD",
1516"type : DSECT",
1517"type : COPY",
1518"type : INFO",
1519"type : OVERLAY",
1520"atype : '(' type ')'",
1521"atype :",
1522"atype : '(' ')'",
1523"opt_exp_with_type : exp atype ':'",
1524"opt_exp_with_type : atype ':'",
1525"opt_exp_with_type : BIND '(' exp ')' atype ':'",
1526"opt_exp_with_type : BIND '(' exp ')' BLOCK '(' exp ')' atype ':'",
1527"opt_exp_without_type : exp ':'",
1528"opt_exp_without_type : ':'",
1529"opt_nocrossrefs :",
1530"opt_nocrossrefs : NOCROSSREFS",
1531"memspec_opt : '>' NAME",
1532"memspec_opt :",
1533"phdr_opt :",
1534"phdr_opt : phdr_opt ':' NAME",
1535"overlay_section :",
1536"$$26 :",
1537"$$27 :",
1538"$$28 :",
1539"overlay_section : overlay_section NAME $$26 '{' statement_list_opt '}' $$27 phdr_opt fill_opt $$28 opt_comma",
1540"phdrs : PHDRS '{' phdr_list '}'",
1541"phdr_list :",
1542"phdr_list : phdr_list phdr",
1543"$$29 :",
1544"$$30 :",
1545"phdr : NAME $$29 phdr_type phdr_qualifiers $$30 ';'",
1546"phdr_type : exp",
1547"phdr_qualifiers :",
1548"phdr_qualifiers : NAME phdr_val phdr_qualifiers",
1549"phdr_qualifiers : AT '(' exp ')' phdr_qualifiers",
1550"phdr_val :",
1551"phdr_val : '(' exp ')'",
1552"$$31 :",
1553"version_script_file : $$31 vers_nodes",
1554"$$32 :",
1555"version : $$32 VERSIONK '{' vers_nodes '}'",
1556"vers_nodes : vers_node",
1557"vers_nodes : vers_nodes vers_node",
1558"vers_node : '{' vers_tag '}' ';'",
1559"vers_node : VERS_TAG '{' vers_tag '}' ';'",
1560"vers_node : VERS_TAG '{' vers_tag '}' verdep ';'",
1561"verdep : VERS_TAG",
1562"verdep : verdep VERS_TAG",
1563"vers_tag :",
1564"vers_tag : vers_defns ';'",
1565"vers_tag : GLOBAL ':' vers_defns ';'",
1566"vers_tag : LOCAL ':' vers_defns ';'",
1567"vers_tag : GLOBAL ':' vers_defns ';' LOCAL ':' vers_defns ';'",
1568"vers_defns : VERS_IDENTIFIER",
1569"vers_defns : NAME",
1570"vers_defns : vers_defns ';' VERS_IDENTIFIER",
1571"vers_defns : vers_defns ';' NAME",
1572"$$33 :",
1573"vers_defns : vers_defns ';' EXTERN NAME '{' $$33 vers_defns opt_semicolon '}'",
1574"$$34 :",
1575"vers_defns : EXTERN NAME '{' $$34 vers_defns opt_semicolon '}'",
1576"vers_defns : GLOBAL",
1577"vers_defns : vers_defns ';' GLOBAL",
1578"vers_defns : LOCAL",
1579"vers_defns : vers_defns ';' LOCAL",
1580"vers_defns : EXTERN",
1581"vers_defns : vers_defns ';' EXTERN",
1582"opt_semicolon :",
1583"opt_semicolon : ';'",
1584};
1585#endif
1586#ifdef YYSTACKSIZE10000
1587#undef YYMAXDEPTH10000
1588#define YYMAXDEPTH10000 YYSTACKSIZE10000
1589#else
1590#ifdef YYMAXDEPTH10000
1591#define YYSTACKSIZE10000 YYMAXDEPTH10000
1592#else
1593#define YYSTACKSIZE10000 10000
1594#define YYMAXDEPTH10000 10000
1595#endif
1596#endif
1597#define YYINITSTACKSIZE200 200
1598/* LINTUSED */
1599int yydebug;
1600int yynerrs;
1601int yyerrflag;
1602int yychar;
1603short *yyssp;
1604YYSTYPE *yyvsp;
1605YYSTYPE yyval;
1606YYSTYPE yylval;
1607short *yyss;
1608short *yysslim;
1609YYSTYPE *yyvs;
1610unsigned int yystacksize;
1611int yyparse(void);
1612#line 1299 "ldgram.y"
1613void
1614yyerror(arg)
1615 const char *arg;
1616{
1617 if (ldfile_assumed_script)
1618 einfo (_("%P:%s: file format not recognized; treating as linker script\n")("%P:%s: file format not recognized; treating as linker script\n"
)
,
1619 ldfile_input_filename);
1620 if (error_index > 0 && error_index < ERROR_NAME_MAX20)
1621 einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]);
1622 else
1623 einfo ("%P%F:%S: %s\n", arg);
1624}
1625#line 1618 "ldgram.c"
1626/* allocate initial stack or double stack size, up to YYMAXDEPTH */
1627static int yygrowstack(void)
1628{
1629 unsigned int newsize;
1630 long sslen;
1631 short *newss;
1632 YYSTYPE *newvs;
1633
1634 if ((newsize = yystacksize) == 0)
27
Assuming the condition is false
28
Taking false branch
1635 newsize = YYINITSTACKSIZE200;
1636 else if (newsize >= YYMAXDEPTH10000)
29
Assuming 'newsize' is < YYMAXDEPTH
30
Taking false branch
1637 return -1;
1638 else if ((newsize *= 2) > YYMAXDEPTH10000)
31
Assuming the condition is false
32
Taking false branch
1639 newsize = YYMAXDEPTH10000;
1640 sslen = yyssp - yyss;
1641#ifdef SIZE_MAX
1642#define YY_SIZE_MAX0xffffffffU SIZE_MAX
1643#else
1644#define YY_SIZE_MAX0xffffffffU 0xffffffffU
1645#endif
1646 if (newsize && YY_SIZE_MAX0xffffffffU / newsize < sizeof *newss)
33
Assuming 'newsize' is 0
1647 goto bail;
1648 newss = (short *)realloc(yyss, newsize * sizeof *newss);
1649 if (newss == NULL((void *)0))
34
Assuming 'newss' is not equal to NULL
35
Taking false branch
1650 goto bail;
1651 yyss = newss;
1652 yyssp = newss + sslen;
1653 if (newsize
35.1
'newsize' is 0
&& YY_SIZE_MAX0xffffffffU / newsize < sizeof *newvs)
1654 goto bail;
1655 newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs);
1656 if (newvs == NULL((void *)0))
36
Assuming 'newvs' is not equal to NULL
37
Taking false branch
1657 goto bail;
1658 yyvs = newvs;
1659 yyvsp = newvs + sslen;
1660 yystacksize = newsize;
1661 yysslim = yyss + newsize - 1;
1662 return 0;
1663bail:
1664 if (yyss)
1665 free(yyss);
1666 if (yyvs)
1667 free(yyvs);
1668 yyss = yyssp = NULL((void *)0);
1669 yyvs = yyvsp = NULL((void *)0);
1670 yystacksize = 0;
1671 return -1;
1672}
1673
1674#define YYABORTgoto yyabort goto yyabort
1675#define YYREJECTgoto yyabort goto yyabort
1676#define YYACCEPTgoto yyaccept goto yyaccept
1677#define YYERRORgoto yyerrlab goto yyerrlab
1678int
1679yyparse(void)
1680{
1681 int yym, yyn, yystate;
1682#if YYDEBUG1
1683 const char *yys;
1684
1685 if ((yys = getenv("YYDEBUG")))
1
Assuming 'yys' is null
2
Taking false branch
1686 {
1687 yyn = *yys;
1688 if (yyn >= '0' && yyn <= '9')
1689 yydebug = yyn - '0';
1690 }
1691#endif /* YYDEBUG */
1692
1693 yynerrs = 0;
1694 yyerrflag = 0;
1695 yychar = (-1);
1696
1697 if (yyss == NULL((void *)0) && yygrowstack()) goto yyoverflow;
3
Assuming 'yyss' is not equal to NULL
1698 yyssp = yyss;
1699 yyvsp = yyvs;
1700 *yyssp = yystate = 0;
1701
1702yyloop:
1703 if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
4
Taking false branch
1704 if (yychar
4.1
'yychar' is < 0
< 0)
5
Taking true branch
1705 {
1706 if ((yychar = yylex()) < 0) yychar = 0;
6
Assuming the condition is false
7
Taking false branch
1707#if YYDEBUG1
1708 if (yydebug)
8
Assuming 'yydebug' is 0
9
Taking false branch
1709 {
1710 yys = 0;
1711 if (yychar <= YYMAXTOKEN370) yys = yyname[yychar];
1712 if (!yys) yys = "illegal-symbol";
1713 printf("%sdebug: state %d, reading %d (%s)\n",
1714 YYPREFIX"yy", yystate, yychar, yys);
1715 }
1716#endif
1717 }
1718 if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
10
Assuming 'yyn' is not equal to 0
11
Assuming the condition is false
1719 yyn <= YYTABLESIZE3417 && yycheck[yyn] == yychar)
1720 {
1721#if YYDEBUG1
1722 if (yydebug)
1723 printf("%sdebug: state %d, shifting to state %d\n",
1724 YYPREFIX"yy", yystate, yytable[yyn]);
1725#endif
1726 if (yyssp >= yysslim && yygrowstack())
1727 {
1728 goto yyoverflow;
1729 }
1730 *++yyssp = yystate = yytable[yyn];
1731 *++yyvsp = yylval;
1732 yychar = (-1);
1733 if (yyerrflag > 0) --yyerrflag;
1734 goto yyloop;
1735 }
1736 if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
12
Assuming 'yyn' is 0
1737 yyn <= YYTABLESIZE3417 && yycheck[yyn] == yychar)
1738 {
1739 yyn = yytable[yyn];
1740 goto yyreduce;
1741 }
1742 if (yyerrflag) goto yyinrecovery;
13
Assuming 'yyerrflag' is not equal to 0
14
Taking true branch
15
Control jumps to line 1754
1743#if defined(__GNUC__4)
1744 goto yynewerror;
1745#endif
1746yynewerror:
1747 yyerror("syntax error");
1748#if defined(__GNUC__4)
1749 goto yyerrlab;
1750#endif
1751yyerrlab:
1752 ++yynerrs;
1753yyinrecovery:
1754 if (yyerrflag < 3)
16
Assuming 'yyerrflag' is < 3
17
Taking true branch
1755 {
1756 yyerrflag = 3;
1757 for (;;)
18
Loop condition is true. Entering loop body
1758 {
1759 if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE256) >= 0 &&
19
Assuming 'yyn' is not equal to 0
20
Assuming the condition is true
23
Taking true branch
1760 yyn <= YYTABLESIZE3417 && yycheck[yyn] == YYERRCODE256)
21
Assuming 'yyn' is <= YYTABLESIZE
22
Assuming the condition is true
1761 {
1762#if YYDEBUG1
1763 if (yydebug
23.1
'yydebug' is 0
)
24
Taking false branch
1764 printf("%sdebug: state %d, error recovery shifting\
1765 to state %d\n", YYPREFIX"yy", *yyssp, yytable[yyn]);
1766#endif
1767 if (yyssp >= yysslim && yygrowstack())
25
Assuming 'yyssp' is >= 'yysslim'
26
Calling 'yygrowstack'
38
Returning from 'yygrowstack'
39
Taking false branch
1768 {
1769 goto yyoverflow;
1770 }
1771 *++yyssp = yystate = yytable[yyn];
40
Use of zero-allocated memory
1772 *++yyvsp = yylval;
1773 goto yyloop;
1774 }
1775 else
1776 {
1777#if YYDEBUG1
1778 if (yydebug)
1779 printf("%sdebug: error recovery discarding state %d\n",
1780 YYPREFIX"yy", *yyssp);
1781#endif
1782 if (yyssp <= yyss) goto yyabort;
1783 --yyssp;
1784 --yyvsp;
1785 }
1786 }
1787 }
1788 else
1789 {
1790 if (yychar == 0) goto yyabort;
1791#if YYDEBUG1
1792 if (yydebug)
1793 {
1794 yys = 0;
1795 if (yychar <= YYMAXTOKEN370) yys = yyname[yychar];
1796 if (!yys) yys = "illegal-symbol";
1797 printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
1798 YYPREFIX"yy", yystate, yychar, yys);
1799 }
1800#endif
1801 yychar = (-1);
1802 goto yyloop;
1803 }
1804yyreduce:
1805#if YYDEBUG1
1806 if (yydebug)
1807 printf("%sdebug: state %d, reducing by rule %d (%s)\n",
1808 YYPREFIX"yy", yystate, yyn, yyrule[yyn]);
1809#endif
1810 yym = yylen[yyn];
1811 if (yym)
1812 yyval = yyvsp[1-yym];
1813 else
1814 memset(&yyval, 0, sizeof yyval);
1815 switch (yyn)
1816 {
1817case 6:
1818#line 173 "ldgram.y"
1819{ ldlex_defsym(); }
1820break;
1821case 7:
1822#line 175 "ldgram.y"
1823{
1824 ldlex_popstate();
1825 lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree));
1826 }
1827break;
1828case 8:
1829#line 183 "ldgram.y"
1830{
1831 ldlex_mri_script ();
1832 PUSH_ERROR (_("MRI style script"))if (error_index < 20) error_names[error_index] = ("MRI style script"
); error_index++;
;
1833 }
1834break;
1835case 9:
1836#line 188 "ldgram.y"
1837{
1838 ldlex_popstate ();
1839 mri_draw_tree ();
1840 POP_ERROR ()error_index--;;
1841 }
1842break;
1843case 14:
1844#line 203 "ldgram.y"
1845{
1846 einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n")("%P%F: unrecognised keyword in MRI style script '%s'\n"),yyvsp[0].name);
1847 }
1848break;
1849case 15:
1850#line 206 "ldgram.y"
1851{
1852 config.map_filename = "-";
1853 }
1854break;
1855case 18:
1856#line 212 "ldgram.y"
1857{ mri_public(yyvsp[-2].name, yyvsp[0].etree); }
1858break;
1859case 19:
1860#line 214 "ldgram.y"
1861{ mri_public(yyvsp[-2].name, yyvsp[0].etree); }
1862break;
1863case 20:
1864#line 216 "ldgram.y"
1865{ mri_public(yyvsp[-1].name, yyvsp[0].etree); }
1866break;
1867case 21:
1868#line 218 "ldgram.y"
1869{ mri_format(yyvsp[0].name); }
1870break;
1871case 22:
1872#line 220 "ldgram.y"
1873{ mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
1874break;
1875case 23:
1876#line 222 "ldgram.y"
1877{ mri_output_section(yyvsp[-1].name, yyvsp[0].etree);}
1878break;
1879case 24:
1880#line 224 "ldgram.y"
1881{ mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
1882break;
1883case 25:
1884#line 226 "ldgram.y"
1885{ mri_align(yyvsp[-2].name,yyvsp[0].etree); }
1886break;
1887case 26:
1888#line 228 "ldgram.y"
1889{ mri_align(yyvsp[-2].name,yyvsp[0].etree); }
1890break;
1891case 27:
1892#line 230 "ldgram.y"
1893{ mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
1894break;
1895case 28:
1896#line 232 "ldgram.y"
1897{ mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
1898break;
1899case 31:
1900#line 236 "ldgram.y"
1901{ mri_name(yyvsp[0].name); }
1902break;
1903case 32:
1904#line 238 "ldgram.y"
1905{ mri_alias(yyvsp[-2].name,yyvsp[0].name,0);}
1906break;
1907case 33:
1908#line 240 "ldgram.y"
1909{ mri_alias (yyvsp[-2].name, 0, (int) yyvsp[0].bigint.integer); }
1910break;
1911case 34:
1912#line 242 "ldgram.y"
1913{ mri_base(yyvsp[0].etree); }
1914break;
1915case 35:
1916#line 244 "ldgram.y"
1917{ mri_truncate ((unsigned int) yyvsp[0].bigint.integer); }
1918break;
1919case 38:
1920#line 248 "ldgram.y"
1921{ ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
1922break;
1923case 39:
1924#line 250 "ldgram.y"
1925{ ldlex_popstate (); }
1926break;
1927case 40:
1928#line 252 "ldgram.y"
1929{ lang_add_entry (yyvsp[0].name, FALSE0); }
1930break;
1931case 42:
1932#line 257 "ldgram.y"
1933{ mri_order(yyvsp[0].name); }
1934break;
1935case 43:
1936#line 258 "ldgram.y"
1937{ mri_order(yyvsp[0].name); }
1938break;
1939case 45:
1940#line 264 "ldgram.y"
1941{ mri_load(yyvsp[0].name); }
1942break;
1943case 46:
1944#line 265 "ldgram.y"
1945{ mri_load(yyvsp[0].name); }
1946break;
1947case 47:
1948#line 270 "ldgram.y"
1949{ mri_only_load(yyvsp[0].name); }
1950break;
1951case 48:
1952#line 272 "ldgram.y"
1953{ mri_only_load(yyvsp[0].name); }
1954break;
1955case 49:
1956#line 276 "ldgram.y"
1957{ yyval.name = NULL((void *)0); }
1958break;
1959case 52:
1960#line 283 "ldgram.y"
1961{ ldlang_add_undef (yyvsp[0].name); }
1962break;
1963case 53:
1964#line 285 "ldgram.y"
1965{ ldlang_add_undef (yyvsp[0].name); }
1966break;
1967case 54:
1968#line 287 "ldgram.y"
1969{ ldlang_add_undef (yyvsp[0].name); }
1970break;
1971case 55:
1972#line 291 "ldgram.y"
1973{
1974 ldlex_both();
1975 }
1976break;
1977case 56:
1978#line 295 "ldgram.y"
1979{
1980 ldlex_popstate();
1981 }
1982break;
1983case 69:
1984#line 320 "ldgram.y"
1985{ lang_add_target(yyvsp[-1].name); }
1986break;
1987case 70:
1988#line 322 "ldgram.y"
1989{ ldfile_add_library_path (yyvsp[-1].name, FALSE0); }
1990break;
1991case 71:
1992#line 324 "ldgram.y"
1993{ lang_add_output(yyvsp[-1].name, 1); }
1994break;
1995case 72:
1996#line 326 "ldgram.y"
1997{ lang_add_output_format (yyvsp[-1].name, (char *) NULL((void *)0),
1998 (char *) NULL((void *)0), 1); }
1999break;
2000case 73:
2001#line 329 "ldgram.y"
2002{ lang_add_output_format (yyvsp[-5].name, yyvsp[-3].name, yyvsp[-1].name, 1); }
2003break;
2004case 74:
2005#line 331 "ldgram.y"
2006{ ldfile_set_output_arch (yyvsp[-1].name, bfd_arch_unknown); }
2007break;
2008case 75:
2009#line 333 "ldgram.y"
2010{ command_line.force_common_definition = TRUE1 ; }
2011break;
2012case 76:
2013#line 335 "ldgram.y"
2014{ command_line.inhibit_common_definition = TRUE1 ; }
2015break;
2016case 78:
2017#line 338 "ldgram.y"
2018{ lang_enter_group (); }
2019break;
2020case 79:
2021#line 340 "ldgram.y"
2022{ lang_leave_group (); }
2023break;
2024case 80:
2025#line 342 "ldgram.y"
2026{ lang_add_map(yyvsp[-1].name); }
2027break;
2028case 81:
2029#line 344 "ldgram.y"
2030{ ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
2031break;
2032case 82:
2033#line 346 "ldgram.y"
2034{ ldlex_popstate (); }
2035break;
2036case 83:
2037#line 348 "ldgram.y"
2038{
2039 lang_add_nocrossref (yyvsp[-1].nocrossref);
2040 }
2041break;
2042case 85:
2043#line 356 "ldgram.y"
2044{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
2045 (char *)NULL((void *)0)); }
2046break;
2047case 86:
2048#line 359 "ldgram.y"
2049{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
2050 (char *)NULL((void *)0)); }
2051break;
2052case 87:
2053#line 362 "ldgram.y"
2054{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
2055 (char *)NULL((void *)0)); }
2056break;
2057case 88:
2058#line 365 "ldgram.y"
2059{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
2060 (char *)NULL((void *)0)); }
2061break;
2062case 89:
2063#line 368 "ldgram.y"
2064{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
2065 (char *)NULL((void *)0)); }
2066break;
2067case 90:
2068#line 371 "ldgram.y"
2069{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
2070 (char *)NULL((void *)0)); }
2071break;
2072case 91:
2073#line 374 "ldgram.y"
2074{ yyval.integer = as_needed; as_needed = TRUE1; }
2075break;
2076case 92:
2077#line 376 "ldgram.y"
2078{ as_needed = yyvsp[-2].integer; }
2079break;
2080case 93:
2081#line 378 "ldgram.y"
2082{ yyval.integer = as_needed; as_needed = TRUE1; }
2083break;
2084case 94:
2085#line 380 "ldgram.y"
2086{ as_needed = yyvsp[-2].integer; }
2087break;
2088case 95:
2089#line 382 "ldgram.y"
2090{ yyval.integer = as_needed; as_needed = TRUE1; }
2091break;
2092case 96:
2093#line 384 "ldgram.y"
2094{ as_needed = yyvsp[-2].integer; }
2095break;
2096case 101:
2097#line 399 "ldgram.y"
2098{ lang_add_entry (yyvsp[-1].name, FALSE0); }
2099break;
2100case 103:
2101#line 401 "ldgram.y"
2102{ldlex_expression ();}
2103break;
2104case 104:
2105#line 402 "ldgram.y"
2106{ ldlex_popstate ();
2107 lang_add_assignment (exp_assert (yyvsp[-3].etree, yyvsp[-1].name)); }
2108break;
2109case 105:
2110#line 410 "ldgram.y"
2111{
2112 yyval.cname = yyvsp[0].name;
2113 }
2114break;
2115case 106:
2116#line 414 "ldgram.y"
2117{
2118 yyval.cname = "*";
2119 }
2120break;
2121case 107:
2122#line 418 "ldgram.y"
2123{
2124 yyval.cname = "?";
2125 }
2126break;
2127case 108:
2128#line 425 "ldgram.y"
2129{
2130 yyval.wildcard.name = yyvsp[0].cname;
2131 yyval.wildcard.sorted = none;
2132 yyval.wildcard.exclude_name_list = NULL((void *)0);
2133 }
2134break;
2135case 109:
2136#line 431 "ldgram.y"
2137{
2138 yyval.wildcard.name = yyvsp[0].cname;
2139 yyval.wildcard.sorted = none;
2140 yyval.wildcard.exclude_name_list = yyvsp[-2].name_list;
2141 }
2142break;
2143case 110:
2144#line 437 "ldgram.y"
2145{
2146 yyval.wildcard.name = yyvsp[-1].cname;
2147 yyval.wildcard.sorted = by_name;
2148 yyval.wildcard.exclude_name_list = NULL((void *)0);
2149 }
2150break;
2151case 111:
2152#line 443 "ldgram.y"
2153{
2154 yyval.wildcard.name = yyvsp[-1].cname;
2155 yyval.wildcard.sorted = by_alignment;
2156 yyval.wildcard.exclude_name_list = NULL((void *)0);
2157 }
2158break;
2159case 112:
2160#line 449 "ldgram.y"
2161{
2162 yyval.wildcard.name = yyvsp[-2].cname;
2163 yyval.wildcard.sorted = by_name_alignment;
2164 yyval.wildcard.exclude_name_list = NULL((void *)0);
2165 }
2166break;
2167case 113:
2168#line 455 "ldgram.y"
2169{
2170 yyval.wildcard.name = yyvsp[-2].cname;
2171 yyval.wildcard.sorted = by_name;
2172 yyval.wildcard.exclude_name_list = NULL((void *)0);
2173 }
2174break;
2175case 114:
2176#line 461 "ldgram.y"
2177{
2178 yyval.wildcard.name = yyvsp[-2].cname;
2179 yyval.wildcard.sorted = by_alignment_name;
2180 yyval.wildcard.exclude_name_list = NULL((void *)0);
2181 }
2182break;
2183case 115:
2184#line 467 "ldgram.y"
2185{
2186 yyval.wildcard.name = yyvsp[-2].cname;
2187 yyval.wildcard.sorted = by_alignment;
2188 yyval.wildcard.exclude_name_list = NULL((void *)0);
2189 }
2190break;
2191case 116:
2192#line 473 "ldgram.y"
2193{
2194 yyval.wildcard.name = yyvsp[-1].cname;
2195 yyval.wildcard.sorted = by_name;
2196 yyval.wildcard.exclude_name_list = yyvsp[-3].name_list;
2197 }
2198break;
2199case 117:
2200#line 482 "ldgram.y"
2201{
2202 struct name_list *tmp;
2203 tmp = (struct name_list *) xmalloc (sizeof *tmp);
2204 tmp->name = yyvsp[0].cname;
2205 tmp->next = yyvsp[-1].name_list;
2206 yyval.name_list = tmp;
2207 }
2208break;
2209case 118:
2210#line 491 "ldgram.y"
2211{
2212 struct name_list *tmp;
2213 tmp = (struct name_list *) xmalloc (sizeof *tmp);
2214 tmp->name = yyvsp[0].cname;
2215 tmp->next = NULL((void *)0);
2216 yyval.name_list = tmp;
2217 }
2218break;
2219case 119:
2220#line 502 "ldgram.y"
2221{
2222 struct wildcard_list *tmp;
2223 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
2224 tmp->next = yyvsp[-2].wildcard_list;
2225 tmp->spec = yyvsp[0].wildcard;
2226 yyval.wildcard_list = tmp;
2227 }
2228break;
2229case 120:
2230#line 511 "ldgram.y"
2231{
2232 struct wildcard_list *tmp;
2233 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
2234 tmp->next = NULL((void *)0);
2235 tmp->spec = yyvsp[0].wildcard;
2236 yyval.wildcard_list = tmp;
2237 }
2238break;
2239case 121:
2240#line 522 "ldgram.y"
2241{
2242 struct wildcard_spec tmp;
2243 tmp.name = yyvsp[0].name;
2244 tmp.exclude_name_list = NULL((void *)0);
2245 tmp.sorted = none;
2246 lang_add_wild (&tmp, NULL((void *)0), ldgram_had_keep);
2247 }
2248break;
2249case 122:
2250#line 530 "ldgram.y"
2251{
2252 lang_add_wild (NULL((void *)0), yyvsp[-1].wildcard_list, ldgram_had_keep);
2253 }
2254break;
2255case 123:
2256#line 534 "ldgram.y"
2257{
2258 lang_add_wild (&yyvsp[-3].wildcard, yyvsp[-1].wildcard_list, ldgram_had_keep);
2259 }
2260break;
2261case 125:
2262#line 542 "ldgram.y"
2263{ ldgram_had_keep = TRUE1; }
2264break;
2265case 126:
2266#line 544 "ldgram.y"
2267{ ldgram_had_keep = FALSE0; }
2268break;
2269case 128:
2270#line 550 "ldgram.y"
2271{
2272 lang_add_attribute(lang_object_symbols_statement_enum);
2273 }
2274break;
2275case 130:
2276#line 555 "ldgram.y"
2277{
2278
2279 lang_add_attribute(lang_constructors_statement_enum);
2280 }
2281break;
2282case 131:
2283#line 560 "ldgram.y"
2284{
2285 constructors_sorted = TRUE1;
2286 lang_add_attribute (lang_constructors_statement_enum);
2287 }
2288break;
2289case 133:
2290#line 566 "ldgram.y"
2291{
2292 lang_add_data ((int) yyvsp[-3].integer, yyvsp[-1].etree);
2293 }
2294break;
2295case 134:
2296#line 571 "ldgram.y"
2297{
2298 lang_add_fill (yyvsp[-1].fill);
2299 }
2300break;
2301case 139:
2302#line 588 "ldgram.y"
2303{ yyval.integer = yyvsp[0].token; }
2304break;
2305case 140:
2306#line 590 "ldgram.y"
2307{ yyval.integer = yyvsp[0].token; }
2308break;
2309case 141:
2310#line 592 "ldgram.y"
2311{ yyval.integer = yyvsp[0].token; }
2312break;
2313case 142:
2314#line 594 "ldgram.y"
2315{ yyval.integer = yyvsp[0].token; }
2316break;
2317case 143:
2318#line 596 "ldgram.y"
2319{ yyval.integer = yyvsp[0].token; }
2320break;
2321case 144:
2322#line 601 "ldgram.y"
2323{
2324 yyval.fill = exp_get_fill (yyvsp[0].etree, 0, "fill value");
2325 }
2326break;
2327case 145:
2328#line 608 "ldgram.y"
2329{ yyval.fill = yyvsp[0].fill; }
2330break;
2331case 146:
2332#line 609 "ldgram.y"
2333{ yyval.fill = (fill_type *) 0; }
2334break;
2335case 147:
2336#line 614 "ldgram.y"
2337{ yyval.token = '+'; }
2338break;
2339case 148:
2340#line 616 "ldgram.y"
2341{ yyval.token = '-'; }
2342break;
2343case 149:
2344#line 618 "ldgram.y"
2345{ yyval.token = '*'; }
2346break;
2347case 150:
2348#line 620 "ldgram.y"
2349{ yyval.token = '/'; }
2350break;
2351case 151:
2352#line 622 "ldgram.y"
2353{ yyval.token = LSHIFT274; }
2354break;
2355case 152:
2356#line 624 "ldgram.y"
2357{ yyval.token = RSHIFT275; }
2358break;
2359case 153:
2360#line 626 "ldgram.y"
2361{ yyval.token = '&'; }
2362break;
2363case 154:
2364#line 628 "ldgram.y"
2365{ yyval.token = '|'; }
2366break;
2367case 157:
2368#line 638 "ldgram.y"
2369{
2370 lang_add_assignment (exp_assop (yyvsp[-1].token, yyvsp[-2].name, yyvsp[0].etree));
2371 }
2372break;
2373case 158:
2374#line 642 "ldgram.y"
2375{
2376 lang_add_assignment (exp_assop ('=', yyvsp[-2].name,
2377 exp_binop (yyvsp[-1].token,
2378 exp_nameop (NAME258,
2379 yyvsp[-2].name),
2380 yyvsp[0].etree)));
2381 }
2382break;
2383case 159:
2384#line 650 "ldgram.y"
2385{
2386 lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree, FALSE0));
2387 }
2388break;
2389case 160:
2390#line 654 "ldgram.y"
2391{
2392 lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree, TRUE1));
2393 }
2394break;
2395case 167:
2396#line 676 "ldgram.y"
2397{ region = lang_memory_region_lookup (yyvsp[0].name, TRUE1); }
2398break;
2399case 168:
2400#line 679 "ldgram.y"
2401{}
2402break;
2403case 169:
2404#line 684 "ldgram.y"
2405{
2406 region->origin = exp_get_vma (yyvsp[0].etree, 0, "origin");
2407 region->current = region->origin;
2408 }
2409break;
2410case 170:
2411#line 692 "ldgram.y"
2412{
2413 region->length = exp_get_vma (yyvsp[0].etree, -1, "length");
2414 }
2415break;
2416case 171:
2417#line 699 "ldgram.y"
2418{ /* dummy action to avoid bison 1.25 error message */ }
2419break;
2420case 175:
2421#line 710 "ldgram.y"
2422{ lang_set_flags (region, yyvsp[0].name, 0); }
2423break;
2424case 176:
2425#line 712 "ldgram.y"
2426{ lang_set_flags (region, yyvsp[0].name, 1); }
2427break;
2428case 177:
2429#line 717 "ldgram.y"
2430{ lang_startup(yyvsp[-1].name); }
2431break;
2432case 179:
2433#line 723 "ldgram.y"
2434{ ldemul_hll((char *)NULL((void *)0)); }
2435break;
2436case 180:
2437#line 728 "ldgram.y"
2438{ ldemul_hll(yyvsp[0].name); }
2439break;
2440case 181:
2441#line 730 "ldgram.y"
2442{ ldemul_hll(yyvsp[0].name); }
2443break;
2444case 183:
2445#line 738 "ldgram.y"
2446{ ldemul_syslib(yyvsp[0].name); }
2447break;
2448case 185:
2449#line 744 "ldgram.y"
2450{ lang_float(TRUE1); }
2451break;
2452case 186:
2453#line 746 "ldgram.y"
2454{ lang_float(FALSE0); }
2455break;
2456case 187:
2457#line 751 "ldgram.y"
2458{
2459 yyval.nocrossref = NULL((void *)0);
2460 }
2461break;
2462case 188:
2463#line 755 "ldgram.y"
2464{
2465 struct lang_nocrossref *n;
2466
2467 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
2468 n->name = yyvsp[-1].name;
2469 n->next = yyvsp[0].nocrossref;
2470 yyval.nocrossref = n;
2471 }
2472break;
2473case 189:
2474#line 764 "ldgram.y"
2475{
2476 struct lang_nocrossref *n;
2477
2478 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
2479 n->name = yyvsp[-2].name;
2480 n->next = yyvsp[0].nocrossref;
2481 yyval.nocrossref = n;
2482 }
2483break;
2484case 190:
2485#line 774 "ldgram.y"
2486{ ldlex_expression (); }
2487break;
2488case 191:
2489#line 776 "ldgram.y"
2490{ ldlex_popstate (); yyval.etree=yyvsp[0].etree;}
2491break;
2492case 192:
2493#line 781 "ldgram.y"
2494{ yyval.etree = exp_unop ('-', yyvsp[0].etree); }
2495break;
2496case 193:
2497#line 783 "ldgram.y"
2498{ yyval.etree = yyvsp[-1].etree; }
2499break;
2500case 194:
2501#line 785 "ldgram.y"
2502{ yyval.etree = exp_unop ((int) yyvsp[-3].integer,yyvsp[-1].etree); }
2503break;
2504case 195:
2505#line 787 "ldgram.y"
2506{ yyval.etree = exp_unop ('!', yyvsp[0].etree); }
2507break;
2508case 196:
2509#line 789 "ldgram.y"
2510{ yyval.etree = yyvsp[0].etree; }
2511break;
2512case 197:
2513#line 791 "ldgram.y"
2514{ yyval.etree = exp_unop ('~', yyvsp[0].etree);}
2515break;
2516case 198:
2517#line 794 "ldgram.y"
2518{ yyval.etree = exp_binop ('*', yyvsp[-2].etree, yyvsp[0].etree); }
2519break;
2520case 199:
2521#line 796 "ldgram.y"
2522{ yyval.etree = exp_binop ('/', yyvsp[-2].etree, yyvsp[0].etree); }
2523break;
2524case 200:
2525#line 798 "ldgram.y"
2526{ yyval.etree = exp_binop ('%', yyvsp[-2].etree, yyvsp[0].etree); }
2527break;
2528case 201:
2529#line 800 "ldgram.y"
2530{ yyval.etree = exp_binop ('+', yyvsp[-2].etree, yyvsp[0].etree); }
2531break;
2532case 202:
2533#line 802 "ldgram.y"
2534{ yyval.etree = exp_binop ('-' , yyvsp[-2].etree, yyvsp[0].etree); }
2535break;
2536case 203:
2537#line 804 "ldgram.y"
2538{ yyval.etree = exp_binop (LSHIFT274 , yyvsp[-2].etree, yyvsp[0].etree); }
2539break;
2540case 204:
2541#line 806 "ldgram.y"
2542{ yyval.etree = exp_binop (RSHIFT275 , yyvsp[-2].etree, yyvsp[0].etree); }
2543break;
2544case 205:
2545#line 808 "ldgram.y"
2546{ yyval.etree = exp_binop (EQ270 , yyvsp[-2].etree, yyvsp[0].etree); }
2547break;
2548case 206:
2549#line 810 "ldgram.y"
2550{ yyval.etree = exp_binop (NE271 , yyvsp[-2].etree, yyvsp[0].etree); }
2551break;
2552case 207:
2553#line 812 "ldgram.y"
2554{ yyval.etree = exp_binop (LE272 , yyvsp[-2].etree, yyvsp[0].etree); }
2555break;
2556case 208:
2557#line 814 "ldgram.y"
2558{ yyval.etree = exp_binop (GE273 , yyvsp[-2].etree, yyvsp[0].etree); }
2559break;
2560case 209:
2561#line 816 "ldgram.y"
2562{ yyval.etree = exp_binop ('<' , yyvsp[-2].etree, yyvsp[0].etree); }
2563break;
2564case 210:
2565#line 818 "ldgram.y"
2566{ yyval.etree = exp_binop ('>' , yyvsp[-2].etree, yyvsp[0].etree); }
2567break;
2568case 211:
2569#line 820 "ldgram.y"
2570{ yyval.etree = exp_binop ('&' , yyvsp[-2].etree, yyvsp[0].etree); }
2571break;
2572case 212:
2573#line 822 "ldgram.y"
2574{ yyval.etree = exp_binop ('^' , yyvsp[-2].etree, yyvsp[0].etree); }
2575break;
2576case 213:
2577#line 824 "ldgram.y"
2578{ yyval.etree = exp_binop ('|' , yyvsp[-2].etree, yyvsp[0].etree); }
2579break;
2580case 214:
2581#line 826 "ldgram.y"
2582{ yyval.etree = exp_trinop ('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); }
2583break;
2584case 215:
2585#line 828 "ldgram.y"
2586{ yyval.etree = exp_binop (ANDAND269 , yyvsp[-2].etree, yyvsp[0].etree); }
2587break;
2588case 216:
2589#line 830 "ldgram.y"
2590{ yyval.etree = exp_binop (OROR268 , yyvsp[-2].etree, yyvsp[0].etree); }
2591break;
2592case 217:
2593#line 832 "ldgram.y"
2594{ yyval.etree = exp_nameop (DEFINED307, yyvsp[-1].name); }
2595break;
2596case 218:
2597#line 834 "ldgram.y"
2598{ yyval.etree = exp_bigintop (yyvsp[0].bigint.integer, yyvsp[0].bigint.str); }
2599break;
2600case 219:
2601#line 836 "ldgram.y"
2602{ yyval.etree = exp_nameop (SIZEOF_HEADERS293,0); }
2603break;
2604case 220:
2605#line 839 "ldgram.y"
2606{ yyval.etree = exp_nameop (SIZEOF313,yyvsp[-1].name); }
2607break;
2608case 221:
2609#line 841 "ldgram.y"
2610{ yyval.etree = exp_nameop (ADDR314,yyvsp[-1].name); }
2611break;
2612case 222:
2613#line 843 "ldgram.y"
2614{ yyval.etree = exp_nameop (LOADADDR315,yyvsp[-1].name); }
2615break;
2616case 223:
2617#line 845 "ldgram.y"
2618{ yyval.etree = exp_unop (ABSOLUTE341, yyvsp[-1].etree); }
2619break;
2620case 224:
2621#line 847 "ldgram.y"
2622{ yyval.etree = exp_unop (ALIGN_K278,yyvsp[-1].etree); }
2623break;
2624case 225:
2625#line 849 "ldgram.y"
2626{ yyval.etree = exp_binop (ALIGN_K278,yyvsp[-3].etree,yyvsp[-1].etree); }
2627break;
2628case 226:
2629#line 851 "ldgram.y"
2630{ yyval.etree = exp_binop (DATA_SEGMENT_ALIGN288, yyvsp[-3].etree, yyvsp[-1].etree); }
2631break;
2632case 227:
2633#line 853 "ldgram.y"
2634{ yyval.etree = exp_binop (DATA_SEGMENT_RELRO_END289, yyvsp[-1].etree, yyvsp[-3].etree); }
2635break;
2636case 228:
2637#line 855 "ldgram.y"
2638{ yyval.etree = exp_unop (DATA_SEGMENT_END290, yyvsp[-1].etree); }
2639break;
2640case 229:
2641#line 857 "ldgram.y"
2642{ /* The operands to the expression node are
2643 placed in the opposite order from the way
2644 in which they appear in the script as
2645 that allows us to reuse more code in
2646 fold_binary. */
2647 yyval.etree = exp_binop (SEGMENT_START298,
2648 yyvsp[-1].etree,
2649 exp_nameop (NAME258, yyvsp[-3].name)); }
2650break;
2651case 230:
2652#line 866 "ldgram.y"
2653{ yyval.etree = exp_unop (ALIGN_K278,yyvsp[-1].etree); }
2654break;
2655case 231:
2656#line 868 "ldgram.y"
2657{ yyval.etree = exp_nameop (NAME258,yyvsp[0].name); }
2658break;
2659case 232:
2660#line 870 "ldgram.y"
2661{ yyval.etree = exp_binop (MAX_K316, yyvsp[-3].etree, yyvsp[-1].etree ); }
2662break;
2663case 233:
2664#line 872 "ldgram.y"
2665{ yyval.etree = exp_binop (MIN_K317, yyvsp[-3].etree, yyvsp[-1].etree ); }
2666break;
2667case 234:
2668#line 874 "ldgram.y"
2669{ yyval.etree = exp_assert (yyvsp[-3].etree, yyvsp[-1].name); }
2670break;
2671case 235:
2672#line 876 "ldgram.y"
2673{ yyval.etree = exp_nameop (ORIGIN324, yyvsp[-1].name); }
2674break;
2675case 236:
2676#line 878 "ldgram.y"
2677{ yyval.etree = exp_nameop (LENGTH326, yyvsp[-1].name); }
2678break;
2679case 237:
2680#line 883 "ldgram.y"
2681{ yyval.name = yyvsp[0].name; }
2682break;
2683case 238:
2684#line 884 "ldgram.y"
2685{ yyval.name = 0; }
2686break;
2687case 239:
2688#line 888 "ldgram.y"
2689{ yyval.etree = yyvsp[-1].etree; }
2690break;
2691case 240:
2692#line 889 "ldgram.y"
2693{ yyval.etree = 0; }
2694break;
2695case 241:
2696#line 893 "ldgram.y"
2697{ yyval.etree = yyvsp[-1].etree; }
2698break;
2699case 242:
2700#line 894 "ldgram.y"
2701{ yyval.etree = 0; }
2702break;
2703case 243:
2704#line 898 "ldgram.y"
2705{ yyval.etree = yyvsp[-1].etree; }
2706break;
2707case 244:
2708#line 899 "ldgram.y"
2709{ yyval.etree = 0; }
2710break;
2711case 245:
2712#line 903 "ldgram.y"
2713{ yyval.token = ONLY_IF_RO367; }
2714break;
2715case 246:
2716#line 904 "ldgram.y"
2717{ yyval.token = ONLY_IF_RW368; }
2718break;
2719case 247:
2720#line 905 "ldgram.y"
2721{ yyval.token = SPECIAL369; }
2722break;
2723case 248:
2724#line 906 "ldgram.y"
2725{ yyval.token = 0; }
2726break;
2727case 249:
2728#line 909 "ldgram.y"
2729{ ldlex_expression(); }
2730break;
2731case 250:
2732#line 913 "ldgram.y"
2733{ ldlex_popstate (); ldlex_script (); }
2734break;
2735case 251:
2736#line 916 "ldgram.y"
2737{
2738 lang_enter_output_section_statement(yyvsp[-8].name, yyvsp[-6].etree,
2739 sectype,
2740 yyvsp[-4].etree, yyvsp[-3].etree, yyvsp[-5].etree, yyvsp[-1].token);
2741 }
2742break;
2743case 252:
2744#line 922 "ldgram.y"
2745{ ldlex_popstate (); ldlex_expression (); }
2746break;
2747case 253:
2748#line 924 "ldgram.y"
2749{
2750 ldlex_popstate ();
2751 lang_leave_output_section_statement (yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
2752 }
2753break;
2754case 254:
2755#line 929 "ldgram.y"
2756{}
2757break;
2758case 255:
2759#line 931 "ldgram.y"
2760{ ldlex_expression (); }
2761break;
2762case 256:
2763#line 933 "ldgram.y"
2764{ ldlex_popstate (); ldlex_script (); }
2765break;
2766case 257:
2767#line 935 "ldgram.y"
2768{
2769 lang_enter_overlay (yyvsp[-5].etree, yyvsp[-2].etree);
2770 }
2771break;
2772case 258:
2773#line 940 "ldgram.y"
2774{ ldlex_popstate (); ldlex_expression (); }
2775break;
2776case 259:
2777#line 942 "ldgram.y"
2778{
2779 ldlex_popstate ();
2780 lang_leave_overlay (yyvsp[-11].etree, (int) yyvsp[-12].integer,
2781 yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
2782 }
2783break;
2784case 261:
2785#line 952 "ldgram.y"
2786{ ldlex_expression (); }
2787break;
2788case 262:
2789#line 954 "ldgram.y"
2790{
2791 ldlex_popstate ();
2792 lang_add_assignment (exp_assop ('=', ".", yyvsp[0].etree));
2793 }
2794break;
2795case 264:
2796#line 962 "ldgram.y"
2797{ sectype = noload_section; }
2798break;
2799case 265:
2800#line 963 "ldgram.y"
2801{ sectype = dsect_section; }
2802break;
2803case 266:
2804#line 964 "ldgram.y"
2805{ sectype = copy_section; }
2806break;
2807case 267:
2808#line 965 "ldgram.y"
2809{ sectype = info_section; }
2810break;
2811case 268:
2812#line 966 "ldgram.y"
2813{ sectype = overlay_section; }
2814break;
2815case 270:
2816#line 971 "ldgram.y"
2817{ sectype = normal_section; }
2818break;
2819case 271:
2820#line 972 "ldgram.y"
2821{ sectype = normal_section; }
2822break;
2823case 272:
2824#line 976 "ldgram.y"
2825{ yyval.etree = yyvsp[-2].etree; }
2826break;
2827case 273:
2828#line 977 "ldgram.y"
2829{ yyval.etree = (etree_type *)NULL((void *)0); }
2830break;
2831case 274:
2832#line 982 "ldgram.y"
2833{ yyval.etree = yyvsp[-3].etree; }
2834break;
2835case 275:
2836#line 984 "ldgram.y"
2837{ yyval.etree = yyvsp[-7].etree; }
2838break;
2839case 276:
2840#line 988 "ldgram.y"
2841{ yyval.etree = yyvsp[-1].etree; }
2842break;
2843case 277:
2844#line 989 "ldgram.y"
2845{ yyval.etree = (etree_type *) NULL((void *)0); }
2846break;
2847case 278:
2848#line 994 "ldgram.y"
2849{ yyval.integer = 0; }
2850break;
2851case 279:
2852#line 996 "ldgram.y"
2853{ yyval.integer = 1; }
2854break;
2855case 280:
2856#line 1001 "ldgram.y"
2857{ yyval.name = yyvsp[0].name; }
2858break;
2859case 281:
2860#line 1002 "ldgram.y"
2861{ yyval.name = DEFAULT_MEMORY_REGION"*default*"; }
2862break;
2863case 282:
2864#line 1007 "ldgram.y"
2865{
2866 yyval.section_phdr = NULL((void *)0);
2867 }
2868break;
2869case 283:
2870#line 1011 "ldgram.y"
2871{
2872 struct lang_output_section_phdr_list *n;
2873
2874 n = ((struct lang_output_section_phdr_list *)
2875 xmalloc (sizeof *n));
2876 n->name = yyvsp[0].name;
2877 n->used = FALSE0;
2878 n->next = yyvsp[-2].section_phdr;
2879 yyval.section_phdr = n;
2880 }
2881break;
2882case 285:
2883#line 1027 "ldgram.y"
2884{
2885 ldlex_script ();
2886 lang_enter_overlay_section (yyvsp[0].name);
2887 }
2888break;
2889case 286:
2890#line 1032 "ldgram.y"
2891{ ldlex_popstate (); ldlex_expression (); }
2892break;
2893case 287:
2894#line 1034 "ldgram.y"
2895{
2896 ldlex_popstate ();
2897 lang_leave_overlay_section (yyvsp[0].fill, yyvsp[-1].section_phdr);
2898 }
2899break;
2900case 292:
2901#line 1051 "ldgram.y"
2902{ ldlex_expression (); }
2903break;
2904case 293:
2905#line 1052 "ldgram.y"
2906{ ldlex_popstate (); }
2907break;
2908case 294:
2909#line 1054 "ldgram.y"
2910{
2911 lang_new_phdr (yyvsp[-5].name, yyvsp[-3].etree, yyvsp[-2].phdr.filehdr, yyvsp[-2].phdr.phdrs, yyvsp[-2].phdr.at,
2912 yyvsp[-2].phdr.flags);
2913 }
2914break;
2915case 295:
2916#line 1062 "ldgram.y"
2917{
2918 yyval.etree = yyvsp[0].etree;
2919
2920 if (yyvsp[0].etree->type.node_class == etree_name
2921 && yyvsp[0].etree->type.node_code == NAME258)
2922 {
2923 const char *s;
2924 unsigned int i;
2925 static const char * const phdr_types[] =
2926 {
2927 "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
2928 "PT_INTERP", "PT_NOTE", "PT_SHLIB",
2929 "PT_PHDR", "PT_TLS"
2930 };
2931
2932 s = yyvsp[0].etree->name.name;
2933 for (i = 0;
2934 i < sizeof phdr_types / sizeof phdr_types[0];
2935 i++)
2936 if (strcmp (s, phdr_types[i]) == 0)
2937 {
2938 yyval.etree = exp_intop (i);
2939 break;
2940 }
2941 if (i == sizeof phdr_types / sizeof phdr_types[0])
2942 {
2943 if (strcmp (s, "PT_GNU_EH_FRAME") == 0)
2944 yyval.etree = exp_intop (0x6474e550);
2945 else if (strcmp (s, "PT_GNU_STACK") == 0)
2946 yyval.etree = exp_intop (0x6474e551);
2947 else if (strcmp (s, "PT_GNU_RELRO") == 0)
2948 yyval.etree = exp_intop (0x6474e552);
2949 else if (strcmp (s, "PT_OPENBSD_RANDOMIZE") == 0)
2950 yyval.etree = exp_intop (0x65a3dbe6);
2951 else if (strcmp (s, "PT_OPENBSD_WXNEEDED") == 0)
2952 yyval.etree = exp_intop (0x65a3dbe7);
2953 else if (strcmp (s, "PT_OPENBSD_BOOTDATA") == 0)
2954 yyval.etree = exp_intop (0x65a41be6);
2955 else
2956 {
2957 einfo (_("\("%X%P:%S: unknown phdr type `%s' (try integer literal)\n")
2958%X%P:%S: unknown phdr type `%s' (try integer literal)\n")("%X%P:%S: unknown phdr type `%s' (try integer literal)\n"),
2959 s);
2960 yyval.etree = exp_intop (0);
2961 }
2962 }
2963 }
2964 }
2965break;
2966case 296:
2967#line 1114 "ldgram.y"
2968{
2969 memset (&yyval.phdr, 0, sizeof (struct phdr_info));
2970 }
2971break;
2972case 297:
2973#line 1118 "ldgram.y"
2974{
2975 yyval.phdr = yyvsp[0].phdr;
2976 if (strcmp (yyvsp[-2].name, "FILEHDR") == 0 && yyvsp[-1].etree == NULL((void *)0))
2977 yyval.phdr.filehdr = TRUE1;
2978 else if (strcmp (yyvsp[-2].name, "PHDRS") == 0 && yyvsp[-1].etree == NULL((void *)0))
2979 yyval.phdr.phdrs = TRUE1;
2980 else if (strcmp (yyvsp[-2].name, "FLAGS") == 0 && yyvsp[-1].etree != NULL((void *)0))
2981 yyval.phdr.flags = yyvsp[-1].etree;
2982 else
2983 einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n")("%X%P:%S: PHDRS syntax error at `%s'\n"), yyvsp[-2].name);
2984 }
2985break;
2986case 298:
2987#line 1130 "ldgram.y"
2988{
2989 yyval.phdr = yyvsp[0].phdr;
2990 yyval.phdr.at = yyvsp[-2].etree;
2991 }
2992break;
2993case 299:
2994#line 1138 "ldgram.y"
2995{
2996 yyval.etree = NULL((void *)0);
2997 }
2998break;
2999case 300:
3000#line 1142 "ldgram.y"
3001{
3002 yyval.etree = yyvsp[-1].etree;
3003 }
3004break;
3005case 301:
3006#line 1150 "ldgram.y"
3007{
3008 ldlex_version_file ();
3009 PUSH_ERROR (_("VERSION script"))if (error_index < 20) error_names[error_index] = ("VERSION script"
); error_index++;
;
3010 }
3011break;
3012case 302:
3013#line 1155 "ldgram.y"
3014{
3015 ldlex_popstate ();
3016 POP_ERROR ()error_index--;;
3017 }
3018break;
3019case 303:
3020#line 1164 "ldgram.y"
3021{
3022 ldlex_version_script ();
3023 }
3024break;
3025case 304:
3026#line 1168 "ldgram.y"
3027{
3028 ldlex_popstate ();
3029 }
3030break;
3031case 307:
3032#line 1180 "ldgram.y"
3033{
3034 lang_register_vers_node (NULL((void *)0), yyvsp[-2].versnode, NULL((void *)0));
3035 }
3036break;
3037case 308:
3038#line 1184 "ldgram.y"
3039{
3040 lang_register_vers_node (yyvsp[-4].name, yyvsp[-2].versnode, NULL((void *)0));
3041 }
3042break;
3043case 309:
3044#line 1188 "ldgram.y"
3045{
3046 lang_register_vers_node (yyvsp[-5].name, yyvsp[-3].versnode, yyvsp[-1].deflist);
3047 }
3048break;
3049case 310:
3050#line 1195 "ldgram.y"
3051{
3052 yyval.deflist = lang_add_vers_depend (NULL((void *)0), yyvsp[0].name);
3053 }
3054break;
3055case 311:
3056#line 1199 "ldgram.y"
3057{
3058 yyval.deflist = lang_add_vers_depend (yyvsp[-1].deflist, yyvsp[0].name);
3059 }
3060break;
3061case 312:
3062#line 1206 "ldgram.y"
3063{
3064 yyval.versnode = lang_new_vers_node (NULL((void *)0), NULL((void *)0));
3065 }
3066break;
3067case 313:
3068#line 1210 "ldgram.y"
3069{
3070 yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL((void *)0));
3071 }
3072break;
3073case 314:
3074#line 1214 "ldgram.y"
3075{
3076 yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL((void *)0));
3077 }
3078break;
3079case 315:
3080#line 1218 "ldgram.y"
3081{
3082 yyval.versnode = lang_new_vers_node (NULL((void *)0), yyvsp[-1].versyms);
3083 }
3084break;
3085case 316:
3086#line 1222 "ldgram.y"
3087{
3088 yyval.versnode = lang_new_vers_node (yyvsp[-5].versyms, yyvsp[-1].versyms);
3089 }
3090break;
3091case 317:
3092#line 1229 "ldgram.y"
3093{
3094 yyval.versyms = lang_new_vers_pattern (NULL((void *)0), yyvsp[0].name, ldgram_vers_current_lang, FALSE0);
3095 }
3096break;
3097case 318:
3098#line 1233 "ldgram.y"
3099{
3100 yyval.versyms = lang_new_vers_pattern (NULL((void *)0), yyvsp[0].name, ldgram_vers_current_lang, TRUE1);
3101 }
3102break;
3103case 319:
3104#line 1237 "ldgram.y"
3105{
3106 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, yyvsp[0].name, ldgram_vers_current_lang, FALSE0);
3107 }
3108break;
3109case 320:
3110#line 1241 "ldgram.y"
3111{
3112 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, yyvsp[0].name, ldgram_vers_current_lang, TRUE1);
3113 }
3114break;
3115case 321:
3116#line 1245 "ldgram.y"
3117{
3118 yyval.name = ldgram_vers_current_lang;
3119 ldgram_vers_current_lang = yyvsp[-1].name;
3120 }
3121break;
3122case 322:
3123#line 1250 "ldgram.y"
3124{
3125 struct bfd_elf_version_expr *pat;
3126 for (pat = yyvsp[-2].versyms; pat->next != NULL((void *)0); pat = pat->next);
3127 pat->next = yyvsp[-8].versyms;
3128 yyval.versyms = yyvsp[-2].versyms;
3129 ldgram_vers_current_lang = yyvsp[-3].name;
3130 }
3131break;
3132case 323:
3133#line 1258 "ldgram.y"
3134{
3135 yyval.name = ldgram_vers_current_lang;
3136 ldgram_vers_current_lang = yyvsp[-1].name;
3137 }
3138break;
3139case 324:
3140#line 1263 "ldgram.y"
3141{
3142 yyval.versyms = yyvsp[-2].versyms;
3143 ldgram_vers_current_lang = yyvsp[-3].name;
3144 }
3145break;
3146case 325:
3147#line 1268 "ldgram.y"
3148{
3149 yyval.versyms = lang_new_vers_pattern (NULL((void *)0), "global", ldgram_vers_current_lang, FALSE0);
3150 }
3151break;
3152case 326:
3153#line 1272 "ldgram.y"
3154{
3155 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, "global", ldgram_vers_current_lang, FALSE0);
3156 }
3157break;
3158case 327:
3159#line 1276 "ldgram.y"
3160{
3161 yyval.versyms = lang_new_vers_pattern (NULL((void *)0), "local", ldgram_vers_current_lang, FALSE0);
3162 }
3163break;
3164case 328:
3165#line 1280 "ldgram.y"
3166{
3167 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, "local", ldgram_vers_current_lang, FALSE0);
3168 }
3169break;
3170case 329:
3171#line 1284 "ldgram.y"
3172{
3173 yyval.versyms = lang_new_vers_pattern (NULL((void *)0), "extern", ldgram_vers_current_lang, FALSE0);
3174 }
3175break;
3176case 330:
3177#line 1288 "ldgram.y"
3178{
3179 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, "extern", ldgram_vers_current_lang, FALSE0);
3180 }
3181break;
3182#line 3175 "ldgram.c"
3183 }
3184 yyssp -= yym;
3185 yystate = *yyssp;
3186 yyvsp -= yym;
3187 yym = yylhs[yyn];
3188 if (yystate == 0 && yym == 0)
3189 {
3190#if YYDEBUG1
3191 if (yydebug)
3192 printf("%sdebug: after reduction, shifting from state 0 to\
3193 state %d\n", YYPREFIX"yy", YYFINAL5);
3194#endif
3195 yystate = YYFINAL5;
3196 *++yyssp = YYFINAL5;
3197 *++yyvsp = yyval;
3198 if (yychar < 0)
3199 {
3200 if ((yychar = yylex()) < 0) yychar = 0;
3201#if YYDEBUG1
3202 if (yydebug)
3203 {
3204 yys = 0;
3205 if (yychar <= YYMAXTOKEN370) yys = yyname[yychar];
3206 if (!yys) yys = "illegal-symbol";
3207 printf("%sdebug: state %d, reading %d (%s)\n",
3208 YYPREFIX"yy", YYFINAL5, yychar, yys);
3209 }
3210#endif
3211 }
3212 if (yychar == 0) goto yyaccept;
3213 goto yyloop;
3214 }
3215 if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
3216 yyn <= YYTABLESIZE3417 && yycheck[yyn] == yystate)
3217 yystate = yytable[yyn];
3218 else
3219 yystate = yydgoto[yym];
3220#if YYDEBUG1
3221 if (yydebug)
3222 printf("%sdebug: after reduction, shifting from state %d \
3223to state %d\n", YYPREFIX"yy", *yyssp, yystate);
3224#endif
3225 if (yyssp >= yysslim && yygrowstack())
3226 {
3227 goto yyoverflow;
3228 }
3229 *++yyssp = yystate;
3230 *++yyvsp = yyval;
3231 goto yyloop;
3232yyoverflow:
3233 yyerror("yacc stack overflow");
3234yyabort:
3235 if (yyss)
3236 free(yyss);
3237 if (yyvs)
3238 free(yyvs);
3239 yyss = yyssp = NULL((void *)0);
3240 yyvs = yyvsp = NULL((void *)0);
3241 yystacksize = 0;
3242 return (1);
3243yyaccept:
3244 if (yyss)
3245 free(yyss);
3246 if (yyvs)
3247 free(yyvs);
3248 yyss = yyssp = NULL((void *)0);
3249 yyvs = yyvsp = NULL((void *)0);
3250 yystacksize = 0;
3251 return (0);
3252}