OSDN Git Service

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