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