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