1 /* A Bison parser, made from ldgram.y
4 #define YYBISON 1 /* Identify Bison output. */
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
47 # define DEFSYMEND 298
55 # define SEARCH_DIR 306
69 # define NOCROSSREFS 320
73 # define CREATE_OBJECT_SYMBOLS 324
77 # define CONSTRUCTORS 328
98 # define INPUT_SCRIPT 349
99 # define INPUT_MRI_SCRIPT 350
100 # define INPUT_DEFSYM 351
104 # define VERS_TAG 355
105 # define VERS_IDENTIFIER 356
108 # define VERSIONK 359
109 # define INPUT_VERSION_SCRIPT 360
111 # define EXCLUDE_FILE 362
119 #define DONTDECLARE_MALLOC
140 static enum section_type sectype
;
142 lang_memory_region_type
*region
;
144 bfd_boolean ldgram_want_filename
= TRUE
;
145 FILE *saved_script_handle
= NULL
;
146 bfd_boolean force_make_executable
= FALSE
;
148 bfd_boolean ldgram_in_script
= FALSE
;
149 bfd_boolean ldgram_had_equals
= FALSE
;
150 bfd_boolean ldgram_had_keep
= FALSE
;
151 char *ldgram_vers_current_lang
= NULL
;
153 #define ERROR_NAME_MAX 20
154 static char *error_names
[ERROR_NAME_MAX
];
155 static int error_index
;
156 #define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
157 #define POP_ERROR() error_index--;
171 struct wildcard_spec wildcard
;
172 struct wildcard_list
*wildcard_list
;
173 struct name_list
*name_list
;
175 union etree_union
*etree
;
180 union etree_union
*at
;
181 union etree_union
*flags
;
183 struct lang_nocrossref
*nocrossref
;
184 struct lang_output_section_phdr_list
*section_phdr
;
185 struct bfd_elf_version_deps
*deflist
;
186 struct bfd_elf_version_expr
*versyms
;
187 struct bfd_elf_version_tree
*versnode
;
189 # define YYSTYPE yystype
190 # define YYSTYPE_IS_TRIVIAL 1
199 #define YYFLAG -32768
202 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
203 #define YYTRANSLATE(x) ((unsigned)(x) <= 362 ? yytranslate[x] : 240)
205 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
206 static const short yytranslate
[] =
208 0, 2, 2, 2, 2, 2, 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, 130, 2, 2, 2, 34, 21, 2,
212 37, 127, 32, 30, 125, 31, 2, 33, 2, 2,
213 2, 2, 2, 2, 2, 2, 2, 2, 16, 126,
214 24, 10, 25, 15, 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, 128, 2, 129, 20, 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, 51, 19, 52, 131, 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, 2, 2, 2, 2,
233 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
234 6, 7, 8, 9, 11, 12, 13, 14, 17, 18,
235 22, 23, 26, 27, 28, 29, 35, 36, 38, 39,
236 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
237 50, 53, 54, 55, 56, 57, 58, 59, 60, 61,
238 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
239 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
240 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
241 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
242 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
243 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
248 static const short yyprhs
[] =
250 0, 0, 3, 6, 9, 12, 14, 15, 20, 21,
251 24, 28, 29, 32, 37, 39, 41, 44, 46, 51,
252 56, 60, 63, 68, 72, 77, 82, 87, 92, 97,
253 100, 103, 106, 111, 116, 119, 122, 125, 128, 129,
254 135, 138, 139, 143, 146, 147, 149, 153, 155, 159,
255 160, 162, 166, 168, 171, 175, 176, 179, 182, 183,
256 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
257 208, 213, 218, 223, 232, 237, 239, 241, 246, 247,
258 253, 258, 259, 265, 270, 275, 277, 281, 284, 286,
259 290, 293, 298, 301, 304, 305, 310, 313, 314, 322,
260 324, 326, 328, 330, 336, 341, 350, 353, 355, 359,
261 361, 363, 367, 372, 374, 375, 381, 384, 386, 388,
262 390, 395, 397, 402, 407, 410, 412, 413, 415, 417,
263 419, 421, 423, 425, 427, 430, 431, 433, 435, 437,
264 439, 441, 443, 445, 447, 449, 451, 455, 459, 466,
265 468, 469, 475, 478, 482, 483, 484, 492, 496, 500,
266 501, 505, 507, 510, 512, 515, 520, 525, 529, 533,
267 535, 540, 544, 545, 547, 549, 550, 553, 557, 558,
268 561, 564, 568, 573, 576, 579, 582, 586, 590, 594,
269 598, 602, 606, 610, 614, 618, 622, 626, 630, 634,
270 638, 642, 646, 652, 656, 660, 665, 667, 669, 674,
271 679, 684, 689, 694, 701, 708, 713, 718, 720, 727,
272 734, 741, 745, 746, 751, 752, 757, 758, 759, 760,
273 761, 762, 763, 781, 782, 783, 784, 785, 786, 805,
274 806, 807, 815, 817, 819, 821, 823, 825, 829, 830,
275 833, 837, 840, 847, 858, 861, 863, 864, 866, 869,
276 870, 871, 875, 876, 877, 878, 879, 891, 896, 897,
277 900, 901, 902, 909, 911, 912, 916, 922, 923, 927,
278 928, 931, 932, 938, 940, 943, 948, 954, 961, 963,
279 966, 967, 970, 975, 980, 989, 991, 995, 996, 1006,
282 static const short yyrhs
[] =
284 111, 146, 0, 112, 136, 0, 122, 228, 0, 113,
285 134, 0, 4, 0, 0, 135, 4, 10, 192, 0,
286 0, 137, 138, 0, 138, 139, 100, 0, 0, 95,
287 192, 0, 95, 192, 125, 192, 0, 4, 0, 96,
288 0, 102, 141, 0, 101, 0, 106, 4, 10, 192,
289 0, 106, 4, 125, 192, 0, 106, 4, 192, 0,
290 105, 4, 0, 97, 4, 125, 192, 0, 97, 4,
291 192, 0, 97, 4, 10, 192, 0, 38, 4, 10,
292 192, 0, 38, 4, 125, 192, 0, 91, 4, 10,
293 192, 0, 91, 4, 125, 192, 0, 98, 143, 0,
294 99, 142, 0, 103, 4, 0, 108, 4, 125, 4,
295 0, 108, 4, 125, 3, 0, 107, 192, 0, 109,
296 3, 0, 114, 144, 0, 115, 145, 0, 0, 58,
297 133, 140, 138, 36, 0, 116, 4, 0, 0, 141,
298 125, 4, 0, 141, 4, 0, 0, 4, 0, 142,
299 125, 4, 0, 4, 0, 143, 125, 4, 0, 0,
300 4, 0, 144, 125, 4, 0, 4, 0, 145, 4,
301 0, 145, 125, 4, 0, 0, 147, 148, 0, 148,
302 149, 0, 0, 174, 0, 153, 0, 220, 0, 183,
303 0, 184, 0, 186, 0, 188, 0, 155, 0, 230,
304 0, 126, 0, 67, 37, 4, 127, 0, 68, 37,
305 133, 127, 0, 89, 37, 133, 127, 0, 54, 37,
306 4, 127, 0, 54, 37, 4, 125, 4, 125, 4,
307 127, 0, 56, 37, 4, 127, 0, 55, 0, 57,
308 0, 87, 37, 152, 127, 0, 0, 88, 150, 37,
309 152, 127, 0, 69, 37, 133, 127, 0, 0, 58,
310 133, 151, 148, 36, 0, 82, 37, 189, 127, 0,
311 115, 37, 145, 127, 0, 4, 0, 152, 125, 4,
312 0, 152, 4, 0, 5, 0, 152, 125, 5, 0,
313 152, 5, 0, 46, 51, 154, 52, 0, 154, 196,
314 0, 154, 155, 0, 0, 70, 37, 4, 127, 0,
315 172, 171, 0, 0, 104, 156, 37, 192, 125, 4,
316 127, 0, 4, 0, 32, 0, 15, 0, 157, 0,
317 124, 37, 159, 127, 157, 0, 48, 37, 157, 127,
318 0, 48, 37, 124, 37, 159, 127, 157, 127, 0,
319 159, 157, 0, 157, 0, 160, 173, 158, 0, 158,
320 0, 4, 0, 128, 160, 129, 0, 158, 37, 160,
321 127, 0, 161, 0, 0, 123, 37, 163, 161, 127,
322 0, 172, 171, 0, 86, 0, 126, 0, 90, 0,
323 48, 37, 90, 127, 0, 162, 0, 167, 37, 190,
324 127, 0, 84, 37, 168, 127, 0, 165, 164, 0,
325 164, 0, 0, 165, 0, 41, 0, 42, 0, 43,
326 0, 44, 0, 45, 0, 190, 0, 10, 168, 0,
327 0, 6, 0, 7, 0, 8, 0, 9, 0, 11,
328 0, 12, 0, 13, 0, 14, 0, 126, 0, 125,
329 0, 4, 10, 190, 0, 4, 170, 190, 0, 94,
330 37, 4, 10, 190, 127, 0, 125, 0, 0, 59,
331 51, 176, 175, 52, 0, 175, 176, 0, 175, 125,
332 176, 0, 0, 0, 4, 177, 180, 16, 178, 173,
333 179, 0, 83, 10, 190, 0, 85, 10, 190, 0,
334 0, 37, 181, 127, 0, 182, 0, 181, 182, 0,
335 4, 0, 130, 4, 0, 77, 37, 133, 127, 0,
336 78, 37, 185, 127, 0, 78, 37, 127, 0, 185,
337 173, 133, 0, 133, 0, 79, 37, 187, 127, 0,
338 187, 173, 133, 0, 0, 80, 0, 81, 0, 0,
339 4, 189, 0, 4, 125, 189, 0, 0, 191, 192,
340 0, 31, 192, 0, 37, 192, 127, 0, 71, 37,
341 192, 127, 0, 130, 192, 0, 30, 192, 0, 131,
342 192, 0, 192, 32, 192, 0, 192, 33, 192, 0,
343 192, 34, 192, 0, 192, 30, 192, 0, 192, 31,
344 192, 0, 192, 28, 192, 0, 192, 29, 192, 0,
345 192, 22, 192, 0, 192, 23, 192, 0, 192, 26,
346 192, 0, 192, 27, 192, 0, 192, 24, 192, 0,
347 192, 25, 192, 0, 192, 21, 192, 0, 192, 20,
348 192, 0, 192, 19, 192, 0, 192, 15, 192, 16,
349 192, 0, 192, 18, 192, 0, 192, 17, 192, 0,
350 66, 37, 4, 127, 0, 3, 0, 53, 0, 72,
351 37, 4, 127, 0, 73, 37, 4, 127, 0, 74,
352 37, 4, 127, 0, 98, 37, 192, 127, 0, 38,
353 37, 192, 127, 0, 38, 37, 192, 125, 192, 127,
354 0, 49, 37, 192, 125, 192, 127, 0, 50, 37,
355 192, 127, 0, 39, 37, 192, 127, 0, 4, 0,
356 75, 37, 192, 125, 192, 127, 0, 76, 37, 192,
357 125, 192, 127, 0, 104, 37, 192, 125, 4, 127,
358 0, 92, 25, 4, 0, 0, 92, 37, 192, 127,
359 0, 0, 93, 37, 192, 127, 0, 0, 0, 0,
360 0, 0, 0, 4, 197, 211, 194, 195, 198, 51,
361 199, 166, 52, 200, 214, 193, 215, 169, 201, 173,
362 0, 0, 0, 0, 0, 0, 65, 202, 212, 213,
363 194, 195, 203, 51, 204, 216, 52, 205, 214, 193,
364 215, 169, 206, 173, 0, 0, 0, 88, 207, 211,
365 208, 51, 154, 52, 0, 61, 0, 62, 0, 63,
366 0, 64, 0, 65, 0, 37, 209, 127, 0, 0,
367 37, 127, 0, 192, 210, 16, 0, 210, 16, 0,
368 40, 37, 192, 127, 210, 16, 0, 40, 37, 192,
369 127, 39, 37, 192, 127, 210, 16, 0, 192, 16,
370 0, 16, 0, 0, 82, 0, 25, 4, 0, 0,
371 0, 215, 16, 4, 0, 0, 0, 0, 0, 216,
372 4, 217, 51, 166, 52, 218, 215, 169, 219, 173,
373 0, 47, 51, 221, 52, 0, 0, 221, 222, 0,
374 0, 0, 4, 223, 225, 226, 224, 126, 0, 192,
375 0, 0, 4, 227, 226, 0, 92, 37, 192, 127,
376 226, 0, 0, 37, 192, 127, 0, 0, 229, 232,
377 0, 0, 231, 121, 51, 232, 52, 0, 233, 0,
378 232, 233, 0, 51, 235, 52, 126, 0, 117, 51,
379 235, 52, 126, 0, 117, 51, 235, 52, 234, 126,
380 0, 117, 0, 234, 117, 0, 0, 236, 126, 0,
381 119, 16, 236, 126, 0, 120, 16, 236, 126, 0,
382 119, 16, 236, 126, 120, 16, 236, 126, 0, 118,
383 0, 236, 126, 118, 0, 0, 236, 126, 115, 4,
384 51, 237, 236, 239, 52, 0, 0, 115, 4, 51,
385 238, 236, 239, 52, 0, 0, 126, 0
391 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
392 static const short yyrline
[] =
394 0, 161, 163, 164, 165, 169, 172, 172, 182, 182,
395 195, 197, 200, 202, 203, 206, 209, 210, 211, 213,
396 215, 217, 219, 221, 223, 225, 227, 229, 231, 233,
397 234, 235, 237, 239, 241, 243, 245, 246, 247, 247,
398 251, 253, 256, 258, 259, 262, 265, 268, 271, 275,
399 277, 278, 281, 284, 286, 290, 290, 301, 303, 308,
400 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
401 321, 323, 325, 328, 330, 332, 334, 336, 337, 337,
402 341, 343, 343, 347, 351, 354, 358, 361, 364, 367,
403 370, 375, 379, 381, 382, 385, 388, 389, 389, 396,
404 401, 405, 411, 418, 424, 430, 438, 447, 458, 467,
405 478, 487, 491, 497, 499, 499, 505, 507, 511, 512,
406 517, 522, 523, 528, 534, 536, 539, 541, 544, 547,
407 549, 551, 553, 557, 567, 570, 573, 576, 578, 580,
408 582, 584, 586, 588, 593, 593, 597, 602, 610, 617,
409 618, 621, 625, 627, 628, 632, 632, 639, 647, 656,
410 659, 662, 664, 667, 670, 674, 679, 681, 685, 688,
411 693, 695, 698, 701, 704, 708, 713, 722, 733, 733,
412 738, 741, 743, 745, 747, 749, 752, 754, 756, 758,
413 760, 762, 764, 766, 768, 770, 772, 774, 776, 778,
414 780, 782, 784, 786, 788, 790, 792, 794, 797, 799,
415 801, 803, 805, 807, 809, 811, 813, 815, 817, 819,
416 821, 826, 828, 831, 833, 836, 838, 841, 841, 841,
417 841, 841, 841, 860, 860, 860, 860, 860, 860, 878,
418 878, 878, 891, 893, 894, 895, 896, 899, 901, 902,
419 905, 907, 908, 913, 917, 919, 922, 925, 929, 932,
420 935, 940, 953, 955, 955, 955, 955, 971, 975, 977,
421 980, 980, 980, 990, 1034, 1039, 1051, 1058, 1063, 1071,
422 1071, 1085, 1085, 1095, 1097, 1100, 1105, 1109, 1115, 1120,
423 1126, 1131, 1135, 1139, 1143, 1149, 1154, 1158, 1158, 1168,
429 #if (YYDEBUG) || defined YYERROR_VERBOSE
431 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
432 static const char *const yytname
[] =
434 "$", "error", "$undefined.", "INT", "NAME", "LNAME", "PLUSEQ", "MINUSEQ",
435 "MULTEQ", "DIVEQ", "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ", "OREQ",
436 "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE", "'<'",
437 "'>'", "LE", "GE", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'",
438 "'%'", "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD",
439 "SQUAD", "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "SORT",
440 "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_END", "'{'", "'}'",
441 "SIZEOF_HEADERS", "OUTPUT_FORMAT", "FORCE_COMMON_ALLOCATION",
442 "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION", "INCLUDE", "MEMORY",
443 "DEFSYMEND", "NOLOAD", "DSECT", "COPY", "INFO", "OVERLAY", "DEFINED",
444 "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT", "SIZEOF", "ADDR",
445 "LOADADDR", "MAX_K", "MIN_K", "STARTUP", "HLL", "SYSLIB", "FLOAT",
446 "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL", "LENGTH",
447 "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", "CONSTRUCTORS",
448 "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE", "CHIP", "LIST", "SECT",
449 "ABSOLUTE", "LOAD", "NEWLINE", "ENDWORD", "ORDER", "NAMEWORD",
450 "ASSERT_K", "FORMAT", "PUBLIC", "BASE", "ALIAS", "TRUNCATE", "REL",
451 "INPUT_SCRIPT", "INPUT_MRI_SCRIPT", "INPUT_DEFSYM", "CASE", "EXTERN",
452 "START", "VERS_TAG", "VERS_IDENTIFIER", "GLOBAL", "LOCAL", "VERSIONK",
453 "INPUT_VERSION_SCRIPT", "KEEP", "EXCLUDE_FILE", "','", "';'", "')'",
454 "'['", "']'", "'!'", "'~'", "file", "filename", "defsym_expr", "@1",
455 "mri_script_file", "@2", "mri_script_lines", "mri_script_command", "@3",
456 "ordernamelist", "mri_load_name_list", "mri_abs_name_list",
457 "casesymlist", "extern_name_list", "script_file", "@4", "ifile_list",
458 "ifile_p1", "@5", "@6", "input_list", "sections", "sec_or_group_p1",
459 "statement_anywhere", "@7", "wildcard_name", "wildcard_spec",
460 "exclude_name_list", "file_NAME_list", "input_section_spec_no_keep",
461 "input_section_spec", "@8", "statement", "statement_list",
462 "statement_list_opt", "length", "fill_exp", "fill_opt", "assign_op",
463 "end", "assignment", "opt_comma", "memory", "memory_spec_list",
464 "memory_spec", "@9", "origin_spec", "length_spec", "attributes_opt",
465 "attributes_list", "attributes_string", "startup", "high_level_library",
466 "high_level_library_NAME_list", "low_level_library",
467 "low_level_library_NAME_list", "floating_point_support",
468 "nocrossref_list", "mustbe_exp", "@10", "exp", "memspec_at_opt",
469 "opt_at", "opt_subalign", "section", "@11", "@12", "@13", "@14", "@15",
470 "@16", "@17", "@18", "@19", "@20", "@21", "@22", "type", "atype",
471 "opt_exp_with_type", "opt_exp_without_type", "opt_nocrossrefs",
472 "memspec_opt", "phdr_opt", "overlay_section", "@23", "@24", "@25",
473 "phdrs", "phdr_list", "phdr", "@26", "@27", "phdr_type",
474 "phdr_qualifiers", "phdr_val", "version_script_file", "@28", "version",
475 "@29", "vers_nodes", "vers_node", "verdep", "vers_tag", "vers_defns",
476 "@30", "@31", "opt_semicolon", 0
480 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
481 static const short yyr1
[] =
483 0, 132, 132, 132, 132, 133, 135, 134, 137, 136,
484 138, 138, 139, 139, 139, 139, 139, 139, 139, 139,
485 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
486 139, 139, 139, 139, 139, 139, 139, 139, 140, 139,
487 139, 139, 141, 141, 141, 142, 142, 143, 143, 144,
488 144, 144, 145, 145, 145, 147, 146, 148, 148, 149,
489 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
490 149, 149, 149, 149, 149, 149, 149, 149, 150, 149,
491 149, 151, 149, 149, 149, 152, 152, 152, 152, 152,
492 152, 153, 154, 154, 154, 155, 155, 156, 155, 157,
493 157, 157, 158, 158, 158, 158, 159, 159, 160, 160,
494 161, 161, 161, 162, 163, 162, 164, 164, 164, 164,
495 164, 164, 164, 164, 165, 165, 166, 166, 167, 167,
496 167, 167, 167, 168, 169, 169, 170, 170, 170, 170,
497 170, 170, 170, 170, 171, 171, 172, 172, 172, 173,
498 173, 174, 175, 175, 175, 177, 176, 178, 179, 180,
499 180, 181, 181, 182, 182, 183, 184, 184, 185, 185,
500 186, 187, 187, 188, 188, 189, 189, 189, 191, 190,
501 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
502 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
503 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
504 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
505 192, 193, 193, 194, 194, 195, 195, 197, 198, 199,
506 200, 201, 196, 202, 203, 204, 205, 206, 196, 207,
507 208, 196, 209, 209, 209, 209, 209, 210, 210, 210,
508 211, 211, 211, 211, 212, 212, 213, 213, 214, 214,
509 215, 215, 216, 217, 218, 219, 216, 220, 221, 221,
510 223, 224, 222, 225, 226, 226, 226, 227, 227, 229,
511 228, 231, 230, 232, 232, 233, 233, 233, 234, 234,
512 235, 235, 235, 235, 235, 236, 236, 237, 236, 238,
516 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
517 static const short yyr2
[] =
519 0, 2, 2, 2, 2, 1, 0, 4, 0, 2,
520 3, 0, 2, 4, 1, 1, 2, 1, 4, 4,
521 3, 2, 4, 3, 4, 4, 4, 4, 4, 2,
522 2, 2, 4, 4, 2, 2, 2, 2, 0, 5,
523 2, 0, 3, 2, 0, 1, 3, 1, 3, 0,
524 1, 3, 1, 2, 3, 0, 2, 2, 0, 1,
525 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
526 4, 4, 4, 8, 4, 1, 1, 4, 0, 5,
527 4, 0, 5, 4, 4, 1, 3, 2, 1, 3,
528 2, 4, 2, 2, 0, 4, 2, 0, 7, 1,
529 1, 1, 1, 5, 4, 8, 2, 1, 3, 1,
530 1, 3, 4, 1, 0, 5, 2, 1, 1, 1,
531 4, 1, 4, 4, 2, 1, 0, 1, 1, 1,
532 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
533 1, 1, 1, 1, 1, 1, 3, 3, 6, 1,
534 0, 5, 2, 3, 0, 0, 7, 3, 3, 0,
535 3, 1, 2, 1, 2, 4, 4, 3, 3, 1,
536 4, 3, 0, 1, 1, 0, 2, 3, 0, 2,
537 2, 3, 4, 2, 2, 2, 3, 3, 3, 3,
538 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
539 3, 3, 5, 3, 3, 4, 1, 1, 4, 4,
540 4, 4, 4, 6, 6, 4, 4, 1, 6, 6,
541 6, 3, 0, 4, 0, 4, 0, 0, 0, 0,
542 0, 0, 17, 0, 0, 0, 0, 0, 18, 0,
543 0, 7, 1, 1, 1, 1, 1, 3, 0, 2,
544 3, 2, 6, 10, 2, 1, 0, 1, 2, 0,
545 0, 3, 0, 0, 0, 0, 11, 4, 0, 2,
546 0, 0, 6, 1, 0, 3, 5, 0, 3, 0,
547 2, 0, 5, 1, 2, 4, 5, 6, 1, 2,
548 0, 2, 4, 4, 8, 1, 3, 0, 9, 0,
552 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
553 doesn't specify something else to do. Zero means the default is an
555 static const short yydefact
[] =
557 0, 55, 8, 6, 279, 1, 58, 2, 11, 4,
558 0, 3, 0, 56, 9, 0, 290, 0, 280, 283,
559 0, 0, 0, 0, 75, 0, 76, 0, 0, 0,
560 0, 0, 0, 0, 0, 0, 173, 174, 0, 0,
561 78, 0, 0, 97, 0, 68, 57, 60, 66, 0,
562 59, 62, 63, 64, 65, 61, 67, 0, 14, 0,
563 0, 0, 0, 15, 0, 0, 0, 17, 44, 0,
564 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
565 0, 295, 0, 0, 0, 0, 290, 284, 136, 137,
566 138, 139, 178, 140, 141, 142, 143, 178, 94, 268,
567 0, 0, 5, 81, 0, 0, 0, 0, 0, 0,
568 0, 172, 175, 0, 0, 0, 0, 0, 0, 145,
569 144, 96, 0, 0, 38, 0, 206, 217, 0, 0,
570 0, 0, 0, 0, 0, 207, 0, 0, 0, 0,
571 0, 0, 0, 0, 0, 0, 0, 12, 0, 47,
572 29, 45, 30, 16, 31, 21, 0, 34, 0, 35,
573 50, 36, 52, 37, 40, 10, 7, 0, 0, 0,
574 0, 291, 0, 146, 0, 147, 0, 0, 0, 0,
575 58, 155, 154, 0, 0, 0, 0, 0, 167, 169,
576 150, 150, 175, 0, 85, 88, 0, 0, 0, 0,
577 0, 0, 0, 0, 0, 11, 0, 0, 184, 180,
578 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
579 0, 0, 0, 0, 183, 185, 0, 0, 0, 0,
580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
581 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
582 0, 43, 0, 0, 0, 20, 0, 0, 53, 0,
583 299, 0, 0, 285, 0, 296, 0, 179, 227, 91,
584 233, 239, 93, 92, 270, 267, 269, 0, 72, 74,
585 281, 159, 0, 69, 70, 80, 95, 165, 149, 166,
586 0, 170, 0, 175, 176, 83, 87, 90, 0, 77,
587 0, 71, 178, 0, 84, 0, 25, 26, 41, 27,
588 28, 181, 0, 0, 0, 0, 0, 0, 0, 0,
589 0, 0, 0, 0, 0, 0, 204, 203, 201, 200,
590 199, 193, 194, 197, 198, 195, 196, 191, 192, 189,
591 190, 186, 187, 188, 13, 24, 22, 48, 46, 42,
592 18, 19, 33, 32, 51, 54, 0, 292, 293, 0,
593 288, 286, 0, 248, 0, 248, 0, 0, 82, 0,
594 0, 151, 0, 152, 168, 171, 177, 86, 89, 79,
595 0, 0, 282, 39, 0, 212, 216, 0, 215, 205,
596 182, 208, 209, 210, 0, 0, 211, 0, 0, 301,
597 0, 297, 289, 287, 0, 0, 248, 0, 224, 255,
598 0, 256, 240, 273, 274, 0, 163, 0, 0, 161,
599 0, 153, 148, 0, 0, 0, 0, 0, 0, 202,
600 302, 0, 0, 0, 242, 243, 244, 245, 246, 249,
601 0, 0, 0, 0, 251, 0, 226, 254, 257, 224,
602 0, 277, 0, 271, 0, 164, 160, 162, 0, 150,
603 98, 213, 214, 218, 219, 220, 300, 0, 301, 247,
604 0, 250, 0, 0, 228, 226, 94, 0, 274, 0,
605 0, 73, 178, 0, 294, 0, 248, 0, 0, 0,
606 234, 0, 0, 275, 0, 272, 157, 0, 156, 298,
607 0, 0, 223, 0, 229, 0, 241, 278, 274, 178,
608 0, 252, 225, 126, 235, 276, 158, 0, 110, 101,
609 100, 128, 129, 130, 131, 132, 0, 0, 117, 119,
610 0, 0, 118, 0, 102, 0, 113, 121, 125, 127,
611 0, 0, 0, 262, 248, 0, 178, 114, 0, 99,
612 0, 109, 150, 0, 124, 230, 178, 116, 0, 0,
613 0, 0, 0, 0, 133, 0, 107, 0, 0, 111,
614 0, 150, 259, 0, 263, 236, 253, 120, 0, 104,
615 123, 99, 0, 0, 106, 108, 112, 0, 222, 122,
616 0, 259, 0, 115, 103, 258, 0, 260, 126, 222,
617 0, 0, 135, 0, 260, 0, 221, 178, 0, 231,
618 264, 135, 105, 134, 261, 150, 260, 237, 232, 135,
619 150, 265, 238, 150, 266, 0, 0, 0
622 static const short yydefgoto
[] =
624 625, 103, 9, 10, 7, 8, 14, 78, 205, 153,
625 152, 150, 161, 163, 5, 6, 13, 46, 114, 180,
626 196, 47, 176, 48, 117, 534, 535, 567, 552, 536,
627 537, 565, 538, 539, 540, 541, 563, 609, 97, 121,
628 49, 570, 50, 282, 182, 281, 459, 498, 370, 418,
629 419, 51, 52, 190, 53, 191, 54, 193, 564, 174,
630 210, 597, 446, 474, 273, 363, 489, 513, 572, 615,
631 364, 505, 543, 591, 620, 365, 450, 440, 407, 408,
632 411, 449, 588, 602, 558, 590, 616, 623, 55, 177,
633 276, 366, 480, 414, 453, 478, 11, 12, 56, 57,
634 18, 19, 362, 84, 85, 433, 356, 431
637 static const short yypact
[] =
639 114,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
640 48,-32768, -20, 585, 699, 50, 113, 43, -20,-32768,
641 467, 52, 106, 158,-32768, 162,-32768, 204, 163, 180,
642 184, 193, 218, 231, 245, 247,-32768,-32768, 250, 251,
643 -32768, 253, 254,-32768, 255,-32768,-32768,-32768,-32768, 145,
644 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 173,-32768, 291,
645 204, 293, 520,-32768, 294, 295, 296,-32768,-32768, 302,
646 304, 305, 520, 315, 319, 320, 321, 323, 228, 520,
647 325,-32768, 314, 316, 279, 209, 113,-32768,-32768,-32768,
648 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
649 332, 334,-32768,-32768, 335, 338, 204, 204, 339, 204,
650 17,-32768, 340, 271, 308, 204, 342, 313, 321,-32768,
651 -32768,-32768, 300, 5,-32768, 23,-32768,-32768, 520, 520,
652 520, 317, 324, 327, 328,-32768, 329, 330, 333, 337,
653 341, 350, 351, 352, 355, 520, 520, 1180, 33,-32768,
654 227,-32768, 232, 16,-32768,-32768, 310, 1398, 233,-32768,
655 -32768, 237,-32768, 31,-32768,-32768, 1398, 318, -71, -71,
656 230, 10, 301,-32768, 520,-32768, 28, 26, -4, 244,
657 -32768,-32768,-32768, 248, 252, 266, 267, 268,-32768,-32768,
658 2, 93, 65, 269,-32768,-32768, 22, 271, 282, 362,
659 520, 73, -20, 520, 520,-32768, 520, 520,-32768,-32768,
660 847, 520, 520, 520, 520, 373, 520, 406, 408, 409,
661 520, 520, 520, 520,-32768,-32768, 520, 520, 520, 520,
662 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
663 520, 520, 520, 520, 520, 520, 520, 520, 1398, 411,
664 417,-32768, 418, 520, 520, 1398, 275, 419,-32768, 420,
665 -32768, 299, 306,-32768, 422,-32768, -88, 1398, 467,-32768,
666 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 426,-32768,-32768,
667 666, 394, 62,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
668 204,-32768, 204, 340,-32768,-32768,-32768,-32768, 276,-32768,
669 69,-32768,-32768, 1200,-32768, 7, 1398, 1398, 725, 1398,
670 1398,-32768, 827, 867, 1220, 887, 307, 907, 311, 312,
671 343, 1240, 1289, 938, 1309, 1352, 582, 1269, 1415, 1429,
672 1442, 1029, 1029, 429, 429, 429, 429, 210, 210, 220,
673 220,-32768,-32768,-32768, 1398, 1398, 1398,-32768,-32768,-32768,
674 1398, 1398,-32768,-32768,-32768,-32768, -71, -39, 10, 386,
675 -32768,-32768, -78, 416, 468, 416, 520, 326,-32768, 4,
676 427,-32768, 335,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
677 356, 438,-32768,-32768, 520,-32768,-32768, 520,-32768,-32768,
678 -32768,-32768,-32768,-32768, 520, 520,-32768, 440, 520, 322,
679 434,-32768,-32768,-32768, 185, 415, 1329, 451, 353,-32768,
680 1372, 403,-32768, 1398, 19, 464,-32768, 482, 8,-32768,
681 410,-32768,-32768, 367, 958, 978, 998, 1018, 368, 1398,
682 10, 444, -71, -71,-32768,-32768,-32768,-32768,-32768,-32768,
683 370, 520, 142, 484,-32768, 465, 423,-32768,-32768, 353,
684 450, 466, 471,-32768, 377,-32768,-32768,-32768, 499, 385,
685 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 387, 322,-32768,
686 1049,-32768, 520, 474,-32768, 423,-32768, 520, 19, 520,
687 389,-32768,-32768, 437, 10, 460, 225, 1069, 520, 475,
688 -32768, 303, 1089,-32768, 1109,-32768,-32768, 509,-32768,-32768,
689 488, 511,-32768, 1129,-32768, 477,-32768,-32768, 19,-32768,
690 520,-32768,-32768, 533,-32768,-32768,-32768, 1160, 392,-32768,
691 -32768,-32768,-32768,-32768,-32768,-32768, 492, 493,-32768,-32768,
692 494, 495,-32768, 197,-32768, 496,-32768,-32768,-32768, 533,
693 483, 501, 145,-32768, 508, 187,-32768,-32768, 86,-32768,
694 512,-32768, -64, 197,-32768,-32768,-32768,-32768, 36, 536,
695 428, 516, 433, 435,-32768, 85,-32768, 9, 87,-32768,
696 197, 140, 529, 436,-32768,-32768,-32768,-32768, 86,-32768,
697 -32768, 441, 452, 86,-32768,-32768,-32768, 532, 469,-32768,
698 505, 529, 13,-32768,-32768,-32768, 539,-32768, 533, 469,
699 86, 563, 110, 519,-32768, 453,-32768,-32768, 578,-32768,
700 -32768, 110,-32768,-32768,-32768, 385,-32768,-32768,-32768, 110,
701 385,-32768,-32768, 385,-32768, 583, 584,-32768
704 static const short yypgoto
[] =
706 -32768, -53,-32768,-32768,-32768,-32768, 380,-32768,-32768,-32768,
707 -32768,-32768,-32768, 470,-32768,-32768, 407,-32768,-32768,-32768,
708 393,-32768, 121, -174,-32768, -282, -478, 42, 68, 57,
709 -32768,-32768, 89,-32768, 27,-32768, 29, -569,-32768, 84,
710 -488, -187,-32768,-32768, -260,-32768,-32768,-32768,-32768,-32768,
711 211,-32768,-32768,-32768,-32768,-32768,-32768, -178, -92,-32768,
712 -61, 34, 181, 159,-32768,-32768,-32768,-32768,-32768,-32768,
713 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -390, 270,
714 -32768,-32768, 46, -570,-32768,-32768,-32768,-32768,-32768,-32768,
715 -32768,-32768,-32768,-32768, -459,-32768,-32768,-32768,-32768,-32768,
716 443, -12,-32768, 552, -159,-32768,-32768, 178
723 static const short yytable
[] =
725 173, 147, 272, 290, 292, 175, 87, 124, 416, 261,
726 262, 157, 416, 549, 294, 203, 443, 549, 166, 493,
727 251, 102, 373, 451, 519, 542, 296, 297, 519, 360,
728 274, 16, 268, 206, 611, 258, 126, 127, 361, 402,
729 574, 520, 617, 246, 80, 520, 619, 81, 403, 515,
730 621, 542, 15, 184, 185, 551, 187, 189, 16, 382,
731 79, 288, 198, 128, 129, 569, 181, 208, 209, 192,
732 130, 131, 132, 296, 297, 551, 264, 258, 275, 265,
733 269, 400, 133, 134, 224, 225, 135, 248, 575, 581,
734 549, 549, 585, 270, 86, 255, 501, 17, 32, 136,
735 519, 519, 519, 98, 137, 138, 139, 140, 141, 142,
736 542, 452, 421, 267, 371, 376, 271, 520, 520, 520,
737 607, 277, 42, 278, 17, 264, 608, 288, 265, 289,
738 204, 143, 43, 550, 417, 456, 583, 144, 417, 303,
739 600, 252, 306, 307, 188, 309, 310, 298, 207, 299,
740 312, 313, 314, 315, 559, 317, 259, 99, 247, 321,
741 322, 323, 324, 145, 146, 325, 326, 327, 328, 329,
742 330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
743 340, 341, 342, 343, 344, 345, 346, 372, 126, 127,
744 293, 549, 350, 351, 298, 100, 379, 399, 259, 101,
745 304, 549, 519, 434, 435, 436, 437, 438, 102, 531,
746 380, 561, 519, 533, 104, 128, 129, 105, 288, 520,
747 291, 106, 130, 131, 132, 1, 2, 3, 80, 520,
748 107, 81, 82, 83, 133, 134, 4, 374, 135, 375,
749 240, 241, 242, 243, 244, 550, 434, 435, 436, 437,
750 438, 136, 242, 243, 244, 108, 137, 138, 139, 140,
751 141, 142, 442, 562, 500, 288, 566, 586, 109, 439,
752 119, 120, 483, 467, 468, 194, 195, 560, 352, 353,
753 377, 378, 110, 143, 111, 584, 562, 112, 113, 144,
754 115, 116, 118, 87, 122, 123, 566, 125, 148, 149,
755 151, 594, 406, 410, 406, 413, 154, 268, 155, 156,
756 584, 561, 439, 126, 127, 145, 146, 272, 605, 158,
757 253, 531, 159, 424, 160, 162, 425, 164, 165, 167,
758 168, 170, 169, 426, 427, 171, 178, 429, 179, 181,
759 128, 129, 183, 186, 192, 197, 199, 130, 131, 132,
760 200, 202, 249, 266, 211, 506, 263, 250, 256, 133,
761 134, 212, 257, 135, 213, 214, 215, 216, 270, 260,
762 217, 279, 302, 32, 218, 283, 136, 316, 219, 284,
763 470, 137, 138, 139, 140, 141, 142, 220, 221, 222,
764 496, 271, 223, 285, 286, 287, 295, 42, 88, 89,
765 90, 91, 92, 93, 94, 95, 96, 43, 143, 301,
766 318, 487, 319, 320, 144, 347, 492, 516, 494, 126,
767 127, 348, 349, 354, 355, 357, 359, 503, 618, -99,
768 367, 369, 358, 622, 389, 254, 624, 401, 391, 392,
769 145, 146, 423, 420, 428, 445, 128, 129, 430, 517,
770 432, 415, 441, 404, 131, 132, 405, 238, 239, 240,
771 241, 242, 243, 244, 573, 133, 134, 444, 454, 135,
772 393, 126, 127, 88, 89, 90, 91, 92, 93, 94,
773 95, 96, 136, 422, 409, 448, 455, 137, 138, 139,
774 140, 141, 142, 458, 460, 465, 466, 469, 128, 129,
775 471, 476, 472, 477, 481, 130, 131, 132, 479, 482,
776 288, 488, 499, 484, 143, 495, 473, 133, 134, 509,
777 144, 135, 497, 126, 127, 510, 504, 511, 514, 545,
778 546, 547, 548, 553, 136, 555, 595, 518, 556, 137,
779 138, 139, 140, 141, 142, 442, 145, 146, 519, 568,
780 128, 129, 576, 578, 587, 577, 598, 130, 131, 132,
781 579, 596, 580, 589, 601, 520, 143, 606, -110, 133,
782 134, 610, 144, 135, 521, 522, 523, 524, 525, 593,
783 612, 526, 614, 626, 627, 308, 136, 280, 201, 20,
784 300, 137, 138, 139, 140, 141, 142, 491, 145, 146,
785 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
786 238, 239, 240, 241, 242, 243, 244, 527, 143, 528,
787 592, 571, 582, 529, 144, 603, 557, 42, 554, 457,
788 475, 21, 22, 604, 490, 412, 613, 599, 172, 23,
789 24, 25, 26, 27, 28, 305, 485, 0, 0, 0,
790 145, 146, 29, 30, 31, 32, 530, 531, 0, 532,
791 0, 533, 33, 34, 35, 36, 37, 38, 0, 0,
792 20, 0, 39, 40, 41, 0, 0, 0, 0, 42,
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 44, 0, 368, 58, 0, 0, -281, 0, 0, 0,
796 0, 45, 21, 22, 0, 0, 0, 0, 0, 0,
797 23, 24, 25, 26, 27, 28, 0, 0, 0, 58,
798 0, 0, 0, 29, 30, 31, 32, 59, 0, 0,
799 0, 0, 0, 33, 34, 35, 36, 37, 38, 0,
800 0, 0, 0, 39, 40, 41, 0, 60, 0, 0,
801 42, 383, 0, 59, 0, 0, 0, 0, 0, 0,
802 43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 0, 44, 0, 60, 0, 0, 0, 0, 0, 0,
804 61, 0, 45, 0, 62, 63, 64, 65, 66, -41,
805 67, 68, 69, 0, 70, 71, 72, 73, 74, 0,
806 0, 0, 0, 75, 76, 77, 61, 0, 0, 0,
807 62, 63, 64, 65, 66, 0, 67, 68, 69, 0,
808 70, 71, 72, 73, 74, 0, 0, 0, 0, 75,
809 76, 77, 226, 0, 227, 228, 229, 230, 231, 232,
810 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
811 243, 244, 226, 0, 227, 228, 229, 230, 231, 232,
812 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
813 243, 244, 226, 0, 227, 228, 229, 230, 231, 232,
814 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
815 243, 244, 226, 0, 227, 228, 229, 230, 231, 232,
816 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
817 243, 244, 226, 0, 227, 228, 229, 230, 231, 232,
818 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
819 243, 244, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 384, 226, 385, 227, 228, 229, 230, 231,
821 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
822 242, 243, 244, 226, 311, 227, 228, 229, 230, 231,
823 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
824 242, 243, 244, 226, 386, 227, 228, 229, 230, 231,
825 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
826 242, 243, 244, 226, 388, 227, 228, 229, 230, 231,
827 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
828 242, 243, 244, 226, 390, 227, 228, 229, 230, 231,
829 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
830 242, 243, 244, 234, 235, 236, 237, 238, 239, 240,
831 241, 242, 243, 244, 226, 396, 227, 228, 229, 230,
832 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
833 241, 242, 243, 244, 226, 461, 227, 228, 229, 230,
834 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
835 241, 242, 243, 244, 226, 462, 227, 228, 229, 230,
836 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
837 241, 242, 243, 244, 226, 463, 227, 228, 229, 230,
838 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
839 241, 242, 243, 244, 226, 464, 227, 228, 229, 230,
840 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
841 241, 242, 243, 244, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 226, 486, 227, 228, 229,
843 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
844 240, 241, 242, 243, 244, 226, 502, 227, 228, 229,
845 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
846 240, 241, 242, 243, 244, 226, 507, 227, 228, 229,
847 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
848 240, 241, 242, 243, 244, 226, 508, 227, 228, 229,
849 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
850 240, 241, 242, 243, 244, 226, 512, 227, 228, 229,
851 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
852 240, 241, 242, 243, 244, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 544, 229, 230,
854 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
855 241, 242, 243, 244, 226, 245, 227, 228, 229, 230,
856 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
857 241, 242, 243, 244, 226, 381, 227, 228, 229, 230,
858 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
859 241, 242, 243, 244, 226, 387, 227, 228, 229, 230,
860 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
861 241, 242, 243, 244, 0, 394, 442, 226, 398, 227,
862 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
863 238, 239, 240, 241, 242, 243, 244, 226, 447, 227,
864 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
865 238, 239, 240, 241, 242, 243, 244, 0, 0, 0,
866 0, 0, 0, 226, 395, 227, 228, 229, 230, 231,
867 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
868 242, 243, 244, 0, 397, 230, 231, 232, 233, 234,
869 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
870 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
871 241, 242, 243, 244, 232, 233, 234, 235, 236, 237,
872 238, 239, 240, 241, 242, 243, 244
875 static const short yycheck
[] =
877 92, 62, 176, 190, 191, 97, 18, 60, 4, 168,
878 169, 72, 4, 4, 192, 10, 406, 4, 79, 478,
879 4, 4, 282, 4, 15, 513, 4, 5, 15, 117,
880 4, 51, 4, 10, 604, 4, 3, 4, 126, 117,
881 4, 32, 611, 10, 115, 32, 616, 118, 126, 508,
882 619, 539, 4, 106, 107, 533, 109, 110, 51, 52,
883 10, 125, 115, 30, 31, 129, 4, 128, 129, 4,
884 37, 38, 39, 4, 5, 553, 115, 4, 52, 118,
885 52, 120, 49, 50, 145, 146, 53, 148, 52, 4,
886 4, 4, 570, 65, 51, 156, 486, 117, 70, 66,
887 15, 15, 15, 51, 71, 72, 73, 74, 75, 76,
888 598, 92, 372, 174, 52, 293, 88, 32, 32, 32,
889 10, 125, 94, 127, 117, 115, 16, 125, 118, 127,
890 125, 98, 104, 48, 130, 127, 127, 104, 130, 200,
891 127, 125, 203, 204, 127, 206, 207, 125, 125, 127,
892 211, 212, 213, 214, 544, 216, 125, 51, 125, 220,
893 221, 222, 223, 130, 131, 226, 227, 228, 229, 230,
894 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
895 241, 242, 243, 244, 245, 246, 247, 125, 3, 4,
896 125, 4, 253, 254, 125, 37, 127, 356, 125, 37,
897 127, 4, 15, 61, 62, 63, 64, 65, 4, 124,
898 302, 124, 15, 128, 51, 30, 31, 37, 125, 32,
899 127, 37, 37, 38, 39, 111, 112, 113, 115, 32,
900 37, 118, 119, 120, 49, 50, 122, 290, 53, 292,
901 30, 31, 32, 33, 34, 48, 61, 62, 63, 64,
902 65, 66, 32, 33, 34, 37, 71, 72, 73, 74,
903 75, 76, 37, 545, 39, 125, 548, 127, 37, 127,
904 125, 126, 459, 432, 433, 4, 5, 90, 3, 4,
905 4, 5, 37, 98, 37, 567, 568, 37, 37, 104,
906 37, 37, 37, 305, 121, 4, 578, 4, 4, 4,
907 4, 583, 363, 364, 365, 366, 4, 4, 4, 4,
908 592, 124, 127, 3, 4, 130, 131, 491, 600, 4,
909 10, 124, 3, 384, 4, 4, 387, 4, 100, 4,
910 16, 52, 16, 394, 395, 126, 4, 398, 4, 4,
911 30, 31, 4, 4, 4, 37, 4, 37, 38, 39,
912 37, 51, 125, 52, 37, 52, 126, 125, 125, 49,
913 50, 37, 125, 53, 37, 37, 37, 37, 65, 51,
914 37, 127, 10, 70, 37, 127, 66, 4, 37, 127,
915 441, 71, 72, 73, 74, 75, 76, 37, 37, 37,
916 482, 88, 37, 127, 127, 127, 127, 94, 6, 7,
917 8, 9, 10, 11, 12, 13, 14, 104, 98, 127,
918 4, 472, 4, 4, 104, 4, 477, 509, 479, 3,
919 4, 4, 4, 4, 4, 126, 4, 488, 615, 37,
920 4, 37, 126, 620, 127, 125, 623, 51, 127, 127,
921 130, 131, 4, 16, 4, 92, 30, 31, 126, 510,
922 16, 125, 37, 37, 38, 39, 40, 28, 29, 30,
923 31, 32, 33, 34, 556, 49, 50, 16, 4, 53,
924 127, 3, 4, 6, 7, 8, 9, 10, 11, 12,
925 13, 14, 66, 127, 16, 82, 4, 71, 72, 73,
926 74, 75, 76, 83, 127, 127, 52, 127, 30, 31,
927 16, 51, 37, 37, 127, 37, 38, 39, 37, 10,
928 125, 37, 52, 126, 98, 126, 93, 49, 50, 10,
929 104, 53, 85, 3, 4, 37, 51, 16, 51, 37,
930 37, 37, 37, 37, 66, 52, 4, 4, 37, 71,
931 72, 73, 74, 75, 76, 37, 130, 131, 15, 37,
932 30, 31, 16, 37, 25, 127, 51, 37, 38, 39,
933 127, 92, 127, 127, 25, 32, 98, 4, 127, 49,
934 50, 52, 104, 53, 41, 42, 43, 44, 45, 127,
935 127, 48, 4, 0, 0, 205, 66, 180, 118, 4,
936 197, 71, 72, 73, 74, 75, 76, 476, 130, 131,
937 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
938 28, 29, 30, 31, 32, 33, 34, 84, 98, 86,
939 578, 553, 565, 90, 104, 598, 542, 94, 539, 418,
940 449, 46, 47, 599, 475, 365, 607, 591, 86, 54,
941 55, 56, 57, 58, 59, 202, 468, -1, -1, -1,
942 130, 131, 67, 68, 69, 70, 123, 124, -1, 126,
943 -1, 128, 77, 78, 79, 80, 81, 82, -1, -1,
944 4, -1, 87, 88, 89, -1, -1, -1, -1, 94,
945 -1, -1, -1, -1, -1, -1, -1, -1, -1, 104,
946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
947 115, -1, 36, 4, -1, -1, 121, -1, -1, -1,
948 -1, 126, 46, 47, -1, -1, -1, -1, -1, -1,
949 54, 55, 56, 57, 58, 59, -1, -1, -1, 4,
950 -1, -1, -1, 67, 68, 69, 70, 38, -1, -1,
951 -1, -1, -1, 77, 78, 79, 80, 81, 82, -1,
952 -1, -1, -1, 87, 88, 89, -1, 58, -1, -1,
953 94, 36, -1, 38, -1, -1, -1, -1, -1, -1,
954 104, -1, -1, -1, -1, -1, -1, -1, -1, -1,
955 -1, 115, -1, 58, -1, -1, -1, -1, -1, -1,
956 91, -1, 126, -1, 95, 96, 97, 98, 99, 100,
957 101, 102, 103, -1, 105, 106, 107, 108, 109, -1,
958 -1, -1, -1, 114, 115, 116, 91, -1, -1, -1,
959 95, 96, 97, 98, 99, -1, 101, 102, 103, -1,
960 105, 106, 107, 108, 109, -1, -1, -1, -1, 114,
961 115, 116, 15, -1, 17, 18, 19, 20, 21, 22,
962 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
963 33, 34, 15, -1, 17, 18, 19, 20, 21, 22,
964 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
965 33, 34, 15, -1, 17, 18, 19, 20, 21, 22,
966 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
967 33, 34, 15, -1, 17, 18, 19, 20, 21, 22,
968 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
969 33, 34, 15, -1, 17, 18, 19, 20, 21, 22,
970 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
971 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
972 -1, -1, 125, 15, 127, 17, 18, 19, 20, 21,
973 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
974 32, 33, 34, 15, 127, 17, 18, 19, 20, 21,
975 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
976 32, 33, 34, 15, 127, 17, 18, 19, 20, 21,
977 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
978 32, 33, 34, 15, 127, 17, 18, 19, 20, 21,
979 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
980 32, 33, 34, 15, 127, 17, 18, 19, 20, 21,
981 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
982 32, 33, 34, 24, 25, 26, 27, 28, 29, 30,
983 31, 32, 33, 34, 15, 127, 17, 18, 19, 20,
984 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
985 31, 32, 33, 34, 15, 127, 17, 18, 19, 20,
986 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
987 31, 32, 33, 34, 15, 127, 17, 18, 19, 20,
988 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
989 31, 32, 33, 34, 15, 127, 17, 18, 19, 20,
990 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
991 31, 32, 33, 34, 15, 127, 17, 18, 19, 20,
992 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
993 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
994 -1, -1, -1, -1, -1, 15, 127, 17, 18, 19,
995 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
996 30, 31, 32, 33, 34, 15, 127, 17, 18, 19,
997 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
998 30, 31, 32, 33, 34, 15, 127, 17, 18, 19,
999 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1000 30, 31, 32, 33, 34, 15, 127, 17, 18, 19,
1001 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1002 30, 31, 32, 33, 34, 15, 127, 17, 18, 19,
1003 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
1004 30, 31, 32, 33, 34, -1, -1, -1, -1, -1,
1005 -1, -1, -1, -1, -1, -1, -1, 127, 19, 20,
1006 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1007 31, 32, 33, 34, 15, 125, 17, 18, 19, 20,
1008 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1009 31, 32, 33, 34, 15, 125, 17, 18, 19, 20,
1010 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1011 31, 32, 33, 34, 15, 125, 17, 18, 19, 20,
1012 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1013 31, 32, 33, 34, -1, 125, 37, 15, 16, 17,
1014 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1015 28, 29, 30, 31, 32, 33, 34, 15, 16, 17,
1016 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
1017 28, 29, 30, 31, 32, 33, 34, -1, -1, -1,
1018 -1, -1, -1, 15, 125, 17, 18, 19, 20, 21,
1019 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1020 32, 33, 34, -1, 125, 20, 21, 22, 23, 24,
1021 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1022 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
1023 31, 32, 33, 34, 22, 23, 24, 25, 26, 27,
1024 28, 29, 30, 31, 32, 33, 34
1026 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1027 #line 3 "/usr/share/bison-1.35/bison.simple"
1029 /* Skeleton output parser for bison,
1031 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
1034 This program is free software; you can redistribute it and/or modify
1035 it under the terms of the GNU General Public License as published by
1036 the Free Software Foundation; either version 2, or (at your option)
1039 This program is distributed in the hope that it will be useful,
1040 but WITHOUT ANY WARRANTY; without even the implied warranty of
1041 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1042 GNU General Public License for more details.
1044 You should have received a copy of the GNU General Public License
1045 along with this program; if not, write to the Free Software
1046 Foundation, Inc., 59 Temple Place - Suite 330,
1047 Boston, MA 02111-1307, USA. */
1049 /* As a special exception, when this file is copied by Bison into a
1050 Bison output file, you may use that output file without restriction.
1051 This special exception was added by the Free Software Foundation
1052 in version 1.24 of Bison. */
1054 /* This is the parser code that is written into each bison parser when
1055 the %semantic_parser declaration is not specified in the grammar.
1056 It was written by Richard Stallman by simplifying the hairy parser
1057 used when %semantic_parser is specified. */
1059 /* All symbols defined below should begin with yy or YY, to avoid
1060 infringing on user name space. This should be done even for local
1061 variables, as they might otherwise be expanded by user macros.
1062 There are some unavoidable exceptions within include files to
1063 define necessary library symbols; they are noted "INFRINGES ON
1064 USER NAME SPACE" below. */
1066 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
1068 /* The parser invokes alloca or malloc; define the necessary symbols. */
1070 # if YYSTACK_USE_ALLOCA
1071 # define YYSTACK_ALLOC alloca
1073 # ifndef YYSTACK_USE_ALLOCA
1074 # if defined (alloca) || defined (_ALLOCA_H)
1075 # define YYSTACK_ALLOC alloca
1078 # define YYSTACK_ALLOC __builtin_alloca
1084 # ifdef YYSTACK_ALLOC
1085 /* Pacify GCC's `empty if-body' warning. */
1086 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1088 # if defined (__STDC__) || defined (__cplusplus)
1089 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1090 # define YYSIZE_T size_t
1092 # define YYSTACK_ALLOC malloc
1093 # define YYSTACK_FREE free
1095 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
1098 #if (! defined (yyoverflow) \
1099 && (! defined (__cplusplus) \
1100 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1102 /* A type that is properly aligned for any stack member. */
1112 /* The size of the maximum gap between one aligned stack and the next. */
1113 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
1115 /* The size of an array large to enough to hold all stacks, each with
1118 # define YYSTACK_BYTES(N) \
1119 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1120 + 2 * YYSTACK_GAP_MAX)
1122 # define YYSTACK_BYTES(N) \
1123 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
1127 /* Copy COUNT objects from FROM to TO. The source and destination do
1131 # define YYCOPY(To, From, Count) \
1132 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1134 # define YYCOPY(To, From, Count) \
1137 register YYSIZE_T yyi; \
1138 for (yyi = 0; yyi < (Count); yyi++) \
1139 (To)[yyi] = (From)[yyi]; \
1145 /* Relocate STACK from its old location to the new one. The
1146 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1147 elements in the stack, and YYPTR gives the new location of the
1148 stack. Advance YYPTR to a properly aligned location for the next
1150 # define YYSTACK_RELOCATE(Stack) \
1153 YYSIZE_T yynewbytes; \
1154 YYCOPY (&yyptr->Stack, Stack, yysize); \
1155 Stack = &yyptr->Stack; \
1156 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
1157 yyptr += yynewbytes / sizeof (*yyptr); \
1164 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1165 # define YYSIZE_T __SIZE_TYPE__
1167 #if ! defined (YYSIZE_T) && defined (size_t)
1168 # define YYSIZE_T size_t
1170 #if ! defined (YYSIZE_T)
1171 # if defined (__STDC__) || defined (__cplusplus)
1172 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1173 # define YYSIZE_T size_t
1176 #if ! defined (YYSIZE_T)
1177 # define YYSIZE_T unsigned int
1180 #define yyerrok (yyerrstatus = 0)
1181 #define yyclearin (yychar = YYEMPTY)
1184 #define YYACCEPT goto yyacceptlab
1185 #define YYABORT goto yyabortlab
1186 #define YYERROR goto yyerrlab1
1187 /* Like YYERROR except do call yyerror. This remains here temporarily
1188 to ease the transition to the new meaning of YYERROR, for GCC.
1189 Once GCC version 2 has supplanted version 1, this can go. */
1190 #define YYFAIL goto yyerrlab
1191 #define YYRECOVERING() (!!yyerrstatus)
1192 #define YYBACKUP(Token, Value) \
1194 if (yychar == YYEMPTY && yylen == 1) \
1198 yychar1 = YYTRANSLATE (yychar); \
1204 yyerror ("syntax error: cannot back up"); \
1210 #define YYERRCODE 256
1213 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1216 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
1217 first token. By default, to implement support for ranges, extend
1218 its range to the last symbol. */
1220 #ifndef YYLLOC_DEFAULT
1221 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1222 Current.last_line = Rhs[N].last_line; \
1223 Current.last_column = Rhs[N].last_column;
1227 /* YYLEX -- calling `yylex' with the right arguments. */
1232 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
1234 # define YYLEX yylex (&yylval, &yylloc)
1236 # else /* !YYLSP_NEEDED */
1238 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1240 # define YYLEX yylex (&yylval)
1242 # endif /* !YYLSP_NEEDED */
1244 # define YYLEX yylex ()
1245 #endif /* !YYPURE */
1248 /* Enable debugging if requested. */
1252 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1253 # define YYFPRINTF fprintf
1256 # define YYDPRINTF(Args) \
1261 /* Nonzero means print parse trace. It is left uninitialized so that
1262 multiple parsers can coexist. */
1264 #else /* !YYDEBUG */
1265 # define YYDPRINTF(Args)
1266 #endif /* !YYDEBUG */
1268 /* YYINITDEPTH -- initial size of the parser's stacks. */
1270 # define YYINITDEPTH 200
1273 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1274 if the built-in stack extension method is used).
1276 Do not make this value too large; the results are undefined if
1277 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1278 evaluated with infinite-precision integer arithmetic. */
1285 # define YYMAXDEPTH 10000
1288 #ifdef YYERROR_VERBOSE
1291 # if defined (__GLIBC__) && defined (_STRING_H)
1292 # define yystrlen strlen
1294 /* Return the length of YYSTR. */
1296 # if defined (__STDC__) || defined (__cplusplus)
1297 yystrlen (const char *yystr
)
1303 register const char *yys
= yystr
;
1305 while (*yys
++ != '\0')
1308 return yys
- yystr
- 1;
1314 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1315 # define yystpcpy stpcpy
1317 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1320 # if defined (__STDC__) || defined (__cplusplus)
1321 yystpcpy (char *yydest
, const char *yysrc
)
1323 yystpcpy (yydest
, yysrc
)
1328 register char *yyd
= yydest
;
1329 register const char *yys
= yysrc
;
1331 while ((*yyd
++ = *yys
++) != '\0')
1340 #line 315 "/usr/share/bison-1.35/bison.simple"
1343 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1344 into yyparse. The argument should have type void *.
1345 It should actually point to an object.
1346 Grammar actions can access the variable by casting it
1347 to the proper pointer type. */
1349 #ifdef YYPARSE_PARAM
1350 # if defined (__STDC__) || defined (__cplusplus)
1351 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1352 # define YYPARSE_PARAM_DECL
1354 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
1355 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1357 #else /* !YYPARSE_PARAM */
1358 # define YYPARSE_PARAM_ARG
1359 # define YYPARSE_PARAM_DECL
1360 #endif /* !YYPARSE_PARAM */
1362 /* Prevent warning if -Wstrict-prototypes. */
1364 # ifdef YYPARSE_PARAM
1365 int yyparse (void *);
1371 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
1372 variables are global, or local to YYPARSE. */
1374 #define YY_DECL_NON_LSP_VARIABLES \
1375 /* The lookahead symbol. */ \
1378 /* The semantic value of the lookahead symbol. */ \
1381 /* Number of parse errors so far. */ \
1385 # define YY_DECL_VARIABLES \
1386 YY_DECL_NON_LSP_VARIABLES \
1388 /* Location data for the lookahead symbol. */ \
1391 # define YY_DECL_VARIABLES \
1392 YY_DECL_NON_LSP_VARIABLES
1396 /* If nonreentrant, generate the variables here. */
1400 #endif /* !YYPURE */
1403 yyparse (YYPARSE_PARAM_ARG
)
1406 /* If reentrant, generate the variables here. */
1409 #endif /* !YYPURE */
1411 register int yystate
;
1414 /* Number of tokens to shift before error messages enabled. */
1416 /* Lookahead token as an internal (translated) token number. */
1419 /* Three stacks and their tools:
1420 `yyss': related to states,
1421 `yyvs': related to semantic values,
1422 `yyls': related to locations.
1424 Refer to the stacks thru separate pointers, to allow yyoverflow
1425 to reallocate them elsewhere. */
1427 /* The state stack. */
1428 short yyssa
[YYINITDEPTH
];
1429 short *yyss
= yyssa
;
1430 register short *yyssp
;
1432 /* The semantic value stack. */
1433 YYSTYPE yyvsa
[YYINITDEPTH
];
1434 YYSTYPE
*yyvs
= yyvsa
;
1435 register YYSTYPE
*yyvsp
;
1438 /* The location stack. */
1439 YYLTYPE yylsa
[YYINITDEPTH
];
1440 YYLTYPE
*yyls
= yylsa
;
1445 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1447 # define YYPOPSTACK (yyvsp--, yyssp--)
1450 YYSIZE_T yystacksize
= YYINITDEPTH
;
1453 /* The variables used to return semantic value and location from the
1460 /* When reducing, the number of symbols on the RHS of the reduced
1464 YYDPRINTF ((stderr
, "Starting parse\n"));
1469 yychar
= YYEMPTY
; /* Cause a token to be read. */
1471 /* Initialize stack pointers.
1472 Waste one element of value and location stack
1473 so that they stay on the same level as the state stack.
1474 The wasted elements are never initialized. */
1483 /*------------------------------------------------------------.
1484 | yynewstate -- Push a new state, which is found in yystate. |
1485 `------------------------------------------------------------*/
1487 /* In all cases, when you get here, the value and location stacks
1488 have just been pushed. so pushing a state here evens the stacks.
1495 if (yyssp
>= yyss
+ yystacksize
- 1)
1497 /* Get the current used size of the three stacks, in elements. */
1498 YYSIZE_T yysize
= yyssp
- yyss
+ 1;
1502 /* Give user a chance to reallocate the stack. Use copies of
1503 these so that the &'s don't force the real ones into
1505 YYSTYPE
*yyvs1
= yyvs
;
1506 short *yyss1
= yyss
;
1508 /* Each stack pointer address is followed by the size of the
1509 data in use in that stack, in bytes. */
1511 YYLTYPE
*yyls1
= yyls
;
1512 /* This used to be a conditional around just the two extra args,
1513 but that might be undefined if yyoverflow is a macro. */
1514 yyoverflow ("parser stack overflow",
1515 &yyss1
, yysize
* sizeof (*yyssp
),
1516 &yyvs1
, yysize
* sizeof (*yyvsp
),
1517 &yyls1
, yysize
* sizeof (*yylsp
),
1521 yyoverflow ("parser stack overflow",
1522 &yyss1
, yysize
* sizeof (*yyssp
),
1523 &yyvs1
, yysize
* sizeof (*yyvsp
),
1529 #else /* no yyoverflow */
1530 # ifndef YYSTACK_RELOCATE
1533 /* Extend the stack our own way. */
1534 if (yystacksize
>= YYMAXDEPTH
)
1537 if (yystacksize
> YYMAXDEPTH
)
1538 yystacksize
= YYMAXDEPTH
;
1541 short *yyss1
= yyss
;
1542 union yyalloc
*yyptr
=
1543 (union yyalloc
*) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize
));
1546 YYSTACK_RELOCATE (yyss
);
1547 YYSTACK_RELOCATE (yyvs
);
1549 YYSTACK_RELOCATE (yyls
);
1551 # undef YYSTACK_RELOCATE
1553 YYSTACK_FREE (yyss1
);
1556 #endif /* no yyoverflow */
1558 yyssp
= yyss
+ yysize
- 1;
1559 yyvsp
= yyvs
+ yysize
- 1;
1561 yylsp
= yyls
+ yysize
- 1;
1564 YYDPRINTF ((stderr
, "Stack size increased to %lu\n",
1565 (unsigned long int) yystacksize
));
1567 if (yyssp
>= yyss
+ yystacksize
- 1)
1571 YYDPRINTF ((stderr
, "Entering state %d\n", yystate
));
1581 /* Do appropriate processing given the current state. */
1582 /* Read a lookahead token if we need one and don't already have one. */
1585 /* First try to decide what to do without reference to lookahead token. */
1587 yyn
= yypact
[yystate
];
1591 /* Not known => get a lookahead token if don't already have one. */
1593 /* yychar is either YYEMPTY or YYEOF
1594 or a valid token in external form. */
1596 if (yychar
== YYEMPTY
)
1598 YYDPRINTF ((stderr
, "Reading a token: "));
1602 /* Convert token to internal form (in yychar1) for indexing tables with */
1604 if (yychar
<= 0) /* This means end of input. */
1607 yychar
= YYEOF
; /* Don't call YYLEX any more */
1609 YYDPRINTF ((stderr
, "Now at end of input.\n"));
1613 yychar1
= YYTRANSLATE (yychar
);
1616 /* We have to keep this `#if YYDEBUG', since we use variables
1617 which are defined only if `YYDEBUG' is set. */
1620 YYFPRINTF (stderr
, "Next token is %d (%s",
1621 yychar
, yytname
[yychar1
]);
1622 /* Give the individual parser a way to print the precise
1623 meaning of a token, for further debugging info. */
1625 YYPRINT (stderr
, yychar
, yylval
);
1627 YYFPRINTF (stderr
, ")\n");
1633 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1638 /* yyn is what to do for this token type in this state.
1639 Negative => reduce, -yyn is rule number.
1640 Positive => shift, yyn is new state.
1641 New state is final state => don't bother to shift,
1642 just return success.
1643 0, or most negative number => error. */
1658 /* Shift the lookahead token. */
1659 YYDPRINTF ((stderr
, "Shifting token %d (%s), ",
1660 yychar
, yytname
[yychar1
]));
1662 /* Discard the token being shifted unless it is eof. */
1663 if (yychar
!= YYEOF
)
1671 /* Count tokens shifted since error; after three, turn off error
1680 /*-----------------------------------------------------------.
1681 | yydefault -- do the default action for the current state. |
1682 `-----------------------------------------------------------*/
1684 yyn
= yydefact
[yystate
];
1690 /*-----------------------------.
1691 | yyreduce -- Do a reduction. |
1692 `-----------------------------*/
1694 /* yyn is the number of a rule to reduce with. */
1697 /* If YYLEN is nonzero, implement the default value of the action:
1700 Otherwise, the following line sets YYVAL to the semantic value of
1701 the lookahead token. This behavior is undocumented and Bison
1702 users should not rely upon it. Assigning to YYVAL
1703 unconditionally makes the parser a bit smaller, and it avoids a
1704 GCC warning that YYVAL may be used uninitialized. */
1705 yyval
= yyvsp
[1-yylen
];
1708 /* Similarly for the default location. Let the user run additional
1709 commands if for instance locations are ranges. */
1710 yyloc
= yylsp
[1-yylen
];
1711 YYLLOC_DEFAULT (yyloc
, (yylsp
- yylen
), yylen
);
1715 /* We have to keep this `#if YYDEBUG', since we use variables which
1716 are defined only if `YYDEBUG' is set. */
1721 YYFPRINTF (stderr
, "Reducing via rule %d (line %d), ",
1724 /* Print the symbols being reduced, and their result. */
1725 for (yyi
= yyprhs
[yyn
]; yyrhs
[yyi
] > 0; yyi
++)
1726 YYFPRINTF (stderr
, "%s ", yytname
[yyrhs
[yyi
]]);
1727 YYFPRINTF (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1734 #line 173 "ldgram.y"
1738 #line 175 "ldgram.y"
1741 lang_add_assignment(exp_assop(yyvsp
[-1].token
,yyvsp
[-2].name
,yyvsp
[0].etree
));
1745 #line 183 "ldgram.y"
1747 ldlex_mri_script ();
1748 PUSH_ERROR (_("MRI style script"));
1752 #line 188 "ldgram.y"
1760 #line 203 "ldgram.y"
1762 einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),yyvsp
[0].name
);
1766 #line 206 "ldgram.y"
1768 config
.map_filename
= "-";
1772 #line 212 "ldgram.y"
1773 { mri_public(yyvsp
[-2].name
, yyvsp
[0].etree
); }
1776 #line 214 "ldgram.y"
1777 { mri_public(yyvsp
[-2].name
, yyvsp
[0].etree
); }
1780 #line 216 "ldgram.y"
1781 { mri_public(yyvsp
[-1].name
, yyvsp
[0].etree
); }
1784 #line 218 "ldgram.y"
1785 { mri_format(yyvsp
[0].name
); }
1788 #line 220 "ldgram.y"
1789 { mri_output_section(yyvsp
[-2].name
, yyvsp
[0].etree
);}
1792 #line 222 "ldgram.y"
1793 { mri_output_section(yyvsp
[-1].name
, yyvsp
[0].etree
);}
1796 #line 224 "ldgram.y"
1797 { mri_output_section(yyvsp
[-2].name
, yyvsp
[0].etree
);}
1800 #line 226 "ldgram.y"
1801 { mri_align(yyvsp
[-2].name
,yyvsp
[0].etree
); }
1804 #line 228 "ldgram.y"
1805 { mri_align(yyvsp
[-2].name
,yyvsp
[0].etree
); }
1808 #line 230 "ldgram.y"
1809 { mri_alignmod(yyvsp
[-2].name
,yyvsp
[0].etree
); }
1812 #line 232 "ldgram.y"
1813 { mri_alignmod(yyvsp
[-2].name
,yyvsp
[0].etree
); }
1816 #line 236 "ldgram.y"
1817 { mri_name(yyvsp
[0].name
); }
1820 #line 238 "ldgram.y"
1821 { mri_alias(yyvsp
[-2].name
,yyvsp
[0].name
,0);}
1824 #line 240 "ldgram.y"
1825 { mri_alias (yyvsp
[-2].name
, 0, (int) yyvsp
[0].bigint
.integer
); }
1828 #line 242 "ldgram.y"
1829 { mri_base(yyvsp
[0].etree
); }
1832 #line 244 "ldgram.y"
1833 { mri_truncate ((unsigned int) yyvsp
[0].bigint
.integer
); }
1836 #line 248 "ldgram.y"
1837 { ldlex_script (); ldfile_open_command_file(yyvsp
[0].name
); }
1840 #line 250 "ldgram.y"
1841 { ldlex_popstate (); }
1844 #line 252 "ldgram.y"
1845 { lang_add_entry (yyvsp
[0].name
, FALSE
); }
1848 #line 257 "ldgram.y"
1849 { mri_order(yyvsp
[0].name
); }
1852 #line 258 "ldgram.y"
1853 { mri_order(yyvsp
[0].name
); }
1856 #line 264 "ldgram.y"
1857 { mri_load(yyvsp
[0].name
); }
1860 #line 265 "ldgram.y"
1861 { mri_load(yyvsp
[0].name
); }
1864 #line 270 "ldgram.y"
1865 { mri_only_load(yyvsp
[0].name
); }
1868 #line 272 "ldgram.y"
1869 { mri_only_load(yyvsp
[0].name
); }
1872 #line 276 "ldgram.y"
1873 { yyval
.name
= NULL
; }
1876 #line 283 "ldgram.y"
1877 { ldlang_add_undef (yyvsp
[0].name
); }
1880 #line 285 "ldgram.y"
1881 { ldlang_add_undef (yyvsp
[0].name
); }
1884 #line 287 "ldgram.y"
1885 { ldlang_add_undef (yyvsp
[0].name
); }
1888 #line 291 "ldgram.y"
1894 #line 295 "ldgram.y"
1900 #line 320 "ldgram.y"
1901 { lang_add_target(yyvsp
[-1].name
); }
1904 #line 322 "ldgram.y"
1905 { ldfile_add_library_path (yyvsp
[-1].name
, FALSE
); }
1908 #line 324 "ldgram.y"
1909 { lang_add_output(yyvsp
[-1].name
, 1); }
1912 #line 326 "ldgram.y"
1913 { lang_add_output_format (yyvsp
[-1].name
, (char *) NULL
,
1914 (char *) NULL
, 1); }
1917 #line 329 "ldgram.y"
1918 { lang_add_output_format (yyvsp
[-5].name
, yyvsp
[-3].name
, yyvsp
[-1].name
, 1); }
1921 #line 331 "ldgram.y"
1922 { ldfile_set_output_arch (yyvsp
[-1].name
, bfd_arch_unknown
); }
1925 #line 333 "ldgram.y"
1926 { command_line
.force_common_definition
= TRUE
; }
1929 #line 335 "ldgram.y"
1930 { command_line
.inhibit_common_definition
= TRUE
; }
1933 #line 338 "ldgram.y"
1934 { lang_enter_group (); }
1937 #line 340 "ldgram.y"
1938 { lang_leave_group (); }
1941 #line 342 "ldgram.y"
1942 { lang_add_map(yyvsp
[-1].name
); }
1945 #line 344 "ldgram.y"
1946 { ldlex_script (); ldfile_open_command_file(yyvsp
[0].name
); }
1949 #line 346 "ldgram.y"
1950 { ldlex_popstate (); }
1953 #line 348 "ldgram.y"
1955 lang_add_nocrossref (yyvsp
[-1].nocrossref
);
1959 #line 356 "ldgram.y"
1960 { lang_add_input_file(yyvsp
[0].name
,lang_input_file_is_search_file_enum
,
1964 #line 359 "ldgram.y"
1965 { lang_add_input_file(yyvsp
[0].name
,lang_input_file_is_search_file_enum
,
1969 #line 362 "ldgram.y"
1970 { lang_add_input_file(yyvsp
[0].name
,lang_input_file_is_search_file_enum
,
1974 #line 365 "ldgram.y"
1975 { lang_add_input_file(yyvsp
[0].name
,lang_input_file_is_l_enum
,
1979 #line 368 "ldgram.y"
1980 { lang_add_input_file(yyvsp
[0].name
,lang_input_file_is_l_enum
,
1984 #line 371 "ldgram.y"
1985 { lang_add_input_file(yyvsp
[0].name
,lang_input_file_is_l_enum
,
1989 #line 387 "ldgram.y"
1990 { lang_add_entry (yyvsp
[-1].name
, FALSE
); }
1993 #line 389 "ldgram.y"
1994 {ldlex_expression ();}
1997 #line 390 "ldgram.y"
1998 { ldlex_popstate ();
1999 lang_add_assignment (exp_assert (yyvsp
[-3].etree
, yyvsp
[-1].name
)); }
2002 #line 398 "ldgram.y"
2004 yyval
.cname
= yyvsp
[0].name
;
2008 #line 402 "ldgram.y"
2014 #line 406 "ldgram.y"
2020 #line 413 "ldgram.y"
2022 yyval
.wildcard
.name
= yyvsp
[0].cname
;
2023 yyval
.wildcard
.sorted
= FALSE
;
2024 yyval
.wildcard
.exclude_name_list
= NULL
;
2028 #line 419 "ldgram.y"
2030 yyval
.wildcard
.name
= yyvsp
[0].cname
;
2031 yyval
.wildcard
.sorted
= FALSE
;
2032 yyval
.wildcard
.exclude_name_list
= yyvsp
[-2].name_list
;
2036 #line 425 "ldgram.y"
2038 yyval
.wildcard
.name
= yyvsp
[-1].cname
;
2039 yyval
.wildcard
.sorted
= TRUE
;
2040 yyval
.wildcard
.exclude_name_list
= NULL
;
2044 #line 431 "ldgram.y"
2046 yyval
.wildcard
.name
= yyvsp
[-1].cname
;
2047 yyval
.wildcard
.sorted
= TRUE
;
2048 yyval
.wildcard
.exclude_name_list
= yyvsp
[-3].name_list
;
2052 #line 440 "ldgram.y"
2054 struct name_list
*tmp
;
2055 tmp
= (struct name_list
*) xmalloc (sizeof *tmp
);
2056 tmp
->name
= yyvsp
[0].cname
;
2057 tmp
->next
= yyvsp
[-1].name_list
;
2058 yyval
.name_list
= tmp
;
2062 #line 449 "ldgram.y"
2064 struct name_list
*tmp
;
2065 tmp
= (struct name_list
*) xmalloc (sizeof *tmp
);
2066 tmp
->name
= yyvsp
[0].cname
;
2068 yyval
.name_list
= tmp
;
2072 #line 460 "ldgram.y"
2074 struct wildcard_list
*tmp
;
2075 tmp
= (struct wildcard_list
*) xmalloc (sizeof *tmp
);
2076 tmp
->next
= yyvsp
[-2].wildcard_list
;
2077 tmp
->spec
= yyvsp
[0].wildcard
;
2078 yyval
.wildcard_list
= tmp
;
2082 #line 469 "ldgram.y"
2084 struct wildcard_list
*tmp
;
2085 tmp
= (struct wildcard_list
*) xmalloc (sizeof *tmp
);
2087 tmp
->spec
= yyvsp
[0].wildcard
;
2088 yyval
.wildcard_list
= tmp
;
2092 #line 480 "ldgram.y"
2094 struct wildcard_spec tmp
;
2095 tmp
.name
= yyvsp
[0].name
;
2096 tmp
.exclude_name_list
= NULL
;
2098 lang_add_wild (&tmp
, NULL
, ldgram_had_keep
);
2102 #line 488 "ldgram.y"
2104 lang_add_wild (NULL
, yyvsp
[-1].wildcard_list
, ldgram_had_keep
);
2108 #line 492 "ldgram.y"
2110 lang_add_wild (&yyvsp
[-3].wildcard
, yyvsp
[-1].wildcard_list
, ldgram_had_keep
);
2114 #line 500 "ldgram.y"
2115 { ldgram_had_keep
= TRUE
; }
2118 #line 502 "ldgram.y"
2119 { ldgram_had_keep
= FALSE
; }
2122 #line 508 "ldgram.y"
2124 lang_add_attribute(lang_object_symbols_statement_enum
);
2128 #line 513 "ldgram.y"
2131 lang_add_attribute(lang_constructors_statement_enum
);
2135 #line 518 "ldgram.y"
2137 constructors_sorted
= TRUE
;
2138 lang_add_attribute (lang_constructors_statement_enum
);
2142 #line 524 "ldgram.y"
2144 lang_add_data ((int) yyvsp
[-3].integer
, yyvsp
[-1].etree
);
2148 #line 529 "ldgram.y"
2150 lang_add_fill (yyvsp
[-1].fill
);
2154 #line 546 "ldgram.y"
2155 { yyval
.integer
= yyvsp
[0].token
; }
2158 #line 548 "ldgram.y"
2159 { yyval
.integer
= yyvsp
[0].token
; }
2162 #line 550 "ldgram.y"
2163 { yyval
.integer
= yyvsp
[0].token
; }
2166 #line 552 "ldgram.y"
2167 { yyval
.integer
= yyvsp
[0].token
; }
2170 #line 554 "ldgram.y"
2171 { yyval
.integer
= yyvsp
[0].token
; }
2174 #line 559 "ldgram.y"
2176 yyval
.fill
= exp_get_fill (yyvsp
[0].etree
,
2179 lang_first_phase_enum
);
2183 #line 569 "ldgram.y"
2184 { yyval
.fill
= yyvsp
[0].fill
; }
2187 #line 570 "ldgram.y"
2188 { yyval
.fill
= (fill_type
*) 0; }
2191 #line 575 "ldgram.y"
2192 { yyval
.token
= '+'; }
2195 #line 577 "ldgram.y"
2196 { yyval
.token
= '-'; }
2199 #line 579 "ldgram.y"
2200 { yyval
.token
= '*'; }
2203 #line 581 "ldgram.y"
2204 { yyval
.token
= '/'; }
2207 #line 583 "ldgram.y"
2208 { yyval
.token
= LSHIFT
; }
2211 #line 585 "ldgram.y"
2212 { yyval
.token
= RSHIFT
; }
2215 #line 587 "ldgram.y"
2216 { yyval
.token
= '&'; }
2219 #line 589 "ldgram.y"
2220 { yyval
.token
= '|'; }
2223 #line 599 "ldgram.y"
2225 lang_add_assignment (exp_assop (yyvsp
[-1].token
, yyvsp
[-2].name
, yyvsp
[0].etree
));
2229 #line 603 "ldgram.y"
2231 lang_add_assignment (exp_assop ('=', yyvsp
[-2].name
,
2232 exp_binop (yyvsp
[-1].token
,
2239 #line 611 "ldgram.y"
2241 lang_add_assignment (exp_provide (yyvsp
[-3].name
, yyvsp
[-1].etree
));
2245 #line 633 "ldgram.y"
2246 { region
= lang_memory_region_lookup (yyvsp
[0].name
, TRUE
); }
2249 #line 636 "ldgram.y"
2253 #line 641 "ldgram.y"
2256 exp_get_vma(yyvsp
[0].etree
, 0L,"origin", lang_first_phase_enum
);
2260 #line 649 "ldgram.y"
2261 { region
->length
= exp_get_vma(yyvsp
[0].etree
,
2264 lang_first_phase_enum
);
2268 #line 658 "ldgram.y"
2269 { /* dummy action to avoid bison 1.25 error message */ }
2272 #line 669 "ldgram.y"
2273 { lang_set_flags (region
, yyvsp
[0].name
, 0); }
2276 #line 671 "ldgram.y"
2277 { lang_set_flags (region
, yyvsp
[0].name
, 1); }
2280 #line 676 "ldgram.y"
2281 { lang_startup(yyvsp
[-1].name
); }
2284 #line 682 "ldgram.y"
2285 { ldemul_hll((char *)NULL
); }
2288 #line 687 "ldgram.y"
2289 { ldemul_hll(yyvsp
[0].name
); }
2292 #line 689 "ldgram.y"
2293 { ldemul_hll(yyvsp
[0].name
); }
2296 #line 697 "ldgram.y"
2297 { ldemul_syslib(yyvsp
[0].name
); }
2300 #line 703 "ldgram.y"
2301 { lang_float(TRUE
); }
2304 #line 705 "ldgram.y"
2305 { lang_float(FALSE
); }
2308 #line 710 "ldgram.y"
2310 yyval
.nocrossref
= NULL
;
2314 #line 714 "ldgram.y"
2316 struct lang_nocrossref
*n
;
2318 n
= (struct lang_nocrossref
*) xmalloc (sizeof *n
);
2319 n
->name
= yyvsp
[-1].name
;
2320 n
->next
= yyvsp
[0].nocrossref
;
2321 yyval
.nocrossref
= n
;
2325 #line 723 "ldgram.y"
2327 struct lang_nocrossref
*n
;
2329 n
= (struct lang_nocrossref
*) xmalloc (sizeof *n
);
2330 n
->name
= yyvsp
[-2].name
;
2331 n
->next
= yyvsp
[0].nocrossref
;
2332 yyval
.nocrossref
= n
;
2336 #line 733 "ldgram.y"
2337 { ldlex_expression(); }
2340 #line 735 "ldgram.y"
2341 { ldlex_popstate(); yyval
.etree
=yyvsp
[0].etree
;}
2344 #line 740 "ldgram.y"
2345 { yyval
.etree
= exp_unop('-', yyvsp
[0].etree
); }
2348 #line 742 "ldgram.y"
2349 { yyval
.etree
= yyvsp
[-1].etree
; }
2352 #line 744 "ldgram.y"
2353 { yyval
.etree
= exp_unop((int) yyvsp
[-3].integer
,yyvsp
[-1].etree
); }
2356 #line 746 "ldgram.y"
2357 { yyval
.etree
= exp_unop('!', yyvsp
[0].etree
); }
2360 #line 748 "ldgram.y"
2361 { yyval
.etree
= yyvsp
[0].etree
; }
2364 #line 750 "ldgram.y"
2365 { yyval
.etree
= exp_unop('~', yyvsp
[0].etree
);}
2368 #line 753 "ldgram.y"
2369 { yyval
.etree
= exp_binop('*', yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2372 #line 755 "ldgram.y"
2373 { yyval
.etree
= exp_binop('/', yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2376 #line 757 "ldgram.y"
2377 { yyval
.etree
= exp_binop('%', yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2380 #line 759 "ldgram.y"
2381 { yyval
.etree
= exp_binop('+', yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2384 #line 761 "ldgram.y"
2385 { yyval
.etree
= exp_binop('-' , yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2388 #line 763 "ldgram.y"
2389 { yyval
.etree
= exp_binop(LSHIFT
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2392 #line 765 "ldgram.y"
2393 { yyval
.etree
= exp_binop(RSHIFT
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2396 #line 767 "ldgram.y"
2397 { yyval
.etree
= exp_binop(EQ
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2400 #line 769 "ldgram.y"
2401 { yyval
.etree
= exp_binop(NE
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2404 #line 771 "ldgram.y"
2405 { yyval
.etree
= exp_binop(LE
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2408 #line 773 "ldgram.y"
2409 { yyval
.etree
= exp_binop(GE
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2412 #line 775 "ldgram.y"
2413 { yyval
.etree
= exp_binop('<' , yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2416 #line 777 "ldgram.y"
2417 { yyval
.etree
= exp_binop('>' , yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2420 #line 779 "ldgram.y"
2421 { yyval
.etree
= exp_binop('&' , yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2424 #line 781 "ldgram.y"
2425 { yyval
.etree
= exp_binop('^' , yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2428 #line 783 "ldgram.y"
2429 { yyval
.etree
= exp_binop('|' , yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2432 #line 785 "ldgram.y"
2433 { yyval
.etree
= exp_trinop('?' , yyvsp
[-4].etree
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2436 #line 787 "ldgram.y"
2437 { yyval
.etree
= exp_binop(ANDAND
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2440 #line 789 "ldgram.y"
2441 { yyval
.etree
= exp_binop(OROR
, yyvsp
[-2].etree
, yyvsp
[0].etree
); }
2444 #line 791 "ldgram.y"
2445 { yyval
.etree
= exp_nameop(DEFINED
, yyvsp
[-1].name
); }
2448 #line 793 "ldgram.y"
2449 { yyval
.etree
= exp_bigintop (yyvsp
[0].bigint
.integer
, yyvsp
[0].bigint
.str
); }
2452 #line 795 "ldgram.y"
2453 { yyval
.etree
= exp_nameop(SIZEOF_HEADERS
,0); }
2456 #line 798 "ldgram.y"
2457 { yyval
.etree
= exp_nameop(SIZEOF
,yyvsp
[-1].name
); }
2460 #line 800 "ldgram.y"
2461 { yyval
.etree
= exp_nameop(ADDR
,yyvsp
[-1].name
); }
2464 #line 802 "ldgram.y"
2465 { yyval
.etree
= exp_nameop(LOADADDR
,yyvsp
[-1].name
); }
2468 #line 804 "ldgram.y"
2469 { yyval
.etree
= exp_unop(ABSOLUTE
, yyvsp
[-1].etree
); }
2472 #line 806 "ldgram.y"
2473 { yyval
.etree
= exp_unop(ALIGN_K
,yyvsp
[-1].etree
); }
2476 #line 808 "ldgram.y"
2477 { yyval
.etree
= exp_binop(ALIGN_K
,yyvsp
[-3].etree
,yyvsp
[-1].etree
); }
2480 #line 810 "ldgram.y"
2481 { yyval
.etree
= exp_binop (DATA_SEGMENT_ALIGN
, yyvsp
[-3].etree
, yyvsp
[-1].etree
); }
2484 #line 812 "ldgram.y"
2485 { yyval
.etree
= exp_unop(DATA_SEGMENT_END
, yyvsp
[-1].etree
); }
2488 #line 814 "ldgram.y"
2489 { yyval
.etree
= exp_unop(ALIGN_K
,yyvsp
[-1].etree
); }
2492 #line 816 "ldgram.y"
2493 { yyval
.etree
= exp_nameop(NAME
,yyvsp
[0].name
); }
2496 #line 818 "ldgram.y"
2497 { yyval
.etree
= exp_binop (MAX_K
, yyvsp
[-3].etree
, yyvsp
[-1].etree
); }
2500 #line 820 "ldgram.y"
2501 { yyval
.etree
= exp_binop (MIN_K
, yyvsp
[-3].etree
, yyvsp
[-1].etree
); }
2504 #line 822 "ldgram.y"
2505 { yyval
.etree
= exp_assert (yyvsp
[-3].etree
, yyvsp
[-1].name
); }
2508 #line 827 "ldgram.y"
2509 { yyval
.name
= yyvsp
[0].name
; }
2512 #line 828 "ldgram.y"
2516 #line 832 "ldgram.y"
2517 { yyval
.etree
= yyvsp
[-1].etree
; }
2520 #line 833 "ldgram.y"
2521 { yyval
.etree
= 0; }
2524 #line 837 "ldgram.y"
2525 { yyval
.etree
= yyvsp
[-1].etree
; }
2528 #line 838 "ldgram.y"
2529 { yyval
.etree
= 0; }
2532 #line 841 "ldgram.y"
2533 { ldlex_expression(); }
2536 #line 844 "ldgram.y"
2537 { ldlex_popstate (); ldlex_script (); }
2540 #line 846 "ldgram.y"
2542 lang_enter_output_section_statement(yyvsp
[-6].name
, yyvsp
[-4].etree
,
2544 0, yyvsp
[-2].etree
, yyvsp
[-3].etree
);
2548 #line 852 "ldgram.y"
2549 { ldlex_popstate (); ldlex_expression (); }
2552 #line 854 "ldgram.y"
2555 lang_leave_output_section_statement (yyvsp
[0].fill
, yyvsp
[-3].name
, yyvsp
[-1].section_phdr
, yyvsp
[-2].name
);
2559 #line 859 "ldgram.y"
2563 #line 861 "ldgram.y"
2564 { ldlex_expression (); }
2567 #line 863 "ldgram.y"
2568 { ldlex_popstate (); ldlex_script (); }
2571 #line 865 "ldgram.y"
2573 lang_enter_overlay (yyvsp
[-5].etree
, yyvsp
[-2].etree
);
2577 #line 870 "ldgram.y"
2578 { ldlex_popstate (); ldlex_expression (); }
2581 #line 872 "ldgram.y"
2584 lang_leave_overlay (yyvsp
[-11].etree
, (int) yyvsp
[-12].integer
,
2585 yyvsp
[0].fill
, yyvsp
[-3].name
, yyvsp
[-1].section_phdr
, yyvsp
[-2].name
);
2589 #line 882 "ldgram.y"
2590 { ldlex_expression (); }
2593 #line 884 "ldgram.y"
2596 lang_add_assignment (exp_assop ('=', ".", yyvsp
[0].etree
));
2600 #line 892 "ldgram.y"
2601 { sectype
= noload_section
; }
2604 #line 893 "ldgram.y"
2605 { sectype
= dsect_section
; }
2608 #line 894 "ldgram.y"
2609 { sectype
= copy_section
; }
2612 #line 895 "ldgram.y"
2613 { sectype
= info_section
; }
2616 #line 896 "ldgram.y"
2617 { sectype
= overlay_section
; }
2620 #line 901 "ldgram.y"
2621 { sectype
= normal_section
; }
2624 #line 902 "ldgram.y"
2625 { sectype
= normal_section
; }
2628 #line 906 "ldgram.y"
2629 { yyval
.etree
= yyvsp
[-2].etree
; }
2632 #line 907 "ldgram.y"
2633 { yyval
.etree
= (etree_type
*)NULL
; }
2636 #line 912 "ldgram.y"
2637 { yyval
.etree
= yyvsp
[-3].etree
; }
2640 #line 914 "ldgram.y"
2641 { yyval
.etree
= yyvsp
[-7].etree
; }
2644 #line 918 "ldgram.y"
2645 { yyval
.etree
= yyvsp
[-1].etree
; }
2648 #line 919 "ldgram.y"
2649 { yyval
.etree
= (etree_type
*) NULL
; }
2652 #line 924 "ldgram.y"
2653 { yyval
.integer
= 0; }
2656 #line 926 "ldgram.y"
2657 { yyval
.integer
= 1; }
2660 #line 931 "ldgram.y"
2661 { yyval
.name
= yyvsp
[0].name
; }
2664 #line 932 "ldgram.y"
2665 { yyval
.name
= DEFAULT_MEMORY_REGION
; }
2668 #line 937 "ldgram.y"
2670 yyval
.section_phdr
= NULL
;
2674 #line 941 "ldgram.y"
2676 struct lang_output_section_phdr_list
*n
;
2678 n
= ((struct lang_output_section_phdr_list
*)
2679 xmalloc (sizeof *n
));
2680 n
->name
= yyvsp
[0].name
;
2682 n
->next
= yyvsp
[-2].section_phdr
;
2683 yyval
.section_phdr
= n
;
2687 #line 957 "ldgram.y"
2690 lang_enter_overlay_section (yyvsp
[0].name
);
2694 #line 962 "ldgram.y"
2695 { ldlex_popstate (); ldlex_expression (); }
2698 #line 964 "ldgram.y"
2701 lang_leave_overlay_section (yyvsp
[0].fill
, yyvsp
[-1].section_phdr
);
2705 #line 981 "ldgram.y"
2706 { ldlex_expression (); }
2709 #line 982 "ldgram.y"
2710 { ldlex_popstate (); }
2713 #line 984 "ldgram.y"
2715 lang_new_phdr (yyvsp
[-5].name
, yyvsp
[-3].etree
, yyvsp
[-2].phdr
.filehdr
, yyvsp
[-2].phdr
.phdrs
, yyvsp
[-2].phdr
.at
,
2716 yyvsp
[-2].phdr
.flags
);
2720 #line 992 "ldgram.y"
2722 yyval
.etree
= yyvsp
[0].etree
;
2724 if (yyvsp
[0].etree
->type
.node_class
== etree_name
2725 && yyvsp
[0].etree
->type
.node_code
== NAME
)
2729 static const char * const phdr_types
[] =
2731 "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
2732 "PT_INTERP", "PT_NOTE", "PT_SHLIB",
2736 s
= yyvsp
[0].etree
->name
.name
;
2738 i
< sizeof phdr_types
/ sizeof phdr_types
[0];
2740 if (strcmp (s
, phdr_types
[i
]) == 0)
2742 yyval
.etree
= exp_intop (i
);
2745 if (i
== sizeof phdr_types
/ sizeof phdr_types
[0])
2747 if (strcmp (s
, "PT_GNU_EH_FRAME") == 0)
2748 yyval
.etree
= exp_intop (0x6474e550);
2749 else if (strcmp (s
, "PT_GNU_STACK") == 0)
2750 yyval
.etree
= exp_intop (0x6474e551);
2754 %X%P:%S: unknown phdr type `%s' (try integer literal)\n"),
2756 yyval
.etree
= exp_intop (0);
2763 #line 1036 "ldgram.y"
2765 memset (&yyval
.phdr
, 0, sizeof (struct phdr_info
));
2769 #line 1040 "ldgram.y"
2771 yyval
.phdr
= yyvsp
[0].phdr
;
2772 if (strcmp (yyvsp
[-2].name
, "FILEHDR") == 0 && yyvsp
[-1].etree
== NULL
)
2773 yyval
.phdr
.filehdr
= TRUE
;
2774 else if (strcmp (yyvsp
[-2].name
, "PHDRS") == 0 && yyvsp
[-1].etree
== NULL
)
2775 yyval
.phdr
.phdrs
= TRUE
;
2776 else if (strcmp (yyvsp
[-2].name
, "FLAGS") == 0 && yyvsp
[-1].etree
!= NULL
)
2777 yyval
.phdr
.flags
= yyvsp
[-1].etree
;
2779 einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"), yyvsp
[-2].name
);
2783 #line 1052 "ldgram.y"
2785 yyval
.phdr
= yyvsp
[0].phdr
;
2786 yyval
.phdr
.at
= yyvsp
[-2].etree
;
2790 #line 1060 "ldgram.y"
2796 #line 1064 "ldgram.y"
2798 yyval
.etree
= yyvsp
[-1].etree
;
2802 #line 1072 "ldgram.y"
2804 ldlex_version_file ();
2805 PUSH_ERROR (_("VERSION script"));
2809 #line 1077 "ldgram.y"
2816 #line 1086 "ldgram.y"
2818 ldlex_version_script ();
2822 #line 1090 "ldgram.y"
2828 #line 1102 "ldgram.y"
2830 lang_register_vers_node (NULL
, yyvsp
[-2].versnode
, NULL
);
2834 #line 1106 "ldgram.y"
2836 lang_register_vers_node (yyvsp
[-4].name
, yyvsp
[-2].versnode
, NULL
);
2840 #line 1110 "ldgram.y"
2842 lang_register_vers_node (yyvsp
[-5].name
, yyvsp
[-3].versnode
, yyvsp
[-1].deflist
);
2846 #line 1117 "ldgram.y"
2848 yyval
.deflist
= lang_add_vers_depend (NULL
, yyvsp
[0].name
);
2852 #line 1121 "ldgram.y"
2854 yyval
.deflist
= lang_add_vers_depend (yyvsp
[-1].deflist
, yyvsp
[0].name
);
2858 #line 1128 "ldgram.y"
2860 yyval
.versnode
= lang_new_vers_node (NULL
, NULL
);
2864 #line 1132 "ldgram.y"
2866 yyval
.versnode
= lang_new_vers_node (yyvsp
[-1].versyms
, NULL
);
2870 #line 1136 "ldgram.y"
2872 yyval
.versnode
= lang_new_vers_node (yyvsp
[-1].versyms
, NULL
);
2876 #line 1140 "ldgram.y"
2878 yyval
.versnode
= lang_new_vers_node (NULL
, yyvsp
[-1].versyms
);
2882 #line 1144 "ldgram.y"
2884 yyval
.versnode
= lang_new_vers_node (yyvsp
[-5].versyms
, yyvsp
[-1].versyms
);
2888 #line 1151 "ldgram.y"
2890 yyval
.versyms
= lang_new_vers_pattern (NULL
, yyvsp
[0].name
, ldgram_vers_current_lang
);
2894 #line 1155 "ldgram.y"
2896 yyval
.versyms
= lang_new_vers_pattern (yyvsp
[-2].versyms
, yyvsp
[0].name
, ldgram_vers_current_lang
);
2900 #line 1159 "ldgram.y"
2902 yyval
.name
= ldgram_vers_current_lang
;
2903 ldgram_vers_current_lang
= yyvsp
[-1].name
;
2907 #line 1164 "ldgram.y"
2909 yyval
.versyms
= yyvsp
[-2].versyms
;
2910 ldgram_vers_current_lang
= yyvsp
[-3].name
;
2914 #line 1169 "ldgram.y"
2916 yyval
.name
= ldgram_vers_current_lang
;
2917 ldgram_vers_current_lang
= yyvsp
[-1].name
;
2921 #line 1174 "ldgram.y"
2923 yyval
.versyms
= yyvsp
[-2].versyms
;
2924 ldgram_vers_current_lang
= yyvsp
[-3].name
;
2929 #line 705 "/usr/share/bison-1.35/bison.simple"
2941 short *yyssp1
= yyss
- 1;
2942 YYFPRINTF (stderr
, "state stack now");
2943 while (yyssp1
!= yyssp
)
2944 YYFPRINTF (stderr
, " %d", *++yyssp1
);
2945 YYFPRINTF (stderr
, "\n");
2954 /* Now `shift' the result of the reduction. Determine what state
2955 that goes to, based on the state we popped back to and the rule
2956 number reduced by. */
2960 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
2961 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
2962 yystate
= yytable
[yystate
];
2964 yystate
= yydefgoto
[yyn
- YYNTBASE
];
2969 /*------------------------------------.
2970 | yyerrlab -- here on detecting error |
2971 `------------------------------------*/
2973 /* If not already recovering from an error, report this error. */
2978 #ifdef YYERROR_VERBOSE
2979 yyn
= yypact
[yystate
];
2981 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
2983 YYSIZE_T yysize
= 0;
2988 /* Start YYX at -YYN if negative to avoid negative indexes in
2990 for (yyx
= yyn
< 0 ? -yyn
: 0;
2991 yyx
< (int) (sizeof (yytname
) / sizeof (char *)); yyx
++)
2992 if (yycheck
[yyx
+ yyn
] == yyx
)
2993 yysize
+= yystrlen (yytname
[yyx
]) + 15, yycount
++;
2994 yysize
+= yystrlen ("parse error, unexpected ") + 1;
2995 yysize
+= yystrlen (yytname
[YYTRANSLATE (yychar
)]);
2996 yymsg
= (char *) YYSTACK_ALLOC (yysize
);
2999 char *yyp
= yystpcpy (yymsg
, "parse error, unexpected ");
3000 yyp
= yystpcpy (yyp
, yytname
[YYTRANSLATE (yychar
)]);
3005 for (yyx
= yyn
< 0 ? -yyn
: 0;
3006 yyx
< (int) (sizeof (yytname
) / sizeof (char *));
3008 if (yycheck
[yyx
+ yyn
] == yyx
)
3010 const char *yyq
= ! yycount
? ", expecting " : " or ";
3011 yyp
= yystpcpy (yyp
, yyq
);
3012 yyp
= yystpcpy (yyp
, yytname
[yyx
]);
3017 YYSTACK_FREE (yymsg
);
3020 yyerror ("parse error; also virtual memory exhausted");
3023 #endif /* defined (YYERROR_VERBOSE) */
3024 yyerror ("parse error");
3029 /*--------------------------------------------------.
3030 | yyerrlab1 -- error raised explicitly by an action |
3031 `--------------------------------------------------*/
3033 if (yyerrstatus
== 3)
3035 /* If just tried and failed to reuse lookahead token after an
3036 error, discard it. */
3038 /* return failure if at end of input */
3039 if (yychar
== YYEOF
)
3041 YYDPRINTF ((stderr
, "Discarding token %d (%s).\n",
3042 yychar
, yytname
[yychar1
]));
3046 /* Else will try to reuse lookahead token after shifting the error
3049 yyerrstatus
= 3; /* Each real token shifted decrements this */
3054 /*-------------------------------------------------------------------.
3055 | yyerrdefault -- current state does not do anything special for the |
3057 `-------------------------------------------------------------------*/
3060 /* This is wrong; only states that explicitly want error tokens
3061 should shift them. */
3063 /* If its default is to accept any token, ok. Otherwise pop it. */
3064 yyn
= yydefact
[yystate
];
3070 /*---------------------------------------------------------------.
3071 | yyerrpop -- pop the current state because it cannot handle the |
3073 `---------------------------------------------------------------*/
3086 short *yyssp1
= yyss
- 1;
3087 YYFPRINTF (stderr
, "Error: state stack now");
3088 while (yyssp1
!= yyssp
)
3089 YYFPRINTF (stderr
, " %d", *++yyssp1
);
3090 YYFPRINTF (stderr
, "\n");
3098 yyn
= yypact
[yystate
];
3103 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3120 YYDPRINTF ((stderr
, "Shifting error token, "));
3131 /*-------------------------------------.
3132 | yyacceptlab -- YYACCEPT comes here. |
3133 `-------------------------------------*/
3138 /*-----------------------------------.
3139 | yyabortlab -- YYABORT comes here. |
3140 `-----------------------------------*/
3145 /*---------------------------------------------.
3146 | yyoverflowab -- parser overflow comes here. |
3147 `---------------------------------------------*/
3149 yyerror ("parser stack overflow");
3156 YYSTACK_FREE (yyss
);
3160 #line 1185 "ldgram.y"
3166 if (ldfile_assumed_script
)
3167 einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
3168 ldfile_input_filename
);
3169 if (error_index
> 0 && error_index
< ERROR_NAME_MAX
)
3170 einfo ("%P%F:%S: %s in %s\n", arg
, error_names
[error_index
-1]);
3172 einfo ("%P%F:%S: %s\n", arg
);