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