xref: /netbsd-src/external/gpl3/binutils.old/dist/binutils/defparse.c (revision e992f068c547fd6e84b3f104dc2340adcc955732)
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