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