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