1 /* A Bison parser, made by GNU Bison 2.7.12-4996. */ 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 /* Enabling traces. */ 36 #ifndef YYDEBUG 37 # define YYDEBUG 0 38 #endif 39 #if YYDEBUG 40 extern int yydebug; 41 #endif 42 43 /* Tokens. */ 44 #ifndef YYTOKENTYPE 45 # define YYTOKENTYPE 46 /* Put the tokens into the symbol table, so that GDB and other debuggers 47 know about them. */ 48 enum yytokentype { 49 OREQ = 258, 50 ANDEQ = 259, 51 RSHIFTEQ = 260, 52 LSHIFTEQ = 261, 53 DIVEQ = 262, 54 MULTEQ = 263, 55 MINUSEQ = 264, 56 PLUSEQ = 265, 57 OROR = 266, 58 ANDAND = 267, 59 NE = 268, 60 EQ = 269, 61 GE = 270, 62 LE = 271, 63 RSHIFT = 272, 64 LSHIFT = 273, 65 UNARY = 274, 66 STRING = 275, 67 QUOTED_STRING = 276, 68 INTEGER = 277, 69 ABSOLUTE = 278, 70 ADDR = 279, 71 ALIGN_K = 280, 72 ALIGNOF = 281, 73 ASSERT_K = 282, 74 AS_NEEDED = 283, 75 AT = 284, 76 BIND = 285, 77 BLOCK = 286, 78 BYTE = 287, 79 CONSTANT = 288, 80 CONSTRUCTORS = 289, 81 COPY = 290, 82 CREATE_OBJECT_SYMBOLS = 291, 83 DATA_SEGMENT_ALIGN = 292, 84 DATA_SEGMENT_END = 293, 85 DATA_SEGMENT_RELRO_END = 294, 86 DEFINED = 295, 87 DSECT = 296, 88 ENTRY = 297, 89 EXCLUDE_FILE = 298, 90 EXTERN = 299, 91 FILL = 300, 92 FLOAT = 301, 93 FORCE_COMMON_ALLOCATION = 302, 94 GLOBAL = 303, 95 GROUP = 304, 96 HLL = 305, 97 INCLUDE = 306, 98 INHIBIT_COMMON_ALLOCATION = 307, 99 INFO = 308, 100 INPUT = 309, 101 KEEP = 310, 102 LEN = 311, 103 LENGTH = 312, 104 LOADADDR = 313, 105 LOCAL = 314, 106 LONG = 315, 107 MAP = 316, 108 MAX_K = 317, 109 MEMORY = 318, 110 MIN_K = 319, 111 NEXT = 320, 112 NOCROSSREFS = 321, 113 NOFLOAT = 322, 114 NOLOAD = 323, 115 ONLY_IF_RO = 324, 116 ONLY_IF_RW = 325, 117 ORG = 326, 118 ORIGIN = 327, 119 OUTPUT = 328, 120 OUTPUT_ARCH = 329, 121 OUTPUT_FORMAT = 330, 122 OVERLAY = 331, 123 PHDRS = 332, 124 PROVIDE = 333, 125 PROVIDE_HIDDEN = 334, 126 QUAD = 335, 127 SEARCH_DIR = 336, 128 SECTIONS = 337, 129 SEGMENT_START = 338, 130 SHORT = 339, 131 SIZEOF = 340, 132 SIZEOF_HEADERS = 341, 133 SORT_BY_ALIGNMENT = 342, 134 SORT_BY_INIT_PRIORITY = 343, 135 SORT_BY_NAME = 344, 136 SPECIAL = 345, 137 SQUAD = 346, 138 STARTUP = 347, 139 SUBALIGN = 348, 140 SYSLIB = 349, 141 TARGET_K = 350, 142 TRUNCATE = 351, 143 VERSIONK = 352, 144 OPTION = 353, 145 PARSING_LINKER_SCRIPT = 354, 146 PARSING_VERSION_SCRIPT = 355, 147 PARSING_DEFSYM = 356, 148 PARSING_DYNAMIC_LIST = 357, 149 PARSING_SECTIONS_BLOCK = 358, 150 PARSING_SECTION_COMMANDS = 359, 151 PARSING_MEMORY_DEF = 360 152 }; 153 #endif 154 /* Tokens. */ 155 #define OREQ 258 156 #define ANDEQ 259 157 #define RSHIFTEQ 260 158 #define LSHIFTEQ 261 159 #define DIVEQ 262 160 #define MULTEQ 263 161 #define MINUSEQ 264 162 #define PLUSEQ 265 163 #define OROR 266 164 #define ANDAND 267 165 #define NE 268 166 #define EQ 269 167 #define GE 270 168 #define LE 271 169 #define RSHIFT 272 170 #define LSHIFT 273 171 #define UNARY 274 172 #define STRING 275 173 #define QUOTED_STRING 276 174 #define INTEGER 277 175 #define ABSOLUTE 278 176 #define ADDR 279 177 #define ALIGN_K 280 178 #define ALIGNOF 281 179 #define ASSERT_K 282 180 #define AS_NEEDED 283 181 #define AT 284 182 #define BIND 285 183 #define BLOCK 286 184 #define BYTE 287 185 #define CONSTANT 288 186 #define CONSTRUCTORS 289 187 #define COPY 290 188 #define CREATE_OBJECT_SYMBOLS 291 189 #define DATA_SEGMENT_ALIGN 292 190 #define DATA_SEGMENT_END 293 191 #define DATA_SEGMENT_RELRO_END 294 192 #define DEFINED 295 193 #define DSECT 296 194 #define ENTRY 297 195 #define EXCLUDE_FILE 298 196 #define EXTERN 299 197 #define FILL 300 198 #define FLOAT 301 199 #define FORCE_COMMON_ALLOCATION 302 200 #define GLOBAL 303 201 #define GROUP 304 202 #define HLL 305 203 #define INCLUDE 306 204 #define INHIBIT_COMMON_ALLOCATION 307 205 #define INFO 308 206 #define INPUT 309 207 #define KEEP 310 208 #define LEN 311 209 #define LENGTH 312 210 #define LOADADDR 313 211 #define LOCAL 314 212 #define LONG 315 213 #define MAP 316 214 #define MAX_K 317 215 #define MEMORY 318 216 #define MIN_K 319 217 #define NEXT 320 218 #define NOCROSSREFS 321 219 #define NOFLOAT 322 220 #define NOLOAD 323 221 #define ONLY_IF_RO 324 222 #define ONLY_IF_RW 325 223 #define ORG 326 224 #define ORIGIN 327 225 #define OUTPUT 328 226 #define OUTPUT_ARCH 329 227 #define OUTPUT_FORMAT 330 228 #define OVERLAY 331 229 #define PHDRS 332 230 #define PROVIDE 333 231 #define PROVIDE_HIDDEN 334 232 #define QUAD 335 233 #define SEARCH_DIR 336 234 #define SECTIONS 337 235 #define SEGMENT_START 338 236 #define SHORT 339 237 #define SIZEOF 340 238 #define SIZEOF_HEADERS 341 239 #define SORT_BY_ALIGNMENT 342 240 #define SORT_BY_INIT_PRIORITY 343 241 #define SORT_BY_NAME 344 242 #define SPECIAL 345 243 #define SQUAD 346 244 #define STARTUP 347 245 #define SUBALIGN 348 246 #define SYSLIB 349 247 #define TARGET_K 350 248 #define TRUNCATE 351 249 #define VERSIONK 352 250 #define OPTION 353 251 #define PARSING_LINKER_SCRIPT 354 252 #define PARSING_VERSION_SCRIPT 355 253 #define PARSING_DEFSYM 356 254 #define PARSING_DYNAMIC_LIST 357 255 #define PARSING_SECTIONS_BLOCK 358 256 #define PARSING_SECTION_COMMANDS 359 257 #define PARSING_MEMORY_DEF 360 258 259 260 261 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 262 typedef union YYSTYPE 263 { 264 /* Line 2053 of yacc.c */ 265 #line 53 "yyscript.y" 266 267 /* A string. */ 268 struct Parser_string string; 269 /* A number. */ 270 uint64_t integer; 271 /* An expression. */ 272 Expression_ptr expr; 273 /* An output section header. */ 274 struct Parser_output_section_header output_section_header; 275 /* An output section trailer. */ 276 struct Parser_output_section_trailer output_section_trailer; 277 /* A section constraint. */ 278 enum Section_constraint constraint; 279 /* A complete input section specification. */ 280 struct Input_section_spec input_section_spec; 281 /* A list of wildcard specifications, with exclusions. */ 282 struct Wildcard_sections wildcard_sections; 283 /* A single wildcard specification. */ 284 struct Wildcard_section wildcard_section; 285 /* A list of strings. */ 286 String_list_ptr string_list; 287 /* Information for a program header. */ 288 struct Phdr_info phdr_info; 289 /* Used for version scripts and within VERSION {}. */ 290 struct Version_dependency_list* deplist; 291 struct Version_expression_list* versyms; 292 struct Version_tree* versnode; 293 enum Script_section_type section_type; 294 295 296 /* Line 2053 of yacc.c */ 297 #line 298 "yyscript.h" 298 } YYSTYPE; 299 # define YYSTYPE_IS_TRIVIAL 1 300 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 301 # define YYSTYPE_IS_DECLARED 1 302 #endif 303 304 305 #ifdef YYPARSE_PARAM 306 #if defined __STDC__ || defined __cplusplus 307 int yyparse (void *YYPARSE_PARAM); 308 #else 309 int yyparse (); 310 #endif 311 #else /* ! YYPARSE_PARAM */ 312 #if defined __STDC__ || defined __cplusplus 313 int yyparse (void* closure); 314 #else 315 int yyparse (); 316 #endif 317 #endif /* ! YYPARSE_PARAM */ 318 319 #endif /* !YY_YY_YYSCRIPT_H_INCLUDED */ 320