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