00001
00002
00003
00004
00005
00006
00007
00008 #define YYBISON 1
00009
00010 # define INT 257
00011 # define NAME 258
00012 # define LNAME 259
00013 # define PLUSEQ 260
00014 # define MINUSEQ 261
00015 # define MULTEQ 262
00016 # define DIVEQ 263
00017 # define LSHIFTEQ 264
00018 # define RSHIFTEQ 265
00019 # define ANDEQ 266
00020 # define OREQ 267
00021 # define OROR 268
00022 # define ANDAND 269
00023 # define EQ 270
00024 # define NE 271
00025 # define LE 272
00026 # define GE 273
00027 # define LSHIFT 274
00028 # define RSHIFT 275
00029 # define UNARY 276
00030 # define END 277
00031 # define ALIGN_K 278
00032 # define BLOCK 279
00033 # define BIND 280
00034 # define QUAD 281
00035 # define SQUAD 282
00036 # define LONG 283
00037 # define SHORT 284
00038 # define BYTE 285
00039 # define SECTIONS 286
00040 # define PHDRS 287
00041 # define DATA_SEGMENT_ALIGN 288
00042 # define DATA_SEGMENT_RELRO_END 289
00043 # define DATA_SEGMENT_END 290
00044 # define SORT_BY_NAME 291
00045 # define SORT_BY_ALIGNMENT 292
00046 # define SIZEOF_HEADERS 293
00047 # define OUTPUT_FORMAT 294
00048 # define FORCE_COMMON_ALLOCATION 295
00049 # define OUTPUT_ARCH 296
00050 # define INHIBIT_COMMON_ALLOCATION 297
00051 # define SEGMENT_START 298
00052 # define INCLUDE 299
00053 # define MEMORY 300
00054 # define DEFSYMEND 301
00055 # define NOLOAD 302
00056 # define DSECT 303
00057 # define COPY 304
00058 # define INFO 305
00059 # define OVERLAY 306
00060 # define DEFINED 307
00061 # define TARGET_K 308
00062 # define SEARCH_DIR 309
00063 # define MAP 310
00064 # define ENTRY 311
00065 # define NEXT 312
00066 # define SIZEOF 313
00067 # define ADDR 314
00068 # define LOADADDR 315
00069 # define MAX_K 316
00070 # define MIN_K 317
00071 # define STARTUP 318
00072 # define HLL 319
00073 # define SYSLIB 320
00074 # define FLOAT 321
00075 # define NOFLOAT 322
00076 # define NOCROSSREFS 323
00077 # define ORIGIN 324
00078 # define FILL 325
00079 # define LENGTH 326
00080 # define CREATE_OBJECT_SYMBOLS 327
00081 # define INPUT 328
00082 # define GROUP 329
00083 # define OUTPUT 330
00084 # define CONSTRUCTORS 331
00085 # define ALIGNMOD 332
00086 # define AT 333
00087 # define SUBALIGN 334
00088 # define PROVIDE 335
00089 # define AS_NEEDED 336
00090 # define CHIP 337
00091 # define LIST 338
00092 # define SECT 339
00093 # define ABSOLUTE 340
00094 # define LOAD 341
00095 # define NEWLINE 342
00096 # define ENDWORD 343
00097 # define ORDER 344
00098 # define NAMEWORD 345
00099 # define ASSERT_K 346
00100 # define FORMAT 347
00101 # define PUBLIC 348
00102 # define BASE 349
00103 # define ALIAS 350
00104 # define TRUNCATE 351
00105 # define REL 352
00106 # define INPUT_SCRIPT 353
00107 # define INPUT_MRI_SCRIPT 354
00108 # define INPUT_DEFSYM 355
00109 # define CASE 356
00110 # define EXTERN 357
00111 # define START 358
00112 # define VERS_TAG 359
00113 # define VERS_IDENTIFIER 360
00114 # define GLOBAL 361
00115 # define LOCAL 362
00116 # define VERSIONK 363
00117 # define INPUT_VERSION_SCRIPT 364
00118 # define KEEP 365
00119 # define ONLY_IF_RO 366
00120 # define ONLY_IF_RW 367
00121 # define EXCLUDE_FILE 368
00122
00123 #line 22 "ldgram.y"
00124
00125
00126
00127
00128
00129 #define DONTDECLARE_MALLOC
00130
00131 #include "bfd.h"
00132 #include "sysdep.h"
00133 #include "bfdlink.h"
00134 #include "ld.h"
00135 #include "ldexp.h"
00136 #include "ldver.h"
00137 #include "ldlang.h"
00138 #include "ldfile.h"
00139 #include "ldemul.h"
00140 #include "ldmisc.h"
00141 #include "ldmain.h"
00142 #include "mri.h"
00143 #include "ldctor.h"
00144 #include "ldlex.h"
00145
00146 #ifndef YYDEBUG
00147 #define YYDEBUG 1
00148 #endif
00149
00150 static enum section_type sectype;
00151
00152 lang_memory_region_type *region;
00153
00154 bfd_boolean ldgram_want_filename = TRUE;
00155 FILE *saved_script_handle = NULL;
00156 bfd_boolean force_make_executable = FALSE;
00157
00158 bfd_boolean ldgram_in_script = FALSE;
00159 bfd_boolean ldgram_had_equals = FALSE;
00160 bfd_boolean ldgram_had_keep = FALSE;
00161 char *ldgram_vers_current_lang = NULL;
00162
00163 #define ERROR_NAME_MAX 20
00164 static char *error_names[ERROR_NAME_MAX];
00165 static int error_index;
00166 #define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++;
00167 #define POP_ERROR() error_index--;
00168
00169 #line 67 "ldgram.y"
00170 #ifndef YYSTYPE
00171 typedef union {
00172 bfd_vma integer;
00173 struct big_int
00174 {
00175 bfd_vma integer;
00176 char *str;
00177 } bigint;
00178 fill_type *fill;
00179 char *name;
00180 const char *cname;
00181 struct wildcard_spec wildcard;
00182 struct wildcard_list *wildcard_list;
00183 struct name_list *name_list;
00184 int token;
00185 union etree_union *etree;
00186 struct phdr_info
00187 {
00188 bfd_boolean filehdr;
00189 bfd_boolean phdrs;
00190 union etree_union *at;
00191 union etree_union *flags;
00192 } phdr;
00193 struct lang_nocrossref *nocrossref;
00194 struct lang_output_section_phdr_list *section_phdr;
00195 struct bfd_elf_version_deps *deflist;
00196 struct bfd_elf_version_expr *versyms;
00197 struct bfd_elf_version_tree *versnode;
00198 } yystype;
00199 # define YYSTYPE yystype
00200 # define YYSTYPE_IS_TRIVIAL 1
00201 #endif
00202 #ifndef YYDEBUG
00203 # define YYDEBUG 0
00204 #endif
00205
00206
00207
00208 #define YYFINAL 689
00209 #define YYFLAG -32768
00210 #define YYNTBASE 138
00211
00212
00213 #define YYTRANSLATE(x) ((unsigned)(x) <= 368 ? yytranslate[x] : 250)
00214
00215
00216 static const short yytranslate[] =
00217 {
00218 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00221 2, 2, 2, 136, 2, 2, 2, 34, 21, 2,
00222 37, 133, 32, 30, 131, 31, 2, 33, 2, 2,
00223 2, 2, 2, 2, 2, 2, 2, 2, 16, 132,
00224 24, 10, 25, 15, 2, 2, 2, 2, 2, 2,
00225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00227 2, 134, 2, 135, 20, 2, 2, 2, 2, 2,
00228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00230 2, 2, 2, 53, 19, 54, 137, 2, 2, 2,
00231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00236 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00238 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00239 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00240 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00241 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00243 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
00244 6, 7, 8, 9, 11, 12, 13, 14, 17, 18,
00245 22, 23, 26, 27, 28, 29, 35, 36, 38, 39,
00246 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
00247 50, 51, 52, 55, 56, 57, 58, 59, 60, 61,
00248 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
00249 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
00250 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
00251 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
00252 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
00253 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
00254 122, 123, 124, 125, 126, 127, 128, 129, 130
00255 };
00256
00257 #if YYDEBUG
00258 static const short yyprhs[] =
00259 {
00260 0, 0, 3, 6, 9, 12, 14, 15, 20, 21,
00261 24, 28, 29, 32, 37, 39, 41, 44, 46, 51,
00262 56, 60, 63, 68, 72, 77, 82, 87, 92, 97,
00263 100, 103, 106, 111, 116, 119, 122, 125, 128, 129,
00264 135, 138, 139, 143, 146, 147, 149, 153, 155, 159,
00265 160, 162, 166, 168, 171, 175, 176, 179, 182, 183,
00266 185, 187, 189, 191, 193, 195, 197, 199, 201, 203,
00267 208, 213, 218, 223, 232, 237, 239, 241, 246, 247,
00268 253, 258, 259, 265, 270, 275, 277, 281, 284, 286,
00269 290, 293, 294, 300, 301, 309, 310, 317, 322, 325,
00270 328, 329, 334, 337, 338, 346, 348, 350, 352, 354,
00271 360, 365, 370, 378, 386, 394, 402, 411, 414, 416,
00272 420, 422, 424, 428, 433, 435, 436, 442, 445, 447,
00273 449, 451, 456, 458, 463, 468, 471, 473, 474, 476,
00274 478, 480, 482, 484, 486, 488, 491, 492, 494, 496,
00275 498, 500, 502, 504, 506, 508, 510, 512, 516, 520,
00276 527, 529, 530, 536, 539, 543, 544, 545, 553, 557,
00277 561, 562, 566, 568, 571, 573, 576, 581, 586, 590,
00278 594, 596, 601, 605, 606, 608, 610, 611, 614, 618,
00279 619, 622, 625, 629, 634, 637, 640, 643, 647, 651,
00280 655, 659, 663, 667, 671, 675, 679, 683, 687, 691,
00281 695, 699, 703, 707, 713, 717, 721, 726, 728, 730,
00282 735, 740, 745, 750, 755, 762, 769, 776, 781, 788,
00283 793, 795, 802, 809, 816, 821, 826, 830, 831, 836,
00284 837, 842, 843, 845, 847, 848, 849, 850, 851, 852,
00285 853, 872, 873, 874, 875, 876, 877, 896, 897, 898,
00286 906, 908, 910, 912, 914, 916, 920, 921, 924, 928,
00287 931, 938, 949, 952, 954, 955, 957, 960, 961, 962,
00288 966, 967, 968, 969, 970, 982, 987, 988, 991, 992,
00289 993, 1000, 1002, 1003, 1007, 1013, 1014, 1018, 1019, 1022,
00290 1023, 1029, 1031, 1034, 1039, 1045, 1052, 1054, 1057, 1058,
00291 1061, 1066, 1071, 1080, 1082, 1086, 1087, 1097, 1098, 1106,
00292 1107
00293 };
00294 static const short yyrhs[] =
00295 {
00296 115, 152, 0, 116, 142, 0, 126, 238, 0, 117,
00297 140, 0, 4, 0, 0, 141, 4, 10, 201, 0,
00298 0, 143, 144, 0, 144, 145, 104, 0, 0, 99,
00299 201, 0, 99, 201, 131, 201, 0, 4, 0, 100,
00300 0, 106, 147, 0, 105, 0, 110, 4, 10, 201,
00301 0, 110, 4, 131, 201, 0, 110, 4, 201, 0,
00302 109, 4, 0, 101, 4, 131, 201, 0, 101, 4,
00303 201, 0, 101, 4, 10, 201, 0, 38, 4, 10,
00304 201, 0, 38, 4, 131, 201, 0, 94, 4, 10,
00305 201, 0, 94, 4, 131, 201, 0, 102, 149, 0,
00306 103, 148, 0, 107, 4, 0, 112, 4, 131, 4,
00307 0, 112, 4, 131, 3, 0, 111, 201, 0, 113,
00308 3, 0, 118, 150, 0, 119, 151, 0, 0, 61,
00309 139, 146, 144, 36, 0, 120, 4, 0, 0, 147,
00310 131, 4, 0, 147, 4, 0, 0, 4, 0, 148,
00311 131, 4, 0, 4, 0, 149, 131, 4, 0, 0,
00312 4, 0, 150, 131, 4, 0, 4, 0, 151, 4,
00313 0, 151, 131, 4, 0, 0, 153, 154, 0, 154,
00314 155, 0, 0, 183, 0, 162, 0, 230, 0, 192,
00315 0, 193, 0, 195, 0, 197, 0, 164, 0, 240,
00316 0, 132, 0, 70, 37, 4, 133, 0, 71, 37,
00317 139, 133, 0, 92, 37, 139, 133, 0, 56, 37,
00318 4, 133, 0, 56, 37, 4, 131, 4, 131, 4,
00319 133, 0, 58, 37, 4, 133, 0, 57, 0, 59,
00320 0, 90, 37, 158, 133, 0, 0, 91, 156, 37,
00321 158, 133, 0, 72, 37, 139, 133, 0, 0, 61,
00322 139, 157, 154, 36, 0, 85, 37, 198, 133, 0,
00323 119, 37, 151, 133, 0, 4, 0, 158, 131, 4,
00324 0, 158, 4, 0, 5, 0, 158, 131, 5, 0,
00325 158, 5, 0, 0, 98, 37, 159, 158, 133, 0,
00326 0, 158, 131, 98, 37, 160, 158, 133, 0, 0,
00327 158, 98, 37, 161, 158, 133, 0, 46, 53, 163,
00328 54, 0, 163, 206, 0, 163, 164, 0, 0, 73,
00329 37, 4, 133, 0, 181, 180, 0, 0, 108, 165,
00330 37, 201, 131, 4, 133, 0, 4, 0, 32, 0,
00331 15, 0, 166, 0, 130, 37, 168, 133, 166, 0,
00332 51, 37, 166, 133, 0, 52, 37, 166, 133, 0,
00333 51, 37, 52, 37, 166, 133, 133, 0, 51, 37,
00334 51, 37, 166, 133, 133, 0, 52, 37, 51, 37,
00335 166, 133, 133, 0, 52, 37, 52, 37, 166, 133,
00336 133, 0, 51, 37, 130, 37, 168, 133, 166, 133,
00337 0, 168, 166, 0, 166, 0, 169, 182, 167, 0,
00338 167, 0, 4, 0, 134, 169, 135, 0, 167, 37,
00339 169, 133, 0, 170, 0, 0, 127, 37, 172, 170,
00340 133, 0, 181, 180, 0, 89, 0, 132, 0, 93,
00341 0, 51, 37, 93, 133, 0, 171, 0, 176, 37,
00342 199, 133, 0, 87, 37, 177, 133, 0, 174, 173,
00343 0, 173, 0, 0, 174, 0, 41, 0, 42, 0,
00344 43, 0, 44, 0, 45, 0, 199, 0, 10, 177,
00345 0, 0, 6, 0, 7, 0, 8, 0, 9, 0,
00346 11, 0, 12, 0, 13, 0, 14, 0, 132, 0,
00347 131, 0, 4, 10, 199, 0, 4, 179, 199, 0,
00348 97, 37, 4, 10, 199, 133, 0, 131, 0, 0,
00349 62, 53, 185, 184, 54, 0, 184, 185, 0, 184,
00350 131, 185, 0, 0, 0, 4, 186, 189, 16, 187,
00351 182, 188, 0, 86, 10, 199, 0, 88, 10, 199,
00352 0, 0, 37, 190, 133, 0, 191, 0, 190, 191,
00353 0, 4, 0, 136, 4, 0, 80, 37, 139, 133,
00354 0, 81, 37, 194, 133, 0, 81, 37, 133, 0,
00355 194, 182, 139, 0, 139, 0, 82, 37, 196, 133,
00356 0, 196, 182, 139, 0, 0, 83, 0, 84, 0,
00357 0, 4, 198, 0, 4, 131, 198, 0, 0, 200,
00358 201, 0, 31, 201, 0, 37, 201, 133, 0, 74,
00359 37, 201, 133, 0, 136, 201, 0, 30, 201, 0,
00360 137, 201, 0, 201, 32, 201, 0, 201, 33, 201,
00361 0, 201, 34, 201, 0, 201, 30, 201, 0, 201,
00362 31, 201, 0, 201, 28, 201, 0, 201, 29, 201,
00363 0, 201, 22, 201, 0, 201, 23, 201, 0, 201,
00364 26, 201, 0, 201, 27, 201, 0, 201, 24, 201,
00365 0, 201, 25, 201, 0, 201, 21, 201, 0, 201,
00366 20, 201, 0, 201, 19, 201, 0, 201, 15, 201,
00367 16, 201, 0, 201, 18, 201, 0, 201, 17, 201,
00368 0, 69, 37, 4, 133, 0, 3, 0, 55, 0,
00369 75, 37, 4, 133, 0, 76, 37, 4, 133, 0,
00370 77, 37, 4, 133, 0, 102, 37, 201, 133, 0,
00371 38, 37, 201, 133, 0, 38, 37, 201, 131, 201,
00372 133, 0, 48, 37, 201, 131, 201, 133, 0, 49,
00373 37, 201, 131, 201, 133, 0, 50, 37, 201, 133,
00374 0, 60, 37, 4, 131, 201, 133, 0, 39, 37,
00375 201, 133, 0, 4, 0, 78, 37, 201, 131, 201,
00376 133, 0, 79, 37, 201, 131, 201, 133, 0, 108,
00377 37, 201, 131, 4, 133, 0, 86, 37, 4, 133,
00378 0, 88, 37, 4, 133, 0, 95, 25, 4, 0,
00379 0, 95, 37, 201, 133, 0, 0, 96, 37, 201,
00380 133, 0, 0, 128, 0, 129, 0, 0, 0, 0,
00381 0, 0, 0, 4, 207, 221, 203, 204, 208, 205,
00382 53, 209, 175, 54, 210, 224, 202, 225, 178, 211,
00383 182, 0, 0, 0, 0, 0, 0, 68, 212, 222,
00384 223, 203, 204, 213, 53, 214, 226, 54, 215, 224,
00385 202, 225, 178, 216, 182, 0, 0, 0, 91, 217,
00386 221, 218, 53, 163, 54, 0, 64, 0, 65, 0,
00387 66, 0, 67, 0, 68, 0, 37, 219, 133, 0,
00388 0, 37, 133, 0, 201, 220, 16, 0, 220, 16,
00389 0, 40, 37, 201, 133, 220, 16, 0, 40, 37,
00390 201, 133, 39, 37, 201, 133, 220, 16, 0, 201,
00391 16, 0, 16, 0, 0, 85, 0, 25, 4, 0,
00392 0, 0, 225, 16, 4, 0, 0, 0, 0, 0,
00393 226, 4, 227, 53, 175, 54, 228, 225, 178, 229,
00394 182, 0, 47, 53, 231, 54, 0, 0, 231, 232,
00395 0, 0, 0, 4, 233, 235, 236, 234, 132, 0,
00396 201, 0, 0, 4, 237, 236, 0, 95, 37, 201,
00397 133, 236, 0, 0, 37, 201, 133, 0, 0, 239,
00398 242, 0, 0, 241, 125, 53, 242, 54, 0, 243,
00399 0, 242, 243, 0, 53, 245, 54, 132, 0, 121,
00400 53, 245, 54, 132, 0, 121, 53, 245, 54, 244,
00401 132, 0, 121, 0, 244, 121, 0, 0, 246, 132,
00402 0, 123, 16, 246, 132, 0, 124, 16, 246, 132,
00403 0, 123, 16, 246, 132, 124, 16, 246, 132, 0,
00404 122, 0, 246, 132, 122, 0, 0, 246, 132, 119,
00405 4, 53, 247, 246, 249, 54, 0, 0, 119, 4,
00406 53, 248, 246, 249, 54, 0, 0, 132, 0
00407 };
00408
00409 #endif
00410
00411 #if YYDEBUG
00412
00413 static const short yyrline[] =
00414 {
00415 0, 163, 165, 166, 167, 171, 174, 174, 184, 184,
00416 197, 199, 202, 204, 205, 208, 211, 212, 213, 215,
00417 217, 219, 221, 223, 225, 227, 229, 231, 233, 235,
00418 236, 237, 239, 241, 243, 245, 247, 248, 249, 249,
00419 253, 255, 258, 260, 261, 264, 267, 270, 273, 277,
00420 279, 280, 283, 286, 288, 292, 292, 303, 305, 310,
00421 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
00422 323, 325, 327, 330, 332, 334, 336, 338, 339, 339,
00423 343, 345, 345, 349, 353, 356, 360, 363, 366, 369,
00424 372, 375, 375, 379, 379, 383, 383, 389, 393, 395,
00425 396, 399, 402, 403, 403, 410, 415, 419, 425, 432,
00426 438, 444, 450, 456, 462, 468, 474, 482, 491, 502,
00427 511, 522, 531, 535, 541, 543, 543, 549, 551, 555,
00428 556, 561, 566, 567, 572, 578, 580, 583, 585, 588,
00429 591, 593, 595, 597, 601, 611, 614, 617, 620, 622,
00430 624, 626, 628, 630, 632, 637, 637, 641, 646, 654,
00431 661, 662, 665, 669, 671, 672, 676, 676, 683, 691,
00432 700, 703, 706, 708, 711, 714, 718, 723, 725, 729,
00433 732, 737, 739, 742, 745, 748, 752, 757, 766, 777,
00434 777, 782, 785, 787, 789, 791, 793, 796, 798, 800,
00435 802, 804, 806, 808, 810, 812, 814, 816, 818, 820,
00436 822, 824, 826, 828, 830, 832, 834, 836, 838, 841,
00437 843, 845, 847, 849, 851, 853, 855, 857, 859, 868,
00438 870, 872, 874, 876, 878, 880, 885, 887, 890, 892,
00439 895, 897, 900, 902, 903, 906, 906, 906, 906, 906,
00440 906, 926, 926, 926, 926, 926, 926, 944, 944, 944,
00441 957, 959, 960, 961, 962, 965, 967, 968, 971, 973,
00442 974, 979, 983, 985, 988, 991, 995, 998, 1001, 1006,
00443 1019, 1021, 1021, 1021, 1021, 1037, 1041, 1043, 1046, 1046,
00444 1046, 1056, 1100, 1105, 1117, 1124, 1129, 1137, 1137, 1151,
00445 1151, 1161, 1163, 1166, 1171, 1175, 1181, 1186, 1192, 1197,
00446 1201, 1205, 1209, 1215, 1220, 1224, 1224, 1234, 1234, 1246,
00447 1248
00448 };
00449 #endif
00450
00451
00452 #if (YYDEBUG) || defined YYERROR_VERBOSE
00453
00454
00455 static const char *const yytname[] =
00456 {
00457 "$", "error", "$undefined.", "INT", "NAME", "LNAME", "PLUSEQ", "MINUSEQ",
00458 "MULTEQ", "DIVEQ", "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ", "OREQ",
00459 "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE", "'<'",
00460 "'>'", "LE", "GE", "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'",
00461 "'%'", "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD",
00462 "SQUAD", "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS",
00463 "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_RELRO_END", "DATA_SEGMENT_END",
00464 "SORT_BY_NAME", "SORT_BY_ALIGNMENT", "'{'", "'}'", "SIZEOF_HEADERS",
00465 "OUTPUT_FORMAT", "FORCE_COMMON_ALLOCATION", "OUTPUT_ARCH",
00466 "INHIBIT_COMMON_ALLOCATION", "SEGMENT_START", "INCLUDE", "MEMORY",
00467 "DEFSYMEND", "NOLOAD", "DSECT", "COPY", "INFO", "OVERLAY", "DEFINED",
00468 "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT", "SIZEOF", "ADDR",
00469 "LOADADDR", "MAX_K", "MIN_K", "STARTUP", "HLL", "SYSLIB", "FLOAT",
00470 "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL", "LENGTH",
00471 "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", "CONSTRUCTORS",
00472 "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE", "AS_NEEDED", "CHIP", "LIST",
00473 "SECT", "ABSOLUTE", "LOAD", "NEWLINE", "ENDWORD", "ORDER", "NAMEWORD",
00474 "ASSERT_K", "FORMAT", "PUBLIC", "BASE", "ALIAS", "TRUNCATE", "REL",
00475 "INPUT_SCRIPT", "INPUT_MRI_SCRIPT", "INPUT_DEFSYM", "CASE", "EXTERN",
00476 "START", "VERS_TAG", "VERS_IDENTIFIER", "GLOBAL", "LOCAL", "VERSIONK",
00477 "INPUT_VERSION_SCRIPT", "KEEP", "ONLY_IF_RO", "ONLY_IF_RW",
00478 "EXCLUDE_FILE", "','", "';'", "')'", "'['", "']'", "'!'", "'~'", "file",
00479 "filename", "defsym_expr", "@1", "mri_script_file", "@2",
00480 "mri_script_lines", "mri_script_command", "@3", "ordernamelist",
00481 "mri_load_name_list", "mri_abs_name_list", "casesymlist",
00482 "extern_name_list", "script_file", "@4", "ifile_list", "ifile_p1", "@5",
00483 "@6", "input_list", "@7", "@8", "@9", "sections", "sec_or_group_p1",
00484 "statement_anywhere", "@10", "wildcard_name", "wildcard_spec",
00485 "exclude_name_list", "file_NAME_list", "input_section_spec_no_keep",
00486 "input_section_spec", "@11", "statement", "statement_list",
00487 "statement_list_opt", "length", "fill_exp", "fill_opt", "assign_op",
00488 "end", "assignment", "opt_comma", "memory", "memory_spec_list",
00489 "memory_spec", "@12", "origin_spec", "length_spec", "attributes_opt",
00490 "attributes_list", "attributes_string", "startup", "high_level_library",
00491 "high_level_library_NAME_list", "low_level_library",
00492 "low_level_library_NAME_list", "floating_point_support",
00493 "nocrossref_list", "mustbe_exp", "@13", "exp", "memspec_at_opt",
00494 "opt_at", "opt_subalign", "sect_constraint", "section", "@14", "@15",
00495 "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25",
00496 "type", "atype", "opt_exp_with_type", "opt_exp_without_type",
00497 "opt_nocrossrefs", "memspec_opt", "phdr_opt", "overlay_section", "@26",
00498 "@27", "@28", "phdrs", "phdr_list", "phdr", "@29", "@30", "phdr_type",
00499 "phdr_qualifiers", "phdr_val", "version_script_file", "@31", "version",
00500 "@32", "vers_nodes", "vers_node", "verdep", "vers_tag", "vers_defns",
00501 "@33", "@34", "opt_semicolon", 0
00502 };
00503 #endif
00504
00505
00506 static const short yyr1[] =
00507 {
00508 0, 138, 138, 138, 138, 139, 141, 140, 143, 142,
00509 144, 144, 145, 145, 145, 145, 145, 145, 145, 145,
00510 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
00511 145, 145, 145, 145, 145, 145, 145, 145, 146, 145,
00512 145, 145, 147, 147, 147, 148, 148, 149, 149, 150,
00513 150, 150, 151, 151, 151, 153, 152, 154, 154, 155,
00514 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
00515 155, 155, 155, 155, 155, 155, 155, 155, 156, 155,
00516 155, 157, 155, 155, 155, 158, 158, 158, 158, 158,
00517 158, 159, 158, 160, 158, 161, 158, 162, 163, 163,
00518 163, 164, 164, 165, 164, 166, 166, 166, 167, 167,
00519 167, 167, 167, 167, 167, 167, 167, 168, 168, 169,
00520 169, 170, 170, 170, 171, 172, 171, 173, 173, 173,
00521 173, 173, 173, 173, 173, 174, 174, 175, 175, 176,
00522 176, 176, 176, 176, 177, 178, 178, 179, 179, 179,
00523 179, 179, 179, 179, 179, 180, 180, 181, 181, 181,
00524 182, 182, 183, 184, 184, 184, 186, 185, 187, 188,
00525 189, 189, 190, 190, 191, 191, 192, 193, 193, 194,
00526 194, 195, 196, 196, 197, 197, 198, 198, 198, 200,
00527 199, 201, 201, 201, 201, 201, 201, 201, 201, 201,
00528 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
00529 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
00530 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
00531 201, 201, 201, 201, 201, 201, 202, 202, 203, 203,
00532 204, 204, 205, 205, 205, 207, 208, 209, 210, 211,
00533 206, 212, 213, 214, 215, 216, 206, 217, 218, 206,
00534 219, 219, 219, 219, 219, 220, 220, 220, 221, 221,
00535 221, 221, 222, 222, 223, 223, 224, 224, 225, 225,
00536 226, 227, 228, 229, 226, 230, 231, 231, 233, 234,
00537 232, 235, 236, 236, 236, 237, 237, 239, 238, 241,
00538 240, 242, 242, 243, 243, 243, 244, 244, 245, 245,
00539 245, 245, 245, 246, 246, 247, 246, 248, 246, 249,
00540 249
00541 };
00542
00543
00544 static const short yyr2[] =
00545 {
00546 0, 2, 2, 2, 2, 1, 0, 4, 0, 2,
00547 3, 0, 2, 4, 1, 1, 2, 1, 4, 4,
00548 3, 2, 4, 3, 4, 4, 4, 4, 4, 2,
00549 2, 2, 4, 4, 2, 2, 2, 2, 0, 5,
00550 2, 0, 3, 2, 0, 1, 3, 1, 3, 0,
00551 1, 3, 1, 2, 3, 0, 2, 2, 0, 1,
00552 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
00553 4, 4, 4, 8, 4, 1, 1, 4, 0, 5,
00554 4, 0, 5, 4, 4, 1, 3, 2, 1, 3,
00555 2, 0, 5, 0, 7, 0, 6, 4, 2, 2,
00556 0, 4, 2, 0, 7, 1, 1, 1, 1, 5,
00557 4, 4, 7, 7, 7, 7, 8, 2, 1, 3,
00558 1, 1, 3, 4, 1, 0, 5, 2, 1, 1,
00559 1, 4, 1, 4, 4, 2, 1, 0, 1, 1,
00560 1, 1, 1, 1, 1, 2, 0, 1, 1, 1,
00561 1, 1, 1, 1, 1, 1, 1, 3, 3, 6,
00562 1, 0, 5, 2, 3, 0, 0, 7, 3, 3,
00563 0, 3, 1, 2, 1, 2, 4, 4, 3, 3,
00564 1, 4, 3, 0, 1, 1, 0, 2, 3, 0,
00565 2, 2, 3, 4, 2, 2, 2, 3, 3, 3,
00566 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
00567 3, 3, 3, 5, 3, 3, 4, 1, 1, 4,
00568 4, 4, 4, 4, 6, 6, 6, 4, 6, 4,
00569 1, 6, 6, 6, 4, 4, 3, 0, 4, 0,
00570 4, 0, 1, 1, 0, 0, 0, 0, 0, 0,
00571 18, 0, 0, 0, 0, 0, 18, 0, 0, 7,
00572 1, 1, 1, 1, 1, 3, 0, 2, 3, 2,
00573 6, 10, 2, 1, 0, 1, 2, 0, 0, 3,
00574 0, 0, 0, 0, 11, 4, 0, 2, 0, 0,
00575 6, 1, 0, 3, 5, 0, 3, 0, 2, 0,
00576 5, 1, 2, 4, 5, 6, 1, 2, 0, 2,
00577 4, 4, 8, 1, 3, 0, 9, 0, 7, 0,
00578 1
00579 };
00580
00581
00582
00583
00584 static const short yydefact[] =
00585 {
00586 0, 55, 8, 6, 297, 1, 58, 2, 11, 4,
00587 0, 3, 0, 56, 9, 0, 308, 0, 298, 301,
00588 0, 0, 0, 0, 75, 0, 76, 0, 0, 0,
00589 0, 0, 0, 0, 0, 0, 184, 185, 0, 0,
00590 78, 0, 0, 103, 0, 68, 57, 60, 66, 0,
00591 59, 62, 63, 64, 65, 61, 67, 0, 14, 0,
00592 0, 0, 0, 15, 0, 0, 0, 17, 44, 0,
00593 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
00594 0, 313, 0, 0, 0, 0, 308, 302, 147, 148,
00595 149, 150, 189, 151, 152, 153, 154, 189, 100, 286,
00596 0, 0, 5, 81, 0, 0, 0, 0, 0, 0,
00597 0, 183, 186, 0, 0, 0, 0, 0, 0, 156,
00598 155, 102, 0, 0, 38, 0, 217, 230, 0, 0,
00599 0, 0, 0, 0, 0, 0, 218, 0, 0, 0,
00600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00601 0, 12, 0, 47, 29, 45, 30, 16, 31, 21,
00602 0, 34, 0, 35, 50, 36, 52, 37, 40, 10,
00603 7, 0, 0, 0, 0, 309, 0, 157, 0, 158,
00604 0, 0, 0, 0, 58, 166, 165, 0, 0, 0,
00605 0, 0, 178, 180, 161, 161, 186, 0, 85, 88,
00606 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00607 11, 0, 0, 195, 191, 0, 0, 0, 0, 0,
00608 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00609 0, 0, 0, 194, 196, 0, 0, 0, 0, 0,
00610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00611 0, 0, 0, 0, 0, 0, 0, 23, 0, 0,
00612 43, 0, 0, 0, 20, 0, 0, 53, 0, 317,
00613 0, 0, 303, 0, 314, 0, 190, 245, 97, 251,
00614 257, 99, 98, 288, 285, 287, 0, 72, 74, 299,
00615 170, 0, 69, 70, 80, 101, 176, 160, 177, 0,
00616 181, 0, 186, 187, 83, 91, 87, 90, 0, 0,
00617 77, 0, 71, 189, 0, 84, 0, 25, 26, 41,
00618 27, 28, 192, 0, 0, 0, 0, 0, 0, 0,
00619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00620 0, 215, 214, 212, 211, 210, 204, 205, 208, 209,
00621 206, 207, 202, 203, 200, 201, 197, 198, 199, 13,
00622 24, 22, 48, 46, 42, 18, 19, 33, 32, 51,
00623 54, 0, 310, 311, 0, 306, 304, 0, 266, 0,
00624 266, 0, 0, 82, 0, 0, 162, 0, 163, 179,
00625 182, 188, 0, 95, 86, 89, 0, 79, 0, 0,
00626 300, 39, 0, 223, 229, 0, 0, 227, 0, 216,
00627 193, 219, 220, 221, 0, 0, 234, 235, 222, 0,
00628 0, 319, 0, 315, 307, 305, 0, 0, 266, 0,
00629 239, 273, 0, 274, 258, 291, 292, 0, 174, 0,
00630 0, 172, 0, 164, 0, 0, 93, 159, 0, 0,
00631 0, 0, 0, 0, 0, 0, 213, 320, 0, 0,
00632 0, 260, 261, 262, 263, 264, 267, 0, 0, 0,
00633 0, 269, 0, 241, 272, 275, 239, 0, 295, 0,
00634 289, 0, 175, 171, 173, 0, 161, 92, 0, 0,
00635 104, 224, 225, 226, 228, 231, 232, 233, 318, 0,
00636 319, 265, 0, 268, 0, 0, 246, 241, 100, 0,
00637 292, 0, 0, 73, 189, 0, 96, 0, 312, 0,
00638 266, 0, 0, 244, 252, 0, 0, 293, 0, 290,
00639 168, 0, 167, 94, 316, 0, 0, 238, 0, 242,
00640 243, 0, 0, 259, 296, 292, 189, 0, 270, 240,
00641 247, 253, 294, 169, 0, 137, 280, 266, 121, 107,
00642 106, 139, 140, 141, 142, 143, 0, 0, 0, 128,
00643 130, 0, 0, 129, 0, 108, 0, 124, 132, 136,
00644 138, 0, 0, 0, 0, 0, 0, 0, 189, 125,
00645 0, 105, 0, 120, 161, 0, 135, 248, 189, 127,
00646 281, 254, 271, 0, 0, 0, 0, 0, 0, 0,
00647 0, 0, 144, 0, 118, 0, 0, 122, 0, 161,
00648 277, 0, 0, 277, 0, 0, 131, 0, 110, 0,
00649 0, 111, 134, 105, 0, 0, 117, 119, 123, 0,
00650 237, 133, 137, 237, 0, 0, 0, 0, 0, 126,
00651 109, 276, 0, 278, 0, 278, 0, 0, 0, 0,
00652 0, 0, 146, 282, 146, 113, 112, 0, 114, 115,
00653 236, 189, 0, 249, 278, 255, 116, 145, 279, 161,
00654 146, 161, 250, 283, 256, 161, 284, 0, 0, 0
00655 };
00656
00657 static const short yydefgoto[] =
00658 {
00659 687, 103, 9, 10, 7, 8, 14, 78, 210, 157,
00660 156, 154, 165, 167, 5, 6, 13, 46, 114, 184,
00661 201, 392, 489, 445, 47, 180, 48, 117, 575, 576,
00662 615, 594, 577, 578, 613, 579, 580, 581, 582, 611,
00663 673, 97, 121, 49, 618, 50, 291, 186, 290, 486,
00664 532, 385, 440, 441, 51, 52, 194, 53, 195, 54,
00665 197, 612, 178, 215, 653, 473, 506, 541, 282, 378,
00666 523, 555, 620, 679, 379, 542, 556, 623, 681, 380,
00667 477, 467, 429, 430, 433, 476, 640, 662, 584, 622,
00668 674, 685, 55, 181, 285, 381, 512, 436, 480, 510,
00669 11, 12, 56, 57, 18, 19, 377, 84, 85, 460,
00670 371, 458
00671 };
00672
00673 static const short yypact[] =
00674 {
00675 139,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00676 18,-32768, -35, 759, 1346, 52, 180, 14, -35,-32768,
00677 391, 26, 74, 96,-32768, 162,-32768, 85, 149, 196,
00678 203, 220, 232, 254, 255, 273,-32768,-32768, 291, 292,
00679 -32768, 293, 295,-32768, 296,-32768,-32768,-32768,-32768, -78,
00680 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 98,-32768, 242,
00681 85, 332, 672,-32768, 334, 336, 341,-32768,-32768, 342,
00682 354, 356, 672, 357, 360, 361, 363, 371, 283, 672,
00683 372,-32768, 373, 375, 323, 262, 180,-32768,-32768,-32768,
00684 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00685 403, 404,-32768,-32768, 405, 410, 85, 85, 411, 85,
00686 13,-32768, 412, 37, 358, 85, 414, 384, 363,-32768,
00687 -32768,-32768, 374, 25,-32768, 83,-32768,-32768, 672, 672,
00688 672, 387, 388, 389, 392, 393,-32768, 394, 397, 398,
00689 399, 406, 407, 413, 415, 418, 419, 422, 424, 672,
00690 672, 1474, 35,-32768, 311,-32768, 316, 11,-32768,-32768,
00691 435, 1704, 338,-32768,-32768, 339,-32768, 33,-32768,-32768,
00692 1704, 423, -95, -95, 335, -16, 417,-32768, 672,-32768,
00693 258, 42, 3, 344,-32768,-32768,-32768, 345, 347, 348,
00694 349, 364,-32768,-32768, 133, 167, 36, 365,-32768,-32768,
00695 438, 24, 37, 366, 477, 672, 7, -35, 672, 672,
00696 -32768, 672, 672,-32768,-32768, 940, 672, 672, 672, 672,
00697 672, 489, 490, 672, 492, 496, 497, 672, 672, 498,
00698 499, 672, 672,-32768,-32768, 672, 672, 672, 672, 672,
00699 672, 672, 672, 672, 672, 672, 672, 672, 672, 672,
00700 672, 672, 672, 672, 672, 672, 672, 1704, 501, 503,
00701 -32768, 504, 672, 672, 1704, 248, 511,-32768, 512,-32768,
00702 390, 401,-32768, 515,-32768, -45, 1704, 391,-32768,-32768,
00703 -32768,-32768,-32768,-32768,-32768,-32768, 516,-32768,-32768, 824,
00704 502, 21,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 85,
00705 -32768, 85, 412,-32768,-32768,-32768,-32768,-32768, 505, 127,
00706 -32768, 77,-32768,-32768, 1494,-32768, 47, 1704, 1704, 1368,
00707 1704, 1704,-32768, 253, 960, 1514, 1534, 980, 409, 402,
00708 1000, 408, 416, 425, 1554, 1589, 426, 427, 1020, 1609,
00709 1671, 1037, 1153, 770, 1268, 660, 920, 920, 285, 285,
00710 285, 285, 186, 186, 256, 256,-32768,-32768,-32768, 1704,
00711 1704, 1704,-32768,-32768,-32768, 1704, 1704,-32768,-32768,-32768,
00712 -32768, -95, 113, -16, 481,-32768,-32768, 117, 514, 593,
00713 514, 672, 430,-32768, 9, 520,-32768, 405,-32768,-32768,
00714 -32768,-32768, 37,-32768,-32768,-32768, 509,-32768, 432, 534,
00715 -32768,-32768, 672,-32768,-32768, 672, 672,-32768, 672,-32768,
00716 -32768,-32768,-32768,-32768, 672, 672,-32768,-32768,-32768, 543,
00717 672, 436, 532,-32768,-32768,-32768, 304, 513, 1629, 540,
00718 462,-32768, 1726, 482,-32768, 1704, 22, 566,-32768, 569,
00719 8,-32768, 491,-32768, 103, 37,-32768,-32768, 442, 1057,
00720 1077, 1097, 1117, 1137, 1174, 443, 1704, -16, 524, -95,
00721 -95,-32768,-32768,-32768,-32768,-32768,-32768, 446, 672, 163,
00722 564,-32768, 544, 486,-32768,-32768, 462, 531, 548, 549,
00723 -32768, 454,-32768,-32768,-32768, 584, 464,-32768, 111, 37,
00724 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 466,
00725 436,-32768, 1194,-32768, 672, 562,-32768, 486,-32768, 672,
00726 22, 672, 469,-32768,-32768, 517,-32768, 114, -16, 550,
00727 272, 1214, 672, 177,-32768, 320, 1234,-32768, 1254,-32768,
00728 -32768, 596,-32768,-32768,-32768, 570, 587,-32768, 1291,-32768,
00729 -32768, 555, 557,-32768,-32768, 22,-32768, 672,-32768,-32768,
00730 -32768,-32768,-32768,-32768, 1311, 692,-32768, 574, 518,-32768,
00731 -32768,-32768,-32768,-32768,-32768,-32768, 575, 576, 577,-32768,
00732 -32768, 578, 580,-32768, 207,-32768, 581,-32768,-32768,-32768,
00733 692, 565, 583, -78, 45, 605, 46, 381,-32768,-32768,
00734 211,-32768, 588,-32768, 132, 207,-32768,-32768,-32768,-32768,
00735 -32768,-32768,-32768, 589, 590, 495, 592, 500, 597, 598,
00736 506, 507,-32768, 73,-32768, 15, 209,-32768, 207, 194,
00737 611, 519, 585, 611, 211, 211,-32768, 211,-32768, 211,
00738 211,-32768,-32768, 521, 522, 211,-32768,-32768,-32768, 633,
00739 551,-32768, 692, 551, 523, 525, 16, 526, 527,-32768,
00740 -32768,-32768, 619,-32768, 591,-32768, 528, 530, 211, 533,
00741 541, 643, 53,-32768, 53,-32768,-32768, 545,-32768,-32768,
00742 -32768,-32768, 645,-32768,-32768,-32768,-32768,-32768,-32768, 464,
00743 53, 464,-32768,-32768,-32768, 464,-32768, 657, 664,-32768
00744 };
00745
00746 static const short yypgoto[] =
00747 {
00748 -32768, -51,-32768,-32768,-32768,-32768, 455,-32768,-32768,-32768,
00749 -32768,-32768,-32768, 559,-32768,-32768, 529,-32768,-32768,-32768,
00750 -192,-32768,-32768,-32768,-32768, 165, -174,-32768, -167, -538,
00751 70, 104, 67,-32768,-32768, 118,-32768, 58,-32768, 34,
00752 -620,-32768, 121, -512, -193,-32768,-32768, -259,-32768,-32768,
00753 -32768,-32768,-32768, 266,-32768,-32768,-32768,-32768,-32768,-32768,
00754 -173, -92,-32768, -58, 65, 236, 208,-32768,-32768,-32768,
00755 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00756 -32768,-32768, -394, 337,-32768,-32768, 91, -622,-32768,-32768,
00757 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -494,-32768,
00758 -32768,-32768,-32768,-32768, 535, -15,-32768, 630, -165,-32768,
00759 -32768, 218
00760 };
00761
00762
00763 #define YYLAST 1760
00764
00765
00766 static const short yytable[] =
00767 {
00768 177, 299, 301, 87, 151, 179, 281, 270, 271, 124,
00769 311, 267, 438, 438, 161, 260, 527, 102, 16, 591,
00770 591, 170, 15, 303, 80, 185, 478, 81, 306, 307,
00771 559, 559, 388, 664, 470, 208, 593, 267, 126, 127,
00772 196, 198, 199, 583, 675, 255, 283, 560, 560, 600,
00773 591, 552, 680, 119, 120, 188, 189, 593, 191, 193,
00774 683, 559, 79, 671, 203, 128, 129, 86, 583, 672,
00775 213, 214, 130, 131, 132, 386, 375, 633, 560, 98,
00776 637, 306, 307, 133, 134, 135, 17, 376, 559, 102,
00777 136, 233, 234, 211, 257, 137, 284, 603, 604, 601,
00778 16, 400, 264, 273, 138, 560, 274, 306, 307, 139,
00779 140, 141, 142, 143, 144, 306, 307, 479, 306, 307,
00780 276, 145, 308, 146, 592, 567, 536, 99, 443, 391,
00781 583, 394, 395, 100, 286, 200, 287, 147, 268, 605,
00782 315, 483, 261, 148, 439, 439, 192, 314, 635, 658,
00783 317, 318, 387, 320, 321, 309, 209, 310, 323, 324,
00784 325, 326, 327, 585, 268, 330, 256, 302, 17, 334,
00785 335, 149, 150, 338, 339, 308, 606, 340, 341, 342,
00786 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
00787 353, 354, 355, 356, 357, 358, 359, 360, 361, 101,
00788 444, 308, 104, 572, 365, 366, 421, 574, 309, 308,
00789 397, 591, 308, 591, 212, 591, 249, 250, 251, 252,
00790 253, 398, 559, 122, 559, 396, 559, 461, 462, 463,
00791 464, 465, 273, 105, 309, 274, 487, 422, 424, 560,
00792 106, 560, 309, 560, 516, 309, 123, 533, 389, 425,
00793 390, 367, 368, 488, 1, 2, 3, 107, 592, 567,
00794 603, 604, 277, 297, 297, 4, 298, 617, 235, 108,
00795 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
00796 246, 247, 248, 249, 250, 251, 252, 253, 251, 252,
00797 253, 109, 110, 515, 499, 500, 466, 517, 297, 80,
00798 300, 87, 81, 82, 83, 539, 540, 126, 127, 469,
00799 111, 535, 278, 247, 248, 249, 250, 251, 252, 253,
00800 428, 432, 428, 435, 277, 297, 279, 638, 112, 113,
00801 115, 32, 116, 118, 128, 129, 125, 572, 152, 606,
00802 153, 130, 131, 132, 449, 155, 158, 450, 451, 280,
00803 452, 281, 133, 134, 135, 42, 453, 454, 159, 136,
00804 160, 162, 456, 163, 137, 164, 43, 166, 461, 462,
00805 463, 464, 465, 138, 543, 168, 171, 174, 139, 140,
00806 141, 142, 143, 144, 402, 591, 403, 169, 279, 172,
00807 145, 173, 146, 32, 175, 202, 559, 88, 89, 90,
00808 91, 92, 93, 94, 95, 96, 147, 182, 183, 185,
00809 502, 280, 148, 560, 187, 190, 196, 42, 204, 607,
00810 610, 205, 530, 614, 216, 217, 218, 207, 43, 219,
00811 220, 221, 608, 609, 222, 223, 224, 466, 126, 127,
00812 149, 150, 258, 225, 226, 262, 521, 259, 636, 607,
00813 227, 526, 228, 528, 553, 229, 230, 644, 645, 231,
00814 614, 232, 647, 648, 538, 128, 129, 272, 650, 265,
00815 266, 275, 130, 131, 132, 305, 269, 288, 292, 636,
00816 293, 294, 295, 133, 134, 135, 682, 313, 684, 554,
00817 136, 667, 686, 328, 329, 137, 331, 296, 304, 312,
00818 332, 333, 336, 337, 138, 362, 621, 363, 364, 139,
00819 140, 141, 142, 143, 144, 369, 370, 126, 127, 374,
00820 382, 145, 372, 146, 88, 89, 90, 91, 92, 93,
00821 94, 95, 96, 373, 423, 409, 442, 147, 448, 384,
00822 408, 411, 393, 148, 128, 129, 446, 455, 459, 412,
00823 468, 426, 131, 132, 427, -105, 471, 472, 413, 416,
00824 417, 437, 133, 134, 135, 447, 263, 475, 457, 136,
00825 481, 149, 150, 482, 137, 490, 497, 485, 498, 501,
00826 503, 504, 505, 138, 508, 509, 511, 513, 139, 140,
00827 141, 142, 143, 144, 514, 297, 126, 127, 518, 522,
00828 145, 529, 146, 548, 534, 531, 546, 547, 550, 431,
00829 551, 469, 586, 587, 588, 589, 147, 590, 595, 597,
00830 598, 602, 148, 128, 129, 616, 624, 625, 626, 627,
00831 130, 131, 132, 628, 629, 630, 639, 651, 642, 631,
00832 632, 133, 134, 135, 661, 663, 652, 670, 136, 678,
00833 149, 150, 641, 137, -121, 649, 656, 688, 657, 659,
00834 660, 665, 138, 666, 689, 319, 668, 139, 140, 141,
00835 142, 143, 144, 525, 669, 126, 127, 206, 676, 145,
00836 634, 146, 241, 242, 243, 244, 245, 246, 247, 248,
00837 249, 250, 251, 252, 253, 147, 558, 646, 596, 619,
00838 654, 148, 128, 129, 599, 677, 484, 559, 655, 130,
00839 131, 132, 507, 289, 643, 524, 176, 434, 519, 0,
00840 133, 134, 135, 0, 560, 0, 0, 136, 0, 149,
00841 150, 0, 137, 561, 562, 563, 564, 565, 0, 0,
00842 0, 138, 316, 566, 567, 0, 139, 140, 141, 142,
00843 143, 144, 0, 0, 0, 0, 0, 0, 145, 0,
00844 146, 0, 0, 20, 0, 0, 0, 0, 0, 0,
00845 0, 0, 0, 0, 147, 0, 0, 0, 0, 568,
00846 148, 569, 0, 0, 0, 570, 0, 0, 0, 42,
00847 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
00848 249, 250, 251, 252, 253, 21, 22, 0, 149, 150,
00849 0, 0, 0, 0, 0, 23, 24, 25, 26, 571,
00850 27, 28, 572, 0, 573, 0, 574, 0, 20, 29,
00851 30, 31, 32, 0, 0, 0, 0, 0, 0, 33,
00852 34, 35, 36, 37, 38, 0, 0, 0, 0, 39,
00853 40, 41, 0, 0, 0, 0, 42, 0, 0, 0,
00854 383, 0, 0, 0, 0, 0, 0, 43, 0, 0,
00855 21, 22, 0, 0, 0, 0, 0, 0, 44, 0,
00856 23, 24, 25, 26, -299, 27, 28, 0, 0, 0,
00857 0, 45, 0, 0, 29, 30, 31, 32, 0, 0,
00858 0, 0, 0, 0, 33, 34, 35, 36, 37, 38,
00859 0, 0, 0, 0, 39, 40, 41, 0, 0, 0,
00860 0, 42, 0, 0, 0, 0, 0, 0, 0, 0,
00861 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
00862 0, 0, 0, 44, 243, 244, 245, 246, 247, 248,
00863 249, 250, 251, 252, 253, 235, 45, 236, 237, 238,
00864 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
00865 249, 250, 251, 252, 253, 235, 0, 236, 237, 238,
00866 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
00867 249, 250, 251, 252, 253, 235, 0, 236, 237, 238,
00868 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
00869 249, 250, 251, 252, 253, 235, 0, 236, 237, 238,
00870 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
00871 249, 250, 251, 252, 253, 235, 0, 236, 237, 238,
00872 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
00873 249, 250, 251, 252, 253, 237, 238, 239, 240, 241,
00874 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
00875 252, 253, 235, 322, 236, 237, 238, 239, 240, 241,
00876 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
00877 252, 253, 235, 404, 236, 237, 238, 239, 240, 241,
00878 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
00879 252, 253, 235, 407, 236, 237, 238, 239, 240, 241,
00880 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
00881 252, 253, 235, 410, 236, 237, 238, 239, 240, 241,
00882 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
00883 252, 253, 235, 418, 236, 237, 238, 239, 240, 241,
00884 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
00885 252, 253, 238, 239, 240, 241, 242, 243, 244, 245,
00886 246, 247, 248, 249, 250, 251, 252, 253, 0, 235,
00887 491, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00888 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00889 492, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00890 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00891 493, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00892 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00893 494, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00894 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00895 495, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00896 245, 246, 247, 248, 249, 250, 251, 252, 253, 240,
00897 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
00898 251, 252, 253, 0, 0, 0, 235, 496, 236, 237,
00899 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
00900 248, 249, 250, 251, 252, 253, 235, 520, 236, 237,
00901 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
00902 248, 249, 250, 251, 252, 253, 0, 537, 0, 0,
00903 58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00904 0, 0, 0, 0, 0, 0, 0, 544, 0, 0,
00905 0, 0, 58, 0, 0, 0, 0, 0, 0, 0,
00906 0, 0, 0, 0, 59, 0, 0, 545, 0, 0,
00907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00908 0, 0, 0, 0, 401, 0, 59, 60, 0, 0,
00909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00910 0, 0, 0, 0, 549, 0, 0, 0, 0, 60,
00911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00912 61, 0, 0, 0, 557, 62, 63, 64, 65, 66,
00913 -41, 67, 68, 69, 0, 70, 71, 72, 73, 74,
00914 0, 0, 61, 0, 75, 76, 77, 62, 63, 64,
00915 65, 66, 0, 67, 68, 69, 0, 70, 71, 72,
00916 73, 74, 0, 0, 0, 0, 75, 76, 77, 235,
00917 0, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00918 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00919 0, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00920 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00921 0, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00922 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00923 0, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00924 245, 246, 247, 248, 249, 250, 251, 252, 253, 235,
00925 0, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00926 245, 246, 247, 248, 249, 250, 251, 252, 253, 0,
00927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00928 0, 0, 0, 0, 235, 254, 236, 237, 238, 239,
00929 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
00930 250, 251, 252, 253, 235, 399, 236, 237, 238, 239,
00931 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
00932 250, 251, 252, 253, 235, 405, 236, 237, 238, 239,
00933 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
00934 250, 251, 252, 253, 0, 406, 469, 0, 0, 0,
00935 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00936 0, 0, 0, 0, 0, 414, 235, 420, 236, 237,
00937 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
00938 248, 249, 250, 251, 252, 253, 0, 0, 0, 0,
00939 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
00940 415, 236, 237, 238, 239, 240, 241, 242, 243, 244,
00941 245, 246, 247, 248, 249, 250, 251, 252, 253, 0,
00942 419, 235, 474, 236, 237, 238, 239, 240, 241, 242,
00943 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
00944 253
00945 };
00946
00947 static const short yycheck[] =
00948 {
00949 92, 194, 195, 18, 62, 97, 180, 172, 173, 60,
00950 202, 4, 4, 4, 72, 4, 510, 4, 53, 4,
00951 4, 79, 4, 196, 119, 4, 4, 122, 4, 5,
00952 15, 15, 291, 655, 428, 10, 574, 4, 3, 4,
00953 4, 4, 5, 555, 664, 10, 4, 32, 32, 4,
00954 4, 545, 674, 131, 132, 106, 107, 595, 109, 110,
00955 680, 15, 10, 10, 115, 30, 31, 53, 580, 16,
00956 128, 129, 37, 38, 39, 54, 121, 4, 32, 53,
00957 618, 4, 5, 48, 49, 50, 121, 132, 15, 4,
00958 55, 149, 150, 10, 152, 60, 54, 51, 52, 54,
00959 53, 54, 160, 119, 69, 32, 122, 4, 5, 74,
00960 75, 76, 77, 78, 79, 4, 5, 95, 4, 5,
00961 178, 86, 98, 88, 51, 52, 520, 53, 387, 302,
00962 642, 4, 5, 37, 131, 98, 133, 102, 131, 93,
00963 133, 133, 131, 108, 136, 136, 133, 205, 133, 133,
00964 208, 209, 131, 211, 212, 131, 131, 133, 216, 217,
00965 218, 219, 220, 557, 131, 223, 131, 131, 121, 227,
00966 228, 136, 137, 231, 232, 98, 130, 235, 236, 237,
00967 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
00968 248, 249, 250, 251, 252, 253, 254, 255, 256, 37,
00969 392, 98, 53, 130, 262, 263, 371, 134, 131, 98,
00970 133, 4, 98, 4, 131, 4, 30, 31, 32, 33,
00971 34, 313, 15, 125, 15, 98, 15, 64, 65, 66,
00972 67, 68, 119, 37, 131, 122, 133, 124, 121, 32,
00973 37, 32, 131, 32, 133, 131, 4, 133, 299, 132,
00974 301, 3, 4, 445, 115, 116, 117, 37, 51, 52,
00975 51, 52, 4, 131, 131, 126, 133, 135, 15, 37,
00976 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
00977 27, 28, 29, 30, 31, 32, 33, 34, 32, 33,
00978 34, 37, 37, 486, 459, 460, 133, 489, 131, 119,
00979 133, 316, 122, 123, 124, 128, 129, 3, 4, 37,
00980 37, 39, 54, 28, 29, 30, 31, 32, 33, 34,
00981 378, 379, 380, 381, 4, 131, 68, 133, 37, 37,
00982 37, 73, 37, 37, 30, 31, 4, 130, 4, 130,
00983 4, 37, 38, 39, 402, 4, 4, 405, 406, 91,
00984 408, 525, 48, 49, 50, 97, 414, 415, 4, 55,
00985 4, 4, 420, 3, 60, 4, 108, 4, 64, 65,
00986 66, 67, 68, 69, 54, 4, 4, 54, 74, 75,
00987 76, 77, 78, 79, 131, 4, 133, 104, 68, 16,
00988 86, 16, 88, 73, 132, 37, 15, 6, 7, 8,
00989 9, 10, 11, 12, 13, 14, 102, 4, 4, 4,
00990 468, 91, 108, 32, 4, 4, 4, 97, 4, 586,
00991 587, 37, 514, 590, 37, 37, 37, 53, 108, 37,
00992 37, 37, 51, 52, 37, 37, 37, 133, 3, 4,
00993 136, 137, 131, 37, 37, 10, 504, 131, 615, 616,
00994 37, 509, 37, 511, 546, 37, 37, 624, 625, 37,
00995 627, 37, 629, 630, 522, 30, 31, 132, 635, 131,
00996 131, 54, 37, 38, 39, 37, 53, 133, 133, 646,
00997 133, 133, 133, 48, 49, 50, 679, 10, 681, 547,
00998 55, 658, 685, 4, 4, 60, 4, 133, 133, 133,
00999 4, 4, 4, 4, 69, 4, 598, 4, 4, 74,
01000 75, 76, 77, 78, 79, 4, 4, 3, 4, 4,
01001 4, 86, 132, 88, 6, 7, 8, 9, 10, 11,
01002 12, 13, 14, 132, 53, 133, 16, 102, 4, 37,
01003 131, 133, 37, 108, 30, 31, 37, 4, 16, 133,
01004 37, 37, 38, 39, 40, 37, 16, 95, 133, 133,
01005 133, 131, 48, 49, 50, 133, 131, 85, 132, 55,
01006 4, 136, 137, 4, 60, 133, 133, 86, 54, 133,
01007 16, 37, 96, 69, 53, 37, 37, 133, 74, 75,
01008 76, 77, 78, 79, 10, 131, 3, 4, 132, 37,
01009 86, 132, 88, 16, 54, 88, 10, 37, 53, 16,
01010 53, 37, 37, 37, 37, 37, 102, 37, 37, 54,
01011 37, 16, 108, 30, 31, 37, 37, 37, 133, 37,
01012 37, 38, 39, 133, 37, 37, 25, 4, 53, 133,
01013 133, 48, 49, 50, 25, 54, 95, 4, 55, 4,
01014 136, 137, 133, 60, 133, 133, 133, 0, 133, 133,
01015 133, 133, 69, 133, 0, 210, 133, 74, 75, 76,
01016 77, 78, 79, 508, 133, 3, 4, 118, 133, 86,
01017 613, 88, 22, 23, 24, 25, 26, 27, 28, 29,
01018 30, 31, 32, 33, 34, 102, 4, 627, 580, 595,
01019 642, 108, 30, 31, 583, 671, 440, 15, 643, 37,
01020 38, 39, 476, 184, 623, 507, 86, 380, 500, -1,
01021 48, 49, 50, -1, 32, -1, -1, 55, -1, 136,
01022 137, -1, 60, 41, 42, 43, 44, 45, -1, -1,
01023 -1, 69, 207, 51, 52, -1, 74, 75, 76, 77,
01024 78, 79, -1, -1, -1, -1, -1, -1, 86, -1,
01025 88, -1, -1, 4, -1, -1, -1, -1, -1, -1,
01026 -1, -1, -1, -1, 102, -1, -1, -1, -1, 87,
01027 108, 89, -1, -1, -1, 93, -1, -1, -1, 97,
01028 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
01029 30, 31, 32, 33, 34, 46, 47, -1, 136, 137,
01030 -1, -1, -1, -1, -1, 56, 57, 58, 59, 127,
01031 61, 62, 130, -1, 132, -1, 134, -1, 4, 70,
01032 71, 72, 73, -1, -1, -1, -1, -1, -1, 80,
01033 81, 82, 83, 84, 85, -1, -1, -1, -1, 90,
01034 91, 92, -1, -1, -1, -1, 97, -1, -1, -1,
01035 36, -1, -1, -1, -1, -1, -1, 108, -1, -1,
01036 46, 47, -1, -1, -1, -1, -1, -1, 119, -1,
01037 56, 57, 58, 59, 125, 61, 62, -1, -1, -1,
01038 -1, 132, -1, -1, 70, 71, 72, 73, -1, -1,
01039 -1, -1, -1, -1, 80, 81, 82, 83, 84, 85,
01040 -1, -1, -1, -1, 90, 91, 92, -1, -1, -1,
01041 -1, 97, -1, -1, -1, -1, -1, -1, -1, -1,
01042 -1, -1, 108, -1, -1, -1, -1, -1, -1, -1,
01043 -1, -1, -1, 119, 24, 25, 26, 27, 28, 29,
01044 30, 31, 32, 33, 34, 15, 132, 17, 18, 19,
01045 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
01046 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
01047 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
01048 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
01049 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
01050 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
01051 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
01052 30, 31, 32, 33, 34, 15, -1, 17, 18, 19,
01053 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
01054 30, 31, 32, 33, 34, 18, 19, 20, 21, 22,
01055 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
01056 33, 34, 15, 133, 17, 18, 19, 20, 21, 22,
01057 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
01058 33, 34, 15, 133, 17, 18, 19, 20, 21, 22,
01059 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
01060 33, 34, 15, 133, 17, 18, 19, 20, 21, 22,
01061 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
01062 33, 34, 15, 133, 17, 18, 19, 20, 21, 22,
01063 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
01064 33, 34, 15, 133, 17, 18, 19, 20, 21, 22,
01065 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
01066 33, 34, 19, 20, 21, 22, 23, 24, 25, 26,
01067 27, 28, 29, 30, 31, 32, 33, 34, -1, 15,
01068 133, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01069 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01070 133, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01071 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01072 133, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01073 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01074 133, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01075 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01076 133, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01077 26, 27, 28, 29, 30, 31, 32, 33, 34, 21,
01078 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
01079 32, 33, 34, -1, -1, -1, 15, 133, 17, 18,
01080 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
01081 29, 30, 31, 32, 33, 34, 15, 133, 17, 18,
01082 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
01083 29, 30, 31, 32, 33, 34, -1, 133, -1, -1,
01084 4, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01085 -1, -1, -1, -1, -1, -1, -1, 133, -1, -1,
01086 -1, -1, 4, -1, -1, -1, -1, -1, -1, -1,
01087 -1, -1, -1, -1, 38, -1, -1, 133, -1, -1,
01088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01089 -1, -1, -1, -1, 36, -1, 38, 61, -1, -1,
01090 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01091 -1, -1, -1, -1, 133, -1, -1, -1, -1, 61,
01092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01093 94, -1, -1, -1, 133, 99, 100, 101, 102, 103,
01094 104, 105, 106, 107, -1, 109, 110, 111, 112, 113,
01095 -1, -1, 94, -1, 118, 119, 120, 99, 100, 101,
01096 102, 103, -1, 105, 106, 107, -1, 109, 110, 111,
01097 112, 113, -1, -1, -1, -1, 118, 119, 120, 15,
01098 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01099 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01100 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01101 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01102 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01103 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01104 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01105 26, 27, 28, 29, 30, 31, 32, 33, 34, 15,
01106 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01107 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
01108 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01109 -1, -1, -1, -1, 15, 131, 17, 18, 19, 20,
01110 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
01111 31, 32, 33, 34, 15, 131, 17, 18, 19, 20,
01112 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
01113 31, 32, 33, 34, 15, 131, 17, 18, 19, 20,
01114 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
01115 31, 32, 33, 34, -1, 131, 37, -1, -1, -1,
01116 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
01117 -1, -1, -1, -1, -1, 131, 15, 16, 17, 18,
01118 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
01119 29, 30, 31, 32, 33, 34, -1, -1, -1, -1,
01120 -1, -1, -1, -1, -1, -1, -1, -1, -1, 15,
01121 131, 17, 18, 19, 20, 21, 22, 23, 24, 25,
01122 26, 27, 28, 29, 30, 31, 32, 33, 34, -1,
01123 131, 15, 16, 17, 18, 19, 20, 21, 22, 23,
01124 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
01125 34
01126 };
01127
01128 #line 3 "/usr/share/bison/bison.simple"
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159
01160
01161
01162
01163
01164
01165
01166
01167 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
01168
01169
01170
01171 # if YYSTACK_USE_ALLOCA
01172 # define YYSTACK_ALLOC alloca
01173 # else
01174 # ifndef YYSTACK_USE_ALLOCA
01175 # if defined (alloca) || defined (_ALLOCA_H)
01176 # define YYSTACK_ALLOC alloca
01177 # else
01178 # ifdef __GNUC__
01179 # define YYSTACK_ALLOC __builtin_alloca
01180 # endif
01181 # endif
01182 # endif
01183 # endif
01184
01185 # ifdef YYSTACK_ALLOC
01186
01187 # define YYSTACK_FREE(Ptr) do { ; } while (0)
01188 # else
01189 # if defined (__STDC__) || defined (__cplusplus)
01190 # include <stdlib.h>
01191 # define YYSIZE_T size_t
01192 # endif
01193 # define YYSTACK_ALLOC malloc
01194 # define YYSTACK_FREE free
01195 # endif
01196 #endif
01197
01198
01199 #if (! defined (yyoverflow) \
01200 && (! defined (__cplusplus) \
01201 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
01202
01203
01204 union yyalloc
01205 {
01206 short yyss;
01207 YYSTYPE yyvs;
01208 # if YYLSP_NEEDED
01209 YYLTYPE yyls;
01210 # endif
01211 };
01212
01213
01214 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
01215
01216
01217
01218 # if YYLSP_NEEDED
01219 # define YYSTACK_BYTES(N) \
01220 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
01221 + 2 * YYSTACK_GAP_MAX)
01222 # else
01223 # define YYSTACK_BYTES(N) \
01224 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
01225 + YYSTACK_GAP_MAX)
01226 # endif
01227
01228
01229
01230 # ifndef YYCOPY
01231 # if 1 < __GNUC__
01232 # define YYCOPY(To, From, Count) \
01233 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
01234 # else
01235 # define YYCOPY(To, From, Count) \
01236 do \
01237 { \
01238 register YYSIZE_T yyi; \
01239 for (yyi = 0; yyi < (Count); yyi++) \
01240 (To)[yyi] = (From)[yyi]; \
01241 } \
01242 while (0)
01243 # endif
01244 # endif
01245
01246
01247
01248
01249
01250
01251 # define YYSTACK_RELOCATE(Stack) \
01252 do \
01253 { \
01254 YYSIZE_T yynewbytes; \
01255 YYCOPY (&yyptr->Stack, Stack, yysize); \
01256 Stack = &yyptr->Stack; \
01257 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
01258 yyptr += yynewbytes / sizeof (*yyptr); \
01259 } \
01260 while (0)
01261
01262 #endif
01263
01264
01265 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
01266 # define YYSIZE_T __SIZE_TYPE__
01267 #endif
01268 #if ! defined (YYSIZE_T) && defined (size_t)
01269 # define YYSIZE_T size_t
01270 #endif
01271 #if ! defined (YYSIZE_T)
01272 # if defined (__STDC__) || defined (__cplusplus)
01273 # include <stddef.h>
01274 # define YYSIZE_T size_t
01275 # endif
01276 #endif
01277 #if ! defined (YYSIZE_T)
01278 # define YYSIZE_T unsigned int
01279 #endif
01280
01281 #define yyerrok (yyerrstatus = 0)
01282 #define yyclearin (yychar = YYEMPTY)
01283 #define YYEMPTY -2
01284 #define YYEOF 0
01285 #define YYACCEPT goto yyacceptlab
01286 #define YYABORT goto yyabortlab
01287 #define YYERROR goto yyerrlab1
01288
01289
01290
01291 #define YYFAIL goto yyerrlab
01292 #define YYRECOVERING() (!!yyerrstatus)
01293 #define YYBACKUP(Token, Value) \
01294 do \
01295 if (yychar == YYEMPTY && yylen == 1) \
01296 { \
01297 yychar = (Token); \
01298 yylval = (Value); \
01299 yychar1 = YYTRANSLATE (yychar); \
01300 YYPOPSTACK; \
01301 goto yybackup; \
01302 } \
01303 else \
01304 { \
01305 yyerror ("syntax error: cannot back up"); \
01306 YYERROR; \
01307 } \
01308 while (0)
01309
01310 #define YYTERROR 1
01311 #define YYERRCODE 256
01312
01313
01314
01315
01316
01317
01318
01319
01320
01321 #ifndef YYLLOC_DEFAULT
01322 # define YYLLOC_DEFAULT(Current, Rhs, N) \
01323 Current.last_line = Rhs[N].last_line; \
01324 Current.last_column = Rhs[N].last_column;
01325 #endif
01326
01327
01328
01329
01330 #if YYPURE
01331 # if YYLSP_NEEDED
01332 # ifdef YYLEX_PARAM
01333 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
01334 # else
01335 # define YYLEX yylex (&yylval, &yylloc)
01336 # endif
01337 # else
01338 # ifdef YYLEX_PARAM
01339 # define YYLEX yylex (&yylval, YYLEX_PARAM)
01340 # else
01341 # define YYLEX yylex (&yylval)
01342 # endif
01343 # endif
01344 #else
01345 # define YYLEX yylex ()
01346 #endif
01347
01348
01349
01350 #if YYDEBUG
01351
01352 # ifndef YYFPRINTF
01353 # include <stdio.h>
01354 # define YYFPRINTF fprintf
01355 # endif
01356
01357 # define YYDPRINTF(Args) \
01358 do { \
01359 if (yydebug) \
01360 YYFPRINTF Args; \
01361 } while (0)
01362
01363
01364 int yydebug;
01365 #else
01366 # define YYDPRINTF(Args)
01367 #endif
01368
01369
01370 #ifndef YYINITDEPTH
01371 # define YYINITDEPTH 200
01372 #endif
01373
01374
01375
01376
01377
01378
01379
01380
01381 #if YYMAXDEPTH == 0
01382 # undef YYMAXDEPTH
01383 #endif
01384
01385 #ifndef YYMAXDEPTH
01386 # define YYMAXDEPTH 10000
01387 #endif
01388
01389 #ifdef YYERROR_VERBOSE
01390
01391 # ifndef yystrlen
01392 # if defined (__GLIBC__) && defined (_STRING_H)
01393 # define yystrlen strlen
01394 # else
01395
01396 static YYSIZE_T
01397 # if defined (__STDC__) || defined (__cplusplus)
01398 yystrlen (const char *yystr)
01399 # else
01400 yystrlen (yystr)
01401 const char *yystr;
01402 # endif
01403 {
01404 register const char *yys = yystr;
01405
01406 while (*yys++ != '\0')
01407 continue;
01408
01409 return yys - yystr - 1;
01410 }
01411 # endif
01412 # endif
01413
01414 # ifndef yystpcpy
01415 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
01416 # include <string.h>
01417 # define yystpcpy stpcpy
01418 # else
01419
01420
01421 static char *
01422 # if defined (__STDC__) || defined (__cplusplus)
01423 yystpcpy (char *yydest, const char *yysrc)
01424 # else
01425 yystpcpy (yydest, yysrc)
01426 char *yydest;
01427 const char *yysrc;
01428 # endif
01429 {
01430 register char *yyd = yydest;
01431 register const char *yys = yysrc;
01432
01433 while ((*yyd++ = *yys++) != '\0')
01434 continue;
01435
01436 return yyd - 1;
01437 }
01438 # endif
01439 # endif
01440 #endif
01441
01442 #line 316 "/usr/share/bison/bison.simple"
01443
01444
01445
01446
01447
01448
01449
01450
01451 #ifdef YYPARSE_PARAM
01452 # if defined (__STDC__) || defined (__cplusplus)
01453 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
01454 # define YYPARSE_PARAM_DECL
01455 # else
01456 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
01457 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
01458 # endif
01459 #else
01460 # define YYPARSE_PARAM_ARG
01461 # define YYPARSE_PARAM_DECL
01462 #endif
01463
01464
01465 #ifdef __GNUC__
01466 # ifdef YYPARSE_PARAM
01467 int yyparse (void *);
01468 # else
01469 int yyparse (void);
01470 # endif
01471 #endif
01472
01473
01474
01475
01476 #define YY_DECL_NON_LSP_VARIABLES \
01477 \
01478 int yychar; \
01479 \
01480 \
01481 YYSTYPE yylval; \
01482 \
01483 \
01484 int yynerrs;
01485
01486 #if YYLSP_NEEDED
01487 # define YY_DECL_VARIABLES \
01488 YY_DECL_NON_LSP_VARIABLES \
01489 \
01490 \
01491 YYLTYPE yylloc;
01492 #else
01493 # define YY_DECL_VARIABLES \
01494 YY_DECL_NON_LSP_VARIABLES
01495 #endif
01496
01497
01498
01499
01500 #if !YYPURE
01501 YY_DECL_VARIABLES
01502 #endif
01503
01504 int
01505 yyparse (YYPARSE_PARAM_ARG)
01506 YYPARSE_PARAM_DECL
01507 {
01508
01509 #if YYPURE
01510 YY_DECL_VARIABLES
01511 #endif
01512
01513 register int yystate;
01514 register int yyn;
01515 int yyresult;
01516
01517 int yyerrstatus;
01518
01519 int yychar1 = 0;
01520
01521
01522
01523
01524
01525
01526
01527
01528
01529
01530 short yyssa[YYINITDEPTH];
01531 short *yyss = yyssa;
01532 register short *yyssp;
01533
01534
01535 YYSTYPE yyvsa[YYINITDEPTH];
01536 YYSTYPE *yyvs = yyvsa;
01537 register YYSTYPE *yyvsp;
01538
01539 #if YYLSP_NEEDED
01540
01541 YYLTYPE yylsa[YYINITDEPTH];
01542 YYLTYPE *yyls = yylsa;
01543 YYLTYPE *yylsp;
01544 #endif
01545
01546 #if YYLSP_NEEDED
01547 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
01548 #else
01549 # define YYPOPSTACK (yyvsp--, yyssp--)
01550 #endif
01551
01552 YYSIZE_T yystacksize = YYINITDEPTH;
01553
01554
01555
01556
01557 YYSTYPE yyval;
01558 #if YYLSP_NEEDED
01559 YYLTYPE yyloc;
01560 #endif
01561
01562
01563
01564 int yylen;
01565
01566 YYDPRINTF ((stderr, "Starting parse\n"));
01567
01568 yystate = 0;
01569 yyerrstatus = 0;
01570 yynerrs = 0;
01571 yychar = YYEMPTY;
01572
01573
01574
01575
01576
01577
01578 yyssp = yyss;
01579 yyvsp = yyvs;
01580 #if YYLSP_NEEDED
01581 yylsp = yyls;
01582 #endif
01583 goto yysetstate;
01584
01585
01586
01587
01588 yynewstate:
01589
01590
01591
01592 yyssp++;
01593
01594 yysetstate:
01595 *yyssp = yystate;
01596
01597 if (yyssp >= yyss + yystacksize - 1)
01598 {
01599
01600 YYSIZE_T yysize = yyssp - yyss + 1;
01601
01602 #ifdef yyoverflow
01603 {
01604
01605
01606
01607 YYSTYPE *yyvs1 = yyvs;
01608 short *yyss1 = yyss;
01609
01610
01611
01612 # if YYLSP_NEEDED
01613 YYLTYPE *yyls1 = yyls;
01614
01615
01616 yyoverflow ("parser stack overflow",
01617 &yyss1, yysize * sizeof (*yyssp),
01618 &yyvs1, yysize * sizeof (*yyvsp),
01619 &yyls1, yysize * sizeof (*yylsp),
01620 &yystacksize);
01621 yyls = yyls1;
01622 # else
01623 yyoverflow ("parser stack overflow",
01624 &yyss1, yysize * sizeof (*yyssp),
01625 &yyvs1, yysize * sizeof (*yyvsp),
01626 &yystacksize);
01627 # endif
01628 yyss = yyss1;
01629 yyvs = yyvs1;
01630 }
01631 #else
01632 # ifndef YYSTACK_RELOCATE
01633 goto yyoverflowlab;
01634 # else
01635
01636 if (yystacksize >= YYMAXDEPTH)
01637 goto yyoverflowlab;
01638 yystacksize *= 2;
01639 if (yystacksize > YYMAXDEPTH)
01640 yystacksize = YYMAXDEPTH;
01641
01642 {
01643 short *yyss1 = yyss;
01644 union yyalloc *yyptr =
01645 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01646 if (! yyptr)
01647 goto yyoverflowlab;
01648 YYSTACK_RELOCATE (yyss);
01649 YYSTACK_RELOCATE (yyvs);
01650 # if YYLSP_NEEDED
01651 YYSTACK_RELOCATE (yyls);
01652 # endif
01653 # undef YYSTACK_RELOCATE
01654 if (yyss1 != yyssa)
01655 YYSTACK_FREE (yyss1);
01656 }
01657 # endif
01658 #endif
01659
01660 yyssp = yyss + yysize - 1;
01661 yyvsp = yyvs + yysize - 1;
01662 #if YYLSP_NEEDED
01663 yylsp = yyls + yysize - 1;
01664 #endif
01665
01666 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01667 (unsigned long int) yystacksize));
01668
01669 if (yyssp >= yyss + yystacksize - 1)
01670 YYABORT;
01671 }
01672
01673 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01674
01675 goto yybackup;
01676
01677
01678
01679
01680
01681 yybackup:
01682
01683
01684
01685
01686
01687
01688
01689 yyn = yypact[yystate];
01690 if (yyn == YYFLAG)
01691 goto yydefault;
01692
01693
01694
01695
01696
01697
01698 if (yychar == YYEMPTY)
01699 {
01700 YYDPRINTF ((stderr, "Reading a token: "));
01701 yychar = YYLEX;
01702 }
01703
01704
01705
01706 if (yychar <= 0)
01707 {
01708 yychar1 = 0;
01709 yychar = YYEOF;
01710
01711 YYDPRINTF ((stderr, "Now at end of input.\n"));
01712 }
01713 else
01714 {
01715 yychar1 = YYTRANSLATE (yychar);
01716
01717 #if YYDEBUG
01718
01719
01720 if (yydebug)
01721 {
01722 YYFPRINTF (stderr, "Next token is %d (%s",
01723 yychar, yytname[yychar1]);
01724
01725
01726 # ifdef YYPRINT
01727 YYPRINT (stderr, yychar, yylval);
01728 # endif
01729 YYFPRINTF (stderr, ")\n");
01730 }
01731 #endif
01732 }
01733
01734 yyn += yychar1;
01735 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
01736 goto yydefault;
01737
01738 yyn = yytable[yyn];
01739
01740
01741
01742
01743
01744
01745
01746
01747 if (yyn < 0)
01748 {
01749 if (yyn == YYFLAG)
01750 goto yyerrlab;
01751 yyn = -yyn;
01752 goto yyreduce;
01753 }
01754 else if (yyn == 0)
01755 goto yyerrlab;
01756
01757 if (yyn == YYFINAL)
01758 YYACCEPT;
01759
01760
01761 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
01762 yychar, yytname[yychar1]));
01763
01764
01765 if (yychar != YYEOF)
01766 yychar = YYEMPTY;
01767
01768 *++yyvsp = yylval;
01769 #if YYLSP_NEEDED
01770 *++yylsp = yylloc;
01771 #endif
01772
01773
01774
01775 if (yyerrstatus)
01776 yyerrstatus--;
01777
01778 yystate = yyn;
01779 goto yynewstate;
01780
01781
01782
01783
01784
01785 yydefault:
01786 yyn = yydefact[yystate];
01787 if (yyn == 0)
01788 goto yyerrlab;
01789 goto yyreduce;
01790
01791
01792
01793
01794
01795 yyreduce:
01796
01797 yylen = yyr2[yyn];
01798
01799
01800
01801
01802
01803
01804
01805
01806
01807 yyval = yyvsp[1-yylen];
01808
01809 #if YYLSP_NEEDED
01810
01811
01812 yyloc = yylsp[1-yylen];
01813 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
01814 #endif
01815
01816 #if YYDEBUG
01817
01818
01819 if (yydebug)
01820 {
01821 int yyi;
01822
01823 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
01824 yyn, yyrline[yyn]);
01825
01826
01827 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
01828 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
01829 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
01830 }
01831 #endif
01832
01833 switch (yyn) {
01834
01835 case 6:
01836 #line 175 "ldgram.y"
01837 { ldlex_defsym(); }
01838 break;
01839 case 7:
01840 #line 177 "ldgram.y"
01841 {
01842 ldlex_popstate();
01843 lang_add_assignment(exp_assop(yyvsp[-1].token,yyvsp[-2].name,yyvsp[0].etree));
01844 }
01845 break;
01846 case 8:
01847 #line 185 "ldgram.y"
01848 {
01849 ldlex_mri_script ();
01850 PUSH_ERROR (_("MRI style script"));
01851 }
01852 break;
01853 case 9:
01854 #line 190 "ldgram.y"
01855 {
01856 ldlex_popstate ();
01857 mri_draw_tree ();
01858 POP_ERROR ();
01859 }
01860 break;
01861 case 14:
01862 #line 205 "ldgram.y"
01863 {
01864 einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),yyvsp[0].name);
01865 }
01866 break;
01867 case 15:
01868 #line 208 "ldgram.y"
01869 {
01870 config.map_filename = "-";
01871 }
01872 break;
01873 case 18:
01874 #line 214 "ldgram.y"
01875 { mri_public(yyvsp[-2].name, yyvsp[0].etree); }
01876 break;
01877 case 19:
01878 #line 216 "ldgram.y"
01879 { mri_public(yyvsp[-2].name, yyvsp[0].etree); }
01880 break;
01881 case 20:
01882 #line 218 "ldgram.y"
01883 { mri_public(yyvsp[-1].name, yyvsp[0].etree); }
01884 break;
01885 case 21:
01886 #line 220 "ldgram.y"
01887 { mri_format(yyvsp[0].name); }
01888 break;
01889 case 22:
01890 #line 222 "ldgram.y"
01891 { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
01892 break;
01893 case 23:
01894 #line 224 "ldgram.y"
01895 { mri_output_section(yyvsp[-1].name, yyvsp[0].etree);}
01896 break;
01897 case 24:
01898 #line 226 "ldgram.y"
01899 { mri_output_section(yyvsp[-2].name, yyvsp[0].etree);}
01900 break;
01901 case 25:
01902 #line 228 "ldgram.y"
01903 { mri_align(yyvsp[-2].name,yyvsp[0].etree); }
01904 break;
01905 case 26:
01906 #line 230 "ldgram.y"
01907 { mri_align(yyvsp[-2].name,yyvsp[0].etree); }
01908 break;
01909 case 27:
01910 #line 232 "ldgram.y"
01911 { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
01912 break;
01913 case 28:
01914 #line 234 "ldgram.y"
01915 { mri_alignmod(yyvsp[-2].name,yyvsp[0].etree); }
01916 break;
01917 case 31:
01918 #line 238 "ldgram.y"
01919 { mri_name(yyvsp[0].name); }
01920 break;
01921 case 32:
01922 #line 240 "ldgram.y"
01923 { mri_alias(yyvsp[-2].name,yyvsp[0].name,0);}
01924 break;
01925 case 33:
01926 #line 242 "ldgram.y"
01927 { mri_alias (yyvsp[-2].name, 0, (int) yyvsp[0].bigint.integer); }
01928 break;
01929 case 34:
01930 #line 244 "ldgram.y"
01931 { mri_base(yyvsp[0].etree); }
01932 break;
01933 case 35:
01934 #line 246 "ldgram.y"
01935 { mri_truncate ((unsigned int) yyvsp[0].bigint.integer); }
01936 break;
01937 case 38:
01938 #line 250 "ldgram.y"
01939 { ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
01940 break;
01941 case 39:
01942 #line 252 "ldgram.y"
01943 { ldlex_popstate (); }
01944 break;
01945 case 40:
01946 #line 254 "ldgram.y"
01947 { lang_add_entry (yyvsp[0].name, FALSE); }
01948 break;
01949 case 42:
01950 #line 259 "ldgram.y"
01951 { mri_order(yyvsp[0].name); }
01952 break;
01953 case 43:
01954 #line 260 "ldgram.y"
01955 { mri_order(yyvsp[0].name); }
01956 break;
01957 case 45:
01958 #line 266 "ldgram.y"
01959 { mri_load(yyvsp[0].name); }
01960 break;
01961 case 46:
01962 #line 267 "ldgram.y"
01963 { mri_load(yyvsp[0].name); }
01964 break;
01965 case 47:
01966 #line 272 "ldgram.y"
01967 { mri_only_load(yyvsp[0].name); }
01968 break;
01969 case 48:
01970 #line 274 "ldgram.y"
01971 { mri_only_load(yyvsp[0].name); }
01972 break;
01973 case 49:
01974 #line 278 "ldgram.y"
01975 { yyval.name = NULL; }
01976 break;
01977 case 52:
01978 #line 285 "ldgram.y"
01979 { ldlang_add_undef (yyvsp[0].name); }
01980 break;
01981 case 53:
01982 #line 287 "ldgram.y"
01983 { ldlang_add_undef (yyvsp[0].name); }
01984 break;
01985 case 54:
01986 #line 289 "ldgram.y"
01987 { ldlang_add_undef (yyvsp[0].name); }
01988 break;
01989 case 55:
01990 #line 293 "ldgram.y"
01991 {
01992 ldlex_both();
01993 }
01994 break;
01995 case 56:
01996 #line 297 "ldgram.y"
01997 {
01998 ldlex_popstate();
01999 }
02000 break;
02001 case 69:
02002 #line 322 "ldgram.y"
02003 { lang_add_target(yyvsp[-1].name); }
02004 break;
02005 case 70:
02006 #line 324 "ldgram.y"
02007 { ldfile_add_library_path (yyvsp[-1].name, FALSE); }
02008 break;
02009 case 71:
02010 #line 326 "ldgram.y"
02011 { lang_add_output(yyvsp[-1].name, 1); }
02012 break;
02013 case 72:
02014 #line 328 "ldgram.y"
02015 { lang_add_output_format (yyvsp[-1].name, (char *) NULL,
02016 (char *) NULL, 1); }
02017 break;
02018 case 73:
02019 #line 331 "ldgram.y"
02020 { lang_add_output_format (yyvsp[-5].name, yyvsp[-3].name, yyvsp[-1].name, 1); }
02021 break;
02022 case 74:
02023 #line 333 "ldgram.y"
02024 { ldfile_set_output_arch (yyvsp[-1].name, bfd_arch_unknown); }
02025 break;
02026 case 75:
02027 #line 335 "ldgram.y"
02028 { command_line.force_common_definition = TRUE ; }
02029 break;
02030 case 76:
02031 #line 337 "ldgram.y"
02032 { command_line.inhibit_common_definition = TRUE ; }
02033 break;
02034 case 78:
02035 #line 340 "ldgram.y"
02036 { lang_enter_group (); }
02037 break;
02038 case 79:
02039 #line 342 "ldgram.y"
02040 { lang_leave_group (); }
02041 break;
02042 case 80:
02043 #line 344 "ldgram.y"
02044 { lang_add_map(yyvsp[-1].name); }
02045 break;
02046 case 81:
02047 #line 346 "ldgram.y"
02048 { ldlex_script (); ldfile_open_command_file(yyvsp[0].name); }
02049 break;
02050 case 82:
02051 #line 348 "ldgram.y"
02052 { ldlex_popstate (); }
02053 break;
02054 case 83:
02055 #line 350 "ldgram.y"
02056 {
02057 lang_add_nocrossref (yyvsp[-1].nocrossref);
02058 }
02059 break;
02060 case 85:
02061 #line 358 "ldgram.y"
02062 { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
02063 (char *)NULL); }
02064 break;
02065 case 86:
02066 #line 361 "ldgram.y"
02067 { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
02068 (char *)NULL); }
02069 break;
02070 case 87:
02071 #line 364 "ldgram.y"
02072 { lang_add_input_file(yyvsp[0].name,lang_input_file_is_search_file_enum,
02073 (char *)NULL); }
02074 break;
02075 case 88:
02076 #line 367 "ldgram.y"
02077 { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
02078 (char *)NULL); }
02079 break;
02080 case 89:
02081 #line 370 "ldgram.y"
02082 { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
02083 (char *)NULL); }
02084 break;
02085 case 90:
02086 #line 373 "ldgram.y"
02087 { lang_add_input_file(yyvsp[0].name,lang_input_file_is_l_enum,
02088 (char *)NULL); }
02089 break;
02090 case 91:
02091 #line 376 "ldgram.y"
02092 { yyval.integer = as_needed; as_needed = TRUE; }
02093 break;
02094 case 92:
02095 #line 378 "ldgram.y"
02096 { as_needed = yyvsp[-2].integer; }
02097 break;
02098 case 93:
02099 #line 380 "ldgram.y"
02100 { yyval.integer = as_needed; as_needed = TRUE; }
02101 break;
02102 case 94:
02103 #line 382 "ldgram.y"
02104 { as_needed = yyvsp[-2].integer; }
02105 break;
02106 case 95:
02107 #line 384 "ldgram.y"
02108 { yyval.integer = as_needed; as_needed = TRUE; }
02109 break;
02110 case 96:
02111 #line 386 "ldgram.y"
02112 { as_needed = yyvsp[-2].integer; }
02113 break;
02114 case 101:
02115 #line 401 "ldgram.y"
02116 { lang_add_entry (yyvsp[-1].name, FALSE); }
02117 break;
02118 case 103:
02119 #line 403 "ldgram.y"
02120 {ldlex_expression ();}
02121 break;
02122 case 104:
02123 #line 404 "ldgram.y"
02124 { ldlex_popstate ();
02125 lang_add_assignment (exp_assert (yyvsp[-3].etree, yyvsp[-1].name)); }
02126 break;
02127 case 105:
02128 #line 412 "ldgram.y"
02129 {
02130 yyval.cname = yyvsp[0].name;
02131 }
02132 break;
02133 case 106:
02134 #line 416 "ldgram.y"
02135 {
02136 yyval.cname = "*";
02137 }
02138 break;
02139 case 107:
02140 #line 420 "ldgram.y"
02141 {
02142 yyval.cname = "?";
02143 }
02144 break;
02145 case 108:
02146 #line 427 "ldgram.y"
02147 {
02148 yyval.wildcard.name = yyvsp[0].cname;
02149 yyval.wildcard.sorted = none;
02150 yyval.wildcard.exclude_name_list = NULL;
02151 }
02152 break;
02153 case 109:
02154 #line 433 "ldgram.y"
02155 {
02156 yyval.wildcard.name = yyvsp[0].cname;
02157 yyval.wildcard.sorted = none;
02158 yyval.wildcard.exclude_name_list = yyvsp[-2].name_list;
02159 }
02160 break;
02161 case 110:
02162 #line 439 "ldgram.y"
02163 {
02164 yyval.wildcard.name = yyvsp[-1].cname;
02165 yyval.wildcard.sorted = by_name;
02166 yyval.wildcard.exclude_name_list = NULL;
02167 }
02168 break;
02169 case 111:
02170 #line 445 "ldgram.y"
02171 {
02172 yyval.wildcard.name = yyvsp[-1].cname;
02173 yyval.wildcard.sorted = by_alignment;
02174 yyval.wildcard.exclude_name_list = NULL;
02175 }
02176 break;
02177 case 112:
02178 #line 451 "ldgram.y"
02179 {
02180 yyval.wildcard.name = yyvsp[-2].cname;
02181 yyval.wildcard.sorted = by_name_alignment;
02182 yyval.wildcard.exclude_name_list = NULL;
02183 }
02184 break;
02185 case 113:
02186 #line 457 "ldgram.y"
02187 {
02188 yyval.wildcard.name = yyvsp[-2].cname;
02189 yyval.wildcard.sorted = by_name;
02190 yyval.wildcard.exclude_name_list = NULL;
02191 }
02192 break;
02193 case 114:
02194 #line 463 "ldgram.y"
02195 {
02196 yyval.wildcard.name = yyvsp[-2].cname;
02197 yyval.wildcard.sorted = by_alignment_name;
02198 yyval.wildcard.exclude_name_list = NULL;
02199 }
02200 break;
02201 case 115:
02202 #line 469 "ldgram.y"
02203 {
02204 yyval.wildcard.name = yyvsp[-2].cname;
02205 yyval.wildcard.sorted = by_alignment;
02206 yyval.wildcard.exclude_name_list = NULL;
02207 }
02208 break;
02209 case 116:
02210 #line 475 "ldgram.y"
02211 {
02212 yyval.wildcard.name = yyvsp[-1].cname;
02213 yyval.wildcard.sorted = by_name;
02214 yyval.wildcard.exclude_name_list = yyvsp[-3].name_list;
02215 }
02216 break;
02217 case 117:
02218 #line 484 "ldgram.y"
02219 {
02220 struct name_list *tmp;
02221 tmp = (struct name_list *) xmalloc (sizeof *tmp);
02222 tmp->name = yyvsp[0].cname;
02223 tmp->next = yyvsp[-1].name_list;
02224 yyval.name_list = tmp;
02225 }
02226 break;
02227 case 118:
02228 #line 493 "ldgram.y"
02229 {
02230 struct name_list *tmp;
02231 tmp = (struct name_list *) xmalloc (sizeof *tmp);
02232 tmp->name = yyvsp[0].cname;
02233 tmp->next = NULL;
02234 yyval.name_list = tmp;
02235 }
02236 break;
02237 case 119:
02238 #line 504 "ldgram.y"
02239 {
02240 struct wildcard_list *tmp;
02241 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
02242 tmp->next = yyvsp[-2].wildcard_list;
02243 tmp->spec = yyvsp[0].wildcard;
02244 yyval.wildcard_list = tmp;
02245 }
02246 break;
02247 case 120:
02248 #line 513 "ldgram.y"
02249 {
02250 struct wildcard_list *tmp;
02251 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
02252 tmp->next = NULL;
02253 tmp->spec = yyvsp[0].wildcard;
02254 yyval.wildcard_list = tmp;
02255 }
02256 break;
02257 case 121:
02258 #line 524 "ldgram.y"
02259 {
02260 struct wildcard_spec tmp;
02261 tmp.name = yyvsp[0].name;
02262 tmp.exclude_name_list = NULL;
02263 tmp.sorted = none;
02264 lang_add_wild (&tmp, NULL, ldgram_had_keep);
02265 }
02266 break;
02267 case 122:
02268 #line 532 "ldgram.y"
02269 {
02270 lang_add_wild (NULL, yyvsp[-1].wildcard_list, ldgram_had_keep);
02271 }
02272 break;
02273 case 123:
02274 #line 536 "ldgram.y"
02275 {
02276 lang_add_wild (&yyvsp[-3].wildcard, yyvsp[-1].wildcard_list, ldgram_had_keep);
02277 }
02278 break;
02279 case 125:
02280 #line 544 "ldgram.y"
02281 { ldgram_had_keep = TRUE; }
02282 break;
02283 case 126:
02284 #line 546 "ldgram.y"
02285 { ldgram_had_keep = FALSE; }
02286 break;
02287 case 128:
02288 #line 552 "ldgram.y"
02289 {
02290 lang_add_attribute(lang_object_symbols_statement_enum);
02291 }
02292 break;
02293 case 130:
02294 #line 557 "ldgram.y"
02295 {
02296
02297 lang_add_attribute(lang_constructors_statement_enum);
02298 }
02299 break;
02300 case 131:
02301 #line 562 "ldgram.y"
02302 {
02303 constructors_sorted = TRUE;
02304 lang_add_attribute (lang_constructors_statement_enum);
02305 }
02306 break;
02307 case 133:
02308 #line 568 "ldgram.y"
02309 {
02310 lang_add_data ((int) yyvsp[-3].integer, yyvsp[-1].etree);
02311 }
02312 break;
02313 case 134:
02314 #line 573 "ldgram.y"
02315 {
02316 lang_add_fill (yyvsp[-1].fill);
02317 }
02318 break;
02319 case 139:
02320 #line 590 "ldgram.y"
02321 { yyval.integer = yyvsp[0].token; }
02322 break;
02323 case 140:
02324 #line 592 "ldgram.y"
02325 { yyval.integer = yyvsp[0].token; }
02326 break;
02327 case 141:
02328 #line 594 "ldgram.y"
02329 { yyval.integer = yyvsp[0].token; }
02330 break;
02331 case 142:
02332 #line 596 "ldgram.y"
02333 { yyval.integer = yyvsp[0].token; }
02334 break;
02335 case 143:
02336 #line 598 "ldgram.y"
02337 { yyval.integer = yyvsp[0].token; }
02338 break;
02339 case 144:
02340 #line 603 "ldgram.y"
02341 {
02342 yyval.fill = exp_get_fill (yyvsp[0].etree,
02343 0,
02344 "fill value",
02345 lang_first_phase_enum);
02346 }
02347 break;
02348 case 145:
02349 #line 613 "ldgram.y"
02350 { yyval.fill = yyvsp[0].fill; }
02351 break;
02352 case 146:
02353 #line 614 "ldgram.y"
02354 { yyval.fill = (fill_type *) 0; }
02355 break;
02356 case 147:
02357 #line 619 "ldgram.y"
02358 { yyval.token = '+'; }
02359 break;
02360 case 148:
02361 #line 621 "ldgram.y"
02362 { yyval.token = '-'; }
02363 break;
02364 case 149:
02365 #line 623 "ldgram.y"
02366 { yyval.token = '*'; }
02367 break;
02368 case 150:
02369 #line 625 "ldgram.y"
02370 { yyval.token = '/'; }
02371 break;
02372 case 151:
02373 #line 627 "ldgram.y"
02374 { yyval.token = LSHIFT; }
02375 break;
02376 case 152:
02377 #line 629 "ldgram.y"
02378 { yyval.token = RSHIFT; }
02379 break;
02380 case 153:
02381 #line 631 "ldgram.y"
02382 { yyval.token = '&'; }
02383 break;
02384 case 154:
02385 #line 633 "ldgram.y"
02386 { yyval.token = '|'; }
02387 break;
02388 case 157:
02389 #line 643 "ldgram.y"
02390 {
02391 lang_add_assignment (exp_assop (yyvsp[-1].token, yyvsp[-2].name, yyvsp[0].etree));
02392 }
02393 break;
02394 case 158:
02395 #line 647 "ldgram.y"
02396 {
02397 lang_add_assignment (exp_assop ('=', yyvsp[-2].name,
02398 exp_binop (yyvsp[-1].token,
02399 exp_nameop (NAME,
02400 yyvsp[-2].name),
02401 yyvsp[0].etree)));
02402 }
02403 break;
02404 case 159:
02405 #line 655 "ldgram.y"
02406 {
02407 lang_add_assignment (exp_provide (yyvsp[-3].name, yyvsp[-1].etree));
02408 }
02409 break;
02410 case 166:
02411 #line 677 "ldgram.y"
02412 { region = lang_memory_region_lookup (yyvsp[0].name, TRUE); }
02413 break;
02414 case 167:
02415 #line 680 "ldgram.y"
02416 {}
02417 break;
02418 case 168:
02419 #line 685 "ldgram.y"
02420 { region->current =
02421 region->origin =
02422 exp_get_vma(yyvsp[0].etree, 0L,"origin", lang_first_phase_enum);
02423 }
02424 break;
02425 case 169:
02426 #line 693 "ldgram.y"
02427 { region->length = exp_get_vma(yyvsp[0].etree,
02428 ~((bfd_vma)0),
02429 "length",
02430 lang_first_phase_enum);
02431 }
02432 break;
02433 case 170:
02434 #line 702 "ldgram.y"
02435 { }
02436 break;
02437 case 174:
02438 #line 713 "ldgram.y"
02439 { lang_set_flags (region, yyvsp[0].name, 0); }
02440 break;
02441 case 175:
02442 #line 715 "ldgram.y"
02443 { lang_set_flags (region, yyvsp[0].name, 1); }
02444 break;
02445 case 176:
02446 #line 720 "ldgram.y"
02447 { lang_startup(yyvsp[-1].name); }
02448 break;
02449 case 178:
02450 #line 726 "ldgram.y"
02451 { ldemul_hll((char *)NULL); }
02452 break;
02453 case 179:
02454 #line 731 "ldgram.y"
02455 { ldemul_hll(yyvsp[0].name); }
02456 break;
02457 case 180:
02458 #line 733 "ldgram.y"
02459 { ldemul_hll(yyvsp[0].name); }
02460 break;
02461 case 182:
02462 #line 741 "ldgram.y"
02463 { ldemul_syslib(yyvsp[0].name); }
02464 break;
02465 case 184:
02466 #line 747 "ldgram.y"
02467 { lang_float(TRUE); }
02468 break;
02469 case 185:
02470 #line 749 "ldgram.y"
02471 { lang_float(FALSE); }
02472 break;
02473 case 186:
02474 #line 754 "ldgram.y"
02475 {
02476 yyval.nocrossref = NULL;
02477 }
02478 break;
02479 case 187:
02480 #line 758 "ldgram.y"
02481 {
02482 struct lang_nocrossref *n;
02483
02484 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
02485 n->name = yyvsp[-1].name;
02486 n->next = yyvsp[0].nocrossref;
02487 yyval.nocrossref = n;
02488 }
02489 break;
02490 case 188:
02491 #line 767 "ldgram.y"
02492 {
02493 struct lang_nocrossref *n;
02494
02495 n = (struct lang_nocrossref *) xmalloc (sizeof *n);
02496 n->name = yyvsp[-2].name;
02497 n->next = yyvsp[0].nocrossref;
02498 yyval.nocrossref = n;
02499 }
02500 break;
02501 case 189:
02502 #line 777 "ldgram.y"
02503 { ldlex_expression (); }
02504 break;
02505 case 190:
02506 #line 779 "ldgram.y"
02507 { ldlex_popstate (); yyval.etree=yyvsp[0].etree;}
02508 break;
02509 case 191:
02510 #line 784 "ldgram.y"
02511 { yyval.etree = exp_unop ('-', yyvsp[0].etree); }
02512 break;
02513 case 192:
02514 #line 786 "ldgram.y"
02515 { yyval.etree = yyvsp[-1].etree; }
02516 break;
02517 case 193:
02518 #line 788 "ldgram.y"
02519 { yyval.etree = exp_unop ((int) yyvsp[-3].integer,yyvsp[-1].etree); }
02520 break;
02521 case 194:
02522 #line 790 "ldgram.y"
02523 { yyval.etree = exp_unop ('!', yyvsp[0].etree); }
02524 break;
02525 case 195:
02526 #line 792 "ldgram.y"
02527 { yyval.etree = yyvsp[0].etree; }
02528 break;
02529 case 196:
02530 #line 794 "ldgram.y"
02531 { yyval.etree = exp_unop ('~', yyvsp[0].etree);}
02532 break;
02533 case 197:
02534 #line 797 "ldgram.y"
02535 { yyval.etree = exp_binop ('*', yyvsp[-2].etree, yyvsp[0].etree); }
02536 break;
02537 case 198:
02538 #line 799 "ldgram.y"
02539 { yyval.etree = exp_binop ('/', yyvsp[-2].etree, yyvsp[0].etree); }
02540 break;
02541 case 199:
02542 #line 801 "ldgram.y"
02543 { yyval.etree = exp_binop ('%', yyvsp[-2].etree, yyvsp[0].etree); }
02544 break;
02545 case 200:
02546 #line 803 "ldgram.y"
02547 { yyval.etree = exp_binop ('+', yyvsp[-2].etree, yyvsp[0].etree); }
02548 break;
02549 case 201:
02550 #line 805 "ldgram.y"
02551 { yyval.etree = exp_binop ('-' , yyvsp[-2].etree, yyvsp[0].etree); }
02552 break;
02553 case 202:
02554 #line 807 "ldgram.y"
02555 { yyval.etree = exp_binop (LSHIFT , yyvsp[-2].etree, yyvsp[0].etree); }
02556 break;
02557 case 203:
02558 #line 809 "ldgram.y"
02559 { yyval.etree = exp_binop (RSHIFT , yyvsp[-2].etree, yyvsp[0].etree); }
02560 break;
02561 case 204:
02562 #line 811 "ldgram.y"
02563 { yyval.etree = exp_binop (EQ , yyvsp[-2].etree, yyvsp[0].etree); }
02564 break;
02565 case 205:
02566 #line 813 "ldgram.y"
02567 { yyval.etree = exp_binop (NE , yyvsp[-2].etree, yyvsp[0].etree); }
02568 break;
02569 case 206:
02570 #line 815 "ldgram.y"
02571 { yyval.etree = exp_binop (LE , yyvsp[-2].etree, yyvsp[0].etree); }
02572 break;
02573 case 207:
02574 #line 817 "ldgram.y"
02575 { yyval.etree = exp_binop (GE , yyvsp[-2].etree, yyvsp[0].etree); }
02576 break;
02577 case 208:
02578 #line 819 "ldgram.y"
02579 { yyval.etree = exp_binop ('<' , yyvsp[-2].etree, yyvsp[0].etree); }
02580 break;
02581 case 209:
02582 #line 821 "ldgram.y"
02583 { yyval.etree = exp_binop ('>' , yyvsp[-2].etree, yyvsp[0].etree); }
02584 break;
02585 case 210:
02586 #line 823 "ldgram.y"
02587 { yyval.etree = exp_binop ('&' , yyvsp[-2].etree, yyvsp[0].etree); }
02588 break;
02589 case 211:
02590 #line 825 "ldgram.y"
02591 { yyval.etree = exp_binop ('^' , yyvsp[-2].etree, yyvsp[0].etree); }
02592 break;
02593 case 212:
02594 #line 827 "ldgram.y"
02595 { yyval.etree = exp_binop ('|' , yyvsp[-2].etree, yyvsp[0].etree); }
02596 break;
02597 case 213:
02598 #line 829 "ldgram.y"
02599 { yyval.etree = exp_trinop ('?' , yyvsp[-4].etree, yyvsp[-2].etree, yyvsp[0].etree); }
02600 break;
02601 case 214:
02602 #line 831 "ldgram.y"
02603 { yyval.etree = exp_binop (ANDAND , yyvsp[-2].etree, yyvsp[0].etree); }
02604 break;
02605 case 215:
02606 #line 833 "ldgram.y"
02607 { yyval.etree = exp_binop (OROR , yyvsp[-2].etree, yyvsp[0].etree); }
02608 break;
02609 case 216:
02610 #line 835 "ldgram.y"
02611 { yyval.etree = exp_nameop (DEFINED, yyvsp[-1].name); }
02612 break;
02613 case 217:
02614 #line 837 "ldgram.y"
02615 { yyval.etree = exp_bigintop (yyvsp[0].bigint.integer, yyvsp[0].bigint.str); }
02616 break;
02617 case 218:
02618 #line 839 "ldgram.y"
02619 { yyval.etree = exp_nameop (SIZEOF_HEADERS,0); }
02620 break;
02621 case 219:
02622 #line 842 "ldgram.y"
02623 { yyval.etree = exp_nameop (SIZEOF,yyvsp[-1].name); }
02624 break;
02625 case 220:
02626 #line 844 "ldgram.y"
02627 { yyval.etree = exp_nameop (ADDR,yyvsp[-1].name); }
02628 break;
02629 case 221:
02630 #line 846 "ldgram.y"
02631 { yyval.etree = exp_nameop (LOADADDR,yyvsp[-1].name); }
02632 break;
02633 case 222:
02634 #line 848 "ldgram.y"
02635 { yyval.etree = exp_unop (ABSOLUTE, yyvsp[-1].etree); }
02636 break;
02637 case 223:
02638 #line 850 "ldgram.y"
02639 { yyval.etree = exp_unop (ALIGN_K,yyvsp[-1].etree); }
02640 break;
02641 case 224:
02642 #line 852 "ldgram.y"
02643 { yyval.etree = exp_binop (ALIGN_K,yyvsp[-3].etree,yyvsp[-1].etree); }
02644 break;
02645 case 225:
02646 #line 854 "ldgram.y"
02647 { yyval.etree = exp_binop (DATA_SEGMENT_ALIGN, yyvsp[-3].etree, yyvsp[-1].etree); }
02648 break;
02649 case 226:
02650 #line 856 "ldgram.y"
02651 { yyval.etree = exp_binop (DATA_SEGMENT_RELRO_END, yyvsp[-1].etree, yyvsp[-3].etree); }
02652 break;
02653 case 227:
02654 #line 858 "ldgram.y"
02655 { yyval.etree = exp_unop (DATA_SEGMENT_END, yyvsp[-1].etree); }
02656 break;
02657 case 228:
02658 #line 860 "ldgram.y"
02659 {
02660
02661
02662
02663
02664 yyval.etree = exp_binop (SEGMENT_START,
02665 yyvsp[-1].etree,
02666 exp_nameop (NAME, yyvsp[-3].name)); }
02667 break;
02668 case 229:
02669 #line 869 "ldgram.y"
02670 { yyval.etree = exp_unop (ALIGN_K,yyvsp[-1].etree); }
02671 break;
02672 case 230:
02673 #line 871 "ldgram.y"
02674 { yyval.etree = exp_nameop (NAME,yyvsp[0].name); }
02675 break;
02676 case 231:
02677 #line 873 "ldgram.y"
02678 { yyval.etree = exp_binop (MAX_K, yyvsp[-3].etree, yyvsp[-1].etree ); }
02679 break;
02680 case 232:
02681 #line 875 "ldgram.y"
02682 { yyval.etree = exp_binop (MIN_K, yyvsp[-3].etree, yyvsp[-1].etree ); }
02683 break;
02684 case 233:
02685 #line 877 "ldgram.y"
02686 { yyval.etree = exp_assert (yyvsp[-3].etree, yyvsp[-1].name); }
02687 break;
02688 case 234:
02689 #line 879 "ldgram.y"
02690 { yyval.etree = exp_nameop (ORIGIN, yyvsp[-1].name); }
02691 break;
02692 case 235:
02693 #line 881 "ldgram.y"
02694 { yyval.etree = exp_nameop (LENGTH, yyvsp[-1].name); }
02695 break;
02696 case 236:
02697 #line 886 "ldgram.y"
02698 { yyval.name = yyvsp[0].name; }
02699 break;
02700 case 237:
02701 #line 887 "ldgram.y"
02702 { yyval.name = 0; }
02703 break;
02704 case 238:
02705 #line 891 "ldgram.y"
02706 { yyval.etree = yyvsp[-1].etree; }
02707 break;
02708 case 239:
02709 #line 892 "ldgram.y"
02710 { yyval.etree = 0; }
02711 break;
02712 case 240:
02713 #line 896 "ldgram.y"
02714 { yyval.etree = yyvsp[-1].etree; }
02715 break;
02716 case 241:
02717 #line 897 "ldgram.y"
02718 { yyval.etree = 0; }
02719 break;
02720 case 242:
02721 #line 901 "ldgram.y"
02722 { yyval.token = ONLY_IF_RO; }
02723 break;
02724 case 243:
02725 #line 902 "ldgram.y"
02726 { yyval.token = ONLY_IF_RW; }
02727 break;
02728 case 244:
02729 #line 903 "ldgram.y"
02730 { yyval.token = 0; }
02731 break;
02732 case 245:
02733 #line 906 "ldgram.y"
02734 { ldlex_expression(); }
02735 break;
02736 case 246:
02737 #line 909 "ldgram.y"
02738 { ldlex_popstate (); ldlex_script (); }
02739 break;
02740 case 247:
02741 #line 912 "ldgram.y"
02742 {
02743 lang_enter_output_section_statement(yyvsp[-7].name, yyvsp[-5].etree,
02744 sectype,
02745 0, yyvsp[-3].etree, yyvsp[-4].etree, yyvsp[-1].token);
02746 }
02747 break;
02748 case 248:
02749 #line 918 "ldgram.y"
02750 { ldlex_popstate (); ldlex_expression (); }
02751 break;
02752 case 249:
02753 #line 920 "ldgram.y"
02754 {
02755 ldlex_popstate ();
02756 lang_leave_output_section_statement (yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
02757 }
02758 break;
02759 case 250:
02760 #line 925 "ldgram.y"
02761 {}
02762 break;
02763 case 251:
02764 #line 927 "ldgram.y"
02765 { ldlex_expression (); }
02766 break;
02767 case 252:
02768 #line 929 "ldgram.y"
02769 { ldlex_popstate (); ldlex_script (); }
02770 break;
02771 case 253:
02772 #line 931 "ldgram.y"
02773 {
02774 lang_enter_overlay (yyvsp[-5].etree, yyvsp[-2].etree);
02775 }
02776 break;
02777 case 254:
02778 #line 936 "ldgram.y"
02779 { ldlex_popstate (); ldlex_expression (); }
02780 break;
02781 case 255:
02782 #line 938 "ldgram.y"
02783 {
02784 ldlex_popstate ();
02785 lang_leave_overlay (yyvsp[-11].etree, (int) yyvsp[-12].integer,
02786 yyvsp[0].fill, yyvsp[-3].name, yyvsp[-1].section_phdr, yyvsp[-2].name);
02787 }
02788 break;
02789 case 257:
02790 #line 948 "ldgram.y"
02791 { ldlex_expression (); }
02792 break;
02793 case 258:
02794 #line 950 "ldgram.y"
02795 {
02796 ldlex_popstate ();
02797 lang_add_assignment (exp_assop ('=', ".", yyvsp[0].etree));
02798 }
02799 break;
02800 case 260:
02801 #line 958 "ldgram.y"
02802 { sectype = noload_section; }
02803 break;
02804 case 261:
02805 #line 959 "ldgram.y"
02806 { sectype = dsect_section; }
02807 break;
02808 case 262:
02809 #line 960 "ldgram.y"
02810 { sectype = copy_section; }
02811 break;
02812 case 263:
02813 #line 961 "ldgram.y"
02814 { sectype = info_section; }
02815 break;
02816 case 264:
02817 #line 962 "ldgram.y"
02818 { sectype = overlay_section; }
02819 break;
02820 case 266:
02821 #line 967 "ldgram.y"
02822 { sectype = normal_section; }
02823 break;
02824 case 267:
02825 #line 968 "ldgram.y"
02826 { sectype = normal_section; }
02827 break;
02828 case 268:
02829 #line 972 "ldgram.y"
02830 { yyval.etree = yyvsp[-2].etree; }
02831 break;
02832 case 269:
02833 #line 973 "ldgram.y"
02834 { yyval.etree = (etree_type *)NULL; }
02835 break;
02836 case 270:
02837 #line 978 "ldgram.y"
02838 { yyval.etree = yyvsp[-3].etree; }
02839 break;
02840 case 271:
02841 #line 980 "ldgram.y"
02842 { yyval.etree = yyvsp[-7].etree; }
02843 break;
02844 case 272:
02845 #line 984 "ldgram.y"
02846 { yyval.etree = yyvsp[-1].etree; }
02847 break;
02848 case 273:
02849 #line 985 "ldgram.y"
02850 { yyval.etree = (etree_type *) NULL; }
02851 break;
02852 case 274:
02853 #line 990 "ldgram.y"
02854 { yyval.integer = 0; }
02855 break;
02856 case 275:
02857 #line 992 "ldgram.y"
02858 { yyval.integer = 1; }
02859 break;
02860 case 276:
02861 #line 997 "ldgram.y"
02862 { yyval.name = yyvsp[0].name; }
02863 break;
02864 case 277:
02865 #line 998 "ldgram.y"
02866 { yyval.name = DEFAULT_MEMORY_REGION; }
02867 break;
02868 case 278:
02869 #line 1003 "ldgram.y"
02870 {
02871 yyval.section_phdr = NULL;
02872 }
02873 break;
02874 case 279:
02875 #line 1007 "ldgram.y"
02876 {
02877 struct lang_output_section_phdr_list *n;
02878
02879 n = ((struct lang_output_section_phdr_list *)
02880 xmalloc (sizeof *n));
02881 n->name = yyvsp[0].name;
02882 n->used = FALSE;
02883 n->next = yyvsp[-2].section_phdr;
02884 yyval.section_phdr = n;
02885 }
02886 break;
02887 case 281:
02888 #line 1023 "ldgram.y"
02889 {
02890 ldlex_script ();
02891 lang_enter_overlay_section (yyvsp[0].name);
02892 }
02893 break;
02894 case 282:
02895 #line 1028 "ldgram.y"
02896 { ldlex_popstate (); ldlex_expression (); }
02897 break;
02898 case 283:
02899 #line 1030 "ldgram.y"
02900 {
02901 ldlex_popstate ();
02902 lang_leave_overlay_section (yyvsp[0].fill, yyvsp[-1].section_phdr);
02903 }
02904 break;
02905 case 288:
02906 #line 1047 "ldgram.y"
02907 { ldlex_expression (); }
02908 break;
02909 case 289:
02910 #line 1048 "ldgram.y"
02911 { ldlex_popstate (); }
02912 break;
02913 case 290:
02914 #line 1050 "ldgram.y"
02915 {
02916 lang_new_phdr (yyvsp[-5].name, yyvsp[-3].etree, yyvsp[-2].phdr.filehdr, yyvsp[-2].phdr.phdrs, yyvsp[-2].phdr.at,
02917 yyvsp[-2].phdr.flags);
02918 }
02919 break;
02920 case 291:
02921 #line 1058 "ldgram.y"
02922 {
02923 yyval.etree = yyvsp[0].etree;
02924
02925 if (yyvsp[0].etree->type.node_class == etree_name
02926 && yyvsp[0].etree->type.node_code == NAME)
02927 {
02928 const char *s;
02929 unsigned int i;
02930 static const char * const phdr_types[] =
02931 {
02932 "PT_NULL", "PT_LOAD", "PT_DYNAMIC",
02933 "PT_INTERP", "PT_NOTE", "PT_SHLIB",
02934 "PT_PHDR", "PT_TLS"
02935 };
02936
02937 s = yyvsp[0].etree->name.name;
02938 for (i = 0;
02939 i < sizeof phdr_types / sizeof phdr_types[0];
02940 i++)
02941 if (strcmp (s, phdr_types[i]) == 0)
02942 {
02943 yyval.etree = exp_intop (i);
02944 break;
02945 }
02946 if (i == sizeof phdr_types / sizeof phdr_types[0])
02947 {
02948 if (strcmp (s, "PT_GNU_EH_FRAME") == 0)
02949 yyval.etree = exp_intop (0x6474e550);
02950 else if (strcmp (s, "PT_GNU_STACK") == 0)
02951 yyval.etree = exp_intop (0x6474e551);
02952 else
02953 {
02954 einfo (_("\
02955 %X%P:%S: unknown phdr type `%s' (try integer literal)\n"),
02956 s);
02957 yyval.etree = exp_intop (0);
02958 }
02959 }
02960 }
02961 }
02962 break;
02963 case 292:
02964 #line 1102 "ldgram.y"
02965 {
02966 memset (&yyval.phdr, 0, sizeof (struct phdr_info));
02967 }
02968 break;
02969 case 293:
02970 #line 1106 "ldgram.y"
02971 {
02972 yyval.phdr = yyvsp[0].phdr;
02973 if (strcmp (yyvsp[-2].name, "FILEHDR") == 0 && yyvsp[-1].etree == NULL)
02974 yyval.phdr.filehdr = TRUE;
02975 else if (strcmp (yyvsp[-2].name, "PHDRS") == 0 && yyvsp[-1].etree == NULL)
02976 yyval.phdr.phdrs = TRUE;
02977 else if (strcmp (yyvsp[-2].name, "FLAGS") == 0 && yyvsp[-1].etree != NULL)
02978 yyval.phdr.flags = yyvsp[-1].etree;
02979 else
02980 einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"), yyvsp[-2].name);
02981 }
02982 break;
02983 case 294:
02984 #line 1118 "ldgram.y"
02985 {
02986 yyval.phdr = yyvsp[0].phdr;
02987 yyval.phdr.at = yyvsp[-2].etree;
02988 }
02989 break;
02990 case 295:
02991 #line 1126 "ldgram.y"
02992 {
02993 yyval.etree = NULL;
02994 }
02995 break;
02996 case 296:
02997 #line 1130 "ldgram.y"
02998 {
02999 yyval.etree = yyvsp[-1].etree;
03000 }
03001 break;
03002 case 297:
03003 #line 1138 "ldgram.y"
03004 {
03005 ldlex_version_file ();
03006 PUSH_ERROR (_("VERSION script"));
03007 }
03008 break;
03009 case 298:
03010 #line 1143 "ldgram.y"
03011 {
03012 ldlex_popstate ();
03013 POP_ERROR ();
03014 }
03015 break;
03016 case 299:
03017 #line 1152 "ldgram.y"
03018 {
03019 ldlex_version_script ();
03020 }
03021 break;
03022 case 300:
03023 #line 1156 "ldgram.y"
03024 {
03025 ldlex_popstate ();
03026 }
03027 break;
03028 case 303:
03029 #line 1168 "ldgram.y"
03030 {
03031 lang_register_vers_node (NULL, yyvsp[-2].versnode, NULL);
03032 }
03033 break;
03034 case 304:
03035 #line 1172 "ldgram.y"
03036 {
03037 lang_register_vers_node (yyvsp[-4].name, yyvsp[-2].versnode, NULL);
03038 }
03039 break;
03040 case 305:
03041 #line 1176 "ldgram.y"
03042 {
03043 lang_register_vers_node (yyvsp[-5].name, yyvsp[-3].versnode, yyvsp[-1].deflist);
03044 }
03045 break;
03046 case 306:
03047 #line 1183 "ldgram.y"
03048 {
03049 yyval.deflist = lang_add_vers_depend (NULL, yyvsp[0].name);
03050 }
03051 break;
03052 case 307:
03053 #line 1187 "ldgram.y"
03054 {
03055 yyval.deflist = lang_add_vers_depend (yyvsp[-1].deflist, yyvsp[0].name);
03056 }
03057 break;
03058 case 308:
03059 #line 1194 "ldgram.y"
03060 {
03061 yyval.versnode = lang_new_vers_node (NULL, NULL);
03062 }
03063 break;
03064 case 309:
03065 #line 1198 "ldgram.y"
03066 {
03067 yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL);
03068 }
03069 break;
03070 case 310:
03071 #line 1202 "ldgram.y"
03072 {
03073 yyval.versnode = lang_new_vers_node (yyvsp[-1].versyms, NULL);
03074 }
03075 break;
03076 case 311:
03077 #line 1206 "ldgram.y"
03078 {
03079 yyval.versnode = lang_new_vers_node (NULL, yyvsp[-1].versyms);
03080 }
03081 break;
03082 case 312:
03083 #line 1210 "ldgram.y"
03084 {
03085 yyval.versnode = lang_new_vers_node (yyvsp[-5].versyms, yyvsp[-1].versyms);
03086 }
03087 break;
03088 case 313:
03089 #line 1217 "ldgram.y"
03090 {
03091 yyval.versyms = lang_new_vers_pattern (NULL, yyvsp[0].name, ldgram_vers_current_lang);
03092 }
03093 break;
03094 case 314:
03095 #line 1221 "ldgram.y"
03096 {
03097 yyval.versyms = lang_new_vers_pattern (yyvsp[-2].versyms, yyvsp[0].name, ldgram_vers_current_lang);
03098 }
03099 break;
03100 case 315:
03101 #line 1225 "ldgram.y"
03102 {
03103 yyval.name = ldgram_vers_current_lang;
03104 ldgram_vers_current_lang = yyvsp[-1].name;
03105 }
03106 break;
03107 case 316:
03108 #line 1230 "ldgram.y"
03109 {
03110 yyval.versyms = yyvsp[-2].versyms;
03111 ldgram_vers_current_lang = yyvsp[-3].name;
03112 }
03113 break;
03114 case 317:
03115 #line 1235 "ldgram.y"
03116 {
03117 yyval.name = ldgram_vers_current_lang;
03118 ldgram_vers_current_lang = yyvsp[-1].name;
03119 }
03120 break;
03121 case 318:
03122 #line 1240 "ldgram.y"
03123 {
03124 yyval.versyms = yyvsp[-2].versyms;
03125 ldgram_vers_current_lang = yyvsp[-3].name;
03126 }
03127 break;
03128 }
03129
03130 #line 706 "/usr/share/bison/bison.simple"
03131
03132
03133 yyvsp -= yylen;
03134 yyssp -= yylen;
03135 #if YYLSP_NEEDED
03136 yylsp -= yylen;
03137 #endif
03138
03139 #if YYDEBUG
03140 if (yydebug)
03141 {
03142 short *yyssp1 = yyss - 1;
03143 YYFPRINTF (stderr, "state stack now");
03144 while (yyssp1 != yyssp)
03145 YYFPRINTF (stderr, " %d", *++yyssp1);
03146 YYFPRINTF (stderr, "\n");
03147 }
03148 #endif
03149
03150 *++yyvsp = yyval;
03151 #if YYLSP_NEEDED
03152 *++yylsp = yyloc;
03153 #endif
03154
03155
03156
03157
03158
03159 yyn = yyr1[yyn];
03160
03161 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
03162 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
03163 yystate = yytable[yystate];
03164 else
03165 yystate = yydefgoto[yyn - YYNTBASE];
03166
03167 goto yynewstate;
03168
03169
03170
03171
03172
03173 yyerrlab:
03174
03175 if (!yyerrstatus)
03176 {
03177 ++yynerrs;
03178
03179 #ifdef YYERROR_VERBOSE
03180 yyn = yypact[yystate];
03181
03182 if (yyn > YYFLAG && yyn < YYLAST)
03183 {
03184 YYSIZE_T yysize = 0;
03185 char *yymsg;
03186 int yyx, yycount;
03187
03188 yycount = 0;
03189
03190
03191 for (yyx = yyn < 0 ? -yyn : 0;
03192 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
03193 if (yycheck[yyx + yyn] == yyx)
03194 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
03195 yysize += yystrlen ("parse error, unexpected ") + 1;
03196 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
03197 yymsg = (char *) YYSTACK_ALLOC (yysize);
03198 if (yymsg != 0)
03199 {
03200 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
03201 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
03202
03203 if (yycount < 5)
03204 {
03205 yycount = 0;
03206 for (yyx = yyn < 0 ? -yyn : 0;
03207 yyx < (int) (sizeof (yytname) / sizeof (char *));
03208 yyx++)
03209 if (yycheck[yyx + yyn] == yyx)
03210 {
03211 const char *yyq = ! yycount ? ", expecting " : " or ";
03212 yyp = yystpcpy (yyp, yyq);
03213 yyp = yystpcpy (yyp, yytname[yyx]);
03214 yycount++;
03215 }
03216 }
03217 yyerror (yymsg);
03218 YYSTACK_FREE (yymsg);
03219 }
03220 else
03221 yyerror ("parse error; also virtual memory exhausted");
03222 }
03223 else
03224 #endif
03225 yyerror ("parse error");
03226 }
03227 goto yyerrlab1;
03228
03229
03230
03231
03232
03233 yyerrlab1:
03234 if (yyerrstatus == 3)
03235 {
03236
03237
03238
03239
03240 if (yychar == YYEOF)
03241 YYABORT;
03242 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
03243 yychar, yytname[yychar1]));
03244 yychar = YYEMPTY;
03245 }
03246
03247
03248
03249
03250 yyerrstatus = 3;
03251
03252 goto yyerrhandle;
03253
03254
03255
03256
03257
03258
03259 yyerrdefault:
03260 #if 0
03261
03262
03263
03264
03265 yyn = yydefact[yystate];
03266 if (yyn)
03267 goto yydefault;
03268 #endif
03269
03270
03271
03272
03273
03274
03275 yyerrpop:
03276 if (yyssp == yyss)
03277 YYABORT;
03278 yyvsp--;
03279 yystate = *--yyssp;
03280 #if YYLSP_NEEDED
03281 yylsp--;
03282 #endif
03283
03284 #if YYDEBUG
03285 if (yydebug)
03286 {
03287 short *yyssp1 = yyss - 1;
03288 YYFPRINTF (stderr, "Error: state stack now");
03289 while (yyssp1 != yyssp)
03290 YYFPRINTF (stderr, " %d", *++yyssp1);
03291 YYFPRINTF (stderr, "\n");
03292 }
03293 #endif
03294
03295
03296
03297
03298 yyerrhandle:
03299 yyn = yypact[yystate];
03300 if (yyn == YYFLAG)
03301 goto yyerrdefault;
03302
03303 yyn += YYTERROR;
03304 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
03305 goto yyerrdefault;
03306
03307 yyn = yytable[yyn];
03308 if (yyn < 0)
03309 {
03310 if (yyn == YYFLAG)
03311 goto yyerrpop;
03312 yyn = -yyn;
03313 goto yyreduce;
03314 }
03315 else if (yyn == 0)
03316 goto yyerrpop;
03317
03318 if (yyn == YYFINAL)
03319 YYACCEPT;
03320
03321 YYDPRINTF ((stderr, "Shifting error token, "));
03322
03323 *++yyvsp = yylval;
03324 #if YYLSP_NEEDED
03325 *++yylsp = yylloc;
03326 #endif
03327
03328 yystate = yyn;
03329 goto yynewstate;
03330
03331
03332
03333
03334
03335 yyacceptlab:
03336 yyresult = 0;
03337 goto yyreturn;
03338
03339
03340
03341
03342 yyabortlab:
03343 yyresult = 1;
03344 goto yyreturn;
03345
03346
03347
03348
03349 yyoverflowlab:
03350 yyerror ("parser stack overflow");
03351 yyresult = 2;
03352
03353
03354 yyreturn:
03355 #ifndef yyoverflow
03356 if (yyss != yyssa)
03357 YYSTACK_FREE (yyss);
03358 #endif
03359 return yyresult;
03360 }
03361 #line 1251 "ldgram.y"
03362
03363 void
03364 yyerror(arg)
03365 const char *arg;
03366 {
03367 if (ldfile_assumed_script)
03368 einfo (_("%P:%s: file format not recognized; treating as linker script\n"),
03369 ldfile_input_filename);
03370 if (error_index > 0 && error_index < ERROR_NAME_MAX)
03371 einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]);
03372 else
03373 einfo ("%P%F:%S: %s\n", arg);
03374 }