OSDN Git Service

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