OSDN Git Service

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