1 /* A Bison parser, made by GNU Bison 3.0.5. */ 2 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. 6 7 This program is free software: you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation, either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 /* As a special exception, you may create a larger work that contains 21 part or all of the Bison parser skeleton and distribute that work 22 under terms of your choice, so long as that work isn't itself a 23 parser generator using the skeleton or a modified version thereof 24 as a parser skeleton. Alternatively, if you modify or redistribute 25 the parser skeleton itself, you may (at your option) remove this 26 special exception, which will cause the skeleton and the resulting 27 Bison output files to be licensed under the GNU General Public 28 License without this special exception. 29 30 This special exception was added by the Free Software Foundation in 31 version 2.2 of Bison. */ 32 33 /* C LALR(1) parser skeleton written by Richard Stallman, by 34 simplifying the original so-called "semantic" parser. */ 35 36 /* All symbols defined below should begin with yy or YY, to avoid 37 infringing on user name space. This should be done even for local 38 variables, as they might otherwise be expanded by user macros. 39 There are some unavoidable exceptions within include files to 40 define necessary library symbols; they are noted "INFRINGES ON 41 USER NAME SPACE" below. */ 42 43 /* Identify Bison output. */ 44 #define YYBISON 1 45 46 /* Bison version. */ 47 #define YYBISON_VERSION "3.0.5" 48 49 /* Skeleton name. */ 50 #define YYSKELETON_NAME "yacc.c" 51 52 /* Pure parsers. */ 53 #define YYPURE 1 54 55 /* Push parsers. */ 56 #define YYPUSH 0 57 58 /* Pull parsers. */ 59 #define YYPULL 1 60 61 62 63 64 /* Copy the first part of user declarations. */ 65 #line 26 "yyscript.y" /* yacc.c:339 */ 66 67 68 #include "config.h" 69 70 #include <stddef.h> 71 #include <stdint.h> 72 #include <stdlib.h> 73 #include <string.h> 74 75 #include "script-c.h" 76 77 78 #line 79 "yyscript.c" /* yacc.c:339 */ 79 80 # ifndef YY_NULLPTR 81 # if defined __cplusplus && 201103L <= __cplusplus 82 # define YY_NULLPTR nullptr 83 # else 84 # define YY_NULLPTR 0 85 # endif 86 # endif 87 88 /* Enabling verbose error messages. */ 89 #ifdef YYERROR_VERBOSE 90 # undef YYERROR_VERBOSE 91 # define YYERROR_VERBOSE 1 92 #else 93 # define YYERROR_VERBOSE 1 94 #endif 95 96 /* In a future release of Bison, this section will be replaced 97 by #include "y.tab.h". */ 98 #ifndef YY_YY_YYSCRIPT_H_INCLUDED 99 # define YY_YY_YYSCRIPT_H_INCLUDED 100 /* Debug traces. */ 101 #ifndef YYDEBUG 102 # define YYDEBUG 0 103 #endif 104 #if YYDEBUG 105 extern int yydebug; 106 #endif 107 108 /* Token type. */ 109 #ifndef YYTOKENTYPE 110 # define YYTOKENTYPE 111 enum yytokentype 112 { 113 PLUSEQ = 258, 114 MINUSEQ = 259, 115 MULTEQ = 260, 116 DIVEQ = 261, 117 LSHIFTEQ = 262, 118 RSHIFTEQ = 263, 119 ANDEQ = 264, 120 OREQ = 265, 121 OROR = 266, 122 ANDAND = 267, 123 EQ = 268, 124 NE = 269, 125 LE = 270, 126 GE = 271, 127 LSHIFT = 272, 128 RSHIFT = 273, 129 UNARY = 274, 130 STRING = 275, 131 QUOTED_STRING = 276, 132 INTEGER = 277, 133 ABSOLUTE = 278, 134 ADDR = 279, 135 ALIGN_K = 280, 136 ALIGNOF = 281, 137 ASSERT_K = 282, 138 AS_NEEDED = 283, 139 AT = 284, 140 BIND = 285, 141 BLOCK = 286, 142 BYTE = 287, 143 CONSTANT = 288, 144 CONSTRUCTORS = 289, 145 COPY = 290, 146 CREATE_OBJECT_SYMBOLS = 291, 147 DATA_SEGMENT_ALIGN = 292, 148 DATA_SEGMENT_END = 293, 149 DATA_SEGMENT_RELRO_END = 294, 150 DEFINED = 295, 151 DSECT = 296, 152 ENTRY = 297, 153 EXCLUDE_FILE = 298, 154 EXTERN = 299, 155 FILL = 300, 156 FLOAT = 301, 157 FORCE_COMMON_ALLOCATION = 302, 158 GLOBAL = 303, 159 GROUP = 304, 160 HIDDEN = 305, 161 HLL = 306, 162 INCLUDE = 307, 163 INHIBIT_COMMON_ALLOCATION = 308, 164 INFO = 309, 165 INPUT = 310, 166 KEEP = 311, 167 LEN = 312, 168 LENGTH = 313, 169 LOADADDR = 314, 170 LOCAL = 315, 171 LONG = 316, 172 MAP = 317, 173 MAX_K = 318, 174 MEMORY = 319, 175 MIN_K = 320, 176 NEXT = 321, 177 NOCROSSREFS = 322, 178 NOFLOAT = 323, 179 NOLOAD = 324, 180 ONLY_IF_RO = 325, 181 ONLY_IF_RW = 326, 182 ORG = 327, 183 ORIGIN = 328, 184 OUTPUT = 329, 185 OUTPUT_ARCH = 330, 186 OUTPUT_FORMAT = 331, 187 OVERLAY = 332, 188 PHDRS = 333, 189 PROVIDE = 334, 190 PROVIDE_HIDDEN = 335, 191 QUAD = 336, 192 SEARCH_DIR = 337, 193 SECTIONS = 338, 194 SEGMENT_START = 339, 195 SHORT = 340, 196 SIZEOF = 341, 197 SIZEOF_HEADERS = 342, 198 SORT_BY_ALIGNMENT = 343, 199 SORT_BY_INIT_PRIORITY = 344, 200 SORT_BY_NAME = 345, 201 SPECIAL = 346, 202 SQUAD = 347, 203 STARTUP = 348, 204 SUBALIGN = 349, 205 SYSLIB = 350, 206 TARGET_K = 351, 207 TRUNCATE = 352, 208 VERSIONK = 353, 209 OPTION = 354, 210 PARSING_LINKER_SCRIPT = 355, 211 PARSING_VERSION_SCRIPT = 356, 212 PARSING_DEFSYM = 357, 213 PARSING_DYNAMIC_LIST = 358, 214 PARSING_SECTIONS_BLOCK = 359, 215 PARSING_SECTION_COMMANDS = 360, 216 PARSING_MEMORY_DEF = 361 217 }; 218 #endif 219 /* Tokens. */ 220 #define PLUSEQ 258 221 #define MINUSEQ 259 222 #define MULTEQ 260 223 #define DIVEQ 261 224 #define LSHIFTEQ 262 225 #define RSHIFTEQ 263 226 #define ANDEQ 264 227 #define OREQ 265 228 #define OROR 266 229 #define ANDAND 267 230 #define EQ 268 231 #define NE 269 232 #define LE 270 233 #define GE 271 234 #define LSHIFT 272 235 #define RSHIFT 273 236 #define UNARY 274 237 #define STRING 275 238 #define QUOTED_STRING 276 239 #define INTEGER 277 240 #define ABSOLUTE 278 241 #define ADDR 279 242 #define ALIGN_K 280 243 #define ALIGNOF 281 244 #define ASSERT_K 282 245 #define AS_NEEDED 283 246 #define AT 284 247 #define BIND 285 248 #define BLOCK 286 249 #define BYTE 287 250 #define CONSTANT 288 251 #define CONSTRUCTORS 289 252 #define COPY 290 253 #define CREATE_OBJECT_SYMBOLS 291 254 #define DATA_SEGMENT_ALIGN 292 255 #define DATA_SEGMENT_END 293 256 #define DATA_SEGMENT_RELRO_END 294 257 #define DEFINED 295 258 #define DSECT 296 259 #define ENTRY 297 260 #define EXCLUDE_FILE 298 261 #define EXTERN 299 262 #define FILL 300 263 #define FLOAT 301 264 #define FORCE_COMMON_ALLOCATION 302 265 #define GLOBAL 303 266 #define GROUP 304 267 #define HIDDEN 305 268 #define HLL 306 269 #define INCLUDE 307 270 #define INHIBIT_COMMON_ALLOCATION 308 271 #define INFO 309 272 #define INPUT 310 273 #define KEEP 311 274 #define LEN 312 275 #define LENGTH 313 276 #define LOADADDR 314 277 #define LOCAL 315 278 #define LONG 316 279 #define MAP 317 280 #define MAX_K 318 281 #define MEMORY 319 282 #define MIN_K 320 283 #define NEXT 321 284 #define NOCROSSREFS 322 285 #define NOFLOAT 323 286 #define NOLOAD 324 287 #define ONLY_IF_RO 325 288 #define ONLY_IF_RW 326 289 #define ORG 327 290 #define ORIGIN 328 291 #define OUTPUT 329 292 #define OUTPUT_ARCH 330 293 #define OUTPUT_FORMAT 331 294 #define OVERLAY 332 295 #define PHDRS 333 296 #define PROVIDE 334 297 #define PROVIDE_HIDDEN 335 298 #define QUAD 336 299 #define SEARCH_DIR 337 300 #define SECTIONS 338 301 #define SEGMENT_START 339 302 #define SHORT 340 303 #define SIZEOF 341 304 #define SIZEOF_HEADERS 342 305 #define SORT_BY_ALIGNMENT 343 306 #define SORT_BY_INIT_PRIORITY 344 307 #define SORT_BY_NAME 345 308 #define SPECIAL 346 309 #define SQUAD 347 310 #define STARTUP 348 311 #define SUBALIGN 349 312 #define SYSLIB 350 313 #define TARGET_K 351 314 #define TRUNCATE 352 315 #define VERSIONK 353 316 #define OPTION 354 317 #define PARSING_LINKER_SCRIPT 355 318 #define PARSING_VERSION_SCRIPT 356 319 #define PARSING_DEFSYM 357 320 #define PARSING_DYNAMIC_LIST 358 321 #define PARSING_SECTIONS_BLOCK 359 322 #define PARSING_SECTION_COMMANDS 360 323 #define PARSING_MEMORY_DEF 361 324 325 /* Value type. */ 326 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 327 328 union YYSTYPE 329 { 330 #line 53 "yyscript.y" /* yacc.c:355 */ 331 332 /* A string. */ 333 struct Parser_string string; 334 /* A number. */ 335 uint64_t integer; 336 /* An expression. */ 337 Expression_ptr expr; 338 /* An output section header. */ 339 struct Parser_output_section_header output_section_header; 340 /* An output section trailer. */ 341 struct Parser_output_section_trailer output_section_trailer; 342 /* A section constraint. */ 343 enum Section_constraint constraint; 344 /* A complete input section specification. */ 345 struct Input_section_spec input_section_spec; 346 /* A list of wildcard specifications, with exclusions. */ 347 struct Wildcard_sections wildcard_sections; 348 /* A single wildcard specification. */ 349 struct Wildcard_section wildcard_section; 350 /* A list of strings. */ 351 String_list_ptr string_list; 352 /* Information for a program header. */ 353 struct Phdr_info phdr_info; 354 /* Used for version scripts and within VERSION {}. */ 355 struct Version_dependency_list* deplist; 356 struct Version_expression_list* versyms; 357 struct Version_tree* versnode; 358 enum Script_section_type section_type; 359 360 #line 361 "yyscript.c" /* yacc.c:355 */ 361 }; 362 363 typedef union YYSTYPE YYSTYPE; 364 # define YYSTYPE_IS_TRIVIAL 1 365 # define YYSTYPE_IS_DECLARED 1 366 #endif 367 368 369 370 int yyparse (void* closure); 371 372 #endif /* !YY_YY_YYSCRIPT_H_INCLUDED */ 373 374 /* Copy the second part of user declarations. */ 375 376 #line 377 "yyscript.c" /* yacc.c:358 */ 377 378 #ifdef short 379 # undef short 380 #endif 381 382 #ifdef YYTYPE_UINT8 383 typedef YYTYPE_UINT8 yytype_uint8; 384 #else 385 typedef unsigned char yytype_uint8; 386 #endif 387 388 #ifdef YYTYPE_INT8 389 typedef YYTYPE_INT8 yytype_int8; 390 #else 391 typedef signed char yytype_int8; 392 #endif 393 394 #ifdef YYTYPE_UINT16 395 typedef YYTYPE_UINT16 yytype_uint16; 396 #else 397 typedef unsigned short int yytype_uint16; 398 #endif 399 400 #ifdef YYTYPE_INT16 401 typedef YYTYPE_INT16 yytype_int16; 402 #else 403 typedef short int yytype_int16; 404 #endif 405 406 #ifndef YYSIZE_T 407 # ifdef __SIZE_TYPE__ 408 # define YYSIZE_T __SIZE_TYPE__ 409 # elif defined size_t 410 # define YYSIZE_T size_t 411 # elif ! defined YYSIZE_T 412 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 413 # define YYSIZE_T size_t 414 # else 415 # define YYSIZE_T unsigned int 416 # endif 417 #endif 418 419 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) 420 421 #ifndef YY_ 422 # if defined YYENABLE_NLS && YYENABLE_NLS 423 # if ENABLE_NLS 424 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 425 # define YY_(Msgid) dgettext ("bison-runtime", Msgid) 426 # endif 427 # endif 428 # ifndef YY_ 429 # define YY_(Msgid) Msgid 430 # endif 431 #endif 432 433 #ifndef YY_ATTRIBUTE 434 # if (defined __GNUC__ \ 435 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ 436 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 437 # define YY_ATTRIBUTE(Spec) __attribute__(Spec) 438 # else 439 # define YY_ATTRIBUTE(Spec) /* empty */ 440 # endif 441 #endif 442 443 #ifndef YY_ATTRIBUTE_PURE 444 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) 445 #endif 446 447 #ifndef YY_ATTRIBUTE_UNUSED 448 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 449 #endif 450 451 #if !defined _Noreturn \ 452 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) 453 # if defined _MSC_VER && 1200 <= _MSC_VER 454 # define _Noreturn __declspec (noreturn) 455 # else 456 # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) 457 # endif 458 #endif 459 460 /* Suppress unused-variable warnings by "using" E. */ 461 #if ! defined lint || defined __GNUC__ 462 # define YYUSE(E) ((void) (E)) 463 #else 464 # define YYUSE(E) /* empty */ 465 #endif 466 467 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 468 /* Suppress an incorrect diagnostic about yylval being uninitialized. */ 469 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 470 _Pragma ("GCC diagnostic push") \ 471 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 472 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 473 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 474 _Pragma ("GCC diagnostic pop") 475 #else 476 # define YY_INITIAL_VALUE(Value) Value 477 #endif 478 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 479 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 480 # define YY_IGNORE_MAYBE_UNINITIALIZED_END 481 #endif 482 #ifndef YY_INITIAL_VALUE 483 # define YY_INITIAL_VALUE(Value) /* Nothing. */ 484 #endif 485 486 487 #if ! defined yyoverflow || YYERROR_VERBOSE 488 489 /* The parser invokes alloca or malloc; define the necessary symbols. */ 490 491 # ifdef YYSTACK_USE_ALLOCA 492 # if YYSTACK_USE_ALLOCA 493 # ifdef __GNUC__ 494 # define YYSTACK_ALLOC __builtin_alloca 495 # elif defined __BUILTIN_VA_ARG_INCR 496 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ 497 # elif defined _AIX 498 # define YYSTACK_ALLOC __alloca 499 # elif defined _MSC_VER 500 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ 501 # define alloca _alloca 502 # else 503 # define YYSTACK_ALLOC alloca 504 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 505 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 506 /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 507 # ifndef EXIT_SUCCESS 508 # define EXIT_SUCCESS 0 509 # endif 510 # endif 511 # endif 512 # endif 513 # endif 514 515 # ifdef YYSTACK_ALLOC 516 /* Pacify GCC's 'empty if-body' warning. */ 517 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 518 # ifndef YYSTACK_ALLOC_MAXIMUM 519 /* The OS might guarantee only one guard page at the bottom of the stack, 520 and a page size can be as small as 4096 bytes. So we cannot safely 521 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number 522 to allow for a few compiler-allocated temporary stack slots. */ 523 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ 524 # endif 525 # else 526 # define YYSTACK_ALLOC YYMALLOC 527 # define YYSTACK_FREE YYFREE 528 # ifndef YYSTACK_ALLOC_MAXIMUM 529 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 530 # endif 531 # if (defined __cplusplus && ! defined EXIT_SUCCESS \ 532 && ! ((defined YYMALLOC || defined malloc) \ 533 && (defined YYFREE || defined free))) 534 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 535 # ifndef EXIT_SUCCESS 536 # define EXIT_SUCCESS 0 537 # endif 538 # endif 539 # ifndef YYMALLOC 540 # define YYMALLOC malloc 541 # if ! defined malloc && ! defined EXIT_SUCCESS 542 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 543 # endif 544 # endif 545 # ifndef YYFREE 546 # define YYFREE free 547 # if ! defined free && ! defined EXIT_SUCCESS 548 void free (void *); /* INFRINGES ON USER NAME SPACE */ 549 # endif 550 # endif 551 # endif 552 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ 553 554 555 #if (! defined yyoverflow \ 556 && (! defined __cplusplus \ 557 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 558 559 /* A type that is properly aligned for any stack member. */ 560 union yyalloc 561 { 562 yytype_int16 yyss_alloc; 563 YYSTYPE yyvs_alloc; 564 }; 565 566 /* The size of the maximum gap between one aligned stack and the next. */ 567 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) 568 569 /* The size of an array large to enough to hold all stacks, each with 570 N elements. */ 571 # define YYSTACK_BYTES(N) \ 572 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ 573 + YYSTACK_GAP_MAXIMUM) 574 575 # define YYCOPY_NEEDED 1 576 577 /* Relocate STACK from its old location to the new one. The 578 local variables YYSIZE and YYSTACKSIZE give the old and new number of 579 elements in the stack, and YYPTR gives the new location of the 580 stack. Advance YYPTR to a properly aligned location for the next 581 stack. */ 582 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ 583 do \ 584 { \ 585 YYSIZE_T yynewbytes; \ 586 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ 587 Stack = &yyptr->Stack_alloc; \ 588 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 589 yyptr += yynewbytes / sizeof (*yyptr); \ 590 } \ 591 while (0) 592 593 #endif 594 595 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 596 /* Copy COUNT objects from SRC to DST. The source and destination do 597 not overlap. */ 598 # ifndef YYCOPY 599 # if defined __GNUC__ && 1 < __GNUC__ 600 # define YYCOPY(Dst, Src, Count) \ 601 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 602 # else 603 # define YYCOPY(Dst, Src, Count) \ 604 do \ 605 { \ 606 YYSIZE_T yyi; \ 607 for (yyi = 0; yyi < (Count); yyi++) \ 608 (Dst)[yyi] = (Src)[yyi]; \ 609 } \ 610 while (0) 611 # endif 612 # endif 613 #endif /* !YYCOPY_NEEDED */ 614 615 /* YYFINAL -- State number of the termination state. */ 616 #define YYFINAL 26 617 /* YYLAST -- Last index in YYTABLE. */ 618 #define YYLAST 1465 619 620 /* YYNTOKENS -- Number of terminals. */ 621 #define YYNTOKENS 130 622 /* YYNNTS -- Number of nonterminals. */ 623 #define YYNNTS 70 624 /* YYNRULES -- Number of rules. */ 625 #define YYNRULES 241 626 /* YYNSTATES -- Number of states. */ 627 #define YYNSTATES 555 628 629 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned 630 by yylex, with out-of-bounds checking. */ 631 #define YYUNDEFTOK 2 632 #define YYMAXUTOK 361 633 634 #define YYTRANSLATE(YYX) \ 635 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 636 637 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 638 as returned by yylex, without out-of-bounds checking. */ 639 static const yytype_uint8 yytranslate[] = 640 { 641 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 644 2, 2, 2, 126, 2, 2, 2, 31, 18, 2, 645 120, 121, 29, 27, 124, 28, 2, 30, 2, 2, 646 2, 2, 2, 2, 2, 2, 2, 2, 13, 125, 647 21, 7, 22, 12, 2, 2, 2, 2, 2, 2, 648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 650 2, 2, 2, 2, 17, 2, 2, 2, 2, 2, 651 2, 2, 2, 2, 2, 2, 2, 2, 128, 2, 652 2, 127, 2, 2, 2, 2, 2, 2, 2, 2, 653 2, 2, 2, 122, 16, 123, 129, 2, 2, 2, 654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 666 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 667 5, 6, 8, 9, 10, 11, 14, 15, 19, 20, 668 23, 24, 25, 26, 32, 33, 34, 35, 36, 37, 669 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 670 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 671 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 672 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 673 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 674 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 675 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 676 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 677 118, 119 678 }; 679 680 #if YYDEBUG 681 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ 682 static const yytype_uint16 yyrline[] = 683 { 684 0, 236, 236, 237, 238, 239, 240, 241, 242, 247, 685 248, 253, 254, 257, 256, 260, 262, 263, 264, 266, 686 272, 279, 280, 283, 282, 286, 289, 288, 292, 294, 687 295, 297, 300, 301, 309, 317, 317, 323, 325, 327, 688 333, 334, 339, 341, 344, 343, 351, 352, 357, 359, 689 360, 362, 366, 365, 374, 376, 374, 393, 398, 403, 690 408, 413, 418, 427, 429, 434, 439, 444, 454, 455, 691 462, 463, 470, 471, 478, 479, 481, 483, 489, 498, 692 500, 505, 507, 512, 515, 521, 524, 529, 531, 537, 693 538, 539, 541, 543, 545, 552, 553, 556, 562, 564, 694 566, 568, 570, 577, 579, 585, 592, 601, 606, 615, 695 620, 625, 630, 639, 644, 663, 682, 691, 693, 700, 696 702, 707, 716, 717, 722, 725, 728, 733, 736, 739, 697 743, 745, 747, 751, 753, 755, 760, 761, 766, 775, 698 777, 784, 785, 793, 798, 809, 818, 820, 826, 832, 699 838, 844, 850, 856, 862, 868, 870, 872, 878, 878, 700 888, 890, 892, 894, 896, 898, 900, 902, 904, 906, 701 908, 910, 912, 914, 916, 918, 920, 922, 924, 926, 702 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 703 948, 950, 952, 954, 956, 958, 960, 962, 964, 966, 704 968, 970, 975, 980, 982, 990, 996, 1006, 1009, 1010, 705 1014, 1020, 1024, 1025, 1029, 1033, 1038, 1045, 1049, 1057, 706 1058, 1060, 1062, 1064, 1073, 1078, 1083, 1088, 1095, 1094, 707 1105, 1104, 1111, 1116, 1126, 1128, 1135, 1136, 1141, 1142, 708 1147, 1148 709 }; 710 #endif 711 712 #if YYDEBUG || YYERROR_VERBOSE || 1 713 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 714 First, the terminals, then, starting at YYNTOKENS, nonterminals. */ 715 static const char *const yytname[] = 716 { 717 "$end", "error", "$undefined", "PLUSEQ", "MINUSEQ", "MULTEQ", "DIVEQ", 718 "'='", "LSHIFTEQ", "RSHIFTEQ", "ANDEQ", "OREQ", "'?'", "':'", "OROR", 719 "ANDAND", "'|'", "'^'", "'&'", "EQ", "NE", "'<'", "'>'", "LE", "GE", 720 "LSHIFT", "RSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'", "UNARY", "STRING", 721 "QUOTED_STRING", "INTEGER", "ABSOLUTE", "ADDR", "ALIGN_K", "ALIGNOF", 722 "ASSERT_K", "AS_NEEDED", "AT", "BIND", "BLOCK", "BYTE", "CONSTANT", 723 "CONSTRUCTORS", "COPY", "CREATE_OBJECT_SYMBOLS", "DATA_SEGMENT_ALIGN", 724 "DATA_SEGMENT_END", "DATA_SEGMENT_RELRO_END", "DEFINED", "DSECT", 725 "ENTRY", "EXCLUDE_FILE", "EXTERN", "FILL", "FLOAT", 726 "FORCE_COMMON_ALLOCATION", "GLOBAL", "GROUP", "HIDDEN", "HLL", "INCLUDE", 727 "INHIBIT_COMMON_ALLOCATION", "INFO", "INPUT", "KEEP", "LEN", "LENGTH", 728 "LOADADDR", "LOCAL", "LONG", "MAP", "MAX_K", "MEMORY", "MIN_K", "NEXT", 729 "NOCROSSREFS", "NOFLOAT", "NOLOAD", "ONLY_IF_RO", "ONLY_IF_RW", "ORG", 730 "ORIGIN", "OUTPUT", "OUTPUT_ARCH", "OUTPUT_FORMAT", "OVERLAY", "PHDRS", 731 "PROVIDE", "PROVIDE_HIDDEN", "QUAD", "SEARCH_DIR", "SECTIONS", 732 "SEGMENT_START", "SHORT", "SIZEOF", "SIZEOF_HEADERS", 733 "SORT_BY_ALIGNMENT", "SORT_BY_INIT_PRIORITY", "SORT_BY_NAME", "SPECIAL", 734 "SQUAD", "STARTUP", "SUBALIGN", "SYSLIB", "TARGET_K", "TRUNCATE", 735 "VERSIONK", "OPTION", "PARSING_LINKER_SCRIPT", "PARSING_VERSION_SCRIPT", 736 "PARSING_DEFSYM", "PARSING_DYNAMIC_LIST", "PARSING_SECTIONS_BLOCK", 737 "PARSING_SECTION_COMMANDS", "PARSING_MEMORY_DEF", "'('", "')'", "'{'", 738 "'}'", "','", "';'", "'!'", "'o'", "'l'", "'~'", "$accept", "top", 739 "linker_script", "file_cmd", "$@1", "$@2", "$@3", "ignore_cmd", 740 "extern_name_list", "$@4", "extern_name_list_body", "input_list", 741 "input_list_element", "$@5", "sections_block", "section_block_cmd", 742 "$@6", "section_header", "$@7", "$@8", "opt_address_and_section_type", 743 "section_type", "opt_at", "opt_align", "opt_subalign", "opt_constraint", 744 "section_trailer", "opt_memspec", "opt_at_memspec", "opt_phdr", 745 "opt_fill", "section_cmds", "section_cmd", "data_length", 746 "input_section_spec", "input_section_no_keep", "wildcard_file", 747 "wildcard_sections", "wildcard_section", "exclude_names", 748 "wildcard_name", "memory_defs", "memory_def", "memory_attr", 749 "memory_origin", "memory_length", "phdrs_defs", "phdr_def", "phdr_type", 750 "phdr_info", "assignment", "parse_exp", "$@9", "exp", "defsym_expr", 751 "dynamic_list_expr", "dynamic_list_nodes", "dynamic_list_node", 752 "version_script", "vers_nodes", "vers_node", "verdep", "vers_tag", 753 "vers_defns", "$@10", "$@11", "string", "end", "opt_semicolon", 754 "opt_comma", YY_NULLPTR 755 }; 756 #endif 757 758 # ifdef YYPRINT 759 /* YYTOKNUM[NUM] -- (External) token number corresponding to the 760 (internal) symbol number NUM (which must be that of a token). */ 761 static const yytype_uint16 yytoknum[] = 762 { 763 0, 256, 257, 258, 259, 260, 261, 61, 262, 263, 764 264, 265, 63, 58, 266, 267, 124, 94, 38, 268, 765 269, 60, 62, 270, 271, 272, 273, 43, 45, 42, 766 47, 37, 274, 275, 276, 277, 278, 279, 280, 281, 767 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 768 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 769 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 770 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 771 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 772 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 773 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 774 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 775 40, 41, 123, 125, 44, 59, 33, 111, 108, 126 776 }; 777 # endif 778 779 #define YYPACT_NINF -423 780 781 #define yypact_value_is_default(Yystate) \ 782 (!!((Yystate) == (-423))) 783 784 #define YYTABLE_NINF -120 785 786 #define yytable_value_is_error(Yytable_value) \ 787 0 788 789 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 790 STATE-NUM. */ 791 static const yytype_int16 yypact[] = 792 { 793 365, -423, 81, 214, -112, -423, -423, -423, 14, 1300, 794 -423, -423, 33, -423, 81, -423, -93, -423, 52, 103, 795 -423, -112, -423, 177, 568, 9, -423, -37, -28, -1, 796 -423, -423, 15, 214, -423, 19, -69, 60, 62, 1, 797 64, 80, 82, 73, 84, 90, 86, -423, -423, -423, 798 136, 318, -423, -423, 214, 208, 217, 104, 108, -423, 799 33, -423, 113, -423, 132, 155, 214, -423, 136, 318, 800 -423, -423, 157, -423, -423, 160, 214, 162, -423, -423, 801 -423, 168, -423, -423, -423, 169, -423, -423, 174, -423, 802 136, 38, -423, 92, -423, 214, -423, 195, 214, -423, 803 231, -423, 214, 214, -423, 214, 214, 214, -423, 214, 804 -423, 214, -423, -423, -423, -423, -423, -423, -423, -423, 805 -423, -423, -423, -423, 151, 103, 103, 192, 159, 156, 806 -423, 1253, 21, -423, 214, -423, -423, -423, 137, -423, 807 -423, -423, 39, 422, -423, 46, -423, 214, -423, 199, 808 207, 215, 220, 214, 231, 341, 316, -423, -40, -423, 809 -423, 144, 229, 3, 36, 345, 346, 264, -423, 266, 810 81, 267, -423, -423, -423, -423, -423, -423, -423, -423, 811 -423, -423, 269, 270, -423, -423, -423, 214, -17, 1253, 812 1253, -423, 271, 272, 276, 279, 280, 305, 306, 309, 813 310, 312, 322, 323, 324, 330, 332, 333, 337, 339, 814 -423, 1253, 1253, 1253, 1434, -423, 335, 265, 340, 343, 815 -423, 1156, 420, 1151, 350, 349, 355, 364, 356, 374, 816 375, -423, 376, 397, 398, 399, 400, 7, -423, -423, 817 -423, -10, 508, 214, -423, -423, -6, -423, 70, -423, 818 -423, 402, -423, 231, -423, -423, -423, 214, -423, -423, 819 300, -423, -423, -423, 191, -423, 401, -423, 103, 96, 820 159, 403, -423, -8, -423, -423, -423, 1253, 214, 1253, 821 214, 1253, 1253, 214, 1253, 1253, 1253, 214, 214, 214, 822 1253, 1253, 214, 214, 214, 281, -423, -423, 1253, 1253, 823 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 824 1253, 1253, 1253, 1253, 1253, 1253, 1253, -423, 214, -423, 825 -423, -423, -423, -423, -423, -423, 510, 406, 408, 491, 826 -423, 153, 214, -423, 216, -423, -423, -423, -423, 216, 827 53, 216, 53, -423, 412, 214, 410, -67, 413, 214, 828 -423, -423, 416, 231, -423, 415, -423, 29, -423, 421, 829 426, -423, -423, 405, 535, -423, -423, -423, 825, 430, 830 342, 431, 392, 862, 432, 714, 882, 751, 433, 434, 831 435, 771, 791, 455, 454, 458, -423, 1414, 731, 841, 832 948, 481, 562, 353, 353, 463, 463, 463, 463, 409, 833 409, 315, 315, -423, -423, -423, 474, 565, -423, 583, 834 1253, 480, 496, 591, 485, 486, 75, -423, 488, 490, 835 493, 497, -423, 495, -423, -423, -423, -423, 611, -423, 836 -423, -423, 98, 214, 499, 29, 500, 43, -423, -423, 837 159, 498, 103, 103, -423, -423, -423, 1253, -423, 214, 838 -423, -423, 1253, -423, 1253, -423, -423, -423, 1253, 1253, 839 -423, 1253, -423, 1253, -423, 598, -423, 902, 1253, 502, 840 -423, -423, 614, -423, -423, 216, -423, -423, -423, 216, 841 -423, -423, -423, 503, -423, -423, -423, 594, -423, -423, 842 507, 405, 933, 514, 970, 990, 1010, 1041, 1078, 1434, 843 214, -423, 596, -423, 1098, 1253, 114, -423, -423, 105, 844 512, -423, 519, 520, 159, 521, -423, -423, -423, -423, 845 -423, -423, -423, -423, 621, -423, -423, 1118, -423, -423, 846 -423, -423, -423, 18, 29, 29, -423, 214, 154, -423, 847 -423, -423, -423, 638, -423, -423, -423, -423, 214, 512, 848 -423, -423, -423, -423, -423 849 }; 850 851 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 852 Performed when YYTABLE does not specify something else to do. Zero 853 means the default is an error. */ 854 static const yytype_uint8 yydefact[] = 855 { 856 0, 10, 0, 0, 0, 47, 87, 123, 0, 2, 857 234, 235, 219, 3, 211, 212, 0, 4, 0, 0, 858 5, 207, 208, 6, 7, 241, 1, 0, 0, 0, 859 12, 13, 0, 0, 15, 0, 0, 0, 0, 0, 860 0, 0, 0, 0, 0, 0, 0, 33, 9, 32, 861 0, 0, 224, 225, 232, 0, 0, 0, 0, 213, 862 219, 158, 0, 209, 0, 0, 0, 46, 0, 54, 863 121, 120, 0, 102, 94, 0, 0, 0, 100, 98, 864 101, 0, 99, 97, 88, 0, 90, 103, 0, 107, 865 0, 105, 240, 126, 158, 0, 35, 0, 0, 31, 866 0, 123, 0, 0, 137, 0, 0, 0, 23, 0, 867 26, 0, 237, 236, 29, 158, 158, 158, 158, 158, 868 158, 158, 158, 158, 0, 0, 0, 0, 220, 0, 869 206, 0, 0, 158, 0, 51, 49, 52, 0, 158, 870 158, 96, 0, 0, 158, 0, 89, 0, 122, 129, 871 0, 0, 0, 0, 0, 0, 0, 44, 241, 40, 872 42, 241, 0, 0, 0, 0, 0, 0, 47, 0, 873 0, 0, 147, 148, 149, 150, 146, 151, 152, 153, 874 154, 228, 0, 0, 214, 226, 227, 233, 0, 0, 875 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 877 189, 0, 0, 0, 159, 185, 0, 0, 0, 0, 878 57, 0, 68, 0, 0, 0, 0, 0, 105, 0, 879 0, 119, 0, 0, 0, 0, 0, 241, 110, 113, 880 125, 0, 0, 0, 28, 11, 36, 37, 241, 158, 881 43, 0, 16, 0, 17, 34, 19, 0, 21, 136, 882 0, 158, 158, 22, 0, 25, 0, 18, 0, 221, 883 222, 0, 215, 0, 217, 164, 161, 0, 0, 0, 884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 885 0, 0, 0, 0, 0, 0, 162, 163, 0, 0, 886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 887 0, 0, 0, 0, 0, 0, 0, 210, 0, 48, 888 87, 65, 64, 66, 63, 67, 0, 0, 0, 70, 889 59, 0, 0, 93, 0, 104, 95, 108, 91, 0, 890 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 891 38, 14, 0, 0, 41, 0, 140, 141, 139, 0, 892 0, 24, 27, 239, 0, 230, 216, 218, 0, 0, 893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 894 0, 0, 0, 0, 0, 0, 160, 0, 182, 181, 895 180, 179, 178, 172, 173, 176, 177, 174, 175, 170, 896 171, 168, 169, 165, 166, 167, 0, 0, 58, 0, 897 0, 0, 72, 0, 0, 0, 241, 118, 0, 0, 898 0, 0, 109, 0, 127, 131, 130, 132, 0, 30, 899 39, 155, 241, 0, 0, 141, 0, 141, 156, 157, 900 238, 0, 0, 0, 197, 192, 198, 0, 190, 0, 901 200, 196, 0, 203, 0, 188, 195, 193, 0, 0, 902 194, 0, 191, 0, 50, 80, 61, 0, 0, 0, 903 55, 60, 0, 92, 112, 0, 115, 116, 114, 0, 904 128, 158, 45, 0, 158, 143, 138, 0, 142, 229, 905 0, 239, 0, 0, 0, 0, 0, 0, 0, 183, 906 0, 53, 82, 69, 0, 0, 74, 62, 117, 241, 907 241, 20, 0, 0, 223, 0, 199, 205, 201, 202, 908 186, 187, 204, 79, 0, 84, 71, 0, 75, 76, 909 77, 56, 111, 0, 141, 141, 231, 0, 86, 73, 910 134, 133, 135, 0, 145, 144, 81, 158, 0, 241, 911 158, 85, 83, 78, 124 912 }; 913 914 /* YYPGOTO[NTERM-NUM]. */ 915 static const yytype_int16 yypgoto[] = 916 { 917 -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, 918 -423, -148, 393, -423, 479, -423, -423, -423, -423, -423, 919 -423, 317, -423, -423, -423, -423, -423, -423, -423, -423, 920 -423, 329, -423, -423, -423, 509, -423, -423, -245, 171, 921 -21, 551, -423, -423, -423, -423, -423, -423, -423, -422, 922 -4, -83, -423, 259, -423, -423, -423, 632, 484, -423, 923 641, -423, 604, -15, -423, -423, -2, -60, 165, -23 924 }; 925 926 /* YYDEFGOTO[NTERM-NUM]. */ 927 static const yytype_int16 yydefgoto[] = 928 { 929 -1, 8, 9, 48, 97, 168, 170, 49, 152, 153, 930 246, 158, 159, 251, 23, 67, 219, 137, 138, 506, 931 222, 327, 329, 412, 470, 531, 501, 502, 525, 538, 932 549, 24, 84, 85, 86, 87, 88, 237, 238, 416, 933 239, 25, 148, 242, 428, 543, 164, 259, 357, 436, 934 68, 130, 131, 295, 17, 20, 21, 22, 13, 14, 935 15, 273, 57, 58, 268, 443, 215, 114, 441, 253 936 }; 937 938 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If 939 positive, shift that token. If negative, reduce the rule whose 940 number is the opposite. If YYTABLE_NINF, syntax error. */ 941 static const yytype_int16 yytable[] = 942 { 943 16, 18, 93, 89, 62, 50, 248, 51, 136, -8, 944 19, 150, 16, 485, 26, 488, 10, 11, 425, 426, 945 90, 69, 91, 10, 11, 10, 11, 10, 11, 60, 946 146, 99, 172, 173, 174, 175, 176, 177, 178, 179, 947 180, 115, 116, 117, 118, 119, 120, 121, 122, 123, 948 217, 70, 124, 101, 185, 186, 224, 225, 70, 61, 949 427, 232, 10, 11, 135, 70, 52, 53, 71, 10, 950 11, 434, 10, 11, 141, 71, 10, 11, 187, 10, 951 11, 252, 71, 94, 92, 434, 10, 11, 540, 541, 952 54, 149, 95, 151, 55, 418, 155, 420, 160, 422, 953 162, 163, 233, 165, 166, 167, 56, 169, 272, 171, 954 182, 183, 544, 545, 10, 11, 345, 366, 349, 96, 955 435, 89, 230, 104, 256, 10, 11, 257, 343, 185, 956 186, 92, 218, 92, 435, 98, 52, 53, 93, 100, 957 228, 231, 226, 231, 216, 240, 542, 234, 235, 236, 958 220, 247, 160, 187, 234, 235, 236, 147, -119, 258, 959 54, 547, 260, 487, 189, 190, 352, 548, 16, 364, 960 10, 11, 191, 192, 193, 194, 195, 196, 359, 360, 961 102, 197, 103, 198, 105, 271, 274, 199, 200, 201, 962 202, 351, 185, 186, 92, 108, 474, 528, 529, 92, 963 106, 321, 107, 12, 109, 432, 111, 322, 203, 204, 964 10, 11, 110, 205, 344, 206, 187, 64, 530, 482, 965 323, 125, 92, 207, 10, 11, 532, 127, 70, 92, 966 126, 64, 65, 128, 208, 324, 209, 210, 132, 346, 967 32, 348, 66, 325, 350, 71, 65, 10, 11, 10, 968 11, 160, 133, 363, 32, 355, 66, 221, 358, 156, 969 112, 113, 69, 212, 10, 11, 213, 254, 92, 40, 970 41, 367, 157, 181, 413, 134, 369, 139, 371, 188, 971 140, 374, 142, 40, 41, 378, 379, 380, 143, 144, 972 383, 384, 385, 298, 145, 299, 300, 301, 302, 303, 973 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 974 314, 315, 316, 230, 361, 154, 406, 184, 417, 241, 975 419, 115, 116, 117, 118, 119, 120, 121, 122, 123, 976 415, 243, 231, 10, 11, 356, 244, 231, 231, 231, 977 231, 245, 231, 423, 314, 315, 316, 430, 249, 250, 978 255, 160, 261, 262, 298, 437, 299, 300, 301, 302, 979 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 980 313, 314, 315, 316, 306, 307, 308, 309, 310, 311, 981 312, 313, 314, 315, 316, 263, 89, 265, 267, 318, 982 214, 277, 278, 475, 269, 270, 279, 223, 510, 280, 983 281, 512, 386, 90, 298, 91, 299, 300, 301, 302, 984 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 985 313, 314, 315, 316, 70, 282, 283, 490, 491, 284, 986 285, 483, 286, 437, 70, 437, 312, 313, 314, 315, 987 316, 71, 287, 288, 289, 10, 11, 493, 275, 276, 988 290, 71, 291, 292, 508, 10, 11, 293, 417, 294, 989 317, 319, 328, 446, 551, 320, 447, 554, 421, 229, 990 333, 296, 297, 231, 332, 334, -119, 231, 1, 2, 991 3, 4, 5, 6, 7, 335, 475, 533, 310, 311, 992 312, 313, 314, 315, 316, 336, 337, 338, 523, 303, 993 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 994 314, 315, 316, 234, 235, 236, 449, 339, 340, 341, 995 342, 347, 353, 408, 362, 365, 553, 409, 410, 411, 996 440, 424, 437, 437, 429, 546, 368, 431, 370, 433, 997 372, 373, 438, 375, 376, 377, 552, 439, 442, 381, 998 382, 445, 448, 451, 455, 456, 457, 387, 388, 389, 999 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 1000 400, 401, 402, 403, 404, 405, 460, 70, 461, 462, 1001 70, 304, 305, 306, 307, 308, 309, 310, 311, 312, 1002 313, 314, 315, 316, 71, 464, 466, 71, 10, 11, 1003 468, 10, 11, 469, 471, 72, 472, 473, 72, 476, 1004 73, 477, 74, 73, 478, 74, 480, 479, 481, 484, 1005 500, 489, 505, 75, 511, 486, 75, 507, 32, 513, 1006 76, 32, 514, 76, 77, 517, 92, 77, 524, 78, 1007 534, 535, 78, 537, 536, 550, 354, 264, 414, 407, 1008 509, 227, 161, 63, 266, 59, 515, 40, 41, 79, 1009 40, 41, 79, 80, 129, 0, 80, 0, 81, 467, 1010 82, 81, 0, 82, 0, 0, 0, 0, 0, 0, 1011 0, 0, 0, 0, 0, 0, 0, 0, 465, 0, 1012 83, 0, 0, 83, 0, 0, 0, 0, 0, 0, 1013 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 1014 0, 494, 0, 495, 0, 0, 0, 496, 497, 0, 1015 498, 0, 499, 0, 0, 0, 298, 504, 299, 300, 1016 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1017 311, 312, 313, 314, 315, 316, 300, 301, 302, 303, 1018 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1019 314, 315, 316, 298, 527, 299, 300, 301, 302, 303, 1020 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1021 314, 315, 316, 298, 0, 299, 300, 301, 302, 303, 1022 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1023 314, 315, 316, 298, 0, 299, 300, 301, 302, 303, 1024 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1025 314, 315, 316, 0, 0, 0, 0, 0, 0, 0, 1026 0, 0, 0, 0, 0, 0, 0, 298, 452, 299, 1027 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 1028 310, 311, 312, 313, 314, 315, 316, 301, 302, 303, 1029 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1030 314, 315, 316, 0, 298, 454, 299, 300, 301, 302, 1031 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 1032 313, 314, 315, 316, 298, 458, 299, 300, 301, 302, 1033 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 1034 313, 314, 315, 316, 298, 459, 299, 300, 301, 302, 1035 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 1036 313, 314, 315, 316, 0, 0, 0, 0, 0, 0, 1037 0, 0, 0, 0, 0, 298, 444, 299, 300, 301, 1038 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 1039 312, 313, 314, 315, 316, 302, 303, 304, 305, 306, 1040 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 1041 0, 0, 298, 450, 299, 300, 301, 302, 303, 304, 1042 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1043 315, 316, 298, 453, 299, 300, 301, 302, 303, 304, 1044 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1045 315, 316, 298, 503, 299, 300, 301, 302, 303, 304, 1046 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 1047 315, 316, 0, 0, 0, 0, 0, 0, 0, 0, 1048 0, 0, 0, 298, 516, 299, 300, 301, 302, 303, 1049 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1050 314, 315, 316, 0, 0, 0, 0, 0, 0, 0, 1051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1052 298, 518, 299, 300, 301, 302, 303, 304, 305, 306, 1053 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 1054 298, 519, 299, 300, 301, 302, 303, 304, 305, 306, 1055 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 1056 298, 520, 299, 300, 301, 302, 303, 304, 305, 306, 1057 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 1058 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1059 0, 0, 521, 298, 330, 299, 300, 301, 302, 303, 1060 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 1061 314, 315, 316, 189, 190, 0, 0, 0, 0, 10, 1062 11, 191, 192, 193, 194, 195, 196, 0, 0, 522, 1063 197, 0, 198, 0, 321, 0, 199, 200, 201, 202, 1064 322, 0, 0, 0, 0, 0, 0, 0, 0, 526, 1065 0, 0, 0, 323, 0, 0, 0, 203, 204, 0, 1066 0, 0, 205, 0, 206, 0, 0, 0, 324, 539, 1067 0, 0, 207, 0, 0, 0, 325, 0, 0, 0, 1068 0, 0, 0, 208, 0, 209, 210, 0, 0, 0, 1069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1070 0, 331, 0, 0, 0, 0, 211, 326, 0, 0, 1071 189, 190, 212, 0, 0, 213, 10, 11, 191, 192, 1072 193, 194, 195, 196, 0, 0, 0, 197, 0, 198, 1073 0, 0, 0, 199, 200, 201, 202, 0, 0, 0, 1074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1075 0, 0, 0, 0, 203, 204, 0, 0, 0, 205, 1076 0, 206, 0, 10, 11, 0, 0, 0, 0, 207, 1077 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1078 208, 0, 209, 210, 0, 28, 0, 29, 0, 0, 1079 30, 0, 31, 32, 0, 33, 34, 0, 35, 0, 1080 0, 0, 0, 211, 0, 0, 0, 36, 0, 212, 1081 0, 0, 213, 0, 0, 0, 0, 0, 37, 38, 1082 0, 39, 40, 41, 0, 42, 43, 0, 0, 0, 1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 1084 0, 45, 46, 0, 0, 0, 0, 0, 0, 0, 1085 0, 0, 0, 0, 0, 47, 298, 463, 299, 300, 1086 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1087 311, 312, 313, 314, 315, 316, 298, 0, 299, 300, 1088 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1089 311, 312, 313, 314, 315, 316 1090 }; 1091 1092 static const yytype_int16 yycheck[] = 1093 { 1094 2, 3, 25, 24, 19, 9, 154, 9, 68, 0, 1095 122, 94, 14, 435, 0, 437, 33, 34, 85, 86, 1096 24, 23, 24, 33, 34, 33, 34, 33, 34, 122, 1097 90, 33, 115, 116, 117, 118, 119, 120, 121, 122, 1098 123, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1099 133, 12, 54, 122, 33, 34, 139, 140, 12, 7, 1100 127, 144, 33, 34, 66, 12, 33, 34, 29, 33, 1101 34, 42, 33, 34, 76, 29, 33, 34, 57, 33, 1102 34, 121, 29, 120, 124, 42, 33, 34, 70, 71, 1103 57, 93, 120, 95, 61, 340, 98, 342, 100, 344, 1104 102, 103, 56, 105, 106, 107, 73, 109, 125, 111, 1105 125, 126, 534, 535, 33, 34, 126, 125, 124, 120, 1106 91, 142, 143, 122, 121, 33, 34, 124, 121, 33, 1107 34, 124, 134, 124, 91, 120, 33, 34, 161, 120, 1108 142, 143, 103, 145, 123, 147, 128, 101, 102, 103, 1109 13, 153, 154, 57, 101, 102, 103, 65, 120, 123, 1110 57, 7, 164, 120, 27, 28, 249, 13, 170, 73, 1111 33, 34, 35, 36, 37, 38, 39, 40, 261, 262, 1112 120, 44, 120, 46, 120, 187, 188, 50, 51, 52, 1113 53, 121, 33, 34, 124, 122, 121, 83, 84, 124, 1114 120, 48, 120, 122, 120, 353, 120, 54, 71, 72, 1115 33, 34, 122, 76, 237, 78, 57, 40, 104, 121, 1116 67, 13, 124, 86, 33, 34, 121, 123, 12, 124, 1117 13, 40, 55, 125, 97, 82, 99, 100, 125, 241, 1118 63, 243, 65, 90, 246, 29, 55, 33, 34, 33, 1119 34, 253, 120, 268, 63, 257, 65, 120, 260, 28, 1120 124, 125, 264, 126, 33, 34, 129, 123, 124, 92, 1121 93, 273, 41, 122, 121, 120, 278, 120, 280, 123, 1122 120, 283, 120, 92, 93, 287, 288, 289, 120, 120, 1123 292, 293, 294, 12, 120, 14, 15, 16, 17, 18, 1124 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1125 29, 30, 31, 334, 123, 120, 318, 125, 339, 120, 1126 341, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1127 332, 124, 334, 33, 34, 35, 121, 339, 340, 341, 1128 342, 121, 344, 345, 29, 30, 31, 349, 7, 33, 1129 121, 353, 7, 7, 12, 357, 14, 15, 16, 17, 1130 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1131 28, 29, 30, 31, 21, 22, 23, 24, 25, 26, 1132 27, 28, 29, 30, 31, 121, 407, 121, 121, 124, 1133 131, 120, 120, 416, 125, 125, 120, 138, 481, 120, 1134 120, 484, 121, 407, 12, 407, 14, 15, 16, 17, 1135 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1136 28, 29, 30, 31, 12, 120, 120, 442, 443, 120, 1137 120, 433, 120, 435, 12, 437, 27, 28, 29, 30, 1138 31, 29, 120, 120, 120, 33, 34, 449, 189, 190, 1139 120, 29, 120, 120, 475, 33, 34, 120, 479, 120, 1140 125, 121, 42, 121, 547, 122, 124, 550, 56, 47, 1141 121, 212, 213, 475, 124, 120, 120, 479, 113, 114, 1142 115, 116, 117, 118, 119, 121, 509, 510, 25, 26, 1143 27, 28, 29, 30, 31, 121, 121, 121, 500, 18, 1144 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1145 29, 30, 31, 101, 102, 103, 124, 120, 120, 120, 1146 120, 13, 120, 13, 123, 122, 549, 121, 120, 38, 1147 125, 121, 534, 535, 121, 537, 277, 121, 279, 124, 1148 281, 282, 121, 284, 285, 286, 548, 121, 13, 290, 1149 291, 121, 121, 121, 121, 121, 121, 298, 299, 300, 1150 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 1151 311, 312, 313, 314, 315, 316, 121, 12, 124, 121, 1152 12, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1153 28, 29, 30, 31, 29, 121, 13, 29, 33, 34, 1154 120, 33, 34, 107, 13, 40, 121, 121, 40, 121, 1155 45, 121, 47, 45, 121, 47, 121, 120, 7, 120, 1156 22, 123, 120, 58, 121, 125, 58, 13, 63, 35, 1157 65, 63, 125, 65, 69, 121, 124, 69, 42, 74, 1158 121, 121, 74, 22, 123, 7, 253, 168, 331, 320, 1159 479, 142, 101, 21, 170, 14, 491, 92, 93, 94, 1160 92, 93, 94, 98, 60, -1, 98, -1, 103, 410, 1161 105, 103, -1, 105, -1, -1, -1, -1, -1, -1, 1162 -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, 1163 125, -1, -1, 125, -1, -1, -1, -1, -1, -1, 1164 -1, -1, -1, -1, -1, -1, 447, -1, -1, -1, 1165 -1, 452, -1, 454, -1, -1, -1, 458, 459, -1, 1166 461, -1, 463, -1, -1, -1, 12, 468, 14, 15, 1167 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1168 26, 27, 28, 29, 30, 31, 15, 16, 17, 18, 1169 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1170 29, 30, 31, 12, 505, 14, 15, 16, 17, 18, 1171 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1172 29, 30, 31, 12, -1, 14, 15, 16, 17, 18, 1173 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1174 29, 30, 31, 12, -1, 14, 15, 16, 17, 18, 1175 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1176 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, 1177 -1, -1, -1, -1, -1, -1, -1, 12, 124, 14, 1178 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1179 25, 26, 27, 28, 29, 30, 31, 16, 17, 18, 1180 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1181 29, 30, 31, -1, 12, 124, 14, 15, 16, 17, 1182 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1183 28, 29, 30, 31, 12, 124, 14, 15, 16, 17, 1184 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1185 28, 29, 30, 31, 12, 124, 14, 15, 16, 17, 1186 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 1187 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, 1188 -1, -1, -1, -1, -1, 12, 121, 14, 15, 16, 1189 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 1190 27, 28, 29, 30, 31, 17, 18, 19, 20, 21, 1191 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1192 -1, -1, 12, 121, 14, 15, 16, 17, 18, 19, 1193 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1194 30, 31, 12, 121, 14, 15, 16, 17, 18, 19, 1195 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1196 30, 31, 12, 121, 14, 15, 16, 17, 18, 19, 1197 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 1198 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, 1199 -1, -1, -1, 12, 121, 14, 15, 16, 17, 18, 1200 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1201 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, 1202 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203 12, 121, 14, 15, 16, 17, 18, 19, 20, 21, 1204 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1205 12, 121, 14, 15, 16, 17, 18, 19, 20, 21, 1206 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1207 12, 121, 14, 15, 16, 17, 18, 19, 20, 21, 1208 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 1209 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1210 -1, -1, 121, 12, 13, 14, 15, 16, 17, 18, 1211 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 1212 29, 30, 31, 27, 28, -1, -1, -1, -1, 33, 1213 34, 35, 36, 37, 38, 39, 40, -1, -1, 121, 1214 44, -1, 46, -1, 48, -1, 50, 51, 52, 53, 1215 54, -1, -1, -1, -1, -1, -1, -1, -1, 121, 1216 -1, -1, -1, 67, -1, -1, -1, 71, 72, -1, 1217 -1, -1, 76, -1, 78, -1, -1, -1, 82, 121, 1218 -1, -1, 86, -1, -1, -1, 90, -1, -1, -1, 1219 -1, -1, -1, 97, -1, 99, 100, -1, -1, -1, 1220 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1221 -1, 120, -1, -1, -1, -1, 120, 121, -1, -1, 1222 27, 28, 126, -1, -1, 129, 33, 34, 35, 36, 1223 37, 38, 39, 40, -1, -1, -1, 44, -1, 46, 1224 -1, -1, -1, 50, 51, 52, 53, -1, -1, -1, 1225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1226 -1, -1, -1, -1, 71, 72, -1, -1, -1, 76, 1227 -1, 78, -1, 33, 34, -1, -1, -1, -1, 86, 1228 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1229 97, -1, 99, 100, -1, 55, -1, 57, -1, -1, 1230 60, -1, 62, 63, -1, 65, 66, -1, 68, -1, 1231 -1, -1, -1, 120, -1, -1, -1, 77, -1, 126, 1232 -1, -1, 129, -1, -1, -1, -1, -1, 88, 89, 1233 -1, 91, 92, 93, -1, 95, 96, -1, -1, -1, 1234 -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 1235 -1, 111, 112, -1, -1, -1, -1, -1, -1, -1, 1236 -1, -1, -1, -1, -1, 125, 12, 13, 14, 15, 1237 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1238 26, 27, 28, 29, 30, 31, 12, -1, 14, 15, 1239 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 1240 26, 27, 28, 29, 30, 31 1241 }; 1242 1243 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 1244 symbol of state STATE-NUM. */ 1245 static const yytype_uint8 yystos[] = 1246 { 1247 0, 113, 114, 115, 116, 117, 118, 119, 131, 132, 1248 33, 34, 122, 188, 189, 190, 196, 184, 196, 122, 1249 185, 186, 187, 144, 161, 171, 0, 40, 55, 57, 1250 60, 62, 63, 65, 66, 68, 77, 88, 89, 91, 1251 92, 93, 95, 96, 109, 111, 112, 125, 133, 137, 1252 180, 196, 33, 34, 57, 61, 73, 192, 193, 190, 1253 122, 7, 193, 187, 40, 55, 65, 145, 180, 196, 1254 12, 29, 40, 45, 47, 58, 65, 69, 74, 94, 1255 98, 103, 105, 125, 162, 163, 164, 165, 166, 170, 1256 180, 196, 124, 199, 120, 120, 120, 134, 120, 196, 1257 120, 122, 120, 120, 122, 120, 120, 120, 122, 120, 1258 122, 120, 124, 125, 197, 3, 4, 5, 6, 7, 1259 8, 9, 10, 11, 196, 13, 13, 123, 125, 192, 1260 181, 182, 125, 120, 120, 196, 197, 147, 148, 120, 1261 120, 196, 120, 120, 120, 120, 197, 65, 172, 196, 1262 181, 196, 138, 139, 120, 196, 28, 41, 141, 142, 1263 196, 171, 196, 196, 176, 196, 196, 196, 135, 196, 1264 136, 196, 181, 181, 181, 181, 181, 181, 181, 181, 1265 181, 122, 193, 193, 125, 33, 34, 57, 123, 27, 1266 28, 35, 36, 37, 38, 39, 40, 44, 46, 50, 1267 51, 52, 53, 71, 72, 76, 78, 86, 97, 99, 1268 100, 120, 126, 129, 183, 196, 123, 181, 196, 146, 1269 13, 120, 150, 183, 181, 181, 103, 165, 196, 47, 1270 170, 196, 181, 56, 101, 102, 103, 167, 168, 170, 1271 196, 120, 173, 124, 121, 121, 140, 196, 141, 7, 1272 33, 143, 121, 199, 123, 121, 121, 124, 123, 177, 1273 196, 7, 7, 121, 144, 121, 188, 121, 194, 125, 1274 125, 196, 125, 191, 196, 183, 183, 120, 120, 120, 1275 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1276 120, 120, 120, 120, 120, 183, 183, 183, 12, 14, 1277 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 1278 25, 26, 27, 28, 29, 30, 31, 125, 124, 121, 1279 122, 48, 54, 67, 82, 90, 121, 151, 42, 152, 1280 13, 120, 124, 121, 120, 121, 121, 121, 121, 120, 1281 120, 120, 120, 121, 199, 126, 196, 13, 196, 124, 1282 196, 121, 181, 120, 142, 196, 35, 178, 196, 181, 1283 181, 123, 123, 193, 73, 122, 125, 196, 183, 196, 1284 183, 196, 183, 183, 196, 183, 183, 183, 196, 196, 1285 196, 183, 183, 196, 196, 196, 121, 183, 183, 183, 1286 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 1287 183, 183, 183, 183, 183, 183, 196, 161, 13, 121, 1288 120, 38, 153, 121, 151, 196, 169, 170, 168, 170, 1289 168, 56, 168, 196, 121, 85, 86, 127, 174, 121, 1290 196, 121, 141, 124, 42, 91, 179, 196, 121, 121, 1291 125, 198, 13, 195, 121, 121, 121, 124, 121, 124, 1292 121, 121, 124, 121, 124, 121, 121, 121, 124, 124, 1293 121, 124, 121, 13, 121, 123, 13, 183, 120, 107, 1294 154, 13, 121, 121, 121, 199, 121, 121, 121, 120, 1295 121, 7, 121, 196, 120, 179, 125, 120, 179, 123, 1296 193, 193, 183, 196, 183, 183, 183, 183, 183, 183, 1297 22, 156, 157, 121, 183, 120, 149, 13, 170, 169, 1298 181, 121, 181, 35, 125, 198, 121, 121, 121, 121, 1299 121, 121, 121, 196, 42, 158, 121, 183, 83, 84, 1300 104, 155, 121, 199, 121, 121, 123, 22, 159, 121, 1301 70, 71, 128, 175, 179, 179, 196, 7, 13, 160, 1302 7, 181, 196, 199, 181 1303 }; 1304 1305 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 1306 static const yytype_uint8 yyr1[] = 1307 { 1308 0, 130, 131, 131, 131, 131, 131, 131, 131, 132, 1309 132, 133, 133, 134, 133, 133, 133, 133, 133, 133, 1310 133, 133, 133, 135, 133, 133, 136, 133, 133, 133, 1311 133, 133, 133, 133, 137, 139, 138, 140, 140, 140, 1312 141, 141, 142, 142, 143, 142, 144, 144, 145, 145, 1313 145, 145, 146, 145, 148, 149, 147, 150, 150, 150, 1314 150, 150, 150, 151, 151, 151, 151, 151, 152, 152, 1315 153, 153, 154, 154, 155, 155, 155, 155, 156, 157, 1316 157, 158, 158, 159, 159, 160, 160, 161, 161, 162, 1317 162, 162, 162, 162, 162, 162, 162, 162, 163, 163, 1318 163, 163, 163, 164, 164, 165, 165, 166, 166, 167, 1319 167, 167, 167, 168, 168, 168, 168, 169, 169, 170, 1320 170, 170, 171, 171, 172, 172, 172, 173, 173, 173, 1321 174, 174, 174, 175, 175, 175, 176, 176, 177, 178, 1322 178, 179, 179, 179, 179, 179, 180, 180, 180, 180, 1323 180, 180, 180, 180, 180, 180, 180, 180, 182, 181, 1324 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 1325 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 1326 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 1327 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 1328 183, 183, 183, 183, 183, 183, 184, 185, 186, 186, 1329 187, 188, 189, 189, 190, 190, 190, 191, 191, 192, 1330 192, 192, 192, 192, 193, 193, 193, 193, 194, 193, 1331 195, 193, 193, 193, 196, 196, 197, 197, 198, 198, 1332 199, 199 1333 }; 1334 1335 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ 1336 static const yytype_uint8 yyr2[] = 1337 { 1338 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1339 0, 4, 1, 0, 5, 1, 4, 4, 4, 4, 1340 8, 4, 4, 0, 5, 4, 0, 5, 4, 2, 1341 6, 2, 1, 1, 4, 0, 2, 1, 2, 3, 1342 1, 3, 1, 2, 0, 5, 2, 0, 4, 2, 1343 6, 2, 0, 7, 0, 0, 7, 1, 3, 2, 1344 4, 4, 5, 1, 1, 1, 1, 1, 0, 4, 1345 0, 4, 0, 4, 0, 1, 1, 1, 5, 2, 1346 0, 3, 0, 3, 0, 2, 0, 0, 2, 2, 1347 1, 4, 6, 4, 1, 4, 2, 1, 1, 1, 1348 1, 1, 1, 1, 4, 1, 4, 1, 4, 3, 1349 1, 6, 4, 1, 4, 4, 4, 3, 1, 1, 1350 1, 1, 3, 0, 10, 2, 0, 3, 4, 0, 1351 1, 1, 1, 1, 1, 1, 2, 0, 4, 1, 1352 1, 0, 2, 2, 5, 5, 3, 3, 3, 3, 1353 3, 3, 3, 3, 3, 6, 6, 6, 0, 2, 1354 3, 2, 2, 2, 2, 3, 3, 3, 3, 3, 1355 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1356 3, 3, 3, 5, 1, 1, 6, 6, 4, 1, 1357 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 1358 4, 6, 6, 4, 6, 6, 3, 1, 1, 2, 1359 5, 1, 1, 2, 4, 5, 6, 1, 2, 0, 1360 2, 4, 4, 8, 1, 1, 3, 3, 0, 7, 1361 0, 9, 1, 3, 1, 1, 1, 1, 1, 0, 1362 1, 0 1363 }; 1364 1365 1366 #define yyerrok (yyerrstatus = 0) 1367 #define yyclearin (yychar = YYEMPTY) 1368 #define YYEMPTY (-2) 1369 #define YYEOF 0 1370 1371 #define YYACCEPT goto yyacceptlab 1372 #define YYABORT goto yyabortlab 1373 #define YYERROR goto yyerrorlab 1374 1375 1376 #define YYRECOVERING() (!!yyerrstatus) 1377 1378 #define YYBACKUP(Token, Value) \ 1379 do \ 1380 if (yychar == YYEMPTY) \ 1381 { \ 1382 yychar = (Token); \ 1383 yylval = (Value); \ 1384 YYPOPSTACK (yylen); \ 1385 yystate = *yyssp; \ 1386 goto yybackup; \ 1387 } \ 1388 else \ 1389 { \ 1390 yyerror (closure, YY_("syntax error: cannot back up")); \ 1391 YYERROR; \ 1392 } \ 1393 while (0) 1394 1395 /* Error token number */ 1396 #define YYTERROR 1 1397 #define YYERRCODE 256 1398 1399 1400 1401 /* Enable debugging if requested. */ 1402 #if YYDEBUG 1403 1404 # ifndef YYFPRINTF 1405 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ 1406 # define YYFPRINTF fprintf 1407 # endif 1408 1409 # define YYDPRINTF(Args) \ 1410 do { \ 1411 if (yydebug) \ 1412 YYFPRINTF Args; \ 1413 } while (0) 1414 1415 /* This macro is provided for backward compatibility. */ 1416 #ifndef YY_LOCATION_PRINT 1417 # define YY_LOCATION_PRINT(File, Loc) ((void) 0) 1418 #endif 1419 1420 1421 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ 1422 do { \ 1423 if (yydebug) \ 1424 { \ 1425 YYFPRINTF (stderr, "%s ", Title); \ 1426 yy_symbol_print (stderr, \ 1427 Type, Value, closure); \ 1428 YYFPRINTF (stderr, "\n"); \ 1429 } \ 1430 } while (0) 1431 1432 1433 /*----------------------------------------. 1434 | Print this symbol's value on YYOUTPUT. | 1435 `----------------------------------------*/ 1436 1437 static void 1438 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void* closure) 1439 { 1440 FILE *yyo = yyoutput; 1441 YYUSE (yyo); 1442 YYUSE (closure); 1443 if (!yyvaluep) 1444 return; 1445 # ifdef YYPRINT 1446 if (yytype < YYNTOKENS) 1447 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 1448 # endif 1449 YYUSE (yytype); 1450 } 1451 1452 1453 /*--------------------------------. 1454 | Print this symbol on YYOUTPUT. | 1455 `--------------------------------*/ 1456 1457 static void 1458 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, void* closure) 1459 { 1460 YYFPRINTF (yyoutput, "%s %s (", 1461 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 1462 1463 yy_symbol_value_print (yyoutput, yytype, yyvaluep, closure); 1464 YYFPRINTF (yyoutput, ")"); 1465 } 1466 1467 /*------------------------------------------------------------------. 1468 | yy_stack_print -- Print the state stack from its BOTTOM up to its | 1469 | TOP (included). | 1470 `------------------------------------------------------------------*/ 1471 1472 static void 1473 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 1474 { 1475 YYFPRINTF (stderr, "Stack now"); 1476 for (; yybottom <= yytop; yybottom++) 1477 { 1478 int yybot = *yybottom; 1479 YYFPRINTF (stderr, " %d", yybot); 1480 } 1481 YYFPRINTF (stderr, "\n"); 1482 } 1483 1484 # define YY_STACK_PRINT(Bottom, Top) \ 1485 do { \ 1486 if (yydebug) \ 1487 yy_stack_print ((Bottom), (Top)); \ 1488 } while (0) 1489 1490 1491 /*------------------------------------------------. 1492 | Report that the YYRULE is going to be reduced. | 1493 `------------------------------------------------*/ 1494 1495 static void 1496 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, void* closure) 1497 { 1498 unsigned long int yylno = yyrline[yyrule]; 1499 int yynrhs = yyr2[yyrule]; 1500 int yyi; 1501 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 1502 yyrule - 1, yylno); 1503 /* The symbols being reduced. */ 1504 for (yyi = 0; yyi < yynrhs; yyi++) 1505 { 1506 YYFPRINTF (stderr, " $%d = ", yyi + 1); 1507 yy_symbol_print (stderr, 1508 yystos[yyssp[yyi + 1 - yynrhs]], 1509 &(yyvsp[(yyi + 1) - (yynrhs)]) 1510 , closure); 1511 YYFPRINTF (stderr, "\n"); 1512 } 1513 } 1514 1515 # define YY_REDUCE_PRINT(Rule) \ 1516 do { \ 1517 if (yydebug) \ 1518 yy_reduce_print (yyssp, yyvsp, Rule, closure); \ 1519 } while (0) 1520 1521 /* Nonzero means print parse trace. It is left uninitialized so that 1522 multiple parsers can coexist. */ 1523 int yydebug; 1524 #else /* !YYDEBUG */ 1525 # define YYDPRINTF(Args) 1526 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) 1527 # define YY_STACK_PRINT(Bottom, Top) 1528 # define YY_REDUCE_PRINT(Rule) 1529 #endif /* !YYDEBUG */ 1530 1531 1532 /* YYINITDEPTH -- initial size of the parser's stacks. */ 1533 #ifndef YYINITDEPTH 1534 # define YYINITDEPTH 200 1535 #endif 1536 1537 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only 1538 if the built-in stack extension method is used). 1539 1540 Do not make this value too large; the results are undefined if 1541 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) 1542 evaluated with infinite-precision integer arithmetic. */ 1543 1544 #ifndef YYMAXDEPTH 1545 # define YYMAXDEPTH 10000 1546 #endif 1547 1548 1549 #if YYERROR_VERBOSE 1550 1551 # ifndef yystrlen 1552 # if defined __GLIBC__ && defined _STRING_H 1553 # define yystrlen strlen 1554 # else 1555 /* Return the length of YYSTR. */ 1556 static YYSIZE_T 1557 yystrlen (const char *yystr) 1558 { 1559 YYSIZE_T yylen; 1560 for (yylen = 0; yystr[yylen]; yylen++) 1561 continue; 1562 return yylen; 1563 } 1564 # endif 1565 # endif 1566 1567 # ifndef yystpcpy 1568 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE 1569 # define yystpcpy stpcpy 1570 # else 1571 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 1572 YYDEST. */ 1573 static char * 1574 yystpcpy (char *yydest, const char *yysrc) 1575 { 1576 char *yyd = yydest; 1577 const char *yys = yysrc; 1578 1579 while ((*yyd++ = *yys++) != '\0') 1580 continue; 1581 1582 return yyd - 1; 1583 } 1584 # endif 1585 # endif 1586 1587 # ifndef yytnamerr 1588 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary 1589 quotes and backslashes, so that it's suitable for yyerror. The 1590 heuristic is that double-quoting is unnecessary unless the string 1591 contains an apostrophe, a comma, or backslash (other than 1592 backslash-backslash). YYSTR is taken from yytname. If YYRES is 1593 null, do not copy; instead, return the length of what the result 1594 would have been. */ 1595 static YYSIZE_T 1596 yytnamerr (char *yyres, const char *yystr) 1597 { 1598 if (*yystr == '"') 1599 { 1600 YYSIZE_T yyn = 0; 1601 char const *yyp = yystr; 1602 1603 for (;;) 1604 switch (*++yyp) 1605 { 1606 case '\'': 1607 case ',': 1608 goto do_not_strip_quotes; 1609 1610 case '\\': 1611 if (*++yyp != '\\') 1612 goto do_not_strip_quotes; 1613 /* Fall through. */ 1614 default: 1615 if (yyres) 1616 yyres[yyn] = *yyp; 1617 yyn++; 1618 break; 1619 1620 case '"': 1621 if (yyres) 1622 yyres[yyn] = '\0'; 1623 return yyn; 1624 } 1625 do_not_strip_quotes: ; 1626 } 1627 1628 if (! yyres) 1629 return yystrlen (yystr); 1630 1631 return yystpcpy (yyres, yystr) - yyres; 1632 } 1633 # endif 1634 1635 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 1636 about the unexpected token YYTOKEN for the state stack whose top is 1637 YYSSP. 1638 1639 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is 1640 not large enough to hold the message. In that case, also set 1641 *YYMSG_ALLOC to the required number of bytes. Return 2 if the 1642 required number of bytes is too large to store. */ 1643 static int 1644 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 1645 yytype_int16 *yyssp, int yytoken) 1646 { 1647 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 1648 YYSIZE_T yysize = yysize0; 1649 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1650 /* Internationalized format string. */ 1651 const char *yyformat = YY_NULLPTR; 1652 /* Arguments of yyformat. */ 1653 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1654 /* Number of reported tokens (one for the "unexpected", one per 1655 "expected"). */ 1656 int yycount = 0; 1657 1658 /* There are many possibilities here to consider: 1659 - If this state is a consistent state with a default action, then 1660 the only way this function was invoked is if the default action 1661 is an error action. In that case, don't check for expected 1662 tokens because there are none. 1663 - The only way there can be no lookahead present (in yychar) is if 1664 this state is a consistent state with a default action. Thus, 1665 detecting the absence of a lookahead is sufficient to determine 1666 that there is no unexpected or expected token to report. In that 1667 case, just report a simple "syntax error". 1668 - Don't assume there isn't a lookahead just because this state is a 1669 consistent state with a default action. There might have been a 1670 previous inconsistent state, consistent state with a non-default 1671 action, or user semantic action that manipulated yychar. 1672 - Of course, the expected token list depends on states to have 1673 correct lookahead information, and it depends on the parser not 1674 to perform extra reductions after fetching a lookahead from the 1675 scanner and before detecting a syntax error. Thus, state merging 1676 (from LALR or IELR) and default reductions corrupt the expected 1677 token list. However, the list is correct for canonical LR with 1678 one exception: it will still contain any token that will not be 1679 accepted due to an error action in a later state. 1680 */ 1681 if (yytoken != YYEMPTY) 1682 { 1683 int yyn = yypact[*yyssp]; 1684 yyarg[yycount++] = yytname[yytoken]; 1685 if (!yypact_value_is_default (yyn)) 1686 { 1687 /* Start YYX at -YYN if negative to avoid negative indexes in 1688 YYCHECK. In other words, skip the first -YYN actions for 1689 this state because they are default actions. */ 1690 int yyxbegin = yyn < 0 ? -yyn : 0; 1691 /* Stay within bounds of both yycheck and yytname. */ 1692 int yychecklim = YYLAST - yyn + 1; 1693 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 1694 int yyx; 1695 1696 for (yyx = yyxbegin; yyx < yyxend; ++yyx) 1697 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 1698 && !yytable_value_is_error (yytable[yyx + yyn])) 1699 { 1700 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 1701 { 1702 yycount = 1; 1703 yysize = yysize0; 1704 break; 1705 } 1706 yyarg[yycount++] = yytname[yyx]; 1707 { 1708 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 1709 if (! (yysize <= yysize1 1710 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1711 return 2; 1712 yysize = yysize1; 1713 } 1714 } 1715 } 1716 } 1717 1718 switch (yycount) 1719 { 1720 # define YYCASE_(N, S) \ 1721 case N: \ 1722 yyformat = S; \ 1723 break 1724 default: /* Avoid compiler warnings. */ 1725 YYCASE_(0, YY_("syntax error")); 1726 YYCASE_(1, YY_("syntax error, unexpected %s")); 1727 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1728 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1729 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1730 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1731 # undef YYCASE_ 1732 } 1733 1734 { 1735 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 1736 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1737 return 2; 1738 yysize = yysize1; 1739 } 1740 1741 if (*yymsg_alloc < yysize) 1742 { 1743 *yymsg_alloc = 2 * yysize; 1744 if (! (yysize <= *yymsg_alloc 1745 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1746 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1747 return 1; 1748 } 1749 1750 /* Avoid sprintf, as that infringes on the user's name space. 1751 Don't have undefined behavior even if the translation 1752 produced a string with the wrong number of "%s"s. */ 1753 { 1754 char *yyp = *yymsg; 1755 int yyi = 0; 1756 while ((*yyp = *yyformat) != '\0') 1757 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1758 { 1759 yyp += yytnamerr (yyp, yyarg[yyi++]); 1760 yyformat += 2; 1761 } 1762 else 1763 { 1764 yyp++; 1765 yyformat++; 1766 } 1767 } 1768 return 0; 1769 } 1770 #endif /* YYERROR_VERBOSE */ 1771 1772 /*-----------------------------------------------. 1773 | Release the memory associated to this symbol. | 1774 `-----------------------------------------------*/ 1775 1776 static void 1777 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* closure) 1778 { 1779 YYUSE (yyvaluep); 1780 YYUSE (closure); 1781 if (!yymsg) 1782 yymsg = "Deleting"; 1783 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1784 1785 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1786 YYUSE (yytype); 1787 YY_IGNORE_MAYBE_UNINITIALIZED_END 1788 } 1789 1790 1791 1792 1793 /*----------. 1794 | yyparse. | 1795 `----------*/ 1796 1797 int 1798 yyparse (void* closure) 1799 { 1800 /* The lookahead symbol. */ 1801 int yychar; 1802 1803 1804 /* The semantic value of the lookahead symbol. */ 1805 /* Default value used for initialization, for pacifying older GCCs 1806 or non-GCC compilers. */ 1807 YY_INITIAL_VALUE (static YYSTYPE yyval_default;) 1808 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); 1809 1810 /* Number of syntax errors so far. */ 1811 int yynerrs; 1812 1813 int yystate; 1814 /* Number of tokens to shift before error messages enabled. */ 1815 int yyerrstatus; 1816 1817 /* The stacks and their tools: 1818 'yyss': related to states. 1819 'yyvs': related to semantic values. 1820 1821 Refer to the stacks through separate pointers, to allow yyoverflow 1822 to reallocate them elsewhere. */ 1823 1824 /* The state stack. */ 1825 yytype_int16 yyssa[YYINITDEPTH]; 1826 yytype_int16 *yyss; 1827 yytype_int16 *yyssp; 1828 1829 /* The semantic value stack. */ 1830 YYSTYPE yyvsa[YYINITDEPTH]; 1831 YYSTYPE *yyvs; 1832 YYSTYPE *yyvsp; 1833 1834 YYSIZE_T yystacksize; 1835 1836 int yyn; 1837 int yyresult; 1838 /* Lookahead token as an internal (translated) token number. */ 1839 int yytoken = 0; 1840 /* The variables used to return semantic value and location from the 1841 action routines. */ 1842 YYSTYPE yyval; 1843 1844 #if YYERROR_VERBOSE 1845 /* Buffer for error messages, and its allocated size. */ 1846 char yymsgbuf[128]; 1847 char *yymsg = yymsgbuf; 1848 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1849 #endif 1850 1851 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1852 1853 /* The number of symbols on the RHS of the reduced rule. 1854 Keep to zero when no symbol should be popped. */ 1855 int yylen = 0; 1856 1857 yyssp = yyss = yyssa; 1858 yyvsp = yyvs = yyvsa; 1859 yystacksize = YYINITDEPTH; 1860 1861 YYDPRINTF ((stderr, "Starting parse\n")); 1862 1863 yystate = 0; 1864 yyerrstatus = 0; 1865 yynerrs = 0; 1866 yychar = YYEMPTY; /* Cause a token to be read. */ 1867 goto yysetstate; 1868 1869 /*------------------------------------------------------------. 1870 | yynewstate -- Push a new state, which is found in yystate. | 1871 `------------------------------------------------------------*/ 1872 yynewstate: 1873 /* In all cases, when you get here, the value and location stacks 1874 have just been pushed. So pushing a state here evens the stacks. */ 1875 yyssp++; 1876 1877 yysetstate: 1878 *yyssp = yystate; 1879 1880 if (yyss + yystacksize - 1 <= yyssp) 1881 { 1882 /* Get the current used size of the three stacks, in elements. */ 1883 YYSIZE_T yysize = yyssp - yyss + 1; 1884 1885 #ifdef yyoverflow 1886 { 1887 /* Give user a chance to reallocate the stack. Use copies of 1888 these so that the &'s don't force the real ones into 1889 memory. */ 1890 YYSTYPE *yyvs1 = yyvs; 1891 yytype_int16 *yyss1 = yyss; 1892 1893 /* Each stack pointer address is followed by the size of the 1894 data in use in that stack, in bytes. This used to be a 1895 conditional around just the two extra args, but that might 1896 be undefined if yyoverflow is a macro. */ 1897 yyoverflow (YY_("memory exhausted"), 1898 &yyss1, yysize * sizeof (*yyssp), 1899 &yyvs1, yysize * sizeof (*yyvsp), 1900 &yystacksize); 1901 1902 yyss = yyss1; 1903 yyvs = yyvs1; 1904 } 1905 #else /* no yyoverflow */ 1906 # ifndef YYSTACK_RELOCATE 1907 goto yyexhaustedlab; 1908 # else 1909 /* Extend the stack our own way. */ 1910 if (YYMAXDEPTH <= yystacksize) 1911 goto yyexhaustedlab; 1912 yystacksize *= 2; 1913 if (YYMAXDEPTH < yystacksize) 1914 yystacksize = YYMAXDEPTH; 1915 1916 { 1917 yytype_int16 *yyss1 = yyss; 1918 union yyalloc *yyptr = 1919 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1920 if (! yyptr) 1921 goto yyexhaustedlab; 1922 YYSTACK_RELOCATE (yyss_alloc, yyss); 1923 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1924 # undef YYSTACK_RELOCATE 1925 if (yyss1 != yyssa) 1926 YYSTACK_FREE (yyss1); 1927 } 1928 # endif 1929 #endif /* no yyoverflow */ 1930 1931 yyssp = yyss + yysize - 1; 1932 yyvsp = yyvs + yysize - 1; 1933 1934 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1935 (unsigned long int) yystacksize)); 1936 1937 if (yyss + yystacksize - 1 <= yyssp) 1938 YYABORT; 1939 } 1940 1941 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1942 1943 if (yystate == YYFINAL) 1944 YYACCEPT; 1945 1946 goto yybackup; 1947 1948 /*-----------. 1949 | yybackup. | 1950 `-----------*/ 1951 yybackup: 1952 1953 /* Do appropriate processing given the current state. Read a 1954 lookahead token if we need one and don't already have one. */ 1955 1956 /* First try to decide what to do without reference to lookahead token. */ 1957 yyn = yypact[yystate]; 1958 if (yypact_value_is_default (yyn)) 1959 goto yydefault; 1960 1961 /* Not known => get a lookahead token if don't already have one. */ 1962 1963 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1964 if (yychar == YYEMPTY) 1965 { 1966 YYDPRINTF ((stderr, "Reading a token: ")); 1967 yychar = yylex (&yylval, closure); 1968 } 1969 1970 if (yychar <= YYEOF) 1971 { 1972 yychar = yytoken = YYEOF; 1973 YYDPRINTF ((stderr, "Now at end of input.\n")); 1974 } 1975 else 1976 { 1977 yytoken = YYTRANSLATE (yychar); 1978 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1979 } 1980 1981 /* If the proper action on seeing token YYTOKEN is to reduce or to 1982 detect an error, take that action. */ 1983 yyn += yytoken; 1984 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1985 goto yydefault; 1986 yyn = yytable[yyn]; 1987 if (yyn <= 0) 1988 { 1989 if (yytable_value_is_error (yyn)) 1990 goto yyerrlab; 1991 yyn = -yyn; 1992 goto yyreduce; 1993 } 1994 1995 /* Count tokens shifted since error; after three, turn off error 1996 status. */ 1997 if (yyerrstatus) 1998 yyerrstatus--; 1999 2000 /* Shift the lookahead token. */ 2001 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 2002 2003 /* Discard the shifted token. */ 2004 yychar = YYEMPTY; 2005 2006 yystate = yyn; 2007 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2008 *++yyvsp = yylval; 2009 YY_IGNORE_MAYBE_UNINITIALIZED_END 2010 2011 goto yynewstate; 2012 2013 2014 /*-----------------------------------------------------------. 2015 | yydefault -- do the default action for the current state. | 2016 `-----------------------------------------------------------*/ 2017 yydefault: 2018 yyn = yydefact[yystate]; 2019 if (yyn == 0) 2020 goto yyerrlab; 2021 goto yyreduce; 2022 2023 2024 /*-----------------------------. 2025 | yyreduce -- Do a reduction. | 2026 `-----------------------------*/ 2027 yyreduce: 2028 /* yyn is the number of a rule to reduce with. */ 2029 yylen = yyr2[yyn]; 2030 2031 /* If YYLEN is nonzero, implement the default value of the action: 2032 '$$ = $1'. 2033 2034 Otherwise, the following line sets YYVAL to garbage. 2035 This behavior is undocumented and Bison 2036 users should not rely upon it. Assigning to YYVAL 2037 unconditionally makes the parser a bit smaller, and it avoids a 2038 GCC warning that YYVAL may be used uninitialized. */ 2039 yyval = yyvsp[1-yylen]; 2040 2041 2042 YY_REDUCE_PRINT (yyn); 2043 switch (yyn) 2044 { 2045 case 12: 2046 #line 255 "yyscript.y" /* yacc.c:1648 */ 2047 { script_set_common_allocation(closure, 1); } 2048 #line 2049 "yyscript.c" /* yacc.c:1648 */ 2049 break; 2050 2051 case 13: 2052 #line 257 "yyscript.y" /* yacc.c:1648 */ 2053 { script_start_group(closure); } 2054 #line 2055 "yyscript.c" /* yacc.c:1648 */ 2055 break; 2056 2057 case 14: 2058 #line 259 "yyscript.y" /* yacc.c:1648 */ 2059 { script_end_group(closure); } 2060 #line 2061 "yyscript.c" /* yacc.c:1648 */ 2061 break; 2062 2063 case 15: 2064 #line 261 "yyscript.y" /* yacc.c:1648 */ 2065 { script_set_common_allocation(closure, 0); } 2066 #line 2067 "yyscript.c" /* yacc.c:1648 */ 2067 break; 2068 2069 case 18: 2070 #line 265 "yyscript.y" /* yacc.c:1648 */ 2071 { script_parse_option(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2072 #line 2073 "yyscript.c" /* yacc.c:1648 */ 2073 break; 2074 2075 case 19: 2076 #line 267 "yyscript.y" /* yacc.c:1648 */ 2077 { 2078 if (!script_check_output_format(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 2079 NULL, 0, NULL, 0)) 2080 YYABORT; 2081 } 2082 #line 2083 "yyscript.c" /* yacc.c:1648 */ 2083 break; 2084 2085 case 20: 2086 #line 273 "yyscript.y" /* yacc.c:1648 */ 2087 { 2088 if (!script_check_output_format(closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length, 2089 (yyvsp[-3].string).value, (yyvsp[-3].string).length, 2090 (yyvsp[-1].string).value, (yyvsp[-1].string).length)) 2091 YYABORT; 2092 } 2093 #line 2094 "yyscript.c" /* yacc.c:1648 */ 2094 break; 2095 2096 case 22: 2097 #line 281 "yyscript.y" /* yacc.c:1648 */ 2098 { script_add_search_dir(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2099 #line 2100 "yyscript.c" /* yacc.c:1648 */ 2100 break; 2101 2102 case 23: 2103 #line 283 "yyscript.y" /* yacc.c:1648 */ 2104 { script_start_sections(closure); } 2105 #line 2106 "yyscript.c" /* yacc.c:1648 */ 2106 break; 2107 2108 case 24: 2109 #line 285 "yyscript.y" /* yacc.c:1648 */ 2110 { script_finish_sections(closure); } 2111 #line 2112 "yyscript.c" /* yacc.c:1648 */ 2112 break; 2113 2114 case 25: 2115 #line 287 "yyscript.y" /* yacc.c:1648 */ 2116 { script_set_target(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2117 #line 2118 "yyscript.c" /* yacc.c:1648 */ 2118 break; 2119 2120 case 26: 2121 #line 289 "yyscript.y" /* yacc.c:1648 */ 2122 { script_push_lex_into_version_mode(closure); } 2123 #line 2124 "yyscript.c" /* yacc.c:1648 */ 2124 break; 2125 2126 case 27: 2127 #line 291 "yyscript.y" /* yacc.c:1648 */ 2128 { script_pop_lex_mode(closure); } 2129 #line 2130 "yyscript.c" /* yacc.c:1648 */ 2130 break; 2131 2132 case 28: 2133 #line 293 "yyscript.y" /* yacc.c:1648 */ 2134 { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2135 #line 2136 "yyscript.c" /* yacc.c:1648 */ 2136 break; 2137 2138 case 30: 2139 #line 296 "yyscript.y" /* yacc.c:1648 */ 2140 { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2141 #line 2142 "yyscript.c" /* yacc.c:1648 */ 2142 break; 2143 2144 case 31: 2145 #line 298 "yyscript.y" /* yacc.c:1648 */ 2146 { script_include_directive(PARSING_LINKER_SCRIPT, closure, 2147 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2148 #line 2149 "yyscript.c" /* yacc.c:1648 */ 2149 break; 2150 2151 case 35: 2152 #line 317 "yyscript.y" /* yacc.c:1648 */ 2153 { script_push_lex_into_expression_mode(closure); } 2154 #line 2155 "yyscript.c" /* yacc.c:1648 */ 2155 break; 2156 2157 case 36: 2158 #line 319 "yyscript.y" /* yacc.c:1648 */ 2159 { script_pop_lex_mode(closure); } 2160 #line 2161 "yyscript.c" /* yacc.c:1648 */ 2161 break; 2162 2163 case 37: 2164 #line 324 "yyscript.y" /* yacc.c:1648 */ 2165 { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2166 #line 2167 "yyscript.c" /* yacc.c:1648 */ 2167 break; 2168 2169 case 38: 2170 #line 326 "yyscript.y" /* yacc.c:1648 */ 2171 { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2172 #line 2173 "yyscript.c" /* yacc.c:1648 */ 2173 break; 2174 2175 case 39: 2176 #line 328 "yyscript.y" /* yacc.c:1648 */ 2177 { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2178 #line 2179 "yyscript.c" /* yacc.c:1648 */ 2179 break; 2180 2181 case 42: 2182 #line 340 "yyscript.y" /* yacc.c:1648 */ 2183 { script_add_file(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2184 #line 2185 "yyscript.c" /* yacc.c:1648 */ 2185 break; 2186 2187 case 43: 2188 #line 342 "yyscript.y" /* yacc.c:1648 */ 2189 { script_add_library(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2190 #line 2191 "yyscript.c" /* yacc.c:1648 */ 2191 break; 2192 2193 case 44: 2194 #line 344 "yyscript.y" /* yacc.c:1648 */ 2195 { script_start_as_needed(closure); } 2196 #line 2197 "yyscript.c" /* yacc.c:1648 */ 2197 break; 2198 2199 case 45: 2200 #line 346 "yyscript.y" /* yacc.c:1648 */ 2201 { script_end_as_needed(closure); } 2202 #line 2203 "yyscript.c" /* yacc.c:1648 */ 2203 break; 2204 2205 case 48: 2206 #line 358 "yyscript.y" /* yacc.c:1648 */ 2207 { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2208 #line 2209 "yyscript.c" /* yacc.c:1648 */ 2209 break; 2210 2211 case 50: 2212 #line 361 "yyscript.y" /* yacc.c:1648 */ 2213 { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2214 #line 2215 "yyscript.c" /* yacc.c:1648 */ 2215 break; 2216 2217 case 51: 2218 #line 363 "yyscript.y" /* yacc.c:1648 */ 2219 { script_include_directive(PARSING_SECTIONS_BLOCK, closure, 2220 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2221 #line 2222 "yyscript.c" /* yacc.c:1648 */ 2222 break; 2223 2224 case 52: 2225 #line 366 "yyscript.y" /* yacc.c:1648 */ 2226 { script_start_output_section(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, &(yyvsp[0].output_section_header)); } 2227 #line 2228 "yyscript.c" /* yacc.c:1648 */ 2228 break; 2229 2230 case 53: 2231 #line 368 "yyscript.y" /* yacc.c:1648 */ 2232 { script_finish_output_section(closure, &(yyvsp[0].output_section_trailer)); } 2233 #line 2234 "yyscript.c" /* yacc.c:1648 */ 2234 break; 2235 2236 case 54: 2237 #line 374 "yyscript.y" /* yacc.c:1648 */ 2238 { script_push_lex_into_expression_mode(closure); } 2239 #line 2240 "yyscript.c" /* yacc.c:1648 */ 2240 break; 2241 2242 case 55: 2243 #line 376 "yyscript.y" /* yacc.c:1648 */ 2244 { script_pop_lex_mode(closure); } 2245 #line 2246 "yyscript.c" /* yacc.c:1648 */ 2246 break; 2247 2248 case 56: 2249 #line 378 "yyscript.y" /* yacc.c:1648 */ 2250 { 2251 (yyval.output_section_header).address = (yyvsp[-5].output_section_header).address; 2252 (yyval.output_section_header).section_type = (yyvsp[-5].output_section_header).section_type; 2253 (yyval.output_section_header).load_address = (yyvsp[-4].expr); 2254 (yyval.output_section_header).align = (yyvsp[-3].expr); 2255 (yyval.output_section_header).subalign = (yyvsp[-2].expr); 2256 (yyval.output_section_header).constraint = (yyvsp[0].constraint); 2257 } 2258 #line 2259 "yyscript.c" /* yacc.c:1648 */ 2259 break; 2260 2261 case 57: 2262 #line 394 "yyscript.y" /* yacc.c:1648 */ 2263 { 2264 (yyval.output_section_header).address = NULL; 2265 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2266 } 2267 #line 2268 "yyscript.c" /* yacc.c:1648 */ 2268 break; 2269 2270 case 58: 2271 #line 399 "yyscript.y" /* yacc.c:1648 */ 2272 { 2273 (yyval.output_section_header).address = NULL; 2274 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2275 } 2276 #line 2277 "yyscript.c" /* yacc.c:1648 */ 2277 break; 2278 2279 case 59: 2280 #line 404 "yyscript.y" /* yacc.c:1648 */ 2281 { 2282 (yyval.output_section_header).address = (yyvsp[-1].expr); 2283 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2284 } 2285 #line 2286 "yyscript.c" /* yacc.c:1648 */ 2286 break; 2287 2288 case 60: 2289 #line 409 "yyscript.y" /* yacc.c:1648 */ 2290 { 2291 (yyval.output_section_header).address = (yyvsp[-3].expr); 2292 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2293 } 2294 #line 2295 "yyscript.c" /* yacc.c:1648 */ 2295 break; 2296 2297 case 61: 2298 #line 414 "yyscript.y" /* yacc.c:1648 */ 2299 { 2300 (yyval.output_section_header).address = NULL; 2301 (yyval.output_section_header).section_type = (yyvsp[-2].section_type); 2302 } 2303 #line 2304 "yyscript.c" /* yacc.c:1648 */ 2304 break; 2305 2306 case 62: 2307 #line 419 "yyscript.y" /* yacc.c:1648 */ 2308 { 2309 (yyval.output_section_header).address = (yyvsp[-4].expr); 2310 (yyval.output_section_header).section_type = (yyvsp[-2].section_type); 2311 } 2312 #line 2313 "yyscript.c" /* yacc.c:1648 */ 2313 break; 2314 2315 case 63: 2316 #line 428 "yyscript.y" /* yacc.c:1648 */ 2317 { (yyval.section_type) = SCRIPT_SECTION_TYPE_NOLOAD; } 2318 #line 2319 "yyscript.c" /* yacc.c:1648 */ 2319 break; 2320 2321 case 64: 2322 #line 430 "yyscript.y" /* yacc.c:1648 */ 2323 { 2324 yyerror(closure, "DSECT section type is unsupported"); 2325 (yyval.section_type) = SCRIPT_SECTION_TYPE_DSECT; 2326 } 2327 #line 2328 "yyscript.c" /* yacc.c:1648 */ 2328 break; 2329 2330 case 65: 2331 #line 435 "yyscript.y" /* yacc.c:1648 */ 2332 { 2333 yyerror(closure, "COPY section type is unsupported"); 2334 (yyval.section_type) = SCRIPT_SECTION_TYPE_COPY; 2335 } 2336 #line 2337 "yyscript.c" /* yacc.c:1648 */ 2337 break; 2338 2339 case 66: 2340 #line 440 "yyscript.y" /* yacc.c:1648 */ 2341 { 2342 yyerror(closure, "INFO section type is unsupported"); 2343 (yyval.section_type) = SCRIPT_SECTION_TYPE_INFO; 2344 } 2345 #line 2346 "yyscript.c" /* yacc.c:1648 */ 2346 break; 2347 2348 case 67: 2349 #line 445 "yyscript.y" /* yacc.c:1648 */ 2350 { 2351 yyerror(closure, "OVERLAY section type is unsupported"); 2352 (yyval.section_type) = SCRIPT_SECTION_TYPE_OVERLAY; 2353 } 2354 #line 2355 "yyscript.c" /* yacc.c:1648 */ 2355 break; 2356 2357 case 68: 2358 #line 454 "yyscript.y" /* yacc.c:1648 */ 2359 { (yyval.expr) = NULL; } 2360 #line 2361 "yyscript.c" /* yacc.c:1648 */ 2361 break; 2362 2363 case 69: 2364 #line 456 "yyscript.y" /* yacc.c:1648 */ 2365 { (yyval.expr) = (yyvsp[-1].expr); } 2366 #line 2367 "yyscript.c" /* yacc.c:1648 */ 2367 break; 2368 2369 case 70: 2370 #line 462 "yyscript.y" /* yacc.c:1648 */ 2371 { (yyval.expr) = NULL; } 2372 #line 2373 "yyscript.c" /* yacc.c:1648 */ 2373 break; 2374 2375 case 71: 2376 #line 464 "yyscript.y" /* yacc.c:1648 */ 2377 { (yyval.expr) = (yyvsp[-1].expr); } 2378 #line 2379 "yyscript.c" /* yacc.c:1648 */ 2379 break; 2380 2381 case 72: 2382 #line 470 "yyscript.y" /* yacc.c:1648 */ 2383 { (yyval.expr) = NULL; } 2384 #line 2385 "yyscript.c" /* yacc.c:1648 */ 2385 break; 2386 2387 case 73: 2388 #line 472 "yyscript.y" /* yacc.c:1648 */ 2389 { (yyval.expr) = (yyvsp[-1].expr); } 2390 #line 2391 "yyscript.c" /* yacc.c:1648 */ 2391 break; 2392 2393 case 74: 2394 #line 478 "yyscript.y" /* yacc.c:1648 */ 2395 { (yyval.constraint) = CONSTRAINT_NONE; } 2396 #line 2397 "yyscript.c" /* yacc.c:1648 */ 2397 break; 2398 2399 case 75: 2400 #line 480 "yyscript.y" /* yacc.c:1648 */ 2401 { (yyval.constraint) = CONSTRAINT_ONLY_IF_RO; } 2402 #line 2403 "yyscript.c" /* yacc.c:1648 */ 2403 break; 2404 2405 case 76: 2406 #line 482 "yyscript.y" /* yacc.c:1648 */ 2407 { (yyval.constraint) = CONSTRAINT_ONLY_IF_RW; } 2408 #line 2409 "yyscript.c" /* yacc.c:1648 */ 2409 break; 2410 2411 case 77: 2412 #line 484 "yyscript.y" /* yacc.c:1648 */ 2413 { (yyval.constraint) = CONSTRAINT_SPECIAL; } 2414 #line 2415 "yyscript.c" /* yacc.c:1648 */ 2415 break; 2416 2417 case 78: 2418 #line 490 "yyscript.y" /* yacc.c:1648 */ 2419 { 2420 (yyval.output_section_trailer).fill = (yyvsp[-1].expr); 2421 (yyval.output_section_trailer).phdrs = (yyvsp[-2].string_list); 2422 } 2423 #line 2424 "yyscript.c" /* yacc.c:1648 */ 2424 break; 2425 2426 case 79: 2427 #line 499 "yyscript.y" /* yacc.c:1648 */ 2428 { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 1); } 2429 #line 2430 "yyscript.c" /* yacc.c:1648 */ 2430 break; 2431 2432 case 81: 2433 #line 506 "yyscript.y" /* yacc.c:1648 */ 2434 { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 0); } 2435 #line 2436 "yyscript.c" /* yacc.c:1648 */ 2436 break; 2437 2438 case 83: 2439 #line 513 "yyscript.y" /* yacc.c:1648 */ 2440 { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); } 2441 #line 2442 "yyscript.c" /* yacc.c:1648 */ 2442 break; 2443 2444 case 84: 2445 #line 515 "yyscript.y" /* yacc.c:1648 */ 2446 { (yyval.string_list) = NULL; } 2447 #line 2448 "yyscript.c" /* yacc.c:1648 */ 2448 break; 2449 2450 case 85: 2451 #line 522 "yyscript.y" /* yacc.c:1648 */ 2452 { (yyval.expr) = (yyvsp[0].expr); } 2453 #line 2454 "yyscript.c" /* yacc.c:1648 */ 2454 break; 2455 2456 case 86: 2457 #line 524 "yyscript.y" /* yacc.c:1648 */ 2458 { (yyval.expr) = NULL; } 2459 #line 2460 "yyscript.c" /* yacc.c:1648 */ 2460 break; 2461 2462 case 91: 2463 #line 540 "yyscript.y" /* yacc.c:1648 */ 2464 { script_add_data(closure, (yyvsp[-3].integer), (yyvsp[-1].expr)); } 2465 #line 2466 "yyscript.c" /* yacc.c:1648 */ 2466 break; 2467 2468 case 92: 2469 #line 542 "yyscript.y" /* yacc.c:1648 */ 2470 { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2471 #line 2472 "yyscript.c" /* yacc.c:1648 */ 2472 break; 2473 2474 case 93: 2475 #line 544 "yyscript.y" /* yacc.c:1648 */ 2476 { script_add_fill(closure, (yyvsp[-1].expr)); } 2477 #line 2478 "yyscript.c" /* yacc.c:1648 */ 2478 break; 2479 2480 case 94: 2481 #line 546 "yyscript.y" /* yacc.c:1648 */ 2482 { 2483 /* The GNU linker uses CONSTRUCTORS for the a.out object 2484 file format. It does nothing when using ELF. Since 2485 some ELF linker scripts use it although it does 2486 nothing, we accept it and ignore it. */ 2487 } 2488 #line 2489 "yyscript.c" /* yacc.c:1648 */ 2489 break; 2490 2491 case 96: 2492 #line 554 "yyscript.y" /* yacc.c:1648 */ 2493 { script_include_directive(PARSING_SECTION_COMMANDS, closure, 2494 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2495 #line 2496 "yyscript.c" /* yacc.c:1648 */ 2496 break; 2497 2498 case 98: 2499 #line 563 "yyscript.y" /* yacc.c:1648 */ 2500 { (yyval.integer) = QUAD; } 2501 #line 2502 "yyscript.c" /* yacc.c:1648 */ 2502 break; 2503 2504 case 99: 2505 #line 565 "yyscript.y" /* yacc.c:1648 */ 2506 { (yyval.integer) = SQUAD; } 2507 #line 2508 "yyscript.c" /* yacc.c:1648 */ 2508 break; 2509 2510 case 100: 2511 #line 567 "yyscript.y" /* yacc.c:1648 */ 2512 { (yyval.integer) = LONG; } 2513 #line 2514 "yyscript.c" /* yacc.c:1648 */ 2514 break; 2515 2516 case 101: 2517 #line 569 "yyscript.y" /* yacc.c:1648 */ 2518 { (yyval.integer) = SHORT; } 2519 #line 2520 "yyscript.c" /* yacc.c:1648 */ 2520 break; 2521 2522 case 102: 2523 #line 571 "yyscript.y" /* yacc.c:1648 */ 2524 { (yyval.integer) = BYTE; } 2525 #line 2526 "yyscript.c" /* yacc.c:1648 */ 2526 break; 2527 2528 case 103: 2529 #line 578 "yyscript.y" /* yacc.c:1648 */ 2530 { script_add_input_section(closure, &(yyvsp[0].input_section_spec), 0); } 2531 #line 2532 "yyscript.c" /* yacc.c:1648 */ 2532 break; 2533 2534 case 104: 2535 #line 580 "yyscript.y" /* yacc.c:1648 */ 2536 { script_add_input_section(closure, &(yyvsp[-1].input_section_spec), 1); } 2537 #line 2538 "yyscript.c" /* yacc.c:1648 */ 2538 break; 2539 2540 case 105: 2541 #line 586 "yyscript.y" /* yacc.c:1648 */ 2542 { 2543 (yyval.input_section_spec).file.name = (yyvsp[0].string); 2544 (yyval.input_section_spec).file.sort = SORT_WILDCARD_NONE; 2545 (yyval.input_section_spec).input_sections.sections = NULL; 2546 (yyval.input_section_spec).input_sections.exclude = NULL; 2547 } 2548 #line 2549 "yyscript.c" /* yacc.c:1648 */ 2549 break; 2550 2551 case 106: 2552 #line 593 "yyscript.y" /* yacc.c:1648 */ 2553 { 2554 (yyval.input_section_spec).file = (yyvsp[-3].wildcard_section); 2555 (yyval.input_section_spec).input_sections = (yyvsp[-1].wildcard_sections); 2556 } 2557 #line 2558 "yyscript.c" /* yacc.c:1648 */ 2558 break; 2559 2560 case 107: 2561 #line 602 "yyscript.y" /* yacc.c:1648 */ 2562 { 2563 (yyval.wildcard_section).name = (yyvsp[0].string); 2564 (yyval.wildcard_section).sort = SORT_WILDCARD_NONE; 2565 } 2566 #line 2567 "yyscript.c" /* yacc.c:1648 */ 2567 break; 2568 2569 case 108: 2570 #line 607 "yyscript.y" /* yacc.c:1648 */ 2571 { 2572 (yyval.wildcard_section).name = (yyvsp[-1].string); 2573 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME; 2574 } 2575 #line 2576 "yyscript.c" /* yacc.c:1648 */ 2576 break; 2577 2578 case 109: 2579 #line 616 "yyscript.y" /* yacc.c:1648 */ 2580 { 2581 (yyval.wildcard_sections).sections = script_string_sort_list_add((yyvsp[-2].wildcard_sections).sections, &(yyvsp[0].wildcard_section)); 2582 (yyval.wildcard_sections).exclude = (yyvsp[-2].wildcard_sections).exclude; 2583 } 2584 #line 2585 "yyscript.c" /* yacc.c:1648 */ 2585 break; 2586 2587 case 110: 2588 #line 621 "yyscript.y" /* yacc.c:1648 */ 2589 { 2590 (yyval.wildcard_sections).sections = script_new_string_sort_list(&(yyvsp[0].wildcard_section)); 2591 (yyval.wildcard_sections).exclude = NULL; 2592 } 2593 #line 2594 "yyscript.c" /* yacc.c:1648 */ 2594 break; 2595 2596 case 111: 2597 #line 626 "yyscript.y" /* yacc.c:1648 */ 2598 { 2599 (yyval.wildcard_sections).sections = (yyvsp[-5].wildcard_sections).sections; 2600 (yyval.wildcard_sections).exclude = script_string_list_append((yyvsp[-5].wildcard_sections).exclude, (yyvsp[-1].string_list)); 2601 } 2602 #line 2603 "yyscript.c" /* yacc.c:1648 */ 2603 break; 2604 2605 case 112: 2606 #line 631 "yyscript.y" /* yacc.c:1648 */ 2607 { 2608 (yyval.wildcard_sections).sections = NULL; 2609 (yyval.wildcard_sections).exclude = (yyvsp[-1].string_list); 2610 } 2611 #line 2612 "yyscript.c" /* yacc.c:1648 */ 2612 break; 2613 2614 case 113: 2615 #line 640 "yyscript.y" /* yacc.c:1648 */ 2616 { 2617 (yyval.wildcard_section).name = (yyvsp[0].string); 2618 (yyval.wildcard_section).sort = SORT_WILDCARD_NONE; 2619 } 2620 #line 2621 "yyscript.c" /* yacc.c:1648 */ 2621 break; 2622 2623 case 114: 2624 #line 645 "yyscript.y" /* yacc.c:1648 */ 2625 { 2626 (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name; 2627 switch ((yyvsp[-1].wildcard_section).sort) 2628 { 2629 case SORT_WILDCARD_NONE: 2630 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME; 2631 break; 2632 case SORT_WILDCARD_BY_NAME: 2633 case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT: 2634 break; 2635 case SORT_WILDCARD_BY_ALIGNMENT: 2636 case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME: 2637 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME_BY_ALIGNMENT; 2638 break; 2639 default: 2640 abort(); 2641 } 2642 } 2643 #line 2644 "yyscript.c" /* yacc.c:1648 */ 2644 break; 2645 2646 case 115: 2647 #line 664 "yyscript.y" /* yacc.c:1648 */ 2648 { 2649 (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name; 2650 switch ((yyvsp[-1].wildcard_section).sort) 2651 { 2652 case SORT_WILDCARD_NONE: 2653 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT; 2654 break; 2655 case SORT_WILDCARD_BY_ALIGNMENT: 2656 case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME: 2657 break; 2658 case SORT_WILDCARD_BY_NAME: 2659 case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT: 2660 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT_BY_NAME; 2661 break; 2662 default: 2663 abort(); 2664 } 2665 } 2666 #line 2667 "yyscript.c" /* yacc.c:1648 */ 2667 break; 2668 2669 case 116: 2670 #line 683 "yyscript.y" /* yacc.c:1648 */ 2671 { 2672 (yyval.wildcard_section).name = (yyvsp[-1].string); 2673 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_INIT_PRIORITY; 2674 } 2675 #line 2676 "yyscript.c" /* yacc.c:1648 */ 2676 break; 2677 2678 case 117: 2679 #line 692 "yyscript.y" /* yacc.c:1648 */ 2680 { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); } 2681 #line 2682 "yyscript.c" /* yacc.c:1648 */ 2682 break; 2683 2684 case 118: 2685 #line 694 "yyscript.y" /* yacc.c:1648 */ 2686 { (yyval.string_list) = script_new_string_list((yyvsp[0].string).value, (yyvsp[0].string).length); } 2687 #line 2688 "yyscript.c" /* yacc.c:1648 */ 2688 break; 2689 2690 case 119: 2691 #line 701 "yyscript.y" /* yacc.c:1648 */ 2692 { (yyval.string) = (yyvsp[0].string); } 2693 #line 2694 "yyscript.c" /* yacc.c:1648 */ 2694 break; 2695 2696 case 120: 2697 #line 703 "yyscript.y" /* yacc.c:1648 */ 2698 { 2699 (yyval.string).value = "*"; 2700 (yyval.string).length = 1; 2701 } 2702 #line 2703 "yyscript.c" /* yacc.c:1648 */ 2703 break; 2704 2705 case 121: 2706 #line 708 "yyscript.y" /* yacc.c:1648 */ 2707 { 2708 (yyval.string).value = "?"; 2709 (yyval.string).length = 1; 2710 } 2711 #line 2712 "yyscript.c" /* yacc.c:1648 */ 2712 break; 2713 2714 case 124: 2715 #line 723 "yyscript.y" /* yacc.c:1648 */ 2716 { script_add_memory(closure, (yyvsp[-9].string).value, (yyvsp[-9].string).length, (yyvsp[-8].integer), (yyvsp[-4].expr), (yyvsp[0].expr)); } 2717 #line 2718 "yyscript.c" /* yacc.c:1648 */ 2718 break; 2719 2720 case 125: 2721 #line 726 "yyscript.y" /* yacc.c:1648 */ 2722 { script_include_directive(PARSING_MEMORY_DEF, closure, 2723 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2724 #line 2725 "yyscript.c" /* yacc.c:1648 */ 2725 break; 2726 2727 case 127: 2728 #line 734 "yyscript.y" /* yacc.c:1648 */ 2729 { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 0); } 2730 #line 2731 "yyscript.c" /* yacc.c:1648 */ 2731 break; 2732 2733 case 128: 2734 #line 737 "yyscript.y" /* yacc.c:1648 */ 2735 { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 1); } 2736 #line 2737 "yyscript.c" /* yacc.c:1648 */ 2737 break; 2738 2739 case 129: 2740 #line 739 "yyscript.y" /* yacc.c:1648 */ 2741 { (yyval.integer) = 0; } 2742 #line 2743 "yyscript.c" /* yacc.c:1648 */ 2743 break; 2744 2745 case 138: 2746 #line 767 "yyscript.y" /* yacc.c:1648 */ 2747 { script_add_phdr(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-2].integer), &(yyvsp[-1].phdr_info)); } 2748 #line 2749 "yyscript.c" /* yacc.c:1648 */ 2749 break; 2750 2751 case 139: 2752 #line 776 "yyscript.y" /* yacc.c:1648 */ 2753 { (yyval.integer) = script_phdr_string_to_type(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2754 #line 2755 "yyscript.c" /* yacc.c:1648 */ 2755 break; 2756 2757 case 140: 2758 #line 778 "yyscript.y" /* yacc.c:1648 */ 2759 { (yyval.integer) = (yyvsp[0].integer); } 2760 #line 2761 "yyscript.c" /* yacc.c:1648 */ 2761 break; 2762 2763 case 141: 2764 #line 784 "yyscript.y" /* yacc.c:1648 */ 2765 { memset(&(yyval.phdr_info), 0, sizeof(struct Phdr_info)); } 2766 #line 2767 "yyscript.c" /* yacc.c:1648 */ 2767 break; 2768 2769 case 142: 2770 #line 786 "yyscript.y" /* yacc.c:1648 */ 2771 { 2772 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2773 if ((yyvsp[-1].string).length == 7 && strncmp((yyvsp[-1].string).value, "FILEHDR", 7) == 0) 2774 (yyval.phdr_info).includes_filehdr = 1; 2775 else 2776 yyerror(closure, "PHDRS syntax error"); 2777 } 2778 #line 2779 "yyscript.c" /* yacc.c:1648 */ 2779 break; 2780 2781 case 143: 2782 #line 794 "yyscript.y" /* yacc.c:1648 */ 2783 { 2784 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2785 (yyval.phdr_info).includes_phdrs = 1; 2786 } 2787 #line 2788 "yyscript.c" /* yacc.c:1648 */ 2788 break; 2789 2790 case 144: 2791 #line 799 "yyscript.y" /* yacc.c:1648 */ 2792 { 2793 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2794 if ((yyvsp[-4].string).length == 5 && strncmp((yyvsp[-4].string).value, "FLAGS", 5) == 0) 2795 { 2796 (yyval.phdr_info).is_flags_valid = 1; 2797 (yyval.phdr_info).flags = (yyvsp[-2].integer); 2798 } 2799 else 2800 yyerror(closure, "PHDRS syntax error"); 2801 } 2802 #line 2803 "yyscript.c" /* yacc.c:1648 */ 2803 break; 2804 2805 case 145: 2806 #line 810 "yyscript.y" /* yacc.c:1648 */ 2807 { 2808 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2809 (yyval.phdr_info).load_address = (yyvsp[-2].expr); 2810 } 2811 #line 2812 "yyscript.c" /* yacc.c:1648 */ 2812 break; 2813 2814 case 146: 2815 #line 819 "yyscript.y" /* yacc.c:1648 */ 2816 { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); } 2817 #line 2818 "yyscript.c" /* yacc.c:1648 */ 2818 break; 2819 2820 case 147: 2821 #line 821 "yyscript.y" /* yacc.c:1648 */ 2822 { 2823 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2824 Expression_ptr e = script_exp_binary_add(s, (yyvsp[0].expr)); 2825 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2826 } 2827 #line 2828 "yyscript.c" /* yacc.c:1648 */ 2828 break; 2829 2830 case 148: 2831 #line 827 "yyscript.y" /* yacc.c:1648 */ 2832 { 2833 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2834 Expression_ptr e = script_exp_binary_sub(s, (yyvsp[0].expr)); 2835 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2836 } 2837 #line 2838 "yyscript.c" /* yacc.c:1648 */ 2838 break; 2839 2840 case 149: 2841 #line 833 "yyscript.y" /* yacc.c:1648 */ 2842 { 2843 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2844 Expression_ptr e = script_exp_binary_mult(s, (yyvsp[0].expr)); 2845 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2846 } 2847 #line 2848 "yyscript.c" /* yacc.c:1648 */ 2848 break; 2849 2850 case 150: 2851 #line 839 "yyscript.y" /* yacc.c:1648 */ 2852 { 2853 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2854 Expression_ptr e = script_exp_binary_div(s, (yyvsp[0].expr)); 2855 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2856 } 2857 #line 2858 "yyscript.c" /* yacc.c:1648 */ 2858 break; 2859 2860 case 151: 2861 #line 845 "yyscript.y" /* yacc.c:1648 */ 2862 { 2863 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2864 Expression_ptr e = script_exp_binary_lshift(s, (yyvsp[0].expr)); 2865 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2866 } 2867 #line 2868 "yyscript.c" /* yacc.c:1648 */ 2868 break; 2869 2870 case 152: 2871 #line 851 "yyscript.y" /* yacc.c:1648 */ 2872 { 2873 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2874 Expression_ptr e = script_exp_binary_rshift(s, (yyvsp[0].expr)); 2875 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2876 } 2877 #line 2878 "yyscript.c" /* yacc.c:1648 */ 2878 break; 2879 2880 case 153: 2881 #line 857 "yyscript.y" /* yacc.c:1648 */ 2882 { 2883 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2884 Expression_ptr e = script_exp_binary_bitwise_and(s, (yyvsp[0].expr)); 2885 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2886 } 2887 #line 2888 "yyscript.c" /* yacc.c:1648 */ 2888 break; 2889 2890 case 154: 2891 #line 863 "yyscript.y" /* yacc.c:1648 */ 2892 { 2893 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2894 Expression_ptr e = script_exp_binary_bitwise_or(s, (yyvsp[0].expr)); 2895 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2896 } 2897 #line 2898 "yyscript.c" /* yacc.c:1648 */ 2898 break; 2899 2900 case 155: 2901 #line 869 "yyscript.y" /* yacc.c:1648 */ 2902 { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 0, 1); } 2903 #line 2904 "yyscript.c" /* yacc.c:1648 */ 2904 break; 2905 2906 case 156: 2907 #line 871 "yyscript.y" /* yacc.c:1648 */ 2908 { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 0); } 2909 #line 2910 "yyscript.c" /* yacc.c:1648 */ 2910 break; 2911 2912 case 157: 2913 #line 873 "yyscript.y" /* yacc.c:1648 */ 2914 { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 1); } 2915 #line 2916 "yyscript.c" /* yacc.c:1648 */ 2916 break; 2917 2918 case 158: 2919 #line 878 "yyscript.y" /* yacc.c:1648 */ 2920 { script_push_lex_into_expression_mode(closure); } 2921 #line 2922 "yyscript.c" /* yacc.c:1648 */ 2922 break; 2923 2924 case 159: 2925 #line 880 "yyscript.y" /* yacc.c:1648 */ 2926 { 2927 script_pop_lex_mode(closure); 2928 (yyval.expr) = (yyvsp[0].expr); 2929 } 2930 #line 2931 "yyscript.c" /* yacc.c:1648 */ 2931 break; 2932 2933 case 160: 2934 #line 889 "yyscript.y" /* yacc.c:1648 */ 2935 { (yyval.expr) = (yyvsp[-1].expr); } 2936 #line 2937 "yyscript.c" /* yacc.c:1648 */ 2937 break; 2938 2939 case 161: 2940 #line 891 "yyscript.y" /* yacc.c:1648 */ 2941 { (yyval.expr) = script_exp_unary_minus((yyvsp[0].expr)); } 2942 #line 2943 "yyscript.c" /* yacc.c:1648 */ 2943 break; 2944 2945 case 162: 2946 #line 893 "yyscript.y" /* yacc.c:1648 */ 2947 { (yyval.expr) = script_exp_unary_logical_not((yyvsp[0].expr)); } 2948 #line 2949 "yyscript.c" /* yacc.c:1648 */ 2949 break; 2950 2951 case 163: 2952 #line 895 "yyscript.y" /* yacc.c:1648 */ 2953 { (yyval.expr) = script_exp_unary_bitwise_not((yyvsp[0].expr)); } 2954 #line 2955 "yyscript.c" /* yacc.c:1648 */ 2955 break; 2956 2957 case 164: 2958 #line 897 "yyscript.y" /* yacc.c:1648 */ 2959 { (yyval.expr) = (yyvsp[0].expr); } 2960 #line 2961 "yyscript.c" /* yacc.c:1648 */ 2961 break; 2962 2963 case 165: 2964 #line 899 "yyscript.y" /* yacc.c:1648 */ 2965 { (yyval.expr) = script_exp_binary_mult((yyvsp[-2].expr), (yyvsp[0].expr)); } 2966 #line 2967 "yyscript.c" /* yacc.c:1648 */ 2967 break; 2968 2969 case 166: 2970 #line 901 "yyscript.y" /* yacc.c:1648 */ 2971 { (yyval.expr) = script_exp_binary_div((yyvsp[-2].expr), (yyvsp[0].expr)); } 2972 #line 2973 "yyscript.c" /* yacc.c:1648 */ 2973 break; 2974 2975 case 167: 2976 #line 903 "yyscript.y" /* yacc.c:1648 */ 2977 { (yyval.expr) = script_exp_binary_mod((yyvsp[-2].expr), (yyvsp[0].expr)); } 2978 #line 2979 "yyscript.c" /* yacc.c:1648 */ 2979 break; 2980 2981 case 168: 2982 #line 905 "yyscript.y" /* yacc.c:1648 */ 2983 { (yyval.expr) = script_exp_binary_add((yyvsp[-2].expr), (yyvsp[0].expr)); } 2984 #line 2985 "yyscript.c" /* yacc.c:1648 */ 2985 break; 2986 2987 case 169: 2988 #line 907 "yyscript.y" /* yacc.c:1648 */ 2989 { (yyval.expr) = script_exp_binary_sub((yyvsp[-2].expr), (yyvsp[0].expr)); } 2990 #line 2991 "yyscript.c" /* yacc.c:1648 */ 2991 break; 2992 2993 case 170: 2994 #line 909 "yyscript.y" /* yacc.c:1648 */ 2995 { (yyval.expr) = script_exp_binary_lshift((yyvsp[-2].expr), (yyvsp[0].expr)); } 2996 #line 2997 "yyscript.c" /* yacc.c:1648 */ 2997 break; 2998 2999 case 171: 3000 #line 911 "yyscript.y" /* yacc.c:1648 */ 3001 { (yyval.expr) = script_exp_binary_rshift((yyvsp[-2].expr), (yyvsp[0].expr)); } 3002 #line 3003 "yyscript.c" /* yacc.c:1648 */ 3003 break; 3004 3005 case 172: 3006 #line 913 "yyscript.y" /* yacc.c:1648 */ 3007 { (yyval.expr) = script_exp_binary_eq((yyvsp[-2].expr), (yyvsp[0].expr)); } 3008 #line 3009 "yyscript.c" /* yacc.c:1648 */ 3009 break; 3010 3011 case 173: 3012 #line 915 "yyscript.y" /* yacc.c:1648 */ 3013 { (yyval.expr) = script_exp_binary_ne((yyvsp[-2].expr), (yyvsp[0].expr)); } 3014 #line 3015 "yyscript.c" /* yacc.c:1648 */ 3015 break; 3016 3017 case 174: 3018 #line 917 "yyscript.y" /* yacc.c:1648 */ 3019 { (yyval.expr) = script_exp_binary_le((yyvsp[-2].expr), (yyvsp[0].expr)); } 3020 #line 3021 "yyscript.c" /* yacc.c:1648 */ 3021 break; 3022 3023 case 175: 3024 #line 919 "yyscript.y" /* yacc.c:1648 */ 3025 { (yyval.expr) = script_exp_binary_ge((yyvsp[-2].expr), (yyvsp[0].expr)); } 3026 #line 3027 "yyscript.c" /* yacc.c:1648 */ 3027 break; 3028 3029 case 176: 3030 #line 921 "yyscript.y" /* yacc.c:1648 */ 3031 { (yyval.expr) = script_exp_binary_lt((yyvsp[-2].expr), (yyvsp[0].expr)); } 3032 #line 3033 "yyscript.c" /* yacc.c:1648 */ 3033 break; 3034 3035 case 177: 3036 #line 923 "yyscript.y" /* yacc.c:1648 */ 3037 { (yyval.expr) = script_exp_binary_gt((yyvsp[-2].expr), (yyvsp[0].expr)); } 3038 #line 3039 "yyscript.c" /* yacc.c:1648 */ 3039 break; 3040 3041 case 178: 3042 #line 925 "yyscript.y" /* yacc.c:1648 */ 3043 { (yyval.expr) = script_exp_binary_bitwise_and((yyvsp[-2].expr), (yyvsp[0].expr)); } 3044 #line 3045 "yyscript.c" /* yacc.c:1648 */ 3045 break; 3046 3047 case 179: 3048 #line 927 "yyscript.y" /* yacc.c:1648 */ 3049 { (yyval.expr) = script_exp_binary_bitwise_xor((yyvsp[-2].expr), (yyvsp[0].expr)); } 3050 #line 3051 "yyscript.c" /* yacc.c:1648 */ 3051 break; 3052 3053 case 180: 3054 #line 929 "yyscript.y" /* yacc.c:1648 */ 3055 { (yyval.expr) = script_exp_binary_bitwise_or((yyvsp[-2].expr), (yyvsp[0].expr)); } 3056 #line 3057 "yyscript.c" /* yacc.c:1648 */ 3057 break; 3058 3059 case 181: 3060 #line 931 "yyscript.y" /* yacc.c:1648 */ 3061 { (yyval.expr) = script_exp_binary_logical_and((yyvsp[-2].expr), (yyvsp[0].expr)); } 3062 #line 3063 "yyscript.c" /* yacc.c:1648 */ 3063 break; 3064 3065 case 182: 3066 #line 933 "yyscript.y" /* yacc.c:1648 */ 3067 { (yyval.expr) = script_exp_binary_logical_or((yyvsp[-2].expr), (yyvsp[0].expr)); } 3068 #line 3069 "yyscript.c" /* yacc.c:1648 */ 3069 break; 3070 3071 case 183: 3072 #line 935 "yyscript.y" /* yacc.c:1648 */ 3073 { (yyval.expr) = script_exp_trinary_cond((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } 3074 #line 3075 "yyscript.c" /* yacc.c:1648 */ 3075 break; 3076 3077 case 184: 3078 #line 937 "yyscript.y" /* yacc.c:1648 */ 3079 { (yyval.expr) = script_exp_integer((yyvsp[0].integer)); } 3080 #line 3081 "yyscript.c" /* yacc.c:1648 */ 3081 break; 3082 3083 case 185: 3084 #line 939 "yyscript.y" /* yacc.c:1648 */ 3085 { (yyval.expr) = script_symbol(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 3086 #line 3087 "yyscript.c" /* yacc.c:1648 */ 3087 break; 3088 3089 case 186: 3090 #line 941 "yyscript.y" /* yacc.c:1648 */ 3091 { (yyval.expr) = script_exp_function_max((yyvsp[-3].expr), (yyvsp[-1].expr)); } 3092 #line 3093 "yyscript.c" /* yacc.c:1648 */ 3093 break; 3094 3095 case 187: 3096 #line 943 "yyscript.y" /* yacc.c:1648 */ 3097 { (yyval.expr) = script_exp_function_min((yyvsp[-3].expr), (yyvsp[-1].expr)); } 3098 #line 3099 "yyscript.c" /* yacc.c:1648 */ 3099 break; 3100 3101 case 188: 3102 #line 945 "yyscript.y" /* yacc.c:1648 */ 3103 { (yyval.expr) = script_exp_function_defined((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3104 #line 3105 "yyscript.c" /* yacc.c:1648 */ 3105 break; 3106 3107 case 189: 3108 #line 947 "yyscript.y" /* yacc.c:1648 */ 3109 { (yyval.expr) = script_exp_function_sizeof_headers(); } 3110 #line 3111 "yyscript.c" /* yacc.c:1648 */ 3111 break; 3112 3113 case 190: 3114 #line 949 "yyscript.y" /* yacc.c:1648 */ 3115 { (yyval.expr) = script_exp_function_alignof((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3116 #line 3117 "yyscript.c" /* yacc.c:1648 */ 3117 break; 3118 3119 case 191: 3120 #line 951 "yyscript.y" /* yacc.c:1648 */ 3121 { (yyval.expr) = script_exp_function_sizeof((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3122 #line 3123 "yyscript.c" /* yacc.c:1648 */ 3123 break; 3124 3125 case 192: 3126 #line 953 "yyscript.y" /* yacc.c:1648 */ 3127 { (yyval.expr) = script_exp_function_addr((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3128 #line 3129 "yyscript.c" /* yacc.c:1648 */ 3129 break; 3130 3131 case 193: 3132 #line 955 "yyscript.y" /* yacc.c:1648 */ 3133 { (yyval.expr) = script_exp_function_loadaddr((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3134 #line 3135 "yyscript.c" /* yacc.c:1648 */ 3135 break; 3136 3137 case 194: 3138 #line 957 "yyscript.y" /* yacc.c:1648 */ 3139 { (yyval.expr) = script_exp_function_origin(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3140 #line 3141 "yyscript.c" /* yacc.c:1648 */ 3141 break; 3142 3143 case 195: 3144 #line 959 "yyscript.y" /* yacc.c:1648 */ 3145 { (yyval.expr) = script_exp_function_length(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3146 #line 3147 "yyscript.c" /* yacc.c:1648 */ 3147 break; 3148 3149 case 196: 3150 #line 961 "yyscript.y" /* yacc.c:1648 */ 3151 { (yyval.expr) = script_exp_function_constant((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3152 #line 3153 "yyscript.c" /* yacc.c:1648 */ 3153 break; 3154 3155 case 197: 3156 #line 963 "yyscript.y" /* yacc.c:1648 */ 3157 { (yyval.expr) = script_exp_function_absolute((yyvsp[-1].expr)); } 3158 #line 3159 "yyscript.c" /* yacc.c:1648 */ 3159 break; 3160 3161 case 198: 3162 #line 965 "yyscript.y" /* yacc.c:1648 */ 3163 { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); } 3164 #line 3165 "yyscript.c" /* yacc.c:1648 */ 3165 break; 3166 3167 case 199: 3168 #line 967 "yyscript.y" /* yacc.c:1648 */ 3169 { (yyval.expr) = script_exp_function_align((yyvsp[-3].expr), (yyvsp[-1].expr)); } 3170 #line 3171 "yyscript.c" /* yacc.c:1648 */ 3171 break; 3172 3173 case 200: 3174 #line 969 "yyscript.y" /* yacc.c:1648 */ 3175 { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); } 3176 #line 3177 "yyscript.c" /* yacc.c:1648 */ 3177 break; 3178 3179 case 201: 3180 #line 971 "yyscript.y" /* yacc.c:1648 */ 3181 { 3182 script_data_segment_align(closure); 3183 (yyval.expr) = script_exp_function_data_segment_align((yyvsp[-3].expr), (yyvsp[-1].expr)); 3184 } 3185 #line 3186 "yyscript.c" /* yacc.c:1648 */ 3186 break; 3187 3188 case 202: 3189 #line 976 "yyscript.y" /* yacc.c:1648 */ 3190 { 3191 script_data_segment_relro_end(closure); 3192 (yyval.expr) = script_exp_function_data_segment_relro_end((yyvsp[-3].expr), (yyvsp[-1].expr)); 3193 } 3194 #line 3195 "yyscript.c" /* yacc.c:1648 */ 3195 break; 3196 3197 case 203: 3198 #line 981 "yyscript.y" /* yacc.c:1648 */ 3199 { (yyval.expr) = script_exp_function_data_segment_end((yyvsp[-1].expr)); } 3200 #line 3201 "yyscript.c" /* yacc.c:1648 */ 3201 break; 3202 3203 case 204: 3204 #line 983 "yyscript.y" /* yacc.c:1648 */ 3205 { 3206 (yyval.expr) = script_exp_function_segment_start((yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr)); 3207 /* We need to take note of any SEGMENT_START expressions 3208 because they change the behaviour of -Ttext, -Tdata and 3209 -Tbss options. */ 3210 script_saw_segment_start_expression(closure); 3211 } 3212 #line 3213 "yyscript.c" /* yacc.c:1648 */ 3213 break; 3214 3215 case 205: 3216 #line 991 "yyscript.y" /* yacc.c:1648 */ 3217 { (yyval.expr) = script_exp_function_assert((yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3218 #line 3219 "yyscript.c" /* yacc.c:1648 */ 3219 break; 3220 3221 case 206: 3222 #line 997 "yyscript.y" /* yacc.c:1648 */ 3223 { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); } 3224 #line 3225 "yyscript.c" /* yacc.c:1648 */ 3225 break; 3226 3227 case 210: 3228 #line 1015 "yyscript.y" /* yacc.c:1648 */ 3229 { script_new_vers_node (closure, NULL, (yyvsp[-3].versyms)); } 3230 #line 3231 "yyscript.c" /* yacc.c:1648 */ 3231 break; 3232 3233 case 214: 3234 #line 1030 "yyscript.y" /* yacc.c:1648 */ 3235 { 3236 script_register_vers_node (closure, NULL, 0, (yyvsp[-2].versnode), NULL); 3237 } 3238 #line 3239 "yyscript.c" /* yacc.c:1648 */ 3239 break; 3240 3241 case 215: 3242 #line 1034 "yyscript.y" /* yacc.c:1648 */ 3243 { 3244 script_register_vers_node (closure, (yyvsp[-4].string).value, (yyvsp[-4].string).length, (yyvsp[-2].versnode), 3245 NULL); 3246 } 3247 #line 3248 "yyscript.c" /* yacc.c:1648 */ 3248 break; 3249 3250 case 216: 3251 #line 1039 "yyscript.y" /* yacc.c:1648 */ 3252 { 3253 script_register_vers_node (closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length, (yyvsp[-3].versnode), (yyvsp[-1].deplist)); 3254 } 3255 #line 3256 "yyscript.c" /* yacc.c:1648 */ 3256 break; 3257 3258 case 217: 3259 #line 1046 "yyscript.y" /* yacc.c:1648 */ 3260 { 3261 (yyval.deplist) = script_add_vers_depend (closure, NULL, (yyvsp[0].string).value, (yyvsp[0].string).length); 3262 } 3263 #line 3264 "yyscript.c" /* yacc.c:1648 */ 3264 break; 3265 3266 case 218: 3267 #line 1050 "yyscript.y" /* yacc.c:1648 */ 3268 { 3269 (yyval.deplist) = script_add_vers_depend (closure, (yyvsp[-1].deplist), (yyvsp[0].string).value, (yyvsp[0].string).length); 3270 } 3271 #line 3272 "yyscript.c" /* yacc.c:1648 */ 3272 break; 3273 3274 case 219: 3275 #line 1057 "yyscript.y" /* yacc.c:1648 */ 3276 { (yyval.versnode) = script_new_vers_node (closure, NULL, NULL); } 3277 #line 3278 "yyscript.c" /* yacc.c:1648 */ 3278 break; 3279 3280 case 220: 3281 #line 1059 "yyscript.y" /* yacc.c:1648 */ 3282 { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); } 3283 #line 3284 "yyscript.c" /* yacc.c:1648 */ 3284 break; 3285 3286 case 221: 3287 #line 1061 "yyscript.y" /* yacc.c:1648 */ 3288 { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); } 3289 #line 3290 "yyscript.c" /* yacc.c:1648 */ 3290 break; 3291 3292 case 222: 3293 #line 1063 "yyscript.y" /* yacc.c:1648 */ 3294 { (yyval.versnode) = script_new_vers_node (closure, NULL, (yyvsp[-1].versyms)); } 3295 #line 3296 "yyscript.c" /* yacc.c:1648 */ 3296 break; 3297 3298 case 223: 3299 #line 1065 "yyscript.y" /* yacc.c:1648 */ 3300 { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-5].versyms), (yyvsp[-1].versyms)); } 3301 #line 3302 "yyscript.c" /* yacc.c:1648 */ 3302 break; 3303 3304 case 224: 3305 #line 1074 "yyscript.y" /* yacc.c:1648 */ 3306 { 3307 (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value, 3308 (yyvsp[0].string).length, 0); 3309 } 3310 #line 3311 "yyscript.c" /* yacc.c:1648 */ 3311 break; 3312 3313 case 225: 3314 #line 1079 "yyscript.y" /* yacc.c:1648 */ 3315 { 3316 (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value, 3317 (yyvsp[0].string).length, 1); 3318 } 3319 #line 3320 "yyscript.c" /* yacc.c:1648 */ 3320 break; 3321 3322 case 226: 3323 #line 1084 "yyscript.y" /* yacc.c:1648 */ 3324 { 3325 (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value, 3326 (yyvsp[0].string).length, 0); 3327 } 3328 #line 3329 "yyscript.c" /* yacc.c:1648 */ 3329 break; 3330 3331 case 227: 3332 #line 1089 "yyscript.y" /* yacc.c:1648 */ 3333 { 3334 (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value, 3335 (yyvsp[0].string).length, 1); 3336 } 3337 #line 3338 "yyscript.c" /* yacc.c:1648 */ 3338 break; 3339 3340 case 228: 3341 #line 1095 "yyscript.y" /* yacc.c:1648 */ 3342 { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3343 #line 3344 "yyscript.c" /* yacc.c:1648 */ 3344 break; 3345 3346 case 229: 3347 #line 1097 "yyscript.y" /* yacc.c:1648 */ 3348 { 3349 (yyval.versyms) = (yyvsp[-2].versyms); 3350 version_script_pop_lang(closure); 3351 } 3352 #line 3353 "yyscript.c" /* yacc.c:1648 */ 3353 break; 3354 3355 case 230: 3356 #line 1105 "yyscript.y" /* yacc.c:1648 */ 3357 { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3358 #line 3359 "yyscript.c" /* yacc.c:1648 */ 3359 break; 3360 3361 case 231: 3362 #line 1107 "yyscript.y" /* yacc.c:1648 */ 3363 { 3364 (yyval.versyms) = script_merge_expressions ((yyvsp[-8].versyms), (yyvsp[-2].versyms)); 3365 version_script_pop_lang(closure); 3366 } 3367 #line 3368 "yyscript.c" /* yacc.c:1648 */ 3368 break; 3369 3370 case 232: 3371 #line 1112 "yyscript.y" /* yacc.c:1648 */ 3372 { 3373 (yyval.versyms) = script_new_vers_pattern (closure, NULL, "extern", 3374 sizeof("extern") - 1, 1); 3375 } 3376 #line 3377 "yyscript.c" /* yacc.c:1648 */ 3377 break; 3378 3379 case 233: 3380 #line 1117 "yyscript.y" /* yacc.c:1648 */ 3381 { 3382 (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), "extern", 3383 sizeof("extern") - 1, 1); 3384 } 3385 #line 3386 "yyscript.c" /* yacc.c:1648 */ 3386 break; 3387 3388 case 234: 3389 #line 1127 "yyscript.y" /* yacc.c:1648 */ 3390 { (yyval.string) = (yyvsp[0].string); } 3391 #line 3392 "yyscript.c" /* yacc.c:1648 */ 3392 break; 3393 3394 case 235: 3395 #line 1129 "yyscript.y" /* yacc.c:1648 */ 3396 { (yyval.string) = (yyvsp[0].string); } 3397 #line 3398 "yyscript.c" /* yacc.c:1648 */ 3398 break; 3399 3400 3401 #line 3402 "yyscript.c" /* yacc.c:1648 */ 3402 default: break; 3403 } 3404 /* User semantic actions sometimes alter yychar, and that requires 3405 that yytoken be updated with the new translation. We take the 3406 approach of translating immediately before every use of yytoken. 3407 One alternative is translating here after every semantic action, 3408 but that translation would be missed if the semantic action invokes 3409 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 3410 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 3411 incorrect destructor might then be invoked immediately. In the 3412 case of YYERROR or YYBACKUP, subsequent parser actions might lead 3413 to an incorrect destructor call or verbose syntax error message 3414 before the lookahead is translated. */ 3415 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 3416 3417 YYPOPSTACK (yylen); 3418 yylen = 0; 3419 YY_STACK_PRINT (yyss, yyssp); 3420 3421 *++yyvsp = yyval; 3422 3423 /* Now 'shift' the result of the reduction. Determine what state 3424 that goes to, based on the state we popped back to and the rule 3425 number reduced by. */ 3426 3427 yyn = yyr1[yyn]; 3428 3429 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 3430 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 3431 yystate = yytable[yystate]; 3432 else 3433 yystate = yydefgoto[yyn - YYNTOKENS]; 3434 3435 goto yynewstate; 3436 3437 3438 /*--------------------------------------. 3439 | yyerrlab -- here on detecting error. | 3440 `--------------------------------------*/ 3441 yyerrlab: 3442 /* Make sure we have latest lookahead translation. See comments at 3443 user semantic actions for why this is necessary. */ 3444 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 3445 3446 /* If not already recovering from an error, report this error. */ 3447 if (!yyerrstatus) 3448 { 3449 ++yynerrs; 3450 #if ! YYERROR_VERBOSE 3451 yyerror (closure, YY_("syntax error")); 3452 #else 3453 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 3454 yyssp, yytoken) 3455 { 3456 char const *yymsgp = YY_("syntax error"); 3457 int yysyntax_error_status; 3458 yysyntax_error_status = YYSYNTAX_ERROR; 3459 if (yysyntax_error_status == 0) 3460 yymsgp = yymsg; 3461 else if (yysyntax_error_status == 1) 3462 { 3463 if (yymsg != yymsgbuf) 3464 YYSTACK_FREE (yymsg); 3465 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 3466 if (!yymsg) 3467 { 3468 yymsg = yymsgbuf; 3469 yymsg_alloc = sizeof yymsgbuf; 3470 yysyntax_error_status = 2; 3471 } 3472 else 3473 { 3474 yysyntax_error_status = YYSYNTAX_ERROR; 3475 yymsgp = yymsg; 3476 } 3477 } 3478 yyerror (closure, yymsgp); 3479 if (yysyntax_error_status == 2) 3480 goto yyexhaustedlab; 3481 } 3482 # undef YYSYNTAX_ERROR 3483 #endif 3484 } 3485 3486 3487 3488 if (yyerrstatus == 3) 3489 { 3490 /* If just tried and failed to reuse lookahead token after an 3491 error, discard it. */ 3492 3493 if (yychar <= YYEOF) 3494 { 3495 /* Return failure if at end of input. */ 3496 if (yychar == YYEOF) 3497 YYABORT; 3498 } 3499 else 3500 { 3501 yydestruct ("Error: discarding", 3502 yytoken, &yylval, closure); 3503 yychar = YYEMPTY; 3504 } 3505 } 3506 3507 /* Else will try to reuse lookahead token after shifting the error 3508 token. */ 3509 goto yyerrlab1; 3510 3511 3512 /*---------------------------------------------------. 3513 | yyerrorlab -- error raised explicitly by YYERROR. | 3514 `---------------------------------------------------*/ 3515 yyerrorlab: 3516 3517 /* Pacify compilers like GCC when the user code never invokes 3518 YYERROR and the label yyerrorlab therefore never appears in user 3519 code. */ 3520 if (/*CONSTCOND*/ 0) 3521 goto yyerrorlab; 3522 3523 /* Do not reclaim the symbols of the rule whose action triggered 3524 this YYERROR. */ 3525 YYPOPSTACK (yylen); 3526 yylen = 0; 3527 YY_STACK_PRINT (yyss, yyssp); 3528 yystate = *yyssp; 3529 goto yyerrlab1; 3530 3531 3532 /*-------------------------------------------------------------. 3533 | yyerrlab1 -- common code for both syntax error and YYERROR. | 3534 `-------------------------------------------------------------*/ 3535 yyerrlab1: 3536 yyerrstatus = 3; /* Each real token shifted decrements this. */ 3537 3538 for (;;) 3539 { 3540 yyn = yypact[yystate]; 3541 if (!yypact_value_is_default (yyn)) 3542 { 3543 yyn += YYTERROR; 3544 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 3545 { 3546 yyn = yytable[yyn]; 3547 if (0 < yyn) 3548 break; 3549 } 3550 } 3551 3552 /* Pop the current state because it cannot handle the error token. */ 3553 if (yyssp == yyss) 3554 YYABORT; 3555 3556 3557 yydestruct ("Error: popping", 3558 yystos[yystate], yyvsp, closure); 3559 YYPOPSTACK (1); 3560 yystate = *yyssp; 3561 YY_STACK_PRINT (yyss, yyssp); 3562 } 3563 3564 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 3565 *++yyvsp = yylval; 3566 YY_IGNORE_MAYBE_UNINITIALIZED_END 3567 3568 3569 /* Shift the error token. */ 3570 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 3571 3572 yystate = yyn; 3573 goto yynewstate; 3574 3575 3576 /*-------------------------------------. 3577 | yyacceptlab -- YYACCEPT comes here. | 3578 `-------------------------------------*/ 3579 yyacceptlab: 3580 yyresult = 0; 3581 goto yyreturn; 3582 3583 /*-----------------------------------. 3584 | yyabortlab -- YYABORT comes here. | 3585 `-----------------------------------*/ 3586 yyabortlab: 3587 yyresult = 1; 3588 goto yyreturn; 3589 3590 #if !defined yyoverflow || YYERROR_VERBOSE 3591 /*-------------------------------------------------. 3592 | yyexhaustedlab -- memory exhaustion comes here. | 3593 `-------------------------------------------------*/ 3594 yyexhaustedlab: 3595 yyerror (closure, YY_("memory exhausted")); 3596 yyresult = 2; 3597 /* Fall through. */ 3598 #endif 3599 3600 yyreturn: 3601 if (yychar != YYEMPTY) 3602 { 3603 /* Make sure we have latest lookahead translation. See comments at 3604 user semantic actions for why this is necessary. */ 3605 yytoken = YYTRANSLATE (yychar); 3606 yydestruct ("Cleanup: discarding lookahead", 3607 yytoken, &yylval, closure); 3608 } 3609 /* Do not reclaim the symbols of the rule whose action triggered 3610 this YYABORT or YYACCEPT. */ 3611 YYPOPSTACK (yylen); 3612 YY_STACK_PRINT (yyss, yyssp); 3613 while (yyssp != yyss) 3614 { 3615 yydestruct ("Cleanup: popping", 3616 yystos[*yyssp], yyvsp, closure); 3617 YYPOPSTACK (1); 3618 } 3619 #ifndef yyoverflow 3620 if (yyss != yyssa) 3621 YYSTACK_FREE (yyss); 3622 #endif 3623 #if YYERROR_VERBOSE 3624 if (yymsg != yymsgbuf) 3625 YYSTACK_FREE (yymsg); 3626 #endif 3627 return yyresult; 3628 } 3629 #line 1151 "yyscript.y" /* yacc.c:1907 */ 3630 3631