OSDN Git Service

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