OSDN Git Service

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