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