1
2/*  A Bison parser, made from ./parse-scan.y
3 by  GNU Bison version 1.25
4  */
5
6#define YYBISON 1  /* Identify Bison output.  */
7
8#define	PLUS_TK	258
9#define	MINUS_TK	259
10#define	MULT_TK	260
11#define	DIV_TK	261
12#define	REM_TK	262
13#define	LS_TK	263
14#define	SRS_TK	264
15#define	ZRS_TK	265
16#define	AND_TK	266
17#define	XOR_TK	267
18#define	OR_TK	268
19#define	BOOL_AND_TK	269
20#define	BOOL_OR_TK	270
21#define	EQ_TK	271
22#define	NEQ_TK	272
23#define	GT_TK	273
24#define	GTE_TK	274
25#define	LT_TK	275
26#define	LTE_TK	276
27#define	PLUS_ASSIGN_TK	277
28#define	MINUS_ASSIGN_TK	278
29#define	MULT_ASSIGN_TK	279
30#define	DIV_ASSIGN_TK	280
31#define	REM_ASSIGN_TK	281
32#define	LS_ASSIGN_TK	282
33#define	SRS_ASSIGN_TK	283
34#define	ZRS_ASSIGN_TK	284
35#define	AND_ASSIGN_TK	285
36#define	XOR_ASSIGN_TK	286
37#define	OR_ASSIGN_TK	287
38#define	PUBLIC_TK	288
39#define	PRIVATE_TK	289
40#define	PROTECTED_TK	290
41#define	STATIC_TK	291
42#define	FINAL_TK	292
43#define	SYNCHRONIZED_TK	293
44#define	VOLATILE_TK	294
45#define	TRANSIENT_TK	295
46#define	NATIVE_TK	296
47#define	PAD_TK	297
48#define	ABSTRACT_TK	298
49#define	MODIFIER_TK	299
50#define	DECR_TK	300
51#define	INCR_TK	301
52#define	DEFAULT_TK	302
53#define	IF_TK	303
54#define	THROW_TK	304
55#define	BOOLEAN_TK	305
56#define	DO_TK	306
57#define	IMPLEMENTS_TK	307
58#define	THROWS_TK	308
59#define	BREAK_TK	309
60#define	IMPORT_TK	310
61#define	ELSE_TK	311
62#define	INSTANCEOF_TK	312
63#define	RETURN_TK	313
64#define	VOID_TK	314
65#define	CATCH_TK	315
66#define	INTERFACE_TK	316
67#define	CASE_TK	317
68#define	EXTENDS_TK	318
69#define	FINALLY_TK	319
70#define	SUPER_TK	320
71#define	WHILE_TK	321
72#define	CLASS_TK	322
73#define	SWITCH_TK	323
74#define	CONST_TK	324
75#define	TRY_TK	325
76#define	FOR_TK	326
77#define	NEW_TK	327
78#define	CONTINUE_TK	328
79#define	GOTO_TK	329
80#define	PACKAGE_TK	330
81#define	THIS_TK	331
82#define	BYTE_TK	332
83#define	SHORT_TK	333
84#define	INT_TK	334
85#define	LONG_TK	335
86#define	CHAR_TK	336
87#define	INTEGRAL_TK	337
88#define	FLOAT_TK	338
89#define	DOUBLE_TK	339
90#define	FP_TK	340
91#define	ID_TK	341
92#define	REL_QM_TK	342
93#define	REL_CL_TK	343
94#define	NOT_TK	344
95#define	NEG_TK	345
96#define	ASSIGN_ANY_TK	346
97#define	ASSIGN_TK	347
98#define	OP_TK	348
99#define	CP_TK	349
100#define	OCB_TK	350
101#define	CCB_TK	351
102#define	OSB_TK	352
103#define	CSB_TK	353
104#define	SC_TK	354
105#define	C_TK	355
106#define	DOT_TK	356
107#define	STRING_LIT_TK	357
108#define	CHAR_LIT_TK	358
109#define	INT_LIT_TK	359
110#define	FP_LIT_TK	360
111#define	TRUE_TK	361
112#define	FALSE_TK	362
113#define	BOOL_LIT_TK	363
114#define	NULL_TK	364
115
116#line 37 "./parse-scan.y"
117
118#define JC1_LITE
119
120#include "config.h"
121#include "system.h"
122
123#include "obstack.h"
124#include "toplev.h"
125
126extern char *input_filename;
127extern FILE *finput, *out;
128
129/* Obstack for the lexer.  */
130struct obstack temporary_obstack;
131
132/* The current parser context.  */
133static struct parser_ctxt *ctxp;
134
135/* Error and warning counts, current line number, because they're used
136   elsewhere  */
137int java_error_count;
138int java_warning_count;
139int lineno;
140
141/* Tweak default rules when necessary.  */
142static int absorber;
143#define USE_ABSORBER absorber = 0
144
145/* Keep track of the current class name and package name.  */
146static char *current_class;
147static char *package_name;
148
149/* Keep track of whether things have be listed before.  */
150static int previous_output;
151
152/* Record modifier uses  */
153static int modifier_value;
154
155/* Keep track of number of bracket pairs after a variable declarator
156   id.  */
157static int bracket_count;
158
159/* Record a method declaration  */
160struct method_declarator {
161  char *method_name;
162  char *args;
163};
164#define NEW_METHOD_DECLARATOR(D,N,A)					     \
165{									     \
166  (D) = 								     \
167    (struct method_declarator *)xmalloc (sizeof (struct method_declarator)); \
168  (D)->method_name = (N);						     \
169  (D)->args = (A);							     \
170}
171
172/* Two actions for this grammar */
173static void report_class_declaration PROTO ((char *));
174static void report_main_declaration PROTO ((struct method_declarator *));
175
176#include "lex.h"
177#include "parse.h"
178
179#line 100 "./parse-scan.y"
180typedef union {
181  char *node;
182  struct method_declarator *declarator;
183  int value;			/* For modifiers */
184} YYSTYPE;
185#ifndef YYDEBUG
186#define YYDEBUG 1
187#endif
188
189#include <stdio.h>
190
191#ifndef __cplusplus
192#ifndef __STDC__
193#define const
194#endif
195#endif
196
197
198
199#define	YYFINAL		601
200#define	YYFLAG		-32768
201#define	YYNTBASE	110
202
203#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 253)
204
205static const char yytranslate[] = {     0,
206     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
207     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
208     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
209     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
210     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
211     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
212     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
213     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
214     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
215     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
216     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
217     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
218     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
219     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
220     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
221     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
222     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
223     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
224     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
225     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
226     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
227     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
228     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
229     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
230     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
231     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
232     6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
233    16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
234    26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
235    36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
236    46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
237    56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
238    66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
239    76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
240    86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
241    96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
242   106,   107,   108,   109
243};
244
245#if YYDEBUG != 0
246static const short yyprhs[] = {     0,
247     0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
248    20,    22,    24,    26,    28,    30,    32,    34,    38,    42,
249    46,    48,    50,    52,    56,    58,    59,    61,    63,    65,
250    68,    71,    74,    78,    80,    83,    85,    88,    92,    94,
251    96,   100,   106,   108,   110,   112,   114,   117,   118,   126,
252   127,   134,   135,   138,   139,   142,   144,   148,   151,   155,
253   157,   160,   162,   164,   166,   168,   170,   172,   174,   176,
254   180,   185,   187,   191,   193,   197,   199,   203,   205,   207,
255   210,   214,   218,   223,   228,   232,   237,   241,   243,   247,
256   250,   254,   255,   258,   260,   264,   266,   269,   271,   274,
257   278,   280,   284,   289,   294,   300,   304,   309,   312,   316,
258   320,   325,   330,   336,   344,   351,   353,   355,   359,   364,
259   369,   375,   378,   382,   385,   389,   391,   394,   396,   398,
260   400,   402,   404,   407,   410,   414,   418,   423,   425,   429,
261   432,   436,   438,   441,   443,   445,   447,   450,   453,   457,
262   459,   461,   463,   465,   467,   469,   471,   473,   475,   477,
263   479,   481,   483,   485,   487,   489,   491,   493,   495,   497,
264   499,   501,   503,   506,   509,   512,   515,   517,   519,   521,
265   523,   525,   527,   529,   535,   543,   551,   557,   560,   564,
266   568,   573,   575,   578,   581,   583,   586,   590,   593,   598,
267   601,   604,   606,   614,   622,   629,   637,   644,   647,   650,
268   651,   653,   655,   656,   658,   660,   664,   667,   671,   674,
269   678,   681,   685,   689,   695,   701,   703,   707,   711,   716,
270   718,   721,   727,   730,   732,   734,   736,   738,   742,   744,
271   746,   748,   750,   754,   758,   762,   766,   772,   777,   784,
272   790,   795,   801,   807,   814,   818,   822,   824,   828,   832,
273   836,   840,   845,   850,   855,   860,   862,   865,   869,   872,
274   876,   880,   884,   888,   893,   899,   906,   912,   919,   924,
275   929,   931,   933,   935,   937,   940,   943,   945,   947,   950,
276   953,   955,   958,   961,   963,   966,   969,   971,   977,   982,
277   987,   993,   995,   999,  1003,  1007,  1009,  1013,  1017,  1019,
278  1023,  1027,  1031,  1033,  1037,  1041,  1045,  1049,  1053,  1055,
279  1059,  1063,  1065,  1069,  1071,  1075,  1077,  1081,  1083,  1087,
280  1089,  1093,  1095,  1101,  1103,  1105,  1109,  1111,  1113,  1115,
281  1117,  1119,  1121
282};
283
284static const short yyrhs[] = {   123,
285     0,   104,     0,   105,     0,   108,     0,   103,     0,   102,
286     0,   109,     0,   113,     0,   114,     0,    82,     0,    85,
287     0,    50,     0,   115,     0,   118,     0,   119,     0,   115,
288     0,   115,     0,   113,    97,    98,     0,   119,    97,    98,
289     0,   118,    97,    98,     0,   120,     0,   121,     0,   122,
290     0,   119,   101,   122,     0,    86,     0,     0,   126,     0,
291   124,     0,   125,     0,   126,   124,     0,   126,   125,     0,
292   124,   125,     0,   126,   124,   125,     0,   127,     0,   124,
293   127,     0,   130,     0,   125,   130,     0,    75,   119,    99,
294     0,   128,     0,   129,     0,    55,   119,    99,     0,    55,
295   119,   101,     5,    99,     0,   132,     0,   162,     0,    99,
296     0,    44,     0,   131,    44,     0,     0,   131,    67,   122,
297   135,   136,   133,   138,     0,     0,    67,   122,   135,   136,
298   134,   138,     0,     0,    63,   116,     0,     0,    52,   137,
299     0,   117,     0,   137,   100,   117,     0,    95,    96,     0,
300    95,   139,    96,     0,   140,     0,   139,   140,     0,   141,
301     0,   155,     0,   157,     0,   171,     0,   142,     0,   147,
302     0,   132,     0,   162,     0,   112,   143,    99,     0,   131,
303   112,   143,    99,     0,   144,     0,   143,   100,   144,     0,
304   145,     0,   145,    92,   146,     0,   122,     0,   145,    97,
305    98,     0,   251,     0,   169,     0,   148,   154,     0,   112,
306   149,   152,     0,    59,   149,   152,     0,   131,   112,   149,
307   152,     0,   131,    59,   149,   152,     0,   122,    93,    94,
308     0,   122,    93,   150,    94,     0,   149,    97,    98,     0,
309   151,     0,   150,   100,   151,     0,   112,   145,     0,   131,
310   112,   145,     0,     0,    53,   153,     0,   116,     0,   153,
311   100,   116,     0,   171,     0,   171,    99,     0,    99,     0,
312   156,   171,     0,   156,   171,    99,     0,    44,     0,   158,
313   152,   159,     0,   131,   158,   152,   159,     0,   158,   152,
314   159,    99,     0,   131,   158,   152,   159,    99,     0,   120,
315    93,    94,     0,   120,    93,   150,    94,     0,    95,    96,
316     0,    95,   160,    96,     0,    95,   172,    96,     0,    95,
317   160,   172,    96,     0,   161,    93,    94,    99,     0,   161,
318    93,   220,    94,    99,     0,   119,   101,    65,    93,   220,
319    94,    99,     0,   119,   101,    65,    93,    94,    99,     0,
320    76,     0,    65,     0,    61,   122,   164,     0,   131,    61,
321   122,   164,     0,    61,   122,   163,   164,     0,   131,    61,
322   122,   163,   164,     0,    63,   117,     0,   163,   100,   117,
323     0,    95,    96,     0,    95,   165,    96,     0,   166,     0,
324   165,   166,     0,   167,     0,   168,     0,   132,     0,   162,
325     0,   142,     0,   148,    99,     0,    95,    96,     0,    95,
326   170,    96,     0,    95,   100,    96,     0,    95,   170,   100,
327    96,     0,   146,     0,   170,   100,   146,     0,    95,    96,
328     0,    95,   172,    96,     0,   173,     0,   172,   173,     0,
329   174,     0,   176,     0,   132,     0,   175,    99,     0,   112,
330   143,     0,   131,   112,   143,     0,   178,     0,   181,     0,
331   185,     0,   186,     0,   195,     0,   199,     0,   178,     0,
332   182,     0,   187,     0,   196,     0,   200,     0,   171,     0,
333   179,     0,   183,     0,   188,     0,   198,     0,   206,     0,
334   207,     0,   208,     0,   210,     0,   209,     0,   212,     0,
335    99,     0,   122,    88,     0,   180,   176,     0,   180,   177,
336     0,   184,    99,     0,   248,     0,   232,     0,   233,     0,
337   229,     0,   230,     0,   226,     0,   218,     0,    48,    93,
338   251,    94,   176,     0,    48,    93,   251,    94,   177,    56,
339   176,     0,    48,    93,   251,    94,   177,    56,   177,     0,
340    68,    93,   251,    94,   189,     0,    95,    96,     0,    95,
341   192,    96,     0,    95,   190,    96,     0,    95,   190,   192,
342    96,     0,   191,     0,   190,   191,     0,   192,   172,     0,
343   193,     0,   192,   193,     0,    62,   252,    88,     0,    47,
344    88,     0,    66,    93,   251,    94,     0,   194,   176,     0,
345   194,   177,     0,    51,     0,   197,   176,    66,    93,   251,
346    94,    99,     0,   202,    99,   251,    99,   204,    94,   176,
347     0,   202,    99,    99,   204,    94,   176,     0,   202,    99,
348   251,    99,   204,    94,   177,     0,   202,    99,    99,   204,
349    94,   177,     0,    71,    93,     0,   201,   203,     0,     0,
350   205,     0,   175,     0,     0,   205,     0,   184,     0,   205,
351   100,   184,     0,    54,    99,     0,    54,   122,    99,     0,
352    73,    99,     0,    73,   122,    99,     0,    58,    99,     0,
353    58,   251,    99,     0,    49,   251,    99,     0,   211,    93,
354   251,    94,   171,     0,   211,    93,   251,    94,     1,     0,
355    44,     0,    70,   171,   213,     0,    70,   171,   215,     0,
356    70,   171,   213,   215,     0,   214,     0,   213,   214,     0,
357    60,    93,   151,    94,   171,     0,    64,   171,     0,   217,
358     0,   221,     0,   111,     0,    76,     0,    93,   251,    94,
359     0,   218,     0,   225,     0,   226,     0,   227,     0,   119,
360   101,    67,     0,   113,   101,    67,     0,    59,   101,    67,
361     0,   119,   101,    76,     0,    72,   116,    93,   220,    94,
362     0,    72,   116,    93,    94,     0,    72,   116,    93,   220,
363    94,   138,     0,    72,   116,    93,    94,   138,     0,   219,
364   122,    93,    94,     0,   219,   122,    93,    94,   138,     0,
365   219,   122,    93,   220,    94,     0,   219,   122,    93,   220,
366    94,   138,     0,   119,   101,    72,     0,   216,   101,    72,
367     0,   251,     0,   220,   100,   251,     0,   220,   100,     1,
368     0,    72,   113,   222,     0,    72,   115,   222,     0,    72,
369   113,   222,   224,     0,    72,   115,   222,   224,     0,    72,
370   115,   224,   169,     0,    72,   113,   224,   169,     0,   223,
371     0,   222,   223,     0,    97,   251,    98,     0,    97,    98,
372     0,   224,    97,    98,     0,   216,   101,   122,     0,    65,
373   101,   122,     0,   119,    93,    94,     0,   119,    93,   220,
374    94,     0,   216,   101,   122,    93,    94,     0,   216,   101,
375   122,    93,   220,    94,     0,    65,   101,   122,    93,    94,
376     0,    65,   101,   122,    93,   220,    94,     0,   119,    97,
377   251,    98,     0,   217,    97,   251,    98,     0,   216,     0,
378   119,     0,   229,     0,   230,     0,   228,    46,     0,   228,
379    45,     0,   232,     0,   233,     0,     3,   231,     0,     4,
380   231,     0,   234,     0,    46,   231,     0,    45,   231,     0,
381   228,     0,    89,   231,     0,    90,   231,     0,   235,     0,
382    93,   113,   224,    94,   231,     0,    93,   113,    94,   231,
383     0,    93,   251,    94,   234,     0,    93,   119,   224,    94,
384   234,     0,   231,     0,   236,     5,   231,     0,   236,     6,
385   231,     0,   236,     7,   231,     0,   236,     0,   237,     3,
386   236,     0,   237,     4,   236,     0,   237,     0,   238,     8,
387   237,     0,   238,     9,   237,     0,   238,    10,   237,     0,
388   238,     0,   239,    20,   238,     0,   239,    18,   238,     0,
389   239,    21,   238,     0,   239,    19,   238,     0,   239,    57,
390   114,     0,   239,     0,   240,    16,   239,     0,   240,    17,
391   239,     0,   240,     0,   241,    11,   240,     0,   241,     0,
392   242,    12,   241,     0,   242,     0,   243,    13,   242,     0,
393   243,     0,   244,    14,   243,     0,   244,     0,   245,    15,
394   244,     0,   245,     0,   245,    87,   251,    88,   246,     0,
395   246,     0,   248,     0,   249,   250,   247,     0,   119,     0,
396   225,     0,   227,     0,    91,     0,    92,     0,   247,     0,
397   251,     0
398};
399
400#endif
401
402#if YYDEBUG != 0
403static const short yyrline[] = { 0,
404   171,   176,   178,   179,   180,   181,   182,   186,   188,   191,
405   197,   202,   209,   211,   214,   218,   222,   226,   228,   235,
406   245,   247,   250,   254,   263,   268,   269,   270,   271,   272,
407   273,   274,   275,   278,   280,   283,   285,   288,   293,   295,
408   298,   302,   306,   308,   309,   315,   324,   335,   342,   342,
409   345,   347,   348,   351,   352,   355,   358,   362,   364,   367,
410   369,   372,   374,   375,   376,   379,   381,   382,   383,   387,
411   390,   394,   397,   400,   402,   405,   408,   412,   414,   418,
412   422,   425,   426,   428,   435,   442,   448,   451,   453,   461,
413   477,   493,   494,   497,   500,   504,   506,   507,   511,   513,
414   516,   526,   528,   531,   533,   539,   542,   546,   548,   549,
415   550,   554,   556,   559,   561,   565,   567,   572,   575,   577,
416   579,   583,   585,   588,   590,   593,   595,   598,   600,   601,
417   602,   605,   609,   614,   616,   617,   618,   621,   623,   627,
418   629,   632,   634,   637,   639,   640,   643,   647,   650,   654,
419   656,   657,   658,   659,   660,   663,   665,   666,   667,   668,
420   671,   673,   674,   675,   676,   677,   678,   679,   680,   681,
421   682,   685,   689,   694,   698,   704,   708,   710,   711,   712,
422   713,   714,   715,   718,   722,   726,   730,   734,   736,   737,
423   738,   741,   743,   746,   751,   753,   756,   758,   761,   765,
424   769,   773,   777,   781,   783,   786,   788,   791,   795,   798,
425   799,   800,   803,   804,   807,   809,   812,   814,   817,   819,
426   822,   824,   827,   831,   833,   836,   841,   843,   844,   847,
427   849,   852,   856,   861,   863,   866,   868,   869,   870,   871,
428   872,   873,   877,   879,   881,   885,   889,   891,   895,   896,
429   900,   901,   902,   903,   906,   909,   912,   914,   915,   918,
430   920,   921,   922,   925,   926,   929,   931,   934,   938,   940,
431   943,   945,   948,   951,   953,   954,   955,   956,   959,   962,
432   965,   967,   969,   970,   973,   977,   981,   983,   984,   985,
433   986,   989,   993,   997,   999,  1000,  1001,  1004,  1006,  1007,
434  1008,  1011,  1013,  1014,  1015,  1018,  1020,  1021,  1024,  1026,
435  1027,  1028,  1031,  1033,  1034,  1035,  1036,  1037,  1040,  1042,
436  1043,  1046,  1048,  1051,  1053,  1056,  1058,  1061,  1063,  1066,
437  1068,  1071,  1073,  1076,  1078,  1081,  1085,  1088,  1089,  1092,
438  1094,  1097,  1101
439};
440#endif
441
442
443#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
444
445static const char * const yytname[] = {   "$","error","$undefined.","PLUS_TK",
446"MINUS_TK","MULT_TK","DIV_TK","REM_TK","LS_TK","SRS_TK","ZRS_TK","AND_TK","XOR_TK",
447"OR_TK","BOOL_AND_TK","BOOL_OR_TK","EQ_TK","NEQ_TK","GT_TK","GTE_TK","LT_TK",
448"LTE_TK","PLUS_ASSIGN_TK","MINUS_ASSIGN_TK","MULT_ASSIGN_TK","DIV_ASSIGN_TK",
449"REM_ASSIGN_TK","LS_ASSIGN_TK","SRS_ASSIGN_TK","ZRS_ASSIGN_TK","AND_ASSIGN_TK",
450"XOR_ASSIGN_TK","OR_ASSIGN_TK","PUBLIC_TK","PRIVATE_TK","PROTECTED_TK","STATIC_TK",
451"FINAL_TK","SYNCHRONIZED_TK","VOLATILE_TK","TRANSIENT_TK","NATIVE_TK","PAD_TK",
452"ABSTRACT_TK","MODIFIER_TK","DECR_TK","INCR_TK","DEFAULT_TK","IF_TK","THROW_TK",
453"BOOLEAN_TK","DO_TK","IMPLEMENTS_TK","THROWS_TK","BREAK_TK","IMPORT_TK","ELSE_TK",
454"INSTANCEOF_TK","RETURN_TK","VOID_TK","CATCH_TK","INTERFACE_TK","CASE_TK","EXTENDS_TK",
455"FINALLY_TK","SUPER_TK","WHILE_TK","CLASS_TK","SWITCH_TK","CONST_TK","TRY_TK",
456"FOR_TK","NEW_TK","CONTINUE_TK","GOTO_TK","PACKAGE_TK","THIS_TK","BYTE_TK","SHORT_TK",
457"INT_TK","LONG_TK","CHAR_TK","INTEGRAL_TK","FLOAT_TK","DOUBLE_TK","FP_TK","ID_TK",
458"REL_QM_TK","REL_CL_TK","NOT_TK","NEG_TK","ASSIGN_ANY_TK","ASSIGN_TK","OP_TK",
459"CP_TK","OCB_TK","CCB_TK","OSB_TK","CSB_TK","SC_TK","C_TK","DOT_TK","STRING_LIT_TK",
460"CHAR_LIT_TK","INT_LIT_TK","FP_LIT_TK","TRUE_TK","FALSE_TK","BOOL_LIT_TK","NULL_TK",
461"goal","literal","type","primitive_type","reference_type","class_or_interface_type",
462"class_type","interface_type","array_type","name","simple_name","qualified_name",
463"identifier","compilation_unit","import_declarations","type_declarations","package_declaration",
464"import_declaration","single_type_import_declaration","type_import_on_demand_declaration",
465"type_declaration","modifiers","class_declaration","@1","@2","super","interfaces",
466"interface_type_list","class_body","class_body_declarations","class_body_declaration",
467"class_member_declaration","field_declaration","variable_declarators","variable_declarator",
468"variable_declarator_id","variable_initializer","method_declaration","method_header",
469"method_declarator","formal_parameter_list","formal_parameter","throws","class_type_list",
470"method_body","static_initializer","static","constructor_declaration","constructor_declarator",
471"constructor_body","explicit_constructor_invocation","this_or_super","interface_declaration",
472"extends_interfaces","interface_body","interface_member_declarations","interface_member_declaration",
473"constant_declaration","abstract_method_declaration","array_initializer","variable_initializers",
474"block","block_statements","block_statement","local_variable_declaration_statement",
475"local_variable_declaration","statement","statement_nsi","statement_without_trailing_substatement",
476"empty_statement","label_decl","labeled_statement","labeled_statement_nsi","expression_statement",
477"statement_expression","if_then_statement","if_then_else_statement","if_then_else_statement_nsi",
478"switch_statement","switch_block","switch_block_statement_groups","switch_block_statement_group",
479"switch_labels","switch_label","while_expression","while_statement","while_statement_nsi",
480"do_statement_begin","do_statement","for_statement","for_statement_nsi","for_header",
481"for_begin","for_init","for_update","statement_expression_list","break_statement",
482"continue_statement","return_statement","throw_statement","synchronized_statement",
483"synchronized","try_statement","catches","catch_clause","finally","primary",
484"primary_no_new_array","class_instance_creation_expression","something_dot_new",
485"argument_list","array_creation_expression","dim_exprs","dim_expr","dims","field_access",
486"method_invocation","array_access","postfix_expression","post_increment_expression",
487"post_decrement_expression","unary_expression","pre_increment_expression","pre_decrement_expression",
488"unary_expression_not_plus_minus","cast_expression","multiplicative_expression",
489"additive_expression","shift_expression","relational_expression","equality_expression",
490"and_expression","exclusive_or_expression","inclusive_or_expression","conditional_and_expression",
491"conditional_or_expression","conditional_expression","assignment_expression",
492"assignment","left_hand_side","assignment_operator","expression","constant_expression", NULL
493};
494#endif
495
496static const short yyr1[] = {     0,
497   110,   111,   111,   111,   111,   111,   111,   112,   112,   113,
498   113,   113,   114,   114,   115,   116,   117,   118,   118,   118,
499   119,   119,   120,   121,   122,   123,   123,   123,   123,   123,
500   123,   123,   123,   124,   124,   125,   125,   126,   127,   127,
501   128,   129,   130,   130,   130,   131,   131,   133,   132,   134,
502   132,   135,   135,   136,   136,   137,   137,   138,   138,   139,
503   139,   140,   140,   140,   140,   141,   141,   141,   141,   142,
504   142,   143,   143,   144,   144,   145,   145,   146,   146,   147,
505   148,   148,   148,   148,   149,   149,   149,   150,   150,   151,
506   151,   152,   152,   153,   153,   154,   154,   154,   155,   155,
507   156,   157,   157,   157,   157,   158,   158,   159,   159,   159,
508   159,   160,   160,   160,   160,   161,   161,   162,   162,   162,
509   162,   163,   163,   164,   164,   165,   165,   166,   166,   166,
510   166,   167,   168,   169,   169,   169,   169,   170,   170,   171,
511   171,   172,   172,   173,   173,   173,   174,   175,   175,   176,
512   176,   176,   176,   176,   176,   177,   177,   177,   177,   177,
513   178,   178,   178,   178,   178,   178,   178,   178,   178,   178,
514   178,   179,   180,   181,   182,   183,   184,   184,   184,   184,
515   184,   184,   184,   185,   186,   187,   188,   189,   189,   189,
516   189,   190,   190,   191,   192,   192,   193,   193,   194,   195,
517   196,   197,   198,   199,   199,   200,   200,   201,   202,   203,
518   203,   203,   204,   204,   205,   205,   206,   206,   207,   207,
519   208,   208,   209,   210,   210,   211,   212,   212,   212,   213,
520   213,   214,   215,   216,   216,   217,   217,   217,   217,   217,
521   217,   217,   217,   217,   217,   217,   218,   218,   218,   218,
522   218,   218,   218,   218,   219,   219,   220,   220,   220,   221,
523   221,   221,   221,   221,   221,   222,   222,   223,   224,   224,
524   225,   225,   226,   226,   226,   226,   226,   226,   227,   227,
525   228,   228,   228,   228,   229,   230,   231,   231,   231,   231,
526   231,   232,   233,   234,   234,   234,   234,   235,   235,   235,
527   235,   236,   236,   236,   236,   237,   237,   237,   238,   238,
528   238,   238,   239,   239,   239,   239,   239,   239,   240,   240,
529   240,   241,   241,   242,   242,   243,   243,   244,   244,   245,
530   245,   246,   246,   247,   247,   248,   249,   249,   249,   250,
531   250,   251,   252
532};
533
534static const short yyr2[] = {     0,
535     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
536     1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
537     1,     1,     1,     3,     1,     0,     1,     1,     1,     2,
538     2,     2,     3,     1,     2,     1,     2,     3,     1,     1,
539     3,     5,     1,     1,     1,     1,     2,     0,     7,     0,
540     6,     0,     2,     0,     2,     1,     3,     2,     3,     1,
541     2,     1,     1,     1,     1,     1,     1,     1,     1,     3,
542     4,     1,     3,     1,     3,     1,     3,     1,     1,     2,
543     3,     3,     4,     4,     3,     4,     3,     1,     3,     2,
544     3,     0,     2,     1,     3,     1,     2,     1,     2,     3,
545     1,     3,     4,     4,     5,     3,     4,     2,     3,     3,
546     4,     4,     5,     7,     6,     1,     1,     3,     4,     4,
547     5,     2,     3,     2,     3,     1,     2,     1,     1,     1,
548     1,     1,     2,     2,     3,     3,     4,     1,     3,     2,
549     3,     1,     2,     1,     1,     1,     2,     2,     3,     1,
550     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
551     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
552     1,     1,     2,     2,     2,     2,     1,     1,     1,     1,
553     1,     1,     1,     5,     7,     7,     5,     2,     3,     3,
554     4,     1,     2,     2,     1,     2,     3,     2,     4,     2,
555     2,     1,     7,     7,     6,     7,     6,     2,     2,     0,
556     1,     1,     0,     1,     1,     3,     2,     3,     2,     3,
557     2,     3,     3,     5,     5,     1,     3,     3,     4,     1,
558     2,     5,     2,     1,     1,     1,     1,     3,     1,     1,
559     1,     1,     3,     3,     3,     3,     5,     4,     6,     5,
560     4,     5,     5,     6,     3,     3,     1,     3,     3,     3,
561     3,     4,     4,     4,     4,     1,     2,     3,     2,     3,
562     3,     3,     3,     4,     5,     6,     5,     6,     4,     4,
563     1,     1,     1,     1,     2,     2,     1,     1,     2,     2,
564     1,     2,     2,     1,     2,     2,     1,     5,     4,     4,
565     5,     1,     3,     3,     3,     1,     3,     3,     1,     3,
566     3,     3,     1,     3,     3,     3,     3,     3,     1,     3,
567     3,     1,     3,     1,     3,     1,     3,     1,     3,     1,
568     3,     1,     5,     1,     1,     3,     1,     1,     1,     1,
569     1,     1,     1
570};
571
572static const short yydefact[] = {    26,
573    46,     0,     0,     0,     0,    45,     1,    28,    29,    27,
574    34,    39,    40,    36,     0,    43,    44,    25,     0,    21,
575    22,    23,     0,    52,     0,    32,    35,    37,    30,    31,
576    47,     0,     0,    41,     0,     0,     0,     0,   118,     0,
577    54,    38,     0,    33,     0,    52,     0,    24,    17,   122,
578    15,    12,     0,    10,    11,   124,     0,     8,     9,    13,
579    14,    15,     0,   130,   132,     0,   131,     0,   126,   128,
580   129,     0,   120,    16,    53,     0,    50,     0,   119,    54,
581    42,     0,    92,    76,     0,    72,    74,    92,     0,     0,
582     0,     0,     0,   133,   125,   127,   123,    56,    55,     0,
583   121,    48,     0,     0,     0,    82,    70,     0,     0,     0,
584    81,    18,    20,    19,    92,     0,    92,     0,     0,    51,
585     0,    85,     0,     0,     0,    88,    94,    93,    87,    76,
586    73,     0,     0,     0,     0,     0,     0,     0,   237,     0,
587     0,     0,     0,     6,     5,     2,     3,     4,     7,   236,
588     0,   282,    75,    79,   281,   234,   239,     0,   235,   240,
589   241,   242,   294,   283,   284,   302,   287,   288,   291,   297,
590   306,   309,   313,   319,   322,   324,   326,   328,   330,   332,
591   334,   342,   335,     0,    78,    77,    84,    71,    83,    57,
592    46,     0,    58,    21,     0,    68,     0,    60,    62,    66,
593    67,     0,    63,     0,    64,    92,    69,    65,    49,    90,
594     0,    86,     0,     0,   282,   240,   242,   289,   290,   293,
595   292,     0,     0,     0,    16,     0,   295,   296,     0,   282,
596     0,   134,     0,   138,     0,     0,     0,     0,     0,     0,
597     0,     0,   286,   285,     0,     0,     0,     0,     0,     0,
598     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
599     0,     0,     0,     0,     0,   340,   341,     0,    46,     0,
600     0,   202,     0,     0,     0,     0,     0,     0,     0,     0,
601   140,   172,     0,     8,   282,    23,     0,   146,   161,     0,
602   142,   144,     0,   145,   150,   162,     0,   151,   163,     0,
603   152,   153,   164,     0,   154,     0,   165,   155,   210,     0,
604   166,   167,   168,   170,   169,     0,   171,   239,   241,     0,
605   180,   181,   178,   179,   177,     0,    92,    59,    61,    98,
606    80,    96,    99,     0,    91,    89,    95,   245,   272,     0,
607   260,   266,     0,   261,     0,     0,     0,     0,     0,     0,
608     0,   238,   136,   135,     0,   244,   273,     0,   257,     0,
609   243,   255,   246,   256,   271,     0,     0,   303,   304,   305,
610   307,   308,   310,   311,   312,   315,   317,   314,   316,     0,
611   318,   320,   321,   323,   325,   327,   329,   331,     0,   336,
612     0,     0,   217,     0,   221,     0,     0,     0,     0,   208,
613   219,     0,     0,   148,     0,   173,     0,   141,   143,   147,
614   226,   174,   176,   200,     0,     0,   212,   215,   209,   211,
615     0,     0,   106,     0,     0,    97,   100,     0,   102,     0,
616   269,     0,   267,   262,     0,   265,   263,   264,   248,     0,
617   299,     0,     0,   300,   137,   139,   274,     0,   279,     0,
618   280,   251,     0,     0,     0,   223,   218,   222,     0,     0,
619     0,     0,   227,   230,   228,   220,   238,   149,     0,     0,
620   213,     0,     0,   107,   103,   117,   237,   108,   282,     0,
621     0,     0,   104,   277,     0,   268,   270,   250,   247,   298,
622   301,   259,   258,   275,     0,   252,   253,   333,     0,   199,
623     0,     0,   233,   231,   229,     0,   216,     0,   214,   213,
624     0,   105,     0,   109,     0,     0,   110,   278,   249,   276,
625   254,     0,   184,     0,   150,     0,   157,   158,     0,   159,
626   160,     0,     0,   187,     0,     0,     0,     0,   225,   224,
627     0,   111,     0,     0,     0,     0,   175,   201,     0,     0,
628     0,   188,     0,   192,     0,   195,     0,     0,   205,     0,
629     0,   112,     0,     0,   185,   213,     0,   198,   343,     0,
630   190,   193,     0,   189,   194,   196,   232,   203,   204,     0,
631     0,   113,     0,     0,   213,   197,   191,   115,     0,     0,
632     0,     0,   114,     0,   207,     0,   186,   206,     0,     0,
633     0
634};
635
636static const short yydefgoto[] = {   599,
637   150,   283,   151,    59,    60,    75,    50,    61,   152,    20,
638    21,    22,     7,     8,     9,    10,    11,    12,    13,    14,
639   287,   288,   121,   100,    41,    77,    99,   120,   197,   198,
640   199,    65,    85,    86,    87,   153,   201,    66,    83,   125,
641   126,   106,   128,   331,   203,   204,   205,   206,   429,   480,
642   481,    17,    38,    39,    68,    69,    70,    71,   154,   235,
643   289,   575,   291,   292,   293,   294,   524,   295,   296,   297,
644   298,   527,   299,   300,   301,   302,   528,   303,   534,   553,
645   554,   555,   556,   304,   305,   530,   306,   307,   308,   531,
646   309,   310,   419,   508,   509,   311,   312,   313,   314,   315,
647   316,   317,   463,   464,   465,   155,   156,   157,   158,   358,
648   159,   341,   342,   343,   160,   161,   162,   163,   164,   165,
649   166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
650   176,   177,   178,   179,   180,   181,   182,   183,   184,   268,
651   359,   570
652};
653
654static const short yypact[] = {    11,
655-32768,   -52,   -52,   -52,   -52,-32768,-32768,    18,   154,    18,
656-32768,-32768,-32768,-32768,   185,-32768,-32768,-32768,   187,-32768,
657-32768,-32768,   -24,    -5,   332,   154,-32768,-32768,    18,   154,
658-32768,   -52,   -52,-32768,     5,   -52,   745,   162,-32768,   -52,
659    76,-32768,   -52,   154,   -24,    -5,    57,-32768,-32768,-32768,
660    41,-32768,   -52,-32768,-32768,-32768,   -52,    71,-32768,-32768,
661   170,   113,   518,-32768,-32768,   126,-32768,   758,-32768,-32768,
662-32768,   -52,-32768,-32768,-32768,   -52,-32768,   162,-32768,    76,
663-32768,   249,   -15,   249,   321,-32768,   205,   -15,   149,   255,
664   265,   -52,   -52,-32768,-32768,-32768,-32768,-32768,   198,   294,
665-32768,-32768,    58,   -52,   298,-32768,-32768,   -52,  1568,   309,
666-32768,-32768,-32768,-32768,   -15,   359,   -15,   -52,   596,-32768,
667   294,-32768,   -52,   199,   -13,-32768,-32768,   310,-32768,-32768,
668-32768,  2315,  2315,  2315,  2315,   329,   352,    88,-32768,  2315,
669  2315,  2315,  1438,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
670   354,   393,-32768,-32768,   360,   369,-32768,   -52,-32768,   347,
671-32768,   378,   437,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
672   445,   495,   483,   380,   492,   461,   462,   467,   502,     1,
673-32768,-32768,-32768,   412,-32768,-32768,-32768,-32768,-32768,-32768,
674   423,  2513,-32768,   429,   518,-32768,   683,-32768,-32768,-32768,
675-32768,   128,-32768,   432,-32768,   471,-32768,-32768,-32768,   435,
676   -52,-32768,   337,   -52,    52,-32768,-32768,-32768,-32768,-32768,
677-32768,   468,   -52,   440,   440,   449,-32768,-32768,   174,   414,
678   454,-32768,   460,-32768,   235,   500,  1619,  2315,   261,   -21,
679  2315,   476,-32768,-32768,  2315,  2315,  2315,  2315,  2315,  2315,
680  2315,  2315,  2315,  2315,  2315,  2315,    88,  2315,  2315,  2315,
681  2315,  2315,  2315,  2315,  2315,-32768,-32768,  2315,   480,   482,
682  2315,-32768,    60,  1684,   490,   491,   432,   494,    89,  2315,
683-32768,-32768,   -52,   137,   559,   488,   496,-32768,-32768,  2579,
684-32768,-32768,   493,-32768,-32768,-32768,  2975,-32768,-32768,   498,
685-32768,-32768,-32768,  2975,-32768,  2975,-32768,-32768,  1029,   499,
686-32768,-32768,-32768,-32768,-32768,   497,-32768,    96,   196,   437,
687   485,   505,-32768,-32768,-32768,   323,   471,-32768,-32768,-32768,
688-32768,   506,   507,   504,   435,-32768,-32768,-32768,   508,  1735,
689   440,-32768,   339,   440,   339,  1800,  2315,   509,   180,  1735,
690   246,  1364,-32768,-32768,  1503,-32768,-32768,     3,-32768,   512,
691-32768,-32768,-32768,-32768,   520,   513,  1851,-32768,-32768,-32768,
692   445,   445,   495,   495,   495,   483,   483,   483,   483,    71,
693-32768,   380,   380,   492,   461,   462,   467,   502,   501,-32768,
694  2315,   522,-32768,   523,-32768,   526,  2315,  2315,   322,-32768,
695-32768,   528,   534,   535,  1916,-32768,   -52,-32768,-32768,-32768,
696-32768,-32768,-32768,-32768,   572,   199,-32768,-32768,-32768,   539,
697  1967,  2315,-32768,   141,   504,-32768,-32768,  2645,   543,  2032,
698-32768,   545,-32768,   547,   549,-32768,   547,-32768,   294,   244,
699-32768,  2315,  1364,-32768,-32768,-32768,-32768,  1323,-32768,  2083,
700-32768,   294,   251,  2315,   555,-32768,-32768,-32768,   564,   565,
701   573,   432,   322,-32768,-32768,-32768,-32768,   535,   576,  1171,
702  1171,   566,   582,-32768,   571,   352,   584,-32768,   849,  2711,
703   587,  2777,-32768,-32768,   256,-32768,-32768,-32768,   294,-32768,
704-32768,-32768,-32768,-32768,   260,-32768,   294,-32768,  3041,-32768,
705   588,   337,-32768,-32768,-32768,  2315,-32768,   591,   539,  1171,
706     6,-32768,   183,-32768,  2843,  2148,-32768,-32768,-32768,-32768,
707-32768,   593,-32768,   631,   632,  3041,-32768,-32768,  3041,-32768,
708-32768,   590,   -16,-32768,   600,   601,  2975,   602,-32768,-32768,
709   604,-32768,   603,   272,  2315,  2975,-32768,-32768,  2199,   611,
710  2315,-32768,    45,-32768,  2381,-32768,   432,   609,-32768,  2975,
711  2264,-32768,   610,   616,-32768,  1171,   613,-32768,-32768,   615,
712-32768,-32768,  2447,-32768,  2909,-32768,-32768,-32768,-32768,   619,
713   280,-32768,  3041,   621,  1171,-32768,-32768,-32768,   623,   670,
714  3041,   636,-32768,  3041,-32768,  3041,-32768,-32768,   725,   735,
715-32768
716};
717
718static const short yypgoto[] = {-32768,
719-32768,   139,   -26,   479,   253,   -85,    43,-32768,    59,   -72,
720-32768,    -3,-32768,   729,   150,-32768,    20,-32768,-32768,   200,
721    15,   586,-32768,-32768,   695,   665,-32768,  -113,-32768,   550,
722-32768,   -83,   -80,   640,  -105,  -138,-32768,   -71,    93,   426,
723  -211,   -82,-32768,-32768,-32768,-32768,-32768,   554,   328,-32768,
724-32768,   -25,   709,   -18,-32768,   688,-32768,-32768,   103,-32768,
725   -93,  -188,  -276,-32768,   450,  -167,  -372,  -378,-32768,  -151,
726-32768,-32768,-32768,  -306,-32768,-32768,-32768,-32768,-32768,-32768,
727   207,   208,  -499,  -134,-32768,-32768,-32768,-32768,-32768,-32768,
728-32768,   -58,-32768,  -453,   458,-32768,-32768,-32768,-32768,-32768,
729-32768,-32768,-32768,   295,   300,-32768,-32768,   138,-32768,  -283,
730-32768,   546,    14,  -208,  1037,   191,  1059,   327,   410,   434,
731   -65,   487,   570,  -343,-32768,   305,   308,   159,   306,   510,
732   511,   519,   517,   524,-32768,   319,   531,   669,-32768,-32768,
733   123,-32768
734};
735
736
737#define	YYLAST		3150
738
739
740static const short yytable[] = {    23,
741    24,   336,   418,   290,   234,   111,   539,   209,   444,    47,
742    58,    67,   116,   409,    15,   264,   345,   210,   127,    73,
743   349,   351,    15,    15,    15,   208,    79,    27,    45,    46,
744   550,    48,   187,    18,   189,   200,    58,   104,    36,    48,
745    15,    58,    67,    15,    15,   551,   194,   202,    27,    82,
746   364,    63,   226,    84,     1,   576,   538,    40,    15,   101,
747    19,     1,   440,    25,    18,     2,   218,   219,   220,   221,
748    37,     3,     2,   576,   227,   228,    58,     4,     3,   552,
749   212,   105,    63,   453,     4,     5,   213,   265,    82,    84,
750    18,   550,    58,   207,    51,    62,   447,    58,    51,   491,
751   192,     1,   448,   208,   130,   335,   551,    52,   332,     6,
752   333,   224,   584,   200,    97,   229,     6,   124,    98,   130,
753   525,    62,   194,   334,   194,   202,    62,    76,   337,   412,
754    51,   592,   434,   195,    51,   437,   414,    52,   415,    54,
755   571,    43,    55,    18,   237,    18,   485,   525,   238,    88,
756   525,   122,   239,   547,   242,    81,   548,    26,   393,    30,
757   190,    62,    51,   507,   418,   284,   495,    89,    58,    54,
758    58,   207,    55,    18,    18,    57,    51,    62,    44,   368,
759   369,   370,    62,   399,   115,   117,    58,   401,   286,  -183,
760   215,   215,   215,   215,  -183,  -183,    51,     1,   215,   215,
761   230,    93,   404,   418,   525,   409,    57,   130,    28,    91,
762   590,   195,   525,    43,     3,   525,   446,   525,   595,   339,
763     4,   597,   192,   598,    94,    28,   330,   124,    31,    28,
764   380,   185,   544,    89,   474,    48,   365,   236,   409,   482,
765   213,   123,    31,    28,   425,    32,   112,   541,    52,   361,
766   285,    33,     6,    62,   362,    62,    37,    57,   363,   418,
767    58,    72,   211,   284,   231,   185,    90,   347,    18,   394,
768   348,    62,    51,   442,   236,   402,   435,   581,   418,   130,
769    54,   441,   284,    55,    18,    34,   286,    35,    49,  -182,
770   535,   515,    74,   286,  -182,  -182,   109,   118,   409,    58,
771   286,   110,   286,   215,   215,   215,   215,   215,   215,   215,
772   215,   215,   215,   215,   215,    62,   215,   215,   215,   215,
773   215,   215,   215,   416,    49,   488,   468,   361,    49,   318,
774   354,   523,   362,    93,   355,    57,   363,   489,   496,   443,
775   124,   103,   435,   448,   497,    62,    18,   526,   285,   518,
776   448,   123,   113,   520,   433,   448,    74,   433,   412,   448,
777   360,   414,   114,   366,   529,   563,     1,   285,   503,   559,
778    49,   448,    52,   589,   526,   519,   490,   526,   565,   448,
779     1,   461,   319,   521,    62,   462,    52,   389,   119,    58,
780   225,   529,   579,   392,   529,   129,   396,   253,   254,   255,
781   256,   284,   403,   130,    54,   215,   186,    55,    18,   214,
782   215,   376,   377,   378,   379,   523,   423,   540,    54,   107,
783   108,    55,    18,   559,   286,   407,   565,   318,   579,   222,
784    42,   526,    43,   143,   318,   435,   257,  -338,  -338,   526,
785   532,   318,   526,   318,   526,   436,   318,   438,   529,   245,
786   246,   247,   223,   284,   236,   284,   529,   188,   108,   529,
787   240,   529,   432,   577,   123,   241,    74,   532,  -339,  -339,
788   532,   260,   360,   261,    62,    58,   286,   185,   286,   262,
789   319,   243,   244,  -337,  -337,   237,   479,   319,   284,   238,
790   250,   251,   252,   239,   319,   286,   319,   248,   249,   319,
791   215,   215,   266,   267,  -337,  -337,   237,   258,   259,    48,
792   350,   286,   215,   455,   239,   263,   124,  -101,   320,   459,
793   460,   326,   286,   104,   532,   286,   192,   360,   284,  -283,
794  -283,   110,   532,   286,   338,   532,   340,   532,   285,    31,
795   285,   346,   286,   472,   473,    52,   284,   352,   284,  -284,
796  -284,   286,   371,   372,   407,   353,   286,   373,   374,   375,
797    62,    31,    33,   382,   383,   318,   356,    52,   367,   286,
798   493,   286,  -226,   285,   391,   406,    92,    54,    32,   286,
799    55,    18,   397,   398,    33,    16,   400,   286,   454,   422,
800   286,   410,   286,    16,    16,    16,   413,   421,   428,    54,
801   430,   321,    55,    18,   426,   427,   431,   318,   318,   449,
802   451,    16,   450,   285,    16,    16,   320,   318,   319,   318,
803   456,   457,    64,   320,   458,   322,   466,   467,   536,    16,
804   320,   285,   320,   285,   108,   320,   318,   469,   470,   191,
805   123,   483,   486,   435,   -15,    52,   487,   318,   499,  -337,
806  -337,   237,   318,    64,    53,   405,     3,   500,   501,   239,
807   319,   319,     4,   318,   510,   502,   318,   564,   506,   512,
808   319,   567,   319,   569,   318,   511,  -116,    54,   323,   516,
809    55,    18,   533,   318,   537,   545,   546,  -156,   549,   319,
810   192,   193,   318,   557,   558,   560,   561,   318,   568,   321,
811   319,   562,   586,   318,   196,   319,   321,   578,   582,   583,
812   318,   585,   318,   321,   591,   321,   319,   588,   321,   319,
813   318,   593,   318,   322,   600,   594,   191,   319,   318,   596,
814   322,   318,    52,   318,   601,   381,   319,   322,    29,   322,
815    80,    53,   322,     3,   102,   319,   329,   131,   327,     4,
816   319,   424,   475,    78,   320,    96,   319,   504,   417,   572,
817   573,   324,   505,   319,    54,   319,   420,    55,    18,   384,
818   344,   385,   498,   319,     0,   319,   323,   192,   328,   387,
819   386,   319,   196,   323,   319,     0,   319,   388,     1,     0,
820   323,     0,   323,     0,    52,   323,   320,   320,   390,     0,
821     0,     1,     0,    53,     0,     3,   320,    52,   320,     0,
822     0,     4,     0,     0,     0,     0,    53,     0,     3,     0,
823     0,     0,     0,     0,     4,   320,    54,     0,     0,    55,
824    18,     0,     0,     0,     0,     0,   320,   321,     0,    54,
825    56,   320,    55,    18,     0,     0,     0,     0,     0,     0,
826     0,     0,   320,    95,     0,   320,     0,     0,     0,   324,
827   325,   322,     0,   320,     0,     0,   324,     0,     0,     0,
828     0,     0,   320,   324,     0,   324,     0,     0,   324,   321,
829   321,   320,     0,     0,     0,     0,   320,     0,     0,   321,
830     0,   321,   320,     0,     0,     0,     0,     0,     0,   320,
831     0,   320,     0,   322,   322,     0,     0,     0,   321,   320,
832     0,   320,     0,   322,   323,   322,     0,   320,     0,   321,
833   320,     0,   320,     0,   321,     0,     0,     0,     0,     0,
834     0,     0,   322,     0,   -15,   321,     0,     0,   321,  -337,
835  -337,   237,     0,   322,     0,   405,   321,     0,   322,   513,
836     0,     0,     0,     0,     0,   321,   323,   323,   325,   322,
837     0,     0,   322,     0,   321,   325,   323,     0,   323,   321,
838   322,     0,   325,     0,   325,   321,     0,   325,     0,   322,
839     0,     0,   321,     0,   321,   323,     0,     0,   322,     0,
840     0,     0,   321,   322,   321,     0,   323,   324,     0,   322,
841   321,   323,     0,   321,     0,   321,   322,     0,   322,     0,
842     0,     0,   323,     0,     0,   323,   322,     0,   322,     0,
843     0,     0,     0,   323,   322,     0,     0,   322,     0,   322,
844     0,     0,   323,     0,     0,     0,     0,     0,     0,   324,
845   324,   323,     0,     0,     0,     0,   323,     0,     0,   324,
846     0,   324,   323,     0,     0,     0,     0,     0,     0,   323,
847     0,   323,     0,     0,     0,     0,     0,     0,   324,   323,
848     0,   323,     1,   134,   135,     0,     0,   323,    52,   324,
849   323,     0,   323,     0,   324,     0,     0,   136,     0,     0,
850     0,     0,     0,   137,     0,   324,   325,     0,   324,     0,
851   138,     0,     0,     0,   139,     0,   324,     0,     0,     0,
852    54,     0,     0,    55,    18,   324,     0,     0,     0,     0,
853     0,   280,     0,     0,   324,     0,     0,     0,     0,   324,
854   144,   145,   146,   147,     0,   324,   148,   149,   325,   325,
855     0,     0,   324,     0,   324,     0,     0,     0,   325,     0,
856   325,     0,   324,     0,   324,     0,     0,     0,     0,     0,
857   324,     0,     0,   324,     0,   324,     0,   325,   216,   216,
858   216,   216,     0,     0,     0,     0,   216,   216,   325,     0,
859     0,     0,     0,   325,     0,     0,     0,     0,     0,     0,
860   217,   217,   217,   217,   325,     0,     0,   325,   217,   217,
861     0,     0,     0,     0,     0,   325,     0,     0,     0,     0,
862     0,     0,     0,     0,   325,   134,   135,     0,     0,     0,
863    52,     0,     0,   325,     0,     0,     0,     0,   325,   136,
864     0,     0,     0,     0,   325,   137,     0,     0,     0,     0,
865     0,   325,   138,   325,     0,     0,   139,     0,     0,     0,
866     0,   325,    54,   325,     0,    55,    18,     0,     0,   325,
867     0,     0,   325,   280,   325,     0,     0,     0,     0,     0,
868     0,     0,   144,   145,   146,   147,     0,     0,   148,   149,
869     0,   216,   216,   216,   216,   216,   216,   216,   216,   216,
870   216,   216,   216,     0,   216,   216,   216,   216,   216,   216,
871   216,     0,     0,   217,   217,   217,   217,   217,   217,   217,
872   217,   217,   217,   217,   217,     0,   217,   217,   217,   217,
873   217,   217,   217,   492,     0,   132,   133,     0,     0,     0,
874     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
875     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
876     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
877     0,     0,     0,     0,     0,     0,     0,   134,   135,     0,
878     0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
879     0,   136,     0,   216,     0,     0,     0,   137,   216,     0,
880     0,     0,     0,     0,   138,     0,     0,     0,   139,     0,
881     0,     0,     0,     0,    54,   217,     0,    55,    18,     0,
882   217,   140,   141,    52,     0,   142,     0,     0,     0,     0,
883     0,     0,   136,     0,   144,   145,   146,   147,   137,     0,
884   148,   149,     0,     0,     0,   138,     0,     0,     0,   139,
885   132,   133,     0,     0,     0,    54,     0,     0,    55,    18,
886     0,     0,   140,   141,     0,     0,   142,     0,     0,     0,
887     0,     0,     0,     0,     0,   144,   145,   146,   147,     0,
888     0,   148,   149,     0,     0,     0,     0,     0,   216,   216,
889     0,     0,   134,   135,     0,     0,     0,    52,     0,     0,
890   216,     0,     0,     0,     0,     0,   136,     0,     0,     0,
891   217,   217,   137,     0,     0,   132,   133,     0,     0,   138,
892     0,     0,   217,   139,     0,     0,     0,     0,     0,    54,
893     0,     0,    55,    18,     0,     0,   140,   141,     0,     0,
894   142,     0,   143,   232,     0,     0,     0,   233,     0,   144,
895   145,   146,   147,     0,     0,   148,   149,   134,   135,     0,
896     0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
897     0,   136,     0,     0,     0,     0,     0,   137,     0,     0,
898   132,   133,     0,     0,   138,     0,     0,     0,   139,     0,
899     0,     0,     0,     0,    54,     0,     0,    55,    18,     0,
900     0,   140,   141,     0,     0,   142,     0,   143,   445,     0,
901     0,     0,     0,     0,   144,   145,   146,   147,     0,     0,
902   148,   149,   134,   135,     0,     0,     0,    52,     0,     0,
903     0,   132,   133,     0,     0,     0,   136,     0,     0,     0,
904     0,     0,   137,     0,     0,     0,     0,     0,     0,   138,
905     0,     0,     0,   139,     0,     0,     0,     0,     0,    54,
906     0,     0,    55,    18,     0,     0,   140,   141,     0,     0,
907   142,     0,   143,   134,   135,     0,     0,     0,    52,   144,
908   145,   146,   147,     0,     0,   148,   149,   136,     0,     0,
909     0,     0,     0,   137,     0,     0,   132,   133,     0,     0,
910   138,     0,     0,     0,   139,     0,     0,     0,     0,     0,
911    54,     0,     0,    55,    18,     0,     0,   140,   141,     0,
912     0,   142,   357,     0,     0,     0,     0,     0,     0,     0,
913   144,   145,   146,   147,     0,     0,   148,   149,   134,   135,
914     0,     0,     0,    52,     0,     0,     0,   132,   133,     0,
915     0,     0,   136,     0,     0,     0,     0,     0,   137,     0,
916     0,     0,     0,     0,     0,   138,     0,     0,     0,   139,
917     0,     0,     0,     0,     0,    54,     0,     0,    55,    18,
918     0,     0,   140,   141,     0,     0,   142,     0,     0,   134,
919   135,     0,   395,     0,    52,   144,   145,   146,   147,     0,
920     0,   148,   149,   136,     0,     0,     0,     0,     0,   137,
921     0,     0,   132,   133,     0,     0,   138,     0,     0,     0,
922   139,     0,     0,     0,     0,     0,    54,     0,     0,    55,
923    18,     0,     0,   140,   141,     0,     0,   142,     0,     0,
924     0,     0,   431,     0,     0,     0,   144,   145,   146,   147,
925     0,     0,   148,   149,   134,   135,     0,     0,     0,    52,
926     0,     0,     0,   132,   133,     0,     0,     0,   136,     0,
927     0,     0,     0,     0,   137,     0,     0,     0,     0,     0,
928     0,   138,     0,     0,     0,   139,     0,     0,     0,     0,
929     0,    54,     0,     0,    55,    18,     0,     0,   140,   141,
930     0,     0,   142,   439,     0,   134,   135,     0,     0,     0,
931    52,   144,   145,   146,   147,     0,     0,   148,   149,   136,
932     0,     0,     0,     0,     0,   137,     0,     0,   132,   133,
933     0,     0,   138,     0,     0,     0,   139,     0,     0,     0,
934     0,     0,    54,     0,     0,    55,    18,     0,     0,   140,
935   141,     0,     0,   142,   452,     0,     0,     0,     0,     0,
936     0,     0,   144,   145,   146,   147,     0,     0,   148,   149,
937   134,   135,     0,     0,     0,    52,     0,     0,     0,   132,
938   133,     0,     0,     0,   136,     0,     0,     0,     0,     0,
939   137,     0,     0,     0,     0,     0,     0,   138,     0,     0,
940     0,   139,     0,     0,     0,     0,     0,    54,     0,     0,
941    55,    18,     0,     0,   140,   141,     0,     0,   142,     0,
942     0,   134,   135,   114,     0,     0,    52,   144,   145,   146,
943   147,     0,     0,   148,   149,   136,     0,     0,     0,     0,
944     0,   137,     0,     0,   132,   133,     0,     0,   138,     0,
945     0,     0,   139,     0,     0,     0,     0,     0,    54,     0,
946     0,    55,    18,     0,     0,   140,   141,     0,     0,   142,
947     0,     0,     0,     0,     0,   471,     0,     0,   144,   145,
948   146,   147,     0,     0,   148,   149,   134,   135,     0,     0,
949     0,    52,     0,     0,     0,   132,   133,     0,     0,     0,
950   136,     0,     0,     0,     0,     0,   137,     0,     0,     0,
951     0,     0,     0,   138,     0,     0,     0,   139,     0,     0,
952     0,     0,     0,    54,     0,     0,    55,    18,     0,     0,
953   140,   141,     0,     0,   142,   484,     0,   134,   135,     0,
954     0,     0,    52,   144,   145,   146,   147,     0,     0,   148,
955   149,   136,     0,     0,     0,     0,     0,   137,     0,     0,
956   132,   133,     0,     0,   138,     0,     0,     0,   139,     0,
957     0,     0,     0,     0,    54,     0,     0,    55,    18,     0,
958     0,   140,   141,     0,     0,   142,   494,     0,     0,     0,
959     0,     0,     0,     0,   144,   145,   146,   147,     0,     0,
960   148,   149,   134,   135,     0,     0,     0,    52,     0,     0,
961     0,   132,   133,     0,     0,     0,   136,     0,     0,     0,
962     0,     0,   137,     0,     0,     0,     0,     0,     0,   138,
963     0,     0,     0,   139,     0,     0,     0,     0,     0,    54,
964     0,     0,    55,    18,     0,     0,   140,   141,     0,     0,
965   142,   543,     0,   134,   135,     0,     0,     0,    52,   144,
966   145,   146,   147,     0,     0,   148,   149,   136,     0,     0,
967     0,     0,     0,   137,     0,     0,   132,   133,     0,     0,
968   138,     0,     0,     0,   139,     0,     0,     0,     0,     0,
969    54,     0,     0,    55,    18,     0,     0,   140,   141,     0,
970     0,   142,     0,     0,     0,     0,     0,   566,     0,     0,
971   144,   145,   146,   147,     0,     0,   148,   149,   134,   135,
972     0,     0,     0,    52,     0,     0,     0,   132,   133,     0,
973     0,     0,   136,     0,     0,     0,     0,     0,   137,     0,
974     0,     0,     0,     0,     0,   138,     0,     0,     0,   139,
975     0,     0,     0,     0,     0,    54,     0,     0,    55,    18,
976     0,     0,   140,   141,     0,     0,   142,   580,     0,   134,
977   135,     0,     0,     0,    52,   144,   145,   146,   147,     0,
978     0,   148,   149,   136,     0,     0,     0,     0,     0,   137,
979     0,     0,     0,     0,     0,     0,   138,     0,     0,     0,
980   139,     0,     0,     0,     0,     0,    54,     0,     0,    55,
981    18,     0,     0,   140,   141,     0,     0,   142,     0,     0,
982     0,     0,     0,     0,     0,     0,   144,   145,   146,   147,
983     0,     0,   148,   149,   269,   134,   135,   550,   270,   271,
984    52,   272,     0,     0,   273,     0,     0,     0,   274,   136,
985     0,     0,   551,     0,     0,   137,   275,     4,   276,     0,
986   277,   278,   138,   279,     0,     0,   139,     0,     0,     0,
987     0,     0,    54,     0,     0,    55,    18,     0,     0,     0,
988     0,     0,     0,   280,     0,   192,   574,     0,     0,   282,
989     0,     0,   144,   145,   146,   147,     0,     0,   148,   149,
990   269,   134,   135,   550,   270,   271,    52,   272,     0,     0,
991   273,     0,     0,     0,   274,   136,     0,     0,   551,     0,
992     0,   137,   275,     4,   276,     0,   277,   278,   138,   279,
993     0,     0,   139,     0,     0,     0,     0,     0,    54,     0,
994     0,    55,    18,     0,     0,     0,     0,     0,     0,   280,
995     0,   192,   587,     0,     0,   282,     0,     0,   144,   145,
996   146,   147,     0,     0,   148,   149,   269,   134,   135,     0,
997   270,   271,    52,   272,     0,     0,   273,     0,     0,     0,
998   274,   136,     0,     0,     0,     0,     0,   137,   275,     4,
999   276,     0,   277,   278,   138,   279,     0,     0,   139,     0,
1000     0,     0,     0,     0,    54,     0,     0,    55,    18,     0,
1001     0,     0,     0,     0,     0,   280,     0,   192,   281,     0,
1002     0,   282,     0,     0,   144,   145,   146,   147,     0,     0,
1003   148,   149,   269,   134,   135,     0,   270,   271,    52,   272,
1004     0,     0,   273,     0,     0,     0,   274,   136,     0,     0,
1005     0,     0,     0,   137,   275,     4,   276,     0,   277,   278,
1006   138,   279,     0,     0,   139,     0,     0,     0,     0,     0,
1007    54,     0,     0,    55,    18,     0,     0,     0,     0,     0,
1008     0,   280,     0,   192,   408,     0,     0,   282,     0,     0,
1009   144,   145,   146,   147,     0,     0,   148,   149,   269,   134,
1010   135,     0,   270,   271,    52,   272,     0,     0,   273,     0,
1011     0,     0,   274,   136,     0,     0,     0,     0,     0,   476,
1012   275,     4,   276,     0,   277,   278,   138,   279,     0,     0,
1013   477,     0,     0,     0,     0,     0,    54,     0,     0,    55,
1014    18,     0,     0,     0,     0,     0,     0,   280,     0,   192,
1015   478,     0,     0,   282,     0,     0,   144,   145,   146,   147,
1016     0,     0,   148,   149,   269,   134,   135,     0,   270,   271,
1017    52,   272,     0,     0,   273,     0,     0,     0,   274,   136,
1018     0,     0,     0,     0,     0,   137,   275,     4,   276,     0,
1019   277,   278,   138,   279,     0,     0,   139,     0,     0,     0,
1020     0,     0,    54,     0,     0,    55,    18,     0,     0,     0,
1021     0,     0,     0,   280,     0,   192,   514,     0,     0,   282,
1022     0,     0,   144,   145,   146,   147,     0,     0,   148,   149,
1023   269,   134,   135,     0,   270,   271,    52,   272,     0,     0,
1024   273,     0,     0,     0,   274,   136,     0,     0,     0,     0,
1025     0,   137,   275,     4,   276,     0,   277,   278,   138,   279,
1026     0,     0,   139,     0,     0,     0,     0,     0,    54,     0,
1027     0,    55,    18,     0,     0,     0,     0,     0,     0,   280,
1028     0,   192,   517,     0,     0,   282,     0,     0,   144,   145,
1029   146,   147,     0,     0,   148,   149,   269,   134,   135,     0,
1030   270,   271,    52,   272,     0,     0,   273,     0,     0,     0,
1031   274,   136,     0,     0,     0,     0,     0,   137,   275,     4,
1032   276,     0,   277,   278,   138,   279,     0,     0,   139,     0,
1033     0,     0,     0,     0,    54,     0,     0,    55,    18,     0,
1034     0,     0,     0,     0,     0,   280,     0,   192,   542,     0,
1035     0,   282,     0,     0,   144,   145,   146,   147,     0,     0,
1036   148,   149,   269,   134,   135,     0,   270,   271,    52,   272,
1037     0,     0,   273,     0,     0,     0,   274,   136,     0,     0,
1038     0,     0,     0,   137,   275,     4,   276,     0,   277,   278,
1039   138,   279,     0,     0,   139,     0,     0,     0,     0,     0,
1040    54,     0,     0,    55,    18,     0,     0,     0,     0,     0,
1041     0,   280,     0,   192,     0,     0,     0,   282,     0,     0,
1042   144,   145,   146,   147,     0,     0,   148,   149,   411,   134,
1043   135,     0,   270,   271,    52,   272,     0,     0,   273,     0,
1044     0,     0,   274,   136,     0,     0,     0,     0,     0,   137,
1045   275,     0,   276,     0,   277,   278,   138,   279,     0,     0,
1046   139,     0,     0,     0,     0,     0,    54,     0,     0,    55,
1047    18,     0,     0,     0,     0,     0,     0,   280,     0,   192,
1048     0,     0,     0,   282,     0,     0,   144,   145,   146,   147,
1049     0,     0,   148,   149,   411,   134,   135,     0,   522,   271,
1050    52,   272,     0,     0,   273,     0,     0,     0,   274,   136,
1051     0,     0,     0,     0,     0,   137,   275,     0,   276,     0,
1052   277,   278,   138,   279,     0,     0,   139,     0,     0,     0,
1053     0,     0,    54,     0,     0,    55,    18,     0,     0,     0,
1054     0,     0,     0,   280,     0,   192,     0,     0,     0,   282,
1055     0,     0,   144,   145,   146,   147,     0,     0,   148,   149
1056};
1057
1058static const short yycheck[] = {     3,
1059     4,   213,   309,   192,   143,    88,     1,   121,   352,     5,
1060    37,    37,    93,   290,     0,    15,   225,   123,   104,    38,
1061   229,   230,     8,     9,    10,   119,    45,     8,    32,    33,
1062    47,    35,   115,    86,   117,   119,    63,    53,    63,    43,
1063    26,    68,    68,    29,    30,    62,   119,   119,    29,    53,
1064    72,    37,   138,    57,    44,   555,   510,    63,    44,    78,
1065     2,    44,   346,     5,    86,    55,   132,   133,   134,   135,
1066    95,    61,    55,   573,   140,   141,   103,    67,    61,    96,
1067    94,    97,    68,   367,    67,    75,   100,    87,    92,    93,
1068    86,    47,   119,   119,    36,    37,    94,   124,    40,   443,
1069    95,    44,   100,   197,   108,   211,    62,    50,   202,    99,
1070   204,   138,   566,   197,    72,   142,    99,   103,    76,   123,
1071   499,    63,   195,   206,   197,   197,    68,    52,   214,   297,
1072    72,   585,   341,   119,    76,   344,   304,    50,   306,    82,
1073    96,   101,    85,    86,    93,    86,   430,   526,    97,    57,
1074   529,    94,   101,   526,   158,    99,   529,     8,    99,    10,
1075   118,   103,   104,   470,   471,   192,   450,    97,   195,    82,
1076   197,   197,    85,    86,    86,    37,   118,   119,    29,   245,
1077   246,   247,   124,   277,    92,    93,   213,    99,   192,    94,
1078   132,   133,   134,   135,    99,   100,   138,    44,   140,   141,
1079   142,    63,   283,   510,   583,   482,    68,   211,     9,    97,
1080   583,   197,   591,   101,    61,   594,   355,   596,   591,   223,
1081    67,   594,    95,   596,    99,    26,    99,   213,    44,    30,
1082   257,   109,   516,    97,    94,   239,   240,   101,   515,   428,
1083   100,   103,    44,    44,   327,    61,    98,    65,    50,    67,
1084   192,    67,    99,   195,    72,   197,    95,   119,    76,   566,
1085   287,   100,   124,   290,   142,   143,    97,    94,    86,   273,
1086    97,   213,   214,    94,   101,   279,    97,   561,   585,   283,
1087    82,   347,   309,    85,    86,    99,   290,   101,    36,    94,
1088   502,   480,    40,   297,    99,   100,    92,   100,   575,   326,
1089   304,    97,   306,   245,   246,   247,   248,   249,   250,   251,
1090   252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1091   262,   263,   264,   309,    72,   439,   407,    67,    76,   192,
1092    96,   499,    72,   195,   100,   197,    76,    94,   452,    94,
1093   326,    93,    97,   100,    94,   287,    86,   499,   290,    94,
1094   100,   213,    98,    94,   341,   100,   104,   344,   526,   100,
1095   238,   529,    98,   241,   499,    94,    44,   309,   462,   537,
1096   118,   100,    50,    94,   526,   489,   442,   529,   546,   100,
1097    44,    60,   192,   497,   326,    64,    50,   265,    95,   416,
1098   138,   526,   560,   271,   529,    98,   274,    18,    19,    20,
1099    21,   428,   280,   407,    82,   347,    98,    85,    86,   100,
1100   352,   253,   254,   255,   256,   583,    94,   511,    82,    99,
1101   100,    85,    86,   591,   428,   287,   594,   290,   596,   101,
1102    99,   583,   101,    95,   297,    97,    57,    91,    92,   591,
1103   499,   304,   594,   306,   596,   343,   309,   345,   583,     5,
1104     6,     7,   101,   480,   101,   482,   591,    99,   100,   594,
1105   101,   596,   340,   557,   326,    97,   214,   526,    91,    92,
1106   529,    11,   350,    12,   416,   502,   480,   355,   482,    13,
1107   290,    45,    46,    91,    92,    93,   428,   297,   515,    97,
1108     8,     9,    10,   101,   304,   499,   306,     3,     4,   309,
1109   442,   443,    91,    92,    91,    92,    93,    16,    17,   513,
1110    97,   515,   454,   391,   101,    14,   502,    95,   192,   397,
1111   398,    93,   526,    53,   583,   529,    95,   405,   555,    45,
1112    46,    97,   591,   537,    67,   594,    97,   596,   480,    44,
1113   482,    93,   546,   421,   422,    50,   573,    94,   575,    45,
1114    46,   555,   248,   249,   416,    96,   560,   250,   251,   252,
1115   502,    44,    67,   258,   259,   428,    67,    50,    93,   573,
1116   448,   575,    93,   515,    93,    88,    59,    82,    61,   583,
1117    85,    86,    93,    93,    67,     0,    93,   591,    88,    93,
1118   594,    99,   596,     8,     9,    10,    99,    99,    95,    82,
1119    93,   192,    85,    86,    99,    99,    98,   470,   471,    98,
1120    98,    26,    93,   555,    29,    30,   290,   480,   428,   482,
1121    99,    99,    37,   297,    99,   192,    99,    94,   506,    44,
1122   304,   573,   306,   575,   100,   309,   499,    66,   100,    44,
1123   502,    99,    98,    97,    86,    50,    98,   510,    94,    91,
1124    92,    93,   515,    68,    59,    97,    61,    94,    94,   101,
1125   470,   471,    67,   526,    99,    93,   529,   545,    93,    99,
1126   480,   549,   482,   551,   537,    94,    93,    82,   192,    93,
1127    85,    86,    95,   546,    94,    93,    56,    56,    99,   499,
1128    95,    96,   555,    94,    94,    94,    93,   560,    88,   290,
1129   510,    99,    88,   566,   119,   515,   297,    99,    99,    94,
1130   573,    99,   575,   304,    94,   306,   526,    99,   309,   529,
1131   583,    99,   585,   290,     0,    56,    44,   537,   591,    94,
1132   297,   594,    50,   596,     0,   257,   546,   304,    10,   306,
1133    46,    59,   309,    61,    80,   555,   197,   108,   195,    67,
1134   560,   326,   425,    45,   428,    68,   566,   463,   309,   553,
1135   553,   192,   463,   573,    82,   575,   309,    85,    86,   260,
1136   225,   261,   454,   583,    -1,   585,   290,    95,    96,   263,
1137   262,   591,   197,   297,   594,    -1,   596,   264,    44,    -1,
1138   304,    -1,   306,    -1,    50,   309,   470,   471,   268,    -1,
1139    -1,    44,    -1,    59,    -1,    61,   480,    50,   482,    -1,
1140    -1,    67,    -1,    -1,    -1,    -1,    59,    -1,    61,    -1,
1141    -1,    -1,    -1,    -1,    67,   499,    82,    -1,    -1,    85,
1142    86,    -1,    -1,    -1,    -1,    -1,   510,   428,    -1,    82,
1143    96,   515,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,
1144    -1,    -1,   526,    96,    -1,   529,    -1,    -1,    -1,   290,
1145   192,   428,    -1,   537,    -1,    -1,   297,    -1,    -1,    -1,
1146    -1,    -1,   546,   304,    -1,   306,    -1,    -1,   309,   470,
1147   471,   555,    -1,    -1,    -1,    -1,   560,    -1,    -1,   480,
1148    -1,   482,   566,    -1,    -1,    -1,    -1,    -1,    -1,   573,
1149    -1,   575,    -1,   470,   471,    -1,    -1,    -1,   499,   583,
1150    -1,   585,    -1,   480,   428,   482,    -1,   591,    -1,   510,
1151   594,    -1,   596,    -1,   515,    -1,    -1,    -1,    -1,    -1,
1152    -1,    -1,   499,    -1,    86,   526,    -1,    -1,   529,    91,
1153    92,    93,    -1,   510,    -1,    97,   537,    -1,   515,   101,
1154    -1,    -1,    -1,    -1,    -1,   546,   470,   471,   290,   526,
1155    -1,    -1,   529,    -1,   555,   297,   480,    -1,   482,   560,
1156   537,    -1,   304,    -1,   306,   566,    -1,   309,    -1,   546,
1157    -1,    -1,   573,    -1,   575,   499,    -1,    -1,   555,    -1,
1158    -1,    -1,   583,   560,   585,    -1,   510,   428,    -1,   566,
1159   591,   515,    -1,   594,    -1,   596,   573,    -1,   575,    -1,
1160    -1,    -1,   526,    -1,    -1,   529,   583,    -1,   585,    -1,
1161    -1,    -1,    -1,   537,   591,    -1,    -1,   594,    -1,   596,
1162    -1,    -1,   546,    -1,    -1,    -1,    -1,    -1,    -1,   470,
1163   471,   555,    -1,    -1,    -1,    -1,   560,    -1,    -1,   480,
1164    -1,   482,   566,    -1,    -1,    -1,    -1,    -1,    -1,   573,
1165    -1,   575,    -1,    -1,    -1,    -1,    -1,    -1,   499,   583,
1166    -1,   585,    44,    45,    46,    -1,    -1,   591,    50,   510,
1167   594,    -1,   596,    -1,   515,    -1,    -1,    59,    -1,    -1,
1168    -1,    -1,    -1,    65,    -1,   526,   428,    -1,   529,    -1,
1169    72,    -1,    -1,    -1,    76,    -1,   537,    -1,    -1,    -1,
1170    82,    -1,    -1,    85,    86,   546,    -1,    -1,    -1,    -1,
1171    -1,    93,    -1,    -1,   555,    -1,    -1,    -1,    -1,   560,
1172   102,   103,   104,   105,    -1,   566,   108,   109,   470,   471,
1173    -1,    -1,   573,    -1,   575,    -1,    -1,    -1,   480,    -1,
1174   482,    -1,   583,    -1,   585,    -1,    -1,    -1,    -1,    -1,
1175   591,    -1,    -1,   594,    -1,   596,    -1,   499,   132,   133,
1176   134,   135,    -1,    -1,    -1,    -1,   140,   141,   510,    -1,
1177    -1,    -1,    -1,   515,    -1,    -1,    -1,    -1,    -1,    -1,
1178   132,   133,   134,   135,   526,    -1,    -1,   529,   140,   141,
1179    -1,    -1,    -1,    -1,    -1,   537,    -1,    -1,    -1,    -1,
1180    -1,    -1,    -1,    -1,   546,    45,    46,    -1,    -1,    -1,
1181    50,    -1,    -1,   555,    -1,    -1,    -1,    -1,   560,    59,
1182    -1,    -1,    -1,    -1,   566,    65,    -1,    -1,    -1,    -1,
1183    -1,   573,    72,   575,    -1,    -1,    76,    -1,    -1,    -1,
1184    -1,   583,    82,   585,    -1,    85,    86,    -1,    -1,   591,
1185    -1,    -1,   594,    93,   596,    -1,    -1,    -1,    -1,    -1,
1186    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,   109,
1187    -1,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1188   254,   255,   256,    -1,   258,   259,   260,   261,   262,   263,
1189   264,    -1,    -1,   245,   246,   247,   248,   249,   250,   251,
1190   252,   253,   254,   255,   256,    -1,   258,   259,   260,   261,
1191   262,   263,   264,     1,    -1,     3,     4,    -1,    -1,    -1,
1192    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1193    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1194    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1195    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,    46,    -1,
1196    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1197    -1,    59,    -1,   347,    -1,    -1,    -1,    65,   352,    -1,
1198    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
1199    -1,    -1,    -1,    -1,    82,   347,    -1,    85,    86,    -1,
1200   352,    89,    90,    50,    -1,    93,    -1,    -1,    -1,    -1,
1201    -1,    -1,    59,    -1,   102,   103,   104,   105,    65,    -1,
1202   108,   109,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
1203     3,     4,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
1204    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    -1,
1205    -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,
1206    -1,   108,   109,    -1,    -1,    -1,    -1,    -1,   442,   443,
1207    -1,    -1,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,
1208   454,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,
1209   442,   443,    65,    -1,    -1,     3,     4,    -1,    -1,    72,
1210    -1,    -1,   454,    76,    -1,    -1,    -1,    -1,    -1,    82,
1211    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
1212    93,    -1,    95,    96,    -1,    -1,    -1,   100,    -1,   102,
1213   103,   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,
1214    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1215    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
1216     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
1217    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
1218    -1,    89,    90,    -1,    -1,    93,    -1,    95,    96,    -1,
1219    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,
1220   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,
1221    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,
1222    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
1223    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
1224    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
1225    93,    -1,    95,    45,    46,    -1,    -1,    -1,    50,   102,
1226   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,
1227    -1,    -1,    -1,    65,    -1,    -1,     3,     4,    -1,    -1,
1228    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
1229    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
1230    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1231   102,   103,   104,   105,    -1,    -1,   108,   109,    45,    46,
1232    -1,    -1,    -1,    50,    -1,    -1,    -1,     3,     4,    -1,
1233    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
1234    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
1235    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
1236    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,    45,
1237    46,    -1,    99,    -1,    50,   102,   103,   104,   105,    -1,
1238    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,
1239    -1,    -1,     3,     4,    -1,    -1,    72,    -1,    -1,    -1,
1240    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
1241    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,
1242    -1,    -1,    98,    -1,    -1,    -1,   102,   103,   104,   105,
1243    -1,    -1,   108,   109,    45,    46,    -1,    -1,    -1,    50,
1244    -1,    -1,    -1,     3,     4,    -1,    -1,    -1,    59,    -1,
1245    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
1246    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
1247    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,
1248    -1,    -1,    93,    94,    -1,    45,    46,    -1,    -1,    -1,
1249    50,   102,   103,   104,   105,    -1,    -1,   108,   109,    59,
1250    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,     3,     4,
1251    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,
1252    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    89,
1253    90,    -1,    -1,    93,    94,    -1,    -1,    -1,    -1,    -1,
1254    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,   109,
1255    45,    46,    -1,    -1,    -1,    50,    -1,    -1,    -1,     3,
1256     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
1257    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,
1258    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,
1259    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,
1260    -1,    45,    46,    98,    -1,    -1,    50,   102,   103,   104,
1261   105,    -1,    -1,   108,   109,    59,    -1,    -1,    -1,    -1,
1262    -1,    65,    -1,    -1,     3,     4,    -1,    -1,    72,    -1,
1263    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
1264    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,    93,
1265    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,   102,   103,
1266   104,   105,    -1,    -1,   108,   109,    45,    46,    -1,    -1,
1267    -1,    50,    -1,    -1,    -1,     3,     4,    -1,    -1,    -1,
1268    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
1269    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,    -1,
1270    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,
1271    89,    90,    -1,    -1,    93,    94,    -1,    45,    46,    -1,
1272    -1,    -1,    50,   102,   103,   104,   105,    -1,    -1,   108,
1273   109,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
1274     3,     4,    -1,    -1,    72,    -1,    -1,    -1,    76,    -1,
1275    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
1276    -1,    89,    90,    -1,    -1,    93,    94,    -1,    -1,    -1,
1277    -1,    -1,    -1,    -1,   102,   103,   104,   105,    -1,    -1,
1278   108,   109,    45,    46,    -1,    -1,    -1,    50,    -1,    -1,
1279    -1,     3,     4,    -1,    -1,    -1,    59,    -1,    -1,    -1,
1280    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,
1281    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,
1282    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,    -1,
1283    93,    94,    -1,    45,    46,    -1,    -1,    -1,    50,   102,
1284   103,   104,   105,    -1,    -1,   108,   109,    59,    -1,    -1,
1285    -1,    -1,    -1,    65,    -1,    -1,     3,     4,    -1,    -1,
1286    72,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
1287    82,    -1,    -1,    85,    86,    -1,    -1,    89,    90,    -1,
1288    -1,    93,    -1,    -1,    -1,    -1,    -1,    99,    -1,    -1,
1289   102,   103,   104,   105,    -1,    -1,   108,   109,    45,    46,
1290    -1,    -1,    -1,    50,    -1,    -1,    -1,     3,     4,    -1,
1291    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
1292    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    76,
1293    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,
1294    -1,    -1,    89,    90,    -1,    -1,    93,    94,    -1,    45,
1295    46,    -1,    -1,    -1,    50,   102,   103,   104,   105,    -1,
1296    -1,   108,   109,    59,    -1,    -1,    -1,    -1,    -1,    65,
1297    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,
1298    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
1299    86,    -1,    -1,    89,    90,    -1,    -1,    93,    -1,    -1,
1300    -1,    -1,    -1,    -1,    -1,    -1,   102,   103,   104,   105,
1301    -1,    -1,   108,   109,    44,    45,    46,    47,    48,    49,
1302    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,
1303    -1,    -1,    62,    -1,    -1,    65,    66,    67,    68,    -1,
1304    70,    71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,
1305    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,
1306    -1,    -1,    -1,    93,    -1,    95,    96,    -1,    -1,    99,
1307    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,   109,
1308    44,    45,    46,    47,    48,    49,    50,    51,    -1,    -1,
1309    54,    -1,    -1,    -1,    58,    59,    -1,    -1,    62,    -1,
1310    -1,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
1311    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
1312    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
1313    -1,    95,    96,    -1,    -1,    99,    -1,    -1,   102,   103,
1314   104,   105,    -1,    -1,   108,   109,    44,    45,    46,    -1,
1315    48,    49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
1316    58,    59,    -1,    -1,    -1,    -1,    -1,    65,    66,    67,
1317    68,    -1,    70,    71,    72,    73,    -1,    -1,    76,    -1,
1318    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
1319    -1,    -1,    -1,    -1,    -1,    93,    -1,    95,    96,    -1,
1320    -1,    99,    -1,    -1,   102,   103,   104,   105,    -1,    -1,
1321   108,   109,    44,    45,    46,    -1,    48,    49,    50,    51,
1322    -1,    -1,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,
1323    -1,    -1,    -1,    65,    66,    67,    68,    -1,    70,    71,
1324    72,    73,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
1325    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
1326    -1,    93,    -1,    95,    96,    -1,    -1,    99,    -1,    -1,
1327   102,   103,   104,   105,    -1,    -1,   108,   109,    44,    45,
1328    46,    -1,    48,    49,    50,    51,    -1,    -1,    54,    -1,
1329    -1,    -1,    58,    59,    -1,    -1,    -1,    -1,    -1,    65,
1330    66,    67,    68,    -1,    70,    71,    72,    73,    -1,    -1,
1331    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
1332    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    95,
1333    96,    -1,    -1,    99,    -1,    -1,   102,   103,   104,   105,
1334    -1,    -1,   108,   109,    44,    45,    46,    -1,    48,    49,
1335    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,
1336    -1,    -1,    -1,    -1,    -1,    65,    66,    67,    68,    -1,
1337    70,    71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,
1338    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,
1339    -1,    -1,    -1,    93,    -1,    95,    96,    -1,    -1,    99,
1340    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,   109,
1341    44,    45,    46,    -1,    48,    49,    50,    51,    -1,    -1,
1342    54,    -1,    -1,    -1,    58,    59,    -1,    -1,    -1,    -1,
1343    -1,    65,    66,    67,    68,    -1,    70,    71,    72,    73,
1344    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,
1345    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,
1346    -1,    95,    96,    -1,    -1,    99,    -1,    -1,   102,   103,
1347   104,   105,    -1,    -1,   108,   109,    44,    45,    46,    -1,
1348    48,    49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,
1349    58,    59,    -1,    -1,    -1,    -1,    -1,    65,    66,    67,
1350    68,    -1,    70,    71,    72,    73,    -1,    -1,    76,    -1,
1351    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,    86,    -1,
1352    -1,    -1,    -1,    -1,    -1,    93,    -1,    95,    96,    -1,
1353    -1,    99,    -1,    -1,   102,   103,   104,   105,    -1,    -1,
1354   108,   109,    44,    45,    46,    -1,    48,    49,    50,    51,
1355    -1,    -1,    54,    -1,    -1,    -1,    58,    59,    -1,    -1,
1356    -1,    -1,    -1,    65,    66,    67,    68,    -1,    70,    71,
1357    72,    73,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
1358    82,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,    -1,
1359    -1,    93,    -1,    95,    -1,    -1,    -1,    99,    -1,    -1,
1360   102,   103,   104,   105,    -1,    -1,   108,   109,    44,    45,
1361    46,    -1,    48,    49,    50,    51,    -1,    -1,    54,    -1,
1362    -1,    -1,    58,    59,    -1,    -1,    -1,    -1,    -1,    65,
1363    66,    -1,    68,    -1,    70,    71,    72,    73,    -1,    -1,
1364    76,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    85,
1365    86,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,    95,
1366    -1,    -1,    -1,    99,    -1,    -1,   102,   103,   104,   105,
1367    -1,    -1,   108,   109,    44,    45,    46,    -1,    48,    49,
1368    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,
1369    -1,    -1,    -1,    -1,    -1,    65,    66,    -1,    68,    -1,
1370    70,    71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,
1371    -1,    -1,    82,    -1,    -1,    85,    86,    -1,    -1,    -1,
1372    -1,    -1,    -1,    93,    -1,    95,    -1,    -1,    -1,    99,
1373    -1,    -1,   102,   103,   104,   105,    -1,    -1,   108,   109
1374};
1375#define YYPURE 1
1376
1377/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
1378#line 3 "/usr/cygnus/gnupro-98r2/share/bison.simple"
1379
1380/* Skeleton output parser for bison,
1381   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1382
1383   This program is free software; you can redistribute it and/or modify
1384   it under the terms of the GNU General Public License as published by
1385   the Free Software Foundation; either version 2, or (at your option)
1386   any later version.
1387
1388   This program is distributed in the hope that it will be useful,
1389   but WITHOUT ANY WARRANTY; without even the implied warranty of
1390   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1391   GNU General Public License for more details.
1392
1393   You should have received a copy of the GNU General Public License
1394   along with this program; if not, write to the Free Software
1395   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
1396
1397/* As a special exception, when this file is copied by Bison into a
1398   Bison output file, you may use that output file without restriction.
1399   This special exception was added by the Free Software Foundation
1400   in version 1.24 of Bison.  */
1401
1402#ifndef alloca
1403#ifdef __GNUC__
1404#define alloca __builtin_alloca
1405#else /* not GNU C.  */
1406#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
1407#include <alloca.h>
1408#else /* not sparc */
1409#if defined (MSDOS) && !defined (__TURBOC__)
1410#include <malloc.h>
1411#else /* not MSDOS, or __TURBOC__ */
1412#if defined(_AIX)
1413#include <malloc.h>
1414 #pragma alloca
1415#else /* not MSDOS, __TURBOC__, or _AIX */
1416#ifdef __hpux
1417#ifdef __cplusplus
1418extern "C" {
1419void *alloca (unsigned int);
1420};
1421#else /* not __cplusplus */
1422void *alloca ();
1423#endif /* not __cplusplus */
1424#endif /* __hpux */
1425#endif /* not _AIX */
1426#endif /* not MSDOS, or __TURBOC__ */
1427#endif /* not sparc.  */
1428#endif /* not GNU C.  */
1429#endif /* alloca not defined.  */
1430
1431/* This is the parser code that is written into each bison parser
1432  when the %semantic_parser declaration is not specified in the grammar.
1433  It was written by Richard Stallman by simplifying the hairy parser
1434  used when %semantic_parser is specified.  */
1435
1436/* Note: there must be only one dollar sign in this file.
1437   It is replaced by the list of actions, each action
1438   as one case of the switch.  */
1439
1440#define yyerrok		(yyerrstatus = 0)
1441#define yyclearin	(yychar = YYEMPTY)
1442#define YYEMPTY		-2
1443#define YYEOF		0
1444#define YYACCEPT	return(0)
1445#define YYABORT 	return(1)
1446#define YYERROR		goto yyerrlab1
1447/* Like YYERROR except do call yyerror.
1448   This remains here temporarily to ease the
1449   transition to the new meaning of YYERROR, for GCC.
1450   Once GCC version 2 has supplanted version 1, this can go.  */
1451#define YYFAIL		goto yyerrlab
1452#define YYRECOVERING()  (!!yyerrstatus)
1453#define YYBACKUP(token, value) \
1454do								\
1455  if (yychar == YYEMPTY && yylen == 1)				\
1456    { yychar = (token), yylval = (value);			\
1457      yychar1 = YYTRANSLATE (yychar);				\
1458      YYPOPSTACK;						\
1459      goto yybackup;						\
1460    }								\
1461  else								\
1462    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
1463while (0)
1464
1465#define YYTERROR	1
1466#define YYERRCODE	256
1467
1468#ifndef YYPURE
1469#define YYLEX		yylex()
1470#endif
1471
1472#ifdef YYPURE
1473#ifdef YYLSP_NEEDED
1474#ifdef YYLEX_PARAM
1475#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
1476#else
1477#define YYLEX		yylex(&yylval, &yylloc)
1478#endif
1479#else /* not YYLSP_NEEDED */
1480#ifdef YYLEX_PARAM
1481#define YYLEX		yylex(&yylval, YYLEX_PARAM)
1482#else
1483#define YYLEX		yylex(&yylval)
1484#endif
1485#endif /* not YYLSP_NEEDED */
1486#endif
1487
1488/* If nonreentrant, generate the variables here */
1489
1490#ifndef YYPURE
1491
1492int	yychar;			/*  the lookahead symbol		*/
1493YYSTYPE	yylval;			/*  the semantic value of the		*/
1494				/*  lookahead symbol			*/
1495
1496#ifdef YYLSP_NEEDED
1497YYLTYPE yylloc;			/*  location data for the lookahead	*/
1498				/*  symbol				*/
1499#endif
1500
1501int yynerrs;			/*  number of parse errors so far       */
1502#endif  /* not YYPURE */
1503
1504#if YYDEBUG != 0
1505int yydebug;			/*  nonzero means print parse trace	*/
1506/* Since this is uninitialized, it does not stop multiple parsers
1507   from coexisting.  */
1508#endif
1509
1510/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
1511
1512#ifndef	YYINITDEPTH
1513#define YYINITDEPTH 200
1514#endif
1515
1516/*  YYMAXDEPTH is the maximum size the stacks can grow to
1517    (effective only if the built-in stack extension method is used).  */
1518
1519#if YYMAXDEPTH == 0
1520#undef YYMAXDEPTH
1521#endif
1522
1523#ifndef YYMAXDEPTH
1524#define YYMAXDEPTH 10000
1525#endif
1526
1527/* Prevent warning if -Wstrict-prototypes.  */
1528#ifdef __GNUC__
1529int yyparse (void);
1530#endif
1531
1532#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
1533#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
1534#else				/* not GNU C or C++ */
1535#ifndef __cplusplus
1536
1537/* This is the most reliable way to avoid incompatibilities
1538   in available built-in functions on various systems.  */
1539static void
1540__yy_memcpy (to, from, count)
1541     char *to;
1542     char *from;
1543     int count;
1544{
1545  register char *f = from;
1546  register char *t = to;
1547  register int i = count;
1548
1549  while (i-- > 0)
1550    *t++ = *f++;
1551}
1552
1553#else /* __cplusplus */
1554
1555/* This is the most reliable way to avoid incompatibilities
1556   in available built-in functions on various systems.  */
1557static void
1558__yy_memcpy (char *to, char *from, int count)
1559{
1560  register char *f = from;
1561  register char *t = to;
1562  register int i = count;
1563
1564  while (i-- > 0)
1565    *t++ = *f++;
1566}
1567
1568#endif
1569#endif
1570
1571#line 196 "/usr/cygnus/gnupro-98r2/share/bison.simple"
1572
1573/* The user can define YYPARSE_PARAM as the name of an argument to be passed
1574   into yyparse.  The argument should have type void *.
1575   It should actually point to an object.
1576   Grammar actions can access the variable by casting it
1577   to the proper pointer type.  */
1578
1579#ifdef YYPARSE_PARAM
1580#ifdef __cplusplus
1581#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1582#define YYPARSE_PARAM_DECL
1583#else /* not __cplusplus */
1584#define YYPARSE_PARAM_ARG YYPARSE_PARAM
1585#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1586#endif /* not __cplusplus */
1587#else /* not YYPARSE_PARAM */
1588#define YYPARSE_PARAM_ARG
1589#define YYPARSE_PARAM_DECL
1590#endif /* not YYPARSE_PARAM */
1591
1592int
1593yyparse(YYPARSE_PARAM_ARG)
1594     YYPARSE_PARAM_DECL
1595{
1596  register int yystate;
1597  register int yyn;
1598  register short *yyssp;
1599  register YYSTYPE *yyvsp;
1600  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
1601  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
1602
1603  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
1604  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
1605
1606  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
1607  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
1608
1609#ifdef YYLSP_NEEDED
1610  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
1611  YYLTYPE *yyls = yylsa;
1612  YYLTYPE *yylsp;
1613
1614#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
1615#else
1616#define YYPOPSTACK   (yyvsp--, yyssp--)
1617#endif
1618
1619  int yystacksize = YYINITDEPTH;
1620
1621#ifdef YYPURE
1622  int yychar;
1623  YYSTYPE yylval;
1624  int yynerrs;
1625#ifdef YYLSP_NEEDED
1626  YYLTYPE yylloc;
1627#endif
1628#endif
1629
1630  YYSTYPE yyval;		/*  the variable used to return		*/
1631				/*  semantic values from the action	*/
1632				/*  routines				*/
1633
1634  int yylen;
1635
1636#if YYDEBUG != 0
1637  if (yydebug)
1638    fprintf(stderr, "Starting parse\n");
1639#endif
1640
1641  yystate = 0;
1642  yyerrstatus = 0;
1643  yynerrs = 0;
1644  yychar = YYEMPTY;		/* Cause a token to be read.  */
1645
1646  /* Initialize stack pointers.
1647     Waste one element of value and location stack
1648     so that they stay on the same level as the state stack.
1649     The wasted elements are never initialized.  */
1650
1651  yyssp = yyss - 1;
1652  yyvsp = yyvs;
1653#ifdef YYLSP_NEEDED
1654  yylsp = yyls;
1655#endif
1656
1657/* Push a new state, which is found in  yystate  .  */
1658/* In all cases, when you get here, the value and location stacks
1659   have just been pushed. so pushing a state here evens the stacks.  */
1660yynewstate:
1661
1662  *++yyssp = yystate;
1663
1664  if (yyssp >= yyss + yystacksize - 1)
1665    {
1666      /* Give user a chance to reallocate the stack */
1667      /* Use copies of these so that the &'s don't force the real ones into memory. */
1668      YYSTYPE *yyvs1 = yyvs;
1669      short *yyss1 = yyss;
1670#ifdef YYLSP_NEEDED
1671      YYLTYPE *yyls1 = yyls;
1672#endif
1673
1674      /* Get the current used size of the three stacks, in elements.  */
1675      int size = yyssp - yyss + 1;
1676
1677#ifdef yyoverflow
1678      /* Each stack pointer address is followed by the size of
1679	 the data in use in that stack, in bytes.  */
1680#ifdef YYLSP_NEEDED
1681      /* This used to be a conditional around just the two extra args,
1682	 but that might be undefined if yyoverflow is a macro.  */
1683      yyoverflow("parser stack overflow",
1684		 &yyss1, size * sizeof (*yyssp),
1685		 &yyvs1, size * sizeof (*yyvsp),
1686		 &yyls1, size * sizeof (*yylsp),
1687		 &yystacksize);
1688#else
1689      yyoverflow("parser stack overflow",
1690		 &yyss1, size * sizeof (*yyssp),
1691		 &yyvs1, size * sizeof (*yyvsp),
1692		 &yystacksize);
1693#endif
1694
1695      yyss = yyss1; yyvs = yyvs1;
1696#ifdef YYLSP_NEEDED
1697      yyls = yyls1;
1698#endif
1699#else /* no yyoverflow */
1700      /* Extend the stack our own way.  */
1701      if (yystacksize >= YYMAXDEPTH)
1702	{
1703	  yyerror("parser stack overflow");
1704	  return 2;
1705	}
1706      yystacksize *= 2;
1707      if (yystacksize > YYMAXDEPTH)
1708	yystacksize = YYMAXDEPTH;
1709      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
1710      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
1711      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
1712      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
1713#ifdef YYLSP_NEEDED
1714      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
1715      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
1716#endif
1717#endif /* no yyoverflow */
1718
1719      yyssp = yyss + size - 1;
1720      yyvsp = yyvs + size - 1;
1721#ifdef YYLSP_NEEDED
1722      yylsp = yyls + size - 1;
1723#endif
1724
1725#if YYDEBUG != 0
1726      if (yydebug)
1727	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1728#endif
1729
1730      if (yyssp >= yyss + yystacksize - 1)
1731	YYABORT;
1732    }
1733
1734#if YYDEBUG != 0
1735  if (yydebug)
1736    fprintf(stderr, "Entering state %d\n", yystate);
1737#endif
1738
1739  goto yybackup;
1740 yybackup:
1741
1742/* Do appropriate processing given the current state.  */
1743/* Read a lookahead token if we need one and don't already have one.  */
1744/* yyresume: */
1745
1746  /* First try to decide what to do without reference to lookahead token.  */
1747
1748  yyn = yypact[yystate];
1749  if (yyn == YYFLAG)
1750    goto yydefault;
1751
1752  /* Not known => get a lookahead token if don't already have one.  */
1753
1754  /* yychar is either YYEMPTY or YYEOF
1755     or a valid token in external form.  */
1756
1757  if (yychar == YYEMPTY)
1758    {
1759#if YYDEBUG != 0
1760      if (yydebug)
1761	fprintf(stderr, "Reading a token: ");
1762#endif
1763      yychar = YYLEX;
1764    }
1765
1766  /* Convert token to internal form (in yychar1) for indexing tables with */
1767
1768  if (yychar <= 0)		/* This means end of input. */
1769    {
1770      yychar1 = 0;
1771      yychar = YYEOF;		/* Don't call YYLEX any more */
1772
1773#if YYDEBUG != 0
1774      if (yydebug)
1775	fprintf(stderr, "Now at end of input.\n");
1776#endif
1777    }
1778  else
1779    {
1780      yychar1 = YYTRANSLATE(yychar);
1781
1782#if YYDEBUG != 0
1783      if (yydebug)
1784	{
1785	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
1786	  /* Give the individual parser a way to print the precise meaning
1787	     of a token, for further debugging info.  */
1788#ifdef YYPRINT
1789	  YYPRINT (stderr, yychar, yylval);
1790#endif
1791	  fprintf (stderr, ")\n");
1792	}
1793#endif
1794    }
1795
1796  yyn += yychar1;
1797  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1798    goto yydefault;
1799
1800  yyn = yytable[yyn];
1801
1802  /* yyn is what to do for this token type in this state.
1803     Negative => reduce, -yyn is rule number.
1804     Positive => shift, yyn is new state.
1805       New state is final state => don't bother to shift,
1806       just return success.
1807     0, or most negative number => error.  */
1808
1809  if (yyn < 0)
1810    {
1811      if (yyn == YYFLAG)
1812	goto yyerrlab;
1813      yyn = -yyn;
1814      goto yyreduce;
1815    }
1816  else if (yyn == 0)
1817    goto yyerrlab;
1818
1819  if (yyn == YYFINAL)
1820    YYACCEPT;
1821
1822  /* Shift the lookahead token.  */
1823
1824#if YYDEBUG != 0
1825  if (yydebug)
1826    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1827#endif
1828
1829  /* Discard the token being shifted unless it is eof.  */
1830  if (yychar != YYEOF)
1831    yychar = YYEMPTY;
1832
1833  *++yyvsp = yylval;
1834#ifdef YYLSP_NEEDED
1835  *++yylsp = yylloc;
1836#endif
1837
1838  /* count tokens shifted since error; after three, turn off error status.  */
1839  if (yyerrstatus) yyerrstatus--;
1840
1841  yystate = yyn;
1842  goto yynewstate;
1843
1844/* Do the default action for the current state.  */
1845yydefault:
1846
1847  yyn = yydefact[yystate];
1848  if (yyn == 0)
1849    goto yyerrlab;
1850
1851/* Do a reduction.  yyn is the number of a rule to reduce with.  */
1852yyreduce:
1853  yylen = yyr2[yyn];
1854  if (yylen > 0)
1855    yyval = yyvsp[1-yylen]; /* implement default value of the action */
1856
1857#if YYDEBUG != 0
1858  if (yydebug)
1859    {
1860      int i;
1861
1862      fprintf (stderr, "Reducing via rule %d (line %d), ",
1863	       yyn, yyrline[yyn]);
1864
1865      /* Print the symbols being reduced, and their result.  */
1866      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
1867	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
1868      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1869    }
1870#endif
1871
1872
1873  switch (yyn) {
1874
1875case 10:
1876#line 193 "./parse-scan.y"
1877{
1878		  /* use preset global here. FIXME */
1879		  yyval.node = xstrdup ("int");
1880		;
1881    break;}
1882case 11:
1883#line 198 "./parse-scan.y"
1884{
1885		  /* use preset global here. FIXME */
1886		  yyval.node = xstrdup ("double");
1887		;
1888    break;}
1889case 12:
1890#line 203 "./parse-scan.y"
1891{
1892		  /* use preset global here. FIXME */
1893		  yyval.node = xstrdup ("boolean");
1894		;
1895    break;}
1896case 19:
1897#line 229 "./parse-scan.y"
1898{
1899		  char *n = xmalloc (strlen (yyvsp[-2].node)+2);
1900		  n [0] = '[';
1901		  strcpy (n+1, yyvsp[-2].node);
1902		  yyval.node = n;
1903		;
1904    break;}
1905case 20:
1906#line 236 "./parse-scan.y"
1907{
1908		  char *n = xmalloc (strlen (yyvsp[-2].node)+2);
1909		  n [0] = '[';
1910		  strcpy (n+1, yyvsp[-2].node);
1911		  yyval.node = n;
1912		;
1913    break;}
1914case 24:
1915#line 256 "./parse-scan.y"
1916{
1917		  char *n = xmalloc (strlen (yyvsp[-2].node)+strlen (yyvsp[0].node)+2);
1918		  sprintf (n, "%s.%s", yyvsp[-2].node, yyvsp[0].node);
1919		  yyval.node = n;
1920		;
1921    break;}
1922case 38:
1923#line 290 "./parse-scan.y"
1924{ package_name = yyvsp[-1].node; ;
1925    break;}
1926case 46:
1927#line 317 "./parse-scan.y"
1928{
1929		  if (yyvsp[0].value == PUBLIC_TK)
1930		    modifier_value++;
1931                  if (yyvsp[0].value == STATIC_TK)
1932                    modifier_value++;
1933	          USE_ABSORBER;
1934		;
1935    break;}
1936case 47:
1937#line 325 "./parse-scan.y"
1938{
1939		  if (yyvsp[0].value == PUBLIC_TK)
1940		    modifier_value++;
1941                  if (yyvsp[0].value == STATIC_TK)
1942                    modifier_value++;
1943		  USE_ABSORBER;
1944		;
1945    break;}
1946case 48:
1947#line 337 "./parse-scan.y"
1948{
1949		  report_class_declaration(yyvsp[-2].node);
1950		  modifier_value = 0;
1951                ;
1952    break;}
1953case 50:
1954#line 343 "./parse-scan.y"
1955{ report_class_declaration(yyvsp[-2].node); ;
1956    break;}
1957case 56:
1958#line 357 "./parse-scan.y"
1959{ USE_ABSORBER; ;
1960    break;}
1961case 57:
1962#line 359 "./parse-scan.y"
1963{ USE_ABSORBER; ;
1964    break;}
1965case 70:
1966#line 389 "./parse-scan.y"
1967{ USE_ABSORBER; ;
1968    break;}
1969case 71:
1970#line 391 "./parse-scan.y"
1971{ modifier_value = 0; ;
1972    break;}
1973case 76:
1974#line 407 "./parse-scan.y"
1975{ bracket_count = 0; USE_ABSORBER; ;
1976    break;}
1977case 77:
1978#line 409 "./parse-scan.y"
1979{ ++bracket_count; ;
1980    break;}
1981case 81:
1982#line 424 "./parse-scan.y"
1983{ USE_ABSORBER; ;
1984    break;}
1985case 83:
1986#line 427 "./parse-scan.y"
1987{ modifier_value = 0; ;
1988    break;}
1989case 84:
1990#line 429 "./parse-scan.y"
1991{
1992                  report_main_declaration (yyvsp[-1].declarator);
1993		  modifier_value = 0;
1994		;
1995    break;}
1996case 85:
1997#line 437 "./parse-scan.y"
1998{
1999		  struct method_declarator *d;
2000		  NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL);
2001		  yyval.declarator = d;
2002		;
2003    break;}
2004case 86:
2005#line 443 "./parse-scan.y"
2006{
2007		  struct method_declarator *d;
2008		  NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node);
2009		  yyval.declarator = d;
2010		;
2011    break;}
2012case 89:
2013#line 454 "./parse-scan.y"
2014{
2015		  char *n = xmalloc (strlen (yyvsp[-2].node)+strlen(yyvsp[0].node)+2);
2016		  sprintf (n, "%s,%s", yyvsp[-2].node, yyvsp[0].node);
2017		  yyval.node = n;
2018		;
2019    break;}
2020case 90:
2021#line 463 "./parse-scan.y"
2022{
2023		  USE_ABSORBER;
2024		  if (bracket_count)
2025		    {
2026		      int i;
2027		      char *n = xmalloc (bracket_count + 1 + strlen (yyval.node));
2028		      for (i = 0; i < bracket_count; ++i)
2029			n[i] = '[';
2030		      strcpy (n + bracket_count, yyval.node);
2031		      yyval.node = n;
2032		    }
2033		  else
2034		    yyval.node = yyvsp[-1].node;
2035		;
2036    break;}
2037case 91:
2038#line 478 "./parse-scan.y"
2039{
2040		  if (bracket_count)
2041		    {
2042		      int i;
2043		      char *n = xmalloc (bracket_count + 1 + strlen (yyval.node));
2044		      for (i = 0; i < bracket_count; ++i)
2045			n[i] = '[';
2046		      strcpy (n + bracket_count, yyval.node);
2047		      yyval.node = n;
2048		    }
2049		  else
2050		    yyval.node = yyvsp[-1].node;
2051		;
2052    break;}
2053case 94:
2054#line 499 "./parse-scan.y"
2055{ USE_ABSORBER; ;
2056    break;}
2057case 95:
2058#line 501 "./parse-scan.y"
2059{ USE_ABSORBER; ;
2060    break;}
2061case 101:
2062#line 518 "./parse-scan.y"
2063{ USE_ABSORBER; ;
2064    break;}
2065case 103:
2066#line 529 "./parse-scan.y"
2067{ modifier_value = 0; ;
2068    break;}
2069case 105:
2070#line 534 "./parse-scan.y"
2071{ modifier_value = 0; ;
2072    break;}
2073case 106:
2074#line 541 "./parse-scan.y"
2075{ USE_ABSORBER; ;
2076    break;}
2077case 107:
2078#line 543 "./parse-scan.y"
2079{ USE_ABSORBER; ;
2080    break;}
2081case 114:
2082#line 560 "./parse-scan.y"
2083{ USE_ABSORBER; ;
2084    break;}
2085case 115:
2086#line 562 "./parse-scan.y"
2087{ USE_ABSORBER; ;
2088    break;}
2089case 118:
2090#line 574 "./parse-scan.y"
2091{ report_class_declaration (yyvsp[-1].node); modifier_value = 0; ;
2092    break;}
2093case 119:
2094#line 576 "./parse-scan.y"
2095{ report_class_declaration (yyvsp[-1].node); modifier_value = 0; ;
2096    break;}
2097case 120:
2098#line 578 "./parse-scan.y"
2099{ report_class_declaration (yyvsp[-2].node); modifier_value = 0; ;
2100    break;}
2101case 121:
2102#line 580 "./parse-scan.y"
2103{ report_class_declaration (yyvsp[-2].node); modifier_value = 0; ;
2104    break;}
2105case 148:
2106#line 649 "./parse-scan.y"
2107{ USE_ABSORBER; ;
2108    break;}
2109case 149:
2110#line 651 "./parse-scan.y"
2111{ modifier_value = 0; ;
2112    break;}
2113case 173:
2114#line 691 "./parse-scan.y"
2115{ USE_ABSORBER; ;
2116    break;}
2117case 226:
2118#line 838 "./parse-scan.y"
2119{ USE_ABSORBER; ;
2120    break;}
2121case 243:
2122#line 878 "./parse-scan.y"
2123{ USE_ABSORBER; ;
2124    break;}
2125case 244:
2126#line 880 "./parse-scan.y"
2127{ USE_ABSORBER; ;
2128    break;}
2129case 246:
2130#line 886 "./parse-scan.y"
2131{ USE_ABSORBER; ;
2132    break;}
2133case 255:
2134#line 908 "./parse-scan.y"
2135{ USE_ABSORBER; ;
2136    break;}
2137case 273:
2138#line 950 "./parse-scan.y"
2139{ USE_ABSORBER; ;
2140    break;}
2141case 274:
2142#line 952 "./parse-scan.y"
2143{ USE_ABSORBER; ;
2144    break;}
2145case 279:
2146#line 961 "./parse-scan.y"
2147{ USE_ABSORBER; ;
2148    break;}
2149case 282:
2150#line 968 "./parse-scan.y"
2151{ USE_ABSORBER; ;
2152    break;}
2153case 337:
2154#line 1087 "./parse-scan.y"
2155{ USE_ABSORBER; ;
2156    break;}
2157}
2158   /* the action file gets copied in in place of this dollarsign */
2159#line 498 "/usr/cygnus/gnupro-98r2/share/bison.simple"
2160
2161  yyvsp -= yylen;
2162  yyssp -= yylen;
2163#ifdef YYLSP_NEEDED
2164  yylsp -= yylen;
2165#endif
2166
2167#if YYDEBUG != 0
2168  if (yydebug)
2169    {
2170      short *ssp1 = yyss - 1;
2171      fprintf (stderr, "state stack now");
2172      while (ssp1 != yyssp)
2173	fprintf (stderr, " %d", *++ssp1);
2174      fprintf (stderr, "\n");
2175    }
2176#endif
2177
2178  *++yyvsp = yyval;
2179
2180#ifdef YYLSP_NEEDED
2181  yylsp++;
2182  if (yylen == 0)
2183    {
2184      yylsp->first_line = yylloc.first_line;
2185      yylsp->first_column = yylloc.first_column;
2186      yylsp->last_line = (yylsp-1)->last_line;
2187      yylsp->last_column = (yylsp-1)->last_column;
2188      yylsp->text = 0;
2189    }
2190  else
2191    {
2192      yylsp->last_line = (yylsp+yylen-1)->last_line;
2193      yylsp->last_column = (yylsp+yylen-1)->last_column;
2194    }
2195#endif
2196
2197  /* Now "shift" the result of the reduction.
2198     Determine what state that goes to,
2199     based on the state we popped back to
2200     and the rule number reduced by.  */
2201
2202  yyn = yyr1[yyn];
2203
2204  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
2205  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2206    yystate = yytable[yystate];
2207  else
2208    yystate = yydefgoto[yyn - YYNTBASE];
2209
2210  goto yynewstate;
2211
2212yyerrlab:   /* here on detecting error */
2213
2214  if (! yyerrstatus)
2215    /* If not already recovering from an error, report this error.  */
2216    {
2217      ++yynerrs;
2218
2219#ifdef YYERROR_VERBOSE
2220      yyn = yypact[yystate];
2221
2222      if (yyn > YYFLAG && yyn < YYLAST)
2223	{
2224	  int size = 0;
2225	  char *msg;
2226	  int x, count;
2227
2228	  count = 0;
2229	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
2230	  for (x = (yyn < 0 ? -yyn : 0);
2231	       x < (sizeof(yytname) / sizeof(char *)); x++)
2232	    if (yycheck[x + yyn] == x)
2233	      size += strlen(yytname[x]) + 15, count++;
2234	  msg = (char *) malloc(size + 15);
2235	  if (msg != 0)
2236	    {
2237	      strcpy(msg, "parse error");
2238
2239	      if (count < 5)
2240		{
2241		  count = 0;
2242		  for (x = (yyn < 0 ? -yyn : 0);
2243		       x < (sizeof(yytname) / sizeof(char *)); x++)
2244		    if (yycheck[x + yyn] == x)
2245		      {
2246			strcat(msg, count == 0 ? ", expecting `" : " or `");
2247			strcat(msg, yytname[x]);
2248			strcat(msg, "'");
2249			count++;
2250		      }
2251		}
2252	      yyerror(msg);
2253	      free(msg);
2254	    }
2255	  else
2256	    yyerror ("parse error; also virtual memory exceeded");
2257	}
2258      else
2259#endif /* YYERROR_VERBOSE */
2260	yyerror("parse error");
2261    }
2262
2263  goto yyerrlab1;
2264yyerrlab1:   /* here on error raised explicitly by an action */
2265
2266  if (yyerrstatus == 3)
2267    {
2268      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
2269
2270      /* return failure if at end of input */
2271      if (yychar == YYEOF)
2272	YYABORT;
2273
2274#if YYDEBUG != 0
2275      if (yydebug)
2276	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
2277#endif
2278
2279      yychar = YYEMPTY;
2280    }
2281
2282  /* Else will try to reuse lookahead token
2283     after shifting the error token.  */
2284
2285  yyerrstatus = 3;		/* Each real token shifted decrements this */
2286
2287  goto yyerrhandle;
2288
2289yyerrdefault:  /* current state does not do anything special for the error token. */
2290
2291#if 0
2292  /* This is wrong; only states that explicitly want error tokens
2293     should shift them.  */
2294  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
2295  if (yyn) goto yydefault;
2296#endif
2297
2298yyerrpop:   /* pop the current state because it cannot handle the error token */
2299
2300  if (yyssp == yyss) YYABORT;
2301  yyvsp--;
2302  yystate = *--yyssp;
2303#ifdef YYLSP_NEEDED
2304  yylsp--;
2305#endif
2306
2307#if YYDEBUG != 0
2308  if (yydebug)
2309    {
2310      short *ssp1 = yyss - 1;
2311      fprintf (stderr, "Error: state stack now");
2312      while (ssp1 != yyssp)
2313	fprintf (stderr, " %d", *++ssp1);
2314      fprintf (stderr, "\n");
2315    }
2316#endif
2317
2318yyerrhandle:
2319
2320  yyn = yypact[yystate];
2321  if (yyn == YYFLAG)
2322    goto yyerrdefault;
2323
2324  yyn += YYTERROR;
2325  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
2326    goto yyerrdefault;
2327
2328  yyn = yytable[yyn];
2329  if (yyn < 0)
2330    {
2331      if (yyn == YYFLAG)
2332	goto yyerrpop;
2333      yyn = -yyn;
2334      goto yyreduce;
2335    }
2336  else if (yyn == 0)
2337    goto yyerrpop;
2338
2339  if (yyn == YYFINAL)
2340    YYACCEPT;
2341
2342#if YYDEBUG != 0
2343  if (yydebug)
2344    fprintf(stderr, "Shifting error token, ");
2345#endif
2346
2347  *++yyvsp = yylval;
2348#ifdef YYLSP_NEEDED
2349  *++yylsp = yylloc;
2350#endif
2351
2352  yystate = yyn;
2353  goto yynewstate;
2354}
2355#line 1105 "./parse-scan.y"
2356
2357
2358#include "lex.c"
2359
2360/* Create a new parser context */
2361
2362void
2363java_push_parser_context ()
2364{
2365  struct parser_ctxt *new =
2366    (struct parser_ctxt *)xmalloc(sizeof (struct parser_ctxt));
2367
2368  bzero ((PTR) new, sizeof (struct parser_ctxt));
2369  new->next = ctxp;
2370  ctxp = new;
2371}
2372
2373/* Actions defined here */
2374
2375static void
2376report_class_declaration (name)
2377     char * name;
2378{
2379  extern int flag_dump_class, flag_list_filename;
2380
2381  if (flag_dump_class)
2382    {
2383      if (!previous_output)
2384	{
2385	  if (flag_list_filename)
2386	    fprintf (out, "%s: ", input_filename);
2387	  previous_output = 1;
2388	}
2389
2390      if (package_name)
2391	fprintf (out, "%s.%s ", package_name, name);
2392      else
2393	fprintf (out, "%s ", name);
2394    }
2395
2396  current_class = name;
2397}
2398
2399static void
2400report_main_declaration (declarator)
2401     struct method_declarator *declarator;
2402{
2403  extern int flag_find_main;
2404
2405  if (flag_find_main
2406      && modifier_value == 2
2407      && !strcmp (declarator->method_name, "main")
2408      && declarator->args
2409      && declarator->args [0] == '['
2410      && (! strcmp (declarator->args+1, "String")
2411	  || ! strcmp (declarator->args + 1, "java.lang.String"))
2412      && current_class)
2413    {
2414      if (!previous_output)
2415	{
2416	  if (package_name)
2417	    fprintf (out, "%s.%s ", package_name, current_class);
2418	  else
2419	    fprintf (out, current_class);
2420	  previous_output = 1;
2421	}
2422    }
2423}
2424
2425/* Reset global status used by the report functions.  */
2426
2427void reset_report ()
2428{
2429  previous_output = 0;
2430  current_class = package_name = NULL;
2431}
2432
2433void
2434yyerror (msg)
2435     char *msg ATTRIBUTE_UNUSED;
2436{
2437}
2438
2439char *
2440xstrdup (s)
2441     const char *s;
2442{
2443  char *ret;
2444
2445  ret = xmalloc (strlen (s) + 1);
2446  strcpy (ret, s);
2447  return ret;
2448}
2449