OSDN Git Service

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