1*fae548d3Szrj /* A Bison parser, made by GNU Bison 3.0.5. */ 2*fae548d3Szrj 3*fae548d3Szrj /* Bison interface for Yacc-like parsers in C 4*fae548d3Szrj 5*fae548d3Szrj Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc. 6*fae548d3Szrj 7*fae548d3Szrj This program is free software: you can redistribute it and/or modify 8*fae548d3Szrj it under the terms of the GNU General Public License as published by 9*fae548d3Szrj the Free Software Foundation, either version 3 of the License, or 10*fae548d3Szrj (at your option) any later version. 11*fae548d3Szrj 12*fae548d3Szrj This program is distributed in the hope that it will be useful, 13*fae548d3Szrj but WITHOUT ANY WARRANTY; without even the implied warranty of 14*fae548d3Szrj MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*fae548d3Szrj GNU General Public License for more details. 16*fae548d3Szrj 17*fae548d3Szrj You should have received a copy of the GNU General Public License 18*fae548d3Szrj along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19*fae548d3Szrj 20*fae548d3Szrj /* As a special exception, you may create a larger work that contains 21*fae548d3Szrj part or all of the Bison parser skeleton and distribute that work 22*fae548d3Szrj under terms of your choice, so long as that work isn't itself a 23*fae548d3Szrj parser generator using the skeleton or a modified version thereof 24*fae548d3Szrj as a parser skeleton. Alternatively, if you modify or redistribute 25*fae548d3Szrj the parser skeleton itself, you may (at your option) remove this 26*fae548d3Szrj special exception, which will cause the skeleton and the resulting 27*fae548d3Szrj Bison output files to be licensed under the GNU General Public 28*fae548d3Szrj License without this special exception. 29*fae548d3Szrj 30*fae548d3Szrj This special exception was added by the Free Software Foundation in 31*fae548d3Szrj version 2.2 of Bison. */ 32*fae548d3Szrj 33*fae548d3Szrj #ifndef YY_YY_YYSCRIPT_H_INCLUDED 34*fae548d3Szrj # define YY_YY_YYSCRIPT_H_INCLUDED 35*fae548d3Szrj /* Debug traces. */ 36*fae548d3Szrj #ifndef YYDEBUG 37*fae548d3Szrj # define YYDEBUG 0 38*fae548d3Szrj #endif 39*fae548d3Szrj #if YYDEBUG 40*fae548d3Szrj extern int yydebug; 41*fae548d3Szrj #endif 42*fae548d3Szrj 43*fae548d3Szrj /* Token type. */ 44*fae548d3Szrj #ifndef YYTOKENTYPE 45*fae548d3Szrj # define YYTOKENTYPE 46*fae548d3Szrj enum yytokentype 47*fae548d3Szrj { 48*fae548d3Szrj PLUSEQ = 258, 49*fae548d3Szrj MINUSEQ = 259, 50*fae548d3Szrj MULTEQ = 260, 51*fae548d3Szrj DIVEQ = 261, 52*fae548d3Szrj LSHIFTEQ = 262, 53*fae548d3Szrj RSHIFTEQ = 263, 54*fae548d3Szrj ANDEQ = 264, 55*fae548d3Szrj OREQ = 265, 56*fae548d3Szrj OROR = 266, 57*fae548d3Szrj ANDAND = 267, 58*fae548d3Szrj EQ = 268, 59*fae548d3Szrj NE = 269, 60*fae548d3Szrj LE = 270, 61*fae548d3Szrj GE = 271, 62*fae548d3Szrj LSHIFT = 272, 63*fae548d3Szrj RSHIFT = 273, 64*fae548d3Szrj UNARY = 274, 65*fae548d3Szrj STRING = 275, 66*fae548d3Szrj QUOTED_STRING = 276, 67*fae548d3Szrj INTEGER = 277, 68*fae548d3Szrj ABSOLUTE = 278, 69*fae548d3Szrj ADDR = 279, 70*fae548d3Szrj ALIGN_K = 280, 71*fae548d3Szrj ALIGNOF = 281, 72*fae548d3Szrj ASSERT_K = 282, 73*fae548d3Szrj AS_NEEDED = 283, 74*fae548d3Szrj AT = 284, 75*fae548d3Szrj BIND = 285, 76*fae548d3Szrj BLOCK = 286, 77*fae548d3Szrj BYTE = 287, 78*fae548d3Szrj CONSTANT = 288, 79*fae548d3Szrj CONSTRUCTORS = 289, 80*fae548d3Szrj COPY = 290, 81*fae548d3Szrj CREATE_OBJECT_SYMBOLS = 291, 82*fae548d3Szrj DATA_SEGMENT_ALIGN = 292, 83*fae548d3Szrj DATA_SEGMENT_END = 293, 84*fae548d3Szrj DATA_SEGMENT_RELRO_END = 294, 85*fae548d3Szrj DEFINED = 295, 86*fae548d3Szrj DSECT = 296, 87*fae548d3Szrj ENTRY = 297, 88*fae548d3Szrj EXCLUDE_FILE = 298, 89*fae548d3Szrj EXTERN = 299, 90*fae548d3Szrj FILL = 300, 91*fae548d3Szrj FLOAT = 301, 92*fae548d3Szrj FORCE_COMMON_ALLOCATION = 302, 93*fae548d3Szrj GLOBAL = 303, 94*fae548d3Szrj GROUP = 304, 95*fae548d3Szrj HIDDEN = 305, 96*fae548d3Szrj HLL = 306, 97*fae548d3Szrj INCLUDE = 307, 98*fae548d3Szrj INHIBIT_COMMON_ALLOCATION = 308, 99*fae548d3Szrj INFO = 309, 100*fae548d3Szrj INPUT = 310, 101*fae548d3Szrj KEEP = 311, 102*fae548d3Szrj LEN = 312, 103*fae548d3Szrj LENGTH = 313, 104*fae548d3Szrj LOADADDR = 314, 105*fae548d3Szrj LOCAL = 315, 106*fae548d3Szrj LONG = 316, 107*fae548d3Szrj MAP = 317, 108*fae548d3Szrj MAX_K = 318, 109*fae548d3Szrj MEMORY = 319, 110*fae548d3Szrj MIN_K = 320, 111*fae548d3Szrj NEXT = 321, 112*fae548d3Szrj NOCROSSREFS = 322, 113*fae548d3Szrj NOFLOAT = 323, 114*fae548d3Szrj NOLOAD = 324, 115*fae548d3Szrj ONLY_IF_RO = 325, 116*fae548d3Szrj ONLY_IF_RW = 326, 117*fae548d3Szrj ORG = 327, 118*fae548d3Szrj ORIGIN = 328, 119*fae548d3Szrj OUTPUT = 329, 120*fae548d3Szrj OUTPUT_ARCH = 330, 121*fae548d3Szrj OUTPUT_FORMAT = 331, 122*fae548d3Szrj OVERLAY = 332, 123*fae548d3Szrj PHDRS = 333, 124*fae548d3Szrj PROVIDE = 334, 125*fae548d3Szrj PROVIDE_HIDDEN = 335, 126*fae548d3Szrj QUAD = 336, 127*fae548d3Szrj SEARCH_DIR = 337, 128*fae548d3Szrj SECTIONS = 338, 129*fae548d3Szrj SEGMENT_START = 339, 130*fae548d3Szrj SHORT = 340, 131*fae548d3Szrj SIZEOF = 341, 132*fae548d3Szrj SIZEOF_HEADERS = 342, 133*fae548d3Szrj SORT_BY_ALIGNMENT = 343, 134*fae548d3Szrj SORT_BY_INIT_PRIORITY = 344, 135*fae548d3Szrj SORT_BY_NAME = 345, 136*fae548d3Szrj SPECIAL = 346, 137*fae548d3Szrj SQUAD = 347, 138*fae548d3Szrj STARTUP = 348, 139*fae548d3Szrj SUBALIGN = 349, 140*fae548d3Szrj SYSLIB = 350, 141*fae548d3Szrj TARGET_K = 351, 142*fae548d3Szrj TRUNCATE = 352, 143*fae548d3Szrj VERSIONK = 353, 144*fae548d3Szrj OPTION = 354, 145*fae548d3Szrj PARSING_LINKER_SCRIPT = 355, 146*fae548d3Szrj PARSING_VERSION_SCRIPT = 356, 147*fae548d3Szrj PARSING_DEFSYM = 357, 148*fae548d3Szrj PARSING_DYNAMIC_LIST = 358, 149*fae548d3Szrj PARSING_SECTIONS_BLOCK = 359, 150*fae548d3Szrj PARSING_SECTION_COMMANDS = 360, 151*fae548d3Szrj PARSING_MEMORY_DEF = 361 152*fae548d3Szrj }; 153*fae548d3Szrj #endif 154*fae548d3Szrj /* Tokens. */ 155*fae548d3Szrj #define PLUSEQ 258 156*fae548d3Szrj #define MINUSEQ 259 157*fae548d3Szrj #define MULTEQ 260 158*fae548d3Szrj #define DIVEQ 261 159*fae548d3Szrj #define LSHIFTEQ 262 160*fae548d3Szrj #define RSHIFTEQ 263 161*fae548d3Szrj #define ANDEQ 264 162*fae548d3Szrj #define OREQ 265 163*fae548d3Szrj #define OROR 266 164*fae548d3Szrj #define ANDAND 267 165*fae548d3Szrj #define EQ 268 166*fae548d3Szrj #define NE 269 167*fae548d3Szrj #define LE 270 168*fae548d3Szrj #define GE 271 169*fae548d3Szrj #define LSHIFT 272 170*fae548d3Szrj #define RSHIFT 273 171*fae548d3Szrj #define UNARY 274 172*fae548d3Szrj #define STRING 275 173*fae548d3Szrj #define QUOTED_STRING 276 174*fae548d3Szrj #define INTEGER 277 175*fae548d3Szrj #define ABSOLUTE 278 176*fae548d3Szrj #define ADDR 279 177*fae548d3Szrj #define ALIGN_K 280 178*fae548d3Szrj #define ALIGNOF 281 179*fae548d3Szrj #define ASSERT_K 282 180*fae548d3Szrj #define AS_NEEDED 283 181*fae548d3Szrj #define AT 284 182*fae548d3Szrj #define BIND 285 183*fae548d3Szrj #define BLOCK 286 184*fae548d3Szrj #define BYTE 287 185*fae548d3Szrj #define CONSTANT 288 186*fae548d3Szrj #define CONSTRUCTORS 289 187*fae548d3Szrj #define COPY 290 188*fae548d3Szrj #define CREATE_OBJECT_SYMBOLS 291 189*fae548d3Szrj #define DATA_SEGMENT_ALIGN 292 190*fae548d3Szrj #define DATA_SEGMENT_END 293 191*fae548d3Szrj #define DATA_SEGMENT_RELRO_END 294 192*fae548d3Szrj #define DEFINED 295 193*fae548d3Szrj #define DSECT 296 194*fae548d3Szrj #define ENTRY 297 195*fae548d3Szrj #define EXCLUDE_FILE 298 196*fae548d3Szrj #define EXTERN 299 197*fae548d3Szrj #define FILL 300 198*fae548d3Szrj #define FLOAT 301 199*fae548d3Szrj #define FORCE_COMMON_ALLOCATION 302 200*fae548d3Szrj #define GLOBAL 303 201*fae548d3Szrj #define GROUP 304 202*fae548d3Szrj #define HIDDEN 305 203*fae548d3Szrj #define HLL 306 204*fae548d3Szrj #define INCLUDE 307 205*fae548d3Szrj #define INHIBIT_COMMON_ALLOCATION 308 206*fae548d3Szrj #define INFO 309 207*fae548d3Szrj #define INPUT 310 208*fae548d3Szrj #define KEEP 311 209*fae548d3Szrj #define LEN 312 210*fae548d3Szrj #define LENGTH 313 211*fae548d3Szrj #define LOADADDR 314 212*fae548d3Szrj #define LOCAL 315 213*fae548d3Szrj #define LONG 316 214*fae548d3Szrj #define MAP 317 215*fae548d3Szrj #define MAX_K 318 216*fae548d3Szrj #define MEMORY 319 217*fae548d3Szrj #define MIN_K 320 218*fae548d3Szrj #define NEXT 321 219*fae548d3Szrj #define NOCROSSREFS 322 220*fae548d3Szrj #define NOFLOAT 323 221*fae548d3Szrj #define NOLOAD 324 222*fae548d3Szrj #define ONLY_IF_RO 325 223*fae548d3Szrj #define ONLY_IF_RW 326 224*fae548d3Szrj #define ORG 327 225*fae548d3Szrj #define ORIGIN 328 226*fae548d3Szrj #define OUTPUT 329 227*fae548d3Szrj #define OUTPUT_ARCH 330 228*fae548d3Szrj #define OUTPUT_FORMAT 331 229*fae548d3Szrj #define OVERLAY 332 230*fae548d3Szrj #define PHDRS 333 231*fae548d3Szrj #define PROVIDE 334 232*fae548d3Szrj #define PROVIDE_HIDDEN 335 233*fae548d3Szrj #define QUAD 336 234*fae548d3Szrj #define SEARCH_DIR 337 235*fae548d3Szrj #define SECTIONS 338 236*fae548d3Szrj #define SEGMENT_START 339 237*fae548d3Szrj #define SHORT 340 238*fae548d3Szrj #define SIZEOF 341 239*fae548d3Szrj #define SIZEOF_HEADERS 342 240*fae548d3Szrj #define SORT_BY_ALIGNMENT 343 241*fae548d3Szrj #define SORT_BY_INIT_PRIORITY 344 242*fae548d3Szrj #define SORT_BY_NAME 345 243*fae548d3Szrj #define SPECIAL 346 244*fae548d3Szrj #define SQUAD 347 245*fae548d3Szrj #define STARTUP 348 246*fae548d3Szrj #define SUBALIGN 349 247*fae548d3Szrj #define SYSLIB 350 248*fae548d3Szrj #define TARGET_K 351 249*fae548d3Szrj #define TRUNCATE 352 250*fae548d3Szrj #define VERSIONK 353 251*fae548d3Szrj #define OPTION 354 252*fae548d3Szrj #define PARSING_LINKER_SCRIPT 355 253*fae548d3Szrj #define PARSING_VERSION_SCRIPT 356 254*fae548d3Szrj #define PARSING_DEFSYM 357 255*fae548d3Szrj #define PARSING_DYNAMIC_LIST 358 256*fae548d3Szrj #define PARSING_SECTIONS_BLOCK 359 257*fae548d3Szrj #define PARSING_SECTION_COMMANDS 360 258*fae548d3Szrj #define PARSING_MEMORY_DEF 361 259*fae548d3Szrj 260*fae548d3Szrj /* Value type. */ 261*fae548d3Szrj #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 262*fae548d3Szrj 263*fae548d3Szrj union YYSTYPE 264*fae548d3Szrj { 265*fae548d3Szrj #line 53 "yyscript.y" /* yacc.c:1910 */ 266*fae548d3Szrj 267*fae548d3Szrj /* A string. */ 268*fae548d3Szrj struct Parser_string string; 269*fae548d3Szrj /* A number. */ 270*fae548d3Szrj uint64_t integer; 271*fae548d3Szrj /* An expression. */ 272*fae548d3Szrj Expression_ptr expr; 273*fae548d3Szrj /* An output section header. */ 274*fae548d3Szrj struct Parser_output_section_header output_section_header; 275*fae548d3Szrj /* An output section trailer. */ 276*fae548d3Szrj struct Parser_output_section_trailer output_section_trailer; 277*fae548d3Szrj /* A section constraint. */ 278*fae548d3Szrj enum Section_constraint constraint; 279*fae548d3Szrj /* A complete input section specification. */ 280*fae548d3Szrj struct Input_section_spec input_section_spec; 281*fae548d3Szrj /* A list of wildcard specifications, with exclusions. */ 282*fae548d3Szrj struct Wildcard_sections wildcard_sections; 283*fae548d3Szrj /* A single wildcard specification. */ 284*fae548d3Szrj struct Wildcard_section wildcard_section; 285*fae548d3Szrj /* A list of strings. */ 286*fae548d3Szrj String_list_ptr string_list; 287*fae548d3Szrj /* Information for a program header. */ 288*fae548d3Szrj struct Phdr_info phdr_info; 289*fae548d3Szrj /* Used for version scripts and within VERSION {}. */ 290*fae548d3Szrj struct Version_dependency_list* deplist; 291*fae548d3Szrj struct Version_expression_list* versyms; 292*fae548d3Szrj struct Version_tree* versnode; 293*fae548d3Szrj enum Script_section_type section_type; 294*fae548d3Szrj 295*fae548d3Szrj #line 296 "yyscript.h" /* yacc.c:1910 */ 296*fae548d3Szrj }; 297*fae548d3Szrj 298*fae548d3Szrj typedef union YYSTYPE YYSTYPE; 299*fae548d3Szrj # define YYSTYPE_IS_TRIVIAL 1 300*fae548d3Szrj # define YYSTYPE_IS_DECLARED 1 301*fae548d3Szrj #endif 302*fae548d3Szrj 303*fae548d3Szrj 304*fae548d3Szrj 305*fae548d3Szrj int yyparse (void* closure); 306*fae548d3Szrj 307*fae548d3Szrj #endif /* !YY_YY_YYSCRIPT_H_INCLUDED */ 308