OSDN Git Service

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