OSDN Git Service

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