OSDN Git Service

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