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