OSDN Git Service

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