source: trunk/src/binutils/ld/ldgram.c@ 521

Last change on this file since 521 was 10, checked in by bird, 22 years ago

Initial revision

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