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