blob: c9f0f0ce82ff73b2aca4944dc3d63ca688c727af [file] [log] [blame]
Jan Beulichdc533242014-04-03 14:46:37 -07001/* A Bison parser, made by GNU Bison 2.5.1. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002
Michal Marek0359de72011-10-11 12:07:05 +02003/* Bison implementation for Yacc-like parsers in C
Michal Marek303fc012011-02-15 16:04:35 +01004
Jan Beulichdc533242014-04-03 14:46:37 -07005 Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
Michal Marek303fc012011-02-15 16:04:35 +01006
7 This program is free software: you can redistribute it and/or modify
Sam Ravnborgc40f5642005-12-26 22:53:25 +01008 it under the terms of the GNU General Public License as published by
Michal Marek303fc012011-02-15 16:04:35 +01009 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
Sam Ravnborgc40f5642005-12-26 22:53:25 +010012 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
Michal Marek303fc012011-02-15 16:04:35 +010016
Sam Ravnborgc40f5642005-12-26 22:53:25 +010017 You should have received a copy of the GNU General Public License
Michal Marek303fc012011-02-15 16:04:35 +010018 along with this program. If not, see <http://www.gnu.org/licenses/>. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +010019
Sam Ravnborg70f75242007-09-01 10:26:32 +020020/* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
Michal Marek303fc012011-02-15 16:04:35 +010029
Sam Ravnborg70f75242007-09-01 10:26:32 +020030 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33/* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +010035
36/* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43/* Identify Bison output. */
44#define YYBISON 1
45
Sam Ravnborg70f75242007-09-01 10:26:32 +020046/* Bison version. */
Jan Beulichdc533242014-04-03 14:46:37 -070047#define YYBISON_VERSION "2.5.1"
Sam Ravnborg70f75242007-09-01 10:26:32 +020048
Sam Ravnborgc40f5642005-12-26 22:53:25 +010049/* Skeleton name. */
50#define YYSKELETON_NAME "yacc.c"
51
52/* Pure parsers. */
53#define YYPURE 0
54
Michal Marek303fc012011-02-15 16:04:35 +010055/* Push parsers. */
56#define YYPUSH 0
57
58/* Pull parsers. */
59#define YYPULL 1
60
Sam Ravnborgc40f5642005-12-26 22:53:25 +010061/* Using locations. */
62#define YYLSP_NEEDED 0
63
64
65
Michal Marek303fc012011-02-15 16:04:35 +010066/* Copy the first part of user declarations. */
67
Michal Marek303fc012011-02-15 16:04:35 +010068
69
70#include <assert.h>
71#include <stdlib.h>
72#include <string.h>
73#include "genksyms.h"
74
75static int is_typedef;
76static int is_extern;
77static char *current_name;
78static struct string_list *decl_spec;
79
80static void yyerror(const char *);
81
82static inline void
83remove_node(struct string_list **p)
84{
85 struct string_list *node = *p;
86 *p = node->next;
87 free_node(node);
88}
89
90static inline void
91remove_list(struct string_list **pb, struct string_list **pe)
92{
93 struct string_list *b = *pb, *e = *pe;
94 *pb = e;
95 free_list(b, e);
96}
97
Michal Marek0359de72011-10-11 12:07:05 +020098/* Record definition of a struct/union/enum */
99static void record_compound(struct string_list **keyw,
100 struct string_list **ident,
101 struct string_list **body,
102 enum symbol_type type)
103{
104 struct string_list *b = *body, *i = *ident, *r;
105
106 if (i->in_source_file) {
107 remove_node(keyw);
108 (*ident)->tag = type;
109 remove_list(body, ident);
110 return;
111 }
112 r = copy_node(i); r->tag = type;
113 r->next = (*keyw)->next; *body = r; (*keyw)->next = NULL;
114 add_symbol(i->string, type, b, is_extern);
115}
116
Michal Marek303fc012011-02-15 16:04:35 +0100117
118
Michal Marek303fc012011-02-15 16:04:35 +0100119
Jan Beulichdc533242014-04-03 14:46:37 -0700120# ifndef YY_NULL
121# if defined __cplusplus && 201103L <= __cplusplus
122# define YY_NULL nullptr
123# else
124# define YY_NULL 0
125# endif
126# endif
127
Michal Marek303fc012011-02-15 16:04:35 +0100128/* Enabling traces. */
129#ifndef YYDEBUG
130# define YYDEBUG 1
131#endif
132
133/* Enabling verbose error messages. */
134#ifdef YYERROR_VERBOSE
135# undef YYERROR_VERBOSE
136# define YYERROR_VERBOSE 1
137#else
138# define YYERROR_VERBOSE 0
139#endif
140
141/* Enabling the token table. */
142#ifndef YYTOKEN_TABLE
143# define YYTOKEN_TABLE 0
144#endif
145
146
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100147/* Tokens. */
148#ifndef YYTOKENTYPE
149# define YYTOKENTYPE
150 /* Put the tokens into the symbol table, so that GDB and other debuggers
151 know about them. */
152 enum yytokentype {
153 ASM_KEYW = 258,
154 ATTRIBUTE_KEYW = 259,
155 AUTO_KEYW = 260,
156 BOOL_KEYW = 261,
157 CHAR_KEYW = 262,
158 CONST_KEYW = 263,
159 DOUBLE_KEYW = 264,
160 ENUM_KEYW = 265,
161 EXTERN_KEYW = 266,
Sam Ravnborg70f75242007-09-01 10:26:32 +0200162 EXTENSION_KEYW = 267,
163 FLOAT_KEYW = 268,
164 INLINE_KEYW = 269,
165 INT_KEYW = 270,
166 LONG_KEYW = 271,
167 REGISTER_KEYW = 272,
168 RESTRICT_KEYW = 273,
169 SHORT_KEYW = 274,
170 SIGNED_KEYW = 275,
171 STATIC_KEYW = 276,
172 STRUCT_KEYW = 277,
173 TYPEDEF_KEYW = 278,
174 UNION_KEYW = 279,
175 UNSIGNED_KEYW = 280,
176 VOID_KEYW = 281,
177 VOLATILE_KEYW = 282,
178 TYPEOF_KEYW = 283,
179 EXPORT_SYMBOL_KEYW = 284,
180 ASM_PHRASE = 285,
181 ATTRIBUTE_PHRASE = 286,
Jan Beulichdc533242014-04-03 14:46:37 -0700182 TYPEOF_PHRASE = 287,
183 BRACE_PHRASE = 288,
184 BRACKET_PHRASE = 289,
185 EXPRESSION_PHRASE = 290,
186 CHAR = 291,
187 DOTS = 292,
188 IDENT = 293,
189 INT = 294,
190 REAL = 295,
191 STRING = 296,
192 TYPE = 297,
193 OTHER = 298,
194 FILENAME = 299
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100195 };
196#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100197
198
199
Sam Ravnborg70f75242007-09-01 10:26:32 +0200200#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100201typedef int YYSTYPE;
Michal Marek303fc012011-02-15 16:04:35 +0100202# define YYSTYPE_IS_TRIVIAL 1
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100203# define yystype YYSTYPE /* obsolescent; will be withdrawn */
204# define YYSTYPE_IS_DECLARED 1
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100205#endif
206
207
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100208/* Copy the second part of user declarations. */
209
210
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100211
Sam Ravnborg70f75242007-09-01 10:26:32 +0200212#ifdef short
213# undef short
214#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100215
Sam Ravnborg70f75242007-09-01 10:26:32 +0200216#ifdef YYTYPE_UINT8
217typedef YYTYPE_UINT8 yytype_uint8;
218#else
219typedef unsigned char yytype_uint8;
220#endif
221
222#ifdef YYTYPE_INT8
223typedef YYTYPE_INT8 yytype_int8;
224#elif (defined __STDC__ || defined __C99__FUNC__ \
225 || defined __cplusplus || defined _MSC_VER)
226typedef signed char yytype_int8;
227#else
228typedef short int yytype_int8;
229#endif
230
231#ifdef YYTYPE_UINT16
232typedef YYTYPE_UINT16 yytype_uint16;
233#else
234typedef unsigned short int yytype_uint16;
235#endif
236
237#ifdef YYTYPE_INT16
238typedef YYTYPE_INT16 yytype_int16;
239#else
240typedef short int yytype_int16;
241#endif
242
243#ifndef YYSIZE_T
244# ifdef __SIZE_TYPE__
245# define YYSIZE_T __SIZE_TYPE__
246# elif defined size_t
247# define YYSIZE_T size_t
248# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
249 || defined __cplusplus || defined _MSC_VER)
250# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
251# define YYSIZE_T size_t
252# else
253# define YYSIZE_T unsigned int
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100254# endif
Sam Ravnborg70f75242007-09-01 10:26:32 +0200255#endif
256
257#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
258
259#ifndef YY_
Arnaud Lacombe58ef81c2011-05-23 01:52:59 -0400260# if defined YYENABLE_NLS && YYENABLE_NLS
Sam Ravnborg70f75242007-09-01 10:26:32 +0200261# if ENABLE_NLS
262# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
263# define YY_(msgid) dgettext ("bison-runtime", msgid)
264# endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100265# endif
Sam Ravnborg70f75242007-09-01 10:26:32 +0200266# ifndef YY_
267# define YY_(msgid) msgid
268# endif
269#endif
270
271/* Suppress unused-variable warnings by "using" E. */
272#if ! defined lint || defined __GNUC__
273# define YYUSE(e) ((void) (e))
274#else
275# define YYUSE(e) /* empty */
276#endif
277
278/* Identity function, used to suppress warnings about constant conditions. */
279#ifndef lint
280# define YYID(n) (n)
281#else
282#if (defined __STDC__ || defined __C99__FUNC__ \
283 || defined __cplusplus || defined _MSC_VER)
284static int
Michal Marek303fc012011-02-15 16:04:35 +0100285YYID (int yyi)
Sam Ravnborg70f75242007-09-01 10:26:32 +0200286#else
287static int
Michal Marek303fc012011-02-15 16:04:35 +0100288YYID (yyi)
289 int yyi;
Sam Ravnborg70f75242007-09-01 10:26:32 +0200290#endif
291{
Michal Marek303fc012011-02-15 16:04:35 +0100292 return yyi;
Sam Ravnborg70f75242007-09-01 10:26:32 +0200293}
294#endif
295
296#if ! defined yyoverflow || YYERROR_VERBOSE
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100297
298/* The parser invokes alloca or malloc; define the necessary symbols. */
299
300# ifdef YYSTACK_USE_ALLOCA
301# if YYSTACK_USE_ALLOCA
302# ifdef __GNUC__
303# define YYSTACK_ALLOC __builtin_alloca
Sam Ravnborg70f75242007-09-01 10:26:32 +0200304# elif defined __BUILTIN_VA_ARG_INCR
305# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
306# elif defined _AIX
307# define YYSTACK_ALLOC __alloca
308# elif defined _MSC_VER
309# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
310# define alloca _alloca
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100311# else
312# define YYSTACK_ALLOC alloca
Michal Marek0359de72011-10-11 12:07:05 +0200313# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200314 || defined __cplusplus || defined _MSC_VER)
315# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Jan Beulichdc533242014-04-03 14:46:37 -0700316 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
Michal Marek0359de72011-10-11 12:07:05 +0200317# ifndef EXIT_SUCCESS
318# define EXIT_SUCCESS 0
Sam Ravnborg70f75242007-09-01 10:26:32 +0200319# endif
320# endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100321# endif
322# endif
323# endif
324
325# ifdef YYSTACK_ALLOC
Sam Ravnborg70f75242007-09-01 10:26:32 +0200326 /* Pacify GCC's `empty if-body' warning. */
327# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
328# ifndef YYSTACK_ALLOC_MAXIMUM
329 /* The OS might guarantee only one guard page at the bottom of the stack,
330 and a page size can be as small as 4096 bytes. So we cannot safely
331 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
332 to allow for a few compiler-allocated temporary stack slots. */
333# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100334# endif
Sam Ravnborg70f75242007-09-01 10:26:32 +0200335# else
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100336# define YYSTACK_ALLOC YYMALLOC
337# define YYSTACK_FREE YYFREE
Sam Ravnborg70f75242007-09-01 10:26:32 +0200338# ifndef YYSTACK_ALLOC_MAXIMUM
339# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
340# endif
Michal Marek0359de72011-10-11 12:07:05 +0200341# if (defined __cplusplus && ! defined EXIT_SUCCESS \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200342 && ! ((defined YYMALLOC || defined malloc) \
343 && (defined YYFREE || defined free)))
344# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
Michal Marek0359de72011-10-11 12:07:05 +0200345# ifndef EXIT_SUCCESS
346# define EXIT_SUCCESS 0
Sam Ravnborg70f75242007-09-01 10:26:32 +0200347# endif
348# endif
349# ifndef YYMALLOC
350# define YYMALLOC malloc
Michal Marek0359de72011-10-11 12:07:05 +0200351# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200352 || defined __cplusplus || defined _MSC_VER)
353void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
354# endif
355# endif
356# ifndef YYFREE
357# define YYFREE free
Michal Marek0359de72011-10-11 12:07:05 +0200358# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200359 || defined __cplusplus || defined _MSC_VER)
360void free (void *); /* INFRINGES ON USER NAME SPACE */
361# endif
362# endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100363# endif
Sam Ravnborg70f75242007-09-01 10:26:32 +0200364#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100365
366
Sam Ravnborg70f75242007-09-01 10:26:32 +0200367#if (! defined yyoverflow \
368 && (! defined __cplusplus \
369 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100370
371/* A type that is properly aligned for any stack member. */
372union yyalloc
373{
Michal Marek303fc012011-02-15 16:04:35 +0100374 yytype_int16 yyss_alloc;
375 YYSTYPE yyvs_alloc;
376};
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100377
378/* The size of the maximum gap between one aligned stack and the next. */
379# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
380
381/* The size of an array large to enough to hold all stacks, each with
382 N elements. */
383# define YYSTACK_BYTES(N) \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200384 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100385 + YYSTACK_GAP_MAXIMUM)
386
Michal Marek0359de72011-10-11 12:07:05 +0200387# define YYCOPY_NEEDED 1
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100388
389/* Relocate STACK from its old location to the new one. The
390 local variables YYSIZE and YYSTACKSIZE give the old and new number of
391 elements in the stack, and YYPTR gives the new location of the
392 stack. Advance YYPTR to a properly aligned location for the next
393 stack. */
Michal Marek303fc012011-02-15 16:04:35 +0100394# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100395 do \
396 { \
397 YYSIZE_T yynewbytes; \
Michal Marek303fc012011-02-15 16:04:35 +0100398 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
399 Stack = &yyptr->Stack_alloc; \
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100400 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
401 yyptr += yynewbytes / sizeof (*yyptr); \
402 } \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200403 while (YYID (0))
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100404
405#endif
406
Michal Marek0359de72011-10-11 12:07:05 +0200407#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
Jan Beulichdc533242014-04-03 14:46:37 -0700408/* Copy COUNT objects from SRC to DST. The source and destination do
Michal Marek0359de72011-10-11 12:07:05 +0200409 not overlap. */
410# ifndef YYCOPY
411# if defined __GNUC__ && 1 < __GNUC__
Jan Beulichdc533242014-04-03 14:46:37 -0700412# define YYCOPY(Dst, Src, Count) \
413 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
Michal Marek0359de72011-10-11 12:07:05 +0200414# else
Jan Beulichdc533242014-04-03 14:46:37 -0700415# define YYCOPY(Dst, Src, Count) \
416 do \
417 { \
418 YYSIZE_T yyi; \
419 for (yyi = 0; yyi < (Count); yyi++) \
420 (Dst)[yyi] = (Src)[yyi]; \
421 } \
Michal Marek0359de72011-10-11 12:07:05 +0200422 while (YYID (0))
423# endif
424# endif
425#endif /* !YYCOPY_NEEDED */
426
Sam Ravnborg70f75242007-09-01 10:26:32 +0200427/* YYFINAL -- State number of the termination state. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100428#define YYFINAL 4
429/* YYLAST -- Last index in YYTABLE. */
Jan Beulichdc533242014-04-03 14:46:37 -0700430#define YYLAST 514
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100431
Sam Ravnborg70f75242007-09-01 10:26:32 +0200432/* YYNTOKENS -- Number of terminals. */
Jan Beulichdc533242014-04-03 14:46:37 -0700433#define YYNTOKENS 54
Sam Ravnborg70f75242007-09-01 10:26:32 +0200434/* YYNNTS -- Number of nonterminals. */
Michal Marek303fc012011-02-15 16:04:35 +0100435#define YYNNTS 49
Sam Ravnborg70f75242007-09-01 10:26:32 +0200436/* YYNRULES -- Number of rules. */
Michal Marek303fc012011-02-15 16:04:35 +0100437#define YYNRULES 132
Sam Ravnborg70f75242007-09-01 10:26:32 +0200438/* YYNRULES -- Number of states. */
Jan Beulichdc533242014-04-03 14:46:37 -0700439#define YYNSTATES 187
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100440
441/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
442#define YYUNDEFTOK 2
Jan Beulichdc533242014-04-03 14:46:37 -0700443#define YYMAXUTOK 299
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100444
Sam Ravnborg70f75242007-09-01 10:26:32 +0200445#define YYTRANSLATE(YYX) \
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100446 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
447
448/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200449static const yytype_uint8 yytranslate[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100450{
451 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
452 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
453 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
454 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Jan Beulichdc533242014-04-03 14:46:37 -0700455 48, 49, 50, 2, 47, 2, 2, 2, 2, 2,
456 2, 2, 2, 2, 2, 2, 2, 2, 53, 45,
457 2, 51, 2, 2, 2, 2, 2, 2, 2, 2,
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100458 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
459 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
460 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
461 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
462 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
Jan Beulichdc533242014-04-03 14:46:37 -0700463 2, 2, 2, 52, 2, 46, 2, 2, 2, 2,
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100464 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
465 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
466 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
467 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
468 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
470 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
471 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
472 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
474 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
476 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
477 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
478 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
479 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
Jan Beulichdc533242014-04-03 14:46:37 -0700480 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100481};
482
483#if YYDEBUG
484/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
485 YYRHS. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200486static const yytype_uint16 yyprhs[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100487{
Sam Ravnborg70f75242007-09-01 10:26:32 +0200488 0, 0, 3, 5, 8, 9, 12, 13, 18, 19,
489 23, 25, 27, 29, 31, 34, 37, 41, 42, 44,
490 46, 50, 55, 56, 58, 60, 63, 65, 67, 69,
Jan Beulichdc533242014-04-03 14:46:37 -0700491 71, 73, 75, 77, 79, 81, 86, 88, 91, 94,
492 97, 101, 105, 109, 112, 115, 118, 120, 122, 124,
493 126, 128, 130, 132, 134, 136, 138, 140, 143, 144,
494 146, 148, 151, 153, 155, 157, 159, 162, 164, 166,
495 171, 176, 179, 183, 187, 190, 192, 194, 196, 201,
496 206, 209, 213, 217, 220, 222, 226, 227, 229, 231,
497 235, 238, 241, 243, 244, 246, 248, 253, 258, 261,
498 265, 269, 273, 274, 276, 279, 283, 287, 288, 290,
499 292, 295, 299, 302, 303, 305, 307, 311, 314, 317,
500 319, 322, 323, 326, 330, 335, 337, 341, 343, 347,
501 350, 351, 353
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100502};
503
Sam Ravnborg70f75242007-09-01 10:26:32 +0200504/* YYRHS -- A `-1'-separated list of the rules' RHS. */
505static const yytype_int8 yyrhs[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100506{
Jan Beulichdc533242014-04-03 14:46:37 -0700507 55, 0, -1, 56, -1, 55, 56, -1, -1, 57,
508 58, -1, -1, 12, 23, 59, 61, -1, -1, 23,
509 60, 61, -1, 61, -1, 85, -1, 100, -1, 102,
510 -1, 1, 45, -1, 1, 46, -1, 65, 62, 45,
511 -1, -1, 63, -1, 64, -1, 63, 47, 64, -1,
512 75, 101, 96, 86, -1, -1, 66, -1, 67, -1,
513 66, 67, -1, 68, -1, 69, -1, 5, -1, 17,
514 -1, 21, -1, 11, -1, 14, -1, 70, -1, 74,
515 -1, 28, 48, 82, 49, -1, 32, -1, 22, 38,
516 -1, 24, 38, -1, 10, 38, -1, 22, 38, 88,
517 -1, 24, 38, 88, -1, 10, 38, 97, -1, 10,
518 97, -1, 22, 88, -1, 24, 88, -1, 7, -1,
519 19, -1, 15, -1, 16, -1, 20, -1, 25, -1,
520 13, -1, 9, -1, 26, -1, 6, -1, 42, -1,
521 50, 72, -1, -1, 73, -1, 74, -1, 73, 74,
522 -1, 8, -1, 27, -1, 31, -1, 18, -1, 71,
523 75, -1, 76, -1, 38, -1, 76, 48, 79, 49,
524 -1, 76, 48, 1, 49, -1, 76, 34, -1, 48,
525 75, 49, -1, 48, 1, 49, -1, 71, 77, -1,
526 78, -1, 38, -1, 42, -1, 78, 48, 79, 49,
527 -1, 78, 48, 1, 49, -1, 78, 34, -1, 48,
528 77, 49, -1, 48, 1, 49, -1, 80, 37, -1,
529 80, -1, 81, 47, 37, -1, -1, 81, -1, 82,
530 -1, 81, 47, 82, -1, 66, 83, -1, 71, 83,
531 -1, 84, -1, -1, 38, -1, 42, -1, 84, 48,
532 79, 49, -1, 84, 48, 1, 49, -1, 84, 34,
533 -1, 48, 83, 49, -1, 48, 1, 49, -1, 65,
534 75, 33, -1, -1, 87, -1, 51, 35, -1, 52,
535 89, 46, -1, 52, 1, 46, -1, -1, 90, -1,
536 91, -1, 90, 91, -1, 65, 92, 45, -1, 1,
537 45, -1, -1, 93, -1, 94, -1, 93, 47, 94,
538 -1, 77, 96, -1, 38, 95, -1, 95, -1, 53,
539 35, -1, -1, 96, 31, -1, 52, 98, 46, -1,
540 52, 98, 47, 46, -1, 99, -1, 98, 47, 99,
541 -1, 38, -1, 38, 51, 35, -1, 30, 45, -1,
542 -1, 30, -1, 29, 48, 38, 49, 45, -1
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100543};
544
545/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200546static const yytype_uint16 yyrline[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100547{
Jan Beulichdc533242014-04-03 14:46:37 -0700548 0, 124, 124, 125, 129, 129, 135, 135, 137, 137,
549 139, 140, 141, 142, 143, 144, 148, 162, 163, 167,
550 175, 188, 194, 195, 199, 200, 204, 210, 214, 215,
551 216, 217, 218, 222, 223, 224, 225, 229, 231, 233,
552 237, 239, 241, 246, 249, 250, 254, 255, 256, 257,
553 258, 259, 260, 261, 262, 263, 264, 268, 273, 274,
554 278, 279, 283, 283, 283, 284, 292, 293, 297, 306,
555 308, 310, 312, 314, 321, 322, 326, 327, 328, 330,
556 332, 334, 336, 341, 342, 343, 347, 348, 352, 353,
557 358, 363, 365, 369, 370, 378, 382, 384, 386, 388,
558 390, 395, 404, 405, 410, 415, 416, 420, 421, 425,
559 426, 430, 432, 437, 438, 442, 443, 447, 448, 449,
560 453, 457, 458, 462, 463, 467, 468, 471, 476, 484,
561 488, 489, 493
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100562};
563#endif
564
Sam Ravnborg70f75242007-09-01 10:26:32 +0200565#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
566/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
567 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100568static const char *const yytname[] =
569{
570 "$end", "error", "$undefined", "ASM_KEYW", "ATTRIBUTE_KEYW",
571 "AUTO_KEYW", "BOOL_KEYW", "CHAR_KEYW", "CONST_KEYW", "DOUBLE_KEYW",
Sam Ravnborg70f75242007-09-01 10:26:32 +0200572 "ENUM_KEYW", "EXTERN_KEYW", "EXTENSION_KEYW", "FLOAT_KEYW",
573 "INLINE_KEYW", "INT_KEYW", "LONG_KEYW", "REGISTER_KEYW", "RESTRICT_KEYW",
574 "SHORT_KEYW", "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW",
575 "TYPEDEF_KEYW", "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW",
576 "VOLATILE_KEYW", "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE",
Jan Beulichdc533242014-04-03 14:46:37 -0700577 "ATTRIBUTE_PHRASE", "TYPEOF_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE",
Sam Ravnborg70f75242007-09-01 10:26:32 +0200578 "EXPRESSION_PHRASE", "CHAR", "DOTS", "IDENT", "INT", "REAL", "STRING",
Jan Beulichdc533242014-04-03 14:46:37 -0700579 "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "')'", "'*'",
Michal Marek303fc012011-02-15 16:04:35 +0100580 "'='", "'{'", "':'", "$accept", "declaration_seq", "declaration", "$@1",
581 "declaration1", "$@2", "$@3", "simple_declaration",
Sam Ravnborg70f75242007-09-01 10:26:32 +0200582 "init_declarator_list_opt", "init_declarator_list", "init_declarator",
583 "decl_specifier_seq_opt", "decl_specifier_seq", "decl_specifier",
584 "storage_class_specifier", "type_specifier", "simple_type_specifier",
585 "ptr_operator", "cvar_qualifier_seq_opt", "cvar_qualifier_seq",
586 "cvar_qualifier", "declarator", "direct_declarator", "nested_declarator",
587 "direct_nested_declarator", "parameter_declaration_clause",
588 "parameter_declaration_list_opt", "parameter_declaration_list",
589 "parameter_declaration", "m_abstract_declarator",
590 "direct_m_abstract_declarator", "function_definition", "initializer_opt",
591 "initializer", "class_body", "member_specification_opt",
592 "member_specification", "member_declaration",
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100593 "member_declarator_list_opt", "member_declarator_list",
594 "member_declarator", "member_bitfield_declarator", "attribute_opt",
Michal Marek303fc012011-02-15 16:04:35 +0100595 "enum_body", "enumerator_list", "enumerator", "asm_definition",
Jan Beulichdc533242014-04-03 14:46:37 -0700596 "asm_phrase_opt", "export_definition", YY_NULL
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100597};
598#endif
599
600# ifdef YYPRINT
601/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
602 token YYLEX-NUM. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200603static const yytype_uint16 yytoknum[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100604{
605 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
606 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
607 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
608 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
Jan Beulichdc533242014-04-03 14:46:37 -0700609 295, 296, 297, 298, 299, 59, 125, 44, 40, 41,
610 42, 61, 123, 58
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100611};
612# endif
613
614/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200615static const yytype_uint8 yyr1[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100616{
Jan Beulichdc533242014-04-03 14:46:37 -0700617 0, 54, 55, 55, 57, 56, 59, 58, 60, 58,
618 58, 58, 58, 58, 58, 58, 61, 62, 62, 63,
619 63, 64, 65, 65, 66, 66, 67, 67, 68, 68,
620 68, 68, 68, 69, 69, 69, 69, 69, 69, 69,
621 69, 69, 69, 69, 69, 69, 70, 70, 70, 70,
622 70, 70, 70, 70, 70, 70, 70, 71, 72, 72,
623 73, 73, 74, 74, 74, 74, 75, 75, 76, 76,
624 76, 76, 76, 76, 77, 77, 78, 78, 78, 78,
625 78, 78, 78, 79, 79, 79, 80, 80, 81, 81,
626 82, 83, 83, 84, 84, 84, 84, 84, 84, 84,
627 84, 85, 86, 86, 87, 88, 88, 89, 89, 90,
628 90, 91, 91, 92, 92, 93, 93, 94, 94, 94,
629 95, 96, 96, 97, 97, 98, 98, 99, 99, 100,
630 101, 101, 102
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100631};
632
633/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200634static const yytype_uint8 yyr2[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100635{
Sam Ravnborg70f75242007-09-01 10:26:32 +0200636 0, 2, 1, 2, 0, 2, 0, 4, 0, 3,
637 1, 1, 1, 1, 2, 2, 3, 0, 1, 1,
638 3, 4, 0, 1, 1, 2, 1, 1, 1, 1,
Jan Beulichdc533242014-04-03 14:46:37 -0700639 1, 1, 1, 1, 1, 4, 1, 2, 2, 2,
Sam Ravnborg70f75242007-09-01 10:26:32 +0200640 3, 3, 3, 2, 2, 2, 1, 1, 1, 1,
641 1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
642 1, 2, 1, 1, 1, 1, 2, 1, 1, 4,
643 4, 2, 3, 3, 2, 1, 1, 1, 4, 4,
644 2, 3, 3, 2, 1, 3, 0, 1, 1, 3,
645 2, 2, 1, 0, 1, 1, 4, 4, 2, 3,
646 3, 3, 0, 1, 2, 3, 3, 0, 1, 1,
647 2, 3, 2, 0, 1, 1, 3, 2, 2, 1,
Michal Marek303fc012011-02-15 16:04:35 +0100648 2, 0, 2, 3, 4, 1, 3, 1, 3, 2,
649 0, 1, 5
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100650};
651
Michal Marek0359de72011-10-11 12:07:05 +0200652/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
653 Performed when YYTABLE doesn't specify something else to do. Zero
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100654 means the default is an error. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200655static const yytype_uint8 yydefact[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100656{
Sam Ravnborg70f75242007-09-01 10:26:32 +0200657 4, 4, 2, 0, 1, 3, 0, 28, 55, 46,
658 62, 53, 0, 31, 0, 52, 32, 48, 49, 29,
659 65, 47, 50, 30, 0, 8, 0, 51, 54, 63,
Jan Beulichdc533242014-04-03 14:46:37 -0700660 0, 0, 0, 64, 36, 56, 5, 10, 17, 23,
661 24, 26, 27, 33, 34, 11, 12, 13, 14, 15,
662 39, 0, 43, 6, 37, 0, 44, 22, 38, 45,
663 0, 0, 129, 68, 0, 58, 0, 18, 19, 0,
664 130, 67, 25, 42, 127, 0, 125, 22, 40, 0,
665 113, 0, 0, 109, 9, 17, 41, 93, 0, 0,
666 0, 0, 57, 59, 60, 16, 0, 66, 131, 101,
667 121, 71, 0, 0, 123, 0, 7, 112, 106, 76,
668 77, 0, 0, 0, 121, 75, 0, 114, 115, 119,
669 105, 0, 110, 130, 94, 56, 0, 93, 90, 92,
670 35, 0, 73, 72, 61, 20, 102, 0, 0, 84,
671 87, 88, 128, 124, 126, 118, 0, 76, 0, 120,
672 74, 117, 80, 0, 111, 0, 0, 95, 0, 91,
673 98, 0, 132, 122, 0, 21, 103, 70, 69, 83,
674 0, 82, 81, 0, 0, 116, 100, 99, 0, 0,
675 104, 85, 89, 79, 78, 97, 96
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100676};
677
Sam Ravnborg70f75242007-09-01 10:26:32 +0200678/* YYDEFGOTO[NTERM-NUM]. */
679static const yytype_int16 yydefgoto[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100680{
Jan Beulichdc533242014-04-03 14:46:37 -0700681 -1, 1, 2, 3, 36, 77, 57, 37, 66, 67,
682 68, 80, 39, 40, 41, 42, 43, 69, 92, 93,
683 44, 123, 71, 114, 115, 138, 139, 140, 141, 128,
684 129, 45, 165, 166, 56, 81, 82, 83, 116, 117,
685 118, 119, 136, 52, 75, 76, 46, 100, 47
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100686};
687
688/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
689 STATE-NUM. */
Jan Beulichdc533242014-04-03 14:46:37 -0700690#define YYPACT_NINF -140
Sam Ravnborg70f75242007-09-01 10:26:32 +0200691static const yytype_int16 yypact[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100692{
Jan Beulichdc533242014-04-03 14:46:37 -0700693 -140, 29, -140, 207, -140, -140, 40, -140, -140, -140,
694 -140, -140, -27, -140, 44, -140, -140, -140, -140, -140,
695 -140, -140, -140, -140, -22, -140, -18, -140, -140, -140,
696 -9, 22, 28, -140, -140, -140, -140, -140, 42, 472,
697 -140, -140, -140, -140, -140, -140, -140, -140, -140, -140,
698 46, 43, -140, -140, 47, 107, -140, 472, 47, -140,
699 472, 62, -140, -140, 16, -3, 57, 56, -140, 42,
700 35, -11, -140, -140, 53, 48, -140, 472, -140, 51,
701 21, 59, 157, -140, -140, 42, -140, 388, 58, 60,
702 70, 81, -140, -3, -140, -140, 42, -140, -140, -140,
703 -140, -140, 253, 71, -140, -20, -140, -140, -140, 83,
704 -140, 5, 102, 34, -140, 12, 95, 94, -140, -140,
705 -140, 97, -140, 113, -140, -140, 2, 41, -140, 27,
706 -140, 99, -140, -140, -140, -140, -24, 98, 101, 109,
707 104, -140, -140, -140, -140, -140, 105, -140, 110, -140,
708 -140, 117, -140, 298, -140, 21, 112, -140, 120, -140,
709 -140, 343, -140, -140, 121, -140, -140, -140, -140, -140,
710 434, -140, -140, 131, 137, -140, -140, -140, 138, 141,
711 -140, -140, -140, -140, -140, -140, -140
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100712};
713
714/* YYPGOTO[NTERM-NUM]. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200715static const yytype_int16 yypgoto[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100716{
Jan Beulichdc533242014-04-03 14:46:37 -0700717 -140, -140, 190, -140, -140, -140, -140, -45, -140, -140,
718 96, 1, -60, -31, -140, -140, -140, -78, -140, -140,
719 -55, -7, -140, -92, -140, -139, -140, -140, -59, -39,
720 -140, -140, -140, -140, -13, -140, -140, 111, -140, -140,
721 39, 87, 84, 147, -140, 106, -140, -140, -140
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100722};
723
724/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
725 positive, shift that token. If negative, reduce the rule which
Michal Marek0359de72011-10-11 12:07:05 +0200726 number is the opposite. If YYTABLE_NINF, syntax error. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200727#define YYTABLE_NINF -109
728static const yytype_int16 yytable[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100729{
Jan Beulichdc533242014-04-03 14:46:37 -0700730 87, 88, 113, 156, 38, 10, 146, 163, 72, 127,
731 94, 50, 84, 59, 174, 20, 54, 90, 74, 148,
732 58, 150, 179, 101, 29, 51, 143, 164, 33, 4,
733 55, 70, 106, 113, 55, 113, -93, 102, 134, 60,
734 124, 78, 87, 147, 157, 86, 152, 110, 127, 127,
735 126, -93, 65, 111, 63, 65, 72, 91, 85, 109,
736 153, 160, 97, 110, 64, 98, 65, 53, 99, 111,
737 61, 65, 147, 62, 112, 161, 110, 113, 85, 124,
738 63, 74, 111, 157, 65, 48, 49, 158, 159, 126,
739 64, 65, 65, 87, 104, 105, 107, 108, 51, 55,
740 89, 87, 95, 96, 103, 120, 142, 130, 79, 131,
741 87, 182, 7, 8, 9, 10, 11, 12, 13, 132,
742 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
743 133, 26, 27, 28, 29, 30, 112, 149, 33, 34,
744 154, 155, 107, 98, 162, -22, 169, 167, 163, 35,
745 168, 170, -22, -107, 171, -22, 180, -22, 121, 172,
746 -22, 176, 7, 8, 9, 10, 11, 12, 13, 177,
747 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
748 183, 26, 27, 28, 29, 30, 184, 185, 33, 34,
749 186, 5, 135, 122, 175, -22, 145, 73, 151, 35,
750 0, 0, -22, -108, 0, -22, 0, -22, 6, 0,
751 -22, 144, 7, 8, 9, 10, 11, 12, 13, 14,
752 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
753 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
754 0, 0, 0, 0, 0, -22, 0, 0, 0, 35,
755 0, 0, -22, 0, 137, -22, 0, -22, 7, 8,
756 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
757 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
758 29, 30, 0, 0, 33, 34, 0, 0, 0, 0,
759 -86, 0, 0, 0, 0, 35, 0, 0, 0, 173,
760 0, 0, -86, 7, 8, 9, 10, 11, 12, 13,
761 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
762 24, 0, 26, 27, 28, 29, 30, 0, 0, 33,
763 34, 0, 0, 0, 0, -86, 0, 0, 0, 0,
764 35, 0, 0, 0, 178, 0, 0, -86, 7, 8,
765 9, 10, 11, 12, 13, 0, 15, 16, 17, 18,
766 19, 20, 21, 22, 23, 24, 0, 26, 27, 28,
767 29, 30, 0, 0, 33, 34, 0, 0, 0, 0,
768 -86, 0, 0, 0, 0, 35, 0, 0, 0, 0,
769 0, 0, -86, 7, 8, 9, 10, 11, 12, 13,
770 0, 15, 16, 17, 18, 19, 20, 21, 22, 23,
771 24, 0, 26, 27, 28, 29, 30, 0, 0, 33,
772 34, 0, 0, 0, 0, 0, 124, 0, 0, 0,
773 125, 0, 0, 0, 0, 0, 126, 0, 65, 7,
Michal Marek303fc012011-02-15 16:04:35 +0100774 8, 9, 10, 11, 12, 13, 0, 15, 16, 17,
775 18, 19, 20, 21, 22, 23, 24, 0, 26, 27,
Jan Beulichdc533242014-04-03 14:46:37 -0700776 28, 29, 30, 0, 0, 33, 34, 0, 0, 0,
777 0, 181, 0, 0, 0, 0, 35, 7, 8, 9,
778 10, 11, 12, 13, 0, 15, 16, 17, 18, 19,
779 20, 21, 22, 23, 24, 0, 26, 27, 28, 29,
780 30, 0, 0, 33, 34, 0, 0, 0, 0, 0,
781 0, 0, 0, 0, 35
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100782};
783
Michal Marek0359de72011-10-11 12:07:05 +0200784#define yypact_value_is_default(yystate) \
Jan Beulichdc533242014-04-03 14:46:37 -0700785 ((yystate) == (-140))
Michal Marek0359de72011-10-11 12:07:05 +0200786
787#define yytable_value_is_error(yytable_value) \
788 YYID (0)
789
Sam Ravnborg70f75242007-09-01 10:26:32 +0200790static const yytype_int16 yycheck[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100791{
Jan Beulichdc533242014-04-03 14:46:37 -0700792 60, 60, 80, 1, 3, 8, 1, 31, 39, 87,
793 65, 38, 57, 26, 153, 18, 38, 1, 38, 111,
794 38, 113, 161, 34, 27, 52, 46, 51, 31, 0,
795 52, 38, 77, 111, 52, 113, 34, 48, 93, 48,
796 38, 54, 102, 38, 42, 58, 34, 42, 126, 127,
797 48, 49, 50, 48, 38, 50, 87, 64, 57, 38,
798 48, 34, 69, 42, 48, 30, 50, 23, 33, 48,
799 48, 50, 38, 45, 53, 48, 42, 155, 77, 38,
800 38, 38, 48, 42, 50, 45, 46, 126, 127, 48,
801 48, 50, 50, 153, 46, 47, 45, 46, 52, 52,
802 38, 161, 45, 47, 51, 46, 35, 49, 1, 49,
803 170, 170, 5, 6, 7, 8, 9, 10, 11, 49,
804 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
805 49, 24, 25, 26, 27, 28, 53, 35, 31, 32,
806 45, 47, 45, 30, 45, 38, 37, 49, 31, 42,
807 49, 47, 45, 46, 49, 48, 35, 50, 1, 49,
808 53, 49, 5, 6, 7, 8, 9, 10, 11, 49,
809 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
810 49, 24, 25, 26, 27, 28, 49, 49, 31, 32,
811 49, 1, 96, 82, 155, 38, 109, 50, 114, 42,
812 -1, -1, 45, 46, -1, 48, -1, 50, 1, -1,
813 53, 105, 5, 6, 7, 8, 9, 10, 11, 12,
814 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
815 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
816 -1, -1, -1, -1, -1, 38, -1, -1, -1, 42,
817 -1, -1, 45, -1, 1, 48, -1, 50, 5, 6,
818 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
819 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
820 27, 28, -1, -1, 31, 32, -1, -1, -1, -1,
821 37, -1, -1, -1, -1, 42, -1, -1, -1, 1,
822 -1, -1, 49, 5, 6, 7, 8, 9, 10, 11,
823 -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
824 22, -1, 24, 25, 26, 27, 28, -1, -1, 31,
825 32, -1, -1, -1, -1, 37, -1, -1, -1, -1,
826 42, -1, -1, -1, 1, -1, -1, 49, 5, 6,
827 7, 8, 9, 10, 11, -1, 13, 14, 15, 16,
828 17, 18, 19, 20, 21, 22, -1, 24, 25, 26,
829 27, 28, -1, -1, 31, 32, -1, -1, -1, -1,
830 37, -1, -1, -1, -1, 42, -1, -1, -1, -1,
831 -1, -1, 49, 5, 6, 7, 8, 9, 10, 11,
832 -1, 13, 14, 15, 16, 17, 18, 19, 20, 21,
833 22, -1, 24, 25, 26, 27, 28, -1, -1, 31,
834 32, -1, -1, -1, -1, -1, 38, -1, -1, -1,
835 42, -1, -1, -1, -1, -1, 48, -1, 50, 5,
Michal Marek303fc012011-02-15 16:04:35 +0100836 6, 7, 8, 9, 10, 11, -1, 13, 14, 15,
837 16, 17, 18, 19, 20, 21, 22, -1, 24, 25,
Jan Beulichdc533242014-04-03 14:46:37 -0700838 26, 27, 28, -1, -1, 31, 32, -1, -1, -1,
839 -1, 37, -1, -1, -1, -1, 42, 5, 6, 7,
840 8, 9, 10, 11, -1, 13, 14, 15, 16, 17,
841 18, 19, 20, 21, 22, -1, 24, 25, 26, 27,
842 28, -1, -1, 31, 32, -1, -1, -1, -1, -1,
843 -1, -1, -1, -1, 42
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100844};
845
846/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
847 symbol of state STATE-NUM. */
Sam Ravnborg70f75242007-09-01 10:26:32 +0200848static const yytype_uint8 yystos[] =
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100849{
Jan Beulichdc533242014-04-03 14:46:37 -0700850 0, 55, 56, 57, 0, 56, 1, 5, 6, 7,
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100851 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
852 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
Jan Beulichdc533242014-04-03 14:46:37 -0700853 28, 29, 30, 31, 32, 42, 58, 61, 65, 66,
854 67, 68, 69, 70, 74, 85, 100, 102, 45, 46,
855 38, 52, 97, 23, 38, 52, 88, 60, 38, 88,
856 48, 48, 45, 38, 48, 50, 62, 63, 64, 71,
857 75, 76, 67, 97, 38, 98, 99, 59, 88, 1,
858 65, 89, 90, 91, 61, 65, 88, 66, 82, 38,
859 1, 75, 72, 73, 74, 45, 47, 75, 30, 33,
860 101, 34, 48, 51, 46, 47, 61, 45, 46, 38,
861 42, 48, 53, 71, 77, 78, 92, 93, 94, 95,
862 46, 1, 91, 75, 38, 42, 48, 71, 83, 84,
863 49, 49, 49, 49, 74, 64, 96, 1, 79, 80,
864 81, 82, 35, 46, 99, 95, 1, 38, 77, 35,
865 77, 96, 34, 48, 45, 47, 1, 42, 83, 83,
866 34, 48, 45, 31, 51, 86, 87, 49, 49, 37,
867 47, 49, 49, 1, 79, 94, 49, 49, 1, 79,
868 35, 37, 82, 49, 49, 49, 49
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100869};
870
Linus Torvalds1da177e2005-04-16 15:20:36 -0700871#define yyerrok (yyerrstatus = 0)
872#define yyclearin (yychar = YYEMPTY)
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100873#define YYEMPTY (-2)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700874#define YYEOF 0
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100875
Linus Torvalds1da177e2005-04-16 15:20:36 -0700876#define YYACCEPT goto yyacceptlab
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100877#define YYABORT goto yyabortlab
878#define YYERROR goto yyerrorlab
879
880
881/* Like YYERROR except do call yyerror. This remains here temporarily
882 to ease the transition to the new meaning of YYERROR, for GCC.
Arnaud Lacombe58ef81c2011-05-23 01:52:59 -0400883 Once GCC version 2 has supplanted version 1, this can go. However,
884 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
885 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
886 discussed. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100887
Linus Torvalds1da177e2005-04-16 15:20:36 -0700888#define YYFAIL goto yyerrlab
Arnaud Lacombe58ef81c2011-05-23 01:52:59 -0400889#if defined YYFAIL
890 /* This is here to suppress warnings from the GCC cpp's
891 -Wunused-macros. Normally we don't worry about that warning, but
892 some users do, and we want to make it easy for users to remove
893 YYFAIL uses, which will produce warnings from Bison 2.5. */
894#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100895
Linus Torvalds1da177e2005-04-16 15:20:36 -0700896#define YYRECOVERING() (!!yyerrstatus)
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100897
Jan Beulichdc533242014-04-03 14:46:37 -0700898#define YYBACKUP(Token, Value) \
899do \
900 if (yychar == YYEMPTY) \
901 { \
902 yychar = (Token); \
903 yylval = (Value); \
904 YYPOPSTACK (yylen); \
905 yystate = *yyssp; \
906 goto yybackup; \
907 } \
908 else \
909 { \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200910 yyerror (YY_("syntax error: cannot back up")); \
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100911 YYERROR; \
912 } \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200913while (YYID (0))
Linus Torvalds1da177e2005-04-16 15:20:36 -0700914
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100915
Linus Torvalds1da177e2005-04-16 15:20:36 -0700916#define YYTERROR 1
917#define YYERRCODE 256
918
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100919
920/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
921 If N is 0, then set CURRENT to the empty location which ends
922 the previous symbol: RHS[0] (always defined). */
923
924#define YYRHSLOC(Rhs, K) ((Rhs)[K])
925#ifndef YYLLOC_DEFAULT
926# define YYLLOC_DEFAULT(Current, Rhs, N) \
927 do \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200928 if (YYID (N)) \
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100929 { \
930 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
931 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
932 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
933 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
934 } \
935 else \
936 { \
937 (Current).first_line = (Current).last_line = \
938 YYRHSLOC (Rhs, 0).last_line; \
939 (Current).first_column = (Current).last_column = \
940 YYRHSLOC (Rhs, 0).last_column; \
941 } \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200942 while (YYID (0))
Linus Torvalds1da177e2005-04-16 15:20:36 -0700943#endif
944
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100945
Michal Marek0359de72011-10-11 12:07:05 +0200946/* This macro is provided for backward compatibility. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100947
948#ifndef YY_LOCATION_PRINT
Michal Marek0359de72011-10-11 12:07:05 +0200949# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100950#endif
951
952
953/* YYLEX -- calling `yylex' with the right arguments. */
954
Linus Torvalds1da177e2005-04-16 15:20:36 -0700955#ifdef YYLEX_PARAM
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100956# define YYLEX yylex (YYLEX_PARAM)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700957#else
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100958# define YYLEX yylex ()
Linus Torvalds1da177e2005-04-16 15:20:36 -0700959#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100960
961/* Enable debugging if requested. */
962#if YYDEBUG
963
964# ifndef YYFPRINTF
965# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
966# define YYFPRINTF fprintf
967# endif
968
969# define YYDPRINTF(Args) \
970do { \
971 if (yydebug) \
972 YYFPRINTF Args; \
Sam Ravnborg70f75242007-09-01 10:26:32 +0200973} while (YYID (0))
Sam Ravnborgc40f5642005-12-26 22:53:25 +0100974
Sam Ravnborg70f75242007-09-01 10:26:32 +0200975# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
976do { \
977 if (yydebug) \
978 { \
979 YYFPRINTF (stderr, "%s ", Title); \
980 yy_symbol_print (stderr, \
981 Type, Value); \
982 YYFPRINTF (stderr, "\n"); \
983 } \
984} while (YYID (0))
985
986
987/*--------------------------------.
988| Print this symbol on YYOUTPUT. |
989`--------------------------------*/
990
991/*ARGSUSED*/
992#if (defined __STDC__ || defined __C99__FUNC__ \
993 || defined __cplusplus || defined _MSC_VER)
994static void
995yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
996#else
997static void
998yy_symbol_value_print (yyoutput, yytype, yyvaluep)
999 FILE *yyoutput;
1000 int yytype;
1001 YYSTYPE const * const yyvaluep;
1002#endif
1003{
Jan Beulichdc533242014-04-03 14:46:37 -07001004 FILE *yyo = yyoutput;
1005 YYUSE (yyo);
Sam Ravnborg70f75242007-09-01 10:26:32 +02001006 if (!yyvaluep)
1007 return;
1008# ifdef YYPRINT
1009 if (yytype < YYNTOKENS)
1010 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1011# else
1012 YYUSE (yyoutput);
1013# endif
1014 switch (yytype)
1015 {
1016 default:
1017 break;
1018 }
1019}
1020
1021
1022/*--------------------------------.
1023| Print this symbol on YYOUTPUT. |
1024`--------------------------------*/
1025
1026#if (defined __STDC__ || defined __C99__FUNC__ \
1027 || defined __cplusplus || defined _MSC_VER)
1028static void
1029yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1030#else
1031static void
1032yy_symbol_print (yyoutput, yytype, yyvaluep)
1033 FILE *yyoutput;
1034 int yytype;
1035 YYSTYPE const * const yyvaluep;
1036#endif
1037{
1038 if (yytype < YYNTOKENS)
1039 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1040 else
1041 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1042
1043 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1044 YYFPRINTF (yyoutput, ")");
1045}
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001046
1047/*------------------------------------------------------------------.
1048| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1049| TOP (included). |
1050`------------------------------------------------------------------*/
1051
Sam Ravnborg70f75242007-09-01 10:26:32 +02001052#if (defined __STDC__ || defined __C99__FUNC__ \
1053 || defined __cplusplus || defined _MSC_VER)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001054static void
Michal Marek303fc012011-02-15 16:04:35 +01001055yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001056#else
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001057static void
Michal Marek303fc012011-02-15 16:04:35 +01001058yy_stack_print (yybottom, yytop)
1059 yytype_int16 *yybottom;
1060 yytype_int16 *yytop;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001061#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001062{
1063 YYFPRINTF (stderr, "Stack now");
Michal Marek303fc012011-02-15 16:04:35 +01001064 for (; yybottom <= yytop; yybottom++)
1065 {
1066 int yybot = *yybottom;
1067 YYFPRINTF (stderr, " %d", yybot);
1068 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001069 YYFPRINTF (stderr, "\n");
1070}
1071
1072# define YY_STACK_PRINT(Bottom, Top) \
1073do { \
1074 if (yydebug) \
1075 yy_stack_print ((Bottom), (Top)); \
Sam Ravnborg70f75242007-09-01 10:26:32 +02001076} while (YYID (0))
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001077
1078
1079/*------------------------------------------------.
1080| Report that the YYRULE is going to be reduced. |
1081`------------------------------------------------*/
1082
Sam Ravnborg70f75242007-09-01 10:26:32 +02001083#if (defined __STDC__ || defined __C99__FUNC__ \
1084 || defined __cplusplus || defined _MSC_VER)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001085static void
Sam Ravnborg70f75242007-09-01 10:26:32 +02001086yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001087#else
1088static void
Sam Ravnborg70f75242007-09-01 10:26:32 +02001089yy_reduce_print (yyvsp, yyrule)
1090 YYSTYPE *yyvsp;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001091 int yyrule;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001092#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001093{
Sam Ravnborg70f75242007-09-01 10:26:32 +02001094 int yynrhs = yyr2[yyrule];
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001095 int yyi;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001096 unsigned long int yylno = yyrline[yyrule];
1097 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1098 yyrule - 1, yylno);
1099 /* The symbols being reduced. */
1100 for (yyi = 0; yyi < yynrhs; yyi++)
1101 {
Michal Marek303fc012011-02-15 16:04:35 +01001102 YYFPRINTF (stderr, " $%d = ", yyi + 1);
Sam Ravnborg70f75242007-09-01 10:26:32 +02001103 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1104 &(yyvsp[(yyi + 1) - (yynrhs)])
1105 );
Michal Marek303fc012011-02-15 16:04:35 +01001106 YYFPRINTF (stderr, "\n");
Sam Ravnborg70f75242007-09-01 10:26:32 +02001107 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001108}
Linus Torvalds1da177e2005-04-16 15:20:36 -07001109
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001110# define YY_REDUCE_PRINT(Rule) \
1111do { \
1112 if (yydebug) \
Sam Ravnborg70f75242007-09-01 10:26:32 +02001113 yy_reduce_print (yyvsp, Rule); \
1114} while (YYID (0))
Linus Torvalds1da177e2005-04-16 15:20:36 -07001115
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001116/* Nonzero means print parse trace. It is left uninitialized so that
1117 multiple parsers can coexist. */
1118int yydebug;
1119#else /* !YYDEBUG */
1120# define YYDPRINTF(Args)
1121# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1122# define YY_STACK_PRINT(Bottom, Top)
1123# define YY_REDUCE_PRINT(Rule)
1124#endif /* !YYDEBUG */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001125
Linus Torvalds1da177e2005-04-16 15:20:36 -07001126
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001127/* YYINITDEPTH -- initial size of the parser's stacks. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001128#ifndef YYINITDEPTH
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001129# define YYINITDEPTH 200
Linus Torvalds1da177e2005-04-16 15:20:36 -07001130#endif
1131
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001132/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1133 if the built-in stack extension method is used).
Linus Torvalds1da177e2005-04-16 15:20:36 -07001134
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001135 Do not make this value too large; the results are undefined if
Sam Ravnborg70f75242007-09-01 10:26:32 +02001136 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001137 evaluated with infinite-precision integer arithmetic. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001138
1139#ifndef YYMAXDEPTH
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001140# define YYMAXDEPTH 10000
Linus Torvalds1da177e2005-04-16 15:20:36 -07001141#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001142
Linus Torvalds1da177e2005-04-16 15:20:36 -07001143
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001144#if YYERROR_VERBOSE
Linus Torvalds1da177e2005-04-16 15:20:36 -07001145
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001146# ifndef yystrlen
Sam Ravnborg70f75242007-09-01 10:26:32 +02001147# if defined __GLIBC__ && defined _STRING_H
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001148# define yystrlen strlen
1149# else
1150/* Return the length of YYSTR. */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001151#if (defined __STDC__ || defined __C99__FUNC__ \
1152 || defined __cplusplus || defined _MSC_VER)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001153static YYSIZE_T
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001154yystrlen (const char *yystr)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001155#else
1156static YYSIZE_T
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001157yystrlen (yystr)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001158 const char *yystr;
1159#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -07001160{
Sam Ravnborg70f75242007-09-01 10:26:32 +02001161 YYSIZE_T yylen;
1162 for (yylen = 0; yystr[yylen]; yylen++)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001163 continue;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001164 return yylen;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001165}
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001166# endif
1167# endif
Linus Torvalds1da177e2005-04-16 15:20:36 -07001168
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001169# ifndef yystpcpy
Sam Ravnborg70f75242007-09-01 10:26:32 +02001170# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001171# define yystpcpy stpcpy
1172# else
1173/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1174 YYDEST. */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001175#if (defined __STDC__ || defined __C99__FUNC__ \
1176 || defined __cplusplus || defined _MSC_VER)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001177static char *
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001178yystpcpy (char *yydest, const char *yysrc)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001179#else
1180static char *
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001181yystpcpy (yydest, yysrc)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001182 char *yydest;
1183 const char *yysrc;
1184#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -07001185{
Sam Ravnborg70f75242007-09-01 10:26:32 +02001186 char *yyd = yydest;
1187 const char *yys = yysrc;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001188
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001189 while ((*yyd++ = *yys++) != '\0')
1190 continue;
1191
1192 return yyd - 1;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001193}
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001194# endif
1195# endif
Linus Torvalds1da177e2005-04-16 15:20:36 -07001196
Sam Ravnborg70f75242007-09-01 10:26:32 +02001197# ifndef yytnamerr
1198/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1199 quotes and backslashes, so that it's suitable for yyerror. The
1200 heuristic is that double-quoting is unnecessary unless the string
1201 contains an apostrophe, a comma, or backslash (other than
1202 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1203 null, do not copy; instead, return the length of what the result
1204 would have been. */
1205static YYSIZE_T
1206yytnamerr (char *yyres, const char *yystr)
1207{
1208 if (*yystr == '"')
1209 {
1210 YYSIZE_T yyn = 0;
1211 char const *yyp = yystr;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001212
Sam Ravnborg70f75242007-09-01 10:26:32 +02001213 for (;;)
1214 switch (*++yyp)
1215 {
1216 case '\'':
1217 case ',':
1218 goto do_not_strip_quotes;
1219
1220 case '\\':
1221 if (*++yyp != '\\')
1222 goto do_not_strip_quotes;
1223 /* Fall through. */
1224 default:
1225 if (yyres)
1226 yyres[yyn] = *yyp;
1227 yyn++;
1228 break;
1229
1230 case '"':
1231 if (yyres)
1232 yyres[yyn] = '\0';
1233 return yyn;
1234 }
1235 do_not_strip_quotes: ;
1236 }
1237
1238 if (! yyres)
1239 return yystrlen (yystr);
1240
1241 return yystpcpy (yyres, yystr) - yyres;
1242}
1243# endif
1244
Michal Marek0359de72011-10-11 12:07:05 +02001245/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1246 about the unexpected token YYTOKEN for the state stack whose top is
1247 YYSSP.
1248
1249 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
1250 not large enough to hold the message. In that case, also set
1251 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
1252 required number of bytes is too large to store. */
1253static int
1254yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1255 yytype_int16 *yyssp, int yytoken)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001256{
Jan Beulichdc533242014-04-03 14:46:37 -07001257 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
Michal Marek0359de72011-10-11 12:07:05 +02001258 YYSIZE_T yysize = yysize0;
1259 YYSIZE_T yysize1;
1260 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1261 /* Internationalized format string. */
Jan Beulichdc533242014-04-03 14:46:37 -07001262 const char *yyformat = YY_NULL;
Michal Marek0359de72011-10-11 12:07:05 +02001263 /* Arguments of yyformat. */
1264 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1265 /* Number of reported tokens (one for the "unexpected", one per
1266 "expected"). */
1267 int yycount = 0;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001268
Michal Marek0359de72011-10-11 12:07:05 +02001269 /* There are many possibilities here to consider:
1270 - Assume YYFAIL is not used. It's too flawed to consider. See
1271 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1272 for details. YYERROR is fine as it does not invoke this
1273 function.
1274 - If this state is a consistent state with a default action, then
1275 the only way this function was invoked is if the default action
1276 is an error action. In that case, don't check for expected
1277 tokens because there are none.
1278 - The only way there can be no lookahead present (in yychar) is if
1279 this state is a consistent state with a default action. Thus,
1280 detecting the absence of a lookahead is sufficient to determine
1281 that there is no unexpected or expected token to report. In that
1282 case, just report a simple "syntax error".
1283 - Don't assume there isn't a lookahead just because this state is a
1284 consistent state with a default action. There might have been a
1285 previous inconsistent state, consistent state with a non-default
1286 action, or user semantic action that manipulated yychar.
1287 - Of course, the expected token list depends on states to have
1288 correct lookahead information, and it depends on the parser not
1289 to perform extra reductions after fetching a lookahead from the
1290 scanner and before detecting a syntax error. Thus, state merging
1291 (from LALR or IELR) and default reductions corrupt the expected
1292 token list. However, the list is correct for canonical LR with
1293 one exception: it will still contain any token that will not be
1294 accepted due to an error action in a later state.
1295 */
1296 if (yytoken != YYEMPTY)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001297 {
Michal Marek0359de72011-10-11 12:07:05 +02001298 int yyn = yypact[*yyssp];
1299 yyarg[yycount++] = yytname[yytoken];
1300 if (!yypact_value_is_default (yyn))
1301 {
1302 /* Start YYX at -YYN if negative to avoid negative indexes in
1303 YYCHECK. In other words, skip the first -YYN actions for
1304 this state because they are default actions. */
1305 int yyxbegin = yyn < 0 ? -yyn : 0;
1306 /* Stay within bounds of both yycheck and yytname. */
1307 int yychecklim = YYLAST - yyn + 1;
1308 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1309 int yyx;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001310
Michal Marek0359de72011-10-11 12:07:05 +02001311 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1312 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1313 && !yytable_value_is_error (yytable[yyx + yyn]))
1314 {
1315 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1316 {
1317 yycount = 1;
1318 yysize = yysize0;
1319 break;
1320 }
1321 yyarg[yycount++] = yytname[yyx];
Jan Beulichdc533242014-04-03 14:46:37 -07001322 yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
Michal Marek0359de72011-10-11 12:07:05 +02001323 if (! (yysize <= yysize1
1324 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1325 return 2;
1326 yysize = yysize1;
1327 }
1328 }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001329 }
Michal Marek0359de72011-10-11 12:07:05 +02001330
1331 switch (yycount)
1332 {
1333# define YYCASE_(N, S) \
1334 case N: \
1335 yyformat = S; \
1336 break
1337 YYCASE_(0, YY_("syntax error"));
1338 YYCASE_(1, YY_("syntax error, unexpected %s"));
1339 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1340 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1341 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1342 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1343# undef YYCASE_
1344 }
1345
1346 yysize1 = yysize + yystrlen (yyformat);
1347 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1348 return 2;
1349 yysize = yysize1;
1350
1351 if (*yymsg_alloc < yysize)
1352 {
1353 *yymsg_alloc = 2 * yysize;
1354 if (! (yysize <= *yymsg_alloc
1355 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1356 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1357 return 1;
1358 }
1359
1360 /* Avoid sprintf, as that infringes on the user's name space.
1361 Don't have undefined behavior even if the translation
1362 produced a string with the wrong number of "%s"s. */
1363 {
1364 char *yyp = *yymsg;
1365 int yyi = 0;
1366 while ((*yyp = *yyformat) != '\0')
1367 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1368 {
1369 yyp += yytnamerr (yyp, yyarg[yyi++]);
1370 yyformat += 2;
1371 }
1372 else
1373 {
1374 yyp++;
1375 yyformat++;
1376 }
1377 }
1378 return 0;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001379}
1380#endif /* YYERROR_VERBOSE */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001381
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001382/*-----------------------------------------------.
1383| Release the memory associated to this symbol. |
1384`-----------------------------------------------*/
1385
Sam Ravnborg70f75242007-09-01 10:26:32 +02001386/*ARGSUSED*/
1387#if (defined __STDC__ || defined __C99__FUNC__ \
1388 || defined __cplusplus || defined _MSC_VER)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001389static void
1390yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1391#else
1392static void
1393yydestruct (yymsg, yytype, yyvaluep)
1394 const char *yymsg;
1395 int yytype;
1396 YYSTYPE *yyvaluep;
1397#endif
1398{
Sam Ravnborg70f75242007-09-01 10:26:32 +02001399 YYUSE (yyvaluep);
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001400
1401 if (!yymsg)
1402 yymsg = "Deleting";
1403 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1404
1405 switch (yytype)
1406 {
1407
1408 default:
Sam Ravnborg70f75242007-09-01 10:26:32 +02001409 break;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001410 }
1411}
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001412
Michal Marek0359de72011-10-11 12:07:05 +02001413
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001414/* Prevent warnings from -Wmissing-prototypes. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001415#ifdef YYPARSE_PARAM
Sam Ravnborg70f75242007-09-01 10:26:32 +02001416#if defined __STDC__ || defined __cplusplus
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001417int yyparse (void *YYPARSE_PARAM);
Sam Ravnborg70f75242007-09-01 10:26:32 +02001418#else
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001419int yyparse ();
Sam Ravnborg70f75242007-09-01 10:26:32 +02001420#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001421#else /* ! YYPARSE_PARAM */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001422#if defined __STDC__ || defined __cplusplus
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001423int yyparse (void);
1424#else
1425int yyparse ();
1426#endif
1427#endif /* ! YYPARSE_PARAM */
1428
1429
Michal Marek303fc012011-02-15 16:04:35 +01001430/* The lookahead symbol. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001431int yychar;
1432
Michal Marek303fc012011-02-15 16:04:35 +01001433/* The semantic value of the lookahead symbol. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001434YYSTYPE yylval;
1435
1436/* Number of syntax errors so far. */
1437int yynerrs;
1438
1439
Michal Marek0359de72011-10-11 12:07:05 +02001440/*----------.
1441| yyparse. |
1442`----------*/
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001443
1444#ifdef YYPARSE_PARAM
Sam Ravnborg70f75242007-09-01 10:26:32 +02001445#if (defined __STDC__ || defined __C99__FUNC__ \
1446 || defined __cplusplus || defined _MSC_VER)
1447int
1448yyparse (void *YYPARSE_PARAM)
1449#else
1450int
1451yyparse (YYPARSE_PARAM)
1452 void *YYPARSE_PARAM;
1453#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001454#else /* ! YYPARSE_PARAM */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001455#if (defined __STDC__ || defined __C99__FUNC__ \
1456 || defined __cplusplus || defined _MSC_VER)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001457int
1458yyparse (void)
1459#else
1460int
1461yyparse ()
1462
1463#endif
1464#endif
1465{
Michal Marek303fc012011-02-15 16:04:35 +01001466 int yystate;
1467 /* Number of tokens to shift before error messages enabled. */
1468 int yyerrstatus;
1469
1470 /* The stacks and their tools:
1471 `yyss': related to states.
1472 `yyvs': related to semantic values.
1473
Jan Beulichdc533242014-04-03 14:46:37 -07001474 Refer to the stacks through separate pointers, to allow yyoverflow
Michal Marek303fc012011-02-15 16:04:35 +01001475 to reallocate them elsewhere. */
1476
1477 /* The state stack. */
1478 yytype_int16 yyssa[YYINITDEPTH];
1479 yytype_int16 *yyss;
1480 yytype_int16 *yyssp;
1481
1482 /* The semantic value stack. */
1483 YYSTYPE yyvsa[YYINITDEPTH];
1484 YYSTYPE *yyvs;
1485 YYSTYPE *yyvsp;
1486
1487 YYSIZE_T yystacksize;
1488
Sam Ravnborg70f75242007-09-01 10:26:32 +02001489 int yyn;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001490 int yyresult;
Michal Marek303fc012011-02-15 16:04:35 +01001491 /* Lookahead token as an internal (translated) token number. */
1492 int yytoken;
1493 /* The variables used to return semantic value and location from the
1494 action routines. */
1495 YYSTYPE yyval;
1496
Sam Ravnborg70f75242007-09-01 10:26:32 +02001497#if YYERROR_VERBOSE
1498 /* Buffer for error messages, and its allocated size. */
1499 char yymsgbuf[128];
1500 char *yymsg = yymsgbuf;
1501 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1502#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001503
Sam Ravnborg70f75242007-09-01 10:26:32 +02001504#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
Linus Torvalds1da177e2005-04-16 15:20:36 -07001505
Sam Ravnborg70f75242007-09-01 10:26:32 +02001506 /* The number of symbols on the RHS of the reduced rule.
1507 Keep to zero when no symbol should be popped. */
1508 int yylen = 0;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001509
Michal Marek303fc012011-02-15 16:04:35 +01001510 yytoken = 0;
1511 yyss = yyssa;
1512 yyvs = yyvsa;
1513 yystacksize = YYINITDEPTH;
1514
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001515 YYDPRINTF ((stderr, "Starting parse\n"));
Linus Torvalds1da177e2005-04-16 15:20:36 -07001516
1517 yystate = 0;
1518 yyerrstatus = 0;
1519 yynerrs = 0;
Michal Marek303fc012011-02-15 16:04:35 +01001520 yychar = YYEMPTY; /* Cause a token to be read. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001521
1522 /* Initialize stack pointers.
1523 Waste one element of value and location stack
1524 so that they stay on the same level as the state stack.
1525 The wasted elements are never initialized. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001526 yyssp = yyss;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001527 yyvsp = yyvs;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001528
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001529 goto yysetstate;
1530
1531/*------------------------------------------------------------.
1532| yynewstate -- Push a new state, which is found in yystate. |
1533`------------------------------------------------------------*/
1534 yynewstate:
1535 /* In all cases, when you get here, the value and location stacks
Sam Ravnborg70f75242007-09-01 10:26:32 +02001536 have just been pushed. So pushing a state here evens the stacks. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001537 yyssp++;
1538
1539 yysetstate:
1540 *yyssp = yystate;
1541
1542 if (yyss + yystacksize - 1 <= yyssp)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001543 {
Linus Torvalds1da177e2005-04-16 15:20:36 -07001544 /* Get the current used size of the three stacks, in elements. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001545 YYSIZE_T yysize = yyssp - yyss + 1;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001546
1547#ifdef yyoverflow
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001548 {
Sam Ravnborg70f75242007-09-01 10:26:32 +02001549 /* Give user a chance to reallocate the stack. Use copies of
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001550 these so that the &'s don't force the real ones into
1551 memory. */
1552 YYSTYPE *yyvs1 = yyvs;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001553 yytype_int16 *yyss1 = yyss;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001554
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001555 /* Each stack pointer address is followed by the size of the
1556 data in use in that stack, in bytes. This used to be a
1557 conditional around just the two extra args, but that might
1558 be undefined if yyoverflow is a macro. */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001559 yyoverflow (YY_("memory exhausted"),
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001560 &yyss1, yysize * sizeof (*yyssp),
1561 &yyvs1, yysize * sizeof (*yyvsp),
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001562 &yystacksize);
1563
1564 yyss = yyss1;
1565 yyvs = yyvs1;
1566 }
Linus Torvalds1da177e2005-04-16 15:20:36 -07001567#else /* no yyoverflow */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001568# ifndef YYSTACK_RELOCATE
Sam Ravnborg70f75242007-09-01 10:26:32 +02001569 goto yyexhaustedlab;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001570# else
Linus Torvalds1da177e2005-04-16 15:20:36 -07001571 /* Extend the stack our own way. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001572 if (YYMAXDEPTH <= yystacksize)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001573 goto yyexhaustedlab;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001574 yystacksize *= 2;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001575 if (YYMAXDEPTH < yystacksize)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001576 yystacksize = YYMAXDEPTH;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001577
1578 {
Sam Ravnborg70f75242007-09-01 10:26:32 +02001579 yytype_int16 *yyss1 = yyss;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001580 union yyalloc *yyptr =
1581 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1582 if (! yyptr)
Sam Ravnborg70f75242007-09-01 10:26:32 +02001583 goto yyexhaustedlab;
Michal Marek303fc012011-02-15 16:04:35 +01001584 YYSTACK_RELOCATE (yyss_alloc, yyss);
1585 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001586# undef YYSTACK_RELOCATE
1587 if (yyss1 != yyssa)
1588 YYSTACK_FREE (yyss1);
1589 }
1590# endif
Linus Torvalds1da177e2005-04-16 15:20:36 -07001591#endif /* no yyoverflow */
1592
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001593 yyssp = yyss + yysize - 1;
1594 yyvsp = yyvs + yysize - 1;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001595
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001596 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1597 (unsigned long int) yystacksize));
1598
1599 if (yyss + yystacksize - 1 <= yyssp)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001600 YYABORT;
1601 }
1602
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001603 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
Linus Torvalds1da177e2005-04-16 15:20:36 -07001604
Michal Marek303fc012011-02-15 16:04:35 +01001605 if (yystate == YYFINAL)
1606 YYACCEPT;
1607
Linus Torvalds1da177e2005-04-16 15:20:36 -07001608 goto yybackup;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001609
1610/*-----------.
1611| yybackup. |
1612`-----------*/
1613yybackup:
Linus Torvalds1da177e2005-04-16 15:20:36 -07001614
Sam Ravnborg70f75242007-09-01 10:26:32 +02001615 /* Do appropriate processing given the current state. Read a
Michal Marek303fc012011-02-15 16:04:35 +01001616 lookahead token if we need one and don't already have one. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001617
Michal Marek303fc012011-02-15 16:04:35 +01001618 /* First try to decide what to do without reference to lookahead token. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001619 yyn = yypact[yystate];
Michal Marek0359de72011-10-11 12:07:05 +02001620 if (yypact_value_is_default (yyn))
Linus Torvalds1da177e2005-04-16 15:20:36 -07001621 goto yydefault;
1622
Michal Marek303fc012011-02-15 16:04:35 +01001623 /* Not known => get a lookahead token if don't already have one. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001624
Michal Marek303fc012011-02-15 16:04:35 +01001625 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001626 if (yychar == YYEMPTY)
1627 {
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001628 YYDPRINTF ((stderr, "Reading a token: "));
Linus Torvalds1da177e2005-04-16 15:20:36 -07001629 yychar = YYLEX;
1630 }
1631
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001632 if (yychar <= YYEOF)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001633 {
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001634 yychar = yytoken = YYEOF;
1635 YYDPRINTF ((stderr, "Now at end of input.\n"));
Linus Torvalds1da177e2005-04-16 15:20:36 -07001636 }
1637 else
1638 {
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001639 yytoken = YYTRANSLATE (yychar);
1640 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
Linus Torvalds1da177e2005-04-16 15:20:36 -07001641 }
1642
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001643 /* If the proper action on seeing token YYTOKEN is to reduce or to
1644 detect an error, take that action. */
1645 yyn += yytoken;
1646 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001647 goto yydefault;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001648 yyn = yytable[yyn];
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001649 if (yyn <= 0)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001650 {
Michal Marek0359de72011-10-11 12:07:05 +02001651 if (yytable_value_is_error (yyn))
1652 goto yyerrlab;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001653 yyn = -yyn;
1654 goto yyreduce;
1655 }
Linus Torvalds1da177e2005-04-16 15:20:36 -07001656
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001657 /* Count tokens shifted since error; after three, turn off error
1658 status. */
1659 if (yyerrstatus)
1660 yyerrstatus--;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001661
Michal Marek303fc012011-02-15 16:04:35 +01001662 /* Shift the lookahead token. */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001663 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1664
Michal Marek303fc012011-02-15 16:04:35 +01001665 /* Discard the shifted token. */
1666 yychar = YYEMPTY;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001667
Linus Torvalds1da177e2005-04-16 15:20:36 -07001668 yystate = yyn;
Sam Ravnborg70f75242007-09-01 10:26:32 +02001669 *++yyvsp = yylval;
1670
Linus Torvalds1da177e2005-04-16 15:20:36 -07001671 goto yynewstate;
1672
Linus Torvalds1da177e2005-04-16 15:20:36 -07001673
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001674/*-----------------------------------------------------------.
1675| yydefault -- do the default action for the current state. |
1676`-----------------------------------------------------------*/
1677yydefault:
Linus Torvalds1da177e2005-04-16 15:20:36 -07001678 yyn = yydefact[yystate];
1679 if (yyn == 0)
1680 goto yyerrlab;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001681 goto yyreduce;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001682
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001683
1684/*-----------------------------.
1685| yyreduce -- Do a reduction. |
1686`-----------------------------*/
Linus Torvalds1da177e2005-04-16 15:20:36 -07001687yyreduce:
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001688 /* yyn is the number of a rule to reduce with. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07001689 yylen = yyr2[yyn];
Linus Torvalds1da177e2005-04-16 15:20:36 -07001690
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001691 /* If YYLEN is nonzero, implement the default value of the action:
1692 `$$ = $1'.
1693
1694 Otherwise, the following line sets YYVAL to garbage.
1695 This behavior is undocumented and Bison
1696 users should not rely upon it. Assigning to YYVAL
1697 unconditionally makes the parser a bit smaller, and it avoids a
1698 GCC warning that YYVAL may be used uninitialized. */
1699 yyval = yyvsp[1-yylen];
1700
1701
1702 YY_REDUCE_PRINT (yyn);
1703 switch (yyn)
Linus Torvalds1da177e2005-04-16 15:20:36 -07001704 {
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001705 case 4:
Michal Marek303fc012011-02-15 16:04:35 +01001706
Michal Marek0359de72011-10-11 12:07:05 +02001707 { is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001708 break;
1709
1710 case 5:
Michal Marek303fc012011-02-15 16:04:35 +01001711
Michal Marek0359de72011-10-11 12:07:05 +02001712 { free_list(*(yyvsp[(2) - (2)]), NULL); *(yyvsp[(2) - (2)]) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001713 break;
1714
1715 case 6:
Michal Marek303fc012011-02-15 16:04:35 +01001716
Michal Marek0359de72011-10-11 12:07:05 +02001717 { is_typedef = 1; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001718 break;
1719
1720 case 7:
Michal Marek303fc012011-02-15 16:04:35 +01001721
Michal Marek0359de72011-10-11 12:07:05 +02001722 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001723 break;
1724
Sam Ravnborg70f75242007-09-01 10:26:32 +02001725 case 8:
Michal Marek303fc012011-02-15 16:04:35 +01001726
Michal Marek0359de72011-10-11 12:07:05 +02001727 { is_typedef = 1; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001728 break;
1729
Sam Ravnborg70f75242007-09-01 10:26:32 +02001730 case 9:
Michal Marek303fc012011-02-15 16:04:35 +01001731
Michal Marek0359de72011-10-11 12:07:05 +02001732 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001733 break;
1734
1735 case 14:
Sam Ravnborg70f75242007-09-01 10:26:32 +02001736
Michal Marek0359de72011-10-11 12:07:05 +02001737 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001738 break;
1739
Michal Marek303fc012011-02-15 16:04:35 +01001740 case 15:
1741
Michal Marek0359de72011-10-11 12:07:05 +02001742 { (yyval) = (yyvsp[(2) - (2)]); }
Michal Marek303fc012011-02-15 16:04:35 +01001743 break;
1744
Sam Ravnborg70f75242007-09-01 10:26:32 +02001745 case 16:
Michal Marek303fc012011-02-15 16:04:35 +01001746
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001747 { if (current_name) {
Sam Ravnborg70f75242007-09-01 10:26:32 +02001748 struct string_list *decl = (*(yyvsp[(3) - (3)]))->next;
1749 (*(yyvsp[(3) - (3)]))->next = NULL;
Linus Torvalds1da177e2005-04-16 15:20:36 -07001750 add_symbol(current_name,
1751 is_typedef ? SYM_TYPEDEF : SYM_NORMAL,
1752 decl, is_extern);
1753 current_name = NULL;
1754 }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001755 (yyval) = (yyvsp[(3) - (3)]);
Michal Marek0359de72011-10-11 12:07:05 +02001756 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001757 break;
1758
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001759 case 17:
Michal Marek303fc012011-02-15 16:04:35 +01001760
Michal Marek0359de72011-10-11 12:07:05 +02001761 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001762 break;
1763
1764 case 19:
Michal Marek303fc012011-02-15 16:04:35 +01001765
Sam Ravnborg70f75242007-09-01 10:26:32 +02001766 { struct string_list *decl = *(yyvsp[(1) - (1)]);
1767 *(yyvsp[(1) - (1)]) = NULL;
1768 add_symbol(current_name,
1769 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1770 current_name = NULL;
1771 (yyval) = (yyvsp[(1) - (1)]);
Michal Marek0359de72011-10-11 12:07:05 +02001772 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001773 break;
1774
1775 case 20:
Michal Marek303fc012011-02-15 16:04:35 +01001776
Sam Ravnborg70f75242007-09-01 10:26:32 +02001777 { struct string_list *decl = *(yyvsp[(3) - (3)]);
1778 *(yyvsp[(3) - (3)]) = NULL;
1779 free_list(*(yyvsp[(2) - (3)]), NULL);
1780 *(yyvsp[(2) - (3)]) = decl_spec;
1781 add_symbol(current_name,
1782 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1783 current_name = NULL;
1784 (yyval) = (yyvsp[(3) - (3)]);
Michal Marek0359de72011-10-11 12:07:05 +02001785 }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001786 break;
1787
1788 case 21:
Michal Marek303fc012011-02-15 16:04:35 +01001789
Michal Marek0359de72011-10-11 12:07:05 +02001790 { (yyval) = (yyvsp[(4) - (4)]) ? (yyvsp[(4) - (4)]) : (yyvsp[(3) - (4)]) ? (yyvsp[(3) - (4)]) : (yyvsp[(2) - (4)]) ? (yyvsp[(2) - (4)]) : (yyvsp[(1) - (4)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001791 break;
1792
1793 case 22:
Michal Marek303fc012011-02-15 16:04:35 +01001794
Michal Marek0359de72011-10-11 12:07:05 +02001795 { decl_spec = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001796 break;
1797
1798 case 24:
Michal Marek303fc012011-02-15 16:04:35 +01001799
Michal Marek0359de72011-10-11 12:07:05 +02001800 { decl_spec = *(yyvsp[(1) - (1)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001801 break;
1802
1803 case 25:
Michal Marek303fc012011-02-15 16:04:35 +01001804
Michal Marek0359de72011-10-11 12:07:05 +02001805 { decl_spec = *(yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001806 break;
1807
1808 case 26:
Michal Marek303fc012011-02-15 16:04:35 +01001809
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001810 { /* Version 2 checksumming ignores storage class, as that
Linus Torvalds1da177e2005-04-16 15:20:36 -07001811 is really irrelevant to the linkage. */
Sam Ravnborg70f75242007-09-01 10:26:32 +02001812 remove_node((yyvsp[(1) - (1)]));
1813 (yyval) = (yyvsp[(1) - (1)]);
Michal Marek0359de72011-10-11 12:07:05 +02001814 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001815 break;
1816
Sam Ravnborg70f75242007-09-01 10:26:32 +02001817 case 31:
Michal Marek303fc012011-02-15 16:04:35 +01001818
Michal Marek0359de72011-10-11 12:07:05 +02001819 { is_extern = 1; (yyval) = (yyvsp[(1) - (1)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001820 break;
1821
Sam Ravnborg70f75242007-09-01 10:26:32 +02001822 case 32:
Michal Marek303fc012011-02-15 16:04:35 +01001823
Michal Marek0359de72011-10-11 12:07:05 +02001824 { is_extern = 0; (yyval) = (yyvsp[(1) - (1)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001825 break;
1826
1827 case 37:
Michal Marek303fc012011-02-15 16:04:35 +01001828
Michal Marek0359de72011-10-11 12:07:05 +02001829 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_STRUCT; (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001830 break;
1831
1832 case 38:
Michal Marek303fc012011-02-15 16:04:35 +01001833
Michal Marek0359de72011-10-11 12:07:05 +02001834 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_UNION; (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001835 break;
1836
1837 case 39:
Michal Marek303fc012011-02-15 16:04:35 +01001838
Michal Marek0359de72011-10-11 12:07:05 +02001839 { remove_node((yyvsp[(1) - (2)])); (*(yyvsp[(2) - (2)]))->tag = SYM_ENUM; (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001840 break;
1841
1842 case 40:
Michal Marek303fc012011-02-15 16:04:35 +01001843
Michal Marek0359de72011-10-11 12:07:05 +02001844 { record_compound((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]), SYM_STRUCT); (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001845 break;
1846
1847 case 41:
Michal Marek303fc012011-02-15 16:04:35 +01001848
Michal Marek0359de72011-10-11 12:07:05 +02001849 { record_compound((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]), SYM_UNION); (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001850 break;
1851
Sam Ravnborg70f75242007-09-01 10:26:32 +02001852 case 42:
Michal Marek303fc012011-02-15 16:04:35 +01001853
Michal Marek0359de72011-10-11 12:07:05 +02001854 { record_compound((yyvsp[(1) - (3)]), (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)]), SYM_ENUM); (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001855 break;
1856
1857 case 43:
Michal Marek303fc012011-02-15 16:04:35 +01001858
Michal Marek0359de72011-10-11 12:07:05 +02001859 { add_symbol(NULL, SYM_ENUM, NULL, 0); (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001860 break;
1861
1862 case 44:
Michal Marek303fc012011-02-15 16:04:35 +01001863
Michal Marek0359de72011-10-11 12:07:05 +02001864 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001865 break;
1866
1867 case 45:
Michal Marek303fc012011-02-15 16:04:35 +01001868
Michal Marek0359de72011-10-11 12:07:05 +02001869 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001870 break;
1871
1872 case 56:
Michal Marek303fc012011-02-15 16:04:35 +01001873
Michal Marek0359de72011-10-11 12:07:05 +02001874 { (*(yyvsp[(1) - (1)]))->tag = SYM_TYPEDEF; (yyval) = (yyvsp[(1) - (1)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001875 break;
1876
1877 case 57:
Michal Marek303fc012011-02-15 16:04:35 +01001878
Michal Marek0359de72011-10-11 12:07:05 +02001879 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001880 break;
1881
1882 case 58:
Michal Marek303fc012011-02-15 16:04:35 +01001883
Michal Marek0359de72011-10-11 12:07:05 +02001884 { (yyval) = NULL; }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001885 break;
1886
1887 case 61:
Michal Marek303fc012011-02-15 16:04:35 +01001888
Michal Marek0359de72011-10-11 12:07:05 +02001889 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001890 break;
1891
1892 case 65:
Michal Marek303fc012011-02-15 16:04:35 +01001893
Sam Ravnborg70f75242007-09-01 10:26:32 +02001894 { /* restrict has no effect in prototypes so ignore it */
1895 remove_node((yyvsp[(1) - (1)]));
1896 (yyval) = (yyvsp[(1) - (1)]);
Michal Marek0359de72011-10-11 12:07:05 +02001897 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001898 break;
1899
1900 case 66:
Michal Marek303fc012011-02-15 16:04:35 +01001901
Michal Marek0359de72011-10-11 12:07:05 +02001902 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001903 break;
1904
1905 case 68:
Michal Marek303fc012011-02-15 16:04:35 +01001906
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001907 { if (current_name != NULL) {
Linus Torvalds1da177e2005-04-16 15:20:36 -07001908 error_with_pos("unexpected second declaration name");
1909 YYERROR;
1910 } else {
Sam Ravnborg70f75242007-09-01 10:26:32 +02001911 current_name = (*(yyvsp[(1) - (1)]))->string;
1912 (yyval) = (yyvsp[(1) - (1)]);
Linus Torvalds1da177e2005-04-16 15:20:36 -07001913 }
Michal Marek0359de72011-10-11 12:07:05 +02001914 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001915 break;
1916
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001917 case 69:
Michal Marek303fc012011-02-15 16:04:35 +01001918
Michal Marek0359de72011-10-11 12:07:05 +02001919 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001920 break;
1921
1922 case 70:
Michal Marek303fc012011-02-15 16:04:35 +01001923
Michal Marek0359de72011-10-11 12:07:05 +02001924 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001925 break;
1926
1927 case 71:
Michal Marek303fc012011-02-15 16:04:35 +01001928
Michal Marek0359de72011-10-11 12:07:05 +02001929 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001930 break;
1931
1932 case 72:
Michal Marek303fc012011-02-15 16:04:35 +01001933
Michal Marek0359de72011-10-11 12:07:05 +02001934 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001935 break;
1936
Sam Ravnborg70f75242007-09-01 10:26:32 +02001937 case 73:
Michal Marek303fc012011-02-15 16:04:35 +01001938
Michal Marek0359de72011-10-11 12:07:05 +02001939 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001940 break;
1941
Sam Ravnborg70f75242007-09-01 10:26:32 +02001942 case 74:
Michal Marek303fc012011-02-15 16:04:35 +01001943
Michal Marek0359de72011-10-11 12:07:05 +02001944 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001945 break;
1946
1947 case 78:
Michal Marek303fc012011-02-15 16:04:35 +01001948
Michal Marek0359de72011-10-11 12:07:05 +02001949 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001950 break;
1951
1952 case 79:
Michal Marek303fc012011-02-15 16:04:35 +01001953
Michal Marek0359de72011-10-11 12:07:05 +02001954 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001955 break;
1956
1957 case 80:
Michal Marek303fc012011-02-15 16:04:35 +01001958
Michal Marek0359de72011-10-11 12:07:05 +02001959 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001960 break;
1961
1962 case 81:
Michal Marek303fc012011-02-15 16:04:35 +01001963
Michal Marek0359de72011-10-11 12:07:05 +02001964 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001965 break;
1966
1967 case 82:
Michal Marek303fc012011-02-15 16:04:35 +01001968
Michal Marek0359de72011-10-11 12:07:05 +02001969 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001970 break;
1971
1972 case 83:
Michal Marek303fc012011-02-15 16:04:35 +01001973
Michal Marek0359de72011-10-11 12:07:05 +02001974 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001975 break;
1976
Sam Ravnborg70f75242007-09-01 10:26:32 +02001977 case 85:
Michal Marek303fc012011-02-15 16:04:35 +01001978
Michal Marek0359de72011-10-11 12:07:05 +02001979 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001980 break;
1981
1982 case 86:
Michal Marek303fc012011-02-15 16:04:35 +01001983
Michal Marek0359de72011-10-11 12:07:05 +02001984 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001985 break;
1986
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001987 case 89:
Michal Marek303fc012011-02-15 16:04:35 +01001988
Michal Marek0359de72011-10-11 12:07:05 +02001989 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02001990 break;
1991
1992 case 90:
Michal Marek303fc012011-02-15 16:04:35 +01001993
Michal Marek0359de72011-10-11 12:07:05 +02001994 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01001995 break;
1996
1997 case 91:
Michal Marek303fc012011-02-15 16:04:35 +01001998
Michal Marek0359de72011-10-11 12:07:05 +02001999 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002000 break;
2001
2002 case 93:
Michal Marek303fc012011-02-15 16:04:35 +01002003
Michal Marek0359de72011-10-11 12:07:05 +02002004 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002005 break;
2006
2007 case 94:
Michal Marek303fc012011-02-15 16:04:35 +01002008
Sam Ravnborg70f75242007-09-01 10:26:32 +02002009 { /* For version 2 checksums, we don't want to remember
2010 private parameter names. */
2011 remove_node((yyvsp[(1) - (1)]));
2012 (yyval) = (yyvsp[(1) - (1)]);
Michal Marek0359de72011-10-11 12:07:05 +02002013 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002014 break;
2015
Sam Ravnborg70f75242007-09-01 10:26:32 +02002016 case 95:
Michal Marek303fc012011-02-15 16:04:35 +01002017
Sam Ravnborg70f75242007-09-01 10:26:32 +02002018 { remove_node((yyvsp[(1) - (1)]));
2019 (yyval) = (yyvsp[(1) - (1)]);
Michal Marek0359de72011-10-11 12:07:05 +02002020 }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002021 break;
2022
2023 case 96:
Michal Marek303fc012011-02-15 16:04:35 +01002024
Michal Marek0359de72011-10-11 12:07:05 +02002025 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002026 break;
2027
2028 case 97:
Michal Marek303fc012011-02-15 16:04:35 +01002029
Michal Marek0359de72011-10-11 12:07:05 +02002030 { (yyval) = (yyvsp[(4) - (4)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002031 break;
2032
2033 case 98:
Michal Marek303fc012011-02-15 16:04:35 +01002034
Michal Marek0359de72011-10-11 12:07:05 +02002035 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002036 break;
2037
2038 case 99:
Michal Marek303fc012011-02-15 16:04:35 +01002039
Michal Marek0359de72011-10-11 12:07:05 +02002040 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002041 break;
2042
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002043 case 100:
Michal Marek303fc012011-02-15 16:04:35 +01002044
Michal Marek0359de72011-10-11 12:07:05 +02002045 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002046 break;
2047
2048 case 101:
Michal Marek303fc012011-02-15 16:04:35 +01002049
Sam Ravnborg70f75242007-09-01 10:26:32 +02002050 { struct string_list *decl = *(yyvsp[(2) - (3)]);
2051 *(yyvsp[(2) - (3)]) = NULL;
2052 add_symbol(current_name, SYM_NORMAL, decl, is_extern);
2053 (yyval) = (yyvsp[(3) - (3)]);
Michal Marek0359de72011-10-11 12:07:05 +02002054 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002055 break;
2056
2057 case 102:
Michal Marek303fc012011-02-15 16:04:35 +01002058
Michal Marek0359de72011-10-11 12:07:05 +02002059 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002060 break;
2061
2062 case 104:
Michal Marek303fc012011-02-15 16:04:35 +01002063
Michal Marek0359de72011-10-11 12:07:05 +02002064 { remove_list((yyvsp[(2) - (2)]), &(*(yyvsp[(1) - (2)]))->next); (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002065 break;
2066
2067 case 105:
Michal Marek303fc012011-02-15 16:04:35 +01002068
Michal Marek0359de72011-10-11 12:07:05 +02002069 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002070 break;
2071
2072 case 106:
Michal Marek303fc012011-02-15 16:04:35 +01002073
Michal Marek0359de72011-10-11 12:07:05 +02002074 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002075 break;
2076
2077 case 107:
Michal Marek303fc012011-02-15 16:04:35 +01002078
Michal Marek0359de72011-10-11 12:07:05 +02002079 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002080 break;
2081
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002082 case 110:
Michal Marek303fc012011-02-15 16:04:35 +01002083
Michal Marek0359de72011-10-11 12:07:05 +02002084 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002085 break;
2086
2087 case 111:
Michal Marek303fc012011-02-15 16:04:35 +01002088
Michal Marek0359de72011-10-11 12:07:05 +02002089 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002090 break;
2091
2092 case 112:
Michal Marek303fc012011-02-15 16:04:35 +01002093
Michal Marek0359de72011-10-11 12:07:05 +02002094 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002095 break;
2096
2097 case 113:
Michal Marek303fc012011-02-15 16:04:35 +01002098
Michal Marek0359de72011-10-11 12:07:05 +02002099 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002100 break;
2101
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002102 case 116:
Michal Marek303fc012011-02-15 16:04:35 +01002103
Michal Marek0359de72011-10-11 12:07:05 +02002104 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002105 break;
2106
2107 case 117:
Michal Marek303fc012011-02-15 16:04:35 +01002108
Michal Marek0359de72011-10-11 12:07:05 +02002109 { (yyval) = (yyvsp[(2) - (2)]) ? (yyvsp[(2) - (2)]) : (yyvsp[(1) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002110 break;
2111
2112 case 118:
Michal Marek303fc012011-02-15 16:04:35 +01002113
Michal Marek0359de72011-10-11 12:07:05 +02002114 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002115 break;
2116
Sam Ravnborg70f75242007-09-01 10:26:32 +02002117 case 120:
Michal Marek303fc012011-02-15 16:04:35 +01002118
Michal Marek0359de72011-10-11 12:07:05 +02002119 { (yyval) = (yyvsp[(2) - (2)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002120 break;
2121
2122 case 121:
Michal Marek303fc012011-02-15 16:04:35 +01002123
Michal Marek0359de72011-10-11 12:07:05 +02002124 { (yyval) = NULL; }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002125 break;
2126
Sam Ravnborg70f75242007-09-01 10:26:32 +02002127 case 123:
Michal Marek303fc012011-02-15 16:04:35 +01002128
Michal Marek0359de72011-10-11 12:07:05 +02002129 { (yyval) = (yyvsp[(3) - (3)]); }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002130 break;
2131
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002132 case 124:
Michal Marek303fc012011-02-15 16:04:35 +01002133
Michal Marek0359de72011-10-11 12:07:05 +02002134 { (yyval) = (yyvsp[(4) - (4)]); }
Michal Marek303fc012011-02-15 16:04:35 +01002135 break;
2136
2137 case 127:
2138
Michal Marek303fc012011-02-15 16:04:35 +01002139 {
2140 const char *name = strdup((*(yyvsp[(1) - (1)]))->string);
2141 add_symbol(name, SYM_ENUM_CONST, NULL, 0);
Michal Marek0359de72011-10-11 12:07:05 +02002142 }
Michal Marek303fc012011-02-15 16:04:35 +01002143 break;
2144
2145 case 128:
2146
Michal Marek303fc012011-02-15 16:04:35 +01002147 {
2148 const char *name = strdup((*(yyvsp[(1) - (3)]))->string);
2149 struct string_list *expr = copy_list_range(*(yyvsp[(3) - (3)]), *(yyvsp[(2) - (3)]));
2150 add_symbol(name, SYM_ENUM_CONST, expr, 0);
Michal Marek0359de72011-10-11 12:07:05 +02002151 }
Michal Marek303fc012011-02-15 16:04:35 +01002152 break;
2153
2154 case 129:
2155
Michal Marek0359de72011-10-11 12:07:05 +02002156 { (yyval) = (yyvsp[(2) - (2)]); }
Michal Marek303fc012011-02-15 16:04:35 +01002157 break;
2158
2159 case 130:
2160
Michal Marek0359de72011-10-11 12:07:05 +02002161 { (yyval) = NULL; }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002162 break;
2163
Michal Marek303fc012011-02-15 16:04:35 +01002164 case 132:
2165
Michal Marek0359de72011-10-11 12:07:05 +02002166 { export_symbol((*(yyvsp[(3) - (5)]))->string); (yyval) = (yyvsp[(5) - (5)]); }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002167 break;
2168
2169
Michal Marek303fc012011-02-15 16:04:35 +01002170
Sam Ravnborg70f75242007-09-01 10:26:32 +02002171 default: break;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002172 }
Michal Marek0359de72011-10-11 12:07:05 +02002173 /* User semantic actions sometimes alter yychar, and that requires
2174 that yytoken be updated with the new translation. We take the
2175 approach of translating immediately before every use of yytoken.
2176 One alternative is translating here after every semantic action,
2177 but that translation would be missed if the semantic action invokes
2178 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
2179 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
2180 incorrect destructor might then be invoked immediately. In the
2181 case of YYERROR or YYBACKUP, subsequent parser actions might lead
2182 to an incorrect destructor call or verbose syntax error message
2183 before the lookahead is translated. */
Sam Ravnborg70f75242007-09-01 10:26:32 +02002184 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002185
Sam Ravnborg70f75242007-09-01 10:26:32 +02002186 YYPOPSTACK (yylen);
2187 yylen = 0;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002188 YY_STACK_PRINT (yyss, yyssp);
Linus Torvalds1da177e2005-04-16 15:20:36 -07002189
2190 *++yyvsp = yyval;
2191
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002192 /* Now `shift' the result of the reduction. Determine what state
2193 that goes to, based on the state we popped back to and the rule
2194 number reduced by. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002195
2196 yyn = yyr1[yyn];
2197
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002198 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2199 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
Linus Torvalds1da177e2005-04-16 15:20:36 -07002200 yystate = yytable[yystate];
2201 else
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002202 yystate = yydefgoto[yyn - YYNTOKENS];
Linus Torvalds1da177e2005-04-16 15:20:36 -07002203
2204 goto yynewstate;
2205
Linus Torvalds1da177e2005-04-16 15:20:36 -07002206
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002207/*------------------------------------.
2208| yyerrlab -- here on detecting error |
2209`------------------------------------*/
2210yyerrlab:
Michal Marek0359de72011-10-11 12:07:05 +02002211 /* Make sure we have latest lookahead translation. See comments at
2212 user semantic actions for why this is necessary. */
2213 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
2214
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002215 /* If not already recovering from an error, report this error. */
2216 if (!yyerrstatus)
Linus Torvalds1da177e2005-04-16 15:20:36 -07002217 {
2218 ++yynerrs;
Sam Ravnborg70f75242007-09-01 10:26:32 +02002219#if ! YYERROR_VERBOSE
2220 yyerror (YY_("syntax error"));
2221#else
Michal Marek0359de72011-10-11 12:07:05 +02002222# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
2223 yyssp, yytoken)
Sam Ravnborg70f75242007-09-01 10:26:32 +02002224 {
Michal Marek0359de72011-10-11 12:07:05 +02002225 char const *yymsgp = YY_("syntax error");
2226 int yysyntax_error_status;
2227 yysyntax_error_status = YYSYNTAX_ERROR;
2228 if (yysyntax_error_status == 0)
2229 yymsgp = yymsg;
2230 else if (yysyntax_error_status == 1)
2231 {
2232 if (yymsg != yymsgbuf)
2233 YYSTACK_FREE (yymsg);
2234 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
2235 if (!yymsg)
2236 {
2237 yymsg = yymsgbuf;
2238 yymsg_alloc = sizeof yymsgbuf;
2239 yysyntax_error_status = 2;
2240 }
2241 else
2242 {
2243 yysyntax_error_status = YYSYNTAX_ERROR;
2244 yymsgp = yymsg;
2245 }
2246 }
2247 yyerror (yymsgp);
2248 if (yysyntax_error_status == 2)
2249 goto yyexhaustedlab;
Sam Ravnborg70f75242007-09-01 10:26:32 +02002250 }
Michal Marek0359de72011-10-11 12:07:05 +02002251# undef YYSYNTAX_ERROR
Sam Ravnborg70f75242007-09-01 10:26:32 +02002252#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -07002253 }
2254
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002255
Linus Torvalds1da177e2005-04-16 15:20:36 -07002256
2257 if (yyerrstatus == 3)
2258 {
Michal Marek303fc012011-02-15 16:04:35 +01002259 /* If just tried and failed to reuse lookahead token after an
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002260 error, discard it. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002261
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002262 if (yychar <= YYEOF)
Sam Ravnborg70f75242007-09-01 10:26:32 +02002263 {
2264 /* Return failure if at end of input. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002265 if (yychar == YYEOF)
Sam Ravnborg70f75242007-09-01 10:26:32 +02002266 YYABORT;
2267 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002268 else
2269 {
Sam Ravnborg70f75242007-09-01 10:26:32 +02002270 yydestruct ("Error: discarding",
2271 yytoken, &yylval);
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002272 yychar = YYEMPTY;
2273 }
2274 }
2275
Michal Marek303fc012011-02-15 16:04:35 +01002276 /* Else will try to reuse lookahead token after shifting the error
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002277 token. */
2278 goto yyerrlab1;
2279
2280
2281/*---------------------------------------------------.
2282| yyerrorlab -- error raised explicitly by YYERROR. |
2283`---------------------------------------------------*/
2284yyerrorlab:
2285
Sam Ravnborg70f75242007-09-01 10:26:32 +02002286 /* Pacify compilers like GCC when the user code never invokes
2287 YYERROR and the label yyerrorlab therefore never appears in user
2288 code. */
2289 if (/*CONSTCOND*/ 0)
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002290 goto yyerrorlab;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002291
Sam Ravnborg70f75242007-09-01 10:26:32 +02002292 /* Do not reclaim the symbols of the rule which action triggered
2293 this YYERROR. */
2294 YYPOPSTACK (yylen);
2295 yylen = 0;
2296 YY_STACK_PRINT (yyss, yyssp);
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002297 yystate = *yyssp;
2298 goto yyerrlab1;
2299
2300
2301/*-------------------------------------------------------------.
2302| yyerrlab1 -- common code for both syntax error and YYERROR. |
2303`-------------------------------------------------------------*/
2304yyerrlab1:
2305 yyerrstatus = 3; /* Each real token shifted decrements this. */
2306
2307 for (;;)
2308 {
2309 yyn = yypact[yystate];
Michal Marek0359de72011-10-11 12:07:05 +02002310 if (!yypact_value_is_default (yyn))
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002311 {
2312 yyn += YYTERROR;
2313 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2314 {
2315 yyn = yytable[yyn];
2316 if (0 < yyn)
2317 break;
2318 }
2319 }
2320
2321 /* Pop the current state because it cannot handle the error token. */
2322 if (yyssp == yyss)
Linus Torvalds1da177e2005-04-16 15:20:36 -07002323 YYABORT;
2324
Linus Torvalds1da177e2005-04-16 15:20:36 -07002325
Sam Ravnborg70f75242007-09-01 10:26:32 +02002326 yydestruct ("Error: popping",
2327 yystos[yystate], yyvsp);
2328 YYPOPSTACK (1);
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002329 yystate = *yyssp;
2330 YY_STACK_PRINT (yyss, yyssp);
Linus Torvalds1da177e2005-04-16 15:20:36 -07002331 }
2332
Linus Torvalds1da177e2005-04-16 15:20:36 -07002333 *++yyvsp = yylval;
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002334
2335
Sam Ravnborg70f75242007-09-01 10:26:32 +02002336 /* Shift the error token. */
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002337 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
Linus Torvalds1da177e2005-04-16 15:20:36 -07002338
2339 yystate = yyn;
2340 goto yynewstate;
2341
Linus Torvalds1da177e2005-04-16 15:20:36 -07002342
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002343/*-------------------------------------.
2344| yyacceptlab -- YYACCEPT comes here. |
2345`-------------------------------------*/
2346yyacceptlab:
2347 yyresult = 0;
2348 goto yyreturn;
2349
2350/*-----------------------------------.
2351| yyabortlab -- YYABORT comes here. |
2352`-----------------------------------*/
2353yyabortlab:
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002354 yyresult = 1;
2355 goto yyreturn;
2356
Jan Beulichdc533242014-04-03 14:46:37 -07002357#if !defined yyoverflow || YYERROR_VERBOSE
Sam Ravnborg70f75242007-09-01 10:26:32 +02002358/*-------------------------------------------------.
2359| yyexhaustedlab -- memory exhaustion comes here. |
2360`-------------------------------------------------*/
2361yyexhaustedlab:
2362 yyerror (YY_("memory exhausted"));
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002363 yyresult = 2;
2364 /* Fall through. */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002365#endif
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002366
2367yyreturn:
Michal Marek303fc012011-02-15 16:04:35 +01002368 if (yychar != YYEMPTY)
Michal Marek0359de72011-10-11 12:07:05 +02002369 {
2370 /* Make sure we have latest lookahead translation. See comments at
2371 user semantic actions for why this is necessary. */
2372 yytoken = YYTRANSLATE (yychar);
2373 yydestruct ("Cleanup: discarding lookahead",
2374 yytoken, &yylval);
2375 }
Sam Ravnborg70f75242007-09-01 10:26:32 +02002376 /* Do not reclaim the symbols of the rule which action triggered
2377 this YYABORT or YYACCEPT. */
2378 YYPOPSTACK (yylen);
2379 YY_STACK_PRINT (yyss, yyssp);
2380 while (yyssp != yyss)
2381 {
2382 yydestruct ("Cleanup: popping",
2383 yystos[*yyssp], yyvsp);
2384 YYPOPSTACK (1);
2385 }
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002386#ifndef yyoverflow
2387 if (yyss != yyssa)
2388 YYSTACK_FREE (yyss);
2389#endif
Sam Ravnborg70f75242007-09-01 10:26:32 +02002390#if YYERROR_VERBOSE
2391 if (yymsg != yymsgbuf)
2392 YYSTACK_FREE (yymsg);
2393#endif
2394 /* Make sure YYID is used. */
2395 return YYID (yyresult);
Linus Torvalds1da177e2005-04-16 15:20:36 -07002396}
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002397
2398
Michal Marek303fc012011-02-15 16:04:35 +01002399
Linus Torvalds1da177e2005-04-16 15:20:36 -07002400
2401
2402static void
2403yyerror(const char *e)
2404{
2405 error_with_pos("%s", e);
2406}
Sam Ravnborgc40f5642005-12-26 22:53:25 +01002407