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
45 extern 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
276 union YYSTYPE
277 {
278 #line 56 "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 };
311 typedef union YYSTYPE YYSTYPE;
312 # define YYSTYPE_IS_TRIVIAL 1
313 # define YYSTYPE_IS_DECLARED 1
314 #endif
315
316
317
318
319 int yyparse (void* closure);
320
321
322 #endif /* !YY_YY_YYSCRIPT_H_INCLUDED */