source: trunk/third/gcc/c-parse.c @ 8834

Revision 8834, 137.2 KB checked in by ghudson, 28 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r8833, which included commits to RCS files with non-trunk default branches.
Line 
1
2/*  A Bison parser, made from c-parse.y with Bison version GNU Bison version 1.22
3  */
4
5#define YYBISON 1  /* Identify Bison output.  */
6
7#define IDENTIFIER      258
8#define TYPENAME        259
9#define SCSPEC  260
10#define TYPESPEC        261
11#define TYPE_QUAL       262
12#define CONSTANT        263
13#define STRING  264
14#define ELLIPSIS        265
15#define SIZEOF  266
16#define ENUM    267
17#define STRUCT  268
18#define UNION   269
19#define IF      270
20#define ELSE    271
21#define WHILE   272
22#define DO      273
23#define FOR     274
24#define SWITCH  275
25#define CASE    276
26#define DEFAULT 277
27#define BREAK   278
28#define CONTINUE        279
29#define RETURN  280
30#define GOTO    281
31#define ASM_KEYWORD     282
32#define TYPEOF  283
33#define ALIGNOF 284
34#define ATTRIBUTE       285
35#define EXTENSION       286
36#define LABEL   287
37#define REALPART        288
38#define IMAGPART        289
39#define ASSIGN  290
40#define OROR    291
41#define ANDAND  292
42#define EQCOMPARE       293
43#define ARITHCOMPARE    294
44#define LSHIFT  295
45#define RSHIFT  296
46#define UNARY   297
47#define PLUSPLUS        298
48#define MINUSMINUS      299
49#define HYPERUNARY      300
50#define POINTSAT        301
51#define INTERFACE       302
52#define IMPLEMENTATION  303
53#define END     304
54#define SELECTOR        305
55#define DEFS    306
56#define ENCODE  307
57#define CLASSNAME       308
58#define PUBLIC  309
59#define PRIVATE 310
60#define PROTECTED       311
61#define PROTOCOL        312
62#define OBJECTNAME      313
63#define CLASS   314
64#define ALIAS   315
65#define OBJC_STRING     316
66
67#line 55 "c-parse.y"
68
69#include <stdio.h>
70#include <errno.h>
71#include <setjmp.h>
72
73#include "config.h"
74#include "tree.h"
75#include "input.h"
76#include "c-lex.h"
77#include "c-tree.h"
78#include "flags.h"
79
80#ifdef MULTIBYTE_CHARS
81#include <stdlib.h>
82#include <locale.h>
83#endif
84
85
86/* Since parsers are distinct for each language, put the language string
87   definition here.  */
88char *language_string = "GNU C";
89
90#ifndef errno
91extern int errno;
92#endif
93
94void yyerror ();
95
96/* Like YYERROR but do call yyerror.  */
97#define YYERROR1 { yyerror ("syntax error"); YYERROR; }
98
99/* Cause the `yydebug' variable to be defined.  */
100#define YYDEBUG 1
101
102#line 92 "c-parse.y"
103typedef union {long itype; tree ttype; enum tree_code code;
104        char *filename; int lineno; int ends_in_label; } YYSTYPE;
105#line 206 "c-parse.y"
106
107/* Number of statements (loosely speaking) seen so far.  */
108static int stmt_count;
109
110/* Input file and line number of the end of the body of last simple_if;
111   used by the stmt-rule immediately after simple_if returns.  */
112static char *if_stmt_file;
113static int if_stmt_line;
114
115/* List of types and structure classes of the current declaration.  */
116static tree current_declspecs;
117static tree prefix_attributes = NULL_TREE;
118
119/* Stack of saved values of current_declspecs and prefix_attributes.  */
120static tree declspec_stack;
121
122/* 1 if we explained undeclared var errors.  */
123static int undeclared_variable_notice;
124
125
126/* Tell yyparse how to print a token's value, if yydebug is set.  */
127
128#define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
129extern void yyprint ();
130
131#ifndef YYLTYPE
132typedef
133  struct yyltype
134    {
135      int timestamp;
136      int first_line;
137      int first_column;
138      int last_line;
139      int last_column;
140      char *text;
141   }
142  yyltype;
143
144#define YYLTYPE yyltype
145#endif
146
147#include <stdio.h>
148
149#ifndef __cplusplus
150#ifndef __STDC__
151#define const
152#endif
153#endif
154
155
156
157#define YYFINAL         658
158#define YYFLAG          -32768
159#define YYNTBASE        84
160
161#define YYTRANSLATE(x) ((unsigned)(x) <= 316 ? yytranslate[x] : 228)
162
163static const char yytranslate[] = {     0,
164     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
165     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
166     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
167     2,     2,    80,     2,     2,     2,    52,    43,     2,    59,
168    76,    50,    48,    81,    49,    58,    51,     2,     2,     2,
169     2,     2,     2,     2,     2,     2,     2,    38,    77,     2,
170    36,     2,    37,     2,     2,     2,     2,     2,     2,     2,
171     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
172     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
173    60,     2,    83,    42,     2,     2,     2,     2,     2,     2,
174     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
175     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
176     2,     2,    82,    41,    78,    79,     2,     2,     2,     2,
177     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
178     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
179     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
180     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
181     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
182     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
183     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
184     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
185     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
186     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
187     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
188     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
189     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
190     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
191    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
192    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
193    39,    40,    44,    45,    46,    47,    53,    54,    55,    56,
194    57,    61,    62,    63,    64,    65,    66,    67,    68,    69,
195    70,    71,    72,    73,    74,    75
196};
197
198#if YYDEBUG != 0
199static const short yyprhs[] = {     0,
200     0,     1,     3,     4,     7,     8,    12,    14,    16,    22,
201    26,    31,    36,    39,    42,    45,    48,    50,    51,    52,
202    60,    65,    66,    67,    75,    80,    81,    82,    89,    93,
203    95,    97,    99,   101,   103,   105,   107,   109,   111,   113,
204   114,   116,   118,   122,   124,   127,   128,   132,   135,   138,
205   141,   146,   149,   154,   157,   160,   162,   167,   168,   176,
206   178,   182,   186,   190,   194,   198,   202,   206,   210,   214,
207   218,   222,   226,   230,   234,   240,   244,   248,   250,   252,
208   254,   258,   262,   263,   268,   273,   278,   282,   286,   289,
209   292,   294,   297,   298,   300,   303,   307,   309,   311,   314,
210   317,   322,   327,   330,   333,   337,   339,   341,   344,   347,
211   348,   349,   354,   359,   363,   367,   370,   373,   376,   380,
212   381,   384,   387,   389,   391,   394,   397,   400,   404,   405,
213   408,   410,   412,   414,   419,   424,   426,   428,   430,   432,
214   436,   438,   442,   443,   448,   449,   456,   460,   461,   468,
215   472,   473,   475,   477,   480,   487,   489,   493,   494,   496,
216   501,   508,   513,   515,   517,   519,   521,   523,   524,   529,
217   531,   532,   535,   537,   541,   543,   544,   549,   551,   552,
218   561,   562,   569,   570,   576,   577,   582,   583,   589,   590,
219   591,   597,   598,   599,   605,   607,   609,   613,   617,   622,
220   626,   630,   634,   636,   640,   645,   649,   653,   657,   659,
221   663,   667,   671,   676,   680,   684,   686,   687,   695,   701,
222   704,   705,   713,   719,   722,   723,   732,   733,   741,   744,
223   745,   747,   748,   750,   752,   755,   756,   760,   763,   767,
224   769,   773,   775,   777,   779,   783,   788,   795,   801,   803,
225   807,   809,   811,   815,   818,   821,   822,   824,   826,   829,
226   830,   833,   837,   841,   844,   848,   853,   857,   860,   864,
227   867,   871,   873,   875,   878,   881,   882,   884,   887,   888,
228   889,   891,   893,   896,   900,   902,   905,   908,   915,   921,
229   927,   930,   933,   938,   939,   944,   945,   946,   950,   955,
230   959,   961,   963,   965,   967,   970,   971,   976,   978,   982,
231   983,   984,   992,   998,  1001,  1002,  1003,  1004,  1017,  1018,
232  1025,  1028,  1031,  1034,  1038,  1045,  1054,  1065,  1078,  1082,
233  1087,  1089,  1091,  1092,  1099,  1103,  1109,  1112,  1115,  1116,
234  1118,  1119,  1121,  1122,  1124,  1126,  1130,  1135,  1137,  1141,
235  1142,  1145,  1148,  1149,  1154,  1157,  1158,  1160,  1162,  1166,
236  1168,  1172,  1177,  1182,  1187,  1192,  1197,  1198,  1201,  1203,
237  1206,  1208,  1212,  1214
238};
239
240static const short yyrhs[] = {    -1,
241    85,     0,     0,    86,    88,     0,     0,    85,    87,    88,
242     0,    90,     0,    89,     0,    27,    59,    99,    76,    77,
243     0,   116,   127,    77,     0,   121,   116,   127,    77,     0,
244   119,   116,   126,    77,     0,   121,    77,     0,   119,    77,
245     0,     1,    77,     0,     1,    78,     0,    77,     0,     0,
246     0,   119,   116,   156,    91,   110,    92,   187,     0,   119,
247   116,   156,     1,     0,     0,     0,   121,   116,   159,    93,
248   110,    94,   187,     0,   121,   116,   159,     1,     0,     0,
249     0,   116,   159,    95,   110,    96,   187,     0,   116,   159,
250     1,     0,     3,     0,     4,     0,    43,     0,    49,     0,
251    48,     0,    54,     0,    55,     0,    79,     0,    80,     0,
252   101,     0,     0,   101,     0,   106,     0,   101,    81,   106,
253     0,   107,     0,    50,   104,     0,     0,    31,   103,   104,
254     0,    98,   104,     0,    40,    97,     0,    11,   102,     0,
255    11,    59,   174,    76,     0,    29,   102,     0,    29,    59,
256   174,    76,     0,    33,   104,     0,    34,   104,     0,   102,
257     0,    59,   174,    76,   104,     0,     0,    59,   174,    76,
258    82,   105,   141,    78,     0,   104,     0,   106,    48,   106,
259     0,   106,    49,   106,     0,   106,    50,   106,     0,   106,
260    51,   106,     0,   106,    52,   106,     0,   106,    46,   106,
261     0,   106,    47,   106,     0,   106,    45,   106,     0,   106,
262    44,   106,     0,   106,    43,   106,     0,   106,    41,   106,
263     0,   106,    42,   106,     0,   106,    40,   106,     0,   106,
264    39,   106,     0,   106,    37,   211,    38,   106,     0,   106,
265    36,   106,     0,   106,    35,   106,     0,     3,     0,     8,
266     0,   109,     0,    59,    99,    76,     0,    59,     1,    76,
267     0,     0,    59,   108,   188,    76,     0,   107,    59,   100,
268    76,     0,   107,    60,    99,    83,     0,   107,    58,    97,
269     0,   107,    57,    97,     0,   107,    54,     0,   107,    55,
270     0,     9,     0,   109,     9,     0,     0,   112,     0,   112,
271    10,     0,   193,   194,   113,     0,   111,     0,   182,     0,
272   112,   111,     0,   111,   182,     0,   119,   116,   126,    77,
273     0,   121,   116,   127,    77,     0,   119,    77,     0,   121,
274    77,     0,   193,   194,   118,     0,   114,     0,   182,     0,
275   115,   114,     0,   114,   182,     0,     0,     0,   119,   116,
276   126,    77,     0,   121,   116,   127,    77,     0,   119,   116,
277   150,     0,   121,   116,   153,     0,   119,    77,     0,   121,
278    77,     0,   124,   120,     0,   121,   124,   120,     0,     0,
279   120,   125,     0,   120,     5,     0,     7,     0,     5,     0,
280   121,     7,     0,   121,     5,     0,   124,   123,     0,   176,
281   124,   123,     0,     0,   123,   125,     0,     6,     0,   160,
282     0,     4,     0,    28,    59,    99,    76,     0,    28,    59,
283   174,    76,     0,     6,     0,     7,     0,   160,     0,   129,
284     0,   126,    81,   129,     0,   131,     0,   127,    81,   129,
285     0,     0,    27,    59,   109,    76,     0,     0,   156,   128,
286   133,    36,   130,   139,     0,   156,   128,   133,     0,     0,
287   159,   128,   133,    36,   132,   139,     0,   159,   128,   133,
288     0,     0,   134,     0,   135,     0,   134,   135,     0,    30,
289    59,    59,   136,    76,    76,     0,   137,     0,   136,    81,
290   137,     0,     0,   138,     0,   138,    59,     3,    76,     0,
291   138,    59,     3,    81,   101,    76,     0,   138,    59,   100,
292    76,     0,    97,     0,     5,     0,     6,     0,     7,     0,
293   106,     0,     0,    82,   140,   141,    78,     0,     1,     0,
294     0,   142,   165,     0,   143,     0,   142,    81,   143,     0,
295   106,     0,     0,    82,   144,   141,    78,     0,     1,     0,
296     0,    60,   106,    10,   106,    83,    36,   145,   143,     0,
297     0,    60,   106,    83,    36,   146,   143,     0,     0,    60,
298   106,    83,   147,   143,     0,     0,    97,    38,   148,   143,
299     0,     0,    58,    97,    36,   149,   143,     0,     0,     0,
300   156,   151,   110,   152,   188,     0,     0,     0,   159,   154,
301   110,   155,   188,     0,   157,     0,   159,     0,    59,   157,
302    76,     0,   157,    59,   223,     0,   157,    60,    99,    83,
303     0,   157,    60,    83,     0,    50,   177,   157,     0,   134,
304   117,   157,     0,     4,     0,   158,    59,   223,     0,   158,
305    60,    99,    83,     0,   158,    60,    83,     0,    50,   177,
306   158,     0,   134,   117,   158,     0,     4,     0,   159,    59,
307   223,     0,    59,   159,    76,     0,    50,   177,   159,     0,
308   159,    60,    99,    83,     0,   159,    60,    83,     0,   134,
309   117,   159,     0,     3,     0,     0,    13,    97,    82,   161,
310   167,    78,   133,     0,    13,    82,   167,    78,   133,     0,
311    13,    97,     0,     0,    14,    97,    82,   162,   167,    78,
312   133,     0,    14,    82,   167,    78,   133,     0,    14,    97,
313     0,     0,    12,    97,    82,   163,   172,   166,    78,   133,
314     0,     0,    12,    82,   164,   172,   166,    78,   133,     0,
315    12,    97,     0,     0,    81,     0,     0,    81,     0,   168,
316     0,   168,   169,     0,     0,   168,   169,    77,     0,   168,
317    77,     0,   122,   116,   170,     0,   122,     0,   176,   116,
318   170,     0,   176,     0,     1,     0,   171,     0,   170,    81,
319   171,     0,   193,   194,   156,   133,     0,   193,   194,   156,
320    38,   106,   133,     0,   193,   194,    38,   106,   133,     0,
321   173,     0,   172,    81,   173,     0,     1,     0,    97,     0,
322    97,    36,   106,     0,   122,   175,     0,   176,   175,     0,
323     0,   178,     0,     7,     0,   176,     7,     0,     0,   177,
324     7,     0,    59,   178,    76,     0,    50,   177,   178,     0,
325    50,   177,     0,   178,    59,   216,     0,   178,    60,    99,
326    83,     0,   178,    60,    83,     0,    59,   216,     0,    60,
327    99,    83,     0,    60,    83,     0,   134,   117,   178,     0,
328   180,     0,   196,     0,   180,   196,     0,   180,   182,     0,
329     0,   179,     0,     1,    77,     0,     0,     0,   185,     0,
330   186,     0,   185,   186,     0,    32,   227,    77,     0,   188,
331     0,     1,   188,     0,    82,    78,     0,    82,   183,   184,
332   115,   181,    78,     0,    82,   183,   184,     1,    78,     0,
333    82,   183,   184,   179,    78,     0,   190,   195,     0,   190,
334     1,     0,    15,    59,    99,    76,     0,     0,    18,   192,
335   195,    17,     0,     0,     0,   193,   194,   198,     0,   193,
336   194,   209,   195,     0,   193,   194,   197,     0,   198,     0,
337   209,     0,   188,     0,   206,     0,    99,    77,     0,     0,
338   189,    16,   199,   195,     0,   189,     0,   189,    16,     1,
339     0,     0,     0,    17,   200,    59,    99,    76,   201,   195,
340     0,   191,    59,    99,    76,    77,     0,   191,     1,     0,
341     0,     0,     0,    19,    59,   211,    77,   202,   211,    77,
342   203,   211,    76,   204,   195,     0,     0,    20,    59,    99,
343    76,   205,   195,     0,    23,    77,     0,    24,    77,     0,
344    25,    77,     0,    25,    99,    77,     0,    27,   210,    59,
345    99,    76,    77,     0,    27,   210,    59,    99,    38,   212,
346    76,    77,     0,    27,   210,    59,    99,    38,   212,    38,
347   212,    76,    77,     0,    27,   210,    59,    99,    38,   212,
348    38,   212,    38,   215,    76,    77,     0,    26,    97,    77,
349     0,    26,    50,    99,    77,     0,    77,     0,   207,     0,
350     0,    19,    59,   107,    76,   208,   195,     0,    21,   106,
351    38,     0,    21,   106,    10,   106,    38,     0,    22,    38,
352     0,    97,    38,     0,     0,     7,     0,     0,    99,     0,
353     0,   213,     0,   214,     0,   213,    81,   214,     0,     9,
354    59,    99,    76,     0,   109,     0,   215,    81,   109,     0,
355     0,   217,   218,     0,   220,    76,     0,     0,   221,    77,
356   219,   218,     0,     1,    76,     0,     0,    10,     0,   221,
357     0,   221,    81,    10,     0,   222,     0,   221,    81,   222,
358     0,   119,   116,   158,   133,     0,   119,   116,   159,   133,
359     0,   119,   116,   175,   133,     0,   121,   116,   159,   133,
360     0,   121,   116,   175,   133,     0,     0,   224,   225,     0,
361   218,     0,   226,    76,     0,     3,     0,   226,    81,     3,
362     0,    97,     0,   227,    81,    97,     0
363};
364
365#endif
366
367#if YYDEBUG != 0
368static const short yyrline[] = { 0,
369   233,   238,   252,   254,   254,   255,   257,   259,   260,   270,
370   281,   286,   291,   293,   295,   296,   297,   302,   309,   311,
371   316,   321,   327,   329,   334,   339,   345,   347,   352,   359,
372   361,   364,   366,   368,   370,   372,   374,   376,   380,   384,
373   387,   390,   393,   397,   399,   402,   405,   408,   412,   440,
374   445,   447,   449,   451,   453,   457,   459,   462,   466,   493,
375   495,   497,   499,   501,   503,   505,   507,   509,   511,   513,
376   515,   517,   519,   521,   523,   525,   528,   534,   633,   634,
377   636,   642,   644,   658,   681,   683,   685,   689,   695,   697,
378   702,   704,   709,   711,   712,   722,   727,   729,   730,   731,
379   734,   740,   745,   748,   756,   761,   763,   764,   765,   772,
380   782,   786,   792,   797,   802,   807,   809,   817,   820,   824,
381   826,   828,   839,   843,   845,   848,   861,   864,   868,   870,
382   878,   879,   880,   884,   886,   892,   893,   894,   897,   899,
383   902,   904,   907,   910,   916,   923,   925,   932,   939,   942,
384   949,   952,   956,   959,   963,   968,   971,   975,   978,   980,
385   982,   984,   991,   993,   994,   995,  1000,  1002,  1007,  1015,
386  1020,  1024,  1027,  1029,  1034,  1037,  1039,  1041,  1045,  1048,
387  1048,  1051,  1051,  1054,  1054,  1057,  1057,  1060,  1062,  1073,
388  1081,  1085,  1096,  1104,  1111,  1113,  1118,  1121,  1126,  1128,
389  1130,  1132,  1134,  1142,  1148,  1150,  1152,  1154,  1156,  1162,
390  1168,  1170,  1172,  1174,  1176,  1178,  1181,  1186,  1188,  1192,
391  1194,  1196,  1198,  1202,  1204,  1207,  1210,  1213,  1216,  1220,
392  1222,  1225,  1227,  1231,  1234,  1239,  1241,  1243,  1257,  1264,
393  1269,  1275,  1280,  1284,  1286,  1290,  1294,  1298,  1308,  1310,
394  1315,  1320,  1323,  1327,  1330,  1334,  1337,  1340,  1343,  1347,
395  1350,  1354,  1358,  1360,  1362,  1364,  1366,  1368,  1370,  1372,
396  1374,  1382,  1390,  1392,  1394,  1398,  1400,  1403,  1406,  1417,
397  1419,  1424,  1426,  1429,  1443,  1446,  1449,  1451,  1459,  1467,
398  1478,  1483,  1486,  1499,  1507,  1511,  1515,  1519,  1525,  1529,
399  1534,  1537,  1542,  1545,  1546,  1563,  1568,  1571,  1583,  1585,
400  1595,  1605,  1606,  1614,  1617,  1629,  1633,  1650,  1660,  1669,
401  1674,  1679,  1684,  1688,  1692,  1703,  1710,  1717,  1724,  1735,
402  1739,  1742,  1747,  1770,  1804,  1829,  1858,  1873,  1884,  1888,
403  1892,  1895,  1900,  1902,  1905,  1907,  1911,  1916,  1919,  1925,
404  1930,  1935,  1937,  1946,  1947,  1953,  1955,  1965,  1967,  1971,
405  1974,  1980,  1990,  1999,  2008,  2018,  2032,  2037,  2042,  2044,
406  2053,  2056,  2061,  2064
407};
408
409static const char * const yytname[] = {   "$","error","$illegal.","IDENTIFIER",
410"TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
411"ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
412"BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
413"EXTENSION","LABEL","REALPART","IMAGPART","ASSIGN","'='","'?'","':'","OROR",
414"ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT","RSHIFT","'+'",
415"'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY","POINTSAT",
416"'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS","ENCODE",
417"CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME","CLASS","ALIAS",
418"OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'","program","extdefs",
419"@1","@2","extdef","datadef","fndef","@3","@4","@5","@6","@7","@8","identifier",
420"unop","expr","exprlist","nonnull_exprlist","unary_expr","@9","cast_expr","@10",
421"expr_no_commas","primary","@11","string","xdecls","lineno_datadecl","datadecls",
422"datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
423"reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec",
424"typespecqual_reserved","initdecls","notype_initdecls","maybeasm","initdcl",
425"@12","notype_initdcl","@13","maybe_attribute","attributes","attribute","attribute_list",
426"attrib","any_word","init","@14","initlist_maybe_comma","initlist1","initelt",
427"@15","@16","@17","@18","@19","@20","nested_function","@21","@22","notype_nested_function",
428"@23","@24","declarator","after_type_declarator","parm_declarator","notype_declarator",
429"structsp","@25","@26","@27","@28","maybecomma","maybecomma_warn","component_decl_list",
430"component_decl_list2","component_decl","components","component_declarator",
431"enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
432"absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
433"label_decls","label_decl","compstmt_or_error","compstmt","simple_if","if_prefix",
434"do_stmt_start","@29","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
435"stmt_or_label","stmt","@30","@31","@32","@33","@34","@35","@36","all_iter_stmt",
436"all_iter_stmt_simple","@37","label","maybe_type_qual","xexpr","asm_operands",
437"nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@38","parmlist_1",
438"@39","parmlist_2","parms","parm","parmlist_or_identifiers","@40","parmlist_or_identifiers_1",
439"identifiers","identifiers_or_typenames",""
440};
441#endif
442
443static const short yyr1[] = {     0,
444    84,    84,    86,    85,    87,    85,    88,    88,    88,    89,
445    89,    89,    89,    89,    89,    89,    89,    91,    92,    90,
446    90,    93,    94,    90,    90,    95,    96,    90,    90,    97,
447    97,    98,    98,    98,    98,    98,    98,    98,    99,   100,
448   100,   101,   101,   102,   102,   103,   102,   102,   102,   102,
449   102,   102,   102,   102,   102,   104,   104,   105,   104,   106,
450   106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
451   106,   106,   106,   106,   106,   106,   106,   107,   107,   107,
452   107,   107,   108,   107,   107,   107,   107,   107,   107,   107,
453   109,   109,   110,   110,   110,   111,   112,   112,   112,   112,
454   113,   113,   113,   113,   114,   115,   115,   115,   115,   116,
455   117,   118,   118,   118,   118,   118,   118,   119,   119,   120,
456   120,   120,   121,   121,   121,   121,   122,   122,   123,   123,
457   124,   124,   124,   124,   124,   125,   125,   125,   126,   126,
458   127,   127,   128,   128,   130,   129,   129,   132,   131,   131,
459   133,   133,   134,   134,   135,   136,   136,   137,   137,   137,
460   137,   137,   138,   138,   138,   138,   139,   140,   139,   139,
461   141,   141,   142,   142,   143,   144,   143,   143,   145,   143,
462   146,   143,   147,   143,   148,   143,   149,   143,   151,   152,
463   150,   154,   155,   153,   156,   156,   157,   157,   157,   157,
464   157,   157,   157,   158,   158,   158,   158,   158,   158,   159,
465   159,   159,   159,   159,   159,   159,   161,   160,   160,   160,
466   162,   160,   160,   160,   163,   160,   164,   160,   160,   165,
467   165,   166,   166,   167,   167,   168,   168,   168,   169,   169,
468   169,   169,   169,   170,   170,   171,   171,   171,   172,   172,
469   172,   173,   173,   174,   174,   175,   175,   176,   176,   177,
470   177,   178,   178,   178,   178,   178,   178,   178,   178,   178,
471   178,   179,   180,   180,   180,   181,   181,   182,   183,   184,
472   184,   185,   185,   186,   187,   187,   188,   188,   188,   188,
473   189,   189,   190,   192,   191,   193,   194,   195,   195,   196,
474   197,   197,   198,   198,   198,   199,   198,   198,   198,   200,
475   201,   198,   198,   198,   202,   203,   204,   198,   205,   198,
476   198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
477   198,   206,   208,   207,   209,   209,   209,   209,   210,   210,
478   211,   211,   212,   212,   213,   213,   214,   215,   215,   217,
479   216,   218,   219,   218,   218,   220,   220,   220,   220,   221,
480   221,   222,   222,   222,   222,   222,   224,   223,   225,   225,
481   226,   226,   227,   227
482};
483
484static const short yyr2[] = {     0,
485     0,     1,     0,     2,     0,     3,     1,     1,     5,     3,
486     4,     4,     2,     2,     2,     2,     1,     0,     0,     7,
487     4,     0,     0,     7,     4,     0,     0,     6,     3,     1,
488     1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
489     1,     1,     3,     1,     2,     0,     3,     2,     2,     2,
490     4,     2,     4,     2,     2,     1,     4,     0,     7,     1,
491     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
492     3,     3,     3,     3,     5,     3,     3,     1,     1,     1,
493     3,     3,     0,     4,     4,     4,     3,     3,     2,     2,
494     1,     2,     0,     1,     2,     3,     1,     1,     2,     2,
495     4,     4,     2,     2,     3,     1,     1,     2,     2,     0,
496     0,     4,     4,     3,     3,     2,     2,     2,     3,     0,
497     2,     2,     1,     1,     2,     2,     2,     3,     0,     2,
498     1,     1,     1,     4,     4,     1,     1,     1,     1,     3,
499     1,     3,     0,     4,     0,     6,     3,     0,     6,     3,
500     0,     1,     1,     2,     6,     1,     3,     0,     1,     4,
501     6,     4,     1,     1,     1,     1,     1,     0,     4,     1,
502     0,     2,     1,     3,     1,     0,     4,     1,     0,     8,
503     0,     6,     0,     5,     0,     4,     0,     5,     0,     0,
504     5,     0,     0,     5,     1,     1,     3,     3,     4,     3,
505     3,     3,     1,     3,     4,     3,     3,     3,     1,     3,
506     3,     3,     4,     3,     3,     1,     0,     7,     5,     2,
507     0,     7,     5,     2,     0,     8,     0,     7,     2,     0,
508     1,     0,     1,     1,     2,     0,     3,     2,     3,     1,
509     3,     1,     1,     1,     3,     4,     6,     5,     1,     3,
510     1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
511     2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
512     3,     1,     1,     2,     2,     0,     1,     2,     0,     0,
513     1,     1,     2,     3,     1,     2,     2,     6,     5,     5,
514     2,     2,     4,     0,     4,     0,     0,     3,     4,     3,
515     1,     1,     1,     1,     2,     0,     4,     1,     3,     0,
516     0,     7,     5,     2,     0,     0,     0,    12,     0,     6,
517     2,     2,     2,     3,     6,     8,    10,    12,     3,     4,
518     1,     1,     0,     6,     3,     5,     2,     2,     0,     1,
519     0,     1,     0,     1,     1,     3,     4,     1,     3,     0,
520     2,     2,     0,     4,     2,     0,     1,     1,     3,     1,
521     3,     4,     4,     4,     4,     4,     0,     2,     1,     2,
522     1,     3,     1,     3
523};
524
525static const short yydefact[] = {     3,
526     5,     0,     0,     0,   133,   124,   131,   123,     0,     0,
527     0,     0,     0,    17,     4,     8,     7,     0,   110,   110,
528   120,   132,     6,    15,    16,    30,    31,   227,   229,   236,
529   220,   236,   224,     0,     0,   216,     0,   260,     0,     0,
530   141,   111,   153,     0,    14,     0,   126,   125,    13,     0,
531   120,   118,     0,   225,     0,     0,   217,     0,   221,    78,
532    79,    91,     0,     0,    46,     0,     0,     0,    32,    34,
533    33,     0,    35,    36,     0,    37,    38,     0,     0,    39,
534    56,    60,    42,    44,    80,   258,     0,   256,   129,     0,
535   256,     0,     0,     0,    10,     0,     0,   154,    29,     0,
536   367,     0,     0,   151,   203,   260,     0,     0,   139,   111,
537     0,   195,   196,     0,     0,   119,   122,   136,   137,   121,
538   138,   251,   252,   232,   249,     0,   151,   243,   238,   110,
539   235,   110,   236,   151,   236,     0,    50,     0,    52,     0,
540    54,    55,    49,    45,     0,     0,     0,     0,    48,     0,
541     0,     0,     0,   341,     0,     0,     0,     0,     0,     0,
542     0,     0,     0,     0,     0,     0,     0,     0,    89,    90,
543     0,     0,    40,     0,    92,   134,   260,   350,     0,   111,
544   254,   257,   127,   135,   259,   129,   255,   158,   261,   212,
545   211,   142,   143,   215,     0,   210,     0,   214,     0,     0,
546    27,     0,   296,    98,   297,   150,   152,     0,     0,    12,
547     0,     0,    21,     0,   151,   367,     0,    11,    25,     0,
548     0,   233,     0,   232,   219,   296,   237,   296,     0,   223,
549     0,     0,     0,    47,    82,    81,   279,     0,     0,     9,
550    43,    77,    76,   342,     0,    74,    73,    71,    72,    70,
551    69,    68,    66,    67,    61,    62,    63,    64,    65,    88,
552    87,     0,    41,     0,   264,     0,   268,     0,   270,     0,
553     0,   350,     0,   130,   128,   164,   165,   166,   163,     0,
554   156,   159,     0,     0,   371,   357,   110,   110,   369,     0,
555   358,   360,   368,     0,   213,   278,     0,   100,    95,    99,
556     0,   148,   201,   197,   140,   202,    19,   147,   198,   200,
557     0,    23,   253,   250,   151,     0,   239,   244,   297,   241,
558   151,   151,    51,    53,   287,   280,    84,    58,    57,     0,
559    85,    86,   263,   262,   351,   269,   271,   265,   267,     0,
560     0,   158,    40,   144,   355,   256,   256,   352,   353,     0,
561   370,     0,     0,    28,   285,    96,   110,   110,     0,     0,
562   145,   199,     0,   228,   151,   296,     0,   218,   222,     0,
563     0,   281,   282,     0,    75,   266,   155,   157,    78,     0,
564   209,   260,   350,   111,   151,   151,   151,   260,   111,   151,
565   151,     0,   359,   361,   372,   286,   103,     0,   104,     0,
566   170,   168,   167,   149,    20,     0,    24,   226,   245,     0,
567   151,   373,     0,     0,     0,   296,     0,     0,   107,   297,
568   273,   283,   178,    78,     0,     0,   176,     0,   175,     0,
569   230,   173,   160,     0,   162,   264,     0,   367,     0,   362,
570   363,   364,   264,     0,   365,   366,   354,     0,     0,   143,
571     0,   146,   151,     0,   246,   284,     0,   289,   109,   108,
572   277,     0,   290,   275,   297,   274,     0,     0,     0,     0,
573   185,    59,     0,   172,     0,   207,   208,   204,   206,     0,
574   101,   102,     0,   248,   151,   374,   288,     0,   133,     0,
575   310,   294,     0,     0,     0,     0,     0,     0,     0,     0,
576   339,   331,     0,     0,   105,   110,   110,   303,   308,     0,
577     0,   300,   301,   304,   332,   302,   187,     0,   183,     0,
578     0,   174,   161,   205,   169,   247,     0,     0,   296,   341,
579     0,     0,   337,   321,   322,   323,     0,     0,     0,   340,
580     0,   338,   305,   116,     0,   117,     0,     0,   292,   297,
581   291,   314,     0,     0,     0,   181,     0,   177,   186,     0,
582     0,     0,    44,     0,     0,     0,   335,   324,     0,   329,
583     0,     0,   114,   189,     0,   115,   192,   309,   296,     0,
584     0,   188,     0,     0,   184,   293,     0,   295,   333,   315,
585   319,     0,   330,     0,   112,     0,   113,     0,   307,   298,
586   296,     0,   179,   182,   311,   296,   341,   296,   336,   343,
587     0,   190,   193,   299,   313,     0,   296,   334,     0,   320,
588     0,     0,   344,   345,   325,     0,     0,   180,   312,   316,
589     0,   343,     0,     0,   191,   194,   341,     0,     0,   326,
590   346,     0,   347,     0,     0,   317,   348,     0,   327,   296,
591     0,     0,   318,   328,   349,     0,     0,     0
592};
593
594static const short yydefgoto[] = {   656,
595     1,     2,     3,    15,    16,    17,   214,   360,   220,   363,
596   103,   297,   428,    78,   244,   262,    80,    81,   140,    82,
597   374,    83,    84,   147,    85,   201,   202,   203,   356,   415,
598   416,    18,    97,   505,   287,    52,   288,    88,   183,    21,
599   120,   108,    40,   104,   109,   406,    41,   359,   206,   207,
600    43,   280,   281,   282,   404,   451,   430,   431,   432,   470,
601   616,   584,   557,   521,   554,   573,   596,   626,   576,   598,
602   627,   193,   112,   385,   113,    22,   133,   135,   126,    53,
603   474,   223,    55,    56,   131,   317,   318,   124,   125,    90,
604   181,    91,    93,   182,   417,   418,   462,   204,   326,   371,
605   372,   373,   354,   355,   509,   510,   511,   529,   550,   301,
606   551,   421,   512,   513,   579,   528,   617,   607,   637,   650,
607   608,   514,   515,   606,   516,   541,   245,   622,   623,   624,
608   648,   267,   268,   289,   392,   290,   291,   292,   196,   197,
609   293,   294,   413
610};
611
612static const short yypact[] = {    67,
613    76,  1898,  1898,   232,-32768,-32768,-32768,-32768,    62,    91,
614   106,    23,    37,-32768,-32768,-32768,-32768,   347,    26,   939,
615-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    85,-32768,
616   118,-32768,   166,  1760,  1700,-32768,    89,-32768,   347,    83,
617-32768,   128,-32768,  1205,-32768,   315,-32768,-32768,-32768,   347,
618-32768,   862,   454,-32768,   180,   340,-32768,   185,-32768,-32768,
619-32768,-32768,  1787,  1814,-32768,  1760,  1760,   119,-32768,-32768,
620-32768,  1760,-32768,-32768,  1017,-32768,-32768,  1760,   110,   190,
621-32768,-32768,  2063,   576,   257,-32768,   208,   214,-32768,   210,
622  1970,   267,   466,    11,-32768,   315,   347,-32768,-32768,   289,
623-32768,   559,   284,   128,-32768,-32768,   315,   113,-32768,   128,
624  1284,   178,   264,   170,  1265,   862,-32768,-32768,-32768,-32768,
625-32768,-32768,   263,   235,-32768,   454,   128,-32768,-32768,   265,
626   278,   859,-32768,   128,-32768,  1017,-32768,  1017,-32768,  1760,
627-32768,-32768,-32768,-32768,   282,   294,   307,   319,-32768,   283,
628  1760,  1760,  1760,  1760,  1760,  1760,  1760,  1760,  1760,  1760,
629  1760,  1760,  1760,  1760,  1760,  1760,  1760,  1760,-32768,-32768,
630   119,   119,  1760,  1760,-32768,-32768,-32768,   214,  1319,   128,
631-32768,   273,   552,-32768,-32768,-32768,-32768,   912,-32768,   264,
632-32768,-32768,   374,   264,   395,-32768,   702,-32768,   343,   358,
633-32768,   255,    47,-32768,-32768,   403,   128,   459,   111,-32768,
634   315,   315,-32768,   284,   128,-32768,  1346,-32768,-32768,   284,
635  1760,   119,   378,   235,-32768,-32768,-32768,-32768,   382,-32768,
636   386,   376,   394,-32768,-32768,-32768,   393,   398,  1643,-32768,
637  2063,  2063,  2063,-32768,   412,  1945,  1372,  1289,  1043,  1210,
638  1257,  1609,   947,   947,   252,   252,-32768,-32768,-32768,-32768,
639-32768,   399,   190,   400,   364,   219,-32768,   782,-32768,   401,
640   214,-32768,  1401,-32768,   552,-32768,-32768,-32768,-32768,   -12,
641-32768,   419,    35,   405,-32768,-32768,-32768,   672,-32768,   409,
642   240,-32768,-32768,   104,-32768,-32768,    59,-32768,-32768,-32768,
643   832,-32768,   178,-32768,-32768,   178,-32768,   450,-32768,-32768,
644   407,-32768,  2063,-32768,   128,   413,   414,-32768,-32768,   414,
645   128,   128,-32768,-32768,-32768,   467,-32768,-32768,-32768,  1760,
646-32768,-32768,   273,-32768,-32768,-32768,   273,-32768,-32768,   420,
647   432,   912,  1841,-32768,-32768,   353,   149,-32768,-32768,   752,
648-32768,   510,   307,-32768,-32768,-32768,   437,  1568,  1194,    59,
649-32768,-32768,    59,-32768,   128,-32768,    55,-32768,-32768,   119,
650   720,   467,-32768,   546,  1894,-32768,-32768,-32768,   139,   439,
651-32768,-32768,   149,   128,   151,   222,   128,-32768,   128,   222,
652   128,   782,-32768,-32768,-32768,-32768,-32768,   315,-32768,   347,
653-32768,-32768,  2063,-32768,-32768,  1194,-32768,-32768,-32768,  1760,
654   108,-32768,   248,   309,   640,   443,   444,   800,-32768,-32768,
655-32768,-32768,-32768,   485,   119,  1760,-32768,   488,  2063,   452,
656   447,-32768,-32768,  1760,-32768,   331,   353,-32768,  1428,-32768,
657-32768,-32768,   109,   149,-32768,-32768,-32768,   292,   311,    19,
658   546,-32768,  2019,  1760,-32768,-32768,   119,-32768,-32768,-32768,
659-32768,   455,-32768,-32768,-32768,-32768,  1509,   496,  1919,   546,
660-32768,-32768,  1074,-32768,   159,   350,   350,-32768,-32768,   451,
661-32768,-32768,   457,-32768,  2019,-32768,-32768,  1589,   500,   482,
662-32768,-32768,   484,   486,  1760,   506,   474,   476,  1727,   203,
663   549,-32768,   522,   492,-32768,   494,  1902,-32768,   547,   880,
664    60,-32768,-32768,-32768,-32768,-32768,-32768,  1760,   536,   495,
665  1134,-32768,-32768,-32768,-32768,-32768,  1760,   517,-32768,  1760,
666  1760,  1453,-32768,-32768,-32768,-32768,   501,  1760,   504,-32768,
667   523,-32768,-32768,-32768,   315,-32768,   347,   960,-32768,-32768,
668-32768,-32768,  1760,  1134,  1996,-32768,  1134,-32768,-32768,   507,
669  1760,   568,  1004,   514,   527,  1760,-32768,-32768,   521,-32768,
670  1760,   330,-32768,   471,   357,-32768,   372,-32768,-32768,  1589,
671   534,-32768,   575,  1134,-32768,-32768,   539,-32768,-32768,-32768,
672-32768,  2045,-32768,    25,-32768,   284,-32768,   284,-32768,-32768,
673-32768,   535,-32768,-32768,-32768,-32768,  1760,-32768,-32768,   607,
674   540,-32768,-32768,-32768,-32768,  1134,-32768,-32768,   542,-32768,
675   562,    45,   541,-32768,-32768,   307,   307,-32768,-32768,-32768,
676  1760,   607,   550,   607,-32768,-32768,  1760,   553,    50,-32768,
677-32768,   561,-32768,   395,   563,-32768,   257,   160,-32768,-32768,
678   579,   395,-32768,-32768,   257,   670,   675,-32768
679};
680
681static const short yypgoto[] = {-32768,
682-32768,-32768,-32768,   669,-32768,-32768,-32768,-32768,-32768,-32768,
683-32768,-32768,    -6,-32768,   -34,   338,  -154,   352,-32768,   -27,
684-32768,    66,   157,-32768,  -185,  -198,   489,-32768,-32768,   275,
685-32768,     5,   -83,-32768,    10,   642,    12,   641,   512,    17,
686  -147,  -367,   -41,   -94,   -61,-32768,-32768,-32768,    57,   -16,
687    -4,-32768,   354,-32768,   295,-32768,  -396,-32768,  -423,-32768,
688-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
689-32768,   -40,   -65,     9,    -7,   -32,-32768,-32768,-32768,-32768,
690-32768,   478,    21,-32768,-32768,   483,   344,   578,   491,   -21,
691   -70,   680,   -88,  -129,   334,-32768,-32768,  -173,-32768,-32768,
692-32768,   380,  -186,  -139,-32768,-32768,-32768,-32768,   -96,  -293,
693  -404,   337,-32768,   181,-32768,-32768,-32768,-32768,-32768,-32768,
694-32768,-32768,-32768,-32768,   187,-32768,  -474,   140,-32768,   137,
695-32768,   505,-32768,  -235,-32768,-32768,-32768,   423,  -188,-32768,
696-32768,-32768,-32768
697};
698
699
700#define YYLAST          2115
701
702
703static const short yytable[] = {    79,
704    87,    42,    29,    31,    33,   111,   205,   238,   114,   283,
705    44,    19,    19,    20,    20,   307,   215,   208,   263,   121,
706   187,   312,    42,    46,    50,   367,   212,   309,   298,   110,
707   448,    94,   335,    42,   192,   274,    51,    98,   141,   142,
708   146,   209,   115,   175,   144,   100,   123,   -94,   266,   522,
709   149,    89,    58,   148,   483,   564,   299,    36,   105,   353,
710   552,   143,   610,   341,    26,    27,    -1,   199,   342,   101,
711   102,   180,    89,   520,   180,    -2,    42,   101,   102,   110,
712    42,    34,   632,   121,    37,   190,   191,   644,   265,   194,
713   110,    89,   410,    26,    27,    35,   271,   559,   215,    94,
714   611,   146,    45,   146,   106,    98,   205,   186,    26,    27,
715   344,    36,   234,   107,   232,   189,   233,   205,   553,   123,
716   633,    26,    27,   205,   562,   645,   467,   274,   -94,   319,
717   582,   319,   619,   585,   226,   333,   228,    37,    37,   264,
718   237,   337,   303,    28,   270,   454,   306,    92,   186,   305,
719   121,    36,    89,   229,    89,   231,   447,    37,   388,    95,
720   604,   180,   642,    96,   260,   261,    54,   383,   179,   216,
721   217,   488,    30,   405,   599,    98,   407,   572,    37,   351,
722    37,   279,   311,   225,   352,   150,   304,    32,   263,   210,
723   230,   110,   628,   211,   110,   110,   614,   419,   388,    57,
724   190,   618,    98,   620,   194,    26,    27,   383,   179,   438,
725   439,   329,   629,   396,   433,   123,   241,   242,   243,   434,
726   246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
727   256,   257,   258,   259,   523,   651,   216,   217,   340,   151,
728   652,   459,   121,    37,   464,   653,   218,    59,   180,   478,
729    96,    37,   538,   266,   180,   200,   580,   127,   -97,   -97,
730   -97,   -97,   134,   177,   -97,   175,   -97,   -97,   -97,   319,
731   151,   308,   178,   179,   420,   387,   391,   272,   273,   475,
732   101,   102,   -97,   176,   200,   184,   313,  -296,  -296,  -296,
733  -296,   346,   347,   436,   334,  -296,  -296,  -296,   221,   443,
734   437,   166,   167,   168,    51,   444,   333,   337,    24,    25,
735   357,  -296,   358,   333,   337,   222,   349,    36,   105,   420,
736   350,   465,   101,   102,   456,   188,   411,   508,   457,   384,
737   389,   272,   273,    36,   381,   279,   -97,   189,   386,   390,
738   128,  -240,  -240,     5,    37,     7,    86,   195,   508,    36,
739   110,     9,    10,    11,   227,    36,   381,   235,   449,   240,
740    37,   398,   400,   412,   106,   -93,   389,    13,   481,   236,
741   189,   364,   211,   107,    51,    94,    37,   368,   369,    98,
742   382,   110,    37,    42,    98,   296,   458,   482,   237,   383,
743   179,    96,   450,    37,   239,   375,    38,   612,   100,   613,
744   100,  -143,   382,    62,   480,    39,   595,  -143,   438,   439,
745   211,   383,   179,   177,   137,   139,   129,  -234,   468,   384,
746   384,   408,   178,   179,   403,   295,   389,   389,   190,   194,
747   101,   102,   504,   597,   296,   190,   194,    96,   302,   429,
748   508,   440,   441,   442,   476,   477,   445,   446,  -143,   330,
749   486,   323,  -143,   504,   122,   315,    26,    27,   647,   321,
750   503,    36,   105,   322,   537,   189,   655,   455,    36,   324,
751   325,   403,   189,   327,   331,   453,   506,   343,   507,   215,
752   345,   503,   332,   336,   348,   361,   635,   636,    37,   362,
753   365,   469,   560,   539,   366,    37,   565,   100,   370,   205,
754  -143,   205,   376,   569,   574,   575,  -143,   377,   106,   484,
755   545,   547,   395,   397,   435,    38,   429,   107,   581,   485,
756  -276,   463,   -30,    51,    39,   471,   587,   473,   110,   472,
757    42,   517,   487,   524,   525,   429,   594,   -31,   429,   577,
758   527,   526,   530,   533,   531,   504,   423,  -143,   424,    27,
759   534,  -143,   535,    61,    62,   540,    63,   118,   119,   542,
760   532,    60,   548,     9,    10,    11,    61,    62,   543,    63,
761   544,   556,   558,   503,    64,   561,    65,   568,    66,    67,
762   570,   571,   586,   555,   588,    68,   429,    64,    69,    65,
763   590,    66,    67,    70,    71,    72,   638,   593,    68,    73,
764    74,    69,   591,   425,    75,   426,    70,    71,    72,   602,
765   603,   615,    73,    74,   605,   621,   625,    75,   630,   429,
766   631,   634,   429,  -171,    76,    77,   640,   427,   643,   169,
767   170,   592,   171,   172,   173,   174,   646,    76,    77,   649,
768   200,   198,  -106,  -106,  -106,  -106,  -106,  -106,  -106,   429,
769  -106,  -106,  -106,  -106,  -106,   654,  -106,  -106,  -106,  -106,
770  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,  -106,   657,
771  -106,    23,  -106,  -106,   658,     5,    47,     7,    48,  -106,
772   380,   429,  -106,     9,    10,    11,   563,  -106,  -106,  -106,
773   460,   300,   116,  -106,  -106,   378,   130,   275,  -106,    13,
774   452,   316,   284,   224,   285,     5,     6,     7,     8,   409,
775   320,   286,   314,     9,    10,    11,  -106,  -106,  -106,  -106,
776   414,  -106,  -296,  -296,  -296,  -296,  -296,  -296,  -296,    13,
777  -296,  -296,  -296,  -296,  -296,   132,  -296,  -296,  -296,  -296,
778  -296,  -296,  -296,  -296,  -296,  -296,  -296,  -296,  -296,   461,
779  -296,   422,  -296,  -296,   466,     5,     6,     7,     8,  -296,
780   600,   393,  -296,     9,    10,    11,   601,  -296,  -296,  -296,
781   641,   639,   394,  -296,  -296,     0,   338,  -356,  -296,    13,
782     0,     0,   284,     0,     0,     5,     6,     7,     8,     0,
783     0,   286,     0,     9,    10,    11,  -296,     0,  -296,  -296,
784   200,  -296,  -296,  -296,     0,     0,     0,  -296,  -296,    13,
785  -296,     0,     0,     0,  -296,     0,  -296,  -296,  -296,  -296,
786  -296,  -296,  -296,  -296,  -296,  -296,  -296,     0,  -296,     0,
787  -296,     0,  -296,  -296,     0,     5,     6,     7,     8,  -296,
788     0,     0,  -296,     9,    10,    11,     0,  -296,  -296,  -296,
789     0,     0,     0,  -296,  -296,     0,     0,  -356,  -296,    13,
790     0,     0,     5,     0,     7,   185,   117,   118,   119,     0,
791     9,    10,    11,     9,    10,    11,  -296,  -272,  -296,  -296,
792   549,  -296,  -296,  -296,     0,     0,    13,  -296,  -296,     0,
793  -296,     0,     0,     0,  -296,     0,  -296,  -296,  -296,  -296,
794  -296,  -296,  -296,  -296,  -296,  -296,  -296,     0,  -296,     0,
795  -296,     0,  -296,  -296,    26,    27,   276,   277,   278,  -296,
796     0,     0,  -296,     0,     0,     0,     0,  -296,  -296,  -296,
797     0,     0,     0,  -296,  -296,  -242,  -242,     0,  -296,     0,
798     0,     0,     5,    47,     7,    48,     0,     0,     0,     0,
799     9,    10,    11,     0,     0,     0,  -296,     0,  -296,  -296,
800   578,  -296,  -306,  -306,     0,     0,    13,  -306,  -306,     0,
801  -306,     0,     0,     0,  -306,     0,  -306,  -306,  -306,  -306,
802  -306,  -306,  -306,  -306,  -306,  -306,  -306,     0,  -306,     0,
803  -306,     0,  -306,  -306,   164,   165,   166,   167,   168,  -306,
804     0,     0,  -306,     0,     0,     0,     0,  -306,  -306,  -306,
805     0,     0,     0,  -306,  -306,    49,     0,   145,  -306,    60,
806     5,     0,     7,    86,    61,    62,     0,    63,     9,    10,
807    11,     0,     0,     0,     0,     0,  -306,     0,  -306,  -306,
808     0,  -306,     0,     0,    13,    64,     0,    65,     0,    66,
809    67,     0,     0,     0,     0,     0,    68,   169,   170,    69,
810   171,   172,   173,   174,    70,    71,    72,     0,     0,     0,
811    73,    74,     0,     0,   423,    75,   424,    27,     0,   589,
812     0,    61,    62,     0,    63,   159,   160,   161,   162,   163,
813   164,   165,   166,   167,   168,    76,    77,     0,   -83,     0,
814     0,     0,    64,     0,    65,     0,    66,    67,     0,     0,
815     0,     0,     0,    68,     0,     0,    69,     0,     0,     0,
816     0,    70,    71,    72,     0,     0,     0,    73,    74,     0,
817     0,   425,    75,   426,   423,     0,   424,    27,     0,     0,
818     0,    61,    62,     0,    63,     0,     0,     0,     0,     0,
819     0,  -231,    76,    77,     0,   427,     0,     0,     0,     0,
820     0,     0,    64,     0,    65,     0,    66,    67,     0,     0,
821     0,     0,     0,    68,     0,     0,    69,     0,     0,     0,
822     0,    70,    71,    72,     0,     0,     0,    73,    74,     0,
823     0,   425,    75,   426,   401,     0,    60,     0,     0,     0,
824     0,    61,    62,     0,    63,    99,     0,     0,   -26,   -26,
825   -26,   -26,    76,    77,     0,   427,   -26,   -26,   -26,     0,
826     0,     0,    64,     0,    65,     0,    66,    67,     0,     0,
827     0,   100,   -26,    68,  -143,     0,    69,     0,     0,     0,
828  -143,    70,    71,    72,     0,     0,     0,    73,    74,     0,
829     0,     0,    75,   160,   161,   162,   163,   164,   165,   166,
830   167,   168,     0,   101,   102,   219,     0,     0,   -22,   -22,
831   -22,   -22,    76,    77,     0,   402,   -22,   -22,   -22,     0,
832     0,  -143,     0,     0,   213,  -143,   -26,   -18,   -18,   -18,
833   -18,   100,   -22,     0,  -143,   -18,   -18,   -18,     0,     0,
834  -143,   161,   162,   163,   164,   165,   166,   167,   168,     0,
835   100,   -18,     0,  -143,     0,     0,     0,     0,     0,  -143,
836     0,    60,     0,   101,   102,     0,    61,    62,     0,    63,
837   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
838   168,  -143,     0,     0,     0,  -143,   -22,    64,    60,    65,
839     0,    66,    67,    61,    62,     0,    63,     0,    68,     0,
840  -143,    69,     0,     0,  -143,   -18,    70,    71,    72,     0,
841     0,     0,    73,    74,    64,     0,    65,    75,    66,    67,
842     0,     0,     0,     0,     0,    68,     0,     0,    69,     0,
843     0,     0,     0,    70,    71,    72,     0,    76,    77,    73,
844    74,   269,     0,    60,    75,     0,     0,     0,    61,    62,
845     0,    63,   157,   158,   159,   160,   161,   162,   163,   164,
846   165,   166,   167,   168,    76,    77,     0,     0,   310,    64,
847    60,    65,     0,    66,    67,    61,    62,     0,    63,     0,
848    68,     0,     0,    69,     0,     0,     0,     0,    70,    71,
849    72,     0,     0,     0,    73,    74,    64,     0,    65,    75,
850    66,    67,   566,     0,     0,     0,     0,    68,     0,     0,
851    69,     0,     0,     0,     0,    70,    71,    72,     0,    76,
852    77,    73,    74,   339,     0,     0,    75,   152,   153,   154,
853   567,   155,   156,   157,   158,   159,   160,   161,   162,   163,
854   164,   165,   166,   167,   168,     0,    76,    77,     0,     0,
855   479,   424,   489,     6,     7,     8,    61,    62,     0,    63,
856     9,    10,    11,   490,     0,   491,   492,   493,   494,   495,
857   496,   497,   498,   499,   500,   501,    13,    64,     0,    65,
858     0,    66,    67,     0,     0,     0,     0,     0,    68,     0,
859     0,    69,     0,     0,     0,     0,    70,    71,    72,     0,
860     0,     0,    73,    74,     0,     0,     0,    75,     0,     0,
861     0,     5,    47,     7,    48,     0,     0,     0,     0,     9,
862    10,    11,     0,     0,     0,   502,     0,    76,    77,     0,
863   237,   424,    27,     0,     0,    13,    61,    62,     0,    63,
864     0,     0,     0,   490,     0,   491,   492,   493,   494,   495,
865   496,   497,   498,   499,   500,   501,     0,    64,     0,    65,
866     0,    66,    67,     0,     0,     0,     0,     0,    68,     0,
867     0,    69,     0,     0,     0,     0,    70,    71,    72,     0,
868     0,     0,    73,    74,   399,    60,     0,    75,     0,     0,
869    61,    62,     0,    63,   162,   163,   164,   165,   166,   167,
870   168,     0,     0,     0,     0,   502,     0,    76,    77,     0,
871   237,    64,     0,    65,     0,    66,    67,     0,     0,     0,
872     0,     0,    68,     0,     0,    69,     0,     0,     0,     0,
873    70,    71,    72,     0,     0,     0,    73,    74,     0,     0,
874     0,    75,    60,     5,     0,     7,    86,    61,    62,     0,
875    63,     9,    10,    11,     0,     0,     0,     0,     0,     0,
876     0,    76,    77,     0,   328,     0,     0,    13,    64,    60,
877    65,     0,    66,    67,    61,    62,     0,    63,     0,    68,
878     0,     0,    69,     0,     0,     0,     0,    70,    71,    72,
879     0,     0,     0,    73,    74,    64,     0,    65,    75,    66,
880    67,     0,    60,     0,     0,     0,    68,    61,    62,    69,
881    63,     0,     0,     0,    70,    71,    72,     0,    76,    77,
882    73,    74,     0,     0,     0,    75,     0,     0,    64,    60,
883    65,     0,    66,    67,    61,    62,     0,    63,     0,    68,
884     0,     0,    69,   536,     0,    76,    77,    70,    71,    72,
885     0,     0,     0,    73,    74,    64,    60,    65,    75,    66,
886    67,    61,    62,     0,    63,     0,    68,     0,     0,    69,
887     0,     0,     0,     0,    70,    71,    72,     0,    76,    77,
888    73,    74,    64,   379,    65,   136,    66,    67,    61,    62,
889     0,    63,     0,    68,     0,     0,    69,     0,     0,     0,
890     0,    70,    71,    72,     0,    76,    77,    73,    74,    64,
891     0,    65,   138,    66,    67,     0,     0,     0,     0,     0,
892    68,     0,     0,    69,     0,     0,     0,     0,    70,    71,
893    72,     0,    76,    77,    73,    74,     0,     0,     4,    75,
894  -110,     5,     6,     7,     8,     5,    47,     7,    48,     9,
895    10,    11,     0,     9,    10,    11,     0,     0,     0,    76,
896    77,     0,     0,     0,    12,    13,     0,  -110,   518,    13,
897   154,     0,   155,   156,   157,   158,   159,   160,   161,   162,
898   163,   164,   165,   166,   167,   168,     0,  -110,     0,     0,
899     0,     0,     0,   152,   153,   154,  -110,   155,   156,   157,
900   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
901   168,     0,     0,     5,    14,     7,   185,     0,   546,     0,
902     0,     9,    10,    11,   156,   157,   158,   159,   160,   161,
903   162,   163,   164,   165,   166,   167,   168,    13,     0,    37,
904     0,   519,     0,     0,     0,     0,     0,     0,     0,     0,
905     0,     0,     0,     0,     0,     0,     0,     0,     0,   177,
906     0,     0,     0,     0,     0,     0,     0,     0,   178,   179,
907   152,   153,   154,     0,   155,   156,   157,   158,   159,   160,
908   161,   162,   163,   164,   165,   166,   167,   168,    37,     0,
909     0,     0,     0,   152,   153,   154,     0,   155,   156,   157,
910   158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
911   168,     0,     0,     0,     0,     0,     0,     0,   583,   152,
912   153,   154,   609,   155,   156,   157,   158,   159,   160,   161,
913   162,   163,   164,   165,   166,   167,   168,   152,   153,   154,
914     0,   155,   156,   157,   158,   159,   160,   161,   162,   163,
915   164,   165,   166,   167,   168
916};
917
918static const short yycheck[] = {    34,
919    35,    18,     9,    10,    11,    46,   103,   147,    50,   195,
920    18,     2,     3,     2,     3,   214,   111,   106,   173,    52,
921    91,   220,    39,    19,    20,   319,   110,   216,   202,    46,
922   398,    39,   268,    50,    96,   183,    20,    42,    66,    67,
923    75,   107,    50,     9,    72,    27,    53,     1,   178,   473,
924    78,    35,    32,    75,   451,   530,    10,     3,     4,     1,
925     1,    68,    38,    76,     3,     4,     0,   102,    81,    59,
926    60,    88,    56,   470,    91,     0,    93,    59,    60,    96,
927    97,    59,    38,   116,    30,    93,    76,    38,   177,    97,
928   107,    75,    38,     3,     4,    59,   180,   521,   193,   107,
929    76,   136,    77,   138,    50,   110,   203,    91,     3,     4,
930    76,     3,   140,    59,   136,     7,   138,   214,    59,   126,
931    76,     3,     4,   220,   529,    76,   420,   275,    82,   226,
932   554,   228,   607,   557,   130,   265,   132,    30,    30,   174,
933    82,   271,   208,    82,   179,    38,   212,    59,   132,   211,
934   183,     3,   136,   133,   138,   135,   392,    30,    50,    77,
935   584,   178,   637,    81,   171,   172,    82,    59,    60,    59,
936    60,   465,    82,   360,   579,   180,   363,   545,    30,    76,
937    30,   188,   217,   127,    81,    76,    76,    82,   343,    77,
938   134,   208,   616,    81,   211,   212,   601,   371,    50,    82,
939   208,   606,   207,   608,   212,     3,     4,    59,    60,    59,
940    60,   239,   617,   353,    76,   222,   151,   152,   153,    81,
941   155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
942   165,   166,   167,   168,    76,    76,    59,    60,   273,    81,
943    81,   415,   275,    30,   418,   650,    77,    82,   265,   438,
944    81,    30,    50,   383,   271,     1,   550,    78,     4,     5,
945     6,     7,    78,    50,    10,     9,    12,    13,    14,   366,
946    81,   215,    59,    60,   371,   346,   347,    59,    60,   434,
947    59,    60,    28,    76,     1,    76,   221,     4,     5,     6,
948     7,   287,   288,   382,    76,    12,    13,    14,    36,   388,
949   384,    50,    51,    52,   288,   389,   436,   437,    77,    78,
950   301,    28,   301,   443,   444,    81,    77,     3,     4,   416,
951    81,   418,    59,    60,    77,    59,   367,   467,    81,   346,
952   347,    59,    60,     3,     4,   342,    82,     7,   346,   347,
953     1,    77,    78,     4,    30,     6,     7,    59,   488,     3,
954   367,    12,    13,    14,    77,     3,     4,    76,   400,    77,
955    30,   357,   358,   370,    50,    82,   383,    28,    77,    76,
956     7,   315,    81,    59,   358,   383,    30,   321,   322,   384,
957    50,   398,    30,   400,   389,    77,    78,    77,    82,    59,
958    60,    81,   400,    30,    76,   330,    50,   596,    27,   598,
959    27,    30,    50,     9,   439,    59,    77,    36,    59,    60,
960    81,    59,    60,    50,    63,    64,    77,    78,   425,   436,
961   437,   365,    59,    60,   359,    83,   443,   444,   436,   437,
962    59,    60,   467,    77,    77,   443,   444,    81,    36,   374,
963   580,   385,   386,   387,   436,   437,   390,   391,    77,    38,
964   457,    76,    81,   488,     1,    78,     3,     4,   644,    78,
965   467,     3,     4,    78,   499,     7,   652,   411,     3,    76,
966    78,   406,     7,    76,    76,   410,   467,    59,   467,   574,
967    76,   488,    83,    83,    76,    36,   626,   627,    30,    83,
968    78,   426,   527,   500,    81,    30,   531,    27,    32,   596,
969    30,   598,    83,   538,   545,   547,    36,    76,    50,   453,
970   506,   507,     3,    77,    76,    50,   451,    59,   553,   454,
971    78,    78,    38,   507,    59,    38,   561,    81,   545,    78,
972   547,    36,    78,    83,    78,   470,   571,    38,   473,   547,
973    59,   485,    59,    38,    59,   580,     1,    77,     3,     4,
974    77,    81,    77,     8,     9,     7,    11,     6,     7,    38,
975   495,     3,    16,    12,    13,    14,     8,     9,    77,    11,
976    77,    36,    78,   580,    29,    59,    31,    77,    33,    34,
977    77,    59,    76,   518,    17,    40,   521,    29,    43,    31,
978    77,    33,    34,    48,    49,    50,   631,    77,    40,    54,
979    55,    43,    76,    58,    59,    60,    48,    49,    50,    76,
980    36,    77,    54,    55,    76,     9,    77,    59,    77,   554,
981    59,    81,   557,    78,    79,    80,    77,    82,    76,    54,
982    55,   566,    57,    58,    59,    60,    76,    79,    80,    77,
983     1,    83,     3,     4,     5,     6,     7,     8,     9,   584,
984    11,    12,    13,    14,    15,    77,    17,    18,    19,    20,
985    21,    22,    23,    24,    25,    26,    27,    28,    29,     0,
986    31,     3,    33,    34,     0,     4,     5,     6,     7,    40,
987   343,   616,    43,    12,    13,    14,   530,    48,    49,    50,
988   416,   203,    51,    54,    55,   342,    56,   186,    59,    28,
989   406,   224,     1,   126,     3,     4,     5,     6,     7,   366,
990   228,    10,   222,    12,    13,    14,    77,    78,    79,    80,
991     1,    82,     3,     4,     5,     6,     7,     8,     9,    28,
992    11,    12,    13,    14,    15,    56,    17,    18,    19,    20,
993    21,    22,    23,    24,    25,    26,    27,    28,    29,   416,
994    31,   372,    33,    34,   418,     4,     5,     6,     7,    40,
995   580,    10,    43,    12,    13,    14,   580,    48,    49,    50,
996   634,   632,   350,    54,    55,    -1,   272,    76,    59,    28,
997    -1,    -1,     1,    -1,    -1,     4,     5,     6,     7,    -1,
998    -1,    10,    -1,    12,    13,    14,    77,    -1,    79,    80,
999     1,    82,     3,     4,    -1,    -1,    -1,     8,     9,    28,
1000    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
1001    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
1002    31,    -1,    33,    34,    -1,     4,     5,     6,     7,    40,
1003    -1,    -1,    43,    12,    13,    14,    -1,    48,    49,    50,
1004    -1,    -1,    -1,    54,    55,    -1,    -1,    76,    59,    28,
1005    -1,    -1,     4,    -1,     6,     7,     5,     6,     7,    -1,
1006    12,    13,    14,    12,    13,    14,    77,    78,    79,    80,
1007     1,    82,     3,     4,    -1,    -1,    28,     8,     9,    -1,
1008    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
1009    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
1010    31,    -1,    33,    34,     3,     4,     5,     6,     7,    40,
1011    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
1012    -1,    -1,    -1,    54,    55,    77,    78,    -1,    59,    -1,
1013    -1,    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
1014    12,    13,    14,    -1,    -1,    -1,    77,    -1,    79,    80,
1015     1,    82,     3,     4,    -1,    -1,    28,     8,     9,    -1,
1016    11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
1017    21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
1018    31,    -1,    33,    34,    48,    49,    50,    51,    52,    40,
1019    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
1020    -1,    -1,    -1,    54,    55,    77,    -1,     1,    59,     3,
1021     4,    -1,     6,     7,     8,     9,    -1,    11,    12,    13,
1022    14,    -1,    -1,    -1,    -1,    -1,    77,    -1,    79,    80,
1023    -1,    82,    -1,    -1,    28,    29,    -1,    31,    -1,    33,
1024    34,    -1,    -1,    -1,    -1,    -1,    40,    54,    55,    43,
1025    57,    58,    59,    60,    48,    49,    50,    -1,    -1,    -1,
1026    54,    55,    -1,    -1,     1,    59,     3,     4,    -1,    76,
1027    -1,     8,     9,    -1,    11,    43,    44,    45,    46,    47,
1028    48,    49,    50,    51,    52,    79,    80,    -1,    82,    -1,
1029    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
1030    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
1031    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
1032    -1,    58,    59,    60,     1,    -1,     3,     4,    -1,    -1,
1033    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
1034    -1,    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,
1035    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
1036    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
1037    -1,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
1038    -1,    58,    59,    60,     1,    -1,     3,    -1,    -1,    -1,
1039    -1,     8,     9,    -1,    11,     1,    -1,    -1,     4,     5,
1040     6,     7,    79,    80,    -1,    82,    12,    13,    14,    -1,
1041    -1,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
1042    -1,    27,    28,    40,    30,    -1,    43,    -1,    -1,    -1,
1043    36,    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,
1044    -1,    -1,    59,    44,    45,    46,    47,    48,    49,    50,
1045    51,    52,    -1,    59,    60,     1,    -1,    -1,     4,     5,
1046     6,     7,    79,    80,    -1,    82,    12,    13,    14,    -1,
1047    -1,    77,    -1,    -1,     1,    81,    82,     4,     5,     6,
1048     7,    27,    28,    -1,    30,    12,    13,    14,    -1,    -1,
1049    36,    45,    46,    47,    48,    49,    50,    51,    52,    -1,
1050    27,    28,    -1,    30,    -1,    -1,    -1,    -1,    -1,    36,
1051    -1,     3,    -1,    59,    60,    -1,     8,     9,    -1,    11,
1052    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1053    52,    77,    -1,    -1,    -1,    81,    82,    29,     3,    31,
1054    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,    -1,
1055    77,    43,    -1,    -1,    81,    82,    48,    49,    50,    -1,
1056    -1,    -1,    54,    55,    29,    -1,    31,    59,    33,    34,
1057    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    43,    -1,
1058    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,    54,
1059    55,    83,    -1,     3,    59,    -1,    -1,    -1,     8,     9,
1060    -1,    11,    41,    42,    43,    44,    45,    46,    47,    48,
1061    49,    50,    51,    52,    79,    80,    -1,    -1,    83,    29,
1062     3,    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,
1063    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
1064    50,    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,
1065    33,    34,    10,    -1,    -1,    -1,    -1,    40,    -1,    -1,
1066    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,
1067    80,    54,    55,    83,    -1,    -1,    59,    35,    36,    37,
1068    38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1069    48,    49,    50,    51,    52,    -1,    79,    80,    -1,    -1,
1070    83,     3,     4,     5,     6,     7,     8,     9,    -1,    11,
1071    12,    13,    14,    15,    -1,    17,    18,    19,    20,    21,
1072    22,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
1073    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
1074    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
1075    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    -1,    -1,
1076    -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
1077    13,    14,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,
1078    82,     3,     4,    -1,    -1,    28,     8,     9,    -1,    11,
1079    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,    21,
1080    22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
1081    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    40,    -1,
1082    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,    -1,
1083    -1,    -1,    54,    55,    77,     3,    -1,    59,    -1,    -1,
1084     8,     9,    -1,    11,    46,    47,    48,    49,    50,    51,
1085    52,    -1,    -1,    -1,    -1,    77,    -1,    79,    80,    -1,
1086    82,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
1087    -1,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,
1088    48,    49,    50,    -1,    -1,    -1,    54,    55,    -1,    -1,
1089    -1,    59,     3,     4,    -1,     6,     7,     8,     9,    -1,
1090    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
1091    -1,    79,    80,    -1,    82,    -1,    -1,    28,    29,     3,
1092    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
1093    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,    50,
1094    -1,    -1,    -1,    54,    55,    29,    -1,    31,    59,    33,
1095    34,    -1,     3,    -1,    -1,    -1,    40,     8,     9,    43,
1096    11,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
1097    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    29,     3,
1098    31,    -1,    33,    34,     8,     9,    -1,    11,    -1,    40,
1099    -1,    -1,    43,    77,    -1,    79,    80,    48,    49,    50,
1100    -1,    -1,    -1,    54,    55,    29,     3,    31,    59,    33,
1101    34,     8,     9,    -1,    11,    -1,    40,    -1,    -1,    43,
1102    -1,    -1,    -1,    -1,    48,    49,    50,    -1,    79,    80,
1103    54,    55,    29,     3,    31,    59,    33,    34,     8,     9,
1104    -1,    11,    -1,    40,    -1,    -1,    43,    -1,    -1,    -1,
1105    -1,    48,    49,    50,    -1,    79,    80,    54,    55,    29,
1106    -1,    31,    59,    33,    34,    -1,    -1,    -1,    -1,    -1,
1107    40,    -1,    -1,    43,    -1,    -1,    -1,    -1,    48,    49,
1108    50,    -1,    79,    80,    54,    55,    -1,    -1,     1,    59,
1109     3,     4,     5,     6,     7,     4,     5,     6,     7,    12,
1110    13,    14,    -1,    12,    13,    14,    -1,    -1,    -1,    79,
1111    80,    -1,    -1,    -1,    27,    28,    -1,    30,    10,    28,
1112    37,    -1,    39,    40,    41,    42,    43,    44,    45,    46,
1113    47,    48,    49,    50,    51,    52,    -1,    50,    -1,    -1,
1114    -1,    -1,    -1,    35,    36,    37,    59,    39,    40,    41,
1115    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1116    52,    -1,    -1,     4,    77,     6,     7,    -1,    77,    -1,
1117    -1,    12,    13,    14,    40,    41,    42,    43,    44,    45,
1118    46,    47,    48,    49,    50,    51,    52,    28,    -1,    30,
1119    -1,    83,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1120    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,
1121    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,
1122    35,    36,    37,    -1,    39,    40,    41,    42,    43,    44,
1123    45,    46,    47,    48,    49,    50,    51,    52,    30,    -1,
1124    -1,    -1,    -1,    35,    36,    37,    -1,    39,    40,    41,
1125    42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1126    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    35,
1127    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1128    46,    47,    48,    49,    50,    51,    52,    35,    36,    37,
1129    -1,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1130    48,    49,    50,    51,    52
1131};
1132/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
1133#line 3 "/usr/local/lib/bison.simple"
1134
1135/* Skeleton output parser for bison,
1136   Copyright (C) 1984, 1989, 1990 Bob Corbett and Richard Stallman
1137
1138   This program is free software; you can redistribute it and/or modify
1139   it under the terms of the GNU General Public License as published by
1140   the Free Software Foundation; either version 1, or (at your option)
1141   any later version.
1142
1143   This program is distributed in the hope that it will be useful,
1144   but WITHOUT ANY WARRANTY; without even the implied warranty of
1145   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1146   GNU General Public License for more details.
1147
1148   You should have received a copy of the GNU General Public License
1149   along with this program; if not, write to the Free Software
1150   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
1151
1152
1153#ifndef alloca
1154#ifdef __GNUC__
1155#define alloca __builtin_alloca
1156#else /* not GNU C.  */
1157#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1158#include <alloca.h>
1159#else /* not sparc */
1160#if defined (MSDOS) && !defined (__TURBOC__)
1161#include <malloc.h>
1162#else /* not MSDOS, or __TURBOC__ */
1163#if defined(_AIX)
1164#include <malloc.h>
1165 #pragma alloca
1166#else /* not MSDOS, __TURBOC__, or _AIX */
1167#ifdef __hpux
1168#ifdef __cplusplus
1169extern "C" {
1170void *alloca (unsigned int);
1171};
1172#else /* not __cplusplus */
1173void *alloca ();
1174#endif /* not __cplusplus */
1175#endif /* __hpux */
1176#endif /* not _AIX */
1177#endif /* not MSDOS, or __TURBOC__ */
1178#endif /* not sparc.  */
1179#endif /* not GNU C.  */
1180#endif /* alloca not defined.  */
1181
1182/* This is the parser code that is written into each bison parser
1183  when the %semantic_parser declaration is not specified in the grammar.
1184  It was written by Richard Stallman by simplifying the hairy parser
1185  used when %semantic_parser is specified.  */
1186
1187/* Note: there must be only one dollar sign in this file.
1188   It is replaced by the list of actions, each action
1189   as one case of the switch.  */
1190
1191#define yyerrok         (yyerrstatus = 0)
1192#define yyclearin       (yychar = YYEMPTY)
1193#define YYEMPTY         -2
1194#define YYEOF           0
1195#define YYACCEPT        return(0)
1196#define YYABORT         return(1)
1197#define YYERROR         goto yyerrlab1
1198/* Like YYERROR except do call yyerror.
1199   This remains here temporarily to ease the
1200   transition to the new meaning of YYERROR, for GCC.
1201   Once GCC version 2 has supplanted version 1, this can go.  */
1202#define YYFAIL          goto yyerrlab
1203#define YYRECOVERING()  (!!yyerrstatus)
1204#define YYBACKUP(token, value) \
1205do                                                              \
1206  if (yychar == YYEMPTY && yylen == 1)                          \
1207    { yychar = (token), yylval = (value);                       \
1208      yychar1 = YYTRANSLATE (yychar);                           \
1209      YYPOPSTACK;                                               \
1210      goto yybackup;                                            \
1211    }                                                           \
1212  else                                                          \
1213    { yyerror ("syntax error: cannot back up"); YYERROR; }      \
1214while (0)
1215
1216#define YYTERROR        1
1217#define YYERRCODE       256
1218
1219#ifndef YYPURE
1220#define YYLEX           yylex()
1221#endif
1222
1223#ifdef YYPURE
1224#ifdef YYLSP_NEEDED
1225#define YYLEX           yylex(&yylval, &yylloc)
1226#else
1227#define YYLEX           yylex(&yylval)
1228#endif
1229#endif
1230
1231/* If nonreentrant, generate the variables here */
1232
1233#ifndef YYPURE
1234
1235int     yychar;                 /*  the lookahead symbol                */
1236YYSTYPE yylval;                 /*  the semantic value of the           */
1237                                /*  lookahead symbol                    */
1238
1239#ifdef YYLSP_NEEDED
1240YYLTYPE yylloc;                 /*  location data for the lookahead     */
1241                                /*  symbol                              */
1242#endif
1243
1244int yynerrs;                    /*  number of parse errors so far       */
1245#endif  /* not YYPURE */
1246
1247#if YYDEBUG != 0
1248int yydebug;                    /*  nonzero means print parse trace     */
1249/* Since this is uninitialized, it does not stop multiple parsers
1250   from coexisting.  */
1251#endif
1252
1253/*  YYINITDEPTH indicates the initial size of the parser's stacks       */
1254
1255#ifndef YYINITDEPTH
1256#define YYINITDEPTH 200
1257#endif
1258
1259/*  YYMAXDEPTH is the maximum size the stacks can grow to
1260    (effective only if the built-in stack extension method is used).  */
1261
1262#if YYMAXDEPTH == 0
1263#undef YYMAXDEPTH
1264#endif
1265
1266#ifndef YYMAXDEPTH
1267#define YYMAXDEPTH 10000
1268#endif
1269
1270/* Prevent warning if -Wstrict-prototypes.  */
1271#ifdef __GNUC__
1272int yyparse (void);
1273#endif
1274
1275#if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
1276#define __yy_bcopy(FROM,TO,COUNT)       __builtin_memcpy(TO,FROM,COUNT)
1277#else                           /* not GNU C or C++ */
1278#ifndef __cplusplus
1279
1280/* This is the most reliable way to avoid incompatibilities
1281   in available built-in functions on various systems.  */
1282static void
1283__yy_bcopy (from, to, count)
1284     char *from;
1285     char *to;
1286     int count;
1287{
1288  register char *f = from;
1289  register char *t = to;
1290  register int i = count;
1291
1292  while (i-- > 0)
1293    *t++ = *f++;
1294}
1295
1296#else /* __cplusplus */
1297
1298/* This is the most reliable way to avoid incompatibilities
1299   in available built-in functions on various systems.  */
1300static void
1301__yy_bcopy (char *from, char *to, int count)
1302{
1303  register char *f = from;
1304  register char *t = to;
1305  register int i = count;
1306
1307  while (i-- > 0)
1308    *t++ = *f++;
1309}
1310
1311#endif
1312#endif
1313
1314#line 184 "/usr/local/lib/bison.simple"
1315
1316/* The user can define YYPARSE_PARAM as the name of an argument to be passed
1317   into yyparse.  The argument should have type void *.
1318   It should actually point to an object.
1319   Grammar actions can access the variable by casting it
1320   to the proper pointer type.  */
1321
1322#ifdef YYPARSE_PARAM
1323#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1324#else
1325#define YYPARSE_PARAM
1326#define YYPARSE_PARAM_DECL
1327#endif
1328
1329int
1330yyparse(YYPARSE_PARAM)
1331     YYPARSE_PARAM_DECL
1332{
1333  register int yystate;
1334  register int yyn;
1335  register short *yyssp;
1336  register YYSTYPE *yyvsp;
1337  int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
1338  int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
1339
1340  short yyssa[YYINITDEPTH];     /*  the state stack                     */
1341  YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
1342
1343  short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
1344  YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
1345
1346#ifdef YYLSP_NEEDED
1347  YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
1348  YYLTYPE *yyls = yylsa;
1349  YYLTYPE *yylsp;
1350
1351#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
1352#else
1353#define YYPOPSTACK   (yyvsp--, yyssp--)
1354#endif
1355
1356  int yystacksize = YYINITDEPTH;
1357
1358#ifdef YYPURE
1359  int yychar;
1360  YYSTYPE yylval;
1361  int yynerrs;
1362#ifdef YYLSP_NEEDED
1363  YYLTYPE yylloc;
1364#endif
1365#endif
1366
1367  YYSTYPE yyval;                /*  the variable used to return         */
1368                                /*  semantic values from the action     */
1369                                /*  routines                            */
1370
1371  int yylen;
1372
1373#if YYDEBUG != 0
1374  if (yydebug)
1375    fprintf(stderr, "Starting parse\n");
1376#endif
1377
1378  yystate = 0;
1379  yyerrstatus = 0;
1380  yynerrs = 0;
1381  yychar = YYEMPTY;             /* Cause a token to be read.  */
1382
1383  /* Initialize stack pointers.
1384     Waste one element of value and location stack
1385     so that they stay on the same level as the state stack.
1386     The wasted elements are never initialized.  */
1387
1388  yyssp = yyss - 1;
1389  yyvsp = yyvs;
1390#ifdef YYLSP_NEEDED
1391  yylsp = yyls;
1392#endif
1393
1394/* Push a new state, which is found in  yystate  .  */
1395/* In all cases, when you get here, the value and location stacks
1396   have just been pushed. so pushing a state here evens the stacks.  */
1397yynewstate:
1398
1399  *++yyssp = yystate;
1400
1401  if (yyssp >= yyss + yystacksize - 1)
1402    {
1403      /* Give user a chance to reallocate the stack */
1404      /* Use copies of these so that the &'s don't force the real ones into memory. */
1405      YYSTYPE *yyvs1 = yyvs;
1406      short *yyss1 = yyss;
1407#ifdef YYLSP_NEEDED
1408      YYLTYPE *yyls1 = yyls;
1409#endif
1410
1411      /* Get the current used size of the three stacks, in elements.  */
1412      int size = yyssp - yyss + 1;
1413
1414#ifdef yyoverflow
1415      /* Each stack pointer address is followed by the size of
1416         the data in use in that stack, in bytes.  */
1417#ifdef YYLSP_NEEDED
1418      /* This used to be a conditional around just the two extra args,
1419         but that might be undefined if yyoverflow is a macro.  */
1420      yyoverflow("parser stack overflow",
1421                 &yyss1, size * sizeof (*yyssp),
1422                 &yyvs1, size * sizeof (*yyvsp),
1423                 &yyls1, size * sizeof (*yylsp),
1424                 &yystacksize);
1425#else
1426      yyoverflow("parser stack overflow",
1427                 &yyss1, size * sizeof (*yyssp),
1428                 &yyvs1, size * sizeof (*yyvsp),
1429                 &yystacksize);
1430#endif
1431
1432      yyss = yyss1; yyvs = yyvs1;
1433#ifdef YYLSP_NEEDED
1434      yyls = yyls1;
1435#endif
1436#else /* no yyoverflow */
1437      /* Extend the stack our own way.  */
1438      if (yystacksize >= YYMAXDEPTH)
1439        {
1440          yyerror("parser stack overflow");
1441          return 2;
1442        }
1443      yystacksize *= 2;
1444      if (yystacksize > YYMAXDEPTH)
1445        yystacksize = YYMAXDEPTH;
1446      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1447      __yy_bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
1448      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1449      __yy_bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
1450#ifdef YYLSP_NEEDED
1451      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1452      __yy_bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
1453#endif
1454#endif /* no yyoverflow */
1455
1456      yyssp = yyss + size - 1;
1457      yyvsp = yyvs + size - 1;
1458#ifdef YYLSP_NEEDED
1459      yylsp = yyls + size - 1;
1460#endif
1461
1462#if YYDEBUG != 0
1463      if (yydebug)
1464        fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1465#endif
1466
1467      if (yyssp >= yyss + yystacksize - 1)
1468        YYABORT;
1469    }
1470
1471#if YYDEBUG != 0
1472  if (yydebug)
1473    fprintf(stderr, "Entering state %d\n", yystate);
1474#endif
1475
1476  goto yybackup;
1477 yybackup:
1478
1479/* Do appropriate processing given the current state.  */
1480/* Read a lookahead token if we need one and don't already have one.  */
1481/* yyresume: */
1482
1483  /* First try to decide what to do without reference to lookahead token.  */
1484
1485  yyn = yypact[yystate];
1486  if (yyn == YYFLAG)
1487    goto yydefault;
1488
1489  /* Not known => get a lookahead token if don't already have one.  */
1490
1491  /* yychar is either YYEMPTY or YYEOF
1492     or a valid token in external form.  */
1493
1494  if (yychar == YYEMPTY)
1495    {
1496#if YYDEBUG != 0
1497      if (yydebug)
1498        fprintf(stderr, "Reading a token: ");
1499#endif
1500      yychar = YYLEX;
1501    }
1502
1503  /* Convert token to internal form (in yychar1) for indexing tables with */
1504
1505  if (yychar <= 0)              /* This means end of input. */
1506    {
1507      yychar1 = 0;
1508      yychar = YYEOF;           /* Don't call YYLEX any more */
1509
1510#if YYDEBUG != 0
1511      if (yydebug)
1512        fprintf(stderr, "Now at end of input.\n");
1513#endif
1514    }
1515  else
1516    {
1517      yychar1 = YYTRANSLATE(yychar);
1518
1519#if YYDEBUG != 0
1520      if (yydebug)
1521        {
1522          fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1523          /* Give the individual parser a way to print the precise meaning
1524             of a token, for further debugging info.  */
1525#ifdef YYPRINT
1526          YYPRINT (stderr, yychar, yylval);
1527#endif
1528          fprintf (stderr, ")\n");
1529        }
1530#endif
1531    }
1532
1533  yyn += yychar1;
1534  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1535    goto yydefault;
1536
1537  yyn = yytable[yyn];
1538
1539  /* yyn is what to do for this token type in this state.
1540     Negative => reduce, -yyn is rule number.
1541     Positive => shift, yyn is new state.
1542       New state is final state => don't bother to shift,
1543       just return success.
1544     0, or most negative number => error.  */
1545
1546  if (yyn < 0)
1547    {
1548      if (yyn == YYFLAG)
1549        goto yyerrlab;
1550      yyn = -yyn;
1551      goto yyreduce;
1552    }
1553  else if (yyn == 0)
1554    goto yyerrlab;
1555
1556  if (yyn == YYFINAL)
1557    YYACCEPT;
1558
1559  /* Shift the lookahead token.  */
1560
1561#if YYDEBUG != 0
1562  if (yydebug)
1563    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1564#endif
1565
1566  /* Discard the token being shifted unless it is eof.  */
1567  if (yychar != YYEOF)
1568    yychar = YYEMPTY;
1569
1570  *++yyvsp = yylval;
1571#ifdef YYLSP_NEEDED
1572  *++yylsp = yylloc;
1573#endif
1574
1575  /* count tokens shifted since error; after three, turn off error status.  */
1576  if (yyerrstatus) yyerrstatus--;
1577
1578  yystate = yyn;
1579  goto yynewstate;
1580
1581/* Do the default action for the current state.  */
1582yydefault:
1583
1584  yyn = yydefact[yystate];
1585  if (yyn == 0)
1586    goto yyerrlab;
1587
1588/* Do a reduction.  yyn is the number of a rule to reduce with.  */
1589yyreduce:
1590  yylen = yyr2[yyn];
1591  if (yylen > 0)
1592    yyval = yyvsp[1-yylen]; /* implement default value of the action */
1593
1594#if YYDEBUG != 0
1595  if (yydebug)
1596    {
1597      int i;
1598
1599      fprintf (stderr, "Reducing via rule %d (line %d), ",
1600               yyn, yyrline[yyn]);
1601
1602      /* Print the symbols being reduced, and their result.  */
1603      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1604        fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1605      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1606    }
1607#endif
1608
1609
1610  switch (yyn) {
1611
1612case 1:
1613#line 234 "c-parse.y"
1614{ if (pedantic)
1615                    pedwarn ("ANSI C forbids an empty source file");
1616                  finish_file ();
1617                ;
1618    break;}
1619case 2:
1620#line 239 "c-parse.y"
1621{
1622                  /* In case there were missing closebraces,
1623                     get us back to the global binding level.  */
1624                  while (! global_bindings_p ())
1625                    poplevel (0, 0, 0);
1626                  finish_file ();
1627                ;
1628    break;}
1629case 3:
1630#line 253 "c-parse.y"
1631{yyval.ttype = NULL_TREE; ;
1632    break;}
1633case 5:
1634#line 254 "c-parse.y"
1635{yyval.ttype = NULL_TREE; ;
1636    break;}
1637case 9:
1638#line 261 "c-parse.y"
1639{ STRIP_NOPS (yyvsp[-2].ttype);
1640                  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
1641                       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
1642                      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
1643                    assemble_asm (yyvsp[-2].ttype);
1644                  else
1645                    error ("argument of `asm' is not a constant string"); ;
1646    break;}
1647case 10:
1648#line 272 "c-parse.y"
1649{ if (pedantic)
1650                    error ("ANSI C forbids data definition with no type or storage class");
1651                  else if (!flag_traditional)
1652                    warning ("data definition has no type or storage class");
1653
1654                  current_declspecs = TREE_VALUE (declspec_stack);
1655                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1656                  declspec_stack = TREE_CHAIN (declspec_stack);
1657                  resume_momentary (yyvsp[-2].itype); ;
1658    break;}
1659case 11:
1660#line 282 "c-parse.y"
1661{ current_declspecs = TREE_VALUE (declspec_stack);
1662                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1663                  declspec_stack = TREE_CHAIN (declspec_stack);
1664                  resume_momentary (yyvsp[-2].itype); ;
1665    break;}
1666case 12:
1667#line 287 "c-parse.y"
1668{ current_declspecs = TREE_VALUE (declspec_stack);
1669                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1670                  declspec_stack = TREE_CHAIN (declspec_stack);
1671                  resume_momentary (yyvsp[-2].itype);  ;
1672    break;}
1673case 13:
1674#line 292 "c-parse.y"
1675{ pedwarn ("empty declaration"); ;
1676    break;}
1677case 14:
1678#line 294 "c-parse.y"
1679{ shadow_tag (yyvsp[-1].ttype); ;
1680    break;}
1681case 17:
1682#line 298 "c-parse.y"
1683{ if (pedantic)
1684                    pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
1685    break;}
1686case 18:
1687#line 304 "c-parse.y"
1688{ if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, prefix_attributes,
1689                                        NULL_TREE, 0))
1690                    YYERROR1;
1691                  reinit_parse_for_function (); ;
1692    break;}
1693case 19:
1694#line 309 "c-parse.y"
1695{ store_parm_decls (); ;
1696    break;}
1697case 20:
1698#line 311 "c-parse.y"
1699{ finish_function (0);
1700                  current_declspecs = TREE_VALUE (declspec_stack);
1701                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1702                  declspec_stack = TREE_CHAIN (declspec_stack);
1703                  resume_momentary (yyvsp[-5].itype); ;
1704    break;}
1705case 21:
1706#line 317 "c-parse.y"
1707{ current_declspecs = TREE_VALUE (declspec_stack);
1708                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1709                  declspec_stack = TREE_CHAIN (declspec_stack);
1710                  resume_momentary (yyvsp[-2].itype); ;
1711    break;}
1712case 22:
1713#line 322 "c-parse.y"
1714{ if (! start_function (yyvsp[-2].ttype, yyvsp[0].ttype, prefix_attributes,
1715                                        NULL_TREE, 0))
1716                    YYERROR1;
1717                  reinit_parse_for_function (); ;
1718    break;}
1719case 23:
1720#line 327 "c-parse.y"
1721{ store_parm_decls (); ;
1722    break;}
1723case 24:
1724#line 329 "c-parse.y"
1725{ finish_function (0);
1726                  current_declspecs = TREE_VALUE (declspec_stack);
1727                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1728                  declspec_stack = TREE_CHAIN (declspec_stack);
1729                  resume_momentary (yyvsp[-5].itype); ;
1730    break;}
1731case 25:
1732#line 335 "c-parse.y"
1733{ current_declspecs = TREE_VALUE (declspec_stack);
1734                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1735                  declspec_stack = TREE_CHAIN (declspec_stack);
1736                  resume_momentary (yyvsp[-2].itype); ;
1737    break;}
1738case 26:
1739#line 340 "c-parse.y"
1740{ if (! start_function (NULL_TREE, yyvsp[0].ttype,
1741                                        prefix_attributes, NULL_TREE, 0))
1742                    YYERROR1;
1743                  reinit_parse_for_function (); ;
1744    break;}
1745case 27:
1746#line 345 "c-parse.y"
1747{ store_parm_decls (); ;
1748    break;}
1749case 28:
1750#line 347 "c-parse.y"
1751{ finish_function (0);
1752                  current_declspecs = TREE_VALUE (declspec_stack);
1753                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1754                  declspec_stack = TREE_CHAIN (declspec_stack);
1755                  resume_momentary (yyvsp[-5].itype); ;
1756    break;}
1757case 29:
1758#line 353 "c-parse.y"
1759{ current_declspecs = TREE_VALUE (declspec_stack);
1760                  prefix_attributes = TREE_PURPOSE (declspec_stack);
1761                  declspec_stack = TREE_CHAIN (declspec_stack);
1762                  resume_momentary (yyvsp[-2].itype); ;
1763    break;}
1764case 32:
1765#line 365 "c-parse.y"
1766{ yyval.code = ADDR_EXPR; ;
1767    break;}
1768case 33:
1769#line 367 "c-parse.y"
1770{ yyval.code = NEGATE_EXPR; ;
1771    break;}
1772case 34:
1773#line 369 "c-parse.y"
1774{ yyval.code = CONVERT_EXPR; ;
1775    break;}
1776case 35:
1777#line 371 "c-parse.y"
1778{ yyval.code = PREINCREMENT_EXPR; ;
1779    break;}
1780case 36:
1781#line 373 "c-parse.y"
1782{ yyval.code = PREDECREMENT_EXPR; ;
1783    break;}
1784case 37:
1785#line 375 "c-parse.y"
1786{ yyval.code = BIT_NOT_EXPR; ;
1787    break;}
1788case 38:
1789#line 377 "c-parse.y"
1790{ yyval.code = TRUTH_NOT_EXPR; ;
1791    break;}
1792case 39:
1793#line 381 "c-parse.y"
1794{ yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
1795    break;}
1796case 40:
1797#line 386 "c-parse.y"
1798{ yyval.ttype = NULL_TREE; ;
1799    break;}
1800case 42:
1801#line 392 "c-parse.y"
1802{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
1803    break;}
1804case 43:
1805#line 394 "c-parse.y"
1806{ chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
1807    break;}
1808case 45:
1809#line 400 "c-parse.y"
1810{ yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
1811    break;}
1812case 46:
1813#line 403 "c-parse.y"
1814{ yyvsp[0].itype = pedantic;
1815                  pedantic = 0; ;
1816    break;}
1817case 47:
1818#line 406 "c-parse.y"
1819{ yyval.ttype = yyvsp[0].ttype;
1820                  pedantic = yyvsp[-2].itype; ;
1821    break;}
1822case 48:
1823#line 409 "c-parse.y"
1824{ yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
1825                  overflow_warning (yyval.ttype); ;
1826    break;}
1827case 49:
1828#line 413 "c-parse.y"
1829{ tree label = lookup_label (yyvsp[0].ttype);
1830                  if (pedantic)
1831                    pedwarn ("ANSI C forbids `&&'");
1832                  if (label == 0)
1833                    yyval.ttype = null_pointer_node;
1834                  else
1835                    {
1836                      TREE_USED (label) = 1;
1837                      yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
1838                      TREE_CONSTANT (yyval.ttype) = 1;
1839                    }
1840                ;
1841    break;}
1842case 50:
1843#line 441 "c-parse.y"
1844{ if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
1845                      && DECL_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
1846                    error ("`sizeof' applied to a bit-field");
1847                  yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
1848    break;}
1849case 51:
1850#line 446 "c-parse.y"
1851{ yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
1852    break;}
1853case 52:
1854#line 448 "c-parse.y"
1855{ yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
1856    break;}
1857case 53:
1858#line 450 "c-parse.y"
1859{ yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
1860    break;}
1861case 54:
1862#line 452 "c-parse.y"
1863{ yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
1864    break;}
1865case 55:
1866#line 454 "c-parse.y"
1867{ yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
1868    break;}
1869case 57:
1870#line 460 "c-parse.y"
1871{ tree type = groktypename (yyvsp[-2].ttype);
1872                  yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
1873    break;}
1874case 58:
1875#line 463 "c-parse.y"
1876{ start_init (NULL_TREE, NULL, 0);
1877                  yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
1878                  really_start_incremental_init (yyvsp[-2].ttype); ;
1879    break;}
1880case 59:
1881#line 467 "c-parse.y"
1882{ char *name;
1883                  tree result = pop_init_level (0);
1884                  tree type = yyvsp[-5].ttype;
1885                  finish_init ();
1886
1887                  if (pedantic)
1888                    pedwarn ("ANSI C forbids constructor expressions");
1889                  if (TYPE_NAME (type) != 0)
1890                    {
1891                      if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
1892                        name = IDENTIFIER_POINTER (TYPE_NAME (type));
1893                      else
1894                        name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
1895                    }
1896                  else
1897                    name = "";
1898                  yyval.ttype = result;
1899                  if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
1900                    {
1901                      int failure = complete_array_type (type, yyval.ttype, 1);
1902                      if (failure)
1903                        abort ();
1904                    }
1905                ;
1906    break;}
1907case 61:
1908#line 496 "c-parse.y"
1909{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1910    break;}
1911case 62:
1912#line 498 "c-parse.y"
1913{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1914    break;}
1915case 63:
1916#line 500 "c-parse.y"
1917{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1918    break;}
1919case 64:
1920#line 502 "c-parse.y"
1921{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1922    break;}
1923case 65:
1924#line 504 "c-parse.y"
1925{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1926    break;}
1927case 66:
1928#line 506 "c-parse.y"
1929{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1930    break;}
1931case 67:
1932#line 508 "c-parse.y"
1933{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1934    break;}
1935case 68:
1936#line 510 "c-parse.y"
1937{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1938    break;}
1939case 69:
1940#line 512 "c-parse.y"
1941{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1942    break;}
1943case 70:
1944#line 514 "c-parse.y"
1945{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1946    break;}
1947case 71:
1948#line 516 "c-parse.y"
1949{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1950    break;}
1951case 72:
1952#line 518 "c-parse.y"
1953{ yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1954    break;}
1955case 73:
1956#line 520 "c-parse.y"
1957{ yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1958    break;}
1959case 74:
1960#line 522 "c-parse.y"
1961{ yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1962    break;}
1963case 75:
1964#line 524 "c-parse.y"
1965{ yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
1966    break;}
1967case 76:
1968#line 526 "c-parse.y"
1969{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
1970                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ;
1971    break;}
1972case 77:
1973#line 529 "c-parse.y"
1974{ yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
1975                  /* This inhibits warnings in truthvalue_conversion.  */
1976                  C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK); ;
1977    break;}
1978case 78:
1979#line 536 "c-parse.y"
1980{
1981                  yyval.ttype = lastiddecl;
1982                  if (!yyval.ttype || yyval.ttype == error_mark_node)
1983                    {
1984                      if (yychar == YYEMPTY)
1985                        yychar = YYLEX;
1986                      if (yychar == '(')
1987                        {
1988                            {
1989                              /* Ordinary implicit function declaration.  */
1990                              yyval.ttype = implicitly_declare (yyvsp[0].ttype);
1991                              assemble_external (yyval.ttype);
1992                              TREE_USED (yyval.ttype) = 1;
1993                            }
1994                        }
1995                      else if (current_function_decl == 0)
1996                        {
1997                          error ("`%s' undeclared here (not in a function)",
1998                                 IDENTIFIER_POINTER (yyvsp[0].ttype));
1999                          yyval.ttype = error_mark_node;
2000                        }
2001                      else
2002                        {
2003                            {
2004                              if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2005                                  || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2006                                {
2007                                  error ("`%s' undeclared (first use this function)",
2008                                         IDENTIFIER_POINTER (yyvsp[0].ttype));
2009
2010                                  if (! undeclared_variable_notice)
2011                                    {
2012                                      error ("(Each undeclared identifier is reported only once");
2013                                      error ("for each function it appears in.)");
2014                                      undeclared_variable_notice = 1;
2015                                    }
2016                                }
2017                              yyval.ttype = error_mark_node;
2018                              /* Prevent repeated error messages.  */
2019                              IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2020                              IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2021                            }
2022                        }
2023                    }
2024                  else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2025                    yyval.ttype = error_mark_node;
2026                  else if (C_DECL_ANTICIPATED (yyval.ttype))
2027                    {
2028                      /* The first time we see a build-in function used,
2029                         if it has not been declared.  */
2030                      C_DECL_ANTICIPATED (yyval.ttype) = 0;
2031                      if (yychar == YYEMPTY)
2032                        yychar = YYLEX;
2033                      if (yychar == '(')
2034                        {
2035                          /* Omit the implicit declaration we
2036                             would ordinarily do, so we don't lose
2037                             the actual built in type.
2038                             But print a diagnostic for the mismatch.  */
2039                            if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2040                              error ("`%s' implicitly declared as function",
2041                                     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2042                          else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2043                                    != TYPE_MODE (integer_type_node))
2044                                   && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2045                                       != void_type_node))
2046                            pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2047                                     IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2048                          /* If it really returns void, change that to int.  */
2049                          if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2050                            TREE_TYPE (yyval.ttype)
2051                              = build_function_type (integer_type_node,
2052                                                     TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2053                        }
2054                      else
2055                        pedwarn ("built-in function `%s' used without declaration",
2056                                 IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2057
2058                      /* Do what we would ordinarily do when a fn is used.  */
2059                      assemble_external (yyval.ttype);
2060                      TREE_USED (yyval.ttype) = 1;
2061                    }
2062                  else
2063                    {
2064                      assemble_external (yyval.ttype);
2065                      TREE_USED (yyval.ttype) = 1;
2066                    }
2067
2068                  if (TREE_CODE (yyval.ttype) == CONST_DECL)
2069                    {
2070                      yyval.ttype = DECL_INITIAL (yyval.ttype);
2071                      /* This is to prevent an enum whose value is 0
2072                         from being considered a null pointer constant.  */
2073                      yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2074                      TREE_CONSTANT (yyval.ttype) = 1;
2075                    }
2076                ;
2077    break;}
2078case 80:
2079#line 635 "c-parse.y"
2080{ yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2081    break;}
2082case 81:
2083#line 637 "c-parse.y"
2084{ char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2085                  if (class == 'e' || class == '1'
2086                      || class == '2' || class == '<')
2087                    C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2088                  yyval.ttype = yyvsp[-1].ttype; ;
2089    break;}
2090case 82:
2091#line 643 "c-parse.y"
2092{ yyval.ttype = error_mark_node; ;
2093    break;}
2094case 83:
2095#line 645 "c-parse.y"
2096{ if (current_function_decl == 0)
2097                    {
2098                      error ("braced-group within expression allowed only inside a function");
2099                      YYERROR;
2100                    }
2101                  /* We must force a BLOCK for this level
2102                     so that, if it is not expanded later,
2103                     there is a way to turn off the entire subtree of blocks
2104                     that are contained in it.  */
2105                  keep_next_level ();
2106                  push_iterator_stack ();
2107                  push_label_level ();
2108                  yyval.ttype = expand_start_stmt_expr (); ;
2109    break;}
2110case 84:
2111#line 659 "c-parse.y"
2112{ tree rtl_exp;
2113                  if (pedantic)
2114                    pedwarn ("ANSI C forbids braced-groups within expressions");
2115                  pop_iterator_stack ();
2116                  pop_label_level ();
2117                  rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2118                  /* The statements have side effects, so the group does.  */
2119                  TREE_SIDE_EFFECTS (rtl_exp) = 1;
2120
2121                  if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2122                    {
2123                      /* Make a BIND_EXPR for the BLOCK already made.  */
2124                      yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2125                                  NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2126                      /* Remove the block from the tree at this point.
2127                         It gets put back at the proper place
2128                         when the BIND_EXPR is expanded.  */
2129                      delete_block (yyvsp[-1].ttype);
2130                    }
2131                  else
2132                    yyval.ttype = yyvsp[-1].ttype;
2133                ;
2134    break;}
2135case 85:
2136#line 682 "c-parse.y"
2137{ yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2138    break;}
2139case 86:
2140#line 684 "c-parse.y"
2141{ yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2142    break;}
2143case 87:
2144#line 686 "c-parse.y"
2145{
2146                    yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2147                ;
2148    break;}
2149case 88:
2150#line 690 "c-parse.y"
2151{
2152                  tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2153
2154                    yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2155                ;
2156    break;}
2157case 89:
2158#line 696 "c-parse.y"
2159{ yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2160    break;}
2161case 90:
2162#line 698 "c-parse.y"
2163{ yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2164    break;}
2165case 92:
2166#line 705 "c-parse.y"
2167{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2168    break;}
2169case 95:
2170#line 714 "c-parse.y"
2171{ c_mark_varargs ();
2172                  if (pedantic)
2173                    pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
2174    break;}
2175case 96:
2176#line 724 "c-parse.y"
2177{ ;
2178    break;}
2179case 101:
2180#line 736 "c-parse.y"
2181{ current_declspecs = TREE_VALUE (declspec_stack);
2182                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2183                  declspec_stack = TREE_CHAIN (declspec_stack);
2184                  resume_momentary (yyvsp[-2].itype); ;
2185    break;}
2186case 102:
2187#line 741 "c-parse.y"
2188{ current_declspecs = TREE_VALUE (declspec_stack);     
2189                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2190                  declspec_stack = TREE_CHAIN (declspec_stack);
2191                  resume_momentary (yyvsp[-2].itype); ;
2192    break;}
2193case 103:
2194#line 746 "c-parse.y"
2195{ shadow_tag_warned (yyvsp[-1].ttype, 1);
2196                  pedwarn ("empty declaration"); ;
2197    break;}
2198case 104:
2199#line 749 "c-parse.y"
2200{ pedwarn ("empty declaration"); ;
2201    break;}
2202case 105:
2203#line 758 "c-parse.y"
2204{ ;
2205    break;}
2206case 110:
2207#line 773 "c-parse.y"
2208{ yyval.itype = suspend_momentary ();
2209                  pending_xref_error ();
2210                  declspec_stack = tree_cons (prefix_attributes,
2211                                              current_declspecs,
2212                                              declspec_stack);
2213                  current_declspecs = yyvsp[0].ttype;
2214                  prefix_attributes = NULL_TREE; ;
2215    break;}
2216case 111:
2217#line 783 "c-parse.y"
2218{ prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
2219    break;}
2220case 112:
2221#line 788 "c-parse.y"
2222{ current_declspecs = TREE_VALUE (declspec_stack);
2223                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2224                  declspec_stack = TREE_CHAIN (declspec_stack);
2225                  resume_momentary (yyvsp[-2].itype); ;
2226    break;}
2227case 113:
2228#line 793 "c-parse.y"
2229{ current_declspecs = TREE_VALUE (declspec_stack);
2230                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2231                  declspec_stack = TREE_CHAIN (declspec_stack);
2232                  resume_momentary (yyvsp[-2].itype); ;
2233    break;}
2234case 114:
2235#line 798 "c-parse.y"
2236{ current_declspecs = TREE_VALUE (declspec_stack);
2237                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2238                  declspec_stack = TREE_CHAIN (declspec_stack);
2239                  resume_momentary (yyvsp[-1].itype); ;
2240    break;}
2241case 115:
2242#line 803 "c-parse.y"
2243{ current_declspecs = TREE_VALUE (declspec_stack);
2244                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2245                  declspec_stack = TREE_CHAIN (declspec_stack);
2246                  resume_momentary (yyvsp[-1].itype); ;
2247    break;}
2248case 116:
2249#line 808 "c-parse.y"
2250{ shadow_tag (yyvsp[-1].ttype); ;
2251    break;}
2252case 117:
2253#line 810 "c-parse.y"
2254{ pedwarn ("empty declaration"); ;
2255    break;}
2256case 118:
2257#line 819 "c-parse.y"
2258{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2259    break;}
2260case 119:
2261#line 821 "c-parse.y"
2262{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2263    break;}
2264case 120:
2265#line 825 "c-parse.y"
2266{ yyval.ttype = NULL_TREE; ;
2267    break;}
2268case 121:
2269#line 827 "c-parse.y"
2270{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2271    break;}
2272case 122:
2273#line 829 "c-parse.y"
2274{ if (extra_warnings)
2275                    warning ("`%s' is not at beginning of declaration",
2276                             IDENTIFIER_POINTER (yyvsp[0].ttype));
2277                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2278    break;}
2279case 123:
2280#line 841 "c-parse.y"
2281{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
2282                  TREE_STATIC (yyval.ttype) = 1; ;
2283    break;}
2284case 124:
2285#line 844 "c-parse.y"
2286{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2287    break;}
2288case 125:
2289#line 846 "c-parse.y"
2290{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2291                  TREE_STATIC (yyval.ttype) = 1; ;
2292    break;}
2293case 126:
2294#line 849 "c-parse.y"
2295{ if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
2296                    warning ("`%s' is not at beginning of declaration",
2297                             IDENTIFIER_POINTER (yyvsp[0].ttype));
2298                  yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
2299                  TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
2300    break;}
2301case 127:
2302#line 863 "c-parse.y"
2303{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
2304    break;}
2305case 128:
2306#line 865 "c-parse.y"
2307{ yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
2308    break;}
2309case 129:
2310#line 869 "c-parse.y"
2311{ yyval.ttype = NULL_TREE; ;
2312    break;}
2313case 130:
2314#line 871 "c-parse.y"
2315{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2316    break;}
2317case 133:
2318#line 881 "c-parse.y"
2319{ /* For a typedef name, record the meaning, not the name.
2320                     In case of `foo foo, bar;'.  */
2321                  yyval.ttype = lookup_name (yyvsp[0].ttype); ;
2322    break;}
2323case 134:
2324#line 885 "c-parse.y"
2325{ yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
2326    break;}
2327case 135:
2328#line 887 "c-parse.y"
2329{ yyval.ttype = groktypename (yyvsp[-1].ttype); ;
2330    break;}
2331case 143:
2332#line 909 "c-parse.y"
2333{ yyval.ttype = NULL_TREE; ;
2334    break;}
2335case 144:
2336#line 911 "c-parse.y"
2337{ if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
2338                  yyval.ttype = yyvsp[-1].ttype;
2339                ;
2340    break;}
2341case 145:
2342#line 918 "c-parse.y"
2343{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2344                                          yyvsp[-1].ttype, prefix_attributes);
2345                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2346    break;}
2347case 146:
2348#line 923 "c-parse.y"
2349{ finish_init ();
2350                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2351    break;}
2352case 147:
2353#line 926 "c-parse.y"
2354{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2355                                       yyvsp[0].ttype, prefix_attributes);
2356                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype);
2357                ;
2358    break;}
2359case 148:
2360#line 934 "c-parse.y"
2361{ yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
2362                                          yyvsp[-1].ttype, prefix_attributes);
2363                  start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
2364    break;}
2365case 149:
2366#line 939 "c-parse.y"
2367{ finish_init ();
2368                  decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
2369                  finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
2370    break;}
2371case 150:
2372#line 943 "c-parse.y"
2373{ tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
2374                                       yyvsp[0].ttype, prefix_attributes);
2375                  finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
2376    break;}
2377case 151:
2378#line 951 "c-parse.y"
2379{ yyval.ttype = NULL_TREE; ;
2380    break;}
2381case 152:
2382#line 953 "c-parse.y"
2383{ yyval.ttype = yyvsp[0].ttype; ;
2384    break;}
2385case 153:
2386#line 958 "c-parse.y"
2387{ yyval.ttype = yyvsp[0].ttype; ;
2388    break;}
2389case 154:
2390#line 960 "c-parse.y"
2391{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2392    break;}
2393case 155:
2394#line 965 "c-parse.y"
2395{ yyval.ttype = yyvsp[-2].ttype; ;
2396    break;}
2397case 156:
2398#line 970 "c-parse.y"
2399{ yyval.ttype = yyvsp[0].ttype; ;
2400    break;}
2401case 157:
2402#line 972 "c-parse.y"
2403{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2404    break;}
2405case 158:
2406#line 977 "c-parse.y"
2407{ yyval.ttype = NULL_TREE; ;
2408    break;}
2409case 159:
2410#line 979 "c-parse.y"
2411{ yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
2412    break;}
2413case 160:
2414#line 981 "c-parse.y"
2415{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
2416    break;}
2417case 161:
2418#line 983 "c-parse.y"
2419{ yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
2420    break;}
2421case 162:
2422#line 985 "c-parse.y"
2423{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2424    break;}
2425case 168:
2426#line 1003 "c-parse.y"
2427{ really_start_incremental_init (NULL_TREE);
2428                  /* Note that the call to clear_momentary
2429                     is in process_init_element.  */
2430                  push_momentary (); ;
2431    break;}
2432case 169:
2433#line 1008 "c-parse.y"
2434{ yyval.ttype = pop_init_level (0);
2435                  if (yyval.ttype == error_mark_node
2436                      && ! (yychar == STRING || yychar == CONSTANT))
2437                    pop_momentary ();
2438                  else
2439                    pop_momentary_nofree (); ;
2440    break;}
2441case 170:
2442#line 1016 "c-parse.y"
2443{ yyval.ttype = error_mark_node; ;
2444    break;}
2445case 171:
2446#line 1022 "c-parse.y"
2447{ if (pedantic)
2448                    pedwarn ("ANSI C forbids empty initializer braces"); ;
2449    break;}
2450case 175:
2451#line 1036 "c-parse.y"
2452{ process_init_element (yyvsp[0].ttype); ;
2453    break;}
2454case 176:
2455#line 1038 "c-parse.y"
2456{ push_init_level (0); ;
2457    break;}
2458case 177:
2459#line 1040 "c-parse.y"
2460{ process_init_element (pop_init_level (0)); ;
2461    break;}
2462case 179:
2463#line 1046 "c-parse.y"
2464{ set_init_index (yyvsp[-4].ttype, yyvsp[-2].ttype); ;
2465    break;}
2466case 181:
2467#line 1049 "c-parse.y"
2468{ set_init_index (yyvsp[-2].ttype, NULL_TREE); ;
2469    break;}
2470case 183:
2471#line 1052 "c-parse.y"
2472{ set_init_index (yyvsp[-1].ttype, NULL_TREE); ;
2473    break;}
2474case 185:
2475#line 1055 "c-parse.y"
2476{ set_init_label (yyvsp[-1].ttype); ;
2477    break;}
2478case 187:
2479#line 1058 "c-parse.y"
2480{ set_init_label (yyvsp[-1].ttype); ;
2481    break;}
2482case 189:
2483#line 1064 "c-parse.y"
2484{ push_c_function_context ();
2485                  if (! start_function (current_declspecs, yyvsp[0].ttype,
2486                                        prefix_attributes, NULL_TREE, 1))
2487                    {
2488                      pop_c_function_context ();
2489                      YYERROR1;
2490                    }
2491                  reinit_parse_for_function (); ;
2492    break;}
2493case 190:
2494#line 1073 "c-parse.y"
2495{ store_parm_decls (); ;
2496    break;}
2497case 191:
2498#line 1081 "c-parse.y"
2499{ finish_function (1);
2500                  pop_c_function_context (); ;
2501    break;}
2502case 192:
2503#line 1087 "c-parse.y"
2504{ push_c_function_context ();
2505                  if (! start_function (current_declspecs, yyvsp[0].ttype,
2506                                        prefix_attributes, NULL_TREE, 1))
2507                    {
2508                      pop_c_function_context ();
2509                      YYERROR1;
2510                    }
2511                  reinit_parse_for_function (); ;
2512    break;}
2513case 193:
2514#line 1096 "c-parse.y"
2515{ store_parm_decls (); ;
2516    break;}
2517case 194:
2518#line 1104 "c-parse.y"
2519{ finish_function (1);
2520                  pop_c_function_context (); ;
2521    break;}
2522case 197:
2523#line 1120 "c-parse.y"
2524{ yyval.ttype = yyvsp[-1].ttype; ;
2525    break;}
2526case 198:
2527#line 1122 "c-parse.y"
2528{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2529    break;}
2530case 199:
2531#line 1127 "c-parse.y"
2532{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2533    break;}
2534case 200:
2535#line 1129 "c-parse.y"
2536{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2537    break;}
2538case 201:
2539#line 1131 "c-parse.y"
2540{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2541    break;}
2542case 202:
2543#line 1133 "c-parse.y"
2544{ yyval.ttype = yyvsp[0].ttype; ;
2545    break;}
2546case 204:
2547#line 1144 "c-parse.y"
2548{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2549    break;}
2550case 205:
2551#line 1149 "c-parse.y"
2552{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2553    break;}
2554case 206:
2555#line 1151 "c-parse.y"
2556{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2557    break;}
2558case 207:
2559#line 1153 "c-parse.y"
2560{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2561    break;}
2562case 208:
2563#line 1155 "c-parse.y"
2564{ yyval.ttype = yyvsp[0].ttype; ;
2565    break;}
2566case 210:
2567#line 1164 "c-parse.y"
2568{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2569    break;}
2570case 211:
2571#line 1169 "c-parse.y"
2572{ yyval.ttype = yyvsp[-1].ttype; ;
2573    break;}
2574case 212:
2575#line 1171 "c-parse.y"
2576{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2577    break;}
2578case 213:
2579#line 1173 "c-parse.y"
2580{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2581    break;}
2582case 214:
2583#line 1175 "c-parse.y"
2584{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2585    break;}
2586case 215:
2587#line 1177 "c-parse.y"
2588{ yyval.ttype = yyvsp[0].ttype; ;
2589    break;}
2590case 217:
2591#line 1183 "c-parse.y"
2592{ yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
2593                  /* Start scope of tag before parsing components.  */
2594                ;
2595    break;}
2596case 218:
2597#line 1187 "c-parse.y"
2598{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2599    break;}
2600case 219:
2601#line 1189 "c-parse.y"
2602{ yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
2603                                      yyvsp[-2].ttype, yyvsp[0].ttype);
2604                ;
2605    break;}
2606case 220:
2607#line 1193 "c-parse.y"
2608{ yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
2609    break;}
2610case 221:
2611#line 1195 "c-parse.y"
2612{ yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
2613    break;}
2614case 222:
2615#line 1197 "c-parse.y"
2616{ yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2617    break;}
2618case 223:
2619#line 1199 "c-parse.y"
2620{ yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
2621                                      yyvsp[-2].ttype, yyvsp[0].ttype);
2622                ;
2623    break;}
2624case 224:
2625#line 1203 "c-parse.y"
2626{ yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
2627    break;}
2628case 225:
2629#line 1205 "c-parse.y"
2630{ yyvsp[0].itype = suspend_momentary ();
2631                  yyval.ttype = start_enum (yyvsp[-1].ttype); ;
2632    break;}
2633case 226:
2634#line 1208 "c-parse.y"
2635{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2636                  resume_momentary (yyvsp[-5].itype); ;
2637    break;}
2638case 227:
2639#line 1211 "c-parse.y"
2640{ yyvsp[0].itype = suspend_momentary ();
2641                  yyval.ttype = start_enum (NULL_TREE); ;
2642    break;}
2643case 228:
2644#line 1214 "c-parse.y"
2645{ yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype), yyvsp[0].ttype);
2646                  resume_momentary (yyvsp[-5].itype); ;
2647    break;}
2648case 229:
2649#line 1217 "c-parse.y"
2650{ yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
2651    break;}
2652case 233:
2653#line 1228 "c-parse.y"
2654{ if (pedantic) pedwarn ("comma at end of enumerator list"); ;
2655    break;}
2656case 234:
2657#line 1233 "c-parse.y"
2658{ yyval.ttype = yyvsp[0].ttype; ;
2659    break;}
2660case 235:
2661#line 1235 "c-parse.y"
2662{ yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2663                  pedwarn ("no semicolon at end of struct or union"); ;
2664    break;}
2665case 236:
2666#line 1240 "c-parse.y"
2667{ yyval.ttype = NULL_TREE; ;
2668    break;}
2669case 237:
2670#line 1242 "c-parse.y"
2671{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
2672    break;}
2673case 238:
2674#line 1244 "c-parse.y"
2675{ if (pedantic)
2676                    pedwarn ("extra semicolon in struct or union specified"); ;
2677    break;}
2678case 239:
2679#line 1259 "c-parse.y"
2680{ yyval.ttype = yyvsp[0].ttype;
2681                  current_declspecs = TREE_VALUE (declspec_stack);
2682                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2683                  declspec_stack = TREE_CHAIN (declspec_stack);
2684                  resume_momentary (yyvsp[-1].itype); ;
2685    break;}
2686case 240:
2687#line 1265 "c-parse.y"
2688{ if (pedantic)
2689                    pedwarn ("ANSI C forbids member declarations with no members");
2690                  shadow_tag(yyvsp[0].ttype);
2691                  yyval.ttype = NULL_TREE; ;
2692    break;}
2693case 241:
2694#line 1270 "c-parse.y"
2695{ yyval.ttype = yyvsp[0].ttype;
2696                  current_declspecs = TREE_VALUE (declspec_stack);
2697                  prefix_attributes = TREE_PURPOSE (declspec_stack);
2698                  declspec_stack = TREE_CHAIN (declspec_stack);
2699                  resume_momentary (yyvsp[-1].itype); ;
2700    break;}
2701case 242:
2702#line 1276 "c-parse.y"
2703{ if (pedantic)
2704                    pedwarn ("ANSI C forbids member declarations with no members");
2705                  shadow_tag(yyvsp[0].ttype);
2706                  yyval.ttype = NULL_TREE; ;
2707    break;}
2708case 243:
2709#line 1281 "c-parse.y"
2710{ yyval.ttype = NULL_TREE; ;
2711    break;}
2712case 245:
2713#line 1287 "c-parse.y"
2714{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2715    break;}
2716case 246:
2717#line 1292 "c-parse.y"
2718{ yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
2719                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2720    break;}
2721case 247:
2722#line 1296 "c-parse.y"
2723{ yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
2724                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2725    break;}
2726case 248:
2727#line 1299 "c-parse.y"
2728{ yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
2729                  decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
2730    break;}
2731case 250:
2732#line 1311 "c-parse.y"
2733{ if (yyvsp[-2].ttype == error_mark_node)
2734                    yyval.ttype = yyvsp[-2].ttype;
2735                  else
2736                    yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
2737    break;}
2738case 251:
2739#line 1316 "c-parse.y"
2740{ yyval.ttype = error_mark_node; ;
2741    break;}
2742case 252:
2743#line 1322 "c-parse.y"
2744{ yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
2745    break;}
2746case 253:
2747#line 1324 "c-parse.y"
2748{ yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
2749    break;}
2750case 254:
2751#line 1329 "c-parse.y"
2752{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2753    break;}
2754case 255:
2755#line 1331 "c-parse.y"
2756{ yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2757    break;}
2758case 256:
2759#line 1336 "c-parse.y"
2760{ yyval.ttype = NULL_TREE; ;
2761    break;}
2762case 258:
2763#line 1342 "c-parse.y"
2764{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2765    break;}
2766case 259:
2767#line 1344 "c-parse.y"
2768{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2769    break;}
2770case 260:
2771#line 1349 "c-parse.y"
2772{ yyval.ttype = NULL_TREE; ;
2773    break;}
2774case 261:
2775#line 1351 "c-parse.y"
2776{ yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
2777    break;}
2778case 262:
2779#line 1356 "c-parse.y"
2780{ yyval.ttype = yyvsp[-1].ttype; ;
2781    break;}
2782case 263:
2783#line 1359 "c-parse.y"
2784{ yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2785    break;}
2786case 264:
2787#line 1361 "c-parse.y"
2788{ yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
2789    break;}
2790case 265:
2791#line 1363 "c-parse.y"
2792{ yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
2793    break;}
2794case 266:
2795#line 1365 "c-parse.y"
2796{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2797    break;}
2798case 267:
2799#line 1367 "c-parse.y"
2800{ yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
2801    break;}
2802case 268:
2803#line 1369 "c-parse.y"
2804{ yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
2805    break;}
2806case 269:
2807#line 1371 "c-parse.y"
2808{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
2809    break;}
2810case 270:
2811#line 1373 "c-parse.y"
2812{ yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
2813    break;}
2814case 271:
2815#line 1375 "c-parse.y"
2816{ yyval.ttype = yyvsp[0].ttype; ;
2817    break;}
2818case 272:
2819#line 1384 "c-parse.y"
2820{
2821                  if (pedantic && yyvsp[0].ends_in_label)
2822                    pedwarn ("ANSI C forbids label at end of compound statement");
2823                ;
2824    break;}
2825case 274:
2826#line 1393 "c-parse.y"
2827{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
2828    break;}
2829case 275:
2830#line 1395 "c-parse.y"
2831{ yyval.ends_in_label = 0; ;
2832    break;}
2833case 279:
2834#line 1407 "c-parse.y"
2835{ emit_line_note (input_filename, lineno);
2836                  pushlevel (0);
2837                  clear_last_expr ();
2838                  push_momentary ();
2839                  expand_start_bindings (0);
2840                ;
2841    break;}
2842case 281:
2843#line 1420 "c-parse.y"
2844{ if (pedantic)
2845                    pedwarn ("ANSI C forbids label declarations"); ;
2846    break;}
2847case 284:
2848#line 1431 "c-parse.y"
2849{ tree link;
2850                  for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
2851                    {
2852                      tree label = shadow_label (TREE_VALUE (link));
2853                      C_DECLARED_LABEL_FLAG (label) = 1;
2854                      declare_nonlocal_label (label);
2855                    }
2856                ;
2857    break;}
2858case 285:
2859#line 1445 "c-parse.y"
2860{;
2861    break;}
2862case 287:
2863#line 1450 "c-parse.y"
2864{ yyval.ttype = convert (void_type_node, integer_zero_node); ;
2865    break;}
2866case 288:
2867#line 1452 "c-parse.y"
2868{ emit_line_note (input_filename, lineno);
2869                  expand_end_bindings (getdecls (), 1, 0);
2870                  yyval.ttype = poplevel (1, 1, 0);
2871                  if (yychar == CONSTANT || yychar == STRING)
2872                    pop_momentary_nofree ();
2873                  else
2874                    pop_momentary (); ;
2875    break;}
2876case 289:
2877#line 1460 "c-parse.y"
2878{ emit_line_note (input_filename, lineno);
2879                  expand_end_bindings (getdecls (), kept_level_p (), 0);
2880                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
2881                  if (yychar == CONSTANT || yychar == STRING)
2882                    pop_momentary_nofree ();
2883                  else
2884                    pop_momentary (); ;
2885    break;}
2886case 290:
2887#line 1468 "c-parse.y"
2888{ emit_line_note (input_filename, lineno);
2889                  expand_end_bindings (getdecls (), kept_level_p (), 0);
2890                  yyval.ttype = poplevel (kept_level_p (), 0, 0);
2891                  if (yychar == CONSTANT || yychar == STRING)
2892                    pop_momentary_nofree ();
2893                  else
2894                    pop_momentary (); ;
2895    break;}
2896case 293:
2897#line 1488 "c-parse.y"
2898{ emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
2899                  expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0);
2900                  yyval.itype = stmt_count;
2901                  if_stmt_file = yyvsp[-5].filename;
2902                  if_stmt_line = yyvsp[-4].lineno;
2903                  position_after_white_space (); ;
2904    break;}
2905case 294:
2906#line 1501 "c-parse.y"
2907{ stmt_count++;
2908                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
2909                  /* See comment in `while' alternative, above.  */
2910                  emit_nop ();
2911                  expand_start_loop_continue_elsewhere (1);
2912                  position_after_white_space (); ;
2913    break;}
2914case 295:
2915#line 1508 "c-parse.y"
2916{ expand_loop_continue_here (); ;
2917    break;}
2918case 296:
2919#line 1512 "c-parse.y"
2920{ yyval.filename = input_filename; ;
2921    break;}
2922case 297:
2923#line 1516 "c-parse.y"
2924{ yyval.lineno = lineno; ;
2925    break;}
2926case 298:
2927#line 1521 "c-parse.y"
2928{ ;
2929    break;}
2930case 299:
2931#line 1526 "c-parse.y"
2932{ ;
2933    break;}
2934case 300:
2935#line 1531 "c-parse.y"
2936{ yyval.ends_in_label = yyvsp[0].ends_in_label; ;
2937    break;}
2938case 301:
2939#line 1536 "c-parse.y"
2940{ yyval.ends_in_label = 0; ;
2941    break;}
2942case 302:
2943#line 1538 "c-parse.y"
2944{ yyval.ends_in_label = 1; ;
2945    break;}
2946case 303:
2947#line 1544 "c-parse.y"
2948{ stmt_count++; ;
2949    break;}
2950case 305:
2951#line 1547 "c-parse.y"
2952{ stmt_count++;
2953                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
2954/* It appears that this should not be done--that a non-lvalue array
2955   shouldn't get an error if the value isn't used.
2956   Section 3.2.2.1 says that an array lvalue gets converted to a pointer
2957   if it appears as a top-level expression,
2958   but says nothing about non-lvalue arrays.  */
2959#if 0
2960                  /* Call default_conversion to get an error
2961                     on referring to a register array if pedantic.  */
2962                  if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
2963                      || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
2964                    yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
2965#endif
2966                  iterator_expand (yyvsp[-1].ttype);
2967                  clear_momentary (); ;
2968    break;}
2969case 306:
2970#line 1564 "c-parse.y"
2971{ expand_start_else ();
2972                  yyvsp[-1].itype = stmt_count;
2973                  position_after_white_space (); ;
2974    break;}
2975case 307:
2976#line 1568 "c-parse.y"
2977{ expand_end_cond ();
2978                  if (extra_warnings && stmt_count == yyvsp[-3].itype)
2979                    warning ("empty body in an else-statement"); ;
2980    break;}
2981case 308:
2982#line 1572 "c-parse.y"
2983{ expand_end_cond ();
2984                  /* This warning is here instead of in simple_if, because we
2985                     do not want a warning if an empty if is followed by an
2986                     else statement.  Increment stmt_count so we don't
2987                     give a second error if this is a nested `if'.  */
2988                  if (extra_warnings && stmt_count++ == yyvsp[0].itype)
2989                    warning_with_file_and_line (if_stmt_file, if_stmt_line,
2990                                                "empty body in an if-statement"); ;
2991    break;}
2992case 309:
2993#line 1584 "c-parse.y"
2994{ expand_end_cond (); ;
2995    break;}
2996case 310:
2997#line 1586 "c-parse.y"
2998{ stmt_count++;
2999                  emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3000                  /* The emit_nop used to come before emit_line_note,
3001                     but that made the nop seem like part of the preceding line.
3002                     And that was confusing when the preceding line was
3003                     inside of an if statement and was not really executed.
3004                     I think it ought to work to put the nop after the line number.
3005                     We will see.  --rms, July 15, 1991.  */
3006                  emit_nop (); ;
3007    break;}
3008case 311:
3009#line 1596 "c-parse.y"
3010{ /* Don't start the loop till we have succeeded
3011                     in parsing the end test.  This is to make sure
3012                     that we end every loop we start.  */
3013                  expand_start_loop (1);
3014                  emit_line_note (input_filename, lineno);
3015                  expand_exit_loop_if_false (NULL_PTR,
3016                                             truthvalue_conversion (yyvsp[-1].ttype));
3017                  position_after_white_space (); ;
3018    break;}
3019case 312:
3020#line 1605 "c-parse.y"
3021{ expand_end_loop (); ;
3022    break;}
3023case 313:
3024#line 1608 "c-parse.y"
3025{ emit_line_note (input_filename, lineno);
3026                  expand_exit_loop_if_false (NULL_PTR,
3027                                             truthvalue_conversion (yyvsp[-2].ttype));
3028                  expand_end_loop ();
3029                  clear_momentary (); ;
3030    break;}
3031case 314:
3032#line 1615 "c-parse.y"
3033{ expand_end_loop ();
3034                  clear_momentary (); ;
3035    break;}
3036case 315:
3037#line 1619 "c-parse.y"
3038{ stmt_count++;
3039                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3040                  /* See comment in `while' alternative, above.  */
3041                  emit_nop ();
3042                  if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3043                  /* Next step is to call expand_start_loop_continue_elsewhere,
3044                     but wait till after we parse the entire for (...).
3045                     Otherwise, invalid input might cause us to call that
3046                     fn without calling expand_end_loop.  */
3047                ;
3048    break;}
3049case 316:
3050#line 1631 "c-parse.y"
3051{ yyvsp[0].lineno = lineno;
3052                  yyval.filename = input_filename; ;
3053    break;}
3054case 317:
3055#line 1634 "c-parse.y"
3056{
3057                  /* Start the loop.  Doing this after parsing
3058                     all the expressions ensures we will end the loop.  */
3059                  expand_start_loop_continue_elsewhere (1);
3060                  /* Emit the end-test, with a line number.  */
3061                  emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3062                  if (yyvsp[-4].ttype)
3063                    expand_exit_loop_if_false (NULL_PTR,
3064                                               truthvalue_conversion (yyvsp[-4].ttype));
3065                  /* Don't let the tree nodes for $9 be discarded by
3066                     clear_momentary during the parsing of the next stmt.  */
3067                  push_momentary ();
3068                  yyvsp[-3].lineno = lineno;
3069                  yyvsp[-2].filename = input_filename;
3070                  position_after_white_space (); ;
3071    break;}
3072case 318:
3073#line 1650 "c-parse.y"
3074{ /* Emit the increment expression, with a line number.  */
3075                  emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
3076                  expand_loop_continue_here ();
3077                  if (yyvsp[-3].ttype)
3078                    c_expand_expr_stmt (yyvsp[-3].ttype);
3079                  if (yychar == CONSTANT || yychar == STRING)
3080                    pop_momentary_nofree ();
3081                  else
3082                    pop_momentary ();
3083                  expand_end_loop (); ;
3084    break;}
3085case 319:
3086#line 1661 "c-parse.y"
3087{ stmt_count++;
3088                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3089                  c_expand_start_case (yyvsp[-1].ttype);
3090                  /* Don't let the tree nodes for $3 be discarded by
3091                     clear_momentary during the parsing of the next stmt.  */
3092                  push_momentary ();
3093                  position_after_white_space (); ;
3094    break;}
3095case 320:
3096#line 1669 "c-parse.y"
3097{ expand_end_case (yyvsp[-3].ttype);
3098                  if (yychar == CONSTANT || yychar == STRING)
3099                    pop_momentary_nofree ();
3100                  else
3101                    pop_momentary (); ;
3102    break;}
3103case 321:
3104#line 1675 "c-parse.y"
3105{ stmt_count++;
3106                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3107                  if ( ! expand_exit_something ())
3108                    error ("break statement not within loop or switch"); ;
3109    break;}
3110case 322:
3111#line 1680 "c-parse.y"
3112{ stmt_count++;
3113                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3114                  if (! expand_continue_loop (NULL_PTR))
3115                    error ("continue statement not within a loop"); ;
3116    break;}
3117case 323:
3118#line 1685 "c-parse.y"
3119{ stmt_count++;
3120                  emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3121                  c_expand_return (NULL_TREE); ;
3122    break;}
3123case 324:
3124#line 1689 "c-parse.y"
3125{ stmt_count++;
3126                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3127                  c_expand_return (yyvsp[-1].ttype); ;
3128    break;}
3129case 325:
3130#line 1693 "c-parse.y"
3131{ stmt_count++;
3132                  emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
3133                  STRIP_NOPS (yyvsp[-2].ttype);
3134                  if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
3135                       && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
3136                      || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
3137                    expand_asm (yyvsp[-2].ttype);
3138                  else
3139                    error ("argument of `asm' is not a constant string"); ;
3140    break;}
3141case 326:
3142#line 1704 "c-parse.y"
3143{ stmt_count++;
3144                  emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
3145                  c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
3146                                         yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
3147                                         input_filename, lineno); ;
3148    break;}
3149case 327:
3150#line 1711 "c-parse.y"
3151{ stmt_count++;
3152                  emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
3153                  c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
3154                                         yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
3155                                         input_filename, lineno); ;
3156    break;}
3157case 328:
3158#line 1719 "c-parse.y"
3159{ stmt_count++;
3160                  emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
3161                  c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
3162                                         yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
3163                                         input_filename, lineno); ;
3164    break;}
3165case 329:
3166#line 1725 "c-parse.y"
3167{ tree decl;
3168                  stmt_count++;
3169                  emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
3170                  decl = lookup_label (yyvsp[-1].ttype);
3171                  if (decl != 0)
3172                    {
3173                      TREE_USED (decl) = 1;
3174                      expand_goto (decl);
3175                    }
3176                ;
3177    break;}
3178case 330:
3179#line 1736 "c-parse.y"
3180{ stmt_count++;
3181                  emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3182                  expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
3183    break;}
3184case 333:
3185#line 1749 "c-parse.y"
3186{
3187            /* The value returned by this action is  */
3188            /*      1 if everything is OK */
3189            /*      0 in case of error or already bound iterator */
3190
3191            yyval.itype = 0;
3192            if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
3193              error ("invalid `for (ITERATOR)' syntax");
3194            else if (! ITERATOR_P (yyvsp[-1].ttype))
3195              error ("`%s' is not an iterator",
3196                     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3197            else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
3198              error ("`for (%s)' inside expansion of same iterator",
3199                     IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
3200            else
3201              {
3202                yyval.itype = 1;
3203                iterator_for_loop_start (yyvsp[-1].ttype);
3204              }
3205          ;
3206    break;}
3207case 334:
3208#line 1770 "c-parse.y"
3209{
3210            if (yyvsp[-1].itype)
3211              iterator_for_loop_end (yyvsp[-3].ttype);
3212          ;
3213    break;}
3214case 335:
3215#line 1805 "c-parse.y"
3216{ register tree value = check_case_value (yyvsp[-1].ttype);
3217                  register tree label
3218                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3219
3220                  stmt_count++;
3221
3222                  if (value != error_mark_node)
3223                    {
3224                      tree duplicate;
3225                      int success = pushcase (value, convert_and_check,
3226                                              label, &duplicate);
3227                      if (success == 1)
3228                        error ("case label not within a switch statement");
3229                      else if (success == 2)
3230                        {
3231                          error ("duplicate case value");
3232                          error_with_decl (duplicate, "this is the first entry for that value");
3233                        }
3234                      else if (success == 3)
3235                        warning ("case value out of range");
3236                      else if (success == 5)
3237                        error ("case label within scope of cleanup or variable array");
3238                    }
3239                  position_after_white_space (); ;
3240    break;}
3241case 336:
3242#line 1830 "c-parse.y"
3243{ register tree value1 = check_case_value (yyvsp[-3].ttype);
3244                  register tree value2 = check_case_value (yyvsp[-1].ttype);
3245                  register tree label
3246                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3247
3248                  stmt_count++;
3249
3250                  if (value1 != error_mark_node && value2 != error_mark_node)
3251                    {
3252                      tree duplicate;
3253                      int success = pushcase_range (value1, value2,
3254                                                    convert_and_check, label,
3255                                                    &duplicate);
3256                      if (success == 1)
3257                        error ("case label not within a switch statement");
3258                      else if (success == 2)
3259                        {
3260                          error ("duplicate case value");
3261                          error_with_decl (duplicate, "this is the first entry for that value");
3262                        }
3263                      else if (success == 3)
3264                        warning ("case value out of range");
3265                      else if (success == 4)
3266                        warning ("empty case range");
3267                      else if (success == 5)
3268                        error ("case label within scope of cleanup or variable array");
3269                    }
3270                  position_after_white_space (); ;
3271    break;}
3272case 337:
3273#line 1859 "c-parse.y"
3274{
3275                  tree duplicate;
3276                  register tree label
3277                    = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
3278                  int success = pushcase (NULL_TREE, 0, label, &duplicate);
3279                  stmt_count++;
3280                  if (success == 1)
3281                    error ("default label not within a switch statement");
3282                  else if (success == 2)
3283                    {
3284                      error ("multiple default labels in one switch");
3285                      error_with_decl (duplicate, "this is the first default label");
3286                    }
3287                  position_after_white_space (); ;
3288    break;}
3289case 338:
3290#line 1874 "c-parse.y"
3291{ tree label = define_label (input_filename, lineno, yyvsp[-1].ttype);
3292                  stmt_count++;
3293                  emit_nop ();
3294                  if (label)
3295                    expand_label (label);
3296                  position_after_white_space (); ;
3297    break;}
3298case 339:
3299#line 1886 "c-parse.y"
3300{ emit_line_note (input_filename, lineno);
3301                  yyval.ttype = NULL_TREE; ;
3302    break;}
3303case 340:
3304#line 1889 "c-parse.y"
3305{ emit_line_note (input_filename, lineno); ;
3306    break;}
3307case 341:
3308#line 1894 "c-parse.y"
3309{ yyval.ttype = NULL_TREE; ;
3310    break;}
3311case 343:
3312#line 1901 "c-parse.y"
3313{ yyval.ttype = NULL_TREE; ;
3314    break;}
3315case 346:
3316#line 1908 "c-parse.y"
3317{ yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3318    break;}
3319case 347:
3320#line 1913 "c-parse.y"
3321{ yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3322    break;}
3323case 348:
3324#line 1918 "c-parse.y"
3325{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
3326    break;}
3327case 349:
3328#line 1920 "c-parse.y"
3329{ yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
3330    break;}
3331case 350:
3332#line 1926 "c-parse.y"
3333{ pushlevel (0);
3334                  clear_parm_order ();
3335                  declare_parm_level (0); ;
3336    break;}
3337case 351:
3338#line 1930 "c-parse.y"
3339{ yyval.ttype = yyvsp[0].ttype;
3340                  parmlist_tags_warning ();
3341                  poplevel (0, 0, 0); ;
3342    break;}
3343case 353:
3344#line 1938 "c-parse.y"
3345{ tree parm;
3346                  if (pedantic)
3347                    pedwarn ("ANSI C forbids forward parameter declarations");
3348                  /* Mark the forward decls as such.  */
3349                  for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
3350                    TREE_ASM_WRITTEN (parm) = 1;
3351                  clear_parm_order (); ;
3352    break;}
3353case 354:
3354#line 1946 "c-parse.y"
3355{ yyval.ttype = yyvsp[0].ttype; ;
3356    break;}
3357case 355:
3358#line 1948 "c-parse.y"
3359{ yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
3360    break;}
3361case 356:
3362#line 1954 "c-parse.y"
3363{ yyval.ttype = get_parm_info (0); ;
3364    break;}
3365case 357:
3366#line 1956 "c-parse.y"
3367{ yyval.ttype = get_parm_info (0);
3368                  /* Gcc used to allow this as an extension.  However, it does
3369                     not work for all targets, and thus has been disabled.
3370                     Also, since func (...) and func () are indistinguishable,
3371                     it caused problems with the code in expand_builtin which
3372                     tries to verify that BUILT_IN_NEXT_ARG is being used
3373                     correctly.  */
3374                  error ("ANSI C requires a named argument before `...'");
3375                ;
3376    break;}
3377case 358:
3378#line 1966 "c-parse.y"
3379{ yyval.ttype = get_parm_info (1); ;
3380    break;}
3381case 359:
3382#line 1968 "c-parse.y"
3383{ yyval.ttype = get_parm_info (0); ;
3384    break;}
3385case 360:
3386#line 1973 "c-parse.y"
3387{ push_parm_decl (yyvsp[0].ttype); ;
3388    break;}
3389case 361:
3390#line 1975 "c-parse.y"
3391{ push_parm_decl (yyvsp[0].ttype); ;
3392    break;}
3393case 362:
3394#line 1982 "c-parse.y"
3395{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3396                                                         yyvsp[-1].ttype),
3397                                        build_tree_list (prefix_attributes,
3398                                                         yyvsp[0].ttype));
3399                  current_declspecs = TREE_VALUE (declspec_stack);
3400                  prefix_attributes = TREE_PURPOSE (declspec_stack);
3401                  declspec_stack = TREE_CHAIN (declspec_stack);
3402                  resume_momentary (yyvsp[-2].itype); ;
3403    break;}
3404case 363:
3405#line 1991 "c-parse.y"
3406{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3407                                                         yyvsp[-1].ttype),
3408                                        build_tree_list (prefix_attributes,
3409                                                         yyvsp[0].ttype));
3410                  current_declspecs = TREE_VALUE (declspec_stack);
3411                  prefix_attributes = TREE_PURPOSE (declspec_stack);
3412                  declspec_stack = TREE_CHAIN (declspec_stack);
3413                  resume_momentary (yyvsp[-2].itype); ;
3414    break;}
3415case 364:
3416#line 2000 "c-parse.y"
3417{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3418                                                         yyvsp[-1].ttype),
3419                                        build_tree_list (prefix_attributes,
3420                                                         yyvsp[0].ttype));
3421                  current_declspecs = TREE_VALUE (declspec_stack);
3422                  prefix_attributes = TREE_PURPOSE (declspec_stack);
3423                  declspec_stack = TREE_CHAIN (declspec_stack);
3424                  resume_momentary (yyvsp[-2].itype); ;
3425    break;}
3426case 365:
3427#line 2009 "c-parse.y"
3428{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3429                                                         yyvsp[-1].ttype),
3430                                        build_tree_list (prefix_attributes,
3431                                                         yyvsp[0].ttype));
3432                  current_declspecs = TREE_VALUE (declspec_stack);
3433                  prefix_attributes = TREE_PURPOSE (declspec_stack);
3434                  declspec_stack = TREE_CHAIN (declspec_stack);
3435                  resume_momentary (yyvsp[-2].itype);  ;
3436    break;}
3437case 366:
3438#line 2019 "c-parse.y"
3439{ yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
3440                                                         yyvsp[-1].ttype),
3441                                        build_tree_list (prefix_attributes,
3442                                                         yyvsp[0].ttype));
3443                  current_declspecs = TREE_VALUE (declspec_stack);
3444                  prefix_attributes = TREE_PURPOSE (declspec_stack);
3445                  declspec_stack = TREE_CHAIN (declspec_stack);
3446                  resume_momentary (yyvsp[-2].itype);  ;
3447    break;}
3448case 367:
3449#line 2033 "c-parse.y"
3450{ pushlevel (0);
3451                  clear_parm_order ();
3452                  declare_parm_level (1); ;
3453    break;}
3454case 368:
3455#line 2037 "c-parse.y"
3456{ yyval.ttype = yyvsp[0].ttype;
3457                  parmlist_tags_warning ();
3458                  poplevel (0, 0, 0); ;
3459    break;}
3460case 370:
3461#line 2045 "c-parse.y"
3462{ tree t;
3463                  for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
3464                    if (TREE_VALUE (t) == NULL_TREE)
3465                      error ("`...' in old-style identifier list");
3466                  yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
3467    break;}
3468case 371:
3469#line 2055 "c-parse.y"
3470{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3471    break;}
3472case 372:
3473#line 2057 "c-parse.y"
3474{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3475    break;}
3476case 373:
3477#line 2063 "c-parse.y"
3478{ yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
3479    break;}
3480case 374:
3481#line 2065 "c-parse.y"
3482{ yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
3483    break;}
3484}
3485   /* the action file gets copied in in place of this dollarsign */
3486#line 480 "/usr/local/lib/bison.simple"
3487
3488  yyvsp -= yylen;
3489  yyssp -= yylen;
3490#ifdef YYLSP_NEEDED
3491  yylsp -= yylen;
3492#endif
3493
3494#if YYDEBUG != 0
3495  if (yydebug)
3496    {
3497      short *ssp1 = yyss - 1;
3498      fprintf (stderr, "state stack now");
3499      while (ssp1 != yyssp)
3500        fprintf (stderr, " %d", *++ssp1);
3501      fprintf (stderr, "\n");
3502    }
3503#endif
3504
3505  *++yyvsp = yyval;
3506
3507#ifdef YYLSP_NEEDED
3508  yylsp++;
3509  if (yylen == 0)
3510    {
3511      yylsp->first_line = yylloc.first_line;
3512      yylsp->first_column = yylloc.first_column;
3513      yylsp->last_line = (yylsp-1)->last_line;
3514      yylsp->last_column = (yylsp-1)->last_column;
3515      yylsp->text = 0;
3516    }
3517  else
3518    {
3519      yylsp->last_line = (yylsp+yylen-1)->last_line;
3520      yylsp->last_column = (yylsp+yylen-1)->last_column;
3521    }
3522#endif
3523
3524  /* Now "shift" the result of the reduction.
3525     Determine what state that goes to,
3526     based on the state we popped back to
3527     and the rule number reduced by.  */
3528
3529  yyn = yyr1[yyn];
3530
3531  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3532  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3533    yystate = yytable[yystate];
3534  else
3535    yystate = yydefgoto[yyn - YYNTBASE];
3536
3537  goto yynewstate;
3538
3539yyerrlab:   /* here on detecting error */
3540
3541  if (! yyerrstatus)
3542    /* If not already recovering from an error, report this error.  */
3543    {
3544      ++yynerrs;
3545
3546#ifdef YYERROR_VERBOSE
3547      yyn = yypact[yystate];
3548
3549      if (yyn > YYFLAG && yyn < YYLAST)
3550        {
3551          int size = 0;
3552          char *msg;
3553          int x, count;
3554
3555          count = 0;
3556          /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
3557          for (x = (yyn < 0 ? -yyn : 0);
3558               x < (sizeof(yytname) / sizeof(char *)); x++)
3559            if (yycheck[x + yyn] == x)
3560              size += strlen(yytname[x]) + 15, count++;
3561          msg = (char *) malloc(size + 15);
3562          if (msg != 0)
3563            {
3564              strcpy(msg, "parse error");
3565
3566              if (count < 5)
3567                {
3568                  count = 0;
3569                  for (x = (yyn < 0 ? -yyn : 0);
3570                       x < (sizeof(yytname) / sizeof(char *)); x++)
3571                    if (yycheck[x + yyn] == x)
3572                      {
3573                        strcat(msg, count == 0 ? ", expecting `" : " or `");
3574                        strcat(msg, yytname[x]);
3575                        strcat(msg, "'");
3576                        count++;
3577                      }
3578                }
3579              yyerror(msg);
3580              free(msg);
3581            }
3582          else
3583            yyerror ("parse error; also virtual memory exceeded");
3584        }
3585      else
3586#endif /* YYERROR_VERBOSE */
3587        yyerror("parse error");
3588    }
3589
3590  goto yyerrlab1;
3591yyerrlab1:   /* here on error raised explicitly by an action */
3592
3593  if (yyerrstatus == 3)
3594    {
3595      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
3596
3597      /* return failure if at end of input */
3598      if (yychar == YYEOF)
3599        YYABORT;
3600
3601#if YYDEBUG != 0
3602      if (yydebug)
3603        fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3604#endif
3605
3606      yychar = YYEMPTY;
3607    }
3608
3609  /* Else will try to reuse lookahead token
3610     after shifting the error token.  */
3611
3612  yyerrstatus = 3;              /* Each real token shifted decrements this */
3613
3614  goto yyerrhandle;
3615
3616yyerrdefault:  /* current state does not do anything special for the error token. */
3617
3618#if 0
3619  /* This is wrong; only states that explicitly want error tokens
3620     should shift them.  */
3621  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
3622  if (yyn) goto yydefault;
3623#endif
3624
3625yyerrpop:   /* pop the current state because it cannot handle the error token */
3626
3627  if (yyssp == yyss) YYABORT;
3628  yyvsp--;
3629  yystate = *--yyssp;
3630#ifdef YYLSP_NEEDED
3631  yylsp--;
3632#endif
3633
3634#if YYDEBUG != 0
3635  if (yydebug)
3636    {
3637      short *ssp1 = yyss - 1;
3638      fprintf (stderr, "Error: state stack now");
3639      while (ssp1 != yyssp)
3640        fprintf (stderr, " %d", *++ssp1);
3641      fprintf (stderr, "\n");
3642    }
3643#endif
3644
3645yyerrhandle:
3646
3647  yyn = yypact[yystate];
3648  if (yyn == YYFLAG)
3649    goto yyerrdefault;
3650
3651  yyn += YYTERROR;
3652  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3653    goto yyerrdefault;
3654
3655  yyn = yytable[yyn];
3656  if (yyn < 0)
3657    {
3658      if (yyn == YYFLAG)
3659        goto yyerrpop;
3660      yyn = -yyn;
3661      goto yyreduce;
3662    }
3663  else if (yyn == 0)
3664    goto yyerrpop;
3665
3666  if (yyn == YYFINAL)
3667    YYACCEPT;
3668
3669#if YYDEBUG != 0
3670  if (yydebug)
3671    fprintf(stderr, "Shifting error token, ");
3672#endif
3673
3674  *++yyvsp = yylval;
3675#ifdef YYLSP_NEEDED
3676  *++yylsp = yylloc;
3677#endif
3678
3679  yystate = yyn;
3680  goto yynewstate;
3681}
3682#line 2068 "c-parse.y"
3683
Note: See TracBrowser for help on using the repository browser.