OSDN Git Service

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