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