1/* A Bison parser, made by GNU Bison 2.1. */ 2 3/* Skeleton parser for Yacc-like parsing with Bison, 4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 51 Franklin Street, Fifth Floor, 19 Boston, MA 02110-1301, USA. */ 20 21/* As a special exception, when this file is copied by Bison into a 22 Bison output file, you may use that output file without restriction. 23 This special exception was added by the Free Software Foundation 24 in version 1.24 of Bison. */ 25 26/* Written by Richard Stallman by simplifying the original so called 27 ``semantic'' parser. */ 28 29/* All symbols defined below should begin with yy or YY, to avoid 30 infringing on user name space. This should be done even for local 31 variables, as they might otherwise be expanded by user macros. 32 There are some unavoidable exceptions within include files to 33 define necessary library symbols; they are noted "INFRINGES ON 34 USER NAME SPACE" below. */ 35 36/* Identify Bison output. */ 37#define YYBISON 1 38 39/* Bison version. */ 40#define YYBISON_VERSION "2.1" 41 42/* Skeleton name. */ 43#define YYSKELETON_NAME "yacc.c" 44 45/* Pure parsers. */ 46#define YYPURE 0 47 48/* Using locations. */ 49#define YYLSP_NEEDED 0 50 51 52 53/* Tokens. */ 54#ifndef YYTOKENTYPE 55# define YYTOKENTYPE 56 /* Put the tokens into the symbol table, so that GDB and other debuggers 57 know about them. */ 58 enum yytokentype { 59 INT = 258, 60 NAME = 259, 61 LNAME = 260, 62 OREQ = 261, 63 ANDEQ = 262, 64 RSHIFTEQ = 263, 65 LSHIFTEQ = 264, 66 DIVEQ = 265, 67 MULTEQ = 266, 68 MINUSEQ = 267, 69 PLUSEQ = 268, 70 OROR = 269, 71 ANDAND = 270, 72 NE = 271, 73 EQ = 272, 74 GE = 273, 75 LE = 274, 76 RSHIFT = 275, 77 LSHIFT = 276, 78 UNARY = 277, 79 END = 278, 80 ALIGN_K = 279, 81 BLOCK = 280, 82 BIND = 281, 83 QUAD = 282, 84 SQUAD = 283, 85 LONG = 284, 86 SHORT = 285, 87 BYTE = 286, 88 SECTIONS = 287, 89 PHDRS = 288, 90 DATA_SEGMENT_ALIGN = 289, 91 DATA_SEGMENT_RELRO_END = 290, 92 DATA_SEGMENT_END = 291, 93 SORT_BY_NAME = 292, 94 SORT_BY_ALIGNMENT = 293, 95 SIZEOF_HEADERS = 294, 96 OUTPUT_FORMAT = 295, 97 FORCE_COMMON_ALLOCATION = 296, 98 OUTPUT_ARCH = 297, 99 INHIBIT_COMMON_ALLOCATION = 298, 100 SEGMENT_START = 299, 101 INCLUDE = 300, 102 MEMORY = 301, 103 DEFSYMEND = 302, 104 NOLOAD = 303, 105 DSECT = 304, 106 COPY = 305, 107 INFO = 306, 108 OVERLAY = 307, 109 DEFINED = 308, 110 TARGET_K = 309, 111 SEARCH_DIR = 310, 112 MAP = 311, 113 ENTRY = 312, 114 NEXT = 313, 115 SIZEOF = 314, 116 ADDR = 315, 117 LOADADDR = 316, 118 MAX_K = 317, 119 MIN_K = 318, 120 STARTUP = 319, 121 HLL = 320, 122 SYSLIB = 321, 123 FLOAT = 322, 124 NOFLOAT = 323, 125 NOCROSSREFS = 324, 126 ORIGIN = 325, 127 FILL = 326, 128 LENGTH = 327, 129 CREATE_OBJECT_SYMBOLS = 328, 130 INPUT = 329, 131 GROUP = 330, 132 OUTPUT = 331, 133 CONSTRUCTORS = 332, 134 ALIGNMOD = 333, 135 AT = 334, 136 SUBALIGN = 335, 137 PROVIDE = 336, 138 PROVIDE_HIDDEN = 337, 139 AS_NEEDED = 338, 140 CHIP = 339, 141 LIST = 340, 142 SECT = 341, 143 ABSOLUTE = 342, 144 LOAD = 343, 145 NEWLINE = 344, 146 ENDWORD = 345, 147 ORDER = 346, 148 NAMEWORD = 347, 149 ASSERT_K = 348, 150 FORMAT = 349, 151 PUBLIC = 350, 152 BASE = 351, 153 ALIAS = 352, 154 TRUNCATE = 353, 155 REL = 354, 156 INPUT_SCRIPT = 355, 157 INPUT_MRI_SCRIPT = 356, 158 INPUT_DEFSYM = 357, 159 CASE = 358, 160 EXTERN = 359, 161 START = 360, 162 VERS_TAG = 361, 163 VERS_IDENTIFIER = 362, 164 GLOBAL = 363, 165 LOCAL = 364, 166 VERSIONK = 365, 167 INPUT_VERSION_SCRIPT = 366, 168 KEEP = 367, 169 ONLY_IF_RO = 368, 170 ONLY_IF_RW = 369, 171 SPECIAL = 370, 172 EXCLUDE_FILE = 371 173 }; 174#endif 175/* Tokens. */ 176#define INT 258 177#define NAME 259 178#define LNAME 260 179#define OREQ 261 180#define ANDEQ 262 181#define RSHIFTEQ 263 182#define LSHIFTEQ 264 183#define DIVEQ 265 184#define MULTEQ 266 185#define MINUSEQ 267 186#define PLUSEQ 268 187#define OROR 269 188#define ANDAND 270 189#define NE 271 190#define EQ 272 191#define GE 273 192#define LE 274 193#define RSHIFT 275 194#define LSHIFT 276 195#define UNARY 277 196#define END 278 197#define ALIGN_K 279 198#define BLOCK 280 199#define BIND 281 200#define QUAD 282 201#define SQUAD 283 202#define LONG 284 203#define SHORT 285 204#define BYTE 286 205#define SECTIONS 287 206#define PHDRS 288 207#define DATA_SEGMENT_ALIGN 289 208#define DATA_SEGMENT_RELRO_END 290 209#define DATA_SEGMENT_END 291 210#define SORT_BY_NAME 292 211#define SORT_BY_ALIGNMENT 293 212#define SIZEOF_HEADERS 294 213#define OUTPUT_FORMAT 295 214#define FORCE_COMMON_ALLOCATION 296 215#define OUTPUT_ARCH 297 216#define INHIBIT_COMMON_ALLOCATION 298 217#define SEGMENT_START 299 218#define INCLUDE 300 219#define MEMORY 301 220#define DEFSYMEND 302 221#define NOLOAD 303 222#define DSECT 304 223#define COPY 305 224#define INFO 306 225#define OVERLAY 307 226#define DEFINED 308 227#define TARGET_K 309 228#define SEARCH_DIR 310 229#define MAP 311 230#define ENTRY 312 231#define NEXT 313 232#define SIZEOF 314 233#define ADDR 315 234#define LOADADDR 316 235#define MAX_K 317 236#define MIN_K 318 237#define STARTUP 319 238#define HLL 320 239#define SYSLIB 321 240#define FLOAT 322 241#define NOFLOAT 323 242#define NOCROSSREFS 324 243#define ORIGIN 325 244#define FILL 326 245#define LENGTH 327 246#define CREATE_OBJECT_SYMBOLS 328 247#define INPUT 329 248#define GROUP 330 249#define OUTPUT 331 250#define CONSTRUCTORS 332 251#define ALIGNMOD 333 252#define AT 334 253#define SUBALIGN 335 254#define PROVIDE 336 255#define PROVIDE_HIDDEN 337 256#define AS_NEEDED 338 257#define CHIP 339 258#define LIST 340 259#define SECT 341 260#define ABSOLUTE 342 261#define LOAD 343 262#define NEWLINE 344 263#define ENDWORD 345 264#define ORDER 346 265#define NAMEWORD 347 266#define ASSERT_K 348 267#define FORMAT 349 268#define PUBLIC 350 269#define BASE 351 270#define ALIAS 352 271#define TRUNCATE 353 272#define REL 354 273#define INPUT_SCRIPT 355 274#define INPUT_MRI_SCRIPT 356 275#define INPUT_DEFSYM 357 276#define CASE 358 277#define EXTERN 359 278#define START 360 279#define VERS_TAG 361 280#define VERS_IDENTIFIER 362 281#define GLOBAL 363 282#define LOCAL 364 283#define VERSIONK 365 284#define INPUT_VERSION_SCRIPT 366 285#define KEEP 367 286#define ONLY_IF_RO 368 287#define ONLY_IF_RW 369 288#define SPECIAL 370 289#define EXCLUDE_FILE 371 290 291 292 293 294/* Copy the first part of user declarations. */ 295#line 22 "ldgram.y" 296 297/* 298 299 */ 300 301#define DONTDECLARE_MALLOC 302 303#include "bfd.h" 304#include "sysdep.h" 305#include "bfdlink.h" 306#include "ld.h" 307#include "ldexp.h" 308#include "ldver.h" 309#include "ldlang.h" 310#include "ldfile.h" 311#include "ldemul.h" 312#include "ldmisc.h" 313#include "ldmain.h" 314#include "mri.h" 315#include "ldctor.h" 316#include "ldlex.h" 317 318#ifndef YYDEBUG 319#define YYDEBUG 1 320#endif 321 322static enum section_type sectype; 323static lang_memory_region_type *region; 324 325FILE *saved_script_handle = NULL; 326bfd_boolean force_make_executable = FALSE; 327 328bfd_boolean ldgram_in_script = FALSE; 329bfd_boolean ldgram_had_equals = FALSE; 330bfd_boolean ldgram_had_keep = FALSE; 331char *ldgram_vers_current_lang = NULL; 332 333#define ERROR_NAME_MAX 20 334static char *error_names[ERROR_NAME_MAX]; 335static int error_index; 336#define PUSH_ERROR(x) if (error_index < ERROR_NAME_MAX) error_names[error_index] = x; error_index++; 337#define POP_ERROR() error_index--; 338 339 340/* Enabling traces. */ 341#ifndef YYDEBUG 342# define YYDEBUG 0 343#endif 344 345/* Enabling verbose error messages. */ 346#ifdef YYERROR_VERBOSE 347# undef YYERROR_VERBOSE 348# define YYERROR_VERBOSE 1 349#else 350# define YYERROR_VERBOSE 0 351#endif 352 353/* Enabling the token table. */ 354#ifndef YYTOKEN_TABLE 355# define YYTOKEN_TABLE 0 356#endif 357 358#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) 359#line 65 "ldgram.y" 360typedef union YYSTYPE { 361 bfd_vma integer; 362 struct big_int 363 { 364 bfd_vma integer; 365 char *str; 366 } bigint; 367 fill_type *fill; 368 char *name; 369 const char *cname; 370 struct wildcard_spec wildcard; 371 struct wildcard_list *wildcard_list; 372 struct name_list *name_list; 373 int token; 374 union etree_union *etree; 375 struct phdr_info 376 { 377 bfd_boolean filehdr; 378 bfd_boolean phdrs; 379 union etree_union *at; 380 union etree_union *flags; 381 } phdr; 382 struct lang_nocrossref *nocrossref; 383 struct lang_output_section_phdr_list *section_phdr; 384 struct bfd_elf_version_deps *deflist; 385 struct bfd_elf_version_expr *versyms; 386 struct bfd_elf_version_tree *versnode; 387} YYSTYPE; 388/* Line 196 of yacc.c. */ 389#line 390 "ldgram.c" 390# define yystype YYSTYPE /* obsolescent; will be withdrawn */ 391# define YYSTYPE_IS_DECLARED 1 392# define YYSTYPE_IS_TRIVIAL 1 393#endif 394 395 396 397/* Copy the second part of user declarations. */ 398 399 400/* Line 219 of yacc.c. */ 401#line 402 "ldgram.c" 402 403#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) 404# define YYSIZE_T __SIZE_TYPE__ 405#endif 406#if ! defined (YYSIZE_T) && defined (size_t) 407# define YYSIZE_T size_t 408#endif 409#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus)) 410# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 411# define YYSIZE_T size_t 412#endif 413#if ! defined (YYSIZE_T) 414# define YYSIZE_T unsigned int 415#endif 416 417#ifndef YY_ 418# if YYENABLE_NLS 419# if ENABLE_NLS 420# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 421# define YY_(msgid) dgettext ("bison-runtime", msgid) 422# endif 423# endif 424# ifndef YY_ 425# define YY_(msgid) msgid 426# endif 427#endif 428 429#if ! defined (yyoverflow) || YYERROR_VERBOSE 430 431/* The parser invokes alloca or malloc; define the necessary symbols. */ 432 433# ifdef YYSTACK_USE_ALLOCA 434# if YYSTACK_USE_ALLOCA 435# ifdef __GNUC__ 436# define YYSTACK_ALLOC __builtin_alloca 437# else 438# define YYSTACK_ALLOC alloca 439# if defined (__STDC__) || defined (__cplusplus) 440# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 441# define YYINCLUDED_STDLIB_H 442# endif 443# endif 444# endif 445# endif 446 447# ifdef YYSTACK_ALLOC 448 /* Pacify GCC's `empty if-body' warning. */ 449# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 450# ifndef YYSTACK_ALLOC_MAXIMUM 451 /* The OS might guarantee only one guard page at the bottom of the stack, 452 and a page size can be as small as 4096 bytes. So we cannot safely 453 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 454 to allow for a few compiler-allocated temporary stack slots. */ 455# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */ 456# endif 457# else 458# define YYSTACK_ALLOC YYMALLOC 459# define YYSTACK_FREE YYFREE 460# ifndef YYSTACK_ALLOC_MAXIMUM 461# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1) 462# endif 463# ifdef __cplusplus 464extern "C" { 465# endif 466# ifndef YYMALLOC 467# define YYMALLOC malloc 468# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \ 469 && (defined (__STDC__) || defined (__cplusplus))) 470void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 471# endif 472# endif 473# ifndef YYFREE 474# define YYFREE free 475# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \ 476 && (defined (__STDC__) || defined (__cplusplus))) 477void free (void *); /* INFRINGES ON USER NAME SPACE */ 478# endif 479# endif 480# ifdef __cplusplus 481} 482# endif 483# endif 484#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ 485 486 487#if (! defined (yyoverflow) \ 488 && (! defined (__cplusplus) \ 489 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) 490 491/* A type that is properly aligned for any stack member. */ 492union yyalloc 493{ 494 short int yyss; 495 YYSTYPE yyvs; 496 }; 497 498/* The size of the maximum gap between one aligned stack and the next. */ 499# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 500 501/* The size of an array large to enough to hold all stacks, each with 502 N elements. */ 503# define YYSTACK_BYTES(N) \ 504 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ 505 + YYSTACK_GAP_MAXIMUM) 506 507/* Copy COUNT objects from FROM to TO. The source and destination do 508 not overlap. */ 509# ifndef YYCOPY 510# if defined (__GNUC__) && 1 < __GNUC__ 511# define YYCOPY(To, From, Count) \ 512 __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 513# else 514# define YYCOPY(To, From, Count) \ 515 do \ 516 { \ 517 YYSIZE_T yyi; \ 518 for (yyi = 0; yyi < (Count); yyi++) \ 519 (To)[yyi] = (From)[yyi]; \ 520 } \ 521 while (0) 522# endif 523# endif 524 525/* Relocate STACK from its old location to the new one. The 526 local variables YYSIZE and YYSTACKSIZE give the old and new number of 527 elements in the stack, and YYPTR gives the new location of the 528 stack. Advance YYPTR to a properly aligned location for the next 529 stack. */ 530# define YYSTACK_RELOCATE(Stack) \ 531 do \ 532 { \ 533 YYSIZE_T yynewbytes; \ 534 YYCOPY (&yyptr->Stack, Stack, yysize); \ 535 Stack = &yyptr->Stack; \ 536 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 537 yyptr += yynewbytes / sizeof (*yyptr); \ 538 } \ 539 while (0) 540 541#endif 542 543#if defined (__STDC__) || defined (__cplusplus) 544 typedef signed char yysigned_char; 545#else 546 typedef short int yysigned_char; 547#endif 548 549/* YYFINAL -- State number of the termination state. */ 550#define YYFINAL 14 551/* YYLAST -- Last index in YYTABLE. */ 552#define YYLAST 1716 553 554/* YYNTOKENS -- Number of terminals. */ 555#define YYNTOKENS 140 556/* YYNNTS -- Number of nonterminals. */ 557#define YYNNTS 114 558/* YYNRULES -- Number of rules. */ 559#define YYNRULES 333 560/* YYNRULES -- Number of states. */ 561#define YYNSTATES 707 562 563/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 564#define YYUNDEFTOK 2 565#define YYMAXUTOK 371 566 567#define YYTRANSLATE(YYX) \ 568 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 569 570/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ 571static const unsigned char yytranslate[] = 572{ 573 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 576 2, 2, 2, 138, 2, 2, 2, 34, 21, 2, 577 37, 135, 32, 30, 133, 31, 2, 33, 2, 2, 578 2, 2, 2, 2, 2, 2, 2, 2, 16, 134, 579 24, 6, 25, 15, 2, 2, 2, 2, 2, 2, 580 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 581 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 582 2, 136, 2, 137, 20, 2, 2, 2, 2, 2, 583 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 584 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 585 2, 2, 2, 53, 19, 54, 139, 2, 2, 2, 586 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 587 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 588 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 589 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 590 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 591 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 592 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 593 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 594 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 595 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 596 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 597 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 598 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 599 5, 7, 8, 9, 10, 11, 12, 13, 14, 17, 600 18, 22, 23, 26, 27, 28, 29, 35, 36, 38, 601 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 602 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 603 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 604 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 605 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 606 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 607 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 608 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 609 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 610 131, 132 611}; 612 613#if YYDEBUG 614/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 615 YYRHS. */ 616static const unsigned short int yyprhs[] = 617{ 618 0, 0, 3, 6, 9, 12, 15, 17, 18, 23, 619 24, 27, 31, 32, 35, 40, 42, 44, 47, 49, 620 54, 59, 63, 66, 71, 75, 80, 85, 90, 95, 621 100, 103, 106, 109, 114, 119, 122, 125, 128, 131, 622 132, 138, 141, 142, 146, 149, 150, 152, 156, 158, 623 162, 163, 165, 169, 171, 174, 178, 179, 182, 185, 624 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 625 206, 211, 216, 221, 226, 235, 240, 242, 244, 249, 626 250, 256, 261, 262, 268, 273, 278, 280, 284, 287, 627 289, 293, 296, 297, 303, 304, 312, 313, 320, 325, 628 328, 331, 332, 337, 340, 341, 349, 351, 353, 355, 629 357, 363, 368, 373, 381, 389, 397, 405, 414, 417, 630 419, 423, 425, 427, 431, 436, 438, 439, 445, 448, 631 450, 452, 454, 459, 461, 466, 471, 474, 476, 477, 632 479, 481, 483, 485, 487, 489, 491, 494, 495, 497, 633 499, 501, 503, 505, 507, 509, 511, 513, 515, 519, 634 523, 530, 537, 539, 540, 546, 549, 553, 554, 555, 635 563, 567, 571, 572, 576, 578, 581, 583, 586, 591, 636 596, 600, 604, 606, 611, 615, 616, 618, 620, 621, 637 624, 628, 629, 632, 635, 639, 644, 647, 650, 653, 638 657, 661, 665, 669, 673, 677, 681, 685, 689, 693, 639 697, 701, 705, 709, 713, 717, 723, 727, 731, 736, 640 738, 740, 745, 750, 755, 760, 765, 772, 779, 786, 641 791, 798, 803, 805, 812, 819, 826, 831, 836, 840, 642 841, 846, 847, 852, 853, 858, 859, 861, 863, 865, 643 866, 867, 868, 869, 870, 871, 891, 892, 893, 894, 644 895, 896, 915, 916, 917, 925, 927, 929, 931, 933, 645 935, 939, 940, 943, 947, 950, 957, 968, 971, 973, 646 974, 976, 979, 980, 981, 985, 986, 987, 988, 989, 647 1001, 1006, 1007, 1010, 1011, 1012, 1019, 1021, 1022, 1026, 648 1032, 1033, 1037, 1038, 1041, 1042, 1048, 1050, 1053, 1058, 649 1064, 1071, 1073, 1076, 1077, 1080, 1085, 1090, 1099, 1101, 650 1103, 1107, 1111, 1112, 1122, 1123, 1131, 1133, 1137, 1139, 651 1143, 1145, 1149, 1150 652}; 653 654/* YYRHS -- A `-1'-separated list of the rules' RHS. */ 655static const short int yyrhs[] = 656{ 657 141, 0, -1, 116, 155, -1, 117, 145, -1, 127, 658 242, -1, 118, 143, -1, 4, -1, -1, 144, 4, 659 6, 204, -1, -1, 146, 147, -1, 147, 148, 105, 660 -1, -1, 100, 204, -1, 100, 204, 133, 204, -1, 661 4, -1, 101, -1, 107, 150, -1, 106, -1, 111, 662 4, 6, 204, -1, 111, 4, 133, 204, -1, 111, 663 4, 204, -1, 110, 4, -1, 102, 4, 133, 204, 664 -1, 102, 4, 204, -1, 102, 4, 6, 204, -1, 665 38, 4, 6, 204, -1, 38, 4, 133, 204, -1, 666 94, 4, 6, 204, -1, 94, 4, 133, 204, -1, 667 103, 152, -1, 104, 151, -1, 108, 4, -1, 113, 668 4, 133, 4, -1, 113, 4, 133, 3, -1, 112, 669 204, -1, 114, 3, -1, 119, 153, -1, 120, 154, 670 -1, -1, 61, 142, 149, 147, 36, -1, 121, 4, 671 -1, -1, 150, 133, 4, -1, 150, 4, -1, -1, 672 4, -1, 151, 133, 4, -1, 4, -1, 152, 133, 673 4, -1, -1, 4, -1, 153, 133, 4, -1, 4, 674 -1, 154, 4, -1, 154, 133, 4, -1, -1, 156, 675 157, -1, 157, 158, -1, -1, 186, -1, 165, -1, 676 234, -1, 195, -1, 196, -1, 198, -1, 200, -1, 677 167, -1, 244, -1, 134, -1, 70, 37, 4, 135, 678 -1, 71, 37, 142, 135, -1, 92, 37, 142, 135, 679 -1, 56, 37, 4, 135, -1, 56, 37, 4, 133, 680 4, 133, 4, 135, -1, 58, 37, 4, 135, -1, 681 57, -1, 59, -1, 90, 37, 161, 135, -1, -1, 682 91, 159, 37, 161, 135, -1, 72, 37, 142, 135, 683 -1, -1, 61, 142, 160, 157, 36, -1, 85, 37, 684 201, 135, -1, 120, 37, 154, 135, -1, 4, -1, 685 161, 133, 4, -1, 161, 4, -1, 5, -1, 161, 686 133, 5, -1, 161, 5, -1, -1, 99, 37, 162, 687 161, 135, -1, -1, 161, 133, 99, 37, 163, 161, 688 135, -1, -1, 161, 99, 37, 164, 161, 135, -1, 689 46, 53, 166, 54, -1, 166, 210, -1, 166, 167, 690 -1, -1, 73, 37, 4, 135, -1, 184, 183, -1, 691 -1, 109, 168, 37, 204, 133, 4, 135, -1, 4, 692 -1, 32, -1, 15, -1, 169, -1, 132, 37, 171, 693 135, 169, -1, 51, 37, 169, 135, -1, 52, 37, 694 169, 135, -1, 51, 37, 52, 37, 169, 135, 135, 695 -1, 51, 37, 51, 37, 169, 135, 135, -1, 52, 696 37, 51, 37, 169, 135, 135, -1, 52, 37, 52, 697 37, 169, 135, 135, -1, 51, 37, 132, 37, 171, 698 135, 169, 135, -1, 171, 169, -1, 169, -1, 172, 699 185, 170, -1, 170, -1, 4, -1, 136, 172, 137, 700 -1, 170, 37, 172, 135, -1, 173, -1, -1, 128, 701 37, 175, 173, 135, -1, 184, 183, -1, 89, -1, 702 134, -1, 93, -1, 51, 37, 93, 135, -1, 174, 703 -1, 179, 37, 202, 135, -1, 87, 37, 180, 135, 704 -1, 177, 176, -1, 176, -1, -1, 177, -1, 41, 705 -1, 42, -1, 43, -1, 44, -1, 45, -1, 202, 706 -1, 6, 180, -1, -1, 14, -1, 13, -1, 12, 707 -1, 11, -1, 10, -1, 9, -1, 8, -1, 7, 708 -1, 134, -1, 133, -1, 4, 6, 202, -1, 4, 709 182, 202, -1, 97, 37, 4, 6, 202, 135, -1, 710 98, 37, 4, 6, 202, 135, -1, 133, -1, -1, 711 62, 53, 188, 187, 54, -1, 187, 188, -1, 187, 712 133, 188, -1, -1, -1, 4, 189, 192, 16, 190, 713 185, 191, -1, 86, 6, 202, -1, 88, 6, 202, 714 -1, -1, 37, 193, 135, -1, 194, -1, 193, 194, 715 -1, 4, -1, 138, 4, -1, 80, 37, 142, 135, 716 -1, 81, 37, 197, 135, -1, 81, 37, 135, -1, 717 197, 185, 142, -1, 142, -1, 82, 37, 199, 135, 718 -1, 199, 185, 142, -1, -1, 83, -1, 84, -1, 719 -1, 4, 201, -1, 4, 133, 201, -1, -1, 203, 720 204, -1, 31, 204, -1, 37, 204, 135, -1, 74, 721 37, 204, 135, -1, 138, 204, -1, 30, 204, -1, 722 139, 204, -1, 204, 32, 204, -1, 204, 33, 204, 723 -1, 204, 34, 204, -1, 204, 30, 204, -1, 204, 724 31, 204, -1, 204, 29, 204, -1, 204, 28, 204, 725 -1, 204, 23, 204, -1, 204, 22, 204, -1, 204, 726 27, 204, -1, 204, 26, 204, -1, 204, 24, 204, 727 -1, 204, 25, 204, -1, 204, 21, 204, -1, 204, 728 20, 204, -1, 204, 19, 204, -1, 204, 15, 204, 729 16, 204, -1, 204, 18, 204, -1, 204, 17, 204, 730 -1, 69, 37, 4, 135, -1, 3, -1, 55, -1, 731 75, 37, 4, 135, -1, 76, 37, 4, 135, -1, 732 77, 37, 4, 135, -1, 103, 37, 204, 135, -1, 733 38, 37, 204, 135, -1, 38, 37, 204, 133, 204, 734 135, -1, 48, 37, 204, 133, 204, 135, -1, 49, 735 37, 204, 133, 204, 135, -1, 50, 37, 204, 135, 736 -1, 60, 37, 4, 133, 204, 135, -1, 39, 37, 737 204, 135, -1, 4, -1, 78, 37, 204, 133, 204, 738 135, -1, 79, 37, 204, 133, 204, 135, -1, 109, 739 37, 204, 133, 4, 135, -1, 86, 37, 4, 135, 740 -1, 88, 37, 4, 135, -1, 95, 25, 4, -1, 741 -1, 95, 37, 204, 135, -1, -1, 38, 37, 204, 742 135, -1, -1, 96, 37, 204, 135, -1, -1, 129, 743 -1, 130, -1, 131, -1, -1, -1, -1, -1, -1, 744 -1, 4, 211, 225, 206, 207, 208, 212, 209, 53, 745 213, 178, 54, 214, 228, 205, 229, 181, 215, 185, 746 -1, -1, -1, -1, -1, -1, 68, 216, 226, 227, 747 206, 208, 217, 53, 218, 230, 54, 219, 228, 205, 748 229, 181, 220, 185, -1, -1, -1, 91, 221, 225, 749 222, 53, 166, 54, -1, 64, -1, 65, -1, 66, 750 -1, 67, -1, 68, -1, 37, 223, 135, -1, -1, 751 37, 135, -1, 204, 224, 16, -1, 224, 16, -1, 752 40, 37, 204, 135, 224, 16, -1, 40, 37, 204, 753 135, 39, 37, 204, 135, 224, 16, -1, 204, 16, 754 -1, 16, -1, -1, 85, -1, 25, 4, -1, -1, 755 -1, 229, 16, 4, -1, -1, -1, -1, -1, 230, 756 4, 231, 53, 178, 54, 232, 229, 181, 233, 185, 757 -1, 47, 53, 235, 54, -1, -1, 235, 236, -1, 758 -1, -1, 4, 237, 239, 240, 238, 134, -1, 204, 759 -1, -1, 4, 241, 240, -1, 95, 37, 204, 135, 760 240, -1, -1, 37, 204, 135, -1, -1, 243, 246, 761 -1, -1, 245, 126, 53, 246, 54, -1, 247, -1, 762 246, 247, -1, 53, 249, 54, 134, -1, 122, 53, 763 249, 54, 134, -1, 122, 53, 249, 54, 248, 134, 764 -1, 122, -1, 248, 122, -1, -1, 250, 134, -1, 765 124, 16, 250, 134, -1, 125, 16, 250, 134, -1, 766 124, 16, 250, 134, 125, 16, 250, 134, -1, 123, 767 -1, 4, -1, 250, 134, 123, -1, 250, 134, 4, 768 -1, -1, 250, 134, 120, 4, 53, 251, 250, 253, 769 54, -1, -1, 120, 4, 53, 252, 250, 253, 54, 770 -1, 124, -1, 250, 134, 124, -1, 125, -1, 250, 771 134, 125, -1, 120, -1, 250, 134, 120, -1, -1, 772 134, -1 773}; 774 775/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 776static const unsigned short int yyrline[] = 777{ 778 0, 162, 162, 163, 164, 165, 169, 173, 173, 183, 779 183, 196, 197, 201, 202, 203, 206, 209, 210, 211, 780 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 781 233, 234, 235, 237, 239, 241, 243, 245, 246, 248, 782 247, 251, 253, 257, 258, 259, 263, 265, 269, 271, 783 276, 277, 278, 282, 284, 286, 291, 291, 302, 303, 784 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 785 319, 321, 323, 325, 328, 330, 332, 334, 336, 338, 786 337, 341, 344, 343, 347, 351, 355, 358, 361, 364, 787 367, 370, 374, 373, 378, 377, 382, 381, 388, 392, 788 393, 394, 398, 400, 401, 401, 409, 413, 417, 424, 789 430, 436, 442, 448, 454, 460, 466, 472, 481, 490, 790 501, 510, 521, 529, 533, 540, 542, 541, 548, 549, 791 553, 554, 559, 564, 565, 570, 577, 578, 581, 583, 792 587, 589, 591, 593, 595, 600, 607, 609, 613, 615, 793 617, 619, 621, 623, 625, 627, 632, 632, 637, 641, 794 649, 653, 661, 661, 665, 669, 670, 671, 676, 675, 795 683, 691, 699, 700, 704, 705, 709, 711, 716, 721, 796 722, 727, 729, 735, 737, 739, 743, 745, 751, 754, 797 763, 774, 774, 780, 782, 784, 786, 788, 790, 793, 798 795, 797, 799, 801, 803, 805, 807, 809, 811, 813, 799 815, 817, 819, 821, 823, 825, 827, 829, 831, 833, 800 835, 838, 840, 842, 844, 846, 848, 850, 852, 854, 801 856, 865, 867, 869, 871, 873, 875, 877, 883, 884, 802 888, 889, 893, 894, 898, 899, 903, 904, 905, 906, 803 909, 913, 916, 922, 924, 909, 931, 933, 935, 940, 804 942, 930, 952, 954, 952, 962, 963, 964, 965, 966, 805 970, 971, 972, 976, 977, 982, 983, 988, 989, 994, 806 995, 1000, 1002, 1007, 1010, 1023, 1027, 1032, 1034, 1025, 807 1042, 1045, 1047, 1051, 1052, 1051, 1061, 1106, 1109, 1121, 808 1130, 1133, 1142, 1142, 1156, 1156, 1166, 1167, 1171, 1175, 809 1179, 1186, 1190, 1198, 1201, 1205, 1209, 1213, 1220, 1224, 810 1228, 1232, 1237, 1236, 1250, 1249, 1259, 1263, 1267, 1271, 811 1275, 1279, 1285, 1287 812}; 813#endif 814 815#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 816/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 817 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 818static const char *const yytname[] = 819{ 820 "$end", "error", "$undefined", "INT", "NAME", "LNAME", "'='", "OREQ", 821 "ANDEQ", "RSHIFTEQ", "LSHIFTEQ", "DIVEQ", "MULTEQ", "MINUSEQ", "PLUSEQ", 822 "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "NE", "EQ", "'<'", 823 "'>'", "GE", "LE", "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'", 824 "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD", "SQUAD", 825 "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "DATA_SEGMENT_ALIGN", 826 "DATA_SEGMENT_RELRO_END", "DATA_SEGMENT_END", "SORT_BY_NAME", 827 "SORT_BY_ALIGNMENT", "'{'", "'}'", "SIZEOF_HEADERS", "OUTPUT_FORMAT", 828 "FORCE_COMMON_ALLOCATION", "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION", 829 "SEGMENT_START", "INCLUDE", "MEMORY", "DEFSYMEND", "NOLOAD", "DSECT", 830 "COPY", "INFO", "OVERLAY", "DEFINED", "TARGET_K", "SEARCH_DIR", "MAP", 831 "ENTRY", "NEXT", "SIZEOF", "ADDR", "LOADADDR", "MAX_K", "MIN_K", 832 "STARTUP", "HLL", "SYSLIB", "FLOAT", "NOFLOAT", "NOCROSSREFS", "ORIGIN", 833 "FILL", "LENGTH", "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", 834 "CONSTRUCTORS", "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE", 835 "PROVIDE_HIDDEN", "AS_NEEDED", "CHIP", "LIST", "SECT", "ABSOLUTE", 836 "LOAD", "NEWLINE", "ENDWORD", "ORDER", "NAMEWORD", "ASSERT_K", "FORMAT", 837 "PUBLIC", "BASE", "ALIAS", "TRUNCATE", "REL", "INPUT_SCRIPT", 838 "INPUT_MRI_SCRIPT", "INPUT_DEFSYM", "CASE", "EXTERN", "START", 839 "VERS_TAG", "VERS_IDENTIFIER", "GLOBAL", "LOCAL", "VERSIONK", 840 "INPUT_VERSION_SCRIPT", "KEEP", "ONLY_IF_RO", "ONLY_IF_RW", "SPECIAL", 841 "EXCLUDE_FILE", "','", "';'", "')'", "'['", "']'", "'!'", "'~'", 842 "$accept", "file", "filename", "defsym_expr", "@1", "mri_script_file", 843 "@2", "mri_script_lines", "mri_script_command", "@3", "ordernamelist", 844 "mri_load_name_list", "mri_abs_name_list", "casesymlist", 845 "extern_name_list", "script_file", "@4", "ifile_list", "ifile_p1", "@5", 846 "@6", "input_list", "@7", "@8", "@9", "sections", "sec_or_group_p1", 847 "statement_anywhere", "@10", "wildcard_name", "wildcard_spec", 848 "exclude_name_list", "file_NAME_list", "input_section_spec_no_keep", 849 "input_section_spec", "@11", "statement", "statement_list", 850 "statement_list_opt", "length", "fill_exp", "fill_opt", "assign_op", 851 "end", "assignment", "opt_comma", "memory", "memory_spec_list", 852 "memory_spec", "@12", "origin_spec", "length_spec", "attributes_opt", 853 "attributes_list", "attributes_string", "startup", "high_level_library", 854 "high_level_library_NAME_list", "low_level_library", 855 "low_level_library_NAME_list", "floating_point_support", 856 "nocrossref_list", "mustbe_exp", "@13", "exp", "memspec_at_opt", 857 "opt_at", "opt_align", "opt_subalign", "sect_constraint", "section", 858 "@14", "@15", "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", 859 "@24", "@25", "type", "atype", "opt_exp_with_type", 860 "opt_exp_without_type", "opt_nocrossrefs", "memspec_opt", "phdr_opt", 861 "overlay_section", "@26", "@27", "@28", "phdrs", "phdr_list", "phdr", 862 "@29", "@30", "phdr_type", "phdr_qualifiers", "phdr_val", 863 "version_script_file", "@31", "version", "@32", "vers_nodes", 864 "vers_node", "verdep", "vers_tag", "vers_defns", "@33", "@34", 865 "opt_semicolon", 0 866}; 867#endif 868 869# ifdef YYPRINT 870/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 871 token YYLEX-NUM. */ 872static const unsigned short int yytoknum[] = 873{ 874 0, 256, 257, 258, 259, 260, 61, 261, 262, 263, 875 264, 265, 266, 267, 268, 63, 58, 269, 270, 124, 876 94, 38, 271, 272, 60, 62, 273, 274, 275, 276, 877 43, 45, 42, 47, 37, 277, 278, 40, 279, 280, 878 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 879 291, 292, 293, 123, 125, 294, 295, 296, 297, 298, 880 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 881 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 882 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 883 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 884 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 885 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 886 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 887 369, 370, 371, 44, 59, 41, 91, 93, 33, 126 888}; 889# endif 890 891/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 892static const unsigned char yyr1[] = 893{ 894 0, 140, 141, 141, 141, 141, 142, 144, 143, 146, 895 145, 147, 147, 148, 148, 148, 148, 148, 148, 148, 896 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 897 148, 148, 148, 148, 148, 148, 148, 148, 148, 149, 898 148, 148, 148, 150, 150, 150, 151, 151, 152, 152, 899 153, 153, 153, 154, 154, 154, 156, 155, 157, 157, 900 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 901 158, 158, 158, 158, 158, 158, 158, 158, 158, 159, 902 158, 158, 160, 158, 158, 158, 161, 161, 161, 161, 903 161, 161, 162, 161, 163, 161, 164, 161, 165, 166, 904 166, 166, 167, 167, 168, 167, 169, 169, 169, 170, 905 170, 170, 170, 170, 170, 170, 170, 170, 171, 171, 906 172, 172, 173, 173, 173, 174, 175, 174, 176, 176, 907 176, 176, 176, 176, 176, 176, 177, 177, 178, 178, 908 179, 179, 179, 179, 179, 180, 181, 181, 182, 182, 909 182, 182, 182, 182, 182, 182, 183, 183, 184, 184, 910 184, 184, 185, 185, 186, 187, 187, 187, 189, 188, 911 190, 191, 192, 192, 193, 193, 194, 194, 195, 196, 912 196, 197, 197, 198, 199, 199, 200, 200, 201, 201, 913 201, 203, 202, 204, 204, 204, 204, 204, 204, 204, 914 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 915 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 916 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 917 204, 204, 204, 204, 204, 204, 204, 204, 205, 205, 918 206, 206, 207, 207, 208, 208, 209, 209, 209, 209, 919 211, 212, 213, 214, 215, 210, 216, 217, 218, 219, 920 220, 210, 221, 222, 210, 223, 223, 223, 223, 223, 921 224, 224, 224, 225, 225, 225, 225, 226, 226, 227, 922 227, 228, 228, 229, 229, 230, 231, 232, 233, 230, 923 234, 235, 235, 237, 238, 236, 239, 240, 240, 240, 924 241, 241, 243, 242, 245, 244, 246, 246, 247, 247, 925 247, 248, 248, 249, 249, 249, 249, 249, 250, 250, 926 250, 250, 251, 250, 252, 250, 250, 250, 250, 250, 927 250, 250, 253, 253 928}; 929 930/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ 931static const unsigned char yyr2[] = 932{ 933 0, 2, 2, 2, 2, 2, 1, 0, 4, 0, 934 2, 3, 0, 2, 4, 1, 1, 2, 1, 4, 935 4, 3, 2, 4, 3, 4, 4, 4, 4, 4, 936 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 937 5, 2, 0, 3, 2, 0, 1, 3, 1, 3, 938 0, 1, 3, 1, 2, 3, 0, 2, 2, 0, 939 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 940 4, 4, 4, 4, 8, 4, 1, 1, 4, 0, 941 5, 4, 0, 5, 4, 4, 1, 3, 2, 1, 942 3, 2, 0, 5, 0, 7, 0, 6, 4, 2, 943 2, 0, 4, 2, 0, 7, 1, 1, 1, 1, 944 5, 4, 4, 7, 7, 7, 7, 8, 2, 1, 945 3, 1, 1, 3, 4, 1, 0, 5, 2, 1, 946 1, 1, 4, 1, 4, 4, 2, 1, 0, 1, 947 1, 1, 1, 1, 1, 1, 2, 0, 1, 1, 948 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 949 6, 6, 1, 0, 5, 2, 3, 0, 0, 7, 950 3, 3, 0, 3, 1, 2, 1, 2, 4, 4, 951 3, 3, 1, 4, 3, 0, 1, 1, 0, 2, 952 3, 0, 2, 2, 3, 4, 2, 2, 2, 3, 953 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 954 3, 3, 3, 3, 3, 5, 3, 3, 4, 1, 955 1, 4, 4, 4, 4, 4, 6, 6, 6, 4, 956 6, 4, 1, 6, 6, 6, 4, 4, 3, 0, 957 4, 0, 4, 0, 4, 0, 1, 1, 1, 0, 958 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 959 0, 18, 0, 0, 7, 1, 1, 1, 1, 1, 960 3, 0, 2, 3, 2, 6, 10, 2, 1, 0, 961 1, 2, 0, 0, 3, 0, 0, 0, 0, 11, 962 4, 0, 2, 0, 0, 6, 1, 0, 3, 5, 963 0, 3, 0, 2, 0, 5, 1, 2, 4, 5, 964 6, 1, 2, 0, 2, 4, 4, 8, 1, 1, 965 3, 3, 0, 9, 0, 7, 1, 3, 1, 3, 966 1, 3, 0, 1 967}; 968 969/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 970 STATE-NUM when YYTABLE doesn't specify something else to do. Zero 971 means the default is an error. */ 972static const unsigned short int yydefact[] = 973{ 974 0, 56, 9, 7, 302, 0, 2, 59, 3, 12, 975 5, 0, 4, 0, 1, 57, 10, 0, 313, 0, 976 303, 306, 0, 0, 0, 0, 76, 0, 77, 0, 977 0, 0, 0, 0, 0, 0, 0, 0, 186, 187, 978 0, 0, 79, 0, 0, 0, 104, 0, 69, 58, 979 61, 67, 0, 60, 63, 64, 65, 66, 62, 68, 980 0, 15, 0, 0, 0, 0, 16, 0, 0, 0, 981 18, 45, 0, 0, 0, 0, 0, 0, 50, 0, 982 0, 0, 0, 319, 330, 318, 326, 328, 0, 0, 983 313, 307, 191, 155, 154, 153, 152, 151, 150, 149, 984 148, 191, 101, 291, 0, 0, 6, 82, 0, 0, 985 0, 0, 0, 0, 0, 185, 188, 0, 0, 0, 986 0, 0, 0, 0, 157, 156, 103, 0, 0, 39, 987 0, 219, 232, 0, 0, 0, 0, 0, 0, 0, 988 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 989 0, 0, 0, 0, 0, 0, 13, 0, 48, 30, 990 46, 31, 17, 32, 22, 0, 35, 0, 36, 51, 991 37, 53, 38, 41, 11, 8, 0, 0, 0, 0, 992 314, 0, 158, 0, 159, 0, 0, 0, 0, 59, 993 168, 167, 0, 0, 0, 0, 0, 180, 182, 163, 994 163, 188, 0, 86, 89, 0, 0, 0, 0, 0, 995 0, 0, 0, 0, 0, 0, 12, 0, 0, 197, 996 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 997 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 998 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1000 0, 0, 0, 24, 0, 0, 44, 0, 0, 0, 1001 21, 0, 0, 54, 0, 324, 326, 328, 0, 0, 1002 308, 321, 331, 320, 327, 329, 0, 192, 250, 98, 1003 256, 262, 100, 99, 293, 290, 292, 0, 73, 75, 1004 304, 172, 0, 70, 71, 81, 102, 178, 162, 179, 1005 0, 183, 0, 188, 189, 84, 92, 88, 91, 0, 1006 0, 78, 0, 72, 191, 191, 0, 85, 0, 26, 1007 27, 42, 28, 29, 194, 0, 0, 0, 0, 0, 1008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1009 0, 0, 0, 217, 216, 214, 213, 212, 207, 206, 1010 210, 211, 209, 208, 205, 204, 202, 203, 199, 200, 1011 201, 14, 25, 23, 49, 47, 43, 19, 20, 34, 1012 33, 52, 55, 0, 315, 316, 0, 311, 309, 0, 1013 271, 0, 271, 0, 0, 83, 0, 0, 164, 0, 1014 165, 181, 184, 190, 0, 96, 87, 90, 0, 80, 1015 0, 0, 0, 305, 40, 0, 225, 231, 0, 0, 1016 229, 0, 218, 195, 221, 222, 223, 0, 0, 236, 1017 237, 224, 0, 0, 332, 329, 322, 312, 310, 0, 1018 0, 271, 0, 241, 278, 0, 279, 263, 296, 297, 1019 0, 176, 0, 0, 174, 0, 166, 0, 0, 94, 1020 160, 161, 0, 0, 0, 0, 0, 0, 0, 0, 1021 215, 333, 0, 0, 0, 265, 266, 267, 268, 269, 1022 272, 0, 0, 0, 0, 274, 0, 243, 277, 280, 1023 241, 0, 300, 0, 294, 0, 177, 173, 175, 0, 1024 163, 93, 0, 0, 105, 226, 227, 228, 230, 233, 1025 234, 235, 325, 0, 332, 270, 0, 273, 0, 0, 1026 245, 245, 101, 0, 297, 0, 0, 74, 191, 0, 1027 97, 0, 317, 0, 271, 0, 0, 0, 251, 257, 1028 0, 0, 298, 0, 295, 170, 0, 169, 95, 323, 1029 0, 0, 240, 0, 0, 249, 0, 264, 301, 297, 1030 191, 0, 275, 242, 0, 246, 247, 248, 0, 258, 1031 299, 171, 0, 244, 252, 285, 271, 138, 0, 0, 1032 122, 108, 107, 140, 141, 142, 143, 144, 0, 0, 1033 0, 129, 131, 0, 0, 130, 0, 109, 0, 125, 1034 133, 137, 139, 0, 0, 0, 286, 259, 276, 0, 1035 0, 191, 126, 0, 106, 0, 121, 163, 0, 136, 1036 253, 191, 128, 0, 282, 0, 0, 0, 0, 0, 1037 0, 0, 0, 0, 145, 0, 119, 0, 0, 123, 1038 0, 163, 282, 0, 138, 0, 239, 0, 0, 132, 1039 0, 111, 0, 0, 112, 135, 106, 0, 0, 118, 1040 120, 124, 239, 134, 0, 281, 0, 283, 0, 0, 1041 0, 0, 0, 127, 110, 283, 287, 0, 147, 0, 1042 0, 0, 0, 0, 147, 283, 238, 191, 0, 260, 1043 114, 113, 0, 115, 116, 254, 147, 146, 284, 163, 1044 117, 163, 288, 261, 255, 163, 289 1045}; 1046 1047/* YYDEFGOTO[NTERM-NUM]. */ 1048static const short int yydefgoto[] = 1049{ 1050 -1, 5, 107, 10, 11, 8, 9, 16, 81, 216, 1051 162, 161, 159, 170, 172, 6, 7, 15, 49, 118, 1052 189, 206, 404, 503, 458, 50, 185, 51, 122, 597, 1053 598, 637, 617, 599, 600, 635, 601, 602, 603, 604, 1054 633, 689, 101, 126, 52, 640, 53, 302, 191, 301, 1055 500, 547, 397, 453, 454, 54, 55, 199, 56, 200, 1056 57, 202, 634, 183, 221, 667, 487, 520, 538, 568, 1057 293, 390, 555, 577, 642, 701, 391, 556, 575, 624, 1058 699, 392, 491, 481, 442, 443, 446, 490, 646, 678, 1059 578, 623, 685, 705, 58, 186, 296, 393, 526, 449, 1060 494, 524, 12, 13, 59, 60, 20, 21, 389, 88, 1061 89, 474, 383, 472 1062}; 1063 1064/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 1065 STATE-NUM. */ 1066#define YYPACT_NINF -601 1067static const short int yypact[] = 1068{ 1069 110, -601, -601, -601, -601, 51, -601, -601, -601, -601, 1070 -601, 14, -601, -9, -601, 696, 1513, 59, 97, -21, 1071 -9, -601, 860, 36, 44, 92, -601, 103, -601, 144, 1072 120, 141, 164, 168, 179, 181, 187, 198, -601, -601, 1073 212, 223, -601, 255, 258, 261, -601, 262, -601, -601, 1074 -601, -601, 76, -601, -601, -601, -601, -601, -601, -601, 1075 174, -601, 232, 144, 297, 589, -601, 301, 302, 305, 1076 -601, -601, 306, 309, 310, 589, 311, 313, 314, 316, 1077 317, 221, 589, -601, 328, -601, 320, 324, 279, 205, 1078 97, -601, -601, -601, -601, -601, -601, -601, -601, -601, 1079 -601, -601, -601, -601, 337, 338, -601, -601, 344, 345, 1080 144, 144, 346, 144, 35, -601, 348, 26, 321, 144, 1081 350, 359, 327, 316, -601, -601, -601, 319, 9, -601, 1082 41, -601, -601, 589, 589, 589, 339, 340, 347, 355, 1083 364, -601, 365, 366, 367, 374, 375, 376, 381, 384, 1084 385, 387, 394, 395, 589, 589, 1322, 331, -601, 249, 1085 -601, 250, 17, -601, -601, 445, 1682, 254, -601, -601, 1086 263, -601, 18, -601, -601, 1682, 380, 199, 199, 304, 1087 265, 390, -601, 589, -601, 369, 46, -90, 300, -601, 1088 -601, -601, 312, 315, 318, 330, 336, -601, -601, 119, 1089 131, 32, 342, -601, -601, 402, 12, 26, 353, 435, 1090 439, 589, 69, -9, 589, 589, -601, 589, 589, -601, 1091 -601, 905, 589, 589, 589, 589, 589, 442, 448, 589, 1092 450, 454, 455, 589, 589, 468, 469, 589, 589, -601, 1093 -601, 589, 589, 589, 589, 589, 589, 589, 589, 589, 1094 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 1095 589, 589, 589, 1682, 475, 477, -601, 481, 589, 589, 1096 1682, 226, 485, -601, 486, -601, -601, -601, 357, 368, 1097 -601, -601, 492, -601, -601, -601, -48, 1682, 860, -601, 1098 -601, -601, -601, -601, -601, -601, -601, 500, -601, -601, 1099 767, 471, 10, -601, -601, -601, -601, -601, -601, -601, 1100 144, -601, 144, 348, -601, -601, -601, -601, -601, 472, 1101 78, -601, 24, -601, -601, -601, 1342, -601, -12, 1682, 1102 1682, 1535, 1682, 1682, -601, 885, 925, 1362, 1382, 945, 1103 373, 377, 965, 378, 382, 383, 1439, 1459, 391, 392, 1104 1004, 1479, 1642, 982, 1121, 1259, 1397, 707, 677, 677, 1105 573, 573, 573, 573, 210, 210, 247, 247, -601, -601, 1106 -601, 1682, 1682, 1682, -601, -601, -601, 1682, 1682, -601, 1107 -601, -601, -601, 199, 274, 265, 457, -601, -601, -46, 1108 30, 512, 30, 589, 397, -601, 8, 495, -601, 344, 1109 -601, -601, -601, -601, 26, -601, -601, -601, 488, -601, 1110 399, 400, 528, -601, -601, 589, -601, -601, 589, 589, 1111 -601, 589, -601, -601, -601, -601, -601, 589, 589, -601, 1112 -601, -601, 534, 589, 405, 525, -601, -601, -601, 208, 1113 507, 1501, 529, 451, -601, 1662, 462, -601, 1682, 19, 1114 548, -601, 549, 6, -601, 470, -601, 115, 26, -601, 1115 -601, -601, 420, 1024, 1044, 1064, 1084, 1104, 1143, 422, 1116 1682, 265, 504, 199, 199, -601, -601, -601, -601, -601, 1117 -601, 424, 589, 362, 547, -601, 531, 532, -601, -601, 1118 451, 513, 536, 539, -601, 434, -601, -601, -601, 565, 1119 449, -601, 126, 26, -601, -601, -601, -601, -601, -601, 1120 -601, -601, -601, 460, 405, -601, 1163, -601, 589, 558, 1121 503, 503, -601, 589, 19, 589, 476, -601, -601, 508, 1122 -601, 132, 265, 555, 87, 1183, 589, 574, -601, -601, 1123 389, 1203, -601, 1223, -601, -601, 606, -601, -601, -601, 1124 576, 598, -601, 1243, 589, 159, 563, -601, -601, 19, 1125 -601, 589, -601, -601, 1282, -601, -601, -601, 564, -601, 1126 -601, -601, 1302, -601, -601, -601, 581, 628, 48, 607, 1127 675, -601, -601, -601, -601, -601, -601, -601, 585, 587, 1128 588, -601, -601, 592, 593, -601, 219, -601, 594, -601, 1129 -601, -601, 628, 579, 597, 76, -601, -601, -601, 323, 1130 363, -601, -601, 62, -601, 599, -601, -5, 219, -601, 1131 -601, -601, -601, 582, 615, 604, 605, 510, 609, 517, 1132 610, 611, 518, 519, -601, 83, -601, 23, 293, -601, 1133 219, 158, 615, 520, 628, 652, 562, 62, 62, -601, 1134 62, -601, 62, 62, -601, -601, 524, 526, 62, -601, 1135 -601, -601, 562, -601, 608, -601, 649, -601, 541, 543, 1136 31, 556, 559, -601, -601, -601, -601, 686, 42, 560, 1137 561, 62, 578, 583, 42, -601, -601, -601, 689, -601, 1138 -601, -601, 584, -601, -601, -601, 42, -601, -601, 449, 1139 -601, 449, -601, -601, -601, 449, -601 1140}; 1141 1142/* YYPGOTO[NTERM-NUM]. */ 1143static const short int yypgoto[] = 1144{ 1145 -601, -601, -57, -601, -601, -601, -601, 483, -601, -601, 1146 -601, -601, -601, -601, 591, -601, -601, 527, -601, -601, 1147 -601, -196, -601, -601, -601, -601, 175, -180, -601, -73, 1148 -559, 70, 104, 88, -601, -601, 122, -601, 100, -601, 1149 58, -600, -601, 142, -553, -198, -601, -601, -277, -601, 1150 -601, -601, -601, -601, 295, -601, -601, -601, -601, -601, 1151 -601, -175, -92, -601, -62, 84, 259, -601, 229, -601, 1152 -601, -601, -601, -601, -601, -601, -601, -601, -601, -601, 1153 -601, -601, -601, -601, -422, 371, -601, -601, 109, -558, 1154 -601, -601, -601, -601, -601, -601, -601, -601, -601, -601, 1155 -484, -601, -601, -601, -601, -601, 546, -16, -601, 671, 1156 -170, -601, -601, 251 1157}; 1158 1159/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If 1160 positive, shift that token. If negative, reduce the rule which 1161 number is the opposite. If zero, do what YYDEFACT says. 1162 If YYTABLE_NINF, syntax error. */ 1163#define YYTABLE_NINF -305 1164static const short int yytable[] = 1165{ 1166 182, 310, 312, 156, 91, 292, 129, 278, 279, 184, 1167 451, 322, 451, 166, 190, 214, 317, 318, 17, 484, 1168 175, 266, 273, 492, 605, 400, 314, 614, 317, 318, 1169 203, 204, 90, 131, 132, 614, 201, 616, 581, 106, 1170 542, 18, 413, 297, 18, 298, 581, 217, 687, 605, 1171 294, 14, 606, 193, 194, 582, 196, 198, 688, 616, 1172 133, 134, 208, 582, 398, 82, 614, 439, 136, 137, 1173 440, 219, 220, 273, 387, 570, 437, 581, 138, 139, 1174 140, 660, 406, 407, 695, 141, 388, 656, 438, 102, 1175 142, 605, 239, 240, 582, 263, 702, 103, 581, 143, 1176 295, 83, 607, 270, 144, 145, 146, 147, 148, 149, 1177 19, 319, 551, 19, 493, 582, 150, 684, 151, 317, 1178 318, 287, 456, 319, 483, 205, 550, 696, 308, 104, 1179 317, 318, 639, 152, 615, 589, 317, 318, 403, 153, 1180 105, 497, 215, 399, 452, 320, 452, 321, 106, 326, 1181 267, 274, 329, 330, 579, 332, 333, 320, 658, 409, 1182 335, 336, 337, 338, 339, 313, 681, 342, 154, 155, 1183 197, 346, 347, 108, 218, 350, 351, 408, 109, 352, 1184 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 1185 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 1186 373, 110, 274, 83, 327, 111, 377, 378, 457, 124, 1187 125, 131, 132, 434, 319, 594, 112, 84, 113, 596, 1188 85, 86, 87, 614, 114, 319, 1, 2, 3, 379, 1189 380, 319, 410, 411, 581, 115, 128, 4, 133, 134, 1190 255, 256, 257, 258, 259, 135, 136, 137, 320, 116, 1191 501, 582, 308, 401, 309, 402, 138, 139, 140, 320, 1192 117, 530, 502, 141, 308, 320, 311, 548, 142, 281, 1193 615, 589, 475, 476, 477, 478, 479, 143, 281, 257, 1194 258, 259, 144, 145, 146, 147, 148, 149, 565, 566, 1195 567, 308, 119, 661, 150, 120, 151, 614, 121, 123, 1196 127, 130, 529, 513, 514, 157, 158, 531, 581, 160, 1197 163, 152, 91, 164, 165, 167, 168, 153, 169, 84, 1198 171, 173, 85, 276, 277, 582, 174, 614, 441, 445, 1199 441, 448, 176, 179, 131, 132, 177, 261, 581, 180, 1200 178, 187, 188, 480, 625, 626, 154, 155, 190, 192, 1201 195, 594, 201, 463, 209, 582, 464, 465, 207, 466, 1202 292, 133, 134, 210, 211, 467, 468, 614, 135, 136, 1203 137, 470, 213, 288, 625, 626, 222, 223, 581, 138, 1204 139, 140, 264, 265, 224, 282, 141, 271, 283, 284, 1205 285, 142, 225, 288, 282, 582, 272, 283, 284, 435, 1206 143, 226, 227, 228, 229, 144, 145, 146, 147, 148, 1207 149, 230, 231, 232, 630, 631, 627, 150, 233, 151, 1208 516, 234, 235, 289, 236, 628, 475, 476, 477, 478, 1209 479, 237, 238, 275, 152, 299, 545, 290, 280, 316, 1210 153, 324, 34, 557, 286, 325, 340, 303, 131, 132, 1211 304, 268, 341, 305, 343, 628, 535, 290, 344, 345, 1212 291, 541, 34, 543, 262, 306, 44, 45, 571, 154, 1213 155, 307, 348, 349, 553, 133, 134, 315, 46, 374, 1214 291, 375, 135, 136, 137, 376, 44, 45, 323, 381, 1215 382, 384, 564, 138, 139, 140, 386, 480, 46, 572, 1216 141, 703, 385, 704, 394, 142, 421, 706, 396, 405, 1217 436, 455, 422, 424, 143, 131, 132, 425, 426, 144, 1218 145, 146, 147, 148, 149, 459, 429, 430, 444, 643, 1219 450, 150, 462, 151, 460, 461, 629, 632, 469, 471, 1220 636, 473, 133, 134, 482, 485, 486, 489, 152, 135, 1221 136, 137, 495, 496, 153, 504, 499, 511, 512, 515, 1222 138, 139, 140, 517, 659, 629, 522, 141, 518, 527, 1223 519, 528, 142, 523, 668, 669, 525, 636, 269, 671, 1224 672, 143, 308, 154, 155, 674, 144, 145, 146, 147, 1225 148, 149, 131, 132, 532, 536, 546, 659, 150, 537, 1226 151, 253, 254, 255, 256, 257, 258, 259, 692, 549, 1227 544, 554, 560, 561, 562, 152, 569, 574, 483, 133, 1228 134, 153, 609, 608, 610, 611, 135, 136, 137, 612, 1229 613, 618, 580, 620, 621, 644, 638, 138, 139, 140, 1230 645, 647, 648, 581, 141, 649, 650, 652, 653, 142, 1231 154, 155, 651, 654, 655, 663, 665, 666, 143, -122, 1232 582, 673, 676, 144, 145, 146, 147, 148, 149, 583, 1233 584, 585, 586, 587, 677, 150, 679, 151, 680, 588, 1234 589, 92, 93, 94, 95, 96, 97, 98, 99, 100, 1235 686, 682, 152, 698, 683, 690, 691, 540, 153, 331, 1236 22, 249, 250, 251, 252, 253, 254, 255, 256, 257, 1237 258, 259, -106, 693, 212, 590, 300, 591, 694, 700, 1238 670, 592, 641, 657, 619, 44, 45, 154, 155, 247, 1239 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 1240 258, 259, 23, 24, 664, 697, 675, 622, 498, 521, 1241 539, 662, 25, 26, 27, 28, 593, 29, 30, 328, 1242 594, 181, 595, 447, 596, 533, 31, 32, 33, 34, 1243 0, 22, 0, 0, 0, 0, 35, 36, 37, 38, 1244 39, 40, 0, 0, 0, 0, 41, 42, 43, 0, 1245 0, 0, 0, 44, 45, 0, 0, 0, 0, 0, 1246 0, 0, 0, 395, 0, 46, 0, 0, 0, 0, 1247 0, 0, 0, 23, 24, 0, 47, 0, 0, 0, 1248 0, 0, -304, 25, 26, 27, 28, 0, 29, 30, 1249 48, 0, 0, 0, 0, 0, 0, 31, 32, 33, 1250 34, 0, 0, 0, 0, 0, 0, 35, 36, 37, 1251 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, 1252 0, 0, 0, 0, 44, 45, 92, 93, 94, 95, 1253 96, 97, 98, 99, 100, 0, 46, 0, 0, 0, 1254 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 1255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1256 241, 48, 242, 243, 244, 245, 246, 247, 248, 249, 1257 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1258 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, 1259 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1260 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, 1261 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1262 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, 1263 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1264 241, 0, 242, 243, 244, 245, 246, 247, 248, 249, 1265 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 1266 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1267 253, 254, 255, 256, 257, 258, 259, 0, 415, 241, 1268 416, 242, 243, 244, 245, 246, 247, 248, 249, 250, 1269 251, 252, 253, 254, 255, 256, 257, 258, 259, 241, 1270 334, 242, 243, 244, 245, 246, 247, 248, 249, 250, 1271 251, 252, 253, 254, 255, 256, 257, 258, 259, 241, 1272 417, 242, 243, 244, 245, 246, 247, 248, 249, 250, 1273 251, 252, 253, 254, 255, 256, 257, 258, 259, 241, 1274 420, 242, 243, 244, 245, 246, 247, 248, 249, 250, 1275 251, 252, 253, 254, 255, 256, 257, 258, 259, 241, 1276 423, 242, 243, 244, 245, 246, 247, 248, 249, 250, 1277 251, 252, 253, 254, 255, 256, 257, 258, 259, 241, 1278 0, 242, 243, 244, 245, 246, 247, 248, 249, 250, 1279 251, 252, 253, 254, 255, 256, 257, 258, 259, 431, 1280 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 1281 254, 255, 256, 257, 258, 259, 0, 0, 241, 505, 1282 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1283 252, 253, 254, 255, 256, 257, 258, 259, 241, 506, 1284 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1285 252, 253, 254, 255, 256, 257, 258, 259, 241, 507, 1286 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1287 252, 253, 254, 255, 256, 257, 258, 259, 241, 508, 1288 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1289 252, 253, 254, 255, 256, 257, 258, 259, 241, 509, 1290 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1291 252, 253, 254, 255, 256, 257, 258, 259, 241, 0, 1292 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1293 252, 253, 254, 255, 256, 257, 258, 259, 510, 245, 1294 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1295 256, 257, 258, 259, 0, 0, 0, 241, 534, 242, 1296 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1297 253, 254, 255, 256, 257, 258, 259, 241, 552, 242, 1298 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1299 253, 254, 255, 256, 257, 258, 259, 241, 558, 242, 1300 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1301 253, 254, 255, 256, 257, 258, 259, 241, 559, 242, 1302 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1303 253, 254, 255, 256, 257, 258, 259, 241, 563, 242, 1304 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1305 253, 254, 255, 256, 257, 258, 259, 241, 0, 242, 1306 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1307 253, 254, 255, 256, 257, 258, 259, 573, 246, 247, 1308 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 1309 258, 259, 0, 0, 0, 0, 0, 576, 0, 0, 1310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1311 0, 0, 0, 0, 241, 260, 242, 243, 244, 245, 1312 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1313 256, 257, 258, 259, 241, 412, 242, 243, 244, 245, 1314 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1315 256, 257, 258, 259, 241, 418, 242, 243, 244, 245, 1316 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 1317 256, 257, 258, 259, 0, 419, 241, 61, 242, 243, 1318 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 1319 254, 255, 256, 257, 258, 259, 0, 0, 483, 61, 1320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1321 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1323 0, 414, 427, 62, 63, 0, 0, 0, 0, 0, 1324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1325 0, 0, 428, 0, 0, 0, 63, 0, 0, 0, 1326 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 1327 0, 0, 432, 65, 66, 67, 68, 69, -42, 70, 1328 71, 72, 0, 73, 74, 75, 76, 77, 0, 64, 1329 0, 0, 78, 79, 80, 65, 66, 67, 68, 69, 1330 0, 70, 71, 72, 0, 73, 74, 75, 76, 77, 1331 0, 0, 0, 0, 78, 79, 80, 241, 433, 242, 1332 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1333 253, 254, 255, 256, 257, 258, 259, 241, 488, 242, 1334 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1335 253, 254, 255, 256, 257, 258, 259, 241, 0, 242, 1336 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 1337 253, 254, 255, 256, 257, 258, 259 1338}; 1339 1340static const short int yycheck[] = 1341{ 1342 92, 199, 200, 65, 20, 185, 63, 177, 178, 101, 1343 4, 207, 4, 75, 4, 6, 4, 5, 4, 441, 1344 82, 4, 4, 4, 577, 302, 201, 4, 4, 5, 1345 4, 5, 53, 3, 4, 4, 4, 596, 15, 4, 1346 524, 53, 54, 133, 53, 135, 15, 6, 6, 602, 1347 4, 0, 4, 110, 111, 32, 113, 114, 16, 618, 1348 30, 31, 119, 32, 54, 6, 4, 37, 38, 39, 1349 40, 133, 134, 4, 122, 559, 122, 15, 48, 49, 1350 50, 640, 4, 5, 684, 55, 134, 4, 134, 53, 1351 60, 644, 154, 155, 32, 157, 696, 53, 15, 69, 1352 54, 4, 54, 165, 74, 75, 76, 77, 78, 79, 1353 122, 99, 534, 122, 95, 32, 86, 675, 88, 4, 1354 5, 183, 399, 99, 37, 99, 39, 685, 133, 37, 1355 4, 5, 137, 103, 51, 52, 4, 5, 313, 109, 1356 37, 135, 133, 133, 138, 133, 138, 135, 4, 211, 1357 133, 133, 214, 215, 576, 217, 218, 133, 135, 135, 1358 222, 223, 224, 225, 226, 133, 135, 229, 138, 139, 1359 135, 233, 234, 53, 133, 237, 238, 99, 37, 241, 1360 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 1361 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 1362 262, 37, 133, 4, 135, 37, 268, 269, 404, 133, 1363 134, 3, 4, 383, 99, 132, 37, 120, 37, 136, 1364 123, 124, 125, 4, 37, 99, 116, 117, 118, 3, 1365 4, 99, 324, 325, 15, 37, 4, 127, 30, 31, 1366 30, 31, 32, 33, 34, 37, 38, 39, 133, 37, 1367 135, 32, 133, 310, 135, 312, 48, 49, 50, 133, 1368 37, 135, 458, 55, 133, 133, 135, 135, 60, 4, 1369 51, 52, 64, 65, 66, 67, 68, 69, 4, 32, 1370 33, 34, 74, 75, 76, 77, 78, 79, 129, 130, 1371 131, 133, 37, 135, 86, 37, 88, 4, 37, 37, 1372 126, 4, 500, 473, 474, 4, 4, 503, 15, 4, 1373 4, 103, 328, 4, 4, 4, 3, 109, 4, 120, 1374 4, 4, 123, 124, 125, 32, 105, 4, 390, 391, 1375 392, 393, 4, 54, 3, 4, 16, 6, 15, 134, 1376 16, 4, 4, 135, 51, 52, 138, 139, 4, 4, 1377 4, 132, 4, 415, 4, 32, 418, 419, 37, 421, 1378 540, 30, 31, 4, 37, 427, 428, 4, 37, 38, 1379 39, 433, 53, 4, 51, 52, 37, 37, 15, 48, 1380 49, 50, 133, 133, 37, 120, 55, 133, 123, 124, 1381 125, 60, 37, 4, 120, 32, 133, 123, 124, 125, 1382 69, 37, 37, 37, 37, 74, 75, 76, 77, 78, 1383 79, 37, 37, 37, 51, 52, 93, 86, 37, 88, 1384 482, 37, 37, 54, 37, 132, 64, 65, 66, 67, 1385 68, 37, 37, 53, 103, 135, 528, 68, 134, 37, 1386 109, 6, 73, 54, 54, 6, 4, 135, 3, 4, 1387 135, 6, 4, 135, 4, 132, 518, 68, 4, 4, 1388 91, 523, 73, 525, 133, 135, 97, 98, 560, 138, 1389 139, 135, 4, 4, 536, 30, 31, 135, 109, 4, 1390 91, 4, 37, 38, 39, 4, 97, 98, 135, 4, 1391 4, 134, 554, 48, 49, 50, 4, 135, 109, 561, 1392 55, 699, 134, 701, 4, 60, 133, 705, 37, 37, 1393 53, 16, 135, 135, 69, 3, 4, 135, 135, 74, 1394 75, 76, 77, 78, 79, 37, 135, 135, 16, 621, 1395 133, 86, 4, 88, 135, 135, 609, 610, 4, 134, 1396 613, 16, 30, 31, 37, 16, 95, 85, 103, 37, 1397 38, 39, 4, 4, 109, 135, 86, 135, 54, 135, 1398 48, 49, 50, 16, 637, 638, 53, 55, 37, 135, 1399 38, 6, 60, 37, 647, 648, 37, 650, 133, 652, 1400 653, 69, 133, 138, 139, 658, 74, 75, 76, 77, 1401 78, 79, 3, 4, 134, 37, 88, 670, 86, 96, 1402 88, 28, 29, 30, 31, 32, 33, 34, 681, 54, 1403 134, 37, 6, 37, 16, 103, 53, 53, 37, 30, 1404 31, 109, 37, 16, 37, 37, 37, 38, 39, 37, 1405 37, 37, 4, 54, 37, 53, 37, 48, 49, 50, 1406 25, 37, 37, 15, 55, 135, 37, 37, 37, 60, 1407 138, 139, 135, 135, 135, 135, 4, 95, 69, 135, 1408 32, 135, 54, 74, 75, 76, 77, 78, 79, 41, 1409 42, 43, 44, 45, 25, 86, 135, 88, 135, 51, 1410 52, 6, 7, 8, 9, 10, 11, 12, 13, 14, 1411 4, 135, 103, 4, 135, 135, 135, 522, 109, 216, 1412 4, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1413 33, 34, 37, 135, 123, 87, 189, 89, 135, 135, 1414 650, 93, 618, 635, 602, 97, 98, 138, 139, 22, 1415 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1416 33, 34, 46, 47, 644, 687, 662, 605, 453, 490, 1417 521, 642, 56, 57, 58, 59, 128, 61, 62, 213, 1418 132, 90, 134, 392, 136, 514, 70, 71, 72, 73, 1419 -1, 4, -1, -1, -1, -1, 80, 81, 82, 83, 1420 84, 85, -1, -1, -1, -1, 90, 91, 92, -1, 1421 -1, -1, -1, 97, 98, -1, -1, -1, -1, -1, 1422 -1, -1, -1, 36, -1, 109, -1, -1, -1, -1, 1423 -1, -1, -1, 46, 47, -1, 120, -1, -1, -1, 1424 -1, -1, 126, 56, 57, 58, 59, -1, 61, 62, 1425 134, -1, -1, -1, -1, -1, -1, 70, 71, 72, 1426 73, -1, -1, -1, -1, -1, -1, 80, 81, 82, 1427 83, 84, 85, -1, -1, -1, -1, 90, 91, 92, 1428 -1, -1, -1, -1, 97, 98, 6, 7, 8, 9, 1429 10, 11, 12, 13, 14, -1, 109, -1, -1, -1, 1430 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1, 1431 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1432 15, 134, 17, 18, 19, 20, 21, 22, 23, 24, 1433 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1434 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 1435 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1436 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 1437 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1438 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 1439 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1440 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 1441 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1442 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1443 28, 29, 30, 31, 32, 33, 34, -1, 133, 15, 1444 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1445 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, 1446 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1447 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, 1448 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1449 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, 1450 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1451 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, 1452 135, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1453 26, 27, 28, 29, 30, 31, 32, 33, 34, 15, 1454 -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1455 26, 27, 28, 29, 30, 31, 32, 33, 34, 135, 1456 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1457 29, 30, 31, 32, 33, 34, -1, -1, 15, 135, 1458 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1459 27, 28, 29, 30, 31, 32, 33, 34, 15, 135, 1460 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1461 27, 28, 29, 30, 31, 32, 33, 34, 15, 135, 1462 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1463 27, 28, 29, 30, 31, 32, 33, 34, 15, 135, 1464 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1465 27, 28, 29, 30, 31, 32, 33, 34, 15, 135, 1466 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1467 27, 28, 29, 30, 31, 32, 33, 34, 15, -1, 1468 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1469 27, 28, 29, 30, 31, 32, 33, 34, 135, 20, 1470 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1471 31, 32, 33, 34, -1, -1, -1, 15, 135, 17, 1472 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1473 28, 29, 30, 31, 32, 33, 34, 15, 135, 17, 1474 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1475 28, 29, 30, 31, 32, 33, 34, 15, 135, 17, 1476 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1477 28, 29, 30, 31, 32, 33, 34, 15, 135, 17, 1478 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1479 28, 29, 30, 31, 32, 33, 34, 15, 135, 17, 1480 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1481 28, 29, 30, 31, 32, 33, 34, 15, -1, 17, 1482 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1483 28, 29, 30, 31, 32, 33, 34, 135, 21, 22, 1484 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1485 33, 34, -1, -1, -1, -1, -1, 135, -1, -1, 1486 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1487 -1, -1, -1, -1, 15, 133, 17, 18, 19, 20, 1488 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1489 31, 32, 33, 34, 15, 133, 17, 18, 19, 20, 1490 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1491 31, 32, 33, 34, 15, 133, 17, 18, 19, 20, 1492 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1493 31, 32, 33, 34, -1, 133, 15, 4, 17, 18, 1494 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1495 29, 30, 31, 32, 33, 34, -1, -1, 37, 4, 1496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1497 -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, 1498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1499 -1, 36, 133, 38, 61, -1, -1, -1, -1, -1, 1500 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1501 -1, -1, 133, -1, -1, -1, 61, -1, -1, -1, 1502 -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, 1503 -1, -1, 133, 100, 101, 102, 103, 104, 105, 106, 1504 107, 108, -1, 110, 111, 112, 113, 114, -1, 94, 1505 -1, -1, 119, 120, 121, 100, 101, 102, 103, 104, 1506 -1, 106, 107, 108, -1, 110, 111, 112, 113, 114, 1507 -1, -1, -1, -1, 119, 120, 121, 15, 16, 17, 1508 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1509 28, 29, 30, 31, 32, 33, 34, 15, 16, 17, 1510 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1511 28, 29, 30, 31, 32, 33, 34, 15, -1, 17, 1512 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1513 28, 29, 30, 31, 32, 33, 34 1514}; 1515 1516/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 1517 symbol of state STATE-NUM. */ 1518static const unsigned char yystos[] = 1519{ 1520 0, 116, 117, 118, 127, 141, 155, 156, 145, 146, 1521 143, 144, 242, 243, 0, 157, 147, 4, 53, 122, 1522 246, 247, 4, 46, 47, 56, 57, 58, 59, 61, 1523 62, 70, 71, 72, 73, 80, 81, 82, 83, 84, 1524 85, 90, 91, 92, 97, 98, 109, 120, 134, 158, 1525 165, 167, 184, 186, 195, 196, 198, 200, 234, 244, 1526 245, 4, 38, 61, 94, 100, 101, 102, 103, 104, 1527 106, 107, 108, 110, 111, 112, 113, 114, 119, 120, 1528 121, 148, 6, 4, 120, 123, 124, 125, 249, 250, 1529 53, 247, 6, 7, 8, 9, 10, 11, 12, 13, 1530 14, 182, 53, 53, 37, 37, 4, 142, 53, 37, 1531 37, 37, 37, 37, 37, 37, 37, 37, 159, 37, 1532 37, 37, 168, 37, 133, 134, 183, 126, 4, 142, 1533 4, 3, 4, 30, 31, 37, 38, 39, 48, 49, 1534 50, 55, 60, 69, 74, 75, 76, 77, 78, 79, 1535 86, 88, 103, 109, 138, 139, 204, 4, 4, 152, 1536 4, 151, 150, 4, 4, 4, 204, 4, 3, 4, 1537 153, 4, 154, 4, 105, 204, 4, 16, 16, 54, 1538 134, 249, 202, 203, 202, 166, 235, 4, 4, 160, 1539 4, 188, 4, 142, 142, 4, 142, 135, 142, 197, 1540 199, 4, 201, 4, 5, 99, 161, 37, 142, 4, 1541 4, 37, 154, 53, 6, 133, 149, 6, 133, 204, 1542 204, 204, 37, 37, 37, 37, 37, 37, 37, 37, 1543 37, 37, 37, 37, 37, 37, 37, 37, 37, 204, 1544 204, 15, 17, 18, 19, 20, 21, 22, 23, 24, 1545 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 1546 133, 6, 133, 204, 133, 133, 4, 133, 6, 133, 1547 204, 133, 133, 4, 133, 53, 124, 125, 250, 250, 1548 134, 4, 120, 123, 124, 125, 54, 204, 4, 54, 1549 68, 91, 167, 210, 4, 54, 236, 133, 135, 135, 1550 157, 189, 187, 135, 135, 135, 135, 135, 133, 135, 1551 185, 135, 185, 133, 201, 135, 37, 4, 5, 99, 1552 133, 135, 161, 135, 6, 6, 204, 135, 246, 204, 1553 204, 147, 204, 204, 135, 204, 204, 204, 204, 204, 1554 4, 4, 204, 4, 4, 4, 204, 204, 4, 4, 1555 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1556 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 1557 204, 204, 204, 204, 4, 4, 4, 204, 204, 3, 1558 4, 4, 4, 252, 134, 134, 4, 122, 134, 248, 1559 211, 216, 221, 237, 4, 36, 37, 192, 54, 133, 1560 188, 142, 142, 201, 162, 37, 4, 5, 99, 135, 1561 202, 202, 133, 54, 36, 133, 135, 135, 133, 133, 1562 135, 133, 135, 135, 135, 135, 135, 133, 133, 135, 1563 135, 135, 133, 16, 250, 125, 53, 122, 134, 37, 1564 40, 204, 224, 225, 16, 204, 226, 225, 204, 239, 1565 133, 4, 138, 193, 194, 16, 188, 161, 164, 37, 1566 135, 135, 4, 204, 204, 204, 204, 204, 204, 4, 1567 204, 134, 253, 16, 251, 64, 65, 66, 67, 68, 1568 135, 223, 37, 37, 224, 16, 95, 206, 16, 85, 1569 227, 222, 4, 95, 240, 4, 4, 135, 194, 86, 1570 190, 135, 161, 163, 135, 135, 135, 135, 135, 135, 1571 135, 135, 54, 250, 250, 135, 204, 16, 37, 38, 1572 207, 206, 53, 37, 241, 37, 238, 135, 6, 185, 1573 135, 161, 134, 253, 135, 204, 37, 96, 208, 208, 1574 166, 204, 240, 204, 134, 202, 88, 191, 135, 54, 1575 39, 224, 135, 204, 37, 212, 217, 54, 135, 135, 1576 6, 37, 16, 135, 204, 129, 130, 131, 209, 53, 1577 240, 202, 204, 135, 53, 218, 135, 213, 230, 224, 1578 4, 15, 32, 41, 42, 43, 44, 45, 51, 52, 1579 87, 89, 93, 128, 132, 134, 136, 169, 170, 173, 1580 174, 176, 177, 178, 179, 184, 4, 54, 16, 37, 1581 37, 37, 37, 37, 4, 51, 170, 172, 37, 176, 1582 54, 37, 183, 231, 219, 51, 52, 93, 132, 169, 1583 51, 52, 169, 180, 202, 175, 169, 171, 37, 137, 1584 185, 172, 214, 202, 53, 25, 228, 37, 37, 135, 1585 37, 135, 37, 37, 135, 135, 4, 173, 135, 169, 1586 170, 135, 228, 135, 178, 4, 95, 205, 169, 169, 1587 171, 169, 169, 135, 169, 205, 54, 25, 229, 135, 1588 135, 135, 135, 135, 229, 232, 4, 6, 16, 181, 1589 135, 135, 169, 135, 135, 181, 229, 180, 4, 220, 1590 135, 215, 181, 185, 185, 233, 185 1591}; 1592 1593#define yyerrok (yyerrstatus = 0) 1594#define yyclearin (yychar = YYEMPTY) 1595#define YYEMPTY (-2) 1596#define YYEOF 0 1597 1598#define YYACCEPT goto yyacceptlab 1599#define YYABORT goto yyabortlab 1600#define YYERROR goto yyerrorlab 1601 1602 1603/* Like YYERROR except do call yyerror. This remains here temporarily 1604 to ease the transition to the new meaning of YYERROR, for GCC. 1605 Once GCC version 2 has supplanted version 1, this can go. */ 1606 1607#define YYFAIL goto yyerrlab 1608 1609#define YYRECOVERING() (!!yyerrstatus) 1610 1611#define YYBACKUP(Token, Value) \ 1612do \ 1613 if (yychar == YYEMPTY && yylen == 1) \ 1614 { \ 1615 yychar = (Token); \ 1616 yylval = (Value); \ 1617 yytoken = YYTRANSLATE (yychar); \ 1618 YYPOPSTACK; \ 1619 goto yybackup; \ 1620 } \ 1621 else \ 1622 { \ 1623 yyerror (YY_("syntax error: cannot back up")); \ 1624 YYERROR; \ 1625 } \ 1626while (0) 1627 1628 1629#define YYTERROR 1 1630#define YYERRCODE 256 1631 1632 1633/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 1634 If N is 0, then set CURRENT to the empty location which ends 1635 the previous symbol: RHS[0] (always defined). */ 1636 1637#define YYRHSLOC(Rhs, K) ((Rhs)[K]) 1638#ifndef YYLLOC_DEFAULT 1639# define YYLLOC_DEFAULT(Current, Rhs, N) \ 1640 do \ 1641 if (N) \ 1642 { \ 1643 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ 1644 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ 1645 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ 1646 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ 1647 } \ 1648 else \ 1649 { \ 1650 (Current).first_line = (Current).last_line = \ 1651 YYRHSLOC (Rhs, 0).last_line; \ 1652 (Current).first_column = (Current).last_column = \ 1653 YYRHSLOC (Rhs, 0).last_column; \ 1654 } \ 1655 while (0) 1656#endif 1657 1658 1659/* YY_LOCATION_PRINT -- Print the location on the stream. 1660 This macro was not mandated originally: define only if we know 1661 we won't break user code: when these are the locations we know. */ 1662 1663#ifndef YY_LOCATION_PRINT 1664# if YYLTYPE_IS_TRIVIAL 1665# define YY_LOCATION_PRINT(File, Loc) \ 1666 fprintf (File, "%d.%d-%d.%d", \ 1667 (Loc).first_line, (Loc).first_column, \ 1668 (Loc).last_line, (Loc).last_column) 1669# else 1670# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1671# endif 1672#endif 1673 1674 1675/* YYLEX -- calling `yylex' with the right arguments. */ 1676 1677#ifdef YYLEX_PARAM 1678# define YYLEX yylex (YYLEX_PARAM) 1679#else 1680# define YYLEX yylex () 1681#endif 1682 1683/* Enable debugging if requested. */ 1684#if YYDEBUG 1685 1686# ifndef YYFPRINTF 1687# include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 1688# define YYFPRINTF fprintf 1689# endif 1690 1691# define YYDPRINTF(Args) \ 1692do { \ 1693 if (yydebug) \ 1694 YYFPRINTF Args; \ 1695} while (0) 1696 1697# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1698do { \ 1699 if (yydebug) \ 1700 { \ 1701 YYFPRINTF (stderr, "%s ", Title); \ 1702 yysymprint (stderr, \ 1703 Type, Value); \ 1704 YYFPRINTF (stderr, "\n"); \ 1705 } \ 1706} while (0) 1707 1708/*------------------------------------------------------------------. 1709| yy_stack_print -- Print the state stack from its BOTTOM up to its | 1710| TOP (included). | 1711`------------------------------------------------------------------*/ 1712 1713#if defined (__STDC__) || defined (__cplusplus) 1714static void 1715yy_stack_print (short int *bottom, short int *top) 1716#else 1717static void 1718yy_stack_print (bottom, top) 1719 short int *bottom; 1720 short int *top; 1721#endif 1722{ 1723 YYFPRINTF (stderr, "Stack now"); 1724 for (/* Nothing. */; bottom <= top; ++bottom) 1725 YYFPRINTF (stderr, " %d", *bottom); 1726 YYFPRINTF (stderr, "\n"); 1727} 1728 1729# define YY_STACK_PRINT(Bottom, Top) \ 1730do { \ 1731 if (yydebug) \ 1732 yy_stack_print ((Bottom), (Top)); \ 1733} while (0) 1734 1735 1736/*------------------------------------------------. 1737| Report that the YYRULE is going to be reduced. | 1738`------------------------------------------------*/ 1739 1740#if defined (__STDC__) || defined (__cplusplus) 1741static void 1742yy_reduce_print (int yyrule) 1743#else 1744static void 1745yy_reduce_print (yyrule) 1746 int yyrule; 1747#endif 1748{ 1749 int yyi; 1750 unsigned long int yylno = yyrline[yyrule]; 1751 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ", 1752 yyrule - 1, yylno); 1753 /* Print the symbols being reduced, and their result. */ 1754 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) 1755 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); 1756 YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]); 1757} 1758 1759# define YY_REDUCE_PRINT(Rule) \ 1760do { \ 1761 if (yydebug) \ 1762 yy_reduce_print (Rule); \ 1763} while (0) 1764 1765/* Nonzero means print parse trace. It is left uninitialized so that 1766 multiple parsers can coexist. */ 1767int yydebug; 1768#else /* !YYDEBUG */ 1769# define YYDPRINTF(Args) 1770# define YY_SYMBOL_PRINT(Title, Type, Value, Location) 1771# define YY_STACK_PRINT(Bottom, Top) 1772# define YY_REDUCE_PRINT(Rule) 1773#endif /* !YYDEBUG */ 1774 1775 1776/* YYINITDEPTH -- initial size of the parser's stacks. */ 1777#ifndef YYINITDEPTH 1778# define YYINITDEPTH 200 1779#endif 1780 1781/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 1782 if the built-in stack extension method is used). 1783 1784 Do not make this value too large; the results are undefined if 1785 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 1786 evaluated with infinite-precision integer arithmetic. */ 1787 1788#ifndef YYMAXDEPTH 1789# define YYMAXDEPTH 10000 1790#endif 1791 1792 1793 1794#if YYERROR_VERBOSE 1795 1796# ifndef yystrlen 1797# if defined (__GLIBC__) && defined (_STRING_H) 1798# define yystrlen strlen 1799# else 1800/* Return the length of YYSTR. */ 1801static YYSIZE_T 1802# if defined (__STDC__) || defined (__cplusplus) 1803yystrlen (const char *yystr) 1804# else 1805yystrlen (yystr) 1806 const char *yystr; 1807# endif 1808{ 1809 const char *yys = yystr; 1810 1811 while (*yys++ != '\0') 1812 continue; 1813 1814 return yys - yystr - 1; 1815} 1816# endif 1817# endif 1818 1819# ifndef yystpcpy 1820# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) 1821# define yystpcpy stpcpy 1822# else 1823/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 1824 YYDEST. */ 1825static char * 1826# if defined (__STDC__) || defined (__cplusplus) 1827yystpcpy (char *yydest, const char *yysrc) 1828# else 1829yystpcpy (yydest, yysrc) 1830 char *yydest; 1831 const char *yysrc; 1832# endif 1833{ 1834 char *yyd = yydest; 1835 const char *yys = yysrc; 1836 1837 while ((*yyd++ = *yys++) != '\0') 1838 continue; 1839 1840 return yyd - 1; 1841} 1842# endif 1843# endif 1844 1845# ifndef yytnamerr 1846/* Copy to YYRES the contents of YYSTR after stripping away unnecessary 1847 quotes and backslashes, so that it's suitable for yyerror. The 1848 heuristic is that double-quoting is unnecessary unless the string 1849 contains an apostrophe, a comma, or backslash (other than 1850 backslash-backslash). YYSTR is taken from yytname. If YYRES is 1851 null, do not copy; instead, return the length of what the result 1852 would have been. */ 1853static YYSIZE_T 1854yytnamerr (char *yyres, const char *yystr) 1855{ 1856 if (*yystr == '"') 1857 { 1858 size_t yyn = 0; 1859 char const *yyp = yystr; 1860 1861 for (;;) 1862 switch (*++yyp) 1863 { 1864 case '\'': 1865 case ',': 1866 goto do_not_strip_quotes; 1867 1868 case '\\': 1869 if (*++yyp != '\\') 1870 goto do_not_strip_quotes; 1871 /* Fall through. */ 1872 default: 1873 if (yyres) 1874 yyres[yyn] = *yyp; 1875 yyn++; 1876 break; 1877 1878 case '"': 1879 if (yyres) 1880 yyres[yyn] = '\0'; 1881 return yyn; 1882 } 1883 do_not_strip_quotes: ; 1884 } 1885 1886 if (! yyres) 1887 return yystrlen (yystr); 1888 1889 return yystpcpy (yyres, yystr) - yyres; 1890} 1891# endif 1892 1893#endif /* YYERROR_VERBOSE */ 1894 1895 1896 1897#if YYDEBUG 1898/*--------------------------------. 1899| Print this symbol on YYOUTPUT. | 1900`--------------------------------*/ 1901 1902#if defined (__STDC__) || defined (__cplusplus) 1903static void 1904yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) 1905#else 1906static void 1907yysymprint (yyoutput, yytype, yyvaluep) 1908 FILE *yyoutput; 1909 int yytype; 1910 YYSTYPE *yyvaluep; 1911#endif 1912{ 1913 /* Pacify ``unused variable'' warnings. */ 1914 (void) yyvaluep; 1915 1916 if (yytype < YYNTOKENS) 1917 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 1918 else 1919 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 1920 1921 1922# ifdef YYPRINT 1923 if (yytype < YYNTOKENS) 1924 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 1925# endif 1926 switch (yytype) 1927 { 1928 default: 1929 break; 1930 } 1931 YYFPRINTF (yyoutput, ")"); 1932} 1933 1934#endif /* ! YYDEBUG */ 1935/*-----------------------------------------------. 1936| Release the memory associated to this symbol. | 1937`-----------------------------------------------*/ 1938 1939#if defined (__STDC__) || defined (__cplusplus) 1940static void 1941yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 1942#else 1943static void 1944yydestruct (yymsg, yytype, yyvaluep) 1945 const char *yymsg; 1946 int yytype; 1947 YYSTYPE *yyvaluep; 1948#endif 1949{ 1950 /* Pacify ``unused variable'' warnings. */ 1951 (void) yyvaluep; 1952 1953 if (!yymsg) 1954 yymsg = "Deleting"; 1955 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1956 1957 switch (yytype) 1958 { 1959 1960 default: 1961 break; 1962 } 1963} 1964 1965 1966/* Prevent warnings from -Wmissing-prototypes. */ 1967 1968#ifdef YYPARSE_PARAM 1969# if defined (__STDC__) || defined (__cplusplus) 1970int yyparse (void *YYPARSE_PARAM); 1971# else 1972int yyparse (); 1973# endif 1974#else /* ! YYPARSE_PARAM */ 1975#if defined (__STDC__) || defined (__cplusplus) 1976int yyparse (void); 1977#else 1978int yyparse (); 1979#endif 1980#endif /* ! YYPARSE_PARAM */ 1981 1982 1983 1984/* The look-ahead symbol. */ 1985int yychar; 1986 1987/* The semantic value of the look-ahead symbol. */ 1988YYSTYPE yylval; 1989 1990/* Number of syntax errors so far. */ 1991int yynerrs; 1992 1993 1994 1995/*----------. 1996| yyparse. | 1997`----------*/ 1998 1999#ifdef YYPARSE_PARAM 2000# if defined (__STDC__) || defined (__cplusplus) 2001int yyparse (void *YYPARSE_PARAM) 2002# else 2003int yyparse (YYPARSE_PARAM) 2004 void *YYPARSE_PARAM; 2005# endif 2006#else /* ! YYPARSE_PARAM */ 2007#if defined (__STDC__) || defined (__cplusplus) 2008int 2009yyparse (void) 2010#else 2011int 2012yyparse () 2013 ; 2014#endif 2015#endif 2016{ 2017 2018 int yystate; 2019 int yyn; 2020 int yyresult; 2021 /* Number of tokens to shift before error messages enabled. */ 2022 int yyerrstatus; 2023 /* Look-ahead token as an internal (translated) token number. */ 2024 int yytoken = 0; 2025 2026 /* Three stacks and their tools: 2027 `yyss': related to states, 2028 `yyvs': related to semantic values, 2029 `yyls': related to locations. 2030 2031 Refer to the stacks thru separate pointers, to allow yyoverflow 2032 to reallocate them elsewhere. */ 2033 2034 /* The state stack. */ 2035 short int yyssa[YYINITDEPTH]; 2036 short int *yyss = yyssa; 2037 short int *yyssp; 2038 2039 /* The semantic value stack. */ 2040 YYSTYPE yyvsa[YYINITDEPTH]; 2041 YYSTYPE *yyvs = yyvsa; 2042 YYSTYPE *yyvsp; 2043 2044 2045 2046#define YYPOPSTACK (yyvsp--, yyssp--) 2047 2048 YYSIZE_T yystacksize = YYINITDEPTH; 2049 2050 /* The variables used to return semantic value and location from the 2051 action routines. */ 2052 YYSTYPE yyval; 2053 2054 2055 /* When reducing, the number of symbols on the RHS of the reduced 2056 rule. */ 2057 int yylen; 2058 2059 YYDPRINTF ((stderr, "Starting parse\n")); 2060 2061 yystate = 0; 2062 yyerrstatus = 0; 2063 yynerrs = 0; 2064 yychar = YYEMPTY; /* Cause a token to be read. */ 2065 2066 /* Initialize stack pointers. 2067 Waste one element of value and location stack 2068 so that they stay on the same level as the state stack. 2069 The wasted elements are never initialized. */ 2070 2071 yyssp = yyss; 2072 yyvsp = yyvs; 2073 2074 goto yysetstate; 2075 2076/*------------------------------------------------------------. 2077| yynewstate -- Push a new state, which is found in yystate. | 2078`------------------------------------------------------------*/ 2079 yynewstate: 2080 /* In all cases, when you get here, the value and location stacks 2081 have just been pushed. so pushing a state here evens the stacks. 2082 */ 2083 yyssp++; 2084 2085 yysetstate: 2086 *yyssp = yystate; 2087 2088 if (yyss + yystacksize - 1 <= yyssp) 2089 { 2090 /* Get the current used size of the three stacks, in elements. */ 2091 YYSIZE_T yysize = yyssp - yyss + 1; 2092 2093#ifdef yyoverflow 2094 { 2095 /* Give user a chance to reallocate the stack. Use copies of 2096 these so that the &'s don't force the real ones into 2097 memory. */ 2098 YYSTYPE *yyvs1 = yyvs; 2099 short int *yyss1 = yyss; 2100 2101 2102 /* Each stack pointer address is followed by the size of the 2103 data in use in that stack, in bytes. This used to be a 2104 conditional around just the two extra args, but that might 2105 be undefined if yyoverflow is a macro. */ 2106 yyoverflow (YY_("memory exhausted"), 2107 &yyss1, yysize * sizeof (*yyssp), 2108 &yyvs1, yysize * sizeof (*yyvsp), 2109 2110 &yystacksize); 2111 2112 yyss = yyss1; 2113 yyvs = yyvs1; 2114 } 2115#else /* no yyoverflow */ 2116# ifndef YYSTACK_RELOCATE 2117 goto yyexhaustedlab; 2118# else 2119 /* Extend the stack our own way. */ 2120 if (YYMAXDEPTH <= yystacksize) 2121 goto yyexhaustedlab; 2122 yystacksize *= 2; 2123 if (YYMAXDEPTH < yystacksize) 2124 yystacksize = YYMAXDEPTH; 2125 2126 { 2127 short int *yyss1 = yyss; 2128 union yyalloc *yyptr = 2129 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 2130 if (! yyptr) 2131 goto yyexhaustedlab; 2132 YYSTACK_RELOCATE (yyss); 2133 YYSTACK_RELOCATE (yyvs); 2134 2135# undef YYSTACK_RELOCATE 2136 if (yyss1 != yyssa) 2137 YYSTACK_FREE (yyss1); 2138 } 2139# endif 2140#endif /* no yyoverflow */ 2141 2142 yyssp = yyss + yysize - 1; 2143 yyvsp = yyvs + yysize - 1; 2144 2145 2146 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 2147 (unsigned long int) yystacksize)); 2148 2149 if (yyss + yystacksize - 1 <= yyssp) 2150 YYABORT; 2151 } 2152 2153 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 2154 2155 goto yybackup; 2156 2157/*-----------. 2158| yybackup. | 2159`-----------*/ 2160yybackup: 2161 2162/* Do appropriate processing given the current state. */ 2163/* Read a look-ahead token if we need one and don't already have one. */ 2164/* yyresume: */ 2165 2166 /* First try to decide what to do without reference to look-ahead token. */ 2167 2168 yyn = yypact[yystate]; 2169 if (yyn == YYPACT_NINF) 2170 goto yydefault; 2171 2172 /* Not known => get a look-ahead token if don't already have one. */ 2173 2174 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ 2175 if (yychar == YYEMPTY) 2176 { 2177 YYDPRINTF ((stderr, "Reading a token: ")); 2178 yychar = YYLEX; 2179 } 2180 2181 if (yychar <= YYEOF) 2182 { 2183 yychar = yytoken = YYEOF; 2184 YYDPRINTF ((stderr, "Now at end of input.\n")); 2185 } 2186 else 2187 { 2188 yytoken = YYTRANSLATE (yychar); 2189 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 2190 } 2191 2192 /* If the proper action on seeing token YYTOKEN is to reduce or to 2193 detect an error, take that action. */ 2194 yyn += yytoken; 2195 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 2196 goto yydefault; 2197 yyn = yytable[yyn]; 2198 if (yyn <= 0) 2199 { 2200 if (yyn == 0 || yyn == YYTABLE_NINF) 2201 goto yyerrlab; 2202 yyn = -yyn; 2203 goto yyreduce; 2204 } 2205 2206 if (yyn == YYFINAL) 2207 YYACCEPT; 2208 2209 /* Shift the look-ahead token. */ 2210 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 2211 2212 /* Discard the token being shifted unless it is eof. */ 2213 if (yychar != YYEOF) 2214 yychar = YYEMPTY; 2215 2216 *++yyvsp = yylval; 2217 2218 2219 /* Count tokens shifted since error; after three, turn off error 2220 status. */ 2221 if (yyerrstatus) 2222 yyerrstatus--; 2223 2224 yystate = yyn; 2225 goto yynewstate; 2226 2227 2228/*-----------------------------------------------------------. 2229| yydefault -- do the default action for the current state. | 2230`-----------------------------------------------------------*/ 2231yydefault: 2232 yyn = yydefact[yystate]; 2233 if (yyn == 0) 2234 goto yyerrlab; 2235 goto yyreduce; 2236 2237 2238/*-----------------------------. 2239| yyreduce -- Do a reduction. | 2240`-----------------------------*/ 2241yyreduce: 2242 /* yyn is the number of a rule to reduce with. */ 2243 yylen = yyr2[yyn]; 2244 2245 /* If YYLEN is nonzero, implement the default value of the action: 2246 `$$ = $1'. 2247 2248 Otherwise, the following line sets YYVAL to garbage. 2249 This behavior is undocumented and Bison 2250 users should not rely upon it. Assigning to YYVAL 2251 unconditionally makes the parser a bit smaller, and it avoids a 2252 GCC warning that YYVAL may be used uninitialized. */ 2253 yyval = yyvsp[1-yylen]; 2254 2255 2256 YY_REDUCE_PRINT (yyn); 2257 switch (yyn) 2258 { 2259 case 7: 2260#line 173 "ldgram.y" 2261 { ldlex_defsym(); } 2262 break; 2263 2264 case 8: 2265#line 175 "ldgram.y" 2266 { 2267 ldlex_popstate(); 2268 lang_add_assignment(exp_assop((yyvsp[-1].token),(yyvsp[-2].name),(yyvsp[0].etree))); 2269 } 2270 break; 2271 2272 case 9: 2273#line 183 "ldgram.y" 2274 { 2275 ldlex_mri_script (); 2276 PUSH_ERROR (_("MRI style script")); 2277 } 2278 break; 2279 2280 case 10: 2281#line 188 "ldgram.y" 2282 { 2283 ldlex_popstate (); 2284 mri_draw_tree (); 2285 POP_ERROR (); 2286 } 2287 break; 2288 2289 case 15: 2290#line 203 "ldgram.y" 2291 { 2292 einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[0].name)); 2293 } 2294 break; 2295 2296 case 16: 2297#line 206 "ldgram.y" 2298 { 2299 config.map_filename = "-"; 2300 } 2301 break; 2302 2303 case 19: 2304#line 212 "ldgram.y" 2305 { mri_public((yyvsp[-2].name), (yyvsp[0].etree)); } 2306 break; 2307 2308 case 20: 2309#line 214 "ldgram.y" 2310 { mri_public((yyvsp[-2].name), (yyvsp[0].etree)); } 2311 break; 2312 2313 case 21: 2314#line 216 "ldgram.y" 2315 { mri_public((yyvsp[-1].name), (yyvsp[0].etree)); } 2316 break; 2317 2318 case 22: 2319#line 218 "ldgram.y" 2320 { mri_format((yyvsp[0].name)); } 2321 break; 2322 2323 case 23: 2324#line 220 "ldgram.y" 2325 { mri_output_section((yyvsp[-2].name), (yyvsp[0].etree));} 2326 break; 2327 2328 case 24: 2329#line 222 "ldgram.y" 2330 { mri_output_section((yyvsp[-1].name), (yyvsp[0].etree));} 2331 break; 2332 2333 case 25: 2334#line 224 "ldgram.y" 2335 { mri_output_section((yyvsp[-2].name), (yyvsp[0].etree));} 2336 break; 2337 2338 case 26: 2339#line 226 "ldgram.y" 2340 { mri_align((yyvsp[-2].name),(yyvsp[0].etree)); } 2341 break; 2342 2343 case 27: 2344#line 228 "ldgram.y" 2345 { mri_align((yyvsp[-2].name),(yyvsp[0].etree)); } 2346 break; 2347 2348 case 28: 2349#line 230 "ldgram.y" 2350 { mri_alignmod((yyvsp[-2].name),(yyvsp[0].etree)); } 2351 break; 2352 2353 case 29: 2354#line 232 "ldgram.y" 2355 { mri_alignmod((yyvsp[-2].name),(yyvsp[0].etree)); } 2356 break; 2357 2358 case 32: 2359#line 236 "ldgram.y" 2360 { mri_name((yyvsp[0].name)); } 2361 break; 2362 2363 case 33: 2364#line 238 "ldgram.y" 2365 { mri_alias((yyvsp[-2].name),(yyvsp[0].name),0);} 2366 break; 2367 2368 case 34: 2369#line 240 "ldgram.y" 2370 { mri_alias ((yyvsp[-2].name), 0, (int) (yyvsp[0].bigint).integer); } 2371 break; 2372 2373 case 35: 2374#line 242 "ldgram.y" 2375 { mri_base((yyvsp[0].etree)); } 2376 break; 2377 2378 case 36: 2379#line 244 "ldgram.y" 2380 { mri_truncate ((unsigned int) (yyvsp[0].bigint).integer); } 2381 break; 2382 2383 case 39: 2384#line 248 "ldgram.y" 2385 { ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); } 2386 break; 2387 2388 case 40: 2389#line 250 "ldgram.y" 2390 { ldlex_popstate (); } 2391 break; 2392 2393 case 41: 2394#line 252 "ldgram.y" 2395 { lang_add_entry ((yyvsp[0].name), FALSE); } 2396 break; 2397 2398 case 43: 2399#line 257 "ldgram.y" 2400 { mri_order((yyvsp[0].name)); } 2401 break; 2402 2403 case 44: 2404#line 258 "ldgram.y" 2405 { mri_order((yyvsp[0].name)); } 2406 break; 2407 2408 case 46: 2409#line 264 "ldgram.y" 2410 { mri_load((yyvsp[0].name)); } 2411 break; 2412 2413 case 47: 2414#line 265 "ldgram.y" 2415 { mri_load((yyvsp[0].name)); } 2416 break; 2417 2418 case 48: 2419#line 270 "ldgram.y" 2420 { mri_only_load((yyvsp[0].name)); } 2421 break; 2422 2423 case 49: 2424#line 272 "ldgram.y" 2425 { mri_only_load((yyvsp[0].name)); } 2426 break; 2427 2428 case 50: 2429#line 276 "ldgram.y" 2430 { (yyval.name) = NULL; } 2431 break; 2432 2433 case 53: 2434#line 283 "ldgram.y" 2435 { ldlang_add_undef ((yyvsp[0].name)); } 2436 break; 2437 2438 case 54: 2439#line 285 "ldgram.y" 2440 { ldlang_add_undef ((yyvsp[0].name)); } 2441 break; 2442 2443 case 55: 2444#line 287 "ldgram.y" 2445 { ldlang_add_undef ((yyvsp[0].name)); } 2446 break; 2447 2448 case 56: 2449#line 291 "ldgram.y" 2450 { 2451 ldlex_both(); 2452 } 2453 break; 2454 2455 case 57: 2456#line 295 "ldgram.y" 2457 { 2458 ldlex_popstate(); 2459 } 2460 break; 2461 2462 case 70: 2463#line 320 "ldgram.y" 2464 { lang_add_target((yyvsp[-1].name)); } 2465 break; 2466 2467 case 71: 2468#line 322 "ldgram.y" 2469 { ldfile_add_library_path ((yyvsp[-1].name), FALSE); } 2470 break; 2471 2472 case 72: 2473#line 324 "ldgram.y" 2474 { lang_add_output((yyvsp[-1].name), 1); } 2475 break; 2476 2477 case 73: 2478#line 326 "ldgram.y" 2479 { lang_add_output_format ((yyvsp[-1].name), (char *) NULL, 2480 (char *) NULL, 1); } 2481 break; 2482 2483 case 74: 2484#line 329 "ldgram.y" 2485 { lang_add_output_format ((yyvsp[-5].name), (yyvsp[-3].name), (yyvsp[-1].name), 1); } 2486 break; 2487 2488 case 75: 2489#line 331 "ldgram.y" 2490 { ldfile_set_output_arch ((yyvsp[-1].name), bfd_arch_unknown); } 2491 break; 2492 2493 case 76: 2494#line 333 "ldgram.y" 2495 { command_line.force_common_definition = TRUE ; } 2496 break; 2497 2498 case 77: 2499#line 335 "ldgram.y" 2500 { command_line.inhibit_common_definition = TRUE ; } 2501 break; 2502 2503 case 79: 2504#line 338 "ldgram.y" 2505 { lang_enter_group (); } 2506 break; 2507 2508 case 80: 2509#line 340 "ldgram.y" 2510 { lang_leave_group (); } 2511 break; 2512 2513 case 81: 2514#line 342 "ldgram.y" 2515 { lang_add_map((yyvsp[-1].name)); } 2516 break; 2517 2518 case 82: 2519#line 344 "ldgram.y" 2520 { ldlex_script (); ldfile_open_command_file((yyvsp[0].name)); } 2521 break; 2522 2523 case 83: 2524#line 346 "ldgram.y" 2525 { ldlex_popstate (); } 2526 break; 2527 2528 case 84: 2529#line 348 "ldgram.y" 2530 { 2531 lang_add_nocrossref ((yyvsp[-1].nocrossref)); 2532 } 2533 break; 2534 2535 case 86: 2536#line 356 "ldgram.y" 2537 { lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum, 2538 (char *)NULL); } 2539 break; 2540 2541 case 87: 2542#line 359 "ldgram.y" 2543 { lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum, 2544 (char *)NULL); } 2545 break; 2546 2547 case 88: 2548#line 362 "ldgram.y" 2549 { lang_add_input_file((yyvsp[0].name),lang_input_file_is_search_file_enum, 2550 (char *)NULL); } 2551 break; 2552 2553 case 89: 2554#line 365 "ldgram.y" 2555 { lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum, 2556 (char *)NULL); } 2557 break; 2558 2559 case 90: 2560#line 368 "ldgram.y" 2561 { lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum, 2562 (char *)NULL); } 2563 break; 2564 2565 case 91: 2566#line 371 "ldgram.y" 2567 { lang_add_input_file((yyvsp[0].name),lang_input_file_is_l_enum, 2568 (char *)NULL); } 2569 break; 2570 2571 case 92: 2572#line 374 "ldgram.y" 2573 { (yyval.integer) = as_needed; as_needed = TRUE; } 2574 break; 2575 2576 case 93: 2577#line 376 "ldgram.y" 2578 { as_needed = (yyvsp[-2].integer); } 2579 break; 2580 2581 case 94: 2582#line 378 "ldgram.y" 2583 { (yyval.integer) = as_needed; as_needed = TRUE; } 2584 break; 2585 2586 case 95: 2587#line 380 "ldgram.y" 2588 { as_needed = (yyvsp[-2].integer); } 2589 break; 2590 2591 case 96: 2592#line 382 "ldgram.y" 2593 { (yyval.integer) = as_needed; as_needed = TRUE; } 2594 break; 2595 2596 case 97: 2597#line 384 "ldgram.y" 2598 { as_needed = (yyvsp[-2].integer); } 2599 break; 2600 2601 case 102: 2602#line 399 "ldgram.y" 2603 { lang_add_entry ((yyvsp[-1].name), FALSE); } 2604 break; 2605 2606 case 104: 2607#line 401 "ldgram.y" 2608 {ldlex_expression ();} 2609 break; 2610 2611 case 105: 2612#line 402 "ldgram.y" 2613 { ldlex_popstate (); 2614 lang_add_assignment (exp_assert ((yyvsp[-3].etree), (yyvsp[-1].name))); } 2615 break; 2616 2617 case 106: 2618#line 410 "ldgram.y" 2619 { 2620 (yyval.cname) = (yyvsp[0].name); 2621 } 2622 break; 2623 2624 case 107: 2625#line 414 "ldgram.y" 2626 { 2627 (yyval.cname) = "*"; 2628 } 2629 break; 2630 2631 case 108: 2632#line 418 "ldgram.y" 2633 { 2634 (yyval.cname) = "?"; 2635 } 2636 break; 2637 2638 case 109: 2639#line 425 "ldgram.y" 2640 { 2641 (yyval.wildcard).name = (yyvsp[0].cname); 2642 (yyval.wildcard).sorted = none; 2643 (yyval.wildcard).exclude_name_list = NULL; 2644 } 2645 break; 2646 2647 case 110: 2648#line 431 "ldgram.y" 2649 { 2650 (yyval.wildcard).name = (yyvsp[0].cname); 2651 (yyval.wildcard).sorted = none; 2652 (yyval.wildcard).exclude_name_list = (yyvsp[-2].name_list); 2653 } 2654 break; 2655 2656 case 111: 2657#line 437 "ldgram.y" 2658 { 2659 (yyval.wildcard).name = (yyvsp[-1].cname); 2660 (yyval.wildcard).sorted = by_name; 2661 (yyval.wildcard).exclude_name_list = NULL; 2662 } 2663 break; 2664 2665 case 112: 2666#line 443 "ldgram.y" 2667 { 2668 (yyval.wildcard).name = (yyvsp[-1].cname); 2669 (yyval.wildcard).sorted = by_alignment; 2670 (yyval.wildcard).exclude_name_list = NULL; 2671 } 2672 break; 2673 2674 case 113: 2675#line 449 "ldgram.y" 2676 { 2677 (yyval.wildcard).name = (yyvsp[-2].cname); 2678 (yyval.wildcard).sorted = by_name_alignment; 2679 (yyval.wildcard).exclude_name_list = NULL; 2680 } 2681 break; 2682 2683 case 114: 2684#line 455 "ldgram.y" 2685 { 2686 (yyval.wildcard).name = (yyvsp[-2].cname); 2687 (yyval.wildcard).sorted = by_name; 2688 (yyval.wildcard).exclude_name_list = NULL; 2689 } 2690 break; 2691 2692 case 115: 2693#line 461 "ldgram.y" 2694 { 2695 (yyval.wildcard).name = (yyvsp[-2].cname); 2696 (yyval.wildcard).sorted = by_alignment_name; 2697 (yyval.wildcard).exclude_name_list = NULL; 2698 } 2699 break; 2700 2701 case 116: 2702#line 467 "ldgram.y" 2703 { 2704 (yyval.wildcard).name = (yyvsp[-2].cname); 2705 (yyval.wildcard).sorted = by_alignment; 2706 (yyval.wildcard).exclude_name_list = NULL; 2707 } 2708 break; 2709 2710 case 117: 2711#line 473 "ldgram.y" 2712 { 2713 (yyval.wildcard).name = (yyvsp[-1].cname); 2714 (yyval.wildcard).sorted = by_name; 2715 (yyval.wildcard).exclude_name_list = (yyvsp[-3].name_list); 2716 } 2717 break; 2718 2719 case 118: 2720#line 482 "ldgram.y" 2721 { 2722 struct name_list *tmp; 2723 tmp = (struct name_list *) xmalloc (sizeof *tmp); 2724 tmp->name = (yyvsp[0].cname); 2725 tmp->next = (yyvsp[-1].name_list); 2726 (yyval.name_list) = tmp; 2727 } 2728 break; 2729 2730 case 119: 2731#line 491 "ldgram.y" 2732 { 2733 struct name_list *tmp; 2734 tmp = (struct name_list *) xmalloc (sizeof *tmp); 2735 tmp->name = (yyvsp[0].cname); 2736 tmp->next = NULL; 2737 (yyval.name_list) = tmp; 2738 } 2739 break; 2740 2741 case 120: 2742#line 502 "ldgram.y" 2743 { 2744 struct wildcard_list *tmp; 2745 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp); 2746 tmp->next = (yyvsp[-2].wildcard_list); 2747 tmp->spec = (yyvsp[0].wildcard); 2748 (yyval.wildcard_list) = tmp; 2749 } 2750 break; 2751 2752 case 121: 2753#line 511 "ldgram.y" 2754 { 2755 struct wildcard_list *tmp; 2756 tmp = (struct wildcard_list *) xmalloc (sizeof *tmp); 2757 tmp->next = NULL; 2758 tmp->spec = (yyvsp[0].wildcard); 2759 (yyval.wildcard_list) = tmp; 2760 } 2761 break; 2762 2763 case 122: 2764#line 522 "ldgram.y" 2765 { 2766 struct wildcard_spec tmp; 2767 tmp.name = (yyvsp[0].name); 2768 tmp.exclude_name_list = NULL; 2769 tmp.sorted = none; 2770 lang_add_wild (&tmp, NULL, ldgram_had_keep); 2771 } 2772 break; 2773 2774 case 123: 2775#line 530 "ldgram.y" 2776 { 2777 lang_add_wild (NULL, (yyvsp[-1].wildcard_list), ldgram_had_keep); 2778 } 2779 break; 2780 2781 case 124: 2782#line 534 "ldgram.y" 2783 { 2784 lang_add_wild (&(yyvsp[-3].wildcard), (yyvsp[-1].wildcard_list), ldgram_had_keep); 2785 } 2786 break; 2787 2788 case 126: 2789#line 542 "ldgram.y" 2790 { ldgram_had_keep = TRUE; } 2791 break; 2792 2793 case 127: 2794#line 544 "ldgram.y" 2795 { ldgram_had_keep = FALSE; } 2796 break; 2797 2798 case 129: 2799#line 550 "ldgram.y" 2800 { 2801 lang_add_attribute(lang_object_symbols_statement_enum); 2802 } 2803 break; 2804 2805 case 131: 2806#line 555 "ldgram.y" 2807 { 2808 2809 lang_add_attribute(lang_constructors_statement_enum); 2810 } 2811 break; 2812 2813 case 132: 2814#line 560 "ldgram.y" 2815 { 2816 constructors_sorted = TRUE; 2817 lang_add_attribute (lang_constructors_statement_enum); 2818 } 2819 break; 2820 2821 case 134: 2822#line 566 "ldgram.y" 2823 { 2824 lang_add_data ((int) (yyvsp[-3].integer), (yyvsp[-1].etree)); 2825 } 2826 break; 2827 2828 case 135: 2829#line 571 "ldgram.y" 2830 { 2831 lang_add_fill ((yyvsp[-1].fill)); 2832 } 2833 break; 2834 2835 case 140: 2836#line 588 "ldgram.y" 2837 { (yyval.integer) = (yyvsp[0].token); } 2838 break; 2839 2840 case 141: 2841#line 590 "ldgram.y" 2842 { (yyval.integer) = (yyvsp[0].token); } 2843 break; 2844 2845 case 142: 2846#line 592 "ldgram.y" 2847 { (yyval.integer) = (yyvsp[0].token); } 2848 break; 2849 2850 case 143: 2851#line 594 "ldgram.y" 2852 { (yyval.integer) = (yyvsp[0].token); } 2853 break; 2854 2855 case 144: 2856#line 596 "ldgram.y" 2857 { (yyval.integer) = (yyvsp[0].token); } 2858 break; 2859 2860 case 145: 2861#line 601 "ldgram.y" 2862 { 2863 (yyval.fill) = exp_get_fill ((yyvsp[0].etree), 0, "fill value"); 2864 } 2865 break; 2866 2867 case 146: 2868#line 608 "ldgram.y" 2869 { (yyval.fill) = (yyvsp[0].fill); } 2870 break; 2871 2872 case 147: 2873#line 609 "ldgram.y" 2874 { (yyval.fill) = (fill_type *) 0; } 2875 break; 2876 2877 case 148: 2878#line 614 "ldgram.y" 2879 { (yyval.token) = '+'; } 2880 break; 2881 2882 case 149: 2883#line 616 "ldgram.y" 2884 { (yyval.token) = '-'; } 2885 break; 2886 2887 case 150: 2888#line 618 "ldgram.y" 2889 { (yyval.token) = '*'; } 2890 break; 2891 2892 case 151: 2893#line 620 "ldgram.y" 2894 { (yyval.token) = '/'; } 2895 break; 2896 2897 case 152: 2898#line 622 "ldgram.y" 2899 { (yyval.token) = LSHIFT; } 2900 break; 2901 2902 case 153: 2903#line 624 "ldgram.y" 2904 { (yyval.token) = RSHIFT; } 2905 break; 2906 2907 case 154: 2908#line 626 "ldgram.y" 2909 { (yyval.token) = '&'; } 2910 break; 2911 2912 case 155: 2913#line 628 "ldgram.y" 2914 { (yyval.token) = '|'; } 2915 break; 2916 2917 case 158: 2918#line 638 "ldgram.y" 2919 { 2920 lang_add_assignment (exp_assop ((yyvsp[-1].token), (yyvsp[-2].name), (yyvsp[0].etree))); 2921 } 2922 break; 2923 2924 case 159: 2925#line 642 "ldgram.y" 2926 { 2927 lang_add_assignment (exp_assop ('=', (yyvsp[-2].name), 2928 exp_binop ((yyvsp[-1].token), 2929 exp_nameop (NAME, 2930 (yyvsp[-2].name)), 2931 (yyvsp[0].etree)))); 2932 } 2933 break; 2934 2935 case 160: 2936#line 650 "ldgram.y" 2937 { 2938 lang_add_assignment (exp_provide ((yyvsp[-3].name), (yyvsp[-1].etree), FALSE)); 2939 } 2940 break; 2941 2942 case 161: 2943#line 654 "ldgram.y" 2944 { 2945 lang_add_assignment (exp_provide ((yyvsp[-3].name), (yyvsp[-1].etree), TRUE)); 2946 } 2947 break; 2948 2949 case 168: 2950#line 676 "ldgram.y" 2951 { region = lang_memory_region_lookup ((yyvsp[0].name), TRUE); } 2952 break; 2953 2954 case 169: 2955#line 679 "ldgram.y" 2956 {} 2957 break; 2958 2959 case 170: 2960#line 684 "ldgram.y" 2961 { 2962 region->origin = exp_get_vma ((yyvsp[0].etree), 0, "origin"); 2963 region->current = region->origin; 2964 } 2965 break; 2966 2967 case 171: 2968#line 692 "ldgram.y" 2969 { 2970 region->length = exp_get_vma ((yyvsp[0].etree), -1, "length"); 2971 } 2972 break; 2973 2974 case 172: 2975#line 699 "ldgram.y" 2976 { /* dummy action to avoid bison 1.25 error message */ } 2977 break; 2978 2979 case 176: 2980#line 710 "ldgram.y" 2981 { lang_set_flags (region, (yyvsp[0].name), 0); } 2982 break; 2983 2984 case 177: 2985#line 712 "ldgram.y" 2986 { lang_set_flags (region, (yyvsp[0].name), 1); } 2987 break; 2988 2989 case 178: 2990#line 717 "ldgram.y" 2991 { lang_startup((yyvsp[-1].name)); } 2992 break; 2993 2994 case 180: 2995#line 723 "ldgram.y" 2996 { ldemul_hll((char *)NULL); } 2997 break; 2998 2999 case 181: 3000#line 728 "ldgram.y" 3001 { ldemul_hll((yyvsp[0].name)); } 3002 break; 3003 3004 case 182: 3005#line 730 "ldgram.y" 3006 { ldemul_hll((yyvsp[0].name)); } 3007 break; 3008 3009 case 184: 3010#line 738 "ldgram.y" 3011 { ldemul_syslib((yyvsp[0].name)); } 3012 break; 3013 3014 case 186: 3015#line 744 "ldgram.y" 3016 { lang_float(TRUE); } 3017 break; 3018 3019 case 187: 3020#line 746 "ldgram.y" 3021 { lang_float(FALSE); } 3022 break; 3023 3024 case 188: 3025#line 751 "ldgram.y" 3026 { 3027 (yyval.nocrossref) = NULL; 3028 } 3029 break; 3030 3031 case 189: 3032#line 755 "ldgram.y" 3033 { 3034 struct lang_nocrossref *n; 3035 3036 n = (struct lang_nocrossref *) xmalloc (sizeof *n); 3037 n->name = (yyvsp[-1].name); 3038 n->next = (yyvsp[0].nocrossref); 3039 (yyval.nocrossref) = n; 3040 } 3041 break; 3042 3043 case 190: 3044#line 764 "ldgram.y" 3045 { 3046 struct lang_nocrossref *n; 3047 3048 n = (struct lang_nocrossref *) xmalloc (sizeof *n); 3049 n->name = (yyvsp[-2].name); 3050 n->next = (yyvsp[0].nocrossref); 3051 (yyval.nocrossref) = n; 3052 } 3053 break; 3054 3055 case 191: 3056#line 774 "ldgram.y" 3057 { ldlex_expression (); } 3058 break; 3059 3060 case 192: 3061#line 776 "ldgram.y" 3062 { ldlex_popstate (); (yyval.etree)=(yyvsp[0].etree);} 3063 break; 3064 3065 case 193: 3066#line 781 "ldgram.y" 3067 { (yyval.etree) = exp_unop ('-', (yyvsp[0].etree)); } 3068 break; 3069 3070 case 194: 3071#line 783 "ldgram.y" 3072 { (yyval.etree) = (yyvsp[-1].etree); } 3073 break; 3074 3075 case 195: 3076#line 785 "ldgram.y" 3077 { (yyval.etree) = exp_unop ((int) (yyvsp[-3].integer),(yyvsp[-1].etree)); } 3078 break; 3079 3080 case 196: 3081#line 787 "ldgram.y" 3082 { (yyval.etree) = exp_unop ('!', (yyvsp[0].etree)); } 3083 break; 3084 3085 case 197: 3086#line 789 "ldgram.y" 3087 { (yyval.etree) = (yyvsp[0].etree); } 3088 break; 3089 3090 case 198: 3091#line 791 "ldgram.y" 3092 { (yyval.etree) = exp_unop ('~', (yyvsp[0].etree));} 3093 break; 3094 3095 case 199: 3096#line 794 "ldgram.y" 3097 { (yyval.etree) = exp_binop ('*', (yyvsp[-2].etree), (yyvsp[0].etree)); } 3098 break; 3099 3100 case 200: 3101#line 796 "ldgram.y" 3102 { (yyval.etree) = exp_binop ('/', (yyvsp[-2].etree), (yyvsp[0].etree)); } 3103 break; 3104 3105 case 201: 3106#line 798 "ldgram.y" 3107 { (yyval.etree) = exp_binop ('%', (yyvsp[-2].etree), (yyvsp[0].etree)); } 3108 break; 3109 3110 case 202: 3111#line 800 "ldgram.y" 3112 { (yyval.etree) = exp_binop ('+', (yyvsp[-2].etree), (yyvsp[0].etree)); } 3113 break; 3114 3115 case 203: 3116#line 802 "ldgram.y" 3117 { (yyval.etree) = exp_binop ('-' , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3118 break; 3119 3120 case 204: 3121#line 804 "ldgram.y" 3122 { (yyval.etree) = exp_binop (LSHIFT , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3123 break; 3124 3125 case 205: 3126#line 806 "ldgram.y" 3127 { (yyval.etree) = exp_binop (RSHIFT , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3128 break; 3129 3130 case 206: 3131#line 808 "ldgram.y" 3132 { (yyval.etree) = exp_binop (EQ , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3133 break; 3134 3135 case 207: 3136#line 810 "ldgram.y" 3137 { (yyval.etree) = exp_binop (NE , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3138 break; 3139 3140 case 208: 3141#line 812 "ldgram.y" 3142 { (yyval.etree) = exp_binop (LE , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3143 break; 3144 3145 case 209: 3146#line 814 "ldgram.y" 3147 { (yyval.etree) = exp_binop (GE , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3148 break; 3149 3150 case 210: 3151#line 816 "ldgram.y" 3152 { (yyval.etree) = exp_binop ('<' , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3153 break; 3154 3155 case 211: 3156#line 818 "ldgram.y" 3157 { (yyval.etree) = exp_binop ('>' , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3158 break; 3159 3160 case 212: 3161#line 820 "ldgram.y" 3162 { (yyval.etree) = exp_binop ('&' , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3163 break; 3164 3165 case 213: 3166#line 822 "ldgram.y" 3167 { (yyval.etree) = exp_binop ('^' , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3168 break; 3169 3170 case 214: 3171#line 824 "ldgram.y" 3172 { (yyval.etree) = exp_binop ('|' , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3173 break; 3174 3175 case 215: 3176#line 826 "ldgram.y" 3177 { (yyval.etree) = exp_trinop ('?' , (yyvsp[-4].etree), (yyvsp[-2].etree), (yyvsp[0].etree)); } 3178 break; 3179 3180 case 216: 3181#line 828 "ldgram.y" 3182 { (yyval.etree) = exp_binop (ANDAND , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3183 break; 3184 3185 case 217: 3186#line 830 "ldgram.y" 3187 { (yyval.etree) = exp_binop (OROR , (yyvsp[-2].etree), (yyvsp[0].etree)); } 3188 break; 3189 3190 case 218: 3191#line 832 "ldgram.y" 3192 { (yyval.etree) = exp_nameop (DEFINED, (yyvsp[-1].name)); } 3193 break; 3194 3195 case 219: 3196#line 834 "ldgram.y" 3197 { (yyval.etree) = exp_bigintop ((yyvsp[0].bigint).integer, (yyvsp[0].bigint).str); } 3198 break; 3199 3200 case 220: 3201#line 836 "ldgram.y" 3202 { (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); } 3203 break; 3204 3205 case 221: 3206#line 839 "ldgram.y" 3207 { (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[-1].name)); } 3208 break; 3209 3210 case 222: 3211#line 841 "ldgram.y" 3212 { (yyval.etree) = exp_nameop (ADDR,(yyvsp[-1].name)); } 3213 break; 3214 3215 case 223: 3216#line 843 "ldgram.y" 3217 { (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[-1].name)); } 3218 break; 3219 3220 case 224: 3221#line 845 "ldgram.y" 3222 { (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[-1].etree)); } 3223 break; 3224 3225 case 225: 3226#line 847 "ldgram.y" 3227 { (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[-1].etree)); } 3228 break; 3229 3230 case 226: 3231#line 849 "ldgram.y" 3232 { (yyval.etree) = exp_binop (ALIGN_K,(yyvsp[-3].etree),(yyvsp[-1].etree)); } 3233 break; 3234 3235 case 227: 3236#line 851 "ldgram.y" 3237 { (yyval.etree) = exp_binop (DATA_SEGMENT_ALIGN, (yyvsp[-3].etree), (yyvsp[-1].etree)); } 3238 break; 3239 3240 case 228: 3241#line 853 "ldgram.y" 3242 { (yyval.etree) = exp_binop (DATA_SEGMENT_RELRO_END, (yyvsp[-1].etree), (yyvsp[-3].etree)); } 3243 break; 3244 3245 case 229: 3246#line 855 "ldgram.y" 3247 { (yyval.etree) = exp_unop (DATA_SEGMENT_END, (yyvsp[-1].etree)); } 3248 break; 3249 3250 case 230: 3251#line 857 "ldgram.y" 3252 { /* The operands to the expression node are 3253 placed in the opposite order from the way 3254 in which they appear in the script as 3255 that allows us to reuse more code in 3256 fold_binary. */ 3257 (yyval.etree) = exp_binop (SEGMENT_START, 3258 (yyvsp[-1].etree), 3259 exp_nameop (NAME, (yyvsp[-3].name))); } 3260 break; 3261 3262 case 231: 3263#line 866 "ldgram.y" 3264 { (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[-1].etree)); } 3265 break; 3266 3267 case 232: 3268#line 868 "ldgram.y" 3269 { (yyval.etree) = exp_nameop (NAME,(yyvsp[0].name)); } 3270 break; 3271 3272 case 233: 3273#line 870 "ldgram.y" 3274 { (yyval.etree) = exp_binop (MAX_K, (yyvsp[-3].etree), (yyvsp[-1].etree) ); } 3275 break; 3276 3277 case 234: 3278#line 872 "ldgram.y" 3279 { (yyval.etree) = exp_binop (MIN_K, (yyvsp[-3].etree), (yyvsp[-1].etree) ); } 3280 break; 3281 3282 case 235: 3283#line 874 "ldgram.y" 3284 { (yyval.etree) = exp_assert ((yyvsp[-3].etree), (yyvsp[-1].name)); } 3285 break; 3286 3287 case 236: 3288#line 876 "ldgram.y" 3289 { (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[-1].name)); } 3290 break; 3291 3292 case 237: 3293#line 878 "ldgram.y" 3294 { (yyval.etree) = exp_nameop (LENGTH, (yyvsp[-1].name)); } 3295 break; 3296 3297 case 238: 3298#line 883 "ldgram.y" 3299 { (yyval.name) = (yyvsp[0].name); } 3300 break; 3301 3302 case 239: 3303#line 884 "ldgram.y" 3304 { (yyval.name) = 0; } 3305 break; 3306 3307 case 240: 3308#line 888 "ldgram.y" 3309 { (yyval.etree) = (yyvsp[-1].etree); } 3310 break; 3311 3312 case 241: 3313#line 889 "ldgram.y" 3314 { (yyval.etree) = 0; } 3315 break; 3316 3317 case 242: 3318#line 893 "ldgram.y" 3319 { (yyval.etree) = (yyvsp[-1].etree); } 3320 break; 3321 3322 case 243: 3323#line 894 "ldgram.y" 3324 { (yyval.etree) = 0; } 3325 break; 3326 3327 case 244: 3328#line 898 "ldgram.y" 3329 { (yyval.etree) = (yyvsp[-1].etree); } 3330 break; 3331 3332 case 245: 3333#line 899 "ldgram.y" 3334 { (yyval.etree) = 0; } 3335 break; 3336 3337 case 246: 3338#line 903 "ldgram.y" 3339 { (yyval.token) = ONLY_IF_RO; } 3340 break; 3341 3342 case 247: 3343#line 904 "ldgram.y" 3344 { (yyval.token) = ONLY_IF_RW; } 3345 break; 3346 3347 case 248: 3348#line 905 "ldgram.y" 3349 { (yyval.token) = SPECIAL; } 3350 break; 3351 3352 case 249: 3353#line 906 "ldgram.y" 3354 { (yyval.token) = 0; } 3355 break; 3356 3357 case 250: 3358#line 909 "ldgram.y" 3359 { ldlex_expression(); } 3360 break; 3361 3362 case 251: 3363#line 913 "ldgram.y" 3364 { ldlex_popstate (); ldlex_script (); } 3365 break; 3366 3367 case 252: 3368#line 916 "ldgram.y" 3369 { 3370 lang_enter_output_section_statement((yyvsp[-8].name), (yyvsp[-6].etree), 3371 sectype, 3372 (yyvsp[-4].etree), (yyvsp[-3].etree), (yyvsp[-5].etree), (yyvsp[-1].token)); 3373 } 3374 break; 3375 3376 case 253: 3377#line 922 "ldgram.y" 3378 { ldlex_popstate (); ldlex_expression (); } 3379 break; 3380 3381 case 254: 3382#line 924 "ldgram.y" 3383 { 3384 ldlex_popstate (); 3385 lang_leave_output_section_statement ((yyvsp[0].fill), (yyvsp[-3].name), (yyvsp[-1].section_phdr), (yyvsp[-2].name)); 3386 } 3387 break; 3388 3389 case 255: 3390#line 929 "ldgram.y" 3391 {} 3392 break; 3393 3394 case 256: 3395#line 931 "ldgram.y" 3396 { ldlex_expression (); } 3397 break; 3398 3399 case 257: 3400#line 933 "ldgram.y" 3401 { ldlex_popstate (); ldlex_script (); } 3402 break; 3403 3404 case 258: 3405#line 935 "ldgram.y" 3406 { 3407 lang_enter_overlay ((yyvsp[-5].etree), (yyvsp[-2].etree)); 3408 } 3409 break; 3410 3411 case 259: 3412#line 940 "ldgram.y" 3413 { ldlex_popstate (); ldlex_expression (); } 3414 break; 3415 3416 case 260: 3417#line 942 "ldgram.y" 3418 { 3419 ldlex_popstate (); 3420 lang_leave_overlay ((yyvsp[-11].etree), (int) (yyvsp[-12].integer), 3421 (yyvsp[0].fill), (yyvsp[-3].name), (yyvsp[-1].section_phdr), (yyvsp[-2].name)); 3422 } 3423 break; 3424 3425 case 262: 3426#line 952 "ldgram.y" 3427 { ldlex_expression (); } 3428 break; 3429 3430 case 263: 3431#line 954 "ldgram.y" 3432 { 3433 ldlex_popstate (); 3434 lang_add_assignment (exp_assop ('=', ".", (yyvsp[0].etree))); 3435 } 3436 break; 3437 3438 case 265: 3439#line 962 "ldgram.y" 3440 { sectype = noload_section; } 3441 break; 3442 3443 case 266: 3444#line 963 "ldgram.y" 3445 { sectype = dsect_section; } 3446 break; 3447 3448 case 267: 3449#line 964 "ldgram.y" 3450 { sectype = copy_section; } 3451 break; 3452 3453 case 268: 3454#line 965 "ldgram.y" 3455 { sectype = info_section; } 3456 break; 3457 3458 case 269: 3459#line 966 "ldgram.y" 3460 { sectype = overlay_section; } 3461 break; 3462 3463 case 271: 3464#line 971 "ldgram.y" 3465 { sectype = normal_section; } 3466 break; 3467 3468 case 272: 3469#line 972 "ldgram.y" 3470 { sectype = normal_section; } 3471 break; 3472 3473 case 273: 3474#line 976 "ldgram.y" 3475 { (yyval.etree) = (yyvsp[-2].etree); } 3476 break; 3477 3478 case 274: 3479#line 977 "ldgram.y" 3480 { (yyval.etree) = (etree_type *)NULL; } 3481 break; 3482 3483 case 275: 3484#line 982 "ldgram.y" 3485 { (yyval.etree) = (yyvsp[-3].etree); } 3486 break; 3487 3488 case 276: 3489#line 984 "ldgram.y" 3490 { (yyval.etree) = (yyvsp[-7].etree); } 3491 break; 3492 3493 case 277: 3494#line 988 "ldgram.y" 3495 { (yyval.etree) = (yyvsp[-1].etree); } 3496 break; 3497 3498 case 278: 3499#line 989 "ldgram.y" 3500 { (yyval.etree) = (etree_type *) NULL; } 3501 break; 3502 3503 case 279: 3504#line 994 "ldgram.y" 3505 { (yyval.integer) = 0; } 3506 break; 3507 3508 case 280: 3509#line 996 "ldgram.y" 3510 { (yyval.integer) = 1; } 3511 break; 3512 3513 case 281: 3514#line 1001 "ldgram.y" 3515 { (yyval.name) = (yyvsp[0].name); } 3516 break; 3517 3518 case 282: 3519#line 1002 "ldgram.y" 3520 { (yyval.name) = DEFAULT_MEMORY_REGION; } 3521 break; 3522 3523 case 283: 3524#line 1007 "ldgram.y" 3525 { 3526 (yyval.section_phdr) = NULL; 3527 } 3528 break; 3529 3530 case 284: 3531#line 1011 "ldgram.y" 3532 { 3533 struct lang_output_section_phdr_list *n; 3534 3535 n = ((struct lang_output_section_phdr_list *) 3536 xmalloc (sizeof *n)); 3537 n->name = (yyvsp[0].name); 3538 n->used = FALSE; 3539 n->next = (yyvsp[-2].section_phdr); 3540 (yyval.section_phdr) = n; 3541 } 3542 break; 3543 3544 case 286: 3545#line 1027 "ldgram.y" 3546 { 3547 ldlex_script (); 3548 lang_enter_overlay_section ((yyvsp[0].name)); 3549 } 3550 break; 3551 3552 case 287: 3553#line 1032 "ldgram.y" 3554 { ldlex_popstate (); ldlex_expression (); } 3555 break; 3556 3557 case 288: 3558#line 1034 "ldgram.y" 3559 { 3560 ldlex_popstate (); 3561 lang_leave_overlay_section ((yyvsp[0].fill), (yyvsp[-1].section_phdr)); 3562 } 3563 break; 3564 3565 case 293: 3566#line 1051 "ldgram.y" 3567 { ldlex_expression (); } 3568 break; 3569 3570 case 294: 3571#line 1052 "ldgram.y" 3572 { ldlex_popstate (); } 3573 break; 3574 3575 case 295: 3576#line 1054 "ldgram.y" 3577 { 3578 lang_new_phdr ((yyvsp[-5].name), (yyvsp[-3].etree), (yyvsp[-2].phdr).filehdr, (yyvsp[-2].phdr).phdrs, (yyvsp[-2].phdr).at, 3579 (yyvsp[-2].phdr).flags); 3580 } 3581 break; 3582 3583 case 296: 3584#line 1062 "ldgram.y" 3585 { 3586 (yyval.etree) = (yyvsp[0].etree); 3587 3588 if ((yyvsp[0].etree)->type.node_class == etree_name 3589 && (yyvsp[0].etree)->type.node_code == NAME) 3590 { 3591 const char *s; 3592 unsigned int i; 3593 static const char * const phdr_types[] = 3594 { 3595 "PT_NULL", "PT_LOAD", "PT_DYNAMIC", 3596 "PT_INTERP", "PT_NOTE", "PT_SHLIB", 3597 "PT_PHDR", "PT_TLS" 3598 }; 3599 3600 s = (yyvsp[0].etree)->name.name; 3601 for (i = 0; 3602 i < sizeof phdr_types / sizeof phdr_types[0]; 3603 i++) 3604 if (strcmp (s, phdr_types[i]) == 0) 3605 { 3606 (yyval.etree) = exp_intop (i); 3607 break; 3608 } 3609 if (i == sizeof phdr_types / sizeof phdr_types[0]) 3610 { 3611 if (strcmp (s, "PT_GNU_EH_FRAME") == 0) 3612 (yyval.etree) = exp_intop (0x6474e550); 3613 else if (strcmp (s, "PT_GNU_STACK") == 0) 3614 (yyval.etree) = exp_intop (0x6474e551); 3615 else 3616 { 3617 einfo (_("\ 3618%X%P:%S: unknown phdr type `%s' (try integer literal)\n"), 3619 s); 3620 (yyval.etree) = exp_intop (0); 3621 } 3622 } 3623 } 3624 } 3625 break; 3626 3627 case 297: 3628#line 1106 "ldgram.y" 3629 { 3630 memset (&(yyval.phdr), 0, sizeof (struct phdr_info)); 3631 } 3632 break; 3633 3634 case 298: 3635#line 1110 "ldgram.y" 3636 { 3637 (yyval.phdr) = (yyvsp[0].phdr); 3638 if (strcmp ((yyvsp[-2].name), "FILEHDR") == 0 && (yyvsp[-1].etree) == NULL) 3639 (yyval.phdr).filehdr = TRUE; 3640 else if (strcmp ((yyvsp[-2].name), "PHDRS") == 0 && (yyvsp[-1].etree) == NULL) 3641 (yyval.phdr).phdrs = TRUE; 3642 else if (strcmp ((yyvsp[-2].name), "FLAGS") == 0 && (yyvsp[-1].etree) != NULL) 3643 (yyval.phdr).flags = (yyvsp[-1].etree); 3644 else 3645 einfo (_("%X%P:%S: PHDRS syntax error at `%s'\n"), (yyvsp[-2].name)); 3646 } 3647 break; 3648 3649 case 299: 3650#line 1122 "ldgram.y" 3651 { 3652 (yyval.phdr) = (yyvsp[0].phdr); 3653 (yyval.phdr).at = (yyvsp[-2].etree); 3654 } 3655 break; 3656 3657 case 300: 3658#line 1130 "ldgram.y" 3659 { 3660 (yyval.etree) = NULL; 3661 } 3662 break; 3663 3664 case 301: 3665#line 1134 "ldgram.y" 3666 { 3667 (yyval.etree) = (yyvsp[-1].etree); 3668 } 3669 break; 3670 3671 case 302: 3672#line 1142 "ldgram.y" 3673 { 3674 ldlex_version_file (); 3675 PUSH_ERROR (_("VERSION script")); 3676 } 3677 break; 3678 3679 case 303: 3680#line 1147 "ldgram.y" 3681 { 3682 ldlex_popstate (); 3683 POP_ERROR (); 3684 } 3685 break; 3686 3687 case 304: 3688#line 1156 "ldgram.y" 3689 { 3690 ldlex_version_script (); 3691 } 3692 break; 3693 3694 case 305: 3695#line 1160 "ldgram.y" 3696 { 3697 ldlex_popstate (); 3698 } 3699 break; 3700 3701 case 308: 3702#line 1172 "ldgram.y" 3703 { 3704 lang_register_vers_node (NULL, (yyvsp[-2].versnode), NULL); 3705 } 3706 break; 3707 3708 case 309: 3709#line 1176 "ldgram.y" 3710 { 3711 lang_register_vers_node ((yyvsp[-4].name), (yyvsp[-2].versnode), NULL); 3712 } 3713 break; 3714 3715 case 310: 3716#line 1180 "ldgram.y" 3717 { 3718 lang_register_vers_node ((yyvsp[-5].name), (yyvsp[-3].versnode), (yyvsp[-1].deflist)); 3719 } 3720 break; 3721 3722 case 311: 3723#line 1187 "ldgram.y" 3724 { 3725 (yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[0].name)); 3726 } 3727 break; 3728 3729 case 312: 3730#line 1191 "ldgram.y" 3731 { 3732 (yyval.deflist) = lang_add_vers_depend ((yyvsp[-1].deflist), (yyvsp[0].name)); 3733 } 3734 break; 3735 3736 case 313: 3737#line 1198 "ldgram.y" 3738 { 3739 (yyval.versnode) = lang_new_vers_node (NULL, NULL); 3740 } 3741 break; 3742 3743 case 314: 3744#line 1202 "ldgram.y" 3745 { 3746 (yyval.versnode) = lang_new_vers_node ((yyvsp[-1].versyms), NULL); 3747 } 3748 break; 3749 3750 case 315: 3751#line 1206 "ldgram.y" 3752 { 3753 (yyval.versnode) = lang_new_vers_node ((yyvsp[-1].versyms), NULL); 3754 } 3755 break; 3756 3757 case 316: 3758#line 1210 "ldgram.y" 3759 { 3760 (yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[-1].versyms)); 3761 } 3762 break; 3763 3764 case 317: 3765#line 1214 "ldgram.y" 3766 { 3767 (yyval.versnode) = lang_new_vers_node ((yyvsp[-5].versyms), (yyvsp[-1].versyms)); 3768 } 3769 break; 3770 3771 case 318: 3772#line 1221 "ldgram.y" 3773 { 3774 (yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[0].name), ldgram_vers_current_lang, FALSE); 3775 } 3776 break; 3777 3778 case 319: 3779#line 1225 "ldgram.y" 3780 { 3781 (yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[0].name), ldgram_vers_current_lang, TRUE); 3782 } 3783 break; 3784 3785 case 320: 3786#line 1229 "ldgram.y" 3787 { 3788 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), (yyvsp[0].name), ldgram_vers_current_lang, FALSE); 3789 } 3790 break; 3791 3792 case 321: 3793#line 1233 "ldgram.y" 3794 { 3795 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), (yyvsp[0].name), ldgram_vers_current_lang, TRUE); 3796 } 3797 break; 3798 3799 case 322: 3800#line 1237 "ldgram.y" 3801 { 3802 (yyval.name) = ldgram_vers_current_lang; 3803 ldgram_vers_current_lang = (yyvsp[-1].name); 3804 } 3805 break; 3806 3807 case 323: 3808#line 1242 "ldgram.y" 3809 { 3810 struct bfd_elf_version_expr *pat; 3811 for (pat = (yyvsp[-2].versyms); pat->next != NULL; pat = pat->next); 3812 pat->next = (yyvsp[-8].versyms); 3813 (yyval.versyms) = (yyvsp[-2].versyms); 3814 ldgram_vers_current_lang = (yyvsp[-3].name); 3815 } 3816 break; 3817 3818 case 324: 3819#line 1250 "ldgram.y" 3820 { 3821 (yyval.name) = ldgram_vers_current_lang; 3822 ldgram_vers_current_lang = (yyvsp[-1].name); 3823 } 3824 break; 3825 3826 case 325: 3827#line 1255 "ldgram.y" 3828 { 3829 (yyval.versyms) = (yyvsp[-2].versyms); 3830 ldgram_vers_current_lang = (yyvsp[-3].name); 3831 } 3832 break; 3833 3834 case 326: 3835#line 1260 "ldgram.y" 3836 { 3837 (yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE); 3838 } 3839 break; 3840 3841 case 327: 3842#line 1264 "ldgram.y" 3843 { 3844 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "global", ldgram_vers_current_lang, FALSE); 3845 } 3846 break; 3847 3848 case 328: 3849#line 1268 "ldgram.y" 3850 { 3851 (yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE); 3852 } 3853 break; 3854 3855 case 329: 3856#line 1272 "ldgram.y" 3857 { 3858 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "local", ldgram_vers_current_lang, FALSE); 3859 } 3860 break; 3861 3862 case 330: 3863#line 1276 "ldgram.y" 3864 { 3865 (yyval.versyms) = lang_new_vers_pattern (NULL, "extern", ldgram_vers_current_lang, FALSE); 3866 } 3867 break; 3868 3869 case 331: 3870#line 1280 "ldgram.y" 3871 { 3872 (yyval.versyms) = lang_new_vers_pattern ((yyvsp[-2].versyms), "extern", ldgram_vers_current_lang, FALSE); 3873 } 3874 break; 3875 3876 3877 default: break; 3878 } 3879 3880/* Line 1126 of yacc.c. */ 3881#line 3882 "ldgram.c" 3882 3883 yyvsp -= yylen; 3884 yyssp -= yylen; 3885 3886 3887 YY_STACK_PRINT (yyss, yyssp); 3888 3889 *++yyvsp = yyval; 3890 3891 3892 /* Now `shift' the result of the reduction. Determine what state 3893 that goes to, based on the state we popped back to and the rule 3894 number reduced by. */ 3895 3896 yyn = yyr1[yyn]; 3897 3898 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 3899 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 3900 yystate = yytable[yystate]; 3901 else 3902 yystate = yydefgoto[yyn - YYNTOKENS]; 3903 3904 goto yynewstate; 3905 3906 3907/*------------------------------------. 3908| yyerrlab -- here on detecting error | 3909`------------------------------------*/ 3910yyerrlab: 3911 /* If not already recovering from an error, report this error. */ 3912 if (!yyerrstatus) 3913 { 3914 ++yynerrs; 3915#if YYERROR_VERBOSE 3916 yyn = yypact[yystate]; 3917 3918 if (YYPACT_NINF < yyn && yyn < YYLAST) 3919 { 3920 int yytype = YYTRANSLATE (yychar); 3921 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 3922 YYSIZE_T yysize = yysize0; 3923 YYSIZE_T yysize1; 3924 int yysize_overflow = 0; 3925 char *yymsg = 0; 3926# define YYERROR_VERBOSE_ARGS_MAXIMUM 5 3927 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 3928 int yyx; 3929 3930#if 0 3931 /* This is so xgettext sees the translatable formats that are 3932 constructed on the fly. */ 3933 YY_("syntax error, unexpected %s"); 3934 YY_("syntax error, unexpected %s, expecting %s"); 3935 YY_("syntax error, unexpected %s, expecting %s or %s"); 3936 YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 3937 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 3938#endif 3939 char *yyfmt; 3940 char const *yyf; 3941 static char const yyunexpected[] = "syntax error, unexpected %s"; 3942 static char const yyexpecting[] = ", expecting %s"; 3943 static char const yyor[] = " or %s"; 3944 char yyformat[sizeof yyunexpected 3945 + sizeof yyexpecting - 1 3946 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 3947 * (sizeof yyor - 1))]; 3948 char const *yyprefix = yyexpecting; 3949 3950 /* Start YYX at -YYN if negative to avoid negative indexes in 3951 YYCHECK. */ 3952 int yyxbegin = yyn < 0 ? -yyn : 0; 3953 3954 /* Stay within bounds of both yycheck and yytname. */ 3955 int yychecklim = YYLAST - yyn; 3956 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 3957 int yycount = 1; 3958 3959 yyarg[0] = yytname[yytype]; 3960 yyfmt = yystpcpy (yyformat, yyunexpected); 3961 3962 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 3963 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 3964 { 3965 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 3966 { 3967 yycount = 1; 3968 yysize = yysize0; 3969 yyformat[sizeof yyunexpected - 1] = '\0'; 3970 break; 3971 } 3972 yyarg[yycount++] = yytname[yyx]; 3973 yysize1 = yysize + yytnamerr (0, yytname[yyx]); 3974 yysize_overflow |= yysize1 < yysize; 3975 yysize = yysize1; 3976 yyfmt = yystpcpy (yyfmt, yyprefix); 3977 yyprefix = yyor; 3978 } 3979 3980 yyf = YY_(yyformat); 3981 yysize1 = yysize + yystrlen (yyf); 3982 yysize_overflow |= yysize1 < yysize; 3983 yysize = yysize1; 3984 3985 if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM) 3986 yymsg = (char *) YYSTACK_ALLOC (yysize); 3987 if (yymsg) 3988 { 3989 /* Avoid sprintf, as that infringes on the user's name space. 3990 Don't have undefined behavior even if the translation 3991 produced a string with the wrong number of "%s"s. */ 3992 char *yyp = yymsg; 3993 int yyi = 0; 3994 while ((*yyp = *yyf)) 3995 { 3996 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 3997 { 3998 yyp += yytnamerr (yyp, yyarg[yyi++]); 3999 yyf += 2; 4000 } 4001 else 4002 { 4003 yyp++; 4004 yyf++; 4005 } 4006 } 4007 yyerror (yymsg); 4008 YYSTACK_FREE (yymsg); 4009 } 4010 else 4011 { 4012 yyerror (YY_("syntax error")); 4013 goto yyexhaustedlab; 4014 } 4015 } 4016 else 4017#endif /* YYERROR_VERBOSE */ 4018 yyerror (YY_("syntax error")); 4019 } 4020 4021 4022 4023 if (yyerrstatus == 3) 4024 { 4025 /* If just tried and failed to reuse look-ahead token after an 4026 error, discard it. */ 4027 4028 if (yychar <= YYEOF) 4029 { 4030 /* Return failure if at end of input. */ 4031 if (yychar == YYEOF) 4032 YYABORT; 4033 } 4034 else 4035 { 4036 yydestruct ("Error: discarding", yytoken, &yylval); 4037 yychar = YYEMPTY; 4038 } 4039 } 4040 4041 /* Else will try to reuse look-ahead token after shifting the error 4042 token. */ 4043 goto yyerrlab1; 4044 4045 4046/*---------------------------------------------------. 4047| yyerrorlab -- error raised explicitly by YYERROR. | 4048`---------------------------------------------------*/ 4049yyerrorlab: 4050 4051 /* Pacify compilers like GCC when the user code never invokes 4052 YYERROR and the label yyerrorlab therefore never appears in user 4053 code. */ 4054 if (0) 4055 goto yyerrorlab; 4056 4057yyvsp -= yylen; 4058 yyssp -= yylen; 4059 yystate = *yyssp; 4060 goto yyerrlab1; 4061 4062 4063/*-------------------------------------------------------------. 4064| yyerrlab1 -- common code for both syntax error and YYERROR. | 4065`-------------------------------------------------------------*/ 4066yyerrlab1: 4067 yyerrstatus = 3; /* Each real token shifted decrements this. */ 4068 4069 for (;;) 4070 { 4071 yyn = yypact[yystate]; 4072 if (yyn != YYPACT_NINF) 4073 { 4074 yyn += YYTERROR; 4075 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 4076 { 4077 yyn = yytable[yyn]; 4078 if (0 < yyn) 4079 break; 4080 } 4081 } 4082 4083 /* Pop the current state because it cannot handle the error token. */ 4084 if (yyssp == yyss) 4085 YYABORT; 4086 4087 4088 yydestruct ("Error: popping", yystos[yystate], yyvsp); 4089 YYPOPSTACK; 4090 yystate = *yyssp; 4091 YY_STACK_PRINT (yyss, yyssp); 4092 } 4093 4094 if (yyn == YYFINAL) 4095 YYACCEPT; 4096 4097 *++yyvsp = yylval; 4098 4099 4100 /* Shift the error token. */ 4101 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 4102 4103 yystate = yyn; 4104 goto yynewstate; 4105 4106 4107/*-------------------------------------. 4108| yyacceptlab -- YYACCEPT comes here. | 4109`-------------------------------------*/ 4110yyacceptlab: 4111 yyresult = 0; 4112 goto yyreturn; 4113 4114/*-----------------------------------. 4115| yyabortlab -- YYABORT comes here. | 4116`-----------------------------------*/ 4117yyabortlab: 4118 yyresult = 1; 4119 goto yyreturn; 4120 4121#ifndef yyoverflow 4122/*-------------------------------------------------. 4123| yyexhaustedlab -- memory exhaustion comes here. | 4124`-------------------------------------------------*/ 4125yyexhaustedlab: 4126 yyerror (YY_("memory exhausted")); 4127 yyresult = 2; 4128 /* Fall through. */ 4129#endif 4130 4131yyreturn: 4132 if (yychar != YYEOF && yychar != YYEMPTY) 4133 yydestruct ("Cleanup: discarding lookahead", 4134 yytoken, &yylval); 4135 while (yyssp != yyss) 4136 { 4137 yydestruct ("Cleanup: popping", 4138 yystos[*yyssp], yyvsp); 4139 YYPOPSTACK; 4140 } 4141#ifndef yyoverflow 4142 if (yyss != yyssa) 4143 YYSTACK_FREE (yyss); 4144#endif 4145 return yyresult; 4146} 4147 4148 4149#line 1290 "ldgram.y" 4150 4151void 4152yyerror(arg) 4153 const char *arg; 4154{ 4155 if (ldfile_assumed_script) 4156 einfo (_("%P:%s: file format not recognized; treating as linker script\n"), 4157 ldfile_input_filename); 4158 if (error_index > 0 && error_index < ERROR_NAME_MAX) 4159 einfo ("%P%F:%S: %s in %s\n", arg, error_names[error_index-1]); 4160 else 4161 einfo ("%P%F:%S: %s\n", arg); 4162} 4163 4164