1*e992f068Schristos /* A Bison parser, made by GNU Bison 3.8.2. */
275fd0b74Schristos
3ede78133Schristos /* Bison implementation for Yacc-like parsers in C
475fd0b74Schristos
5*e992f068Schristos Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6*e992f068Schristos Inc.
775fd0b74Schristos
8ede78133Schristos This program is free software: you can redistribute it and/or modify
975fd0b74Schristos it under the terms of the GNU General Public License as published by
10ede78133Schristos the Free Software Foundation, either version 3 of the License, or
11ede78133Schristos (at your option) any later version.
1275fd0b74Schristos
1375fd0b74Schristos This program is distributed in the hope that it will be useful,
1475fd0b74Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of
1575fd0b74Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1675fd0b74Schristos GNU General Public License for more details.
1775fd0b74Schristos
1875fd0b74Schristos You should have received a copy of the GNU General Public License
19*e992f068Schristos along with this program. If not, see <https://www.gnu.org/licenses/>. */
2075fd0b74Schristos
2175fd0b74Schristos /* As a special exception, you may create a larger work that contains
2275fd0b74Schristos part or all of the Bison parser skeleton and distribute that work
2375fd0b74Schristos under terms of your choice, so long as that work isn't itself a
2475fd0b74Schristos parser generator using the skeleton or a modified version thereof
2575fd0b74Schristos as a parser skeleton. Alternatively, if you modify or redistribute
2675fd0b74Schristos the parser skeleton itself, you may (at your option) remove this
2775fd0b74Schristos special exception, which will cause the skeleton and the resulting
2875fd0b74Schristos Bison output files to be licensed under the GNU General Public
2975fd0b74Schristos License without this special exception.
3075fd0b74Schristos
3175fd0b74Schristos This special exception was added by the Free Software Foundation in
3275fd0b74Schristos version 2.2 of Bison. */
3375fd0b74Schristos
3475fd0b74Schristos /* C LALR(1) parser skeleton written by Richard Stallman, by
3575fd0b74Schristos simplifying the original so-called "semantic" parser. */
3675fd0b74Schristos
37*e992f068Schristos /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38*e992f068Schristos especially those whose name start with YY_ or yy_. They are
39*e992f068Schristos private implementation details that can be changed or removed. */
40*e992f068Schristos
4175fd0b74Schristos /* All symbols defined below should begin with yy or YY, to avoid
4275fd0b74Schristos infringing on user name space. This should be done even for local
4375fd0b74Schristos variables, as they might otherwise be expanded by user macros.
4475fd0b74Schristos There are some unavoidable exceptions within include files to
4575fd0b74Schristos define necessary library symbols; they are noted "INFRINGES ON
4675fd0b74Schristos USER NAME SPACE" below. */
4775fd0b74Schristos
48*e992f068Schristos /* Identify Bison output, and Bison version. */
49*e992f068Schristos #define YYBISON 30802
5075fd0b74Schristos
51*e992f068Schristos /* Bison version string. */
52*e992f068Schristos #define YYBISON_VERSION "3.8.2"
5375fd0b74Schristos
5475fd0b74Schristos /* Skeleton name. */
5575fd0b74Schristos #define YYSKELETON_NAME "yacc.c"
5675fd0b74Schristos
5775fd0b74Schristos /* Pure parsers. */
5875fd0b74Schristos #define YYPURE 0
5975fd0b74Schristos
60ede78133Schristos /* Push parsers. */
61ede78133Schristos #define YYPUSH 0
62ede78133Schristos
63ede78133Schristos /* Pull parsers. */
64ede78133Schristos #define YYPULL 1
6575fd0b74Schristos
6675fd0b74Schristos
6775fd0b74Schristos
68ede78133Schristos
69*e992f068Schristos /* First part of user prologue. */
70*e992f068Schristos #line 1 "defparse.y"
71ede78133Schristos /* defparse.y - parser for .def files */
72ede78133Schristos
73*e992f068Schristos /* Copyright (C) 1995-2022 Free Software Foundation, Inc.
74ede78133Schristos
75ede78133Schristos This file is part of GNU Binutils.
76ede78133Schristos
77ede78133Schristos This program is free software; you can redistribute it and/or modify
78ede78133Schristos it under the terms of the GNU General Public License as published by
79ede78133Schristos the Free Software Foundation; either version 3 of the License, or
80ede78133Schristos (at your option) any later version.
81ede78133Schristos
82ede78133Schristos This program is distributed in the hope that it will be useful,
83ede78133Schristos but WITHOUT ANY WARRANTY; without even the implied warranty of
84ede78133Schristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
85ede78133Schristos GNU General Public License for more details.
86ede78133Schristos
87ede78133Schristos You should have received a copy of the GNU General Public License
88ede78133Schristos along with this program; if not, write to the Free Software
89ede78133Schristos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
90ede78133Schristos MA 02110-1301, USA. */
91ede78133Schristos
92ede78133Schristos #include "sysdep.h"
93ede78133Schristos #include "bfd.h"
94ede78133Schristos #include "libiberty.h"
95ede78133Schristos #include "dlltool.h"
96ede78133Schristos
97*e992f068Schristos #line 98 "defparse.c"
98ede78133Schristos
99*e992f068Schristos # ifndef YY_CAST
100*e992f068Schristos # ifdef __cplusplus
101*e992f068Schristos # define YY_CAST(Type, Val) static_cast<Type> (Val)
102*e992f068Schristos # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
103*e992f068Schristos # else
104*e992f068Schristos # define YY_CAST(Type, Val) ((Type) (Val))
105*e992f068Schristos # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
106*e992f068Schristos # endif
107*e992f068Schristos # endif
108ede78133Schristos # ifndef YY_NULLPTR
109*e992f068Schristos # if defined __cplusplus
110*e992f068Schristos # if 201103L <= __cplusplus
111ede78133Schristos # define YY_NULLPTR nullptr
112ede78133Schristos # else
113ede78133Schristos # define YY_NULLPTR 0
114ede78133Schristos # endif
115ede78133Schristos # else
116*e992f068Schristos # define YY_NULLPTR ((void*)0)
117*e992f068Schristos # endif
118ede78133Schristos # endif
119ede78133Schristos
120*e992f068Schristos /* Use api.header.include to #include this header
121*e992f068Schristos instead of duplicating it here. */
122ede78133Schristos #ifndef YY_YY_DEFPARSE_H_INCLUDED
123ede78133Schristos # define YY_YY_DEFPARSE_H_INCLUDED
124ede78133Schristos /* Debug traces. */
125ede78133Schristos #ifndef YYDEBUG
126ede78133Schristos # define YYDEBUG 0
127ede78133Schristos #endif
128ede78133Schristos #if YYDEBUG
129ede78133Schristos extern int yydebug;
130ede78133Schristos #endif
131ede78133Schristos
132*e992f068Schristos /* Token kinds. */
13375fd0b74Schristos #ifndef YYTOKENTYPE
13475fd0b74Schristos # define YYTOKENTYPE
135ede78133Schristos enum yytokentype
136ede78133Schristos {
137*e992f068Schristos YYEMPTY = -2,
138*e992f068Schristos YYEOF = 0, /* "end of file" */
139*e992f068Schristos YYerror = 256, /* error */
140*e992f068Schristos YYUNDEF = 257, /* "invalid token" */
141*e992f068Schristos NAME = 258, /* NAME */
142*e992f068Schristos LIBRARY = 259, /* LIBRARY */
143*e992f068Schristos DESCRIPTION = 260, /* DESCRIPTION */
144*e992f068Schristos STACKSIZE = 261, /* STACKSIZE */
145*e992f068Schristos HEAPSIZE = 262, /* HEAPSIZE */
146*e992f068Schristos CODE = 263, /* CODE */
147*e992f068Schristos DATA = 264, /* DATA */
148*e992f068Schristos SECTIONS = 265, /* SECTIONS */
149*e992f068Schristos EXPORTS = 266, /* EXPORTS */
150*e992f068Schristos IMPORTS = 267, /* IMPORTS */
151*e992f068Schristos VERSIONK = 268, /* VERSIONK */
152*e992f068Schristos BASE = 269, /* BASE */
153*e992f068Schristos CONSTANT = 270, /* CONSTANT */
154*e992f068Schristos READ = 271, /* READ */
155*e992f068Schristos WRITE = 272, /* WRITE */
156*e992f068Schristos EXECUTE = 273, /* EXECUTE */
157*e992f068Schristos SHARED = 274, /* SHARED */
158*e992f068Schristos NONSHARED = 275, /* NONSHARED */
159*e992f068Schristos NONAME = 276, /* NONAME */
160*e992f068Schristos PRIVATE = 277, /* PRIVATE */
161*e992f068Schristos SINGLE = 278, /* SINGLE */
162*e992f068Schristos MULTIPLE = 279, /* MULTIPLE */
163*e992f068Schristos INITINSTANCE = 280, /* INITINSTANCE */
164*e992f068Schristos INITGLOBAL = 281, /* INITGLOBAL */
165*e992f068Schristos TERMINSTANCE = 282, /* TERMINSTANCE */
166*e992f068Schristos TERMGLOBAL = 283, /* TERMGLOBAL */
167*e992f068Schristos EQUAL = 284, /* EQUAL */
168*e992f068Schristos ID = 285, /* ID */
169*e992f068Schristos NUMBER = 286 /* NUMBER */
17075fd0b74Schristos };
171*e992f068Schristos typedef enum yytokentype yytoken_kind_t;
17275fd0b74Schristos #endif
173*e992f068Schristos /* Token kinds. */
174*e992f068Schristos #define YYEMPTY -2
175*e992f068Schristos #define YYEOF 0
176*e992f068Schristos #define YYerror 256
177*e992f068Schristos #define YYUNDEF 257
17875fd0b74Schristos #define NAME 258
17975fd0b74Schristos #define LIBRARY 259
18075fd0b74Schristos #define DESCRIPTION 260
18175fd0b74Schristos #define STACKSIZE 261
18275fd0b74Schristos #define HEAPSIZE 262
18375fd0b74Schristos #define CODE 263
18475fd0b74Schristos #define DATA 264
18575fd0b74Schristos #define SECTIONS 265
18675fd0b74Schristos #define EXPORTS 266
18775fd0b74Schristos #define IMPORTS 267
18875fd0b74Schristos #define VERSIONK 268
18975fd0b74Schristos #define BASE 269
19075fd0b74Schristos #define CONSTANT 270
19175fd0b74Schristos #define READ 271
19275fd0b74Schristos #define WRITE 272
19375fd0b74Schristos #define EXECUTE 273
19475fd0b74Schristos #define SHARED 274
19575fd0b74Schristos #define NONSHARED 275
19675fd0b74Schristos #define NONAME 276
19775fd0b74Schristos #define PRIVATE 277
19875fd0b74Schristos #define SINGLE 278
19975fd0b74Schristos #define MULTIPLE 279
20075fd0b74Schristos #define INITINSTANCE 280
20175fd0b74Schristos #define INITGLOBAL 281
20275fd0b74Schristos #define TERMINSTANCE 282
20375fd0b74Schristos #define TERMGLOBAL 283
20475fd0b74Schristos #define EQUAL 284
20575fd0b74Schristos #define ID 285
20675fd0b74Schristos #define NUMBER 286
20775fd0b74Schristos
208ede78133Schristos /* Value type. */
20975fd0b74Schristos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
210ede78133Schristos union YYSTYPE
21175fd0b74Schristos {
212*e992f068Schristos #line 28 "defparse.y"
213ede78133Schristos
21475fd0b74Schristos char *id;
21575fd0b74Schristos const char *id_const;
21675fd0b74Schristos int number;
217ede78133Schristos
218*e992f068Schristos #line 219 "defparse.c"
219ede78133Schristos
220*e992f068Schristos };
221ede78133Schristos typedef union YYSTYPE YYSTYPE;
22275fd0b74Schristos # define YYSTYPE_IS_TRIVIAL 1
223ede78133Schristos # define YYSTYPE_IS_DECLARED 1
22475fd0b74Schristos #endif
22575fd0b74Schristos
22675fd0b74Schristos
227ede78133Schristos extern YYSTYPE yylval;
228ede78133Schristos
229*e992f068Schristos
230ede78133Schristos int yyparse (void);
231ede78133Schristos
232*e992f068Schristos
233ede78133Schristos #endif /* !YY_YY_DEFPARSE_H_INCLUDED */
234*e992f068Schristos /* Symbol kind. */
235*e992f068Schristos enum yysymbol_kind_t
236*e992f068Schristos {
237*e992f068Schristos YYSYMBOL_YYEMPTY = -2,
238*e992f068Schristos YYSYMBOL_YYEOF = 0, /* "end of file" */
239*e992f068Schristos YYSYMBOL_YYerror = 1, /* error */
240*e992f068Schristos YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
241*e992f068Schristos YYSYMBOL_NAME = 3, /* NAME */
242*e992f068Schristos YYSYMBOL_LIBRARY = 4, /* LIBRARY */
243*e992f068Schristos YYSYMBOL_DESCRIPTION = 5, /* DESCRIPTION */
244*e992f068Schristos YYSYMBOL_STACKSIZE = 6, /* STACKSIZE */
245*e992f068Schristos YYSYMBOL_HEAPSIZE = 7, /* HEAPSIZE */
246*e992f068Schristos YYSYMBOL_CODE = 8, /* CODE */
247*e992f068Schristos YYSYMBOL_DATA = 9, /* DATA */
248*e992f068Schristos YYSYMBOL_SECTIONS = 10, /* SECTIONS */
249*e992f068Schristos YYSYMBOL_EXPORTS = 11, /* EXPORTS */
250*e992f068Schristos YYSYMBOL_IMPORTS = 12, /* IMPORTS */
251*e992f068Schristos YYSYMBOL_VERSIONK = 13, /* VERSIONK */
252*e992f068Schristos YYSYMBOL_BASE = 14, /* BASE */
253*e992f068Schristos YYSYMBOL_CONSTANT = 15, /* CONSTANT */
254*e992f068Schristos YYSYMBOL_READ = 16, /* READ */
255*e992f068Schristos YYSYMBOL_WRITE = 17, /* WRITE */
256*e992f068Schristos YYSYMBOL_EXECUTE = 18, /* EXECUTE */
257*e992f068Schristos YYSYMBOL_SHARED = 19, /* SHARED */
258*e992f068Schristos YYSYMBOL_NONSHARED = 20, /* NONSHARED */
259*e992f068Schristos YYSYMBOL_NONAME = 21, /* NONAME */
260*e992f068Schristos YYSYMBOL_PRIVATE = 22, /* PRIVATE */
261*e992f068Schristos YYSYMBOL_SINGLE = 23, /* SINGLE */
262*e992f068Schristos YYSYMBOL_MULTIPLE = 24, /* MULTIPLE */
263*e992f068Schristos YYSYMBOL_INITINSTANCE = 25, /* INITINSTANCE */
264*e992f068Schristos YYSYMBOL_INITGLOBAL = 26, /* INITGLOBAL */
265*e992f068Schristos YYSYMBOL_TERMINSTANCE = 27, /* TERMINSTANCE */
266*e992f068Schristos YYSYMBOL_TERMGLOBAL = 28, /* TERMGLOBAL */
267*e992f068Schristos YYSYMBOL_EQUAL = 29, /* EQUAL */
268*e992f068Schristos YYSYMBOL_ID = 30, /* ID */
269*e992f068Schristos YYSYMBOL_NUMBER = 31, /* NUMBER */
270*e992f068Schristos YYSYMBOL_32_ = 32, /* '.' */
271*e992f068Schristos YYSYMBOL_33_ = 33, /* '=' */
272*e992f068Schristos YYSYMBOL_34_ = 34, /* ',' */
273*e992f068Schristos YYSYMBOL_35_ = 35, /* '@' */
274*e992f068Schristos YYSYMBOL_YYACCEPT = 36, /* $accept */
275*e992f068Schristos YYSYMBOL_start = 37, /* start */
276*e992f068Schristos YYSYMBOL_command = 38, /* command */
277*e992f068Schristos YYSYMBOL_explist = 39, /* explist */
278*e992f068Schristos YYSYMBOL_expline = 40, /* expline */
279*e992f068Schristos YYSYMBOL_implist = 41, /* implist */
280*e992f068Schristos YYSYMBOL_impline = 42, /* impline */
281*e992f068Schristos YYSYMBOL_seclist = 43, /* seclist */
282*e992f068Schristos YYSYMBOL_secline = 44, /* secline */
283*e992f068Schristos YYSYMBOL_attr_list = 45, /* attr_list */
284*e992f068Schristos YYSYMBOL_opt_comma = 46, /* opt_comma */
285*e992f068Schristos YYSYMBOL_opt_number = 47, /* opt_number */
286*e992f068Schristos YYSYMBOL_attr = 48, /* attr */
287*e992f068Schristos YYSYMBOL_opt_CONSTANT = 49, /* opt_CONSTANT */
288*e992f068Schristos YYSYMBOL_opt_NONAME = 50, /* opt_NONAME */
289*e992f068Schristos YYSYMBOL_opt_DATA = 51, /* opt_DATA */
290*e992f068Schristos YYSYMBOL_opt_PRIVATE = 52, /* opt_PRIVATE */
291*e992f068Schristos YYSYMBOL_keyword_as_name = 53, /* keyword_as_name */
292*e992f068Schristos YYSYMBOL_opt_name2 = 54, /* opt_name2 */
293*e992f068Schristos YYSYMBOL_opt_name = 55, /* opt_name */
294*e992f068Schristos YYSYMBOL_opt_ordinal = 56, /* opt_ordinal */
295*e992f068Schristos YYSYMBOL_opt_import_name = 57, /* opt_import_name */
296*e992f068Schristos YYSYMBOL_opt_equal_name = 58, /* opt_equal_name */
297*e992f068Schristos YYSYMBOL_opt_base = 59, /* opt_base */
298*e992f068Schristos YYSYMBOL_option_list = 60, /* option_list */
299*e992f068Schristos YYSYMBOL_option = 61 /* option */
300*e992f068Schristos };
301*e992f068Schristos typedef enum yysymbol_kind_t yysymbol_kind_t;
30275fd0b74Schristos
30375fd0b74Schristos
304*e992f068Schristos
30575fd0b74Schristos
30675fd0b74Schristos #ifdef short
30775fd0b74Schristos # undef short
30875fd0b74Schristos #endif
30975fd0b74Schristos
310*e992f068Schristos /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
311*e992f068Schristos <limits.h> and (if available) <stdint.h> are included
312*e992f068Schristos so that the code can choose integer types of a good width. */
313*e992f068Schristos
314*e992f068Schristos #ifndef __PTRDIFF_MAX__
315*e992f068Schristos # include <limits.h> /* INFRINGES ON USER NAME SPACE */
316*e992f068Schristos # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
317*e992f068Schristos # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
318*e992f068Schristos # define YY_STDINT_H
319*e992f068Schristos # endif
32075fd0b74Schristos #endif
32175fd0b74Schristos
322*e992f068Schristos /* Narrow types that promote to a signed type and that can represent a
323*e992f068Schristos signed or unsigned integer of at least N bits. In tables they can
324*e992f068Schristos save space and decrease cache pressure. Promoting to a signed type
325*e992f068Schristos helps avoid bugs in integer arithmetic. */
326*e992f068Schristos
327*e992f068Schristos #ifdef __INT_LEAST8_MAX__
328*e992f068Schristos typedef __INT_LEAST8_TYPE__ yytype_int8;
329*e992f068Schristos #elif defined YY_STDINT_H
330*e992f068Schristos typedef int_least8_t yytype_int8;
33175fd0b74Schristos #else
332ede78133Schristos typedef signed char yytype_int8;
33375fd0b74Schristos #endif
33475fd0b74Schristos
335*e992f068Schristos #ifdef __INT_LEAST16_MAX__
336*e992f068Schristos typedef __INT_LEAST16_TYPE__ yytype_int16;
337*e992f068Schristos #elif defined YY_STDINT_H
338*e992f068Schristos typedef int_least16_t yytype_int16;
33975fd0b74Schristos #else
340*e992f068Schristos typedef short yytype_int16;
34175fd0b74Schristos #endif
34275fd0b74Schristos
343*e992f068Schristos /* Work around bug in HP-UX 11.23, which defines these macros
344*e992f068Schristos incorrectly for preprocessor constants. This workaround can likely
345*e992f068Schristos be removed in 2023, as HPE has promised support for HP-UX 11.23
346*e992f068Schristos (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
347*e992f068Schristos <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
348*e992f068Schristos #ifdef __hpux
349*e992f068Schristos # undef UINT_LEAST8_MAX
350*e992f068Schristos # undef UINT_LEAST16_MAX
351*e992f068Schristos # define UINT_LEAST8_MAX 255
352*e992f068Schristos # define UINT_LEAST16_MAX 65535
353*e992f068Schristos #endif
354*e992f068Schristos
355*e992f068Schristos #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
356*e992f068Schristos typedef __UINT_LEAST8_TYPE__ yytype_uint8;
357*e992f068Schristos #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
358*e992f068Schristos && UINT_LEAST8_MAX <= INT_MAX)
359*e992f068Schristos typedef uint_least8_t yytype_uint8;
360*e992f068Schristos #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
361*e992f068Schristos typedef unsigned char yytype_uint8;
36275fd0b74Schristos #else
363*e992f068Schristos typedef short yytype_uint8;
364*e992f068Schristos #endif
365*e992f068Schristos
366*e992f068Schristos #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
367*e992f068Schristos typedef __UINT_LEAST16_TYPE__ yytype_uint16;
368*e992f068Schristos #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
369*e992f068Schristos && UINT_LEAST16_MAX <= INT_MAX)
370*e992f068Schristos typedef uint_least16_t yytype_uint16;
371*e992f068Schristos #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
372*e992f068Schristos typedef unsigned short yytype_uint16;
373*e992f068Schristos #else
374*e992f068Schristos typedef int yytype_uint16;
375*e992f068Schristos #endif
376*e992f068Schristos
377*e992f068Schristos #ifndef YYPTRDIFF_T
378*e992f068Schristos # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
379*e992f068Schristos # define YYPTRDIFF_T __PTRDIFF_TYPE__
380*e992f068Schristos # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
381*e992f068Schristos # elif defined PTRDIFF_MAX
382*e992f068Schristos # ifndef ptrdiff_t
383*e992f068Schristos # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
384*e992f068Schristos # endif
385*e992f068Schristos # define YYPTRDIFF_T ptrdiff_t
386*e992f068Schristos # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
387*e992f068Schristos # else
388*e992f068Schristos # define YYPTRDIFF_T long
389*e992f068Schristos # define YYPTRDIFF_MAXIMUM LONG_MAX
390*e992f068Schristos # endif
39175fd0b74Schristos #endif
39275fd0b74Schristos
39375fd0b74Schristos #ifndef YYSIZE_T
39475fd0b74Schristos # ifdef __SIZE_TYPE__
39575fd0b74Schristos # define YYSIZE_T __SIZE_TYPE__
39675fd0b74Schristos # elif defined size_t
39775fd0b74Schristos # define YYSIZE_T size_t
398*e992f068Schristos # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
39975fd0b74Schristos # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
40075fd0b74Schristos # define YYSIZE_T size_t
40175fd0b74Schristos # else
402*e992f068Schristos # define YYSIZE_T unsigned
40375fd0b74Schristos # endif
40475fd0b74Schristos #endif
40575fd0b74Schristos
406*e992f068Schristos #define YYSIZE_MAXIMUM \
407*e992f068Schristos YY_CAST (YYPTRDIFF_T, \
408*e992f068Schristos (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
409*e992f068Schristos ? YYPTRDIFF_MAXIMUM \
410*e992f068Schristos : YY_CAST (YYSIZE_T, -1)))
411*e992f068Schristos
412*e992f068Schristos #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
413*e992f068Schristos
414*e992f068Schristos
415*e992f068Schristos /* Stored state numbers (used for stacks). */
416*e992f068Schristos typedef yytype_uint8 yy_state_t;
417*e992f068Schristos
418*e992f068Schristos /* State numbers in computations. */
419*e992f068Schristos typedef int yy_state_fast_t;
42075fd0b74Schristos
42175fd0b74Schristos #ifndef YY_
42275fd0b74Schristos # if defined YYENABLE_NLS && YYENABLE_NLS
42375fd0b74Schristos # if ENABLE_NLS
42475fd0b74Schristos # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
425ede78133Schristos # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
42675fd0b74Schristos # endif
42775fd0b74Schristos # endif
42875fd0b74Schristos # ifndef YY_
429ede78133Schristos # define YY_(Msgid) Msgid
430ede78133Schristos # endif
431ede78133Schristos #endif
432ede78133Schristos
433ede78133Schristos
434ede78133Schristos #ifndef YY_ATTRIBUTE_PURE
435*e992f068Schristos # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
436*e992f068Schristos # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
437*e992f068Schristos # else
438*e992f068Schristos # define YY_ATTRIBUTE_PURE
439*e992f068Schristos # endif
440ede78133Schristos #endif
441ede78133Schristos
442ede78133Schristos #ifndef YY_ATTRIBUTE_UNUSED
443*e992f068Schristos # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
444*e992f068Schristos # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
445ede78133Schristos # else
446*e992f068Schristos # define YY_ATTRIBUTE_UNUSED
44775fd0b74Schristos # endif
44875fd0b74Schristos #endif
44975fd0b74Schristos
45075fd0b74Schristos /* Suppress unused-variable warnings by "using" E. */
45175fd0b74Schristos #if ! defined lint || defined __GNUC__
452*e992f068Schristos # define YY_USE(E) ((void) (E))
45375fd0b74Schristos #else
454*e992f068Schristos # define YY_USE(E) /* empty */
45575fd0b74Schristos #endif
45675fd0b74Schristos
457ede78133Schristos /* Suppress an incorrect diagnostic about yylval being uninitialized. */
458*e992f068Schristos #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
459*e992f068Schristos # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
460*e992f068Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
461*e992f068Schristos _Pragma ("GCC diagnostic push") \
462*e992f068Schristos _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
463*e992f068Schristos # else
464ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
465ede78133Schristos _Pragma ("GCC diagnostic push") \
466ede78133Schristos _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
467ede78133Schristos _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
468*e992f068Schristos # endif
469ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
470ede78133Schristos _Pragma ("GCC diagnostic pop")
47175fd0b74Schristos #else
472ede78133Schristos # define YY_INITIAL_VALUE(Value) Value
47375fd0b74Schristos #endif
474ede78133Schristos #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
475ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
476ede78133Schristos # define YY_IGNORE_MAYBE_UNINITIALIZED_END
47775fd0b74Schristos #endif
478ede78133Schristos #ifndef YY_INITIAL_VALUE
479ede78133Schristos # define YY_INITIAL_VALUE(Value) /* Nothing. */
480ede78133Schristos #endif
481ede78133Schristos
482*e992f068Schristos #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
483*e992f068Schristos # define YY_IGNORE_USELESS_CAST_BEGIN \
484*e992f068Schristos _Pragma ("GCC diagnostic push") \
485*e992f068Schristos _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
486*e992f068Schristos # define YY_IGNORE_USELESS_CAST_END \
487*e992f068Schristos _Pragma ("GCC diagnostic pop")
488*e992f068Schristos #endif
489*e992f068Schristos #ifndef YY_IGNORE_USELESS_CAST_BEGIN
490*e992f068Schristos # define YY_IGNORE_USELESS_CAST_BEGIN
491*e992f068Schristos # define YY_IGNORE_USELESS_CAST_END
492*e992f068Schristos #endif
49375fd0b74Schristos
494*e992f068Schristos
495*e992f068Schristos #define YY_ASSERT(E) ((void) (0 && (E)))
496*e992f068Schristos
497*e992f068Schristos #if !defined yyoverflow
49875fd0b74Schristos
49975fd0b74Schristos /* The parser invokes alloca or malloc; define the necessary symbols. */
50075fd0b74Schristos
50175fd0b74Schristos # ifdef YYSTACK_USE_ALLOCA
50275fd0b74Schristos # if YYSTACK_USE_ALLOCA
50375fd0b74Schristos # ifdef __GNUC__
50475fd0b74Schristos # define YYSTACK_ALLOC __builtin_alloca
50575fd0b74Schristos # elif defined __BUILTIN_VA_ARG_INCR
50675fd0b74Schristos # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
50775fd0b74Schristos # elif defined _AIX
50875fd0b74Schristos # define YYSTACK_ALLOC __alloca
50975fd0b74Schristos # elif defined _MSC_VER
51075fd0b74Schristos # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
51175fd0b74Schristos # define alloca _alloca
51275fd0b74Schristos # else
51375fd0b74Schristos # define YYSTACK_ALLOC alloca
514ede78133Schristos # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
51575fd0b74Schristos # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
516ede78133Schristos /* Use EXIT_SUCCESS as a witness for stdlib.h. */
517ede78133Schristos # ifndef EXIT_SUCCESS
518ede78133Schristos # define EXIT_SUCCESS 0
51975fd0b74Schristos # endif
52075fd0b74Schristos # endif
52175fd0b74Schristos # endif
52275fd0b74Schristos # endif
52375fd0b74Schristos # endif
52475fd0b74Schristos
52575fd0b74Schristos # ifdef YYSTACK_ALLOC
526ede78133Schristos /* Pacify GCC's 'empty if-body' warning. */
527ede78133Schristos # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
52875fd0b74Schristos # ifndef YYSTACK_ALLOC_MAXIMUM
52975fd0b74Schristos /* The OS might guarantee only one guard page at the bottom of the stack,
53075fd0b74Schristos and a page size can be as small as 4096 bytes. So we cannot safely
53175fd0b74Schristos invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
53275fd0b74Schristos to allow for a few compiler-allocated temporary stack slots. */
53375fd0b74Schristos # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
53475fd0b74Schristos # endif
53575fd0b74Schristos # else
53675fd0b74Schristos # define YYSTACK_ALLOC YYMALLOC
53775fd0b74Schristos # define YYSTACK_FREE YYFREE
53875fd0b74Schristos # ifndef YYSTACK_ALLOC_MAXIMUM
53975fd0b74Schristos # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
54075fd0b74Schristos # endif
541ede78133Schristos # if (defined __cplusplus && ! defined EXIT_SUCCESS \
54275fd0b74Schristos && ! ((defined YYMALLOC || defined malloc) \
54375fd0b74Schristos && (defined YYFREE || defined free)))
54475fd0b74Schristos # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
545ede78133Schristos # ifndef EXIT_SUCCESS
546ede78133Schristos # define EXIT_SUCCESS 0
54775fd0b74Schristos # endif
54875fd0b74Schristos # endif
54975fd0b74Schristos # ifndef YYMALLOC
55075fd0b74Schristos # define YYMALLOC malloc
551ede78133Schristos # if ! defined malloc && ! defined EXIT_SUCCESS
55275fd0b74Schristos void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
55375fd0b74Schristos # endif
55475fd0b74Schristos # endif
55575fd0b74Schristos # ifndef YYFREE
55675fd0b74Schristos # define YYFREE free
557ede78133Schristos # if ! defined free && ! defined EXIT_SUCCESS
55875fd0b74Schristos void free (void *); /* INFRINGES ON USER NAME SPACE */
55975fd0b74Schristos # endif
56075fd0b74Schristos # endif
56175fd0b74Schristos # endif
562*e992f068Schristos #endif /* !defined yyoverflow */
56375fd0b74Schristos
56475fd0b74Schristos #if (! defined yyoverflow \
56575fd0b74Schristos && (! defined __cplusplus \
56675fd0b74Schristos || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
56775fd0b74Schristos
56875fd0b74Schristos /* A type that is properly aligned for any stack member. */
56975fd0b74Schristos union yyalloc
57075fd0b74Schristos {
571*e992f068Schristos yy_state_t yyss_alloc;
572ede78133Schristos YYSTYPE yyvs_alloc;
57375fd0b74Schristos };
57475fd0b74Schristos
57575fd0b74Schristos /* The size of the maximum gap between one aligned stack and the next. */
576*e992f068Schristos # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
57775fd0b74Schristos
57875fd0b74Schristos /* The size of an array large to enough to hold all stacks, each with
57975fd0b74Schristos N elements. */
58075fd0b74Schristos # define YYSTACK_BYTES(N) \
581*e992f068Schristos ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
58275fd0b74Schristos + YYSTACK_GAP_MAXIMUM)
58375fd0b74Schristos
584ede78133Schristos # define YYCOPY_NEEDED 1
58575fd0b74Schristos
58675fd0b74Schristos /* Relocate STACK from its old location to the new one. The
58775fd0b74Schristos local variables YYSIZE and YYSTACKSIZE give the old and new number of
58875fd0b74Schristos elements in the stack, and YYPTR gives the new location of the
58975fd0b74Schristos stack. Advance YYPTR to a properly aligned location for the next
59075fd0b74Schristos stack. */
591ede78133Schristos # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
59275fd0b74Schristos do \
59375fd0b74Schristos { \
594*e992f068Schristos YYPTRDIFF_T yynewbytes; \
595ede78133Schristos YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
596ede78133Schristos Stack = &yyptr->Stack_alloc; \
597*e992f068Schristos yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
598*e992f068Schristos yyptr += yynewbytes / YYSIZEOF (*yyptr); \
59975fd0b74Schristos } \
600ede78133Schristos while (0)
60175fd0b74Schristos
60275fd0b74Schristos #endif
60375fd0b74Schristos
604ede78133Schristos #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
605ede78133Schristos /* Copy COUNT objects from SRC to DST. The source and destination do
606ede78133Schristos not overlap. */
607ede78133Schristos # ifndef YYCOPY
608ede78133Schristos # if defined __GNUC__ && 1 < __GNUC__
609ede78133Schristos # define YYCOPY(Dst, Src, Count) \
610*e992f068Schristos __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
611ede78133Schristos # else
612ede78133Schristos # define YYCOPY(Dst, Src, Count) \
613ede78133Schristos do \
614ede78133Schristos { \
615*e992f068Schristos YYPTRDIFF_T yyi; \
616ede78133Schristos for (yyi = 0; yyi < (Count); yyi++) \
617ede78133Schristos (Dst)[yyi] = (Src)[yyi]; \
618ede78133Schristos } \
619ede78133Schristos while (0)
620ede78133Schristos # endif
621ede78133Schristos # endif
622ede78133Schristos #endif /* !YYCOPY_NEEDED */
623ede78133Schristos
62475fd0b74Schristos /* YYFINAL -- State number of the termination state. */
62575fd0b74Schristos #define YYFINAL 66
62675fd0b74Schristos /* YYLAST -- Last index in YYTABLE. */
62775fd0b74Schristos #define YYLAST 141
62875fd0b74Schristos
62975fd0b74Schristos /* YYNTOKENS -- Number of terminals. */
63075fd0b74Schristos #define YYNTOKENS 36
63175fd0b74Schristos /* YYNNTS -- Number of nonterminals. */
63275fd0b74Schristos #define YYNNTS 26
63375fd0b74Schristos /* YYNRULES -- Number of rules. */
63475fd0b74Schristos #define YYNRULES 98
635ede78133Schristos /* YYNSTATES -- Number of states. */
63675fd0b74Schristos #define YYNSTATES 139
63775fd0b74Schristos
638*e992f068Schristos /* YYMAXUTOK -- Last valid token kind. */
63975fd0b74Schristos #define YYMAXUTOK 286
64075fd0b74Schristos
641*e992f068Schristos
642*e992f068Schristos /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
643*e992f068Schristos as returned by yylex, with out-of-bounds checking. */
64475fd0b74Schristos #define YYTRANSLATE(YYX) \
645*e992f068Schristos (0 <= (YYX) && (YYX) <= YYMAXUTOK \
646*e992f068Schristos ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
647*e992f068Schristos : YYSYMBOL_YYUNDEF)
64875fd0b74Schristos
649ede78133Schristos /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
650*e992f068Schristos as returned by yylex. */
651*e992f068Schristos static const yytype_int8 yytranslate[] =
65275fd0b74Schristos {
65375fd0b74Schristos 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65475fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65575fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65675fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65775fd0b74Schristos 2, 2, 2, 2, 34, 2, 32, 2, 2, 2,
65875fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65975fd0b74Schristos 2, 33, 2, 2, 35, 2, 2, 2, 2, 2,
66075fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66175fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66275fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66375fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66475fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66575fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66675fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66775fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66875fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
66975fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67075fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67175fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67275fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67375fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67475fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67575fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67675fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67775fd0b74Schristos 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
67875fd0b74Schristos 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
67975fd0b74Schristos 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
68075fd0b74Schristos 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
68175fd0b74Schristos 25, 26, 27, 28, 29, 30, 31
68275fd0b74Schristos };
68375fd0b74Schristos
68475fd0b74Schristos #if YYDEBUG
685ede78133Schristos /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
68675fd0b74Schristos static const yytype_uint8 yyrline[] =
68775fd0b74Schristos {
68875fd0b74Schristos 0, 48, 48, 49, 53, 54, 55, 56, 57, 58,
68975fd0b74Schristos 59, 60, 61, 62, 63, 64, 68, 70, 74, 79,
69075fd0b74Schristos 80, 84, 86, 88, 90, 92, 94, 96, 98, 103,
69175fd0b74Schristos 104, 108, 112, 113, 117, 118, 120, 121, 125, 126,
69275fd0b74Schristos 127, 128, 129, 130, 131, 135, 136, 140, 141, 145,
69375fd0b74Schristos 146, 150, 151, 154, 159, 160, 161, 162, 163, 164,
69475fd0b74Schristos 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
69575fd0b74Schristos 175, 176, 177, 178, 179, 180, 181, 182, 185, 186,
69675fd0b74Schristos 192, 198, 204, 211, 212, 216, 217, 221, 222, 226,
69775fd0b74Schristos 227, 230, 231, 234, 236, 240, 241, 242, 243
69875fd0b74Schristos };
69975fd0b74Schristos #endif
70075fd0b74Schristos
701*e992f068Schristos /** Accessing symbol of state STATE. */
702*e992f068Schristos #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
703*e992f068Schristos
704*e992f068Schristos #if YYDEBUG || 0
705*e992f068Schristos /* The user-facing name of the symbol whose (internal) number is
706*e992f068Schristos YYSYMBOL. No bounds checking. */
707*e992f068Schristos static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
708*e992f068Schristos
70975fd0b74Schristos /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
71075fd0b74Schristos First, the terminals, then, starting at YYNTOKENS, nonterminals. */
71175fd0b74Schristos static const char *const yytname[] =
71275fd0b74Schristos {
713*e992f068Schristos "\"end of file\"", "error", "\"invalid token\"", "NAME", "LIBRARY",
714*e992f068Schristos "DESCRIPTION", "STACKSIZE", "HEAPSIZE", "CODE", "DATA", "SECTIONS",
715*e992f068Schristos "EXPORTS", "IMPORTS", "VERSIONK", "BASE", "CONSTANT", "READ", "WRITE",
716*e992f068Schristos "EXECUTE", "SHARED", "NONSHARED", "NONAME", "PRIVATE", "SINGLE",
717*e992f068Schristos "MULTIPLE", "INITINSTANCE", "INITGLOBAL", "TERMINSTANCE", "TERMGLOBAL",
718*e992f068Schristos "EQUAL", "ID", "NUMBER", "'.'", "'='", "','", "'@'", "$accept", "start",
71975fd0b74Schristos "command", "explist", "expline", "implist", "impline", "seclist",
72075fd0b74Schristos "secline", "attr_list", "opt_comma", "opt_number", "attr",
72175fd0b74Schristos "opt_CONSTANT", "opt_NONAME", "opt_DATA", "opt_PRIVATE",
72275fd0b74Schristos "keyword_as_name", "opt_name2", "opt_name", "opt_ordinal",
723ede78133Schristos "opt_import_name", "opt_equal_name", "opt_base", "option_list", "option", YY_NULLPTR
72475fd0b74Schristos };
72575fd0b74Schristos
726*e992f068Schristos static const char *
yysymbol_name(yysymbol_kind_t yysymbol)727*e992f068Schristos yysymbol_name (yysymbol_kind_t yysymbol)
72875fd0b74Schristos {
729*e992f068Schristos return yytname[yysymbol];
730*e992f068Schristos }
73175fd0b74Schristos #endif
73275fd0b74Schristos
733*e992f068Schristos #define YYPACT_NINF (-96)
734ede78133Schristos
735*e992f068Schristos #define yypact_value_is_default(Yyn) \
736*e992f068Schristos ((Yyn) == YYPACT_NINF)
737ede78133Schristos
738*e992f068Schristos #define YYTABLE_NINF (-36)
739ede78133Schristos
740*e992f068Schristos #define yytable_value_is_error(Yyn) \
741ede78133Schristos 0
742ede78133Schristos
743ede78133Schristos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
744ede78133Schristos STATE-NUM. */
745ede78133Schristos static const yytype_int8 yypact[] =
74675fd0b74Schristos {
747ede78133Schristos 38, 61, 61, -22, -1, 8, 39, 39, -7, -96,
748ede78133Schristos 23, 59, 92, -96, -96, -96, -96, -96, -96, -96,
749ede78133Schristos -96, -96, -96, -96, -96, -96, -96, -96, -96, -96,
750ede78133Schristos -96, -96, -96, -96, -96, -96, -96, -96, -96, 62,
751ede78133Schristos 61, 79, -96, 96, 96, -96, 80, 80, -96, -96,
752ede78133Schristos -96, -96, -96, -96, -96, -13, -96, -13, 39, -7,
753ede78133Schristos -96, 82, 1, 23, -96, 81, -96, -96, 61, 79,
754ede78133Schristos -96, 61, 83, -96, -96, 84, -96, -96, -96, 39,
755ede78133Schristos -13, -96, 85, -96, 5, 87, -96, 88, -96, -96,
756ede78133Schristos 89, -12, -96, -96, 61, 86, -20, 93, 91, -96,
757ede78133Schristos -96, -8, -96, 94, 103, 61, 30, -96, -96, 76,
758ede78133Schristos -96, -96, -96, -96, -96, -96, -96, 111, -96, 93,
759ede78133Schristos 93, 0, 93, -96, 118, -96, -96, 78, -96, -96,
760ede78133Schristos -96, 106, 93, 93, -96, 93, -96, -96, -96
76175fd0b74Schristos };
76275fd0b74Schristos
763ede78133Schristos /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
764ede78133Schristos Performed when YYTABLE does not specify something else to do. Zero
76575fd0b74Schristos means the default is an error. */
766*e992f068Schristos static const yytype_int8 yydefact[] =
76775fd0b74Schristos {
76875fd0b74Schristos 0, 84, 84, 0, 0, 0, 0, 0, 0, 16,
76975fd0b74Schristos 0, 0, 0, 3, 53, 54, 55, 56, 57, 58,
77075fd0b74Schristos 59, 60, 61, 62, 63, 64, 67, 68, 69, 70,
77175fd0b74Schristos 71, 65, 66, 72, 73, 74, 75, 76, 77, 78,
77275fd0b74Schristos 0, 0, 83, 92, 92, 7, 37, 37, 38, 39,
77375fd0b74Schristos 40, 41, 42, 43, 44, 10, 33, 11, 0, 12,
77475fd0b74Schristos 30, 6, 0, 13, 20, 14, 1, 2, 0, 79,
77575fd0b74Schristos 80, 0, 0, 4, 93, 0, 8, 9, 34, 0,
77675fd0b74Schristos 31, 29, 90, 17, 0, 0, 19, 0, 82, 81,
77775fd0b74Schristos 0, 5, 36, 32, 0, 86, 88, 88, 0, 15,
77875fd0b74Schristos 91, 0, 89, 0, 48, 0, 0, 27, 28, 0,
77975fd0b74Schristos 95, 96, 97, 98, 94, 85, 47, 46, 87, 88,
78075fd0b74Schristos 88, 88, 88, 45, 50, 25, 26, 0, 23, 24,
78175fd0b74Schristos 49, 52, 88, 88, 51, 88, 21, 22, 18
78275fd0b74Schristos };
78375fd0b74Schristos
78475fd0b74Schristos /* YYPGOTO[NTERM-NUM]. */
78575fd0b74Schristos static const yytype_int16 yypgoto[] =
78675fd0b74Schristos {
78775fd0b74Schristos -96, -96, 117, -96, -96, -96, 67, -96, 72, -6,
78875fd0b74Schristos 41, 90, 54, -96, -96, -96, -96, 95, -40, 132,
78975fd0b74Schristos -96, -95, -96, 97, -96, -96
79075fd0b74Schristos };
79175fd0b74Schristos
792ede78133Schristos /* YYDEFGOTO[NTERM-NUM]. */
793*e992f068Schristos static const yytype_uint8 yydefgoto[] =
794ede78133Schristos {
795*e992f068Schristos 0, 12, 13, 61, 83, 63, 64, 59, 60, 55,
796ede78133Schristos 79, 76, 56, 124, 117, 131, 135, 41, 42, 43,
797ede78133Schristos 104, 107, 95, 73, 91, 114
798ede78133Schristos };
799ede78133Schristos
800ede78133Schristos /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
801ede78133Schristos positive, shift that token. If negative, reduce the rule whose
802ede78133Schristos number is the opposite. If YYTABLE_NINF, syntax error. */
80375fd0b74Schristos static const yytype_int16 yytable[] =
80475fd0b74Schristos {
80575fd0b74Schristos 70, 57, 108, -35, -35, -35, -35, -35, 45, 105,
80675fd0b74Schristos -35, -35, 106, -35, -35, -35, -35, 110, 111, 112,
80775fd0b74Schristos 113, 78, 78, 58, 125, 126, 128, 129, 88, 105,
80875fd0b74Schristos 46, 89, 127, 84, 85, 96, 97, 136, 137, 47,
80975fd0b74Schristos 138, 1, 2, 3, 4, 5, 6, 7, 8, 9,
81075fd0b74Schristos 10, 11, 80, 62, 102, 48, 49, 50, 51, 52,
81175fd0b74Schristos 119, 120, 53, 54, 14, 118, 15, 16, 17, 18,
81275fd0b74Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
81375fd0b74Schristos 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
81475fd0b74Schristos 65, 39, 66, 40, 68, 1, 2, 3, 4, 5,
81575fd0b74Schristos 6, 7, 8, 9, 10, 11, 121, 122, 132, 133,
81675fd0b74Schristos 72, 71, 82, 87, 75, 92, 90, 98, 94, 99,
81775fd0b74Schristos 100, 103, 105, 109, 116, 115, 123, 130, 134, 67,
81875fd0b74Schristos 86, 81, 101, 93, 44, 69, 0, 77, 0, 0,
81975fd0b74Schristos 0, 74
82075fd0b74Schristos };
82175fd0b74Schristos
82275fd0b74Schristos static const yytype_int16 yycheck[] =
82375fd0b74Schristos {
82475fd0b74Schristos 40, 7, 97, 16, 17, 18, 19, 20, 30, 29,
82575fd0b74Schristos 23, 24, 32, 25, 26, 27, 28, 25, 26, 27,
82675fd0b74Schristos 28, 34, 34, 30, 119, 120, 121, 122, 68, 29,
82775fd0b74Schristos 31, 71, 32, 32, 33, 30, 31, 132, 133, 31,
82875fd0b74Schristos 135, 3, 4, 5, 6, 7, 8, 9, 10, 11,
82975fd0b74Schristos 12, 13, 58, 30, 94, 16, 17, 18, 19, 20,
83075fd0b74Schristos 30, 31, 23, 24, 3, 105, 5, 6, 7, 8,
83175fd0b74Schristos 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
83275fd0b74Schristos 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
83375fd0b74Schristos 31, 30, 0, 32, 32, 3, 4, 5, 6, 7,
83475fd0b74Schristos 8, 9, 10, 11, 12, 13, 30, 31, 30, 31,
83575fd0b74Schristos 14, 32, 30, 32, 34, 31, 33, 30, 33, 31,
83675fd0b74Schristos 31, 35, 29, 32, 21, 31, 15, 9, 22, 12,
83775fd0b74Schristos 63, 59, 91, 79, 2, 40, -1, 47, -1, -1,
83875fd0b74Schristos -1, 44
83975fd0b74Schristos };
84075fd0b74Schristos
841*e992f068Schristos /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
842*e992f068Schristos state STATE-NUM. */
843*e992f068Schristos static const yytype_int8 yystos[] =
84475fd0b74Schristos {
84575fd0b74Schristos 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
84675fd0b74Schristos 12, 13, 37, 38, 3, 5, 6, 7, 8, 9,
84775fd0b74Schristos 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
84875fd0b74Schristos 20, 21, 22, 23, 24, 25, 26, 27, 28, 30,
84975fd0b74Schristos 32, 53, 54, 55, 55, 30, 31, 31, 16, 17,
85075fd0b74Schristos 18, 19, 20, 23, 24, 45, 48, 45, 30, 43,
85175fd0b74Schristos 44, 39, 30, 41, 42, 31, 0, 38, 32, 53,
85275fd0b74Schristos 54, 32, 14, 59, 59, 34, 47, 47, 34, 46,
85375fd0b74Schristos 45, 44, 30, 40, 32, 33, 42, 32, 54, 54,
85475fd0b74Schristos 33, 60, 31, 48, 33, 58, 30, 31, 30, 31,
85575fd0b74Schristos 31, 46, 54, 35, 56, 29, 32, 57, 57, 32,
85675fd0b74Schristos 25, 26, 27, 28, 61, 31, 21, 50, 54, 30,
85775fd0b74Schristos 31, 30, 31, 15, 49, 57, 57, 32, 57, 57,
85875fd0b74Schristos 9, 51, 30, 31, 22, 52, 57, 57, 57
85975fd0b74Schristos };
86075fd0b74Schristos
861*e992f068Schristos /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
862*e992f068Schristos static const yytype_int8 yyr1[] =
863ede78133Schristos {
864ede78133Schristos 0, 36, 37, 37, 38, 38, 38, 38, 38, 38,
865ede78133Schristos 38, 38, 38, 38, 38, 38, 39, 39, 40, 41,
866ede78133Schristos 41, 42, 42, 42, 42, 42, 42, 42, 42, 43,
867ede78133Schristos 43, 44, 45, 45, 46, 46, 47, 47, 48, 48,
868ede78133Schristos 48, 48, 48, 48, 48, 49, 49, 50, 50, 51,
869ede78133Schristos 51, 52, 52, 53, 53, 53, 53, 53, 53, 53,
870ede78133Schristos 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
871ede78133Schristos 53, 53, 53, 53, 53, 53, 53, 53, 54, 54,
872ede78133Schristos 54, 54, 54, 55, 55, 56, 56, 57, 57, 58,
873ede78133Schristos 58, 59, 59, 60, 60, 61, 61, 61, 61
874ede78133Schristos };
875ede78133Schristos
876*e992f068Schristos /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
877*e992f068Schristos static const yytype_int8 yyr2[] =
878ede78133Schristos {
879ede78133Schristos 0, 2, 2, 1, 3, 4, 2, 2, 3, 3,
880ede78133Schristos 2, 2, 2, 2, 2, 4, 0, 2, 8, 2,
881ede78133Schristos 1, 8, 8, 6, 6, 6, 6, 4, 4, 2,
882ede78133Schristos 1, 2, 3, 1, 1, 0, 2, 0, 1, 1,
883ede78133Schristos 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
884ede78133Schristos 0, 1, 0, 1, 1, 1, 1, 1, 1, 1,
885ede78133Schristos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
886ede78133Schristos 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
887ede78133Schristos 2, 3, 3, 1, 0, 2, 0, 2, 0, 2,
888ede78133Schristos 0, 3, 0, 0, 3, 1, 1, 1, 1
889ede78133Schristos };
890ede78133Schristos
891ede78133Schristos
892*e992f068Schristos enum { YYENOMEM = -2 };
893*e992f068Schristos
89475fd0b74Schristos #define yyerrok (yyerrstatus = 0)
89575fd0b74Schristos #define yyclearin (yychar = YYEMPTY)
89675fd0b74Schristos
89775fd0b74Schristos #define YYACCEPT goto yyacceptlab
89875fd0b74Schristos #define YYABORT goto yyabortlab
89975fd0b74Schristos #define YYERROR goto yyerrorlab
900*e992f068Schristos #define YYNOMEM goto yyexhaustedlab
90175fd0b74Schristos
90275fd0b74Schristos
90375fd0b74Schristos #define YYRECOVERING() (!!yyerrstatus)
90475fd0b74Schristos
90575fd0b74Schristos #define YYBACKUP(Token, Value) \
90675fd0b74Schristos do \
907ede78133Schristos if (yychar == YYEMPTY) \
90875fd0b74Schristos { \
90975fd0b74Schristos yychar = (Token); \
91075fd0b74Schristos yylval = (Value); \
911ede78133Schristos YYPOPSTACK (yylen); \
912ede78133Schristos yystate = *yyssp; \
91375fd0b74Schristos goto yybackup; \
91475fd0b74Schristos } \
91575fd0b74Schristos else \
91675fd0b74Schristos { \
91775fd0b74Schristos yyerror (YY_("syntax error: cannot back up")); \
91875fd0b74Schristos YYERROR; \
91975fd0b74Schristos } \
920ede78133Schristos while (0)
92175fd0b74Schristos
922*e992f068Schristos /* Backward compatibility with an undocumented macro.
923*e992f068Schristos Use YYerror or YYUNDEF. */
924*e992f068Schristos #define YYERRCODE YYUNDEF
92575fd0b74Schristos
92675fd0b74Schristos
92775fd0b74Schristos /* Enable debugging if requested. */
92875fd0b74Schristos #if YYDEBUG
92975fd0b74Schristos
93075fd0b74Schristos # ifndef YYFPRINTF
93175fd0b74Schristos # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
93275fd0b74Schristos # define YYFPRINTF fprintf
93375fd0b74Schristos # endif
93475fd0b74Schristos
93575fd0b74Schristos # define YYDPRINTF(Args) \
93675fd0b74Schristos do { \
93775fd0b74Schristos if (yydebug) \
93875fd0b74Schristos YYFPRINTF Args; \
939ede78133Schristos } while (0)
940ede78133Schristos
941ede78133Schristos
94275fd0b74Schristos
943*e992f068Schristos
944*e992f068Schristos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
94575fd0b74Schristos do { \
94675fd0b74Schristos if (yydebug) \
94775fd0b74Schristos { \
94875fd0b74Schristos YYFPRINTF (stderr, "%s ", Title); \
94975fd0b74Schristos yy_symbol_print (stderr, \
950*e992f068Schristos Kind, Value); \
95175fd0b74Schristos YYFPRINTF (stderr, "\n"); \
95275fd0b74Schristos } \
953ede78133Schristos } while (0)
95475fd0b74Schristos
95575fd0b74Schristos
956*e992f068Schristos /*-----------------------------------.
957*e992f068Schristos | Print this symbol's value on YYO. |
958*e992f068Schristos `-----------------------------------*/
95975fd0b74Schristos
96075fd0b74Schristos static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep)961*e992f068Schristos yy_symbol_value_print (FILE *yyo,
962*e992f068Schristos yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
96375fd0b74Schristos {
964*e992f068Schristos FILE *yyoutput = yyo;
965*e992f068Schristos YY_USE (yyoutput);
96675fd0b74Schristos if (!yyvaluep)
96775fd0b74Schristos return;
968*e992f068Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
969*e992f068Schristos YY_USE (yykind);
970*e992f068Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
97175fd0b74Schristos }
97275fd0b74Schristos
97375fd0b74Schristos
974*e992f068Schristos /*---------------------------.
975*e992f068Schristos | Print this symbol on YYO. |
976*e992f068Schristos `---------------------------*/
97775fd0b74Schristos
97875fd0b74Schristos static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep)979*e992f068Schristos yy_symbol_print (FILE *yyo,
980*e992f068Schristos yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
98175fd0b74Schristos {
982*e992f068Schristos YYFPRINTF (yyo, "%s %s (",
983*e992f068Schristos yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
98475fd0b74Schristos
985*e992f068Schristos yy_symbol_value_print (yyo, yykind, yyvaluep);
986*e992f068Schristos YYFPRINTF (yyo, ")");
98775fd0b74Schristos }
98875fd0b74Schristos
98975fd0b74Schristos /*------------------------------------------------------------------.
99075fd0b74Schristos | yy_stack_print -- Print the state stack from its BOTTOM up to its |
99175fd0b74Schristos | TOP (included). |
99275fd0b74Schristos `------------------------------------------------------------------*/
99375fd0b74Schristos
99475fd0b74Schristos static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)995*e992f068Schristos yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
99675fd0b74Schristos {
99775fd0b74Schristos YYFPRINTF (stderr, "Stack now");
998ede78133Schristos for (; yybottom <= yytop; yybottom++)
999ede78133Schristos {
1000ede78133Schristos int yybot = *yybottom;
1001ede78133Schristos YYFPRINTF (stderr, " %d", yybot);
1002ede78133Schristos }
100375fd0b74Schristos YYFPRINTF (stderr, "\n");
100475fd0b74Schristos }
100575fd0b74Schristos
100675fd0b74Schristos # define YY_STACK_PRINT(Bottom, Top) \
100775fd0b74Schristos do { \
100875fd0b74Schristos if (yydebug) \
100975fd0b74Schristos yy_stack_print ((Bottom), (Top)); \
1010ede78133Schristos } while (0)
101175fd0b74Schristos
101275fd0b74Schristos
101375fd0b74Schristos /*------------------------------------------------.
101475fd0b74Schristos | Report that the YYRULE is going to be reduced. |
101575fd0b74Schristos `------------------------------------------------*/
101675fd0b74Schristos
101775fd0b74Schristos static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,int yyrule)1018*e992f068Schristos yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
1019*e992f068Schristos int yyrule)
102075fd0b74Schristos {
1021*e992f068Schristos int yylno = yyrline[yyrule];
102275fd0b74Schristos int yynrhs = yyr2[yyrule];
102375fd0b74Schristos int yyi;
1024*e992f068Schristos YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
102575fd0b74Schristos yyrule - 1, yylno);
102675fd0b74Schristos /* The symbols being reduced. */
102775fd0b74Schristos for (yyi = 0; yyi < yynrhs; yyi++)
102875fd0b74Schristos {
1029ede78133Schristos YYFPRINTF (stderr, " $%d = ", yyi + 1);
1030ede78133Schristos yy_symbol_print (stderr,
1031*e992f068Schristos YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
1032*e992f068Schristos &yyvsp[(yyi + 1) - (yynrhs)]);
1033ede78133Schristos YYFPRINTF (stderr, "\n");
103475fd0b74Schristos }
103575fd0b74Schristos }
103675fd0b74Schristos
103775fd0b74Schristos # define YY_REDUCE_PRINT(Rule) \
103875fd0b74Schristos do { \
103975fd0b74Schristos if (yydebug) \
1040ede78133Schristos yy_reduce_print (yyssp, yyvsp, Rule); \
1041ede78133Schristos } while (0)
104275fd0b74Schristos
104375fd0b74Schristos /* Nonzero means print parse trace. It is left uninitialized so that
104475fd0b74Schristos multiple parsers can coexist. */
104575fd0b74Schristos int yydebug;
104675fd0b74Schristos #else /* !YYDEBUG */
1047*e992f068Schristos # define YYDPRINTF(Args) ((void) 0)
1048*e992f068Schristos # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
104975fd0b74Schristos # define YY_STACK_PRINT(Bottom, Top)
105075fd0b74Schristos # define YY_REDUCE_PRINT(Rule)
105175fd0b74Schristos #endif /* !YYDEBUG */
105275fd0b74Schristos
105375fd0b74Schristos
105475fd0b74Schristos /* YYINITDEPTH -- initial size of the parser's stacks. */
105575fd0b74Schristos #ifndef YYINITDEPTH
105675fd0b74Schristos # define YYINITDEPTH 200
105775fd0b74Schristos #endif
105875fd0b74Schristos
105975fd0b74Schristos /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
106075fd0b74Schristos if the built-in stack extension method is used).
106175fd0b74Schristos
106275fd0b74Schristos Do not make this value too large; the results are undefined if
106375fd0b74Schristos YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
106475fd0b74Schristos evaluated with infinite-precision integer arithmetic. */
106575fd0b74Schristos
106675fd0b74Schristos #ifndef YYMAXDEPTH
106775fd0b74Schristos # define YYMAXDEPTH 10000
106875fd0b74Schristos #endif
106975fd0b74Schristos
107075fd0b74Schristos
107175fd0b74Schristos
107275fd0b74Schristos
107375fd0b74Schristos
107475fd0b74Schristos
107575fd0b74Schristos /*-----------------------------------------------.
107675fd0b74Schristos | Release the memory associated to this symbol. |
107775fd0b74Schristos `-----------------------------------------------*/
107875fd0b74Schristos
107975fd0b74Schristos static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep)1080*e992f068Schristos yydestruct (const char *yymsg,
1081*e992f068Schristos yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
108275fd0b74Schristos {
1083*e992f068Schristos YY_USE (yyvaluep);
108475fd0b74Schristos if (!yymsg)
108575fd0b74Schristos yymsg = "Deleting";
1086*e992f068Schristos YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
108775fd0b74Schristos
1088ede78133Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1089*e992f068Schristos YY_USE (yykind);
1090ede78133Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
109175fd0b74Schristos }
109275fd0b74Schristos
109375fd0b74Schristos
1094*e992f068Schristos /* Lookahead token kind. */
109575fd0b74Schristos int yychar;
109675fd0b74Schristos
1097ede78133Schristos /* The semantic value of the lookahead symbol. */
109875fd0b74Schristos YYSTYPE yylval;
109975fd0b74Schristos /* Number of syntax errors so far. */
110075fd0b74Schristos int yynerrs;
110175fd0b74Schristos
110275fd0b74Schristos
1103*e992f068Schristos
1104*e992f068Schristos
110575fd0b74Schristos /*----------.
110675fd0b74Schristos | yyparse. |
110775fd0b74Schristos `----------*/
110875fd0b74Schristos
110975fd0b74Schristos int
yyparse(void)111075fd0b74Schristos yyparse (void)
111175fd0b74Schristos {
1112*e992f068Schristos yy_state_fast_t yystate = 0;
111375fd0b74Schristos /* Number of tokens to shift before error messages enabled. */
1114*e992f068Schristos int yyerrstatus = 0;
1115ede78133Schristos
1116*e992f068Schristos /* Refer to the stacks through separate pointers, to allow yyoverflow
1117ede78133Schristos to reallocate them elsewhere. */
1118ede78133Schristos
1119*e992f068Schristos /* Their size. */
1120*e992f068Schristos YYPTRDIFF_T yystacksize = YYINITDEPTH;
1121ede78133Schristos
1122*e992f068Schristos /* The state stack: array, bottom, top. */
1123*e992f068Schristos yy_state_t yyssa[YYINITDEPTH];
1124*e992f068Schristos yy_state_t *yyss = yyssa;
1125*e992f068Schristos yy_state_t *yyssp = yyss;
1126*e992f068Schristos
1127*e992f068Schristos /* The semantic value stack: array, bottom, top. */
1128ede78133Schristos YYSTYPE yyvsa[YYINITDEPTH];
1129*e992f068Schristos YYSTYPE *yyvs = yyvsa;
1130*e992f068Schristos YYSTYPE *yyvsp = yyvs;
1131ede78133Schristos
1132ede78133Schristos int yyn;
1133*e992f068Schristos /* The return value of yyparse. */
1134ede78133Schristos int yyresult;
1135*e992f068Schristos /* Lookahead symbol kind. */
1136*e992f068Schristos yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1137ede78133Schristos /* The variables used to return semantic value and location from the
1138ede78133Schristos action routines. */
1139ede78133Schristos YYSTYPE yyval;
1140ede78133Schristos
1141*e992f068Schristos
114275fd0b74Schristos
114375fd0b74Schristos #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
114475fd0b74Schristos
114575fd0b74Schristos /* The number of symbols on the RHS of the reduced rule.
114675fd0b74Schristos Keep to zero when no symbol should be popped. */
114775fd0b74Schristos int yylen = 0;
114875fd0b74Schristos
114975fd0b74Schristos YYDPRINTF ((stderr, "Starting parse\n"));
115075fd0b74Schristos
115175fd0b74Schristos yychar = YYEMPTY; /* Cause a token to be read. */
1152*e992f068Schristos
115375fd0b74Schristos goto yysetstate;
115475fd0b74Schristos
1155*e992f068Schristos
115675fd0b74Schristos /*------------------------------------------------------------.
1157*e992f068Schristos | yynewstate -- push a new state, which is found in yystate. |
115875fd0b74Schristos `------------------------------------------------------------*/
115975fd0b74Schristos yynewstate:
116075fd0b74Schristos /* In all cases, when you get here, the value and location stacks
116175fd0b74Schristos have just been pushed. So pushing a state here evens the stacks. */
116275fd0b74Schristos yyssp++;
116375fd0b74Schristos
1164*e992f068Schristos
1165*e992f068Schristos /*--------------------------------------------------------------------.
1166*e992f068Schristos | yysetstate -- set current state (the top of the stack) to yystate. |
1167*e992f068Schristos `--------------------------------------------------------------------*/
116875fd0b74Schristos yysetstate:
1169*e992f068Schristos YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1170*e992f068Schristos YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1171*e992f068Schristos YY_IGNORE_USELESS_CAST_BEGIN
1172*e992f068Schristos *yyssp = YY_CAST (yy_state_t, yystate);
1173*e992f068Schristos YY_IGNORE_USELESS_CAST_END
1174*e992f068Schristos YY_STACK_PRINT (yyss, yyssp);
117575fd0b74Schristos
117675fd0b74Schristos if (yyss + yystacksize - 1 <= yyssp)
1177*e992f068Schristos #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1178*e992f068Schristos YYNOMEM;
1179*e992f068Schristos #else
118075fd0b74Schristos {
118175fd0b74Schristos /* Get the current used size of the three stacks, in elements. */
1182*e992f068Schristos YYPTRDIFF_T yysize = yyssp - yyss + 1;
118375fd0b74Schristos
1184*e992f068Schristos # if defined yyoverflow
118575fd0b74Schristos {
118675fd0b74Schristos /* Give user a chance to reallocate the stack. Use copies of
118775fd0b74Schristos these so that the &'s don't force the real ones into
118875fd0b74Schristos memory. */
1189*e992f068Schristos yy_state_t *yyss1 = yyss;
119075fd0b74Schristos YYSTYPE *yyvs1 = yyvs;
119175fd0b74Schristos
119275fd0b74Schristos /* Each stack pointer address is followed by the size of the
119375fd0b74Schristos data in use in that stack, in bytes. This used to be a
119475fd0b74Schristos conditional around just the two extra args, but that might
119575fd0b74Schristos be undefined if yyoverflow is a macro. */
119675fd0b74Schristos yyoverflow (YY_("memory exhausted"),
1197*e992f068Schristos &yyss1, yysize * YYSIZEOF (*yyssp),
1198*e992f068Schristos &yyvs1, yysize * YYSIZEOF (*yyvsp),
119975fd0b74Schristos &yystacksize);
120075fd0b74Schristos yyss = yyss1;
120175fd0b74Schristos yyvs = yyvs1;
120275fd0b74Schristos }
1203*e992f068Schristos # else /* defined YYSTACK_RELOCATE */
120475fd0b74Schristos /* Extend the stack our own way. */
120575fd0b74Schristos if (YYMAXDEPTH <= yystacksize)
1206*e992f068Schristos YYNOMEM;
120775fd0b74Schristos yystacksize *= 2;
120875fd0b74Schristos if (YYMAXDEPTH < yystacksize)
120975fd0b74Schristos yystacksize = YYMAXDEPTH;
121075fd0b74Schristos
121175fd0b74Schristos {
1212*e992f068Schristos yy_state_t *yyss1 = yyss;
121375fd0b74Schristos union yyalloc *yyptr =
1214*e992f068Schristos YY_CAST (union yyalloc *,
1215*e992f068Schristos YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
121675fd0b74Schristos if (! yyptr)
1217*e992f068Schristos YYNOMEM;
1218ede78133Schristos YYSTACK_RELOCATE (yyss_alloc, yyss);
1219ede78133Schristos YYSTACK_RELOCATE (yyvs_alloc, yyvs);
122075fd0b74Schristos # undef YYSTACK_RELOCATE
122175fd0b74Schristos if (yyss1 != yyssa)
122275fd0b74Schristos YYSTACK_FREE (yyss1);
122375fd0b74Schristos }
122475fd0b74Schristos # endif
122575fd0b74Schristos
122675fd0b74Schristos yyssp = yyss + yysize - 1;
122775fd0b74Schristos yyvsp = yyvs + yysize - 1;
122875fd0b74Schristos
1229*e992f068Schristos YY_IGNORE_USELESS_CAST_BEGIN
1230*e992f068Schristos YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1231*e992f068Schristos YY_CAST (long, yystacksize)));
1232*e992f068Schristos YY_IGNORE_USELESS_CAST_END
123375fd0b74Schristos
123475fd0b74Schristos if (yyss + yystacksize - 1 <= yyssp)
123575fd0b74Schristos YYABORT;
123675fd0b74Schristos }
1237*e992f068Schristos #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
123875fd0b74Schristos
123975fd0b74Schristos
1240ede78133Schristos if (yystate == YYFINAL)
1241ede78133Schristos YYACCEPT;
1242ede78133Schristos
124375fd0b74Schristos goto yybackup;
124475fd0b74Schristos
1245*e992f068Schristos
124675fd0b74Schristos /*-----------.
124775fd0b74Schristos | yybackup. |
124875fd0b74Schristos `-----------*/
124975fd0b74Schristos yybackup:
125075fd0b74Schristos /* Do appropriate processing given the current state. Read a
1251ede78133Schristos lookahead token if we need one and don't already have one. */
125275fd0b74Schristos
1253ede78133Schristos /* First try to decide what to do without reference to lookahead token. */
125475fd0b74Schristos yyn = yypact[yystate];
1255ede78133Schristos if (yypact_value_is_default (yyn))
125675fd0b74Schristos goto yydefault;
125775fd0b74Schristos
1258ede78133Schristos /* Not known => get a lookahead token if don't already have one. */
125975fd0b74Schristos
1260*e992f068Schristos /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
126175fd0b74Schristos if (yychar == YYEMPTY)
126275fd0b74Schristos {
1263*e992f068Schristos YYDPRINTF ((stderr, "Reading a token\n"));
1264ede78133Schristos yychar = yylex ();
126575fd0b74Schristos }
126675fd0b74Schristos
126775fd0b74Schristos if (yychar <= YYEOF)
126875fd0b74Schristos {
1269*e992f068Schristos yychar = YYEOF;
1270*e992f068Schristos yytoken = YYSYMBOL_YYEOF;
127175fd0b74Schristos YYDPRINTF ((stderr, "Now at end of input.\n"));
127275fd0b74Schristos }
1273*e992f068Schristos else if (yychar == YYerror)
1274*e992f068Schristos {
1275*e992f068Schristos /* The scanner already issued an error message, process directly
1276*e992f068Schristos to error recovery. But do not keep the error token as
1277*e992f068Schristos lookahead, it is too special and may lead us to an endless
1278*e992f068Schristos loop in error recovery. */
1279*e992f068Schristos yychar = YYUNDEF;
1280*e992f068Schristos yytoken = YYSYMBOL_YYerror;
1281*e992f068Schristos goto yyerrlab1;
1282*e992f068Schristos }
128375fd0b74Schristos else
128475fd0b74Schristos {
128575fd0b74Schristos yytoken = YYTRANSLATE (yychar);
128675fd0b74Schristos YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
128775fd0b74Schristos }
128875fd0b74Schristos
128975fd0b74Schristos /* If the proper action on seeing token YYTOKEN is to reduce or to
129075fd0b74Schristos detect an error, take that action. */
129175fd0b74Schristos yyn += yytoken;
129275fd0b74Schristos if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
129375fd0b74Schristos goto yydefault;
129475fd0b74Schristos yyn = yytable[yyn];
129575fd0b74Schristos if (yyn <= 0)
129675fd0b74Schristos {
1297ede78133Schristos if (yytable_value_is_error (yyn))
129875fd0b74Schristos goto yyerrlab;
129975fd0b74Schristos yyn = -yyn;
130075fd0b74Schristos goto yyreduce;
130175fd0b74Schristos }
130275fd0b74Schristos
130375fd0b74Schristos /* Count tokens shifted since error; after three, turn off error
130475fd0b74Schristos status. */
130575fd0b74Schristos if (yyerrstatus)
130675fd0b74Schristos yyerrstatus--;
130775fd0b74Schristos
1308ede78133Schristos /* Shift the lookahead token. */
130975fd0b74Schristos YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
131075fd0b74Schristos yystate = yyn;
1311ede78133Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
131275fd0b74Schristos *++yyvsp = yylval;
1313ede78133Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
131475fd0b74Schristos
1315*e992f068Schristos /* Discard the shifted token. */
1316*e992f068Schristos yychar = YYEMPTY;
131775fd0b74Schristos goto yynewstate;
131875fd0b74Schristos
131975fd0b74Schristos
132075fd0b74Schristos /*-----------------------------------------------------------.
132175fd0b74Schristos | yydefault -- do the default action for the current state. |
132275fd0b74Schristos `-----------------------------------------------------------*/
132375fd0b74Schristos yydefault:
132475fd0b74Schristos yyn = yydefact[yystate];
132575fd0b74Schristos if (yyn == 0)
132675fd0b74Schristos goto yyerrlab;
132775fd0b74Schristos goto yyreduce;
132875fd0b74Schristos
132975fd0b74Schristos
133075fd0b74Schristos /*-----------------------------.
1331*e992f068Schristos | yyreduce -- do a reduction. |
133275fd0b74Schristos `-----------------------------*/
133375fd0b74Schristos yyreduce:
133475fd0b74Schristos /* yyn is the number of a rule to reduce with. */
133575fd0b74Schristos yylen = yyr2[yyn];
133675fd0b74Schristos
133775fd0b74Schristos /* If YYLEN is nonzero, implement the default value of the action:
1338ede78133Schristos '$$ = $1'.
133975fd0b74Schristos
134075fd0b74Schristos Otherwise, the following line sets YYVAL to garbage.
134175fd0b74Schristos This behavior is undocumented and Bison
134275fd0b74Schristos users should not rely upon it. Assigning to YYVAL
134375fd0b74Schristos unconditionally makes the parser a bit smaller, and it avoids a
134475fd0b74Schristos GCC warning that YYVAL may be used uninitialized. */
134575fd0b74Schristos yyval = yyvsp[1-yylen];
134675fd0b74Schristos
134775fd0b74Schristos
134875fd0b74Schristos YY_REDUCE_PRINT (yyn);
134975fd0b74Schristos switch (yyn)
135075fd0b74Schristos {
1351*e992f068Schristos case 4: /* command: NAME opt_name opt_base */
1352*e992f068Schristos #line 53 "defparse.y"
1353ede78133Schristos { def_name ((yyvsp[-1].id), (yyvsp[0].number)); }
1354*e992f068Schristos #line 1355 "defparse.c"
135575fd0b74Schristos break;
135675fd0b74Schristos
1357*e992f068Schristos case 5: /* command: LIBRARY opt_name opt_base option_list */
1358*e992f068Schristos #line 54 "defparse.y"
1359ede78133Schristos { def_library ((yyvsp[-2].id), (yyvsp[-1].number)); }
1360*e992f068Schristos #line 1361 "defparse.c"
136175fd0b74Schristos break;
136275fd0b74Schristos
1363*e992f068Schristos case 7: /* command: DESCRIPTION ID */
1364*e992f068Schristos #line 56 "defparse.y"
1365ede78133Schristos { def_description ((yyvsp[0].id));}
1366*e992f068Schristos #line 1367 "defparse.c"
136775fd0b74Schristos break;
136875fd0b74Schristos
1369*e992f068Schristos case 8: /* command: STACKSIZE NUMBER opt_number */
1370*e992f068Schristos #line 57 "defparse.y"
1371ede78133Schristos { def_stacksize ((yyvsp[-1].number), (yyvsp[0].number));}
1372*e992f068Schristos #line 1373 "defparse.c"
137375fd0b74Schristos break;
137475fd0b74Schristos
1375*e992f068Schristos case 9: /* command: HEAPSIZE NUMBER opt_number */
1376*e992f068Schristos #line 58 "defparse.y"
1377ede78133Schristos { def_heapsize ((yyvsp[-1].number), (yyvsp[0].number));}
1378*e992f068Schristos #line 1379 "defparse.c"
137975fd0b74Schristos break;
138075fd0b74Schristos
1381*e992f068Schristos case 10: /* command: CODE attr_list */
1382*e992f068Schristos #line 59 "defparse.y"
1383ede78133Schristos { def_code ((yyvsp[0].number));}
1384*e992f068Schristos #line 1385 "defparse.c"
138575fd0b74Schristos break;
138675fd0b74Schristos
1387*e992f068Schristos case 11: /* command: DATA attr_list */
1388*e992f068Schristos #line 60 "defparse.y"
1389ede78133Schristos { def_data ((yyvsp[0].number));}
1390*e992f068Schristos #line 1391 "defparse.c"
139175fd0b74Schristos break;
139275fd0b74Schristos
1393*e992f068Schristos case 14: /* command: VERSIONK NUMBER */
1394*e992f068Schristos #line 63 "defparse.y"
1395ede78133Schristos { def_version ((yyvsp[0].number),0);}
1396*e992f068Schristos #line 1397 "defparse.c"
139775fd0b74Schristos break;
139875fd0b74Schristos
1399*e992f068Schristos case 15: /* command: VERSIONK NUMBER '.' NUMBER */
1400*e992f068Schristos #line 64 "defparse.y"
1401ede78133Schristos { def_version ((yyvsp[-2].number),(yyvsp[0].number));}
1402*e992f068Schristos #line 1403 "defparse.c"
140375fd0b74Schristos break;
140475fd0b74Schristos
1405*e992f068Schristos case 18: /* expline: ID opt_equal_name opt_ordinal opt_NONAME opt_CONSTANT opt_DATA opt_PRIVATE opt_import_name */
1406*e992f068Schristos #line 76 "defparse.y"
1407ede78133Schristos { def_exports ((yyvsp[-7].id), (yyvsp[-6].id), (yyvsp[-5].number), (yyvsp[-4].number), (yyvsp[-3].number), (yyvsp[-2].number), (yyvsp[-1].number), (yyvsp[0].id));}
1408*e992f068Schristos #line 1409 "defparse.c"
140975fd0b74Schristos break;
141075fd0b74Schristos
1411*e992f068Schristos case 21: /* impline: ID '=' ID '.' ID '.' ID opt_import_name */
1412*e992f068Schristos #line 85 "defparse.y"
1413ede78133Schristos { def_import ((yyvsp[-7].id),(yyvsp[-5].id),(yyvsp[-3].id),(yyvsp[-1].id), 0, (yyvsp[0].id)); }
1414*e992f068Schristos #line 1415 "defparse.c"
141575fd0b74Schristos break;
141675fd0b74Schristos
1417*e992f068Schristos case 22: /* impline: ID '=' ID '.' ID '.' NUMBER opt_import_name */
1418*e992f068Schristos #line 87 "defparse.y"
1419ede78133Schristos { def_import ((yyvsp[-7].id),(yyvsp[-5].id),(yyvsp[-3].id), 0,(yyvsp[-1].number), (yyvsp[0].id)); }
1420*e992f068Schristos #line 1421 "defparse.c"
142175fd0b74Schristos break;
142275fd0b74Schristos
1423*e992f068Schristos case 23: /* impline: ID '=' ID '.' ID opt_import_name */
1424*e992f068Schristos #line 89 "defparse.y"
1425ede78133Schristos { def_import ((yyvsp[-5].id),(yyvsp[-3].id), 0,(yyvsp[-1].id), 0, (yyvsp[0].id)); }
1426*e992f068Schristos #line 1427 "defparse.c"
142775fd0b74Schristos break;
142875fd0b74Schristos
1429*e992f068Schristos case 24: /* impline: ID '=' ID '.' NUMBER opt_import_name */
1430*e992f068Schristos #line 91 "defparse.y"
1431ede78133Schristos { def_import ((yyvsp[-5].id),(yyvsp[-3].id), 0, 0,(yyvsp[-1].number), (yyvsp[0].id)); }
1432*e992f068Schristos #line 1433 "defparse.c"
143375fd0b74Schristos break;
143475fd0b74Schristos
1435*e992f068Schristos case 25: /* impline: ID '.' ID '.' ID opt_import_name */
1436*e992f068Schristos #line 93 "defparse.y"
1437ede78133Schristos { def_import ( 0,(yyvsp[-5].id),(yyvsp[-3].id),(yyvsp[-1].id), 0, (yyvsp[0].id)); }
1438*e992f068Schristos #line 1439 "defparse.c"
143975fd0b74Schristos break;
144075fd0b74Schristos
1441*e992f068Schristos case 26: /* impline: ID '.' ID '.' NUMBER opt_import_name */
1442*e992f068Schristos #line 95 "defparse.y"
1443ede78133Schristos { def_import ( 0,(yyvsp[-5].id),(yyvsp[-3].id), 0,(yyvsp[-1].number), (yyvsp[0].id)); }
1444*e992f068Schristos #line 1445 "defparse.c"
144575fd0b74Schristos break;
144675fd0b74Schristos
1447*e992f068Schristos case 27: /* impline: ID '.' ID opt_import_name */
1448*e992f068Schristos #line 97 "defparse.y"
1449ede78133Schristos { def_import ( 0,(yyvsp[-3].id), 0,(yyvsp[-1].id), 0, (yyvsp[0].id)); }
1450*e992f068Schristos #line 1451 "defparse.c"
145175fd0b74Schristos break;
145275fd0b74Schristos
1453*e992f068Schristos case 28: /* impline: ID '.' NUMBER opt_import_name */
1454*e992f068Schristos #line 99 "defparse.y"
1455ede78133Schristos { def_import ( 0,(yyvsp[-3].id), 0, 0,(yyvsp[-1].number), (yyvsp[0].id)); }
1456*e992f068Schristos #line 1457 "defparse.c"
145775fd0b74Schristos break;
145875fd0b74Schristos
1459*e992f068Schristos case 31: /* secline: ID attr_list */
1460*e992f068Schristos #line 108 "defparse.y"
1461ede78133Schristos { def_section ((yyvsp[-1].id),(yyvsp[0].number));}
1462*e992f068Schristos #line 1463 "defparse.c"
146375fd0b74Schristos break;
146475fd0b74Schristos
1465*e992f068Schristos case 36: /* opt_number: ',' NUMBER */
1466*e992f068Schristos #line 120 "defparse.y"
1467ede78133Schristos { (yyval.number)=(yyvsp[0].number);}
1468*e992f068Schristos #line 1469 "defparse.c"
146975fd0b74Schristos break;
147075fd0b74Schristos
1471*e992f068Schristos case 37: /* opt_number: %empty */
1472*e992f068Schristos #line 121 "defparse.y"
147375fd0b74Schristos { (yyval.number)=-1;}
1474*e992f068Schristos #line 1475 "defparse.c"
147575fd0b74Schristos break;
147675fd0b74Schristos
1477*e992f068Schristos case 38: /* attr: READ */
1478*e992f068Schristos #line 125 "defparse.y"
147975fd0b74Schristos { (yyval.number) = 1; }
1480*e992f068Schristos #line 1481 "defparse.c"
148175fd0b74Schristos break;
148275fd0b74Schristos
1483*e992f068Schristos case 39: /* attr: WRITE */
1484*e992f068Schristos #line 126 "defparse.y"
148575fd0b74Schristos { (yyval.number) = 2; }
1486*e992f068Schristos #line 1487 "defparse.c"
148775fd0b74Schristos break;
148875fd0b74Schristos
1489*e992f068Schristos case 40: /* attr: EXECUTE */
1490*e992f068Schristos #line 127 "defparse.y"
149175fd0b74Schristos { (yyval.number) = 4; }
1492*e992f068Schristos #line 1493 "defparse.c"
149375fd0b74Schristos break;
149475fd0b74Schristos
1495*e992f068Schristos case 41: /* attr: SHARED */
1496*e992f068Schristos #line 128 "defparse.y"
149775fd0b74Schristos { (yyval.number) = 8; }
1498*e992f068Schristos #line 1499 "defparse.c"
149975fd0b74Schristos break;
150075fd0b74Schristos
1501*e992f068Schristos case 42: /* attr: NONSHARED */
1502*e992f068Schristos #line 129 "defparse.y"
150375fd0b74Schristos { (yyval.number) = 0; }
1504*e992f068Schristos #line 1505 "defparse.c"
150575fd0b74Schristos break;
150675fd0b74Schristos
1507*e992f068Schristos case 43: /* attr: SINGLE */
1508*e992f068Schristos #line 130 "defparse.y"
150975fd0b74Schristos { (yyval.number) = 0; }
1510*e992f068Schristos #line 1511 "defparse.c"
151175fd0b74Schristos break;
151275fd0b74Schristos
1513*e992f068Schristos case 44: /* attr: MULTIPLE */
1514*e992f068Schristos #line 131 "defparse.y"
151575fd0b74Schristos { (yyval.number) = 0; }
1516*e992f068Schristos #line 1517 "defparse.c"
151775fd0b74Schristos break;
151875fd0b74Schristos
1519*e992f068Schristos case 45: /* opt_CONSTANT: CONSTANT */
1520*e992f068Schristos #line 135 "defparse.y"
152175fd0b74Schristos {(yyval.number)=1;}
1522*e992f068Schristos #line 1523 "defparse.c"
152375fd0b74Schristos break;
152475fd0b74Schristos
1525*e992f068Schristos case 46: /* opt_CONSTANT: %empty */
1526*e992f068Schristos #line 136 "defparse.y"
152775fd0b74Schristos {(yyval.number)=0;}
1528*e992f068Schristos #line 1529 "defparse.c"
152975fd0b74Schristos break;
153075fd0b74Schristos
1531*e992f068Schristos case 47: /* opt_NONAME: NONAME */
1532*e992f068Schristos #line 140 "defparse.y"
153375fd0b74Schristos {(yyval.number)=1;}
1534*e992f068Schristos #line 1535 "defparse.c"
153575fd0b74Schristos break;
153675fd0b74Schristos
1537*e992f068Schristos case 48: /* opt_NONAME: %empty */
1538*e992f068Schristos #line 141 "defparse.y"
153975fd0b74Schristos {(yyval.number)=0;}
1540*e992f068Schristos #line 1541 "defparse.c"
154175fd0b74Schristos break;
154275fd0b74Schristos
1543*e992f068Schristos case 49: /* opt_DATA: DATA */
1544*e992f068Schristos #line 145 "defparse.y"
154575fd0b74Schristos { (yyval.number) = 1; }
1546*e992f068Schristos #line 1547 "defparse.c"
154775fd0b74Schristos break;
154875fd0b74Schristos
1549*e992f068Schristos case 50: /* opt_DATA: %empty */
1550*e992f068Schristos #line 146 "defparse.y"
155175fd0b74Schristos { (yyval.number) = 0; }
1552*e992f068Schristos #line 1553 "defparse.c"
155375fd0b74Schristos break;
155475fd0b74Schristos
1555*e992f068Schristos case 51: /* opt_PRIVATE: PRIVATE */
1556*e992f068Schristos #line 150 "defparse.y"
155775fd0b74Schristos { (yyval.number) = 1; }
1558*e992f068Schristos #line 1559 "defparse.c"
155975fd0b74Schristos break;
156075fd0b74Schristos
1561*e992f068Schristos case 52: /* opt_PRIVATE: %empty */
1562*e992f068Schristos #line 151 "defparse.y"
156375fd0b74Schristos { (yyval.number) = 0; }
1564*e992f068Schristos #line 1565 "defparse.c"
156575fd0b74Schristos break;
156675fd0b74Schristos
1567*e992f068Schristos case 53: /* keyword_as_name: NAME */
1568*e992f068Schristos #line 154 "defparse.y"
156975fd0b74Schristos { (yyval.id_const) = "NAME"; }
1570*e992f068Schristos #line 1571 "defparse.c"
157175fd0b74Schristos break;
157275fd0b74Schristos
1573*e992f068Schristos case 54: /* keyword_as_name: DESCRIPTION */
1574*e992f068Schristos #line 159 "defparse.y"
157575fd0b74Schristos { (yyval.id_const) = "DESCRIPTION"; }
1576*e992f068Schristos #line 1577 "defparse.c"
157775fd0b74Schristos break;
157875fd0b74Schristos
1579*e992f068Schristos case 55: /* keyword_as_name: STACKSIZE */
1580*e992f068Schristos #line 160 "defparse.y"
158175fd0b74Schristos { (yyval.id_const) = "STACKSIZE"; }
1582*e992f068Schristos #line 1583 "defparse.c"
158375fd0b74Schristos break;
158475fd0b74Schristos
1585*e992f068Schristos case 56: /* keyword_as_name: HEAPSIZE */
1586*e992f068Schristos #line 161 "defparse.y"
158775fd0b74Schristos { (yyval.id_const) = "HEAPSIZE"; }
1588*e992f068Schristos #line 1589 "defparse.c"
158975fd0b74Schristos break;
159075fd0b74Schristos
1591*e992f068Schristos case 57: /* keyword_as_name: CODE */
1592*e992f068Schristos #line 162 "defparse.y"
159375fd0b74Schristos { (yyval.id_const) = "CODE"; }
1594*e992f068Schristos #line 1595 "defparse.c"
159575fd0b74Schristos break;
159675fd0b74Schristos
1597*e992f068Schristos case 58: /* keyword_as_name: DATA */
1598*e992f068Schristos #line 163 "defparse.y"
159975fd0b74Schristos { (yyval.id_const) = "DATA"; }
1600*e992f068Schristos #line 1601 "defparse.c"
160175fd0b74Schristos break;
160275fd0b74Schristos
1603*e992f068Schristos case 59: /* keyword_as_name: SECTIONS */
1604*e992f068Schristos #line 164 "defparse.y"
160575fd0b74Schristos { (yyval.id_const) = "SECTIONS"; }
1606*e992f068Schristos #line 1607 "defparse.c"
160775fd0b74Schristos break;
160875fd0b74Schristos
1609*e992f068Schristos case 60: /* keyword_as_name: EXPORTS */
1610*e992f068Schristos #line 165 "defparse.y"
161175fd0b74Schristos { (yyval.id_const) = "EXPORTS"; }
1612*e992f068Schristos #line 1613 "defparse.c"
161375fd0b74Schristos break;
161475fd0b74Schristos
1615*e992f068Schristos case 61: /* keyword_as_name: IMPORTS */
1616*e992f068Schristos #line 166 "defparse.y"
161775fd0b74Schristos { (yyval.id_const) = "IMPORTS"; }
1618*e992f068Schristos #line 1619 "defparse.c"
161975fd0b74Schristos break;
162075fd0b74Schristos
1621*e992f068Schristos case 62: /* keyword_as_name: VERSIONK */
1622*e992f068Schristos #line 167 "defparse.y"
162375fd0b74Schristos { (yyval.id_const) = "VERSION"; }
1624*e992f068Schristos #line 1625 "defparse.c"
162575fd0b74Schristos break;
162675fd0b74Schristos
1627*e992f068Schristos case 63: /* keyword_as_name: BASE */
1628*e992f068Schristos #line 168 "defparse.y"
162975fd0b74Schristos { (yyval.id_const) = "BASE"; }
1630*e992f068Schristos #line 1631 "defparse.c"
163175fd0b74Schristos break;
163275fd0b74Schristos
1633*e992f068Schristos case 64: /* keyword_as_name: CONSTANT */
1634*e992f068Schristos #line 169 "defparse.y"
163575fd0b74Schristos { (yyval.id_const) = "CONSTANT"; }
1636*e992f068Schristos #line 1637 "defparse.c"
163775fd0b74Schristos break;
163875fd0b74Schristos
1639*e992f068Schristos case 65: /* keyword_as_name: NONAME */
1640*e992f068Schristos #line 170 "defparse.y"
164175fd0b74Schristos { (yyval.id_const) = "NONAME"; }
1642*e992f068Schristos #line 1643 "defparse.c"
164375fd0b74Schristos break;
164475fd0b74Schristos
1645*e992f068Schristos case 66: /* keyword_as_name: PRIVATE */
1646*e992f068Schristos #line 171 "defparse.y"
164775fd0b74Schristos { (yyval.id_const) = "PRIVATE"; }
1648*e992f068Schristos #line 1649 "defparse.c"
164975fd0b74Schristos break;
165075fd0b74Schristos
1651*e992f068Schristos case 67: /* keyword_as_name: READ */
1652*e992f068Schristos #line 172 "defparse.y"
165375fd0b74Schristos { (yyval.id_const) = "READ"; }
1654*e992f068Schristos #line 1655 "defparse.c"
165575fd0b74Schristos break;
165675fd0b74Schristos
1657*e992f068Schristos case 68: /* keyword_as_name: WRITE */
1658*e992f068Schristos #line 173 "defparse.y"
165975fd0b74Schristos { (yyval.id_const) = "WRITE"; }
1660*e992f068Schristos #line 1661 "defparse.c"
166175fd0b74Schristos break;
166275fd0b74Schristos
1663*e992f068Schristos case 69: /* keyword_as_name: EXECUTE */
1664*e992f068Schristos #line 174 "defparse.y"
166575fd0b74Schristos { (yyval.id_const) = "EXECUTE"; }
1666*e992f068Schristos #line 1667 "defparse.c"
166775fd0b74Schristos break;
166875fd0b74Schristos
1669*e992f068Schristos case 70: /* keyword_as_name: SHARED */
1670*e992f068Schristos #line 175 "defparse.y"
167175fd0b74Schristos { (yyval.id_const) = "SHARED"; }
1672*e992f068Schristos #line 1673 "defparse.c"
167375fd0b74Schristos break;
167475fd0b74Schristos
1675*e992f068Schristos case 71: /* keyword_as_name: NONSHARED */
1676*e992f068Schristos #line 176 "defparse.y"
167775fd0b74Schristos { (yyval.id_const) = "NONSHARED"; }
1678*e992f068Schristos #line 1679 "defparse.c"
167975fd0b74Schristos break;
168075fd0b74Schristos
1681*e992f068Schristos case 72: /* keyword_as_name: SINGLE */
1682*e992f068Schristos #line 177 "defparse.y"
168375fd0b74Schristos { (yyval.id_const) = "SINGLE"; }
1684*e992f068Schristos #line 1685 "defparse.c"
168575fd0b74Schristos break;
168675fd0b74Schristos
1687*e992f068Schristos case 73: /* keyword_as_name: MULTIPLE */
1688*e992f068Schristos #line 178 "defparse.y"
168975fd0b74Schristos { (yyval.id_const) = "MULTIPLE"; }
1690*e992f068Schristos #line 1691 "defparse.c"
169175fd0b74Schristos break;
169275fd0b74Schristos
1693*e992f068Schristos case 74: /* keyword_as_name: INITINSTANCE */
1694*e992f068Schristos #line 179 "defparse.y"
169575fd0b74Schristos { (yyval.id_const) = "INITINSTANCE"; }
1696*e992f068Schristos #line 1697 "defparse.c"
169775fd0b74Schristos break;
169875fd0b74Schristos
1699*e992f068Schristos case 75: /* keyword_as_name: INITGLOBAL */
1700*e992f068Schristos #line 180 "defparse.y"
170175fd0b74Schristos { (yyval.id_const) = "INITGLOBAL"; }
1702*e992f068Schristos #line 1703 "defparse.c"
170375fd0b74Schristos break;
170475fd0b74Schristos
1705*e992f068Schristos case 76: /* keyword_as_name: TERMINSTANCE */
1706*e992f068Schristos #line 181 "defparse.y"
170775fd0b74Schristos { (yyval.id_const) = "TERMINSTANCE"; }
1708*e992f068Schristos #line 1709 "defparse.c"
170975fd0b74Schristos break;
171075fd0b74Schristos
1711*e992f068Schristos case 77: /* keyword_as_name: TERMGLOBAL */
1712*e992f068Schristos #line 182 "defparse.y"
171375fd0b74Schristos { (yyval.id_const) = "TERMGLOBAL"; }
1714*e992f068Schristos #line 1715 "defparse.c"
171575fd0b74Schristos break;
171675fd0b74Schristos
1717*e992f068Schristos case 78: /* opt_name2: ID */
1718*e992f068Schristos #line 185 "defparse.y"
1719ede78133Schristos { (yyval.id) = (yyvsp[0].id); }
1720*e992f068Schristos #line 1721 "defparse.c"
172175fd0b74Schristos break;
172275fd0b74Schristos
1723*e992f068Schristos case 79: /* opt_name2: '.' keyword_as_name */
1724*e992f068Schristos #line 187 "defparse.y"
172575fd0b74Schristos {
1726ede78133Schristos char *name = xmalloc (strlen ((yyvsp[0].id_const)) + 2);
1727ede78133Schristos sprintf (name, ".%s", (yyvsp[0].id_const));
172875fd0b74Schristos (yyval.id) = name;
172975fd0b74Schristos }
1730*e992f068Schristos #line 1731 "defparse.c"
173175fd0b74Schristos break;
173275fd0b74Schristos
1733*e992f068Schristos case 80: /* opt_name2: '.' opt_name2 */
1734*e992f068Schristos #line 193 "defparse.y"
173575fd0b74Schristos {
1736ede78133Schristos char *name = xmalloc (strlen ((yyvsp[0].id)) + 2);
1737ede78133Schristos sprintf (name, ".%s", (yyvsp[0].id));
173875fd0b74Schristos (yyval.id) = name;
173975fd0b74Schristos }
1740*e992f068Schristos #line 1741 "defparse.c"
174175fd0b74Schristos break;
174275fd0b74Schristos
1743*e992f068Schristos case 81: /* opt_name2: keyword_as_name '.' opt_name2 */
1744*e992f068Schristos #line 199 "defparse.y"
174575fd0b74Schristos {
1746ede78133Schristos char *name = xmalloc (strlen ((yyvsp[-2].id_const)) + 1 + strlen ((yyvsp[0].id)) + 1);
1747ede78133Schristos sprintf (name, "%s.%s", (yyvsp[-2].id_const), (yyvsp[0].id));
174875fd0b74Schristos (yyval.id) = name;
174975fd0b74Schristos }
1750*e992f068Schristos #line 1751 "defparse.c"
175175fd0b74Schristos break;
175275fd0b74Schristos
1753*e992f068Schristos case 82: /* opt_name2: ID '.' opt_name2 */
1754*e992f068Schristos #line 205 "defparse.y"
175575fd0b74Schristos {
1756ede78133Schristos char *name = xmalloc (strlen ((yyvsp[-2].id)) + 1 + strlen ((yyvsp[0].id)) + 1);
1757ede78133Schristos sprintf (name, "%s.%s", (yyvsp[-2].id), (yyvsp[0].id));
175875fd0b74Schristos (yyval.id) = name;
175975fd0b74Schristos }
1760*e992f068Schristos #line 1761 "defparse.c"
176175fd0b74Schristos break;
176275fd0b74Schristos
1763*e992f068Schristos case 83: /* opt_name: opt_name2 */
1764*e992f068Schristos #line 211 "defparse.y"
1765ede78133Schristos { (yyval.id) =(yyvsp[0].id); }
1766*e992f068Schristos #line 1767 "defparse.c"
176775fd0b74Schristos break;
176875fd0b74Schristos
1769*e992f068Schristos case 84: /* opt_name: %empty */
1770*e992f068Schristos #line 212 "defparse.y"
177175fd0b74Schristos { (yyval.id)=""; }
1772*e992f068Schristos #line 1773 "defparse.c"
177375fd0b74Schristos break;
177475fd0b74Schristos
1775*e992f068Schristos case 85: /* opt_ordinal: '@' NUMBER */
1776*e992f068Schristos #line 216 "defparse.y"
1777ede78133Schristos { (yyval.number)=(yyvsp[0].number);}
1778*e992f068Schristos #line 1779 "defparse.c"
177975fd0b74Schristos break;
178075fd0b74Schristos
1781*e992f068Schristos case 86: /* opt_ordinal: %empty */
1782*e992f068Schristos #line 217 "defparse.y"
178375fd0b74Schristos { (yyval.number)=-1;}
1784*e992f068Schristos #line 1785 "defparse.c"
178575fd0b74Schristos break;
178675fd0b74Schristos
1787*e992f068Schristos case 87: /* opt_import_name: EQUAL opt_name2 */
1788*e992f068Schristos #line 221 "defparse.y"
1789ede78133Schristos { (yyval.id) = (yyvsp[0].id); }
1790*e992f068Schristos #line 1791 "defparse.c"
179175fd0b74Schristos break;
179275fd0b74Schristos
1793*e992f068Schristos case 88: /* opt_import_name: %empty */
1794*e992f068Schristos #line 222 "defparse.y"
179575fd0b74Schristos { (yyval.id) = 0; }
1796*e992f068Schristos #line 1797 "defparse.c"
179775fd0b74Schristos break;
179875fd0b74Schristos
1799*e992f068Schristos case 89: /* opt_equal_name: '=' opt_name2 */
1800*e992f068Schristos #line 226 "defparse.y"
1801ede78133Schristos { (yyval.id) = (yyvsp[0].id); }
1802*e992f068Schristos #line 1803 "defparse.c"
180375fd0b74Schristos break;
180475fd0b74Schristos
1805*e992f068Schristos case 90: /* opt_equal_name: %empty */
1806*e992f068Schristos #line 227 "defparse.y"
180775fd0b74Schristos { (yyval.id) = 0; }
1808*e992f068Schristos #line 1809 "defparse.c"
180975fd0b74Schristos break;
181075fd0b74Schristos
1811*e992f068Schristos case 91: /* opt_base: BASE '=' NUMBER */
1812*e992f068Schristos #line 230 "defparse.y"
1813ede78133Schristos { (yyval.number)= (yyvsp[0].number);}
1814*e992f068Schristos #line 1815 "defparse.c"
181575fd0b74Schristos break;
181675fd0b74Schristos
1817*e992f068Schristos case 92: /* opt_base: %empty */
1818*e992f068Schristos #line 231 "defparse.y"
181975fd0b74Schristos { (yyval.number)=-1;}
1820*e992f068Schristos #line 1821 "defparse.c"
182175fd0b74Schristos break;
182275fd0b74Schristos
182375fd0b74Schristos
1824*e992f068Schristos #line 1825 "defparse.c"
1825*e992f068Schristos
182675fd0b74Schristos default: break;
182775fd0b74Schristos }
1828ede78133Schristos /* User semantic actions sometimes alter yychar, and that requires
1829ede78133Schristos that yytoken be updated with the new translation. We take the
1830ede78133Schristos approach of translating immediately before every use of yytoken.
1831ede78133Schristos One alternative is translating here after every semantic action,
1832ede78133Schristos but that translation would be missed if the semantic action invokes
1833ede78133Schristos YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1834ede78133Schristos if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1835ede78133Schristos incorrect destructor might then be invoked immediately. In the
1836ede78133Schristos case of YYERROR or YYBACKUP, subsequent parser actions might lead
1837ede78133Schristos to an incorrect destructor call or verbose syntax error message
1838ede78133Schristos before the lookahead is translated. */
1839*e992f068Schristos YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
184075fd0b74Schristos
184175fd0b74Schristos YYPOPSTACK (yylen);
184275fd0b74Schristos yylen = 0;
184375fd0b74Schristos
184475fd0b74Schristos *++yyvsp = yyval;
184575fd0b74Schristos
1846ede78133Schristos /* Now 'shift' the result of the reduction. Determine what state
184775fd0b74Schristos that goes to, based on the state we popped back to and the rule
184875fd0b74Schristos number reduced by. */
1849*e992f068Schristos {
1850*e992f068Schristos const int yylhs = yyr1[yyn] - YYNTOKENS;
1851*e992f068Schristos const int yyi = yypgoto[yylhs] + *yyssp;
1852*e992f068Schristos yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1853*e992f068Schristos ? yytable[yyi]
1854*e992f068Schristos : yydefgoto[yylhs]);
1855*e992f068Schristos }
185675fd0b74Schristos
185775fd0b74Schristos goto yynewstate;
185875fd0b74Schristos
185975fd0b74Schristos
1860ede78133Schristos /*--------------------------------------.
1861ede78133Schristos | yyerrlab -- here on detecting error. |
1862ede78133Schristos `--------------------------------------*/
186375fd0b74Schristos yyerrlab:
1864ede78133Schristos /* Make sure we have latest lookahead translation. See comments at
1865ede78133Schristos user semantic actions for why this is necessary. */
1866*e992f068Schristos yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
186775fd0b74Schristos /* If not already recovering from an error, report this error. */
186875fd0b74Schristos if (!yyerrstatus)
186975fd0b74Schristos {
187075fd0b74Schristos ++yynerrs;
187175fd0b74Schristos yyerror (YY_("syntax error"));
187275fd0b74Schristos }
187375fd0b74Schristos
187475fd0b74Schristos if (yyerrstatus == 3)
187575fd0b74Schristos {
1876ede78133Schristos /* If just tried and failed to reuse lookahead token after an
187775fd0b74Schristos error, discard it. */
187875fd0b74Schristos
187975fd0b74Schristos if (yychar <= YYEOF)
188075fd0b74Schristos {
188175fd0b74Schristos /* Return failure if at end of input. */
188275fd0b74Schristos if (yychar == YYEOF)
188375fd0b74Schristos YYABORT;
188475fd0b74Schristos }
188575fd0b74Schristos else
188675fd0b74Schristos {
188775fd0b74Schristos yydestruct ("Error: discarding",
188875fd0b74Schristos yytoken, &yylval);
188975fd0b74Schristos yychar = YYEMPTY;
189075fd0b74Schristos }
189175fd0b74Schristos }
189275fd0b74Schristos
1893ede78133Schristos /* Else will try to reuse lookahead token after shifting the error
189475fd0b74Schristos token. */
189575fd0b74Schristos goto yyerrlab1;
189675fd0b74Schristos
189775fd0b74Schristos
189875fd0b74Schristos /*---------------------------------------------------.
189975fd0b74Schristos | yyerrorlab -- error raised explicitly by YYERROR. |
190075fd0b74Schristos `---------------------------------------------------*/
190175fd0b74Schristos yyerrorlab:
1902*e992f068Schristos /* Pacify compilers when the user code never invokes YYERROR and the
1903*e992f068Schristos label yyerrorlab therefore never appears in user code. */
1904*e992f068Schristos if (0)
1905*e992f068Schristos YYERROR;
1906*e992f068Schristos ++yynerrs;
190775fd0b74Schristos
1908ede78133Schristos /* Do not reclaim the symbols of the rule whose action triggered
190975fd0b74Schristos this YYERROR. */
191075fd0b74Schristos YYPOPSTACK (yylen);
191175fd0b74Schristos yylen = 0;
191275fd0b74Schristos YY_STACK_PRINT (yyss, yyssp);
191375fd0b74Schristos yystate = *yyssp;
191475fd0b74Schristos goto yyerrlab1;
191575fd0b74Schristos
191675fd0b74Schristos
191775fd0b74Schristos /*-------------------------------------------------------------.
191875fd0b74Schristos | yyerrlab1 -- common code for both syntax error and YYERROR. |
191975fd0b74Schristos `-------------------------------------------------------------*/
192075fd0b74Schristos yyerrlab1:
192175fd0b74Schristos yyerrstatus = 3; /* Each real token shifted decrements this. */
192275fd0b74Schristos
1923*e992f068Schristos /* Pop stack until we find a state that shifts the error token. */
192475fd0b74Schristos for (;;)
192575fd0b74Schristos {
192675fd0b74Schristos yyn = yypact[yystate];
1927ede78133Schristos if (!yypact_value_is_default (yyn))
192875fd0b74Schristos {
1929*e992f068Schristos yyn += YYSYMBOL_YYerror;
1930*e992f068Schristos if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
193175fd0b74Schristos {
193275fd0b74Schristos yyn = yytable[yyn];
193375fd0b74Schristos if (0 < yyn)
193475fd0b74Schristos break;
193575fd0b74Schristos }
193675fd0b74Schristos }
193775fd0b74Schristos
193875fd0b74Schristos /* Pop the current state because it cannot handle the error token. */
193975fd0b74Schristos if (yyssp == yyss)
194075fd0b74Schristos YYABORT;
194175fd0b74Schristos
194275fd0b74Schristos
194375fd0b74Schristos yydestruct ("Error: popping",
1944*e992f068Schristos YY_ACCESSING_SYMBOL (yystate), yyvsp);
194575fd0b74Schristos YYPOPSTACK (1);
194675fd0b74Schristos yystate = *yyssp;
194775fd0b74Schristos YY_STACK_PRINT (yyss, yyssp);
194875fd0b74Schristos }
194975fd0b74Schristos
1950ede78133Schristos YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
195175fd0b74Schristos *++yyvsp = yylval;
1952ede78133Schristos YY_IGNORE_MAYBE_UNINITIALIZED_END
195375fd0b74Schristos
195475fd0b74Schristos
195575fd0b74Schristos /* Shift the error token. */
1956*e992f068Schristos YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
195775fd0b74Schristos
195875fd0b74Schristos yystate = yyn;
195975fd0b74Schristos goto yynewstate;
196075fd0b74Schristos
196175fd0b74Schristos
196275fd0b74Schristos /*-------------------------------------.
196375fd0b74Schristos | yyacceptlab -- YYACCEPT comes here. |
196475fd0b74Schristos `-------------------------------------*/
196575fd0b74Schristos yyacceptlab:
196675fd0b74Schristos yyresult = 0;
1967*e992f068Schristos goto yyreturnlab;
1968*e992f068Schristos
196975fd0b74Schristos
197075fd0b74Schristos /*-----------------------------------.
197175fd0b74Schristos | yyabortlab -- YYABORT comes here. |
197275fd0b74Schristos `-----------------------------------*/
197375fd0b74Schristos yyabortlab:
197475fd0b74Schristos yyresult = 1;
1975*e992f068Schristos goto yyreturnlab;
197675fd0b74Schristos
1977*e992f068Schristos
1978*e992f068Schristos /*-----------------------------------------------------------.
1979*e992f068Schristos | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
1980*e992f068Schristos `-----------------------------------------------------------*/
198175fd0b74Schristos yyexhaustedlab:
198275fd0b74Schristos yyerror (YY_("memory exhausted"));
198375fd0b74Schristos yyresult = 2;
1984*e992f068Schristos goto yyreturnlab;
198575fd0b74Schristos
1986*e992f068Schristos
1987*e992f068Schristos /*----------------------------------------------------------.
1988*e992f068Schristos | yyreturnlab -- parsing is finished, clean up and return. |
1989*e992f068Schristos `----------------------------------------------------------*/
1990*e992f068Schristos yyreturnlab:
1991ede78133Schristos if (yychar != YYEMPTY)
1992ede78133Schristos {
1993ede78133Schristos /* Make sure we have latest lookahead translation. See comments at
1994ede78133Schristos user semantic actions for why this is necessary. */
1995ede78133Schristos yytoken = YYTRANSLATE (yychar);
199675fd0b74Schristos yydestruct ("Cleanup: discarding lookahead",
199775fd0b74Schristos yytoken, &yylval);
1998ede78133Schristos }
1999ede78133Schristos /* Do not reclaim the symbols of the rule whose action triggered
200075fd0b74Schristos this YYABORT or YYACCEPT. */
200175fd0b74Schristos YYPOPSTACK (yylen);
200275fd0b74Schristos YY_STACK_PRINT (yyss, yyssp);
200375fd0b74Schristos while (yyssp != yyss)
200475fd0b74Schristos {
200575fd0b74Schristos yydestruct ("Cleanup: popping",
2006*e992f068Schristos YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
200775fd0b74Schristos YYPOPSTACK (1);
200875fd0b74Schristos }
200975fd0b74Schristos #ifndef yyoverflow
201075fd0b74Schristos if (yyss != yyssa)
201175fd0b74Schristos YYSTACK_FREE (yyss);
201275fd0b74Schristos #endif
2013*e992f068Schristos
2014ede78133Schristos return yyresult;
201575fd0b74Schristos }
2016*e992f068Schristos
2017