OSDN Git Service

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