OSDN Git Service

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