OSDN Git Service

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