OSDN Git Service

* c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
[pf3gnuchains/gcc-fork.git] / gcc / objc / objc-parse.c
1
2 /*  A Bison parser, made from objc-parse.y
3     by GNU Bison version 1.28  */
4
5 #define YYBISON 1  /* Identify Bison output.  */
6
7 #define IDENTIFIER      257
8 #define TYPENAME        258
9 #define SCSPEC  259
10 #define TYPESPEC        260
11 #define TYPE_QUAL       261
12 #define CONSTANT        262
13 #define STRING  263
14 #define ELLIPSIS        264
15 #define SIZEOF  265
16 #define ENUM    266
17 #define STRUCT  267
18 #define UNION   268
19 #define IF      269
20 #define ELSE    270
21 #define WHILE   271
22 #define DO      272
23 #define FOR     273
24 #define SWITCH  274
25 #define CASE    275
26 #define DEFAULT 276
27 #define BREAK   277
28 #define CONTINUE        278
29 #define RETURN  279
30 #define GOTO    280
31 #define ASM_KEYWORD     281
32 #define TYPEOF  282
33 #define ALIGNOF 283
34 #define ATTRIBUTE       284
35 #define EXTENSION       285
36 #define LABEL   286
37 #define REALPART        287
38 #define IMAGPART        288
39 #define VA_ARG  289
40 #define END_OF_LINE     290
41 #define ASSIGN  291
42 #define OROR    292
43 #define ANDAND  293
44 #define EQCOMPARE       294
45 #define ARITHCOMPARE    295
46 #define LSHIFT  296
47 #define RSHIFT  297
48 #define UNARY   298
49 #define PLUSPLUS        299
50 #define MINUSMINUS      300
51 #define HYPERUNARY      301
52 #define POINTSAT        302
53 #define INTERFACE       303
54 #define IMPLEMENTATION  304
55 #define END     305
56 #define SELECTOR        306
57 #define DEFS    307
58 #define ENCODE  308
59 #define CLASSNAME       309
60 #define PUBLIC  310
61 #define PRIVATE 311
62 #define PROTECTED       312
63 #define PROTOCOL        313
64 #define OBJECTNAME      314
65 #define CLASS   315
66 #define ALIAS   316
67 #define OBJC_STRING     317
68
69 #line 33 "objc-parse.y"
70
71 #include "config.h"
72 #include "system.h"
73 #include <setjmp.h>
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 #include "toplev.h"
81 #include "ggc.h"
82   
83 #ifdef MULTIBYTE_CHARS
84 #include <locale.h>
85 #endif
86
87 #include "objc-act.h"
88
89 /* Since parsers are distinct for each language, put the language string
90    definition here.  */
91 const char * const language_string = "GNU Obj-C";
92
93 /* Like YYERROR but do call yyerror.  */
94 #define YYERROR1 { yyerror ("syntax error"); YYERROR; }
95
96 /* Cause the `yydebug' variable to be defined.  */
97 #define YYDEBUG 1
98
99 #line 65 "objc-parse.y"
100 typedef union {long itype; tree ttype; enum tree_code code;
101         char *filename; int lineno; int ends_in_label; } YYSTYPE;
102 #line 196 "objc-parse.y"
103
104 /* Number of statements (loosely speaking) and compound statements 
105    seen so far.  */
106 static int stmt_count;
107 static int compstmt_count;
108   
109 /* Input file and line number of the end of the body of last simple_if;
110    used by the stmt-rule immediately after simple_if returns.  */
111 static char *if_stmt_file;
112 static int if_stmt_line;
113
114 /* List of types and structure classes of the current declaration.  */
115 static tree current_declspecs = NULL_TREE;
116 static tree prefix_attributes = NULL_TREE;
117
118 /* Stack of saved values of current_declspecs and prefix_attributes.  */
119 static tree declspec_stack;
120
121 /* 1 if we explained undeclared var errors.  */
122 static int undeclared_variable_notice;
123
124 /* For __extension__, save/restore the warning flags which are
125    controlled by __extension__.  */
126 #define SAVE_WARN_FLAGS()       \
127         build_int_2 (pedantic | (warn_pointer_arith << 1), 0)
128 #define RESTORE_WARN_FLAGS(tval) \
129   do {                                     \
130     int val = TREE_INT_CST_LOW (tval);     \
131     pedantic = val & 1;                    \
132     warn_pointer_arith = (val >> 1) & 1;   \
133   } while (0)
134
135 /* Objective-C specific information */
136
137 tree objc_interface_context;
138 tree objc_implementation_context;
139 tree objc_method_context;
140 tree objc_ivar_chain;
141 tree objc_ivar_context;
142 enum tree_code objc_inherit_code;
143 int objc_receiver_context;
144 int objc_public_flag;
145
146
147 /* Tell yyparse how to print a token's value, if yydebug is set.  */
148
149 #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL)
150 extern void yyprint                     PARAMS ((FILE *, int, YYSTYPE));
151
152 /* Add GC roots for variables local to this file.  */
153 void
154 c_parse_init ()
155 {
156   ggc_add_tree_root (&declspec_stack, 1);
157   ggc_add_tree_root (&current_declspecs, 1);
158   ggc_add_tree_root (&prefix_attributes, 1);
159 }
160
161 #include <stdio.h>
162
163 #ifndef __cplusplus
164 #ifndef __STDC__
165 #define const
166 #endif
167 #endif
168
169
170
171 #define YYFINAL         969
172 #define YYFLAG          -32768
173 #define YYNTBASE        86
174
175 #define YYTRANSLATE(x) ((unsigned)(x) <= 317 ? yytranslate[x] : 314)
176
177 static const char yytranslate[] = {     0,
178      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
179      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
180      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
181      2,     2,    82,     2,     2,     2,    54,    45,     2,    61,
182     78,    52,    50,    83,    51,    60,    53,     2,     2,     2,
183      2,     2,     2,     2,     2,     2,     2,    40,    79,     2,
184     38,     2,    39,     2,     2,     2,     2,     2,     2,     2,
185      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
186      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
187     62,     2,    85,    44,     2,     2,     2,     2,     2,     2,
188      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
189      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
190      2,     2,    84,    43,    80,    81,     2,     2,     2,     2,
191      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
192      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
193      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
194      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
195      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
196      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
197      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
198      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
199      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
200      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
201      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
202      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
203      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
204      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
205     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
206     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
207     37,    41,    42,    46,    47,    48,    49,    55,    56,    57,
208     58,    59,    63,    64,    65,    66,    67,    68,    69,    70,
209     71,    72,    73,    74,    75,    76,    77
210 };
211
212 #if YYDEBUG != 0
213 static const short yyprhs[] = {     0,
214      0,     1,     3,     4,     7,     8,    12,    14,    16,    18,
215     24,    27,    31,    36,    41,    44,    47,    50,    53,    55,
216     56,    57,    65,    70,    71,    72,    80,    85,    86,    87,
217     94,    98,   100,   102,   104,   106,   108,   110,   112,   114,
218    116,   118,   120,   122,   123,   125,   127,   131,   133,   136,
219    139,   142,   145,   148,   153,   156,   161,   164,   167,   174,
220    176,   178,   180,   185,   186,   194,   196,   200,   204,   208,
221    212,   216,   220,   224,   228,   232,   236,   240,   244,   245,
222    250,   251,   256,   257,   258,   266,   267,   273,   277,   281,
223    283,   285,   287,   291,   295,   299,   303,   308,   313,   317,
224    321,   324,   327,   329,   331,   333,   335,   337,   339,   342,
225    344,   347,   348,   350,   353,   357,   359,   361,   364,   367,
226    372,   377,   380,   383,   387,   389,   391,   394,   397,   398,
227    399,   404,   409,   413,   417,   420,   423,   426,   429,   433,
228    434,   437,   440,   443,   446,   450,   451,   454,   457,   459,
229    461,   464,   467,   469,   471,   474,   477,   480,   484,   485,
230    488,   490,   492,   494,   497,   500,   502,   507,   512,   514,
231    516,   518,   520,   524,   526,   530,   531,   536,   537,   544,
232    548,   549,   556,   560,   561,   563,   565,   568,   575,   577,
233    581,   582,   584,   589,   596,   601,   603,   605,   607,   609,
234    611,   612,   617,   619,   620,   623,   625,   629,   633,   636,
235    637,   642,   644,   645,   650,   652,   654,   656,   659,   662,
236    663,   664,   670,   671,   672,   678,   680,   682,   686,   690,
237    695,   699,   703,   707,   709,   711,   715,   720,   724,   728,
238    732,   734,   738,   742,   746,   751,   755,   759,   761,   763,
239    766,   768,   771,   773,   776,   777,   785,   791,   794,   795,
240    803,   809,   812,   813,   822,   823,   831,   834,   835,   837,
241    838,   840,   842,   845,   846,   850,   853,   858,   862,   868,
242    872,   874,   876,   879,   881,   885,   890,   897,   903,   905,
243    909,   911,   913,   917,   920,   923,   924,   926,   928,   931,
244    932,   935,   939,   943,   946,   950,   955,   959,   962,   966,
245    969,   973,   975,   977,   980,   983,   984,   986,   989,   990,
246    991,   993,   995,   998,  1002,  1004,  1007,  1009,  1011,  1017,
247   1022,  1027,  1030,  1033,  1036,  1039,  1044,  1045,  1050,  1051,
248   1052,  1056,  1061,  1065,  1067,  1069,  1071,  1073,  1076,  1077,
249   1082,  1084,  1088,  1089,  1090,  1098,  1104,  1107,  1108,  1109,
250   1110,  1123,  1124,  1131,  1134,  1137,  1140,  1144,  1151,  1160,
251   1171,  1184,  1188,  1193,  1195,  1197,  1198,  1205,  1209,  1215,
252   1218,  1222,  1223,  1225,  1226,  1228,  1229,  1231,  1233,  1237,
253   1242,  1244,  1248,  1249,  1252,  1255,  1256,  1261,  1264,  1265,
254   1267,  1269,  1273,  1275,  1279,  1284,  1289,  1294,  1299,  1304,
255   1305,  1308,  1310,  1313,  1315,  1319,  1321,  1325,  1327,  1329,
256   1331,  1333,  1335,  1337,  1339,  1341,  1345,  1349,  1354,  1355,
257   1356,  1367,  1368,  1375,  1376,  1377,  1390,  1391,  1400,  1401,
258   1408,  1411,  1412,  1421,  1426,  1427,  1437,  1443,  1444,  1451,
259   1452,  1454,  1458,  1462,  1464,  1466,  1468,  1470,  1471,  1475,
260   1478,  1482,  1486,  1488,  1489,  1491,  1495,  1497,  1501,  1504,
261   1505,  1506,  1507,  1515,  1516,  1517,  1518,  1526,  1527,  1528,
262   1531,  1533,  1535,  1538,  1539,  1543,  1545,  1547,  1548,  1549,
263   1555,  1556,  1557,  1563,  1568,  1570,  1576,  1579,  1580,  1583,
264   1584,  1586,  1588,  1590,  1593,  1596,  1601,  1604,  1607,  1609,
265   1613,  1616,  1619,  1622,  1623,  1626,  1627,  1631,  1633,  1635,
266   1638,  1640,  1642,  1644,  1646,  1648,  1650,  1652,  1654,  1656,
267   1658,  1660,  1662,  1664,  1666,  1668,  1670,  1672,  1674,  1676,
268   1678,  1680,  1682,  1684,  1686,  1688,  1695,  1699,  1705,  1708,
269   1710,  1712,  1714,  1717,  1719,  1723,  1726,  1728,  1730,  1731,
270   1732,  1739,  1741,  1743,  1745,  1748,  1751,  1753,  1758,  1763
271 };
272
273 static const short yyrhs[] = {    -1,
274     87,     0,     0,    88,    90,     0,     0,    87,    89,    90,
275      0,    92,     0,    91,     0,   245,     0,    27,    61,   101,
276     78,    79,     0,   244,    90,     0,   124,   138,    79,     0,
277    131,   124,   138,    79,     0,   127,   124,   137,    79,     0,
278    131,    79,     0,   127,    79,     0,     1,    79,     0,     1,
279     80,     0,    79,     0,     0,     0,   127,   124,   166,    93,
280    118,    94,   200,     0,   127,   124,   166,     1,     0,     0,
281      0,   131,   124,   169,    95,   118,    96,   200,     0,   131,
282    124,   169,     1,     0,     0,     0,   124,   169,    97,   118,
283     98,   200,     0,   124,   169,     1,     0,     3,     0,     4,
284      0,    74,     0,    69,     0,    45,     0,    51,     0,    50,
285      0,    56,     0,    57,     0,    81,     0,    82,     0,   103,
286      0,     0,   103,     0,   109,     0,   103,    83,   109,     0,
287    115,     0,    52,   107,     0,   244,   107,     0,   100,   107,
288      0,    42,    99,     0,   105,   104,     0,   105,    61,   187,
289     78,     0,   106,   104,     0,   106,    61,   187,    78,     0,
290     33,   107,     0,    34,   107,     0,    35,    61,   109,    83,
291    187,    78,     0,    11,     0,    29,     0,   104,     0,    61,
292    187,    78,   107,     0,     0,    61,   187,    78,    84,   108,
293    152,    80,     0,   107,     0,   109,    50,   109,     0,   109,
294     51,   109,     0,   109,    52,   109,     0,   109,    53,   109,
295      0,   109,    54,   109,     0,   109,    48,   109,     0,   109,
296     49,   109,     0,   109,    47,   109,     0,   109,    46,   109,
297      0,   109,    45,   109,     0,   109,    43,   109,     0,   109,
298     44,   109,     0,     0,   109,    42,   110,   109,     0,     0,
299    109,    41,   111,   109,     0,     0,     0,   109,    39,   112,
300    101,    40,   113,   109,     0,     0,   109,    39,   114,    40,
301    109,     0,   109,    38,   109,     0,   109,    37,   109,     0,
302      3,     0,     8,     0,   116,     0,    61,   101,    78,     0,
303     61,     1,    78,     0,   203,   202,    78,     0,   203,     1,
304     78,     0,   115,    61,   102,    78,     0,   115,    62,   101,
305     85,     0,   115,    60,    99,     0,   115,    59,    99,     0,
306    115,    56,     0,   115,    57,     0,   305,     0,   311,     0,
307    312,     0,   313,     0,   117,     0,     9,     0,   116,     9,
308      0,    77,     0,   117,    77,     0,     0,   120,     0,   120,
309     10,     0,   209,   210,   121,     0,   119,     0,   195,     0,
310    120,   119,     0,   119,   195,     0,   129,   124,   137,    79,
311      0,   132,   124,   138,    79,     0,   129,    79,     0,   132,
312     79,     0,   209,   210,   126,     0,   122,     0,   195,     0,
313    123,   122,     0,   122,   195,     0,     0,     0,   127,   124,
314    137,    79,     0,   131,   124,   138,    79,     0,   127,   124,
315    160,     0,   131,   124,   163,     0,   127,    79,     0,   131,
316     79,     0,   244,   126,     0,   135,   128,     0,   131,   135,
317    128,     0,     0,   128,   136,     0,   128,     5,     0,   128,
318    145,     0,   135,   130,     0,   132,   135,   130,     0,     0,
319    130,   136,     0,   130,     5,     0,   132,     0,   145,     0,
320    131,   132,     0,   131,   145,     0,     7,     0,     5,     0,
321    132,     7,     0,   132,     5,     0,   135,   134,     0,   189,
322    135,   134,     0,     0,   134,   136,     0,     6,     0,   173,
323      0,     4,     0,    69,   261,     0,    74,   261,     0,   262,
324      0,    28,    61,   101,    78,     0,    28,    61,   187,    78,
325      0,     6,     0,     7,     0,   173,     0,   140,     0,   137,
326     83,   140,     0,   142,     0,   138,    83,   140,     0,     0,
327     27,    61,   116,    78,     0,     0,   166,   139,   144,    38,
328    141,   150,     0,   166,   139,   144,     0,     0,   169,   139,
329    144,    38,   143,   150,     0,   169,   139,   144,     0,     0,
330    145,     0,   146,     0,   145,   146,     0,    30,    61,    61,
331    147,    78,    78,     0,   148,     0,   147,    83,   148,     0,
332      0,   149,     0,   149,    61,     3,    78,     0,   149,    61,
333      3,    83,   103,    78,     0,   149,    61,   102,    78,     0,
334     99,     0,     5,     0,     6,     0,     7,     0,   109,     0,
335      0,    84,   151,   152,    80,     0,     1,     0,     0,   153,
336    178,     0,   154,     0,   153,    83,   154,     0,   158,    38,
337    156,     0,   159,   156,     0,     0,    99,    40,   155,   156,
338      0,   156,     0,     0,    84,   157,   152,    80,     0,   109,
339      0,     1,     0,   159,     0,   158,   159,     0,    60,    99,
340      0,     0,     0,   166,   161,   118,   162,   204,     0,     0,
341      0,   169,   164,   118,   165,   204,     0,   167,     0,   169,
342      0,    61,   167,    78,     0,   167,    61,   239,     0,   167,
343     62,   101,    85,     0,   167,    62,    85,     0,    52,   190,
344    167,     0,   145,   125,   167,     0,     4,     0,    74,     0,
345    168,    61,   239,     0,   168,    62,   101,    85,     0,   168,
346     62,    85,     0,    52,   190,   168,     0,   145,   125,   168,
347      0,     4,     0,   169,    61,   239,     0,    61,   169,    78,
348      0,    52,   190,   169,     0,   169,    62,   101,    85,     0,
349    169,    62,    85,     0,   145,   125,   169,     0,     3,     0,
350     13,     0,    13,   145,     0,    14,     0,    14,   145,     0,
351     12,     0,    12,   145,     0,     0,   170,    99,    84,   174,
352    180,    80,   144,     0,   170,    84,   180,    80,   144,     0,
353    170,    99,     0,     0,   171,    99,    84,   175,   180,    80,
354    144,     0,   171,    84,   180,    80,   144,     0,   171,    99,
355      0,     0,   172,    99,    84,   176,   185,   179,    80,   144,
356      0,     0,   172,    84,   177,   185,   179,    80,   144,     0,
357    172,    99,     0,     0,    83,     0,     0,    83,     0,   181,
358      0,   181,   182,     0,     0,   181,   182,    79,     0,   181,
359     79,     0,    67,    61,    69,    78,     0,   133,   124,   183,
360      0,   133,   124,   209,   210,   144,     0,   189,   124,   183,
361      0,   189,     0,     1,     0,   244,   182,     0,   184,     0,
362    183,    83,   184,     0,   209,   210,   166,   144,     0,   209,
363    210,   166,    40,   109,   144,     0,   209,   210,    40,   109,
364    144,     0,   186,     0,   185,    83,   186,     0,     1,     0,
365     99,     0,    99,    38,   109,     0,   133,   188,     0,   189,
366    188,     0,     0,   191,     0,     7,     0,   189,     7,     0,
367      0,   190,     7,     0,    61,   191,    78,     0,    52,   190,
368    191,     0,    52,   190,     0,   191,    61,   232,     0,   191,
369     62,   101,    85,     0,   191,    62,    85,     0,    61,   232,
370      0,    62,   101,    85,     0,    62,    85,     0,   145,   125,
371    191,     0,   193,     0,   212,     0,   193,   212,     0,   193,
372    195,     0,     0,   192,     0,     1,    79,     0,     0,     0,
373    198,     0,   199,     0,   198,   199,     0,    32,   243,    79,
374      0,   204,     0,     1,   204,     0,    84,     0,    80,     0,
375    196,   197,   123,   194,    80,     0,   196,   197,     1,    80,
376      0,   196,   197,   192,    80,     0,    61,    84,     0,   201,
377    202,     0,   206,   211,     0,   206,     1,     0,    15,    61,
378    101,    78,     0,     0,    18,   208,   211,    17,     0,     0,
379      0,   209,   210,   214,     0,   209,   210,   225,   211,     0,
380    209,   210,   213,     0,   214,     0,   225,     0,   204,     0,
381    222,     0,   101,    79,     0,     0,   205,    16,   215,   211,
382      0,   205,     0,   205,    16,     1,     0,     0,     0,    17,
383    216,    61,   101,    78,   217,   211,     0,   207,    61,   101,
384     78,    79,     0,   207,     1,     0,     0,     0,     0,    19,
385     61,   227,    79,   218,   227,    79,   219,   227,    78,   220,
386    211,     0,     0,    20,    61,   101,    78,   221,   211,     0,
387     23,    79,     0,    24,    79,     0,    25,    79,     0,    25,
388    101,    79,     0,    27,   226,    61,   101,    78,    79,     0,
389     27,   226,    61,   101,    40,   228,    78,    79,     0,    27,
390    226,    61,   101,    40,   228,    40,   228,    78,    79,     0,
391     27,   226,    61,   101,    40,   228,    40,   228,    40,   231,
392     78,    79,     0,    26,    99,    79,     0,    26,    52,   101,
393     79,     0,    79,     0,   223,     0,     0,    19,    61,   115,
394     78,   224,   211,     0,    21,   109,    40,     0,    21,   109,
395     10,   109,    40,     0,    22,    40,     0,    99,    40,   144,
396      0,     0,     7,     0,     0,   101,     0,     0,   229,     0,
397    230,     0,   229,    83,   230,     0,     9,    61,   101,    78,
398      0,   116,     0,   231,    83,   116,     0,     0,   233,   234,
399      0,   236,    78,     0,     0,   237,    79,   235,   234,     0,
400      1,    78,     0,     0,    10,     0,   237,     0,   237,    83,
401     10,     0,   238,     0,   237,    83,   238,     0,   127,   124,
402    168,   144,     0,   127,   124,   169,   144,     0,   127,   124,
403    188,   144,     0,   131,   124,   169,   144,     0,   131,   124,
404    188,   144,     0,     0,   240,   241,     0,   234,     0,   242,
405     78,     0,     3,     0,   242,    83,     3,     0,    99,     0,
406    243,    83,    99,     0,    31,     0,   249,     0,   247,     0,
407    248,     0,   259,     0,   269,     0,    65,     0,    99,     0,
408    246,    83,    99,     0,    75,   246,    79,     0,    76,    99,
409     99,    79,     0,     0,     0,    63,    99,   261,    84,   250,
410    263,    80,   251,   276,    65,     0,     0,    63,    99,   261,
411    252,   276,    65,     0,     0,     0,    63,    99,    40,    99,
412    261,    84,   253,   263,    80,   254,   276,    65,     0,     0,
413     63,    99,    40,    99,   261,   255,   276,    65,     0,     0,
414     64,    99,    84,   256,   263,    80,     0,    64,    99,     0,
415      0,    64,    99,    40,    99,    84,   257,   263,    80,     0,
416     64,    99,    40,    99,     0,     0,    63,    99,    61,    99,
417     78,   261,   258,   276,    65,     0,    64,    99,    61,    99,
418     78,     0,     0,    73,    99,   261,   260,   276,    65,     0,
419      0,   262,     0,    47,   246,    47,     0,   263,   264,   265,
420      0,   265,     0,    71,     0,    72,     0,    70,     0,     0,
421    265,   266,    79,     0,   265,    79,     0,   133,   124,   267,
422      0,   189,   124,   267,     0,     1,     0,     0,   268,     0,
423    267,    83,   268,     0,   166,     0,   166,    40,   109,     0,
424     40,   109,     0,     0,     0,     0,    50,   270,   286,   271,
425    287,   272,   200,     0,     0,     0,     0,    51,   273,   286,
426    274,   287,   275,   200,     0,     0,     0,   277,   278,     0,
427    281,     0,    91,     0,   278,   281,     0,     0,   278,   279,
428     91,     0,    79,     0,     1,     0,     0,     0,    50,   282,
429    286,   283,   280,     0,     0,     0,    51,   284,   286,   285,
430    280,     0,    61,   187,    78,   295,     0,   295,     0,    61,
431    187,    78,   296,   293,     0,   296,   293,     0,     0,    79,
432    288,     0,     0,   289,     0,   290,     0,   195,     0,   289,
433    290,     0,   290,   195,     0,   127,   124,   291,    79,     0,
434    127,    79,     0,   131,    79,     0,   292,     0,   291,    83,
435    292,     0,   168,   144,     0,   169,   144,     0,   188,   144,
436      0,     0,    83,    10,     0,     0,    83,   294,   236,     0,
437    297,     0,   299,     0,   296,   299,     0,     3,     0,     4,
438      0,    74,     0,   298,     0,    12,     0,    13,     0,    14,
439      0,    15,     0,    16,     0,    17,     0,    18,     0,    19,
440      0,    20,     0,    21,     0,    22,     0,    23,     0,    24,
441      0,    25,     0,    26,     0,    27,     0,    11,     0,    28,
442      0,    29,     0,     6,     0,     7,     0,   297,    40,    61,
443    187,    78,    99,     0,   297,    40,    99,     0,    40,    61,
444    187,    78,    99,     0,    40,    99,     0,   297,     0,   301,
445      0,   303,     0,   301,   303,     0,   103,     0,   297,    40,
446    302,     0,    40,   302,     0,   101,     0,    69,     0,     0,
447      0,    62,   306,   304,   307,   300,    85,     0,   297,     0,
448    309,     0,   310,     0,   309,   310,     0,   297,    40,     0,
449     40,     0,    66,    61,   308,    78,     0,    73,    61,    99,
450     78,     0,    68,    61,   187,    78,     0
451 };
452
453 #endif
454
455 #if YYDEBUG != 0
456 static const short yyrline[] = { 0,
457    257,   262,   276,   278,   278,   279,   281,   283,   284,   285,
458    293,   297,   307,   311,   315,   317,   319,   320,   321,   326,
459    333,   335,   339,   343,   349,   351,   355,   359,   365,   367,
460    371,   377,   379,   380,   381,   384,   386,   388,   390,   392,
461    394,   396,   400,   404,   407,   410,   413,   417,   419,   422,
462    425,   429,   457,   463,   466,   469,   472,   474,   476,   480,
463    484,   488,   490,   493,   497,   524,   526,   528,   530,   532,
464    534,   536,   538,   540,   542,   544,   546,   548,   550,   554,
465    556,   560,   562,   565,   569,   571,   578,   581,   589,   600,
466    760,   761,   763,   769,   771,   794,   803,   805,   807,   819,
467    833,   835,   837,   839,   841,   843,   845,   850,   852,   859,
468    861,   865,   867,   868,   878,   883,   885,   886,   887,   894,
469    899,   903,   906,   914,   919,   921,   922,   923,   930,   940,
470    944,   949,   953,   957,   961,   963,   965,   974,   977,   981,
471    983,   985,   990,   994,   997,  1001,  1004,  1006,  1018,  1021,
472   1023,  1025,  1029,  1033,  1035,  1038,  1051,  1054,  1058,  1060,
473   1068,  1069,  1070,  1074,  1076,  1081,  1083,  1085,  1091,  1092,
474   1093,  1096,  1098,  1101,  1103,  1106,  1109,  1115,  1122,  1124,
475   1131,  1138,  1141,  1148,  1151,  1155,  1158,  1162,  1167,  1170,
476   1174,  1177,  1179,  1181,  1183,  1190,  1192,  1193,  1194,  1199,
477   1201,  1203,  1205,  1210,  1214,  1217,  1219,  1224,  1226,  1227,
478   1230,  1230,  1233,  1236,  1238,  1240,  1243,  1245,  1248,  1256,
479   1270,  1278,  1282,  1296,  1304,  1311,  1313,  1318,  1321,  1326,
480   1328,  1330,  1337,  1339,  1340,  1348,  1354,  1356,  1358,  1365,
481   1367,  1373,  1379,  1381,  1383,  1385,  1392,  1394,  1397,  1400,
482   1404,  1407,  1411,  1414,  1418,  1423,  1425,  1429,  1431,  1433,
483   1435,  1439,  1441,  1443,  1446,  1448,  1451,  1455,  1457,  1460,
484   1462,  1467,  1470,  1475,  1477,  1479,  1483,  1507,  1513,  1526,
485   1531,  1536,  1538,  1543,  1545,  1549,  1553,  1557,  1567,  1569,
486   1574,  1579,  1582,  1586,  1589,  1593,  1596,  1599,  1602,  1606,
487   1609,  1613,  1617,  1619,  1621,  1623,  1625,  1627,  1629,  1631,
488   1635,  1643,  1651,  1653,  1655,  1659,  1661,  1664,  1667,  1679,
489   1681,  1686,  1688,  1691,  1705,  1708,  1711,  1713,  1715,  1719,
490   1723,  1729,  1747,  1752,  1757,  1760,  1774,  1783,  1787,  1791,
491   1795,  1801,  1805,  1810,  1813,  1818,  1821,  1822,  1838,  1843,
492   1846,  1858,  1860,  1870,  1880,  1881,  1888,  1890,  1902,  1906,
493   1920,  1926,  1932,  1933,  1938,  1943,  1947,  1951,  1962,  1969,
494   1976,  1983,  1994,  2000,  2003,  2008,  2031,  2061,  2092,  2123,
495   2138,  2152,  2156,  2160,  2163,  2168,  2170,  2173,  2175,  2179,
496   2184,  2187,  2193,  2198,  2203,  2205,  2214,  2215,  2221,  2223,
497   2233,  2235,  2239,  2242,  2248,  2257,  2265,  2273,  2282,  2295,
498   2300,  2305,  2307,  2316,  2319,  2324,  2327,  2331,  2340,  2342,
499   2343,  2344,  2345,  2346,  2360,  2363,  2367,  2373,  2379,  2386,
500   2391,  2397,  2404,  2410,  2416,  2421,  2427,  2434,  2440,  2446,
501   2452,  2460,  2466,  2472,  2480,  2487,  2493,  2502,  2509,  2517,
502   2522,  2525,  2535,  2537,  2540,  2542,  2543,  2546,  2551,  2552,
503   2569,  2575,  2580,  2584,  2587,  2588,  2591,  2599,  2605,  2614,
504   2624,  2631,  2635,  2640,  2649,  2656,  2660,  2670,  2672,  2673,
505   2675,  2677,  2678,  2679,  2680,  2682,  2684,  2687,  2695,  2702,
506   2702,  2709,  2715,  2717,  2723,  2728,  2733,  2742,  2744,  2750,
507   2752,  2755,  2757,  2758,  2759,  2762,  2767,  2769,  2773,  2776,
508   2783,  2789,  2794,  2801,  2806,  2811,  2816,  2823,  2827,  2830,
509   2836,  2838,  2839,  2840,  2843,  2845,  2846,  2847,  2848,  2849,
510   2850,  2851,  2852,  2853,  2854,  2855,  2856,  2857,  2858,  2859,
511   2860,  2861,  2862,  2863,  2863,  2866,  2872,  2877,  2882,  2888,
512   2890,  2893,  2895,  2902,  2914,  2919,  2925,  2927,  2933,  2937,
513   2938,  2944,  2946,  2949,  2951,  2957,  2962,  2968,  2975,  2984
514 };
515 #endif
516
517
518 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
519
520 static const char * const yytname[] = {   "$","error","$undefined.","IDENTIFIER",
521 "TYPENAME","SCSPEC","TYPESPEC","TYPE_QUAL","CONSTANT","STRING","ELLIPSIS","SIZEOF",
522 "ENUM","STRUCT","UNION","IF","ELSE","WHILE","DO","FOR","SWITCH","CASE","DEFAULT",
523 "BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF","ATTRIBUTE",
524 "EXTENSION","LABEL","REALPART","IMAGPART","VA_ARG","END_OF_LINE","ASSIGN","'='",
525 "'?'","':'","OROR","ANDAND","'|'","'^'","'&'","EQCOMPARE","ARITHCOMPARE","LSHIFT",
526 "RSHIFT","'+'","'-'","'*'","'/'","'%'","UNARY","PLUSPLUS","MINUSMINUS","HYPERUNARY",
527 "POINTSAT","'.'","'('","'['","INTERFACE","IMPLEMENTATION","END","SELECTOR","DEFS",
528 "ENCODE","CLASSNAME","PUBLIC","PRIVATE","PROTECTED","PROTOCOL","OBJECTNAME",
529 "CLASS","ALIAS","OBJC_STRING","')'","';'","'}'","'~'","'!'","','","'{'","']'",
530 "program","extdefs","@1","@2","extdef","datadef","fndef","@3","@4","@5","@6",
531 "@7","@8","identifier","unop","expr","exprlist","nonnull_exprlist","unary_expr",
532 "sizeof","alignof","cast_expr","@9","expr_no_commas","@10","@11","@12","@13",
533 "@14","primary","string","objc_string","old_style_parm_decls","lineno_datadecl",
534 "datadecls","datadecl","lineno_decl","decls","setspecs","setattrs","decl","typed_declspecs",
535 "reserved_declspecs","typed_declspecs_no_prefix_attr","reserved_declspecs_no_prefix_attr",
536 "declmods","declmods_no_prefix_attr","typed_typespecs","reserved_typespecquals",
537 "typespec","typespecqual_reserved","initdecls","notype_initdecls","maybeasm",
538 "initdcl","@15","notype_initdcl","@16","maybe_attribute","attributes","attribute",
539 "attribute_list","attrib","any_word","init","@17","initlist_maybe_comma","initlist1",
540 "initelt","@18","initval","@19","designator_list","designator","nested_function",
541 "@20","@21","notype_nested_function","@22","@23","declarator","after_type_declarator",
542 "parm_declarator","notype_declarator","struct_head","union_head","enum_head",
543 "structsp","@24","@25","@26","@27","maybecomma","maybecomma_warn","component_decl_list",
544 "component_decl_list2","component_decl","components","component_declarator",
545 "enumlist","enumerator","typename","absdcl","nonempty_type_quals","type_quals",
546 "absdcl1","stmts","lineno_stmt_or_labels","xstmts","errstmt","pushlevel","maybe_label_decls",
547 "label_decls","label_decl","compstmt_or_error","compstmt_start","compstmt_nostart",
548 "compstmt_primary_start","compstmt","simple_if","if_prefix","do_stmt_start",
549 "@28","save_filename","save_lineno","lineno_labeled_stmt","lineno_stmt_or_label",
550 "stmt_or_label","stmt","@29","@30","@31","@32","@33","@34","@35","all_iter_stmt",
551 "all_iter_stmt_simple","@36","label","maybe_type_qual","xexpr","asm_operands",
552 "nonnull_asm_operands","asm_operand","asm_clobbers","parmlist","@37","parmlist_1",
553 "@38","parmlist_2","parms","parm","parmlist_or_identifiers","@39","parmlist_or_identifiers_1",
554 "identifiers","identifiers_or_typenames","extension","objcdef","identifier_list",
555 "classdecl","aliasdecl","classdef","@40","@41","@42","@43","@44","@45","@46",
556 "@47","@48","protocoldef","@49","protocolrefs","non_empty_protocolrefs","ivar_decl_list",
557 "visibility_spec","ivar_decls","ivar_decl","ivars","ivar_declarator","methoddef",
558 "@50","@51","@52","@53","@54","@55","methodprotolist","@56","methodprotolist2",
559 "@57","semi_or_error","methodproto","@58","@59","@60","@61","methoddecl","optarglist",
560 "myxdecls","mydecls","mydecl","myparms","myparm","optparmlist","@62","unaryselector",
561 "keywordselector","selector","reservedwords","keyworddecl","messageargs","keywordarglist",
562 "keywordexpr","keywordarg","receiver","objcmessageexpr","@63","@64","selectorarg",
563 "keywordnamelist","keywordname","objcselectorexpr","objcprotocolexpr","objcencodeexpr", NULL
564 };
565 #endif
566
567 static const short yyr1[] = {     0,
568     86,    86,    88,    87,    89,    87,    90,    90,    90,    90,
569     90,    91,    91,    91,    91,    91,    91,    91,    91,    93,
570     94,    92,    92,    95,    96,    92,    92,    97,    98,    92,
571     92,    99,    99,    99,    99,   100,   100,   100,   100,   100,
572    100,   100,   101,   102,   102,   103,   103,   104,   104,   104,
573    104,   104,   104,   104,   104,   104,   104,   104,   104,   105,
574    106,   107,   107,   108,   107,   109,   109,   109,   109,   109,
575    109,   109,   109,   109,   109,   109,   109,   109,   110,   109,
576    111,   109,   112,   113,   109,   114,   109,   109,   109,   115,
577    115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
578    115,   115,   115,   115,   115,   115,   115,   116,   116,   117,
579    117,   118,   118,   118,   119,   120,   120,   120,   120,   121,
580    121,   121,   121,   122,   123,   123,   123,   123,   124,   125,
581    126,   126,   126,   126,   126,   126,   126,   127,   127,   128,
582    128,   128,   128,   129,   129,   130,   130,   130,   131,   131,
583    131,   131,   132,   132,   132,   132,   133,   133,   134,   134,
584    135,   135,   135,   135,   135,   135,   135,   135,   136,   136,
585    136,   137,   137,   138,   138,   139,   139,   141,   140,   140,
586    143,   142,   142,   144,   144,   145,   145,   146,   147,   147,
587    148,   148,   148,   148,   148,   149,   149,   149,   149,   150,
588    151,   150,   150,   152,   152,   153,   153,   154,   154,   155,
589    154,   154,   157,   156,   156,   156,   158,   158,   159,   161,
590    162,   160,   164,   165,   163,   166,   166,   167,   167,   167,
591    167,   167,   167,   167,   167,   168,   168,   168,   168,   168,
592    168,   169,   169,   169,   169,   169,   169,   169,   170,   170,
593    171,   171,   172,   172,   174,   173,   173,   173,   175,   173,
594    173,   173,   176,   173,   177,   173,   173,   178,   178,   179,
595    179,   180,   180,   181,   181,   181,   181,   182,   182,   182,
596    182,   182,   182,   183,   183,   184,   184,   184,   185,   185,
597    185,   186,   186,   187,   187,   188,   188,   189,   189,   190,
598    190,   191,   191,   191,   191,   191,   191,   191,   191,   191,
599    191,   192,   193,   193,   193,   194,   194,   195,   196,   197,
600    197,   198,   198,   199,   200,   200,   201,   202,   202,   202,
601    202,   203,   204,   205,   205,   206,   208,   207,   209,   210,
602    211,   211,   212,   213,   213,   214,   214,   214,   215,   214,
603    214,   214,   216,   217,   214,   214,   214,   218,   219,   220,
604    214,   221,   214,   214,   214,   214,   214,   214,   214,   214,
605    214,   214,   214,   214,   222,   224,   223,   225,   225,   225,
606    225,   226,   226,   227,   227,   228,   228,   229,   229,   230,
607    231,   231,   233,   232,   234,   235,   234,   234,   236,   236,
608    236,   236,   237,   237,   238,   238,   238,   238,   238,   240,
609    239,   241,   241,   242,   242,   243,   243,   244,   245,   245,
610    245,   245,   245,   245,   246,   246,   247,   248,   250,   251,
611    249,   252,   249,   253,   254,   249,   255,   249,   256,   249,
612    249,   257,   249,   249,   258,   249,   249,   260,   259,   261,
613    261,   262,   263,   263,   264,   264,   264,   265,   265,   265,
614    266,   266,   266,   267,   267,   267,   268,   268,   268,   270,
615    271,   272,   269,   273,   274,   275,   269,   276,   277,   276,
616    278,   278,   278,   279,   278,   280,   280,   282,   283,   281,
617    284,   285,   281,   286,   286,   286,   286,   287,   287,   288,
618    288,   289,   289,   289,   289,   290,   290,   290,   291,   291,
619    292,   292,   292,   293,   293,   294,   293,   295,   296,   296,
620    297,   297,   297,   297,   298,   298,   298,   298,   298,   298,
621    298,   298,   298,   298,   298,   298,   298,   298,   298,   298,
622    298,   298,   298,   298,   298,   299,   299,   299,   299,   300,
623    300,   301,   301,   302,   303,   303,   304,   304,   306,   307,
624    305,   308,   308,   309,   309,   310,   310,   311,   312,   313
625 };
626
627 static const short yyr2[] = {     0,
628      0,     1,     0,     2,     0,     3,     1,     1,     1,     5,
629      2,     3,     4,     4,     2,     2,     2,     2,     1,     0,
630      0,     7,     4,     0,     0,     7,     4,     0,     0,     6,
631      3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
632      1,     1,     1,     0,     1,     1,     3,     1,     2,     2,
633      2,     2,     2,     4,     2,     4,     2,     2,     6,     1,
634      1,     1,     4,     0,     7,     1,     3,     3,     3,     3,
635      3,     3,     3,     3,     3,     3,     3,     3,     0,     4,
636      0,     4,     0,     0,     7,     0,     5,     3,     3,     1,
637      1,     1,     3,     3,     3,     3,     4,     4,     3,     3,
638      2,     2,     1,     1,     1,     1,     1,     1,     2,     1,
639      2,     0,     1,     2,     3,     1,     1,     2,     2,     4,
640      4,     2,     2,     3,     1,     1,     2,     2,     0,     0,
641      4,     4,     3,     3,     2,     2,     2,     2,     3,     0,
642      2,     2,     2,     2,     3,     0,     2,     2,     1,     1,
643      2,     2,     1,     1,     2,     2,     2,     3,     0,     2,
644      1,     1,     1,     2,     2,     1,     4,     4,     1,     1,
645      1,     1,     3,     1,     3,     0,     4,     0,     6,     3,
646      0,     6,     3,     0,     1,     1,     2,     6,     1,     3,
647      0,     1,     4,     6,     4,     1,     1,     1,     1,     1,
648      0,     4,     1,     0,     2,     1,     3,     3,     2,     0,
649      4,     1,     0,     4,     1,     1,     1,     2,     2,     0,
650      0,     5,     0,     0,     5,     1,     1,     3,     3,     4,
651      3,     3,     3,     1,     1,     3,     4,     3,     3,     3,
652      1,     3,     3,     3,     4,     3,     3,     1,     1,     2,
653      1,     2,     1,     2,     0,     7,     5,     2,     0,     7,
654      5,     2,     0,     8,     0,     7,     2,     0,     1,     0,
655      1,     1,     2,     0,     3,     2,     4,     3,     5,     3,
656      1,     1,     2,     1,     3,     4,     6,     5,     1,     3,
657      1,     1,     3,     2,     2,     0,     1,     1,     2,     0,
658      2,     3,     3,     2,     3,     4,     3,     2,     3,     2,
659      3,     1,     1,     2,     2,     0,     1,     2,     0,     0,
660      1,     1,     2,     3,     1,     2,     1,     1,     5,     4,
661      4,     2,     2,     2,     2,     4,     0,     4,     0,     0,
662      3,     4,     3,     1,     1,     1,     1,     2,     0,     4,
663      1,     3,     0,     0,     7,     5,     2,     0,     0,     0,
664     12,     0,     6,     2,     2,     2,     3,     6,     8,    10,
665     12,     3,     4,     1,     1,     0,     6,     3,     5,     2,
666      3,     0,     1,     0,     1,     0,     1,     1,     3,     4,
667      1,     3,     0,     2,     2,     0,     4,     2,     0,     1,
668      1,     3,     1,     3,     4,     4,     4,     4,     4,     0,
669      2,     1,     2,     1,     3,     1,     3,     1,     1,     1,
670      1,     1,     1,     1,     1,     3,     3,     4,     0,     0,
671     10,     0,     6,     0,     0,    12,     0,     8,     0,     6,
672      2,     0,     8,     4,     0,     9,     5,     0,     6,     0,
673      1,     3,     3,     1,     1,     1,     1,     0,     3,     2,
674      3,     3,     1,     0,     1,     3,     1,     3,     2,     0,
675      0,     0,     7,     0,     0,     0,     7,     0,     0,     2,
676      1,     1,     2,     0,     3,     1,     1,     0,     0,     5,
677      0,     0,     5,     4,     1,     5,     2,     0,     2,     0,
678      1,     1,     1,     2,     2,     4,     2,     2,     1,     3,
679      2,     2,     2,     0,     2,     0,     3,     1,     1,     2,
680      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
681      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
682      1,     1,     1,     1,     1,     6,     3,     5,     2,     1,
683      1,     1,     2,     1,     3,     2,     1,     1,     0,     0,
684      6,     1,     1,     1,     2,     2,     1,     4,     4,     4
685 };
686
687 static const short yydefact[] = {     3,
688      5,     0,     0,     0,   163,   154,   161,   153,   253,   249,
689    251,     0,     0,     0,   418,     0,   470,   474,     0,     0,
690    424,   450,     0,   450,     0,     0,    19,     4,     8,     7,
691      0,   129,   129,   149,   140,   150,   186,     0,     0,     0,
692    162,     0,     9,   420,   421,   419,   422,   166,   423,     6,
693     17,    18,   254,   250,   252,     0,     0,     0,    32,    33,
694     35,    34,   425,     0,     0,     0,   450,   441,   164,   451,
695    450,   165,     0,     0,   248,   300,     0,     0,   174,   130,
696      0,    16,     0,    15,     0,   151,   140,   152,   156,   155,
697    138,   187,   274,   258,   274,   262,   265,   267,    11,    90,
698     91,   108,    60,    61,     0,     0,     0,     0,    36,    38,
699     37,     0,    39,    40,     0,   559,     0,     0,     0,   110,
700     41,    42,     0,     0,    43,    62,     0,     0,    66,    46,
701     48,    92,   107,     0,     0,   103,   104,   105,   106,   298,
702      0,   296,   159,     0,   296,   191,   452,     0,   521,   522,
703    544,   545,   541,   525,   526,   527,   528,   529,   530,   531,
704    532,   533,   534,   535,   536,   537,   538,   539,   540,   542,
705    543,     0,     0,   523,   471,   495,   514,   518,   524,   519,
706    475,     0,     0,   432,     0,     0,   439,   448,   427,     0,
707      0,     0,    12,     0,     0,    31,     0,   410,     0,     0,
708    184,   234,   300,     0,   235,     0,   172,   130,     0,   226,
709    227,     0,     0,   139,   142,   169,   170,   141,   143,   171,
710      0,     0,     0,   255,     0,   259,     0,   263,    57,    58,
711      0,    52,    49,     0,   332,     0,     0,     0,     0,     0,
712      0,    51,     0,     0,     0,    53,     0,    55,     0,     0,
713     83,    81,    79,     0,     0,     0,     0,     0,     0,     0,
714      0,     0,     0,     0,     0,   101,   102,     0,     0,    44,
715      0,   109,   111,     0,   328,   320,     0,    50,   167,   300,
716    393,     0,   130,   294,   297,   157,   168,   299,   159,   295,
717    197,   198,   199,   196,     0,   189,   192,   426,     0,   549,
718      0,   498,   516,   497,     0,   520,     0,   498,   450,     0,
719    429,   479,   444,     0,   458,   479,   428,   301,   244,   243,
720    175,   176,   247,     0,   242,     0,   246,     0,     0,    29,
721      0,   339,   117,   340,   183,   185,     0,     0,    14,     0,
722      0,    23,     0,   184,   410,     0,    13,    27,     0,     0,
723    184,   282,   276,   129,   273,   129,     0,   274,   184,   274,
724    291,   292,   270,   289,     0,     0,    94,    93,     0,   558,
725    557,   560,   567,   562,     0,   563,   564,     0,     0,    10,
726     47,     0,     0,    89,    88,     0,     0,     0,     0,    77,
727     78,    76,    75,    74,    72,    73,    67,    68,    69,    70,
728     71,   100,    99,     0,    45,     0,    96,     0,     0,   321,
729    322,    95,   304,     0,   308,     0,   310,     0,     0,   393,
730      0,   160,   158,     0,   191,    44,     0,     0,     0,   472,
731    515,   399,     0,   547,   476,   437,   450,   458,     0,     0,
732    442,   447,     0,     0,     0,     0,     0,   414,   400,   129,
733    129,   412,     0,   401,   403,   411,     0,   245,   318,     0,
734    119,   114,   118,     0,   181,   232,   228,   173,   233,    21,
735    180,   229,   231,     0,    25,     0,   257,   339,   275,   339,
736    283,     0,   261,     0,     0,   271,     0,   270,     0,    64,
737     63,     0,   566,   568,     0,   565,   570,   569,    54,    56,
738      0,     0,    82,    80,    97,    98,   416,     0,     0,     0,
739    339,     0,     0,   126,   340,   313,   323,   303,   302,   394,
740    309,   311,   305,   307,     0,   188,   190,    90,     0,     0,
741    494,   514,   129,     0,   503,   499,   501,     0,     0,   517,
742    401,     0,     0,   434,   479,   445,     0,   433,   488,   491,
743    482,     0,   129,   129,   484,   481,   458,   457,   455,   456,
744    440,   458,   463,   460,   129,   129,     0,   449,   177,   398,
745    296,   296,   395,   396,     0,   413,     0,     0,   327,    30,
746    319,   325,   115,   129,   129,   146,     0,     0,   178,   230,
747      0,   277,   278,   284,   340,   280,   340,   184,   184,   293,
748    290,   184,     0,     0,     0,     0,   550,     0,   551,   552,
749     84,    87,   324,     0,   330,   128,   127,   317,     0,   331,
750    315,   340,   314,     0,   306,   193,     0,   195,   548,   496,
751    507,   296,   508,   504,   505,   473,     0,   477,   458,     0,
752    479,   430,     0,     0,   176,     0,     0,     0,   483,     0,
753      0,   464,   464,   459,   241,   300,   393,   130,   184,   184,
754    184,   300,   130,   184,   184,     0,   402,   404,   415,   326,
755    333,   122,     0,   123,     0,   146,   144,   203,   201,   200,
756    182,    22,     0,    26,   339,   184,     0,   256,   260,   266,
757    184,    59,   216,    90,     0,   213,     0,   215,     0,   268,
758    206,   212,     0,     0,   554,   556,     0,   561,     0,   553,
759      0,   417,   329,     0,   163,     0,   353,   337,     0,     0,
760      0,     0,     0,     0,     0,     0,   382,   450,   450,   374,
761      0,     0,   124,   129,   129,   346,   351,     0,     0,   343,
762    344,   347,   375,   345,     0,     0,   184,   184,   184,     0,
763    509,   546,     0,   438,     0,   479,   489,   492,   485,   443,
764      0,   467,   461,   465,   462,   304,     0,   410,     0,   405,
765    406,   407,   304,     0,   408,   409,   397,     0,     0,   145,
766    148,   147,     0,   179,   285,     0,   279,   130,   184,   264,
767    219,     0,   210,    65,     0,   205,     0,   218,   209,   555,
768     85,     0,     0,   339,   384,     0,     0,   380,   364,   365,
769    366,     0,     0,     0,   383,     0,   184,   348,   135,     0,
770    136,     0,     0,   335,   340,   334,   357,     0,   137,   194,
771    511,   512,   513,   506,   296,   435,   446,     0,     0,     0,
772    469,     0,     0,   239,   240,   236,   238,     0,   120,   121,
773      0,   184,     0,   286,     0,     0,   207,   208,     0,     0,
774      0,   385,    48,     0,     0,     0,   378,   367,     0,   372,
775      0,   381,     0,   133,   220,     0,   134,   223,   352,   339,
776      0,     0,   510,   479,   431,   487,   486,   490,   493,   468,
777    466,   237,   202,   288,   184,   214,   211,   336,     0,   338,
778    376,   358,   362,     0,   373,     0,   131,     0,   132,     0,
779    350,   341,   339,     0,     0,   287,   354,   339,   384,   339,
780    379,   386,     0,   221,   224,   342,   356,   436,   339,   377,
781      0,   363,     0,     0,   387,   388,   368,     0,     0,   355,
782    359,     0,   386,     0,     0,   222,   225,   384,     0,     0,
783    369,   389,     0,   390,     0,     0,   360,   391,     0,   370,
784    339,     0,     0,   361,   371,   392,     0,     0,     0
785 };
786
787 static const short yydefgoto[] = {   967,
788      1,     2,     3,    28,    29,    30,   343,   588,   349,   591,
789    200,   460,   697,   123,   236,   404,   125,   126,   127,   128,
790    129,   605,   130,   389,   388,   386,   711,   387,   131,   132,
791    133,   330,   331,   332,   583,   510,   511,    31,   341,   733,
792    450,    91,   584,   677,   451,    34,   142,   286,    35,   218,
793    206,    78,   201,   207,   683,    79,   587,   335,   336,    37,
794    295,   296,   297,   681,   783,   699,   700,   701,   856,   702,
795    792,   703,   704,   874,   908,   938,   877,   910,   939,   322,
796    210,   747,   211,    38,    39,    40,    41,   358,   360,   365,
797    227,   796,   487,   222,   223,   355,   593,   594,   363,   364,
798    144,   749,   145,   191,   285,   512,   513,   619,   333,   276,
799    409,   410,   411,   580,   581,   277,   134,   582,   737,   738,
800    739,   804,   825,   464,   826,   516,   740,   741,   880,   803,
801    929,   919,   948,   961,   920,   742,   743,   918,   744,   816,
802    864,   934,   935,   936,   959,   415,   416,   452,   666,   453,
803    454,   455,   325,   326,   456,   457,   508,   135,    43,    64,
804     44,    45,    46,   438,   756,   312,   639,   884,   545,   315,
805    557,   641,    47,   316,    69,    48,   443,   562,   444,   567,
806    763,   764,    49,    65,   302,   539,    66,   308,   543,   439,
807    440,   555,   648,   888,   556,   643,   839,   644,   840,   175,
808    430,   536,   537,   538,   750,   751,   304,   432,   176,   177,
809    178,   179,   180,   608,   609,   706,   610,   372,   136,   238,
810    492,   375,   376,   377,   137,   138,   139
811 };
812
813 static const short yypact[] = {   118,
814    137,  3350,  3350,   190,-32768,-32768,-32768,-32768,   204,   204,
815    204,   104,   161,   189,-32768,   294,-32768,-32768,   294,   294,
816 -32768,   236,   294,   236,   294,   294,-32768,-32768,-32768,-32768,
817    226,   174,  2782,   382,-32768,   204,-32768,   135,   192,   208,
818 -32768,  3350,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
819 -32768,-32768,   204,   204,   204,  3019,  2851,   241,-32768,-32768,
820 -32768,-32768,-32768,   158,  3627,  3627,   346,   123,-32768,-32768,
821    236,-32768,   237,   294,-32768,-32768,   226,   249,-32768,   204,
822    870,-32768,   416,-32768,   226,   382,-32768,   204,-32768,-32768,
823    793,-32768,   238,   242,   238,   258,-32768,   266,-32768,-32768,
824 -32768,-32768,-32768,-32768,  3019,  3019,   300,   294,-32768,-32768,
825 -32768,  3019,-32768,-32768,  1277,-32768,   354,   357,   362,-32768,
826 -32768,-32768,  3019,   330,   371,-32768,  3075,  3131,-32768,  3955,
827   1125,   457,   403,   986,  3019,-32768,-32768,-32768,-32768,-32768,
828    411,   297,-32768,   413,  3751,   303,-32768,   294,-32768,-32768,
829 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
830 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
831 -32768,   188,  2179,-32768,-32768,-32768,  2741,   458,-32768,-32768,
832 -32768,   294,   294,   423,   294,   294,-32768,-32768,-32768,   421,
833     98,    52,-32768,   416,   226,-32768,   452,-32768,  2194,   498,
834    204,-32768,-32768,   416,-32768,   327,-32768,   204,  2082,   317,
835    329,   347,  2054,   793,-32768,-32768,-32768,-32768,   204,-32768,
836    454,   442,  3270,-32768,   444,-32768,   106,-32768,-32768,-32768,
837   3019,-32768,-32768,   464,-32768,   465,   466,  2907,  3657,  2179,
838    294,-32768,   455,  3019,  1277,-32768,  1277,-32768,  3019,  3019,
839    510,-32768,-32768,  3019,  3019,  3019,  3019,  3019,  3019,  3019,
840   3019,  3019,  3019,  3019,  3019,-32768,-32768,   294,   294,  3019,
841   3019,-32768,-32768,   473,-32768,   531,   486,-32768,-32768,-32768,
842    297,  2255,   204,-32768,   379,   907,-32768,-32768,-32768,-32768,
843 -32768,-32768,-32768,-32768,    41,-32768,   515,-32768,  2179,-32768,
844    493,   504,   567,-32768,   458,-32768,   353,   504,   236,   513,
845 -32768,   527,   519,   516,-32768,   527,-32768,-32768,   329,-32768,
846 -32768,   579,   329,   599,-32768,  3455,-32768,   524,   532,-32768,
847   1371,    80,-32768,-32768,   589,   204,   308,   182,-32768,   416,
848    416,-32768,   498,   204,-32768,  2316,-32768,-32768,   498,   560,
849    204,-32768,-32768,-32768,   551,  3296,  3563,   238,   204,   238,
850 -32768,   594,   552,-32768,   106,  3876,-32768,-32768,  2659,-32768,
851 -32768,-32768,-32768,   598,   558,  3657,-32768,   562,   568,-32768,
852   3955,   569,   570,  3955,  3955,  3019,   610,  3019,  3019,  1863,
853    912,   675,  1126,  1034,   535,   535,    63,    63,-32768,-32768,
854 -32768,-32768,-32768,   576,   371,   571,-32768,   294,  1191,   531,
855 -32768,-32768,   409,   185,-32768,  3485,-32768,   575,   297,-32768,
856   2377,-32768,   907,   577,   303,  3187,   583,  3692,  2140,-32768,
857 -32768,  3763,  2179,-32768,-32768,   573,   236,-32768,   601,  3427,
858 -32768,-32768,   449,   898,   602,    84,   586,-32768,-32768,-32768,
859   3829,-32768,   592,   364,-32768,-32768,   211,-32768,-32768,    83,
860 -32768,-32768,-32768,  2093,-32768,   317,-32768,-32768,   317,-32768,
861    634,-32768,-32768,   590,-32768,   600,-32768,-32768,-32768,-32768,
862 -32768,   604,-32768,   605,  3019,   294,   607,   552,  2179,-32768,
863 -32768,  3722,-32768,-32768,   598,-32768,-32768,-32768,-32768,-32768,
864    639,  3019,  1706,  1787,-32768,-32768,-32768,   435,   372,  1088,
865    609,   613,  1408,-32768,-32768,-32768,-32768,   379,-32768,-32768,
866 -32768,   379,-32768,-32768,   595,-32768,-32768,   246,   617,   294,
867 -32768,  2741,   624,  3513,-32768,-32768,  3829,  2168,    83,-32768,
868    591,   626,    83,-32768,   527,-32768,   476,-32768,-32768,-32768,
869 -32768,   226,   174,  2782,   399,-32768,-32768,-32768,-32768,-32768,
870 -32768,-32768,-32768,-32768,-32768,  3842,   627,-32768,-32768,-32768,
871    471,    93,-32768,-32768,  3817,-32768,   702,   623,-32768,-32768,
872    628,-32768,-32768,   632,  3314,-32768,  1895,    83,-32768,-32768,
873     83,-32768,   631,-32768,-32768,   631,-32768,   204,   204,  3955,
874 -32768,   204,   655,   658,  1654,  3019,   701,   659,  3722,-32768,
875 -32768,  1625,-32768,   294,-32768,-32768,-32768,-32768,   663,-32768,
876 -32768,-32768,-32768,  2521,-32768,-32768,  3019,-32768,-32768,-32768,
877 -32768,   471,-32768,-32768,-32768,-32768,   294,-32768,-32768,   680,
878    527,-32768,  3627,  3627,   206,   416,   226,  1983,-32768,   489,
879   3266,   314,   314,-32768,-32768,-32768,    93,   204,   261,   273,
880    204,-32768,   204,   273,   204,  3485,-32768,-32768,-32768,-32768,
881 -32768,-32768,   416,-32768,   226,-32768,   829,-32768,-32768,  3955,
882 -32768,-32768,  1895,-32768,-32768,   343,   343,-32768,-32768,-32768,
883    204,-32768,-32768,   708,   294,-32768,   711,  3955,   672,   670,
884 -32768,-32768,   143,  1818,   371,-32768,  3019,-32768,   701,-32768,
885   3019,-32768,-32768,  2603,   714,   694,-32768,-32768,   697,   698,
886   3019,   721,   684,   685,  2963,   227,   759,   212,   324,-32768,
887    727,   692,-32768,   695,  3543,-32768,   757,  1490,    99,-32768,
888 -32768,-32768,-32768,-32768,  2771,   270,   261,   273,   204,   456,
889 -32768,-32768,   572,-32768,   712,   527,-32768,-32768,-32768,-32768,
890   3019,   738,   699,-32768,   699,   621,   471,-32768,  2438,-32768,
891 -32768,-32768,   735,    93,-32768,-32768,-32768,   474,   487,   829,
892 -32768,-32768,  1654,-32768,-32768,  3019,-32768,    73,   184,-32768,
893 -32768,  1654,-32768,-32768,  1736,-32768,  1972,-32768,-32768,-32768,
894   1625,  3019,   719,-32768,  3019,  3019,  3894,-32768,-32768,-32768,
895 -32768,   705,  3019,   706,-32768,   725,   204,-32768,-32768,   416,
896 -32768,   226,  1572,-32768,-32768,-32768,-32768,  3019,-32768,-32768,
897 -32768,-32768,-32768,-32768,   471,-32768,-32768,   723,    77,    77,
898   3955,  3019,   314,   397,   397,-32768,-32768,   707,-32768,-32768,
899    710,  3919,  3019,-32768,   713,  1972,-32768,-32768,   716,  3019,
900    778,-32768,   375,   724,   730,  3019,-32768,-32768,   733,-32768,
901   3019,-32768,   522,-32768,    95,   539,-32768,   479,-32768,-32768,
902   2603,   731,-32768,   527,-32768,-32768,-32768,-32768,-32768,  3955,
903 -32768,-32768,-32768,-32768,  3919,-32768,-32768,-32768,   741,-32768,
904 -32768,-32768,-32768,  3937,-32768,    48,-32768,   498,-32768,   498,
905 -32768,-32768,-32768,   737,   755,-32768,-32768,-32768,  3019,-32768,
906 -32768,   812,   743,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
907    747,-32768,   767,    64,   746,-32768,-32768,   623,   623,-32768,
908 -32768,  3019,   812,   751,   812,-32768,-32768,  3019,   753,    66,
909 -32768,-32768,   760,-32768,   599,   765,-32768,   457,   284,-32768,
910 -32768,   768,   599,-32768,-32768,   457,   839,   862,-32768
911 };
912
913 static const short yypgoto[] = {-32768,
914 -32768,-32768,-32768,   105,  -375,-32768,-32768,-32768,-32768,-32768,
915 -32768,-32768,   -14,-32768,   -56,   439,  -226,   355,-32768,-32768,
916    -74,-32768,   596,-32768,-32768,-32768,-32768,-32768,    65,  -310,
917 -32768,  -313,   536,-32768,-32768,   358,-32768,   248,   -46,   127,
918     15,   786,-32768,   202,    38,   -26,  -172,   606,   492,  -244,
919   -602,   -82,  -181,  -120,-32768,-32768,-32768,  -262,    44,   -32,
920 -32768,   460,-32768,   197,-32768,  -672,-32768,    86,-32768,  -631,
921 -32768,-32768,   186,-32768,-32768,-32768,-32768,-32768,-32768,   -73,
922   -109,  -502,     2,-32768,-32768,-32768,   -78,-32768,-32768,-32768,
923 -32768,-32768,   400,   -27,-32768,   533,   414,   216,   526,   407,
924    -24,   -75,  -159,  -168,  -236,   392,-32768,-32768,  -239,-32768,
925 -32768,-32768,   496,  -143,-32768,   326,-32768,  -526,-32768,-32768,
926 -32768,-32768,  -192,  -449,  -719,   396,-32768,    34,-32768,-32768,
927 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,    35,-32768,
928   -817,   -25,-32768,   -22,-32768,   502,-32768,  -353,-32768,   495,
929    497,   349,  -306,-32768,-32768,-32768,-32768,    17,-32768,   903,
930 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
931 -32768,-32768,-32768,-32768,    -9,     5,  -355,-32768,   368,-32768,
932    280,    91,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  -300,
933 -32768,-32768,-32768,    97,   380,-32768,-32768,-32768,-32768,   -23,
934    630,-32768,-32768,   404,-32768,   107,   408,-32768,   518,   520,
935   -140,-32768,  -127,-32768,-32768,   240,   341,-32768,-32768,-32768,
936 -32768,-32768,-32768,   597,-32768,-32768,-32768
937 };
938
939
940 #define YYLAST          4009
941
942
943 static const short yytable[] = {   124,
944    141,    63,   212,    92,    67,    68,    86,   334,    71,   209,
945     63,    74,   220,   446,    72,   445,    32,    32,    42,    42,
946     92,    92,    92,    94,    96,    98,    70,   344,    70,   470,
947    229,   230,    81,   195,   337,   475,   305,   233,   472,    33,
948     33,   422,   181,   405,   414,    36,    36,    92,   242,   306,
949    354,   670,    53,    54,    55,    92,    32,   184,    42,   190,
950    278,   188,   520,   356,   551,   624,   284,   225,   659,   290,
951    778,    70,   799,   321,    80,    70,    88,   886,   192,    33,
952   -113,   471,   547,   578,   861,    36,   213,   922,   477,   462,
953    237,   461,   272,   232,   338,    75,   483,   736,   374,   827,
954     75,   931,    14,   943,   318,   955,   361,    50,    59,    60,
955    851,   413,   198,   199,   263,   264,   265,    -1,   424,   855,
956     80,   197,    14,   425,  -176,   923,   208,    14,    80,   320,
957    953,   294,  -176,   298,   219,   220,    -2,    59,    60,   334,
958    344,   944,   328,   956,   662,   686,    99,   687,   301,    76,
959    334,  -185,  -185,   657,   282,   887,   334,   300,    77,   828,
960    911,   569,   185,  -113,    56,   858,   579,   309,   310,   514,
961    313,   314,   714,  -176,    61,    92,   518,  -176,   422,    62,
962    797,   371,   522,   186,   354,   283,    92,   736,   283,   535,
963     59,    60,   319,   926,    59,    60,   323,   356,   930,   405,
964    932,   650,   695,    61,   147,   192,   187,   220,    62,   940,
965     59,    60,   362,    14,   406,   378,   515,   873,    93,   468,
966    382,    57,   383,   853,   897,   418,   379,   466,    75,    59,
967     60,   469,   197,    14,    80,   495,   419,   208,    80,   357,
968    148,   964,   345,   346,   640,   420,   421,   208,   299,    58,
969     92,   -35,    82,   402,   403,    14,    61,   219,    16,   467,
970     61,    62,   519,   844,   845,    62,   198,   199,    51,    52,
971    616,   565,   759,   621,   427,    95,    61,    76,   813,    83,
972     85,    62,    16,   753,   566,   595,    77,   597,   576,   474,
973     14,    97,   434,   577,   491,    61,    59,    60,   635,   436,
974     62,   146,    14,    92,   221,    59,    60,   291,   292,   293,
975     75,   202,   777,    70,   318,   189,    75,   202,   515,   148,
976    622,   768,   769,   626,   283,   224,    14,   193,   627,   501,
977    482,   194,   484,   198,   199,   688,   689,    14,   319,   690,
978    755,   226,   323,    14,   220,    75,   202,   830,   280,   228,
979    362,   607,   244,   761,   736,    59,    60,   281,   282,   203,
980    231,   962,    61,   -34,   525,   203,   963,    62,   204,    36,
981     16,    61,    14,   357,   204,   881,    62,   345,   346,   705,
982    208,   205,   786,   208,   208,   182,    89,   205,    90,   198,
983    199,   305,    16,   507,   203,   636,   770,   771,   772,   638,
984    746,   775,   776,   204,   306,   339,   183,   243,   542,   340,
985    294,   946,   947,   433,   239,   318,   205,   240,    75,   202,
986    414,    61,   241,   787,    86,   347,    62,   546,   790,   194,
987    266,   267,   782,   268,   269,   270,   271,   585,    14,   420,
988    421,    70,   574,   533,   682,    14,   575,   684,   549,   550,
989    459,   615,   901,   244,   553,   838,   283,   768,   769,    36,
990    280,   846,   283,  -480,   604,   272,   534,   203,   709,   281,
991    282,   362,    36,    75,   655,    36,   204,   554,   565,   273,
992    705,   246,   248,    36,   831,   832,   833,   766,   279,   205,
993    287,   566,   597,   773,    88,   661,   665,   307,   329,   317,
994     14,  -339,  -339,  -339,  -339,   197,   311,    86,  -176,  -339,
995   -339,  -339,   324,   613,   350,   629,  -176,   614,   558,   559,
996    560,   351,   656,   359,    87,  -339,   854,    86,   561,   518,
997    522,   657,   282,   380,   834,   782,   518,   522,   835,   198,
998    199,   367,   368,   369,  -339,   558,   559,   560,   143,   -86,
999    407,   533,   849,   645,   872,   642,   340,  -176,   558,   559,
1000    560,  -176,   408,   412,   212,   850,  -339,   732,   760,   194,
1001    428,  -339,   660,   664,   534,   426,   431,    88,   762,   762,
1002     36,  -112,   429,   915,   261,   262,   263,   264,   265,   894,
1003    437,  -478,   779,   442,   924,    80,   925,    88,   220,   712,
1004    907,   478,   441,   480,   340,   197,   143,   102,   458,   731,
1005    459,   767,   789,   789,   658,   663,   774,   909,    36,   757,
1006    758,   194,   752,    75,   655,    92,   465,   318,   476,   479,
1007     92,   485,   916,   748,   486,   494,   289,   493,   734,   497,
1008    745,   558,   559,   560,   958,   498,   499,   500,   645,   502,
1009     14,   836,   966,   505,   526,   506,   544,   732,   192,   521,
1010    530,   735,   553,   570,   143,   548,   568,    36,   812,   573,
1011    278,   589,   656,   575,   590,   658,   645,   592,   611,   625,
1012    791,   657,   282,   598,   599,   554,   602,   552,  -316,   208,
1013     80,    36,   620,   344,   628,   208,   208,   571,   572,   731,
1014    663,   220,   631,   637,   669,   654,   579,   275,    86,    36,
1015    672,   814,   848,   685,   143,   334,   208,   334,    80,    72,
1016    257,   258,   259,   260,   261,   262,   263,   264,   265,   788,
1017    208,   143,    70,    70,   691,   692,   143,    75,   143,   876,
1018    707,   318,   713,   708,   754,   859,   875,   -32,   862,   865,
1019    793,   794,   795,   -33,   802,    92,   869,   805,   806,   734,
1020    808,   745,   809,   810,    14,   815,   817,   319,   323,   762,
1021    818,   882,   823,   819,   319,   323,   837,   842,    88,   860,
1022    632,   843,   735,   868,   870,   871,   662,   885,    36,   893,
1023    143,   892,   896,   898,   900,   657,   282,   215,   216,   217,
1024    646,   647,   902,   899,     9,    10,    11,   903,   914,   658,
1025    658,   905,   652,   653,   906,   927,   663,   663,   917,   928,
1026    933,   937,    14,   878,   732,   941,   366,   942,   945,   951,
1027    954,   673,   675,   781,   216,   217,   748,   957,   968,   381,
1028      9,    10,    11,   960,   384,   385,   965,   289,   143,   390,
1029    391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
1030    401,   969,   862,   208,   529,    80,   731,   463,   617,   863,
1031    196,   829,   214,   -28,   -28,   -28,   -28,   780,   658,   784,
1032    857,   -28,   -28,   -28,   527,   949,   208,   603,   798,   481,
1033    488,   862,   601,   596,   423,   552,   197,   -28,   563,  -176,
1034    785,     5,   618,     7,   140,   517,   671,  -176,   623,     9,
1035     10,    11,   216,   217,   912,   913,   -28,   950,     9,    10,
1036     11,   523,   952,   668,   143,    13,   540,    73,   541,   651,
1037    198,   199,   765,   891,   649,   143,   889,   435,   -28,   630,
1038    634,   883,    87,   -28,    16,   531,   800,   532,  -176,   710,
1039      0,     0,  -176,   -28,     0,   586,   256,   257,   258,   259,
1040    260,   261,   262,   263,   264,   265,    22,  -454,  -454,  -454,
1041      0,    24,   496,     0,     0,     0,   564,  -454,     0,     0,
1042    143,   820,   822,   503,   504,     0,   274,     0,  -319,  -319,
1043   -319,  -319,  -319,  -319,  -319,     0,  -319,  -319,  -319,  -319,
1044   -319,     0,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
1045   -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,  -319,
1046   -319,     0,     0,     0,     0,    87,     0,  -319,     0,     0,
1047   -319,     0,  -319,     0,     0,  -319,  -319,  -319,     0,     0,
1048      0,  -319,  -319,     0,     0,    87,  -319,  -319,     0,     0,
1049      0,  -319,     0,  -319,  -319,     0,     0,   289,  -319,  -319,
1050      0,     0,  -319,     0,  -319,   275,  -319,  -319,     0,  -319,
1051      0,     0,     0,     0,     0,     0,   676,     0,     0,     0,
1052    600,   259,   260,   261,   262,   263,   264,   265,   329,     0,
1053   -125,  -125,  -125,  -125,  -125,  -125,  -125,   612,  -125,  -125,
1054   -125,  -125,  -125,     0,  -125,  -125,  -125,  -125,  -125,  -125,
1055   -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,  -125,     0,
1056   -125,  -125,  -125,     0,     0,     0,     0,     0,     0,  -125,
1057      0,     0,  -125,     0,  -125,     0,     0,  -125,  -125,  -125,
1058      0,     0,   143,  -125,  -125,     0,     0,     0,  -125,  -125,
1059      0,     0,     0,  -125,     0,  -125,  -125,     0,     0,     0,
1060   -125,  -125,     0,     0,  -125,     0,  -125,  -125,  -125,  -125,
1061      0,  -125,   258,   259,   260,   261,   262,   263,   264,   265,
1062    266,   267,   680,   268,   269,   270,   271,     0,     0,     0,
1063      0,   509,     0,  -339,  -339,  -339,  -339,  -339,  -339,  -339,
1064    698,  -339,  -339,  -339,  -339,  -339,     0,  -339,  -339,  -339,
1065   -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,  -339,
1066   -339,  -339,     0,  -339,  -339,  -339,    87,     0,     0,     0,
1067      0,     0,  -339,     0,     0,  -339,     0,  -339,     0,     0,
1068   -339,  -339,  -339,     0,     0,     0,  -339,  -339,     0,     0,
1069      0,  -339,  -339,     0,     0,     0,  -339,     0,  -339,  -339,
1070      0,     0,     0,  -339,  -339,     0,     0,  -339,     0,  -339,
1071      0,  -339,  -339,     0,  -339,     0,     0,   234,   680,   100,
1072      5,     0,     7,   140,   101,   102,     0,   103,     9,    10,
1073     11,     0,     0,     0,     0,     0,     0,     0,     0,   698,
1074      0,     0,     0,     0,    13,   104,   801,    15,     0,   105,
1075    106,   107,     0,     0,     0,     0,   807,     0,   108,     0,
1076      0,   109,     0,    16,     0,     0,   110,   111,   112,     0,
1077      0,     0,   113,   114,     0,     0,     0,   115,   116,     0,
1078      0,     0,   117,     0,   118,    22,     0,     0,     0,   119,
1079     24,     0,     0,   120,     0,     0,   841,   121,   122,     0,
1080    235,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1081      0,   329,     0,     0,  -116,  -116,  -116,  -116,   698,     0,
1082   -116,   852,  -116,  -116,  -116,     0,     0,   698,     0,     0,
1083    698,     0,   698,     0,     0,     0,     0,     0,  -116,     0,
1084      0,     0,     0,     0,     0,     0,     0,     0,   329,     0,
1085   -339,  -339,     0,     0,     0,  -339,  -339,  -116,  -339,     0,
1086      0,     0,  -339,     0,  -339,  -339,  -339,  -339,  -339,  -339,
1087   -339,  -339,  -339,  -339,  -339,     0,  -339,   890,  -339,  -116,
1088   -339,  -339,  -339,     0,  -116,     0,     0,     0,   895,  -339,
1089      0,   698,  -339,     0,  -116,     0,     0,  -339,  -339,  -339,
1090      0,   904,     0,  -339,  -339,     0,     0,     0,  -339,  -339,
1091      0,     0,     0,  -339,     0,  -339,  -339,     0,     0,     0,
1092   -339,  -339,     0,     0,  -339,     0,  -339,  -312,  -339,  -339,
1093    824,  -339,  -339,  -339,     0,     0,     0,  -339,  -339,     0,
1094   -339,     0,     0,     0,  -339,     0,  -339,  -339,  -339,  -339,
1095   -339,  -339,  -339,  -339,  -339,  -339,  -339,     0,  -339,     0,
1096   -339,     0,  -339,  -339,  -339,     0,     0,     0,     0,     0,
1097      0,  -339,     0,     0,  -339,     0,     0,     0,     0,  -339,
1098   -339,  -339,     0,     0,     0,  -339,  -339,     0,     0,     0,
1099   -339,  -339,     0,     0,     0,  -339,     0,  -339,  -339,     0,
1100      0,     0,  -339,  -339,     0,     0,  -339,     0,  -339,     0,
1101   -339,  -339,   879,  -339,  -349,  -349,     0,     0,     0,  -349,
1102   -349,     0,  -349,     0,     0,     0,  -349,     0,  -349,  -349,
1103   -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,     0,
1104   -349,     0,  -349,     0,  -349,  -349,  -349,     0,     0,     0,
1105      0,     0,     0,  -349,     0,     0,  -349,     0,     0,     0,
1106      0,  -349,  -349,  -349,     0,     0,     0,  -349,  -349,     0,
1107      0,     0,  -349,  -349,     0,     0,     0,  -349,     0,  -349,
1108   -349,     0,     0,     0,  -349,  -349,     0,     0,  -349,     0,
1109   -349,     0,  -349,  -349,   693,  -349,   694,    60,     0,     0,
1110      0,   101,   102,   251,   103,   252,   253,   254,   255,   256,
1111    257,   258,   259,   260,   261,   262,   263,   264,   265,     0,
1112      0,     0,   104,     0,    15,     0,   105,   106,   107,     0,
1113      0,     0,     0,     0,     0,   108,     0,     0,   109,     0,
1114      0,     0,     0,   110,   111,   112,     0,     0,     0,   113,
1115    114,     0,     0,   695,   115,   116,     0,     0,     0,   117,
1116      0,   118,    61,     0,     0,     0,   119,    62,     0,     0,
1117    120,     0,     0,  -204,   121,   122,   693,   696,   694,    60,
1118      0,     0,     0,   101,   102,     0,   103,   253,   254,   255,
1119    256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1120      0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
1121    107,     0,     0,     0,     0,     0,     0,   108,     0,     0,
1122    109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
1123      0,   113,   114,     0,     0,   695,   115,   116,     0,     0,
1124      0,   117,     0,   118,    61,     0,     0,     0,   119,    62,
1125      0,     0,   120,     0,     0,  -269,   121,   122,   693,   696,
1126    100,     0,     0,     0,     0,   101,   102,     0,   103,   254,
1127    255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1128    265,     0,     0,     0,     0,     0,   104,     0,    15,     0,
1129    105,   106,   107,     0,     0,  -217,     0,     0,     0,   108,
1130      0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
1131      0,     0,     0,   113,   114,     0,     0,  -217,   115,   116,
1132      0,     0,     0,   117,     0,   118,     0,     0,     0,     0,
1133    119,     0,     0,     0,   120,   678,     0,   100,   121,   122,
1134      0,   696,   101,   102,     0,   103,   255,   256,   257,   258,
1135    259,   260,   261,   262,   263,   264,   265,     0,     0,     0,
1136      0,     0,     0,   104,     0,    15,     0,   105,   106,   107,
1137      0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
1138      0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
1139    113,   114,     0,     0,     0,   115,   116,     0,     0,     0,
1140    117,     0,   118,     0,     0,     0,     0,   119,     0,     0,
1141      0,   120,   693,     0,   100,   121,   122,     0,   679,   101,
1142    102,     0,   103,     4,     0,  -129,     5,     6,     7,     8,
1143      0,     0,     0,     0,     9,    10,    11,     0,     0,     0,
1144    104,     0,    15,     0,   105,   106,   107,     0,     0,     0,
1145     13,     0,    14,   108,     0,     0,   109,     0,     0,     0,
1146      0,   110,   111,   112,     0,     0,     0,   113,   114,    16,
1147      0,     0,   115,   116,  -129,     0,     0,   117,     0,   118,
1148      0,     0,     0,  -129,   119,     0,     0,     0,   120,     0,
1149      0,    22,   121,   122,   348,   696,    24,   -24,   -24,   -24,
1150    -24,    27,     0,     0,     0,   -24,   -24,   -24,     0,     0,
1151      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1152    197,   -24,   342,  -176,     0,   -20,   -20,   -20,   -20,     0,
1153      0,  -176,     0,   -20,   -20,   -20,     5,     6,     7,     8,
1154    -24,     0,     0,     0,     9,    10,    11,     0,   197,   -20,
1155      0,  -176,     0,     0,   198,   199,     0,     0,     0,  -176,
1156     13,     0,   -24,     0,     0,     0,     0,   -24,   -20,     0,
1157      0,     0,  -176,     0,     0,     0,  -176,   -24,     0,    16,
1158    329,     0,     0,     5,     6,     7,     8,     0,     0,     0,
1159    -20,     9,    10,    11,     0,   -20,     0,     0,     0,     0,
1160   -176,    22,     0,     0,  -176,   -20,    24,    13,   329,    14,
1161      0,  -502,  -502,  -502,  -502,     0,     0,     0,     0,  -502,
1162   -502,  -502,     5,     0,     7,   140,    16,     0,     0,     0,
1163      9,    10,    11,     0,     0,  -502,   100,  -502,     0,     0,
1164      0,   101,   102,     0,   103,     0,    13,     0,    22,     0,
1165      0,     0,     0,    24,  -502,     0,     0,     0,     0,     0,
1166      0,     0,   104,  -500,    15,    16,   105,   106,   107,     0,
1167      0,     0,     0,     0,     0,   108,  -502,     0,   109,     0,
1168      0,  -502,     0,   110,   111,   112,     0,    22,     0,   113,
1169    114,  -502,    24,     0,   115,   116,     0,   100,     0,   117,
1170      0,   118,   101,   102,     0,   103,   119,     0,     0,     0,
1171    120,     0,     0,     0,   121,   122,     0,     0,   327,     0,
1172      0,     0,     0,   104,     0,    15,     0,   105,   106,   107,
1173      0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
1174      0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
1175    113,   114,     0,     0,     0,   115,   116,     0,   100,     0,
1176    117,     0,   118,   101,   102,     0,   103,   119,     0,     0,
1177      0,   120,     0,     0,     0,   121,   122,     0,     0,   417,
1178      0,     0,     0,     0,   104,     0,    15,     0,   105,   106,
1179    107,     0,     0,     0,     0,     0,     0,   108,     0,     0,
1180    109,     0,     0,     0,     0,   110,   111,   112,     0,     0,
1181      0,   113,   114,     0,     0,     0,   115,   116,     0,   100,
1182      0,   117,     0,   118,   101,   102,     0,   103,   119,     0,
1183      0,     0,   120,     0,     0,     0,   121,   122,     0,     0,
1184    473,     0,     0,     0,     0,   104,     0,    15,     0,   105,
1185    106,   107,     0,     0,     0,     0,     0,     0,   108,     0,
1186      0,   109,     0,     0,     0,     0,   110,   111,   112,     0,
1187      0,     0,   113,   114,     0,     0,     0,   115,   116,     0,
1188    100,     0,   117,     0,   118,   101,   102,     0,   103,   119,
1189      0,     0,     0,   120,     0,     0,     0,   121,   122,     0,
1190      0,   524,     0,     0,     0,     0,   104,     0,    15,     0,
1191    105,   106,   107,     0,     0,     0,     0,     0,     0,   108,
1192      0,     0,   109,     0,     0,     0,     0,   110,   111,   112,
1193      0,     0,     0,   113,   114,     0,     0,     0,   115,   116,
1194      0,     0,     0,   117,     0,   118,     0,     0,     0,     0,
1195    119,     0,     0,     0,   120,     0,     0,     0,   121,   122,
1196      0,     0,   847,   694,   715,     6,     7,     8,   101,   102,
1197      0,   103,     9,    10,    11,   716,     0,   717,   718,   719,
1198    720,   721,   722,   723,   724,   725,   726,   727,    13,   104,
1199     14,    15,     0,   105,   106,   107,     0,     0,     0,     0,
1200      0,     0,   108,     0,     0,   109,     0,    16,     0,     0,
1201    110,   111,   112,     0,     0,     0,   113,   114,     0,     0,
1202      0,   115,   116,     0,     0,     0,   117,     0,   118,   728,
1203      0,     0,     0,   119,   729,     0,     0,   120,     0,   730,
1204      0,   121,   122,     0,   579,   694,    60,     0,     0,     0,
1205    101,   102,     0,   103,     0,     0,     0,   716,     0,   717,
1206    718,   719,   720,   721,   722,   723,   724,   725,   726,   727,
1207      0,   104,     0,    15,     0,   105,   106,   107,     0,     0,
1208      0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
1209      0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
1210      0,   100,     0,   115,   116,     0,   101,   102,   117,   103,
1211    118,    61,     0,     0,     0,   119,    62,     0,     0,   120,
1212      0,   730,     0,   121,   122,     0,   579,   104,     0,    15,
1213      0,   105,   106,   107,     0,     0,     0,     0,     0,     0,
1214    108,     0,     0,   109,     0,     0,     0,     0,   110,   111,
1215    112,     0,     0,     0,   113,   114,     0,     0,     0,   115,
1216    116,     0,     0,     0,   117,     0,   118,     0,     0,     0,
1217      0,   119,     0,     0,     0,   120,     0,     0,     0,   121,
1218    122,     0,   490,   149,   150,     0,   151,   152,     0,     0,
1219      0,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1220    162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1221      0,     0,     0,   100,     5,     6,     7,     8,   101,   102,
1222    172,   103,     9,    10,    11,     5,     6,     7,     8,     0,
1223      0,     0,     0,     9,    10,    11,     0,     0,    13,   104,
1224     14,    15,     0,   105,   106,   107,     0,     0,     0,    13,
1225      0,    14,   108,     0,   174,   109,     0,    16,     0,     0,
1226    110,   111,   112,   303,     0,     0,   113,   114,    16,     0,
1227      0,   115,   116,     0,     0,     0,   117,     0,   118,    22,
1228      0,     0,     0,   119,    24,     0,     0,   120,     0,     0,
1229     22,   121,   122,   100,     5,    24,     7,   140,   101,   102,
1230     84,   103,     9,    10,    11,     0,     0,     0,     0,     0,
1231      0,     0,     0,     0,     0,     0,     0,     0,    13,   104,
1232      0,    15,     0,   105,   106,   107,     0,     0,     0,     0,
1233      0,     0,   108,     0,     0,   109,     0,    16,     0,     0,
1234    110,   111,   112,     0,     0,     0,   113,   114,     0,   100,
1235      0,   115,   116,     0,   101,   102,   117,   103,   118,    22,
1236      0,     0,     0,   119,    24,     0,     0,   120,     0,     0,
1237      0,   121,   122,     0,     0,   104,     0,    15,     0,   105,
1238    106,   107,     0,     0,     0,     0,     0,     0,   108,     0,
1239      0,   109,     0,     0,     0,     0,   110,   111,   112,     0,
1240      0,     0,   113,   114,     0,   100,     0,   115,   116,     0,
1241    101,   102,   117,   103,   118,   370,     0,     0,     0,   119,
1242      0,     0,     0,   120,     0,     0,     0,   121,   122,     0,
1243      0,   104,     0,    15,     0,   105,   106,   107,     0,     0,
1244      0,     0,     0,     0,   108,     0,     0,   109,     0,     0,
1245      0,     0,   110,   111,   112,     0,     0,     0,   113,   114,
1246      0,   100,     0,   115,   116,     0,   101,   102,   117,   103,
1247    118,     0,     0,     0,     0,   119,     0,     0,     0,   120,
1248      0,   811,     0,   121,   122,     0,     0,   104,     0,    15,
1249      0,   105,   106,   107,     0,     0,     0,     0,     0,     0,
1250    108,     0,     0,   109,     0,     0,     0,     0,   110,   111,
1251    112,     0,     0,     0,   113,   114,     0,   100,     0,   115,
1252    116,     0,   101,   102,   117,   103,   118,     0,     0,     0,
1253      0,   119,     0,     0,     0,   120,     0,     0,     0,   121,
1254    122,     0,     0,   104,     0,    15,     0,   105,   106,   107,
1255      0,     0,     0,     0,     0,     0,   108,     0,     0,   109,
1256      0,     0,     0,     0,   110,   111,   112,     0,     0,     0,
1257    113,   114,     0,   100,     0,   245,   116,     0,   101,   102,
1258    117,   103,   118,     0,     0,     0,     0,   119,     0,     0,
1259      0,   120,     0,     0,     0,   121,   122,     0,     0,   104,
1260      0,    15,     0,   105,   106,   107,     0,     0,     0,     0,
1261      0,     0,   108,     0,     0,   109,     0,     0,     0,     0,
1262    110,   111,   112,     0,     0,     0,   113,   114,     0,   528,
1263      0,   247,   116,     0,   101,   102,   117,   103,   118,     0,
1264      0,     0,     0,   119,     0,     0,     0,   120,     0,     0,
1265      0,   121,   122,     0,     0,   104,     0,    15,     0,   105,
1266    106,   107,     0,     0,     0,     0,     0,     0,   108,     0,
1267      0,   109,     0,     0,     0,     0,   110,   111,   112,     0,
1268      0,     0,   113,   114,     0,     0,     0,   115,   116,     0,
1269      0,     0,   117,     0,   118,     0,     0,     0,     0,   119,
1270      0,     0,     0,   120,     0,     0,   563,   121,   122,     5,
1271    352,     7,   140,     5,     0,     7,   140,     9,    10,    11,
1272      0,     9,    10,    11,     0,     0,     0,     0,     0,     0,
1273      0,     0,     0,    13,     0,     0,     0,    13,     0,     5,
1274     15,     7,   288,     0,     0,     0,     0,     9,    10,    11,
1275      0,     0,    16,     0,     0,     0,    16,     5,    89,     7,
1276     90,     0,     0,    13,     0,     9,    10,    11,     0,     0,
1277      0,     0,     0,     0,    22,  -453,  -453,  -453,    22,    24,
1278      0,    13,    16,    24,   564,  -453,     0,     0,   353,  -272,
1279      4,     0,  -129,     5,     6,     7,     8,     0,     0,     0,
1280     16,     9,    10,    11,    22,     0,     0,     0,     0,    24,
1281      0,     0,     0,     0,  -281,  -281,    12,    13,     0,    14,
1282     15,     0,    22,     0,     0,     0,     0,    24,     0,     0,
1283      0,     0,   674,     0,     0,     0,    16,     0,     0,    17,
1284     18,  -129,     0,     0,     0,     0,     0,     0,     0,     0,
1285   -129,     0,    19,    20,    21,     0,     0,     0,    22,     0,
1286      0,     0,    23,    24,    25,    26,     0,     4,    27,  -129,
1287      5,     6,     7,     8,     0,     0,     0,     0,     9,    10,
1288     11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1289      0,     0,     0,     0,    13,   447,    14,   448,     5,     6,
1290      7,     8,     0,     0,   449,     0,     9,    10,    11,     0,
1291      0,     0,     0,    16,     0,     0,   549,   550,  -129,     0,
1292      0,     0,    13,     0,    14,   447,     0,  -129,     5,     6,
1293      7,     8,     0,     0,   449,    22,     9,    10,    11,     0,
1294     24,    16,     0,     0,     0,    27,     0,     0,     0,     0,
1295      0,     0,    13,     0,    14,     0,     5,     6,     7,     8,
1296      0,     0,     0,    22,     9,    10,    11,     0,    24,     0,
1297      0,    16,  -399,     0,     0,     0,     0,     0,     0,     0,
1298     13,     0,    14,     0,     0,     0,     5,     6,     7,     8,
1299      0,     0,     0,    22,     9,    10,    11,     0,    24,    16,
1300      0,     0,  -399,   352,     0,     0,     5,     0,     7,   140,
1301     13,     0,    14,     0,     9,    10,    11,     0,     0,     0,
1302      0,    22,     0,     0,     0,     0,    24,     0,     0,    16,
1303     13,   633,     0,    15,     0,     0,     0,     0,     0,     0,
1304      0,     0,     0,     0,     0,     0,     0,     0,     0,    16,
1305      0,    22,     0,     0,     0,     0,    24,     0,     0,     0,
1306      0,   821,     0,     0,     0,     0,     0,     0,     0,   149,
1307    150,    22,   151,   152,     0,     0,    24,   153,   154,   155,
1308    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1309    166,   167,   168,   169,   170,   171,     0,     0,     0,   149,
1310    150,     0,   151,   152,     0,     0,   172,   153,   154,   155,
1311    156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1312    166,   167,   168,   169,   170,   171,     0,   173,     0,     0,
1313      0,     0,     0,     0,   149,   150,   373,   151,   152,     0,
1314    174,     0,   153,   154,   155,   156,   157,   158,   159,   160,
1315    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1316    171,     0,     0,     0,   149,   150,     0,   151,   152,     0,
1317    174,   172,   153,   154,   155,   156,   157,   158,   159,   160,
1318    161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1319    171,     0,     0,     0,     5,     0,     7,   288,     0,     0,
1320      0,   606,     9,    10,    11,   174,     5,     6,     7,     8,
1321      0,     0,   449,     0,     9,    10,    11,     0,    13,     0,
1322     14,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1323     13,     0,    14,     0,     0,   174,     0,    16,     0,     0,
1324      0,     0,   280,     0,     0,     0,     0,     0,     0,    16,
1325      0,   281,   282,     0,     0,     0,     0,     0,     0,    22,
1326      5,     6,     7,     8,    24,     0,   667,     0,     9,    10,
1327     11,    22,     5,     6,     7,     8,    24,     0,     0,     0,
1328      9,    10,    11,     0,    13,     5,    14,     7,   288,     0,
1329      0,     0,     0,     9,    10,    11,    13,     0,    14,     0,
1330      0,     0,     0,    16,     0,     0,     0,     0,     0,    13,
1331      0,     0,     0,     0,     0,    16,     0,     0,     0,     0,
1332      0,     0,     0,     0,     0,    22,     0,     0,    16,     0,
1333     24,     0,     0,     0,     0,     0,     0,    22,     0,     0,
1334      0,     0,    24,   866,     0,     0,     0,     0,     0,     0,
1335     22,     0,   249,   250,   251,    24,   252,   253,   254,   255,
1336    256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1337    249,   250,   251,   867,   252,   253,   254,   255,   256,   257,
1338    258,   259,   260,   261,   262,   263,   264,   265,    14,     0,
1339      0,     0,     0,     0,     0,   249,   250,   251,   489,   252,
1340    253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1341    263,   264,   265,   249,   250,   251,   921,   252,   253,   254,
1342    255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1343    265,   249,   250,   251,     0,   252,   253,   254,   255,   256,
1344    257,   258,   259,   260,   261,   262,   263,   264,   265
1345 };
1346
1347 static const short yycheck[] = {    56,
1348     57,    16,    85,    36,    19,    20,    33,   200,    23,    83,
1349     25,    26,    91,   324,    24,   316,     2,     3,     2,     3,
1350     53,    54,    55,    38,    39,    40,    22,   209,    24,   343,
1351    105,   106,    31,    80,   203,   349,   177,   112,   345,     2,
1352      3,   286,    66,   270,   281,     2,     3,    80,   123,   177,
1353    223,   578,     9,    10,    11,    88,    42,    67,    42,    74,
1354    135,    71,   416,   223,   440,   515,   142,    95,   571,   145,
1355    673,    67,   704,   194,    31,    71,    33,     1,    77,    42,
1356      1,   344,   438,     1,   804,    42,    85,    40,   351,    10,
1357    115,   331,     9,   108,   204,     3,   359,   624,   239,     1,
1358      3,   919,    30,    40,     7,    40,     1,     3,     3,     4,
1359    783,   280,    61,    62,    52,    53,    54,     0,    78,   792,
1360     77,    27,    30,    83,    30,    78,    83,    30,    85,    78,
1361    948,   146,    38,   148,    91,   214,     0,     3,     4,   332,
1362    322,    78,   199,    78,    52,   595,    42,   597,   173,    52,
1363    343,    79,    80,    61,    62,    79,   349,   172,    61,    61,
1364    880,    78,    40,    84,    61,   797,    84,   182,   183,   409,
1365    185,   186,   622,    79,    69,   208,   413,    83,   423,    74,
1366     38,   238,   419,    61,   357,   142,   219,   714,   145,   429,
1367      3,     4,   191,   913,     3,     4,   195,   357,   918,   426,
1368    920,   557,    60,    69,    47,   204,    84,   286,    74,   929,
1369      3,     4,   227,    30,   271,   240,   409,   820,    84,   340,
1370    245,    61,   247,    40,   856,   282,   241,   337,     3,     3,
1371      4,   341,    27,    30,   191,   376,   283,   194,   195,   223,
1372     83,   961,    61,    62,   545,    61,    62,   204,    61,    61,
1373    283,    40,    79,   268,   269,    30,    69,   214,    47,    78,
1374     69,    74,    78,   766,   767,    74,    61,    62,    79,    80,
1375    510,   444,   648,   513,   299,    84,    69,    52,    52,    32,
1376     33,    74,    47,   639,   444,   478,    61,   480,    78,   346,
1377     30,    84,   307,    83,   369,    69,     3,     4,   538,   309,
1378     74,    61,    30,   336,    67,     3,     4,     5,     6,     7,
1379      3,     4,   666,   309,     7,    79,     3,     4,   511,    83,
1380    513,    61,    62,    78,   281,    84,    30,    79,    83,   386,
1381    358,    83,   360,    61,    62,   598,   599,    30,   337,   602,
1382    641,    84,   341,    30,   423,     3,     4,    78,    52,    84,
1383    365,   492,    83,    40,   881,     3,     4,    61,    62,    52,
1384     61,    78,    69,    40,   421,    52,    83,    74,    61,   326,
1385     47,    69,    30,   357,    61,   825,    74,    61,    62,   606,
1386    337,    74,    40,   340,   341,    40,     5,    74,     7,    61,
1387     62,   532,    47,   408,    52,   539,   659,   660,   661,   543,
1388    627,   664,   665,    61,   532,    79,    61,    78,   433,    83,
1389    425,   938,   939,    61,    61,     7,    74,    61,     3,     4,
1390    657,    69,    61,   686,   451,    79,    74,   437,   691,    83,
1391     56,    57,   677,    59,    60,    61,    62,   464,    30,    61,
1392     62,   437,    79,   429,   588,    30,    83,   591,    50,    51,
1393     79,    80,    78,    83,   440,   756,   413,    61,    62,   416,
1394     52,   768,   419,    65,   489,     9,   429,    52,   609,    61,
1395     62,   486,   429,     3,     4,   432,    61,   440,   651,    77,
1396    707,   127,   128,   440,   747,   748,   749,   656,    78,    74,
1397     78,   651,   685,   662,   451,   571,   572,    40,     1,    79,
1398     30,     4,     5,     6,     7,    27,    84,   534,    30,    12,
1399     13,    14,    61,    79,    61,   530,    38,    83,    70,    71,
1400     72,    80,    52,    80,    33,    28,   789,   554,    80,   766,
1401    767,    61,    62,    79,    79,   780,   773,   774,    83,    61,
1402     62,    78,    78,    78,    47,    70,    71,    72,    57,    40,
1403     78,   537,    79,   552,   817,    80,    83,    79,    70,    71,
1404     72,    83,    32,    78,   647,    79,    69,   624,    80,    83,
1405     78,    74,   571,   572,   537,    61,    10,   534,   652,   653,
1406    537,    84,    79,   884,    50,    51,    52,    53,    54,   852,
1407     78,    65,   675,    78,   908,   552,   910,   554,   677,   614,
1408     79,   354,    84,   356,    83,    27,   115,     9,    85,   624,
1409     79,   658,   686,   687,   571,   572,   663,    79,   575,   643,
1410    644,    83,   637,     3,     4,   658,    38,     7,    69,    79,
1411    663,    38,   895,   632,    83,    78,   145,    40,   624,    78,
1412    624,    70,    71,    72,   955,    78,    78,    78,   647,    40,
1413     30,    80,   963,    78,    78,    85,    84,   714,   657,    85,
1414     78,   624,   648,    78,   173,    65,    65,   624,   725,    78,
1415    745,    38,    52,    83,    85,   632,   675,    78,    40,    85,
1416    695,    61,    62,    80,    80,   648,    80,   440,    80,   646,
1417    647,   648,    80,   875,    78,   652,   653,   450,   451,   714,
1418    657,   780,    79,    78,     3,    79,    84,    80,   735,   666,
1419     79,   726,   769,    83,   223,   908,   673,   910,   675,   729,
1420     46,    47,    48,    49,    50,    51,    52,    53,    54,   686,
1421    687,   240,   728,   729,    80,    78,   245,     3,   247,   822,
1422     40,     7,    80,    85,    65,   802,   820,    40,   805,   806,
1423     40,    80,    83,    40,    61,   788,   813,    61,    61,   745,
1424     40,   745,    79,    79,    30,     7,    40,   766,   767,   843,
1425     79,   828,    16,    79,   773,   774,    65,    40,   735,    61,
1426    533,    83,   745,    79,    79,    61,    52,    65,   745,    80,
1427    299,    85,    80,    78,    17,    61,    62,     5,     6,     7,
1428    553,   554,    79,   860,    12,    13,    14,    78,    78,   766,
1429    767,    79,   565,   566,   871,    79,   773,   774,    78,    65,
1430      9,    79,    30,   822,   881,    79,   231,    61,    83,    79,
1431     78,   584,   585,     5,     6,     7,   835,    78,     0,   244,
1432     12,    13,    14,    79,   249,   250,    79,   356,   357,   254,
1433    255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
1434    265,     0,   919,   820,   426,   822,   881,   332,   511,   805,
1435      1,   745,    87,     4,     5,     6,     7,   676,   835,   683,
1436    795,    12,    13,    14,   425,   942,   843,   488,   703,   357,
1437    365,   948,   486,   480,   289,   648,    27,    28,     1,    30,
1438    685,     4,   511,     6,     7,   410,   581,    38,   513,    12,
1439     13,    14,     6,     7,   881,   881,    47,   943,    12,    13,
1440     14,   420,   945,   575,   433,    28,   432,    25,   432,   562,
1441     61,    62,   653,   843,   555,   444,   840,   308,    69,   532,
1442    537,   835,   451,    74,    47,   428,   707,   428,    79,   609,
1443     -1,    -1,    83,    84,    -1,   464,    45,    46,    47,    48,
1444     49,    50,    51,    52,    53,    54,    69,    70,    71,    72,
1445     -1,    74,   376,    -1,    -1,    -1,    79,    80,    -1,    -1,
1446    489,   734,   735,   388,   389,    -1,     1,    -1,     3,     4,
1447      5,     6,     7,     8,     9,    -1,    11,    12,    13,    14,
1448     15,    -1,    17,    18,    19,    20,    21,    22,    23,    24,
1449     25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1450     35,    -1,    -1,    -1,    -1,   534,    -1,    42,    -1,    -1,
1451     45,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,
1452     -1,    56,    57,    -1,    -1,   554,    61,    62,    -1,    -1,
1453     -1,    66,    -1,    68,    69,    -1,    -1,   566,    73,    74,
1454     -1,    -1,    77,    -1,    79,    80,    81,    82,    -1,    84,
1455     -1,    -1,    -1,    -1,    -1,    -1,   585,    -1,    -1,    -1,
1456    485,    48,    49,    50,    51,    52,    53,    54,     1,    -1,
1457      3,     4,     5,     6,     7,     8,     9,   502,    11,    12,
1458     13,    14,    15,    -1,    17,    18,    19,    20,    21,    22,
1459     23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
1460     33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,
1461     -1,    -1,    45,    -1,    47,    -1,    -1,    50,    51,    52,
1462     -1,    -1,   651,    56,    57,    -1,    -1,    -1,    61,    62,
1463     -1,    -1,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,
1464     73,    74,    -1,    -1,    77,    -1,    79,    80,    81,    82,
1465     -1,    84,    47,    48,    49,    50,    51,    52,    53,    54,
1466     56,    57,   587,    59,    60,    61,    62,    -1,    -1,    -1,
1467     -1,     1,    -1,     3,     4,     5,     6,     7,     8,     9,
1468    605,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
1469     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1470     30,    31,    -1,    33,    34,    35,   735,    -1,    -1,    -1,
1471     -1,    -1,    42,    -1,    -1,    45,    -1,    47,    -1,    -1,
1472     50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,
1473     -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,
1474     -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    79,
1475     -1,    81,    82,    -1,    84,    -1,    -1,     1,   683,     3,
1476      4,    -1,     6,     7,     8,     9,    -1,    11,    12,    13,
1477     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   704,
1478     -1,    -1,    -1,    -1,    28,    29,   711,    31,    -1,    33,
1479     34,    35,    -1,    -1,    -1,    -1,   721,    -1,    42,    -1,
1480     -1,    45,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
1481     -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
1482     -1,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,    73,
1483     74,    -1,    -1,    77,    -1,    -1,   761,    81,    82,    -1,
1484     84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1485     -1,     1,    -1,    -1,     4,     5,     6,     7,   783,    -1,
1486     10,   786,    12,    13,    14,    -1,    -1,   792,    -1,    -1,
1487    795,    -1,   797,    -1,    -1,    -1,    -1,    -1,    28,    -1,
1488     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
1489      3,     4,    -1,    -1,    -1,     8,     9,    47,    11,    -1,
1490     -1,    -1,    15,    -1,    17,    18,    19,    20,    21,    22,
1491     23,    24,    25,    26,    27,    -1,    29,   842,    31,    69,
1492     33,    34,    35,    -1,    74,    -1,    -1,    -1,   853,    42,
1493     -1,   856,    45,    -1,    84,    -1,    -1,    50,    51,    52,
1494     -1,   866,    -1,    56,    57,    -1,    -1,    -1,    61,    62,
1495     -1,    -1,    -1,    66,    -1,    68,    69,    -1,    -1,    -1,
1496     73,    74,    -1,    -1,    77,    -1,    79,    80,    81,    82,
1497      1,    84,     3,     4,    -1,    -1,    -1,     8,     9,    -1,
1498     11,    -1,    -1,    -1,    15,    -1,    17,    18,    19,    20,
1499     21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
1500     31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,
1501     -1,    42,    -1,    -1,    45,    -1,    -1,    -1,    -1,    50,
1502     51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,
1503     61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,    -1,
1504     -1,    -1,    73,    74,    -1,    -1,    77,    -1,    79,    -1,
1505     81,    82,     1,    84,     3,     4,    -1,    -1,    -1,     8,
1506      9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,    18,
1507     19,    20,    21,    22,    23,    24,    25,    26,    27,    -1,
1508     29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
1509     -1,    -1,    -1,    42,    -1,    -1,    45,    -1,    -1,    -1,
1510     -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,
1511     -1,    -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,
1512     69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,
1513     79,    -1,    81,    82,     1,    84,     3,     4,    -1,    -1,
1514     -1,     8,     9,    39,    11,    41,    42,    43,    44,    45,
1515     46,    47,    48,    49,    50,    51,    52,    53,    54,    -1,
1516     -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,
1517     -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,
1518     -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,
1519     57,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,    66,
1520     -1,    68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,
1521     77,    -1,    -1,    80,    81,    82,     1,    84,     3,     4,
1522     -1,    -1,    -1,     8,     9,    -1,    11,    42,    43,    44,
1523     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1524     -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
1525     35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,
1526     45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,
1527     -1,    56,    57,    -1,    -1,    60,    61,    62,    -1,    -1,
1528     -1,    66,    -1,    68,    69,    -1,    -1,    -1,    73,    74,
1529     -1,    -1,    77,    -1,    -1,    80,    81,    82,     1,    84,
1530      3,    -1,    -1,    -1,    -1,     8,     9,    -1,    11,    43,
1531     44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1532     54,    -1,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,
1533     33,    34,    35,    -1,    -1,    38,    -1,    -1,    -1,    42,
1534     -1,    -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,
1535     -1,    -1,    -1,    56,    57,    -1,    -1,    60,    61,    62,
1536     -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,
1537     73,    -1,    -1,    -1,    77,     1,    -1,     3,    81,    82,
1538     -1,    84,     8,     9,    -1,    11,    44,    45,    46,    47,
1539     48,    49,    50,    51,    52,    53,    54,    -1,    -1,    -1,
1540     -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
1541     -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,
1542     -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
1543     56,    57,    -1,    -1,    -1,    61,    62,    -1,    -1,    -1,
1544     66,    -1,    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,
1545     -1,    77,     1,    -1,     3,    81,    82,    -1,    84,     8,
1546      9,    -1,    11,     1,    -1,     3,     4,     5,     6,     7,
1547     -1,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,    -1,
1548     29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,
1549     28,    -1,    30,    42,    -1,    -1,    45,    -1,    -1,    -1,
1550     -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,    47,
1551     -1,    -1,    61,    62,    52,    -1,    -1,    66,    -1,    68,
1552     -1,    -1,    -1,    61,    73,    -1,    -1,    -1,    77,    -1,
1553     -1,    69,    81,    82,     1,    84,    74,     4,     5,     6,
1554      7,    79,    -1,    -1,    -1,    12,    13,    14,    -1,    -1,
1555     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1556     27,    28,     1,    30,    -1,     4,     5,     6,     7,    -1,
1557     -1,    38,    -1,    12,    13,    14,     4,     5,     6,     7,
1558     47,    -1,    -1,    -1,    12,    13,    14,    -1,    27,    28,
1559     -1,    30,    -1,    -1,    61,    62,    -1,    -1,    -1,    38,
1560     28,    -1,    69,    -1,    -1,    -1,    -1,    74,    47,    -1,
1561     -1,    -1,    79,    -1,    -1,    -1,    83,    84,    -1,    47,
1562      1,    -1,    -1,     4,     5,     6,     7,    -1,    -1,    -1,
1563     69,    12,    13,    14,    -1,    74,    -1,    -1,    -1,    -1,
1564     79,    69,    -1,    -1,    83,    84,    74,    28,     1,    30,
1565     -1,     4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,
1566     13,    14,     4,    -1,     6,     7,    47,    -1,    -1,    -1,
1567     12,    13,    14,    -1,    -1,    28,     3,    30,    -1,    -1,
1568     -1,     8,     9,    -1,    11,    -1,    28,    -1,    69,    -1,
1569     -1,    -1,    -1,    74,    47,    -1,    -1,    -1,    -1,    -1,
1570     -1,    -1,    29,    84,    31,    47,    33,    34,    35,    -1,
1571     -1,    -1,    -1,    -1,    -1,    42,    69,    -1,    45,    -1,
1572     -1,    74,    -1,    50,    51,    52,    -1,    69,    -1,    56,
1573     57,    84,    74,    -1,    61,    62,    -1,     3,    -1,    66,
1574     -1,    68,     8,     9,    -1,    11,    73,    -1,    -1,    -1,
1575     77,    -1,    -1,    -1,    81,    82,    -1,    -1,    85,    -1,
1576     -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
1577     -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,
1578     -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
1579     56,    57,    -1,    -1,    -1,    61,    62,    -1,     3,    -1,
1580     66,    -1,    68,     8,     9,    -1,    11,    73,    -1,    -1,
1581     -1,    77,    -1,    -1,    -1,    81,    82,    -1,    -1,    85,
1582     -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,    34,
1583     35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,
1584     45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,
1585     -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,     3,
1586     -1,    66,    -1,    68,     8,     9,    -1,    11,    73,    -1,
1587     -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -1,    -1,
1588     85,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,    33,
1589     34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
1590     -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,
1591     -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
1592      3,    -1,    66,    -1,    68,     8,     9,    -1,    11,    73,
1593     -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -1,
1594     -1,    85,    -1,    -1,    -1,    -1,    29,    -1,    31,    -1,
1595     33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,
1596     -1,    -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,
1597     -1,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,
1598     -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,
1599     73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,
1600     -1,    -1,    85,     3,     4,     5,     6,     7,     8,     9,
1601     -1,    11,    12,    13,    14,    15,    -1,    17,    18,    19,
1602     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1603     30,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
1604     -1,    -1,    42,    -1,    -1,    45,    -1,    47,    -1,    -1,
1605     50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,    -1,
1606     -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,
1607     -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    79,
1608     -1,    81,    82,    -1,    84,     3,     4,    -1,    -1,    -1,
1609      8,     9,    -1,    11,    -1,    -1,    -1,    15,    -1,    17,
1610     18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1611     -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
1612     -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,    -1,
1613     -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,
1614     -1,     3,    -1,    61,    62,    -1,     8,     9,    66,    11,
1615     68,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,    77,
1616     -1,    79,    -1,    81,    82,    -1,    84,    29,    -1,    31,
1617     -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,
1618     42,    -1,    -1,    45,    -1,    -1,    -1,    -1,    50,    51,
1619     52,    -1,    -1,    -1,    56,    57,    -1,    -1,    -1,    61,
1620     62,    -1,    -1,    -1,    66,    -1,    68,    -1,    -1,    -1,
1621     -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,
1622     82,    -1,    84,     3,     4,    -1,     6,     7,    -1,    -1,
1623     -1,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1624     20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1625     -1,    -1,    -1,     3,     4,     5,     6,     7,     8,     9,
1626     40,    11,    12,    13,    14,     4,     5,     6,     7,    -1,
1627     -1,    -1,    -1,    12,    13,    14,    -1,    -1,    28,    29,
1628     30,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    28,
1629     -1,    30,    42,    -1,    74,    45,    -1,    47,    -1,    -1,
1630     50,    51,    52,    83,    -1,    -1,    56,    57,    47,    -1,
1631     -1,    61,    62,    -1,    -1,    -1,    66,    -1,    68,    69,
1632     -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,
1633     69,    81,    82,     3,     4,    74,     6,     7,     8,     9,
1634     79,    11,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,
1635     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,    29,
1636     -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
1637     -1,    -1,    42,    -1,    -1,    45,    -1,    47,    -1,    -1,
1638     50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,     3,
1639     -1,    61,    62,    -1,     8,     9,    66,    11,    68,    69,
1640     -1,    -1,    -1,    73,    74,    -1,    -1,    77,    -1,    -1,
1641     -1,    81,    82,    -1,    -1,    29,    -1,    31,    -1,    33,
1642     34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
1643     -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,
1644     -1,    -1,    56,    57,    -1,     3,    -1,    61,    62,    -1,
1645      8,     9,    66,    11,    68,    69,    -1,    -1,    -1,    73,
1646     -1,    -1,    -1,    77,    -1,    -1,    -1,    81,    82,    -1,
1647     -1,    29,    -1,    31,    -1,    33,    34,    35,    -1,    -1,
1648     -1,    -1,    -1,    -1,    42,    -1,    -1,    45,    -1,    -1,
1649     -1,    -1,    50,    51,    52,    -1,    -1,    -1,    56,    57,
1650     -1,     3,    -1,    61,    62,    -1,     8,     9,    66,    11,
1651     68,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,
1652     -1,    79,    -1,    81,    82,    -1,    -1,    29,    -1,    31,
1653     -1,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,
1654     42,    -1,    -1,    45,    -1,    -1,    -1,    -1,    50,    51,
1655     52,    -1,    -1,    -1,    56,    57,    -1,     3,    -1,    61,
1656     62,    -1,     8,     9,    66,    11,    68,    -1,    -1,    -1,
1657     -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    81,
1658     82,    -1,    -1,    29,    -1,    31,    -1,    33,    34,    35,
1659     -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,    45,
1660     -1,    -1,    -1,    -1,    50,    51,    52,    -1,    -1,    -1,
1661     56,    57,    -1,     3,    -1,    61,    62,    -1,     8,     9,
1662     66,    11,    68,    -1,    -1,    -1,    -1,    73,    -1,    -1,
1663     -1,    77,    -1,    -1,    -1,    81,    82,    -1,    -1,    29,
1664     -1,    31,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,
1665     -1,    -1,    42,    -1,    -1,    45,    -1,    -1,    -1,    -1,
1666     50,    51,    52,    -1,    -1,    -1,    56,    57,    -1,     3,
1667     -1,    61,    62,    -1,     8,     9,    66,    11,    68,    -1,
1668     -1,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
1669     -1,    81,    82,    -1,    -1,    29,    -1,    31,    -1,    33,
1670     34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    42,    -1,
1671     -1,    45,    -1,    -1,    -1,    -1,    50,    51,    52,    -1,
1672     -1,    -1,    56,    57,    -1,    -1,    -1,    61,    62,    -1,
1673     -1,    -1,    66,    -1,    68,    -1,    -1,    -1,    -1,    73,
1674     -1,    -1,    -1,    77,    -1,    -1,     1,    81,    82,     4,
1675      1,     6,     7,     4,    -1,     6,     7,    12,    13,    14,
1676     -1,    12,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,
1677     -1,    -1,    -1,    28,    -1,    -1,    -1,    28,    -1,     4,
1678     31,     6,     7,    -1,    -1,    -1,    -1,    12,    13,    14,
1679     -1,    -1,    47,    -1,    -1,    -1,    47,     4,     5,     6,
1680      7,    -1,    -1,    28,    -1,    12,    13,    14,    -1,    -1,
1681     -1,    -1,    -1,    -1,    69,    70,    71,    72,    69,    74,
1682     -1,    28,    47,    74,    79,    80,    -1,    -1,    79,    80,
1683      1,    -1,     3,     4,     5,     6,     7,    -1,    -1,    -1,
1684     47,    12,    13,    14,    69,    -1,    -1,    -1,    -1,    74,
1685     -1,    -1,    -1,    -1,    79,    80,    27,    28,    -1,    30,
1686     31,    -1,    69,    -1,    -1,    -1,    -1,    74,    -1,    -1,
1687     -1,    -1,    79,    -1,    -1,    -1,    47,    -1,    -1,    50,
1688     51,    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1689     61,    -1,    63,    64,    65,    -1,    -1,    -1,    69,    -1,
1690     -1,    -1,    73,    74,    75,    76,    -1,     1,    79,     3,
1691      4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    13,
1692     14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1693     -1,    -1,    -1,    -1,    28,     1,    30,     3,     4,     5,
1694      6,     7,    -1,    -1,    10,    -1,    12,    13,    14,    -1,
1695     -1,    -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
1696     -1,    -1,    28,    -1,    30,     1,    -1,    61,     4,     5,
1697      6,     7,    -1,    -1,    10,    69,    12,    13,    14,    -1,
1698     74,    47,    -1,    -1,    -1,    79,    -1,    -1,    -1,    -1,
1699     -1,    -1,    28,    -1,    30,    -1,     4,     5,     6,     7,
1700     -1,    -1,    -1,    69,    12,    13,    14,    -1,    74,    -1,
1701     -1,    47,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1702     28,    -1,    30,    -1,    -1,    -1,     4,     5,     6,     7,
1703     -1,    -1,    -1,    69,    12,    13,    14,    -1,    74,    47,
1704     -1,    -1,    78,     1,    -1,    -1,     4,    -1,     6,     7,
1705     28,    -1,    30,    -1,    12,    13,    14,    -1,    -1,    -1,
1706     -1,    69,    -1,    -1,    -1,    -1,    74,    -1,    -1,    47,
1707     28,    79,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
1708     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    47,
1709     -1,    69,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
1710     -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
1711      4,    69,     6,     7,    -1,    -1,    74,    11,    12,    13,
1712     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1713     24,    25,    26,    27,    28,    29,    -1,    -1,    -1,     3,
1714      4,    -1,     6,     7,    -1,    -1,    40,    11,    12,    13,
1715     14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1716     24,    25,    26,    27,    28,    29,    -1,    61,    -1,    -1,
1717     -1,    -1,    -1,    -1,     3,     4,    40,     6,     7,    -1,
1718     74,    -1,    11,    12,    13,    14,    15,    16,    17,    18,
1719     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1720     29,    -1,    -1,    -1,     3,     4,    -1,     6,     7,    -1,
1721     74,    40,    11,    12,    13,    14,    15,    16,    17,    18,
1722     19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1723     29,    -1,    -1,    -1,     4,    -1,     6,     7,    -1,    -1,
1724     -1,    40,    12,    13,    14,    74,     4,     5,     6,     7,
1725     -1,    -1,    10,    -1,    12,    13,    14,    -1,    28,    -1,
1726     30,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1727     28,    -1,    30,    -1,    -1,    74,    -1,    47,    -1,    -1,
1728     -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,    -1,    47,
1729     -1,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,
1730      4,     5,     6,     7,    74,    -1,    10,    -1,    12,    13,
1731     14,    69,     4,     5,     6,     7,    74,    -1,    -1,    -1,
1732     12,    13,    14,    -1,    28,     4,    30,     6,     7,    -1,
1733     -1,    -1,    -1,    12,    13,    14,    28,    -1,    30,    -1,
1734     -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    28,
1735     -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
1736     -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    47,    -1,
1737     74,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,
1738     -1,    -1,    74,    10,    -1,    -1,    -1,    -1,    -1,    -1,
1739     69,    -1,    37,    38,    39,    74,    41,    42,    43,    44,
1740     45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1741     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1742     47,    48,    49,    50,    51,    52,    53,    54,    30,    -1,
1743     -1,    -1,    -1,    -1,    -1,    37,    38,    39,    83,    41,
1744     42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1745     52,    53,    54,    37,    38,    39,    40,    41,    42,    43,
1746     44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1747     54,    37,    38,    39,    -1,    41,    42,    43,    44,    45,
1748     46,    47,    48,    49,    50,    51,    52,    53,    54
1749 };
1750 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
1751 #line 3 "/usr/share/misc/bison.simple"
1752 /* This file comes from bison-1.28.  */
1753
1754 /* Skeleton output parser for bison,
1755    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1756
1757    This program is free software; you can redistribute it and/or modify
1758    it under the terms of the GNU General Public License as published by
1759    the Free Software Foundation; either version 2, or (at your option)
1760    any later version.
1761
1762    This program is distributed in the hope that it will be useful,
1763    but WITHOUT ANY WARRANTY; without even the implied warranty of
1764    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1765    GNU General Public License for more details.
1766
1767    You should have received a copy of the GNU General Public License
1768    along with this program; if not, write to the Free Software
1769    Foundation, Inc., 59 Temple Place - Suite 330,
1770    Boston, MA 02111-1307, USA.  */
1771
1772 /* As a special exception, when this file is copied by Bison into a
1773    Bison output file, you may use that output file without restriction.
1774    This special exception was added by the Free Software Foundation
1775    in version 1.24 of Bison.  */
1776
1777 /* This is the parser code that is written into each bison parser
1778   when the %semantic_parser declaration is not specified in the grammar.
1779   It was written by Richard Stallman by simplifying the hairy parser
1780   used when %semantic_parser is specified.  */
1781
1782 #ifndef YYSTACK_USE_ALLOCA
1783 #ifdef alloca
1784 #define YYSTACK_USE_ALLOCA
1785 #else /* alloca not defined */
1786 #ifdef __GNUC__
1787 #define YYSTACK_USE_ALLOCA
1788 #define alloca __builtin_alloca
1789 #else /* not GNU C.  */
1790 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1791 #define YYSTACK_USE_ALLOCA
1792 #include <alloca.h>
1793 #else /* not sparc */
1794 /* We think this test detects Watcom and Microsoft C.  */
1795 /* This used to test MSDOS, but that is a bad idea
1796    since that symbol is in the user namespace.  */
1797 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1798 #if 0 /* No need for malloc.h, which pollutes the namespace;
1799          instead, just don't use alloca.  */
1800 #include <malloc.h>
1801 #endif
1802 #else /* not MSDOS, or __TURBOC__ */
1803 #if defined(_AIX)
1804 /* I don't know what this was needed for, but it pollutes the namespace.
1805    So I turned it off.   rms, 2 May 1997.  */
1806 /* #include <malloc.h>  */
1807  #pragma alloca
1808 #define YYSTACK_USE_ALLOCA
1809 #else /* not MSDOS, or __TURBOC__, or _AIX */
1810 #if 0
1811 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1812                  and on HPUX 10.  Eventually we can turn this on.  */
1813 #define YYSTACK_USE_ALLOCA
1814 #define alloca __builtin_alloca
1815 #endif /* __hpux */
1816 #endif
1817 #endif /* not _AIX */
1818 #endif /* not MSDOS, or __TURBOC__ */
1819 #endif /* not sparc */
1820 #endif /* not GNU C */
1821 #endif /* alloca not defined */
1822 #endif /* YYSTACK_USE_ALLOCA not defined */
1823
1824 #ifdef YYSTACK_USE_ALLOCA
1825 #define YYSTACK_ALLOC alloca
1826 #else
1827 #define YYSTACK_ALLOC malloc
1828 #endif
1829
1830 /* Note: there must be only one dollar sign in this file.
1831    It is replaced by the list of actions, each action
1832    as one case of the switch.  */
1833
1834 #define yyerrok         (yyerrstatus = 0)
1835 #define yyclearin       (yychar = YYEMPTY)
1836 #define YYEMPTY         -2
1837 #define YYEOF           0
1838 #define YYACCEPT        goto yyacceptlab
1839 #define YYABORT         goto yyabortlab
1840 #define YYERROR         goto yyerrlab1
1841 /* Like YYERROR except do call yyerror.
1842    This remains here temporarily to ease the
1843    transition to the new meaning of YYERROR, for GCC.
1844    Once GCC version 2 has supplanted version 1, this can go.  */
1845 #define YYFAIL          goto yyerrlab
1846 #define YYRECOVERING()  (!!yyerrstatus)
1847 #define YYBACKUP(token, value) \
1848 do                                                              \
1849   if (yychar == YYEMPTY && yylen == 1)                          \
1850     { yychar = (token), yylval = (value);                       \
1851       yychar1 = YYTRANSLATE (yychar);                           \
1852       YYPOPSTACK;                                               \
1853       goto yybackup;                                            \
1854     }                                                           \
1855   else                                                          \
1856     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
1857 while (0)
1858
1859 #define YYTERROR        1
1860 #define YYERRCODE       256
1861
1862 #ifndef YYPURE
1863 #define YYLEX           yylex()
1864 #endif
1865
1866 #ifdef YYPURE
1867 #ifdef YYLSP_NEEDED
1868 #ifdef YYLEX_PARAM
1869 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
1870 #else
1871 #define YYLEX           yylex(&yylval, &yylloc)
1872 #endif
1873 #else /* not YYLSP_NEEDED */
1874 #ifdef YYLEX_PARAM
1875 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
1876 #else
1877 #define YYLEX           yylex(&yylval)
1878 #endif
1879 #endif /* not YYLSP_NEEDED */
1880 #endif
1881
1882 /* If nonreentrant, generate the variables here */
1883
1884 #ifndef YYPURE
1885
1886 int     yychar;                 /*  the lookahead symbol                */
1887 YYSTYPE yylval;                 /*  the semantic value of the           */
1888                                 /*  lookahead symbol                    */
1889
1890 #ifdef YYLSP_NEEDED
1891 YYLTYPE yylloc;                 /*  location data for the lookahead     */
1892                                 /*  symbol                              */
1893 #endif
1894
1895 int yynerrs;                    /*  number of parse errors so far       */
1896 #endif  /* not YYPURE */
1897
1898 #if YYDEBUG != 0
1899 int yydebug;                    /*  nonzero means print parse trace     */
1900 /* Since this is uninitialized, it does not stop multiple parsers
1901    from coexisting.  */
1902 #endif
1903
1904 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
1905
1906 #ifndef YYINITDEPTH
1907 #define YYINITDEPTH 200
1908 #endif
1909
1910 /*  YYMAXDEPTH is the maximum size the stacks can grow to
1911     (effective only if the built-in stack extension method is used).  */
1912
1913 #if YYMAXDEPTH == 0
1914 #undef YYMAXDEPTH
1915 #endif
1916
1917 #ifndef YYMAXDEPTH
1918 #define YYMAXDEPTH 10000
1919 #endif
1920 \f
1921 /* Define __yy_memcpy.  Note that the size argument
1922    should be passed with type unsigned int, because that is what the non-GCC
1923    definitions require.  With GCC, __builtin_memcpy takes an arg
1924    of type size_t, but it can handle unsigned int.  */
1925
1926 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
1927 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
1928 #else                           /* not GNU C or C++ */
1929 #ifndef __cplusplus
1930
1931 /* This is the most reliable way to avoid incompatibilities
1932    in available built-in functions on various systems.  */
1933 static void
1934 __yy_memcpy (to, from, count)
1935      char *to;
1936      char *from;
1937      unsigned int count;
1938 {
1939   register char *f = from;
1940   register char *t = to;
1941   register int i = count;
1942
1943   while (i-- > 0)
1944     *t++ = *f++;
1945 }
1946
1947 #else /* __cplusplus */
1948
1949 /* This is the most reliable way to avoid incompatibilities
1950    in available built-in functions on various systems.  */
1951 static void
1952 __yy_memcpy (char *to, char *from, unsigned int count)
1953 {
1954   register char *t = to;
1955   register char *f = from;
1956   register int i = count;
1957
1958   while (i-- > 0)
1959     *t++ = *f++;
1960 }
1961
1962 #endif
1963 #endif
1964 \f
1965 #line 217 "/usr/share/misc/bison.simple"
1966
1967 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1968    into yyparse.  The argument should have type void *.
1969    It should actually point to an object.
1970    Grammar actions can access the variable by casting it
1971    to the proper pointer type.  */
1972
1973 #ifdef YYPARSE_PARAM
1974 #ifdef __cplusplus
1975 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1976 #define YYPARSE_PARAM_DECL
1977 #else /* not __cplusplus */
1978 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1979 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1980 #endif /* not __cplusplus */
1981 #else /* not YYPARSE_PARAM */
1982 #define YYPARSE_PARAM_ARG
1983 #define YYPARSE_PARAM_DECL
1984 #endif /* not YYPARSE_PARAM */
1985
1986 /* Prevent warning if -Wstrict-prototypes.  */
1987 #ifdef __GNUC__
1988 #ifdef YYPARSE_PARAM
1989 int yyparse (void *);
1990 #else
1991 int yyparse (void);
1992 #endif
1993 #endif
1994
1995 int
1996 yyparse(YYPARSE_PARAM_ARG)
1997      YYPARSE_PARAM_DECL
1998 {
1999   register int yystate;
2000   register int yyn;
2001   register short *yyssp;
2002   register YYSTYPE *yyvsp;
2003   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
2004   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
2005
2006   short yyssa[YYINITDEPTH];     /*  the state stack                     */
2007   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
2008
2009   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
2010   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
2011
2012 #ifdef YYLSP_NEEDED
2013   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
2014   YYLTYPE *yyls = yylsa;
2015   YYLTYPE *yylsp;
2016
2017 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
2018 #else
2019 #define YYPOPSTACK   (yyvsp--, yyssp--)
2020 #endif
2021
2022   int yystacksize = YYINITDEPTH;
2023   int yyfree_stacks = 0;
2024
2025 #ifdef YYPURE
2026   int yychar;
2027   YYSTYPE yylval;
2028   int yynerrs;
2029 #ifdef YYLSP_NEEDED
2030   YYLTYPE yylloc;
2031 #endif
2032 #endif
2033
2034   YYSTYPE yyval;                /*  the variable used to return         */
2035                                 /*  semantic values from the action     */
2036                                 /*  routines                            */
2037
2038   int yylen;
2039
2040 #if YYDEBUG != 0
2041   if (yydebug)
2042     fprintf(stderr, "Starting parse\n");
2043 #endif
2044
2045   yystate = 0;
2046   yyerrstatus = 0;
2047   yynerrs = 0;
2048   yychar = YYEMPTY;             /* Cause a token to be read.  */
2049
2050   /* Initialize stack pointers.
2051      Waste one element of value and location stack
2052      so that they stay on the same level as the state stack.
2053      The wasted elements are never initialized.  */
2054
2055   yyssp = yyss - 1;
2056   yyvsp = yyvs;
2057 #ifdef YYLSP_NEEDED
2058   yylsp = yyls;
2059 #endif
2060
2061 /* Push a new state, which is found in  yystate  .  */
2062 /* In all cases, when you get here, the value and location stacks
2063    have just been pushed. so pushing a state here evens the stacks.  */
2064 yynewstate:
2065
2066   *++yyssp = yystate;
2067
2068   if (yyssp >= yyss + yystacksize - 1)
2069     {
2070       /* Give user a chance to reallocate the stack */
2071       /* Use copies of these so that the &'s don't force the real ones into memory. */
2072       YYSTYPE *yyvs1 = yyvs;
2073       short *yyss1 = yyss;
2074 #ifdef YYLSP_NEEDED
2075       YYLTYPE *yyls1 = yyls;
2076 #endif
2077
2078       /* Get the current used size of the three stacks, in elements.  */
2079       int size = yyssp - yyss + 1;
2080
2081 #ifdef yyoverflow
2082       /* Each stack pointer address is followed by the size of
2083          the data in use in that stack, in bytes.  */
2084 #ifdef YYLSP_NEEDED
2085       /* This used to be a conditional around just the two extra args,
2086          but that might be undefined if yyoverflow is a macro.  */
2087       yyoverflow("parser stack overflow",
2088                  &yyss1, size * sizeof (*yyssp),
2089                  &yyvs1, size * sizeof (*yyvsp),
2090                  &yyls1, size * sizeof (*yylsp),
2091                  &yystacksize);
2092 #else
2093       yyoverflow("parser stack overflow",
2094                  &yyss1, size * sizeof (*yyssp),
2095                  &yyvs1, size * sizeof (*yyvsp),
2096                  &yystacksize);
2097 #endif
2098
2099       yyss = yyss1; yyvs = yyvs1;
2100 #ifdef YYLSP_NEEDED
2101       yyls = yyls1;
2102 #endif
2103 #else /* no yyoverflow */
2104       /* Extend the stack our own way.  */
2105       if (yystacksize >= YYMAXDEPTH)
2106         {
2107           yyerror("parser stack overflow");
2108           if (yyfree_stacks)
2109             {
2110               free (yyss);
2111               free (yyvs);
2112 #ifdef YYLSP_NEEDED
2113               free (yyls);
2114 #endif
2115             }
2116           return 2;
2117         }
2118       yystacksize *= 2;
2119       if (yystacksize > YYMAXDEPTH)
2120         yystacksize = YYMAXDEPTH;
2121 #ifndef YYSTACK_USE_ALLOCA
2122       yyfree_stacks = 1;
2123 #endif
2124       yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
2125       __yy_memcpy ((char *)yyss, (char *)yyss1,
2126                    size * (unsigned int) sizeof (*yyssp));
2127       yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
2128       __yy_memcpy ((char *)yyvs, (char *)yyvs1,
2129                    size * (unsigned int) sizeof (*yyvsp));
2130 #ifdef YYLSP_NEEDED
2131       yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
2132       __yy_memcpy ((char *)yyls, (char *)yyls1,
2133                    size * (unsigned int) sizeof (*yylsp));
2134 #endif
2135 #endif /* no yyoverflow */
2136
2137       yyssp = yyss + size - 1;
2138       yyvsp = yyvs + size - 1;
2139 #ifdef YYLSP_NEEDED
2140       yylsp = yyls + size - 1;
2141 #endif
2142
2143 #if YYDEBUG != 0
2144       if (yydebug)
2145         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
2146 #endif
2147
2148       if (yyssp >= yyss + yystacksize - 1)
2149         YYABORT;
2150     }
2151
2152 #if YYDEBUG != 0
2153   if (yydebug)
2154     fprintf(stderr, "Entering state %d\n", yystate);
2155 #endif
2156
2157   goto yybackup;
2158  yybackup:
2159
2160 /* Do appropriate processing given the current state.  */
2161 /* Read a lookahead token if we need one and don't already have one.  */
2162 /* yyresume: */
2163
2164   /* First try to decide what to do without reference to lookahead token.  */
2165
2166   yyn = yypact[yystate];
2167   if (yyn == YYFLAG)
2168     goto yydefault;
2169
2170   /* Not known => get a lookahead token if don't already have one.  */
2171
2172   /* yychar is either YYEMPTY or YYEOF
2173      or a valid token in external form.  */
2174
2175   if (yychar == YYEMPTY)
2176     {
2177 #if YYDEBUG != 0
2178       if (yydebug)
2179         fprintf(stderr, "Reading a token: ");
2180 #endif
2181       yychar = YYLEX;
2182     }
2183
2184   /* Convert token to internal form (in yychar1) for indexing tables with */
2185
2186   if (yychar <= 0)              /* This means end of input. */
2187     {
2188       yychar1 = 0;
2189       yychar = YYEOF;           /* Don't call YYLEX any more */
2190
2191 #if YYDEBUG != 0
2192       if (yydebug)
2193         fprintf(stderr, "Now at end of input.\n");
2194 #endif
2195     }
2196   else
2197     {
2198       yychar1 = YYTRANSLATE(yychar);
2199
2200 #if YYDEBUG != 0
2201       if (yydebug)
2202         {
2203           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
2204           /* Give the individual parser a way to print the precise meaning
2205              of a token, for further debugging info.  */
2206 #ifdef YYPRINT
2207           YYPRINT (stderr, yychar, yylval);
2208 #endif
2209           fprintf (stderr, ")\n");
2210         }
2211 #endif
2212     }
2213
2214   yyn += yychar1;
2215   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
2216     goto yydefault;
2217
2218   yyn = yytable[yyn];
2219
2220   /* yyn is what to do for this token type in this state.
2221      Negative => reduce, -yyn is rule number.
2222      Positive => shift, yyn is new state.
2223        New state is final state => don't bother to shift,
2224        just return success.
2225      0, or most negative number => error.  */
2226
2227   if (yyn < 0)
2228     {
2229       if (yyn == YYFLAG)
2230         goto yyerrlab;
2231       yyn = -yyn;
2232       goto yyreduce;
2233     }
2234   else if (yyn == 0)
2235     goto yyerrlab;
2236
2237   if (yyn == YYFINAL)
2238     YYACCEPT;
2239
2240   /* Shift the lookahead token.  */
2241
2242 #if YYDEBUG != 0
2243   if (yydebug)
2244     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
2245 #endif
2246
2247   /* Discard the token being shifted unless it is eof.  */
2248   if (yychar != YYEOF)
2249     yychar = YYEMPTY;
2250
2251   *++yyvsp = yylval;
2252 #ifdef YYLSP_NEEDED
2253   *++yylsp = yylloc;
2254 #endif
2255
2256   /* count tokens shifted since error; after three, turn off error status.  */
2257   if (yyerrstatus) yyerrstatus--;
2258
2259   yystate = yyn;
2260   goto yynewstate;
2261
2262 /* Do the default action for the current state.  */
2263 yydefault:
2264
2265   yyn = yydefact[yystate];
2266   if (yyn == 0)
2267     goto yyerrlab;
2268
2269 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
2270 yyreduce:
2271   yylen = yyr2[yyn];
2272   if (yylen > 0)
2273     yyval = yyvsp[1-yylen]; /* implement default value of the action */
2274
2275 #if YYDEBUG != 0
2276   if (yydebug)
2277     {
2278       int i;
2279
2280       fprintf (stderr, "Reducing via rule %d (line %d), ",
2281                yyn, yyrline[yyn]);
2282
2283       /* Print the symbols being reduced, and their result.  */
2284       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
2285         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
2286       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2287     }
2288 #endif
2289
2290
2291   switch (yyn) {
2292
2293 case 1:
2294 #line 258 "objc-parse.y"
2295 { if (pedantic)
2296                     pedwarn ("ANSI C forbids an empty source file");
2297                   finish_file ();
2298                 ;
2299     break;}
2300 case 2:
2301 #line 263 "objc-parse.y"
2302 {
2303                   /* In case there were missing closebraces,
2304                      get us back to the global binding level.  */
2305                   while (! global_bindings_p ())
2306                     poplevel (0, 0, 0);
2307                   finish_file ();
2308                 ;
2309     break;}
2310 case 3:
2311 #line 277 "objc-parse.y"
2312 {yyval.ttype = NULL_TREE; ;
2313     break;}
2314 case 5:
2315 #line 278 "objc-parse.y"
2316 {yyval.ttype = NULL_TREE; ;
2317     break;}
2318 case 10:
2319 #line 286 "objc-parse.y"
2320 { STRIP_NOPS (yyvsp[-2].ttype);
2321                   if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
2322                        && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
2323                       || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
2324                     assemble_asm (yyvsp[-2].ttype);
2325                   else
2326                     error ("argument of `asm' is not a constant string"); ;
2327     break;}
2328 case 11:
2329 #line 294 "objc-parse.y"
2330 { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
2331     break;}
2332 case 12:
2333 #line 299 "objc-parse.y"
2334 { if (pedantic)
2335                     error ("ANSI C forbids data definition with no type or storage class");
2336                   else if (!flag_traditional)
2337                     warning ("data definition has no type or storage class"); 
2338
2339                   current_declspecs = TREE_VALUE (declspec_stack);
2340                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2341                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2342     break;}
2343 case 13:
2344 #line 308 "objc-parse.y"
2345 { current_declspecs = TREE_VALUE (declspec_stack);
2346                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2347                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2348     break;}
2349 case 14:
2350 #line 312 "objc-parse.y"
2351 { current_declspecs = TREE_VALUE (declspec_stack);
2352                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2353                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2354     break;}
2355 case 15:
2356 #line 316 "objc-parse.y"
2357 { pedwarn ("empty declaration"); ;
2358     break;}
2359 case 16:
2360 #line 318 "objc-parse.y"
2361 { shadow_tag (yyvsp[-1].ttype); ;
2362     break;}
2363 case 19:
2364 #line 322 "objc-parse.y"
2365 { if (pedantic)
2366                     pedwarn ("ANSI C does not allow extra `;' outside of a function"); ;
2367     break;}
2368 case 20:
2369 #line 328 "objc-parse.y"
2370 { if (! start_function (current_declspecs, yyvsp[0].ttype,
2371                                         prefix_attributes, NULL_TREE))
2372                     YYERROR1;
2373                   reinit_parse_for_function (); ;
2374     break;}
2375 case 21:
2376 #line 333 "objc-parse.y"
2377 { store_parm_decls (); ;
2378     break;}
2379 case 22:
2380 #line 335 "objc-parse.y"
2381 { finish_function (0); 
2382                   current_declspecs = TREE_VALUE (declspec_stack);
2383                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2384                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2385     break;}
2386 case 23:
2387 #line 340 "objc-parse.y"
2388 { current_declspecs = TREE_VALUE (declspec_stack);
2389                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2390                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2391     break;}
2392 case 24:
2393 #line 344 "objc-parse.y"
2394 { if (! start_function (current_declspecs, yyvsp[0].ttype,
2395                                         prefix_attributes, NULL_TREE))
2396                     YYERROR1;
2397                   reinit_parse_for_function (); ;
2398     break;}
2399 case 25:
2400 #line 349 "objc-parse.y"
2401 { store_parm_decls (); ;
2402     break;}
2403 case 26:
2404 #line 351 "objc-parse.y"
2405 { finish_function (0); 
2406                   current_declspecs = TREE_VALUE (declspec_stack);
2407                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2408                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2409     break;}
2410 case 27:
2411 #line 356 "objc-parse.y"
2412 { current_declspecs = TREE_VALUE (declspec_stack);
2413                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2414                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2415     break;}
2416 case 28:
2417 #line 360 "objc-parse.y"
2418 { if (! start_function (NULL_TREE, yyvsp[0].ttype,
2419                                         prefix_attributes, NULL_TREE))
2420                     YYERROR1;
2421                   reinit_parse_for_function (); ;
2422     break;}
2423 case 29:
2424 #line 365 "objc-parse.y"
2425 { store_parm_decls (); ;
2426     break;}
2427 case 30:
2428 #line 367 "objc-parse.y"
2429 { finish_function (0); 
2430                   current_declspecs = TREE_VALUE (declspec_stack);
2431                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2432                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2433     break;}
2434 case 31:
2435 #line 372 "objc-parse.y"
2436 { current_declspecs = TREE_VALUE (declspec_stack);
2437                   prefix_attributes = TREE_PURPOSE (declspec_stack);
2438                   declspec_stack = TREE_CHAIN (declspec_stack); ;
2439     break;}
2440 case 36:
2441 #line 385 "objc-parse.y"
2442 { yyval.code = ADDR_EXPR; ;
2443     break;}
2444 case 37:
2445 #line 387 "objc-parse.y"
2446 { yyval.code = NEGATE_EXPR; ;
2447     break;}
2448 case 38:
2449 #line 389 "objc-parse.y"
2450 { yyval.code = CONVERT_EXPR; ;
2451     break;}
2452 case 39:
2453 #line 391 "objc-parse.y"
2454 { yyval.code = PREINCREMENT_EXPR; ;
2455     break;}
2456 case 40:
2457 #line 393 "objc-parse.y"
2458 { yyval.code = PREDECREMENT_EXPR; ;
2459     break;}
2460 case 41:
2461 #line 395 "objc-parse.y"
2462 { yyval.code = BIT_NOT_EXPR; ;
2463     break;}
2464 case 42:
2465 #line 397 "objc-parse.y"
2466 { yyval.code = TRUTH_NOT_EXPR; ;
2467     break;}
2468 case 43:
2469 #line 401 "objc-parse.y"
2470 { yyval.ttype = build_compound_expr (yyvsp[0].ttype); ;
2471     break;}
2472 case 44:
2473 #line 406 "objc-parse.y"
2474 { yyval.ttype = NULL_TREE; ;
2475     break;}
2476 case 46:
2477 #line 412 "objc-parse.y"
2478 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
2479     break;}
2480 case 47:
2481 #line 414 "objc-parse.y"
2482 { chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
2483     break;}
2484 case 49:
2485 #line 420 "objc-parse.y"
2486 { yyval.ttype = build_indirect_ref (yyvsp[0].ttype, "unary *"); ;
2487     break;}
2488 case 50:
2489 #line 423 "objc-parse.y"
2490 { yyval.ttype = yyvsp[0].ttype;
2491                   RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
2492     break;}
2493 case 51:
2494 #line 426 "objc-parse.y"
2495 { yyval.ttype = build_unary_op (yyvsp[-1].code, yyvsp[0].ttype, 0);
2496                   overflow_warning (yyval.ttype); ;
2497     break;}
2498 case 52:
2499 #line 430 "objc-parse.y"
2500 { tree label = lookup_label (yyvsp[0].ttype);
2501                   if (pedantic)
2502                     pedwarn ("ANSI C forbids `&&'");
2503                   if (label == 0)
2504                     yyval.ttype = null_pointer_node;
2505                   else
2506                     {
2507                       TREE_USED (label) = 1;
2508                       yyval.ttype = build1 (ADDR_EXPR, ptr_type_node, label);
2509                       TREE_CONSTANT (yyval.ttype) = 1;
2510                     }
2511                 ;
2512     break;}
2513 case 53:
2514 #line 458 "objc-parse.y"
2515 { skip_evaluation--;
2516                   if (TREE_CODE (yyvsp[0].ttype) == COMPONENT_REF
2517                       && DECL_C_BIT_FIELD (TREE_OPERAND (yyvsp[0].ttype, 1)))
2518                     error ("`sizeof' applied to a bit-field");
2519                   yyval.ttype = c_sizeof (TREE_TYPE (yyvsp[0].ttype)); ;
2520     break;}
2521 case 54:
2522 #line 464 "objc-parse.y"
2523 { skip_evaluation--;
2524                   yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ttype)); ;
2525     break;}
2526 case 55:
2527 #line 467 "objc-parse.y"
2528 { skip_evaluation--;
2529                   yyval.ttype = c_alignof_expr (yyvsp[0].ttype); ;
2530     break;}
2531 case 56:
2532 #line 470 "objc-parse.y"
2533 { skip_evaluation--;
2534                   yyval.ttype = c_alignof (groktypename (yyvsp[-1].ttype)); ;
2535     break;}
2536 case 57:
2537 #line 473 "objc-parse.y"
2538 { yyval.ttype = build_unary_op (REALPART_EXPR, yyvsp[0].ttype, 0); ;
2539     break;}
2540 case 58:
2541 #line 475 "objc-parse.y"
2542 { yyval.ttype = build_unary_op (IMAGPART_EXPR, yyvsp[0].ttype, 0); ;
2543     break;}
2544 case 59:
2545 #line 477 "objc-parse.y"
2546 { yyval.ttype = build_va_arg (yyvsp[-3].ttype, groktypename (yyvsp[-1].ttype)); ;
2547     break;}
2548 case 60:
2549 #line 481 "objc-parse.y"
2550 { skip_evaluation++; ;
2551     break;}
2552 case 61:
2553 #line 485 "objc-parse.y"
2554 { skip_evaluation++; ;
2555     break;}
2556 case 63:
2557 #line 491 "objc-parse.y"
2558 { tree type = groktypename (yyvsp[-2].ttype);
2559                   yyval.ttype = build_c_cast (type, yyvsp[0].ttype); ;
2560     break;}
2561 case 64:
2562 #line 494 "objc-parse.y"
2563 { start_init (NULL_TREE, NULL, 0);
2564                   yyvsp[-2].ttype = groktypename (yyvsp[-2].ttype);
2565                   really_start_incremental_init (yyvsp[-2].ttype); ;
2566     break;}
2567 case 65:
2568 #line 498 "objc-parse.y"
2569 { const char *name;
2570                   tree result = pop_init_level (0);
2571                   tree type = yyvsp[-5].ttype;
2572                   finish_init ();
2573
2574                   if (pedantic && ! flag_isoc9x)
2575                     pedwarn ("ANSI C forbids constructor expressions");
2576                   if (TYPE_NAME (type) != 0)
2577                     {
2578                       if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
2579                         name = IDENTIFIER_POINTER (TYPE_NAME (type));
2580                       else
2581                         name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (type)));
2582                     }
2583                   else
2584                     name = "";
2585                   yyval.ttype = result;
2586                   if (TREE_CODE (type) == ARRAY_TYPE && TYPE_SIZE (type) == 0)
2587                     {
2588                       int failure = complete_array_type (type, yyval.ttype, 1);
2589                       if (failure)
2590                         abort ();
2591                     }
2592                 ;
2593     break;}
2594 case 67:
2595 #line 527 "objc-parse.y"
2596 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2597     break;}
2598 case 68:
2599 #line 529 "objc-parse.y"
2600 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2601     break;}
2602 case 69:
2603 #line 531 "objc-parse.y"
2604 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2605     break;}
2606 case 70:
2607 #line 533 "objc-parse.y"
2608 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2609     break;}
2610 case 71:
2611 #line 535 "objc-parse.y"
2612 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2613     break;}
2614 case 72:
2615 #line 537 "objc-parse.y"
2616 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2617     break;}
2618 case 73:
2619 #line 539 "objc-parse.y"
2620 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2621     break;}
2622 case 74:
2623 #line 541 "objc-parse.y"
2624 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2625     break;}
2626 case 75:
2627 #line 543 "objc-parse.y"
2628 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2629     break;}
2630 case 76:
2631 #line 545 "objc-parse.y"
2632 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2633     break;}
2634 case 77:
2635 #line 547 "objc-parse.y"
2636 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2637     break;}
2638 case 78:
2639 #line 549 "objc-parse.y"
2640 { yyval.ttype = parser_build_binary_op (yyvsp[-1].code, yyvsp[-2].ttype, yyvsp[0].ttype); ;
2641     break;}
2642 case 79:
2643 #line 551 "objc-parse.y"
2644 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2645                   skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2646     break;}
2647 case 80:
2648 #line 554 "objc-parse.y"
2649 { skip_evaluation -= yyvsp[-3].ttype == boolean_false_node;
2650                   yyval.ttype = parser_build_binary_op (TRUTH_ANDIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2651     break;}
2652 case 81:
2653 #line 557 "objc-parse.y"
2654 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2655                   skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2656     break;}
2657 case 82:
2658 #line 560 "objc-parse.y"
2659 { skip_evaluation -= yyvsp[-3].ttype == boolean_true_node;
2660                   yyval.ttype = parser_build_binary_op (TRUTH_ORIF_EXPR, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2661     break;}
2662 case 83:
2663 #line 563 "objc-parse.y"
2664 { yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[-1].ttype));
2665                   skip_evaluation += yyvsp[-1].ttype == boolean_false_node; ;
2666     break;}
2667 case 84:
2668 #line 566 "objc-parse.y"
2669 { skip_evaluation += ((yyvsp[-4].ttype == boolean_true_node)
2670                                       - (yyvsp[-4].ttype == boolean_false_node)); ;
2671     break;}
2672 case 85:
2673 #line 569 "objc-parse.y"
2674 { skip_evaluation -= yyvsp[-6].ttype == boolean_true_node;
2675                   yyval.ttype = build_conditional_expr (yyvsp[-6].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2676     break;}
2677 case 86:
2678 #line 572 "objc-parse.y"
2679 { if (pedantic)
2680                     pedwarn ("ANSI C forbids omitting the middle term of a ?: expression");
2681                   /* Make sure first operand is calculated only once.  */
2682                   yyvsp[0].ttype = save_expr (yyvsp[-1].ttype);
2683                   yyvsp[-1].ttype = truthvalue_conversion (default_conversion (yyvsp[0].ttype));
2684                   skip_evaluation += yyvsp[-1].ttype == boolean_true_node; ;
2685     break;}
2686 case 87:
2687 #line 579 "objc-parse.y"
2688 { skip_evaluation -= yyvsp[-4].ttype == boolean_true_node;
2689                   yyval.ttype = build_conditional_expr (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[0].ttype); ;
2690     break;}
2691 case 88:
2692 #line 582 "objc-parse.y"
2693 { char class;
2694                   yyval.ttype = build_modify_expr (yyvsp[-2].ttype, NOP_EXPR, yyvsp[0].ttype);
2695                   class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2696                   if (class == 'e' || class == '1'
2697                       || class == '2' || class == '<')
2698                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR);
2699                 ;
2700     break;}
2701 case 89:
2702 #line 590 "objc-parse.y"
2703 { char class;
2704                   yyval.ttype = build_modify_expr (yyvsp[-2].ttype, yyvsp[-1].code, yyvsp[0].ttype);
2705                   /* This inhibits warnings in truthvalue_conversion.  */
2706                   class = TREE_CODE_CLASS (TREE_CODE (yyval.ttype));
2707                   if (class == 'e' || class == '1'
2708                       || class == '2' || class == '<')
2709                     C_SET_EXP_ORIGINAL_CODE (yyval.ttype, ERROR_MARK);
2710                 ;
2711     break;}
2712 case 90:
2713 #line 602 "objc-parse.y"
2714 {
2715                   yyval.ttype = lastiddecl;
2716                   if (!yyval.ttype || yyval.ttype == error_mark_node)
2717                     {
2718                       if (yychar == YYEMPTY)
2719                         yychar = YYLEX;
2720                       if (yychar == '(')
2721                         {
2722                           tree decl;
2723
2724                           if (objc_receiver_context
2725                               && ! (objc_receiver_context
2726                                     && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2727                             /* we have a message to super */
2728                             yyval.ttype = get_super_receiver ();
2729                           else if (objc_method_context
2730                                    && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2731                             {
2732                               if (is_private (decl))
2733                                 yyval.ttype = error_mark_node;
2734                               else
2735                                 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2736                             }
2737                           else
2738                             {
2739                               /* Ordinary implicit function declaration.  */
2740                               yyval.ttype = implicitly_declare (yyvsp[0].ttype);
2741                               assemble_external (yyval.ttype);
2742                               TREE_USED (yyval.ttype) = 1;
2743                             }
2744                         }
2745                       else if (current_function_decl == 0)
2746                         {
2747                           error ("`%s' undeclared here (not in a function)",
2748                                  IDENTIFIER_POINTER (yyvsp[0].ttype));
2749                           yyval.ttype = error_mark_node;
2750                         }
2751                       else
2752                         {
2753                           tree decl;
2754
2755                           if (objc_receiver_context
2756                               && ! strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super"))
2757                             /* we have a message to super */
2758                             yyval.ttype = get_super_receiver ();
2759                           else if (objc_method_context
2760                                    && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2761                             {
2762                               if (is_private (decl))
2763                                 yyval.ttype = error_mark_node;
2764                               else
2765                                 yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2766                             }
2767                           else
2768                             {
2769                               if (IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) != error_mark_node
2770                                   || IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) != current_function_decl)
2771                                 {
2772                                   error ("`%s' undeclared (first use in this function)",
2773                                          IDENTIFIER_POINTER (yyvsp[0].ttype));
2774
2775                                   if (! undeclared_variable_notice)
2776                                     {
2777                                       error ("(Each undeclared identifier is reported only once");
2778                                       error ("for each function it appears in.)");
2779                                       undeclared_variable_notice = 1;
2780                                     }
2781                                 }
2782                               yyval.ttype = error_mark_node;
2783                               /* Prevent repeated error messages.  */
2784                               IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype) = error_mark_node;
2785                               IDENTIFIER_ERROR_LOCUS (yyvsp[0].ttype) = current_function_decl;
2786                             }
2787                         }
2788                     }
2789                   else if (TREE_TYPE (yyval.ttype) == error_mark_node)
2790                     yyval.ttype = error_mark_node;
2791                   else if (C_DECL_ANTICIPATED (yyval.ttype))
2792                     {
2793                       /* The first time we see a build-in function used,
2794                          if it has not been declared.  */
2795                       C_DECL_ANTICIPATED (yyval.ttype) = 0;
2796                       if (yychar == YYEMPTY)
2797                         yychar = YYLEX;
2798                       if (yychar == '(')
2799                         {
2800                           /* Omit the implicit declaration we
2801                              would ordinarily do, so we don't lose
2802                              the actual built in type.
2803                              But print a diagnostic for the mismatch.  */
2804                           if (objc_method_context
2805                               && is_ivar (objc_ivar_chain, yyvsp[0].ttype))
2806                             error ("Instance variable `%s' implicitly declared as function",
2807                                    IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2808                           else
2809                             if (TREE_CODE (yyval.ttype) != FUNCTION_DECL)
2810                               error ("`%s' implicitly declared as function",
2811                                      IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2812                           else if ((TYPE_MODE (TREE_TYPE (TREE_TYPE (yyval.ttype)))
2813                                     != TYPE_MODE (integer_type_node))
2814                                    && (TREE_TYPE (TREE_TYPE (yyval.ttype))
2815                                        != void_type_node))
2816                             pedwarn ("type mismatch in implicit declaration for built-in function `%s'",
2817                                      IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2818                           /* If it really returns void, change that to int.  */
2819                           if (TREE_TYPE (TREE_TYPE (yyval.ttype)) == void_type_node)
2820                             TREE_TYPE (yyval.ttype)
2821                               = build_function_type (integer_type_node,
2822                                                      TYPE_ARG_TYPES (TREE_TYPE (yyval.ttype)));
2823                         }
2824                       else
2825                         pedwarn ("built-in function `%s' used without declaration",
2826                                  IDENTIFIER_POINTER (DECL_NAME (yyval.ttype)));
2827
2828                       /* Do what we would ordinarily do when a fn is used.  */
2829                       assemble_external (yyval.ttype);
2830                       TREE_USED (yyval.ttype) = 1;
2831                     }
2832                   else
2833                     {
2834                       assemble_external (yyval.ttype);
2835                       TREE_USED (yyval.ttype) = 1;
2836                       /* we have a definition - still check if iVariable */
2837
2838                       if (!objc_receiver_context
2839                           || (objc_receiver_context
2840                               && strcmp (IDENTIFIER_POINTER (yyvsp[0].ttype), "super")))
2841                         {
2842                           tree decl;
2843
2844                           if (objc_method_context
2845                               && (decl = is_ivar (objc_ivar_chain, yyvsp[0].ttype)))
2846                             {
2847                               if (IDENTIFIER_LOCAL_VALUE (yyvsp[0].ttype))
2848                                 warning ("local declaration of `%s' hides instance variable",
2849                                          IDENTIFIER_POINTER (yyvsp[0].ttype));
2850                               else
2851                                 {
2852                                   if (is_private (decl))
2853                                     yyval.ttype = error_mark_node;
2854                                   else
2855                                     yyval.ttype = build_ivar_reference (yyvsp[0].ttype);
2856                                 }
2857                             }
2858                         }
2859                       else /* we have a message to super */
2860                         yyval.ttype = get_super_receiver ();
2861                     }
2862
2863                   if (TREE_CODE (yyval.ttype) == CONST_DECL)
2864                     {
2865                       yyval.ttype = DECL_INITIAL (yyval.ttype);
2866                       /* This is to prevent an enum whose value is 0
2867                          from being considered a null pointer constant.  */
2868                       yyval.ttype = build1 (NOP_EXPR, TREE_TYPE (yyval.ttype), yyval.ttype);
2869                       TREE_CONSTANT (yyval.ttype) = 1;
2870                     }
2871                 ;
2872     break;}
2873 case 92:
2874 #line 762 "objc-parse.y"
2875 { yyval.ttype = combine_strings (yyvsp[0].ttype); ;
2876     break;}
2877 case 93:
2878 #line 764 "objc-parse.y"
2879 { char class = TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype));
2880                   if (class == 'e' || class == '1'
2881                       || class == '2' || class == '<')
2882                     C_SET_EXP_ORIGINAL_CODE (yyvsp[-1].ttype, ERROR_MARK);
2883                   yyval.ttype = yyvsp[-1].ttype; ;
2884     break;}
2885 case 94:
2886 #line 770 "objc-parse.y"
2887 { yyval.ttype = error_mark_node; ;
2888     break;}
2889 case 95:
2890 #line 772 "objc-parse.y"
2891 { tree rtl_exp;
2892                   if (pedantic)
2893                     pedwarn ("ANSI C forbids braced-groups within expressions");
2894                   pop_iterator_stack ();
2895                   pop_label_level ();
2896                   rtl_exp = expand_end_stmt_expr (yyvsp[-2].ttype);
2897                   /* The statements have side effects, so the group does.  */
2898                   TREE_SIDE_EFFECTS (rtl_exp) = 1;
2899
2900                   if (TREE_CODE (yyvsp[-1].ttype) == BLOCK)
2901                     {
2902                       /* Make a BIND_EXPR for the BLOCK already made.  */
2903                       yyval.ttype = build (BIND_EXPR, TREE_TYPE (rtl_exp),
2904                                   NULL_TREE, rtl_exp, yyvsp[-1].ttype);
2905                       /* Remove the block from the tree at this point.
2906                          It gets put back at the proper place
2907                          when the BIND_EXPR is expanded.  */
2908                       delete_block (yyvsp[-1].ttype);
2909                     }
2910                   else
2911                     yyval.ttype = yyvsp[-1].ttype;
2912                 ;
2913     break;}
2914 case 96:
2915 #line 795 "objc-parse.y"
2916 {
2917                   /* Make sure we call expand_end_stmt_expr.  Otherwise
2918                      we are likely to lose sequences and crash later.  */
2919                   pop_iterator_stack ();
2920                   pop_label_level ();
2921                   expand_end_stmt_expr (yyvsp[-2].ttype);
2922                   yyval.ttype = error_mark_node;
2923                 ;
2924     break;}
2925 case 97:
2926 #line 804 "objc-parse.y"
2927 { yyval.ttype = build_function_call (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2928     break;}
2929 case 98:
2930 #line 806 "objc-parse.y"
2931 { yyval.ttype = build_array_ref (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
2932     break;}
2933 case 99:
2934 #line 808 "objc-parse.y"
2935 {
2936                   if (doing_objc_thang)
2937                     {
2938                       if (is_public (yyvsp[-2].ttype, yyvsp[0].ttype))
2939                         yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2940                       else
2941                         yyval.ttype = error_mark_node;
2942                     }
2943                   else
2944                     yyval.ttype = build_component_ref (yyvsp[-2].ttype, yyvsp[0].ttype);
2945                 ;
2946     break;}
2947 case 100:
2948 #line 820 "objc-parse.y"
2949 {
2950                   tree expr = build_indirect_ref (yyvsp[-2].ttype, "->");
2951
2952                   if (doing_objc_thang)
2953                     {
2954                       if (is_public (expr, yyvsp[0].ttype))
2955                         yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2956                       else
2957                         yyval.ttype = error_mark_node;
2958                     }
2959                   else
2960                     yyval.ttype = build_component_ref (expr, yyvsp[0].ttype);
2961                 ;
2962     break;}
2963 case 101:
2964 #line 834 "objc-parse.y"
2965 { yyval.ttype = build_unary_op (POSTINCREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2966     break;}
2967 case 102:
2968 #line 836 "objc-parse.y"
2969 { yyval.ttype = build_unary_op (POSTDECREMENT_EXPR, yyvsp[-1].ttype, 0); ;
2970     break;}
2971 case 103:
2972 #line 838 "objc-parse.y"
2973 { yyval.ttype = build_message_expr (yyvsp[0].ttype); ;
2974     break;}
2975 case 104:
2976 #line 840 "objc-parse.y"
2977 { yyval.ttype = build_selector_expr (yyvsp[0].ttype); ;
2978     break;}
2979 case 105:
2980 #line 842 "objc-parse.y"
2981 { yyval.ttype = build_protocol_expr (yyvsp[0].ttype); ;
2982     break;}
2983 case 106:
2984 #line 844 "objc-parse.y"
2985 { yyval.ttype = build_encode_expr (yyvsp[0].ttype); ;
2986     break;}
2987 case 107:
2988 #line 846 "objc-parse.y"
2989 { yyval.ttype = build_objc_string_object (yyvsp[0].ttype); ;
2990     break;}
2991 case 109:
2992 #line 853 "objc-parse.y"
2993 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
2994                 ;
2995     break;}
2996 case 111:
2997 #line 862 "objc-parse.y"
2998 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
2999     break;}
3000 case 114:
3001 #line 870 "objc-parse.y"
3002 { c_mark_varargs ();
3003                   if (pedantic)
3004                     pedwarn ("ANSI C does not permit use of `varargs.h'"); ;
3005     break;}
3006 case 115:
3007 #line 880 "objc-parse.y"
3008 { ;
3009     break;}
3010 case 120:
3011 #line 896 "objc-parse.y"
3012 { current_declspecs = TREE_VALUE (declspec_stack);
3013                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3014                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3015     break;}
3016 case 121:
3017 #line 900 "objc-parse.y"
3018 { current_declspecs = TREE_VALUE (declspec_stack);      
3019                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3020                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3021     break;}
3022 case 122:
3023 #line 904 "objc-parse.y"
3024 { shadow_tag_warned (yyvsp[-1].ttype, 1);
3025                   pedwarn ("empty declaration"); ;
3026     break;}
3027 case 123:
3028 #line 907 "objc-parse.y"
3029 { pedwarn ("empty declaration"); ;
3030     break;}
3031 case 124:
3032 #line 916 "objc-parse.y"
3033 { ;
3034     break;}
3035 case 129:
3036 #line 931 "objc-parse.y"
3037 { pending_xref_error ();
3038                   declspec_stack = tree_cons (prefix_attributes,
3039                                               current_declspecs,
3040                                               declspec_stack);
3041                   split_specs_attrs (yyvsp[0].ttype,
3042                                      &current_declspecs, &prefix_attributes); ;
3043     break;}
3044 case 130:
3045 #line 941 "objc-parse.y"
3046 { prefix_attributes = chainon (prefix_attributes, yyvsp[0].ttype); ;
3047     break;}
3048 case 131:
3049 #line 946 "objc-parse.y"
3050 { current_declspecs = TREE_VALUE (declspec_stack);
3051                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3052                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3053     break;}
3054 case 132:
3055 #line 950 "objc-parse.y"
3056 { current_declspecs = TREE_VALUE (declspec_stack);
3057                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3058                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3059     break;}
3060 case 133:
3061 #line 954 "objc-parse.y"
3062 { current_declspecs = TREE_VALUE (declspec_stack);
3063                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3064                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3065     break;}
3066 case 134:
3067 #line 958 "objc-parse.y"
3068 { current_declspecs = TREE_VALUE (declspec_stack);
3069                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3070                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3071     break;}
3072 case 135:
3073 #line 962 "objc-parse.y"
3074 { shadow_tag (yyvsp[-1].ttype); ;
3075     break;}
3076 case 136:
3077 #line 964 "objc-parse.y"
3078 { pedwarn ("empty declaration"); ;
3079     break;}
3080 case 137:
3081 #line 966 "objc-parse.y"
3082 { RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
3083     break;}
3084 case 138:
3085 #line 976 "objc-parse.y"
3086 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3087     break;}
3088 case 139:
3089 #line 978 "objc-parse.y"
3090 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3091     break;}
3092 case 140:
3093 #line 982 "objc-parse.y"
3094 { yyval.ttype = NULL_TREE; ;
3095     break;}
3096 case 141:
3097 #line 984 "objc-parse.y"
3098 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3099     break;}
3100 case 142:
3101 #line 986 "objc-parse.y"
3102 { if (extra_warnings)
3103                     warning ("`%s' is not at beginning of declaration",
3104                              IDENTIFIER_POINTER (yyvsp[0].ttype));
3105                   yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3106     break;}
3107 case 143:
3108 #line 991 "objc-parse.y"
3109 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
3110     break;}
3111 case 144:
3112 #line 996 "objc-parse.y"
3113 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3114     break;}
3115 case 145:
3116 #line 998 "objc-parse.y"
3117 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3118     break;}
3119 case 146:
3120 #line 1003 "objc-parse.y"
3121 { yyval.ttype = NULL_TREE; ;
3122     break;}
3123 case 147:
3124 #line 1005 "objc-parse.y"
3125 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3126     break;}
3127 case 148:
3128 #line 1007 "objc-parse.y"
3129 { if (extra_warnings)
3130                     warning ("`%s' is not at beginning of declaration",
3131                              IDENTIFIER_POINTER (yyvsp[0].ttype));
3132                   yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3133     break;}
3134 case 149:
3135 #line 1020 "objc-parse.y"
3136 { yyval.ttype = yyvsp[0].ttype; ;
3137     break;}
3138 case 150:
3139 #line 1022 "objc-parse.y"
3140 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ;
3141     break;}
3142 case 151:
3143 #line 1024 "objc-parse.y"
3144 { yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-1].ttype); ;
3145     break;}
3146 case 152:
3147 #line 1026 "objc-parse.y"
3148 { yyval.ttype = tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ;
3149     break;}
3150 case 153:
3151 #line 1031 "objc-parse.y"
3152 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE);
3153                   TREE_STATIC (yyval.ttype) = 1; ;
3154     break;}
3155 case 154:
3156 #line 1034 "objc-parse.y"
3157 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3158     break;}
3159 case 155:
3160 #line 1036 "objc-parse.y"
3161 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
3162                   TREE_STATIC (yyval.ttype) = 1; ;
3163     break;}
3164 case 156:
3165 #line 1039 "objc-parse.y"
3166 { if (extra_warnings && TREE_STATIC (yyvsp[-1].ttype))
3167                     warning ("`%s' is not at beginning of declaration",
3168                              IDENTIFIER_POINTER (yyvsp[0].ttype));
3169                   yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype);
3170                   TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ;
3171     break;}
3172 case 157:
3173 #line 1053 "objc-parse.y"
3174 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype); ;
3175     break;}
3176 case 158:
3177 #line 1055 "objc-parse.y"
3178 { yyval.ttype = chainon (yyvsp[0].ttype, tree_cons (NULL_TREE, yyvsp[-1].ttype, yyvsp[-2].ttype)); ;
3179     break;}
3180 case 159:
3181 #line 1059 "objc-parse.y"
3182 { yyval.ttype = NULL_TREE; ;
3183     break;}
3184 case 160:
3185 #line 1061 "objc-parse.y"
3186 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3187     break;}
3188 case 163:
3189 #line 1071 "objc-parse.y"
3190 { /* For a typedef name, record the meaning, not the name.
3191                      In case of `foo foo, bar;'.  */
3192                   yyval.ttype = lookup_name (yyvsp[0].ttype); ;
3193     break;}
3194 case 164:
3195 #line 1075 "objc-parse.y"
3196 { yyval.ttype = get_static_reference (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3197     break;}
3198 case 165:
3199 #line 1077 "objc-parse.y"
3200 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
3201     break;}
3202 case 166:
3203 #line 1082 "objc-parse.y"
3204 { yyval.ttype = get_object_reference (yyvsp[0].ttype); ;
3205     break;}
3206 case 167:
3207 #line 1084 "objc-parse.y"
3208 { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); ;
3209     break;}
3210 case 168:
3211 #line 1086 "objc-parse.y"
3212 { yyval.ttype = groktypename (yyvsp[-1].ttype); ;
3213     break;}
3214 case 176:
3215 #line 1108 "objc-parse.y"
3216 { yyval.ttype = NULL_TREE; ;
3217     break;}
3218 case 177:
3219 #line 1110 "objc-parse.y"
3220 { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype);
3221                   yyval.ttype = yyvsp[-1].ttype;
3222                 ;
3223     break;}
3224 case 178:
3225 #line 1117 "objc-parse.y"
3226 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
3227                                           yyvsp[-1].ttype, prefix_attributes);
3228                   start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3229     break;}
3230 case 179:
3231 #line 1122 "objc-parse.y"
3232 { finish_init ();
3233                   finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
3234     break;}
3235 case 180:
3236 #line 1125 "objc-parse.y"
3237 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
3238                                        yyvsp[0].ttype, prefix_attributes);
3239                   finish_decl (d, NULL_TREE, yyvsp[-1].ttype); 
3240                 ;
3241     break;}
3242 case 181:
3243 #line 1133 "objc-parse.y"
3244 { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1,
3245                                           yyvsp[-1].ttype, prefix_attributes);
3246                   start_init (yyval.ttype, yyvsp[-2].ttype, global_bindings_p ()); ;
3247     break;}
3248 case 182:
3249 #line 1138 "objc-parse.y"
3250 { finish_init ();
3251                   decl_attributes (yyvsp[-1].ttype, yyvsp[-3].ttype, prefix_attributes);
3252                   finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype); ;
3253     break;}
3254 case 183:
3255 #line 1142 "objc-parse.y"
3256 { tree d = start_decl (yyvsp[-2].ttype, current_declspecs, 0,
3257                                        yyvsp[0].ttype, prefix_attributes);
3258                   finish_decl (d, NULL_TREE, yyvsp[-1].ttype); ;
3259     break;}
3260 case 184:
3261 #line 1150 "objc-parse.y"
3262 { yyval.ttype = NULL_TREE; ;
3263     break;}
3264 case 185:
3265 #line 1152 "objc-parse.y"
3266 { yyval.ttype = yyvsp[0].ttype; ;
3267     break;}
3268 case 186:
3269 #line 1157 "objc-parse.y"
3270 { yyval.ttype = yyvsp[0].ttype; ;
3271     break;}
3272 case 187:
3273 #line 1159 "objc-parse.y"
3274 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3275     break;}
3276 case 188:
3277 #line 1164 "objc-parse.y"
3278 { yyval.ttype = yyvsp[-2].ttype; ;
3279     break;}
3280 case 189:
3281 #line 1169 "objc-parse.y"
3282 { yyval.ttype = yyvsp[0].ttype; ;
3283     break;}
3284 case 190:
3285 #line 1171 "objc-parse.y"
3286 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3287     break;}
3288 case 191:
3289 #line 1176 "objc-parse.y"
3290 { yyval.ttype = NULL_TREE; ;
3291     break;}
3292 case 192:
3293 #line 1178 "objc-parse.y"
3294 { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ;
3295     break;}
3296 case 193:
3297 #line 1180 "objc-parse.y"
3298 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ;
3299     break;}
3300 case 194:
3301 #line 1182 "objc-parse.y"
3302 { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ;
3303     break;}
3304 case 195:
3305 #line 1184 "objc-parse.y"
3306 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3307     break;}
3308 case 201:
3309 #line 1202 "objc-parse.y"
3310 { really_start_incremental_init (NULL_TREE); ;
3311     break;}
3312 case 202:
3313 #line 1204 "objc-parse.y"
3314 { yyval.ttype = pop_init_level (0); ;
3315     break;}
3316 case 203:
3317 #line 1206 "objc-parse.y"
3318 { yyval.ttype = error_mark_node; ;
3319     break;}
3320 case 204:
3321 #line 1212 "objc-parse.y"
3322 { if (pedantic)
3323                     pedwarn ("ANSI C forbids empty initializer braces"); ;
3324     break;}
3325 case 210:
3326 #line 1228 "objc-parse.y"
3327 { set_init_label (yyvsp[-1].ttype); ;
3328     break;}
3329 case 213:
3330 #line 1235 "objc-parse.y"
3331 { push_init_level (0); ;
3332     break;}
3333 case 214:
3334 #line 1237 "objc-parse.y"
3335 { process_init_element (pop_init_level (0)); ;
3336     break;}
3337 case 215:
3338 #line 1239 "objc-parse.y"
3339 { process_init_element (yyvsp[0].ttype); ;
3340     break;}
3341 case 219:
3342 #line 1250 "objc-parse.y"
3343 { set_init_label (yyvsp[0].ttype); ;
3344     break;}
3345 case 220:
3346 #line 1258 "objc-parse.y"
3347 { if (pedantic)
3348                     pedwarn ("ANSI C forbids nested functions");
3349
3350                   push_function_context ();
3351                   if (! start_function (current_declspecs, yyvsp[0].ttype,
3352                                         prefix_attributes, NULL_TREE))
3353                     {
3354                       pop_function_context ();
3355                       YYERROR1;
3356                     }
3357                   reinit_parse_for_function (); ;
3358     break;}
3359 case 221:
3360 #line 1270 "objc-parse.y"
3361 { store_parm_decls (); ;
3362     break;}
3363 case 222:
3364 #line 1278 "objc-parse.y"
3365 { finish_function (1);
3366                   pop_function_context (); ;
3367     break;}
3368 case 223:
3369 #line 1284 "objc-parse.y"
3370 { if (pedantic)
3371                     pedwarn ("ANSI C forbids nested functions");
3372
3373                   push_function_context ();
3374                   if (! start_function (current_declspecs, yyvsp[0].ttype,
3375                                         prefix_attributes, NULL_TREE))
3376                     {
3377                       pop_function_context ();
3378                       YYERROR1;
3379                     }
3380                   reinit_parse_for_function (); ;
3381     break;}
3382 case 224:
3383 #line 1296 "objc-parse.y"
3384 { store_parm_decls (); ;
3385     break;}
3386 case 225:
3387 #line 1304 "objc-parse.y"
3388 { finish_function (1);
3389                   pop_function_context (); ;
3390     break;}
3391 case 228:
3392 #line 1320 "objc-parse.y"
3393 { yyval.ttype = yyvsp[-1].ttype; ;
3394     break;}
3395 case 229:
3396 #line 1322 "objc-parse.y"
3397 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3398     break;}
3399 case 230:
3400 #line 1327 "objc-parse.y"
3401 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3402     break;}
3403 case 231:
3404 #line 1329 "objc-parse.y"
3405 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3406     break;}
3407 case 232:
3408 #line 1331 "objc-parse.y"
3409 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3410     break;}
3411 case 233:
3412 #line 1338 "objc-parse.y"
3413 { yyval.ttype = yyvsp[0].ttype; ;
3414     break;}
3415 case 236:
3416 #line 1350 "objc-parse.y"
3417 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3418     break;}
3419 case 237:
3420 #line 1355 "objc-parse.y"
3421 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3422     break;}
3423 case 238:
3424 #line 1357 "objc-parse.y"
3425 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3426     break;}
3427 case 239:
3428 #line 1359 "objc-parse.y"
3429 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3430     break;}
3431 case 240:
3432 #line 1366 "objc-parse.y"
3433 { yyval.ttype = yyvsp[0].ttype; ;
3434     break;}
3435 case 242:
3436 #line 1375 "objc-parse.y"
3437 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3438     break;}
3439 case 243:
3440 #line 1380 "objc-parse.y"
3441 { yyval.ttype = yyvsp[-1].ttype; ;
3442     break;}
3443 case 244:
3444 #line 1382 "objc-parse.y"
3445 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3446     break;}
3447 case 245:
3448 #line 1384 "objc-parse.y"
3449 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3450     break;}
3451 case 246:
3452 #line 1386 "objc-parse.y"
3453 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3454     break;}
3455 case 247:
3456 #line 1393 "objc-parse.y"
3457 { yyval.ttype = yyvsp[0].ttype; ;
3458     break;}
3459 case 249:
3460 #line 1399 "objc-parse.y"
3461 { yyval.ttype = NULL_TREE; ;
3462     break;}
3463 case 250:
3464 #line 1401 "objc-parse.y"
3465 { yyval.ttype = yyvsp[0].ttype; ;
3466     break;}
3467 case 251:
3468 #line 1406 "objc-parse.y"
3469 { yyval.ttype = NULL_TREE; ;
3470     break;}
3471 case 252:
3472 #line 1408 "objc-parse.y"
3473 { yyval.ttype = yyvsp[0].ttype; ;
3474     break;}
3475 case 253:
3476 #line 1413 "objc-parse.y"
3477 { yyval.ttype = NULL_TREE; ;
3478     break;}
3479 case 254:
3480 #line 1415 "objc-parse.y"
3481 { yyval.ttype = yyvsp[0].ttype; ;
3482     break;}
3483 case 255:
3484 #line 1420 "objc-parse.y"
3485 { yyval.ttype = start_struct (RECORD_TYPE, yyvsp[-1].ttype);
3486                   /* Start scope of tag before parsing components.  */
3487                 ;
3488     break;}
3489 case 256:
3490 #line 1424 "objc-parse.y"
3491 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
3492     break;}
3493 case 257:
3494 #line 1426 "objc-parse.y"
3495 { yyval.ttype = finish_struct (start_struct (RECORD_TYPE, NULL_TREE),
3496                                       yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
3497                 ;
3498     break;}
3499 case 258:
3500 #line 1430 "objc-parse.y"
3501 { yyval.ttype = xref_tag (RECORD_TYPE, yyvsp[0].ttype); ;
3502     break;}
3503 case 259:
3504 #line 1432 "objc-parse.y"
3505 { yyval.ttype = start_struct (UNION_TYPE, yyvsp[-1].ttype); ;
3506     break;}
3507 case 260:
3508 #line 1434 "objc-parse.y"
3509 { yyval.ttype = finish_struct (yyvsp[-3].ttype, yyvsp[-2].ttype, chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
3510     break;}
3511 case 261:
3512 #line 1436 "objc-parse.y"
3513 { yyval.ttype = finish_struct (start_struct (UNION_TYPE, NULL_TREE),
3514                                       yyvsp[-2].ttype, chainon (yyvsp[-4].ttype, yyvsp[0].ttype));
3515                 ;
3516     break;}
3517 case 262:
3518 #line 1440 "objc-parse.y"
3519 { yyval.ttype = xref_tag (UNION_TYPE, yyvsp[0].ttype); ;
3520     break;}
3521 case 263:
3522 #line 1442 "objc-parse.y"
3523 { yyval.ttype = start_enum (yyvsp[-1].ttype); ;
3524     break;}
3525 case 264:
3526 #line 1444 "objc-parse.y"
3527 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype),
3528                                     chainon (yyvsp[-7].ttype, yyvsp[0].ttype)); ;
3529     break;}
3530 case 265:
3531 #line 1447 "objc-parse.y"
3532 { yyval.ttype = start_enum (NULL_TREE); ;
3533     break;}
3534 case 266:
3535 #line 1449 "objc-parse.y"
3536 { yyval.ttype = finish_enum (yyvsp[-4].ttype, nreverse (yyvsp[-3].ttype),
3537                                     chainon (yyvsp[-6].ttype, yyvsp[0].ttype)); ;
3538     break;}
3539 case 267:
3540 #line 1452 "objc-parse.y"
3541 { yyval.ttype = xref_tag (ENUMERAL_TYPE, yyvsp[0].ttype); ;
3542     break;}
3543 case 271:
3544 #line 1463 "objc-parse.y"
3545 { if (pedantic && ! flag_isoc9x)
3546                     pedwarn ("comma at end of enumerator list"); ;
3547     break;}
3548 case 272:
3549 #line 1469 "objc-parse.y"
3550 { yyval.ttype = yyvsp[0].ttype; ;
3551     break;}
3552 case 273:
3553 #line 1471 "objc-parse.y"
3554 { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
3555                   pedwarn ("no semicolon at end of struct or union"); ;
3556     break;}
3557 case 274:
3558 #line 1476 "objc-parse.y"
3559 { yyval.ttype = NULL_TREE; ;
3560     break;}
3561 case 275:
3562 #line 1478 "objc-parse.y"
3563 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[-1].ttype); ;
3564     break;}
3565 case 276:
3566 #line 1480 "objc-parse.y"
3567 { if (pedantic)
3568                     pedwarn ("extra semicolon in struct or union specified"); ;
3569     break;}
3570 case 277:
3571 #line 1484 "objc-parse.y"
3572 {
3573                   tree interface = lookup_interface (yyvsp[-1].ttype);
3574
3575                   if (interface)
3576                     yyval.ttype = get_class_ivars (interface);
3577                   else
3578                     {
3579                       error ("Cannot find interface declaration for `%s'",
3580                              IDENTIFIER_POINTER (yyvsp[-1].ttype));
3581                       yyval.ttype = NULL_TREE;
3582                     }
3583                 ;
3584     break;}
3585 case 278:
3586 #line 1509 "objc-parse.y"
3587 { yyval.ttype = yyvsp[0].ttype;
3588                   current_declspecs = TREE_VALUE (declspec_stack);
3589                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3590                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3591     break;}
3592 case 279:
3593 #line 1514 "objc-parse.y"
3594 {
3595                   /* Support for unnamed structs or unions as members of 
3596                      structs or unions (which is [a] useful and [b] supports 
3597                      MS P-SDK).  */
3598                   if (pedantic)
3599                     pedwarn ("ANSI C doesn't support unnamed structs/unions");
3600
3601                   yyval.ttype = grokfield(yyvsp[-2].filename, yyvsp[-1].lineno, NULL, current_declspecs, NULL_TREE);
3602                   current_declspecs = TREE_VALUE (declspec_stack);
3603                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3604                   declspec_stack = TREE_CHAIN (declspec_stack);
3605                 ;
3606     break;}
3607 case 280:
3608 #line 1527 "objc-parse.y"
3609 { yyval.ttype = yyvsp[0].ttype;
3610                   current_declspecs = TREE_VALUE (declspec_stack);
3611                   prefix_attributes = TREE_PURPOSE (declspec_stack);
3612                   declspec_stack = TREE_CHAIN (declspec_stack); ;
3613     break;}
3614 case 281:
3615 #line 1532 "objc-parse.y"
3616 { if (pedantic)
3617                     pedwarn ("ANSI C forbids member declarations with no members");
3618                   shadow_tag(yyvsp[0].ttype);
3619                   yyval.ttype = NULL_TREE; ;
3620     break;}
3621 case 282:
3622 #line 1537 "objc-parse.y"
3623 { yyval.ttype = NULL_TREE; ;
3624     break;}
3625 case 283:
3626 #line 1539 "objc-parse.y"
3627 { yyval.ttype = yyvsp[0].ttype;
3628                   RESTORE_WARN_FLAGS (yyvsp[-1].ttype); ;
3629     break;}
3630 case 285:
3631 #line 1546 "objc-parse.y"
3632 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3633     break;}
3634 case 286:
3635 #line 1551 "objc-parse.y"
3636 { yyval.ttype = grokfield (yyvsp[-3].filename, yyvsp[-2].lineno, yyvsp[-1].ttype, current_declspecs, NULL_TREE);
3637                   decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3638     break;}
3639 case 287:
3640 #line 1555 "objc-parse.y"
3641 { yyval.ttype = grokfield (yyvsp[-5].filename, yyvsp[-4].lineno, yyvsp[-3].ttype, current_declspecs, yyvsp[-1].ttype);
3642                   decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3643     break;}
3644 case 288:
3645 #line 1558 "objc-parse.y"
3646 { yyval.ttype = grokfield (yyvsp[-4].filename, yyvsp[-3].lineno, NULL_TREE, current_declspecs, yyvsp[-1].ttype);
3647                   decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ;
3648     break;}
3649 case 290:
3650 #line 1570 "objc-parse.y"
3651 { if (yyvsp[-2].ttype == error_mark_node)
3652                     yyval.ttype = yyvsp[-2].ttype;
3653                   else
3654                     yyval.ttype = chainon (yyvsp[0].ttype, yyvsp[-2].ttype); ;
3655     break;}
3656 case 291:
3657 #line 1575 "objc-parse.y"
3658 { yyval.ttype = error_mark_node; ;
3659     break;}
3660 case 292:
3661 #line 1581 "objc-parse.y"
3662 { yyval.ttype = build_enumerator (yyvsp[0].ttype, NULL_TREE); ;
3663     break;}
3664 case 293:
3665 #line 1583 "objc-parse.y"
3666 { yyval.ttype = build_enumerator (yyvsp[-2].ttype, yyvsp[0].ttype); ;
3667     break;}
3668 case 294:
3669 #line 1588 "objc-parse.y"
3670 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3671     break;}
3672 case 295:
3673 #line 1590 "objc-parse.y"
3674 { yyval.ttype = build_tree_list (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3675     break;}
3676 case 296:
3677 #line 1595 "objc-parse.y"
3678 { yyval.ttype = NULL_TREE; ;
3679     break;}
3680 case 298:
3681 #line 1601 "objc-parse.y"
3682 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3683     break;}
3684 case 299:
3685 #line 1603 "objc-parse.y"
3686 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3687     break;}
3688 case 300:
3689 #line 1608 "objc-parse.y"
3690 { yyval.ttype = NULL_TREE; ;
3691     break;}
3692 case 301:
3693 #line 1610 "objc-parse.y"
3694 { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ttype); ;
3695     break;}
3696 case 302:
3697 #line 1615 "objc-parse.y"
3698 { yyval.ttype = yyvsp[-1].ttype; ;
3699     break;}
3700 case 303:
3701 #line 1618 "objc-parse.y"
3702 { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ;
3703     break;}
3704 case 304:
3705 #line 1620 "objc-parse.y"
3706 { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ;
3707     break;}
3708 case 305:
3709 #line 1622 "objc-parse.y"
3710 { yyval.ttype = build_nt (CALL_EXPR, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE); ;
3711     break;}
3712 case 306:
3713 #line 1624 "objc-parse.y"
3714 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-3].ttype, yyvsp[-1].ttype); ;
3715     break;}
3716 case 307:
3717 #line 1626 "objc-parse.y"
3718 { yyval.ttype = build_nt (ARRAY_REF, yyvsp[-2].ttype, NULL_TREE); ;
3719     break;}
3720 case 308:
3721 #line 1628 "objc-parse.y"
3722 { yyval.ttype = build_nt (CALL_EXPR, NULL_TREE, yyvsp[0].ttype, NULL_TREE); ;
3723     break;}
3724 case 309:
3725 #line 1630 "objc-parse.y"
3726 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ;
3727     break;}
3728 case 310:
3729 #line 1632 "objc-parse.y"
3730 { yyval.ttype = build_nt (ARRAY_REF, NULL_TREE, NULL_TREE); ;
3731     break;}
3732 case 311:
3733 #line 1636 "objc-parse.y"
3734 { yyval.ttype = yyvsp[0].ttype; ;
3735     break;}
3736 case 312:
3737 #line 1645 "objc-parse.y"
3738 {
3739                   if (pedantic && yyvsp[0].ends_in_label)
3740                     pedwarn ("ANSI C forbids label at end of compound statement");
3741                 ;
3742     break;}
3743 case 314:
3744 #line 1654 "objc-parse.y"
3745 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3746     break;}
3747 case 315:
3748 #line 1656 "objc-parse.y"
3749 { yyval.ends_in_label = 0; ;
3750     break;}
3751 case 319:
3752 #line 1668 "objc-parse.y"
3753 { emit_line_note (input_filename, lineno);
3754                   pushlevel (0);
3755                   clear_last_expr ();
3756                   expand_start_bindings (0);
3757                   if (objc_method_context)
3758                     add_objc_decls ();
3759                 ;
3760     break;}
3761 case 321:
3762 #line 1682 "objc-parse.y"
3763 { if (pedantic)
3764                     pedwarn ("ANSI C forbids label declarations"); ;
3765     break;}
3766 case 324:
3767 #line 1693 "objc-parse.y"
3768 { tree link;
3769                   for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link))
3770                     {
3771                       tree label = shadow_label (TREE_VALUE (link));
3772                       C_DECLARED_LABEL_FLAG (label) = 1;
3773                       declare_nonlocal_label (label);
3774                     }
3775                 ;
3776     break;}
3777 case 325:
3778 #line 1707 "objc-parse.y"
3779 {;
3780     break;}
3781 case 327:
3782 #line 1711 "objc-parse.y"
3783 { compstmt_count++; ;
3784     break;}
3785 case 328:
3786 #line 1714 "objc-parse.y"
3787 { yyval.ttype = convert (void_type_node, integer_zero_node); ;
3788     break;}
3789 case 329:
3790 #line 1716 "objc-parse.y"
3791 { emit_line_note (input_filename, lineno);
3792                   expand_end_bindings (getdecls (), 1, 0);
3793                   yyval.ttype = poplevel (1, 1, 0); ;
3794     break;}
3795 case 330:
3796 #line 1720 "objc-parse.y"
3797 { emit_line_note (input_filename, lineno);
3798                   expand_end_bindings (getdecls (), kept_level_p (), 0);
3799                   yyval.ttype = poplevel (kept_level_p (), 0, 0); ;
3800     break;}
3801 case 331:
3802 #line 1724 "objc-parse.y"
3803 { emit_line_note (input_filename, lineno);
3804                   expand_end_bindings (getdecls (), kept_level_p (), 0);
3805                   yyval.ttype = poplevel (kept_level_p (), 0, 0); ;
3806     break;}
3807 case 332:
3808 #line 1731 "objc-parse.y"
3809 { if (current_function_decl == 0)
3810                     {
3811                       error ("braced-group within expression allowed only inside a function");
3812                       YYERROR;
3813                     }
3814                   /* We must force a BLOCK for this level
3815                      so that, if it is not expanded later,
3816                      there is a way to turn off the entire subtree of blocks
3817                      that are contained in it.  */
3818                   keep_next_level ();
3819                   push_iterator_stack ();
3820                   push_label_level ();
3821                   yyval.ttype = expand_start_stmt_expr ();
3822                   compstmt_count++;
3823                 ;
3824     break;}
3825 case 333:
3826 #line 1748 "objc-parse.y"
3827 { yyval.ttype = yyvsp[0].ttype; ;
3828     break;}
3829 case 336:
3830 #line 1762 "objc-parse.y"
3831 { emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3832                   c_expand_start_cond (truthvalue_conversion (yyvsp[-1].ttype), 0, 
3833                                        compstmt_count);
3834                   yyval.itype = stmt_count;
3835                   if_stmt_file = yyvsp[-5].filename;
3836                   if_stmt_line = yyvsp[-4].lineno;
3837                   position_after_white_space (); ;
3838     break;}
3839 case 337:
3840 #line 1776 "objc-parse.y"
3841 { stmt_count++;
3842                   compstmt_count++;
3843                   emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3844                   /* See comment in `while' alternative, above.  */
3845                   emit_nop ();
3846                   expand_start_loop_continue_elsewhere (1);
3847                   position_after_white_space (); ;
3848     break;}
3849 case 338:
3850 #line 1784 "objc-parse.y"
3851 { expand_loop_continue_here (); ;
3852     break;}
3853 case 339:
3854 #line 1788 "objc-parse.y"
3855 { yyval.filename = input_filename; ;
3856     break;}
3857 case 340:
3858 #line 1792 "objc-parse.y"
3859 { yyval.lineno = lineno; ;
3860     break;}
3861 case 341:
3862 #line 1797 "objc-parse.y"
3863 { ;
3864     break;}
3865 case 342:
3866 #line 1802 "objc-parse.y"
3867 { ;
3868     break;}
3869 case 343:
3870 #line 1807 "objc-parse.y"
3871 { yyval.ends_in_label = yyvsp[0].ends_in_label; ;
3872     break;}
3873 case 344:
3874 #line 1812 "objc-parse.y"
3875 { yyval.ends_in_label = 0; ;
3876     break;}
3877 case 345:
3878 #line 1814 "objc-parse.y"
3879 { yyval.ends_in_label = 1; ;
3880     break;}
3881 case 346:
3882 #line 1820 "objc-parse.y"
3883 { stmt_count++; ;
3884     break;}
3885 case 348:
3886 #line 1823 "objc-parse.y"
3887 { stmt_count++;
3888                   emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
3889 /* It appears that this should not be done--that a non-lvalue array
3890    shouldn't get an error if the value isn't used.
3891    Section 3.2.2.1 says that an array lvalue gets converted to a pointer
3892    if it appears as a top-level expression,
3893    but says nothing about non-lvalue arrays.  */
3894 #if 0
3895                   /* Call default_conversion to get an error
3896                      on referring to a register array if pedantic.  */
3897                   if (TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == ARRAY_TYPE
3898                       || TREE_CODE (TREE_TYPE (yyvsp[-1].ttype)) == FUNCTION_TYPE)
3899                     yyvsp[-1].ttype = default_conversion (yyvsp[-1].ttype);
3900 #endif
3901                   iterator_expand (yyvsp[-1].ttype); ;
3902     break;}
3903 case 349:
3904 #line 1839 "objc-parse.y"
3905 { c_expand_start_else ();
3906                   yyvsp[-1].itype = stmt_count;
3907                   position_after_white_space (); ;
3908     break;}
3909 case 350:
3910 #line 1843 "objc-parse.y"
3911 { c_expand_end_cond ();
3912                   if (extra_warnings && stmt_count == yyvsp[-3].itype)
3913                     warning ("empty body in an else-statement"); ;
3914     break;}
3915 case 351:
3916 #line 1847 "objc-parse.y"
3917 { c_expand_end_cond ();
3918                   /* This warning is here instead of in simple_if, because we
3919                      do not want a warning if an empty if is followed by an
3920                      else statement.  Increment stmt_count so we don't
3921                      give a second error if this is a nested `if'.  */
3922                   if (extra_warnings && stmt_count++ == yyvsp[0].itype)
3923                     warning_with_file_and_line (if_stmt_file, if_stmt_line,
3924                                                 "empty body in an if-statement"); ;
3925     break;}
3926 case 352:
3927 #line 1859 "objc-parse.y"
3928 { c_expand_end_cond (); ;
3929     break;}
3930 case 353:
3931 #line 1861 "objc-parse.y"
3932 { stmt_count++;
3933                   emit_line_note (yyvsp[-2].filename, yyvsp[-1].lineno);
3934                   /* The emit_nop used to come before emit_line_note,
3935                      but that made the nop seem like part of the preceding line.
3936                      And that was confusing when the preceding line was
3937                      inside of an if statement and was not really executed.
3938                      I think it ought to work to put the nop after the line number.
3939                      We will see.  --rms, July 15, 1991.  */
3940                   emit_nop (); ;
3941     break;}
3942 case 354:
3943 #line 1871 "objc-parse.y"
3944 { /* Don't start the loop till we have succeeded
3945                      in parsing the end test.  This is to make sure
3946                      that we end every loop we start.  */
3947                   expand_start_loop (1);
3948                   emit_line_note (input_filename, lineno);
3949                   expand_exit_loop_if_false (NULL_PTR,
3950                                              truthvalue_conversion (yyvsp[-1].ttype));
3951                   position_after_white_space (); ;
3952     break;}
3953 case 355:
3954 #line 1880 "objc-parse.y"
3955 { expand_end_loop (); ;
3956     break;}
3957 case 356:
3958 #line 1883 "objc-parse.y"
3959 { emit_line_note (input_filename, lineno);
3960                   expand_exit_loop_if_false (NULL_PTR,
3961                                              truthvalue_conversion (yyvsp[-2].ttype));
3962                   expand_end_loop (); ;
3963     break;}
3964 case 357:
3965 #line 1889 "objc-parse.y"
3966 { expand_end_loop (); ;
3967     break;}
3968 case 358:
3969 #line 1892 "objc-parse.y"
3970 { stmt_count++;
3971                   emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
3972                   /* See comment in `while' alternative, above.  */
3973                   emit_nop ();
3974                   if (yyvsp[-1].ttype) c_expand_expr_stmt (yyvsp[-1].ttype);
3975                   /* Next step is to call expand_start_loop_continue_elsewhere,
3976                      but wait till after we parse the entire for (...).
3977                      Otherwise, invalid input might cause us to call that
3978                      fn without calling expand_end_loop.  */
3979                 ;
3980     break;}
3981 case 359:
3982 #line 1904 "objc-parse.y"
3983 { yyvsp[0].lineno = lineno;
3984                   yyval.filename = input_filename; ;
3985     break;}
3986 case 360:
3987 #line 1907 "objc-parse.y"
3988
3989                   /* Start the loop.  Doing this after parsing
3990                      all the expressions ensures we will end the loop.  */
3991                   expand_start_loop_continue_elsewhere (1);
3992                   /* Emit the end-test, with a line number.  */
3993                   emit_line_note (yyvsp[-2].filename, yyvsp[-3].lineno);
3994                   if (yyvsp[-4].ttype)
3995                     expand_exit_loop_if_false (NULL_PTR,
3996                                                truthvalue_conversion (yyvsp[-4].ttype));
3997                   yyvsp[-3].lineno = lineno;
3998                   yyvsp[-2].filename = input_filename;
3999                   position_after_white_space (); ;
4000     break;}
4001 case 361:
4002 #line 1920 "objc-parse.y"
4003 { /* Emit the increment expression, with a line number.  */
4004                   emit_line_note (yyvsp[-4].filename, yyvsp[-5].lineno);
4005                   expand_loop_continue_here ();
4006                   if (yyvsp[-3].ttype)
4007                     c_expand_expr_stmt (yyvsp[-3].ttype);
4008                   expand_end_loop (); ;
4009     break;}
4010 case 362:
4011 #line 1927 "objc-parse.y"
4012 { stmt_count++;
4013                   emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
4014                   c_expand_start_case (yyvsp[-1].ttype);
4015                   position_after_white_space (); ;
4016     break;}
4017 case 363:
4018 #line 1932 "objc-parse.y"
4019 { expand_end_case (yyvsp[-3].ttype); ;
4020     break;}
4021 case 364:
4022 #line 1934 "objc-parse.y"
4023 { stmt_count++;
4024                   emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
4025                   if ( ! expand_exit_something ())
4026                     error ("break statement not within loop or switch"); ;
4027     break;}
4028 case 365:
4029 #line 1939 "objc-parse.y"
4030 { stmt_count++;
4031                   emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
4032                   if (! expand_continue_loop (NULL_PTR))
4033                     error ("continue statement not within a loop"); ;
4034     break;}
4035 case 366:
4036 #line 1944 "objc-parse.y"
4037 { stmt_count++;
4038                   emit_line_note (yyvsp[-3].filename, yyvsp[-2].lineno);
4039                   c_expand_return (NULL_TREE); ;
4040     break;}
4041 case 367:
4042 #line 1948 "objc-parse.y"
4043 { stmt_count++;
4044                   emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
4045                   c_expand_return (yyvsp[-1].ttype); ;
4046     break;}
4047 case 368:
4048 #line 1952 "objc-parse.y"
4049 { stmt_count++;
4050                   emit_line_note (yyvsp[-7].filename, yyvsp[-6].lineno);
4051                   STRIP_NOPS (yyvsp[-2].ttype);
4052                   if ((TREE_CODE (yyvsp[-2].ttype) == ADDR_EXPR
4053                        && TREE_CODE (TREE_OPERAND (yyvsp[-2].ttype, 0)) == STRING_CST)
4054                       || TREE_CODE (yyvsp[-2].ttype) == STRING_CST)
4055                     expand_asm (yyvsp[-2].ttype);
4056                   else
4057                     error ("argument of `asm' is not a constant string"); ;
4058     break;}
4059 case 369:
4060 #line 1963 "objc-parse.y"
4061 { stmt_count++;
4062                   emit_line_note (yyvsp[-9].filename, yyvsp[-8].lineno);
4063                   c_expand_asm_operands (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE,
4064                                          yyvsp[-6].ttype == ridpointers[(int)RID_VOLATILE],
4065                                          input_filename, lineno); ;
4066     break;}
4067 case 370:
4068 #line 1970 "objc-parse.y"
4069 { stmt_count++;
4070                   emit_line_note (yyvsp[-11].filename, yyvsp[-10].lineno);
4071                   c_expand_asm_operands (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE,
4072                                          yyvsp[-8].ttype == ridpointers[(int)RID_VOLATILE],
4073                                          input_filename, lineno); ;
4074     break;}
4075 case 371:
4076 #line 1978 "objc-parse.y"
4077 { stmt_count++;
4078                   emit_line_note (yyvsp[-13].filename, yyvsp[-12].lineno);
4079                   c_expand_asm_operands (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype,
4080                                          yyvsp[-10].ttype == ridpointers[(int)RID_VOLATILE],
4081                                          input_filename, lineno); ;
4082     break;}
4083 case 372:
4084 #line 1984 "objc-parse.y"
4085 { tree decl;
4086                   stmt_count++;
4087                   emit_line_note (yyvsp[-4].filename, yyvsp[-3].lineno);
4088                   decl = lookup_label (yyvsp[-1].ttype);
4089                   if (decl != 0)
4090                     {
4091                       TREE_USED (decl) = 1;
4092                       expand_goto (decl);
4093                     }
4094                 ;
4095     break;}
4096 case 373:
4097 #line 1995 "objc-parse.y"
4098 { if (pedantic)
4099                     pedwarn ("ANSI C forbids `goto *expr;'");
4100                   stmt_count++;
4101                   emit_line_note (yyvsp[-5].filename, yyvsp[-4].lineno);
4102                   expand_computed_goto (convert (ptr_type_node, yyvsp[-1].ttype)); ;
4103     break;}
4104 case 376:
4105 #line 2010 "objc-parse.y"
4106 {
4107             /* The value returned by this action is  */
4108             /*      1 if everything is OK */ 
4109             /*      0 in case of error or already bound iterator */
4110
4111             yyval.itype = 0;
4112             if (TREE_CODE (yyvsp[-1].ttype) != VAR_DECL)
4113               error ("invalid `for (ITERATOR)' syntax");
4114             else if (! ITERATOR_P (yyvsp[-1].ttype))
4115               error ("`%s' is not an iterator",
4116                      IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
4117             else if (ITERATOR_BOUND_P (yyvsp[-1].ttype))
4118               error ("`for (%s)' inside expansion of same iterator",
4119                      IDENTIFIER_POINTER (DECL_NAME (yyvsp[-1].ttype)));
4120             else
4121               {
4122                 yyval.itype = 1;
4123                 iterator_for_loop_start (yyvsp[-1].ttype);
4124               }
4125           ;
4126     break;}
4127 case 377:
4128 #line 2031 "objc-parse.y"
4129 {
4130             if (yyvsp[-1].itype)
4131               iterator_for_loop_end (yyvsp[-3].ttype);
4132           ;
4133     break;}
4134 case 378:
4135 #line 2062 "objc-parse.y"
4136 { register tree value = check_case_value (yyvsp[-1].ttype);
4137                   register tree label
4138                     = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4139
4140                   stmt_count++;
4141
4142                   if (value != error_mark_node)
4143                     {
4144                       tree duplicate;
4145                       int success;
4146
4147                       if (pedantic && ! INTEGRAL_TYPE_P (TREE_TYPE (value)))
4148                         pedwarn ("label must have integral type in ANSI C");
4149
4150                       success = pushcase (value, convert_and_check,
4151                                           label, &duplicate);
4152
4153                       if (success == 1)
4154                         error ("case label not within a switch statement");
4155                       else if (success == 2)
4156                         {
4157                           error ("duplicate case value");
4158                           error_with_decl (duplicate, "this is the first entry for that value");
4159                         }
4160                       else if (success == 3)
4161                         warning ("case value out of range");
4162                       else if (success == 5)
4163                         error ("case label within scope of cleanup or variable array");
4164                     }
4165                   position_after_white_space (); ;
4166     break;}
4167 case 379:
4168 #line 2093 "objc-parse.y"
4169 { register tree value1 = check_case_value (yyvsp[-3].ttype);
4170                   register tree value2 = check_case_value (yyvsp[-1].ttype);
4171                   register tree label
4172                     = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4173
4174                   if (pedantic)
4175                     pedwarn ("ANSI C forbids case ranges");
4176                   stmt_count++;
4177
4178                   if (value1 != error_mark_node && value2 != error_mark_node)
4179                     {
4180                       tree duplicate;
4181                       int success = pushcase_range (value1, value2,
4182                                                     convert_and_check, label,
4183                                                     &duplicate);
4184                       if (success == 1)
4185                         error ("case label not within a switch statement");
4186                       else if (success == 2)
4187                         {
4188                           error ("duplicate case value");
4189                           error_with_decl (duplicate, "this is the first entry for that value");
4190                         }
4191                       else if (success == 3)
4192                         warning ("case value out of range");
4193                       else if (success == 4)
4194                         warning ("empty case range");
4195                       else if (success == 5)
4196                         error ("case label within scope of cleanup or variable array");
4197                     }
4198                   position_after_white_space (); ;
4199     break;}
4200 case 380:
4201 #line 2124 "objc-parse.y"
4202 {
4203                   tree duplicate;
4204                   register tree label
4205                     = build_decl (LABEL_DECL, NULL_TREE, NULL_TREE);
4206                   int success = pushcase (NULL_TREE, 0, label, &duplicate);
4207                   stmt_count++;
4208                   if (success == 1)
4209                     error ("default label not within a switch statement");
4210                   else if (success == 2)
4211                     {
4212                       error ("multiple default labels in one switch");
4213                       error_with_decl (duplicate, "this is the first default label");
4214                     }
4215                   position_after_white_space (); ;
4216     break;}
4217 case 381:
4218 #line 2139 "objc-parse.y"
4219 { tree label = define_label (input_filename, lineno, yyvsp[-2].ttype);
4220                   stmt_count++;
4221                   emit_nop ();
4222                   if (label)
4223                     {
4224                       expand_label (label);
4225                       decl_attributes (label, yyvsp[0].ttype, NULL_TREE);
4226                     }
4227                   position_after_white_space (); ;
4228     break;}
4229 case 382:
4230 #line 2154 "objc-parse.y"
4231 { emit_line_note (input_filename, lineno);
4232                   yyval.ttype = NULL_TREE; ;
4233     break;}
4234 case 383:
4235 #line 2157 "objc-parse.y"
4236 { emit_line_note (input_filename, lineno); ;
4237     break;}
4238 case 384:
4239 #line 2162 "objc-parse.y"
4240 { yyval.ttype = NULL_TREE; ;
4241     break;}
4242 case 386:
4243 #line 2169 "objc-parse.y"
4244 { yyval.ttype = NULL_TREE; ;
4245     break;}
4246 case 389:
4247 #line 2176 "objc-parse.y"
4248 { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ;
4249     break;}
4250 case 390:
4251 #line 2181 "objc-parse.y"
4252 { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ;
4253     break;}
4254 case 391:
4255 #line 2186 "objc-parse.y"
4256 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), NULL_TREE); ;
4257     break;}
4258 case 392:
4259 #line 2188 "objc-parse.y"
4260 { yyval.ttype = tree_cons (NULL_TREE, combine_strings (yyvsp[0].ttype), yyvsp[-2].ttype); ;
4261     break;}
4262 case 393:
4263 #line 2194 "objc-parse.y"
4264 { pushlevel (0);
4265                   clear_parm_order ();
4266                   declare_parm_level (0); ;
4267     break;}
4268 case 394:
4269 #line 2198 "objc-parse.y"
4270 { yyval.ttype = yyvsp[0].ttype;
4271                   parmlist_tags_warning ();
4272                   poplevel (0, 0, 0); ;
4273     break;}
4274 case 396:
4275 #line 2206 "objc-parse.y"
4276 { tree parm;
4277                   if (pedantic)
4278                     pedwarn ("ANSI C forbids forward parameter declarations");
4279                   /* Mark the forward decls as such.  */
4280                   for (parm = getdecls (); parm; parm = TREE_CHAIN (parm))
4281                     TREE_ASM_WRITTEN (parm) = 1;
4282                   clear_parm_order (); ;
4283     break;}
4284 case 397:
4285 #line 2214 "objc-parse.y"
4286 { yyval.ttype = yyvsp[0].ttype; ;
4287     break;}
4288 case 398:
4289 #line 2216 "objc-parse.y"
4290 { yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, NULL_TREE); ;
4291     break;}
4292 case 399:
4293 #line 2222 "objc-parse.y"
4294 { yyval.ttype = get_parm_info (0); ;
4295     break;}
4296 case 400:
4297 #line 2224 "objc-parse.y"
4298 { yyval.ttype = get_parm_info (0);
4299                   /* Gcc used to allow this as an extension.  However, it does
4300                      not work for all targets, and thus has been disabled.
4301                      Also, since func (...) and func () are indistinguishable,
4302                      it caused problems with the code in expand_builtin which
4303                      tries to verify that BUILT_IN_NEXT_ARG is being used
4304                      correctly.  */
4305                   error ("ANSI C requires a named argument before `...'");
4306                 ;
4307     break;}
4308 case 401:
4309 #line 2234 "objc-parse.y"
4310 { yyval.ttype = get_parm_info (1); ;
4311     break;}
4312 case 402:
4313 #line 2236 "objc-parse.y"
4314 { yyval.ttype = get_parm_info (0); ;
4315     break;}
4316 case 403:
4317 #line 2241 "objc-parse.y"
4318 { push_parm_decl (yyvsp[0].ttype); ;
4319     break;}
4320 case 404:
4321 #line 2243 "objc-parse.y"
4322 { push_parm_decl (yyvsp[0].ttype); ;
4323     break;}
4324 case 405:
4325 #line 2250 "objc-parse.y"
4326 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4327                                                          yyvsp[-1].ttype),
4328                                         build_tree_list (prefix_attributes,
4329                                                          yyvsp[0].ttype));
4330                   current_declspecs = TREE_VALUE (declspec_stack);
4331                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4332                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4333     break;}
4334 case 406:
4335 #line 2258 "objc-parse.y"
4336 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4337                                                          yyvsp[-1].ttype),
4338                                         build_tree_list (prefix_attributes,
4339                                                          yyvsp[0].ttype)); 
4340                   current_declspecs = TREE_VALUE (declspec_stack);
4341                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4342                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4343     break;}
4344 case 407:
4345 #line 2266 "objc-parse.y"
4346 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4347                                                          yyvsp[-1].ttype),
4348                                         build_tree_list (prefix_attributes,
4349                                                          yyvsp[0].ttype));
4350                   current_declspecs = TREE_VALUE (declspec_stack);
4351                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4352                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4353     break;}
4354 case 408:
4355 #line 2274 "objc-parse.y"
4356 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4357                                                          yyvsp[-1].ttype),
4358                                         build_tree_list (prefix_attributes,
4359                                                          yyvsp[0].ttype));
4360                   current_declspecs = TREE_VALUE (declspec_stack);
4361                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4362                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4363     break;}
4364 case 409:
4365 #line 2283 "objc-parse.y"
4366 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4367                                                          yyvsp[-1].ttype),
4368                                         build_tree_list (prefix_attributes,
4369                                                          yyvsp[0].ttype));
4370                   current_declspecs = TREE_VALUE (declspec_stack);
4371                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4372                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4373     break;}
4374 case 410:
4375 #line 2296 "objc-parse.y"
4376 { pushlevel (0);
4377                   clear_parm_order ();
4378                   declare_parm_level (1); ;
4379     break;}
4380 case 411:
4381 #line 2300 "objc-parse.y"
4382 { yyval.ttype = yyvsp[0].ttype;
4383                   parmlist_tags_warning ();
4384                   poplevel (0, 0, 0); ;
4385     break;}
4386 case 413:
4387 #line 2308 "objc-parse.y"
4388 { tree t;
4389                   for (t = yyvsp[-1].ttype; t; t = TREE_CHAIN (t))
4390                     if (TREE_VALUE (t) == NULL_TREE)
4391                       error ("`...' in old-style identifier list");
4392                   yyval.ttype = tree_cons (NULL_TREE, NULL_TREE, yyvsp[-1].ttype); ;
4393     break;}
4394 case 414:
4395 #line 2318 "objc-parse.y"
4396 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4397     break;}
4398 case 415:
4399 #line 2320 "objc-parse.y"
4400 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4401     break;}
4402 case 416:
4403 #line 2326 "objc-parse.y"
4404 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4405     break;}
4406 case 417:
4407 #line 2328 "objc-parse.y"
4408 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4409     break;}
4410 case 418:
4411 #line 2333 "objc-parse.y"
4412 { yyval.ttype = SAVE_WARN_FLAGS();
4413                   pedantic = 0;
4414                   warn_pointer_arith = 0; ;
4415     break;}
4416 case 424:
4417 #line 2347 "objc-parse.y"
4418 {
4419                   if (objc_implementation_context)
4420                     {
4421                       finish_class (objc_implementation_context);
4422                       objc_ivar_chain = NULL_TREE;
4423                       objc_implementation_context = NULL_TREE;
4424                     }
4425                   else
4426                     warning ("`@end' must appear in an implementation context");
4427                 ;
4428     break;}
4429 case 425:
4430 #line 2362 "objc-parse.y"
4431 { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ;
4432     break;}
4433 case 426:
4434 #line 2364 "objc-parse.y"
4435 { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ;
4436     break;}
4437 case 427:
4438 #line 2369 "objc-parse.y"
4439 {
4440                   objc_declare_class (yyvsp[-1].ttype);
4441                 ;
4442     break;}
4443 case 428:
4444 #line 2375 "objc-parse.y"
4445 {
4446                   objc_declare_alias (yyvsp[-2].ttype, yyvsp[-1].ttype);
4447                 ;
4448     break;}
4449 case 429:
4450 #line 2381 "objc-parse.y"
4451 {
4452                   objc_interface_context = objc_ivar_context
4453                     = start_class (CLASS_INTERFACE_TYPE, yyvsp[-2].ttype, NULL_TREE, yyvsp[-1].ttype);
4454                   objc_public_flag = 0;
4455                 ;
4456     break;}
4457 case 430:
4458 #line 2387 "objc-parse.y"
4459 {
4460                   continue_class (objc_interface_context);
4461                 ;
4462     break;}
4463 case 431:
4464 #line 2392 "objc-parse.y"
4465 {
4466                   finish_class (objc_interface_context);
4467                   objc_interface_context = NULL_TREE;
4468                 ;
4469     break;}
4470 case 432:
4471 #line 2398 "objc-parse.y"
4472 {
4473                   objc_interface_context
4474                     = start_class (CLASS_INTERFACE_TYPE, yyvsp[-1].ttype, NULL_TREE, yyvsp[0].ttype);
4475                   continue_class (objc_interface_context);
4476                 ;
4477     break;}
4478 case 433:
4479 #line 2405 "objc-parse.y"
4480 {
4481                   finish_class (objc_interface_context);
4482                   objc_interface_context = NULL_TREE;
4483                 ;
4484     break;}
4485 case 434:
4486 #line 2411 "objc-parse.y"
4487 {
4488                   objc_interface_context = objc_ivar_context
4489                     = start_class (CLASS_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[-1].ttype);
4490                   objc_public_flag = 0;
4491                 ;
4492     break;}
4493 case 435:
4494 #line 2417 "objc-parse.y"
4495 {
4496                   continue_class (objc_interface_context);
4497                 ;
4498     break;}
4499 case 436:
4500 #line 2422 "objc-parse.y"
4501 {
4502                   finish_class (objc_interface_context);
4503                   objc_interface_context = NULL_TREE;
4504                 ;
4505     break;}
4506 case 437:
4507 #line 2428 "objc-parse.y"
4508 {
4509                   objc_interface_context
4510                     = start_class (CLASS_INTERFACE_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4511                   continue_class (objc_interface_context);
4512                 ;
4513     break;}
4514 case 438:
4515 #line 2435 "objc-parse.y"
4516 {
4517                   finish_class (objc_interface_context);
4518                   objc_interface_context = NULL_TREE;
4519                 ;
4520     break;}
4521 case 439:
4522 #line 2441 "objc-parse.y"
4523 {
4524                   objc_implementation_context = objc_ivar_context
4525                     = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-1].ttype, NULL_TREE, NULL_TREE);
4526                   objc_public_flag = 0;
4527                 ;
4528     break;}
4529 case 440:
4530 #line 2447 "objc-parse.y"
4531 {
4532                   objc_ivar_chain
4533                     = continue_class (objc_implementation_context);
4534                 ;
4535     break;}
4536 case 441:
4537 #line 2453 "objc-parse.y"
4538 {
4539                   objc_implementation_context
4540                     = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[0].ttype, NULL_TREE, NULL_TREE);
4541                   objc_ivar_chain
4542                     = continue_class (objc_implementation_context);
4543                 ;
4544     break;}
4545 case 442:
4546 #line 2461 "objc-parse.y"
4547 {
4548                   objc_implementation_context = objc_ivar_context
4549                     = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4550                   objc_public_flag = 0;
4551                 ;
4552     break;}
4553 case 443:
4554 #line 2467 "objc-parse.y"
4555 {
4556                   objc_ivar_chain
4557                     = continue_class (objc_implementation_context);
4558                 ;
4559     break;}
4560 case 444:
4561 #line 2473 "objc-parse.y"
4562 {
4563                   objc_implementation_context
4564                     = start_class (CLASS_IMPLEMENTATION_TYPE, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4565                   objc_ivar_chain
4566                     = continue_class (objc_implementation_context);
4567                 ;
4568     break;}
4569 case 445:
4570 #line 2481 "objc-parse.y"
4571 {
4572                   objc_interface_context
4573                     = start_class (CATEGORY_INTERFACE_TYPE, yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
4574                   continue_class (objc_interface_context);
4575                 ;
4576     break;}
4577 case 446:
4578 #line 2488 "objc-parse.y"
4579 {
4580                   finish_class (objc_interface_context);
4581                   objc_interface_context = NULL_TREE;
4582                 ;
4583     break;}
4584 case 447:
4585 #line 2494 "objc-parse.y"
4586 {
4587                   objc_implementation_context
4588                     = start_class (CATEGORY_IMPLEMENTATION_TYPE, yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE);
4589                   objc_ivar_chain
4590                     = continue_class (objc_implementation_context);
4591                 ;
4592     break;}
4593 case 448:
4594 #line 2504 "objc-parse.y"
4595 {
4596                   remember_protocol_qualifiers ();
4597                   objc_interface_context
4598                     = start_protocol(PROTOCOL_INTERFACE_TYPE, yyvsp[-1].ttype, yyvsp[0].ttype);
4599                 ;
4600     break;}
4601 case 449:
4602 #line 2510 "objc-parse.y"
4603 {
4604                   forget_protocol_qualifiers();
4605                   finish_protocol(objc_interface_context);
4606                   objc_interface_context = NULL_TREE;
4607                 ;
4608     break;}
4609 case 450:
4610 #line 2519 "objc-parse.y"
4611 {
4612                   yyval.ttype = NULL_TREE;
4613                 ;
4614     break;}
4615 case 452:
4616 #line 2527 "objc-parse.y"
4617 {
4618                   if (yyvsp[-2].code == LT_EXPR && yyvsp[0].code == GT_EXPR)
4619                     yyval.ttype = yyvsp[-1].ttype;
4620                   else
4621                     YYERROR1;
4622                 ;
4623     break;}
4624 case 455:
4625 #line 2541 "objc-parse.y"
4626 { objc_public_flag = 2; ;
4627     break;}
4628 case 456:
4629 #line 2542 "objc-parse.y"
4630 { objc_public_flag = 0; ;
4631     break;}
4632 case 457:
4633 #line 2543 "objc-parse.y"
4634 { objc_public_flag = 1; ;
4635     break;}
4636 case 458:
4637 #line 2548 "objc-parse.y"
4638 {
4639                   yyval.ttype = NULL_TREE;
4640                 ;
4641     break;}
4642 case 460:
4643 #line 2553 "objc-parse.y"
4644 {
4645                   if (pedantic)
4646                     pedwarn ("extra semicolon in struct or union specified");
4647                 ;
4648     break;}
4649 case 461:
4650 #line 2571 "objc-parse.y"
4651 { yyval.ttype = yyvsp[0].ttype;
4652                   current_declspecs = TREE_VALUE (declspec_stack);
4653                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4654                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4655     break;}
4656 case 462:
4657 #line 2576 "objc-parse.y"
4658 { yyval.ttype = yyvsp[0].ttype;
4659                   current_declspecs = TREE_VALUE (declspec_stack);
4660                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4661                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4662     break;}
4663 case 463:
4664 #line 2581 "objc-parse.y"
4665 { yyval.ttype = NULL_TREE; ;
4666     break;}
4667 case 464:
4668 #line 2586 "objc-parse.y"
4669 { yyval.ttype = NULL_TREE; ;
4670     break;}
4671 case 467:
4672 #line 2593 "objc-parse.y"
4673 {
4674                   yyval.ttype = add_instance_variable (objc_ivar_context,
4675                                               objc_public_flag,
4676                                               yyvsp[0].ttype, current_declspecs,
4677                                               NULL_TREE);
4678                 ;
4679     break;}
4680 case 468:
4681 #line 2600 "objc-parse.y"
4682 {
4683                   yyval.ttype = add_instance_variable (objc_ivar_context,
4684                                               objc_public_flag,
4685                                               yyvsp[-2].ttype, current_declspecs, yyvsp[0].ttype);
4686                 ;
4687     break;}
4688 case 469:
4689 #line 2606 "objc-parse.y"
4690 {
4691                   yyval.ttype = add_instance_variable (objc_ivar_context,
4692                                               objc_public_flag,
4693                                               NULL_TREE,
4694                                               current_declspecs, yyvsp[0].ttype);
4695                 ;
4696     break;}
4697 case 470:
4698 #line 2616 "objc-parse.y"
4699 {
4700                   remember_protocol_qualifiers ();
4701                   if (objc_implementation_context)
4702                     objc_inherit_code = CLASS_METHOD_DECL;
4703                   else
4704                     fatal ("method definition not in class context");
4705                 ;
4706     break;}
4707 case 471:
4708 #line 2624 "objc-parse.y"
4709 {
4710                   forget_protocol_qualifiers ();
4711                   add_class_method (objc_implementation_context, yyvsp[0].ttype);
4712                   start_method_def (yyvsp[0].ttype);
4713                   objc_method_context = yyvsp[0].ttype;
4714                 ;
4715     break;}
4716 case 472:
4717 #line 2631 "objc-parse.y"
4718 {
4719                   continue_method_def ();
4720                 ;
4721     break;}
4722 case 473:
4723 #line 2635 "objc-parse.y"
4724 {
4725                   finish_method_def ();
4726                   objc_method_context = NULL_TREE;
4727                 ;
4728     break;}
4729 case 474:
4730 #line 2641 "objc-parse.y"
4731 {
4732                   remember_protocol_qualifiers ();
4733                   if (objc_implementation_context)
4734                     objc_inherit_code = INSTANCE_METHOD_DECL;
4735                   else
4736                     fatal ("method definition not in class context");
4737                 ;
4738     break;}
4739 case 475:
4740 #line 2649 "objc-parse.y"
4741 {
4742                   forget_protocol_qualifiers ();
4743                   add_instance_method (objc_implementation_context, yyvsp[0].ttype);
4744                   start_method_def (yyvsp[0].ttype);
4745                   objc_method_context = yyvsp[0].ttype;
4746                 ;
4747     break;}
4748 case 476:
4749 #line 2656 "objc-parse.y"
4750 {
4751                   continue_method_def ();
4752                 ;
4753     break;}
4754 case 477:
4755 #line 2660 "objc-parse.y"
4756 {
4757                   finish_method_def ();
4758                   objc_method_context = NULL_TREE;
4759                 ;
4760     break;}
4761 case 479:
4762 #line 2672 "objc-parse.y"
4763 {yyval.ttype = NULL_TREE; ;
4764     break;}
4765 case 484:
4766 #line 2679 "objc-parse.y"
4767 {yyval.ttype = NULL_TREE; ;
4768     break;}
4769 case 488:
4770 #line 2689 "objc-parse.y"
4771 {
4772                   /* Remember protocol qualifiers in prototypes.  */
4773                   remember_protocol_qualifiers ();
4774                   objc_inherit_code = CLASS_METHOD_DECL;
4775                 ;
4776     break;}
4777 case 489:
4778 #line 2695 "objc-parse.y"
4779 {
4780                   /* Forget protocol qualifiers here.  */
4781                   forget_protocol_qualifiers ();
4782                   add_class_method (objc_interface_context, yyvsp[0].ttype);
4783                 ;
4784     break;}
4785 case 491:
4786 #line 2703 "objc-parse.y"
4787 {
4788                   /* Remember protocol qualifiers in prototypes.  */
4789                   remember_protocol_qualifiers ();
4790                   objc_inherit_code = INSTANCE_METHOD_DECL;
4791                 ;
4792     break;}
4793 case 492:
4794 #line 2709 "objc-parse.y"
4795 {
4796                   /* Forget protocol qualifiers here.  */
4797                   forget_protocol_qualifiers ();
4798                   add_instance_method (objc_interface_context, yyvsp[0].ttype);
4799                 ;
4800     break;}
4801 case 494:
4802 #line 2719 "objc-parse.y"
4803 {
4804                   yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-2].ttype, yyvsp[0].ttype, NULL_TREE);
4805                 ;
4806     break;}
4807 case 495:
4808 #line 2724 "objc-parse.y"
4809 {
4810                   yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[0].ttype, NULL_TREE);
4811                 ;
4812     break;}
4813 case 496:
4814 #line 2729 "objc-parse.y"
4815 {
4816                   yyval.ttype = build_method_decl (objc_inherit_code, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype);
4817                 ;
4818     break;}
4819 case 497:
4820 #line 2734 "objc-parse.y"
4821 {
4822                   yyval.ttype = build_method_decl (objc_inherit_code, NULL_TREE, yyvsp[-1].ttype, yyvsp[0].ttype);
4823                 ;
4824     break;}
4825 case 506:
4826 #line 2764 "objc-parse.y"
4827 { current_declspecs = TREE_VALUE (declspec_stack);
4828                   prefix_attributes = TREE_PURPOSE (declspec_stack);
4829                   declspec_stack = TREE_CHAIN (declspec_stack); ;
4830     break;}
4831 case 507:
4832 #line 2768 "objc-parse.y"
4833 { shadow_tag (yyvsp[-1].ttype); ;
4834     break;}
4835 case 508:
4836 #line 2770 "objc-parse.y"
4837 { pedwarn ("empty declaration"); ;
4838     break;}
4839 case 509:
4840 #line 2775 "objc-parse.y"
4841 { push_parm_decl (yyvsp[0].ttype); ;
4842     break;}
4843 case 510:
4844 #line 2777 "objc-parse.y"
4845 { push_parm_decl (yyvsp[0].ttype); ;
4846     break;}
4847 case 511:
4848 #line 2785 "objc-parse.y"
4849 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4850                                                          yyvsp[-1].ttype),
4851                                         build_tree_list (prefix_attributes,
4852                                                          yyvsp[0].ttype)); ;
4853     break;}
4854 case 512:
4855 #line 2790 "objc-parse.y"
4856 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4857                                                          yyvsp[-1].ttype),
4858                                         build_tree_list (prefix_attributes,
4859                                                          yyvsp[0].ttype)); ;
4860     break;}
4861 case 513:
4862 #line 2795 "objc-parse.y"
4863 { yyval.ttype = build_tree_list (build_tree_list (current_declspecs,
4864                                                          yyvsp[-1].ttype),
4865                                         build_tree_list (prefix_attributes,
4866                                                          yyvsp[0].ttype)); ;
4867     break;}
4868 case 514:
4869 #line 2803 "objc-parse.y"
4870 {
4871                   yyval.ttype = NULL_TREE;
4872                 ;
4873     break;}
4874 case 515:
4875 #line 2807 "objc-parse.y"
4876 {
4877                   /* oh what a kludge! */
4878                   yyval.ttype = (tree)1;
4879                 ;
4880     break;}
4881 case 516:
4882 #line 2812 "objc-parse.y"
4883 {
4884                   pushlevel (0);
4885                 ;
4886     break;}
4887 case 517:
4888 #line 2816 "objc-parse.y"
4889 {
4890                   /* returns a tree list node generated by get_parm_info */
4891                   yyval.ttype = yyvsp[0].ttype;
4892                   poplevel (0, 0, 0);
4893                 ;
4894     break;}
4895 case 520:
4896 #line 2831 "objc-parse.y"
4897 {
4898                   yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
4899                 ;
4900     break;}
4901 case 525:
4902 #line 2844 "objc-parse.y"
4903 { yyval.ttype = get_identifier (token_buffer); ;
4904     break;}
4905 case 526:
4906 #line 2845 "objc-parse.y"
4907 { yyval.ttype = get_identifier (token_buffer); ;
4908     break;}
4909 case 527:
4910 #line 2846 "objc-parse.y"
4911 { yyval.ttype = get_identifier (token_buffer); ;
4912     break;}
4913 case 528:
4914 #line 2847 "objc-parse.y"
4915 { yyval.ttype = get_identifier (token_buffer); ;
4916     break;}
4917 case 529:
4918 #line 2848 "objc-parse.y"
4919 { yyval.ttype = get_identifier (token_buffer); ;
4920     break;}
4921 case 530:
4922 #line 2849 "objc-parse.y"
4923 { yyval.ttype = get_identifier (token_buffer); ;
4924     break;}
4925 case 531:
4926 #line 2850 "objc-parse.y"
4927 { yyval.ttype = get_identifier (token_buffer); ;
4928     break;}
4929 case 532:
4930 #line 2851 "objc-parse.y"
4931 { yyval.ttype = get_identifier (token_buffer); ;
4932     break;}
4933 case 533:
4934 #line 2852 "objc-parse.y"
4935 { yyval.ttype = get_identifier (token_buffer); ;
4936     break;}
4937 case 534:
4938 #line 2853 "objc-parse.y"
4939 { yyval.ttype = get_identifier (token_buffer); ;
4940     break;}
4941 case 535:
4942 #line 2854 "objc-parse.y"
4943 { yyval.ttype = get_identifier (token_buffer); ;
4944     break;}
4945 case 536:
4946 #line 2855 "objc-parse.y"
4947 { yyval.ttype = get_identifier (token_buffer); ;
4948     break;}
4949 case 537:
4950 #line 2856 "objc-parse.y"
4951 { yyval.ttype = get_identifier (token_buffer); ;
4952     break;}
4953 case 538:
4954 #line 2857 "objc-parse.y"
4955 { yyval.ttype = get_identifier (token_buffer); ;
4956     break;}
4957 case 539:
4958 #line 2858 "objc-parse.y"
4959 { yyval.ttype = get_identifier (token_buffer); ;
4960     break;}
4961 case 540:
4962 #line 2859 "objc-parse.y"
4963 { yyval.ttype = get_identifier (token_buffer); ;
4964     break;}
4965 case 541:
4966 #line 2860 "objc-parse.y"
4967 { yyval.ttype = get_identifier (token_buffer); ;
4968     break;}
4969 case 542:
4970 #line 2861 "objc-parse.y"
4971 { yyval.ttype = get_identifier (token_buffer); ;
4972     break;}
4973 case 543:
4974 #line 2862 "objc-parse.y"
4975 { yyval.ttype = get_identifier (token_buffer); ;
4976     break;}
4977 case 546:
4978 #line 2868 "objc-parse.y"
4979 {
4980                   yyval.ttype = build_keyword_decl (yyvsp[-5].ttype, yyvsp[-2].ttype, yyvsp[0].ttype);
4981                 ;
4982     break;}
4983 case 547:
4984 #line 2873 "objc-parse.y"
4985 {
4986                   yyval.ttype = build_keyword_decl (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype);
4987                 ;
4988     break;}
4989 case 548:
4990 #line 2878 "objc-parse.y"
4991 {
4992                   yyval.ttype = build_keyword_decl (NULL_TREE, yyvsp[-2].ttype, yyvsp[0].ttype);
4993                 ;
4994     break;}
4995 case 549:
4996 #line 2883 "objc-parse.y"
4997 {
4998                   yyval.ttype = build_keyword_decl (NULL_TREE, NULL_TREE, yyvsp[0].ttype);
4999                 ;
5000     break;}
5001 case 553:
5002 #line 2896 "objc-parse.y"
5003 {
5004                   yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
5005                 ;
5006     break;}
5007 case 554:
5008 #line 2904 "objc-parse.y"
5009 {
5010                   if (TREE_CHAIN (yyvsp[0].ttype) == NULL_TREE)
5011                     /* just return the expr., remove a level of indirection */
5012                     yyval.ttype = TREE_VALUE (yyvsp[0].ttype);
5013                   else
5014                     /* we have a comma expr., we will collapse later */
5015                     yyval.ttype = yyvsp[0].ttype;
5016                 ;
5017     break;}
5018 case 555:
5019 #line 2916 "objc-parse.y"
5020 {
5021                   yyval.ttype = build_tree_list (yyvsp[-2].ttype, yyvsp[0].ttype);
5022                 ;
5023     break;}
5024 case 556:
5025 #line 2920 "objc-parse.y"
5026 {
5027                   yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype);
5028                 ;
5029     break;}
5030 case 558:
5031 #line 2928 "objc-parse.y"
5032 {
5033                   yyval.ttype = get_class_reference (yyvsp[0].ttype);
5034                 ;
5035     break;}
5036 case 559:
5037 #line 2935 "objc-parse.y"
5038 { objc_receiver_context = 1; ;
5039     break;}
5040 case 560:
5041 #line 2937 "objc-parse.y"
5042 { objc_receiver_context = 0; ;
5043     break;}
5044 case 561:
5045 #line 2939 "objc-parse.y"
5046 {
5047                   yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype);
5048                 ;
5049     break;}
5050 case 565:
5051 #line 2952 "objc-parse.y"
5052 {
5053                   yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype);
5054                 ;
5055     break;}
5056 case 566:
5057 #line 2959 "objc-parse.y"
5058 {
5059                   yyval.ttype = build_tree_list (yyvsp[-1].ttype, NULL_TREE);
5060                 ;
5061     break;}
5062 case 567:
5063 #line 2963 "objc-parse.y"
5064 {
5065                   yyval.ttype = build_tree_list (NULL_TREE, NULL_TREE);
5066                 ;
5067     break;}
5068 case 568:
5069 #line 2970 "objc-parse.y"
5070 {
5071                   yyval.ttype = yyvsp[-1].ttype;
5072                 ;
5073     break;}
5074 case 569:
5075 #line 2977 "objc-parse.y"
5076 {
5077                   yyval.ttype = yyvsp[-1].ttype;
5078                 ;
5079     break;}
5080 case 570:
5081 #line 2986 "objc-parse.y"
5082 {
5083                   yyval.ttype = groktypename (yyvsp[-1].ttype);
5084                 ;
5085     break;}
5086 }
5087    /* the action file gets copied in in place of this dollarsign */
5088 #line 543 "/usr/share/misc/bison.simple"
5089 \f
5090   yyvsp -= yylen;
5091   yyssp -= yylen;
5092 #ifdef YYLSP_NEEDED
5093   yylsp -= yylen;
5094 #endif
5095
5096 #if YYDEBUG != 0
5097   if (yydebug)
5098     {
5099       short *ssp1 = yyss - 1;
5100       fprintf (stderr, "state stack now");
5101       while (ssp1 != yyssp)
5102         fprintf (stderr, " %d", *++ssp1);
5103       fprintf (stderr, "\n");
5104     }
5105 #endif
5106
5107   *++yyvsp = yyval;
5108
5109 #ifdef YYLSP_NEEDED
5110   yylsp++;
5111   if (yylen == 0)
5112     {
5113       yylsp->first_line = yylloc.first_line;
5114       yylsp->first_column = yylloc.first_column;
5115       yylsp->last_line = (yylsp-1)->last_line;
5116       yylsp->last_column = (yylsp-1)->last_column;
5117       yylsp->text = 0;
5118     }
5119   else
5120     {
5121       yylsp->last_line = (yylsp+yylen-1)->last_line;
5122       yylsp->last_column = (yylsp+yylen-1)->last_column;
5123     }
5124 #endif
5125
5126   /* Now "shift" the result of the reduction.
5127      Determine what state that goes to,
5128      based on the state we popped back to
5129      and the rule number reduced by.  */
5130
5131   yyn = yyr1[yyn];
5132
5133   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
5134   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
5135     yystate = yytable[yystate];
5136   else
5137     yystate = yydefgoto[yyn - YYNTBASE];
5138
5139   goto yynewstate;
5140
5141 yyerrlab:   /* here on detecting error */
5142
5143   if (! yyerrstatus)
5144     /* If not already recovering from an error, report this error.  */
5145     {
5146       ++yynerrs;
5147
5148 #ifdef YYERROR_VERBOSE
5149       yyn = yypact[yystate];
5150
5151       if (yyn > YYFLAG && yyn < YYLAST)
5152         {
5153           int size = 0;
5154           char *msg;
5155           int x, count;
5156
5157           count = 0;
5158           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
5159           for (x = (yyn < 0 ? -yyn : 0);
5160                x < (sizeof(yytname) / sizeof(char *)); x++)
5161             if (yycheck[x + yyn] == x)
5162               size += strlen(yytname[x]) + 15, count++;
5163           msg = (char *) malloc(size + 15);
5164           if (msg != 0)
5165             {
5166               strcpy(msg, "parse error");
5167
5168               if (count < 5)
5169                 {
5170                   count = 0;
5171                   for (x = (yyn < 0 ? -yyn : 0);
5172                        x < (sizeof(yytname) / sizeof(char *)); x++)
5173                     if (yycheck[x + yyn] == x)
5174                       {
5175                         strcat(msg, count == 0 ? ", expecting `" : " or `");
5176                         strcat(msg, yytname[x]);
5177                         strcat(msg, "'");
5178                         count++;
5179                       }
5180                 }
5181               yyerror(msg);
5182               free(msg);
5183             }
5184           else
5185             yyerror ("parse error; also virtual memory exceeded");
5186         }
5187       else
5188 #endif /* YYERROR_VERBOSE */
5189         yyerror("parse error");
5190     }
5191
5192   goto yyerrlab1;
5193 yyerrlab1:   /* here on error raised explicitly by an action */
5194
5195   if (yyerrstatus == 3)
5196     {
5197       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
5198
5199       /* return failure if at end of input */
5200       if (yychar == YYEOF)
5201         YYABORT;
5202
5203 #if YYDEBUG != 0
5204       if (yydebug)
5205         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
5206 #endif
5207
5208       yychar = YYEMPTY;
5209     }
5210
5211   /* Else will try to reuse lookahead token
5212      after shifting the error token.  */
5213
5214   yyerrstatus = 3;              /* Each real token shifted decrements this */
5215
5216   goto yyerrhandle;
5217
5218 yyerrdefault:  /* current state does not do anything special for the error token. */
5219
5220 #if 0
5221   /* This is wrong; only states that explicitly want error tokens
5222      should shift them.  */
5223   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
5224   if (yyn) goto yydefault;
5225 #endif
5226
5227 yyerrpop:   /* pop the current state because it cannot handle the error token */
5228
5229   if (yyssp == yyss) YYABORT;
5230   yyvsp--;
5231   yystate = *--yyssp;
5232 #ifdef YYLSP_NEEDED
5233   yylsp--;
5234 #endif
5235
5236 #if YYDEBUG != 0
5237   if (yydebug)
5238     {
5239       short *ssp1 = yyss - 1;
5240       fprintf (stderr, "Error: state stack now");
5241       while (ssp1 != yyssp)
5242         fprintf (stderr, " %d", *++ssp1);
5243       fprintf (stderr, "\n");
5244     }
5245 #endif
5246
5247 yyerrhandle:
5248
5249   yyn = yypact[yystate];
5250   if (yyn == YYFLAG)
5251     goto yyerrdefault;
5252
5253   yyn += YYTERROR;
5254   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
5255     goto yyerrdefault;
5256
5257   yyn = yytable[yyn];
5258   if (yyn < 0)
5259     {
5260       if (yyn == YYFLAG)
5261         goto yyerrpop;
5262       yyn = -yyn;
5263       goto yyreduce;
5264     }
5265   else if (yyn == 0)
5266     goto yyerrpop;
5267
5268   if (yyn == YYFINAL)
5269     YYACCEPT;
5270
5271 #if YYDEBUG != 0
5272   if (yydebug)
5273     fprintf(stderr, "Shifting error token, ");
5274 #endif
5275
5276   *++yyvsp = yylval;
5277 #ifdef YYLSP_NEEDED
5278   *++yylsp = yylloc;
5279 #endif
5280
5281   yystate = yyn;
5282   goto yynewstate;
5283
5284  yyacceptlab:
5285   /* YYACCEPT comes here.  */
5286   if (yyfree_stacks)
5287     {
5288       free (yyss);
5289       free (yyvs);
5290 #ifdef YYLSP_NEEDED
5291       free (yyls);
5292 #endif
5293     }
5294   return 0;
5295
5296  yyabortlab:
5297   /* YYABORT comes here.  */
5298   if (yyfree_stacks)
5299     {
5300       free (yyss);
5301       free (yyvs);
5302 #ifdef YYLSP_NEEDED
5303       free (yyls);
5304 #endif
5305     }
5306   return 1;
5307 }
5308 #line 2991 "objc-parse.y"
5309