aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/genksyms/parse.c_shipped
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/genksyms/parse.c_shipped')
-rw-r--r--scripts/genksyms/parse.c_shipped2924
1 files changed, 1699 insertions, 1225 deletions
diff --git a/scripts/genksyms/parse.c_shipped b/scripts/genksyms/parse.c_shipped
index 2c6b1286b638..99d7c258696d 100644
--- a/scripts/genksyms/parse.c_shipped
+++ b/scripts/genksyms/parse.c_shipped
@@ -1,50 +1,145 @@
1/* A Bison parser, made by GNU Bison 2.0. */
1 2
2/* A Bison parser, made from scripts/genksyms/parse.y 3/* Skeleton parser for Yacc-like parsing with Bison,
3 by GNU Bison version 1.28 */ 4 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
4
5#define YYBISON 1 /* Identify Bison output. */
6
7#define ASM_KEYW 257
8#define ATTRIBUTE_KEYW 258
9#define AUTO_KEYW 259
10#define BOOL_KEYW 260
11#define CHAR_KEYW 261
12#define CONST_KEYW 262
13#define DOUBLE_KEYW 263
14#define ENUM_KEYW 264
15#define EXTERN_KEYW 265
16#define FLOAT_KEYW 266
17#define INLINE_KEYW 267
18#define INT_KEYW 268
19#define LONG_KEYW 269
20#define REGISTER_KEYW 270
21#define RESTRICT_KEYW 271
22#define SHORT_KEYW 272
23#define SIGNED_KEYW 273
24#define STATIC_KEYW 274
25#define STRUCT_KEYW 275
26#define TYPEDEF_KEYW 276
27#define UNION_KEYW 277
28#define UNSIGNED_KEYW 278
29#define VOID_KEYW 279
30#define VOLATILE_KEYW 280
31#define TYPEOF_KEYW 281
32#define EXPORT_SYMBOL_KEYW 282
33#define ASM_PHRASE 283
34#define ATTRIBUTE_PHRASE 284
35#define BRACE_PHRASE 285
36#define BRACKET_PHRASE 286
37#define EXPRESSION_PHRASE 287
38#define CHAR 288
39#define DOTS 289
40#define IDENT 290
41#define INT 291
42#define REAL 292
43#define STRING 293
44#define TYPE 294
45#define OTHER 295
46#define FILENAME 296
47 5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21/* As a special exception, when this file is copied by Bison into a
22 Bison output file, you may use that output file without restriction.
23 This special exception was added by the Free Software Foundation
24 in version 1.24 of Bison. */
25
26/* Written by Richard Stallman by simplifying the original so called
27 ``semantic'' parser. */
28
29/* All symbols defined below should begin with yy or YY, to avoid
30 infringing on user name space. This should be done even for local
31 variables, as they might otherwise be expanded by user macros.
32 There are some unavoidable exceptions within include files to
33 define necessary library symbols; they are noted "INFRINGES ON
34 USER NAME SPACE" below. */
35
36/* Identify Bison output. */
37#define YYBISON 1
38
39/* Skeleton name. */
40#define YYSKELETON_NAME "yacc.c"
41
42/* Pure parsers. */
43#define YYPURE 0
44
45/* Using locations. */
46#define YYLSP_NEEDED 0
47
48
49
50/* Tokens. */
51#ifndef YYTOKENTYPE
52# define YYTOKENTYPE
53 /* Put the tokens into the symbol table, so that GDB and other debuggers
54 know about them. */
55 enum yytokentype {
56 ASM_KEYW = 258,
57 ATTRIBUTE_KEYW = 259,
58 AUTO_KEYW = 260,
59 BOOL_KEYW = 261,
60 CHAR_KEYW = 262,
61 CONST_KEYW = 263,
62 DOUBLE_KEYW = 264,
63 ENUM_KEYW = 265,
64 EXTERN_KEYW = 266,
65 FLOAT_KEYW = 267,
66 INLINE_KEYW = 268,
67 INT_KEYW = 269,
68 LONG_KEYW = 270,
69 REGISTER_KEYW = 271,
70 RESTRICT_KEYW = 272,
71 SHORT_KEYW = 273,
72 SIGNED_KEYW = 274,
73 STATIC_KEYW = 275,
74 STRUCT_KEYW = 276,
75 TYPEDEF_KEYW = 277,
76 UNION_KEYW = 278,
77 UNSIGNED_KEYW = 279,
78 VOID_KEYW = 280,
79 VOLATILE_KEYW = 281,
80 TYPEOF_KEYW = 282,
81 EXPORT_SYMBOL_KEYW = 283,
82 ASM_PHRASE = 284,
83 ATTRIBUTE_PHRASE = 285,
84 BRACE_PHRASE = 286,
85 BRACKET_PHRASE = 287,
86 EXPRESSION_PHRASE = 288,
87 CHAR = 289,
88 DOTS = 290,
89 IDENT = 291,
90 INT = 292,
91 REAL = 293,
92 STRING = 294,
93 TYPE = 295,
94 OTHER = 296,
95 FILENAME = 297
96 };
97#endif
98#define ASM_KEYW 258
99#define ATTRIBUTE_KEYW 259
100#define AUTO_KEYW 260
101#define BOOL_KEYW 261
102#define CHAR_KEYW 262
103#define CONST_KEYW 263
104#define DOUBLE_KEYW 264
105#define ENUM_KEYW 265
106#define EXTERN_KEYW 266
107#define FLOAT_KEYW 267
108#define INLINE_KEYW 268
109#define INT_KEYW 269
110#define LONG_KEYW 270
111#define REGISTER_KEYW 271
112#define RESTRICT_KEYW 272
113#define SHORT_KEYW 273
114#define SIGNED_KEYW 274
115#define STATIC_KEYW 275
116#define STRUCT_KEYW 276
117#define TYPEDEF_KEYW 277
118#define UNION_KEYW 278
119#define UNSIGNED_KEYW 279
120#define VOID_KEYW 280
121#define VOLATILE_KEYW 281
122#define TYPEOF_KEYW 282
123#define EXPORT_SYMBOL_KEYW 283
124#define ASM_PHRASE 284
125#define ATTRIBUTE_PHRASE 285
126#define BRACE_PHRASE 286
127#define BRACKET_PHRASE 287
128#define EXPRESSION_PHRASE 288
129#define CHAR 289
130#define DOTS 290
131#define IDENT 291
132#define INT 292
133#define REAL 293
134#define STRING 294
135#define TYPE 295
136#define OTHER 296
137#define FILENAME 297
138
139
140
141
142/* Copy the first part of user declarations. */
48#line 24 "scripts/genksyms/parse.y" 143#line 24 "scripts/genksyms/parse.y"
49 144
50 145
@@ -75,661 +170,1000 @@ remove_list(struct string_list **pb, struct string_list **pe)
75 free_list(b, e); 170 free_list(b, e);
76} 171}
77 172
78#ifndef YYSTYPE 173
79#define YYSTYPE int 174
80#endif 175/* Enabling traces. */
81#ifndef YYDEBUG 176#ifndef YYDEBUG
82#define YYDEBUG 1 177# define YYDEBUG 1
83#endif 178#endif
84 179
85#include <stdio.h> 180/* Enabling verbose error messages. */
86 181#ifdef YYERROR_VERBOSE
87#ifndef __cplusplus 182# undef YYERROR_VERBOSE
88#ifndef __STDC__ 183# define YYERROR_VERBOSE 1
89#define const 184#else
185# define YYERROR_VERBOSE 0
90#endif 186#endif
187
188#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
189typedef int YYSTYPE;
190# define yystype YYSTYPE /* obsolescent; will be withdrawn */
191# define YYSTYPE_IS_DECLARED 1
192# define YYSTYPE_IS_TRIVIAL 1
91#endif 193#endif
92 194
93 195
94 196
95#define YYFINAL 172 197/* Copy the second part of user declarations. */
96#define YYFLAG -32768
97#define YYNTBASE 52
98
99#define YYTRANSLATE(x) ((unsigned)(x) <= 296 ? yytranslate[x] : 96)
100
101static const char yytranslate[] = { 0,
102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
105 2, 2, 2, 2, 2, 2, 2, 2, 2, 46,
106 47, 48, 2, 45, 2, 2, 2, 2, 2, 2,
107 2, 2, 2, 2, 2, 2, 2, 51, 43, 2,
108 49, 2, 2, 2, 2, 2, 2, 2, 2, 2,
109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
114 2, 2, 50, 2, 44, 2, 2, 2, 2, 2,
115 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
116 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
117 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
118 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
119 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
120 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
121 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
122 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
123 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
124 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
125 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
126 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
127 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
128 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
129 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
130 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
131 37, 38, 39, 40, 41, 42
132};
133 198
134#if YYDEBUG != 0
135static const short yyprhs[] = { 0,
136 0, 2, 5, 6, 9, 10, 14, 16, 18, 20,
137 22, 25, 28, 32, 33, 35, 37, 41, 46, 47,
138 49, 51, 54, 56, 58, 60, 62, 64, 66, 68,
139 70, 72, 77, 80, 83, 86, 90, 94, 98, 101,
140 104, 107, 109, 111, 113, 115, 117, 119, 121, 123,
141 125, 127, 129, 132, 133, 135, 137, 140, 142, 144,
142 146, 148, 151, 153, 155, 160, 165, 168, 172, 176,
143 179, 181, 183, 185, 190, 195, 198, 202, 206, 209,
144 211, 215, 216, 218, 220, 224, 227, 230, 232, 233,
145 235, 237, 242, 247, 250, 254, 258, 262, 263, 265,
146 268, 272, 276, 277, 279, 281, 284, 288, 291, 292,
147 294, 296, 300, 303, 306, 308, 311, 312, 314, 317,
148 318, 320
149};
150 199
151static const short yyrhs[] = { 53, 200/* Line 213 of yacc.c. */
152 0, 52, 53, 0, 0, 54, 55, 0, 0, 22, 201#line 202 "scripts/genksyms/parse.c"
153 56, 57, 0, 57, 0, 81, 0, 93, 0, 95,
154 0, 1, 43, 0, 1, 44, 0, 61, 58, 43,
155 0, 0, 59, 0, 60, 0, 59, 45, 60, 0,
156 71, 94, 92, 82, 0, 0, 62, 0, 63, 0,
157 62, 63, 0, 64, 0, 65, 0, 5, 0, 16,
158 0, 20, 0, 11, 0, 13, 0, 66, 0, 70,
159 0, 27, 46, 62, 47, 0, 21, 36, 0, 23,
160 36, 0, 10, 36, 0, 21, 36, 84, 0, 23,
161 36, 84, 0, 10, 36, 31, 0, 10, 31, 0,
162 21, 84, 0, 23, 84, 0, 7, 0, 18, 0,
163 14, 0, 15, 0, 19, 0, 24, 0, 12, 0,
164 9, 0, 25, 0, 6, 0, 40, 0, 48, 68,
165 0, 0, 69, 0, 70, 0, 69, 70, 0, 8,
166 0, 26, 0, 30, 0, 17, 0, 67, 71, 0,
167 72, 0, 36, 0, 72, 46, 75, 47, 0, 72,
168 46, 1, 47, 0, 72, 32, 0, 46, 71, 47,
169 0, 46, 1, 47, 0, 67, 73, 0, 74, 0,
170 36, 0, 40, 0, 74, 46, 75, 47, 0, 74,
171 46, 1, 47, 0, 74, 32, 0, 46, 73, 47,
172 0, 46, 1, 47, 0, 76, 35, 0, 76, 0,
173 77, 45, 35, 0, 0, 77, 0, 78, 0, 77,
174 45, 78, 0, 62, 79, 0, 67, 79, 0, 80,
175 0, 0, 36, 0, 40, 0, 80, 46, 75, 47,
176 0, 80, 46, 1, 47, 0, 80, 32, 0, 46,
177 79, 47, 0, 46, 1, 47, 0, 61, 71, 31,
178 0, 0, 83, 0, 49, 33, 0, 50, 85, 44,
179 0, 50, 1, 44, 0, 0, 86, 0, 87, 0,
180 86, 87, 0, 61, 88, 43, 0, 1, 43, 0,
181 0, 89, 0, 90, 0, 89, 45, 90, 0, 73,
182 92, 0, 36, 91, 0, 91, 0, 51, 33, 0,
183 0, 30, 0, 29, 43, 0, 0, 29, 0, 28,
184 46, 36, 47, 43, 0
185};
186 202
187#endif 203#if ! defined (yyoverflow) || YYERROR_VERBOSE
188 204
189#if YYDEBUG != 0 205# ifndef YYFREE
190static const short yyrline[] = { 0, 206# define YYFREE free
191 101, 103, 106, 109, 112, 114, 115, 116, 117, 118, 207# endif
192 119, 120, 123, 137, 139, 142, 151, 163, 169, 171, 208# ifndef YYMALLOC
193 174, 176, 179, 186, 189, 191, 192, 193, 194, 197, 209# define YYMALLOC malloc
194 199, 200, 204, 206, 208, 212, 219, 226, 235, 236, 210# endif
195 237, 240, 242, 243, 244, 245, 246, 247, 248, 249,
196 250, 251, 254, 259, 261, 264, 266, 269, 270, 270,
197 271, 278, 280, 283, 293, 295, 297, 299, 301, 307,
198 309, 312, 314, 315, 317, 319, 321, 323, 327, 329,
199 330, 333, 335, 338, 340, 344, 349, 352, 355, 357,
200 365, 369, 371, 373, 375, 377, 381, 390, 392, 396,
201 401, 403, 406, 408, 411, 413, 416, 419, 423, 425,
202 428, 430, 433, 435, 436, 439, 443, 445, 448, 452,
203 454, 457
204};
205#endif
206 211
212/* The parser invokes alloca or malloc; define the necessary symbols. */
213
214# ifdef YYSTACK_USE_ALLOCA
215# if YYSTACK_USE_ALLOCA
216# ifdef __GNUC__
217# define YYSTACK_ALLOC __builtin_alloca
218# else
219# define YYSTACK_ALLOC alloca
220# endif
221# endif
222# endif
223
224# ifdef YYSTACK_ALLOC
225 /* Pacify GCC's `empty if-body' warning. */
226# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
227# else
228# if defined (__STDC__) || defined (__cplusplus)
229# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
230# define YYSIZE_T size_t
231# endif
232# define YYSTACK_ALLOC YYMALLOC
233# define YYSTACK_FREE YYFREE
234# endif
235#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
236
237
238#if (! defined (yyoverflow) \
239 && (! defined (__cplusplus) \
240 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
241
242/* A type that is properly aligned for any stack member. */
243union yyalloc
244{
245 short int yyss;
246 YYSTYPE yyvs;
247 };
248
249/* The size of the maximum gap between one aligned stack and the next. */
250# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
251
252/* The size of an array large to enough to hold all stacks, each with
253 N elements. */
254# define YYSTACK_BYTES(N) \
255 ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
256 + YYSTACK_GAP_MAXIMUM)
257
258/* Copy COUNT objects from FROM to TO. The source and destination do
259 not overlap. */
260# ifndef YYCOPY
261# if defined (__GNUC__) && 1 < __GNUC__
262# define YYCOPY(To, From, Count) \
263 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
264# else
265# define YYCOPY(To, From, Count) \
266 do \
267 { \
268 register YYSIZE_T yyi; \
269 for (yyi = 0; yyi < (Count); yyi++) \
270 (To)[yyi] = (From)[yyi]; \
271 } \
272 while (0)
273# endif
274# endif
275
276/* Relocate STACK from its old location to the new one. The
277 local variables YYSIZE and YYSTACKSIZE give the old and new number of
278 elements in the stack, and YYPTR gives the new location of the
279 stack. Advance YYPTR to a properly aligned location for the next
280 stack. */
281# define YYSTACK_RELOCATE(Stack) \
282 do \
283 { \
284 YYSIZE_T yynewbytes; \
285 YYCOPY (&yyptr->Stack, Stack, yysize); \
286 Stack = &yyptr->Stack; \
287 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
288 yyptr += yynewbytes / sizeof (*yyptr); \
289 } \
290 while (0)
207 291
208#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
209
210static const char * const yytname[] = { "$","error","$undefined.","ASM_KEYW",
211"ATTRIBUTE_KEYW","AUTO_KEYW","BOOL_KEYW","CHAR_KEYW","CONST_KEYW","DOUBLE_KEYW",
212"ENUM_KEYW","EXTERN_KEYW","FLOAT_KEYW","INLINE_KEYW","INT_KEYW","LONG_KEYW",
213"REGISTER_KEYW","RESTRICT_KEYW","SHORT_KEYW","SIGNED_KEYW","STATIC_KEYW","STRUCT_KEYW",
214"TYPEDEF_KEYW","UNION_KEYW","UNSIGNED_KEYW","VOID_KEYW","VOLATILE_KEYW","TYPEOF_KEYW",
215"EXPORT_SYMBOL_KEYW","ASM_PHRASE","ATTRIBUTE_PHRASE","BRACE_PHRASE","BRACKET_PHRASE",
216"EXPRESSION_PHRASE","CHAR","DOTS","IDENT","INT","REAL","STRING","TYPE","OTHER",
217"FILENAME","';'","'}'","','","'('","')'","'*'","'='","'{'","':'","declaration_seq",
218"declaration","@1","declaration1","@2","simple_declaration","init_declarator_list_opt",
219"init_declarator_list","init_declarator","decl_specifier_seq_opt","decl_specifier_seq",
220"decl_specifier","storage_class_specifier","type_specifier","simple_type_specifier",
221"ptr_operator","cvar_qualifier_seq_opt","cvar_qualifier_seq","cvar_qualifier",
222"declarator","direct_declarator","nested_declarator","direct_nested_declarator",
223"parameter_declaration_clause","parameter_declaration_list_opt","parameter_declaration_list",
224"parameter_declaration","m_abstract_declarator","direct_m_abstract_declarator",
225"function_definition","initializer_opt","initializer","class_body","member_specification_opt",
226"member_specification","member_declaration","member_declarator_list_opt","member_declarator_list",
227"member_declarator","member_bitfield_declarator","attribute_opt","asm_definition",
228"asm_phrase_opt","export_definition", NULL
229};
230#endif 292#endif
231 293
232static const short yyr1[] = { 0, 294#if defined (__STDC__) || defined (__cplusplus)
233 52, 52, 54, 53, 56, 55, 55, 55, 55, 55, 295 typedef signed char yysigned_char;
234 55, 55, 57, 58, 58, 59, 59, 60, 61, 61, 296#else
235 62, 62, 63, 63, 64, 64, 64, 64, 64, 65, 297 typedef short int yysigned_char;
236 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 298#endif
237 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, 299
238 66, 66, 67, 68, 68, 69, 69, 70, 70, 70, 300/* YYFINAL -- State number of the termination state. */
239 70, 71, 71, 72, 72, 72, 72, 72, 72, 73, 301#define YYFINAL 4
240 73, 74, 74, 74, 74, 74, 74, 74, 75, 75, 302/* YYLAST -- Last index in YYTABLE. */
241 75, 76, 76, 77, 77, 78, 79, 79, 80, 80, 303#define YYLAST 535
242 80, 80, 80, 80, 80, 80, 81, 82, 82, 83, 304
243 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, 305/* YYNTOKENS -- Number of terminals. */
244 89, 89, 90, 90, 90, 91, 92, 92, 93, 94, 306#define YYNTOKENS 52
245 94, 95 307/* YYNNTS -- Number of nonterminals. */
308#define YYNNTS 45
309/* YYNRULES -- Number of rules. */
310#define YYNRULES 124
311/* YYNRULES -- Number of states. */
312#define YYNSTATES 174
313
314/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
315#define YYUNDEFTOK 2
316#define YYMAXUTOK 297
317
318#define YYTRANSLATE(YYX) \
319 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
320
321/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
322static const unsigned char yytranslate[] =
323{
324 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
328 46, 48, 47, 2, 45, 2, 2, 2, 2, 2,
329 2, 2, 2, 2, 2, 2, 2, 2, 51, 43,
330 2, 49, 2, 2, 2, 2, 2, 2, 2, 2,
331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
336 2, 2, 2, 50, 2, 44, 2, 2, 2, 2,
337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
349 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
350 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
351 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
352 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
353 35, 36, 37, 38, 39, 40, 41, 42
246}; 354};
247 355
248static const short yyr2[] = { 0, 356#if YYDEBUG
249 1, 2, 0, 2, 0, 3, 1, 1, 1, 1, 357/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
250 2, 2, 3, 0, 1, 1, 3, 4, 0, 1, 358 YYRHS. */
251 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 359static const unsigned short int yyprhs[] =
252 1, 4, 2, 2, 2, 3, 3, 3, 2, 2, 360{
253 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 361 0, 0, 3, 5, 8, 9, 12, 13, 17, 19,
254 1, 1, 2, 0, 1, 1, 2, 1, 1, 1, 362 21, 23, 25, 28, 31, 35, 36, 38, 40, 44,
255 1, 2, 1, 1, 4, 4, 2, 3, 3, 2, 363 49, 50, 52, 54, 57, 59, 61, 63, 65, 67,
256 1, 1, 1, 4, 4, 2, 3, 3, 2, 1, 364 69, 71, 73, 75, 81, 86, 89, 92, 95, 99,
257 3, 0, 1, 1, 3, 2, 2, 1, 0, 1, 365 103, 107, 110, 113, 116, 118, 120, 122, 124, 126,
258 1, 4, 4, 2, 3, 3, 3, 0, 1, 2, 366 128, 130, 132, 134, 136, 138, 141, 142, 144, 146,
259 3, 3, 0, 1, 1, 2, 3, 2, 0, 1, 367 149, 151, 153, 155, 157, 160, 162, 164, 169, 174,
260 1, 3, 2, 2, 1, 2, 0, 1, 2, 0, 368 177, 181, 185, 188, 190, 192, 194, 199, 204, 207,
261 1, 5 369 211, 215, 218, 220, 224, 225, 227, 229, 233, 236,
370 239, 241, 242, 244, 246, 251, 256, 259, 263, 267,
371 271, 272, 274, 277, 281, 285, 286, 288, 290, 293,
372 297, 300, 301, 303, 305, 309, 312, 315, 317, 320,
373 321, 323, 326, 327, 329
262}; 374};
263 375
264static const short yydefact[] = { 3, 376/* YYRHS -- A `-1'-separated list of the rules' RHS. */
265 3, 1, 0, 2, 0, 25, 51, 42, 58, 49, 377static const yysigned_char yyrhs[] =
266 0, 28, 48, 29, 44, 45, 26, 61, 43, 46, 378{
267 27, 0, 5, 0, 47, 50, 59, 0, 0, 0, 379 53, 0, -1, 54, -1, 53, 54, -1, -1, 55,
268 60, 52, 4, 7, 14, 20, 21, 23, 24, 30, 380 56, -1, -1, 22, 57, 58, -1, 58, -1, 82,
269 31, 8, 9, 10, 11, 12, 39, 35, 33, 0, 381 -1, 94, -1, 96, -1, 1, 43, -1, 1, 44,
270 40, 19, 34, 41, 0, 0, 119, 64, 0, 54, 382 -1, 62, 59, 43, -1, -1, 60, -1, 61, -1,
271 0, 15, 16, 0, 120, 63, 22, 38, 36, 0, 383 60, 45, 61, -1, 72, 95, 93, 83, -1, -1,
272 109, 0, 0, 105, 6, 14, 37, 0, 0, 0, 384 63, -1, 64, -1, 63, 64, -1, 65, -1, 66,
273 0, 53, 55, 56, 13, 0, 62, 121, 97, 117, 385 -1, 5, -1, 16, -1, 20, -1, 11, -1, 13,
274 67, 0, 108, 102, 72, 73, 0, 0, 0, 117, 386 -1, 67, -1, 71, -1, 27, 46, 63, 47, 48,
275 71, 0, 110, 111, 115, 101, 0, 106, 120, 32, 387 -1, 27, 46, 63, 48, -1, 21, 36, -1, 23,
276 0, 69, 68, 57, 17, 118, 98, 0, 89, 0, 388 36, -1, 10, 36, -1, 21, 36, 85, -1, 23,
277 80, 83, 84, 114, 0, 72, 0, 116, 70, 113, 389 36, 85, -1, 10, 36, 31, -1, 10, 31, -1,
278 76, 0, 107, 0, 122, 0, 18, 99, 66, 90, 390 21, 85, -1, 23, 85, -1, 7, -1, 18, -1,
279 52, 0, 89, 86, 88, 65, 79, 0, 78, 77, 391 14, -1, 15, -1, 19, -1, 24, -1, 12, -1,
280 0, 0, 112, 100, 0, 91, 0, 87, 94, 0, 392 9, -1, 25, -1, 6, -1, 40, -1, 47, 69,
281 81, 85, 75, 74, 96, 95, 0, 0, 93, 92, 393 -1, -1, 70, -1, 71, -1, 70, 71, -1, 8,
282 0, 0 394 -1, 26, -1, 30, -1, 17, -1, 68, 72, -1,
395 73, -1, 36, -1, 73, 46, 76, 48, -1, 73,
396 46, 1, 48, -1, 73, 32, -1, 46, 72, 48,
397 -1, 46, 1, 48, -1, 68, 74, -1, 75, -1,
398 36, -1, 40, -1, 75, 46, 76, 48, -1, 75,
399 46, 1, 48, -1, 75, 32, -1, 46, 74, 48,
400 -1, 46, 1, 48, -1, 77, 35, -1, 77, -1,
401 78, 45, 35, -1, -1, 78, -1, 79, -1, 78,
402 45, 79, -1, 63, 80, -1, 68, 80, -1, 81,
403 -1, -1, 36, -1, 40, -1, 81, 46, 76, 48,
404 -1, 81, 46, 1, 48, -1, 81, 32, -1, 46,
405 80, 48, -1, 46, 1, 48, -1, 62, 72, 31,
406 -1, -1, 84, -1, 49, 33, -1, 50, 86, 44,
407 -1, 50, 1, 44, -1, -1, 87, -1, 88, -1,
408 87, 88, -1, 62, 89, 43, -1, 1, 43, -1,
409 -1, 90, -1, 91, -1, 90, 45, 91, -1, 74,
410 93, -1, 36, 92, -1, 92, -1, 51, 33, -1,
411 -1, 30, -1, 29, 43, -1, -1, 29, -1, 28,
412 46, 36, 48, 43, -1
283}; 413};
284 414
285static const short yydefgoto[] = { 1, 415/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
286 2, 3, 33, 52, 34, 61, 62, 63, 71, 36, 416static const unsigned short int yyrline[] =
287 37, 38, 39, 40, 64, 82, 83, 41, 109, 66, 417{
288 100, 101, 120, 121, 122, 123, 144, 145, 42, 137, 418 0, 102, 102, 103, 107, 107, 113, 113, 115, 116,
289 138, 51, 72, 73, 74, 102, 103, 104, 105, 117, 419 117, 118, 119, 120, 124, 138, 139, 143, 151, 164,
290 43, 90, 44 420 170, 171, 175, 176, 180, 186, 190, 191, 192, 193,
421 194, 198, 199, 200, 201, 205, 207, 209, 213, 220,
422 227, 236, 237, 238, 242, 243, 244, 245, 246, 247,
423 248, 249, 250, 251, 252, 256, 261, 262, 266, 267,
424 271, 271, 271, 272, 280, 281, 285, 294, 296, 298,
425 300, 302, 309, 310, 314, 315, 316, 318, 320, 322,
426 324, 329, 330, 331, 335, 336, 340, 341, 346, 351,
427 353, 357, 358, 366, 370, 372, 374, 376, 378, 383,
428 392, 393, 398, 403, 404, 408, 409, 413, 414, 418,
429 420, 425, 426, 430, 431, 435, 436, 437, 441, 445,
430 446, 450, 454, 455, 459
291}; 431};
432#endif
292 433
293static const short yypact[] = {-32768, 434#if YYDEBUG || YYERROR_VERBOSE
294 15,-32768, 197,-32768, 23,-32768,-32768,-32768,-32768,-32768, 435/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
295 -18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 436 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
296-32768, -28,-32768, -25,-32768,-32768,-32768, -26, -22, -12, 437static const char *const yytname[] =
297-32768,-32768,-32768,-32768, 49, 493,-32768,-32768,-32768,-32768, 438{
298-32768,-32768,-32768,-32768,-32768,-32768,-32768, 27, -8, 101, 439 "$end", "error", "$undefined", "ASM_KEYW", "ATTRIBUTE_KEYW",
299-32768, 493, -8,-32768, 493, 10,-32768,-32768, 11, 9, 440 "AUTO_KEYW", "BOOL_KEYW", "CHAR_KEYW", "CONST_KEYW", "DOUBLE_KEYW",
300 18, 26,-32768, 49, -15, -13,-32768,-32768,-32768, 25, 441 "ENUM_KEYW", "EXTERN_KEYW", "FLOAT_KEYW", "INLINE_KEYW", "INT_KEYW",
301 24, 48, 149,-32768,-32768, 49,-32768, 414, 39, 40, 442 "LONG_KEYW", "REGISTER_KEYW", "RESTRICT_KEYW", "SHORT_KEYW",
302 47,-32768, 9,-32768,-32768, 49,-32768,-32768,-32768, 66, 443 "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW", "TYPEDEF_KEYW",
303-32768, 241,-32768,-32768, 50,-32768, 5, 65, 42, 66, 444 "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW", "VOLATILE_KEYW",
304 17, 56, 55,-32768,-32768,-32768, 60,-32768, 75,-32768, 445 "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE", "ATTRIBUTE_PHRASE",
305 80,-32768,-32768,-32768,-32768,-32768, 81, 82, 370, 85, 446 "BRACE_PHRASE", "BRACKET_PHRASE", "EXPRESSION_PHRASE", "CHAR", "DOTS",
306 98, 89,-32768,-32768, 88,-32768, 91,-32768,-32768,-32768, 447 "IDENT", "INT", "REAL", "STRING", "TYPE", "OTHER", "FILENAME", "';'",
307-32768, 284,-32768, 24,-32768, 103,-32768,-32768,-32768,-32768, 448 "'}'", "','", "'('", "'*'", "')'", "'='", "'{'", "':'", "$accept",
308-32768, 8, 43,-32768, 30,-32768,-32768, 457,-32768,-32768, 449 "declaration_seq", "declaration", "@1", "declaration1", "@2",
309 92, 93,-32768,-32768, 95,-32768, 96,-32768,-32768, 327, 450 "simple_declaration", "init_declarator_list_opt", "init_declarator_list",
310-32768,-32768,-32768,-32768,-32768,-32768, 99, 104,-32768,-32768, 451 "init_declarator", "decl_specifier_seq_opt", "decl_specifier_seq",
311 148,-32768 452 "decl_specifier", "storage_class_specifier", "type_specifier",
453 "simple_type_specifier", "ptr_operator", "cvar_qualifier_seq_opt",
454 "cvar_qualifier_seq", "cvar_qualifier", "declarator",
455 "direct_declarator", "nested_declarator", "direct_nested_declarator",
456 "parameter_declaration_clause", "parameter_declaration_list_opt",
457 "parameter_declaration_list", "parameter_declaration",
458 "m_abstract_declarator", "direct_m_abstract_declarator",
459 "function_definition", "initializer_opt", "initializer", "class_body",
460 "member_specification_opt", "member_specification", "member_declaration",
461 "member_declarator_list_opt", "member_declarator_list",
462 "member_declarator", "member_bitfield_declarator", "attribute_opt",
463 "asm_definition", "asm_phrase_opt", "export_definition", 0
312}; 464};
465#endif
313 466
314static const short yypgoto[] = {-32768, 467# ifdef YYPRINT
315 152,-32768,-32768,-32768, 119,-32768,-32768, 94, 0, -55, 468/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
316 -35,-32768,-32768,-32768, -69,-32768,-32768, -56, -30,-32768, 469 token YYLEX-NUM. */
317 -76,-32768, -122,-32768,-32768, 29, -62,-32768,-32768,-32768, 470static const unsigned short int yytoknum[] =
318-32768, -17,-32768,-32768, 105,-32768,-32768, 52, 86, 83, 471{
319-32768,-32768,-32768 472 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
473 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
474 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
475 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
476 295, 296, 297, 59, 125, 44, 40, 42, 41, 61,
477 123, 58
320}; 478};
479# endif
321 480
481/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
482static const unsigned char yyr1[] =
483{
484 0, 52, 53, 53, 55, 54, 57, 56, 56, 56,
485 56, 56, 56, 56, 58, 59, 59, 60, 60, 61,
486 62, 62, 63, 63, 64, 64, 65, 65, 65, 65,
487 65, 66, 66, 66, 66, 66, 66, 66, 66, 66,
488 66, 66, 66, 66, 67, 67, 67, 67, 67, 67,
489 67, 67, 67, 67, 67, 68, 69, 69, 70, 70,
490 71, 71, 71, 71, 72, 72, 73, 73, 73, 73,
491 73, 73, 74, 74, 75, 75, 75, 75, 75, 75,
492 75, 76, 76, 76, 77, 77, 78, 78, 79, 80,
493 80, 81, 81, 81, 81, 81, 81, 81, 81, 82,
494 83, 83, 84, 85, 85, 86, 86, 87, 87, 88,
495 88, 89, 89, 90, 90, 91, 91, 91, 92, 93,
496 93, 94, 95, 95, 96
497};
322 498
323#define YYLAST 533 499/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
324 500static const unsigned char yyr2[] =
325 501{
326static const short yytable[] = { 78, 502 0, 2, 1, 2, 0, 2, 0, 3, 1, 1,
327 67, 99, 35, 84, 65, 125, 54, 49, 155, 152, 503 1, 1, 2, 2, 3, 0, 1, 1, 3, 4,
328 53, 80, 47, 88, 171, 89, 9, 48, 91, 55, 504 0, 1, 1, 2, 1, 1, 1, 1, 1, 1,
329 127, 50, 129, 56, 50, 18, 114, 99, 81, 99, 505 1, 1, 1, 5, 4, 2, 2, 2, 3, 3,
330 57, 69, 92, 87, 27, 77, 119, 168, 31, -89, 506 3, 2, 2, 2, 1, 1, 1, 1, 1, 1,
331 126, 50, 67, 140, 96, 79, 58, 156, 131, 143, 507 1, 1, 1, 1, 1, 2, 0, 1, 1, 2,
332 97, 76, 60, 142, -89, 60, 59, 68, 60, 95, 508 1, 1, 1, 1, 2, 1, 1, 4, 4, 2,
333 85, 159, 132, 96, 99, 45, 46, 93, 94, 97, 509 3, 3, 2, 1, 1, 1, 4, 4, 2, 3,
334 86, 60, 143, 143, 98, 160, 119, 126, 140, 157, 510 3, 2, 1, 3, 0, 1, 1, 3, 2, 2,
335 158, 96, 156, 67, 58, 111, 112, 97, 142, 60, 511 1, 0, 1, 1, 4, 4, 2, 3, 3, 3,
336 60, 106, 119, 113, 59, 116, 60, 128, 133, 134, 512 0, 1, 2, 3, 3, 0, 1, 1, 2, 3,
337 98, 70, 93, 88, 119, 6, 7, 8, 9, 10, 513 2, 0, 1, 1, 3, 2, 2, 1, 2, 0,
338 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 514 1, 2, 0, 1, 5
339 21, 22, 135, 24, 25, 26, 27, 28, 139, 136,
340 31, 146, 147, 148, 149, 154, -19, 150, 163, 164,
341 32, 165, 166, -19, -103, 169, -19, 172, -19, 107,
342 170, -19, 4, 6, 7, 8, 9, 10, 11, 12,
343 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
344 75, 24, 25, 26, 27, 28, 162, 108, 31, 115,
345 124, 0, 130, 0, -19, 153, 0, 0, 32, 0,
346 0, -19, -104, 0, -19, 0, -19, 5, 0, -19,
347 0, 6, 7, 8, 9, 10, 11, 12, 13, 14,
348 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
349 25, 26, 27, 28, 29, 30, 31, 0, 0, 0,
350 0, 0, -19, 0, 0, 0, 32, 0, 0, -19,
351 0, 118, -19, 0, -19, 6, 7, 8, 9, 10,
352 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
353 21, 22, 0, 24, 25, 26, 27, 28, 0, 0,
354 31, 0, 0, 0, 0, -82, 0, 0, 0, 0,
355 32, 0, 0, 0, 151, 0, 0, -82, 6, 7,
356 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
357 18, 19, 20, 21, 22, 0, 24, 25, 26, 27,
358 28, 0, 0, 31, 0, 0, 0, 0, -82, 0,
359 0, 0, 0, 32, 0, 0, 0, 167, 0, 0,
360 -82, 6, 7, 8, 9, 10, 11, 12, 13, 14,
361 15, 16, 17, 18, 19, 20, 21, 22, 0, 24,
362 25, 26, 27, 28, 0, 0, 31, 0, 0, 0,
363 0, -82, 0, 0, 0, 0, 32, 0, 0, 0,
364 0, 0, 0, -82, 6, 7, 8, 9, 10, 11,
365 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
366 22, 0, 24, 25, 26, 27, 28, 0, 0, 31,
367 0, 0, 0, 0, 0, 140, 0, 0, 0, 141,
368 0, 0, 0, 0, 0, 142, 0, 60, 6, 7,
369 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
370 18, 19, 20, 21, 22, 0, 24, 25, 26, 27,
371 28, 0, 0, 31, 0, 0, 0, 0, 0, 0,
372 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
373 110, 6, 7, 8, 9, 10, 11, 12, 13, 14,
374 15, 16, 17, 18, 19, 20, 21, 22, 0, 24,
375 25, 26, 27, 28, 0, 0, 31, 0, 0, 0,
376 0, 161, 0, 0, 0, 0, 32, 6, 7, 8,
377 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
378 19, 20, 21, 22, 0, 24, 25, 26, 27, 28,
379 0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
380 0, 0, 32
381}; 515};
382 516
383static const short yycheck[] = { 55, 517/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
384 36, 71, 3, 60, 35, 1, 24, 36, 1, 132, 518 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
385 36, 1, 31, 29, 0, 31, 8, 36, 32, 46, 519 means the default is an error. */
386 97, 50, 99, 46, 50, 17, 83, 97, 59, 99, 520static const unsigned char yydefact[] =
387 43, 49, 46, 64, 26, 53, 92, 160, 30, 32, 521{
388 36, 50, 78, 36, 40, 36, 36, 40, 32, 119, 522 4, 4, 2, 0, 1, 3, 0, 26, 53, 44,
389 46, 52, 48, 46, 47, 48, 46, 31, 48, 36, 523 60, 51, 0, 29, 50, 30, 46, 47, 27, 63,
390 43, 32, 46, 40, 134, 43, 44, 43, 44, 46, 524 45, 48, 28, 0, 6, 0, 49, 52, 61, 0,
391 45, 48, 142, 143, 51, 46, 132, 36, 36, 142, 525 0, 0, 62, 54, 5, 8, 15, 21, 22, 24,
392 143, 40, 40, 119, 36, 47, 47, 46, 46, 48, 526 25, 31, 32, 9, 10, 11, 12, 13, 41, 37,
393 48, 44, 148, 47, 46, 30, 48, 33, 43, 45, 527 35, 0, 42, 20, 36, 43, 0, 0, 121, 66,
394 51, 1, 43, 29, 160, 5, 6, 7, 8, 9, 528 0, 56, 0, 16, 17, 0, 122, 65, 23, 40,
395 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 529 38, 0, 111, 0, 0, 107, 7, 15, 39, 0,
396 20, 21, 43, 23, 24, 25, 26, 27, 47, 49, 530 0, 0, 0, 55, 57, 58, 14, 0, 64, 123,
397 30, 47, 35, 45, 47, 33, 36, 47, 47, 47, 531 99, 119, 69, 0, 110, 104, 74, 75, 0, 0,
398 40, 47, 47, 43, 44, 47, 46, 0, 48, 1, 532 0, 119, 73, 0, 112, 113, 117, 103, 0, 108,
399 47, 51, 1, 5, 6, 7, 8, 9, 10, 11, 533 122, 0, 34, 0, 71, 70, 59, 18, 120, 100,
400 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 534 0, 91, 0, 82, 85, 86, 116, 0, 74, 0,
401 52, 23, 24, 25, 26, 27, 148, 73, 30, 86, 535 118, 72, 115, 78, 0, 109, 0, 33, 124, 0,
402 95, -1, 100, -1, 36, 134, -1, -1, 40, -1, 536 19, 101, 68, 92, 54, 0, 91, 88, 90, 67,
403 -1, 43, 44, -1, 46, -1, 48, 1, -1, 51, 537 81, 0, 80, 79, 0, 0, 114, 102, 0, 93,
404 -1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 538 0, 89, 96, 0, 83, 87, 77, 76, 98, 97,
405 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 539 0, 0, 95, 94
406 24, 25, 26, 27, 28, 29, 30, -1, -1, -1,
407 -1, -1, 36, -1, -1, -1, 40, -1, -1, 43,
408 -1, 1, 46, -1, 48, 5, 6, 7, 8, 9,
409 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
410 20, 21, -1, 23, 24, 25, 26, 27, -1, -1,
411 30, -1, -1, -1, -1, 35, -1, -1, -1, -1,
412 40, -1, -1, -1, 1, -1, -1, 47, 5, 6,
413 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
414 17, 18, 19, 20, 21, -1, 23, 24, 25, 26,
415 27, -1, -1, 30, -1, -1, -1, -1, 35, -1,
416 -1, -1, -1, 40, -1, -1, -1, 1, -1, -1,
417 47, 5, 6, 7, 8, 9, 10, 11, 12, 13,
418 14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
419 24, 25, 26, 27, -1, -1, 30, -1, -1, -1,
420 -1, 35, -1, -1, -1, -1, 40, -1, -1, -1,
421 -1, -1, -1, 47, 5, 6, 7, 8, 9, 10,
422 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
423 21, -1, 23, 24, 25, 26, 27, -1, -1, 30,
424 -1, -1, -1, -1, -1, 36, -1, -1, -1, 40,
425 -1, -1, -1, -1, -1, 46, -1, 48, 5, 6,
426 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
427 17, 18, 19, 20, 21, -1, 23, 24, 25, 26,
428 27, -1, -1, 30, -1, -1, -1, -1, -1, -1,
429 -1, -1, -1, 40, -1, -1, -1, -1, -1, -1,
430 47, 5, 6, 7, 8, 9, 10, 11, 12, 13,
431 14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
432 24, 25, 26, 27, -1, -1, 30, -1, -1, -1,
433 -1, 35, -1, -1, -1, -1, 40, 5, 6, 7,
434 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
435 18, 19, 20, 21, -1, 23, 24, 25, 26, 27,
436 -1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
437 -1, -1, 40
438}; 540};
439/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
440#line 3 "/usr/lib/bison.simple"
441/* This file comes from bison-1.28. */
442 541
443/* Skeleton output parser for bison, 542/* YYDEFGOTO[NTERM-NUM]. */
444 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. 543static const short int yydefgoto[] =
544{
545 -1, 1, 2, 3, 34, 53, 35, 62, 63, 64,
546 72, 37, 38, 39, 40, 41, 65, 83, 84, 42,
547 110, 67, 101, 102, 122, 123, 124, 125, 147, 148,
548 43, 140, 141, 52, 73, 74, 75, 103, 104, 105,
549 106, 119, 44, 91, 45
550};
445 551
446 This program is free software; you can redistribute it and/or modify 552/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
447 it under the terms of the GNU General Public License as published by 553 STATE-NUM. */
448 the Free Software Foundation; either version 2, or (at your option) 554#define YYPACT_NINF -128
449 any later version. 555static const short int yypact[] =
556{
557 -128, 13, -128, 329, -128, -128, 36, -128, -128, -128,
558 -128, -128, -16, -128, -128, -128, -128, -128, -128, -128,
559 -128, -128, -128, -25, -128, -24, -128, -128, -128, -29,
560 -4, -22, -128, -128, -128, -128, -28, 495, -128, -128,
561 -128, -128, -128, -128, -128, -128, -128, -128, -128, 16,
562 -23, 103, -128, 495, -23, -128, 495, 35, -128, -128,
563 3, 15, 9, 17, -128, -28, -15, -8, -128, -128,
564 -128, 47, 23, 44, 150, -128, -128, -28, -128, 372,
565 33, 48, 49, -128, 15, -128, -128, -28, -128, -128,
566 -128, 64, -128, 197, -128, -128, 50, -128, 21, 65,
567 37, 64, 14, 56, 55, -128, -128, -128, 59, -128,
568 74, 57, -128, 63, -128, -128, -128, -128, -128, 76,
569 83, 416, 84, 99, 90, -128, -128, 88, -128, 89,
570 -128, -128, -128, -128, 241, -128, 23, -128, -128, 105,
571 -128, -128, -128, -128, -128, 8, 46, -128, 26, -128,
572 -128, 459, -128, -128, 92, 93, -128, -128, 94, -128,
573 96, -128, -128, 285, -128, -128, -128, -128, -128, -128,
574 97, 100, -128, -128
575};
450 576
451 This program is distributed in the hope that it will be useful, 577/* YYPGOTO[NTERM-NUM]. */
452 but WITHOUT ANY WARRANTY; without even the implied warranty of 578static const short int yypgoto[] =
453 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 579{
454 GNU General Public License for more details. 580 -128, -128, 151, -128, -128, -128, 119, -128, -128, 66,
581 0, -56, -36, -128, -128, -128, -70, -128, -128, -51,
582 -31, -128, -11, -128, -127, -128, -128, 27, -81, -128,
583 -128, -128, -128, -19, -128, -128, 107, -128, -128, 43,
584 86, 82, -128, -128, -128
585};
455 586
456 You should have received a copy of the GNU General Public License 587/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
457 along with this program; if not, write to the Free Software 588 positive, shift that token. If negative, reduce the rule which
458 Foundation, Inc., 59 Temple Place - Suite 330, 589 number is the opposite. If zero, do what YYDEFACT says.
459 Boston, MA 02111-1307, USA. */ 590 If YYTABLE_NINF, syntax error. */
591#define YYTABLE_NINF -107
592static const short int yytable[] =
593{
594 79, 68, 100, 36, 81, 66, 55, 155, 59, 158,
595 85, 50, 54, 4, 89, 48, 90, 56, 60, 61,
596 49, 58, 127, 10, 92, 51, 51, 51, 100, 82,
597 100, 70, 19, 116, 88, 78, 171, 121, 93, 59,
598 -91, 28, 57, 68, 143, 32, 133, 69, 159, 60,
599 61, 146, 86, 77, 145, 61, -91, 128, 162, 96,
600 134, 97, 87, 97, 160, 161, 100, 98, 61, 98,
601 61, 80, 163, 128, 99, 146, 146, 97, 121, 46,
602 47, 113, 143, 98, 61, 68, 159, 129, 107, 131,
603 94, 95, 145, 61, 118, 121, 114, 115, 130, 135,
604 136, 99, 94, 89, 71, 137, 138, 121, 7, 8,
605 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
606 19, 20, 21, 22, 23, 139, 25, 26, 27, 28,
607 29, 142, 149, 32, 150, 151, 152, 153, 157, -20,
608 166, 167, 168, 33, 169, 172, -20, -105, 173, -20,
609 -20, 108, 5, 117, -20, 7, 8, 9, 10, 11,
610 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
611 22, 23, 76, 25, 26, 27, 28, 29, 165, 156,
612 32, 109, 126, 132, 0, 0, -20, 0, 0, 0,
613 33, 0, 0, -20, -106, 0, -20, -20, 120, 0,
614 0, -20, 7, 8, 9, 10, 11, 12, 13, 14,
615 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
616 25, 26, 27, 28, 29, 0, 0, 32, 0, 0,
617 0, 0, -84, 0, 0, 0, 0, 33, 0, 0,
618 0, 0, 154, 0, 0, -84, 7, 8, 9, 10,
619 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
620 21, 22, 23, 0, 25, 26, 27, 28, 29, 0,
621 0, 32, 0, 0, 0, 0, -84, 0, 0, 0,
622 0, 33, 0, 0, 0, 0, 170, 0, 0, -84,
623 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
624 17, 18, 19, 20, 21, 22, 23, 0, 25, 26,
625 27, 28, 29, 0, 0, 32, 0, 0, 0, 0,
626 -84, 0, 0, 0, 0, 33, 0, 0, 0, 0,
627 6, 0, 0, -84, 7, 8, 9, 10, 11, 12,
628 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
629 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
630 0, 0, 0, 0, 0, -20, 0, 0, 0, 33,
631 0, 0, -20, 0, 0, -20, -20, 7, 8, 9,
632 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
633 20, 21, 22, 23, 0, 25, 26, 27, 28, 29,
634 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
635 0, 0, 33, 0, 0, 0, 0, 0, 0, 111,
636 112, 7, 8, 9, 10, 11, 12, 13, 14, 15,
637 16, 17, 18, 19, 20, 21, 22, 23, 0, 25,
638 26, 27, 28, 29, 0, 0, 32, 0, 0, 0,
639 0, 0, 143, 0, 0, 0, 144, 0, 0, 0,
640 0, 0, 145, 61, 7, 8, 9, 10, 11, 12,
641 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
642 23, 0, 25, 26, 27, 28, 29, 0, 0, 32,
643 0, 0, 0, 0, 164, 0, 0, 0, 0, 33,
644 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
645 17, 18, 19, 20, 21, 22, 23, 0, 25, 26,
646 27, 28, 29, 0, 0, 32, 0, 0, 0, 0,
647 0, 0, 0, 0, 0, 33
648};
460 649
461/* As a special exception, when this file is copied by Bison into a 650static const short int yycheck[] =
462 Bison output file, you may use that output file without restriction. 651{
463 This special exception was added by the Free Software Foundation 652 56, 37, 72, 3, 1, 36, 25, 134, 36, 1,
464 in version 1.24 of Bison. */ 653 61, 36, 36, 0, 29, 31, 31, 46, 46, 47,
654 36, 43, 1, 8, 32, 50, 50, 50, 98, 60,
655 100, 50, 17, 84, 65, 54, 163, 93, 46, 36,
656 32, 26, 46, 79, 36, 30, 32, 31, 40, 46,
657 47, 121, 43, 53, 46, 47, 48, 36, 32, 36,
658 46, 40, 45, 40, 145, 146, 136, 46, 47, 46,
659 47, 36, 46, 36, 51, 145, 146, 40, 134, 43,
660 44, 48, 36, 46, 47, 121, 40, 98, 44, 100,
661 43, 44, 46, 47, 30, 151, 48, 48, 33, 43,
662 45, 51, 43, 29, 1, 48, 43, 163, 5, 6,
663 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
664 17, 18, 19, 20, 21, 49, 23, 24, 25, 26,
665 27, 48, 48, 30, 35, 45, 48, 48, 33, 36,
666 48, 48, 48, 40, 48, 48, 43, 44, 48, 46,
667 47, 1, 1, 87, 51, 5, 6, 7, 8, 9,
668 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
669 20, 21, 53, 23, 24, 25, 26, 27, 151, 136,
670 30, 74, 96, 101, -1, -1, 36, -1, -1, -1,
671 40, -1, -1, 43, 44, -1, 46, 47, 1, -1,
672 -1, 51, 5, 6, 7, 8, 9, 10, 11, 12,
673 13, 14, 15, 16, 17, 18, 19, 20, 21, -1,
674 23, 24, 25, 26, 27, -1, -1, 30, -1, -1,
675 -1, -1, 35, -1, -1, -1, -1, 40, -1, -1,
676 -1, -1, 1, -1, -1, 48, 5, 6, 7, 8,
677 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
678 19, 20, 21, -1, 23, 24, 25, 26, 27, -1,
679 -1, 30, -1, -1, -1, -1, 35, -1, -1, -1,
680 -1, 40, -1, -1, -1, -1, 1, -1, -1, 48,
681 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
682 15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
683 25, 26, 27, -1, -1, 30, -1, -1, -1, -1,
684 35, -1, -1, -1, -1, 40, -1, -1, -1, -1,
685 1, -1, -1, 48, 5, 6, 7, 8, 9, 10,
686 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
687 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
688 -1, -1, -1, -1, -1, 36, -1, -1, -1, 40,
689 -1, -1, 43, -1, -1, 46, 47, 5, 6, 7,
690 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
691 18, 19, 20, 21, -1, 23, 24, 25, 26, 27,
692 -1, -1, 30, -1, -1, -1, -1, -1, -1, -1,
693 -1, -1, 40, -1, -1, -1, -1, -1, -1, 47,
694 48, 5, 6, 7, 8, 9, 10, 11, 12, 13,
695 14, 15, 16, 17, 18, 19, 20, 21, -1, 23,
696 24, 25, 26, 27, -1, -1, 30, -1, -1, -1,
697 -1, -1, 36, -1, -1, -1, 40, -1, -1, -1,
698 -1, -1, 46, 47, 5, 6, 7, 8, 9, 10,
699 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
700 21, -1, 23, 24, 25, 26, 27, -1, -1, 30,
701 -1, -1, -1, -1, 35, -1, -1, -1, -1, 40,
702 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
703 15, 16, 17, 18, 19, 20, 21, -1, 23, 24,
704 25, 26, 27, -1, -1, 30, -1, -1, -1, -1,
705 -1, -1, -1, -1, -1, 40
706};
465 707
466/* This is the parser code that is written into each bison parser 708/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
467 when the %semantic_parser declaration is not specified in the grammar. 709 symbol of state STATE-NUM. */
468 It was written by Richard Stallman by simplifying the hairy parser 710static const unsigned char yystos[] =
469 used when %semantic_parser is specified. */ 711{
712 0, 53, 54, 55, 0, 54, 1, 5, 6, 7,
713 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
714 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
715 28, 29, 30, 40, 56, 58, 62, 63, 64, 65,
716 66, 67, 71, 82, 94, 96, 43, 44, 31, 36,
717 36, 50, 85, 57, 36, 85, 46, 46, 43, 36,
718 46, 47, 59, 60, 61, 68, 72, 73, 64, 31,
719 85, 1, 62, 86, 87, 88, 58, 62, 85, 63,
720 36, 1, 72, 69, 70, 71, 43, 45, 72, 29,
721 31, 95, 32, 46, 43, 44, 36, 40, 46, 51,
722 68, 74, 75, 89, 90, 91, 92, 44, 1, 88,
723 72, 47, 48, 48, 48, 48, 71, 61, 30, 93,
724 1, 63, 76, 77, 78, 79, 92, 1, 36, 74,
725 33, 74, 93, 32, 46, 43, 45, 48, 43, 49,
726 83, 84, 48, 36, 40, 46, 68, 80, 81, 48,
727 35, 45, 48, 48, 1, 76, 91, 33, 1, 40,
728 80, 80, 32, 46, 35, 79, 48, 48, 48, 48,
729 1, 76, 48, 48
730};
470 731
471#ifndef YYSTACK_USE_ALLOCA 732#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
472#ifdef alloca 733# define YYSIZE_T __SIZE_TYPE__
473#define YYSTACK_USE_ALLOCA
474#else /* alloca not defined */
475#ifdef __GNUC__
476#define YYSTACK_USE_ALLOCA
477#define alloca __builtin_alloca
478#else /* not GNU C. */
479#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
480#define YYSTACK_USE_ALLOCA
481#include <alloca.h>
482#else /* not sparc */
483/* We think this test detects Watcom and Microsoft C. */
484/* This used to test MSDOS, but that is a bad idea
485 since that symbol is in the user namespace. */
486#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
487#if 0 /* No need for malloc.h, which pollutes the namespace;
488 instead, just don't use alloca. */
489#include <malloc.h>
490#endif 734#endif
491#else /* not MSDOS, or __TURBOC__ */ 735#if ! defined (YYSIZE_T) && defined (size_t)
492#if defined(_AIX) 736# define YYSIZE_T size_t
493/* I don't know what this was needed for, but it pollutes the namespace.
494 So I turned it off. rms, 2 May 1997. */
495/* #include <malloc.h> */
496 #pragma alloca
497#define YYSTACK_USE_ALLOCA
498#else /* not MSDOS, or __TURBOC__, or _AIX */
499#if 0
500#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
501 and on HPUX 10. Eventually we can turn this on. */
502#define YYSTACK_USE_ALLOCA
503#define alloca __builtin_alloca
504#endif /* __hpux */
505#endif 737#endif
506#endif /* not _AIX */ 738#if ! defined (YYSIZE_T)
507#endif /* not MSDOS, or __TURBOC__ */ 739# if defined (__STDC__) || defined (__cplusplus)
508#endif /* not sparc */ 740# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
509#endif /* not GNU C */ 741# define YYSIZE_T size_t
510#endif /* alloca not defined */ 742# endif
511#endif /* YYSTACK_USE_ALLOCA not defined */ 743#endif
512 744#if ! defined (YYSIZE_T)
513#ifdef YYSTACK_USE_ALLOCA 745# define YYSIZE_T unsigned int
514#define YYSTACK_ALLOC alloca
515#else
516#define YYSTACK_ALLOC malloc
517#endif 746#endif
518
519/* Note: there must be only one dollar sign in this file.
520 It is replaced by the list of actions, each action
521 as one case of the switch. */
522 747
523#define yyerrok (yyerrstatus = 0) 748#define yyerrok (yyerrstatus = 0)
524#define yyclearin (yychar = YYEMPTY) 749#define yyclearin (yychar = YYEMPTY)
525#define YYEMPTY -2 750#define YYEMPTY (-2)
526#define YYEOF 0 751#define YYEOF 0
752
527#define YYACCEPT goto yyacceptlab 753#define YYACCEPT goto yyacceptlab
528#define YYABORT goto yyabortlab 754#define YYABORT goto yyabortlab
529#define YYERROR goto yyerrlab1 755#define YYERROR goto yyerrorlab
530/* Like YYERROR except do call yyerror. 756
531 This remains here temporarily to ease the 757
532 transition to the new meaning of YYERROR, for GCC. 758/* Like YYERROR except do call yyerror. This remains here temporarily
759 to ease the transition to the new meaning of YYERROR, for GCC.
533 Once GCC version 2 has supplanted version 1, this can go. */ 760 Once GCC version 2 has supplanted version 1, this can go. */
761
534#define YYFAIL goto yyerrlab 762#define YYFAIL goto yyerrlab
763
535#define YYRECOVERING() (!!yyerrstatus) 764#define YYRECOVERING() (!!yyerrstatus)
536#define YYBACKUP(token, value) \ 765
766#define YYBACKUP(Token, Value) \
537do \ 767do \
538 if (yychar == YYEMPTY && yylen == 1) \ 768 if (yychar == YYEMPTY && yylen == 1) \
539 { yychar = (token), yylval = (value); \ 769 { \
540 yychar1 = YYTRANSLATE (yychar); \ 770 yychar = (Token); \
771 yylval = (Value); \
772 yytoken = YYTRANSLATE (yychar); \
541 YYPOPSTACK; \ 773 YYPOPSTACK; \
542 goto yybackup; \ 774 goto yybackup; \
543 } \ 775 } \
544 else \ 776 else \
545 { yyerror ("syntax error: cannot back up"); YYERROR; } \ 777 { \
778 yyerror ("syntax error: cannot back up");\
779 YYERROR; \
780 } \
546while (0) 781while (0)
547 782
783
548#define YYTERROR 1 784#define YYTERROR 1
549#define YYERRCODE 256 785#define YYERRCODE 256
550 786
551#ifndef YYPURE 787
552#define YYLEX yylex() 788/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
789 If N is 0, then set CURRENT to the empty location which ends
790 the previous symbol: RHS[0] (always defined). */
791
792#define YYRHSLOC(Rhs, K) ((Rhs)[K])
793#ifndef YYLLOC_DEFAULT
794# define YYLLOC_DEFAULT(Current, Rhs, N) \
795 do \
796 if (N) \
797 { \
798 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
799 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
800 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
801 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
802 } \
803 else \
804 { \
805 (Current).first_line = (Current).last_line = \
806 YYRHSLOC (Rhs, 0).last_line; \
807 (Current).first_column = (Current).last_column = \
808 YYRHSLOC (Rhs, 0).last_column; \
809 } \
810 while (0)
553#endif 811#endif
554 812
555#ifdef YYPURE 813
556#ifdef YYLSP_NEEDED 814/* YY_LOCATION_PRINT -- Print the location on the stream.
557#ifdef YYLEX_PARAM 815 This macro was not mandated originally: define only if we know
558#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) 816 we won't break user code: when these are the locations we know. */
559#else 817
560#define YYLEX yylex(&yylval, &yylloc) 818#ifndef YY_LOCATION_PRINT
819# if YYLTYPE_IS_TRIVIAL
820# define YY_LOCATION_PRINT(File, Loc) \
821 fprintf (File, "%d.%d-%d.%d", \
822 (Loc).first_line, (Loc).first_column, \
823 (Loc).last_line, (Loc).last_column)
824# else
825# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
826# endif
561#endif 827#endif
562#else /* not YYLSP_NEEDED */ 828
829
830/* YYLEX -- calling `yylex' with the right arguments. */
831
563#ifdef YYLEX_PARAM 832#ifdef YYLEX_PARAM
564#define YYLEX yylex(&yylval, YYLEX_PARAM) 833# define YYLEX yylex (YYLEX_PARAM)
565#else 834#else
566#define YYLEX yylex(&yylval) 835# define YYLEX yylex ()
567#endif 836#endif
568#endif /* not YYLSP_NEEDED */ 837
838/* Enable debugging if requested. */
839#if YYDEBUG
840
841# ifndef YYFPRINTF
842# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
843# define YYFPRINTF fprintf
844# endif
845
846# define YYDPRINTF(Args) \
847do { \
848 if (yydebug) \
849 YYFPRINTF Args; \
850} while (0)
851
852# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
853do { \
854 if (yydebug) \
855 { \
856 YYFPRINTF (stderr, "%s ", Title); \
857 yysymprint (stderr, \
858 Type, Value); \
859 YYFPRINTF (stderr, "\n"); \
860 } \
861} while (0)
862
863/*------------------------------------------------------------------.
864| yy_stack_print -- Print the state stack from its BOTTOM up to its |
865| TOP (included). |
866`------------------------------------------------------------------*/
867
868#if defined (__STDC__) || defined (__cplusplus)
869static void
870yy_stack_print (short int *bottom, short int *top)
871#else
872static void
873yy_stack_print (bottom, top)
874 short int *bottom;
875 short int *top;
569#endif 876#endif
877{
878 YYFPRINTF (stderr, "Stack now");
879 for (/* Nothing. */; bottom <= top; ++bottom)
880 YYFPRINTF (stderr, " %d", *bottom);
881 YYFPRINTF (stderr, "\n");
882}
570 883
571/* If nonreentrant, generate the variables here */ 884# define YY_STACK_PRINT(Bottom, Top) \
885do { \
886 if (yydebug) \
887 yy_stack_print ((Bottom), (Top)); \
888} while (0)
572 889
573#ifndef YYPURE
574 890
575int yychar; /* the lookahead symbol */ 891/*------------------------------------------------.
576YYSTYPE yylval; /* the semantic value of the */ 892| Report that the YYRULE is going to be reduced. |
577 /* lookahead symbol */ 893`------------------------------------------------*/
578 894
579#ifdef YYLSP_NEEDED 895#if defined (__STDC__) || defined (__cplusplus)
580YYLTYPE yylloc; /* location data for the lookahead */ 896static void
581 /* symbol */ 897yy_reduce_print (int yyrule)
898#else
899static void
900yy_reduce_print (yyrule)
901 int yyrule;
582#endif 902#endif
903{
904 int yyi;
905 unsigned int yylno = yyrline[yyrule];
906 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
907 yyrule - 1, yylno);
908 /* Print the symbols being reduced, and their result. */
909 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
910 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
911 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
912}
583 913
584int yynerrs; /* number of parse errors so far */ 914# define YY_REDUCE_PRINT(Rule) \
585#endif /* not YYPURE */ 915do { \
916 if (yydebug) \
917 yy_reduce_print (Rule); \
918} while (0)
586 919
587#if YYDEBUG != 0 920/* Nonzero means print parse trace. It is left uninitialized so that
588int yydebug; /* nonzero means print parse trace */ 921 multiple parsers can coexist. */
589/* Since this is uninitialized, it does not stop multiple parsers 922int yydebug;
590 from coexisting. */ 923#else /* !YYDEBUG */
591#endif 924# define YYDPRINTF(Args)
925# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
926# define YY_STACK_PRINT(Bottom, Top)
927# define YY_REDUCE_PRINT(Rule)
928#endif /* !YYDEBUG */
592 929
593/* YYINITDEPTH indicates the initial size of the parser's stacks */
594 930
931/* YYINITDEPTH -- initial size of the parser's stacks. */
595#ifndef YYINITDEPTH 932#ifndef YYINITDEPTH
596#define YYINITDEPTH 200 933# define YYINITDEPTH 200
597#endif 934#endif
598 935
599/* YYMAXDEPTH is the maximum size the stacks can grow to 936/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
600 (effective only if the built-in stack extension method is used). */ 937 if the built-in stack extension method is used).
601 938
602#if YYMAXDEPTH == 0 939 Do not make this value too large; the results are undefined if
603#undef YYMAXDEPTH 940 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
604#endif 941 evaluated with infinite-precision integer arithmetic. */
605 942
606#ifndef YYMAXDEPTH 943#ifndef YYMAXDEPTH
607#define YYMAXDEPTH 10000 944# define YYMAXDEPTH 10000
608#endif 945#endif
946
609 947
610/* Define __yy_memcpy. Note that the size argument 948
611 should be passed with type unsigned int, because that is what the non-GCC 949#if YYERROR_VERBOSE
612 definitions require. With GCC, __builtin_memcpy takes an arg 950
613 of type size_t, but it can handle unsigned int. */ 951# ifndef yystrlen
614 952# if defined (__GLIBC__) && defined (_STRING_H)
615#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ 953# define yystrlen strlen
616#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) 954# else
617#else /* not GNU C or C++ */ 955/* Return the length of YYSTR. */
618#ifndef __cplusplus 956static YYSIZE_T
619 957# if defined (__STDC__) || defined (__cplusplus)
620/* This is the most reliable way to avoid incompatibilities 958yystrlen (const char *yystr)
621 in available built-in functions on various systems. */ 959# else
622static void 960yystrlen (yystr)
623__yy_memcpy (to, from, count) 961 const char *yystr;
624 char *to; 962# endif
625 char *from; 963{
626 unsigned int count; 964 register const char *yys = yystr;
965
966 while (*yys++ != '\0')
967 continue;
968
969 return yys - yystr - 1;
970}
971# endif
972# endif
973
974# ifndef yystpcpy
975# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
976# define yystpcpy stpcpy
977# else
978/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
979 YYDEST. */
980static char *
981# if defined (__STDC__) || defined (__cplusplus)
982yystpcpy (char *yydest, const char *yysrc)
983# else
984yystpcpy (yydest, yysrc)
985 char *yydest;
986 const char *yysrc;
987# endif
627{ 988{
628 register char *f = from; 989 register char *yyd = yydest;
629 register char *t = to; 990 register const char *yys = yysrc;
630 register int i = count;
631 991
632 while (i-- > 0) 992 while ((*yyd++ = *yys++) != '\0')
633 *t++ = *f++; 993 continue;
994
995 return yyd - 1;
634} 996}
997# endif
998# endif
999
1000#endif /* !YYERROR_VERBOSE */
635 1001
636#else /* __cplusplus */ 1002
1003
1004#if YYDEBUG
1005/*--------------------------------.
1006| Print this symbol on YYOUTPUT. |
1007`--------------------------------*/
637 1008
638/* This is the most reliable way to avoid incompatibilities 1009#if defined (__STDC__) || defined (__cplusplus)
639 in available built-in functions on various systems. */
640static void 1010static void
641__yy_memcpy (char *to, char *from, unsigned int count) 1011yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1012#else
1013static void
1014yysymprint (yyoutput, yytype, yyvaluep)
1015 FILE *yyoutput;
1016 int yytype;
1017 YYSTYPE *yyvaluep;
1018#endif
642{ 1019{
643 register char *t = to; 1020 /* Pacify ``unused variable'' warnings. */
644 register char *f = from; 1021 (void) yyvaluep;
645 register int i = count;
646 1022
647 while (i-- > 0) 1023 if (yytype < YYNTOKENS)
648 *t++ = *f++; 1024 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1025 else
1026 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1027
1028
1029# ifdef YYPRINT
1030 if (yytype < YYNTOKENS)
1031 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1032# endif
1033 switch (yytype)
1034 {
1035 default:
1036 break;
1037 }
1038 YYFPRINTF (yyoutput, ")");
649} 1039}
650 1040
1041#endif /* ! YYDEBUG */
1042/*-----------------------------------------------.
1043| Release the memory associated to this symbol. |
1044`-----------------------------------------------*/
1045
1046#if defined (__STDC__) || defined (__cplusplus)
1047static void
1048yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1049#else
1050static void
1051yydestruct (yymsg, yytype, yyvaluep)
1052 const char *yymsg;
1053 int yytype;
1054 YYSTYPE *yyvaluep;
651#endif 1055#endif
652#endif 1056{
1057 /* Pacify ``unused variable'' warnings. */
1058 (void) yyvaluep;
1059
1060 if (!yymsg)
1061 yymsg = "Deleting";
1062 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1063
1064 switch (yytype)
1065 {
1066
1067 default:
1068 break;
1069 }
1070}
653 1071
654#line 217 "/usr/lib/bison.simple"
655 1072
656/* The user can define YYPARSE_PARAM as the name of an argument to be passed 1073/* Prevent warnings from -Wmissing-prototypes. */
657 into yyparse. The argument should have type void *.
658 It should actually point to an object.
659 Grammar actions can access the variable by casting it
660 to the proper pointer type. */
661 1074
662#ifdef YYPARSE_PARAM 1075#ifdef YYPARSE_PARAM
663#ifdef __cplusplus 1076# if defined (__STDC__) || defined (__cplusplus)
664#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM 1077int yyparse (void *YYPARSE_PARAM);
665#define YYPARSE_PARAM_DECL 1078# else
666#else /* not __cplusplus */ 1079int yyparse ();
667#define YYPARSE_PARAM_ARG YYPARSE_PARAM 1080# endif
668#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; 1081#else /* ! YYPARSE_PARAM */
669#endif /* not __cplusplus */ 1082#if defined (__STDC__) || defined (__cplusplus)
670#else /* not YYPARSE_PARAM */
671#define YYPARSE_PARAM_ARG
672#define YYPARSE_PARAM_DECL
673#endif /* not YYPARSE_PARAM */
674
675/* Prevent warning if -Wstrict-prototypes. */
676#ifdef __GNUC__
677#ifdef YYPARSE_PARAM
678int yyparse (void *);
679#else
680int yyparse (void); 1083int yyparse (void);
1084#else
1085int yyparse ();
681#endif 1086#endif
682#endif 1087#endif /* ! YYPARSE_PARAM */
1088
1089
1090
1091/* The look-ahead symbol. */
1092int yychar;
683 1093
1094/* The semantic value of the look-ahead symbol. */
1095YYSTYPE yylval;
1096
1097/* Number of syntax errors so far. */
1098int yynerrs;
1099
1100
1101
1102/*----------.
1103| yyparse. |
1104`----------*/
1105
1106#ifdef YYPARSE_PARAM
1107# if defined (__STDC__) || defined (__cplusplus)
1108int yyparse (void *YYPARSE_PARAM)
1109# else
1110int yyparse (YYPARSE_PARAM)
1111 void *YYPARSE_PARAM;
1112# endif
1113#else /* ! YYPARSE_PARAM */
1114#if defined (__STDC__) || defined (__cplusplus)
1115int
1116yyparse (void)
1117#else
684int 1118int
685yyparse(YYPARSE_PARAM_ARG) 1119yyparse ()
686 YYPARSE_PARAM_DECL 1120
1121#endif
1122#endif
687{ 1123{
1124
688 register int yystate; 1125 register int yystate;
689 register int yyn; 1126 register int yyn;
690 register short *yyssp; 1127 int yyresult;
1128 /* Number of tokens to shift before error messages enabled. */
1129 int yyerrstatus;
1130 /* Look-ahead token as an internal (translated) token number. */
1131 int yytoken = 0;
1132
1133 /* Three stacks and their tools:
1134 `yyss': related to states,
1135 `yyvs': related to semantic values,
1136 `yyls': related to locations.
1137
1138 Refer to the stacks thru separate pointers, to allow yyoverflow
1139 to reallocate them elsewhere. */
1140
1141 /* The state stack. */
1142 short int yyssa[YYINITDEPTH];
1143 short int *yyss = yyssa;
1144 register short int *yyssp;
1145
1146 /* The semantic value stack. */
1147 YYSTYPE yyvsa[YYINITDEPTH];
1148 YYSTYPE *yyvs = yyvsa;
691 register YYSTYPE *yyvsp; 1149 register YYSTYPE *yyvsp;
692 int yyerrstatus; /* number of tokens to shift before error messages enabled */
693 int yychar1 = 0; /* lookahead token as an internal (translated) token number */
694
695 short yyssa[YYINITDEPTH]; /* the state stack */
696 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
697 1150
698 short *yyss = yyssa; /* refer to the stacks thru separate pointers */
699 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
700 1151
701#ifdef YYLSP_NEEDED
702 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
703 YYLTYPE *yyls = yylsa;
704 YYLTYPE *yylsp;
705 1152
706#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
707#else
708#define YYPOPSTACK (yyvsp--, yyssp--) 1153#define YYPOPSTACK (yyvsp--, yyssp--)
709#endif
710 1154
711 int yystacksize = YYINITDEPTH; 1155 YYSIZE_T yystacksize = YYINITDEPTH;
712 int yyfree_stacks = 0;
713 1156
714#ifdef YYPURE 1157 /* The variables used to return semantic value and location from the
715 int yychar; 1158 action routines. */
716 YYSTYPE yylval; 1159 YYSTYPE yyval;
717 int yynerrs;
718#ifdef YYLSP_NEEDED
719 YYLTYPE yylloc;
720#endif
721#endif
722 1160
723 YYSTYPE yyval; /* the variable used to return */
724 /* semantic values from the action */
725 /* routines */
726 1161
1162 /* When reducing, the number of symbols on the RHS of the reduced
1163 rule. */
727 int yylen; 1164 int yylen;
728 1165
729#if YYDEBUG != 0 1166 YYDPRINTF ((stderr, "Starting parse\n"));
730 if (yydebug)
731 fprintf(stderr, "Starting parse\n");
732#endif
733 1167
734 yystate = 0; 1168 yystate = 0;
735 yyerrstatus = 0; 1169 yyerrstatus = 0;
@@ -741,833 +1175,872 @@ yyparse(YYPARSE_PARAM_ARG)
741 so that they stay on the same level as the state stack. 1175 so that they stay on the same level as the state stack.
742 The wasted elements are never initialized. */ 1176 The wasted elements are never initialized. */
743 1177
744 yyssp = yyss - 1; 1178 yyssp = yyss;
745 yyvsp = yyvs; 1179 yyvsp = yyvs;
746#ifdef YYLSP_NEEDED
747 yylsp = yyls;
748#endif
749 1180
750/* Push a new state, which is found in yystate . */
751/* In all cases, when you get here, the value and location stacks
752 have just been pushed. so pushing a state here evens the stacks. */
753yynewstate:
754 1181
755 *++yyssp = yystate; 1182 yyvsp[0] = yylval;
756 1183
757 if (yyssp >= yyss + yystacksize - 1) 1184 goto yysetstate;
758 {
759 /* Give user a chance to reallocate the stack */
760 /* Use copies of these so that the &'s don't force the real ones into memory. */
761 YYSTYPE *yyvs1 = yyvs;
762 short *yyss1 = yyss;
763#ifdef YYLSP_NEEDED
764 YYLTYPE *yyls1 = yyls;
765#endif
766 1185
1186/*------------------------------------------------------------.
1187| yynewstate -- Push a new state, which is found in yystate. |
1188`------------------------------------------------------------*/
1189 yynewstate:
1190 /* In all cases, when you get here, the value and location stacks
1191 have just been pushed. so pushing a state here evens the stacks.
1192 */
1193 yyssp++;
1194
1195 yysetstate:
1196 *yyssp = yystate;
1197
1198 if (yyss + yystacksize - 1 <= yyssp)
1199 {
767 /* Get the current used size of the three stacks, in elements. */ 1200 /* Get the current used size of the three stacks, in elements. */
768 int size = yyssp - yyss + 1; 1201 YYSIZE_T yysize = yyssp - yyss + 1;
769 1202
770#ifdef yyoverflow 1203#ifdef yyoverflow
771 /* Each stack pointer address is followed by the size of 1204 {
772 the data in use in that stack, in bytes. */ 1205 /* Give user a chance to reallocate the stack. Use copies of
773#ifdef YYLSP_NEEDED 1206 these so that the &'s don't force the real ones into
774 /* This used to be a conditional around just the two extra args, 1207 memory. */
775 but that might be undefined if yyoverflow is a macro. */ 1208 YYSTYPE *yyvs1 = yyvs;
776 yyoverflow("parser stack overflow", 1209 short int *yyss1 = yyss;
777 &yyss1, size * sizeof (*yyssp), 1210
778 &yyvs1, size * sizeof (*yyvsp), 1211
779 &yyls1, size * sizeof (*yylsp), 1212 /* Each stack pointer address is followed by the size of the
780 &yystacksize); 1213 data in use in that stack, in bytes. This used to be a
781#else 1214 conditional around just the two extra args, but that might
782 yyoverflow("parser stack overflow", 1215 be undefined if yyoverflow is a macro. */
783 &yyss1, size * sizeof (*yyssp), 1216 yyoverflow ("parser stack overflow",
784 &yyvs1, size * sizeof (*yyvsp), 1217 &yyss1, yysize * sizeof (*yyssp),
785 &yystacksize); 1218 &yyvs1, yysize * sizeof (*yyvsp),
786#endif 1219
787 1220 &yystacksize);
788 yyss = yyss1; yyvs = yyvs1; 1221
789#ifdef YYLSP_NEEDED 1222 yyss = yyss1;
790 yyls = yyls1; 1223 yyvs = yyvs1;
791#endif 1224 }
792#else /* no yyoverflow */ 1225#else /* no yyoverflow */
1226# ifndef YYSTACK_RELOCATE
1227 goto yyoverflowlab;
1228# else
793 /* Extend the stack our own way. */ 1229 /* Extend the stack our own way. */
794 if (yystacksize >= YYMAXDEPTH) 1230 if (YYMAXDEPTH <= yystacksize)
795 { 1231 goto yyoverflowlab;
796 yyerror("parser stack overflow");
797 if (yyfree_stacks)
798 {
799 free (yyss);
800 free (yyvs);
801#ifdef YYLSP_NEEDED
802 free (yyls);
803#endif
804 }
805 return 2;
806 }
807 yystacksize *= 2; 1232 yystacksize *= 2;
808 if (yystacksize > YYMAXDEPTH) 1233 if (YYMAXDEPTH < yystacksize)
809 yystacksize = YYMAXDEPTH; 1234 yystacksize = YYMAXDEPTH;
810#ifndef YYSTACK_USE_ALLOCA 1235
811 yyfree_stacks = 1; 1236 {
812#endif 1237 short int *yyss1 = yyss;
813 yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); 1238 union yyalloc *yyptr =
814 __yy_memcpy ((char *)yyss, (char *)yyss1, 1239 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
815 size * (unsigned int) sizeof (*yyssp)); 1240 if (! yyptr)
816 yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); 1241 goto yyoverflowlab;
817 __yy_memcpy ((char *)yyvs, (char *)yyvs1, 1242 YYSTACK_RELOCATE (yyss);
818 size * (unsigned int) sizeof (*yyvsp)); 1243 YYSTACK_RELOCATE (yyvs);
819#ifdef YYLSP_NEEDED 1244
820 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); 1245# undef YYSTACK_RELOCATE
821 __yy_memcpy ((char *)yyls, (char *)yyls1, 1246 if (yyss1 != yyssa)
822 size * (unsigned int) sizeof (*yylsp)); 1247 YYSTACK_FREE (yyss1);
823#endif 1248 }
1249# endif
824#endif /* no yyoverflow */ 1250#endif /* no yyoverflow */
825 1251
826 yyssp = yyss + size - 1; 1252 yyssp = yyss + yysize - 1;
827 yyvsp = yyvs + size - 1; 1253 yyvsp = yyvs + yysize - 1;
828#ifdef YYLSP_NEEDED
829 yylsp = yyls + size - 1;
830#endif
831 1254
832#if YYDEBUG != 0
833 if (yydebug)
834 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
835#endif
836 1255
837 if (yyssp >= yyss + yystacksize - 1) 1256 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1257 (unsigned long int) yystacksize));
1258
1259 if (yyss + yystacksize - 1 <= yyssp)
838 YYABORT; 1260 YYABORT;
839 } 1261 }
840 1262
841#if YYDEBUG != 0 1263 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
842 if (yydebug)
843 fprintf(stderr, "Entering state %d\n", yystate);
844#endif
845 1264
846 goto yybackup; 1265 goto yybackup;
847 yybackup: 1266
1267/*-----------.
1268| yybackup. |
1269`-----------*/
1270yybackup:
848 1271
849/* Do appropriate processing given the current state. */ 1272/* Do appropriate processing given the current state. */
850/* Read a lookahead token if we need one and don't already have one. */ 1273/* Read a look-ahead token if we need one and don't already have one. */
851/* yyresume: */ 1274/* yyresume: */
852 1275
853 /* First try to decide what to do without reference to lookahead token. */ 1276 /* First try to decide what to do without reference to look-ahead token. */
854 1277
855 yyn = yypact[yystate]; 1278 yyn = yypact[yystate];
856 if (yyn == YYFLAG) 1279 if (yyn == YYPACT_NINF)
857 goto yydefault; 1280 goto yydefault;
858 1281
859 /* Not known => get a lookahead token if don't already have one. */ 1282 /* Not known => get a look-ahead token if don't already have one. */
860
861 /* yychar is either YYEMPTY or YYEOF
862 or a valid token in external form. */
863 1283
1284 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
864 if (yychar == YYEMPTY) 1285 if (yychar == YYEMPTY)
865 { 1286 {
866#if YYDEBUG != 0 1287 YYDPRINTF ((stderr, "Reading a token: "));
867 if (yydebug)
868 fprintf(stderr, "Reading a token: ");
869#endif
870 yychar = YYLEX; 1288 yychar = YYLEX;
871 } 1289 }
872 1290
873 /* Convert token to internal form (in yychar1) for indexing tables with */ 1291 if (yychar <= YYEOF)
874
875 if (yychar <= 0) /* This means end of input. */
876 { 1292 {
877 yychar1 = 0; 1293 yychar = yytoken = YYEOF;
878 yychar = YYEOF; /* Don't call YYLEX any more */ 1294 YYDPRINTF ((stderr, "Now at end of input.\n"));
879
880#if YYDEBUG != 0
881 if (yydebug)
882 fprintf(stderr, "Now at end of input.\n");
883#endif
884 } 1295 }
885 else 1296 else
886 { 1297 {
887 yychar1 = YYTRANSLATE(yychar); 1298 yytoken = YYTRANSLATE (yychar);
888 1299 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
889#if YYDEBUG != 0
890 if (yydebug)
891 {
892 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
893 /* Give the individual parser a way to print the precise meaning
894 of a token, for further debugging info. */
895#ifdef YYPRINT
896 YYPRINT (stderr, yychar, yylval);
897#endif
898 fprintf (stderr, ")\n");
899 }
900#endif
901 } 1300 }
902 1301
903 yyn += yychar1; 1302 /* If the proper action on seeing token YYTOKEN is to reduce or to
904 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) 1303 detect an error, take that action. */
1304 yyn += yytoken;
1305 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
905 goto yydefault; 1306 goto yydefault;
906
907 yyn = yytable[yyn]; 1307 yyn = yytable[yyn];
908 1308 if (yyn <= 0)
909 /* yyn is what to do for this token type in this state.
910 Negative => reduce, -yyn is rule number.
911 Positive => shift, yyn is new state.
912 New state is final state => don't bother to shift,
913 just return success.
914 0, or most negative number => error. */
915
916 if (yyn < 0)
917 { 1309 {
918 if (yyn == YYFLAG) 1310 if (yyn == 0 || yyn == YYTABLE_NINF)
919 goto yyerrlab; 1311 goto yyerrlab;
920 yyn = -yyn; 1312 yyn = -yyn;
921 goto yyreduce; 1313 goto yyreduce;
922 } 1314 }
923 else if (yyn == 0)
924 goto yyerrlab;
925 1315
926 if (yyn == YYFINAL) 1316 if (yyn == YYFINAL)
927 YYACCEPT; 1317 YYACCEPT;
928 1318
929 /* Shift the lookahead token. */ 1319 /* Shift the look-ahead token. */
930 1320 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
931#if YYDEBUG != 0
932 if (yydebug)
933 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
934#endif
935 1321
936 /* Discard the token being shifted unless it is eof. */ 1322 /* Discard the token being shifted unless it is eof. */
937 if (yychar != YYEOF) 1323 if (yychar != YYEOF)
938 yychar = YYEMPTY; 1324 yychar = YYEMPTY;
939 1325
940 *++yyvsp = yylval; 1326 *++yyvsp = yylval;
941#ifdef YYLSP_NEEDED
942 *++yylsp = yylloc;
943#endif
944 1327
945 /* count tokens shifted since error; after three, turn off error status. */ 1328
946 if (yyerrstatus) yyerrstatus--; 1329 /* Count tokens shifted since error; after three, turn off error
1330 status. */
1331 if (yyerrstatus)
1332 yyerrstatus--;
947 1333
948 yystate = yyn; 1334 yystate = yyn;
949 goto yynewstate; 1335 goto yynewstate;
950 1336
951/* Do the default action for the current state. */
952yydefault:
953 1337
1338/*-----------------------------------------------------------.
1339| yydefault -- do the default action for the current state. |
1340`-----------------------------------------------------------*/
1341yydefault:
954 yyn = yydefact[yystate]; 1342 yyn = yydefact[yystate];
955 if (yyn == 0) 1343 if (yyn == 0)
956 goto yyerrlab; 1344 goto yyerrlab;
1345 goto yyreduce;
957 1346
958/* Do a reduction. yyn is the number of a rule to reduce with. */ 1347
1348/*-----------------------------.
1349| yyreduce -- Do a reduction. |
1350`-----------------------------*/
959yyreduce: 1351yyreduce:
1352 /* yyn is the number of a rule to reduce with. */
960 yylen = yyr2[yyn]; 1353 yylen = yyr2[yyn];
961 if (yylen > 0)
962 yyval = yyvsp[1-yylen]; /* implement default value of the action */
963
964#if YYDEBUG != 0
965 if (yydebug)
966 {
967 int i;
968 1354
969 fprintf (stderr, "Reducing via rule %d (line %d), ", 1355 /* If YYLEN is nonzero, implement the default value of the action:
970 yyn, yyrline[yyn]); 1356 `$$ = $1'.
971
972 /* Print the symbols being reduced, and their result. */
973 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
974 fprintf (stderr, "%s ", yytname[yyrhs[i]]);
975 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
976 }
977#endif
978 1357
1358 Otherwise, the following line sets YYVAL to garbage.
1359 This behavior is undocumented and Bison
1360 users should not rely upon it. Assigning to YYVAL
1361 unconditionally makes the parser a bit smaller, and it avoids a
1362 GCC warning that YYVAL may be used uninitialized. */
1363 yyval = yyvsp[1-yylen];
979 1364
980 switch (yyn) {
981 1365
982case 3: 1366 YY_REDUCE_PRINT (yyn);
1367 switch (yyn)
1368 {
1369 case 4:
983#line 107 "scripts/genksyms/parse.y" 1370#line 107 "scripts/genksyms/parse.y"
984{ is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ; 1371 { is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ;}
985 break;} 1372 break;
986case 4: 1373
1374 case 5:
987#line 109 "scripts/genksyms/parse.y" 1375#line 109 "scripts/genksyms/parse.y"
988{ free_list(*yyvsp[0], NULL); *yyvsp[0] = NULL; ; 1376 { free_list(*(yyvsp[0]), NULL); *(yyvsp[0]) = NULL; ;}
989 break;} 1377 break;
990case 5: 1378
1379 case 6:
991#line 113 "scripts/genksyms/parse.y" 1380#line 113 "scripts/genksyms/parse.y"
992{ is_typedef = 1; ; 1381 { is_typedef = 1; ;}
993 break;} 1382 break;
994case 6: 1383
1384 case 7:
995#line 114 "scripts/genksyms/parse.y" 1385#line 114 "scripts/genksyms/parse.y"
996{ yyval = yyvsp[0]; ; 1386 { (yyval) = (yyvsp[0]); ;}
997 break;} 1387 break;
998case 11: 1388
1389 case 12:
999#line 119 "scripts/genksyms/parse.y" 1390#line 119 "scripts/genksyms/parse.y"
1000{ yyval = yyvsp[0]; ; 1391 { (yyval) = (yyvsp[0]); ;}
1001 break;} 1392 break;
1002case 12: 1393
1394 case 13:
1003#line 120 "scripts/genksyms/parse.y" 1395#line 120 "scripts/genksyms/parse.y"
1004{ yyval = yyvsp[0]; ; 1396 { (yyval) = (yyvsp[0]); ;}
1005 break;} 1397 break;
1006case 13: 1398
1399 case 14:
1007#line 125 "scripts/genksyms/parse.y" 1400#line 125 "scripts/genksyms/parse.y"
1008{ if (current_name) { 1401 { if (current_name) {
1009 struct string_list *decl = (*yyvsp[0])->next; 1402 struct string_list *decl = (*(yyvsp[0]))->next;
1010 (*yyvsp[0])->next = NULL; 1403 (*(yyvsp[0]))->next = NULL;
1011 add_symbol(current_name, 1404 add_symbol(current_name,
1012 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, 1405 is_typedef ? SYM_TYPEDEF : SYM_NORMAL,
1013 decl, is_extern); 1406 decl, is_extern);
1014 current_name = NULL; 1407 current_name = NULL;
1015 } 1408 }
1016 yyval = yyvsp[0]; 1409 (yyval) = (yyvsp[0]);
1017 ; 1410 ;}
1018 break;} 1411 break;
1019case 14: 1412
1413 case 15:
1020#line 138 "scripts/genksyms/parse.y" 1414#line 138 "scripts/genksyms/parse.y"
1021{ yyval = NULL; ; 1415 { (yyval) = NULL; ;}
1022 break;} 1416 break;
1023case 16: 1417
1418 case 17:
1024#line 144 "scripts/genksyms/parse.y" 1419#line 144 "scripts/genksyms/parse.y"
1025{ struct string_list *decl = *yyvsp[0]; 1420 { struct string_list *decl = *(yyvsp[0]);
1026 *yyvsp[0] = NULL; 1421 *(yyvsp[0]) = NULL;
1027 add_symbol(current_name, 1422 add_symbol(current_name,
1028 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern); 1423 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1029 current_name = NULL; 1424 current_name = NULL;
1030 yyval = yyvsp[0]; 1425 (yyval) = (yyvsp[0]);
1031 ; 1426 ;}
1032 break;} 1427 break;
1033case 17: 1428
1429 case 18:
1034#line 152 "scripts/genksyms/parse.y" 1430#line 152 "scripts/genksyms/parse.y"
1035{ struct string_list *decl = *yyvsp[0]; 1431 { struct string_list *decl = *(yyvsp[0]);
1036 *yyvsp[0] = NULL; 1432 *(yyvsp[0]) = NULL;
1037 free_list(*yyvsp[-1], NULL); 1433 free_list(*(yyvsp[-1]), NULL);
1038 *yyvsp[-1] = decl_spec; 1434 *(yyvsp[-1]) = decl_spec;
1039 add_symbol(current_name, 1435 add_symbol(current_name,
1040 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern); 1436 is_typedef ? SYM_TYPEDEF : SYM_NORMAL, decl, is_extern);
1041 current_name = NULL; 1437 current_name = NULL;
1042 yyval = yyvsp[0]; 1438 (yyval) = (yyvsp[0]);
1043 ; 1439 ;}
1044 break;} 1440 break;
1045case 18: 1441
1442 case 19:
1046#line 165 "scripts/genksyms/parse.y" 1443#line 165 "scripts/genksyms/parse.y"
1047{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1] ? yyvsp[-1] : yyvsp[-2] ? yyvsp[-2] : yyvsp[-3]; ; 1444 { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]) ? (yyvsp[-1]) : (yyvsp[-2]) ? (yyvsp[-2]) : (yyvsp[-3]); ;}
1048 break;} 1445 break;
1049case 19: 1446
1447 case 20:
1050#line 170 "scripts/genksyms/parse.y" 1448#line 170 "scripts/genksyms/parse.y"
1051{ decl_spec = NULL; ; 1449 { decl_spec = NULL; ;}
1052 break;} 1450 break;
1053case 21: 1451
1452 case 22:
1054#line 175 "scripts/genksyms/parse.y" 1453#line 175 "scripts/genksyms/parse.y"
1055{ decl_spec = *yyvsp[0]; ; 1454 { decl_spec = *(yyvsp[0]); ;}
1056 break;} 1455 break;
1057case 22: 1456
1457 case 23:
1058#line 176 "scripts/genksyms/parse.y" 1458#line 176 "scripts/genksyms/parse.y"
1059{ decl_spec = *yyvsp[0]; ; 1459 { decl_spec = *(yyvsp[0]); ;}
1060 break;} 1460 break;
1061case 23: 1461
1462 case 24:
1062#line 181 "scripts/genksyms/parse.y" 1463#line 181 "scripts/genksyms/parse.y"
1063{ /* Version 2 checksumming ignores storage class, as that 1464 { /* Version 2 checksumming ignores storage class, as that
1064 is really irrelevant to the linkage. */ 1465 is really irrelevant to the linkage. */
1065 remove_node(yyvsp[0]); 1466 remove_node((yyvsp[0]));
1066 yyval = yyvsp[0]; 1467 (yyval) = (yyvsp[0]);
1067 ; 1468 ;}
1068 break;} 1469 break;
1069case 28: 1470
1471 case 29:
1070#line 193 "scripts/genksyms/parse.y" 1472#line 193 "scripts/genksyms/parse.y"
1071{ is_extern = 1; yyval = yyvsp[0]; ; 1473 { is_extern = 1; (yyval) = (yyvsp[0]); ;}
1072 break;} 1474 break;
1073case 29: 1475
1476 case 30:
1074#line 194 "scripts/genksyms/parse.y" 1477#line 194 "scripts/genksyms/parse.y"
1075{ is_extern = 0; yyval = yyvsp[0]; ; 1478 { is_extern = 0; (yyval) = (yyvsp[0]); ;}
1076 break;} 1479 break;
1077case 33: 1480
1078#line 205 "scripts/genksyms/parse.y" 1481 case 35:
1079{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_STRUCT; yyval = yyvsp[0]; ; 1482#line 206 "scripts/genksyms/parse.y"
1080 break;} 1483 { remove_node((yyvsp[-1])); (*(yyvsp[0]))->tag = SYM_STRUCT; (yyval) = (yyvsp[0]); ;}
1081case 34: 1484 break;
1082#line 207 "scripts/genksyms/parse.y" 1485
1083{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_UNION; yyval = yyvsp[0]; ; 1486 case 36:
1084 break;} 1487#line 208 "scripts/genksyms/parse.y"
1085case 35: 1488 { remove_node((yyvsp[-1])); (*(yyvsp[0]))->tag = SYM_UNION; (yyval) = (yyvsp[0]); ;}
1086#line 209 "scripts/genksyms/parse.y" 1489 break;
1087{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_ENUM; yyval = yyvsp[0]; ; 1490
1088 break;} 1491 case 37:
1089case 36: 1492#line 210 "scripts/genksyms/parse.y"
1090#line 213 "scripts/genksyms/parse.y" 1493 { remove_node((yyvsp[-1])); (*(yyvsp[0]))->tag = SYM_ENUM; (yyval) = (yyvsp[0]); ;}
1091{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; 1494 break;
1495
1496 case 38:
1497#line 214 "scripts/genksyms/parse.y"
1498 { struct string_list *s = *(yyvsp[0]), *i = *(yyvsp[-1]), *r;
1092 r = copy_node(i); r->tag = SYM_STRUCT; 1499 r = copy_node(i); r->tag = SYM_STRUCT;
1093 r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; 1500 r->next = (*(yyvsp[-2]))->next; *(yyvsp[0]) = r; (*(yyvsp[-2]))->next = NULL;
1094 add_symbol(i->string, SYM_STRUCT, s, is_extern); 1501 add_symbol(i->string, SYM_STRUCT, s, is_extern);
1095 yyval = yyvsp[0]; 1502 (yyval) = (yyvsp[0]);
1096 ; 1503 ;}
1097 break;} 1504 break;
1098case 37: 1505
1099#line 220 "scripts/genksyms/parse.y" 1506 case 39:
1100{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; 1507#line 221 "scripts/genksyms/parse.y"
1508 { struct string_list *s = *(yyvsp[0]), *i = *(yyvsp[-1]), *r;
1101 r = copy_node(i); r->tag = SYM_UNION; 1509 r = copy_node(i); r->tag = SYM_UNION;
1102 r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; 1510 r->next = (*(yyvsp[-2]))->next; *(yyvsp[0]) = r; (*(yyvsp[-2]))->next = NULL;
1103 add_symbol(i->string, SYM_UNION, s, is_extern); 1511 add_symbol(i->string, SYM_UNION, s, is_extern);
1104 yyval = yyvsp[0]; 1512 (yyval) = (yyvsp[0]);
1105 ; 1513 ;}
1106 break;} 1514 break;
1107case 38: 1515
1108#line 227 "scripts/genksyms/parse.y" 1516 case 40:
1109{ struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; 1517#line 228 "scripts/genksyms/parse.y"
1518 { struct string_list *s = *(yyvsp[0]), *i = *(yyvsp[-1]), *r;
1110 r = copy_node(i); r->tag = SYM_ENUM; 1519 r = copy_node(i); r->tag = SYM_ENUM;
1111 r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; 1520 r->next = (*(yyvsp[-2]))->next; *(yyvsp[0]) = r; (*(yyvsp[-2]))->next = NULL;
1112 add_symbol(i->string, SYM_ENUM, s, is_extern); 1521 add_symbol(i->string, SYM_ENUM, s, is_extern);
1113 yyval = yyvsp[0]; 1522 (yyval) = (yyvsp[0]);
1114 ; 1523 ;}
1115 break;} 1524 break;
1116case 39: 1525
1117#line 235 "scripts/genksyms/parse.y" 1526 case 41:
1118{ yyval = yyvsp[0]; ;
1119 break;}
1120case 40:
1121#line 236 "scripts/genksyms/parse.y" 1527#line 236 "scripts/genksyms/parse.y"
1122{ yyval = yyvsp[0]; ; 1528 { (yyval) = (yyvsp[0]); ;}
1123 break;} 1529 break;
1124case 41: 1530
1531 case 42:
1125#line 237 "scripts/genksyms/parse.y" 1532#line 237 "scripts/genksyms/parse.y"
1126{ yyval = yyvsp[0]; ; 1533 { (yyval) = (yyvsp[0]); ;}
1127 break;} 1534 break;
1128case 52: 1535
1129#line 251 "scripts/genksyms/parse.y" 1536 case 43:
1130{ (*yyvsp[0])->tag = SYM_TYPEDEF; yyval = yyvsp[0]; ; 1537#line 238 "scripts/genksyms/parse.y"
1131 break;} 1538 { (yyval) = (yyvsp[0]); ;}
1132case 53: 1539 break;
1133#line 256 "scripts/genksyms/parse.y" 1540
1134{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; 1541 case 54:
1135 break;} 1542#line 252 "scripts/genksyms/parse.y"
1136case 54: 1543 { (*(yyvsp[0]))->tag = SYM_TYPEDEF; (yyval) = (yyvsp[0]); ;}
1137#line 260 "scripts/genksyms/parse.y" 1544 break;
1138{ yyval = NULL; ; 1545
1139 break;} 1546 case 55:
1140case 57: 1547#line 257 "scripts/genksyms/parse.y"
1141#line 266 "scripts/genksyms/parse.y" 1548 { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
1142{ yyval = yyvsp[0]; ; 1549 break;
1143 break;} 1550
1144case 61: 1551 case 56:
1145#line 272 "scripts/genksyms/parse.y" 1552#line 261 "scripts/genksyms/parse.y"
1146{ /* restrict has no effect in prototypes so ignore it */ 1553 { (yyval) = NULL; ;}
1147 remove_node(yyvsp[0]); 1554 break;
1148 yyval = yyvsp[0]; 1555
1149 ; 1556 case 59:
1150 break;} 1557#line 267 "scripts/genksyms/parse.y"
1151case 62: 1558 { (yyval) = (yyvsp[0]); ;}
1152#line 279 "scripts/genksyms/parse.y" 1559 break;
1153{ yyval = yyvsp[0]; ; 1560
1154 break;} 1561 case 63:
1155case 64: 1562#line 273 "scripts/genksyms/parse.y"
1156#line 285 "scripts/genksyms/parse.y" 1563 { /* restrict has no effect in prototypes so ignore it */
1157{ if (current_name != NULL) { 1564 remove_node((yyvsp[0]));
1565 (yyval) = (yyvsp[0]);
1566 ;}
1567 break;
1568
1569 case 64:
1570#line 280 "scripts/genksyms/parse.y"
1571 { (yyval) = (yyvsp[0]); ;}
1572 break;
1573
1574 case 66:
1575#line 286 "scripts/genksyms/parse.y"
1576 { if (current_name != NULL) {
1158 error_with_pos("unexpected second declaration name"); 1577 error_with_pos("unexpected second declaration name");
1159 YYERROR; 1578 YYERROR;
1160 } else { 1579 } else {
1161 current_name = (*yyvsp[0])->string; 1580 current_name = (*(yyvsp[0]))->string;
1162 yyval = yyvsp[0]; 1581 (yyval) = (yyvsp[0]);
1163 } 1582 }
1164 ; 1583 ;}
1165 break;} 1584 break;
1166case 65: 1585
1167#line 294 "scripts/genksyms/parse.y" 1586 case 67:
1168{ yyval = yyvsp[0]; ; 1587#line 295 "scripts/genksyms/parse.y"
1169 break;} 1588 { (yyval) = (yyvsp[0]); ;}
1170case 66: 1589 break;
1171#line 296 "scripts/genksyms/parse.y" 1590
1172{ yyval = yyvsp[0]; ; 1591 case 68:
1173 break;} 1592#line 297 "scripts/genksyms/parse.y"
1174case 67: 1593 { (yyval) = (yyvsp[0]); ;}
1175#line 298 "scripts/genksyms/parse.y" 1594 break;
1176{ yyval = yyvsp[0]; ; 1595
1177 break;} 1596 case 69:
1178case 68: 1597#line 299 "scripts/genksyms/parse.y"
1179#line 300 "scripts/genksyms/parse.y" 1598 { (yyval) = (yyvsp[0]); ;}
1180{ yyval = yyvsp[0]; ; 1599 break;
1181 break;} 1600
1182case 69: 1601 case 70:
1183#line 302 "scripts/genksyms/parse.y" 1602#line 301 "scripts/genksyms/parse.y"
1184{ yyval = yyvsp[0]; ; 1603 { (yyval) = (yyvsp[0]); ;}
1185 break;} 1604 break;
1186case 70: 1605
1187#line 308 "scripts/genksyms/parse.y" 1606 case 71:
1188{ yyval = yyvsp[0]; ; 1607#line 303 "scripts/genksyms/parse.y"
1189 break;} 1608 { (yyval) = (yyvsp[0]); ;}
1190case 74: 1609 break;
1191#line 316 "scripts/genksyms/parse.y" 1610
1192{ yyval = yyvsp[0]; ; 1611 case 72:
1193 break;} 1612#line 309 "scripts/genksyms/parse.y"
1194case 75: 1613 { (yyval) = (yyvsp[0]); ;}
1195#line 318 "scripts/genksyms/parse.y" 1614 break;
1196{ yyval = yyvsp[0]; ; 1615
1197 break;} 1616 case 76:
1198case 76: 1617#line 317 "scripts/genksyms/parse.y"
1199#line 320 "scripts/genksyms/parse.y" 1618 { (yyval) = (yyvsp[0]); ;}
1200{ yyval = yyvsp[0]; ; 1619 break;
1201 break;} 1620
1202case 77: 1621 case 77:
1203#line 322 "scripts/genksyms/parse.y" 1622#line 319 "scripts/genksyms/parse.y"
1204{ yyval = yyvsp[0]; ; 1623 { (yyval) = (yyvsp[0]); ;}
1205 break;} 1624 break;
1206case 78: 1625
1207#line 324 "scripts/genksyms/parse.y" 1626 case 78:
1208{ yyval = yyvsp[0]; ; 1627#line 321 "scripts/genksyms/parse.y"
1209 break;} 1628 { (yyval) = (yyvsp[0]); ;}
1210case 79: 1629 break;
1211#line 328 "scripts/genksyms/parse.y" 1630
1212{ yyval = yyvsp[0]; ; 1631 case 79:
1213 break;} 1632#line 323 "scripts/genksyms/parse.y"
1214case 81: 1633 { (yyval) = (yyvsp[0]); ;}
1215#line 330 "scripts/genksyms/parse.y" 1634 break;
1216{ yyval = yyvsp[0]; ; 1635
1217 break;} 1636 case 80:
1218case 82: 1637#line 325 "scripts/genksyms/parse.y"
1219#line 334 "scripts/genksyms/parse.y" 1638 { (yyval) = (yyvsp[0]); ;}
1220{ yyval = NULL; ; 1639 break;
1221 break;} 1640
1222case 85: 1641 case 81:
1223#line 341 "scripts/genksyms/parse.y" 1642#line 329 "scripts/genksyms/parse.y"
1224{ yyval = yyvsp[0]; ; 1643 { (yyval) = (yyvsp[0]); ;}
1225 break;} 1644 break;
1226case 86: 1645
1227#line 346 "scripts/genksyms/parse.y" 1646 case 83:
1228{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; 1647#line 331 "scripts/genksyms/parse.y"
1229 break;} 1648 { (yyval) = (yyvsp[0]); ;}
1230case 87: 1649 break;
1231#line 351 "scripts/genksyms/parse.y" 1650
1232{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; 1651 case 84:
1233 break;} 1652#line 335 "scripts/genksyms/parse.y"
1234case 89: 1653 { (yyval) = NULL; ;}
1235#line 356 "scripts/genksyms/parse.y" 1654 break;
1236{ yyval = NULL; ; 1655
1237 break;} 1656 case 87:
1238case 90: 1657#line 342 "scripts/genksyms/parse.y"
1239#line 358 "scripts/genksyms/parse.y" 1658 { (yyval) = (yyvsp[0]); ;}
1240{ /* For version 2 checksums, we don't want to remember 1659 break;
1660
1661 case 88:
1662#line 347 "scripts/genksyms/parse.y"
1663 { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
1664 break;
1665
1666 case 89:
1667#line 352 "scripts/genksyms/parse.y"
1668 { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
1669 break;
1670
1671 case 91:
1672#line 357 "scripts/genksyms/parse.y"
1673 { (yyval) = NULL; ;}
1674 break;
1675
1676 case 92:
1677#line 359 "scripts/genksyms/parse.y"
1678 { /* For version 2 checksums, we don't want to remember
1241 private parameter names. */ 1679 private parameter names. */
1242 remove_node(yyvsp[0]); 1680 remove_node((yyvsp[0]));
1243 yyval = yyvsp[0]; 1681 (yyval) = (yyvsp[0]);
1244 ; 1682 ;}
1245 break;} 1683 break;
1246case 91: 1684
1247#line 366 "scripts/genksyms/parse.y" 1685 case 93:
1248{ remove_node(yyvsp[0]); 1686#line 367 "scripts/genksyms/parse.y"
1249 yyval = yyvsp[0]; 1687 { remove_node((yyvsp[0]));
1250 ; 1688 (yyval) = (yyvsp[0]);
1251 break;} 1689 ;}
1252case 92: 1690 break;
1253#line 370 "scripts/genksyms/parse.y" 1691
1254{ yyval = yyvsp[0]; ; 1692 case 94:
1255 break;} 1693#line 371 "scripts/genksyms/parse.y"
1256case 93: 1694 { (yyval) = (yyvsp[0]); ;}
1257#line 372 "scripts/genksyms/parse.y" 1695 break;
1258{ yyval = yyvsp[0]; ; 1696
1259 break;} 1697 case 95:
1260case 94: 1698#line 373 "scripts/genksyms/parse.y"
1261#line 374 "scripts/genksyms/parse.y" 1699 { (yyval) = (yyvsp[0]); ;}
1262{ yyval = yyvsp[0]; ; 1700 break;
1263 break;} 1701
1264case 95: 1702 case 96:
1265#line 376 "scripts/genksyms/parse.y" 1703#line 375 "scripts/genksyms/parse.y"
1266{ yyval = yyvsp[0]; ; 1704 { (yyval) = (yyvsp[0]); ;}
1267 break;} 1705 break;
1268case 96: 1706
1269#line 378 "scripts/genksyms/parse.y" 1707 case 97:
1270{ yyval = yyvsp[0]; ; 1708#line 377 "scripts/genksyms/parse.y"
1271 break;} 1709 { (yyval) = (yyvsp[0]); ;}
1272case 97: 1710 break;
1273#line 383 "scripts/genksyms/parse.y" 1711
1274{ struct string_list *decl = *yyvsp[-1]; 1712 case 98:
1275 *yyvsp[-1] = NULL; 1713#line 379 "scripts/genksyms/parse.y"
1714 { (yyval) = (yyvsp[0]); ;}
1715 break;
1716
1717 case 99:
1718#line 384 "scripts/genksyms/parse.y"
1719 { struct string_list *decl = *(yyvsp[-1]);
1720 *(yyvsp[-1]) = NULL;
1276 add_symbol(current_name, SYM_NORMAL, decl, is_extern); 1721 add_symbol(current_name, SYM_NORMAL, decl, is_extern);
1277 yyval = yyvsp[0]; 1722 (yyval) = (yyvsp[0]);
1278 ; 1723 ;}
1279 break;} 1724 break;
1280case 98: 1725
1281#line 391 "scripts/genksyms/parse.y" 1726 case 100:
1282{ yyval = NULL; ; 1727#line 392 "scripts/genksyms/parse.y"
1283 break;} 1728 { (yyval) = NULL; ;}
1284case 100: 1729 break;
1285#line 398 "scripts/genksyms/parse.y" 1730
1286{ remove_list(yyvsp[0], &(*yyvsp[-1])->next); yyval = yyvsp[0]; ; 1731 case 102:
1287 break;} 1732#line 399 "scripts/genksyms/parse.y"
1288case 101: 1733 { remove_list((yyvsp[0]), &(*(yyvsp[-1]))->next); (yyval) = (yyvsp[0]); ;}
1289#line 402 "scripts/genksyms/parse.y" 1734 break;
1290{ yyval = yyvsp[0]; ; 1735
1291 break;} 1736 case 103:
1292case 102:
1293#line 403 "scripts/genksyms/parse.y" 1737#line 403 "scripts/genksyms/parse.y"
1294{ yyval = yyvsp[0]; ; 1738 { (yyval) = (yyvsp[0]); ;}
1295 break;} 1739 break;
1296case 103: 1740
1297#line 407 "scripts/genksyms/parse.y" 1741 case 104:
1298{ yyval = NULL; ; 1742#line 404 "scripts/genksyms/parse.y"
1299 break;} 1743 { (yyval) = (yyvsp[0]); ;}
1300case 106: 1744 break;
1301#line 413 "scripts/genksyms/parse.y" 1745
1302{ yyval = yyvsp[0]; ; 1746 case 105:
1303 break;} 1747#line 408 "scripts/genksyms/parse.y"
1304case 107: 1748 { (yyval) = NULL; ;}
1305#line 418 "scripts/genksyms/parse.y" 1749 break;
1306{ yyval = yyvsp[0]; ; 1750
1307 break;} 1751 case 108:
1308case 108: 1752#line 414 "scripts/genksyms/parse.y"
1309#line 420 "scripts/genksyms/parse.y" 1753 { (yyval) = (yyvsp[0]); ;}
1310{ yyval = yyvsp[0]; ; 1754 break;
1311 break;} 1755
1312case 109: 1756 case 109:
1313#line 424 "scripts/genksyms/parse.y" 1757#line 419 "scripts/genksyms/parse.y"
1314{ yyval = NULL; ; 1758 { (yyval) = (yyvsp[0]); ;}
1315 break;} 1759 break;
1316case 112: 1760
1317#line 430 "scripts/genksyms/parse.y" 1761 case 110:
1318{ yyval = yyvsp[0]; ; 1762#line 421 "scripts/genksyms/parse.y"
1319 break;} 1763 { (yyval) = (yyvsp[0]); ;}
1320case 113: 1764 break;
1321#line 434 "scripts/genksyms/parse.y" 1765
1322{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; 1766 case 111:
1323 break;} 1767#line 425 "scripts/genksyms/parse.y"
1324case 114: 1768 { (yyval) = NULL; ;}
1769 break;
1770
1771 case 114:
1772#line 431 "scripts/genksyms/parse.y"
1773 { (yyval) = (yyvsp[0]); ;}
1774 break;
1775
1776 case 115:
1325#line 435 "scripts/genksyms/parse.y" 1777#line 435 "scripts/genksyms/parse.y"
1326{ yyval = yyvsp[0]; ; 1778 { (yyval) = (yyvsp[0]) ? (yyvsp[0]) : (yyvsp[-1]); ;}
1327 break;} 1779 break;
1328case 116: 1780
1329#line 440 "scripts/genksyms/parse.y" 1781 case 116:
1330{ yyval = yyvsp[0]; ; 1782#line 436 "scripts/genksyms/parse.y"
1331 break;} 1783 { (yyval) = (yyvsp[0]); ;}
1332case 117: 1784 break;
1333#line 444 "scripts/genksyms/parse.y" 1785
1334{ yyval = NULL; ; 1786 case 118:
1335 break;} 1787#line 441 "scripts/genksyms/parse.y"
1336case 119: 1788 { (yyval) = (yyvsp[0]); ;}
1337#line 449 "scripts/genksyms/parse.y" 1789 break;
1338{ yyval = yyvsp[0]; ; 1790
1339 break;} 1791 case 119:
1340case 120: 1792#line 445 "scripts/genksyms/parse.y"
1341#line 453 "scripts/genksyms/parse.y" 1793 { (yyval) = NULL; ;}
1342{ yyval = NULL; ; 1794 break;
1343 break;} 1795
1344case 122: 1796 case 121:
1345#line 459 "scripts/genksyms/parse.y" 1797#line 450 "scripts/genksyms/parse.y"
1346{ export_symbol((*yyvsp[-2])->string); yyval = yyvsp[0]; ; 1798 { (yyval) = (yyvsp[0]); ;}
1347 break;} 1799 break;
1348} 1800
1349 /* the action file gets copied in in place of this dollarsign */ 1801 case 122:
1350#line 543 "/usr/lib/bison.simple" 1802#line 454 "scripts/genksyms/parse.y"
1803 { (yyval) = NULL; ;}
1804 break;
1805
1806 case 124:
1807#line 460 "scripts/genksyms/parse.y"
1808 { export_symbol((*(yyvsp[-2]))->string); (yyval) = (yyvsp[0]); ;}
1809 break;
1810
1811
1812 }
1813
1814/* Line 1037 of yacc.c. */
1815#line 1816 "scripts/genksyms/parse.c"
1351 1816
1352 yyvsp -= yylen; 1817 yyvsp -= yylen;
1353 yyssp -= yylen; 1818 yyssp -= yylen;
1354#ifdef YYLSP_NEEDED
1355 yylsp -= yylen;
1356#endif
1357 1819
1358#if YYDEBUG != 0 1820
1359 if (yydebug) 1821 YY_STACK_PRINT (yyss, yyssp);
1360 {
1361 short *ssp1 = yyss - 1;
1362 fprintf (stderr, "state stack now");
1363 while (ssp1 != yyssp)
1364 fprintf (stderr, " %d", *++ssp1);
1365 fprintf (stderr, "\n");
1366 }
1367#endif
1368 1822
1369 *++yyvsp = yyval; 1823 *++yyvsp = yyval;
1370 1824
1371#ifdef YYLSP_NEEDED
1372 yylsp++;
1373 if (yylen == 0)
1374 {
1375 yylsp->first_line = yylloc.first_line;
1376 yylsp->first_column = yylloc.first_column;
1377 yylsp->last_line = (yylsp-1)->last_line;
1378 yylsp->last_column = (yylsp-1)->last_column;
1379 yylsp->text = 0;
1380 }
1381 else
1382 {
1383 yylsp->last_line = (yylsp+yylen-1)->last_line;
1384 yylsp->last_column = (yylsp+yylen-1)->last_column;
1385 }
1386#endif
1387 1825
1388 /* Now "shift" the result of the reduction. 1826 /* Now `shift' the result of the reduction. Determine what state
1389 Determine what state that goes to, 1827 that goes to, based on the state we popped back to and the rule
1390 based on the state we popped back to 1828 number reduced by. */
1391 and the rule number reduced by. */
1392 1829
1393 yyn = yyr1[yyn]; 1830 yyn = yyr1[yyn];
1394 1831
1395 yystate = yypgoto[yyn - YYNTBASE] + *yyssp; 1832 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
1396 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) 1833 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1397 yystate = yytable[yystate]; 1834 yystate = yytable[yystate];
1398 else 1835 else
1399 yystate = yydefgoto[yyn - YYNTBASE]; 1836 yystate = yydefgoto[yyn - YYNTOKENS];
1400 1837
1401 goto yynewstate; 1838 goto yynewstate;
1402 1839
1403yyerrlab: /* here on detecting error */
1404 1840
1405 if (! yyerrstatus) 1841/*------------------------------------.
1406 /* If not already recovering from an error, report this error. */ 1842| yyerrlab -- here on detecting error |
1843`------------------------------------*/
1844yyerrlab:
1845 /* If not already recovering from an error, report this error. */
1846 if (!yyerrstatus)
1407 { 1847 {
1408 ++yynerrs; 1848 ++yynerrs;
1409 1849#if YYERROR_VERBOSE
1410#ifdef YYERROR_VERBOSE
1411 yyn = yypact[yystate]; 1850 yyn = yypact[yystate];
1412 1851
1413 if (yyn > YYFLAG && yyn < YYLAST) 1852 if (YYPACT_NINF < yyn && yyn < YYLAST)
1414 { 1853 {
1415 int size = 0; 1854 YYSIZE_T yysize = 0;
1416 char *msg; 1855 int yytype = YYTRANSLATE (yychar);
1417 int x, count; 1856 const char* yyprefix;
1418 1857 char *yymsg;
1419 count = 0; 1858 int yyx;
1420 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ 1859
1421 for (x = (yyn < 0 ? -yyn : 0); 1860 /* Start YYX at -YYN if negative to avoid negative indexes in
1422 x < (sizeof(yytname) / sizeof(char *)); x++) 1861 YYCHECK. */
1423 if (yycheck[x + yyn] == x) 1862 int yyxbegin = yyn < 0 ? -yyn : 0;
1424 size += strlen(yytname[x]) + 15, count++; 1863
1425 msg = (char *) malloc(size + 15); 1864 /* Stay within bounds of both yycheck and yytname. */
1426 if (msg != 0) 1865 int yychecklim = YYLAST - yyn;
1866 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1867 int yycount = 0;
1868
1869 yyprefix = ", expecting ";
1870 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1871 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1872 {
1873 yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
1874 yycount += 1;
1875 if (yycount == 5)
1876 {
1877 yysize = 0;
1878 break;
1879 }
1880 }
1881 yysize += (sizeof ("syntax error, unexpected ")
1882 + yystrlen (yytname[yytype]));
1883 yymsg = (char *) YYSTACK_ALLOC (yysize);
1884 if (yymsg != 0)
1427 { 1885 {
1428 strcpy(msg, "parse error"); 1886 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
1887 yyp = yystpcpy (yyp, yytname[yytype]);
1429 1888
1430 if (count < 5) 1889 if (yycount < 5)
1431 { 1890 {
1432 count = 0; 1891 yyprefix = ", expecting ";
1433 for (x = (yyn < 0 ? -yyn : 0); 1892 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1434 x < (sizeof(yytname) / sizeof(char *)); x++) 1893 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1435 if (yycheck[x + yyn] == x)
1436 { 1894 {
1437 strcat(msg, count == 0 ? ", expecting `" : " or `"); 1895 yyp = yystpcpy (yyp, yyprefix);
1438 strcat(msg, yytname[x]); 1896 yyp = yystpcpy (yyp, yytname[yyx]);
1439 strcat(msg, "'"); 1897 yyprefix = " or ";
1440 count++;
1441 } 1898 }
1442 } 1899 }
1443 yyerror(msg); 1900 yyerror (yymsg);
1444 free(msg); 1901 YYSTACK_FREE (yymsg);
1445 } 1902 }
1446 else 1903 else
1447 yyerror ("parse error; also virtual memory exceeded"); 1904 yyerror ("syntax error; also virtual memory exhausted");
1448 } 1905 }
1449 else 1906 else
1450#endif /* YYERROR_VERBOSE */ 1907#endif /* YYERROR_VERBOSE */
1451 yyerror("parse error"); 1908 yyerror ("syntax error");
1452 } 1909 }
1453 1910
1454 goto yyerrlab1; 1911
1455yyerrlab1: /* here on error raised explicitly by an action */
1456 1912
1457 if (yyerrstatus == 3) 1913 if (yyerrstatus == 3)
1458 { 1914 {
1459 /* if just tried and failed to reuse lookahead token after an error, discard it. */ 1915 /* If just tried and failed to reuse look-ahead token after an
1460 1916 error, discard it. */
1461 /* return failure if at end of input */ 1917
1462 if (yychar == YYEOF) 1918 if (yychar <= YYEOF)
1463 YYABORT; 1919 {
1464 1920 /* If at end of input, pop the error token,
1465#if YYDEBUG != 0 1921 then the rest of the stack, then return failure. */
1466 if (yydebug) 1922 if (yychar == YYEOF)
1467 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); 1923 for (;;)
1468#endif 1924 {
1469 1925
1470 yychar = YYEMPTY; 1926 YYPOPSTACK;
1927 if (yyssp == yyss)
1928 YYABORT;
1929 yydestruct ("Error: popping",
1930 yystos[*yyssp], yyvsp);
1931 }
1932 }
1933 else
1934 {
1935 yydestruct ("Error: discarding", yytoken, &yylval);
1936 yychar = YYEMPTY;
1937 }
1471 } 1938 }
1472 1939
1473 /* Else will try to reuse lookahead token 1940 /* Else will try to reuse look-ahead token after shifting the error
1474 after shifting the error token. */ 1941 token. */
1475 1942 goto yyerrlab1;
1476 yyerrstatus = 3; /* Each real token shifted decrements this */
1477 1943
1478 goto yyerrhandle;
1479 1944
1480yyerrdefault: /* current state does not do anything special for the error token. */ 1945/*---------------------------------------------------.
1946| yyerrorlab -- error raised explicitly by YYERROR. |
1947`---------------------------------------------------*/
1948yyerrorlab:
1481 1949
1482#if 0 1950#ifdef __GNUC__
1483 /* This is wrong; only states that explicitly want error tokens 1951 /* Pacify GCC when the user code never invokes YYERROR and the label
1484 should shift them. */ 1952 yyerrorlab therefore never appears in user code. */
1485 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ 1953 if (0)
1486 if (yyn) goto yydefault; 1954 goto yyerrorlab;
1487#endif 1955#endif
1488 1956
1489yyerrpop: /* pop the current state because it cannot handle the error token */ 1957yyvsp -= yylen;
1958 yyssp -= yylen;
1959 yystate = *yyssp;
1960 goto yyerrlab1;
1961
1490 1962
1491 if (yyssp == yyss) YYABORT; 1963/*-------------------------------------------------------------.
1492 yyvsp--; 1964| yyerrlab1 -- common code for both syntax error and YYERROR. |
1493 yystate = *--yyssp; 1965`-------------------------------------------------------------*/
1494#ifdef YYLSP_NEEDED 1966yyerrlab1:
1495 yylsp--; 1967 yyerrstatus = 3; /* Each real token shifted decrements this. */
1496#endif
1497 1968
1498#if YYDEBUG != 0 1969 for (;;)
1499 if (yydebug)
1500 { 1970 {
1501 short *ssp1 = yyss - 1; 1971 yyn = yypact[yystate];
1502 fprintf (stderr, "Error: state stack now"); 1972 if (yyn != YYPACT_NINF)
1503 while (ssp1 != yyssp) 1973 {
1504 fprintf (stderr, " %d", *++ssp1); 1974 yyn += YYTERROR;
1505 fprintf (stderr, "\n"); 1975 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
1506 } 1976 {
1507#endif 1977 yyn = yytable[yyn];
1508 1978 if (0 < yyn)
1509yyerrhandle: 1979 break;
1980 }
1981 }
1510 1982
1511 yyn = yypact[yystate]; 1983 /* Pop the current state because it cannot handle the error token. */
1512 if (yyn == YYFLAG) 1984 if (yyssp == yyss)
1513 goto yyerrdefault; 1985 YYABORT;
1514 1986
1515 yyn += YYTERROR;
1516 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
1517 goto yyerrdefault;
1518 1987
1519 yyn = yytable[yyn]; 1988 yydestruct ("Error: popping", yystos[yystate], yyvsp);
1520 if (yyn < 0) 1989 YYPOPSTACK;
1521 { 1990 yystate = *yyssp;
1522 if (yyn == YYFLAG) 1991 YY_STACK_PRINT (yyss, yyssp);
1523 goto yyerrpop;
1524 yyn = -yyn;
1525 goto yyreduce;
1526 } 1992 }
1527 else if (yyn == 0)
1528 goto yyerrpop;
1529 1993
1530 if (yyn == YYFINAL) 1994 if (yyn == YYFINAL)
1531 YYACCEPT; 1995 YYACCEPT;
1532 1996
1533#if YYDEBUG != 0
1534 if (yydebug)
1535 fprintf(stderr, "Shifting error token, ");
1536#endif
1537
1538 *++yyvsp = yylval; 1997 *++yyvsp = yylval;
1539#ifdef YYLSP_NEEDED 1998
1540 *++yylsp = yylloc; 1999
1541#endif 2000 /* Shift the error token. */
2001 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
1542 2002
1543 yystate = yyn; 2003 yystate = yyn;
1544 goto yynewstate; 2004 goto yynewstate;
1545 2005
1546 yyacceptlab: 2006
1547 /* YYACCEPT comes here. */ 2007/*-------------------------------------.
1548 if (yyfree_stacks) 2008| yyacceptlab -- YYACCEPT comes here. |
1549 { 2009`-------------------------------------*/
1550 free (yyss); 2010yyacceptlab:
1551 free (yyvs); 2011 yyresult = 0;
1552#ifdef YYLSP_NEEDED 2012 goto yyreturn;
1553 free (yyls); 2013
2014/*-----------------------------------.
2015| yyabortlab -- YYABORT comes here. |
2016`-----------------------------------*/
2017yyabortlab:
2018 yydestruct ("Error: discarding lookahead",
2019 yytoken, &yylval);
2020 yychar = YYEMPTY;
2021 yyresult = 1;
2022 goto yyreturn;
2023
2024#ifndef yyoverflow
2025/*----------------------------------------------.
2026| yyoverflowlab -- parser overflow comes here. |
2027`----------------------------------------------*/
2028yyoverflowlab:
2029 yyerror ("parser stack overflow");
2030 yyresult = 2;
2031 /* Fall through. */
1554#endif 2032#endif
1555 }
1556 return 0;
1557 2033
1558 yyabortlab: 2034yyreturn:
1559 /* YYABORT comes here. */ 2035#ifndef yyoverflow
1560 if (yyfree_stacks) 2036 if (yyss != yyssa)
1561 { 2037 YYSTACK_FREE (yyss);
1562 free (yyss);
1563 free (yyvs);
1564#ifdef YYLSP_NEEDED
1565 free (yyls);
1566#endif 2038#endif
1567 } 2039 return yyresult;
1568 return 1;
1569} 2040}
1570#line 463 "scripts/genksyms/parse.y" 2041
2042
2043#line 464 "scripts/genksyms/parse.y"
1571 2044
1572 2045
1573static void 2046static void
@@ -1575,3 +2048,4 @@ yyerror(const char *e)
1575{ 2048{
1576 error_with_pos("%s", e); 2049 error_with_pos("%s", e);
1577} 2050}
2051