home *** CD-ROM | disk | FTP | other *** search
-
- /* A Bison parser, made from ./ldgram.y */
-
- #define YYBISON 1 /* Identify Bison output. */
-
- #define INT 258
- #define NAME 259
- #define PLUSEQ 260
- #define MINUSEQ 261
- #define MULTEQ 262
- #define DIVEQ 263
- #define LSHIFTEQ 264
- #define RSHIFTEQ 265
- #define ANDEQ 266
- #define OREQ 267
- #define OROR 268
- #define ANDAND 269
- #define EQ 270
- #define NE 271
- #define LE 272
- #define GE 273
- #define LSHIFT 274
- #define RSHIFT 275
- #define UNARY 276
- #define END 277
- #define ALIGN_K 278
- #define BLOCK 279
- #define LONG 280
- #define SHORT 281
- #define BYTE 282
- #define SECTIONS 283
- #define SIZEOF_HEADERS 284
- #define OUTPUT_FORMAT 285
- #define FORCE_COMMON_ALLOCATION 286
- #define OUTPUT_ARCH 287
- #define INCLUDE 288
- #define MEMORY 289
- #define DEFSYMEND 290
- #define NOLOAD 291
- #define DSECT 292
- #define COPY 293
- #define INFO 294
- #define OVERLAY 295
- #define DEFINED 296
- #define TARGET_K 297
- #define SEARCH_DIR 298
- #define MAP 299
- #define ENTRY 300
- #define OPTION_e 301
- #define OPTION_c 302
- #define OPTION_noinhibit_exec 303
- #define OPTION_s 304
- #define OPTION_S 305
- #define OPTION_sort_common 306
- #define OPTION_EB 307
- #define OPTION_EL 308
- #define OPTION_G 309
- #define OPTION_Gval 310
- #define OPTION_format 311
- #define OPTION_F 312
- #define OPTION_u 313
- #define OPTION_Bstatic 314
- #define OPTION_N 315
- #define SIZEOF 316
- #define NEXT 317
- #define ADDR 318
- #define OPTION_d 319
- #define OPTION_dc 320
- #define OPTION_dp 321
- #define OPTION_x 322
- #define OPTION_X 323
- #define OPTION_defsym 324
- #define OPTION_v 325
- #define OPTION_V 326
- #define OPTION_M 327
- #define OPTION_t 328
- #define STARTUP 329
- #define HLL 330
- #define SYSLIB 331
- #define FLOAT 332
- #define NOFLOAT 333
- #define OPTION_Map 334
- #define OPTION_n 335
- #define OPTION_r 336
- #define OPTION_o 337
- #define OPTION_b 338
- #define OPTION_R 339
- #define OPTION_relax 340
- #define OPTION_l 341
- #define OPTION_L 342
- #define OPTION_T 343
- #define OPTION_Aarch 344
- #define OPTION_Tfile 345
- #define OPTION_Texp 346
- #define OPTION_y 347
- #define OPTION_Ur 348
- #define ORIGIN 349
- #define FILL 350
- #define OPTION_g 351
- #define LENGTH 352
- #define CREATE_OBJECT_SYMBOLS 353
- #define INPUT 354
- #define OUTPUT 355
- #define CONSTRUCTORS 356
- #define OPTION_RETAIN_SYMBOLS_FILE 357
- #define ALIGNMOD 358
- #define AT 359
- #define CHIP 360
- #define LIST 361
- #define SECT 362
- #define ABSOLUTE 363
- #define LOAD 364
- #define NEWLINE 365
- #define ENDWORD 366
- #define ORDER 367
- #define NAMEWORD 368
- #define FORMAT 369
- #define PUBLIC 370
- #define BASE 371
- #define ALIAS 372
- #define TRUNCATE 373
-
- #line 21 "./ldgram.y"
-
- /*
-
- */
-
- #define DONTDECLARE_MALLOC
-
- #include "bfd.h"
- #include "sysdep.h"
- #include "ld.h"
- #include "ldexp.h"
- #include "ldver.h"
- #include "ldlang.h"
- #include "ldemul.h"
- #include "ldfile.h"
- #include "ldmisc.h"
- #include "mri.h"
-
- #define YYDEBUG 1
-
- boolean option_v;
- extern unsigned int lineno;
- extern boolean trace_files;
- extern boolean write_map;
- extern boolean option_longmap;
- extern int g_switch_value;
- boolean hex_mode;
- static int typebits;
- strip_symbols_type strip_symbols=STRIP_NONE;
- discard_locals_type discard_locals=DISCARD_NONE;
-
-
- lang_memory_region_type *region;
-
-
- lang_memory_region_type *lang_memory_region_lookup();
- lang_output_section_statement_type *lang_output_section_statement_lookup();
- etree_type *lang_atin();
- #ifdef __STDC__
-
- void lang_add_data(int type, union etree_union *exp);
- void lang_enter_output_section_statement(char *output_section_statement_name, etree_type *address_exp, int flags, bfd_vma block_value,etree_type*,etree_type*, etree_type*);
-
- #else
-
- void lang_add_data();
- void lang_enter_output_section_statement();
-
- #endif /* __STDC__ */
-
- extern args_type command_line;
- char *current_file;
- boolean ldgram_want_filename = true;
- boolean had_script = false;
- boolean force_make_executable = false;
-
- boolean ldgram_in_script = false;
- boolean ldgram_had_equals = false;
- /* LOCALS */
-
-
- #define ERROR_NAME_MAX 20
- static char *error_names[ERROR_NAME_MAX];
- static int error_index;
- #define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
- #define POP_ERROR() error_index--;
-
- #line 88 "./ldgram.y"
- typedef union {
- bfd_vma integer;
- int voidval;
- char *name;
- int token;
- union etree_union *etree;
- struct sec *section;
- struct lang_output_section_statement_struct *output_section_statement;
- union lang_statement_union **statement_ptr;
- int lineno;
- struct {
- FILE *file;
- char *name;
- unsigned int lineno;
- } state;
-
-
- } YYSTYPE;
- #line 164 "./ldgram.y"
-
- ld_config_type config;
-
- #ifndef YYLTYPE
- typedef
- struct yyltype
- {
- int timestamp;
- int first_line;
- int first_column;
- int last_line;
- int last_column;
- char *text;
- }
- yyltype;
-
- #define YYLTYPE yyltype
- #endif
-
- #include <stdio.h>
-
- #ifndef __STDC__
- #define const
- #endif
-
-
-
- #define YYFINAL 417
- #define YYFLAG -32768
- #define YYNTBASE 142
-
- #define YYTRANSLATE(x) ((unsigned)(x) <= 373 ? yytranslate[x] : 206)
-
- static const short yytranslate[] = { 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 140, 2, 2, 2, 33, 20, 2, 36,
- 137, 31, 29, 135, 30, 2, 32, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 15, 136, 23,
- 9, 24, 14, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 138, 2, 139, 19, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 43, 18, 44, 141, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
- 6, 7, 8, 10, 11, 12, 13, 16, 17, 21,
- 22, 25, 26, 27, 28, 34, 35, 37, 38, 39,
- 40, 41, 42, 45, 46, 47, 48, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134
- };
-
- #if YYDEBUG != 0
- static const short yyprhs[] = { 0,
- 0, 2, 4, 7, 8, 10, 12, 14, 16, 19,
- 21, 23, 25, 27, 29, 32, 34, 36, 39, 42,
- 44, 46, 48, 50, 52, 54, 56, 58, 60, 63,
- 64, 68, 70, 72, 75, 77, 79, 81, 82, 88,
- 89, 94, 95, 101, 103, 106, 107, 114, 117, 119,
- 121, 124, 126, 129, 133, 134, 137, 141, 142, 145,
- 150, 152, 154, 157, 159, 164, 169, 173, 176, 181,
- 185, 190, 195, 200, 203, 206, 209, 214, 219, 222,
- 225, 226, 230, 233, 234, 236, 240, 242, 246, 247,
- 250, 253, 254, 256, 258, 260, 262, 264, 266, 268,
- 270, 275, 280, 285, 290, 295, 297, 302, 307, 308,
- 314, 316, 320, 323, 328, 331, 334, 335, 340, 343,
- 345, 349, 351, 352, 357, 358, 364, 365, 371, 374,
- 376, 378, 380, 382, 387, 392, 395, 397, 399, 401,
- 403, 406, 407, 409, 411, 413, 415, 417, 419, 421,
- 423, 425, 427, 431, 435, 437, 438, 444, 447, 451,
- 452, 453, 461, 465, 469, 473, 474, 479, 484, 488,
- 492, 494, 499, 503, 504, 506, 508, 509, 512, 515,
- 519, 524, 527, 530, 533, 537, 541, 545, 549, 553,
- 557, 561, 565, 569, 573, 577, 581, 585, 589, 593,
- 597, 603, 607, 611, 616, 618, 620, 625, 630, 635,
- 640, 642, 647, 648, 649, 650, 651, 652, 653, 668,
- 670, 672, 674, 676, 678, 679, 682, 688, 690, 695,
- 698
- };
-
- #endif
-
- static const short yyrhs[] = { 144,
- 0, 4, 0, 144, 145, 0, 0, 75, 0, 86,
- 0, 87, 0, 89, 0, 95, 4, 0, 88, 0,
- 96, 0, 76, 0, 65, 0, 66, 0, 74, 4,
- 0, 97, 0, 109, 0, 98, 143, 0, 62, 4,
- 0, 84, 0, 83, 0, 64, 0, 67, 0, 80,
- 0, 101, 0, 81, 0, 112, 0, 82, 0, 72,
- 4, 0, 0, 107, 146, 3, 0, 108, 0, 105,
- 0, 99, 4, 0, 103, 0, 73, 0, 4, 0,
- 0, 63, 143, 147, 151, 35, 0, 0, 106, 148,
- 158, 35, 0, 0, 104, 143, 149, 158, 35, 0,
- 102, 0, 100, 143, 0, 0, 85, 150, 4, 9,
- 195, 51, 0, 118, 143, 0, 68, 0, 69, 0,
- 70, 4, 0, 71, 0, 30, 4, 0, 43, 158,
- 44, 0, 0, 152, 153, 0, 153, 154, 126, 0,
- 0, 121, 195, 0, 121, 195, 135, 195, 0, 4,
- 0, 122, 0, 128, 155, 0, 127, 0, 131, 4,
- 9, 195, 0, 131, 4, 135, 195, 0, 131, 4,
- 195, 0, 130, 4, 0, 123, 4, 135, 195, 0,
- 123, 4, 195, 0, 123, 4, 9, 195, 0, 37,
- 4, 9, 195, 0, 119, 4, 9, 195, 0, 124,
- 157, 0, 125, 156, 0, 129, 4, 0, 133, 4,
- 135, 4, 0, 133, 4, 135, 3, 0, 132, 195,
- 0, 134, 3, 0, 0, 155, 135, 4, 0, 155,
- 4, 0, 0, 4, 0, 156, 135, 4, 0, 4,
- 0, 157, 135, 4, 0, 0, 159, 160, 0, 160,
- 161, 0, 0, 180, 0, 164, 0, 187, 0, 188,
- 0, 190, 0, 192, 0, 166, 0, 136, 0, 58,
- 36, 4, 137, 0, 59, 36, 143, 137, 0, 116,
- 36, 143, 137, 0, 46, 36, 4, 137, 0, 48,
- 36, 4, 137, 0, 47, 0, 115, 36, 163, 137,
- 0, 60, 36, 143, 137, 0, 0, 49, 143, 162,
- 160, 35, 0, 4, 0, 163, 135, 4, 0, 163,
- 4, 0, 42, 43, 165, 44, 0, 165, 197, 0,
- 165, 166, 0, 0, 61, 36, 4, 137, 0, 178,
- 177, 0, 4, 0, 167, 179, 4, 0, 4, 0,
- 0, 138, 169, 167, 139, 0, 0, 4, 170, 36,
- 167, 137, 0, 0, 31, 171, 36, 167, 137, 0,
- 178, 177, 0, 114, 0, 136, 0, 117, 0, 168,
- 0, 174, 36, 195, 137, 0, 111, 36, 195, 137,
- 0, 173, 172, 0, 172, 0, 39, 0, 40, 0,
- 41, 0, 9, 193, 0, 0, 5, 0, 6, 0,
- 7, 0, 8, 0, 10, 0, 11, 0, 12, 0,
- 13, 0, 136, 0, 135, 0, 4, 9, 193, 0,
- 4, 176, 193, 0, 135, 0, 0, 50, 43, 182,
- 181, 44, 0, 181, 182, 0, 181, 135, 182, 0,
- 0, 0, 4, 183, 186, 15, 184, 179, 185, 0,
- 110, 9, 193, 0, 113, 9, 193, 0, 36, 4,
- 137, 0, 0, 90, 36, 143, 137, 0, 91, 36,
- 189, 137, 0, 91, 36, 137, 0, 189, 179, 143,
- 0, 143, 0, 92, 36, 191, 137, 0, 191, 179,
- 143, 0, 0, 93, 0, 94, 0, 0, 194, 195,
- 0, 30, 195, 0, 36, 195, 137, 0, 78, 36,
- 195, 137, 0, 140, 195, 0, 29, 195, 0, 141,
- 195, 0, 195, 31, 195, 0, 195, 32, 195, 0,
- 195, 33, 195, 0, 195, 29, 195, 0, 195, 30,
- 195, 0, 195, 27, 195, 0, 195, 28, 195, 0,
- 195, 21, 195, 0, 195, 22, 195, 0, 195, 25,
- 195, 0, 195, 26, 195, 0, 195, 23, 195, 0,
- 195, 24, 195, 0, 195, 20, 195, 0, 195, 19,
- 195, 0, 195, 18, 195, 0, 195, 14, 195, 15,
- 195, 0, 195, 17, 195, 0, 195, 16, 195, 0,
- 57, 36, 4, 137, 0, 3, 0, 45, 0, 77,
- 36, 4, 137, 0, 79, 36, 4, 137, 0, 124,
- 36, 195, 137, 0, 37, 36, 195, 137, 0, 4,
- 0, 120, 36, 195, 137, 0, 0, 0, 0, 0,
- 0, 0, 4, 198, 204, 196, 199, 43, 200, 173,
- 44, 201, 175, 205, 202, 179, 0, 52, 0, 53,
- 0, 54, 0, 55, 0, 56, 0, 0, 195, 15,
- 0, 195, 36, 203, 137, 15, 0, 15, 0, 36,
- 203, 137, 15, 0, 24, 4, 0, 0
- };
-
- #if YYDEBUG != 0
- static const short yyrline[] = { 0,
- 170, 173, 176, 178, 181, 183, 188, 193, 196, 201,
- 205, 208, 212, 215, 218, 222, 228, 234, 238, 241,
- 244, 248, 252, 255, 259, 262, 266, 270, 274, 278,
- 283, 287, 291, 295, 299, 303, 307, 310, 311, 313,
- 315, 317, 319, 321, 327, 334, 335, 338, 340, 346,
- 352, 356, 360, 363, 368, 373, 378, 380, 383, 385,
- 386, 389, 393, 394, 395, 397, 399, 401, 403, 405,
- 407, 409, 411, 413, 414, 415, 417, 419, 421, 423,
- 425, 428, 430, 431, 434, 437, 440, 443, 447, 452,
- 458, 460, 465, 467, 468, 469, 470, 471, 472, 473,
- 474, 476, 478, 480, 482, 484, 486, 487, 489, 490,
- 493, 497, 500, 506, 510, 512, 513, 516, 519, 522,
- 525, 529, 534, 539, 540, 544, 545, 549, 552, 554,
- 558, 559, 564, 565, 570, 580, 582, 585, 588, 590,
- 594, 602, 607, 610, 612, 614, 616, 618, 620, 622,
- 627, 627, 631, 636, 645, 646, 649, 653, 655, 656,
- 660, 662, 665, 671, 680, 685, 689, 694, 696, 700,
- 703, 708, 710, 713, 716, 719, 724, 726, 729, 732,
- 734, 736, 738, 740, 743, 745, 747, 749, 751, 753,
- 755, 757, 759, 761, 763, 765, 767, 769, 771, 773,
- 775, 777, 779, 781, 783, 785, 788, 790, 792, 794,
- 796, 801, 803, 806, 808, 810, 814, 814, 821, 823,
- 825, 826, 827, 828, 829, 833, 835, 836, 837, 840,
- 843
- };
-
- static const char * const yytname[] = { "$","error","$illegal.","INT","NAME",
- "PLUSEQ","MINUSEQ","MULTEQ","DIVEQ","'='","LSHIFTEQ","RSHIFTEQ","ANDEQ","OREQ",
- "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQ","NE","'<'","'>'","LE","GE",
- "LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","END","'('","ALIGN_K",
- "BLOCK","LONG","SHORT","BYTE","SECTIONS","'{'","'}'","SIZEOF_HEADERS","OUTPUT_FORMAT",
- "FORCE_COMMON_ALLOCATION","OUTPUT_ARCH","INCLUDE","MEMORY","DEFSYMEND","NOLOAD",
- "DSECT","COPY","INFO","OVERLAY","DEFINED","TARGET_K","SEARCH_DIR","MAP","ENTRY",
- "OPTION_e","OPTION_c","OPTION_noinhibit_exec","OPTION_s","OPTION_S","OPTION_sort_common",
- "OPTION_EB","OPTION_EL","OPTION_G","OPTION_Gval","OPTION_format","OPTION_F",
- "OPTION_u","OPTION_Bstatic","OPTION_N","SIZEOF","NEXT","ADDR","OPTION_d","OPTION_dc",
- "OPTION_dp","OPTION_x","OPTION_X","OPTION_defsym","OPTION_v","OPTION_V","OPTION_M",
- "OPTION_t","STARTUP","HLL","SYSLIB","FLOAT","NOFLOAT","OPTION_Map","OPTION_n",
- "OPTION_r","OPTION_o","OPTION_b","OPTION_R","OPTION_relax","OPTION_l","OPTION_L",
- "OPTION_T","OPTION_Aarch","OPTION_Tfile","OPTION_Texp","OPTION_y","OPTION_Ur",
- "ORIGIN","FILL","OPTION_g","LENGTH","CREATE_OBJECT_SYMBOLS","INPUT","OUTPUT",
- "CONSTRUCTORS","OPTION_RETAIN_SYMBOLS_FILE","ALIGNMOD","AT","CHIP","LIST","SECT",
- "ABSOLUTE","LOAD","NEWLINE","ENDWORD","ORDER","NAMEWORD","FORMAT","PUBLIC","BASE",
- "ALIAS","TRUNCATE","','","';'","')'","'['","']'","'!'","'~'","file","filename",
- "command_line","command_line_option","@1","@2","@3","@4","@5","mri_script_file",
- "@6","mri_script_lines","mri_script_command","ordernamelist","mri_load_name_list",
- "mri_abs_name_list","script_file","@7","ifile_list","ifile_p1","@8","input_list",
- "sections","sec_or_group_p1","statement_anywhere","file_NAME_list","input_section_spec",
- "@9","@10","@11","statement","statement_list","length","fill_opt","assign_op",
- "end","assignment","opt_comma","memory","memory_spec_list","memory_spec","@12",
- "origin_spec","length_spec","attributes_opt","startup","high_level_library",
- "high_level_library_NAME_list","low_level_library","low_level_library_NAME_list",
- "floating_point_support","mustbe_exp","@13","exp","opt_at","section","@14","@15",
- "@16","@17","@18","type","opt_exp_with_type","memspec_opt",""
- };
- #endif
-
- static const short yyr1[] = { 0,
- 142, 143, 144, 144, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 146,
- 145, 145, 145, 145, 145, 145, 145, 147, 145, 148,
- 145, 149, 145, 145, 145, 150, 145, 145, 145, 145,
- 145, 145, 145, 145, 152, 151, 153, 153, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
- 154, 155, 155, 155, 156, 156, 157, 157, 159, 158,
- 160, 160, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 161, 161, 162, 161,
- 163, 163, 163, 164, 165, 165, 165, 166, 166, 167,
- 167, 168, 169, 168, 170, 168, 171, 168, 172, 172,
- 172, 172, 172, 172, 172, 173, 173, 174, 174, 174,
- 175, 175, 176, 176, 176, 176, 176, 176, 176, 176,
- 177, 177, 178, 178, 179, 179, 180, 181, 181, 181,
- 183, 182, 184, 185, 186, 186, 187, 188, 188, 189,
- 189, 190, 191, 191, 192, 192, 194, 193, 195, 195,
- 195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
- 195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
- 195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
- 195, 196, 196, 198, 199, 200, 201, 202, 197, 203,
- 203, 203, 203, 203, 203, 204, 204, 204, 204, 205,
- 205
- };
-
- static const short yyr2[] = { 0,
- 1, 1, 2, 0, 1, 1, 1, 1, 2, 1,
- 1, 1, 1, 1, 2, 1, 1, 2, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
- 3, 1, 1, 2, 1, 1, 1, 0, 5, 0,
- 4, 0, 5, 1, 2, 0, 6, 2, 1, 1,
- 2, 1, 2, 3, 0, 2, 3, 0, 2, 4,
- 1, 1, 2, 1, 4, 4, 3, 2, 4, 3,
- 4, 4, 4, 2, 2, 2, 4, 4, 2, 2,
- 0, 3, 2, 0, 1, 3, 1, 3, 0, 2,
- 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 4, 4, 4, 4, 4, 1, 4, 4, 0, 5,
- 1, 3, 2, 4, 2, 2, 0, 4, 2, 1,
- 3, 1, 0, 4, 0, 5, 0, 5, 2, 1,
- 1, 1, 1, 4, 4, 2, 1, 1, 1, 1,
- 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 3, 1, 0, 5, 2, 3, 0,
- 0, 7, 3, 3, 3, 0, 4, 4, 3, 3,
- 1, 4, 3, 0, 1, 1, 0, 2, 2, 3,
- 4, 2, 2, 2, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 5, 3, 3, 4, 1, 1, 4, 4, 4, 4,
- 1, 4, 0, 0, 0, 0, 0, 0, 14, 1,
- 1, 1, 1, 1, 0, 2, 5, 1, 4, 2,
- 0
- };
-
- static const short yydefact[] = { 4,
- 1, 37, 0, 89, 0, 0, 22, 13, 14, 23,
- 49, 50, 0, 52, 0, 36, 0, 5, 12, 24,
- 26, 28, 21, 20, 46, 6, 7, 10, 8, 0,
- 11, 16, 0, 0, 0, 25, 44, 35, 0, 33,
- 40, 30, 32, 17, 27, 0, 3, 53, 0, 92,
- 19, 2, 38, 51, 29, 15, 0, 9, 18, 34,
- 45, 42, 89, 0, 48, 54, 90, 55, 0, 89,
- 0, 31, 0, 0, 0, 106, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 175, 176, 0, 0,
- 100, 91, 94, 99, 0, 93, 95, 96, 97, 98,
- 0, 58, 0, 0, 41, 143, 144, 145, 146, 177,
- 147, 148, 149, 150, 177, 117, 0, 0, 109, 0,
- 0, 0, 0, 0, 0, 0, 174, 0, 0, 152,
- 151, 119, 39, 56, 205, 211, 0, 0, 0, 0,
- 206, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 153, 0, 154, 0, 0, 0, 92, 161, 160, 0,
- 0, 0, 0, 0, 169, 171, 156, 156, 111, 0,
- 0, 61, 0, 0, 0, 62, 0, 0, 0, 64,
- 84, 0, 0, 0, 0, 0, 0, 0, 183, 179,
- 0, 0, 0, 0, 0, 0, 0, 182, 184, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 178,
- 214, 114, 116, 115, 104, 105, 0, 166, 0, 101,
- 102, 108, 118, 167, 155, 168, 0, 172, 0, 113,
- 0, 107, 103, 0, 0, 59, 0, 87, 74, 85,
- 75, 63, 76, 68, 0, 79, 0, 80, 57, 180,
- 0, 0, 0, 0, 0, 0, 0, 203, 202, 200,
- 199, 198, 192, 193, 196, 197, 194, 195, 190, 191,
- 188, 189, 185, 186, 187, 0, 110, 0, 0, 157,
- 0, 158, 170, 173, 112, 0, 0, 0, 0, 0,
- 70, 0, 0, 83, 0, 0, 0, 67, 0, 210,
- 204, 207, 181, 208, 209, 0, 228, 225, 0, 213,
- 0, 0, 159, 72, 73, 60, 71, 69, 88, 86,
- 82, 65, 66, 78, 77, 201, 220, 221, 222, 223,
- 224, 0, 226, 225, 0, 215, 165, 0, 156, 0,
- 0, 0, 0, 177, 0, 229, 0, 0, 216, 163,
- 0, 162, 227, 212, 0, 177, 122, 127, 138, 139,
- 140, 0, 130, 132, 131, 123, 133, 137, 0, 0,
- 0, 164, 0, 0, 0, 0, 217, 136, 0, 129,
- 0, 0, 0, 120, 156, 142, 0, 156, 156, 135,
- 124, 0, 177, 231, 134, 126, 128, 121, 141, 0,
- 218, 230, 156, 219, 0, 0, 0
- };
-
- static const short yydefgoto[] = { 415,
- 53, 1, 47, 64, 68, 63, 70, 57, 101, 102,
- 134, 188, 252, 251, 249, 49, 50, 67, 92, 157,
- 170, 93, 154, 94, 395, 377, 386, 383, 384, 378,
- 379, 380, 404, 115, 132, 95, 402, 96, 229, 159,
- 228, 349, 362, 289, 97, 98, 167, 99, 168, 100,
- 151, 152, 191, 346, 224, 286, 353, 365, 396, 413,
- 342, 320, 411
- };
-
- static const short yypact[] = {-32768,
- 702,-32768, 19,-32768, 30, 43,-32768,-32768,-32768,-32768,
- -32768,-32768, 67,-32768, 70,-32768, 84,-32768,-32768,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 85,
- -32768,-32768, 43, 87, 43,-32768,-32768,-32768, 43,-32768,
- -32768,-32768,-32768,-32768,-32768, 43,-32768,-32768, 48,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768, 90,-32768,-32768,-32768,
- -32768,-32768,-32768, -1,-32768,-32768, 383,-32768, 88,-32768,
- 61,-32768, 221, 76, 86,-32768, 89, 43, 83, 92,
- 93, 94, 96, 97, 99, 106,-32768,-32768, 110, 111,
- -32768,-32768,-32768,-32768, -73,-32768,-32768,-32768,-32768,-32768,
- 117,-32768, 296, 120,-32768,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768, 153, 156,-32768, 157,
- 158, 43, 43, 159, 43, 2,-32768, 160, 43,-32768,
- -32768,-32768,-32768, 332,-32768,-32768, 296, 296, 296, 129,
- -32768, 136, 137, 140, 141, 142, 296, 296, 666,-32768,
- -32768, 296,-32768, 4, 42, 46,-32768,-32768,-32768, 49,
- 50, 51, 52, 62,-32768,-32768, -108, -105,-32768, 1,
- 63,-32768, 176, 197, 296,-32768, 199, 202, 203,-32768,
- -32768, 204, 205, 206, 296, 207, 209, 91,-32768,-32768,
- 504, 296, 211, 212, 296, 214, 296,-32768,-32768, 296,
- 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
- 296, 296, 296, 296, 296, 296, 296, 296,-32768, 850,
- 221,-32768,-32768,-32768,-32768,-32768, 356, 177, 5,-32768,
- -32768,-32768,-32768,-32768,-32768,-32768, 43,-32768, 43,-32768,
- 217,-32768,-32768, 227, 231, 646, 145,-32768, 107,-32768,
- 108, 6,-32768,-32768, 216, 850, 109,-32768,-32768,-32768,
- 524, 104, 119, 544, 121, 564, 830, 483, 728, 865,
- 458, 878, 889, 889, 25, 25, 25, 25, 9, 9,
- 35, 35,-32768,-32768,-32768, 260,-32768, 243, 233,-32768,
- 157,-32768,-32768,-32768,-32768, 296, 296, 296, 296, 296,
- 850, 253, 255,-32768, 256, 296, 296, 850, 81,-32768,
- -32768,-32768,-32768,-32768,-32768, 296,-32768, 114, 807, 146,
- 125, 155,-32768, 850, 850, 850, 850, 850,-32768,-32768,
- -32768, 850, 850,-32768,-32768, 850,-32768,-32768,-32768,-32768,
- -32768, 130,-32768, 26, 232,-32768,-32768, 261, 139, 257,
- 134, 296, 234,-32768, 165,-32768, 264, 584,-32768,-32768,
- 273,-32768,-32768,-32768, 272,-32768, 7,-32768,-32768,-32768,
- -32768, 245,-32768,-32768,-32768,-32768,-32768,-32768, 20, 248,
- -73,-32768, 262, 265, 296, 287,-32768,-32768, 296,-32768,
- 287, 287, 604,-32768, -113, 283, 626, -65, -60,-32768,
- -32768, 298,-32768, 280,-32768,-32768,-32768,-32768,-32768, 302,
- -32768,-32768, 139,-32768, 307, 308,-32768
- };
-
- static const short yypgoto[] = {-32768,
- -2,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -32768,-32768,-32768,-32768,-32768, -42,-32768, 152,-32768,-32768,
- -32768,-32768,-32768, 161, -305,-32768,-32768,-32768,-32768, -69,
- -32768,-32768,-32768,-32768, -67, -354, -164,-32768,-32768, -222,
- -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -115,-32768, -102,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- -28,-32768,-32768
- };
-
-
- #define YYLAST 922
-
-
- static const short yytable[] = { 153,
- 149, 72, 237, 239, 240, 52, 292, 221, 158, 304,
- 381, 106, 107, 108, 109, 110, 111, 112, 113, 114,
- 71, 235, 48, 367, 381, 401, 235, 104, 236, 235,
- 59, 238, 61, 51, 189, 190, 62, 214, 215, 216,
- 217, 218, -125, 65, 198, 199, 52, 222, 290, 220,
- 368, 212, 213, 214, 215, 216, 217, 218, 369, 370,
- 371, 130, 131, 387, 83, 216, 217, 218, 323, 235,
- 54, 406, 246, 55, 235, 119, 407, 337, 338, 339,
- 340, 341, 256, 334, 335, 398, 399, 56, 58, 261,
- 60, 66, 264, 69, 266, 105, 103, 267, 268, 269,
- 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 135, 136, 116, 161,
- 162, 117, 164, 166, 118, 120, 171, 121, 122, 123,
- 372, 124, 125, 373, 126, 241, 374, 242, 165, 291,
- 305, 127, 137, 138, 301, 128, 129, 135, 136, 139,
- 140, 133, 308, 299, 150, 375, 155, 376, 141, 156,
- 158, 160, 163, 169, 192, 337, 338, 339, 340, 341,
- 142, 193, 194, 137, 138, 195, 196, 197, 225, 244,
- 139, 140, 226, 319, 355, 230, 231, 232, 233, 141,
- 143, 144, 145, 324, 325, 326, 327, 328, 234, 243,
- 245, 142, 247, 332, 333, 248, 250, 253, 254, 255,
- 257, 258, 288, 336, 262, 263, 259, 265, 135, 136,
- 295, 143, 144, 145, 306, 106, 107, 108, 109, 110,
- 111, 112, 113, 114, 293, 296, 294, 146, 360, 297,
- 311, 302, 303, 309, 137, 138, 321, 322, 414, 358,
- 382, 139, 140, 147, 148, 312, 329, 314, 330, 331,
- 141, 347, 135, 136, 348, 345, 350, 352, 146, 354,
- 357, 356, 142, 235, 317, 367, 359, 361, 363, 300,
- 385, 366, 393, 389, 147, 148, 397, 409, 137, 138,
- 394, 403, 143, 144, 145, 318, 140, 391, 135, 136,
- 392, 408, 368, 410, 141, 412, 416, 417, 227, 388,
- 369, 370, 371, 390, 223, 351, 142, 0, 0, 0,
- 0, 0, 0, 0, 137, 138, 0, 0, 0, 0,
- 0, 139, 140, 0, 0, 172, 143, 144, 145, 146,
- 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 307, 0, 142, 0, 0, 147, 148, 0, 0, 73,
- 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
- 0, 0, 143, 144, 145, 0, 0, 0, 0, 0,
- 0, 0, 372, 146, 0, 373, 73, 0, 374, 0,
- 287, 0, 0, 0, 0, 0, 0, 74, 0, 147,
- 148, 75, 76, 77, 78, 79, 0, 375, 0, 376,
- 0, 0, 0, 80, 81, 82, 83, 0, 0, 146,
- 0, 0, 0, 0, 74, 0, 0, 0, 75, 76,
- 77, 78, 79, 0, 0, 147, 148, 0, 0, 0,
- 80, 81, 82, 83, 0, 84, 85, 86, 87, 88,
- 174, 0, 175, 176, 177, 178, 179, -81, 180, 181,
- 182, 183, 184, 185, 186, 187, 0, 0, 0, 0,
- 89, 90, 84, 85, 86, 87, 88, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 218, 91, 0, 0, 0, 0, 0, 89, 90, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 0, 200, 91, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 200, 0, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 200, 0, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 200, 0, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 200, 0, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 200, 0, 201,
- 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
- 212, 213, 214, 215, 216, 217, 218, 0, 0, 200,
- 260, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 200,
- 310, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 200,
- 313, 201, 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 0,
- 315, 0, 0, 0, 0, 2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 219, 0, 0, 0,
- 364, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 400, 0, 0, 0, 4, 203, 204, 205, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 218, 0, 405, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 0, 0,
- 298, 20, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 0, 0, 0, 0, 0, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 0, 0, 45, 0, 0, 0, 0, 0, 46,
- 200, 343, 201, 202, 203, 204, 205, 206, 207, 208,
- 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
- 0, 0, 344, 200, 316, 201, 202, 203, 204, 205,
- 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 200, 0, 201, 202, 203, 204, 205,
- 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, 214, 215, 216, 217, 218, 206, 207,
- 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
- 218, 208, 209, 210, 211, 212, 213, 214, 215, 216,
- 217, 218
- };
-
- static const short yycheck[] = { 115,
- 103, 3, 167, 168, 4, 4, 229, 4, 4, 4,
- 365, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 63, 135, 4, 4, 379, 139, 135, 70, 137, 135,
- 33, 137, 35, 4, 137, 138, 39, 29, 30, 31,
- 32, 33, 36, 46, 147, 148, 4, 44, 44, 152,
- 31, 27, 28, 29, 30, 31, 32, 33, 39, 40,
- 41, 135, 136, 44, 61, 31, 32, 33, 291, 135,
- 4, 137, 175, 4, 135, 78, 137, 52, 53, 54,
- 55, 56, 185, 3, 4, 391, 392, 4, 4, 192,
- 4, 44, 195, 4, 197, 35, 9, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
- 213, 214, 215, 216, 217, 218, 3, 4, 43, 122,
- 123, 36, 125, 126, 36, 43, 129, 36, 36, 36,
- 111, 36, 36, 114, 36, 135, 117, 137, 137, 135,
- 135, 36, 29, 30, 247, 36, 36, 3, 4, 36,
- 37, 35, 255, 9, 35, 136, 4, 138, 45, 4,
- 4, 4, 4, 4, 36, 52, 53, 54, 55, 56,
- 57, 36, 36, 29, 30, 36, 36, 36, 137, 4,
- 36, 37, 137, 286, 349, 137, 137, 137, 137, 45,
- 77, 78, 79, 296, 297, 298, 299, 300, 137, 137,
- 4, 57, 4, 306, 307, 4, 4, 4, 4, 4,
- 4, 3, 36, 316, 4, 4, 126, 4, 3, 4,
- 4, 77, 78, 79, 9, 5, 6, 7, 8, 9,
- 10, 11, 12, 13, 237, 9, 239, 124, 354, 9,
- 137, 135, 135, 135, 29, 30, 4, 15, 413, 352,
- 366, 36, 37, 140, 141, 137, 4, 137, 4, 4,
- 45, 137, 3, 4, 110, 120, 137, 36, 124, 9,
- 137, 15, 57, 135, 15, 4, 43, 113, 15, 135,
- 36, 9, 385, 36, 140, 141, 389, 403, 29, 30,
- 4, 9, 77, 78, 79, 36, 37, 36, 3, 4,
- 36, 4, 31, 24, 45, 4, 0, 0, 157, 379,
- 39, 40, 41, 381, 154, 344, 57, -1, -1, -1,
- -1, -1, -1, -1, 29, 30, -1, -1, -1, -1,
- -1, 36, 37, -1, -1, 4, 77, 78, 79, 124,
- 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 135, -1, 57, -1, -1, 140, 141, -1, -1, 4,
- -1, -1, -1, -1, -1, -1, -1, -1, 37, -1,
- -1, -1, 77, 78, 79, -1, -1, -1, -1, -1,
- -1, -1, 111, 124, -1, 114, 4, -1, 117, -1,
- 35, -1, -1, -1, -1, -1, -1, 42, -1, 140,
- 141, 46, 47, 48, 49, 50, -1, 136, -1, 138,
- -1, -1, -1, 58, 59, 60, 61, -1, -1, 124,
- -1, -1, -1, -1, 42, -1, -1, -1, 46, 47,
- 48, 49, 50, -1, -1, 140, 141, -1, -1, -1,
- 58, 59, 60, 61, -1, 90, 91, 92, 93, 94,
- 119, -1, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, -1, -1, -1, -1,
- 115, 116, 90, 91, 92, 93, 94, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 136, -1, -1, -1, -1, -1, 115, 116, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, -1, 14, 136, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 14, -1, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 14, -1, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 14, -1, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 14, -1, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 14, -1, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, -1, -1, 14,
- 137, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 14,
- 137, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 14,
- 137, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, -1,
- 137, -1, -1, -1, -1, 4, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 51, -1, -1, -1,
- 137, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 30, -1, -1, -1, -1, -1, -1, -1, -1,
- 137, -1, -1, -1, 43, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, -1, 137, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, -1, -1,
- 135, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- 89, -1, -1, -1, -1, -1, 95, 96, 97, 98,
- 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, -1, -1, 112, -1, -1, -1, -1, -1, 118,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- -1, -1, 36, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 14, -1, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33
- };
- /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
- #line 3 "/usr/unsupported/lib/bison.simple"
-
- /* Skeleton output parser for bison,
- Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-
- #ifndef alloca
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else /* not GNU C. */
- #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc)
- #include <alloca.h>
- #else /* not sparc */
- #if defined (MSDOS) && !defined (__TURBOC__)
- #include <malloc.h>
- #else /* not MSDOS, or __TURBOC__ */
- #if defined(_AIX)
- #include <malloc.h>
- #pragma alloca
- #endif /* not _AIX */
- #endif /* not MSDOS, or __TURBOC__ */
- #endif /* not sparc. */
- #endif /* not GNU C. */
- #endif /* alloca not defined. */
-
- /* This is the parser code that is written into each bison parser
- when the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
- /* Note: there must be only one dollar sign in this file.
- It is replaced by the list of actions, each action
- as one case of the switch. */
-
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY -2
- #define YYEOF 0
- #define YYACCEPT return(0)
- #define YYABORT return(1)
- #define YYERROR goto yyerrlab1
- /* Like YYERROR except do call yyerror.
- This remains here temporarily to ease the
- transition to the new meaning of YYERROR, for GCC.
- Once GCC version 2 has supplanted version 1, this can go. */
- #define YYFAIL goto yyerrlab
- #define YYRECOVERING() (!!yyerrstatus)
- #define YYBACKUP(token, value) \
- do \
- if (yychar == YYEMPTY && yylen == 1) \
- { yychar = (token), yylval = (value); \
- yychar1 = YYTRANSLATE (yychar); \
- YYPOPSTACK; \
- goto yybackup; \
- } \
- else \
- { yyerror ("syntax error: cannot back up"); YYERROR; } \
- while (0)
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
- #ifndef YYPURE
- #define YYLEX yylex()
- #endif
-
- #ifdef YYPURE
- #ifdef YYLSP_NEEDED
- #define YYLEX yylex(&yylval, &yylloc)
- #else
- #define YYLEX yylex(&yylval)
- #endif
- #endif
-
- /* If nonreentrant, generate the variables here */
-
- #ifndef YYPURE
-
- int yychar; /* the lookahead symbol */
- YYSTYPE yylval; /* the semantic value of the */
- /* lookahead symbol */
-
- #ifdef YYLSP_NEEDED
- YYLTYPE yylloc; /* location data for the lookahead */
- /* symbol */
- #endif
-
- int yynerrs; /* number of parse errors so far */
- #endif /* not YYPURE */
-
- #if YYDEBUG != 0
- int yydebug; /* nonzero means print parse trace */
- /* Since this is uninitialized, it does not stop multiple parsers
- from coexisting. */
- #endif
-
- /* YYINITDEPTH indicates the initial size of the parser's stacks */
-
- #ifndef YYINITDEPTH
- #define YYINITDEPTH 200
- #endif
-
- /* YYMAXDEPTH is the maximum size the stacks can grow to
- (effective only if the built-in stack extension method is used). */
-
- #if YYMAXDEPTH == 0
- #undef YYMAXDEPTH
- #endif
-
- #ifndef YYMAXDEPTH
- #define YYMAXDEPTH 10000
- #endif
-
- #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
- #define __yy_bcopy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
- #else /* not GNU C or C++ */
- #ifndef __cplusplus
-
- /* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
- static void
- __yy_bcopy (from, to, count)
- char *from;
- char *to;
- int count;
- {
- register char *f = from;
- register char *t = to;
- register int i = count;
-
- while (i-- > 0)
- *t++ = *f++;
- }
-
- #else /* __cplusplus */
-
- /* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
- static void
- __yy_bcopy (char *from, char *to, int count)
- {
- register char *f = from;
- register char *t = to;
- register int i = count;
-
- while (i-- > 0)
- *t++ = *f++;
- }
-
- #endif
- #endif
-
- #line 169 "/usr/unsupported/lib/bison.simple"
- int
- yyparse()
- {
- register int yystate;
- register int yyn;
- register short *yyssp;
- register YYSTYPE *yyvsp;
- int yyerrstatus; /* number of tokens to shift before error messages enabled */
- int yychar1; /* lookahead token as an internal (translated) token number */
-
- short yyssa[YYINITDEPTH]; /* the state stack */
- YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
-
- short *yyss = yyssa; /* refer to the stacks thru separate pointers */
- YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
-
- #ifdef YYLSP_NEEDED
- YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
- YYLTYPE *yyls = yylsa;
- YYLTYPE *yylsp;
-
- #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
- #else
- #define YYPOPSTACK (yyvsp--, yyssp--)
- #endif
-
- int yystacksize = YYINITDEPTH;
-
- #ifdef YYPURE
- int yychar;
- YYSTYPE yylval;
- int yynerrs;
- #ifdef YYLSP_NEEDED
- YYLTYPE yylloc;
- #endif
- #endif
-
- YYSTYPE yyval; /* the variable used to return */
- /* semantic values from the action */
- /* routines */
-
- int yylen;
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Starting parse\n");
- #endif
-
- yystate = 0;
- yyerrstatus = 0;
- yynerrs = 0;
- yychar = YYEMPTY; /* Cause a token to be read. */
-
- /* Initialize stack pointers.
- Waste one element of value and location stack
- so that they stay on the same level as the state stack.
- The wasted elements are never initialized. */
-
- yyssp = yyss - 1;
- yyvsp = yyvs;
- #ifdef YYLSP_NEEDED
- yylsp = yyls;
- #endif
-
- /* Push a new state, which is found in yystate . */
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks. */
- yynewstate:
-
- *++yyssp = yystate;
-
- if (yyssp >= yyss + yystacksize - 1)
- {
- /* Give user a chance to reallocate the stack */
- /* Use copies of these so that the &'s don't force the real ones into memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
- #ifdef YYLSP_NEEDED
- YYLTYPE *yyls1 = yyls;
- #endif
-
- /* Get the current used size of the three stacks, in elements. */
- int size = yyssp - yyss + 1;
-
- #ifdef yyoverflow
- /* Each stack pointer address is followed by the size of
- the data in use in that stack, in bytes. */
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- #ifdef YYLSP_NEEDED
- &yyls1, size * sizeof (*yylsp),
- #endif
- &yystacksize);
-
- yyss = yyss1; yyvs = yyvs1;
- #ifdef YYLSP_NEEDED
- yyls = yyls1;
- #endif
- #else /* no yyoverflow */
- /* Extend the stack our own way. */
- if (yystacksize >= YYMAXDEPTH)
- {
- yyerror("parser stack overflow");
- return 2;
- }
- yystacksize *= 2;
- if (yystacksize > YYMAXDEPTH)
- yystacksize = YYMAXDEPTH;
- yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
- __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
- yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
- __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
- #ifdef YYLSP_NEEDED
- yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
- __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
- #endif
- #endif /* no yyoverflow */
-
- yyssp = yyss + size - 1;
- yyvsp = yyvs + size - 1;
- #ifdef YYLSP_NEEDED
- yylsp = yyls + size - 1;
- #endif
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Stack size increased to %d\n", yystacksize);
- #endif
-
- if (yyssp >= yyss + yystacksize - 1)
- YYABORT;
- }
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Entering state %d\n", yystate);
- #endif
-
- goto yybackup;
- yybackup:
-
- /* Do appropriate processing given the current state. */
- /* Read a lookahead token if we need one and don't already have one. */
- /* yyresume: */
-
- /* First try to decide what to do without reference to lookahead token. */
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yydefault;
-
- /* Not known => get a lookahead token if don't already have one. */
-
- /* yychar is either YYEMPTY or YYEOF
- or a valid token in external form. */
-
- if (yychar == YYEMPTY)
- {
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Reading a token: ");
- #endif
- yychar = YYLEX;
- }
-
- /* Convert token to internal form (in yychar1) for indexing tables with */
-
- if (yychar <= 0) /* This means end of input. */
- {
- yychar1 = 0;
- yychar = YYEOF; /* Don't call YYLEX any more */
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Now at end of input.\n");
- #endif
- }
- else
- {
- yychar1 = YYTRANSLATE(yychar);
-
- #if YYDEBUG != 0
- if (yydebug)
- {
- fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
- /* Give the individual parser a way to print the precise meaning
- of a token, for further debugging info. */
- #ifdef YYPRINT
- YYPRINT (stderr, yychar, yylval);
- #endif
- fprintf (stderr, ")\n");
- }
- #endif
- }
-
- yyn += yychar1;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
- goto yydefault;
-
- yyn = yytable[yyn];
-
- /* yyn is what to do for this token type in this state.
- Negative => reduce, -yyn is rule number.
- Positive => shift, yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrlab;
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrlab;
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- /* Shift the lookahead token. */
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
- #endif
-
- /* Discard the token being shifted unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- *++yyvsp = yylval;
- #ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
- #endif
-
- /* count tokens shifted since error; after three, turn off error status. */
- if (yyerrstatus) yyerrstatus--;
-
- yystate = yyn;
- goto yynewstate;
-
- /* Do the default action for the current state. */
- yydefault:
-
- yyn = yydefact[yystate];
- if (yyn == 0)
- goto yyerrlab;
-
- /* Do a reduction. yyn is the number of a rule to reduce with. */
- yyreduce:
- yylen = yyr2[yyn];
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
- #if YYDEBUG != 0
- if (yydebug)
- {
- int i;
-
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
-
- /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- }
- #endif
-
-
- switch (yyn) {
-
- case 1:
- #line 170 "./ldgram.y"
- { lang_final(); ;
- break;}
- case 5:
- #line 182 "./ldgram.y"
- { ;
- break;}
- case 6:
- #line 184 "./ldgram.y"
- {
- ldversion(0);
- option_v = true;
- ;
- break;}
- case 7:
- #line 189 "./ldgram.y"
- {
- ldversion(1);
- option_v = true;
- ;
- break;}
- case 8:
- #line 193 "./ldgram.y"
- {
- trace_files = true;
- ;
- break;}
- case 9:
- #line 197 "./ldgram.y"
- {
- write_map = true;
- config.map_filename = yyvsp[0].name;
- ;
- break;}
- case 10:
- #line 202 "./ldgram.y"
- {
- config.map_filename = "-";
- ;
- break;}
- case 11:
- #line 205 "./ldgram.y"
- {
- config.magic_demand_paged = false;
- ;
- break;}
- case 12:
- #line 208 "./ldgram.y"
- {
- config.text_read_only = false;
- config.magic_demand_paged = false;
- ;
- break;}
- case 13:
- #line 212 "./ldgram.y"
- {
- strip_symbols = STRIP_ALL;
- ;
- break;}
- case 14:
- #line 215 "./ldgram.y"
- {
- strip_symbols = STRIP_DEBUGGER;
- ;
- break;}
- case 15:
- #line 218 "./ldgram.y"
- {
- ldlang_add_undef(yyvsp[0].name);
- ;
- break;}
- case 16:
- #line 222 "./ldgram.y"
- {
- config.relocateable_output = true;
- config.build_constructors = false;
- config.magic_demand_paged = false;
- config.text_read_only = false;
- ;
- break;}
- case 17:
- #line 228 "./ldgram.y"
- {
- config.relocateable_output = true;
- config.build_constructors = true;
- config.magic_demand_paged = false;
- config.text_read_only = false;
- ;
- break;}
- case 18:
- #line 235 "./ldgram.y"
- {
- lang_add_output(yyvsp[0].name);
- ;
- break;}
- case 19:
- #line 239 "./ldgram.y"
- { lang_add_entry(yyvsp[0].name);
- ;
- break;}
- case 20:
- #line 241 "./ldgram.y"
- {
- discard_locals = DISCARD_L;
- ;
- break;}
- case 21:
- #line 244 "./ldgram.y"
- {
- discard_locals = DISCARD_ALL;
- ;
- break;}
- case 22:
- #line 249 "./ldgram.y"
- {
- force_make_executable = true;
- ;
- break;}
- case 23:
- #line 252 "./ldgram.y"
- {
- config.sort_common = true;
- ;
- break;}
- case 24:
- #line 255 "./ldgram.y"
- {
- command_line.force_common_definition = true;
- ;
- break;}
- case 25:
- #line 259 "./ldgram.y"
- {
- command_line.relax = true;
- ;
- break;}
- case 26:
- #line 263 "./ldgram.y"
- {
- command_line.force_common_definition = true;
- ;
- break;}
- case 27:
- #line 267 "./ldgram.y"
- {
- /* Ignored */
- ;
- break;}
- case 28:
- #line 271 "./ldgram.y"
- {
- command_line.force_common_definition = true;
- ;
- break;}
- case 29:
- #line 275 "./ldgram.y"
- {
- lang_add_target(yyvsp[0].name);
- ;
- break;}
- case 30:
- #line 279 "./ldgram.y"
- { ldlex_expression();
- hex_mode = 16;
- ;
- break;}
- case 31:
- #line 283 "./ldgram.y"
- { ldlex_popstate();
- lang_section_start(yyvsp[-2].name,exp_intop(yyvsp[0].integer));
- hex_mode = 0;
- ;
- break;}
- case 32:
- #line 288 "./ldgram.y"
- {
- add_ysym(yyvsp[0].name);
- ;
- break;}
- case 33:
- #line 292 "./ldgram.y"
- {
- ldfile_add_arch(yyvsp[0].name);
- ;
- break;}
- case 34:
- #line 296 "./ldgram.y"
- {
- lang_add_target(yyvsp[0].name);
- ;
- break;}
- case 35:
- #line 300 "./ldgram.y"
- {
- ldfile_add_library_path(yyvsp[0].name);
- ;
- break;}
- case 36:
- #line 304 "./ldgram.y"
- {
- /* Ignore */
- ;
- break;}
- case 37:
- #line 308 "./ldgram.y"
- { lang_add_input_file(yyvsp[0].name,lang_input_file_is_file_enum,
- (char *)NULL); ;
- break;}
- case 38:
- #line 311 "./ldgram.y"
- { ldfile_open_command_file(yyvsp[0].name); ;
- break;}
- case 39:
- #line 311 "./ldgram.y"
- { ldlex_command();;
- break;}
- case 40:
- #line 314 "./ldgram.y"
- { ldfile_open_command_file(yyvsp[0].name); ;
- break;}
- case 41:
- #line 315 "./ldgram.y"
- { ldlex_command();;
- break;}
- case 42:
- #line 318 "./ldgram.y"
- { ldfile_open_command_file(yyvsp[0].name); ;
- break;}
- case 43:
- #line 319 "./ldgram.y"
- { ldlex_command();;
- break;}
- case 44:
- #line 322 "./ldgram.y"
- {
- lang_add_input_file(yyvsp[0].name,
- lang_input_file_is_l_enum,
- (char *)NULL);
- ;
- break;}
- case 45:
- #line 328 "./ldgram.y"
- {
- lang_add_input_file(yyvsp[0].name,
- lang_input_file_is_symbols_only_enum,
- (char *)NULL);
- ;
- break;}
- case 46:
- #line 334 "./ldgram.y"
- { ldlex_defsym(); ;
- break;}
- case 47:
- #line 335 "./ldgram.y"
- { ldlex_popstate();
- lang_add_assignment(exp_assop(yyvsp[-2].token,yyvsp[-3].name,yyvsp[-1].etree));
- ;
- break;}
- case 48:
- #line 339 "./ldgram.y"
- { lang_add_keepsyms_file (yyvsp[0].name); ;
- break;}
- case 49:
- #line 341 "./ldgram.y"
- {
- /* FIXME: This is currently ignored. It means
- ``produce a big-endian object file''. It could
- be used to select an output format. */
- ;
- break;}
- case 50:
- #line 347 "./ldgram.y"
- {
- /* FIXME: This is currently ignored. It means
- ``produce a little-endian object file''. It could
- be used to select an output format. */
- ;
- break;}
- case 51:
- #line 353 "./ldgram.y"
- {
- g_switch_value = atoi (yyvsp[0].name);
- ;
- break;}
- case 52:
- #line 357 "./ldgram.y"
- {
- g_switch_value = yylval.integer;
- ;
- break;}
- case 53:
- #line 361 "./ldgram.y"
- { info("%P%F Unrecognized option -%s\n", yyvsp[0].name); ;
- break;}
- case 55:
- #line 369 "./ldgram.y"
- { ldlex_mri_script();
- PUSH_ERROR("MRI style script");
- ;
- break;}
- case 56:
- #line 373 "./ldgram.y"
- { ldlex_popstate();
- POP_ERROR();
- ;
- break;}
- case 61:
- #line 386 "./ldgram.y"
- {
- einfo("%P%F: unrecognised keyword in MRI style script '%s'\n",yyvsp[0].name);
- ;
- break;}
- case 62:
- #line 389 "./ldgram.y"
- {
- write_map = true;
- config.map_filename = "-";
- ;
- break;}
- case 65:
- #line 396 "./ldgram.y"
- { mri_public(yyvsp[-2].name, yyvsp[0].etree); ;
- break;}
- case 66:
- #line 398 "./ldgram.y"
- { mri_public(yyvsp[-2].name, yyvsp[0].etree); ;
- break;}
- case 67:
- #line 400 "./ldgram.y"
- { mri_public(yyvsp[-1].name, yyvsp[0].etree); ;
- break;}
- case 68:
- #line 402 "./ldgram.y"
- { mri_format(yyvsp[0].name); ;
- break;}
- case 69:
- #line 404 "./ldgram.y"
- { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);;
- break;}
- case 70:
- #line 406 "./ldgram.y"
- { mri_output_section(yyvsp[-1].name, yyvsp[0].etree);;
- break;}
- case 71:
- #line 408 "./ldgram.y"
- { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);;
- break;}
- case 72:
- #line 410 "./ldgram.y"
- { mri_align(yyvsp[-2].name,yyvsp[0].etree); ;
- break;}
- case 73:
- #line 412 "./ldgram.y"
- { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); ;
- break;}
- case 76:
- #line 416 "./ldgram.y"
- { mri_name(yyvsp[0].name); ;
- break;}
- case 77:
- #line 418 "./ldgram.y"
- { mri_alias(yyvsp[-2].name,yyvsp[0].name,0);;
- break;}
- case 78:
- #line 420 "./ldgram.y"
- { mri_alias(yyvsp[-2].name,0,yyvsp[0].integer);;
- break;}
- case 79:
- #line 422 "./ldgram.y"
- { mri_base(yyvsp[0].etree); ;
- break;}
- case 80:
- #line 424 "./ldgram.y"
- { mri_truncate(yyvsp[0].integer); ;
- break;}
- case 82:
- #line 429 "./ldgram.y"
- { mri_order(yyvsp[0].name); ;
- break;}
- case 83:
- #line 430 "./ldgram.y"
- { mri_order(yyvsp[0].name); ;
- break;}
- case 85:
- #line 436 "./ldgram.y"
- { mri_load(yyvsp[0].name); ;
- break;}
- case 86:
- #line 437 "./ldgram.y"
- { mri_load(yyvsp[0].name); ;
- break;}
- case 87:
- #line 442 "./ldgram.y"
- { mri_only_load(yyvsp[0].name); ;
- break;}
- case 88:
- #line 444 "./ldgram.y"
- { mri_only_load(yyvsp[0].name); ;
- break;}
- case 89:
- #line 448 "./ldgram.y"
- {
- ldlex_both();
- ;
- break;}
- case 90:
- #line 452 "./ldgram.y"
- {
- ldlex_popstate();
- ;
- break;}
- case 101:
- #line 475 "./ldgram.y"
- { lang_add_target(yyvsp[-1].name); ;
- break;}
- case 102:
- #line 477 "./ldgram.y"
- { ldfile_add_library_path(yyvsp[-1].name); ;
- break;}
- case 103:
- #line 479 "./ldgram.y"
- { lang_add_output(yyvsp[-1].name); ;
- break;}
- case 104:
- #line 481 "./ldgram.y"
- { lang_add_output_format(yyvsp[-1].name); ;
- break;}
- case 105:
- #line 483 "./ldgram.y"
- { ldfile_set_output_arch(yyvsp[-1].name); ;
- break;}
- case 106:
- #line 485 "./ldgram.y"
- { command_line.force_common_definition = true ; ;
- break;}
- case 108:
- #line 488 "./ldgram.y"
- { lang_add_map(yyvsp[-1].name); ;
- break;}
- case 109:
- #line 490 "./ldgram.y"
- { ldfile_open_command_file(yyvsp[0].name); ;
- break;}
- case 111:
- #line 495 "./ldgram.y"
- { lang_add_input_file(yyvsp[0].name,lang_input_file_is_file_enum,
- (char *)NULL); ;
- break;}
- case 112:
- #line 498 "./ldgram.y"
- { lang_add_input_file(yyvsp[0].name,lang_input_file_is_file_enum,
- (char *)NULL); ;
- break;}
- case 113:
- #line 501 "./ldgram.y"
- { lang_add_input_file(yyvsp[0].name,
- lang_input_file_is_file_enum,
- (char *)NULL); ;
- break;}
- case 118:
- #line 518 "./ldgram.y"
- { lang_add_entry(yyvsp[-1].name); ;
- break;}
- case 120:
- #line 524 "./ldgram.y"
- { lang_add_wild(yyvsp[0].name, current_file); ;
- break;}
- case 121:
- #line 526 "./ldgram.y"
- { lang_add_wild(yyvsp[0].name, current_file); ;
- break;}
- case 122:
- #line 531 "./ldgram.y"
- {
- lang_add_wild((char *)NULL, yyvsp[0].name);
- ;
- break;}
- case 123:
- #line 535 "./ldgram.y"
- {
- current_file = (char *)NULL;
- ;
- break;}
- case 125:
- #line 541 "./ldgram.y"
- {
- current_file =yyvsp[0].name;
- ;
- break;}
- case 127:
- #line 546 "./ldgram.y"
- {
- current_file = (char *)NULL;
- ;
- break;}
- case 130:
- #line 555 "./ldgram.y"
- {
- lang_add_attribute(lang_object_symbols_statement_enum);
- ;
- break;}
- case 132:
- #line 560 "./ldgram.y"
- {
-
- lang_add_attribute(lang_constructors_statement_enum);
- ;
- break;}
- case 134:
- #line 566 "./ldgram.y"
- {
- lang_add_data(yyvsp[-3].integer,yyvsp[-1].etree);
- ;
- break;}
- case 135:
- #line 571 "./ldgram.y"
- {
- lang_add_fill
- (exp_get_value_int(yyvsp[-1].etree,
- 0,
- "fill value",
- lang_first_phase_enum));
- ;
- break;}
- case 138:
- #line 587 "./ldgram.y"
- { yyval.integer = yyvsp[0].token; ;
- break;}
- case 139:
- #line 589 "./ldgram.y"
- { yyval.integer = yyvsp[0].token; ;
- break;}
- case 140:
- #line 591 "./ldgram.y"
- { yyval.integer = yyvsp[0].token; ;
- break;}
- case 141:
- #line 596 "./ldgram.y"
- {
- yyval.integer = exp_get_value_int(yyvsp[0].etree,
- 0,
- "fill value",
- lang_first_phase_enum);
- ;
- break;}
- case 142:
- #line 602 "./ldgram.y"
- { yyval.integer = 0; ;
- break;}
- case 143:
- #line 609 "./ldgram.y"
- { yyval.token = '+'; ;
- break;}
- case 144:
- #line 611 "./ldgram.y"
- { yyval.token = '-'; ;
- break;}
- case 145:
- #line 613 "./ldgram.y"
- { yyval.token = '*'; ;
- break;}
- case 146:
- #line 615 "./ldgram.y"
- { yyval.token = '/'; ;
- break;}
- case 147:
- #line 617 "./ldgram.y"
- { yyval.token = LSHIFT; ;
- break;}
- case 148:
- #line 619 "./ldgram.y"
- { yyval.token = RSHIFT; ;
- break;}
- case 149:
- #line 621 "./ldgram.y"
- { yyval.token = '&'; ;
- break;}
- case 150:
- #line 623 "./ldgram.y"
- { yyval.token = '|'; ;
- break;}
- case 153:
- #line 633 "./ldgram.y"
- {
- lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree));
- ;
- break;}
- case 154:
- #line 637 "./ldgram.y"
- {
-
- lang_add_assignment(exp_assop('=',yyvsp[-2].name,exp_binop(yyvsp[-1].token,exp_nameop(NAME,yyvsp[-2].name),yyvsp[0].etree)));
- ;
- break;}
- case 161:
- #line 661 "./ldgram.y"
- { region = lang_memory_region_lookup(yyvsp[0].name); ;
- break;}
- case 163:
- #line 667 "./ldgram.y"
- { region->current =
- region->origin =
- exp_get_vma(yyvsp[0].etree, 0L,"origin", lang_first_phase_enum);
- ;
- break;}
- case 164:
- #line 673 "./ldgram.y"
- { region->length = exp_get_vma(yyvsp[0].etree,
- ~((bfd_vma)0),
- "length",
- lang_first_phase_enum);
- ;
- break;}
- case 165:
- #line 682 "./ldgram.y"
- {
- lang_set_flags(®ion->flags, yyvsp[-1].name);
- ;
- break;}
- case 167:
- #line 691 "./ldgram.y"
- { lang_startup(yyvsp[-1].name); ;
- break;}
- case 169:
- #line 697 "./ldgram.y"
- { ldemul_hll((char *)NULL); ;
- break;}
- case 170:
- #line 702 "./ldgram.y"
- { ldemul_hll(yyvsp[0].name); ;
- break;}
- case 171:
- #line 704 "./ldgram.y"
- { ldemul_hll(yyvsp[0].name); ;
- break;}
- case 173:
- #line 712 "./ldgram.y"
- { ldemul_syslib(yyvsp[0].name); ;
- break;}
- case 175:
- #line 718 "./ldgram.y"
- { lang_float(true); ;
- break;}
- case 176:
- #line 720 "./ldgram.y"
- { lang_float(false); ;
- break;}
- case 177:
- #line 724 "./ldgram.y"
- { ldlex_expression(); ;
- break;}
- case 178:
- #line 726 "./ldgram.y"
- { ldlex_popstate(); yyval.etree=yyvsp[0].etree;;
- break;}
- case 179:
- #line 731 "./ldgram.y"
- { yyval.etree = exp_unop('-', yyvsp[0].etree); ;
- break;}
- case 180:
- #line 733 "./ldgram.y"
- { yyval.etree = yyvsp[-1].etree; ;
- break;}
- case 181:
- #line 735 "./ldgram.y"
- { yyval.etree = exp_unop(yyvsp[-3].integer,yyvsp[-1].etree); ;
- break;}
- case 182:
- #line 737 "./ldgram.y"
- { yyval.etree = exp_unop('!', yyvsp[0].etree); ;
- break;}
- case 183:
- #line 739 "./ldgram.y"
- { yyval.etree = yyvsp[0].etree; ;
- break;}
- case 184:
- #line 741 "./ldgram.y"
- { yyval.etree = exp_unop('~', yyvsp[0].etree);;
- break;}
- case 185:
- #line 744 "./ldgram.y"
- { yyval.etree = exp_binop('*', yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 186:
- #line 746 "./ldgram.y"
- { yyval.etree = exp_binop('/', yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 187:
- #line 748 "./ldgram.y"
- { yyval.etree = exp_binop('%', yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 188:
- #line 750 "./ldgram.y"
- { yyval.etree = exp_binop('+', yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 189:
- #line 752 "./ldgram.y"
- { yyval.etree = exp_binop('-' , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 190:
- #line 754 "./ldgram.y"
- { yyval.etree = exp_binop(LSHIFT , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 191:
- #line 756 "./ldgram.y"
- { yyval.etree = exp_binop(RSHIFT , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 192:
- #line 758 "./ldgram.y"
- { yyval.etree = exp_binop(EQ , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 193:
- #line 760 "./ldgram.y"
- { yyval.etree = exp_binop(NE , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 194:
- #line 762 "./ldgram.y"
- { yyval.etree = exp_binop(LE , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 195:
- #line 764 "./ldgram.y"
- { yyval.etree = exp_binop(GE , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 196:
- #line 766 "./ldgram.y"
- { yyval.etree = exp_binop('<' , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 197:
- #line 768 "./ldgram.y"
- { yyval.etree = exp_binop('>' , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 198:
- #line 770 "./ldgram.y"
- { yyval.etree = exp_binop('&' , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 199:
- #line 772 "./ldgram.y"
- { yyval.etree = exp_binop('^' , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 200:
- #line 774 "./ldgram.y"
- { yyval.etree = exp_binop('|' , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 201:
- #line 776 "./ldgram.y"
- { yyval.etree = exp_trinop('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 202:
- #line 778 "./ldgram.y"
- { yyval.etree = exp_binop(ANDAND , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 203:
- #line 780 "./ldgram.y"
- { yyval.etree = exp_binop(OROR , yyvsp[-2].etree, yyvsp[0].etree); ;
- break;}
- case 204:
- #line 782 "./ldgram.y"
- { yyval.etree = exp_nameop(DEFINED, yyvsp[-1].name); ;
- break;}
- case 205:
- #line 784 "./ldgram.y"
- { yyval.etree = exp_intop(yyvsp[0].integer); ;
- break;}
- case 206:
- #line 786 "./ldgram.y"
- { yyval.etree = exp_nameop(SIZEOF_HEADERS,0); ;
- break;}
- case 207:
- #line 789 "./ldgram.y"
- { yyval.etree = exp_nameop(SIZEOF,yyvsp[-1].name); ;
- break;}
- case 208:
- #line 791 "./ldgram.y"
- { yyval.etree = exp_nameop(ADDR,yyvsp[-1].name); ;
- break;}
- case 209:
- #line 793 "./ldgram.y"
- { yyval.etree = exp_unop(ABSOLUTE, yyvsp[-1].etree); ;
- break;}
- case 210:
- #line 795 "./ldgram.y"
- { yyval.etree = exp_unop(ALIGN_K,yyvsp[-1].etree); ;
- break;}
- case 211:
- #line 797 "./ldgram.y"
- { yyval.etree = exp_nameop(NAME,yyvsp[0].name); ;
- break;}
- case 212:
- #line 802 "./ldgram.y"
- { yyval.etree = yyvsp[-1].etree; ;
- break;}
- case 213:
- #line 803 "./ldgram.y"
- { yyval.etree = 0; ;
- break;}
- case 214:
- #line 806 "./ldgram.y"
- { ldlex_expression(); ;
- break;}
- case 215:
- #line 808 "./ldgram.y"
- { ldlex_popstate(); ;
- break;}
- case 216:
- #line 810 "./ldgram.y"
- {
- lang_enter_output_section_statement(yyvsp[-5].name,yyvsp[-3].etree,typebits,0,0,0,yyvsp[-2].etree);
- ;
- break;}
- case 217:
- #line 814 "./ldgram.y"
- {ldlex_expression();;
- break;}
- case 218:
- #line 815 "./ldgram.y"
- {
- ldlex_popstate();
- lang_leave_output_section_statement(yyvsp[-1].integer, yyvsp[0].name);
- ;
- break;}
- case 220:
- #line 824 "./ldgram.y"
- { typebits = SEC_NEVER_LOAD; ;
- break;}
- case 221:
- #line 825 "./ldgram.y"
- { typebits = 0; ;
- break;}
- case 222:
- #line 826 "./ldgram.y"
- { typebits = 0; ;
- break;}
- case 223:
- #line 827 "./ldgram.y"
- { typebits = 0; ;
- break;}
- case 224:
- #line 828 "./ldgram.y"
- { typebits = 0; ;
- break;}
- case 225:
- #line 829 "./ldgram.y"
- { typebits = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; ;
- break;}
- case 226:
- #line 834 "./ldgram.y"
- { yyval.etree = yyvsp[-1].etree; typebits =0;;
- break;}
- case 227:
- #line 835 "./ldgram.y"
- { yyval.etree = yyvsp[-4].etree; ;
- break;}
- case 228:
- #line 836 "./ldgram.y"
- { yyval.etree= (etree_type *)NULL; typebits = 0; ;
- break;}
- case 229:
- #line 837 "./ldgram.y"
- { yyval.etree= (etree_type *)NULL; ;
- break;}
- case 230:
- #line 842 "./ldgram.y"
- { yyval.name = yyvsp[0].name; ;
- break;}
- case 231:
- #line 843 "./ldgram.y"
- { yyval.name = "*default*"; ;
- break;}
- }
- /* the action file gets copied in in place of this dollarsign */
- #line 442 "/usr/unsupported/lib/bison.simple"
-
- yyvsp -= yylen;
- yyssp -= yylen;
- #ifdef YYLSP_NEEDED
- yylsp -= yylen;
- #endif
-
- #if YYDEBUG != 0
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
- #endif
-
- *++yyvsp = yyval;
-
- #ifdef YYLSP_NEEDED
- yylsp++;
- if (yylen == 0)
- {
- yylsp->first_line = yylloc.first_line;
- yylsp->first_column = yylloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
- #endif
-
- /* Now "shift" the result of the reduction.
- Determine what state that goes to,
- based on the state we popped back to
- and the rule number reduced by. */
-
- yyn = yyr1[yyn];
-
- yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
- yystate = yytable[yystate];
- else
- yystate = yydefgoto[yyn - YYNTBASE];
-
- goto yynewstate;
-
- yyerrlab: /* here on detecting error */
-
- if (! yyerrstatus)
- /* If not already recovering from an error, report this error. */
- {
- ++yynerrs;
-
- #ifdef YYERROR_VERBOSE
- yyn = yypact[yystate];
-
- if (yyn > YYFLAG && yyn < YYLAST)
- {
- int size = 0;
- char *msg;
- int x, count;
-
- count = 0;
- for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- if (msg != 0)
- {
- strcpy(msg, "parse error");
-
- if (count < 5)
- {
- count = 0;
- for (x = 0; x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
- count++;
- }
- }
- yyerror(msg);
- free(msg);
- }
- else
- yyerror ("parse error; also virtual memory exceeded");
- }
- else
- #endif /* YYERROR_VERBOSE */
- yyerror("parse error");
- }
-
- goto yyerrlab1;
- yyerrlab1: /* here on error raised explicitly by an action */
-
- if (yyerrstatus == 3)
- {
- /* if just tried and failed to reuse lookahead token after an error, discard it. */
-
- /* return failure if at end of input */
- if (yychar == YYEOF)
- YYABORT;
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
- #endif
-
- yychar = YYEMPTY;
- }
-
- /* Else will try to reuse lookahead token
- after shifting the error token. */
-
- yyerrstatus = 3; /* Each real token shifted decrements this */
-
- goto yyerrhandle;
-
- yyerrdefault: /* current state does not do anything special for the error token. */
-
- #if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
- yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
- if (yyn) goto yydefault;
- #endif
-
- yyerrpop: /* pop the current state because it cannot handle the error token */
-
- if (yyssp == yyss) YYABORT;
- yyvsp--;
- yystate = *--yyssp;
- #ifdef YYLSP_NEEDED
- yylsp--;
- #endif
-
- #if YYDEBUG != 0
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "Error: state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
- #endif
-
- yyerrhandle:
-
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yyerrdefault;
-
- yyn += YYTERROR;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
- goto yyerrdefault;
-
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrpop;
- yyn = -yyn;
- goto yyreduce;
- }
- else if (yyn == 0)
- goto yyerrpop;
-
- if (yyn == YYFINAL)
- YYACCEPT;
-
- #if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting error token, ");
- #endif
-
- *++yyvsp = yylval;
- #ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
- #endif
-
- yystate = yyn;
- goto yynewstate;
- }
- #line 845 "./ldgram.y"
-
- void
- yyerror(arg)
- char *arg;
- {
- if (error_index> 0 && error_index < ERROR_NAME_MAX)
- einfo("%P%F: %S syntax error in %s\n",error_names[error_index-1]);
- else
- einfo("%P%F: %S syntax error\n");
- }
-