1 /* A Bison parser, made by GNU Bison 3.0.4. */ 2 3 /* Bison implementation for Yacc-like parsers in C 4 5 Copyright (C) 1984, 1989-1990, 2000-2015 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.4" 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 YYCASE_(0, YY_("syntax error")); 1725 YYCASE_(1, YY_("syntax error, unexpected %s")); 1726 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 1727 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 1728 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 1729 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 1730 # undef YYCASE_ 1731 } 1732 1733 { 1734 YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 1735 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1736 return 2; 1737 yysize = yysize1; 1738 } 1739 1740 if (*yymsg_alloc < yysize) 1741 { 1742 *yymsg_alloc = 2 * yysize; 1743 if (! (yysize <= *yymsg_alloc 1744 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 1745 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 1746 return 1; 1747 } 1748 1749 /* Avoid sprintf, as that infringes on the user's name space. 1750 Don't have undefined behavior even if the translation 1751 produced a string with the wrong number of "%s"s. */ 1752 { 1753 char *yyp = *yymsg; 1754 int yyi = 0; 1755 while ((*yyp = *yyformat) != '\0') 1756 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 1757 { 1758 yyp += yytnamerr (yyp, yyarg[yyi++]); 1759 yyformat += 2; 1760 } 1761 else 1762 { 1763 yyp++; 1764 yyformat++; 1765 } 1766 } 1767 return 0; 1768 } 1769 #endif /* YYERROR_VERBOSE */ 1770 1771 /*-----------------------------------------------. 1772 | Release the memory associated to this symbol. | 1773 `-----------------------------------------------*/ 1774 1775 static void 1776 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* closure) 1777 { 1778 YYUSE (yyvaluep); 1779 YYUSE (closure); 1780 if (!yymsg) 1781 yymsg = "Deleting"; 1782 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 1783 1784 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 1785 YYUSE (yytype); 1786 YY_IGNORE_MAYBE_UNINITIALIZED_END 1787 } 1788 1789 1790 1791 1792 /*----------. 1793 | yyparse. | 1794 `----------*/ 1795 1796 int 1797 yyparse (void* closure) 1798 { 1799 /* The lookahead symbol. */ 1800 int yychar; 1801 1802 1803 /* The semantic value of the lookahead symbol. */ 1804 /* Default value used for initialization, for pacifying older GCCs 1805 or non-GCC compilers. */ 1806 YY_INITIAL_VALUE (static YYSTYPE yyval_default;) 1807 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); 1808 1809 /* Number of syntax errors so far. */ 1810 int yynerrs; 1811 1812 int yystate; 1813 /* Number of tokens to shift before error messages enabled. */ 1814 int yyerrstatus; 1815 1816 /* The stacks and their tools: 1817 'yyss': related to states. 1818 'yyvs': related to semantic values. 1819 1820 Refer to the stacks through separate pointers, to allow yyoverflow 1821 to reallocate them elsewhere. */ 1822 1823 /* The state stack. */ 1824 yytype_int16 yyssa[YYINITDEPTH]; 1825 yytype_int16 *yyss; 1826 yytype_int16 *yyssp; 1827 1828 /* The semantic value stack. */ 1829 YYSTYPE yyvsa[YYINITDEPTH]; 1830 YYSTYPE *yyvs; 1831 YYSTYPE *yyvsp; 1832 1833 YYSIZE_T yystacksize; 1834 1835 int yyn; 1836 int yyresult; 1837 /* Lookahead token as an internal (translated) token number. */ 1838 int yytoken = 0; 1839 /* The variables used to return semantic value and location from the 1840 action routines. */ 1841 YYSTYPE yyval; 1842 1843 #if YYERROR_VERBOSE 1844 /* Buffer for error messages, and its allocated size. */ 1845 char yymsgbuf[128]; 1846 char *yymsg = yymsgbuf; 1847 YYSIZE_T yymsg_alloc = sizeof yymsgbuf; 1848 #endif 1849 1850 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) 1851 1852 /* The number of symbols on the RHS of the reduced rule. 1853 Keep to zero when no symbol should be popped. */ 1854 int yylen = 0; 1855 1856 yyssp = yyss = yyssa; 1857 yyvsp = yyvs = yyvsa; 1858 yystacksize = YYINITDEPTH; 1859 1860 YYDPRINTF ((stderr, "Starting parse\n")); 1861 1862 yystate = 0; 1863 yyerrstatus = 0; 1864 yynerrs = 0; 1865 yychar = YYEMPTY; /* Cause a token to be read. */ 1866 goto yysetstate; 1867 1868 /*------------------------------------------------------------. 1869 | yynewstate -- Push a new state, which is found in yystate. | 1870 `------------------------------------------------------------*/ 1871 yynewstate: 1872 /* In all cases, when you get here, the value and location stacks 1873 have just been pushed. So pushing a state here evens the stacks. */ 1874 yyssp++; 1875 1876 yysetstate: 1877 *yyssp = yystate; 1878 1879 if (yyss + yystacksize - 1 <= yyssp) 1880 { 1881 /* Get the current used size of the three stacks, in elements. */ 1882 YYSIZE_T yysize = yyssp - yyss + 1; 1883 1884 #ifdef yyoverflow 1885 { 1886 /* Give user a chance to reallocate the stack. Use copies of 1887 these so that the &'s don't force the real ones into 1888 memory. */ 1889 YYSTYPE *yyvs1 = yyvs; 1890 yytype_int16 *yyss1 = yyss; 1891 1892 /* Each stack pointer address is followed by the size of the 1893 data in use in that stack, in bytes. This used to be a 1894 conditional around just the two extra args, but that might 1895 be undefined if yyoverflow is a macro. */ 1896 yyoverflow (YY_("memory exhausted"), 1897 &yyss1, yysize * sizeof (*yyssp), 1898 &yyvs1, yysize * sizeof (*yyvsp), 1899 &yystacksize); 1900 1901 yyss = yyss1; 1902 yyvs = yyvs1; 1903 } 1904 #else /* no yyoverflow */ 1905 # ifndef YYSTACK_RELOCATE 1906 goto yyexhaustedlab; 1907 # else 1908 /* Extend the stack our own way. */ 1909 if (YYMAXDEPTH <= yystacksize) 1910 goto yyexhaustedlab; 1911 yystacksize *= 2; 1912 if (YYMAXDEPTH < yystacksize) 1913 yystacksize = YYMAXDEPTH; 1914 1915 { 1916 yytype_int16 *yyss1 = yyss; 1917 union yyalloc *yyptr = 1918 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 1919 if (! yyptr) 1920 goto yyexhaustedlab; 1921 YYSTACK_RELOCATE (yyss_alloc, yyss); 1922 YYSTACK_RELOCATE (yyvs_alloc, yyvs); 1923 # undef YYSTACK_RELOCATE 1924 if (yyss1 != yyssa) 1925 YYSTACK_FREE (yyss1); 1926 } 1927 # endif 1928 #endif /* no yyoverflow */ 1929 1930 yyssp = yyss + yysize - 1; 1931 yyvsp = yyvs + yysize - 1; 1932 1933 YYDPRINTF ((stderr, "Stack size increased to %lu\n", 1934 (unsigned long int) yystacksize)); 1935 1936 if (yyss + yystacksize - 1 <= yyssp) 1937 YYABORT; 1938 } 1939 1940 YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 1941 1942 if (yystate == YYFINAL) 1943 YYACCEPT; 1944 1945 goto yybackup; 1946 1947 /*-----------. 1948 | yybackup. | 1949 `-----------*/ 1950 yybackup: 1951 1952 /* Do appropriate processing given the current state. Read a 1953 lookahead token if we need one and don't already have one. */ 1954 1955 /* First try to decide what to do without reference to lookahead token. */ 1956 yyn = yypact[yystate]; 1957 if (yypact_value_is_default (yyn)) 1958 goto yydefault; 1959 1960 /* Not known => get a lookahead token if don't already have one. */ 1961 1962 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ 1963 if (yychar == YYEMPTY) 1964 { 1965 YYDPRINTF ((stderr, "Reading a token: ")); 1966 yychar = yylex (&yylval, closure); 1967 } 1968 1969 if (yychar <= YYEOF) 1970 { 1971 yychar = yytoken = YYEOF; 1972 YYDPRINTF ((stderr, "Now at end of input.\n")); 1973 } 1974 else 1975 { 1976 yytoken = YYTRANSLATE (yychar); 1977 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); 1978 } 1979 1980 /* If the proper action on seeing token YYTOKEN is to reduce or to 1981 detect an error, take that action. */ 1982 yyn += yytoken; 1983 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) 1984 goto yydefault; 1985 yyn = yytable[yyn]; 1986 if (yyn <= 0) 1987 { 1988 if (yytable_value_is_error (yyn)) 1989 goto yyerrlab; 1990 yyn = -yyn; 1991 goto yyreduce; 1992 } 1993 1994 /* Count tokens shifted since error; after three, turn off error 1995 status. */ 1996 if (yyerrstatus) 1997 yyerrstatus--; 1998 1999 /* Shift the lookahead token. */ 2000 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 2001 2002 /* Discard the shifted token. */ 2003 yychar = YYEMPTY; 2004 2005 yystate = yyn; 2006 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 2007 *++yyvsp = yylval; 2008 YY_IGNORE_MAYBE_UNINITIALIZED_END 2009 2010 goto yynewstate; 2011 2012 2013 /*-----------------------------------------------------------. 2014 | yydefault -- do the default action for the current state. | 2015 `-----------------------------------------------------------*/ 2016 yydefault: 2017 yyn = yydefact[yystate]; 2018 if (yyn == 0) 2019 goto yyerrlab; 2020 goto yyreduce; 2021 2022 2023 /*-----------------------------. 2024 | yyreduce -- Do a reduction. | 2025 `-----------------------------*/ 2026 yyreduce: 2027 /* yyn is the number of a rule to reduce with. */ 2028 yylen = yyr2[yyn]; 2029 2030 /* If YYLEN is nonzero, implement the default value of the action: 2031 '$$ = $1'. 2032 2033 Otherwise, the following line sets YYVAL to garbage. 2034 This behavior is undocumented and Bison 2035 users should not rely upon it. Assigning to YYVAL 2036 unconditionally makes the parser a bit smaller, and it avoids a 2037 GCC warning that YYVAL may be used uninitialized. */ 2038 yyval = yyvsp[1-yylen]; 2039 2040 2041 YY_REDUCE_PRINT (yyn); 2042 switch (yyn) 2043 { 2044 case 12: 2045 #line 255 "yyscript.y" /* yacc.c:1646 */ 2046 { script_set_common_allocation(closure, 1); } 2047 #line 2048 "yyscript.c" /* yacc.c:1646 */ 2048 break; 2049 2050 case 13: 2051 #line 257 "yyscript.y" /* yacc.c:1646 */ 2052 { script_start_group(closure); } 2053 #line 2054 "yyscript.c" /* yacc.c:1646 */ 2054 break; 2055 2056 case 14: 2057 #line 259 "yyscript.y" /* yacc.c:1646 */ 2058 { script_end_group(closure); } 2059 #line 2060 "yyscript.c" /* yacc.c:1646 */ 2060 break; 2061 2062 case 15: 2063 #line 261 "yyscript.y" /* yacc.c:1646 */ 2064 { script_set_common_allocation(closure, 0); } 2065 #line 2066 "yyscript.c" /* yacc.c:1646 */ 2066 break; 2067 2068 case 18: 2069 #line 265 "yyscript.y" /* yacc.c:1646 */ 2070 { script_parse_option(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2071 #line 2072 "yyscript.c" /* yacc.c:1646 */ 2072 break; 2073 2074 case 19: 2075 #line 267 "yyscript.y" /* yacc.c:1646 */ 2076 { 2077 if (!script_check_output_format(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 2078 NULL, 0, NULL, 0)) 2079 YYABORT; 2080 } 2081 #line 2082 "yyscript.c" /* yacc.c:1646 */ 2082 break; 2083 2084 case 20: 2085 #line 273 "yyscript.y" /* yacc.c:1646 */ 2086 { 2087 if (!script_check_output_format(closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length, 2088 (yyvsp[-3].string).value, (yyvsp[-3].string).length, 2089 (yyvsp[-1].string).value, (yyvsp[-1].string).length)) 2090 YYABORT; 2091 } 2092 #line 2093 "yyscript.c" /* yacc.c:1646 */ 2093 break; 2094 2095 case 22: 2096 #line 281 "yyscript.y" /* yacc.c:1646 */ 2097 { script_add_search_dir(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2098 #line 2099 "yyscript.c" /* yacc.c:1646 */ 2099 break; 2100 2101 case 23: 2102 #line 283 "yyscript.y" /* yacc.c:1646 */ 2103 { script_start_sections(closure); } 2104 #line 2105 "yyscript.c" /* yacc.c:1646 */ 2105 break; 2106 2107 case 24: 2108 #line 285 "yyscript.y" /* yacc.c:1646 */ 2109 { script_finish_sections(closure); } 2110 #line 2111 "yyscript.c" /* yacc.c:1646 */ 2111 break; 2112 2113 case 25: 2114 #line 287 "yyscript.y" /* yacc.c:1646 */ 2115 { script_set_target(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2116 #line 2117 "yyscript.c" /* yacc.c:1646 */ 2117 break; 2118 2119 case 26: 2120 #line 289 "yyscript.y" /* yacc.c:1646 */ 2121 { script_push_lex_into_version_mode(closure); } 2122 #line 2123 "yyscript.c" /* yacc.c:1646 */ 2123 break; 2124 2125 case 27: 2126 #line 291 "yyscript.y" /* yacc.c:1646 */ 2127 { script_pop_lex_mode(closure); } 2128 #line 2129 "yyscript.c" /* yacc.c:1646 */ 2129 break; 2130 2131 case 28: 2132 #line 293 "yyscript.y" /* yacc.c:1646 */ 2133 { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2134 #line 2135 "yyscript.c" /* yacc.c:1646 */ 2135 break; 2136 2137 case 30: 2138 #line 296 "yyscript.y" /* yacc.c:1646 */ 2139 { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2140 #line 2141 "yyscript.c" /* yacc.c:1646 */ 2141 break; 2142 2143 case 31: 2144 #line 298 "yyscript.y" /* yacc.c:1646 */ 2145 { script_include_directive(PARSING_LINKER_SCRIPT, closure, 2146 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2147 #line 2148 "yyscript.c" /* yacc.c:1646 */ 2148 break; 2149 2150 case 35: 2151 #line 317 "yyscript.y" /* yacc.c:1646 */ 2152 { script_push_lex_into_expression_mode(closure); } 2153 #line 2154 "yyscript.c" /* yacc.c:1646 */ 2154 break; 2155 2156 case 36: 2157 #line 319 "yyscript.y" /* yacc.c:1646 */ 2158 { script_pop_lex_mode(closure); } 2159 #line 2160 "yyscript.c" /* yacc.c:1646 */ 2160 break; 2161 2162 case 37: 2163 #line 324 "yyscript.y" /* yacc.c:1646 */ 2164 { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2165 #line 2166 "yyscript.c" /* yacc.c:1646 */ 2166 break; 2167 2168 case 38: 2169 #line 326 "yyscript.y" /* yacc.c:1646 */ 2170 { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2171 #line 2172 "yyscript.c" /* yacc.c:1646 */ 2172 break; 2173 2174 case 39: 2175 #line 328 "yyscript.y" /* yacc.c:1646 */ 2176 { script_add_extern(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2177 #line 2178 "yyscript.c" /* yacc.c:1646 */ 2178 break; 2179 2180 case 42: 2181 #line 340 "yyscript.y" /* yacc.c:1646 */ 2182 { script_add_file(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2183 #line 2184 "yyscript.c" /* yacc.c:1646 */ 2184 break; 2185 2186 case 43: 2187 #line 342 "yyscript.y" /* yacc.c:1646 */ 2188 { script_add_library(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2189 #line 2190 "yyscript.c" /* yacc.c:1646 */ 2190 break; 2191 2192 case 44: 2193 #line 344 "yyscript.y" /* yacc.c:1646 */ 2194 { script_start_as_needed(closure); } 2195 #line 2196 "yyscript.c" /* yacc.c:1646 */ 2196 break; 2197 2198 case 45: 2199 #line 346 "yyscript.y" /* yacc.c:1646 */ 2200 { script_end_as_needed(closure); } 2201 #line 2202 "yyscript.c" /* yacc.c:1646 */ 2202 break; 2203 2204 case 48: 2205 #line 358 "yyscript.y" /* yacc.c:1646 */ 2206 { script_set_entry(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2207 #line 2208 "yyscript.c" /* yacc.c:1646 */ 2208 break; 2209 2210 case 50: 2211 #line 361 "yyscript.y" /* yacc.c:1646 */ 2212 { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2213 #line 2214 "yyscript.c" /* yacc.c:1646 */ 2214 break; 2215 2216 case 51: 2217 #line 363 "yyscript.y" /* yacc.c:1646 */ 2218 { script_include_directive(PARSING_SECTIONS_BLOCK, closure, 2219 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2220 #line 2221 "yyscript.c" /* yacc.c:1646 */ 2221 break; 2222 2223 case 52: 2224 #line 366 "yyscript.y" /* yacc.c:1646 */ 2225 { script_start_output_section(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, &(yyvsp[0].output_section_header)); } 2226 #line 2227 "yyscript.c" /* yacc.c:1646 */ 2227 break; 2228 2229 case 53: 2230 #line 368 "yyscript.y" /* yacc.c:1646 */ 2231 { script_finish_output_section(closure, &(yyvsp[0].output_section_trailer)); } 2232 #line 2233 "yyscript.c" /* yacc.c:1646 */ 2233 break; 2234 2235 case 54: 2236 #line 374 "yyscript.y" /* yacc.c:1646 */ 2237 { script_push_lex_into_expression_mode(closure); } 2238 #line 2239 "yyscript.c" /* yacc.c:1646 */ 2239 break; 2240 2241 case 55: 2242 #line 376 "yyscript.y" /* yacc.c:1646 */ 2243 { script_pop_lex_mode(closure); } 2244 #line 2245 "yyscript.c" /* yacc.c:1646 */ 2245 break; 2246 2247 case 56: 2248 #line 378 "yyscript.y" /* yacc.c:1646 */ 2249 { 2250 (yyval.output_section_header).address = (yyvsp[-5].output_section_header).address; 2251 (yyval.output_section_header).section_type = (yyvsp[-5].output_section_header).section_type; 2252 (yyval.output_section_header).load_address = (yyvsp[-4].expr); 2253 (yyval.output_section_header).align = (yyvsp[-3].expr); 2254 (yyval.output_section_header).subalign = (yyvsp[-2].expr); 2255 (yyval.output_section_header).constraint = (yyvsp[0].constraint); 2256 } 2257 #line 2258 "yyscript.c" /* yacc.c:1646 */ 2258 break; 2259 2260 case 57: 2261 #line 394 "yyscript.y" /* yacc.c:1646 */ 2262 { 2263 (yyval.output_section_header).address = NULL; 2264 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2265 } 2266 #line 2267 "yyscript.c" /* yacc.c:1646 */ 2267 break; 2268 2269 case 58: 2270 #line 399 "yyscript.y" /* yacc.c:1646 */ 2271 { 2272 (yyval.output_section_header).address = NULL; 2273 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2274 } 2275 #line 2276 "yyscript.c" /* yacc.c:1646 */ 2276 break; 2277 2278 case 59: 2279 #line 404 "yyscript.y" /* yacc.c:1646 */ 2280 { 2281 (yyval.output_section_header).address = (yyvsp[-1].expr); 2282 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2283 } 2284 #line 2285 "yyscript.c" /* yacc.c:1646 */ 2285 break; 2286 2287 case 60: 2288 #line 409 "yyscript.y" /* yacc.c:1646 */ 2289 { 2290 (yyval.output_section_header).address = (yyvsp[-3].expr); 2291 (yyval.output_section_header).section_type = SCRIPT_SECTION_TYPE_NONE; 2292 } 2293 #line 2294 "yyscript.c" /* yacc.c:1646 */ 2294 break; 2295 2296 case 61: 2297 #line 414 "yyscript.y" /* yacc.c:1646 */ 2298 { 2299 (yyval.output_section_header).address = NULL; 2300 (yyval.output_section_header).section_type = (yyvsp[-2].section_type); 2301 } 2302 #line 2303 "yyscript.c" /* yacc.c:1646 */ 2303 break; 2304 2305 case 62: 2306 #line 419 "yyscript.y" /* yacc.c:1646 */ 2307 { 2308 (yyval.output_section_header).address = (yyvsp[-4].expr); 2309 (yyval.output_section_header).section_type = (yyvsp[-2].section_type); 2310 } 2311 #line 2312 "yyscript.c" /* yacc.c:1646 */ 2312 break; 2313 2314 case 63: 2315 #line 428 "yyscript.y" /* yacc.c:1646 */ 2316 { (yyval.section_type) = SCRIPT_SECTION_TYPE_NOLOAD; } 2317 #line 2318 "yyscript.c" /* yacc.c:1646 */ 2318 break; 2319 2320 case 64: 2321 #line 430 "yyscript.y" /* yacc.c:1646 */ 2322 { 2323 yyerror(closure, "DSECT section type is unsupported"); 2324 (yyval.section_type) = SCRIPT_SECTION_TYPE_DSECT; 2325 } 2326 #line 2327 "yyscript.c" /* yacc.c:1646 */ 2327 break; 2328 2329 case 65: 2330 #line 435 "yyscript.y" /* yacc.c:1646 */ 2331 { 2332 yyerror(closure, "COPY section type is unsupported"); 2333 (yyval.section_type) = SCRIPT_SECTION_TYPE_COPY; 2334 } 2335 #line 2336 "yyscript.c" /* yacc.c:1646 */ 2336 break; 2337 2338 case 66: 2339 #line 440 "yyscript.y" /* yacc.c:1646 */ 2340 { 2341 yyerror(closure, "INFO section type is unsupported"); 2342 (yyval.section_type) = SCRIPT_SECTION_TYPE_INFO; 2343 } 2344 #line 2345 "yyscript.c" /* yacc.c:1646 */ 2345 break; 2346 2347 case 67: 2348 #line 445 "yyscript.y" /* yacc.c:1646 */ 2349 { 2350 yyerror(closure, "OVERLAY section type is unsupported"); 2351 (yyval.section_type) = SCRIPT_SECTION_TYPE_OVERLAY; 2352 } 2353 #line 2354 "yyscript.c" /* yacc.c:1646 */ 2354 break; 2355 2356 case 68: 2357 #line 454 "yyscript.y" /* yacc.c:1646 */ 2358 { (yyval.expr) = NULL; } 2359 #line 2360 "yyscript.c" /* yacc.c:1646 */ 2360 break; 2361 2362 case 69: 2363 #line 456 "yyscript.y" /* yacc.c:1646 */ 2364 { (yyval.expr) = (yyvsp[-1].expr); } 2365 #line 2366 "yyscript.c" /* yacc.c:1646 */ 2366 break; 2367 2368 case 70: 2369 #line 462 "yyscript.y" /* yacc.c:1646 */ 2370 { (yyval.expr) = NULL; } 2371 #line 2372 "yyscript.c" /* yacc.c:1646 */ 2372 break; 2373 2374 case 71: 2375 #line 464 "yyscript.y" /* yacc.c:1646 */ 2376 { (yyval.expr) = (yyvsp[-1].expr); } 2377 #line 2378 "yyscript.c" /* yacc.c:1646 */ 2378 break; 2379 2380 case 72: 2381 #line 470 "yyscript.y" /* yacc.c:1646 */ 2382 { (yyval.expr) = NULL; } 2383 #line 2384 "yyscript.c" /* yacc.c:1646 */ 2384 break; 2385 2386 case 73: 2387 #line 472 "yyscript.y" /* yacc.c:1646 */ 2388 { (yyval.expr) = (yyvsp[-1].expr); } 2389 #line 2390 "yyscript.c" /* yacc.c:1646 */ 2390 break; 2391 2392 case 74: 2393 #line 478 "yyscript.y" /* yacc.c:1646 */ 2394 { (yyval.constraint) = CONSTRAINT_NONE; } 2395 #line 2396 "yyscript.c" /* yacc.c:1646 */ 2396 break; 2397 2398 case 75: 2399 #line 480 "yyscript.y" /* yacc.c:1646 */ 2400 { (yyval.constraint) = CONSTRAINT_ONLY_IF_RO; } 2401 #line 2402 "yyscript.c" /* yacc.c:1646 */ 2402 break; 2403 2404 case 76: 2405 #line 482 "yyscript.y" /* yacc.c:1646 */ 2406 { (yyval.constraint) = CONSTRAINT_ONLY_IF_RW; } 2407 #line 2408 "yyscript.c" /* yacc.c:1646 */ 2408 break; 2409 2410 case 77: 2411 #line 484 "yyscript.y" /* yacc.c:1646 */ 2412 { (yyval.constraint) = CONSTRAINT_SPECIAL; } 2413 #line 2414 "yyscript.c" /* yacc.c:1646 */ 2414 break; 2415 2416 case 78: 2417 #line 490 "yyscript.y" /* yacc.c:1646 */ 2418 { 2419 (yyval.output_section_trailer).fill = (yyvsp[-1].expr); 2420 (yyval.output_section_trailer).phdrs = (yyvsp[-2].string_list); 2421 } 2422 #line 2423 "yyscript.c" /* yacc.c:1646 */ 2423 break; 2424 2425 case 79: 2426 #line 499 "yyscript.y" /* yacc.c:1646 */ 2427 { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 1); } 2428 #line 2429 "yyscript.c" /* yacc.c:1646 */ 2429 break; 2430 2431 case 81: 2432 #line 506 "yyscript.y" /* yacc.c:1646 */ 2433 { script_set_section_region(closure, (yyvsp[0].string).value, (yyvsp[0].string).length, 0); } 2434 #line 2435 "yyscript.c" /* yacc.c:1646 */ 2435 break; 2436 2437 case 83: 2438 #line 513 "yyscript.y" /* yacc.c:1646 */ 2439 { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); } 2440 #line 2441 "yyscript.c" /* yacc.c:1646 */ 2441 break; 2442 2443 case 84: 2444 #line 515 "yyscript.y" /* yacc.c:1646 */ 2445 { (yyval.string_list) = NULL; } 2446 #line 2447 "yyscript.c" /* yacc.c:1646 */ 2447 break; 2448 2449 case 85: 2450 #line 522 "yyscript.y" /* yacc.c:1646 */ 2451 { (yyval.expr) = (yyvsp[0].expr); } 2452 #line 2453 "yyscript.c" /* yacc.c:1646 */ 2453 break; 2454 2455 case 86: 2456 #line 524 "yyscript.y" /* yacc.c:1646 */ 2457 { (yyval.expr) = NULL; } 2458 #line 2459 "yyscript.c" /* yacc.c:1646 */ 2459 break; 2460 2461 case 91: 2462 #line 540 "yyscript.y" /* yacc.c:1646 */ 2463 { script_add_data(closure, (yyvsp[-3].integer), (yyvsp[-1].expr)); } 2464 #line 2465 "yyscript.c" /* yacc.c:1646 */ 2465 break; 2466 2467 case 92: 2468 #line 542 "yyscript.y" /* yacc.c:1646 */ 2469 { script_add_assertion(closure, (yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 2470 #line 2471 "yyscript.c" /* yacc.c:1646 */ 2471 break; 2472 2473 case 93: 2474 #line 544 "yyscript.y" /* yacc.c:1646 */ 2475 { script_add_fill(closure, (yyvsp[-1].expr)); } 2476 #line 2477 "yyscript.c" /* yacc.c:1646 */ 2477 break; 2478 2479 case 94: 2480 #line 546 "yyscript.y" /* yacc.c:1646 */ 2481 { 2482 /* The GNU linker uses CONSTRUCTORS for the a.out object 2483 file format. It does nothing when using ELF. Since 2484 some ELF linker scripts use it although it does 2485 nothing, we accept it and ignore it. */ 2486 } 2487 #line 2488 "yyscript.c" /* yacc.c:1646 */ 2488 break; 2489 2490 case 96: 2491 #line 554 "yyscript.y" /* yacc.c:1646 */ 2492 { script_include_directive(PARSING_SECTION_COMMANDS, closure, 2493 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2494 #line 2495 "yyscript.c" /* yacc.c:1646 */ 2495 break; 2496 2497 case 98: 2498 #line 563 "yyscript.y" /* yacc.c:1646 */ 2499 { (yyval.integer) = QUAD; } 2500 #line 2501 "yyscript.c" /* yacc.c:1646 */ 2501 break; 2502 2503 case 99: 2504 #line 565 "yyscript.y" /* yacc.c:1646 */ 2505 { (yyval.integer) = SQUAD; } 2506 #line 2507 "yyscript.c" /* yacc.c:1646 */ 2507 break; 2508 2509 case 100: 2510 #line 567 "yyscript.y" /* yacc.c:1646 */ 2511 { (yyval.integer) = LONG; } 2512 #line 2513 "yyscript.c" /* yacc.c:1646 */ 2513 break; 2514 2515 case 101: 2516 #line 569 "yyscript.y" /* yacc.c:1646 */ 2517 { (yyval.integer) = SHORT; } 2518 #line 2519 "yyscript.c" /* yacc.c:1646 */ 2519 break; 2520 2521 case 102: 2522 #line 571 "yyscript.y" /* yacc.c:1646 */ 2523 { (yyval.integer) = BYTE; } 2524 #line 2525 "yyscript.c" /* yacc.c:1646 */ 2525 break; 2526 2527 case 103: 2528 #line 578 "yyscript.y" /* yacc.c:1646 */ 2529 { script_add_input_section(closure, &(yyvsp[0].input_section_spec), 0); } 2530 #line 2531 "yyscript.c" /* yacc.c:1646 */ 2531 break; 2532 2533 case 104: 2534 #line 580 "yyscript.y" /* yacc.c:1646 */ 2535 { script_add_input_section(closure, &(yyvsp[-1].input_section_spec), 1); } 2536 #line 2537 "yyscript.c" /* yacc.c:1646 */ 2537 break; 2538 2539 case 105: 2540 #line 586 "yyscript.y" /* yacc.c:1646 */ 2541 { 2542 (yyval.input_section_spec).file.name = (yyvsp[0].string); 2543 (yyval.input_section_spec).file.sort = SORT_WILDCARD_NONE; 2544 (yyval.input_section_spec).input_sections.sections = NULL; 2545 (yyval.input_section_spec).input_sections.exclude = NULL; 2546 } 2547 #line 2548 "yyscript.c" /* yacc.c:1646 */ 2548 break; 2549 2550 case 106: 2551 #line 593 "yyscript.y" /* yacc.c:1646 */ 2552 { 2553 (yyval.input_section_spec).file = (yyvsp[-3].wildcard_section); 2554 (yyval.input_section_spec).input_sections = (yyvsp[-1].wildcard_sections); 2555 } 2556 #line 2557 "yyscript.c" /* yacc.c:1646 */ 2557 break; 2558 2559 case 107: 2560 #line 602 "yyscript.y" /* yacc.c:1646 */ 2561 { 2562 (yyval.wildcard_section).name = (yyvsp[0].string); 2563 (yyval.wildcard_section).sort = SORT_WILDCARD_NONE; 2564 } 2565 #line 2566 "yyscript.c" /* yacc.c:1646 */ 2566 break; 2567 2568 case 108: 2569 #line 607 "yyscript.y" /* yacc.c:1646 */ 2570 { 2571 (yyval.wildcard_section).name = (yyvsp[-1].string); 2572 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME; 2573 } 2574 #line 2575 "yyscript.c" /* yacc.c:1646 */ 2575 break; 2576 2577 case 109: 2578 #line 616 "yyscript.y" /* yacc.c:1646 */ 2579 { 2580 (yyval.wildcard_sections).sections = script_string_sort_list_add((yyvsp[-2].wildcard_sections).sections, &(yyvsp[0].wildcard_section)); 2581 (yyval.wildcard_sections).exclude = (yyvsp[-2].wildcard_sections).exclude; 2582 } 2583 #line 2584 "yyscript.c" /* yacc.c:1646 */ 2584 break; 2585 2586 case 110: 2587 #line 621 "yyscript.y" /* yacc.c:1646 */ 2588 { 2589 (yyval.wildcard_sections).sections = script_new_string_sort_list(&(yyvsp[0].wildcard_section)); 2590 (yyval.wildcard_sections).exclude = NULL; 2591 } 2592 #line 2593 "yyscript.c" /* yacc.c:1646 */ 2593 break; 2594 2595 case 111: 2596 #line 626 "yyscript.y" /* yacc.c:1646 */ 2597 { 2598 (yyval.wildcard_sections).sections = (yyvsp[-5].wildcard_sections).sections; 2599 (yyval.wildcard_sections).exclude = script_string_list_append((yyvsp[-5].wildcard_sections).exclude, (yyvsp[-1].string_list)); 2600 } 2601 #line 2602 "yyscript.c" /* yacc.c:1646 */ 2602 break; 2603 2604 case 112: 2605 #line 631 "yyscript.y" /* yacc.c:1646 */ 2606 { 2607 (yyval.wildcard_sections).sections = NULL; 2608 (yyval.wildcard_sections).exclude = (yyvsp[-1].string_list); 2609 } 2610 #line 2611 "yyscript.c" /* yacc.c:1646 */ 2611 break; 2612 2613 case 113: 2614 #line 640 "yyscript.y" /* yacc.c:1646 */ 2615 { 2616 (yyval.wildcard_section).name = (yyvsp[0].string); 2617 (yyval.wildcard_section).sort = SORT_WILDCARD_NONE; 2618 } 2619 #line 2620 "yyscript.c" /* yacc.c:1646 */ 2620 break; 2621 2622 case 114: 2623 #line 645 "yyscript.y" /* yacc.c:1646 */ 2624 { 2625 (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name; 2626 switch ((yyvsp[-1].wildcard_section).sort) 2627 { 2628 case SORT_WILDCARD_NONE: 2629 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME; 2630 break; 2631 case SORT_WILDCARD_BY_NAME: 2632 case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT: 2633 break; 2634 case SORT_WILDCARD_BY_ALIGNMENT: 2635 case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME: 2636 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_NAME_BY_ALIGNMENT; 2637 break; 2638 default: 2639 abort(); 2640 } 2641 } 2642 #line 2643 "yyscript.c" /* yacc.c:1646 */ 2643 break; 2644 2645 case 115: 2646 #line 664 "yyscript.y" /* yacc.c:1646 */ 2647 { 2648 (yyval.wildcard_section).name = (yyvsp[-1].wildcard_section).name; 2649 switch ((yyvsp[-1].wildcard_section).sort) 2650 { 2651 case SORT_WILDCARD_NONE: 2652 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT; 2653 break; 2654 case SORT_WILDCARD_BY_ALIGNMENT: 2655 case SORT_WILDCARD_BY_ALIGNMENT_BY_NAME: 2656 break; 2657 case SORT_WILDCARD_BY_NAME: 2658 case SORT_WILDCARD_BY_NAME_BY_ALIGNMENT: 2659 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_ALIGNMENT_BY_NAME; 2660 break; 2661 default: 2662 abort(); 2663 } 2664 } 2665 #line 2666 "yyscript.c" /* yacc.c:1646 */ 2666 break; 2667 2668 case 116: 2669 #line 683 "yyscript.y" /* yacc.c:1646 */ 2670 { 2671 (yyval.wildcard_section).name = (yyvsp[-1].string); 2672 (yyval.wildcard_section).sort = SORT_WILDCARD_BY_INIT_PRIORITY; 2673 } 2674 #line 2675 "yyscript.c" /* yacc.c:1646 */ 2675 break; 2676 2677 case 117: 2678 #line 692 "yyscript.y" /* yacc.c:1646 */ 2679 { (yyval.string_list) = script_string_list_push_back((yyvsp[-2].string_list), (yyvsp[0].string).value, (yyvsp[0].string).length); } 2680 #line 2681 "yyscript.c" /* yacc.c:1646 */ 2681 break; 2682 2683 case 118: 2684 #line 694 "yyscript.y" /* yacc.c:1646 */ 2685 { (yyval.string_list) = script_new_string_list((yyvsp[0].string).value, (yyvsp[0].string).length); } 2686 #line 2687 "yyscript.c" /* yacc.c:1646 */ 2687 break; 2688 2689 case 119: 2690 #line 701 "yyscript.y" /* yacc.c:1646 */ 2691 { (yyval.string) = (yyvsp[0].string); } 2692 #line 2693 "yyscript.c" /* yacc.c:1646 */ 2693 break; 2694 2695 case 120: 2696 #line 703 "yyscript.y" /* yacc.c:1646 */ 2697 { 2698 (yyval.string).value = "*"; 2699 (yyval.string).length = 1; 2700 } 2701 #line 2702 "yyscript.c" /* yacc.c:1646 */ 2702 break; 2703 2704 case 121: 2705 #line 708 "yyscript.y" /* yacc.c:1646 */ 2706 { 2707 (yyval.string).value = "?"; 2708 (yyval.string).length = 1; 2709 } 2710 #line 2711 "yyscript.c" /* yacc.c:1646 */ 2711 break; 2712 2713 case 124: 2714 #line 723 "yyscript.y" /* yacc.c:1646 */ 2715 { script_add_memory(closure, (yyvsp[-9].string).value, (yyvsp[-9].string).length, (yyvsp[-8].integer), (yyvsp[-4].expr), (yyvsp[0].expr)); } 2716 #line 2717 "yyscript.c" /* yacc.c:1646 */ 2717 break; 2718 2719 case 125: 2720 #line 726 "yyscript.y" /* yacc.c:1646 */ 2721 { script_include_directive(PARSING_MEMORY_DEF, closure, 2722 (yyvsp[0].string).value, (yyvsp[0].string).length); } 2723 #line 2724 "yyscript.c" /* yacc.c:1646 */ 2724 break; 2725 2726 case 127: 2727 #line 734 "yyscript.y" /* yacc.c:1646 */ 2728 { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 0); } 2729 #line 2730 "yyscript.c" /* yacc.c:1646 */ 2730 break; 2731 2732 case 128: 2733 #line 737 "yyscript.y" /* yacc.c:1646 */ 2734 { (yyval.integer) = script_parse_memory_attr(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length, 1); } 2735 #line 2736 "yyscript.c" /* yacc.c:1646 */ 2736 break; 2737 2738 case 129: 2739 #line 739 "yyscript.y" /* yacc.c:1646 */ 2740 { (yyval.integer) = 0; } 2741 #line 2742 "yyscript.c" /* yacc.c:1646 */ 2742 break; 2743 2744 case 138: 2745 #line 767 "yyscript.y" /* yacc.c:1646 */ 2746 { script_add_phdr(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-2].integer), &(yyvsp[-1].phdr_info)); } 2747 #line 2748 "yyscript.c" /* yacc.c:1646 */ 2748 break; 2749 2750 case 139: 2751 #line 776 "yyscript.y" /* yacc.c:1646 */ 2752 { (yyval.integer) = script_phdr_string_to_type(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 2753 #line 2754 "yyscript.c" /* yacc.c:1646 */ 2754 break; 2755 2756 case 140: 2757 #line 778 "yyscript.y" /* yacc.c:1646 */ 2758 { (yyval.integer) = (yyvsp[0].integer); } 2759 #line 2760 "yyscript.c" /* yacc.c:1646 */ 2760 break; 2761 2762 case 141: 2763 #line 784 "yyscript.y" /* yacc.c:1646 */ 2764 { memset(&(yyval.phdr_info), 0, sizeof(struct Phdr_info)); } 2765 #line 2766 "yyscript.c" /* yacc.c:1646 */ 2766 break; 2767 2768 case 142: 2769 #line 786 "yyscript.y" /* yacc.c:1646 */ 2770 { 2771 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2772 if ((yyvsp[-1].string).length == 7 && strncmp((yyvsp[-1].string).value, "FILEHDR", 7) == 0) 2773 (yyval.phdr_info).includes_filehdr = 1; 2774 else 2775 yyerror(closure, "PHDRS syntax error"); 2776 } 2777 #line 2778 "yyscript.c" /* yacc.c:1646 */ 2778 break; 2779 2780 case 143: 2781 #line 794 "yyscript.y" /* yacc.c:1646 */ 2782 { 2783 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2784 (yyval.phdr_info).includes_phdrs = 1; 2785 } 2786 #line 2787 "yyscript.c" /* yacc.c:1646 */ 2787 break; 2788 2789 case 144: 2790 #line 799 "yyscript.y" /* yacc.c:1646 */ 2791 { 2792 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2793 if ((yyvsp[-4].string).length == 5 && strncmp((yyvsp[-4].string).value, "FLAGS", 5) == 0) 2794 { 2795 (yyval.phdr_info).is_flags_valid = 1; 2796 (yyval.phdr_info).flags = (yyvsp[-2].integer); 2797 } 2798 else 2799 yyerror(closure, "PHDRS syntax error"); 2800 } 2801 #line 2802 "yyscript.c" /* yacc.c:1646 */ 2802 break; 2803 2804 case 145: 2805 #line 810 "yyscript.y" /* yacc.c:1646 */ 2806 { 2807 (yyval.phdr_info) = (yyvsp[0].phdr_info); 2808 (yyval.phdr_info).load_address = (yyvsp[-2].expr); 2809 } 2810 #line 2811 "yyscript.c" /* yacc.c:1646 */ 2811 break; 2812 2813 case 146: 2814 #line 819 "yyscript.y" /* yacc.c:1646 */ 2815 { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); } 2816 #line 2817 "yyscript.c" /* yacc.c:1646 */ 2817 break; 2818 2819 case 147: 2820 #line 821 "yyscript.y" /* yacc.c:1646 */ 2821 { 2822 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2823 Expression_ptr e = script_exp_binary_add(s, (yyvsp[0].expr)); 2824 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2825 } 2826 #line 2827 "yyscript.c" /* yacc.c:1646 */ 2827 break; 2828 2829 case 148: 2830 #line 827 "yyscript.y" /* yacc.c:1646 */ 2831 { 2832 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2833 Expression_ptr e = script_exp_binary_sub(s, (yyvsp[0].expr)); 2834 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2835 } 2836 #line 2837 "yyscript.c" /* yacc.c:1646 */ 2837 break; 2838 2839 case 149: 2840 #line 833 "yyscript.y" /* yacc.c:1646 */ 2841 { 2842 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2843 Expression_ptr e = script_exp_binary_mult(s, (yyvsp[0].expr)); 2844 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2845 } 2846 #line 2847 "yyscript.c" /* yacc.c:1646 */ 2847 break; 2848 2849 case 150: 2850 #line 839 "yyscript.y" /* yacc.c:1646 */ 2851 { 2852 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2853 Expression_ptr e = script_exp_binary_div(s, (yyvsp[0].expr)); 2854 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2855 } 2856 #line 2857 "yyscript.c" /* yacc.c:1646 */ 2857 break; 2858 2859 case 151: 2860 #line 845 "yyscript.y" /* yacc.c:1646 */ 2861 { 2862 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2863 Expression_ptr e = script_exp_binary_lshift(s, (yyvsp[0].expr)); 2864 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2865 } 2866 #line 2867 "yyscript.c" /* yacc.c:1646 */ 2867 break; 2868 2869 case 152: 2870 #line 851 "yyscript.y" /* yacc.c:1646 */ 2871 { 2872 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2873 Expression_ptr e = script_exp_binary_rshift(s, (yyvsp[0].expr)); 2874 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2875 } 2876 #line 2877 "yyscript.c" /* yacc.c:1646 */ 2877 break; 2878 2879 case 153: 2880 #line 857 "yyscript.y" /* yacc.c:1646 */ 2881 { 2882 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2883 Expression_ptr e = script_exp_binary_bitwise_and(s, (yyvsp[0].expr)); 2884 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2885 } 2886 #line 2887 "yyscript.c" /* yacc.c:1646 */ 2887 break; 2888 2889 case 154: 2890 #line 863 "yyscript.y" /* yacc.c:1646 */ 2891 { 2892 Expression_ptr s = script_exp_string((yyvsp[-2].string).value, (yyvsp[-2].string).length); 2893 Expression_ptr e = script_exp_binary_bitwise_or(s, (yyvsp[0].expr)); 2894 script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, e, 0, 0); 2895 } 2896 #line 2897 "yyscript.c" /* yacc.c:1646 */ 2897 break; 2898 2899 case 155: 2900 #line 869 "yyscript.y" /* yacc.c:1646 */ 2901 { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 0, 1); } 2902 #line 2903 "yyscript.c" /* yacc.c:1646 */ 2903 break; 2904 2905 case 156: 2906 #line 871 "yyscript.y" /* yacc.c:1646 */ 2907 { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 0); } 2908 #line 2909 "yyscript.c" /* yacc.c:1646 */ 2909 break; 2910 2911 case 157: 2912 #line 873 "yyscript.y" /* yacc.c:1646 */ 2913 { script_set_symbol(closure, (yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr), 1, 1); } 2914 #line 2915 "yyscript.c" /* yacc.c:1646 */ 2915 break; 2916 2917 case 158: 2918 #line 878 "yyscript.y" /* yacc.c:1646 */ 2919 { script_push_lex_into_expression_mode(closure); } 2920 #line 2921 "yyscript.c" /* yacc.c:1646 */ 2921 break; 2922 2923 case 159: 2924 #line 880 "yyscript.y" /* yacc.c:1646 */ 2925 { 2926 script_pop_lex_mode(closure); 2927 (yyval.expr) = (yyvsp[0].expr); 2928 } 2929 #line 2930 "yyscript.c" /* yacc.c:1646 */ 2930 break; 2931 2932 case 160: 2933 #line 889 "yyscript.y" /* yacc.c:1646 */ 2934 { (yyval.expr) = (yyvsp[-1].expr); } 2935 #line 2936 "yyscript.c" /* yacc.c:1646 */ 2936 break; 2937 2938 case 161: 2939 #line 891 "yyscript.y" /* yacc.c:1646 */ 2940 { (yyval.expr) = script_exp_unary_minus((yyvsp[0].expr)); } 2941 #line 2942 "yyscript.c" /* yacc.c:1646 */ 2942 break; 2943 2944 case 162: 2945 #line 893 "yyscript.y" /* yacc.c:1646 */ 2946 { (yyval.expr) = script_exp_unary_logical_not((yyvsp[0].expr)); } 2947 #line 2948 "yyscript.c" /* yacc.c:1646 */ 2948 break; 2949 2950 case 163: 2951 #line 895 "yyscript.y" /* yacc.c:1646 */ 2952 { (yyval.expr) = script_exp_unary_bitwise_not((yyvsp[0].expr)); } 2953 #line 2954 "yyscript.c" /* yacc.c:1646 */ 2954 break; 2955 2956 case 164: 2957 #line 897 "yyscript.y" /* yacc.c:1646 */ 2958 { (yyval.expr) = (yyvsp[0].expr); } 2959 #line 2960 "yyscript.c" /* yacc.c:1646 */ 2960 break; 2961 2962 case 165: 2963 #line 899 "yyscript.y" /* yacc.c:1646 */ 2964 { (yyval.expr) = script_exp_binary_mult((yyvsp[-2].expr), (yyvsp[0].expr)); } 2965 #line 2966 "yyscript.c" /* yacc.c:1646 */ 2966 break; 2967 2968 case 166: 2969 #line 901 "yyscript.y" /* yacc.c:1646 */ 2970 { (yyval.expr) = script_exp_binary_div((yyvsp[-2].expr), (yyvsp[0].expr)); } 2971 #line 2972 "yyscript.c" /* yacc.c:1646 */ 2972 break; 2973 2974 case 167: 2975 #line 903 "yyscript.y" /* yacc.c:1646 */ 2976 { (yyval.expr) = script_exp_binary_mod((yyvsp[-2].expr), (yyvsp[0].expr)); } 2977 #line 2978 "yyscript.c" /* yacc.c:1646 */ 2978 break; 2979 2980 case 168: 2981 #line 905 "yyscript.y" /* yacc.c:1646 */ 2982 { (yyval.expr) = script_exp_binary_add((yyvsp[-2].expr), (yyvsp[0].expr)); } 2983 #line 2984 "yyscript.c" /* yacc.c:1646 */ 2984 break; 2985 2986 case 169: 2987 #line 907 "yyscript.y" /* yacc.c:1646 */ 2988 { (yyval.expr) = script_exp_binary_sub((yyvsp[-2].expr), (yyvsp[0].expr)); } 2989 #line 2990 "yyscript.c" /* yacc.c:1646 */ 2990 break; 2991 2992 case 170: 2993 #line 909 "yyscript.y" /* yacc.c:1646 */ 2994 { (yyval.expr) = script_exp_binary_lshift((yyvsp[-2].expr), (yyvsp[0].expr)); } 2995 #line 2996 "yyscript.c" /* yacc.c:1646 */ 2996 break; 2997 2998 case 171: 2999 #line 911 "yyscript.y" /* yacc.c:1646 */ 3000 { (yyval.expr) = script_exp_binary_rshift((yyvsp[-2].expr), (yyvsp[0].expr)); } 3001 #line 3002 "yyscript.c" /* yacc.c:1646 */ 3002 break; 3003 3004 case 172: 3005 #line 913 "yyscript.y" /* yacc.c:1646 */ 3006 { (yyval.expr) = script_exp_binary_eq((yyvsp[-2].expr), (yyvsp[0].expr)); } 3007 #line 3008 "yyscript.c" /* yacc.c:1646 */ 3008 break; 3009 3010 case 173: 3011 #line 915 "yyscript.y" /* yacc.c:1646 */ 3012 { (yyval.expr) = script_exp_binary_ne((yyvsp[-2].expr), (yyvsp[0].expr)); } 3013 #line 3014 "yyscript.c" /* yacc.c:1646 */ 3014 break; 3015 3016 case 174: 3017 #line 917 "yyscript.y" /* yacc.c:1646 */ 3018 { (yyval.expr) = script_exp_binary_le((yyvsp[-2].expr), (yyvsp[0].expr)); } 3019 #line 3020 "yyscript.c" /* yacc.c:1646 */ 3020 break; 3021 3022 case 175: 3023 #line 919 "yyscript.y" /* yacc.c:1646 */ 3024 { (yyval.expr) = script_exp_binary_ge((yyvsp[-2].expr), (yyvsp[0].expr)); } 3025 #line 3026 "yyscript.c" /* yacc.c:1646 */ 3026 break; 3027 3028 case 176: 3029 #line 921 "yyscript.y" /* yacc.c:1646 */ 3030 { (yyval.expr) = script_exp_binary_lt((yyvsp[-2].expr), (yyvsp[0].expr)); } 3031 #line 3032 "yyscript.c" /* yacc.c:1646 */ 3032 break; 3033 3034 case 177: 3035 #line 923 "yyscript.y" /* yacc.c:1646 */ 3036 { (yyval.expr) = script_exp_binary_gt((yyvsp[-2].expr), (yyvsp[0].expr)); } 3037 #line 3038 "yyscript.c" /* yacc.c:1646 */ 3038 break; 3039 3040 case 178: 3041 #line 925 "yyscript.y" /* yacc.c:1646 */ 3042 { (yyval.expr) = script_exp_binary_bitwise_and((yyvsp[-2].expr), (yyvsp[0].expr)); } 3043 #line 3044 "yyscript.c" /* yacc.c:1646 */ 3044 break; 3045 3046 case 179: 3047 #line 927 "yyscript.y" /* yacc.c:1646 */ 3048 { (yyval.expr) = script_exp_binary_bitwise_xor((yyvsp[-2].expr), (yyvsp[0].expr)); } 3049 #line 3050 "yyscript.c" /* yacc.c:1646 */ 3050 break; 3051 3052 case 180: 3053 #line 929 "yyscript.y" /* yacc.c:1646 */ 3054 { (yyval.expr) = script_exp_binary_bitwise_or((yyvsp[-2].expr), (yyvsp[0].expr)); } 3055 #line 3056 "yyscript.c" /* yacc.c:1646 */ 3056 break; 3057 3058 case 181: 3059 #line 931 "yyscript.y" /* yacc.c:1646 */ 3060 { (yyval.expr) = script_exp_binary_logical_and((yyvsp[-2].expr), (yyvsp[0].expr)); } 3061 #line 3062 "yyscript.c" /* yacc.c:1646 */ 3062 break; 3063 3064 case 182: 3065 #line 933 "yyscript.y" /* yacc.c:1646 */ 3066 { (yyval.expr) = script_exp_binary_logical_or((yyvsp[-2].expr), (yyvsp[0].expr)); } 3067 #line 3068 "yyscript.c" /* yacc.c:1646 */ 3068 break; 3069 3070 case 183: 3071 #line 935 "yyscript.y" /* yacc.c:1646 */ 3072 { (yyval.expr) = script_exp_trinary_cond((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } 3073 #line 3074 "yyscript.c" /* yacc.c:1646 */ 3074 break; 3075 3076 case 184: 3077 #line 937 "yyscript.y" /* yacc.c:1646 */ 3078 { (yyval.expr) = script_exp_integer((yyvsp[0].integer)); } 3079 #line 3080 "yyscript.c" /* yacc.c:1646 */ 3080 break; 3081 3082 case 185: 3083 #line 939 "yyscript.y" /* yacc.c:1646 */ 3084 { (yyval.expr) = script_symbol(closure, (yyvsp[0].string).value, (yyvsp[0].string).length); } 3085 #line 3086 "yyscript.c" /* yacc.c:1646 */ 3086 break; 3087 3088 case 186: 3089 #line 941 "yyscript.y" /* yacc.c:1646 */ 3090 { (yyval.expr) = script_exp_function_max((yyvsp[-3].expr), (yyvsp[-1].expr)); } 3091 #line 3092 "yyscript.c" /* yacc.c:1646 */ 3092 break; 3093 3094 case 187: 3095 #line 943 "yyscript.y" /* yacc.c:1646 */ 3096 { (yyval.expr) = script_exp_function_min((yyvsp[-3].expr), (yyvsp[-1].expr)); } 3097 #line 3098 "yyscript.c" /* yacc.c:1646 */ 3098 break; 3099 3100 case 188: 3101 #line 945 "yyscript.y" /* yacc.c:1646 */ 3102 { (yyval.expr) = script_exp_function_defined((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3103 #line 3104 "yyscript.c" /* yacc.c:1646 */ 3104 break; 3105 3106 case 189: 3107 #line 947 "yyscript.y" /* yacc.c:1646 */ 3108 { (yyval.expr) = script_exp_function_sizeof_headers(); } 3109 #line 3110 "yyscript.c" /* yacc.c:1646 */ 3110 break; 3111 3112 case 190: 3113 #line 949 "yyscript.y" /* yacc.c:1646 */ 3114 { (yyval.expr) = script_exp_function_alignof((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3115 #line 3116 "yyscript.c" /* yacc.c:1646 */ 3116 break; 3117 3118 case 191: 3119 #line 951 "yyscript.y" /* yacc.c:1646 */ 3120 { (yyval.expr) = script_exp_function_sizeof((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3121 #line 3122 "yyscript.c" /* yacc.c:1646 */ 3122 break; 3123 3124 case 192: 3125 #line 953 "yyscript.y" /* yacc.c:1646 */ 3126 { (yyval.expr) = script_exp_function_addr((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3127 #line 3128 "yyscript.c" /* yacc.c:1646 */ 3128 break; 3129 3130 case 193: 3131 #line 955 "yyscript.y" /* yacc.c:1646 */ 3132 { (yyval.expr) = script_exp_function_loadaddr((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3133 #line 3134 "yyscript.c" /* yacc.c:1646 */ 3134 break; 3135 3136 case 194: 3137 #line 957 "yyscript.y" /* yacc.c:1646 */ 3138 { (yyval.expr) = script_exp_function_origin(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3139 #line 3140 "yyscript.c" /* yacc.c:1646 */ 3140 break; 3141 3142 case 195: 3143 #line 959 "yyscript.y" /* yacc.c:1646 */ 3144 { (yyval.expr) = script_exp_function_length(closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3145 #line 3146 "yyscript.c" /* yacc.c:1646 */ 3146 break; 3147 3148 case 196: 3149 #line 961 "yyscript.y" /* yacc.c:1646 */ 3150 { (yyval.expr) = script_exp_function_constant((yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3151 #line 3152 "yyscript.c" /* yacc.c:1646 */ 3152 break; 3153 3154 case 197: 3155 #line 963 "yyscript.y" /* yacc.c:1646 */ 3156 { (yyval.expr) = script_exp_function_absolute((yyvsp[-1].expr)); } 3157 #line 3158 "yyscript.c" /* yacc.c:1646 */ 3158 break; 3159 3160 case 198: 3161 #line 965 "yyscript.y" /* yacc.c:1646 */ 3162 { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); } 3163 #line 3164 "yyscript.c" /* yacc.c:1646 */ 3164 break; 3165 3166 case 199: 3167 #line 967 "yyscript.y" /* yacc.c:1646 */ 3168 { (yyval.expr) = script_exp_function_align((yyvsp[-3].expr), (yyvsp[-1].expr)); } 3169 #line 3170 "yyscript.c" /* yacc.c:1646 */ 3170 break; 3171 3172 case 200: 3173 #line 969 "yyscript.y" /* yacc.c:1646 */ 3174 { (yyval.expr) = script_exp_function_align(script_exp_string(".", 1), (yyvsp[-1].expr)); } 3175 #line 3176 "yyscript.c" /* yacc.c:1646 */ 3176 break; 3177 3178 case 201: 3179 #line 971 "yyscript.y" /* yacc.c:1646 */ 3180 { 3181 script_data_segment_align(closure); 3182 (yyval.expr) = script_exp_function_data_segment_align((yyvsp[-3].expr), (yyvsp[-1].expr)); 3183 } 3184 #line 3185 "yyscript.c" /* yacc.c:1646 */ 3185 break; 3186 3187 case 202: 3188 #line 976 "yyscript.y" /* yacc.c:1646 */ 3189 { 3190 script_data_segment_relro_end(closure); 3191 (yyval.expr) = script_exp_function_data_segment_relro_end((yyvsp[-3].expr), (yyvsp[-1].expr)); 3192 } 3193 #line 3194 "yyscript.c" /* yacc.c:1646 */ 3194 break; 3195 3196 case 203: 3197 #line 981 "yyscript.y" /* yacc.c:1646 */ 3198 { (yyval.expr) = script_exp_function_data_segment_end((yyvsp[-1].expr)); } 3199 #line 3200 "yyscript.c" /* yacc.c:1646 */ 3200 break; 3201 3202 case 204: 3203 #line 983 "yyscript.y" /* yacc.c:1646 */ 3204 { 3205 (yyval.expr) = script_exp_function_segment_start((yyvsp[-3].string).value, (yyvsp[-3].string).length, (yyvsp[-1].expr)); 3206 /* We need to take note of any SEGMENT_START expressions 3207 because they change the behaviour of -Ttext, -Tdata and 3208 -Tbss options. */ 3209 script_saw_segment_start_expression(closure); 3210 } 3211 #line 3212 "yyscript.c" /* yacc.c:1646 */ 3212 break; 3213 3214 case 205: 3215 #line 991 "yyscript.y" /* yacc.c:1646 */ 3216 { (yyval.expr) = script_exp_function_assert((yyvsp[-3].expr), (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3217 #line 3218 "yyscript.c" /* yacc.c:1646 */ 3218 break; 3219 3220 case 206: 3221 #line 997 "yyscript.y" /* yacc.c:1646 */ 3222 { script_set_symbol(closure, (yyvsp[-2].string).value, (yyvsp[-2].string).length, (yyvsp[0].expr), 0, 0); } 3223 #line 3224 "yyscript.c" /* yacc.c:1646 */ 3224 break; 3225 3226 case 210: 3227 #line 1015 "yyscript.y" /* yacc.c:1646 */ 3228 { script_new_vers_node (closure, NULL, (yyvsp[-3].versyms)); } 3229 #line 3230 "yyscript.c" /* yacc.c:1646 */ 3230 break; 3231 3232 case 214: 3233 #line 1030 "yyscript.y" /* yacc.c:1646 */ 3234 { 3235 script_register_vers_node (closure, NULL, 0, (yyvsp[-2].versnode), NULL); 3236 } 3237 #line 3238 "yyscript.c" /* yacc.c:1646 */ 3238 break; 3239 3240 case 215: 3241 #line 1034 "yyscript.y" /* yacc.c:1646 */ 3242 { 3243 script_register_vers_node (closure, (yyvsp[-4].string).value, (yyvsp[-4].string).length, (yyvsp[-2].versnode), 3244 NULL); 3245 } 3246 #line 3247 "yyscript.c" /* yacc.c:1646 */ 3247 break; 3248 3249 case 216: 3250 #line 1039 "yyscript.y" /* yacc.c:1646 */ 3251 { 3252 script_register_vers_node (closure, (yyvsp[-5].string).value, (yyvsp[-5].string).length, (yyvsp[-3].versnode), (yyvsp[-1].deplist)); 3253 } 3254 #line 3255 "yyscript.c" /* yacc.c:1646 */ 3255 break; 3256 3257 case 217: 3258 #line 1046 "yyscript.y" /* yacc.c:1646 */ 3259 { 3260 (yyval.deplist) = script_add_vers_depend (closure, NULL, (yyvsp[0].string).value, (yyvsp[0].string).length); 3261 } 3262 #line 3263 "yyscript.c" /* yacc.c:1646 */ 3263 break; 3264 3265 case 218: 3266 #line 1050 "yyscript.y" /* yacc.c:1646 */ 3267 { 3268 (yyval.deplist) = script_add_vers_depend (closure, (yyvsp[-1].deplist), (yyvsp[0].string).value, (yyvsp[0].string).length); 3269 } 3270 #line 3271 "yyscript.c" /* yacc.c:1646 */ 3271 break; 3272 3273 case 219: 3274 #line 1057 "yyscript.y" /* yacc.c:1646 */ 3275 { (yyval.versnode) = script_new_vers_node (closure, NULL, NULL); } 3276 #line 3277 "yyscript.c" /* yacc.c:1646 */ 3277 break; 3278 3279 case 220: 3280 #line 1059 "yyscript.y" /* yacc.c:1646 */ 3281 { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); } 3282 #line 3283 "yyscript.c" /* yacc.c:1646 */ 3283 break; 3284 3285 case 221: 3286 #line 1061 "yyscript.y" /* yacc.c:1646 */ 3287 { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-1].versyms), NULL); } 3288 #line 3289 "yyscript.c" /* yacc.c:1646 */ 3289 break; 3290 3291 case 222: 3292 #line 1063 "yyscript.y" /* yacc.c:1646 */ 3293 { (yyval.versnode) = script_new_vers_node (closure, NULL, (yyvsp[-1].versyms)); } 3294 #line 3295 "yyscript.c" /* yacc.c:1646 */ 3295 break; 3296 3297 case 223: 3298 #line 1065 "yyscript.y" /* yacc.c:1646 */ 3299 { (yyval.versnode) = script_new_vers_node (closure, (yyvsp[-5].versyms), (yyvsp[-1].versyms)); } 3300 #line 3301 "yyscript.c" /* yacc.c:1646 */ 3301 break; 3302 3303 case 224: 3304 #line 1074 "yyscript.y" /* yacc.c:1646 */ 3305 { 3306 (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value, 3307 (yyvsp[0].string).length, 0); 3308 } 3309 #line 3310 "yyscript.c" /* yacc.c:1646 */ 3310 break; 3311 3312 case 225: 3313 #line 1079 "yyscript.y" /* yacc.c:1646 */ 3314 { 3315 (yyval.versyms) = script_new_vers_pattern (closure, NULL, (yyvsp[0].string).value, 3316 (yyvsp[0].string).length, 1); 3317 } 3318 #line 3319 "yyscript.c" /* yacc.c:1646 */ 3319 break; 3320 3321 case 226: 3322 #line 1084 "yyscript.y" /* yacc.c:1646 */ 3323 { 3324 (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value, 3325 (yyvsp[0].string).length, 0); 3326 } 3327 #line 3328 "yyscript.c" /* yacc.c:1646 */ 3328 break; 3329 3330 case 227: 3331 #line 1089 "yyscript.y" /* yacc.c:1646 */ 3332 { 3333 (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), (yyvsp[0].string).value, 3334 (yyvsp[0].string).length, 1); 3335 } 3336 #line 3337 "yyscript.c" /* yacc.c:1646 */ 3337 break; 3338 3339 case 228: 3340 #line 1095 "yyscript.y" /* yacc.c:1646 */ 3341 { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3342 #line 3343 "yyscript.c" /* yacc.c:1646 */ 3343 break; 3344 3345 case 229: 3346 #line 1097 "yyscript.y" /* yacc.c:1646 */ 3347 { 3348 (yyval.versyms) = (yyvsp[-2].versyms); 3349 version_script_pop_lang(closure); 3350 } 3351 #line 3352 "yyscript.c" /* yacc.c:1646 */ 3352 break; 3353 3354 case 230: 3355 #line 1105 "yyscript.y" /* yacc.c:1646 */ 3356 { version_script_push_lang (closure, (yyvsp[-1].string).value, (yyvsp[-1].string).length); } 3357 #line 3358 "yyscript.c" /* yacc.c:1646 */ 3358 break; 3359 3360 case 231: 3361 #line 1107 "yyscript.y" /* yacc.c:1646 */ 3362 { 3363 (yyval.versyms) = script_merge_expressions ((yyvsp[-8].versyms), (yyvsp[-2].versyms)); 3364 version_script_pop_lang(closure); 3365 } 3366 #line 3367 "yyscript.c" /* yacc.c:1646 */ 3367 break; 3368 3369 case 232: 3370 #line 1112 "yyscript.y" /* yacc.c:1646 */ 3371 { 3372 (yyval.versyms) = script_new_vers_pattern (closure, NULL, "extern", 3373 sizeof("extern") - 1, 1); 3374 } 3375 #line 3376 "yyscript.c" /* yacc.c:1646 */ 3376 break; 3377 3378 case 233: 3379 #line 1117 "yyscript.y" /* yacc.c:1646 */ 3380 { 3381 (yyval.versyms) = script_new_vers_pattern (closure, (yyvsp[-2].versyms), "extern", 3382 sizeof("extern") - 1, 1); 3383 } 3384 #line 3385 "yyscript.c" /* yacc.c:1646 */ 3385 break; 3386 3387 case 234: 3388 #line 1127 "yyscript.y" /* yacc.c:1646 */ 3389 { (yyval.string) = (yyvsp[0].string); } 3390 #line 3391 "yyscript.c" /* yacc.c:1646 */ 3391 break; 3392 3393 case 235: 3394 #line 1129 "yyscript.y" /* yacc.c:1646 */ 3395 { (yyval.string) = (yyvsp[0].string); } 3396 #line 3397 "yyscript.c" /* yacc.c:1646 */ 3397 break; 3398 3399 3400 #line 3401 "yyscript.c" /* yacc.c:1646 */ 3401 default: break; 3402 } 3403 /* User semantic actions sometimes alter yychar, and that requires 3404 that yytoken be updated with the new translation. We take the 3405 approach of translating immediately before every use of yytoken. 3406 One alternative is translating here after every semantic action, 3407 but that translation would be missed if the semantic action invokes 3408 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 3409 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an 3410 incorrect destructor might then be invoked immediately. In the 3411 case of YYERROR or YYBACKUP, subsequent parser actions might lead 3412 to an incorrect destructor call or verbose syntax error message 3413 before the lookahead is translated. */ 3414 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 3415 3416 YYPOPSTACK (yylen); 3417 yylen = 0; 3418 YY_STACK_PRINT (yyss, yyssp); 3419 3420 *++yyvsp = yyval; 3421 3422 /* Now 'shift' the result of the reduction. Determine what state 3423 that goes to, based on the state we popped back to and the rule 3424 number reduced by. */ 3425 3426 yyn = yyr1[yyn]; 3427 3428 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 3429 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 3430 yystate = yytable[yystate]; 3431 else 3432 yystate = yydefgoto[yyn - YYNTOKENS]; 3433 3434 goto yynewstate; 3435 3436 3437 /*--------------------------------------. 3438 | yyerrlab -- here on detecting error. | 3439 `--------------------------------------*/ 3440 yyerrlab: 3441 /* Make sure we have latest lookahead translation. See comments at 3442 user semantic actions for why this is necessary. */ 3443 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 3444 3445 /* If not already recovering from an error, report this error. */ 3446 if (!yyerrstatus) 3447 { 3448 ++yynerrs; 3449 #if ! YYERROR_VERBOSE 3450 yyerror (closure, YY_("syntax error")); 3451 #else 3452 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 3453 yyssp, yytoken) 3454 { 3455 char const *yymsgp = YY_("syntax error"); 3456 int yysyntax_error_status; 3457 yysyntax_error_status = YYSYNTAX_ERROR; 3458 if (yysyntax_error_status == 0) 3459 yymsgp = yymsg; 3460 else if (yysyntax_error_status == 1) 3461 { 3462 if (yymsg != yymsgbuf) 3463 YYSTACK_FREE (yymsg); 3464 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 3465 if (!yymsg) 3466 { 3467 yymsg = yymsgbuf; 3468 yymsg_alloc = sizeof yymsgbuf; 3469 yysyntax_error_status = 2; 3470 } 3471 else 3472 { 3473 yysyntax_error_status = YYSYNTAX_ERROR; 3474 yymsgp = yymsg; 3475 } 3476 } 3477 yyerror (closure, yymsgp); 3478 if (yysyntax_error_status == 2) 3479 goto yyexhaustedlab; 3480 } 3481 # undef YYSYNTAX_ERROR 3482 #endif 3483 } 3484 3485 3486 3487 if (yyerrstatus == 3) 3488 { 3489 /* If just tried and failed to reuse lookahead token after an 3490 error, discard it. */ 3491 3492 if (yychar <= YYEOF) 3493 { 3494 /* Return failure if at end of input. */ 3495 if (yychar == YYEOF) 3496 YYABORT; 3497 } 3498 else 3499 { 3500 yydestruct ("Error: discarding", 3501 yytoken, &yylval, closure); 3502 yychar = YYEMPTY; 3503 } 3504 } 3505 3506 /* Else will try to reuse lookahead token after shifting the error 3507 token. */ 3508 goto yyerrlab1; 3509 3510 3511 /*---------------------------------------------------. 3512 | yyerrorlab -- error raised explicitly by YYERROR. | 3513 `---------------------------------------------------*/ 3514 yyerrorlab: 3515 3516 /* Pacify compilers like GCC when the user code never invokes 3517 YYERROR and the label yyerrorlab therefore never appears in user 3518 code. */ 3519 if (/*CONSTCOND*/ 0) 3520 goto yyerrorlab; 3521 3522 /* Do not reclaim the symbols of the rule whose action triggered 3523 this YYERROR. */ 3524 YYPOPSTACK (yylen); 3525 yylen = 0; 3526 YY_STACK_PRINT (yyss, yyssp); 3527 yystate = *yyssp; 3528 goto yyerrlab1; 3529 3530 3531 /*-------------------------------------------------------------. 3532 | yyerrlab1 -- common code for both syntax error and YYERROR. | 3533 `-------------------------------------------------------------*/ 3534 yyerrlab1: 3535 yyerrstatus = 3; /* Each real token shifted decrements this. */ 3536 3537 for (;;) 3538 { 3539 yyn = yypact[yystate]; 3540 if (!yypact_value_is_default (yyn)) 3541 { 3542 yyn += YYTERROR; 3543 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 3544 { 3545 yyn = yytable[yyn]; 3546 if (0 < yyn) 3547 break; 3548 } 3549 } 3550 3551 /* Pop the current state because it cannot handle the error token. */ 3552 if (yyssp == yyss) 3553 YYABORT; 3554 3555 3556 yydestruct ("Error: popping", 3557 yystos[yystate], yyvsp, closure); 3558 YYPOPSTACK (1); 3559 yystate = *yyssp; 3560 YY_STACK_PRINT (yyss, yyssp); 3561 } 3562 3563 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 3564 *++yyvsp = yylval; 3565 YY_IGNORE_MAYBE_UNINITIALIZED_END 3566 3567 3568 /* Shift the error token. */ 3569 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); 3570 3571 yystate = yyn; 3572 goto yynewstate; 3573 3574 3575 /*-------------------------------------. 3576 | yyacceptlab -- YYACCEPT comes here. | 3577 `-------------------------------------*/ 3578 yyacceptlab: 3579 yyresult = 0; 3580 goto yyreturn; 3581 3582 /*-----------------------------------. 3583 | yyabortlab -- YYABORT comes here. | 3584 `-----------------------------------*/ 3585 yyabortlab: 3586 yyresult = 1; 3587 goto yyreturn; 3588 3589 #if !defined yyoverflow || YYERROR_VERBOSE 3590 /*-------------------------------------------------. 3591 | yyexhaustedlab -- memory exhaustion comes here. | 3592 `-------------------------------------------------*/ 3593 yyexhaustedlab: 3594 yyerror (closure, YY_("memory exhausted")); 3595 yyresult = 2; 3596 /* Fall through. */ 3597 #endif 3598 3599 yyreturn: 3600 if (yychar != YYEMPTY) 3601 { 3602 /* Make sure we have latest lookahead translation. See comments at 3603 user semantic actions for why this is necessary. */ 3604 yytoken = YYTRANSLATE (yychar); 3605 yydestruct ("Cleanup: discarding lookahead", 3606 yytoken, &yylval, closure); 3607 } 3608 /* Do not reclaim the symbols of the rule whose action triggered 3609 this YYABORT or YYACCEPT. */ 3610 YYPOPSTACK (yylen); 3611 YY_STACK_PRINT (yyss, yyssp); 3612 while (yyssp != yyss) 3613 { 3614 yydestruct ("Cleanup: popping", 3615 yystos[*yyssp], yyvsp, closure); 3616 YYPOPSTACK (1); 3617 } 3618 #ifndef yyoverflow 3619 if (yyss != yyssa) 3620 YYSTACK_FREE (yyss); 3621 #endif 3622 #if YYERROR_VERBOSE 3623 if (yymsg != yymsgbuf) 3624 YYSTACK_FREE (yymsg); 3625 #endif 3626 return yyresult; 3627 } 3628 #line 1151 "yyscript.y" /* yacc.c:1906 */ 3629 3630