xref: /openbsd/gnu/usr.bin/gcc/gcc/java/parse-scan.c (revision a1d0cc42)
1 /* A Bison parser, made from /home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y, by GNU bison 1.75.  */
2 
3 /* Skeleton parser for Yacc-like parsing with Bison,
4    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5 
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2, or (at your option)
9    any later version.
10 
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20 
21 /* As a special exception, when this file is copied by Bison into a
22    Bison output file, you may use that output file without restriction.
23    This special exception was added by the Free Software Foundation
24    in version 1.24 of Bison.  */
25 
26 /* Written by Richard Stallman by simplifying the original so called
27    ``semantic'' parser.  */
28 
29 /* All symbols defined below should begin with yy or YY, to avoid
30    infringing on user name space.  This should be done even for local
31    variables, as they might otherwise be expanded by user macros.
32    There are some unavoidable exceptions within include files to
33    define necessary library symbols; they are noted "INFRINGES ON
34    USER NAME SPACE" below.  */
35 
36 /* Identify Bison output.  */
37 #define YYBISON	1
38 
39 /* Pure parsers.  */
40 #define YYPURE	1
41 
42 /* Using locations.  */
43 #define YYLSP_NEEDED 0
44 
45 
46 
47 /* Tokens.  */
48 #ifndef YYTOKENTYPE
49 # define YYTOKENTYPE
50    /* Put the tokens into the symbol table, so that GDB and other debuggers
51       know about them.  */
52    enum yytokentype {
53      PLUS_TK = 258,
54      MINUS_TK = 259,
55      MULT_TK = 260,
56      DIV_TK = 261,
57      REM_TK = 262,
58      LS_TK = 263,
59      SRS_TK = 264,
60      ZRS_TK = 265,
61      AND_TK = 266,
62      XOR_TK = 267,
63      OR_TK = 268,
64      BOOL_AND_TK = 269,
65      BOOL_OR_TK = 270,
66      EQ_TK = 271,
67      NEQ_TK = 272,
68      GT_TK = 273,
69      GTE_TK = 274,
70      LT_TK = 275,
71      LTE_TK = 276,
72      PLUS_ASSIGN_TK = 277,
73      MINUS_ASSIGN_TK = 278,
74      MULT_ASSIGN_TK = 279,
75      DIV_ASSIGN_TK = 280,
76      REM_ASSIGN_TK = 281,
77      LS_ASSIGN_TK = 282,
78      SRS_ASSIGN_TK = 283,
79      ZRS_ASSIGN_TK = 284,
80      AND_ASSIGN_TK = 285,
81      XOR_ASSIGN_TK = 286,
82      OR_ASSIGN_TK = 287,
83      PUBLIC_TK = 288,
84      PRIVATE_TK = 289,
85      PROTECTED_TK = 290,
86      STATIC_TK = 291,
87      FINAL_TK = 292,
88      SYNCHRONIZED_TK = 293,
89      VOLATILE_TK = 294,
90      TRANSIENT_TK = 295,
91      NATIVE_TK = 296,
92      PAD_TK = 297,
93      ABSTRACT_TK = 298,
94      MODIFIER_TK = 299,
95      STRICT_TK = 300,
96      DECR_TK = 301,
97      INCR_TK = 302,
98      DEFAULT_TK = 303,
99      IF_TK = 304,
100      THROW_TK = 305,
101      BOOLEAN_TK = 306,
102      DO_TK = 307,
103      IMPLEMENTS_TK = 308,
104      THROWS_TK = 309,
105      BREAK_TK = 310,
106      IMPORT_TK = 311,
107      ELSE_TK = 312,
108      INSTANCEOF_TK = 313,
109      RETURN_TK = 314,
110      VOID_TK = 315,
111      CATCH_TK = 316,
112      INTERFACE_TK = 317,
113      CASE_TK = 318,
114      EXTENDS_TK = 319,
115      FINALLY_TK = 320,
116      SUPER_TK = 321,
117      WHILE_TK = 322,
118      CLASS_TK = 323,
119      SWITCH_TK = 324,
120      CONST_TK = 325,
121      TRY_TK = 326,
122      FOR_TK = 327,
123      NEW_TK = 328,
124      CONTINUE_TK = 329,
125      GOTO_TK = 330,
126      PACKAGE_TK = 331,
127      THIS_TK = 332,
128      ASSERT_TK = 333,
129      BYTE_TK = 334,
130      SHORT_TK = 335,
131      INT_TK = 336,
132      LONG_TK = 337,
133      CHAR_TK = 338,
134      INTEGRAL_TK = 339,
135      FLOAT_TK = 340,
136      DOUBLE_TK = 341,
137      FP_TK = 342,
138      ID_TK = 343,
139      REL_QM_TK = 344,
140      REL_CL_TK = 345,
141      NOT_TK = 346,
142      NEG_TK = 347,
143      ASSIGN_ANY_TK = 348,
144      ASSIGN_TK = 349,
145      OP_TK = 350,
146      CP_TK = 351,
147      OCB_TK = 352,
148      CCB_TK = 353,
149      OSB_TK = 354,
150      CSB_TK = 355,
151      SC_TK = 356,
152      C_TK = 357,
153      DOT_TK = 358,
154      STRING_LIT_TK = 359,
155      CHAR_LIT_TK = 360,
156      INT_LIT_TK = 361,
157      FP_LIT_TK = 362,
158      TRUE_TK = 363,
159      FALSE_TK = 364,
160      BOOL_LIT_TK = 365,
161      NULL_TK = 366
162    };
163 #endif
164 #define PLUS_TK 258
165 #define MINUS_TK 259
166 #define MULT_TK 260
167 #define DIV_TK 261
168 #define REM_TK 262
169 #define LS_TK 263
170 #define SRS_TK 264
171 #define ZRS_TK 265
172 #define AND_TK 266
173 #define XOR_TK 267
174 #define OR_TK 268
175 #define BOOL_AND_TK 269
176 #define BOOL_OR_TK 270
177 #define EQ_TK 271
178 #define NEQ_TK 272
179 #define GT_TK 273
180 #define GTE_TK 274
181 #define LT_TK 275
182 #define LTE_TK 276
183 #define PLUS_ASSIGN_TK 277
184 #define MINUS_ASSIGN_TK 278
185 #define MULT_ASSIGN_TK 279
186 #define DIV_ASSIGN_TK 280
187 #define REM_ASSIGN_TK 281
188 #define LS_ASSIGN_TK 282
189 #define SRS_ASSIGN_TK 283
190 #define ZRS_ASSIGN_TK 284
191 #define AND_ASSIGN_TK 285
192 #define XOR_ASSIGN_TK 286
193 #define OR_ASSIGN_TK 287
194 #define PUBLIC_TK 288
195 #define PRIVATE_TK 289
196 #define PROTECTED_TK 290
197 #define STATIC_TK 291
198 #define FINAL_TK 292
199 #define SYNCHRONIZED_TK 293
200 #define VOLATILE_TK 294
201 #define TRANSIENT_TK 295
202 #define NATIVE_TK 296
203 #define PAD_TK 297
204 #define ABSTRACT_TK 298
205 #define MODIFIER_TK 299
206 #define STRICT_TK 300
207 #define DECR_TK 301
208 #define INCR_TK 302
209 #define DEFAULT_TK 303
210 #define IF_TK 304
211 #define THROW_TK 305
212 #define BOOLEAN_TK 306
213 #define DO_TK 307
214 #define IMPLEMENTS_TK 308
215 #define THROWS_TK 309
216 #define BREAK_TK 310
217 #define IMPORT_TK 311
218 #define ELSE_TK 312
219 #define INSTANCEOF_TK 313
220 #define RETURN_TK 314
221 #define VOID_TK 315
222 #define CATCH_TK 316
223 #define INTERFACE_TK 317
224 #define CASE_TK 318
225 #define EXTENDS_TK 319
226 #define FINALLY_TK 320
227 #define SUPER_TK 321
228 #define WHILE_TK 322
229 #define CLASS_TK 323
230 #define SWITCH_TK 324
231 #define CONST_TK 325
232 #define TRY_TK 326
233 #define FOR_TK 327
234 #define NEW_TK 328
235 #define CONTINUE_TK 329
236 #define GOTO_TK 330
237 #define PACKAGE_TK 331
238 #define THIS_TK 332
239 #define ASSERT_TK 333
240 #define BYTE_TK 334
241 #define SHORT_TK 335
242 #define INT_TK 336
243 #define LONG_TK 337
244 #define CHAR_TK 338
245 #define INTEGRAL_TK 339
246 #define FLOAT_TK 340
247 #define DOUBLE_TK 341
248 #define FP_TK 342
249 #define ID_TK 343
250 #define REL_QM_TK 344
251 #define REL_CL_TK 345
252 #define NOT_TK 346
253 #define NEG_TK 347
254 #define ASSIGN_ANY_TK 348
255 #define ASSIGN_TK 349
256 #define OP_TK 350
257 #define CP_TK 351
258 #define OCB_TK 352
259 #define CCB_TK 353
260 #define OSB_TK 354
261 #define CSB_TK 355
262 #define SC_TK 356
263 #define C_TK 357
264 #define DOT_TK 358
265 #define STRING_LIT_TK 359
266 #define CHAR_LIT_TK 360
267 #define INT_LIT_TK 361
268 #define FP_LIT_TK 362
269 #define TRUE_TK 363
270 #define FALSE_TK 364
271 #define BOOL_LIT_TK 365
272 #define NULL_TK 366
273 
274 
275 
276 
277 /* Copy the first part of user declarations.  */
278 #line 5 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
279 
280 #define JC1_LITE
281 
282 #include "config.h"
283 #include "system.h"
284 
285 #include "obstack.h"
286 #include "toplev.h"
287 
288 #define obstack_chunk_alloc xmalloc
289 #define obstack_chunk_free free
290 
291 extern char *input_filename;
292 extern FILE *finput, *out;
293 
294 /* Obstack for the lexer.  */
295 struct obstack temporary_obstack;
296 
297 /* The current parser context.  */
298 static struct parser_ctxt *ctxp;
299 
300 /* Error and warning counts, current line number, because they're used
301    elsewhere  */
302 int java_error_count;
303 int java_warning_count;
304 int lineno;
305 
306 /* Tweak default rules when necessary.  */
307 static int absorber;
308 #define USE_ABSORBER absorber = 0
309 
310 /* Keep track of the current package name.  */
311 static const char *package_name;
312 
313 /* Keep track of whether things have be listed before.  */
314 static int previous_output;
315 
316 /* Record modifier uses  */
317 static int modifier_value;
318 
319 /* Record (almost) cyclomatic complexity.  */
320 static int complexity;
321 
322 /* Keeps track of number of bracket pairs after a variable declarator
323    id.  */
324 static int bracket_count;
325 
326 /* Numbers anonymous classes */
327 static int anonymous_count;
328 
329 /* This is used to record the current class context.  */
330 struct class_context
331 {
332   char *name;
333   struct class_context *next;
334 };
335 
336 /* The global class context.  */
337 static struct class_context *current_class_context;
338 
339 /* A special constant used to represent an anonymous context.  */
340 static const char *anonymous_context = "ANONYMOUS";
341 
342 /* Count of method depth.  */
343 static int method_depth;
344 
345 /* Record a method declaration  */
346 struct method_declarator {
347   const char *method_name;
348   const char *args;
349 };
350 #define NEW_METHOD_DECLARATOR(D,N,A)					     \
351 {									     \
352   (D) = 								     \
353     (struct method_declarator *)xmalloc (sizeof (struct method_declarator)); \
354   (D)->method_name = (N);						     \
355   (D)->args = (A);							     \
356 }
357 
358 /* Two actions for this grammar */
359 static int make_class_name_recursive PARAMS ((struct obstack *stack,
360 					      struct class_context *ctx));
361 static char *get_class_name PARAMS ((void));
362 static void report_class_declaration PARAMS ((const char *));
363 static void report_main_declaration PARAMS ((struct method_declarator *));
364 static void push_class_context PARAMS ((const char *));
365 static void pop_class_context PARAMS ((void));
366 
367 void report PARAMS ((void));
368 
369 #include "lex.h"
370 #include "parse.h"
371 
372 
373 /* Enabling traces.  */
374 #ifndef YYDEBUG
375 # define YYDEBUG 1
376 #endif
377 
378 /* Enabling verbose error messages.  */
379 #ifdef YYERROR_VERBOSE
380 # undef YYERROR_VERBOSE
381 # define YYERROR_VERBOSE 1
382 #else
383 # define YYERROR_VERBOSE 0
384 #endif
385 
386 #ifndef YYSTYPE
387 #line 99 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
388 typedef union {
389   char *node;
390   struct method_declarator *declarator;
391   int value;			/* For modifiers */
392 } yystype;
393 /* Line 193 of /usr/share/bison/yacc.c.  */
394 #line 395 "ps14046.c"
395 # define YYSTYPE yystype
396 # define YYSTYPE_IS_TRIVIAL 1
397 #endif
398 
399 #ifndef YYLTYPE
400 typedef struct yyltype
401 {
402   int first_line;
403   int first_column;
404   int last_line;
405   int last_column;
406 } yyltype;
407 # define YYLTYPE yyltype
408 # define YYLTYPE_IS_TRIVIAL 1
409 #endif
410 
411 /* Copy the second part of user declarations.  */
412 #line 105 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
413 
414 extern int flag_assert;
415 
416 #include "lex.c"
417 
418 
419 /* Line 213 of /usr/share/bison/yacc.c.  */
420 #line 421 "ps14046.c"
421 
422 #if ! defined (yyoverflow) || YYERROR_VERBOSE
423 
424 /* The parser invokes alloca or malloc; define the necessary symbols.  */
425 
426 # if YYSTACK_USE_ALLOCA
427 #  define YYSTACK_ALLOC alloca
428 # else
429 #  ifndef YYSTACK_USE_ALLOCA
430 #   if defined (alloca) || defined (_ALLOCA_H)
431 #    define YYSTACK_ALLOC alloca
432 #   else
433 #    ifdef __GNUC__
434 #     define YYSTACK_ALLOC __builtin_alloca
435 #    endif
436 #   endif
437 #  endif
438 # endif
439 
440 # ifdef YYSTACK_ALLOC
441    /* Pacify GCC's `empty if-body' warning. */
442 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
443 # else
444 #  if defined (__STDC__) || defined (__cplusplus)
445 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
446 #   define YYSIZE_T size_t
447 #  endif
448 #  define YYSTACK_ALLOC malloc
449 #  define YYSTACK_FREE free
450 # endif
451 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
452 
453 
454 #if (! defined (yyoverflow) \
455      && (! defined (__cplusplus) \
456 	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
457 
458 /* A type that is properly aligned for any stack member.  */
459 union yyalloc
460 {
461   short yyss;
462   YYSTYPE yyvs;
463   };
464 
465 /* The size of the maximum gap between one aligned stack and the next.  */
466 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
467 
468 /* The size of an array large to enough to hold all stacks, each with
469    N elements.  */
470 # define YYSTACK_BYTES(N) \
471      ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
472       + YYSTACK_GAP_MAX)
473 
474 /* Copy COUNT objects from FROM to TO.  The source and destination do
475    not overlap.  */
476 # ifndef YYCOPY
477 #  if 1 < __GNUC__
478 #   define YYCOPY(To, From, Count) \
479       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
480 #  else
481 #   define YYCOPY(To, From, Count)		\
482       do					\
483 	{					\
484 	  register YYSIZE_T yyi;		\
485 	  for (yyi = 0; yyi < (Count); yyi++)	\
486 	    (To)[yyi] = (From)[yyi];	\
487 	}					\
488       while (0)
489 #  endif
490 # endif
491 
492 /* Relocate STACK from its old location to the new one.  The
493    local variables YYSIZE and YYSTACKSIZE give the old and new number of
494    elements in the stack, and YYPTR gives the new location of the
495    stack.  Advance YYPTR to a properly aligned location for the next
496    stack.  */
497 # define YYSTACK_RELOCATE(Stack)					\
498     do									\
499       {									\
500 	YYSIZE_T yynewbytes;						\
501 	YYCOPY (&yyptr->Stack, Stack, yysize);				\
502 	Stack = &yyptr->Stack;						\
503 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;	\
504 	yyptr += yynewbytes / sizeof (*yyptr);				\
505       }									\
506     while (0)
507 
508 #endif
509 
510 #if defined (__STDC__) || defined (__cplusplus)
511    typedef signed char yysigned_char;
512 #else
513    typedef short yysigned_char;
514 #endif
515 
516 /* YYFINAL -- State number of the termination state. */
517 #define YYFINAL  28
518 #define YYLAST   3334
519 
520 /* YYNTOKENS -- Number of terminals. */
521 #define YYNTOKENS  112
522 /* YYNNTS -- Number of nonterminals. */
523 #define YYNNTS  154
524 /* YYNRULES -- Number of rules. */
525 #define YYNRULES  357
526 /* YYNRULES -- Number of states. */
527 #define YYNSTATES  616
528 
529 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
530 #define YYUNDEFTOK  2
531 #define YYMAXUTOK   366
532 
533 #define YYTRANSLATE(X) \
534   ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
535 
536 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
537 static const unsigned char yytranslate[] =
538 {
539        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
541        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
542        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
545        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
546        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
547        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
548        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
549        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
550        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
551        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
552        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
553        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
554        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
555        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
556        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
557        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
558        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
559        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
560        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
561        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
562        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
563        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
564        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
565        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
566       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
567       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
568       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
569       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
570       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
571       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
572       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
573       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
574       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
575      105,   106,   107,   108,   109,   110,   111
576 };
577 
578 #if YYDEBUG
579 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
580    YYRHS.  */
581 static const unsigned short yyprhs[] =
582 {
583        0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
584       19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
585       40,    43,    45,    47,    49,    53,    55,    56,    58,    60,
586       62,    65,    68,    71,    75,    77,    80,    82,    85,    89,
587       91,    93,    97,   103,   105,   107,   109,   111,   114,   115,
588      123,   124,   131,   132,   135,   136,   139,   141,   145,   148,
589      152,   154,   157,   159,   161,   163,   165,   167,   169,   171,
590      173,   175,   179,   184,   186,   190,   192,   196,   198,   202,
591      204,   206,   207,   211,   215,   219,   224,   229,   233,   238,
592      242,   244,   248,   251,   255,   256,   259,   261,   265,   267,
593      269,   272,   274,   278,   283,   288,   294,   298,   303,   306,
594      310,   314,   319,   324,   330,   338,   345,   347,   349,   350,
595      355,   356,   362,   363,   369,   370,   377,   380,   384,   387,
596      391,   393,   396,   398,   400,   402,   404,   406,   409,   412,
597      416,   420,   425,   427,   431,   434,   438,   440,   443,   445,
598      447,   449,   452,   455,   459,   461,   463,   465,   467,   469,
599      471,   473,   475,   477,   479,   481,   483,   485,   487,   489,
600      491,   493,   495,   497,   499,   501,   503,   505,   507,   510,
601      513,   516,   519,   521,   523,   525,   527,   529,   531,   533,
602      539,   547,   555,   561,   564,   568,   572,   577,   579,   582,
603      585,   587,   590,   594,   597,   602,   605,   608,   610,   618,
604      626,   633,   641,   648,   651,   654,   655,   657,   659,   660,
605      662,   664,   668,   671,   675,   678,   682,   685,   689,   693,
606      699,   703,   706,   710,   716,   722,   724,   728,   732,   737,
607      739,   742,   748,   751,   753,   755,   757,   759,   763,   765,
608      767,   769,   771,   773,   777,   781,   785,   789,   793,   799,
609      804,   806,   811,   817,   823,   830,   831,   838,   839,   847,
610      851,   855,   857,   861,   865,   869,   873,   878,   883,   888,
611      893,   895,   898,   902,   905,   909,   913,   917,   921,   926,
612      932,   939,   945,   952,   957,   962,   964,   966,   968,   970,
613      973,   976,   978,   980,   983,   986,   988,   991,   994,   996,
614      999,  1002,  1004,  1010,  1015,  1020,  1026,  1028,  1032,  1036,
615     1040,  1042,  1046,  1050,  1052,  1056,  1060,  1064,  1066,  1070,
616     1074,  1078,  1082,  1086,  1088,  1092,  1096,  1098,  1102,  1104,
617     1108,  1110,  1114,  1116,  1120,  1122,  1126,  1128,  1134,  1136,
618     1138,  1142,  1144,  1146,  1148,  1150,  1152,  1154
619 };
620 
621 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
622 static const short yyrhs[] =
623 {
624      113,     0,    -1,   126,    -1,   106,    -1,   107,    -1,   110,
625       -1,   105,    -1,   104,    -1,   111,    -1,   116,    -1,   117,
626       -1,    84,    -1,    87,    -1,    51,    -1,   118,    -1,   121,
627       -1,   122,    -1,   118,    -1,   118,    -1,   116,   237,    -1,
628      122,   237,    -1,   123,    -1,   124,    -1,   125,    -1,   122,
629      103,   125,    -1,    88,    -1,    -1,   129,    -1,   127,    -1,
630      128,    -1,   129,   127,    -1,   129,   128,    -1,   127,   128,
631       -1,   129,   127,   128,    -1,   130,    -1,   127,   130,    -1,
632      133,    -1,   128,   133,    -1,    76,   122,   101,    -1,   131,
633       -1,   132,    -1,    56,   122,   101,    -1,    56,   122,   103,
634        5,   101,    -1,   135,    -1,   166,    -1,   187,    -1,    44,
635       -1,   134,    44,    -1,    -1,   134,    68,   125,   138,   139,
636      136,   141,    -1,    -1,    68,   125,   138,   139,   137,   141,
637       -1,    -1,    64,   119,    -1,    -1,    53,   140,    -1,   120,
638       -1,   140,   102,   120,    -1,    97,    98,    -1,    97,   142,
639       98,    -1,   143,    -1,   142,   143,    -1,   144,    -1,   159,
640       -1,   161,    -1,   179,    -1,   145,    -1,   150,    -1,   135,
641       -1,   166,    -1,   187,    -1,   115,   146,   101,    -1,   134,
642      115,   146,   101,    -1,   147,    -1,   146,   102,   147,    -1,
643      148,    -1,   148,    94,   149,    -1,   125,    -1,   148,    99,
644      100,    -1,   264,    -1,   177,    -1,    -1,   152,   151,   158,
645       -1,   115,   153,   156,    -1,    60,   153,   156,    -1,   134,
646      115,   153,   156,    -1,   134,    60,   153,   156,    -1,   125,
647       95,    96,    -1,   125,    95,   154,    96,    -1,   153,    99,
648      100,    -1,   155,    -1,   154,   102,   155,    -1,   115,   148,
649       -1,   134,   115,   148,    -1,    -1,    54,   157,    -1,   119,
650       -1,   157,   102,   119,    -1,   179,    -1,   101,    -1,   160,
651      179,    -1,    44,    -1,   162,   156,   163,    -1,   134,   162,
652      156,   163,    -1,   162,   156,   163,   101,    -1,   134,   162,
653      156,   163,   101,    -1,   123,    95,    96,    -1,   123,    95,
654      154,    96,    -1,    97,    98,    -1,    97,   164,    98,    -1,
655       97,   180,    98,    -1,    97,   164,   180,    98,    -1,   165,
656       95,    96,   101,    -1,   165,    95,   233,    96,   101,    -1,
657      122,   103,    66,    95,   233,    96,   101,    -1,   122,   103,
658       66,    95,    96,   101,    -1,    77,    -1,    66,    -1,    -1,
659       62,   125,   167,   172,    -1,    -1,   134,    62,   125,   168,
660      172,    -1,    -1,    62,   125,   171,   169,   172,    -1,    -1,
661      134,    62,   125,   171,   170,   172,    -1,    64,   120,    -1,
662      171,   102,   120,    -1,    97,    98,    -1,    97,   173,    98,
663       -1,   174,    -1,   173,   174,    -1,   175,    -1,   176,    -1,
664      135,    -1,   166,    -1,   145,    -1,   152,   101,    -1,    97,
665       98,    -1,    97,   178,    98,    -1,    97,   102,    98,    -1,
666       97,   178,   102,    98,    -1,   149,    -1,   178,   102,   149,
667       -1,    97,    98,    -1,    97,   180,    98,    -1,   181,    -1,
668      180,   181,    -1,   182,    -1,   184,    -1,   135,    -1,   183,
669      101,    -1,   115,   146,    -1,   134,   115,   146,    -1,   186,
670       -1,   189,    -1,   193,    -1,   194,    -1,   203,    -1,   207,
671       -1,   186,    -1,   190,    -1,   195,    -1,   204,    -1,   208,
672       -1,   179,    -1,   187,    -1,   191,    -1,   196,    -1,   206,
673       -1,   214,    -1,   215,    -1,   216,    -1,   219,    -1,   217,
674       -1,   221,    -1,   218,    -1,   101,    -1,   125,    90,    -1,
675      188,   184,    -1,   188,   185,    -1,   192,   101,    -1,   261,
676       -1,   245,    -1,   246,    -1,   242,    -1,   243,    -1,   239,
677       -1,   228,    -1,    49,    95,   264,    96,   184,    -1,    49,
678       95,   264,    96,   185,    57,   184,    -1,    49,    95,   264,
679       96,   185,    57,   185,    -1,    69,    95,   264,    96,   197,
680       -1,    97,    98,    -1,    97,   200,    98,    -1,    97,   198,
681       98,    -1,    97,   198,   200,    98,    -1,   199,    -1,   198,
682      199,    -1,   200,   180,    -1,   201,    -1,   200,   201,    -1,
683       63,   265,    90,    -1,    48,    90,    -1,    67,    95,   264,
684       96,    -1,   202,   184,    -1,   202,   185,    -1,    52,    -1,
685      205,   184,    67,    95,   264,    96,   101,    -1,   210,   101,
686      264,   101,   212,    96,   184,    -1,   210,   101,   101,   212,
687       96,   184,    -1,   210,   101,   264,   101,   212,    96,   185,
688       -1,   210,   101,   101,   212,    96,   185,    -1,    72,    95,
689       -1,   209,   211,    -1,    -1,   213,    -1,   183,    -1,    -1,
690      213,    -1,   192,    -1,   213,   102,   192,    -1,    55,   101,
691       -1,    55,   125,   101,    -1,    74,   101,    -1,    74,   125,
692      101,    -1,    59,   101,    -1,    59,   264,   101,    -1,    50,
693      264,   101,    -1,    78,   264,    90,   264,   101,    -1,    78,
694      264,   101,    -1,    78,     1,    -1,    78,   264,     1,    -1,
695      220,    95,   264,    96,   179,    -1,   220,    95,   264,    96,
696        1,    -1,    44,    -1,    71,   179,   222,    -1,    71,   179,
697      224,    -1,    71,   179,   222,   224,    -1,   223,    -1,   222,
698      223,    -1,    61,    95,   155,    96,   179,    -1,    65,   179,
699       -1,   226,    -1,   234,    -1,   114,    -1,    77,    -1,    95,
700      264,    96,    -1,   228,    -1,   238,    -1,   239,    -1,   240,
701       -1,   227,    -1,   122,   103,    77,    -1,   122,   103,    68,
702       -1,   121,   103,    68,    -1,   116,   103,    68,    -1,    60,
703      103,    68,    -1,    73,   119,    95,   233,    96,    -1,    73,
704      119,    95,    96,    -1,   229,    -1,   232,   125,    95,    96,
705       -1,   232,   125,    95,    96,   141,    -1,   232,   125,    95,
706      233,    96,    -1,   232,   125,    95,   233,    96,   141,    -1,
707       -1,    73,   119,    95,    96,   230,   141,    -1,    -1,    73,
708      119,    95,   233,    96,   231,   141,    -1,   122,   103,    73,
709       -1,   225,   103,    73,    -1,   264,    -1,   233,   102,   264,
710       -1,   233,   102,     1,    -1,    73,   116,   235,    -1,    73,
711      118,   235,    -1,    73,   116,   235,   237,    -1,    73,   118,
712      235,   237,    -1,    73,   118,   237,   177,    -1,    73,   116,
713      237,   177,    -1,   236,    -1,   235,   236,    -1,    99,   264,
714      100,    -1,    99,   100,    -1,   237,    99,   100,    -1,   225,
715      103,   125,    -1,    66,   103,   125,    -1,   122,    95,    96,
716       -1,   122,    95,   233,    96,    -1,   225,   103,   125,    95,
717       96,    -1,   225,   103,   125,    95,   233,    96,    -1,    66,
718      103,   125,    95,    96,    -1,    66,   103,   125,    95,   233,
719       96,    -1,   122,    99,   264,   100,    -1,   226,    99,   264,
720      100,    -1,   225,    -1,   122,    -1,   242,    -1,   243,    -1,
721      241,    47,    -1,   241,    46,    -1,   245,    -1,   246,    -1,
722        3,   244,    -1,     4,   244,    -1,   247,    -1,    47,   244,
723       -1,    46,   244,    -1,   241,    -1,    91,   244,    -1,    92,
724      244,    -1,   248,    -1,    95,   116,   237,    96,   244,    -1,
725       95,   116,    96,   244,    -1,    95,   264,    96,   247,    -1,
726       95,   122,   237,    96,   247,    -1,   244,    -1,   249,     5,
727      244,    -1,   249,     6,   244,    -1,   249,     7,   244,    -1,
728      249,    -1,   250,     3,   249,    -1,   250,     4,   249,    -1,
729      250,    -1,   251,     8,   250,    -1,   251,     9,   250,    -1,
730      251,    10,   250,    -1,   251,    -1,   252,    20,   251,    -1,
731      252,    18,   251,    -1,   252,    21,   251,    -1,   252,    19,
732      251,    -1,   252,    58,   117,    -1,   252,    -1,   253,    16,
733      252,    -1,   253,    17,   252,    -1,   253,    -1,   254,    11,
734      253,    -1,   254,    -1,   255,    12,   254,    -1,   255,    -1,
735      256,    13,   255,    -1,   256,    -1,   257,    14,   256,    -1,
736      257,    -1,   258,    15,   257,    -1,   258,    -1,   258,    89,
737      264,    90,   259,    -1,   259,    -1,   261,    -1,   262,   263,
738      260,    -1,   122,    -1,   238,    -1,   240,    -1,    93,    -1,
739       94,    -1,   260,    -1,   264,    -1
740 };
741 
742 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
743 static const unsigned short yyrline[] =
744 {
745        0,   177,   177,   182,   184,   185,   186,   187,   188,   192,
746      194,   197,   203,   208,   215,   217,   220,   224,   228,   232,
747      238,   246,   248,   251,   255,   262,   267,   268,   269,   270,
748      271,   272,   273,   274,   277,   279,   282,   284,   287,   292,
749      294,   297,   301,   305,   307,   308,   312,   321,   334,   332,
750      340,   339,   344,   345,   348,   349,   352,   355,   359,   362,
751      366,   368,   371,   373,   374,   375,   378,   380,   381,   382,
752      383,   387,   390,   394,   397,   400,   402,   405,   408,   412,
753      414,   420,   418,   425,   428,   429,   431,   438,   445,   451,
754      454,   456,   462,   478,   494,   495,   498,   501,   505,   507,
755      511,   515,   522,   524,   527,   529,   534,   537,   541,   543,
756      544,   545,   549,   551,   553,   555,   559,   561,   568,   566,
757      571,   570,   574,   573,   577,   576,   581,   583,   586,   589,
758      593,   595,   598,   600,   601,   602,   605,   609,   614,   616,
759      617,   618,   621,   623,   627,   629,   632,   634,   637,   639,
760      640,   643,   647,   650,   654,   656,   657,   658,   659,   660,
761      663,   665,   666,   667,   668,   671,   673,   674,   675,   676,
762      677,   678,   679,   680,   681,   682,   683,   686,   690,   695,
763      699,   704,   708,   710,   711,   712,   713,   714,   715,   718,
764      722,   727,   732,   736,   738,   739,   740,   743,   745,   748,
765      753,   755,   758,   760,   763,   767,   771,   775,   779,   784,
766      786,   789,   791,   794,   798,   801,   802,   803,   806,   807,
767      810,   812,   815,   817,   821,   823,   826,   828,   831,   835,
768      837,   838,   840,   843,   845,   848,   853,   855,   856,   859,
769      861,   864,   868,   873,   875,   878,   880,   881,   882,   883,
770      884,   885,   886,   888,   892,   895,   897,   899,   903,   905,
771      906,   907,   908,   909,   910,   915,   913,   918,   917,   922,
772      925,   928,   930,   931,   934,   936,   937,   938,   940,   941,
773      944,   946,   949,   953,   956,   960,   962,   966,   969,   971,
774      972,   973,   974,   977,   980,   983,   985,   987,   988,   991,
775      995,   999,  1001,  1002,  1003,  1004,  1007,  1011,  1015,  1017,
776     1018,  1019,  1022,  1024,  1025,  1026,  1029,  1031,  1032,  1033,
777     1036,  1038,  1039,  1042,  1044,  1045,  1046,  1049,  1051,  1052,
778     1053,  1054,  1055,  1058,  1060,  1061,  1064,  1066,  1069,  1071,
779     1074,  1076,  1079,  1081,  1085,  1087,  1091,  1093,  1097,  1099,
780     1102,  1106,  1109,  1110,  1113,  1115,  1118,  1122
781 };
782 #endif
783 
784 #if YYDEBUG || YYERROR_VERBOSE
785 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
786    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
787 static const char *const yytname[] =
788 {
789   "$end", "error", "$undefined", "PLUS_TK", "MINUS_TK", "MULT_TK", "DIV_TK",
790   "REM_TK", "LS_TK", "SRS_TK", "ZRS_TK", "AND_TK", "XOR_TK", "OR_TK",
791   "BOOL_AND_TK", "BOOL_OR_TK", "EQ_TK", "NEQ_TK", "GT_TK", "GTE_TK",
792   "LT_TK", "LTE_TK", "PLUS_ASSIGN_TK", "MINUS_ASSIGN_TK",
793   "MULT_ASSIGN_TK", "DIV_ASSIGN_TK", "REM_ASSIGN_TK", "LS_ASSIGN_TK",
794   "SRS_ASSIGN_TK", "ZRS_ASSIGN_TK", "AND_ASSIGN_TK", "XOR_ASSIGN_TK",
795   "OR_ASSIGN_TK", "PUBLIC_TK", "PRIVATE_TK", "PROTECTED_TK", "STATIC_TK",
796   "FINAL_TK", "SYNCHRONIZED_TK", "VOLATILE_TK", "TRANSIENT_TK",
797   "NATIVE_TK", "PAD_TK", "ABSTRACT_TK", "MODIFIER_TK", "STRICT_TK",
798   "DECR_TK", "INCR_TK", "DEFAULT_TK", "IF_TK", "THROW_TK", "BOOLEAN_TK",
799   "DO_TK", "IMPLEMENTS_TK", "THROWS_TK", "BREAK_TK", "IMPORT_TK",
800   "ELSE_TK", "INSTANCEOF_TK", "RETURN_TK", "VOID_TK", "CATCH_TK",
801   "INTERFACE_TK", "CASE_TK", "EXTENDS_TK", "FINALLY_TK", "SUPER_TK",
802   "WHILE_TK", "CLASS_TK", "SWITCH_TK", "CONST_TK", "TRY_TK", "FOR_TK",
803   "NEW_TK", "CONTINUE_TK", "GOTO_TK", "PACKAGE_TK", "THIS_TK",
804   "ASSERT_TK", "BYTE_TK", "SHORT_TK", "INT_TK", "LONG_TK", "CHAR_TK",
805   "INTEGRAL_TK", "FLOAT_TK", "DOUBLE_TK", "FP_TK", "ID_TK", "REL_QM_TK",
806   "REL_CL_TK", "NOT_TK", "NEG_TK", "ASSIGN_ANY_TK", "ASSIGN_TK", "OP_TK",
807   "CP_TK", "OCB_TK", "CCB_TK", "OSB_TK", "CSB_TK", "SC_TK", "C_TK",
808   "DOT_TK", "STRING_LIT_TK", "CHAR_LIT_TK", "INT_LIT_TK", "FP_LIT_TK",
809   "TRUE_TK", "FALSE_TK", "BOOL_LIT_TK", "NULL_TK", "$accept", "goal",
810   "literal", "type", "primitive_type", "reference_type",
811   "class_or_interface_type", "class_type", "interface_type", "array_type",
812   "name", "simple_name", "qualified_name", "identifier",
813   "compilation_unit", "import_declarations", "type_declarations",
814   "package_declaration", "import_declaration",
815   "single_type_import_declaration", "type_import_on_demand_declaration",
816   "type_declaration", "modifiers", "class_declaration", "@1", "@2",
817   "super", "interfaces", "interface_type_list", "class_body",
818   "class_body_declarations", "class_body_declaration",
819   "class_member_declaration", "field_declaration", "variable_declarators",
820   "variable_declarator", "variable_declarator_id", "variable_initializer",
821   "method_declaration", "@3", "method_header", "method_declarator",
822   "formal_parameter_list", "formal_parameter", "throws",
823   "class_type_list", "method_body", "static_initializer", "static",
824   "constructor_declaration", "constructor_declarator", "constructor_body",
825   "explicit_constructor_invocation", "this_or_super",
826   "interface_declaration", "@4", "@5", "@6", "@7", "extends_interfaces",
827   "interface_body", "interface_member_declarations",
828   "interface_member_declaration", "constant_declaration",
829   "abstract_method_declaration", "array_initializer",
830   "variable_initializers", "block", "block_statements", "block_statement",
831   "local_variable_declaration_statement", "local_variable_declaration",
832   "statement", "statement_nsi", "statement_without_trailing_substatement",
833   "empty_statement", "label_decl", "labeled_statement",
834   "labeled_statement_nsi", "expression_statement", "statement_expression",
835   "if_then_statement", "if_then_else_statement",
836   "if_then_else_statement_nsi", "switch_statement", "switch_block",
837   "switch_block_statement_groups", "switch_block_statement_group",
838   "switch_labels", "switch_label", "while_expression", "while_statement",
839   "while_statement_nsi", "do_statement_begin", "do_statement",
840   "for_statement", "for_statement_nsi", "for_header", "for_begin",
841   "for_init", "for_update", "statement_expression_list",
842   "break_statement", "continue_statement", "return_statement",
843   "throw_statement", "assert_statement", "synchronized_statement",
844   "synchronized", "try_statement", "catches", "catch_clause", "finally",
845   "primary", "primary_no_new_array", "type_literals",
846   "class_instance_creation_expression", "anonymous_class_creation", "@8",
847   "@9", "something_dot_new", "argument_list", "array_creation_expression",
848   "dim_exprs", "dim_expr", "dims", "field_access", "method_invocation",
849   "array_access", "postfix_expression", "post_increment_expression",
850   "post_decrement_expression", "unary_expression",
851   "pre_increment_expression", "pre_decrement_expression",
852   "unary_expression_not_plus_minus", "cast_expression",
853   "multiplicative_expression", "additive_expression", "shift_expression",
854   "relational_expression", "equality_expression", "and_expression",
855   "exclusive_or_expression", "inclusive_or_expression",
856   "conditional_and_expression", "conditional_or_expression",
857   "conditional_expression", "assignment_expression", "assignment",
858   "left_hand_side", "assignment_operator", "expression",
859   "constant_expression", 0
860 };
861 #endif
862 
863 # ifdef YYPRINT
864 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
865    token YYLEX-NUM.  */
866 static const unsigned short yytoknum[] =
867 {
868        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
869      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
870      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
871      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
872      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
873      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
874      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
875      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
876      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
877      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
878      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
879      365,   366
880 };
881 # endif
882 
883 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
884 static const unsigned short yyr1[] =
885 {
886        0,   112,   113,   114,   114,   114,   114,   114,   114,   115,
887      115,   116,   116,   116,   117,   117,   118,   119,   120,   121,
888      121,   122,   122,   123,   124,   125,   126,   126,   126,   126,
889      126,   126,   126,   126,   127,   127,   128,   128,   129,   130,
890      130,   131,   132,   133,   133,   133,   134,   134,   136,   135,
891      137,   135,   138,   138,   139,   139,   140,   140,   141,   141,
892      142,   142,   143,   143,   143,   143,   144,   144,   144,   144,
893      144,   145,   145,   146,   146,   147,   147,   148,   148,   149,
894      149,   151,   150,   152,   152,   152,   152,   153,   153,   153,
895      154,   154,   155,   155,   156,   156,   157,   157,   158,   158,
896      159,   160,   161,   161,   161,   161,   162,   162,   163,   163,
897      163,   163,   164,   164,   164,   164,   165,   165,   167,   166,
898      168,   166,   169,   166,   170,   166,   171,   171,   172,   172,
899      173,   173,   174,   174,   174,   174,   175,   176,   177,   177,
900      177,   177,   178,   178,   179,   179,   180,   180,   181,   181,
901      181,   182,   183,   183,   184,   184,   184,   184,   184,   184,
902      185,   185,   185,   185,   185,   186,   186,   186,   186,   186,
903      186,   186,   186,   186,   186,   186,   186,   187,   188,   189,
904      190,   191,   192,   192,   192,   192,   192,   192,   192,   193,
905      194,   195,   196,   197,   197,   197,   197,   198,   198,   199,
906      200,   200,   201,   201,   202,   203,   204,   205,   206,   207,
907      207,   208,   208,   209,   210,   211,   211,   211,   212,   212,
908      213,   213,   214,   214,   215,   215,   216,   216,   217,   218,
909      218,   218,   218,   219,   219,   220,   221,   221,   221,   222,
910      222,   223,   224,   225,   225,   226,   226,   226,   226,   226,
911      226,   226,   226,   226,   227,   227,   227,   227,   228,   228,
912      228,   228,   228,   228,   228,   230,   229,   231,   229,   232,
913      232,   233,   233,   233,   234,   234,   234,   234,   234,   234,
914      235,   235,   236,   237,   237,   238,   238,   239,   239,   239,
915      239,   239,   239,   240,   240,   241,   241,   241,   241,   242,
916      243,   244,   244,   244,   244,   244,   245,   246,   247,   247,
917      247,   247,   248,   248,   248,   248,   249,   249,   249,   249,
918      250,   250,   250,   251,   251,   251,   251,   252,   252,   252,
919      252,   252,   252,   253,   253,   253,   254,   254,   255,   255,
920      256,   256,   257,   257,   258,   258,   259,   259,   260,   260,
921      261,   262,   262,   262,   263,   263,   264,   265
922 };
923 
924 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
925 static const unsigned char yyr2[] =
926 {
927        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
928        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
929        2,     1,     1,     1,     3,     1,     0,     1,     1,     1,
930        2,     2,     2,     3,     1,     2,     1,     2,     3,     1,
931        1,     3,     5,     1,     1,     1,     1,     2,     0,     7,
932        0,     6,     0,     2,     0,     2,     1,     3,     2,     3,
933        1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
934        1,     3,     4,     1,     3,     1,     3,     1,     3,     1,
935        1,     0,     3,     3,     3,     4,     4,     3,     4,     3,
936        1,     3,     2,     3,     0,     2,     1,     3,     1,     1,
937        2,     1,     3,     4,     4,     5,     3,     4,     2,     3,
938        3,     4,     4,     5,     7,     6,     1,     1,     0,     4,
939        0,     5,     0,     5,     0,     6,     2,     3,     2,     3,
940        1,     2,     1,     1,     1,     1,     1,     2,     2,     3,
941        3,     4,     1,     3,     2,     3,     1,     2,     1,     1,
942        1,     2,     2,     3,     1,     1,     1,     1,     1,     1,
943        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
944        1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
945        2,     2,     1,     1,     1,     1,     1,     1,     1,     5,
946        7,     7,     5,     2,     3,     3,     4,     1,     2,     2,
947        1,     2,     3,     2,     4,     2,     2,     1,     7,     7,
948        6,     7,     6,     2,     2,     0,     1,     1,     0,     1,
949        1,     3,     2,     3,     2,     3,     2,     3,     3,     5,
950        3,     2,     3,     5,     5,     1,     3,     3,     4,     1,
951        2,     5,     2,     1,     1,     1,     1,     3,     1,     1,
952        1,     1,     1,     3,     3,     3,     3,     3,     5,     4,
953        1,     4,     5,     5,     6,     0,     6,     0,     7,     3,
954        3,     1,     3,     3,     3,     3,     4,     4,     4,     4,
955        1,     2,     3,     2,     3,     3,     3,     3,     4,     5,
956        6,     5,     6,     4,     4,     1,     1,     1,     1,     2,
957        2,     1,     1,     2,     2,     1,     2,     2,     1,     2,
958        2,     1,     5,     4,     4,     5,     1,     3,     3,     3,
959        1,     3,     3,     1,     3,     3,     3,     1,     3,     3,
960        3,     3,     3,     1,     3,     3,     1,     3,     1,     3,
961        1,     3,     1,     3,     1,     3,     1,     5,     1,     1,
962        3,     1,     1,     1,     1,     1,     1,     1
963 };
964 
965 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
966    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
967    means the default is an error.  */
968 static const unsigned short yydefact[] =
969 {
970       26,    46,     0,     0,     0,     0,   177,     0,     2,    28,
971       29,    27,    34,    39,    40,    36,     0,    43,    44,    45,
972       25,     0,    21,    22,    23,   118,    52,     0,     1,    32,
973       35,    37,    30,    31,    47,     0,     0,    41,     0,     0,
974        0,   122,     0,    54,    38,     0,    33,   120,    52,     0,
975       24,    18,   126,    16,     0,   119,     0,     0,    17,    53,
976        0,    50,     0,   124,    54,    42,    13,     0,    11,    12,
977      128,     0,     9,    10,    14,    15,    16,     0,   134,   136,
978        0,   135,     0,   130,   132,   133,   127,   123,    56,    55,
979        0,   121,     0,    48,     0,    94,    77,     0,    73,    75,
980       94,     0,    19,    20,     0,     0,   137,   129,   131,     0,
981        0,    51,   125,     0,     0,     0,     0,    84,    71,     0,
982        0,     0,    83,   283,     0,    94,     0,    94,    57,    46,
983        0,    58,    21,     0,    68,     0,    60,    62,    66,    67,
984       81,    63,     0,    64,    94,    69,    65,    70,    49,    87,
985        0,     0,     0,    90,    96,    95,    89,    77,    74,     0,
986        0,     0,     0,     0,     0,     0,   246,     0,     0,     0,
987        0,     7,     6,     3,     4,     5,     8,   245,     0,     0,
988      296,    76,    80,   295,   243,   252,   248,   260,     0,   244,
989      249,   250,   251,   308,   297,   298,   316,   301,   302,   305,
990      311,   320,   323,   327,   333,   336,   338,   340,   342,   344,
991      346,   348,   356,   349,     0,    79,    78,   284,    86,    72,
992       85,    46,     0,     0,   207,     0,     0,     0,     0,     0,
993        0,     0,     0,     0,   144,     0,     9,    15,   296,    23,
994        0,   150,   165,     0,   146,   148,     0,   149,   154,   166,
995        0,   155,   167,     0,   156,   157,   168,     0,   158,     0,
996      169,   159,   215,     0,   170,   171,   172,   174,   176,   173,
997        0,   175,   248,   250,     0,   185,   186,   183,   184,   182,
998        0,    94,    59,    61,     0,   100,     0,    92,     0,    88,
999        0,     0,   296,   249,   251,   303,   304,   307,   306,     0,
1000        0,     0,    17,     0,   309,   310,     0,   296,     0,   138,
1001        0,   142,     0,     0,     0,     0,     0,     0,     0,     0,
1002        0,   300,   299,     0,     0,     0,     0,     0,     0,     0,
1003        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1004        0,     0,     0,     0,   354,   355,     0,     0,     0,   222,
1005        0,   226,     0,     0,     0,     0,   213,   224,     0,   231,
1006        0,     0,   152,   178,     0,   145,   147,   151,   235,   179,
1007      181,   205,     0,     0,   217,   220,   214,   216,     0,     0,
1008      106,     0,     0,    99,    82,    98,     0,   102,    93,    91,
1009       97,   257,   286,     0,   274,   280,     0,   275,     0,     0,
1010        0,    19,    20,   247,   140,   139,     0,   256,   255,   287,
1011        0,   271,     0,   254,   269,   253,   270,   285,     0,     0,
1012      317,   318,   319,   321,   322,   324,   325,   326,   329,   331,
1013      328,   330,     0,   332,   334,   335,   337,   339,   341,   343,
1014      345,     0,   350,     0,   228,   223,   227,     0,     0,     0,
1015        0,   236,   239,   237,   225,   232,     0,   230,   247,   153,
1016        0,     0,   218,     0,     0,   107,   103,   117,   246,   108,
1017      296,     0,     0,     0,   104,     0,     0,   281,   276,   279,
1018      277,   278,   259,     0,   313,     0,     0,   314,   141,   143,
1019      288,     0,   293,     0,   294,   261,     0,     0,     0,   204,
1020        0,     0,   242,   240,   238,     0,     0,   221,     0,   219,
1021      218,     0,   105,     0,   109,     0,     0,   110,   291,     0,
1022      282,     0,   258,   312,   315,   273,   272,   289,     0,   262,
1023      263,   347,     0,   189,     0,   154,     0,   161,   162,     0,
1024      163,   164,     0,     0,   192,     0,   229,     0,     0,     0,
1025      234,   233,     0,   111,     0,     0,   292,   266,     0,   290,
1026      264,     0,     0,   180,   206,     0,     0,     0,   193,     0,
1027      197,     0,   200,     0,     0,   210,     0,     0,   112,     0,
1028      268,     0,   190,   218,     0,   203,   357,     0,   195,   198,
1029        0,   194,   199,   201,   241,   208,   209,     0,     0,   113,
1030        0,     0,   218,   202,   196,   115,     0,     0,     0,     0,
1031      114,     0,   212,     0,   191,   211
1032 };
1033 
1034 /* YYDEFGOTO[NTERM-NUM]. */
1035 static const short yydefgoto[] =
1036 {
1037       -1,     7,   177,   235,   178,    73,    74,    59,    52,   179,
1038      180,    22,    23,    24,     8,     9,    10,    11,    12,    13,
1039       14,    15,   240,   241,   113,    90,    43,    61,    89,   111,
1040      135,   136,   137,    79,    97,    98,    99,   181,   139,   284,
1041       80,    95,   152,   153,   117,   155,   384,   141,   142,   143,
1042      144,   387,   471,   472,    18,    40,    62,    57,    92,    41,
1043       55,    82,    83,    84,    85,   182,   312,   242,   592,   244,
1044      245,   246,   247,   534,   248,   249,   250,   251,   537,   252,
1045      253,   254,   255,   538,   256,   544,   569,   570,   571,   572,
1046      257,   258,   540,   259,   260,   261,   541,   262,   263,   376,
1047      508,   509,   264,   265,   266,   267,   268,   269,   270,   271,
1048      451,   452,   453,   183,   184,   185,   186,   187,   521,   558,
1049      188,   410,   189,   394,   395,   103,   190,   191,   192,   193,
1050      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1051      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1052      214,   346,   411,   587
1053 };
1054 
1055 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1056    STATE-NUM.  */
1057 #define YYPACT_NINF -465
1058 static const short yypact[] =
1059 {
1060      237,  -465,   -32,   -32,   -32,   -32,  -465,    83,  -465,   124,
1061       -8,   124,  -465,  -465,  -465,  -465,   183,  -465,  -465,  -465,
1062     -465,   -38,  -465,  -465,  -465,    51,    97,   276,  -465,    -8,
1063     -465,  -465,   124,    -8,  -465,   -32,   -32,  -465,    17,   -32,
1064      134,    42,   -32,   150,  -465,   -32,    -8,    51,    97,   191,
1065     -465,  -465,  -465,   158,   297,  -465,   -32,   134,  -465,  -465,
1066      -32,  -465,   134,    42,   150,  -465,  -465,   -32,  -465,  -465,
1067     -465,   -32,   212,  -465,  -465,  -465,   160,   740,  -465,  -465,
1068      223,  -465,   549,  -465,  -465,  -465,  -465,  -465,  -465,   232,
1069      272,  -465,   134,  -465,   285,    32,   285,    68,  -465,   -14,
1070       32,   289,   293,   293,   -32,   -32,  -465,  -465,  -465,   -32,
1071      678,  -465,  -465,   272,   121,   -32,   305,  -465,  -465,   -32,
1072     1690,   328,  -465,  -465,   349,    32,   147,    32,  -465,   320,
1073     2602,  -465,   358,   740,  -465,   761,  -465,  -465,  -465,  -465,
1074     -465,  -465,   363,  -465,   346,  -465,  -465,  -465,  -465,  -465,
1075      -32,   202,    47,  -465,  -465,   367,  -465,  -465,  -465,  2398,
1076     2398,  2398,  2398,   362,   369,     0,  -465,  2398,  2398,  2398,
1077     1558,  -465,  -465,  -465,  -465,  -465,  -465,  -465,   253,   374,
1078      555,  -465,  -465,   378,   375,  -465,  -465,  -465,   -32,  -465,
1079       -2,  -465,   392,   467,  -465,  -465,  -465,  -465,  -465,  -465,
1080     -465,   277,   522,   490,   300,   523,   482,   484,   509,   489,
1081       23,  -465,  -465,  -465,   464,  -465,  -465,  -465,  -465,  -465,
1082     -465,   436,   440,  2398,  -465,    93,  1742,   449,   453,   363,
1083      457,   113,  1424,  2398,  -465,   -32,   253,   374,   461,   460,
1084      420,  -465,  -465,  2670,  -465,  -465,   475,  -465,  -465,  -465,
1085     3078,  -465,  -465,   483,  -465,  -465,  -465,  3078,  -465,  3078,
1086     -465,  -465,  3198,   487,  -465,  -465,  -465,  -465,  -465,  -465,
1087      499,  -465,   207,   292,   467,   516,   519,  -465,  -465,  -465,
1088      450,   346,  -465,  -465,   163,  -465,   488,   497,   -32,  -465,
1089      431,   -32,   241,  -465,  -465,  -465,  -465,  -465,  -465,   530,
1090      -32,   502,   502,   507,  -465,  -465,   303,   555,   508,  -465,
1091      514,  -465,   262,   538,   546,  1808,  1860,   239,   114,  2398,
1092      520,  -465,  -465,  2398,  2398,  2398,  2398,  2398,  2398,  2398,
1093     2398,  2398,  2398,  2398,  2398,     0,  2398,  2398,  2398,  2398,
1094     2398,  2398,  2398,  2398,  -465,  -465,  2398,  2398,   517,  -465,
1095      524,  -465,   526,  2398,  2398,   317,  -465,  -465,   528,  -465,
1096       28,   534,   518,  -465,   -32,  -465,  -465,  -465,  -465,  -465,
1097     -465,  -465,   572,   202,  -465,  -465,  -465,   550,  1926,  2398,
1098     -465,   122,   488,  -465,  -465,  -465,  2738,   540,   497,  -465,
1099     -465,  -465,   558,  1860,   502,  -465,   327,   502,   327,  1978,
1100     2398,   -75,    54,  1220,  -465,  -465,  1624,  -465,  -465,  -465,
1101      142,  -465,   557,  -465,  -465,  -465,  -465,   560,   561,  2044,
1102     -465,  -465,  -465,   277,   277,   522,   522,   522,   490,   490,
1103      490,   490,   212,  -465,   300,   300,   523,   482,   484,   509,
1104      489,   570,  -465,   566,  -465,  -465,  -465,   569,   577,   571,
1105      363,   317,  -465,  -465,  -465,  -465,  2398,  -465,  -465,   518,
1106      579,  3223,  3223,   574,   582,  -465,   586,   369,   588,  -465,
1107      591,  2806,   597,  2874,  -465,  2096,   595,  -465,   293,  -465,
1108      293,  -465,   602,   208,  -465,  2398,  1220,  -465,  -465,  -465,
1109     -465,  1490,  -465,  2162,  -465,   272,   249,  2398,  3146,  -465,
1110      604,   431,  -465,  -465,  -465,   601,  2398,  -465,   607,   550,
1111     3223,    12,  -465,   455,  -465,  2942,  2214,  -465,  -465,   323,
1112     -465,   272,   608,  -465,  -465,  -465,  -465,  -465,   325,  -465,
1113      272,  -465,   609,  -465,   649,   650,  3146,  -465,  -465,  3146,
1114     -465,  -465,   613,    34,  -465,   612,  -465,   619,  3078,   620,
1115     -465,  -465,   625,  -465,   629,   355,  -465,  -465,   272,  -465,
1116     -465,  2398,  3078,  -465,  -465,  2280,   631,  2398,  -465,    58,
1117     -465,  2466,  -465,   363,   632,  -465,  3078,  2332,  -465,   633,
1118     -465,   639,  -465,  3223,   638,  -465,  -465,   646,  -465,  -465,
1119     2534,  -465,  3010,  -465,  -465,  -465,  -465,   641,   371,  -465,
1120     3146,   647,  3223,  -465,  -465,  -465,   648,   690,  3146,   652,
1121     -465,  3146,  -465,  3146,  -465,  -465
1122 };
1123 
1124 /* YYPGOTO[NTERM-NUM].  */
1125 static const short yypgoto[] =
1126 {
1127     -465,  -465,  -465,   -11,   -10,   415,   -19,   -87,    19,   240,
1128      106,   102,  -465,    -3,  -465,   741,    41,  -465,    44,  -465,
1129     -465,    48,    16,   635,  -465,  -465,   706,   692,  -465,  -108,
1130     -465,   622,  -465,   -76,  -102,   640,  -136,  -164,  -465,  -465,
1131       29,    86,   478,  -282,   -70,  -465,  -465,  -465,  -465,  -465,
1132      627,   382,  -465,  -465,     7,  -465,  -465,  -465,  -465,   721,
1133      101,  -465,   689,  -465,  -465,    60,  -465,   -95,  -128,  -239,
1134     -465,   511,   468,  -313,  -429,   167,  -210,  -465,  -465,  -465,
1135     -255,  -465,  -465,  -465,  -465,  -465,  -465,   209,   211,  -436,
1136     -124,  -465,  -465,  -465,  -465,  -465,  -465,  -465,   -84,  -465,
1137     -464,   515,  -465,  -465,  -465,  -465,  -465,  -465,  -465,  -465,
1138     -465,   330,   332,  -465,  -465,  -465,    80,  -465,  -465,  -465,
1139     -465,  -380,  -465,   485,  -199,    65,  1069,   161,  1122,   324,
1140      381,   469,  -150,   539,   594,  -372,  -465,   243,     3,    76,
1141      235,   452,   454,   448,   451,   462,  -465,   302,   463,   752,
1142     -465,  -465,   873,  -465
1143 };
1144 
1145 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1146    positive, shift that token.  If negative, reduce the rule which
1147    number is the opposite.  If zero, do what YYDEFACT says.
1148    If YYTABLE_NINF, parse error.  */
1149 #define YYTABLE_NINF -354
1150 static const short yytable[] =
1151 {
1152       25,    26,   243,   126,   366,   148,   311,   375,   389,   295,
1153      296,   297,   298,   550,   287,   146,    16,   304,   305,   483,
1154       51,   485,    49,    58,   124,    16,    16,    16,   154,   455,
1155      122,   487,    47,    48,   138,    50,     1,    51,   342,   496,
1156      146,    51,    50,    71,    72,    16,   549,   285,    16,    16,
1157       29,    66,    33,    30,     3,   218,    20,   220,    31,   138,
1158        4,    81,    16,    37,    94,    38,   105,    72,    96,   535,
1159       77,    71,    72,    46,   286,    86,    30,    31,   303,    88,
1160      120,    31,   566,    28,    68,   121,   115,    69,    20,    81,
1161       51,  -352,  -352,     6,    31,   519,    58,   567,    77,    71,
1162       72,    94,    96,   150,    72,    20,   566,   535,    21,   130,
1163      535,    27,   343,   528,   524,    39,   157,   145,   456,   601,
1164      236,   567,   105,    72,    71,    72,   133,   239,   128,   457,
1165      151,   116,   568,   362,   355,   593,   555,   102,   609,   140,
1166      288,    72,   145,   289,    56,    53,   302,   157,    53,   290,
1167      486,   133,   388,   124,   593,   301,   588,   100,    87,   306,
1168       76,    42,    53,    91,   140,     1,    53,    19,     1,   118,
1169      119,   535,    66,   420,   421,   422,    19,    19,    19,   535,
1170        2,    20,   535,    76,   535,   320,     3,   416,    76,   385,
1171      125,   127,     4,   112,   349,   477,    19,   598,   477,    19,
1172       19,    20,    20,    60,   390,    68,   507,   375,    69,    20,
1173      272,   382,   132,    19,   357,    53,    76,   149,   465,   545,
1174       76,    53,   350,   563,   290,     6,   564,    34,   358,   364,
1175       72,    54,   157,   236,   366,   132,   238,   132,   490,    76,
1176      239,    76,   489,   102,   491,    35,    34,   239,   219,   119,
1177      484,    36,   236,    66,   239,   375,   239,    76,   473,   101,
1178      130,    45,   459,    45,   383,   292,   292,   292,   292,   150,
1179       72,    53,    58,   292,   292,   307,   366,   147,   373,   150,
1180       72,     1,   323,   324,   325,   157,    68,   607,   536,    69,
1181       20,   273,    65,     2,    75,   612,   151,   392,   614,     3,
1182      615,   102,   147,  -188,   522,     4,   151,   413,  -188,  -188,
1183      491,   101,   414,     5,    50,   417,   415,    75,   331,   332,
1184      333,   334,    75,   272,   106,   432,   536,    20,   375,   536,
1185      272,   425,   426,   427,   109,   523,   315,   272,     6,   272,
1186      316,     1,   272,   515,   317,   530,    76,   375,    66,   238,
1187       75,   491,   101,   366,    75,   502,   313,    67,   335,     3,
1188      405,   157,   364,    72,   406,     4,   396,   398,   238,   110,
1189      237,   401,   402,    75,   539,    75,   236,    44,   449,    45,
1190      114,    68,   450,   239,    69,    20,    76,   529,  -187,   123,
1191      536,    75,   124,  -187,  -187,    70,    76,    53,   536,   400,
1192      115,   536,   101,   536,   273,   156,   313,   428,   429,   430,
1193      431,   273,   539,   557,   542,   539,   551,  -101,   273,   556,
1194      273,   559,   560,   273,   170,   491,   124,   491,   216,   292,
1195      292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
1196      292,    76,   292,   292,   292,   292,   292,   292,   292,   217,
1197      580,   579,   542,   280,   274,   542,   479,   491,   481,   478,
1198      130,   236,   480,   236,    34,   299,   272,   606,   239,   291,
1199      239,    66,   300,   491,   319,     1,   539,   314,   594,    76,
1200       75,   318,    66,   237,   539,  -353,  -353,   539,    36,   539,
1201      150,    72,   470,   338,     1,   239,   339,   102,   328,   329,
1202      330,    66,   237,   341,    68,   236,   292,    69,    20,   292,
1203       50,   275,   239,   321,   322,    68,   542,   151,    69,    20,
1204       75,   552,   340,   413,   542,   326,   327,   542,   414,   542,
1205       75,  -235,   415,   239,    68,   347,   239,    69,    20,   336,
1206      337,   272,   272,    20,   353,   239,   380,   273,   354,   -16,
1207      363,   272,   356,   272,  -351,  -351,   315,   344,   345,   239,
1208      316,   236,  -297,  -297,   317,  -298,  -298,   274,   239,   423,
1209      424,   434,   435,   239,   274,    75,   367,   238,   272,   238,
1210      236,   274,   236,   274,   370,   386,   274,   239,   378,   239,
1211      272,   292,   292,     1,   379,   272,   121,   239,   391,   276,
1212       66,   393,   399,   292,   403,   239,   407,    76,   239,    67,
1213      239,     3,   404,    75,   408,   419,   272,     4,   444,   272,
1214      119,   238,   273,   273,   275,   445,   237,   446,   272,   454,
1215      458,   275,   273,    68,   273,    17,    69,    20,   275,   460,
1216      275,   474,   272,   275,    17,    17,    17,   107,  -351,  -351,
1217      315,   272,   461,   475,   316,   493,   272,   492,   317,   273,
1218      497,   494,   498,   272,    17,   499,   501,    17,    17,   277,
1219      272,   273,   272,   500,   506,   510,   273,   238,   511,   -16,
1220      272,    17,   272,  -116,  -351,  -351,   315,   512,   272,    78,
1221      316,   272,   516,   272,   513,   520,   238,   273,   238,  -265,
1222      273,   543,   546,   548,   561,  -267,   562,  -160,   573,   273,
1223      274,   237,   276,   237,   565,   574,   576,    78,   369,   276,
1224      577,   585,   129,   273,   278,   371,   276,   372,   276,    66,
1225      578,   276,   273,   595,   599,   600,   603,   273,    67,   602,
1226        3,    75,   605,   608,   273,   134,     4,   611,   613,   610,
1227      433,   273,    32,   273,    64,   237,    93,   283,   381,   158,
1228      281,   273,    68,   273,   466,    69,    20,   275,    63,   273,
1229      134,   108,   273,   374,   273,   130,   131,   377,   589,     6,
1230      590,   503,   277,   504,    34,   274,   274,   397,   438,   277,
1231      436,    66,   439,   437,     0,   274,   277,   274,   277,   531,
1232      104,   277,    35,     0,   440,   129,     0,     0,    36,   442,
1233        0,   237,    66,     0,     0,     0,     0,     0,     0,     0,
1234        0,    67,   274,     3,    68,     0,     0,    69,    20,     4,
1235      237,     0,   237,     0,   274,     0,     0,   278,     0,   274,
1236        0,     0,   275,   275,   278,    68,     0,     0,    69,    20,
1237        0,   278,   275,   278,   275,   276,   278,     0,   130,   282,
1238      274,     0,     6,   274,     0,     0,     0,     0,     0,     0,
1239        0,     0,   274,     0,     0,     0,     0,     0,     0,   275,
1240        0,     0,   279,     0,     0,     0,   274,     0,     0,     0,
1241        0,   275,     0,     0,     0,   274,   275,     0,     0,     0,
1242      274,     0,     0,     0,     0,     0,     0,   274,     0,     0,
1243        0,     0,     0,     0,   274,     0,   274,   275,     0,     0,
1244      275,     0,     0,     0,   274,   277,   274,     0,     0,   275,
1245      276,   276,   274,     0,     0,   274,     0,   274,     0,     0,
1246      276,     0,   276,   275,     0,     0,     0,     0,     0,     0,
1247        0,     0,   275,     0,     0,     0,     0,   275,     0,     0,
1248        0,     0,     0,     0,   275,     0,   533,   276,     0,     0,
1249        0,   275,     0,   275,     0,     0,     0,     0,     0,   276,
1250      278,   275,     0,   275,   276,     0,     0,     0,     0,   275,
1251        0,     0,   275,   215,   275,   279,     0,     0,     0,     0,
1252      277,   277,   279,     0,   369,   276,     0,   371,   276,   279,
1253      277,   279,   277,     0,   279,     0,   575,   276,     0,     0,
1254        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1255      582,   276,     0,     0,     0,     0,     0,   277,     0,     0,
1256      276,     0,   308,   215,   596,   276,     0,     0,     0,   277,
1257        0,     0,   276,     0,   277,   278,   278,     0,     0,   276,
1258        0,   276,     0,     0,     0,   278,     0,   278,   533,   276,
1259        0,   276,     0,     0,     0,   277,   575,   276,   277,   582,
1260      276,   596,   276,     0,     0,     0,     0,   277,     0,     0,
1261        0,     0,   278,     0,     0,     0,   348,     0,     0,   352,
1262        0,   277,     0,     0,   278,   360,   361,     0,     0,   278,
1263      277,     0,     0,     0,     0,   277,     0,     0,     0,     0,
1264        0,     0,   277,     0,     0,     0,     0,     0,     0,   277,
1265      278,   277,     0,   278,     0,     0,     0,     0,   279,   277,
1266        0,   277,   278,     0,     0,     0,     0,   277,     0,     0,
1267      277,     0,   277,     0,     0,     0,   278,     0,     0,     0,
1268        0,     0,     0,     0,     0,   278,     0,     0,     0,     0,
1269      278,     0,     0,     0,     0,     0,     0,   278,     0,     0,
1270        0,     0,     0,     0,   278,     0,   278,     0,     0,   412,
1271        0,     0,   418,     0,   278,     0,   278,     0,     0,     0,
1272        0,     0,   278,     0,     0,   278,     0,   278,     0,     0,
1273        0,     0,     0,   279,   279,     0,   441,     0,     0,     0,
1274      443,     0,     0,   279,     0,   279,   447,   448,   293,   293,
1275      293,   293,     0,     0,     0,     0,   293,   293,     0,     0,
1276        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1277      279,   463,   464,     0,     0,     0,     0,     0,     0,     0,
1278        0,     0,   279,     0,     0,     0,   476,   279,     0,     0,
1279        0,    66,     0,     0,     0,     0,     0,     0,     0,   215,
1280      163,   294,   294,   294,   294,     0,   164,     0,   279,   294,
1281      294,   279,     0,   165,     0,     0,     0,   166,     0,     0,
1282      279,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1283        0,   167,   168,     0,   279,   169,     0,     0,     0,     0,
1284        0,     0,     0,   279,   171,   172,   173,   174,   279,   505,
1285      175,   176,     0,     0,     0,   279,     0,     0,     0,     0,
1286        0,     0,   279,     0,   279,     0,     0,     0,     0,     0,
1287        0,     0,   279,     0,   279,     0,     0,     0,     0,     0,
1288      279,     0,     0,   279,   526,   279,     0,     0,     0,     0,
1289        0,     0,     0,     0,     0,     0,     0,     0,     0,   547,
1290        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1291        0,     0,   293,   293,   293,   293,   293,   293,   293,   293,
1292      293,   293,   293,   293,     0,   293,   293,   293,   293,   293,
1293      293,   293,     0,     0,     0,     0,     0,     0,     0,     0,
1294        0,     0,     0,     0,     0,   359,     0,   159,   160,     0,
1295        0,     0,     0,     0,   581,     0,     0,     0,   584,     0,
1296      586,     0,     0,     0,     0,   294,   294,   294,   294,   294,
1297      294,   294,   294,   294,   294,   294,   294,     0,   294,   294,
1298      294,   294,   294,   294,   294,     0,     0,     0,     0,   293,
1299      161,   162,   293,     0,     0,    66,     0,     0,     0,     0,
1300        0,     0,     0,     0,   163,     0,     0,     0,     0,     0,
1301      164,   525,     0,   159,   160,     0,     0,   165,     0,     0,
1302        0,   166,     0,     0,     0,     0,     0,     0,    68,     0,
1303        0,    69,    20,     0,     0,   167,   168,     0,     0,   169,
1304        0,     0,   294,     0,     0,   294,     0,     0,   171,   172,
1305      173,   174,     0,     0,   175,   176,   161,   162,     0,     0,
1306        0,    66,     0,     0,     0,     0,     0,     0,     0,     0,
1307      163,     0,     0,     0,   293,   293,   164,     0,     0,     0,
1308        0,   159,   160,   165,     0,     0,   293,   166,     0,     0,
1309        0,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1310        0,   167,   168,     0,     0,   169,     0,     0,     0,     0,
1311        0,     0,     0,     0,   171,   172,   173,   174,     0,     0,
1312      175,   176,     0,     0,   161,   162,     0,   294,   294,    66,
1313        0,     0,     0,     0,     0,     0,     0,     0,   163,   294,
1314        0,     0,     0,     0,   164,     0,     0,   159,   160,     0,
1315        0,   165,     0,     0,     0,   166,     0,     0,     0,     0,
1316        0,     0,    68,     0,     0,    69,    20,     0,     0,   167,
1317      168,     0,     0,   169,     0,   170,   309,     0,     0,     0,
1318      310,     0,   171,   172,   173,   174,     0,     0,   175,   176,
1319      161,   162,     0,     0,     0,    66,     0,     0,     0,     0,
1320        0,     0,     0,     0,   163,     0,     0,     0,     0,     0,
1321      164,     0,     0,   159,   160,     0,     0,   165,     0,     0,
1322        0,   166,     0,     0,     0,     0,     0,     0,    68,     0,
1323        0,    69,    20,     0,     0,   167,   168,     0,     0,   169,
1324        0,   170,   488,     0,     0,     0,     0,     0,   171,   172,
1325      173,   174,     0,     0,   175,   176,   161,   162,     0,     0,
1326        0,    66,     0,     0,     0,   159,   160,     0,     0,     0,
1327      163,     0,     0,     0,     0,     0,   164,     0,     0,     0,
1328        0,     0,     0,   165,     0,     0,     0,   166,     0,     0,
1329        0,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1330        0,   167,   168,     0,     0,   169,     0,   170,   161,   162,
1331        0,     0,     0,    66,   171,   172,   173,   174,     0,     0,
1332      175,   176,   163,     0,     0,     0,     0,     0,   164,     0,
1333        0,   159,   160,     0,     0,   165,     0,     0,     0,   166,
1334        0,     0,     0,     0,     0,     0,    68,     0,     0,    69,
1335       20,     0,     0,   167,   168,     0,     0,   169,     0,     0,
1336        0,     0,     0,   351,     0,     0,   171,   172,   173,   174,
1337        0,     0,   175,   176,   161,   162,     0,     0,     0,    66,
1338        0,     0,     0,   159,   160,     0,     0,     0,   163,     0,
1339        0,     0,     0,     0,   164,     0,     0,     0,     0,     0,
1340        0,   165,     0,     0,     0,   166,     0,     0,     0,     0,
1341        0,     0,    68,     0,     0,    69,    20,     0,     0,   167,
1342      168,     0,     0,   169,   409,     0,   161,   162,     0,     0,
1343        0,    66,   171,   172,   173,   174,     0,     0,   175,   176,
1344      163,     0,     0,     0,     0,     0,   164,     0,     0,   159,
1345      160,     0,     0,   165,     0,     0,     0,   166,     0,     0,
1346        0,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1347        0,   167,   168,     0,     0,   169,     0,     0,     0,     0,
1348      123,     0,     0,     0,   171,   172,   173,   174,     0,     0,
1349      175,   176,   161,   162,     0,     0,     0,    66,     0,     0,
1350        0,   159,   160,     0,     0,     0,   163,     0,     0,     0,
1351        0,     0,   164,     0,     0,     0,     0,     0,     0,   165,
1352        0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
1353       68,     0,     0,    69,    20,     0,     0,   167,   168,     0,
1354        0,   169,     0,     0,   161,   162,     0,   462,     0,    66,
1355      171,   172,   173,   174,     0,     0,   175,   176,   163,     0,
1356        0,     0,     0,     0,   164,     0,     0,   159,   160,     0,
1357        0,   165,     0,     0,     0,   166,     0,     0,     0,     0,
1358        0,     0,    68,     0,     0,    69,    20,     0,     0,   167,
1359      168,     0,     0,   169,   482,     0,     0,     0,     0,     0,
1360        0,     0,   171,   172,   173,   174,     0,     0,   175,   176,
1361      161,   162,     0,     0,     0,    66,     0,     0,     0,   159,
1362      160,     0,     0,     0,   163,     0,     0,     0,     0,     0,
1363      164,     0,     0,     0,     0,     0,     0,   165,     0,     0,
1364        0,   166,     0,     0,     0,     0,     0,     0,    68,     0,
1365        0,    69,    20,     0,     0,   167,   168,     0,     0,   169,
1366      495,     0,   161,   162,     0,     0,     0,    66,   171,   172,
1367      173,   174,     0,     0,   175,   176,   163,     0,     0,     0,
1368        0,     0,   164,     0,     0,   159,   160,     0,     0,   165,
1369        0,     0,     0,   166,     0,     0,     0,     0,     0,     0,
1370       68,     0,     0,    69,    20,     0,     0,   167,   168,     0,
1371        0,   169,   518,     0,     0,     0,     0,     0,     0,     0,
1372      171,   172,   173,   174,     0,     0,   175,   176,   161,   162,
1373        0,     0,     0,    66,     0,     0,     0,   159,   160,     0,
1374        0,     0,   163,     0,     0,     0,     0,     0,   164,     0,
1375        0,     0,     0,     0,     0,   165,     0,     0,     0,   166,
1376        0,     0,     0,     0,     0,     0,    68,     0,     0,    69,
1377       20,     0,     0,   167,   168,     0,     0,   169,   527,     0,
1378      161,   162,     0,     0,     0,    66,   171,   172,   173,   174,
1379        0,     0,   175,   176,   163,     0,     0,     0,     0,     0,
1380      164,     0,     0,   159,   160,     0,     0,   165,     0,     0,
1381        0,   166,     0,     0,     0,     0,     0,     0,    68,     0,
1382        0,    69,    20,     0,     0,   167,   168,     0,     0,   169,
1383      554,     0,     0,     0,     0,     0,     0,     0,   171,   172,
1384      173,   174,     0,     0,   175,   176,   161,   162,     0,     0,
1385        0,    66,     0,     0,     0,   159,   160,     0,     0,     0,
1386      163,     0,     0,     0,     0,     0,   164,     0,     0,     0,
1387        0,     0,     0,   165,     0,     0,     0,   166,     0,     0,
1388        0,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1389        0,   167,   168,     0,     0,   169,     0,     0,   161,   162,
1390        0,   583,     0,    66,   171,   172,   173,   174,     0,     0,
1391      175,   176,   163,     0,     0,     0,     0,     0,   164,     0,
1392        0,   159,   160,     0,     0,   165,     0,     0,     0,   166,
1393        0,     0,     0,     0,     0,     0,    68,     0,     0,    69,
1394       20,     0,     0,   167,   168,     0,     0,   169,   597,     0,
1395        0,     0,     0,     0,     0,     0,   171,   172,   173,   174,
1396        0,     0,   175,   176,   161,   162,     0,     0,     0,    66,
1397        0,     0,     0,     0,     0,     0,     0,     0,   163,     0,
1398        0,     0,     0,     0,   164,     0,     0,     0,     0,     0,
1399        0,   165,     0,     0,     0,   166,     0,     0,     0,     0,
1400        0,     0,    68,     0,     0,    69,    20,     0,     0,   167,
1401      168,     0,     0,   169,     0,     0,     0,     0,     0,     0,
1402        0,     0,   171,   172,   173,   174,     0,     0,   175,   176,
1403      221,     0,   161,   162,   566,   222,   223,    66,   224,     0,
1404        0,   225,     0,     0,     0,   226,   163,     0,     0,   567,
1405        0,     0,   164,   227,     4,   228,     0,   229,   230,   165,
1406      231,     0,     0,   166,   232,     0,     0,     0,     0,     0,
1407       68,     0,     0,    69,    20,     0,     0,     0,     0,     0,
1408        0,   233,     0,   130,   591,     0,     0,     6,     0,     0,
1409      171,   172,   173,   174,     0,     0,   175,   176,   221,     0,
1410      161,   162,   566,   222,   223,    66,   224,     0,     0,   225,
1411        0,     0,     0,   226,   163,     0,     0,   567,     0,     0,
1412      164,   227,     4,   228,     0,   229,   230,   165,   231,     0,
1413        0,   166,   232,     0,     0,     0,     0,     0,    68,     0,
1414        0,    69,    20,     0,     0,     0,     0,     0,     0,   233,
1415        0,   130,   604,     0,     0,     6,     0,     0,   171,   172,
1416      173,   174,     0,     0,   175,   176,   221,     0,   161,   162,
1417        0,   222,   223,    66,   224,     0,     0,   225,     0,     0,
1418        0,   226,   163,     0,     0,     0,     0,     0,   164,   227,
1419        4,   228,     0,   229,   230,   165,   231,     0,     0,   166,
1420      232,     0,     0,     0,     0,     0,    68,     0,     0,    69,
1421       20,     0,     0,     0,     0,     0,     0,   233,     0,   130,
1422      234,     0,     0,     6,     0,     0,   171,   172,   173,   174,
1423        0,     0,   175,   176,   221,     0,   161,   162,     0,   222,
1424      223,    66,   224,     0,     0,   225,     0,     0,     0,   226,
1425      163,     0,     0,     0,     0,     0,   164,   227,     4,   228,
1426        0,   229,   230,   165,   231,     0,     0,   166,   232,     0,
1427        0,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1428        0,     0,     0,     0,     0,   233,     0,   130,   365,     0,
1429        0,     6,     0,     0,   171,   172,   173,   174,     0,     0,
1430      175,   176,   221,     0,   161,   162,     0,   222,   223,    66,
1431      224,     0,     0,   225,     0,     0,     0,   226,   163,     0,
1432        0,     0,     0,     0,   467,   227,     4,   228,     0,   229,
1433      230,   165,   231,     0,     0,   468,   232,     0,     0,     0,
1434        0,     0,    68,     0,     0,    69,    20,     0,     0,     0,
1435        0,     0,     0,   233,     0,   130,   469,     0,     0,     6,
1436        0,     0,   171,   172,   173,   174,     0,     0,   175,   176,
1437      221,     0,   161,   162,     0,   222,   223,    66,   224,     0,
1438        0,   225,     0,     0,     0,   226,   163,     0,     0,     0,
1439        0,     0,   164,   227,     4,   228,     0,   229,   230,   165,
1440      231,     0,     0,   166,   232,     0,     0,     0,     0,     0,
1441       68,     0,     0,    69,    20,     0,     0,     0,     0,     0,
1442        0,   233,     0,   130,   514,     0,     0,     6,     0,     0,
1443      171,   172,   173,   174,     0,     0,   175,   176,   221,     0,
1444      161,   162,     0,   222,   223,    66,   224,     0,     0,   225,
1445        0,     0,     0,   226,   163,     0,     0,     0,     0,     0,
1446      164,   227,     4,   228,     0,   229,   230,   165,   231,     0,
1447        0,   166,   232,     0,     0,     0,     0,     0,    68,     0,
1448        0,    69,    20,     0,     0,     0,     0,     0,     0,   233,
1449        0,   130,   517,     0,     0,     6,     0,     0,   171,   172,
1450      173,   174,     0,     0,   175,   176,   221,     0,   161,   162,
1451        0,   222,   223,    66,   224,     0,     0,   225,     0,     0,
1452        0,   226,   163,     0,     0,     0,     0,     0,   164,   227,
1453        4,   228,     0,   229,   230,   165,   231,     0,     0,   166,
1454      232,     0,     0,     0,     0,     0,    68,     0,     0,    69,
1455       20,     0,     0,     0,     0,     0,     0,   233,     0,   130,
1456      553,     0,     0,     6,     0,     0,   171,   172,   173,   174,
1457        0,     0,   175,   176,   221,     0,   161,   162,     0,   222,
1458      223,    66,   224,     0,     0,   225,     0,     0,     0,   226,
1459      163,     0,     0,     0,     0,     0,   164,   227,     4,   228,
1460        0,   229,   230,   165,   231,     0,     0,   166,   232,     0,
1461        0,     0,     0,     0,    68,     0,     0,    69,    20,     0,
1462        0,     0,     0,     0,     0,   233,     0,   130,     0,     0,
1463        0,     6,     0,     0,   171,   172,   173,   174,     0,     0,
1464      175,   176,   368,     0,   161,   162,     0,   222,   223,    66,
1465      224,     0,     0,   225,     0,     0,     0,   226,   163,     0,
1466        0,     0,     0,     0,   164,   227,     0,   228,     0,   229,
1467      230,   165,   231,     0,     0,   166,   232,     0,     0,     0,
1468        0,     0,    68,     0,     0,    69,    20,     0,     0,     0,
1469        0,     0,     0,   233,     0,   130,     0,     0,     0,     6,
1470        0,     0,   171,   172,   173,   174,     0,     0,   175,   176,
1471      368,     0,   161,   162,     0,   532,   223,    66,   224,     0,
1472        0,   225,     0,     0,     0,   226,   163,     0,     0,     0,
1473        0,     0,   164,   227,     0,   228,     0,   229,   230,   165,
1474      231,     0,     0,   166,   232,     0,     0,     0,     0,     0,
1475       68,     0,     0,    69,    20,     0,     0,     0,     0,     0,
1476        0,   233,     1,   130,   161,   162,     0,     6,     0,    66,
1477      171,   172,   173,   174,     0,     0,   175,   176,   163,     0,
1478        0,     0,     0,     0,   164,     0,     0,     0,     0,   161,
1479      162,   165,     0,     0,    66,   166,     0,     0,     0,     0,
1480        0,     0,    68,   163,     0,    69,    20,     0,     0,   164,
1481        0,     0,     0,   233,     0,     0,   165,     0,     0,     0,
1482      166,     0,   171,   172,   173,   174,     0,    68,   175,   176,
1483       69,    20,     0,     0,     0,     0,     0,     0,   233,     0,
1484        0,     0,     0,     0,     0,     0,     0,   171,   172,   173,
1485      174,     0,     0,   175,   176
1486 };
1487 
1488 static const short yycheck[] =
1489 {
1490        3,     4,   130,   105,   243,   113,   170,   262,   290,   159,
1491      160,   161,   162,     1,   150,   110,     0,   167,   168,   399,
1492       39,    96,     5,    42,    99,     9,    10,    11,   115,     1,
1493      100,   403,    35,    36,   110,    38,    44,    56,    15,   419,
1494      135,    60,    45,    54,    54,    29,   510,   142,    32,    33,
1495        9,    51,    11,     9,    62,   125,    88,   127,    10,   135,
1496       68,    54,    46,   101,    67,   103,    77,    77,    71,   498,
1497       54,    82,    82,    32,   144,    56,    32,    29,   165,    60,
1498       94,    33,    48,     0,    84,    99,    54,    87,    88,    82,
1499      109,    93,    94,   101,    46,   475,   115,    63,    82,   110,
1500      110,   104,   105,   114,   114,    88,    48,   536,     2,    97,
1501      539,     5,    89,   493,   486,    64,   119,   110,    90,   583,
1502      130,    63,   133,   133,   135,   135,   110,   130,   109,   101,
1503      114,    99,    98,   235,   229,   571,   516,    72,   602,   110,
1504      151,   151,   135,    96,   102,    39,   165,   150,    42,   102,
1505       96,   135,   288,    99,   590,   165,    98,    71,    57,   169,
1506       54,    64,    56,    62,   135,    44,    60,     0,    44,   101,
1507      102,   600,    51,   323,   324,   325,     9,    10,    11,   608,
1508       56,    88,   611,    77,   613,   188,    62,    73,    82,   284,
1509      104,   105,    68,    92,   101,   394,    29,   577,   397,    32,
1510       33,    88,    88,    53,   291,    84,   461,   462,    87,    88,
1511      130,   281,   110,    46,   101,   109,   110,    96,    96,   501,
1512      114,   115,   225,   536,   102,   101,   539,    44,   231,   240,
1513      240,    97,   235,   243,   473,   133,   130,   135,    96,   133,
1514      243,   135,   406,   178,   102,    62,    44,   250,   101,   102,
1515      400,    68,   262,    51,   257,   510,   259,   151,   386,    99,
1516       97,   103,   364,   103,   101,   159,   160,   161,   162,   280,
1517      280,   165,   291,   167,   168,   169,   515,   110,   262,   290,
1518      290,    44,     5,     6,     7,   288,    84,   600,   498,    87,
1519       88,   130,   101,    56,    54,   608,   280,   300,   611,    62,
1520      613,   236,   135,    96,    96,    68,   290,    68,   101,   102,
1521      102,    99,    73,    76,   317,   318,    77,    77,    18,    19,
1522       20,    21,    82,   243,   101,   335,   536,    88,   583,   539,
1523      250,   328,   329,   330,   102,   485,    95,   257,   101,   259,
1524       99,    44,   262,   471,   103,    96,   240,   602,    51,   243,
1525      110,   102,    99,   592,   114,   450,   103,    60,    58,    62,
1526       98,   364,   373,   373,   102,    68,   301,   302,   262,    97,
1527      130,   306,   307,   133,   498,   135,   386,   101,    61,   103,
1528       95,    84,    65,   386,    87,    88,   280,   495,    96,   100,
1529      600,   151,    99,   101,   102,    98,   290,   291,   608,    96,
1530       54,   611,    99,   613,   243,   100,   103,   331,   332,   333,
1531      334,   250,   536,   521,   498,   539,   511,    97,   257,    96,
1532      259,    96,   530,   262,    97,   102,    99,   102,   100,   323,
1533      324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
1534      334,   335,   336,   337,   338,   339,   340,   341,   342,   100,
1535      558,    96,   536,    95,   130,   539,   396,   102,   398,   394,
1536       97,   471,   397,   473,    44,   103,   386,    96,   471,   102,
1537      473,    51,   103,   102,    99,    44,   600,   103,   573,   373,
1538      240,   103,    51,   243,   608,    93,    94,   611,    68,   613,
1539      501,   501,   386,    11,    44,   498,    12,   432,     8,     9,
1540       10,    51,   262,    14,    84,   515,   400,    87,    88,   403,
1541      513,   130,   515,    46,    47,    84,   600,   501,    87,    88,
1542      280,    66,    13,    68,   608,     3,     4,   611,    73,   613,
1543      290,    95,    77,   536,    84,    95,   539,    87,    88,    16,
1544       17,   461,   462,    88,    95,   548,    96,   386,    95,    88,
1545       90,   471,    95,   473,    93,    94,    95,    93,    94,   562,
1546       99,   571,    46,    47,   103,    46,    47,   243,   571,   326,
1547      327,   336,   337,   576,   250,   335,   101,   471,   498,   473,
1548      590,   257,   592,   259,   101,    97,   262,   590,   101,   592,
1549      510,   485,   486,    44,    95,   515,    99,   600,    68,   130,
1550       51,    99,    95,   497,    96,   608,    68,   501,   611,    60,
1551      613,    62,    98,   373,    68,    95,   536,    68,   101,   539,
1552      102,   515,   461,   462,   243,   101,   386,   101,   548,   101,
1553       96,   250,   471,    84,   473,     0,    87,    88,   257,    67,
1554      259,   101,   562,   262,     9,    10,    11,    98,    93,    94,
1555       95,   571,   102,    95,    99,    95,   576,   100,   103,   498,
1556       90,   100,    96,   583,    29,    96,    95,    32,    33,   130,
1557      590,   510,   592,    96,    95,   101,   515,   571,    96,    88,
1558      600,    46,   602,    95,    93,    94,    95,   101,   608,    54,
1559       99,   611,    95,   613,   103,   100,   590,   536,   592,    97,
1560      539,    97,   101,    96,    95,    97,    57,    57,    96,   548,
1561      386,   471,   243,   473,   101,    96,    96,    82,   250,   250,
1562       95,    90,    44,   562,   130,   257,   257,   259,   259,    51,
1563      101,   262,   571,   101,   101,    96,    90,   576,    60,   101,
1564       62,   501,   101,    96,   583,   110,    68,    57,    96,   101,
1565      335,   590,    11,   592,    48,   515,    64,   135,   280,   119,
1566      133,   600,    84,   602,   382,    87,    88,   386,    47,   608,
1567      135,    82,   611,   262,   613,    97,    98,   262,   569,   101,
1568      569,   451,   243,   451,    44,   461,   462,   302,   340,   250,
1569      338,    51,   341,   339,    -1,   471,   257,   473,   259,   497,
1570       60,   262,    62,    -1,   342,    44,    -1,    -1,    68,   346,
1571       -1,   571,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1572       -1,    60,   498,    62,    84,    -1,    -1,    87,    88,    68,
1573      590,    -1,   592,    -1,   510,    -1,    -1,   243,    -1,   515,
1574       -1,    -1,   461,   462,   250,    84,    -1,    -1,    87,    88,
1575       -1,   257,   471,   259,   473,   386,   262,    -1,    97,    98,
1576      536,    -1,   101,   539,    -1,    -1,    -1,    -1,    -1,    -1,
1577       -1,    -1,   548,    -1,    -1,    -1,    -1,    -1,    -1,   498,
1578       -1,    -1,   130,    -1,    -1,    -1,   562,    -1,    -1,    -1,
1579       -1,   510,    -1,    -1,    -1,   571,   515,    -1,    -1,    -1,
1580      576,    -1,    -1,    -1,    -1,    -1,    -1,   583,    -1,    -1,
1581       -1,    -1,    -1,    -1,   590,    -1,   592,   536,    -1,    -1,
1582      539,    -1,    -1,    -1,   600,   386,   602,    -1,    -1,   548,
1583      461,   462,   608,    -1,    -1,   611,    -1,   613,    -1,    -1,
1584      471,    -1,   473,   562,    -1,    -1,    -1,    -1,    -1,    -1,
1585       -1,    -1,   571,    -1,    -1,    -1,    -1,   576,    -1,    -1,
1586       -1,    -1,    -1,    -1,   583,    -1,   498,   498,    -1,    -1,
1587       -1,   590,    -1,   592,    -1,    -1,    -1,    -1,    -1,   510,
1588      386,   600,    -1,   602,   515,    -1,    -1,    -1,    -1,   608,
1589       -1,    -1,   611,   120,   613,   243,    -1,    -1,    -1,    -1,
1590      461,   462,   250,    -1,   536,   536,    -1,   539,   539,   257,
1591      471,   259,   473,    -1,   262,    -1,   548,   548,    -1,    -1,
1592       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1593      562,   562,    -1,    -1,    -1,    -1,    -1,   498,    -1,    -1,
1594      571,    -1,   169,   170,   576,   576,    -1,    -1,    -1,   510,
1595       -1,    -1,   583,    -1,   515,   461,   462,    -1,    -1,   590,
1596       -1,   592,    -1,    -1,    -1,   471,    -1,   473,   600,   600,
1597       -1,   602,    -1,    -1,    -1,   536,   608,   608,   539,   611,
1598      611,   613,   613,    -1,    -1,    -1,    -1,   548,    -1,    -1,
1599       -1,    -1,   498,    -1,    -1,    -1,   223,    -1,    -1,   226,
1600       -1,   562,    -1,    -1,   510,   232,   233,    -1,    -1,   515,
1601      571,    -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,    -1,
1602       -1,    -1,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,
1603      536,   592,    -1,   539,    -1,    -1,    -1,    -1,   386,   600,
1604       -1,   602,   548,    -1,    -1,    -1,    -1,   608,    -1,    -1,
1605      611,    -1,   613,    -1,    -1,    -1,   562,    -1,    -1,    -1,
1606       -1,    -1,    -1,    -1,    -1,   571,    -1,    -1,    -1,    -1,
1607      576,    -1,    -1,    -1,    -1,    -1,    -1,   583,    -1,    -1,
1608       -1,    -1,    -1,    -1,   590,    -1,   592,    -1,    -1,   316,
1609       -1,    -1,   319,    -1,   600,    -1,   602,    -1,    -1,    -1,
1610       -1,    -1,   608,    -1,    -1,   611,    -1,   613,    -1,    -1,
1611       -1,    -1,    -1,   461,   462,    -1,   343,    -1,    -1,    -1,
1612      347,    -1,    -1,   471,    -1,   473,   353,   354,   159,   160,
1613      161,   162,    -1,    -1,    -1,    -1,   167,   168,    -1,    -1,
1614       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1615      498,   378,   379,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1616       -1,    -1,   510,    -1,    -1,    -1,   393,   515,    -1,    -1,
1617       -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   406,
1618       60,   159,   160,   161,   162,    -1,    66,    -1,   536,   167,
1619      168,   539,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
1620      548,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1621       -1,    91,    92,    -1,   562,    95,    -1,    -1,    -1,    -1,
1622       -1,    -1,    -1,   571,   104,   105,   106,   107,   576,   456,
1623      110,   111,    -1,    -1,    -1,   583,    -1,    -1,    -1,    -1,
1624       -1,    -1,   590,    -1,   592,    -1,    -1,    -1,    -1,    -1,
1625       -1,    -1,   600,    -1,   602,    -1,    -1,    -1,    -1,    -1,
1626      608,    -1,    -1,   611,   491,   613,    -1,    -1,    -1,    -1,
1627       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   506,
1628       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1629       -1,    -1,   323,   324,   325,   326,   327,   328,   329,   330,
1630      331,   332,   333,   334,    -1,   336,   337,   338,   339,   340,
1631      341,   342,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1632       -1,    -1,    -1,    -1,    -1,     1,    -1,     3,     4,    -1,
1633       -1,    -1,    -1,    -1,   561,    -1,    -1,    -1,   565,    -1,
1634      567,    -1,    -1,    -1,    -1,   323,   324,   325,   326,   327,
1635      328,   329,   330,   331,   332,   333,   334,    -1,   336,   337,
1636      338,   339,   340,   341,   342,    -1,    -1,    -1,    -1,   400,
1637       46,    47,   403,    -1,    -1,    51,    -1,    -1,    -1,    -1,
1638       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1639       66,     1,    -1,     3,     4,    -1,    -1,    73,    -1,    -1,
1640       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
1641       -1,    87,    88,    -1,    -1,    91,    92,    -1,    -1,    95,
1642       -1,    -1,   400,    -1,    -1,   403,    -1,    -1,   104,   105,
1643      106,   107,    -1,    -1,   110,   111,    46,    47,    -1,    -1,
1644       -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1645       60,    -1,    -1,    -1,   485,   486,    66,    -1,    -1,    -1,
1646       -1,     3,     4,    73,    -1,    -1,   497,    77,    -1,    -1,
1647       -1,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1648       -1,    91,    92,    -1,    -1,    95,    -1,    -1,    -1,    -1,
1649       -1,    -1,    -1,    -1,   104,   105,   106,   107,    -1,    -1,
1650      110,   111,    -1,    -1,    46,    47,    -1,   485,   486,    51,
1651       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,   497,
1652       -1,    -1,    -1,    -1,    66,    -1,    -1,     3,     4,    -1,
1653       -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
1654       -1,    -1,    84,    -1,    -1,    87,    88,    -1,    -1,    91,
1655       92,    -1,    -1,    95,    -1,    97,    98,    -1,    -1,    -1,
1656      102,    -1,   104,   105,   106,   107,    -1,    -1,   110,   111,
1657       46,    47,    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,
1658       -1,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1659       66,    -1,    -1,     3,     4,    -1,    -1,    73,    -1,    -1,
1660       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
1661       -1,    87,    88,    -1,    -1,    91,    92,    -1,    -1,    95,
1662       -1,    97,    98,    -1,    -1,    -1,    -1,    -1,   104,   105,
1663      106,   107,    -1,    -1,   110,   111,    46,    47,    -1,    -1,
1664       -1,    51,    -1,    -1,    -1,     3,     4,    -1,    -1,    -1,
1665       60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
1666       -1,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
1667       -1,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1668       -1,    91,    92,    -1,    -1,    95,    -1,    97,    46,    47,
1669       -1,    -1,    -1,    51,   104,   105,   106,   107,    -1,    -1,
1670      110,   111,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,
1671       -1,     3,     4,    -1,    -1,    73,    -1,    -1,    -1,    77,
1672       -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    87,
1673       88,    -1,    -1,    91,    92,    -1,    -1,    95,    -1,    -1,
1674       -1,    -1,    -1,   101,    -1,    -1,   104,   105,   106,   107,
1675       -1,    -1,   110,   111,    46,    47,    -1,    -1,    -1,    51,
1676       -1,    -1,    -1,     3,     4,    -1,    -1,    -1,    60,    -1,
1677       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
1678       -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
1679       -1,    -1,    84,    -1,    -1,    87,    88,    -1,    -1,    91,
1680       92,    -1,    -1,    95,    96,    -1,    46,    47,    -1,    -1,
1681       -1,    51,   104,   105,   106,   107,    -1,    -1,   110,   111,
1682       60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,     3,
1683        4,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
1684       -1,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1685       -1,    91,    92,    -1,    -1,    95,    -1,    -1,    -1,    -1,
1686      100,    -1,    -1,    -1,   104,   105,   106,   107,    -1,    -1,
1687      110,   111,    46,    47,    -1,    -1,    -1,    51,    -1,    -1,
1688       -1,     3,     4,    -1,    -1,    -1,    60,    -1,    -1,    -1,
1689       -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    73,
1690       -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
1691       84,    -1,    -1,    87,    88,    -1,    -1,    91,    92,    -1,
1692       -1,    95,    -1,    -1,    46,    47,    -1,   101,    -1,    51,
1693      104,   105,   106,   107,    -1,    -1,   110,   111,    60,    -1,
1694       -1,    -1,    -1,    -1,    66,    -1,    -1,     3,     4,    -1,
1695       -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
1696       -1,    -1,    84,    -1,    -1,    87,    88,    -1,    -1,    91,
1697       92,    -1,    -1,    95,    96,    -1,    -1,    -1,    -1,    -1,
1698       -1,    -1,   104,   105,   106,   107,    -1,    -1,   110,   111,
1699       46,    47,    -1,    -1,    -1,    51,    -1,    -1,    -1,     3,
1700        4,    -1,    -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,
1701       66,    -1,    -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,
1702       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
1703       -1,    87,    88,    -1,    -1,    91,    92,    -1,    -1,    95,
1704       96,    -1,    46,    47,    -1,    -1,    -1,    51,   104,   105,
1705      106,   107,    -1,    -1,   110,   111,    60,    -1,    -1,    -1,
1706       -1,    -1,    66,    -1,    -1,     3,     4,    -1,    -1,    73,
1707       -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
1708       84,    -1,    -1,    87,    88,    -1,    -1,    91,    92,    -1,
1709       -1,    95,    96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1710      104,   105,   106,   107,    -1,    -1,   110,   111,    46,    47,
1711       -1,    -1,    -1,    51,    -1,    -1,    -1,     3,     4,    -1,
1712       -1,    -1,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,
1713       -1,    -1,    -1,    -1,    -1,    73,    -1,    -1,    -1,    77,
1714       -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    87,
1715       88,    -1,    -1,    91,    92,    -1,    -1,    95,    96,    -1,
1716       46,    47,    -1,    -1,    -1,    51,   104,   105,   106,   107,
1717       -1,    -1,   110,   111,    60,    -1,    -1,    -1,    -1,    -1,
1718       66,    -1,    -1,     3,     4,    -1,    -1,    73,    -1,    -1,
1719       -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
1720       -1,    87,    88,    -1,    -1,    91,    92,    -1,    -1,    95,
1721       96,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,
1722      106,   107,    -1,    -1,   110,   111,    46,    47,    -1,    -1,
1723       -1,    51,    -1,    -1,    -1,     3,     4,    -1,    -1,    -1,
1724       60,    -1,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
1725       -1,    -1,    -1,    73,    -1,    -1,    -1,    77,    -1,    -1,
1726       -1,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1727       -1,    91,    92,    -1,    -1,    95,    -1,    -1,    46,    47,
1728       -1,   101,    -1,    51,   104,   105,   106,   107,    -1,    -1,
1729      110,   111,    60,    -1,    -1,    -1,    -1,    -1,    66,    -1,
1730       -1,     3,     4,    -1,    -1,    73,    -1,    -1,    -1,    77,
1731       -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    87,
1732       88,    -1,    -1,    91,    92,    -1,    -1,    95,    96,    -1,
1733       -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,   107,
1734       -1,    -1,   110,   111,    46,    47,    -1,    -1,    -1,    51,
1735       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
1736       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    -1,
1737       -1,    73,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
1738       -1,    -1,    84,    -1,    -1,    87,    88,    -1,    -1,    91,
1739       92,    -1,    -1,    95,    -1,    -1,    -1,    -1,    -1,    -1,
1740       -1,    -1,   104,   105,   106,   107,    -1,    -1,   110,   111,
1741       44,    -1,    46,    47,    48,    49,    50,    51,    52,    -1,
1742       -1,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    63,
1743       -1,    -1,    66,    67,    68,    69,    -1,    71,    72,    73,
1744       74,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,    -1,
1745       84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,
1746       -1,    95,    -1,    97,    98,    -1,    -1,   101,    -1,    -1,
1747      104,   105,   106,   107,    -1,    -1,   110,   111,    44,    -1,
1748       46,    47,    48,    49,    50,    51,    52,    -1,    -1,    55,
1749       -1,    -1,    -1,    59,    60,    -1,    -1,    63,    -1,    -1,
1750       66,    67,    68,    69,    -1,    71,    72,    73,    74,    -1,
1751       -1,    77,    78,    -1,    -1,    -1,    -1,    -1,    84,    -1,
1752       -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    95,
1753       -1,    97,    98,    -1,    -1,   101,    -1,    -1,   104,   105,
1754      106,   107,    -1,    -1,   110,   111,    44,    -1,    46,    47,
1755       -1,    49,    50,    51,    52,    -1,    -1,    55,    -1,    -1,
1756       -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    66,    67,
1757       68,    69,    -1,    71,    72,    73,    74,    -1,    -1,    77,
1758       78,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    87,
1759       88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    97,
1760       98,    -1,    -1,   101,    -1,    -1,   104,   105,   106,   107,
1761       -1,    -1,   110,   111,    44,    -1,    46,    47,    -1,    49,
1762       50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,    59,
1763       60,    -1,    -1,    -1,    -1,    -1,    66,    67,    68,    69,
1764       -1,    71,    72,    73,    74,    -1,    -1,    77,    78,    -1,
1765       -1,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1766       -1,    -1,    -1,    -1,    -1,    95,    -1,    97,    98,    -1,
1767       -1,   101,    -1,    -1,   104,   105,   106,   107,    -1,    -1,
1768      110,   111,    44,    -1,    46,    47,    -1,    49,    50,    51,
1769       52,    -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
1770       -1,    -1,    -1,    -1,    66,    67,    68,    69,    -1,    71,
1771       72,    73,    74,    -1,    -1,    77,    78,    -1,    -1,    -1,
1772       -1,    -1,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,
1773       -1,    -1,    -1,    95,    -1,    97,    98,    -1,    -1,   101,
1774       -1,    -1,   104,   105,   106,   107,    -1,    -1,   110,   111,
1775       44,    -1,    46,    47,    -1,    49,    50,    51,    52,    -1,
1776       -1,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
1777       -1,    -1,    66,    67,    68,    69,    -1,    71,    72,    73,
1778       74,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,    -1,
1779       84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,
1780       -1,    95,    -1,    97,    98,    -1,    -1,   101,    -1,    -1,
1781      104,   105,   106,   107,    -1,    -1,   110,   111,    44,    -1,
1782       46,    47,    -1,    49,    50,    51,    52,    -1,    -1,    55,
1783       -1,    -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,
1784       66,    67,    68,    69,    -1,    71,    72,    73,    74,    -1,
1785       -1,    77,    78,    -1,    -1,    -1,    -1,    -1,    84,    -1,
1786       -1,    87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    95,
1787       -1,    97,    98,    -1,    -1,   101,    -1,    -1,   104,   105,
1788      106,   107,    -1,    -1,   110,   111,    44,    -1,    46,    47,
1789       -1,    49,    50,    51,    52,    -1,    -1,    55,    -1,    -1,
1790       -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    66,    67,
1791       68,    69,    -1,    71,    72,    73,    74,    -1,    -1,    77,
1792       78,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    87,
1793       88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,    97,
1794       98,    -1,    -1,   101,    -1,    -1,   104,   105,   106,   107,
1795       -1,    -1,   110,   111,    44,    -1,    46,    47,    -1,    49,
1796       50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,    59,
1797       60,    -1,    -1,    -1,    -1,    -1,    66,    67,    68,    69,
1798       -1,    71,    72,    73,    74,    -1,    -1,    77,    78,    -1,
1799       -1,    -1,    -1,    -1,    84,    -1,    -1,    87,    88,    -1,
1800       -1,    -1,    -1,    -1,    -1,    95,    -1,    97,    -1,    -1,
1801       -1,   101,    -1,    -1,   104,   105,   106,   107,    -1,    -1,
1802      110,   111,    44,    -1,    46,    47,    -1,    49,    50,    51,
1803       52,    -1,    -1,    55,    -1,    -1,    -1,    59,    60,    -1,
1804       -1,    -1,    -1,    -1,    66,    67,    -1,    69,    -1,    71,
1805       72,    73,    74,    -1,    -1,    77,    78,    -1,    -1,    -1,
1806       -1,    -1,    84,    -1,    -1,    87,    88,    -1,    -1,    -1,
1807       -1,    -1,    -1,    95,    -1,    97,    -1,    -1,    -1,   101,
1808       -1,    -1,   104,   105,   106,   107,    -1,    -1,   110,   111,
1809       44,    -1,    46,    47,    -1,    49,    50,    51,    52,    -1,
1810       -1,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
1811       -1,    -1,    66,    67,    -1,    69,    -1,    71,    72,    73,
1812       74,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,    -1,
1813       84,    -1,    -1,    87,    88,    -1,    -1,    -1,    -1,    -1,
1814       -1,    95,    44,    97,    46,    47,    -1,   101,    -1,    51,
1815      104,   105,   106,   107,    -1,    -1,   110,   111,    60,    -1,
1816       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    46,
1817       47,    73,    -1,    -1,    51,    77,    -1,    -1,    -1,    -1,
1818       -1,    -1,    84,    60,    -1,    87,    88,    -1,    -1,    66,
1819       -1,    -1,    -1,    95,    -1,    -1,    73,    -1,    -1,    -1,
1820       77,    -1,   104,   105,   106,   107,    -1,    84,   110,   111,
1821       87,    88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    -1,
1822       -1,    -1,    -1,    -1,    -1,    -1,    -1,   104,   105,   106,
1823      107,    -1,    -1,   110,   111
1824 };
1825 
1826 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1827    symbol of state STATE-NUM.  */
1828 static const unsigned short yystos[] =
1829 {
1830        0,    44,    56,    62,    68,    76,   101,   113,   126,   127,
1831      128,   129,   130,   131,   132,   133,   134,   135,   166,   187,
1832       88,   122,   123,   124,   125,   125,   125,   122,     0,   128,
1833      130,   133,   127,   128,    44,    62,    68,   101,   103,    64,
1834      167,   171,    64,   138,   101,   103,   128,   125,   125,     5,
1835      125,   118,   120,   122,    97,   172,   102,   169,   118,   119,
1836       53,   139,   168,   171,   138,   101,    51,    60,    84,    87,
1837       98,   115,   116,   117,   118,   121,   122,   134,   135,   145,
1838      152,   166,   173,   174,   175,   176,   120,   172,   120,   140,
1839      137,   172,   170,   139,   125,   153,   125,   146,   147,   148,
1840      153,    99,   237,   237,    60,   115,   101,    98,   174,   102,
1841       97,   141,   172,   136,    95,    54,    99,   156,   101,   102,
1842       94,    99,   156,   100,    99,   153,   146,   153,   120,    44,
1843       97,    98,   123,   134,   135,   142,   143,   144,   145,   150,
1844      152,   159,   160,   161,   162,   166,   179,   187,   141,    96,
1845      115,   134,   154,   155,   119,   157,   100,   125,   147,     3,
1846        4,    46,    47,    60,    66,    73,    77,    91,    92,    95,
1847       97,   104,   105,   106,   107,   110,   111,   114,   116,   121,
1848      122,   149,   177,   225,   226,   227,   228,   229,   232,   234,
1849      238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1850      248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1851      258,   259,   260,   261,   262,   264,   100,   100,   156,   101,
1852      156,    44,    49,    50,    52,    55,    59,    67,    69,    71,
1853       72,    74,    78,    95,    98,   115,   116,   121,   122,   125,
1854      134,   135,   179,   180,   181,   182,   183,   184,   186,   187,
1855      188,   189,   191,   192,   193,   194,   196,   202,   203,   205,
1856      206,   207,   209,   210,   214,   215,   216,   217,   218,   219,
1857      220,   221,   228,   239,   241,   242,   243,   245,   246,   261,
1858       95,   162,    98,   143,   151,   179,   156,   148,   115,    96,
1859      102,   102,   122,   238,   240,   244,   244,   244,   244,   103,
1860      103,   116,   118,   119,   244,   244,   116,   122,   264,    98,
1861      102,   149,   178,   103,   103,    95,    99,   103,   103,    99,
1862      125,    46,    47,     5,     6,     7,     3,     4,     8,     9,
1863       10,    18,    19,    20,    21,    58,    16,    17,    11,    12,
1864       13,    14,    15,    89,    93,    94,   263,    95,   264,   101,
1865      125,   101,   264,    95,    95,   179,    95,   101,   125,     1,
1866      264,   264,   146,    90,   115,    98,   181,   101,    44,   184,
1867      101,   184,   184,   134,   183,   192,   211,   213,   101,    95,
1868       96,   154,   156,   101,   158,   179,    97,   163,   148,   155,
1869      119,    68,   125,    99,   235,   236,   237,   235,   237,    95,
1870       96,   237,   237,    96,    98,    98,   102,    68,    68,    96,
1871      233,   264,   264,    68,    73,    77,    73,   125,   264,    95,
1872      244,   244,   244,   249,   249,   250,   250,   250,   251,   251,
1873      251,   251,   116,   117,   252,   252,   253,   254,   255,   256,
1874      257,   264,   260,   264,   101,   101,   101,   264,   264,    61,
1875       65,   222,   223,   224,   101,     1,    90,   101,    96,   146,
1876       67,   102,   101,   264,   264,    96,   163,    66,    77,    98,
1877      122,   164,   165,   180,   101,    95,   264,   236,   237,   177,
1878      237,   177,    96,   233,   244,    96,    96,   247,    98,   149,
1879       96,   102,   100,    95,   100,    96,   233,    90,    96,    96,
1880       96,    95,   179,   223,   224,   264,    95,   192,   212,   213,
1881      101,    96,   101,   103,    98,   180,    95,    98,    96,   233,
1882      100,   230,    96,   244,   247,     1,   264,    96,   233,   141,
1883       96,   259,    49,   184,   185,   186,   188,   190,   195,   202,
1884      204,   208,   210,    97,   197,   155,   101,   264,    96,   212,
1885        1,   179,    66,    98,    96,   233,    96,   141,   231,    96,
1886      141,    95,    57,   185,   185,   101,    48,    63,    98,   198,
1887      199,   200,   201,    96,    96,   184,    96,    95,   101,    96,
1888      141,   264,   184,   101,   264,    90,   264,   265,    98,   199,
1889      200,    98,   180,   201,   179,   101,   184,    96,   233,   101,
1890       96,   212,   101,    90,    98,   101,    96,   185,    96,   212,
1891      101,    57,   185,    96,   185,   185
1892 };
1893 
1894 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1895 # define YYSIZE_T __SIZE_TYPE__
1896 #endif
1897 #if ! defined (YYSIZE_T) && defined (size_t)
1898 # define YYSIZE_T size_t
1899 #endif
1900 #if ! defined (YYSIZE_T)
1901 # if defined (__STDC__) || defined (__cplusplus)
1902 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1903 #  define YYSIZE_T size_t
1904 # endif
1905 #endif
1906 #if ! defined (YYSIZE_T)
1907 # define YYSIZE_T unsigned int
1908 #endif
1909 
1910 #define yyerrok		(yyerrstatus = 0)
1911 #define yyclearin	(yychar = YYEMPTY)
1912 #define YYEMPTY		-2
1913 #define YYEOF		0
1914 
1915 #define YYACCEPT	goto yyacceptlab
1916 #define YYABORT		goto yyabortlab
1917 #define YYERROR		goto yyerrlab1
1918 
1919 /* Like YYERROR except do call yyerror.  This remains here temporarily
1920    to ease the transition to the new meaning of YYERROR, for GCC.
1921    Once GCC version 2 has supplanted version 1, this can go.  */
1922 
1923 #define YYFAIL		goto yyerrlab
1924 
1925 #define YYRECOVERING()  (!!yyerrstatus)
1926 
1927 #define YYBACKUP(Token, Value)					\
1928 do								\
1929   if (yychar == YYEMPTY && yylen == 1)				\
1930     {								\
1931       yychar = (Token);						\
1932       yylval = (Value);						\
1933       yychar1 = YYTRANSLATE (yychar);				\
1934       YYPOPSTACK;						\
1935       goto yybackup;						\
1936     }								\
1937   else								\
1938     { 								\
1939       yyerror ("syntax error: cannot back up");			\
1940       YYERROR;							\
1941     }								\
1942 while (0)
1943 
1944 #define YYTERROR	1
1945 #define YYERRCODE	256
1946 
1947 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1948    are run).  */
1949 
1950 #ifndef YYLLOC_DEFAULT
1951 # define YYLLOC_DEFAULT(Current, Rhs, N)           \
1952   Current.first_line   = Rhs[1].first_line;      \
1953   Current.first_column = Rhs[1].first_column;    \
1954   Current.last_line    = Rhs[N].last_line;       \
1955   Current.last_column  = Rhs[N].last_column;
1956 #endif
1957 
1958 /* YYLEX -- calling `yylex' with the right arguments.  */
1959 
1960 #ifdef YYLEX_PARAM
1961 # define YYLEX	yylex (&yylval, YYLEX_PARAM)
1962 #else
1963 # define YYLEX	yylex (&yylval)
1964 #endif
1965 
1966 /* Enable debugging if requested.  */
1967 #if YYDEBUG
1968 
1969 # ifndef YYFPRINTF
1970 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1971 #  define YYFPRINTF fprintf
1972 # endif
1973 
1974 # define YYDPRINTF(Args)			\
1975 do {						\
1976   if (yydebug)					\
1977     YYFPRINTF Args;				\
1978 } while (0)
1979 # define YYDSYMPRINT(Args)			\
1980 do {						\
1981   if (yydebug)					\
1982     yysymprint Args;				\
1983 } while (0)
1984 /* Nonzero means print parse trace.  It is left uninitialized so that
1985    multiple parsers can coexist.  */
1986 int yydebug;
1987 #else /* !YYDEBUG */
1988 # define YYDPRINTF(Args)
1989 # define YYDSYMPRINT(Args)
1990 #endif /* !YYDEBUG */
1991 
1992 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1993 #ifndef	YYINITDEPTH
1994 # define YYINITDEPTH 200
1995 #endif
1996 
1997 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1998    if the built-in stack extension method is used).
1999 
2000    Do not make this value too large; the results are undefined if
2001    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
2002    evaluated with infinite-precision integer arithmetic.  */
2003 
2004 #if YYMAXDEPTH == 0
2005 # undef YYMAXDEPTH
2006 #endif
2007 
2008 #ifndef YYMAXDEPTH
2009 # define YYMAXDEPTH 10000
2010 #endif
2011 
2012 
2013 
2014 #if YYERROR_VERBOSE
2015 
2016 # ifndef yystrlen
2017 #  if defined (__GLIBC__) && defined (_STRING_H)
2018 #   define yystrlen strlen
2019 #  else
2020 /* Return the length of YYSTR.  */
2021 static YYSIZE_T
2022 #   if defined (__STDC__) || defined (__cplusplus)
yystrlen(const char * yystr)2023 yystrlen (const char *yystr)
2024 #   else
2025 yystrlen (yystr)
2026      const char *yystr;
2027 #   endif
2028 {
2029   register const char *yys = yystr;
2030 
2031   while (*yys++ != '\0')
2032     continue;
2033 
2034   return yys - yystr - 1;
2035 }
2036 #  endif
2037 # endif
2038 
2039 # ifndef yystpcpy
2040 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
2041 #   define yystpcpy stpcpy
2042 #  else
2043 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2044    YYDEST.  */
2045 static char *
2046 #   if defined (__STDC__) || defined (__cplusplus)
yystpcpy(char * yydest,const char * yysrc)2047 yystpcpy (char *yydest, const char *yysrc)
2048 #   else
2049 yystpcpy (yydest, yysrc)
2050      char *yydest;
2051      const char *yysrc;
2052 #   endif
2053 {
2054   register char *yyd = yydest;
2055   register const char *yys = yysrc;
2056 
2057   while ((*yyd++ = *yys++) != '\0')
2058     continue;
2059 
2060   return yyd - 1;
2061 }
2062 #  endif
2063 # endif
2064 
2065 #endif /* !YYERROR_VERBOSE */
2066 
2067 
2068 
2069 #if YYDEBUG
2070 /*-----------------------------.
2071 | Print this symbol on YYOUT.  |
2072 `-----------------------------*/
2073 
2074 static void
2075 #if defined (__STDC__) || defined (__cplusplus)
yysymprint(FILE * yyout,int yytype,YYSTYPE yyvalue)2076 yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue)
2077 #else
2078 yysymprint (yyout, yytype, yyvalue)
2079     FILE* yyout;
2080     int yytype;
2081     YYSTYPE yyvalue;
2082 #endif
2083 {
2084   /* Pacify ``unused variable'' warnings.  */
2085   (void) yyvalue;
2086 
2087   if (yytype < YYNTOKENS)
2088     {
2089       YYFPRINTF (yyout, "token %s (", yytname[yytype]);
2090 # ifdef YYPRINT
2091       YYPRINT (yyout, yytoknum[yytype], yyvalue);
2092 # endif
2093     }
2094   else
2095     YYFPRINTF (yyout, "nterm %s (", yytname[yytype]);
2096 
2097   switch (yytype)
2098     {
2099       default:
2100         break;
2101     }
2102   YYFPRINTF (yyout, ")");
2103 }
2104 #endif /* YYDEBUG. */
2105 
2106 
2107 /*-----------------------------------------------.
2108 | Release the memory associated to this symbol.  |
2109 `-----------------------------------------------*/
2110 
2111 static void
2112 #if defined (__STDC__) || defined (__cplusplus)
yydestruct(int yytype,YYSTYPE yyvalue)2113 yydestruct (int yytype, YYSTYPE yyvalue)
2114 #else
2115 yydestruct (yytype, yyvalue)
2116     int yytype;
2117     YYSTYPE yyvalue;
2118 #endif
2119 {
2120   /* Pacify ``unused variable'' warnings.  */
2121   (void) yyvalue;
2122 
2123   switch (yytype)
2124     {
2125       default:
2126         break;
2127     }
2128 }
2129 
2130 
2131 
2132 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
2133    into yyparse.  The argument should have type void *.
2134    It should actually point to an object.
2135    Grammar actions can access the variable by casting it
2136    to the proper pointer type.  */
2137 
2138 #ifdef YYPARSE_PARAM
2139 # if defined (__STDC__) || defined (__cplusplus)
2140 #  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
2141 #  define YYPARSE_PARAM_DECL
2142 # else
2143 #  define YYPARSE_PARAM_ARG YYPARSE_PARAM
2144 #  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
2145 # endif
2146 #else /* !YYPARSE_PARAM */
2147 # define YYPARSE_PARAM_ARG
2148 # define YYPARSE_PARAM_DECL
2149 #endif /* !YYPARSE_PARAM */
2150 
2151 /* Prevent warning if -Wstrict-prototypes.  */
2152 #ifdef __GNUC__
2153 # ifdef YYPARSE_PARAM
2154 int yyparse (void *);
2155 # else
2156 int yyparse (void);
2157 # endif
2158 #endif
2159 
2160 
2161 
2162 
2163 int
yyparse(YYPARSE_PARAM_ARG)2164 yyparse (YYPARSE_PARAM_ARG)
2165      YYPARSE_PARAM_DECL
2166 {
2167   /* The lookahead symbol.  */
2168 int yychar;
2169 
2170 /* The semantic value of the lookahead symbol.  */
2171 YYSTYPE yylval;
2172 
2173 /* Number of parse errors so far.  */
2174 int yynerrs;
2175 
2176   register int yystate;
2177   register int yyn;
2178   int yyresult;
2179   /* Number of tokens to shift before error messages enabled.  */
2180   int yyerrstatus;
2181   /* Lookahead token as an internal (translated) token number.  */
2182   int yychar1 = 0;
2183 
2184   /* Three stacks and their tools:
2185      `yyss': related to states,
2186      `yyvs': related to semantic values,
2187      `yyls': related to locations.
2188 
2189      Refer to the stacks thru separate pointers, to allow yyoverflow
2190      to reallocate them elsewhere.  */
2191 
2192   /* The state stack.  */
2193   short	yyssa[YYINITDEPTH];
2194   short *yyss = yyssa;
2195   register short *yyssp;
2196 
2197   /* The semantic value stack.  */
2198   YYSTYPE yyvsa[YYINITDEPTH];
2199   YYSTYPE *yyvs = yyvsa;
2200   register YYSTYPE *yyvsp;
2201 
2202 
2203 
2204 #define YYPOPSTACK   (yyvsp--, yyssp--)
2205 
2206   YYSIZE_T yystacksize = YYINITDEPTH;
2207 
2208   /* The variables used to return semantic value and location from the
2209      action routines.  */
2210   YYSTYPE yyval;
2211 
2212 
2213   /* When reducing, the number of symbols on the RHS of the reduced
2214      rule.  */
2215   int yylen;
2216 
2217   YYDPRINTF ((stderr, "Starting parse\n"));
2218 
2219   yystate = 0;
2220   yyerrstatus = 0;
2221   yynerrs = 0;
2222   yychar = YYEMPTY;		/* Cause a token to be read.  */
2223 
2224   /* Initialize stack pointers.
2225      Waste one element of value and location stack
2226      so that they stay on the same level as the state stack.
2227      The wasted elements are never initialized.  */
2228 
2229   yyssp = yyss;
2230   yyvsp = yyvs;
2231 
2232   goto yysetstate;
2233 
2234 /*------------------------------------------------------------.
2235 | yynewstate -- Push a new state, which is found in yystate.  |
2236 `------------------------------------------------------------*/
2237  yynewstate:
2238   /* In all cases, when you get here, the value and location stacks
2239      have just been pushed. so pushing a state here evens the stacks.
2240      */
2241   yyssp++;
2242 
2243  yysetstate:
2244   *yyssp = yystate;
2245 
2246   if (yyssp >= yyss + yystacksize - 1)
2247     {
2248       /* Get the current used size of the three stacks, in elements.  */
2249       YYSIZE_T yysize = yyssp - yyss + 1;
2250 
2251 #ifdef yyoverflow
2252       {
2253 	/* Give user a chance to reallocate the stack. Use copies of
2254 	   these so that the &'s don't force the real ones into
2255 	   memory.  */
2256 	YYSTYPE *yyvs1 = yyvs;
2257 	short *yyss1 = yyss;
2258 
2259 
2260 	/* Each stack pointer address is followed by the size of the
2261 	   data in use in that stack, in bytes.  This used to be a
2262 	   conditional around just the two extra args, but that might
2263 	   be undefined if yyoverflow is a macro.  */
2264 	yyoverflow ("parser stack overflow",
2265 		    &yyss1, yysize * sizeof (*yyssp),
2266 		    &yyvs1, yysize * sizeof (*yyvsp),
2267 
2268 		    &yystacksize);
2269 
2270 	yyss = yyss1;
2271 	yyvs = yyvs1;
2272       }
2273 #else /* no yyoverflow */
2274 # ifndef YYSTACK_RELOCATE
2275       goto yyoverflowlab;
2276 # else
2277       /* Extend the stack our own way.  */
2278       if (yystacksize >= YYMAXDEPTH)
2279 	goto yyoverflowlab;
2280       yystacksize *= 2;
2281       if (yystacksize > YYMAXDEPTH)
2282 	yystacksize = YYMAXDEPTH;
2283 
2284       {
2285 	short *yyss1 = yyss;
2286 	union yyalloc *yyptr =
2287 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2288 	if (! yyptr)
2289 	  goto yyoverflowlab;
2290 	YYSTACK_RELOCATE (yyss);
2291 	YYSTACK_RELOCATE (yyvs);
2292 
2293 #  undef YYSTACK_RELOCATE
2294 	if (yyss1 != yyssa)
2295 	  YYSTACK_FREE (yyss1);
2296       }
2297 # endif
2298 #endif /* no yyoverflow */
2299 
2300       yyssp = yyss + yysize - 1;
2301       yyvsp = yyvs + yysize - 1;
2302 
2303 
2304       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2305 		  (unsigned long int) yystacksize));
2306 
2307       if (yyssp >= yyss + yystacksize - 1)
2308 	YYABORT;
2309     }
2310 
2311   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2312 
2313   goto yybackup;
2314 
2315 /*-----------.
2316 | yybackup.  |
2317 `-----------*/
2318 yybackup:
2319 
2320 /* Do appropriate processing given the current state.  */
2321 /* Read a lookahead token if we need one and don't already have one.  */
2322 /* yyresume: */
2323 
2324   /* First try to decide what to do without reference to lookahead token.  */
2325 
2326   yyn = yypact[yystate];
2327   if (yyn == YYPACT_NINF)
2328     goto yydefault;
2329 
2330   /* Not known => get a lookahead token if don't already have one.  */
2331 
2332   /* yychar is either YYEMPTY or YYEOF
2333      or a valid token in external form.  */
2334 
2335   if (yychar == YYEMPTY)
2336     {
2337       YYDPRINTF ((stderr, "Reading a token: "));
2338       yychar = YYLEX;
2339     }
2340 
2341   /* Convert token to internal form (in yychar1) for indexing tables with.  */
2342 
2343   if (yychar <= 0)		/* This means end of input.  */
2344     {
2345       yychar1 = 0;
2346       yychar = YYEOF;		/* Don't call YYLEX any more.  */
2347 
2348       YYDPRINTF ((stderr, "Now at end of input.\n"));
2349     }
2350   else
2351     {
2352       yychar1 = YYTRANSLATE (yychar);
2353 
2354       /* We have to keep this `#if YYDEBUG', since we use variables
2355 	 which are defined only if `YYDEBUG' is set.  */
2356       YYDPRINTF ((stderr, "Next token is "));
2357       YYDSYMPRINT ((stderr, yychar1, yylval));
2358       YYDPRINTF ((stderr, "\n"));
2359     }
2360 
2361   /* If the proper action on seeing token YYCHAR1 is to reduce or to
2362      detect an error, take that action.  */
2363   yyn += yychar1;
2364   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
2365     goto yydefault;
2366   yyn = yytable[yyn];
2367   if (yyn <= 0)
2368     {
2369       if (yyn == 0 || yyn == YYTABLE_NINF)
2370 	goto yyerrlab;
2371       yyn = -yyn;
2372       goto yyreduce;
2373     }
2374 
2375   if (yyn == YYFINAL)
2376     YYACCEPT;
2377 
2378   /* Shift the lookahead token.  */
2379   YYDPRINTF ((stderr, "Shifting token %d (%s), ",
2380 	      yychar, yytname[yychar1]));
2381 
2382   /* Discard the token being shifted unless it is eof.  */
2383   if (yychar != YYEOF)
2384     yychar = YYEMPTY;
2385 
2386   *++yyvsp = yylval;
2387 
2388 
2389   /* Count tokens shifted since error; after three, turn off error
2390      status.  */
2391   if (yyerrstatus)
2392     yyerrstatus--;
2393 
2394   yystate = yyn;
2395   goto yynewstate;
2396 
2397 
2398 /*-----------------------------------------------------------.
2399 | yydefault -- do the default action for the current state.  |
2400 `-----------------------------------------------------------*/
2401 yydefault:
2402   yyn = yydefact[yystate];
2403   if (yyn == 0)
2404     goto yyerrlab;
2405   goto yyreduce;
2406 
2407 
2408 /*-----------------------------.
2409 | yyreduce -- Do a reduction.  |
2410 `-----------------------------*/
2411 yyreduce:
2412   /* yyn is the number of a rule to reduce with.  */
2413   yylen = yyr2[yyn];
2414 
2415   /* If YYLEN is nonzero, implement the default value of the action:
2416      `$$ = $1'.
2417 
2418      Otherwise, the following line sets YYVAL to garbage.
2419      This behavior is undocumented and Bison
2420      users should not rely upon it.  Assigning to YYVAL
2421      unconditionally makes the parser a bit smaller, and it avoids a
2422      GCC warning that YYVAL may be used uninitialized.  */
2423   yyval = yyvsp[1-yylen];
2424 
2425 
2426 
2427 #if YYDEBUG
2428   /* We have to keep this `#if YYDEBUG', since we use variables which
2429      are defined only if `YYDEBUG' is set.  */
2430   if (yydebug)
2431     {
2432       int yyi;
2433 
2434       YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
2435 		 yyn - 1, yyrline[yyn]);
2436 
2437       /* Print the symbols being reduced, and their result.  */
2438       for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
2439 	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
2440       YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
2441     }
2442 #endif
2443   switch (yyn)
2444     {
2445         case 11:
2446 #line 199 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2447     {
2448 		  /* use preset global here. FIXME */
2449 		  yyval.node = xstrdup ("int");
2450 		}
2451     break;
2452 
2453   case 12:
2454 #line 204 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2455     {
2456 		  /* use preset global here. FIXME */
2457 		  yyval.node = xstrdup ("double");
2458 		}
2459     break;
2460 
2461   case 13:
2462 #line 209 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2463     {
2464 		  /* use preset global here. FIXME */
2465 		  yyval.node = xstrdup ("boolean");
2466 		}
2467     break;
2468 
2469   case 19:
2470 #line 234 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2471     {
2472 	          while (bracket_count-- > 0)
2473 		    yyval.node = concat ("[", yyvsp[-1].node, NULL);
2474 		}
2475     break;
2476 
2477   case 20:
2478 #line 239 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2479     {
2480 	          while (bracket_count-- > 0)
2481 		    yyval.node = concat ("[", yyvsp[-1].node, NULL);
2482 		}
2483     break;
2484 
2485   case 24:
2486 #line 257 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2487     {
2488 		  yyval.node = concat (yyvsp[-2].node, ".", yyvsp[0].node, NULL);
2489 		}
2490     break;
2491 
2492   case 38:
2493 #line 289 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2494     { package_name = yyvsp[-1].node; }
2495     break;
2496 
2497   case 46:
2498 #line 314 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2499     {
2500 		  if (yyvsp[0].value == PUBLIC_TK)
2501 		    modifier_value++;
2502                   if (yyvsp[0].value == STATIC_TK)
2503                     modifier_value++;
2504 	          USE_ABSORBER;
2505 		}
2506     break;
2507 
2508   case 47:
2509 #line 322 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2510     {
2511 		  if (yyvsp[0].value == PUBLIC_TK)
2512 		    modifier_value++;
2513                   if (yyvsp[0].value == STATIC_TK)
2514                     modifier_value++;
2515 		  USE_ABSORBER;
2516 		}
2517     break;
2518 
2519   case 48:
2520 #line 334 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2521     {
2522 		  report_class_declaration(yyvsp[-2].node);
2523 		  modifier_value = 0;
2524                 }
2525     break;
2526 
2527   case 50:
2528 #line 340 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2529     { report_class_declaration(yyvsp[-2].node); }
2530     break;
2531 
2532   case 56:
2533 #line 354 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2534     { USE_ABSORBER; }
2535     break;
2536 
2537   case 57:
2538 #line 356 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2539     { USE_ABSORBER; }
2540     break;
2541 
2542   case 58:
2543 #line 361 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2544     { pop_class_context (); }
2545     break;
2546 
2547   case 59:
2548 #line 363 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2549     { pop_class_context (); }
2550     break;
2551 
2552   case 71:
2553 #line 389 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2554     { USE_ABSORBER; }
2555     break;
2556 
2557   case 72:
2558 #line 391 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2559     { modifier_value = 0; }
2560     break;
2561 
2562   case 77:
2563 #line 407 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2564     { bracket_count = 0; USE_ABSORBER; }
2565     break;
2566 
2567   case 78:
2568 #line 409 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2569     { ++bracket_count; }
2570     break;
2571 
2572   case 81:
2573 #line 420 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2574     { ++method_depth; }
2575     break;
2576 
2577   case 82:
2578 #line 422 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2579     { --method_depth; }
2580     break;
2581 
2582   case 83:
2583 #line 427 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2584     { USE_ABSORBER; }
2585     break;
2586 
2587   case 85:
2588 #line 430 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2589     { modifier_value = 0; }
2590     break;
2591 
2592   case 86:
2593 #line 432 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2594     {
2595                   report_main_declaration (yyvsp[-1].declarator);
2596 		  modifier_value = 0;
2597 		}
2598     break;
2599 
2600   case 87:
2601 #line 440 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2602     {
2603 		  struct method_declarator *d;
2604 		  NEW_METHOD_DECLARATOR (d, yyvsp[-2].node, NULL);
2605 		  yyval.declarator = d;
2606 		}
2607     break;
2608 
2609   case 88:
2610 #line 446 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2611     {
2612 		  struct method_declarator *d;
2613 		  NEW_METHOD_DECLARATOR (d, yyvsp[-3].node, yyvsp[-1].node);
2614 		  yyval.declarator = d;
2615 		}
2616     break;
2617 
2618   case 91:
2619 #line 457 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2620     {
2621 		  yyval.node = concat (yyvsp[-2].node, ",", yyvsp[0].node, NULL);
2622 		}
2623     break;
2624 
2625   case 92:
2626 #line 464 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2627     {
2628 		  USE_ABSORBER;
2629 		  if (bracket_count)
2630 		    {
2631 		      int i;
2632 		      char *n = xmalloc (bracket_count + 1 + strlen (yyval.node));
2633 		      for (i = 0; i < bracket_count; ++i)
2634 			n[i] = '[';
2635 		      strcpy (n + bracket_count, yyval.node);
2636 		      yyval.node = n;
2637 		    }
2638 		  else
2639 		    yyval.node = yyvsp[-1].node;
2640 		}
2641     break;
2642 
2643   case 93:
2644 #line 479 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2645     {
2646 		  if (bracket_count)
2647 		    {
2648 		      int i;
2649 		      char *n = xmalloc (bracket_count + 1 + strlen (yyval.node));
2650 		      for (i = 0; i < bracket_count; ++i)
2651 			n[i] = '[';
2652 		      strcpy (n + bracket_count, yyval.node);
2653 		      yyval.node = n;
2654 		    }
2655 		  else
2656 		    yyval.node = yyvsp[-1].node;
2657 		}
2658     break;
2659 
2660   case 96:
2661 #line 500 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2662     { USE_ABSORBER; }
2663     break;
2664 
2665   case 97:
2666 #line 502 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2667     { USE_ABSORBER; }
2668     break;
2669 
2670   case 101:
2671 #line 517 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2672     { USE_ABSORBER; }
2673     break;
2674 
2675   case 103:
2676 #line 525 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2677     { modifier_value = 0; }
2678     break;
2679 
2680   case 105:
2681 #line 530 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2682     { modifier_value = 0; }
2683     break;
2684 
2685   case 106:
2686 #line 536 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2687     { USE_ABSORBER; }
2688     break;
2689 
2690   case 107:
2691 #line 538 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2692     { USE_ABSORBER; }
2693     break;
2694 
2695   case 114:
2696 #line 554 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2697     { USE_ABSORBER; }
2698     break;
2699 
2700   case 115:
2701 #line 556 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2702     { USE_ABSORBER; }
2703     break;
2704 
2705   case 118:
2706 #line 568 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2707     { report_class_declaration (yyvsp[0].node); modifier_value = 0; }
2708     break;
2709 
2710   case 120:
2711 #line 571 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2712     { report_class_declaration (yyvsp[0].node); modifier_value = 0; }
2713     break;
2714 
2715   case 122:
2716 #line 574 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2717     { report_class_declaration (yyvsp[-1].node); modifier_value = 0; }
2718     break;
2719 
2720   case 124:
2721 #line 577 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2722     { report_class_declaration (yyvsp[-1].node); modifier_value = 0; }
2723     break;
2724 
2725   case 128:
2726 #line 588 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2727     { pop_class_context (); }
2728     break;
2729 
2730   case 129:
2731 #line 590 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2732     { pop_class_context (); }
2733     break;
2734 
2735   case 152:
2736 #line 649 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2737     { USE_ABSORBER; }
2738     break;
2739 
2740   case 153:
2741 #line 651 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2742     { modifier_value = 0; }
2743     break;
2744 
2745   case 178:
2746 #line 692 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2747     { USE_ABSORBER; }
2748     break;
2749 
2750   case 189:
2751 #line 719 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2752     { ++complexity; }
2753     break;
2754 
2755   case 190:
2756 #line 724 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2757     { ++complexity; }
2758     break;
2759 
2760   case 191:
2761 #line 729 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2762     { ++complexity; }
2763     break;
2764 
2765   case 199:
2766 #line 749 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2767     { ++complexity; }
2768     break;
2769 
2770   case 204:
2771 #line 764 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2772     { ++complexity; }
2773     break;
2774 
2775   case 208:
2776 #line 781 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2777     { ++complexity; }
2778     break;
2779 
2780   case 214:
2781 #line 799 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2782     { ++complexity; }
2783     break;
2784 
2785   case 225:
2786 #line 823 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2787     { ++complexity; }
2788     break;
2789 
2790   case 228:
2791 #line 832 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2792     { ++complexity; }
2793     break;
2794 
2795   case 231:
2796 #line 839 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2797     {yyerror ("Missing term"); RECOVER;}
2798     break;
2799 
2800   case 232:
2801 #line 841 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2802     {yyerror ("';' expected"); RECOVER;}
2803     break;
2804 
2805   case 235:
2806 #line 850 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2807     { USE_ABSORBER; }
2808     break;
2809 
2810   case 241:
2811 #line 865 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2812     { ++complexity; }
2813     break;
2814 
2815   case 242:
2816 #line 869 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2817     { ++complexity; }
2818     break;
2819 
2820   case 253:
2821 #line 889 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2822     { USE_ABSORBER; }
2823     break;
2824 
2825   case 254:
2826 #line 894 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2827     { USE_ABSORBER; }
2828     break;
2829 
2830   case 255:
2831 #line 896 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2832     { USE_ABSORBER; }
2833     break;
2834 
2835   case 256:
2836 #line 898 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2837     { USE_ABSORBER; }
2838     break;
2839 
2840   case 257:
2841 #line 900 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2842     { USE_ABSORBER; }
2843     break;
2844 
2845   case 265:
2846 #line 915 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2847     { report_class_declaration (anonymous_context); }
2848     break;
2849 
2850   case 267:
2851 #line 918 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2852     { report_class_declaration (anonymous_context); }
2853     break;
2854 
2855   case 269:
2856 #line 924 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2857     { USE_ABSORBER; }
2858     break;
2859 
2860   case 283:
2861 #line 955 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2862     { bracket_count = 1; }
2863     break;
2864 
2865   case 284:
2866 #line 957 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2867     { bracket_count++; }
2868     break;
2869 
2870   case 287:
2871 #line 968 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2872     { USE_ABSORBER; ++complexity; }
2873     break;
2874 
2875   case 288:
2876 #line 970 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2877     { USE_ABSORBER; ++complexity; }
2878     break;
2879 
2880   case 289:
2881 #line 971 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2882     { ++complexity; }
2883     break;
2884 
2885   case 290:
2886 #line 972 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2887     { ++complexity; }
2888     break;
2889 
2890   case 291:
2891 #line 973 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2892     { ++complexity; }
2893     break;
2894 
2895   case 292:
2896 #line 974 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2897     { ++complexity; }
2898     break;
2899 
2900   case 293:
2901 #line 979 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2902     { USE_ABSORBER; }
2903     break;
2904 
2905   case 296:
2906 #line 986 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2907     { USE_ABSORBER; }
2908     break;
2909 
2910   case 343:
2911 #line 1082 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2912     { ++complexity; }
2913     break;
2914 
2915   case 345:
2916 #line 1088 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2917     { ++complexity; }
2918     break;
2919 
2920   case 347:
2921 #line 1094 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2922     { ++complexity; }
2923     break;
2924 
2925   case 351:
2926 #line 1108 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
2927     { USE_ABSORBER; }
2928     break;
2929 
2930 
2931     }
2932 
2933 /* Line 1016 of /usr/share/bison/yacc.c.  */
2934 #line 2935 "ps14046.c"
2935 
2936   yyvsp -= yylen;
2937   yyssp -= yylen;
2938 
2939 
2940 #if YYDEBUG
2941   if (yydebug)
2942     {
2943       short *yyssp1 = yyss - 1;
2944       YYFPRINTF (stderr, "state stack now");
2945       while (yyssp1 != yyssp)
2946 	YYFPRINTF (stderr, " %d", *++yyssp1);
2947       YYFPRINTF (stderr, "\n");
2948     }
2949 #endif
2950 
2951   *++yyvsp = yyval;
2952 
2953 
2954   /* Now `shift' the result of the reduction.  Determine what state
2955      that goes to, based on the state we popped back to and the rule
2956      number reduced by.  */
2957 
2958   yyn = yyr1[yyn];
2959 
2960   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2961   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2962     yystate = yytable[yystate];
2963   else
2964     yystate = yydefgoto[yyn - YYNTOKENS];
2965 
2966   goto yynewstate;
2967 
2968 
2969 /*------------------------------------.
2970 | yyerrlab -- here on detecting error |
2971 `------------------------------------*/
2972 yyerrlab:
2973   /* If not already recovering from an error, report this error.  */
2974   if (!yyerrstatus)
2975     {
2976       ++yynerrs;
2977 #if YYERROR_VERBOSE
2978       yyn = yypact[yystate];
2979 
2980       if (YYPACT_NINF < yyn && yyn < YYLAST)
2981 	{
2982 	  YYSIZE_T yysize = 0;
2983 	  int yytype = YYTRANSLATE (yychar);
2984 	  char *yymsg;
2985 	  int yyx, yycount;
2986 
2987 	  yycount = 0;
2988 	  /* Start YYX at -YYN if negative to avoid negative indexes in
2989 	     YYCHECK.  */
2990 	  for (yyx = yyn < 0 ? -yyn : 0;
2991 	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2992 	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2993 	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2994 	  yysize += yystrlen ("parse error, unexpected ") + 1;
2995 	  yysize += yystrlen (yytname[yytype]);
2996 	  yymsg = (char *) YYSTACK_ALLOC (yysize);
2997 	  if (yymsg != 0)
2998 	    {
2999 	      char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
3000 	      yyp = yystpcpy (yyp, yytname[yytype]);
3001 
3002 	      if (yycount < 5)
3003 		{
3004 		  yycount = 0;
3005 		  for (yyx = yyn < 0 ? -yyn : 0;
3006 		       yyx < (int) (sizeof (yytname) / sizeof (char *));
3007 		       yyx++)
3008 		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
3009 		      {
3010 			const char *yyq = ! yycount ? ", expecting " : " or ";
3011 			yyp = yystpcpy (yyp, yyq);
3012 			yyp = yystpcpy (yyp, yytname[yyx]);
3013 			yycount++;
3014 		      }
3015 		}
3016 	      yyerror (yymsg);
3017 	      YYSTACK_FREE (yymsg);
3018 	    }
3019 	  else
3020 	    yyerror ("parse error; also virtual memory exhausted");
3021 	}
3022       else
3023 #endif /* YYERROR_VERBOSE */
3024 	yyerror ("parse error");
3025     }
3026   goto yyerrlab1;
3027 
3028 
3029 /*----------------------------------------------------.
3030 | yyerrlab1 -- error raised explicitly by an action.  |
3031 `----------------------------------------------------*/
3032 yyerrlab1:
3033   if (yyerrstatus == 3)
3034     {
3035       /* If just tried and failed to reuse lookahead token after an
3036 	 error, discard it.  */
3037 
3038       /* Return failure if at end of input.  */
3039       if (yychar == YYEOF)
3040         {
3041 	  /* Pop the error token.  */
3042           YYPOPSTACK;
3043 	  /* Pop the rest of the stack.  */
3044 	  while (yyssp > yyss)
3045 	    {
3046 	      YYDPRINTF ((stderr, "Error: popping "));
3047 	      YYDSYMPRINT ((stderr,
3048 			    yystos[*yyssp],
3049 			    *yyvsp));
3050 	      YYDPRINTF ((stderr, "\n"));
3051 	      yydestruct (yystos[*yyssp], *yyvsp);
3052 	      YYPOPSTACK;
3053 	    }
3054 	  YYABORT;
3055         }
3056 
3057       YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
3058 		  yychar, yytname[yychar1]));
3059       yydestruct (yychar1, yylval);
3060       yychar = YYEMPTY;
3061     }
3062 
3063   /* Else will try to reuse lookahead token after shifting the error
3064      token.  */
3065 
3066   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
3067 
3068   for (;;)
3069     {
3070       yyn = yypact[yystate];
3071       if (yyn != YYPACT_NINF)
3072 	{
3073 	  yyn += YYTERROR;
3074 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3075 	    {
3076 	      yyn = yytable[yyn];
3077 	      if (0 < yyn)
3078 		break;
3079 	    }
3080 	}
3081 
3082       /* Pop the current state because it cannot handle the error token.  */
3083       if (yyssp == yyss)
3084 	YYABORT;
3085 
3086       YYDPRINTF ((stderr, "Error: popping "));
3087       YYDSYMPRINT ((stderr,
3088 		    yystos[*yyssp], *yyvsp));
3089       YYDPRINTF ((stderr, "\n"));
3090 
3091       yydestruct (yystos[yystate], *yyvsp);
3092       yyvsp--;
3093       yystate = *--yyssp;
3094 
3095 
3096 #if YYDEBUG
3097       if (yydebug)
3098 	{
3099 	  short *yyssp1 = yyss - 1;
3100 	  YYFPRINTF (stderr, "Error: state stack now");
3101 	  while (yyssp1 != yyssp)
3102 	    YYFPRINTF (stderr, " %d", *++yyssp1);
3103 	  YYFPRINTF (stderr, "\n");
3104 	}
3105 #endif
3106     }
3107 
3108   if (yyn == YYFINAL)
3109     YYACCEPT;
3110 
3111   YYDPRINTF ((stderr, "Shifting error token, "));
3112 
3113   *++yyvsp = yylval;
3114 
3115 
3116   yystate = yyn;
3117   goto yynewstate;
3118 
3119 
3120 /*-------------------------------------.
3121 | yyacceptlab -- YYACCEPT comes here.  |
3122 `-------------------------------------*/
3123 yyacceptlab:
3124   yyresult = 0;
3125   goto yyreturn;
3126 
3127 /*-----------------------------------.
3128 | yyabortlab -- YYABORT comes here.  |
3129 `-----------------------------------*/
3130 yyabortlab:
3131   yyresult = 1;
3132   goto yyreturn;
3133 
3134 #ifndef yyoverflow
3135 /*----------------------------------------------.
3136 | yyoverflowlab -- parser overflow comes here.  |
3137 `----------------------------------------------*/
3138 yyoverflowlab:
3139   yyerror ("parser stack overflow");
3140   yyresult = 2;
3141   /* Fall through.  */
3142 #endif
3143 
3144 yyreturn:
3145 #ifndef yyoverflow
3146   if (yyss != yyssa)
3147     YYSTACK_FREE (yyss);
3148 #endif
3149   return yyresult;
3150 }
3151 
3152 
3153 #line 1126 "/home/gdr/gcc-3.3.5/gcc-3.3.5/gcc/java/parse-scan.y"
3154 
3155 
3156 /* Create a new parser context */
3157 
3158 void
java_push_parser_context()3159 java_push_parser_context ()
3160 {
3161   struct parser_ctxt *new =
3162     (struct parser_ctxt *) xcalloc (1, sizeof (struct parser_ctxt));
3163 
3164   new->next = ctxp;
3165   ctxp = new;
3166 }
3167 
3168 static void
push_class_context(name)3169 push_class_context (name)
3170     const char *name;
3171 {
3172   struct class_context *ctx;
3173 
3174   ctx = (struct class_context *) xmalloc (sizeof (struct class_context));
3175   ctx->name = (char *) name;
3176   ctx->next = current_class_context;
3177   current_class_context = ctx;
3178 }
3179 
3180 static void
pop_class_context()3181 pop_class_context ()
3182 {
3183   struct class_context *ctx;
3184 
3185   if (current_class_context == NULL)
3186     return;
3187 
3188   ctx = current_class_context->next;
3189   if (current_class_context->name != anonymous_context)
3190     free (current_class_context->name);
3191   free (current_class_context);
3192 
3193   current_class_context = ctx;
3194   if (current_class_context == NULL)
3195     anonymous_count = 0;
3196 }
3197 
3198 /* Recursively construct the class name.  This is just a helper
3199    function for get_class_name().  */
3200 static int
make_class_name_recursive(stack,ctx)3201 make_class_name_recursive (stack, ctx)
3202      struct obstack *stack;
3203      struct class_context *ctx;
3204 {
3205   if (! ctx)
3206     return 0;
3207 
3208   make_class_name_recursive (stack, ctx->next);
3209 
3210   /* Replace an anonymous context with the appropriate counter value.  */
3211   if (ctx->name == anonymous_context)
3212     {
3213       char buf[50];
3214       ++anonymous_count;
3215       sprintf (buf, "%d", anonymous_count);
3216       ctx->name = xstrdup (buf);
3217     }
3218 
3219   obstack_grow (stack, ctx->name, strlen (ctx->name));
3220   obstack_1grow (stack, '$');
3221 
3222   return ISDIGIT (ctx->name[0]);
3223 }
3224 
3225 /* Return a newly allocated string holding the name of the class.  */
3226 static char *
get_class_name()3227 get_class_name ()
3228 {
3229   char *result;
3230   int last_was_digit;
3231   struct obstack name_stack;
3232 
3233   obstack_init (&name_stack);
3234 
3235   /* Duplicate the logic of parse.y:maybe_make_nested_class_name().  */
3236   last_was_digit = make_class_name_recursive (&name_stack,
3237 					      current_class_context->next);
3238 
3239   if (! last_was_digit
3240       && method_depth
3241       && current_class_context->name != anonymous_context)
3242     {
3243       char buf[50];
3244       ++anonymous_count;
3245       sprintf (buf, "%d", anonymous_count);
3246       obstack_grow (&name_stack, buf, strlen (buf));
3247       obstack_1grow (&name_stack, '$');
3248     }
3249 
3250   if (current_class_context->name == anonymous_context)
3251     {
3252       char buf[50];
3253       ++anonymous_count;
3254       sprintf (buf, "%d", anonymous_count);
3255       current_class_context->name = xstrdup (buf);
3256       obstack_grow0 (&name_stack, buf, strlen (buf));
3257     }
3258   else
3259     obstack_grow0 (&name_stack, current_class_context->name,
3260 		   strlen (current_class_context->name));
3261 
3262   result = xstrdup (obstack_finish (&name_stack));
3263   obstack_free (&name_stack, NULL);
3264 
3265   return result;
3266 }
3267 
3268 /* Actions defined here */
3269 
3270 static void
report_class_declaration(name)3271 report_class_declaration (name)
3272      const char * name;
3273 {
3274   extern int flag_dump_class, flag_list_filename;
3275 
3276   push_class_context (name);
3277   if (flag_dump_class)
3278     {
3279       char *name = get_class_name ();
3280 
3281       if (!previous_output)
3282 	{
3283 	  if (flag_list_filename)
3284 	    fprintf (out, "%s: ", input_filename);
3285 	  previous_output = 1;
3286 	}
3287 
3288       if (package_name)
3289 	fprintf (out, "%s.%s ", package_name, name);
3290       else
3291 	fprintf (out, "%s ", name);
3292 
3293       free (name);
3294     }
3295 }
3296 
3297 static void
report_main_declaration(declarator)3298 report_main_declaration (declarator)
3299      struct method_declarator *declarator;
3300 {
3301   extern int flag_find_main;
3302 
3303   if (flag_find_main
3304       && modifier_value == 2
3305       && !strcmp (declarator->method_name, "main")
3306       && declarator->args
3307       && declarator->args [0] == '['
3308       && (! strcmp (declarator->args+1, "String")
3309 	  || ! strcmp (declarator->args + 1, "java.lang.String"))
3310       && current_class_context)
3311     {
3312       if (!previous_output)
3313 	{
3314 	  char *name = get_class_name ();
3315 	  if (package_name)
3316 	    fprintf (out, "%s.%s ", package_name, name);
3317 	  else
3318 	    fprintf (out, "%s", name);
3319 	  free (name);
3320 	  previous_output = 1;
3321 	}
3322     }
3323 }
3324 
3325 void
report()3326 report ()
3327 {
3328   extern int flag_complexity;
3329   if (flag_complexity)
3330     fprintf (out, "%s %d\n", input_filename, complexity);
3331 }
3332 
3333 /* Reset global status used by the report functions.  */
3334 
reset_report()3335 void reset_report ()
3336 {
3337   previous_output = 0;
3338   package_name = NULL;
3339   current_class_context = NULL;
3340   complexity = 0;
3341 }
3342 
3343 void
yyerror(msg)3344 yyerror (msg)
3345      const char *msg ATTRIBUTE_UNUSED;
3346 {
3347   fprintf (stderr, "%s: %d: %s\n", input_filename, lineno, msg);
3348   exit (1);
3349 }
3350 
3351 
3352