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
291extern char *input_filename;
292extern FILE *finput, *out;
293
294/* Obstack for the lexer.  */
295struct obstack temporary_obstack;
296
297/* The current parser context.  */
298static struct parser_ctxt *ctxp;
299
300/* Error and warning counts, current line number, because they're used
301   elsewhere  */
302int java_error_count;
303int java_warning_count;
304int lineno;
305
306/* Tweak default rules when necessary.  */
307static int absorber;
308#define USE_ABSORBER absorber = 0
309
310/* Keep track of the current package name.  */
311static const char *package_name;
312
313/* Keep track of whether things have be listed before.  */
314static int previous_output;
315
316/* Record modifier uses  */
317static int modifier_value;
318
319/* Record (almost) cyclomatic complexity.  */
320static int complexity;
321
322/* Keeps track of number of bracket pairs after a variable declarator
323   id.  */
324static int bracket_count;
325
326/* Numbers anonymous classes */
327static int anonymous_count;
328
329/* This is used to record the current class context.  */
330struct class_context
331{
332  char *name;
333  struct class_context *next;
334};
335
336/* The global class context.  */
337static struct class_context *current_class_context;
338
339/* A special constant used to represent an anonymous context.  */
340static const char *anonymous_context = "ANONYMOUS";
341
342/* Count of method depth.  */
343static int method_depth;
344
345/* Record a method declaration  */
346struct 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 */
359static int make_class_name_recursive PARAMS ((struct obstack *stack,
360					      struct class_context *ctx));
361static char *get_class_name PARAMS ((void));
362static void report_class_declaration PARAMS ((const char *));
363static void report_main_declaration PARAMS ((struct method_declarator *));
364static void push_class_context PARAMS ((const char *));
365static void pop_class_context PARAMS ((void));
366
367void 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"
388typedef 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
400typedef 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
414extern 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.  */
459union 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.  */
537static 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.  */
581static 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. */
622static 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.  */
743static 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. */
787static 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.  */
866static 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.  */
884static 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.  */
925static 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.  */
968static 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]. */
1035static 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
1058static 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].  */
1125static 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
1150static 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
1488static 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.  */
1828static 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)					\
1928do								\
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    }								\
1942while (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)			\
1975do {						\
1976  if (yydebug)					\
1977    YYFPRINTF Args;				\
1978} while (0)
1979# define YYDSYMPRINT(Args)			\
1980do {						\
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.  */
1986int 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.  */
2021static YYSIZE_T
2022#   if defined (__STDC__) || defined (__cplusplus)
2023yystrlen (const char *yystr)
2024#   else
2025yystrlen (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.  */
2045static char *
2046#   if defined (__STDC__) || defined (__cplusplus)
2047yystpcpy (char *yydest, const char *yysrc)
2048#   else
2049yystpcpy (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
2074static void
2075#if defined (__STDC__) || defined (__cplusplus)
2076yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue)
2077#else
2078yysymprint (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
2111static void
2112#if defined (__STDC__) || defined (__cplusplus)
2113yydestruct (int yytype, YYSTYPE yyvalue)
2114#else
2115yydestruct (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
2154int yyparse (void *);
2155# else
2156int yyparse (void);
2157# endif
2158#endif
2159
2160
2161
2162
2163int
2164yyparse (YYPARSE_PARAM_ARG)
2165     YYPARSE_PARAM_DECL
2166{
2167  /* The lookahead symbol.  */
2168int yychar;
2169
2170/* The semantic value of the lookahead symbol.  */
2171YYSTYPE yylval;
2172
2173/* Number of parse errors so far.  */
2174int 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`-----------*/
2318yybackup:
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`-----------------------------------------------------------*/
2401yydefault:
2402  yyn = yydefact[yystate];
2403  if (yyn == 0)
2404    goto yyerrlab;
2405  goto yyreduce;
2406
2407
2408/*-----------------------------.
2409| yyreduce -- Do a reduction.  |
2410`-----------------------------*/
2411yyreduce:
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`------------------------------------*/
2972yyerrlab:
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`----------------------------------------------------*/
3032yyerrlab1:
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`-------------------------------------*/
3123yyacceptlab:
3124  yyresult = 0;
3125  goto yyreturn;
3126
3127/*-----------------------------------.
3128| yyabortlab -- YYABORT comes here.  |
3129`-----------------------------------*/
3130yyabortlab:
3131  yyresult = 1;
3132  goto yyreturn;
3133
3134#ifndef yyoverflow
3135/*----------------------------------------------.
3136| yyoverflowlab -- parser overflow comes here.  |
3137`----------------------------------------------*/
3138yyoverflowlab:
3139  yyerror ("parser stack overflow");
3140  yyresult = 2;
3141  /* Fall through.  */
3142#endif
3143
3144yyreturn:
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
3158void
3159java_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
3168static void
3169push_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
3180static void
3181pop_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().  */
3200static int
3201make_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.  */
3226static char *
3227get_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
3270static void
3271report_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
3297static void
3298report_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
3325void
3326report ()
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
3335void reset_report ()
3336{
3337  previous_output = 0;
3338  package_name = NULL;
3339  current_class_context = NULL;
3340  complexity = 0;
3341}
3342
3343void
3344yyerror (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