source: branches/libc-0.6/src/binutils/ld/ldgram.c

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 104.8 KB
Line 
1/* A Bison parser, made from ldgram.y
2 by GNU bison 1.35. */
3
4#define YYBISON 1 /* Identify Bison output. */
5
6# define INT 257
7# define NAME 258
8# define LNAME 259
9# define PLUSEQ 260
10# define MINUSEQ 261
11# define MULTEQ 262
12# define DIVEQ 263
13# define LSHIFTEQ 264
14# define RSHIFTEQ 265
15# define ANDEQ 266
16# define OREQ 267
17# define OROR 268
18# define ANDAND 269
19# define EQ 270
20# define NE 271
21# define LE 272
22# define GE 273
23# define LSHIFT 274
24# define RSHIFT 275
25# define UNARY 276
26# define END 277
27# define ALIGN_K 278
28# define BLOCK 279
29# define BIND 280
30# define QUAD 281
31# define SQUAD 282
32# define LONG 283
33# define SHORT 284
34# define BYTE 285
35# define SECTIONS 286
36# define PHDRS 287
37# define SORT 288
38# define DATA_SEGMENT_ALIGN 289
39# define DATA_SEGMENT_END 290
40# define SIZEOF_HEADERS 291
41# define OUTPUT_FORMAT 292
42# define FORCE_COMMON_ALLOCATION 293
43# define OUTPUT_ARCH 294
44# define INHIBIT_COMMON_ALLOCATION 295
45# define INCLUDE 296
46# define MEMORY 297
47# define DEFSYMEND 298
48# define NOLOAD 299
49# define DSECT 300
50# define COPY 301
51# define INFO 302
52# define OVERLAY 303
53# define DEFINED 304
54# define TARGET_K 305
55# define SEARCH_DIR 306
56# define MAP 307
57# define ENTRY 308
58# define NEXT 309
59# define SIZEOF 310
60# define ADDR 311
61# define LOADADDR 312
62# define MAX_K 313
63# define MIN_K 314
64# define STARTUP 315
65# define HLL 316
66# define SYSLIB 317
67# define FLOAT 318
68# define NOFLOAT 319
69# define NOCROSSREFS 320
70# define ORIGIN 321
71# define FILL 322
72# define LENGTH 323
73# define CREATE_OBJECT_SYMBOLS 324
74# define INPUT 325
75# define GROUP 326
76# define OUTPUT 327
77# define CONSTRUCTORS 328
78# define ALIGNMOD 329
79# define AT 330
80# define PROVIDE 331
81# define CHIP 332
82# define LIST 333
83# define SECT 334
84# define ABSOLUTE 335
85# define LOAD 336
86# define NEWLINE 337
87# define ENDWORD 338
88# define ORDER 339
89# define NAMEWORD 340
90# define ASSERT_K 341
91# define FORMAT 342
92# define PUBLIC 343
93# define BASE 344
94# define ALIAS 345
95# define TRUNCATE 346
96# define REL 347
97# define INPUT_SCRIPT 348
98# define INPUT_MRI_SCRIPT 349
99# define INPUT_DEFSYM 350
100# define CASE 351
101# define EXTERN 352
102# define START 353
103# define VERS_TAG 354
104# define VERS_IDENTIFIER 355
105# define GLOBAL 356
106# define LOCAL 357
107# define VERSIONK 358
108# define INPUT_VERSION_SCRIPT 359
109# define KEEP 360
110# define EXCLUDE_FILE 361
111
112#line 22 "ldgram.y"
113
114/*
115
116 */
117
118#define DONTDECLARE_MALLOC
119
120#include "bfd.h"
121#include "sysdep.h"
122#include "bfdlink.h"
123#include "ld.h"
124#include "ldexp.h"
125#include "ldver.h"
126#include "ldlang.h"
127#include "ldfile.h"
128#include "ldemul.h"
129#include "ldmisc.h"
130#include "ldmain.h"
131#include "mri.h"
132#include "ldctor.h"
133#include "ldlex.h"
134
135#ifndef YYDEBUG
136#define YYDEBUG 1
137#endif
138
139static enum section_type sectype;
140
141lang_memory_region_type *region;
142
143bfd_boolean ldgram_want_filename = TRUE;
144FILE *saved_script_handle = NULL;
145bfd_boolean force_make_executable = FALSE;
146
147bfd_boolean ldgram_in_script = FALSE;
148bfd_boolean ldgram_had_equals = FALSE;
149bfd_boolean ldgram_had_keep = FALSE;
150char *ldgram_vers_current_lang = NULL;
151
152#define ERROR_NAME_MAX 20
153static char *error_names[ERROR_NAME_MAX];
154static int error_index;
155#define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
156#define POP_ERROR() error_index--;
157
158#line 67 "ldgram.y"
159#ifndef YYSTYPE
160typedef union {
161 bfd_vma integer;
162 struct big_int
163 {
164 bfd_vma integer;
165 char *str;
166 } bigint;
167 fill_type *fill;
168 char *name;
169 const char *cname;
170 struct wildcard_spec wildcard;
171 struct wildcard_list *wildcard_list;
172 struct name_list *name_list;
173 int token;
174 union etree_union *etree;
175 struct phdr_info
176 {
177 bfd_boolean filehdr;
178 bfd_boolean phdrs;
179 union etree_union *at;
180 union etree_union *flags;
181 } phdr;
182 struct lang_nocrossref *nocrossref;
183 struct lang_output_section_phdr_list *section_phdr;
184 struct bfd_elf_version_deps *deflist;
185 struct bfd_elf_version_expr *versyms;
186 struct bfd_elf_version_tree *versnode;
187} yystype;
188# define YYSTYPE yystype
189# define YYSTYPE_IS_TRIVIAL 1
190#endif
191#ifndef YYDEBUG
192# define YYDEBUG 0
193#endif
194
195
196
197#define YYFINAL 611
198#define YYFLAG -32768
199#define YYNTBASE 131
200
201/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
202#define YYTRANSLATE(x) ((unsigned)(x) <= 361 ? yytranslate[x] : 237)
203
204/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
205static const short yytranslate[] =
206{
207 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
210 2, 2, 2, 129, 2, 2, 2, 34, 21, 2,
211 37, 126, 32, 30, 124, 31, 2, 33, 2, 2,
212 2, 2, 2, 2, 2, 2, 2, 2, 16, 125,
213 24, 10, 25, 15, 2, 2, 2, 2, 2, 2,
214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
216 2, 127, 2, 128, 20, 2, 2, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 2, 2, 2, 51, 19, 52, 130, 2, 2, 2,
220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
232 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
233 6, 7, 8, 9, 11, 12, 13, 14, 17, 18,
234 22, 23, 26, 27, 28, 29, 35, 36, 38, 39,
235 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
236 50, 53, 54, 55, 56, 57, 58, 59, 60, 61,
237 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
238 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
239 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
240 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
241 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
242 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
243 122, 123
244};
245
246#if YYDEBUG
247static const short yyprhs[] =
248{
249 0, 0, 3, 6, 9, 12, 14, 15, 20, 21,
250 24, 28, 29, 32, 37, 39, 41, 44, 46, 51,
251 56, 60, 63, 68, 72, 77, 82, 87, 92, 97,
252 100, 103, 106, 111, 116, 119, 122, 125, 128, 129,
253 135, 138, 139, 143, 146, 147, 149, 153, 155, 159,
254 160, 162, 166, 168, 171, 175, 176, 179, 182, 183,
255 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
256 208, 213, 218, 223, 232, 237, 239, 241, 246, 247,
257 253, 258, 259, 265, 270, 275, 277, 281, 284, 286,
258 290, 293, 298, 301, 304, 305, 310, 313, 315, 317,
259 319, 321, 327, 332, 341, 344, 346, 350, 352, 354,
260 358, 363, 365, 366, 372, 375, 377, 379, 381, 386,
261 388, 393, 398, 401, 403, 404, 406, 408, 410, 412,
262 414, 416, 418, 421, 422, 424, 426, 428, 430, 432,
263 434, 436, 438, 440, 442, 446, 450, 457, 459, 460,
264 466, 469, 473, 474, 475, 483, 487, 491, 492, 496,
265 498, 501, 503, 506, 511, 516, 520, 524, 526, 531,
266 535, 536, 538, 540, 541, 544, 548, 549, 552, 555,
267 559, 564, 567, 570, 573, 577, 581, 585, 589, 593,
268 597, 601, 605, 609, 613, 617, 621, 625, 629, 633,
269 637, 643, 647, 651, 656, 658, 660, 665, 670, 675,
270 680, 685, 692, 697, 702, 704, 711, 718, 725, 729,
271 730, 735, 736, 737, 738, 739, 740, 741, 758, 759,
272 760, 761, 762, 763, 781, 782, 783, 791, 793, 795,
273 797, 799, 801, 805, 806, 809, 813, 816, 823, 834,
274 837, 839, 840, 842, 845, 846, 847, 851, 852, 853,
275 854, 855, 867, 872, 873, 876, 877, 878, 885, 887,
276 888, 892, 898, 899, 903, 904, 907, 908, 914, 916,
277 919, 924, 930, 937, 939, 942, 943, 946, 951, 956,
278 965, 967, 971, 972, 982, 983, 991, 992
279};
280static const short yyrhs[] =
281{
282 110, 145, 0, 111, 135, 0, 121, 225, 0, 112,
283 133, 0, 4, 0, 0, 134, 4, 10, 190, 0,
284 0, 136, 137, 0, 137, 138, 99, 0, 0, 94,
285 190, 0, 94, 190, 124, 190, 0, 4, 0, 95,
286 0, 101, 140, 0, 100, 0, 105, 4, 10, 190,
287 0, 105, 4, 124, 190, 0, 105, 4, 190, 0,
288 104, 4, 0, 96, 4, 124, 190, 0, 96, 4,
289 190, 0, 96, 4, 10, 190, 0, 38, 4, 10,
290 190, 0, 38, 4, 124, 190, 0, 91, 4, 10,
291 190, 0, 91, 4, 124, 190, 0, 97, 142, 0,
292 98, 141, 0, 102, 4, 0, 107, 4, 124, 4,
293 0, 107, 4, 124, 3, 0, 106, 190, 0, 108,
294 3, 0, 113, 143, 0, 114, 144, 0, 0, 58,
295 132, 139, 137, 36, 0, 115, 4, 0, 0, 140,
296 124, 4, 0, 140, 4, 0, 0, 4, 0, 141,
297 124, 4, 0, 4, 0, 142, 124, 4, 0, 0,
298 4, 0, 143, 124, 4, 0, 4, 0, 144, 4,
299 0, 144, 124, 4, 0, 0, 146, 147, 0, 147,
300 148, 0, 0, 172, 0, 152, 0, 217, 0, 181,
301 0, 182, 0, 184, 0, 186, 0, 154, 0, 227,
302 0, 125, 0, 67, 37, 4, 126, 0, 68, 37,
303 132, 126, 0, 89, 37, 132, 126, 0, 54, 37,
304 4, 126, 0, 54, 37, 4, 124, 4, 124, 4,
305 126, 0, 56, 37, 4, 126, 0, 55, 0, 57,
306 0, 87, 37, 151, 126, 0, 0, 88, 149, 37,
307 151, 126, 0, 69, 37, 132, 126, 0, 0, 58,
308 132, 150, 147, 36, 0, 82, 37, 187, 126, 0,
309 114, 37, 144, 126, 0, 4, 0, 151, 124, 4,
310 0, 151, 4, 0, 5, 0, 151, 124, 5, 0,
311 151, 5, 0, 46, 51, 153, 52, 0, 153, 193,
312 0, 153, 154, 0, 0, 70, 37, 4, 126, 0,
313 170, 169, 0, 4, 0, 32, 0, 15, 0, 155,
314 0, 123, 37, 157, 126, 155, 0, 48, 37, 155,
315 126, 0, 48, 37, 123, 37, 157, 126, 155, 126,
316 0, 157, 155, 0, 155, 0, 158, 171, 156, 0,
317 156, 0, 4, 0, 127, 158, 128, 0, 156, 37,
318 158, 126, 0, 159, 0, 0, 122, 37, 161, 159,
319 126, 0, 170, 169, 0, 86, 0, 125, 0, 90,
320 0, 48, 37, 90, 126, 0, 160, 0, 165, 37,
321 188, 126, 0, 84, 37, 166, 126, 0, 163, 162,
322 0, 162, 0, 0, 163, 0, 41, 0, 42, 0,
323 43, 0, 44, 0, 45, 0, 188, 0, 10, 166,
324 0, 0, 6, 0, 7, 0, 8, 0, 9, 0,
325 11, 0, 12, 0, 13, 0, 14, 0, 125, 0,
326 124, 0, 4, 10, 188, 0, 4, 168, 188, 0,
327 93, 37, 4, 10, 188, 126, 0, 124, 0, 0,
328 59, 51, 174, 173, 52, 0, 173, 174, 0, 173,
329 124, 174, 0, 0, 0, 4, 175, 178, 16, 176,
330 171, 177, 0, 83, 10, 188, 0, 85, 10, 188,
331 0, 0, 37, 179, 126, 0, 180, 0, 179, 180,
332 0, 4, 0, 129, 4, 0, 77, 37, 132, 126,
333 0, 78, 37, 183, 126, 0, 78, 37, 126, 0,
334 183, 171, 132, 0, 132, 0, 79, 37, 185, 126,
335 0, 185, 171, 132, 0, 0, 80, 0, 81, 0,
336 0, 4, 187, 0, 4, 124, 187, 0, 0, 189,
337 190, 0, 31, 190, 0, 37, 190, 126, 0, 71,
338 37, 190, 126, 0, 129, 190, 0, 30, 190, 0,
339 130, 190, 0, 190, 32, 190, 0, 190, 33, 190,
340 0, 190, 34, 190, 0, 190, 30, 190, 0, 190,
341 31, 190, 0, 190, 28, 190, 0, 190, 29, 190,
342 0, 190, 22, 190, 0, 190, 23, 190, 0, 190,
343 26, 190, 0, 190, 27, 190, 0, 190, 24, 190,
344 0, 190, 25, 190, 0, 190, 21, 190, 0, 190,
345 20, 190, 0, 190, 19, 190, 0, 190, 15, 190,
346 16, 190, 0, 190, 18, 190, 0, 190, 17, 190,
347 0, 66, 37, 4, 126, 0, 3, 0, 53, 0,
348 72, 37, 4, 126, 0, 73, 37, 4, 126, 0,
349 74, 37, 4, 126, 0, 97, 37, 190, 126, 0,
350 38, 37, 190, 126, 0, 49, 37, 190, 124, 190,
351 126, 0, 50, 37, 190, 126, 0, 39, 37, 190,
352 126, 0, 4, 0, 75, 37, 190, 124, 190, 126,
353 0, 76, 37, 190, 124, 190, 126, 0, 103, 37,
354 190, 124, 4, 126, 0, 92, 25, 4, 0, 0,
355 92, 37, 190, 126, 0, 0, 0, 0, 0, 0,
356 0, 4, 194, 208, 192, 195, 51, 196, 164, 52,
357 197, 211, 191, 212, 167, 198, 171, 0, 0, 0,
358 0, 0, 0, 65, 199, 209, 210, 192, 200, 51,
359 201, 213, 52, 202, 211, 191, 212, 167, 203, 171,
360 0, 0, 0, 88, 204, 208, 205, 51, 153, 52,
361 0, 61, 0, 62, 0, 63, 0, 64, 0, 65,
362 0, 37, 206, 126, 0, 0, 37, 126, 0, 190,
363 207, 16, 0, 207, 16, 0, 40, 37, 190, 126,
364 207, 16, 0, 40, 37, 190, 126, 39, 37, 190,
365 126, 207, 16, 0, 190, 16, 0, 16, 0, 0,
366 82, 0, 25, 4, 0, 0, 0, 212, 16, 4,
367 0, 0, 0, 0, 0, 213, 4, 214, 51, 164,
368 52, 215, 212, 167, 216, 171, 0, 47, 51, 218,
369 52, 0, 0, 218, 219, 0, 0, 0, 4, 220,
370 222, 223, 221, 125, 0, 190, 0, 0, 4, 224,
371 223, 0, 92, 37, 190, 126, 223, 0, 0, 37,
372 190, 126, 0, 0, 226, 229, 0, 0, 228, 120,
373 51, 229, 52, 0, 230, 0, 229, 230, 0, 51,
374 232, 52, 125, 0, 116, 51, 232, 52, 125, 0,
375 116, 51, 232, 52, 231, 125, 0, 116, 0, 231,
376 116, 0, 0, 233, 125, 0, 118, 16, 233, 125,
377 0, 119, 16, 233, 125, 0, 118, 16, 233, 125,
378 119, 16, 233, 125, 0, 117, 0, 233, 125, 117,
379 0, 0, 233, 125, 114, 4, 51, 234, 233, 236,
380 52, 0, 0, 114, 4, 51, 235, 233, 236, 52,
381 0, 0, 125, 0
382};
383
384#endif
385
386#if YYDEBUG
387/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
388static const short yyrline[] =
389{
390 0, 161, 163, 164, 165, 169, 172, 172, 182, 182,
391 195, 197, 200, 202, 203, 206, 209, 210, 211, 213,
392 215, 217, 219, 221, 223, 225, 227, 229, 231, 233,
393 234, 235, 237, 239, 241, 243, 245, 246, 247, 247,
394 251, 253, 256, 258, 259, 262, 265, 268, 271, 275,
395 277, 278, 281, 284, 286, 290, 290, 301, 303, 308,
396 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
397 321, 323, 325, 328, 330, 332, 334, 336, 337, 337,
398 341, 343, 343, 347, 351, 354, 358, 361, 364, 367,
399 370, 375, 379, 381, 382, 385, 388, 393, 398, 402,
400 408, 415, 421, 427, 435, 444, 455, 464, 475, 484,
401 488, 494, 496, 496, 502, 504, 508, 509, 514, 519,
402 520, 525, 531, 533, 536, 538, 541, 544, 546, 548,
403 550, 554, 564, 567, 570, 573, 575, 577, 579, 581,
404 583, 585, 590, 590, 594, 599, 607, 614, 615, 618,
405 622, 624, 625, 629, 629, 636, 644, 653, 656, 659,
406 661, 664, 667, 671, 676, 678, 682, 685, 690, 692,
407 695, 698, 701, 705, 710, 719, 730, 730, 735, 738,
408 740, 742, 744, 746, 749, 751, 753, 755, 757, 759,
409 761, 763, 765, 767, 769, 771, 773, 775, 777, 779,
410 781, 783, 785, 787, 789, 791, 794, 796, 798, 800,
411 802, 804, 806, 808, 810, 812, 814, 816, 821, 823,
412 826, 828, 831, 831, 831, 831, 831, 831, 849, 849,
413 849, 849, 849, 849, 867, 867, 867, 880, 882, 883,
414 884, 885, 888, 890, 891, 894, 896, 897, 902, 906,
415 908, 911, 914, 918, 921, 924, 929, 942, 944, 944,
416 944, 944, 960, 964, 966, 969, 969, 969, 979, 1021,
417 1026, 1038, 1045, 1050, 1058, 1058, 1072, 1072, 1082, 1084,
418 1087, 1092, 1096, 1102, 1107, 1113, 1118, 1122, 1126, 1130,
419 1136, 1141, 1145, 1145, 1155, 1155, 1167, 1169
420};
421#endif
422
423
424#if (YYDEBUG) || defined YYERROR_VERBOSE
425
426/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
427static const char *const yytname[] =
428{
429 "$", "error", "$undefined.", "INT", "NAME", "LNAME", "PLUSEQ", "MINUSEQ",
430 "MULTEQ", "DIVEQ", "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ", "OREQ",
431 "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE", "'<'",
432 "'>'", "LE", "GE", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'",
433 "'%'", "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD",
434 "SQUAD", "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "SORT",
435 "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_END", "'{'", "'}'",
436 "SIZEOF_HEADERS", "OUTPUT_FORMAT", "FORCE_COMMON_ALLOCATION",
437 "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION", "INCLUDE", "MEMORY",
438 "DEFSYMEND", "NOLOAD", "DSECT", "COPY", "INFO", "OVERLAY", "DEFINED",
439 "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT", "SIZEOF", "ADDR",
440 "LOADADDR", "MAX_K", "MIN_K", "STARTUP", "HLL", "SYSLIB", "FLOAT",
441 "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL", "LENGTH",
442 "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", "CONSTRUCTORS",
443 "ALIGNMOD", "AT", "PROVIDE", "CHIP", "LIST", "SECT", "ABSOLUTE", "LOAD",
444 "NEWLINE", "ENDWORD", "ORDER", "NAMEWORD", "ASSERT_K", "FORMAT",
445 "PUBLIC", "BASE", "ALIAS", "TRUNCATE", "REL", "INPUT_SCRIPT",
446 "INPUT_MRI_SCRIPT", "INPUT_DEFSYM", "CASE", "EXTERN", "START",
447 "VERS_TAG", "VERS_IDENTIFIER", "GLOBAL", "LOCAL", "VERSIONK",
448 "INPUT_VERSION_SCRIPT", "KEEP", "EXCLUDE_FILE", "','", "';'", "')'",
449 "'['", "']'", "'!'", "'~'", "file", "filename", "defsym_expr", "@1",
450 "mri_script_file", "@2", "mri_script_lines", "mri_script_command", "@3",
451 "ordernamelist", "mri_load_name_list", "mri_abs_name_list",
452 "casesymlist", "extern_name_list", "script_file", "@4", "ifile_list",
453 "ifile_p1", "@5", "@6", "input_list", "sections", "sec_or_group_p1",
454 "statement_anywhere", "wildcard_name", "wildcard_spec",
455 "exclude_name_list", "file_NAME_list", "input_section_spec_no_keep",
456 "input_section_spec", "@7", "statement", "statement_list",
457 "statement_list_opt", "length", "fill_exp", "fill_opt", "assign_op",
458 "end", "assignment", "opt_comma", "memory", "memory_spec_list",
459 "memory_spec", "@8", "origin_spec", "length_spec", "attributes_opt",
460 "attributes_list", "attributes_string", "startup", "high_level_library",
461 "high_level_library_NAME_list", "low_level_library",
462 "low_level_library_NAME_list", "floating_point_support",
463 "nocrossref_list", "mustbe_exp", "@9", "exp", "memspec_at_opt",
464 "opt_at", "section", "@10", "@11", "@12", "@13", "@14", "@15", "@16",
465 "@17", "@18", "@19", "@20", "@21", "type", "atype", "opt_exp_with_type",
466 "opt_exp_without_type", "opt_nocrossrefs", "memspec_opt", "phdr_opt",
467 "overlay_section", "@22", "@23", "@24", "phdrs", "phdr_list", "phdr",
468 "@25", "@26", "phdr_type", "phdr_qualifiers", "phdr_val",
469 "version_script_file", "@27", "version", "@28", "vers_nodes",
470 "vers_node", "verdep", "vers_tag", "vers_defns", "@29", "@30",
471 "opt_semicolon", 0
472};
473#endif
474
475/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
476static const short yyr1[] =
477{
478 0, 131, 131, 131, 131, 132, 134, 133, 136, 135,
479 137, 137, 138, 138, 138, 138, 138, 138, 138, 138,
480 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
481 138, 138, 138, 138, 138, 138, 138, 138, 139, 138,
482 138, 138, 140, 140, 140, 141, 141, 142, 142, 143,
483 143, 143, 144, 144, 144, 146, 145, 147, 147, 148,
484 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
485 148, 148, 148, 148, 148, 148, 148, 148, 149, 148,
486 148, 150, 148, 148, 148, 151, 151, 151, 151, 151,
487 151, 152, 153, 153, 153, 154, 154, 155, 155, 155,
488 156, 156, 156, 156, 157, 157, 158, 158, 159, 159,
489 159, 160, 161, 160, 162, 162, 162, 162, 162, 162,
490 162, 162, 163, 163, 164, 164, 165, 165, 165, 165,
491 165, 166, 167, 167, 168, 168, 168, 168, 168, 168,
492 168, 168, 169, 169, 170, 170, 170, 171, 171, 172,
493 173, 173, 173, 175, 174, 176, 177, 178, 178, 179,
494 179, 180, 180, 181, 182, 182, 183, 183, 184, 185,
495 185, 186, 186, 187, 187, 187, 189, 188, 190, 190,
496 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
497 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
498 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
499 190, 190, 190, 190, 190, 190, 190, 190, 191, 191,
500 192, 192, 194, 195, 196, 197, 198, 193, 199, 200,
501 201, 202, 203, 193, 204, 205, 193, 206, 206, 206,
502 206, 206, 207, 207, 207, 208, 208, 208, 208, 209,
503 209, 210, 210, 211, 211, 212, 212, 213, 214, 215,
504 216, 213, 217, 218, 218, 220, 221, 219, 222, 223,
505 223, 223, 224, 224, 226, 225, 228, 227, 229, 229,
506 230, 230, 230, 231, 231, 232, 232, 232, 232, 232,
507 233, 233, 234, 233, 235, 233, 236, 236
508};
509
510/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
511static const short yyr2[] =
512{
513 0, 2, 2, 2, 2, 1, 0, 4, 0, 2,
514 3, 0, 2, 4, 1, 1, 2, 1, 4, 4,
515 3, 2, 4, 3, 4, 4, 4, 4, 4, 2,
516 2, 2, 4, 4, 2, 2, 2, 2, 0, 5,
517 2, 0, 3, 2, 0, 1, 3, 1, 3, 0,
518 1, 3, 1, 2, 3, 0, 2, 2, 0, 1,
519 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
520 4, 4, 4, 8, 4, 1, 1, 4, 0, 5,
521 4, 0, 5, 4, 4, 1, 3, 2, 1, 3,
522 2, 4, 2, 2, 0, 4, 2, 1, 1, 1,
523 1, 5, 4, 8, 2, 1, 3, 1, 1, 3,
524 4, 1, 0, 5, 2, 1, 1, 1, 4, 1,
525 4, 4, 2, 1, 0, 1, 1, 1, 1, 1,
526 1, 1, 2, 0, 1, 1, 1, 1, 1, 1,
527 1, 1, 1, 1, 3, 3, 6, 1, 0, 5,
528 2, 3, 0, 0, 7, 3, 3, 0, 3, 1,
529 2, 1, 2, 4, 4, 3, 3, 1, 4, 3,
530 0, 1, 1, 0, 2, 3, 0, 2, 2, 3,
531 4, 2, 2, 2, 3, 3, 3, 3, 3, 3,
532 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
533 5, 3, 3, 4, 1, 1, 4, 4, 4, 4,
534 4, 6, 4, 4, 1, 6, 6, 6, 3, 0,
535 4, 0, 0, 0, 0, 0, 0, 16, 0, 0,
536 0, 0, 0, 17, 0, 0, 7, 1, 1, 1,
537 1, 1, 3, 0, 2, 3, 2, 6, 10, 2,
538 1, 0, 1, 2, 0, 0, 3, 0, 0, 0,
539 0, 11, 4, 0, 2, 0, 0, 6, 1, 0,
540 3, 5, 0, 3, 0, 2, 0, 5, 1, 2,
541 4, 5, 6, 1, 2, 0, 2, 4, 4, 8,
542 1, 3, 0, 9, 0, 7, 0, 1
543};
544
545/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
546 doesn't specify something else to do. Zero means the default is an
547 error. */
548static const short yydefact[] =
549{
550 0, 55, 8, 6, 274, 1, 58, 2, 11, 4,
551 0, 3, 0, 56, 9, 0, 285, 0, 275, 278,
552 0, 0, 0, 0, 75, 0, 76, 0, 0, 0,
553 0, 0, 0, 0, 0, 0, 171, 172, 0, 0,
554 78, 0, 0, 0, 68, 57, 60, 66, 0, 59,
555 62, 63, 64, 65, 61, 67, 0, 14, 0, 0,
556 0, 0, 15, 0, 0, 0, 17, 44, 0, 0,
557 0, 0, 0, 0, 49, 0, 0, 0, 0, 0,
558 290, 0, 0, 0, 0, 285, 279, 134, 135, 136,
559 137, 176, 138, 139, 140, 141, 176, 94, 263, 0,
560 0, 5, 81, 0, 0, 0, 0, 0, 0, 0,
561 170, 173, 0, 0, 0, 0, 0, 143, 142, 96,
562 0, 0, 38, 0, 204, 214, 0, 0, 0, 0,
563 0, 0, 0, 205, 0, 0, 0, 0, 0, 0,
564 0, 0, 0, 0, 0, 12, 0, 47, 29, 45,
565 30, 16, 31, 21, 0, 34, 0, 35, 50, 36,
566 52, 37, 40, 10, 7, 0, 0, 0, 0, 286,
567 0, 144, 0, 145, 0, 0, 0, 0, 58, 153,
568 152, 0, 0, 0, 0, 0, 165, 167, 148, 148,
569 173, 0, 85, 88, 0, 0, 0, 0, 0, 0,
570 0, 0, 11, 0, 0, 182, 178, 0, 0, 0,
571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
572 0, 181, 183, 0, 0, 0, 0, 0, 0, 0,
573 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
574 0, 0, 0, 0, 0, 23, 0, 0, 43, 0,
575 0, 0, 20, 0, 0, 53, 0, 294, 0, 0,
576 280, 0, 291, 0, 177, 222, 91, 228, 234, 93,
577 92, 265, 262, 264, 0, 72, 74, 276, 157, 0,
578 69, 70, 80, 95, 163, 147, 164, 0, 168, 0,
579 173, 174, 83, 87, 90, 0, 77, 0, 71, 176,
580 84, 0, 25, 26, 41, 27, 28, 179, 0, 0,
581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582 0, 0, 202, 201, 199, 198, 197, 191, 192, 195,
583 196, 193, 194, 189, 190, 187, 188, 184, 185, 186,
584 13, 24, 22, 48, 46, 42, 18, 19, 33, 32,
585 51, 54, 0, 287, 288, 0, 283, 281, 0, 243,
586 0, 243, 0, 0, 82, 0, 0, 149, 0, 150,
587 166, 169, 175, 86, 89, 79, 0, 277, 39, 210,
588 213, 0, 212, 203, 180, 206, 207, 208, 0, 0,
589 209, 0, 0, 296, 0, 292, 284, 282, 0, 0,
590 243, 0, 221, 250, 0, 251, 235, 268, 269, 0,
591 161, 0, 0, 159, 0, 151, 146, 0, 0, 0,
592 0, 200, 297, 0, 0, 0, 237, 238, 239, 240,
593 241, 244, 0, 0, 0, 0, 246, 0, 223, 249,
594 252, 221, 0, 272, 0, 266, 0, 162, 158, 160,
595 0, 148, 211, 215, 216, 217, 295, 0, 296, 242,
596 0, 245, 0, 0, 229, 94, 0, 269, 0, 0,
597 73, 176, 0, 289, 0, 243, 0, 224, 0, 0,
598 0, 270, 0, 267, 155, 0, 154, 293, 0, 0,
599 220, 124, 230, 236, 273, 269, 176, 0, 247, 108,
600 99, 98, 126, 127, 128, 129, 130, 0, 0, 115,
601 117, 0, 0, 116, 0, 100, 0, 111, 119, 123,
602 125, 0, 0, 0, 257, 271, 156, 0, 0, 176,
603 112, 0, 97, 0, 107, 148, 0, 122, 225, 176,
604 114, 0, 243, 0, 0, 0, 0, 131, 0, 105,
605 0, 0, 109, 0, 148, 254, 0, 258, 231, 0,
606 118, 0, 102, 121, 97, 0, 0, 104, 106, 110,
607 0, 219, 120, 0, 254, 248, 0, 113, 101, 253,
608 0, 255, 124, 219, 0, 0, 133, 0, 255, 0,
609 218, 176, 0, 226, 259, 133, 103, 132, 256, 148,
610 255, 232, 227, 133, 148, 260, 233, 148, 261, 0,
611 0, 0
612};
613
614static const short yydefgoto[] =
615{
616 609, 102, 9, 10, 7, 8, 14, 77, 202, 151,
617 150, 148, 159, 161, 5, 6, 13, 45, 113, 178,
618 194, 46, 174, 47, 515, 516, 550, 535, 517, 518,
619 548, 519, 520, 521, 522, 546, 593, 96, 119, 48,
620 553, 49, 279, 180, 278, 451, 486, 366, 412, 413,
621 50, 51, 188, 52, 189, 53, 191, 547, 172, 207,
622 581, 438, 270, 359, 463, 491, 555, 599, 360, 478,
623 524, 574, 604, 361, 442, 432, 401, 402, 405, 441,
624 571, 586, 541, 573, 600, 607, 54, 175, 273, 362,
625 469, 408, 445, 467, 11, 12, 55, 56, 18, 19,
626 358, 83, 84, 425, 352, 423
627};
628
629static const short yypact[] =
630{
631 -4,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
632 57,-32768, -14, 658, 744, 64, 82, 54, -14,-32768,
633 346, 58, 95, 44,-32768, 78,-32768, 129, 154, 173,
634 197, 211, 212, 216, 218, 219,-32768,-32768, 223, 225,
635 -32768, 227, 238, 240,-32768,-32768,-32768,-32768, -82,-32768,
636 -32768,-32768,-32768,-32768,-32768,-32768, 156,-32768, 274, 129,
637 281, 557,-32768, 283, 284, 286,-32768,-32768, 288, 289,
638 290, 557, 291, 293, 294, 299, 300, 207, 557, 303,
639 -32768, 292, 296, 245, 185, 82,-32768,-32768,-32768,-32768,
640 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 309,
641 310,-32768,-32768, 313, 314, 129, 129, 315, 129, 10,
642 -32768, 316, 87, 287, 129, 319, 299,-32768,-32768,-32768,
643 275, 5,-32768, 7,-32768,-32768, 557, 557, 557, 298,
644 302, 304, 307,-32768, 308, 311, 326, 327, 329, 330,
645 331, 332, 333, 557, 557, 646, 312,-32768, 201,-32768,
646 206, 65,-32768,-32768, 394, 1308, 209,-32768,-32768, 222,
647 -32768, 68,-32768,-32768, 1308, 276, 104, 104, 215, 106,
648 279,-32768, 557,-32768, 25, 18, -28, 210,-32768,-32768,
649 -32768, 221, 246, 248, 249, 250,-32768,-32768, 6, 98,
650 69, 251,-32768,-32768, 21, 87, 253, 361, 61, -14,
651 557, 557,-32768, 557, 557,-32768,-32768, 870, 557, 557,
652 557, 557, 377, 557, 378, 385, 386, 557, 557, 557,
653 557,-32768,-32768, 557, 557, 557, 557, 557, 557, 557,
654 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
655 557, 557, 557, 557, 557, 1308, 387, 388,-32768, 389,
656 557, 557, 1308, 194, 390,-32768, 391,-32768, 271, 278,
657 -32768, 395,-32768, -67, 1308, 346,-32768,-32768,-32768,-32768,
658 -32768,-32768,-32768,-32768, 396,-32768,-32768, 707, 364, 37,
659 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 129,-32768, 129,
660 316,-32768,-32768,-32768,-32768, 239,-32768, 30,-32768,-32768,
661 -32768, -19, 1308, 1308, 769, 1308, 1308,-32768, 890, 910,
662 1170, 930, 285, 950, 297, 301, 320, 1200, 1220, 980,
663 1240, 1350, 1327, 1258, 1385, 1399, 786, 1410, 1410, 199,
664 199, 199, 199, 183, 183, 88, 88,-32768,-32768,-32768,
665 1308, 1308, 1308,-32768,-32768,-32768, 1308, 1308,-32768,-32768,
666 -32768,-32768, 104, 90, 106, 356,-32768,-32768, -37, 455,
667 506, 455, 557, 295,-32768, 9, 398,-32768, 313,-32768,
668 -32768,-32768,-32768,-32768,-32768,-32768, 335,-32768,-32768,-32768,
669 -32768, 557,-32768,-32768,-32768,-32768,-32768,-32768, 557, 557,
670 -32768, 406, 557, 305, 400,-32768,-32768,-32768, 208, 375,
671 1278, 401, 328,-32768, 1370, 340,-32768, 1308, 24, 422,
672 -32768, 424, 8,-32768, 351,-32768,-32768, 1000, 1020, 1040,
673 336, 1308, 106, 383, 104, 104,-32768,-32768,-32768,-32768,
674 -32768,-32768, 337, 557, 62, 413,-32768, 402,-32768,-32768,
675 -32768, 328, 420, 403, 408,-32768, 338,-32768,-32768,-32768,
676 428, 348,-32768,-32768,-32768,-32768,-32768, 349, 305,-32768,
677 1060,-32768, 557, 425,-32768,-32768, 557, 24, 557, 350,
678 -32768,-32768, 392, 106, 421, 203, 1090,-32768, 427, 198,
679 1110,-32768, 1130,-32768,-32768, 469,-32768,-32768, 444, 466,
680 -32768, 607,-32768,-32768,-32768, 24,-32768, 557,-32768, 443,
681 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 446, 447,-32768,
682 -32768, 450, 451,-32768, 32,-32768, 452,-32768,-32768,-32768,
683 607, 438, 459, -82,-32768,-32768,-32768, 1150, 96,-32768,
684 -32768, 67,-32768, 461,-32768, -69, 32,-32768,-32768,-32768,
685 -32768, 26, 462, 374, 464, 376, 380,-32768, 12,-32768,
686 16, 72,-32768, 32, 128, 478, 381,-32768,-32768, 495,
687 -32768, 67,-32768,-32768, 393, 399, 67,-32768,-32768,-32768,
688 508, 423,-32768, 463, 478,-32768, 36,-32768,-32768,-32768,
689 488,-32768, 607, 423, 67, 512, 29, 465,-32768, 407,
690 -32768,-32768, 516,-32768,-32768, 29,-32768,-32768,-32768, 348,
691 -32768,-32768,-32768, 29, 348,-32768,-32768, 348,-32768, 532,
692 534,-32768
693};
694
695static const short yypgoto[] =
696{
697 -32768, -52,-32768,-32768,-32768,-32768, 339,-32768,-32768,-32768,
698 -32768,-32768,-32768, 419,-32768,-32768, 360,-32768,-32768,-32768,
699 344,-32768, 75, -170, -325, -490, -15, 11, -6,-32768,
700 -32768, 28,-32768, -33,-32768, -41, -502,-32768, 31, -468,
701 -186,-32768,-32768, -258,-32768,-32768,-32768,-32768,-32768, 139,
702 -32768,-32768,-32768,-32768,-32768,-32768, -171, -91,-32768, -60,
703 -30, 116,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
704 -32768,-32768,-32768,-32768,-32768,-32768, -390, 202,-32768,-32768,
705 -10, -550,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
706 -32768,-32768, -392,-32768,-32768,-32768,-32768,-32768, 363, -12,
707 -32768, 480, -158,-32768,-32768, 108
708};
709
710
711#define YYLAST 1444
712
713
714static const short yytable[] =
715{
716 171, 145, 287, 289, 269, 173, 86, 122, 258, 259,
717 435, 155, 410, 410, 101, 200, 564, 203, 164, 291,
718 532, 369, 271, 523, 534, 293, 294, 500, 443, 265,
719 557, 500, 16, 377, 293, 294, 532, 16, 595, 591,
720 532, 179, 117, 118, 501, 592, 534, 500, 501, 356,
721 603, 500, 523, 182, 183, 285, 185, 187, 357, 552,
722 533, 15, 196, 568, 501, 255, 205, 206, 501, 248,
723 272, 532, 255, 190, 78, 481, 532, 266, 558, 396,
724 533, 99, 500, 221, 222, 489, 245, 500, 397, 367,
725 267, 192, 193, 601, 252, 32, 274, 17, 275, 501,
726 532, 605, 17, 525, 501, 85, 1, 2, 3, 97,
727 415, 500, 264, 268, 523, 100, 444, 4, 42, 372,
728 239, 240, 241, 426, 427, 428, 429, 430, 501, 201,
729 285, 204, 286, 101, 448, 512, 186, 411, 411, 514,
730 302, 303, 566, 305, 306, 295, 98, 296, 308, 309,
731 310, 311, 559, 313, 295, 512, 375, 317, 318, 319,
732 320, 368, 584, 321, 322, 323, 324, 325, 326, 327,
733 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
734 338, 339, 340, 341, 342, 256, 543, 300, 431, 249,
735 346, 347, 256, 290, 393, 544, 79, 348, 349, 80,
736 81, 82, 265, 545, 261, 103, 549, 262, 376, 394,
737 104, 124, 125, 237, 238, 239, 240, 241, 79, 544,
738 261, 80, 285, 262, 288, 567, 545, 235, 236, 237,
739 238, 239, 240, 241, 105, 370, 549, 371, 126, 127,
740 434, 578, 488, 373, 374, 128, 129, 130, 106, 107,
741 493, 567, 285, 108, 569, 109, 110, 131, 132, 589,
742 111, 133, 112, 267, 114, 472, 457, 458, 32, 426,
743 427, 428, 429, 430, 134, 115, 120, 116, 121, 135,
744 136, 137, 138, 139, 140, 123, 268, 146, 147, 86,
745 149, 42, 152, 153, 154, 156, 157, 168, 158, 400,
746 404, 400, 407, 160, 162, 141, 163, 165, 166, 269,
747 169, 142, 167, 176, 177, 124, 125, 179, 181, 184,
748 190, 417, 243, 197, 195, 246, 199, 257, 418, 419,
749 247, 263, 421, 253, 431, 208, 276, 143, 144, 209,
750 260, 210, 126, 127, 211, 212, 254, 280, 213, 128,
751 129, 130, 87, 88, 89, 90, 91, 92, 93, 94,
752 95, 131, 132, 214, 215, 133, 216, 217, 218, 219,
753 220, 299, 281, 460, 282, 283, 284, 292, 134, 298,
754 484, 312, 314, 135, 136, 137, 138, 139, 140, 315,
755 316, 343, 344, 345, 350, 351, 353, 124, 125, 355,
756 363, 365, 476, 354, 250, 526, 480, 395, 482, 141,
757 420, 383, 433, 602, 414, 142, 424, 436, 606, 409,
758 437, 608, 440, 385, 126, 127, 446, 386, 447, 461,
759 422, 128, 129, 130, 450, 456, 244, 527, 471, 462,
760 466, 143, 144, 131, 132, 468, 387, 133, 556, 87,
761 88, 89, 90, 91, 92, 93, 94, 95, 124, 125,
762 134, 416, 455, 459, 470, 135, 136, 137, 138, 139,
763 140, 465, 285, 487, 473, 483, 477, 485, 492, 496,
764 -97, 497, 498, 528, 529, 126, 127, 530, 531, 536,
765 538, 141, 398, 129, 130, 399, 539, 142, 551, 434,
766 560, 561, 562, 570, 131, 132, 563, 572, 133, 124,
767 125, 575, 579, 585, 582, 580, 590, 594, 251, -108,
768 598, 134, 403, 143, 144, 577, 135, 136, 137, 138,
769 139, 140, 610, 596, 611, 198, 126, 127, 277, 297,
770 479, 304, 565, 128, 129, 130, 576, 554, 537, 587,
771 597, 449, 141, 588, 540, 131, 132, 464, 142, 133,
772 124, 125, 301, 406, 583, 170, 474, 0, 0, 0,
773 0, 0, 134, 0, 0, 0, 0, 135, 136, 137,
774 138, 139, 140, 0, 143, 144, 0, 126, 127, 0,
775 0, 0, 0, 0, 128, 129, 130, 0, 0, 0,
776 0, 0, 0, 141, 0, 0, 131, 132, 0, 142,
777 133, 499, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 500, 134, 0, 0, 0, 0, 135, 136,
779 137, 138, 139, 140, 0, 143, 144, 0, 0, 501,
780 0, 0, 0, 0, 0, 0, 0, 0, 502, 503,
781 504, 505, 506, 0, 141, 507, 0, 0, 0, 0,
782 142, 223, 20, 224, 225, 226, 227, 228, 229, 230,
783 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
784 241, 0, 0, 0, 0, 0, 143, 144, 0, 0,
785 0, 508, 0, 509, 0, 0, 0, 510, 0, 0,
786 42, 0, 0, 0, 21, 22, 0, 0, 0, 0,
787 0, 20, 23, 24, 25, 26, 27, 28, 0, 0,
788 0, 0, 0, 0, 0, 29, 30, 31, 32, 511,
789 512, 0, 513, 0, 514, 33, 34, 35, 36, 37,
790 38, 0, 0, 364, 0, 39, 40, 41, 57, 0,
791 0, 42, 0, 21, 22, 0, 0, 0, 0, 0,
792 0, 23, 24, 25, 26, 27, 28, 0, 0, 0,
793 242, 0, 43, 57, 29, 30, 31, 32, -276, 0,
794 0, 0, 58, 44, 33, 34, 35, 36, 37, 38,
795 0, 0, 0, 0, 39, 40, 41, 0, 0, 0,
796 42, 0, 59, 0, 0, 378, 0, 58, 229, 230,
797 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
798 241, 43, 0, 0, 0, 0, 0, 59, 0, 0,
799 0, 0, 44, 0, 0, 60, 0, 0, 61, 62,
800 63, 64, 65, -41, 66, 67, 68, 0, 69, 70,
801 71, 72, 73, 0, 0, 0, 0, 74, 75, 76,
802 60, 0, 0, 61, 62, 63, 64, 65, 0, 66,
803 67, 68, 0, 69, 70, 71, 72, 73, 0, 0,
804 0, 0, 74, 75, 76, 223, 0, 224, 225, 226,
805 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
806 237, 238, 239, 240, 241, 223, 0, 224, 225, 226,
807 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
808 237, 238, 239, 240, 241, 223, 0, 224, 225, 226,
809 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
810 237, 238, 239, 240, 241, 223, 0, 224, 225, 226,
811 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
812 237, 238, 239, 240, 241, 223, 0, 224, 225, 226,
813 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
814 237, 238, 239, 240, 241, 0, 0, 0, 0, 0,
815 0, 0, 0, 0, 0, 223, 307, 224, 225, 226,
816 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
817 237, 238, 239, 240, 241, 223, 379, 224, 225, 226,
818 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
819 237, 238, 239, 240, 241, 223, 380, 224, 225, 226,
820 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
821 237, 238, 239, 240, 241, 223, 382, 224, 225, 226,
822 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
823 237, 238, 239, 240, 241, 223, 384, 224, 225, 226,
824 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
825 237, 238, 239, 240, 241, 0, 0, 0, 0, 0,
826 0, 0, 0, 0, 0, 223, 390, 224, 225, 226,
827 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
828 237, 238, 239, 240, 241, 223, 452, 224, 225, 226,
829 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
830 237, 238, 239, 240, 241, 223, 453, 224, 225, 226,
831 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
832 237, 238, 239, 240, 241, 223, 454, 224, 225, 226,
833 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
834 237, 238, 239, 240, 241, 223, 475, 224, 225, 226,
835 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
836 237, 238, 239, 240, 241, 0, 0, 0, 0, 0,
837 0, 0, 0, 0, 0, 223, 490, 224, 225, 226,
838 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
839 237, 238, 239, 240, 241, 223, 494, 224, 225, 226,
840 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
841 237, 238, 239, 240, 241, 223, 495, 224, 225, 226,
842 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
843 237, 238, 239, 240, 241, 0, 542, 226, 227, 228,
844 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
845 239, 240, 241, 223, 381, 224, 225, 226, 227, 228,
846 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
847 239, 240, 241, 0, 0, 434, 0, 0, 0, 0,
848 0, 0, 0, 223, 388, 224, 225, 226, 227, 228,
849 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
850 239, 240, 241, 0, 389, 225, 226, 227, 228, 229,
851 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
852 240, 241, 0, 0, 391, 223, 392, 224, 225, 226,
853 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
854 237, 238, 239, 240, 241, 223, 439, 224, 225, 226,
855 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
856 237, 238, 239, 240, 241, 227, 228, 229, 230, 231,
857 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
858 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
859 238, 239, 240, 241, 231, 232, 233, 234, 235, 236,
860 237, 238, 239, 240, 241
861};
862
863static const short yycheck[] =
864{
865 91, 61, 188, 189, 174, 96, 18, 59, 166, 167,
866 400, 71, 4, 4, 4, 10, 4, 10, 78, 190,
867 4, 279, 4, 491, 514, 4, 5, 15, 4, 4,
868 4, 15, 51, 52, 4, 5, 4, 51, 588, 10,
869 4, 4, 124, 125, 32, 16, 536, 15, 32, 116,
870 600, 15, 520, 105, 106, 124, 108, 109, 125, 128,
871 48, 4, 114, 553, 32, 4, 126, 127, 32, 4,
872 52, 4, 4, 4, 10, 467, 4, 52, 52, 116,
873 48, 37, 15, 143, 144, 475, 146, 15, 125, 52,
874 65, 4, 5, 595, 154, 70, 124, 116, 126, 32,
875 4, 603, 116, 495, 32, 51, 110, 111, 112, 51,
876 368, 15, 172, 88, 582, 37, 92, 121, 93, 290,
877 32, 33, 34, 61, 62, 63, 64, 65, 32, 124,
878 124, 124, 126, 4, 126, 123, 126, 129, 129, 127,
879 200, 201, 126, 203, 204, 124, 51, 126, 208, 209,
880 210, 211, 542, 213, 124, 123, 126, 217, 218, 219,
881 220, 124, 126, 223, 224, 225, 226, 227, 228, 229,
882 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
883 240, 241, 242, 243, 244, 124, 90, 126, 126, 124,
884 250, 251, 124, 124, 352, 123, 114, 3, 4, 117,
885 118, 119, 4, 528, 114, 51, 531, 117, 299, 119,
886 37, 3, 4, 30, 31, 32, 33, 34, 114, 123,
887 114, 117, 124, 117, 126, 550, 551, 28, 29, 30,
888 31, 32, 33, 34, 37, 287, 561, 289, 30, 31,
889 37, 566, 39, 4, 5, 37, 38, 39, 37, 37,
890 52, 576, 124, 37, 126, 37, 37, 49, 50, 584,
891 37, 53, 37, 65, 37, 451, 424, 425, 70, 61,
892 62, 63, 64, 65, 66, 37, 120, 37, 4, 71,
893 72, 73, 74, 75, 76, 4, 88, 4, 4, 301,
894 4, 93, 4, 4, 4, 4, 3, 52, 4, 359,
895 360, 361, 362, 4, 4, 97, 99, 4, 16, 479,
896 125, 103, 16, 4, 4, 3, 4, 4, 4, 4,
897 4, 381, 10, 4, 37, 124, 51, 51, 388, 389,
898 124, 52, 392, 124, 126, 37, 126, 129, 130, 37,
899 125, 37, 30, 31, 37, 37, 124, 126, 37, 37,
900 38, 39, 6, 7, 8, 9, 10, 11, 12, 13,
901 14, 49, 50, 37, 37, 53, 37, 37, 37, 37,
902 37, 10, 126, 433, 126, 126, 126, 126, 66, 126,
903 471, 4, 4, 71, 72, 73, 74, 75, 76, 4,
904 4, 4, 4, 4, 4, 4, 125, 3, 4, 4,
905 4, 37, 462, 125, 10, 496, 466, 51, 468, 97,
906 4, 126, 37, 599, 16, 103, 16, 16, 604, 124,
907 92, 607, 82, 126, 30, 31, 4, 126, 4, 16,
908 125, 37, 38, 39, 83, 52, 124, 497, 10, 37,
909 37, 129, 130, 49, 50, 37, 126, 53, 539, 6,
910 7, 8, 9, 10, 11, 12, 13, 14, 3, 4,
911 66, 126, 126, 126, 126, 71, 72, 73, 74, 75,
912 76, 51, 124, 52, 125, 125, 51, 85, 51, 10,
913 37, 37, 16, 37, 37, 30, 31, 37, 37, 37,
914 52, 97, 37, 38, 39, 40, 37, 103, 37, 37,
915 126, 37, 126, 25, 49, 50, 126, 126, 53, 3,
916 4, 16, 4, 25, 51, 92, 4, 52, 124, 126,
917 4, 66, 16, 129, 130, 126, 71, 72, 73, 74,
918 75, 76, 0, 126, 0, 116, 30, 31, 178, 195,
919 465, 202, 548, 37, 38, 39, 561, 536, 520, 582,
920 591, 412, 97, 583, 523, 49, 50, 441, 103, 53,
921 3, 4, 199, 361, 574, 85, 458, -1, -1, -1,
922 -1, -1, 66, -1, -1, -1, -1, 71, 72, 73,
923 74, 75, 76, -1, 129, 130, -1, 30, 31, -1,
924 -1, -1, -1, -1, 37, 38, 39, -1, -1, -1,
925 -1, -1, -1, 97, -1, -1, 49, 50, -1, 103,
926 53, 4, -1, -1, -1, -1, -1, -1, -1, -1,
927 -1, -1, 15, 66, -1, -1, -1, -1, 71, 72,
928 73, 74, 75, 76, -1, 129, 130, -1, -1, 32,
929 -1, -1, -1, -1, -1, -1, -1, -1, 41, 42,
930 43, 44, 45, -1, 97, 48, -1, -1, -1, -1,
931 103, 15, 4, 17, 18, 19, 20, 21, 22, 23,
932 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
933 34, -1, -1, -1, -1, -1, 129, 130, -1, -1,
934 -1, 84, -1, 86, -1, -1, -1, 90, -1, -1,
935 93, -1, -1, -1, 46, 47, -1, -1, -1, -1,
936 -1, 4, 54, 55, 56, 57, 58, 59, -1, -1,
937 -1, -1, -1, -1, -1, 67, 68, 69, 70, 122,
938 123, -1, 125, -1, 127, 77, 78, 79, 80, 81,
939 82, -1, -1, 36, -1, 87, 88, 89, 4, -1,
940 -1, 93, -1, 46, 47, -1, -1, -1, -1, -1,
941 -1, 54, 55, 56, 57, 58, 59, -1, -1, -1,
942 124, -1, 114, 4, 67, 68, 69, 70, 120, -1,
943 -1, -1, 38, 125, 77, 78, 79, 80, 81, 82,
944 -1, -1, -1, -1, 87, 88, 89, -1, -1, -1,
945 93, -1, 58, -1, -1, 36, -1, 38, 22, 23,
946 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
947 34, 114, -1, -1, -1, -1, -1, 58, -1, -1,
948 -1, -1, 125, -1, -1, 91, -1, -1, 94, 95,
949 96, 97, 98, 99, 100, 101, 102, -1, 104, 105,
950 106, 107, 108, -1, -1, -1, -1, 113, 114, 115,
951 91, -1, -1, 94, 95, 96, 97, 98, -1, 100,
952 101, 102, -1, 104, 105, 106, 107, 108, -1, -1,
953 -1, -1, 113, 114, 115, 15, -1, 17, 18, 19,
954 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
955 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
956 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
957 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
958 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
959 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
960 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
961 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
962 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
963 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
964 -1, -1, -1, -1, -1, 15, 126, 17, 18, 19,
965 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
966 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
967 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
968 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
969 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
970 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
971 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
972 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
973 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
974 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
975 -1, -1, -1, -1, -1, 15, 126, 17, 18, 19,
976 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
977 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
978 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
979 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
980 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
981 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
982 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
983 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
984 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
985 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
986 -1, -1, -1, -1, -1, 15, 126, 17, 18, 19,
987 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
988 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
989 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
990 30, 31, 32, 33, 34, 15, 126, 17, 18, 19,
991 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
992 30, 31, 32, 33, 34, -1, 126, 19, 20, 21,
993 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
994 32, 33, 34, 15, 124, 17, 18, 19, 20, 21,
995 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
996 32, 33, 34, -1, -1, 37, -1, -1, -1, -1,
997 -1, -1, -1, 15, 124, 17, 18, 19, 20, 21,
998 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
999 32, 33, 34, -1, 124, 18, 19, 20, 21, 22,
1000 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
1001 33, 34, -1, -1, 124, 15, 16, 17, 18, 19,
1002 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1003 30, 31, 32, 33, 34, 15, 16, 17, 18, 19,
1004 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1005 30, 31, 32, 33, 34, 20, 21, 22, 23, 24,
1006 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1007 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1008 31, 32, 33, 34, 24, 25, 26, 27, 28, 29,
1009 30, 31, 32, 33, 34
1010};
1011/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1012#line 3 "/usr/share/bison-1.35/bison.simple"
1013
1014/* Skeleton output parser for bison,
1015
1016 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
1017 Foundation, Inc.
1018
1019 This program is free software; you can redistribute it and/or modify
1020 it under the terms of the GNU General Public License as published by
1021 the Free Software Foundation; either version 2, or (at your option)
1022 any later version.
1023
1024 This program is distributed in the hope that it will be useful,
1025 but WITHOUT ANY WARRANTY; without even the implied warranty of
1026 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1027 GNU General Public License for more details.
1028
1029 You should have received a copy of the GNU General Public License
1030 along with this program; if not, write to the Free Software
1031 Foundation, Inc., 59 Temple Place - Suite 330,
1032 Boston, MA 02111-1307, USA. */
1033
1034/* As a special exception, when this file is copied by Bison into a
1035 Bison output file, you may use that output file without restriction.
1036 This special exception was added by the Free Software Foundation
1037 in version 1.24 of Bison. */
1038
1039/* This is the parser code that is written into each bison parser when
1040 the %semantic_parser declaration is not specified in the grammar.
1041 It was written by Richard Stallman by simplifying the hairy parser
1042 used when %semantic_parser is specified. */
1043
1044/* All symbols defined below should begin with yy or YY, to avoid
1045 infringing on user name space. This should be done even for local
1046 variables, as they might otherwise be expanded by user macros.
1047 There are some unavoidable exceptions within include files to
1048 define necessary library symbols; they are noted "INFRINGES ON
1049 USER NAME SPACE" below. */
1050
1051#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1052
1053/* The parser invokes alloca or malloc; define the necessary symbols. */
1054
1055# if YYSTACK_USE_ALLOCA
1056# define YYSTACK_ALLOC alloca
1057# else
1058# ifndef YYSTACK_USE_ALLOCA
1059# if defined (alloca) || defined (_ALLOCA_H)
1060# define YYSTACK_ALLOC alloca
1061# else
1062# ifdef __GNUC__
1063# define YYSTACK_ALLOC __builtin_alloca
1064# endif
1065# endif
1066# endif
1067# endif
1068
1069# ifdef YYSTACK_ALLOC
1070 /* Pacify GCC's `empty if-body' warning. */
1071# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1072# else
1073# if defined (__STDC__) || defined (__cplusplus)
1074# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1075# define YYSIZE_T size_t
1076# endif
1077# define YYSTACK_ALLOC malloc
1078# define YYSTACK_FREE free
1079# endif
1080#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1081
1082
1083#if (! defined (yyoverflow) \
1084 && (! defined (__cplusplus) \
1085 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1086
1087/* A type that is properly aligned for any stack member. */
1088union yyalloc
1089{
1090 short yyss;
1091 YYSTYPE yyvs;
1092# if YYLSP_NEEDED
1093 YYLTYPE yyls;
1094# endif
1095};
1096
1097/* The size of the maximum gap between one aligned stack and the next. */
1098# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1099
1100/* The size of an array large to enough to hold all stacks, each with
1101 N elements. */
1102# if YYLSP_NEEDED
1103# define YYSTACK_BYTES(N) \
1104 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1105 + 2 * YYSTACK_GAP_MAX)
1106# else
1107# define YYSTACK_BYTES(N) \
1108 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1109 + YYSTACK_GAP_MAX)
1110# endif
1111
1112/* Copy COUNT objects from FROM to TO. The source and destination do
1113 not overlap. */
1114# ifndef YYCOPY
1115# if 1 < __GNUC__
1116# define YYCOPY(To, From, Count) \
1117 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1118# else
1119# define YYCOPY(To, From, Count) \
1120 do \
1121 { \
1122 register YYSIZE_T yyi; \
1123 for (yyi = 0; yyi < (Count); yyi++) \
1124 (To)[yyi] = (From)[yyi]; \
1125 } \
1126 while (0)
1127# endif
1128# endif
1129
1130/* Relocate STACK from its old location to the new one. The
1131 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1132 elements in the stack, and YYPTR gives the new location of the
1133 stack. Advance YYPTR to a properly aligned location for the next
1134 stack. */
1135# define YYSTACK_RELOCATE(Stack) \
1136 do \
1137 { \
1138 YYSIZE_T yynewbytes; \
1139 YYCOPY (&yyptr->Stack, Stack, yysize); \
1140 Stack = &yyptr->Stack; \
1141 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
1142 yyptr += yynewbytes / sizeof (*yyptr); \
1143 } \
1144 while (0)
1145
1146#endif
1147
1148
1149#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1150# define YYSIZE_T __SIZE_TYPE__
1151#endif
1152#if ! defined (YYSIZE_T) && defined (size_t)
1153# define YYSIZE_T size_t
1154#endif
1155#if ! defined (YYSIZE_T)
1156# if defined (__STDC__) || defined (__cplusplus)
1157# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1158# define YYSIZE_T size_t
1159# endif
1160#endif
1161#if ! defined (YYSIZE_T)
1162# define YYSIZE_T unsigned int
1163#endif
1164
1165#define yyerrok (yyerrstatus = 0)
1166#define yyclearin (yychar = YYEMPTY)
1167#define YYEMPTY -2
1168#define YYEOF 0
1169#define YYACCEPT goto yyacceptlab
1170#define YYABORT goto yyabortlab
1171#define YYERROR goto yyerrlab1
1172/* Like YYERROR except do call yyerror. This remains here temporarily
1173 to ease the transition to the new meaning of YYERROR, for GCC.
1174 Once GCC version 2 has supplanted version 1, this can go. */
1175#define YYFAIL goto yyerrlab
1176#define YYRECOVERING() (!!yyerrstatus)
1177#define YYBACKUP(Token, Value) \
1178do \
1179 if (yychar == YYEMPTY && yylen == 1) \
1180 { \
1181 yychar = (Token); \
1182 yylval = (Value); \
1183 yychar1 = YYTRANSLATE (yychar); \
1184 YYPOPSTACK; \
1185 goto yybackup; \
1186 } \
1187 else \
1188 { \
1189 yyerror ("syntax error: cannot back up"); \
1190 YYERROR; \
1191 } \
1192while (0)
1193
1194#define YYTERROR 1
1195#define YYERRCODE 256
1196
1197
1198/* YYLLOC_DEFAULT -- Compute the default location (before the actions
1199 are run).
1200
1201 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1202 first token. By default, to implement support for ranges, extend
1203 its range to the last symbol. */
1204
1205#ifndef YYLLOC_DEFAULT
1206# define YYLLOC_DEFAULT(Current, Rhs, N) \
1207 Current.last_line = Rhs[N].last_line; \
1208 Current.last_column = Rhs[N].last_column;
1209#endif
1210
1211
1212/* YYLEX -- calling `yylex' with the right arguments. */
1213
1214#if YYPURE
1215# if YYLSP_NEEDED
1216# ifdef YYLEX_PARAM
1217# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1218# else
1219# define YYLEX yylex (&yylval, &yylloc)
1220# endif
1221# else /* !YYLSP_NEEDED */
1222# ifdef YYLEX_PARAM
1223# define YYLEX yylex (&yylval, YYLEX_PARAM)
1224# else
1225# define YYLEX yylex (&yylval)
1226# endif
1227# endif /* !YYLSP_NEEDED */
1228#else /* !YYPURE */
1229# define YYLEX yylex ()
1230#endif /* !YYPURE */
1231
1232
1233/* Enable debugging if requested. */
1234#if YYDEBUG
1235
1236# ifndef YYFPRINTF
1237# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1238# define YYFPRINTF fprintf
1239# endif
1240
1241# define YYDPRINTF(Args) \
1242do { \
1243 if (yydebug) \
1244 YYFPRINTF Args; \
1245} while (0)
1246/* Nonzero means print parse trace. It is left uninitialized so that
1247 multiple parsers can coexist. */
1248int yydebug;
1249#else /* !YYDEBUG */
1250# define YYDPRINTF(Args)
1251#endif /* !YYDEBUG */
1252
1253/* YYINITDEPTH -- initial size of the parser's stacks. */
1254#ifndef YYINITDEPTH
1255# define YYINITDEPTH 200
1256#endif
1257
1258/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1259 if the built-in stack extension method is used).
1260
1261 Do not make this value too large; the results are undefined if
1262 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1263 evaluated with infinite-precision integer arithmetic. */
1264
1265#if YYMAXDEPTH == 0
1266# undef YYMAXDEPTH
1267#endif
1268
1269#ifndef YYMAXDEPTH
1270# define YYMAXDEPTH 10000
1271#endif
1272
1273
1274#ifdef YYERROR_VERBOSE
1275
1276# ifndef yystrlen
1277# if defined (__GLIBC__) && defined (_STRING_H)
1278# define yystrlen strlen
1279# else
1280/* Return the length of YYSTR. */
1281static YYSIZE_T
1282# if defined (__STDC__) || defined (__cplusplus)
1283yystrlen (const char *yystr)
1284# else
1285yystrlen (yystr)
1286 const char *yystr;
1287# endif
1288{
1289 register const char *yys = yystr;
1290
1291 while (*yys++ != '\0')
1292 continue;
1293
1294 return yys - yystr - 1;
1295}
1296# endif
1297# endif
1298
1299# ifndef yystpcpy
1300# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1301# define yystpcpy stpcpy
1302# else
1303/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1304 YYDEST. */
1305static char *
1306# if defined (__STDC__) || defined (__cplusplus)
1307yystpcpy (char *yydest, const char *yysrc)
1308# else
1309yystpcpy (yydest, yysrc)
1310 char *yydest;
1311 const char *yysrc;
1312# endif
1313{
1314 register char *yyd = yydest;
1315 register const char *yys = yysrc;
1316
1317 while ((*yyd++ = *yys++) != '\0')
1318 continue;
1319
1320 return yyd - 1;
1321}
1322# endif
1323# endif
1324#endif
1325
1326
1327#line 315 "/usr/share/bison-1.35/bison.simple"
1328
1329
1330/* The user can define YYPARSE_PARAM as the name of an argument to be passed
1331 into yyparse. The argument should have type void *.
1332 It should actually point to an object.
1333 Grammar actions can access the variable by casting it
1334 to the proper pointer type. */
1335
1336#ifdef YYPARSE_PARAM
1337# if defined (__STDC__) || defined (__cplusplus)
1338# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1339# define YYPARSE_PARAM_DECL
1340# else
1341# define YYPARSE_PARAM_ARG YYPARSE_PARAM
1342# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1343# endif
1344#else /* !YYPARSE_PARAM */
1345# define YYPARSE_PARAM_ARG
1346# define YYPARSE_PARAM_DECL
1347#endif /* !YYPARSE_PARAM */
1348
1349/* Prevent warning if -Wstrict-prototypes. */
1350#ifdef __GNUC__
1351# ifdef YYPARSE_PARAM
1352int yyparse (void *);
1353# else
1354int yyparse (void);
1355# endif
1356#endif
1357
1358/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1359 variables are global, or local to YYPARSE. */
1360
1361#define YY_DECL_NON_LSP_VARIABLES \
1362/* The lookahead symbol. */ \
1363int yychar; \
1364 \
1365/* The semantic value of the lookahead symbol. */ \
1366YYSTYPE yylval; \
1367 \
1368/* Number of parse errors so far. */ \
1369int yynerrs;
1370
1371#if YYLSP_NEEDED
1372# define YY_DECL_VARIABLES \
1373YY_DECL_NON_LSP_VARIABLES \
1374 \
1375/* Location data for the lookahead symbol. */ \
1376YYLTYPE yylloc;
1377#else
1378# define YY_DECL_VARIABLES \
1379YY_DECL_NON_LSP_VARIABLES
1380#endif
1381
1382
1383/* If nonreentrant, generate the variables here. */
1384
1385#if !YYPURE
1386YY_DECL_VARIABLES
1387#endif /* !YYPURE */
1388
1389int
1390yyparse (YYPARSE_PARAM_ARG)
1391 YYPARSE_PARAM_DECL
1392{
1393 /* If reentrant, generate the variables here. */
1394#if YYPURE
1395 YY_DECL_VARIABLES
1396#endif /* !YYPURE */
1397
1398 register int yystate;
1399 register int yyn;
1400 int yyresult;
1401 /* Number of tokens to shift before error messages enabled. */
1402 int yyerrstatus;
1403 /* Lookahead token as an internal (translated) token number. */
1404 int yychar1 = 0;
1405
1406 /* Three stacks and their tools:
1407 `yyss': related to states,
1408 `yyvs': related to semantic values,
1409 `yyls': related to locations.
1410
1411 Refer to the stacks thru separate pointers, to allow yyoverflow
1412 to reallocate them elsewhere. */
1413
1414 /* The state stack. */
1415 short yyssa[YYINITDEPTH];
1416 short *yyss = yyssa;
1417 register short *yyssp;
1418
1419 /* The semantic value stack. */
1420 YYSTYPE yyvsa[YYINITDEPTH];
1421 YYSTYPE *yyvs = yyvsa;
1422 register YYSTYPE *yyvsp;
1423
1424#if YYLSP_NEEDED
1425 /* The location stack. */
1426 YYLTYPE yylsa[YYINITDEPTH];
1427 YYLTYPE *yyls = yylsa;
1428 YYLTYPE *yylsp;
1429#endif
1430
1431#if YYLSP_NEEDED
1432# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1433#else
1434# define YYPOPSTACK (yyvsp--, yyssp--)
1435#endif
1436
1437 YYSIZE_T yystacksize = YYINITDEPTH;
1438
1439
1440 /* The variables used to return semantic value and location from the
1441 action routines. */
1442 YYSTYPE yyval;
1443#if YYLSP_NEEDED
1444 YYLTYPE yyloc;
1445#endif
1446
1447 /* When reducing, the number of symbols on the RHS of the reduced
1448 rule. */
1449 int yylen;
1450
1451 YYDPRINTF ((stderr, "Starting parse\n"));
1452
1453 yystate = 0;
1454 yyerrstatus = 0;
1455 yynerrs = 0;
1456 yychar = YYEMPTY; /* Cause a token to be read. */
1457
1458 /* Initialize stack pointers.
1459 Waste one element of value and location stack
1460 so that they stay on the same level as the state stack.
1461 The wasted elements are never initialized. */
1462
1463 yyssp = yyss;
1464 yyvsp = yyvs;
1465#if YYLSP_NEEDED
1466 yylsp = yyls;
1467#endif
1468 goto yysetstate;
1469
1470/*------------------------------------------------------------.
1471| yynewstate -- Push a new state, which is found in yystate. |
1472`------------------------------------------------------------*/
1473 yynewstate:
1474 /* In all cases, when you get here, the value and location stacks
1475 have just been pushed. so pushing a state here evens the stacks.
1476 */
1477 yyssp++;
1478
1479 yysetstate:
1480 *yyssp = yystate;
1481
1482 if (yyssp >= yyss + yystacksize - 1)
1483 {
1484 /* Get the current used size of the three stacks, in elements. */
1485 YYSIZE_T yysize = yyssp - yyss + 1;
1486
1487#ifdef yyoverflow
1488 {
1489 /* Give user a chance to reallocate the stack. Use copies of
1490 these so that the &'s don't force the real ones into
1491 memory. */
1492 YYSTYPE *yyvs1 = yyvs;
1493 short *yyss1 = yyss;
1494
1495 /* Each stack pointer address is followed by the size of the
1496 data in use in that stack, in bytes. */
1497# if YYLSP_NEEDED
1498 YYLTYPE *yyls1 = yyls;
1499 /* This used to be a conditional around just the two extra args,
1500 but that might be undefined if yyoverflow is a macro. */
1501 yyoverflow ("parser stack overflow",
1502 &yyss1, yysize * sizeof (*yyssp),
1503 &yyvs1, yysize * sizeof (*yyvsp),
1504 &yyls1, yysize * sizeof (*yylsp),
1505 &yystacksize);
1506 yyls = yyls1;
1507# else
1508 yyoverflow ("parser stack overflow",
1509 &yyss1, yysize * sizeof (*yyssp),
1510 &yyvs1, yysize * sizeof (*yyvsp),
1511 &yystacksize);
1512# endif
1513 yyss = yyss1;
1514 yyvs = yyvs1;
1515 }
1516#else /* no yyoverflow */
1517# ifndef YYSTACK_RELOCATE
1518 goto yyoverflowlab;
1519# else
1520 /* Extend the stack our own way. */
1521 if (yystacksize >= YYMAXDEPTH)
1522 goto yyoverflowlab;
1523 yystacksize *= 2;
1524 if (yystacksize > YYMAXDEPTH)
1525 yystacksize = YYMAXDEPTH;
1526
1527 {
1528 short *yyss1 = yyss;
1529 union yyalloc *yyptr =
1530 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1531 if (! yyptr)
1532 goto yyoverflowlab;
1533 YYSTACK_RELOCATE (yyss);
1534 YYSTACK_RELOCATE (yyvs);
1535# if YYLSP_NEEDED
1536 YYSTACK_RELOCATE (yyls);
1537# endif
1538# undef YYSTACK_RELOCATE
1539 if (yyss1 != yyssa)
1540 YYSTACK_FREE (yyss1);
1541 }
1542# endif
1543#endif /* no yyoverflow */
1544
1545 yyssp = yyss + yysize - 1;
1546 yyvsp = yyvs + yysize - 1;
1547#if YYLSP_NEEDED
1548 yylsp = yyls + yysize - 1;
1549#endif
1550
1551 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1552 (unsigned long int) yystacksize));
1553
1554 if (yyssp >= yyss + yystacksize - 1)
1555 YYABORT;
1556 }
1557
1558 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1559
1560 goto yybackup;
1561
1562
1563/*-----------.
1564| yybackup. |
1565`-----------*/
1566yybackup:
1567
1568/* Do appropriate processing given the current state. */
1569/* Read a lookahead token if we need one and don't already have one. */
1570/* yyresume: */
1571
1572 /* First try to decide what to do without reference to lookahead token. */
1573
1574 yyn = yypact[yystate];
1575 if (yyn == YYFLAG)
1576 goto yydefault;
1577
1578 /* Not known => get a lookahead token if don't already have one. */
1579
1580 /* yychar is either YYEMPTY or YYEOF
1581 or a valid token in external form. */
1582
1583 if (yychar == YYEMPTY)
1584 {
1585 YYDPRINTF ((stderr, "Reading a token: "));
1586 yychar = YYLEX;
1587 }
1588
1589 /* Convert token to internal form (in yychar1) for indexing tables with */
1590
1591 if (yychar <= 0) /* This means end of input. */
1592 {
1593 yychar1 = 0;
1594 yychar = YYEOF; /* Don't call YYLEX any more */
1595
1596 YYDPRINTF ((stderr, "Now at end of input.\n"));
1597 }
1598 else
1599 {
1600 yychar1 = YYTRANSLATE (yychar);
1601
1602#if YYDEBUG
1603 /* We have to keep this `#if YYDEBUG', since we use variables
1604 which are defined only if `YYDEBUG' is set. */
1605 if (yydebug)
1606 {
1607 YYFPRINTF (stderr, "Next token is %d (%s",
1608 yychar, yytname[yychar1]);
1609 /* Give the individual parser a way to print the precise
1610 meaning of a token, for further debugging info. */
1611# ifdef YYPRINT
1612 YYPRINT (stderr, yychar, yylval);
1613# endif
1614 YYFPRINTF (stderr, ")\n");
1615 }
1616#endif
1617 }
1618
1619 yyn += yychar1;
1620 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1621 goto yydefault;
1622
1623 yyn = yytable[yyn];
1624
1625 /* yyn is what to do for this token type in this state.
1626 Negative => reduce, -yyn is rule number.
1627 Positive => shift, yyn is new state.
1628 New state is final state => don't bother to shift,
1629 just return success.
1630 0, or most negative number => error. */
1631
1632 if (yyn < 0)
1633 {
1634 if (yyn == YYFLAG)
1635 goto yyerrlab;
1636 yyn = -yyn;
1637 goto yyreduce;
1638 }
1639 else if (yyn == 0)
1640 goto yyerrlab;
1641
1642 if (yyn == YYFINAL)
1643 YYACCEPT;
1644
1645 /* Shift the lookahead token. */
1646 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
1647 yychar, yytname[yychar1]));
1648
1649 /* Discard the token being shifted unless it is eof. */
1650 if (yychar != YYEOF)
1651 yychar = YYEMPTY;
1652
1653 *++yyvsp = yylval;
1654#if YYLSP_NEEDED
1655 *++yylsp = yylloc;
1656#endif
1657
1658 /* Count tokens shifted since error; after three, turn off error
1659 status. */
1660 if (yyerrstatus)
1661 yyerrstatus--;
1662
1663 yystate = yyn;
1664 goto yynewstate;
1665
1666
1667/*-----------------------------------------------------------.
1668| yydefault -- do the default action for the current state. |
1669`-----------------------------------------------------------*/
1670yydefault:
1671 yyn = yydefact[yystate];
1672 if (yyn == 0)
1673 goto yyerrlab;
1674 goto yyreduce;
1675
1676
1677/*-----------------------------.
1678| yyreduce -- Do a reduction. |
1679`-----------------------------*/
1680yyreduce:
1681 /* yyn is the number of a rule to reduce with. */
1682 yylen = yyr2[yyn];
1683
1684 /* If YYLEN is nonzero, implement the default value of the action:
1685 `$$ = $1'.
1686
1687 Otherwise, the following line sets YYVAL to the semantic value of
1688 the lookahead token. This behavior is undocumented and Bison
1689 users should not rely upon it. Assigning to YYVAL
1690 unconditionally makes the parser a bit smaller, and it avoids a
1691 GCC warning that YYVAL may be used uninitialized. */
1692 yyval = yyvsp[1-yylen];
1693
1694#if YYLSP_NEEDED
1695 /* Similarly for the default location. Let the user run additional
1696 commands if for instance locations are ranges. */
1697 yyloc = yylsp[1-yylen];
1698 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1699#endif
1700
1701#if YYDEBUG
1702 /* We have to keep this `#if YYDEBUG', since we use variables which
1703 are defined only if `YYDEBUG' is set. */
1704 if (yydebug)
1705 {
1706 int yyi;
1707
1708 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
1709 yyn, yyrline[yyn]);
1710
1711 /* Print the symbols being reduced, and their result. */
1712 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
1713 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1714 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1715 }
1716#endif
1717
1718 switch (yyn) {
1719
1720case 6:
1721#line 173 "ldgram.y"
1722{ ldlex_defsym(); }
1723 break;
1724case 7:
1725#line 175 "ldgram.y"
1726{
1727 ldlex_popstate();
1728 lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree));
1729 }
1730 break;
1731case 8:
1732#line 183 "ldgram.y"
1733{
1734 ldlex_mri_script ();
1735 PUSH_ERROR (_("MRI style script"));
1736 }
1737 break;
1738case 9:
1739#line 188 "ldgram.y"
1740{
1741 ldlex_popstate ();
1742 mri_draw_tree ();
1743 POP_ERROR ();
1744 }
1745 break;
1746case 14:
1747#line 203 "ldgram.y"
1748{
1749 einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),yyvsp[0].name);
1750 }
1751 break;
1752case 15:
1753#line 206 "ldgram.y"
1754{
1755 config.map_filename = "-";
1756 }
1757 break;
1758case 18:
1759#line 212 "ldgram.y"
1760{ mri_public(yyvsp[-2].name, yyvsp[0].etree); }
1761 break;
1762case 19:
1763#line 214 "ldgram.y"
1764{ mri_public(yyvsp[-2].name, yyvsp[0].etree); }
1765 break;
1766case 20:
1767#line 216 "ldgram.y"
1768{ mri_public(yyvsp[-1].name, yyvsp[0].etree); }
1769 break;
1770case 21:
1771#line 218 "ldgram.y"
1772{ mri_format(yyvsp[0].name); }
1773 break;
1774case 22:
1775#line 220 "ldgram.y"
1776{ mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
1777 break;
1778case 23:
1779#line 222 "ldgram.y"
1780{ mri_output_section(yyvsp[-1].name, yyvsp[0].etree);}
1781 break;
1782case 24:
1783#line 224 "ldgram.y"
1784{ mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
1785 break;
1786case 25:
1787#line 226 "ldgram.y"
1788{ mri_align(yyvsp[-2].name,yyvsp[0].etree); }
1789 break;
1790case 26:
1791#line 228 "ldgram.y"
1792{ mri_align(yyvsp[-2].name,yyvsp[0].etree); }
1793 break;
1794case 27:
1795#line 230 "ldgram.y"
1796{ mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
1797 break;
1798case 28:
1799#line 232 "ldgram.y"
1800{ mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
1801 break;
1802case 31:
1803#line 236 "ldgram.y"
1804{ mri_name(yyvsp[0].name); }
1805 break;
1806case 32:
1807#line 238 "ldgram.y"
1808{ mri_alias(yyvsp[-2].name,yyvsp[0].name,0);}
1809 break;
1810case 33:
1811#line 240 "ldgram.y"
1812{ mri_alias (yyvsp[-2].name, 0, (int) yyvsp[0].bigint.integer); }
1813 break;
1814case 34:
1815#line 242 "ldgram.y"
1816{ mri_base(yyvsp[0].etree); }
1817 break;
1818case 35:
1819#line 244 "ldgram.y"
1820{ mri_truncate ((unsigned int) yyvsp[0].bigint.integer); }
1821 break;
1822case 38:
1823#line 248 "ldgram.y"
1824{ ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
1825 break;
1826case 39:
1827#line 250 "ldgram.y"
1828{ ldlex_popstate (); }
1829 break;
1830case 40:
1831#line 252 "ldgram.y"
1832{ lang_add_entry (yyvsp[0].name, FALSE); }
1833 break;
1834case 42:
1835#line 257 "ldgram.y"
1836{ mri_order(yyvsp[0].name); }
1837 break;
1838case 43:
1839#line 258 "ldgram.y"
1840{ mri_order(yyvsp[0].name); }
1841 break;
1842case 45:
1843#line 264 "ldgram.y"
1844{ mri_load(yyvsp[0].name); }
1845 break;
1846case 46:
1847#line 265 "ldgram.y"
1848{ mri_load(yyvsp[0].name); }
1849 break;
1850case 47:
1851#line 270 "ldgram.y"
1852{ mri_only_load(yyvsp[0].name); }
1853 break;
1854case 48:
1855#line 272 "ldgram.y"
1856{ mri_only_load(yyvsp[0].name); }
1857 break;
1858case 49:
1859#line 276 "ldgram.y"
1860{ yyval.name = NULL; }
1861 break;
1862case 52:
1863#line 283 "ldgram.y"
1864{ ldlang_add_undef (yyvsp[0].name); }
1865 break;
1866case 53:
1867#line 285 "ldgram.y"
1868{ ldlang_add_undef (yyvsp[0].name); }
1869 break;
1870case 54:
1871#line 287 "ldgram.y"
1872{ ldlang_add_undef (yyvsp[0].name); }
1873 break;
1874case 55:
1875#line 291 "ldgram.y"
1876{
1877 ldlex_both();
1878 }
1879 break;
1880case 56:
1881#line 295 "ldgram.y"
1882{
1883 ldlex_popstate();
1884 }
1885 break;
1886case 69:
1887#line 320 "ldgram.y"
1888{ lang_add_target(yyvsp[-1].name); }
1889 break;
1890case 70:
1891#line 322 "ldgram.y"
1892{ ldfile_add_library_path (yyvsp[-1].name, FALSE); }
1893 break;
1894case 71:
1895#line 324 "ldgram.y"
1896{ lang_add_output(yyvsp[-1].name, 1); }
1897 break;
1898case 72:
1899#line 326 "ldgram.y"
1900{ lang_add_output_format (yyvsp[-1].name, (char *) NULL,
1901 (char *) NULL, 1); }
1902 break;
1903case 73:
1904#line 329 "ldgram.y"
1905{ lang_add_output_format (yyvsp[-5].name, yyvsp[-3].name, yyvsp[-1].name, 1); }
1906 break;
1907case 74:
1908#line 331 "ldgram.y"
1909{ ldfile_set_output_arch(yyvsp[-1].name); }
1910 break;
1911case 75:
1912#line 333 "ldgram.y"
1913{ command_line.force_common_definition = TRUE ; }
1914 break;
1915case 76:
1916#line 335 "ldgram.y"
1917{ command_line.inhibit_common_definition = TRUE ; }
1918 break;
1919case 78:
1920#line 338 "ldgram.y"
1921{ lang_enter_group (); }
1922 break;
1923case 79:
1924#line 340 "ldgram.y"
1925{ lang_leave_group (); }
1926 break;
1927case 80:
1928#line 342 "ldgram.y"
1929{ lang_add_map(yyvsp[-1].name); }
1930 break;
1931case 81:
1932#line 344 "ldgram.y"
1933{ ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
1934 break;
1935case 82:
1936#line 346 "ldgram.y"
1937{ ldlex_popstate (); }
1938 break;
1939case 83:
1940#line 348 "ldgram.y"
1941{
1942 lang_add_nocrossref (yyvsp[-1].nocrossref);
1943 }
1944 break;
1945case 85:
1946#line 356 "ldgram.y"
1947{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
1948 (char *)NULL); }
1949 break;
1950case 86:
1951#line 359 "ldgram.y"
1952{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
1953 (char *)NULL); }
1954 break;
1955case 87:
1956#line 362 "ldgram.y"
1957{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
1958 (char *)NULL); }
1959 break;
1960case 88:
1961#line 365 "ldgram.y"
1962{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
1963 (char *)NULL); }
1964 break;
1965case 89:
1966#line 368 "ldgram.y"
1967{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
1968 (char *)NULL); }
1969 break;
1970case 90:
1971#line 371 "ldgram.y"
1972{ lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
1973 (char *)NULL); }
1974 break;
1975case 95:
1976#line 387 "ldgram.y"
1977{ lang_add_entry (yyvsp[-1].name, FALSE); }
1978 break;
1979case 97:
1980#line 395 "ldgram.y"
1981{
1982 yyval.cname = yyvsp[0].name;
1983 }
1984 break;
1985case 98:
1986#line 399 "ldgram.y"
1987{
1988 yyval.cname = "*";
1989 }
1990 break;
1991case 99:
1992#line 403 "ldgram.y"
1993{
1994 yyval.cname = "?";
1995 }
1996 break;
1997case 100:
1998#line 410 "ldgram.y"
1999{
2000 yyval.wildcard.name = yyvsp[0].cname;
2001 yyval.wildcard.sorted = FALSE;
2002 yyval.wildcard.exclude_name_list = NULL;
2003 }
2004 break;
2005case 101:
2006#line 416 "ldgram.y"
2007{
2008 yyval.wildcard.name = yyvsp[0].cname;
2009 yyval.wildcard.sorted = FALSE;
2010 yyval.wildcard.exclude_name_list = yyvsp[-2].name_list;
2011 }
2012 break;
2013case 102:
2014#line 422 "ldgram.y"
2015{
2016 yyval.wildcard.name = yyvsp[-1].cname;
2017 yyval.wildcard.sorted = TRUE;
2018 yyval.wildcard.exclude_name_list = NULL;
2019 }
2020 break;
2021case 103:
2022#line 428 "ldgram.y"
2023{
2024 yyval.wildcard.name = yyvsp[-1].cname;
2025 yyval.wildcard.sorted = TRUE;
2026 yyval.wildcard.exclude_name_list = yyvsp[-3].name_list;
2027 }
2028 break;
2029case 104:
2030#line 437 "ldgram.y"
2031{
2032 struct name_list *tmp;
2033 tmp = (struct name_list *) xmalloc (sizeof *tmp);
2034 tmp->name = yyvsp[0].cname;
2035 tmp->next = yyvsp[-1].name_list;
2036 yyval.name_list = tmp;
2037 }
2038 break;
2039case 105:
2040#line 446 "ldgram.y"
2041{
2042 struct name_list *tmp;
2043 tmp = (struct name_list *) xmalloc (sizeof *tmp);
2044 tmp->name = yyvsp[0].cname;
2045 tmp->next = NULL;
2046 yyval.name_list = tmp;
2047 }
2048 break;
2049case 106:
2050#line 457 "ldgram.y"
2051{
2052 struct wildcard_list *tmp;
2053 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
2054 tmp->next = yyvsp[-2].wildcard_list;
2055 tmp->spec = yyvsp[0].wildcard;
2056 yyval.wildcard_list = tmp;
2057 }
2058 break;
2059case 107:
2060#line 466 "ldgram.y"
2061{
2062 struct wildcard_list *tmp;
2063 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
2064 tmp->next = NULL;
2065 tmp->spec = yyvsp[0].wildcard;
2066 yyval.wildcard_list = tmp;
2067 }
2068 break;
2069case 108:
2070#line 477 "ldgram.y"
2071{
2072 struct wildcard_spec tmp;
2073 tmp.name = yyvsp[0].name;
2074 tmp.exclude_name_list = NULL;
2075 tmp.sorted = FALSE;
2076 lang_add_wild (&tmp, NULL, ldgram_had_keep);
2077 }
2078 break;
2079case 109:
2080#line 485 "ldgram.y"
2081{
2082 lang_add_wild (NULL, yyvsp[-1].wildcard_list, ldgram_had_keep);
2083 }
2084 break;
2085case 110:
2086#line 489 "ldgram.y"
2087{
2088 lang_add_wild (&yyvsp[-3].wildcard, yyvsp[-1].wildcard_list, ldgram_had_keep);
2089 }
2090 break;
2091case 112:
2092#line 497 "ldgram.y"
2093{ ldgram_had_keep = TRUE; }
2094 break;
2095case 113:
2096#line 499 "ldgram.y"
2097{ ldgram_had_keep = FALSE; }
2098 break;
2099case 115:
2100#line 505 "ldgram.y"
2101{
2102 lang_add_attribute(lang_object_symbols_statement_enum);
2103 }
2104 break;
2105case 117:
2106#line 510 "ldgram.y"
2107{
2108
2109 lang_add_attribute(lang_constructors_statement_enum);
2110 }
2111 break;
2112case 118:
2113#line 515 "ldgram.y"
2114{
2115 constructors_sorted = TRUE;
2116 lang_add_attribute (lang_constructors_statement_enum);
2117 }
2118 break;
2119case 120:
2120#line 521 "ldgram.y"
2121{
2122 lang_add_data ((int) yyvsp[-3].integer, yyvsp[-1].etree);
2123 }
2124 break;
2125case 121:
2126#line 526 "ldgram.y"
2127{
2128 lang_add_fill (yyvsp[-1].fill);
2129 }
2130 break;
2131case 126:
2132#line 543 "ldgram.y"
2133{ yyval.integer = yyvsp[0].token; }
2134 break;
2135case 127:
2136#line 545 "ldgram.y"
2137{ yyval.integer = yyvsp[0].token; }
2138 break;
2139case 128:
2140#line 547 "ldgram.y"
2141{ yyval.integer = yyvsp[0].token; }
2142 break;
2143case 129:
2144#line 549 "ldgram.y"
2145{ yyval.integer = yyvsp[0].token; }
2146 break;
2147case 130:
2148#line 551 "ldgram.y"
2149{ yyval.integer = yyvsp[0].token; }
2150 break;
2151case 131:
2152#line 556 "ldgram.y"
2153{
2154 yyval.fill = exp_get_fill (yyvsp[0].etree,
2155 0,
2156 "fill value",
2157 lang_first_phase_enum);
2158 }
2159 break;
2160case 132:
2161#line 566 "ldgram.y"
2162{ yyval.fill = yyvsp[0].fill; }
2163 break;
2164case 133:
2165#line 567 "ldgram.y"
2166{ yyval.fill = (fill_type *) 0; }
2167 break;
2168case 134:
2169#line 572 "ldgram.y"
2170{ yyval.token = '+'; }
2171 break;
2172case 135:
2173#line 574 "ldgram.y"
2174{ yyval.token = '-'; }
2175 break;
2176case 136:
2177#line 576 "ldgram.y"
2178{ yyval.token = '*'; }
2179 break;
2180case 137:
2181#line 578 "ldgram.y"
2182{ yyval.token = '/'; }
2183 break;
2184case 138:
2185#line 580 "ldgram.y"
2186{ yyval.token = LSHIFT; }
2187 break;
2188case 139:
2189#line 582 "ldgram.y"
2190{ yyval.token = RSHIFT; }
2191 break;
2192case 140:
2193#line 584 "ldgram.y"
2194{ yyval.token = '&'; }
2195 break;
2196case 141:
2197#line 586 "ldgram.y"
2198{ yyval.token = '|'; }
2199 break;
2200case 144:
2201#line 596 "ldgram.y"
2202{
2203 lang_add_assignment (exp_assop (yyvsp[-1].token, yyvsp[-2].name, yyvsp[0].etree));
2204 }
2205 break;
2206case 145:
2207#line 600 "ldgram.y"
2208{
2209 lang_add_assignment (exp_assop ('=', yyvsp[-2].name,
2210 exp_binop (yyvsp[-1].token,
2211 exp_nameop (NAME,
2212 yyvsp[-2].name),
2213 yyvsp[0].etree)));
2214 }
2215 break;
2216case 146:
2217#line 608 "ldgram.y"
2218{
2219 lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree));
2220 }
2221 break;
2222case 153:
2223#line 630 "ldgram.y"
2224{ region = lang_memory_region_lookup(yyvsp[0].name); }
2225 break;
2226case 154:
2227#line 633 "ldgram.y"
2228{}
2229 break;
2230case 155:
2231#line 638 "ldgram.y"
2232{ region->current =
2233 region->origin =
2234 exp_get_vma(yyvsp[0].etree, 0L,"origin", lang_first_phase_enum);
2235}
2236 break;
2237case 156:
2238#line 646 "ldgram.y"
2239{ region->length = exp_get_vma(yyvsp[0].etree,
2240 ~((bfd_vma)0),
2241 "length",
2242 lang_first_phase_enum);
2243 }
2244 break;
2245case 157:
2246#line 655 "ldgram.y"
2247{ /* dummy action to avoid bison 1.25 error message */ }
2248 break;
2249case 161:
2250#line 666 "ldgram.y"
2251{ lang_set_flags (region, yyvsp[0].name, 0); }
2252 break;
2253case 162:
2254#line 668 "ldgram.y"
2255{ lang_set_flags (region, yyvsp[0].name, 1); }
2256 break;
2257case 163:
2258#line 673 "ldgram.y"
2259{ lang_startup(yyvsp[-1].name); }
2260 break;
2261case 165:
2262#line 679 "ldgram.y"
2263{ ldemul_hll((char *)NULL); }
2264 break;
2265case 166:
2266#line 684 "ldgram.y"
2267{ ldemul_hll(yyvsp[0].name); }
2268 break;
2269case 167:
2270#line 686 "ldgram.y"
2271{ ldemul_hll(yyvsp[0].name); }
2272 break;
2273case 169:
2274#line 694 "ldgram.y"
2275{ ldemul_syslib(yyvsp[0].name); }
2276 break;
2277case 171:
2278#line 700 "ldgram.y"
2279{ lang_float(TRUE); }
2280 break;
2281case 172:
2282#line 702 "ldgram.y"
2283{ lang_float(FALSE); }
2284 break;
2285case 173:
2286#line 707 "ldgram.y"
2287{
2288 yyval.nocrossref = NULL;
2289 }
2290 break;
2291case 174:
2292#line 711 "ldgram.y"
2293{
2294 struct lang_nocrossref *n;
2295
2296 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
2297 n->name = yyvsp[-1].name;
2298 n->next = yyvsp[0].nocrossref;
2299 yyval.nocrossref = n;
2300 }
2301 break;
2302case 175:
2303#line 720 "ldgram.y"
2304{
2305 struct lang_nocrossref *n;
2306
2307 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
2308 n->name = yyvsp[-2].name;
2309 n->next = yyvsp[0].nocrossref;
2310 yyval.nocrossref = n;
2311 }
2312 break;
2313case 176:
2314#line 730 "ldgram.y"
2315{ ldlex_expression(); }
2316 break;
2317case 177:
2318#line 732 "ldgram.y"
2319{ ldlex_popstate(); yyval.etree=yyvsp[0].etree;}
2320 break;
2321case 178:
2322#line 737 "ldgram.y"
2323{ yyval.etree = exp_unop('-', yyvsp[0].etree); }
2324 break;
2325case 179:
2326#line 739 "ldgram.y"
2327{ yyval.etree = yyvsp[-1].etree; }
2328 break;
2329case 180:
2330#line 741 "ldgram.y"
2331{ yyval.etree = exp_unop((int) yyvsp[-3].integer,yyvsp[-1].etree); }
2332 break;
2333case 181:
2334#line 743 "ldgram.y"
2335{ yyval.etree = exp_unop('!', yyvsp[0].etree); }
2336 break;
2337case 182:
2338#line 745 "ldgram.y"
2339{ yyval.etree = yyvsp[0].etree; }
2340 break;
2341case 183:
2342#line 747 "ldgram.y"
2343{ yyval.etree = exp_unop('~', yyvsp[0].etree);}
2344 break;
2345case 184:
2346#line 750 "ldgram.y"
2347{ yyval.etree = exp_binop('*', yyvsp[-2].etree, yyvsp[0].etree); }
2348 break;
2349case 185:
2350#line 752 "ldgram.y"
2351{ yyval.etree = exp_binop('/', yyvsp[-2].etree, yyvsp[0].etree); }
2352 break;
2353case 186:
2354#line 754 "ldgram.y"
2355{ yyval.etree = exp_binop('%', yyvsp[-2].etree, yyvsp[0].etree); }
2356 break;
2357case 187:
2358#line 756 "ldgram.y"
2359{ yyval.etree = exp_binop('+', yyvsp[-2].etree, yyvsp[0].etree); }
2360 break;
2361case 188:
2362#line 758 "ldgram.y"
2363{ yyval.etree = exp_binop('-' , yyvsp[-2].etree, yyvsp[0].etree); }
2364 break;
2365case 189:
2366#line 760 "ldgram.y"
2367{ yyval.etree = exp_binop(LSHIFT , yyvsp[-2].etree, yyvsp[0].etree); }
2368 break;
2369case 190:
2370#line 762 "ldgram.y"
2371{ yyval.etree = exp_binop(RSHIFT , yyvsp[-2].etree, yyvsp[0].etree); }
2372 break;
2373case 191:
2374#line 764 "ldgram.y"
2375{ yyval.etree = exp_binop(EQ , yyvsp[-2].etree, yyvsp[0].etree); }
2376 break;
2377case 192:
2378#line 766 "ldgram.y"
2379{ yyval.etree = exp_binop(NE , yyvsp[-2].etree, yyvsp[0].etree); }
2380 break;
2381case 193:
2382#line 768 "ldgram.y"
2383{ yyval.etree = exp_binop(LE , yyvsp[-2].etree, yyvsp[0].etree); }
2384 break;
2385case 194:
2386#line 770 "ldgram.y"
2387{ yyval.etree = exp_binop(GE , yyvsp[-2].etree, yyvsp[0].etree); }
2388 break;
2389case 195:
2390#line 772 "ldgram.y"
2391{ yyval.etree = exp_binop('<' , yyvsp[-2].etree, yyvsp[0].etree); }
2392 break;
2393case 196:
2394#line 774 "ldgram.y"
2395{ yyval.etree = exp_binop('>' , yyvsp[-2].etree, yyvsp[0].etree); }
2396 break;
2397case 197:
2398#line 776 "ldgram.y"
2399{ yyval.etree = exp_binop('&' , yyvsp[-2].etree, yyvsp[0].etree); }
2400 break;
2401case 198:
2402#line 778 "ldgram.y"
2403{ yyval.etree = exp_binop('^' , yyvsp[-2].etree, yyvsp[0].etree); }
2404 break;
2405case 199:
2406#line 780 "ldgram.y"
2407{ yyval.etree = exp_binop('|' , yyvsp[-2].etree, yyvsp[0].etree); }
2408 break;
2409case 200:
2410#line 782 "ldgram.y"
2411{ yyval.etree = exp_trinop('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); }
2412 break;
2413case 201:
2414#line 784 "ldgram.y"
2415{ yyval.etree = exp_binop(ANDAND , yyvsp[-2].etree, yyvsp[0].etree); }
2416 break;
2417case 202:
2418#line 786 "ldgram.y"
2419{ yyval.etree = exp_binop(OROR , yyvsp[-2].etree, yyvsp[0].etree); }
2420 break;
2421case 203:
2422#line 788 "ldgram.y"
2423{ yyval.etree = exp_nameop(DEFINED, yyvsp[-1].name); }
2424 break;
2425case 204:
2426#line 790 "ldgram.y"
2427{ yyval.etree = exp_bigintop (yyvsp[0].bigint.integer, yyvsp[0].bigint.str); }
2428 break;
2429case 205:
2430#line 792 "ldgram.y"
2431{ yyval.etree = exp_nameop(SIZEOF_HEADERS,0); }
2432 break;
2433case 206:
2434#line 795 "ldgram.y"
2435{ yyval.etree = exp_nameop(SIZEOF,yyvsp[-1].name); }
2436 break;
2437case 207:
2438#line 797 "ldgram.y"
2439{ yyval.etree = exp_nameop(ADDR,yyvsp[-1].name); }
2440 break;
2441case 208:
2442#line 799 "ldgram.y"
2443{ yyval.etree = exp_nameop(LOADADDR,yyvsp[-1].name); }
2444 break;
2445case 209:
2446#line 801 "ldgram.y"
2447{ yyval.etree = exp_unop(ABSOLUTE, yyvsp[-1].etree); }
2448 break;
2449case 210:
2450#line 803 "ldgram.y"
2451{ yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); }
2452 break;
2453case 211:
2454#line 805 "ldgram.y"
2455{ yyval.etree = exp_binop (DATA_SEGMENT_ALIGN, yyvsp[-3].etree, yyvsp[-1].etree); }
2456 break;
2457case 212:
2458#line 807 "ldgram.y"
2459{ yyval.etree = exp_unop(DATA_SEGMENT_END, yyvsp[-1].etree); }
2460 break;
2461case 213:
2462#line 809 "ldgram.y"
2463{ yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); }
2464 break;
2465case 214:
2466#line 811 "ldgram.y"
2467{ yyval.etree = exp_nameop(NAME,yyvsp[0].name); }
2468 break;
2469case 215:
2470#line 813 "ldgram.y"
2471{ yyval.etree = exp_binop (MAX_K, yyvsp[-3].etree, yyvsp[-1].etree ); }
2472 break;
2473case 216:
2474#line 815 "ldgram.y"
2475{ yyval.etree = exp_binop (MIN_K, yyvsp[-3].etree, yyvsp[-1].etree ); }
2476 break;
2477case 217:
2478#line 817 "ldgram.y"
2479{ yyval.etree = exp_assert (yyvsp[-3].etree, yyvsp[-1].name); }
2480 break;
2481case 218:
2482#line 822 "ldgram.y"
2483{ yyval.name = yyvsp[0].name; }
2484 break;
2485case 219:
2486#line 823 "ldgram.y"
2487{ yyval.name = 0; }
2488 break;
2489case 220:
2490#line 827 "ldgram.y"
2491{ yyval.etree = yyvsp[-1].etree; }
2492 break;
2493case 221:
2494#line 828 "ldgram.y"
2495{ yyval.etree = 0; }
2496 break;
2497case 222:
2498#line 831 "ldgram.y"
2499{ ldlex_expression(); }
2500 break;
2501case 223:
2502#line 833 "ldgram.y"
2503{ ldlex_popstate (); ldlex_script (); }
2504 break;
2505case 224:
2506#line 835 "ldgram.y"
2507{
2508 lang_enter_output_section_statement(yyvsp[-5].name, yyvsp[-3].etree,
2509 sectype,
2510 0, 0, 0, yyvsp[-2].etree);
2511 }
2512 break;
2513case 225:
2514#line 841 "ldgram.y"
2515{ ldlex_popstate (); ldlex_expression (); }
2516 break;
2517case 226:
2518#line 843 "ldgram.y"
2519{
2520 ldlex_popstate ();
2521 lang_leave_output_section_statement (yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
2522 }
2523 break;
2524case 227:
2525#line 848 "ldgram.y"
2526{}
2527 break;
2528case 228:
2529#line 850 "ldgram.y"
2530{ ldlex_expression (); }
2531 break;
2532case 229:
2533#line 852 "ldgram.y"
2534{ ldlex_popstate (); ldlex_script (); }
2535 break;
2536case 230:
2537#line 854 "ldgram.y"
2538{
2539 lang_enter_overlay (yyvsp[-4].etree);
2540 }
2541 break;
2542case 231:
2543#line 859 "ldgram.y"
2544{ ldlex_popstate (); ldlex_expression (); }
2545 break;
2546case 232:
2547#line 861 "ldgram.y"
2548{
2549 ldlex_popstate ();
2550 lang_leave_overlay (yyvsp[-10].etree, (int) yyvsp[-11].integer,
2551 yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
2552 }
2553 break;
2554case 234:
2555#line 871 "ldgram.y"
2556{ ldlex_expression (); }
2557 break;
2558case 235:
2559#line 873 "ldgram.y"
2560{
2561 ldlex_popstate ();
2562 lang_add_assignment (exp_assop ('=', ".", yyvsp[0].etree));
2563 }
2564 break;
2565case 237:
2566#line 881 "ldgram.y"
2567{ sectype = noload_section; }
2568 break;
2569case 238:
2570#line 882 "ldgram.y"
2571{ sectype = dsect_section; }
2572 break;
2573case 239:
2574#line 883 "ldgram.y"
2575{ sectype = copy_section; }
2576 break;
2577case 240:
2578#line 884 "ldgram.y"
2579{ sectype = info_section; }
2580 break;
2581case 241:
2582#line 885 "ldgram.y"
2583{ sectype = overlay_section; }
2584 break;
2585case 243:
2586#line 890 "ldgram.y"
2587{ sectype = normal_section; }
2588 break;
2589case 244:
2590#line 891 "ldgram.y"
2591{ sectype = normal_section; }
2592 break;
2593case 245:
2594#line 895 "ldgram.y"
2595{ yyval.etree = yyvsp[-2].etree; }
2596 break;
2597case 246:
2598#line 896 "ldgram.y"
2599{ yyval.etree = (etree_type *)NULL; }
2600 break;
2601case 247:
2602#line 901 "ldgram.y"
2603{ yyval.etree = yyvsp[-3].etree; }
2604 break;
2605case 248:
2606#line 903 "ldgram.y"
2607{ yyval.etree = yyvsp[-7].etree; }
2608 break;
2609case 249:
2610#line 907 "ldgram.y"
2611{ yyval.etree = yyvsp[-1].etree; }
2612 break;
2613case 250:
2614#line 908 "ldgram.y"
2615{ yyval.etree = (etree_type *) NULL; }
2616 break;
2617case 251:
2618#line 913 "ldgram.y"
2619{ yyval.integer = 0; }
2620 break;
2621case 252:
2622#line 915 "ldgram.y"
2623{ yyval.integer = 1; }
2624 break;
2625case 253:
2626#line 920 "ldgram.y"
2627{ yyval.name = yyvsp[0].name; }
2628 break;
2629case 254:
2630#line 921 "ldgram.y"
2631{ yyval.name = "*default*"; }
2632 break;
2633case 255:
2634#line 926 "ldgram.y"
2635{
2636 yyval.section_phdr = NULL;
2637 }
2638 break;
2639case 256:
2640#line 930 "ldgram.y"
2641{
2642 struct lang_output_section_phdr_list *n;
2643
2644 n = ((struct lang_output_section_phdr_list *)
2645 xmalloc (sizeof *n));
2646 n->name = yyvsp[0].name;
2647 n->used = FALSE;
2648 n->next = yyvsp[-2].section_phdr;
2649 yyval.section_phdr = n;
2650 }
2651 break;
2652case 258:
2653#line 946 "ldgram.y"
2654{
2655 ldlex_script ();
2656 lang_enter_overlay_section (yyvsp[0].name);
2657 }
2658 break;
2659case 259:
2660#line 951 "ldgram.y"
2661{ ldlex_popstate (); ldlex_expression (); }
2662 break;
2663case 260:
2664#line 953 "ldgram.y"
2665{
2666 ldlex_popstate ();
2667 lang_leave_overlay_section (yyvsp[0].fill, yyvsp[-1].section_phdr);
2668 }
2669 break;
2670case 265:
2671#line 970 "ldgram.y"
2672{ ldlex_expression (); }
2673 break;
2674case 266:
2675#line 971 "ldgram.y"
2676{ ldlex_popstate (); }
2677 break;
2678case 267:
2679#line 973 "ldgram.y"
2680{
2681 lang_new_phdr (yyvsp[-5].name, yyvsp[-3].etree, yyvsp[-2].phdr.filehdr, yyvsp[-2].phdr.phdrs, yyvsp[-2].phdr.at,
2682 yyvsp[-2].phdr.flags);
2683 }
2684 break;
2685case 268:
2686#line 981 "ldgram.y"
2687{
2688 yyval.etree = yyvsp[0].etree;
2689
2690 if (yyvsp[0].etree->type.node_class == etree_name
2691 && yyvsp[0].etree->type.node_code == NAME)
2692 {
2693 const char *s;
2694 unsigned int i;
2695 static const char * const phdr_types[] =
2696 {
2697 "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
2698 "PT_INTERP", "PT_NOTE", "PT_SHLIB",
2699 "PT_PHDR", "PT_TLS"
2700 };
2701
2702 s = yyvsp[0].etree->name.name;
2703 for (i = 0;
2704 i < sizeof phdr_types / sizeof phdr_types[0];
2705 i++)
2706 if (strcmp (s, phdr_types[i]) == 0)
2707 {
2708 yyval.etree = exp_intop (i);
2709 break;
2710 }
2711 if (i == sizeof phdr_types / sizeof phdr_types[0])
2712 {
2713 if (strcmp (s, "PT_GNU_EH_FRAME") == 0)
2714 yyval.etree = exp_intop (0x6474e550);
2715 else
2716 {
2717 einfo (_("\
2718%X%P:%S: unknown phdr type `%s' (try integer literal)\n"),
2719 s);
2720 yyval.etree = exp_intop (0);
2721 }
2722 }
2723 }
2724 }
2725 break;
2726case 269:
2727#line 1023 "ldgram.y"
2728{
2729 memset (&yyval.phdr, 0, sizeof (struct phdr_info));
2730 }
2731 break;
2732case 270:
2733#line 1027 "ldgram.y"
2734{
2735 yyval.phdr = yyvsp[0].phdr;
2736 if (strcmp (yyvsp[-2].name, "FILEHDR") == 0 && yyvsp[-1].etree == NULL)
2737 yyval.phdr.filehdr = TRUE;
2738 else if (strcmp (yyvsp[-2].name, "PHDRS") == 0 && yyvsp[-1].etree == NULL)
2739 yyval.phdr.phdrs = TRUE;
2740 else if (strcmp (yyvsp[-2].name, "FLAGS") == 0 && yyvsp[-1].etree != NULL)
2741 yyval.phdr.flags = yyvsp[-1].etree;
2742 else
2743 einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"), yyvsp[-2].name);
2744 }
2745 break;
2746case 271:
2747#line 1039 "ldgram.y"
2748{
2749 yyval.phdr = yyvsp[0].phdr;
2750 yyval.phdr.at = yyvsp[-2].etree;
2751 }
2752 break;
2753case 272:
2754#line 1047 "ldgram.y"
2755{
2756 yyval.etree = NULL;
2757 }
2758 break;
2759case 273:
2760#line 1051 "ldgram.y"
2761{
2762 yyval.etree = yyvsp[-1].etree;
2763 }
2764 break;
2765case 274:
2766#line 1059 "ldgram.y"
2767{
2768 ldlex_version_file ();
2769 PUSH_ERROR (_("VERSION script"));
2770 }
2771 break;
2772case 275:
2773#line 1064 "ldgram.y"
2774{
2775 ldlex_popstate ();
2776 POP_ERROR ();
2777 }
2778 break;
2779case 276:
2780#line 1073 "ldgram.y"
2781{
2782 ldlex_version_script ();
2783 }
2784 break;
2785case 277:
2786#line 1077 "ldgram.y"
2787{
2788 ldlex_popstate ();
2789 }
2790 break;
2791case 280:
2792#line 1089 "ldgram.y"
2793{
2794 lang_register_vers_node (NULL, yyvsp[-2].versnode, NULL);
2795 }
2796 break;
2797case 281:
2798#line 1093 "ldgram.y"
2799{
2800 lang_register_vers_node (yyvsp[-4].name, yyvsp[-2].versnode, NULL);
2801 }
2802 break;
2803case 282:
2804#line 1097 "ldgram.y"
2805{
2806 lang_register_vers_node (yyvsp[-5].name, yyvsp[-3].versnode, yyvsp[-1].deflist);
2807 }
2808 break;
2809case 283:
2810#line 1104 "ldgram.y"
2811{
2812 yyval.deflist = lang_add_vers_depend (NULL, yyvsp[0].name);
2813 }
2814 break;
2815case 284:
2816#line 1108 "ldgram.y"
2817{
2818 yyval.deflist = lang_add_vers_depend (yyvsp[-1].deflist, yyvsp[0].name);
2819 }
2820 break;
2821case 285:
2822#line 1115 "ldgram.y"
2823{
2824 yyval.versnode = lang_new_vers_node (NULL, NULL);
2825 }
2826 break;
2827case 286:
2828#line 1119 "ldgram.y"
2829{
2830 yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL);
2831 }
2832 break;
2833case 287:
2834#line 1123 "ldgram.y"
2835{
2836 yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL);
2837 }
2838 break;
2839case 288:
2840#line 1127 "ldgram.y"
2841{
2842 yyval.versnode = lang_new_vers_node (NULL, yyvsp[-1].versyms);
2843 }
2844 break;
2845case 289:
2846#line 1131 "ldgram.y"
2847{
2848 yyval.versnode = lang_new_vers_node (yyvsp[-5].versyms, yyvsp[-1].versyms);
2849 }
2850 break;
2851case 290:
2852#line 1138 "ldgram.y"
2853{
2854 yyval.versyms = lang_new_vers_pattern (NULL, yyvsp[0].name, ldgram_vers_current_lang);
2855 }
2856 break;
2857case 291:
2858#line 1142 "ldgram.y"
2859{
2860 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, yyvsp[0].name, ldgram_vers_current_lang);
2861 }
2862 break;
2863case 292:
2864#line 1146 "ldgram.y"
2865{
2866 yyval.name = ldgram_vers_current_lang;
2867 ldgram_vers_current_lang = yyvsp[-1].name;
2868 }
2869 break;
2870case 293:
2871#line 1151 "ldgram.y"
2872{
2873 yyval.versyms = yyvsp[-2].versyms;
2874 ldgram_vers_current_lang = yyvsp[-3].name;
2875 }
2876 break;
2877case 294:
2878#line 1156 "ldgram.y"
2879{
2880 yyval.name = ldgram_vers_current_lang;
2881 ldgram_vers_current_lang = yyvsp[-1].name;
2882 }
2883 break;
2884case 295:
2885#line 1161 "ldgram.y"
2886{
2887 yyval.versyms = yyvsp[-2].versyms;
2888 ldgram_vers_current_lang = yyvsp[-3].name;
2889 }
2890 break;
2891}
2892
2893#line 705 "/usr/share/bison-1.35/bison.simple"
2894
2895
2896
2897 yyvsp -= yylen;
2898 yyssp -= yylen;
2899#if YYLSP_NEEDED
2900 yylsp -= yylen;
2901#endif
2902
2903#if YYDEBUG
2904 if (yydebug)
2905 {
2906 short *yyssp1 = yyss - 1;
2907 YYFPRINTF (stderr, "state stack now");
2908 while (yyssp1 != yyssp)
2909 YYFPRINTF (stderr, " %d", *++yyssp1);
2910 YYFPRINTF (stderr, "\n");
2911 }
2912#endif
2913
2914 *++yyvsp = yyval;
2915#if YYLSP_NEEDED
2916 *++yylsp = yyloc;
2917#endif
2918
2919 /* Now `shift' the result of the reduction. Determine what state
2920 that goes to, based on the state we popped back to and the rule
2921 number reduced by. */
2922
2923 yyn = yyr1[yyn];
2924
2925 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
2926 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2927 yystate = yytable[yystate];
2928 else
2929 yystate = yydefgoto[yyn - YYNTBASE];
2930
2931 goto yynewstate;
2932
2933
2934/*------------------------------------.
2935| yyerrlab -- here on detecting error |
2936`------------------------------------*/
2937yyerrlab:
2938 /* If not already recovering from an error, report this error. */
2939 if (!yyerrstatus)
2940 {
2941 ++yynerrs;
2942
2943#ifdef YYERROR_VERBOSE
2944 yyn = yypact[yystate];
2945
2946 if (yyn > YYFLAG && yyn < YYLAST)
2947 {
2948 YYSIZE_T yysize = 0;
2949 char *yymsg;
2950 int yyx, yycount;
2951
2952 yycount = 0;
2953 /* Start YYX at -YYN if negative to avoid negative indexes in
2954 YYCHECK. */
2955 for (yyx = yyn < 0 ? -yyn : 0;
2956 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2957 if (yycheck[yyx + yyn] == yyx)
2958 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2959 yysize += yystrlen ("parse error, unexpected ") + 1;
2960 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
2961 yymsg = (char *) YYSTACK_ALLOC (yysize);
2962 if (yymsg != 0)
2963 {
2964 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
2965 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
2966
2967 if (yycount < 5)
2968 {
2969 yycount = 0;
2970 for (yyx = yyn < 0 ? -yyn : 0;
2971 yyx < (int) (sizeof (yytname) / sizeof (char *));
2972 yyx++)
2973 if (yycheck[yyx + yyn] == yyx)
2974 {
2975 const char *yyq = ! yycount ? ", expecting " : " or ";
2976 yyp = yystpcpy (yyp, yyq);
2977 yyp = yystpcpy (yyp, yytname[yyx]);
2978 yycount++;
2979 }
2980 }
2981 yyerror (yymsg);
2982 YYSTACK_FREE (yymsg);
2983 }
2984 else
2985 yyerror ("parse error; also virtual memory exhausted");
2986 }
2987 else
2988#endif /* defined (YYERROR_VERBOSE) */
2989 yyerror ("parse error");
2990 }
2991 goto yyerrlab1;
2992
2993
2994/*--------------------------------------------------.
2995| yyerrlab1 -- error raised explicitly by an action |
2996`--------------------------------------------------*/
2997yyerrlab1:
2998 if (yyerrstatus == 3)
2999 {
3000 /* If just tried and failed to reuse lookahead token after an
3001 error, discard it. */
3002
3003 /* return failure if at end of input */
3004 if (yychar == YYEOF)
3005 YYABORT;
3006 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3007 yychar, yytname[yychar1]));
3008 yychar = YYEMPTY;
3009 }
3010
3011 /* Else will try to reuse lookahead token after shifting the error
3012 token. */
3013
3014 yyerrstatus = 3; /* Each real token shifted decrements this */
3015
3016 goto yyerrhandle;
3017
3018
3019/*-------------------------------------------------------------------.
3020| yyerrdefault -- current state does not do anything special for the |
3021| error token. |
3022`-------------------------------------------------------------------*/
3023yyerrdefault:
3024#if 0
3025 /* This is wrong; only states that explicitly want error tokens
3026 should shift them. */
3027
3028 /* If its default is to accept any token, ok. Otherwise pop it. */
3029 yyn = yydefact[yystate];
3030 if (yyn)
3031 goto yydefault;
3032#endif
3033
3034
3035/*---------------------------------------------------------------.
3036| yyerrpop -- pop the current state because it cannot handle the |
3037| error token |
3038`---------------------------------------------------------------*/
3039yyerrpop:
3040 if (yyssp == yyss)
3041 YYABORT;
3042 yyvsp--;
3043 yystate = *--yyssp;
3044#if YYLSP_NEEDED
3045 yylsp--;
3046#endif
3047
3048#if YYDEBUG
3049 if (yydebug)
3050 {
3051 short *yyssp1 = yyss - 1;
3052 YYFPRINTF (stderr, "Error: state stack now");
3053 while (yyssp1 != yyssp)
3054 YYFPRINTF (stderr, " %d", *++yyssp1);
3055 YYFPRINTF (stderr, "\n");
3056 }
3057#endif
3058
3059/*--------------.
3060| yyerrhandle. |
3061`--------------*/
3062yyerrhandle:
3063 yyn = yypact[yystate];
3064 if (yyn == YYFLAG)
3065 goto yyerrdefault;
3066
3067 yyn += YYTERROR;
3068 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3069 goto yyerrdefault;
3070
3071 yyn = yytable[yyn];
3072 if (yyn < 0)
3073 {
3074 if (yyn == YYFLAG)
3075 goto yyerrpop;
3076 yyn = -yyn;
3077 goto yyreduce;
3078 }
3079 else if (yyn == 0)
3080 goto yyerrpop;
3081
3082 if (yyn == YYFINAL)
3083 YYACCEPT;
3084
3085 YYDPRINTF ((stderr, "Shifting error token, "));
3086
3087 *++yyvsp = yylval;
3088#if YYLSP_NEEDED
3089 *++yylsp = yylloc;
3090#endif
3091
3092 yystate = yyn;
3093 goto yynewstate;
3094
3095
3096/*-------------------------------------.
3097| yyacceptlab -- YYACCEPT comes here. |
3098`-------------------------------------*/
3099yyacceptlab:
3100 yyresult = 0;
3101 goto yyreturn;
3102
3103/*-----------------------------------.
3104| yyabortlab -- YYABORT comes here. |
3105`-----------------------------------*/
3106yyabortlab:
3107 yyresult = 1;
3108 goto yyreturn;
3109
3110/*---------------------------------------------.
3111| yyoverflowab -- parser overflow comes here. |
3112`---------------------------------------------*/
3113yyoverflowlab:
3114 yyerror ("parser stack overflow");
3115 yyresult = 2;
3116 /* Fall through. */
3117
3118yyreturn:
3119#ifndef yyoverflow
3120 if (yyss != yyssa)
3121 YYSTACK_FREE (yyss);
3122#endif
3123 return yyresult;
3124}
3125#line 1172 "ldgram.y"
3126
3127void
3128yyerror(arg)
3129 const char *arg;
3130{
3131 if (ldfile_assumed_script)
3132 einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
3133 ldfile_input_filename);
3134 if (error_index > 0 && error_index < ERROR_NAME_MAX)
3135 einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]);
3136 else
3137 einfo ("%P%F:%S: %s\n", arg);
3138}
Note: See TracBrowser for help on using the repository browser.