summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmDependsJavaParser.cxx6007
-rw-r--r--Source/cmDependsJavaParser.y3226
-rw-r--r--Source/cmDependsJavaParserHelper.cxx433
-rw-r--r--Source/cmDependsJavaParserHelper.h108
-rw-r--r--Source/cmDependsJavaParserTokens.h254
5 files changed, 10028 insertions, 0 deletions
diff --git a/Source/cmDependsJavaParser.cxx b/Source/cmDependsJavaParser.cxx
new file mode 100644
index 0000000..257ad77
--- /dev/null
+++ b/Source/cmDependsJavaParser.cxx
@@ -0,0 +1,6007 @@
+/* A Bison parser, made by GNU Bison 1.875d. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Written by Richard Stallman by simplifying the original so called
+ ``semantic'' parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 1
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+ names. */
+#define yyparse cmDependsJava_yyparse
+#define yylex cmDependsJava_yylex
+#define yyerror cmDependsJava_yyerror
+#define yylval cmDependsJava_yylval
+#define yychar cmDependsJava_yychar
+#define yydebug cmDependsJava_yydebug
+#define yynerrs cmDependsJava_yynerrs
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ ABSTRACT = 258,
+ ASSERT = 259,
+ BOOLEAN = 260,
+ BREAK = 261,
+ BYTE = 262,
+ CASE = 263,
+ CATCH = 264,
+ CHAR = 265,
+ CLASS = 266,
+ CONTINUE = 267,
+ DEFAULT = 268,
+ DO = 269,
+ DOUBLE = 270,
+ ELSE = 271,
+ EXTENDS = 272,
+ FINAL = 273,
+ FINALLY = 274,
+ FLOAT = 275,
+ FOR = 276,
+ IF = 277,
+ IMPLEMENTS = 278,
+ IMPORT = 279,
+ INSTANCEOF = 280,
+ INT = 281,
+ INTERFACE = 282,
+ LONG = 283,
+ NATIVE = 284,
+ NEW = 285,
+ PACKAGE = 286,
+ PRIVATE = 287,
+ PROTECTED = 288,
+ PUBLIC = 289,
+ RETURN = 290,
+ SHORT = 291,
+ STATIC = 292,
+ STRICTFP = 293,
+ SUPER = 294,
+ SWITCH = 295,
+ SYNCHRONIZED = 296,
+ THIS = 297,
+ THROW = 298,
+ THROWS = 299,
+ TRANSIENT = 300,
+ TRY = 301,
+ VOID = 302,
+ VOLATILE = 303,
+ WHILE = 304,
+ BOOLEANLITERAL = 305,
+ CHARACTERLITERAL = 306,
+ DECIMALINTEGERLITERAL = 307,
+ FLOATINGPOINTLITERAL = 308,
+ HEXINTEGERLITERAL = 309,
+ NULLLITERAL = 310,
+ STRINGLITERAL = 311,
+ NAME = 312,
+ AND = 313,
+ ANDAND = 314,
+ ANDEQUALS = 315,
+ BRACKETEND = 316,
+ BRACKETSTART = 317,
+ CARROT = 318,
+ CARROTEQUALS = 319,
+ COLON = 320,
+ COMMA = 321,
+ CURLYEND = 322,
+ CURLYSTART = 323,
+ DIVIDE = 324,
+ DIVIDEEQUALS = 325,
+ DOLLAR = 326,
+ DOT = 327,
+ EQUALS = 328,
+ EQUALSEQUALS = 329,
+ EXCLAMATION = 330,
+ EXCLAMATIONEQUALS = 331,
+ GREATER = 332,
+ GTEQUALS = 333,
+ GTGT = 334,
+ GTGTEQUALS = 335,
+ GTGTGT = 336,
+ GTGTGTEQUALS = 337,
+ LESLESEQUALS = 338,
+ LESSTHAN = 339,
+ LTEQUALS = 340,
+ LTLT = 341,
+ MINUS = 342,
+ MINUSEQUALS = 343,
+ MINUSMINUS = 344,
+ PAREEND = 345,
+ PARESTART = 346,
+ PERCENT = 347,
+ PERCENTEQUALS = 348,
+ PIPE = 349,
+ PIPEEQUALS = 350,
+ PIPEPIPE = 351,
+ PLUS = 352,
+ PLUSEQUALS = 353,
+ PLUSPLUS = 354,
+ QUESTION = 355,
+ SEMICOL = 356,
+ TILDE = 357,
+ TIMES = 358,
+ TIMESEQUALS = 359,
+ ERROR = 360
+ };
+#endif
+#define ABSTRACT 258
+#define ASSERT 259
+#define BOOLEAN 260
+#define BREAK 261
+#define BYTE 262
+#define CASE 263
+#define CATCH 264
+#define CHAR 265
+#define CLASS 266
+#define CONTINUE 267
+#define DEFAULT 268
+#define DO 269
+#define DOUBLE 270
+#define ELSE 271
+#define EXTENDS 272
+#define FINAL 273
+#define FINALLY 274
+#define FLOAT 275
+#define FOR 276
+#define IF 277
+#define IMPLEMENTS 278
+#define IMPORT 279
+#define INSTANCEOF 280
+#define INT 281
+#define INTERFACE 282
+#define LONG 283
+#define NATIVE 284
+#define NEW 285
+#define PACKAGE 286
+#define PRIVATE 287
+#define PROTECTED 288
+#define PUBLIC 289
+#define RETURN 290
+#define SHORT 291
+#define STATIC 292
+#define STRICTFP 293
+#define SUPER 294
+#define SWITCH 295
+#define SYNCHRONIZED 296
+#define THIS 297
+#define THROW 298
+#define THROWS 299
+#define TRANSIENT 300
+#define TRY 301
+#define VOID 302
+#define VOLATILE 303
+#define WHILE 304
+#define BOOLEANLITERAL 305
+#define CHARACTERLITERAL 306
+#define DECIMALINTEGERLITERAL 307
+#define FLOATINGPOINTLITERAL 308
+#define HEXINTEGERLITERAL 309
+#define NULLLITERAL 310
+#define STRINGLITERAL 311
+#define NAME 312
+#define AND 313
+#define ANDAND 314
+#define ANDEQUALS 315
+#define BRACKETEND 316
+#define BRACKETSTART 317
+#define CARROT 318
+#define CARROTEQUALS 319
+#define COLON 320
+#define COMMA 321
+#define CURLYEND 322
+#define CURLYSTART 323
+#define DIVIDE 324
+#define DIVIDEEQUALS 325
+#define DOLLAR 326
+#define DOT 327
+#define EQUALS 328
+#define EQUALSEQUALS 329
+#define EXCLAMATION 330
+#define EXCLAMATIONEQUALS 331
+#define GREATER 332
+#define GTEQUALS 333
+#define GTGT 334
+#define GTGTEQUALS 335
+#define GTGTGT 336
+#define GTGTGTEQUALS 337
+#define LESLESEQUALS 338
+#define LESSTHAN 339
+#define LTEQUALS 340
+#define LTLT 341
+#define MINUS 342
+#define MINUSEQUALS 343
+#define MINUSMINUS 344
+#define PAREEND 345
+#define PARESTART 346
+#define PERCENT 347
+#define PERCENTEQUALS 348
+#define PIPE 349
+#define PIPEEQUALS 350
+#define PIPEPIPE 351
+#define PLUS 352
+#define PLUSEQUALS 353
+#define PLUSPLUS 354
+#define QUESTION 355
+#define SEMICOL 356
+#define TILDE 357
+#define TIMES 358
+#define TIMESEQUALS 359
+#define ERROR 360
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 1 "cmDependsJavaParser.y"
+
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+/*
+
+This file must be translated to C and modified to build everywhere.
+
+Run bison like this:
+
+ bison --yacc --name-prefix=cmDependsJava_yy --defines=cmDependsJavaParserTokens.h -ocmDependsJavaParser.cxx cmDependsJavaParser.y
+
+Modify cmDependsJavaParser.c:
+ - remove TABs
+
+*/
+
+/* Configure the parser to use a lexer object. */
+#define YYPARSE_PARAM yyscanner
+#define YYLEX_PARAM yyscanner
+#define YYERROR_VERBOSE 1
+#define cmDependsJava_yyerror(x) \
+ cmDependsJavaError(yyscanner, x)
+#define yyGetParser (cmDependsJava_yyget_extra(yyscanner))
+
+/*-------------------------------------------------------------------------*/
+#include "cmDependsJavaParserHelper.h" /* Interface to parser object. */
+#include "cmDependsJavaLexer.h" /* Interface to lexer object. */
+#include "cmDependsJavaParserTokens.h" /* Need YYSTYPE for YY_DECL. */
+
+/* Forward declare the lexer entry point. */
+YY_DECL;
+
+/* Internal utility functions. */
+static void cmDependsJavaError(yyscan_t yyscanner, const char* message);
+
+#define YYDEBUG 1
+#define YYMAXDEPTH 1000000
+
+
+#define CHECKEMPTY(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp);
+#define ELEMENTSTART(cnt) yyGetParser->PrepareElement(&yyval)
+#define STORECLASS(str) yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str))
+/* Disable some warnings in the generated code. */
+#ifdef __BORLANDC__
+# pragma warn -8004 /* Variable assigned a value that is not used. */
+#endif
+#ifdef _MSC_VER
+# pragma warning (disable: 4102) /* Unused goto label. */
+#endif
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+typedef int YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations. */
+
+
+/* Line 214 of yacc.c. */
+#line 371 "cmDependsJavaParser.cxx"
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+# ifndef YYFREE
+# define YYFREE free
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# endif
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# define YYSTACK_ALLOC alloca
+# endif
+# else
+# if defined (alloca) || defined (_ALLOCA_H)
+# define YYSTACK_ALLOC alloca
+# else
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# endif
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+ && (! defined (__cplusplus) \
+ || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ short int yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined (__GNUC__) && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ register YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (0)
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
+
+#endif
+
+#if defined (__STDC__) || defined (__cplusplus)
+ typedef signed char yysigned_char;
+#else
+ typedef short int yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 23
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 2215
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 106
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 158
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 351
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 575
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 360
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const unsigned char yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const unsigned short int yyprhs[] =
+{
+ 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
+ 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
+ 39, 41, 43, 45, 47, 49, 51, 54, 57, 59,
+ 61, 63, 65, 68, 72, 76, 80, 84, 86, 88,
+ 92, 93, 95, 96, 99, 100, 103, 107, 109, 111,
+ 115, 121, 123, 125, 127, 129, 132, 134, 136, 138,
+ 140, 142, 144, 146, 148, 150, 152, 154, 158, 161,
+ 165, 169, 174, 175, 177, 180, 183, 185, 189, 193,
+ 194, 197, 199, 201, 203, 205, 207, 209, 214, 216,
+ 220, 222, 226, 228, 232, 234, 236, 239, 242, 246,
+ 251, 256, 257, 259, 264, 268, 269, 271, 273, 277,
+ 281, 284, 286, 290, 292, 295, 300, 306, 311, 316,
+ 317, 320, 326, 332, 336, 340, 341, 343, 346, 350,
+ 354, 355, 358, 360, 362, 364, 367, 369, 372, 374,
+ 377, 379, 382, 386, 387, 389, 392, 394, 398, 402,
+ 403, 405, 407, 410, 412, 414, 416, 419, 423, 426,
+ 428, 430, 432, 434, 436, 438, 440, 442, 444, 446,
+ 448, 450, 452, 454, 456, 458, 460, 462, 464, 466,
+ 468, 470, 472, 474, 478, 482, 485, 487, 489, 491,
+ 493, 495, 497, 499, 505, 513, 521, 527, 532, 533,
+ 535, 536, 539, 542, 544, 547, 551, 554, 560, 566,
+ 574, 584, 585, 587, 588, 590, 600, 601, 603, 605,
+ 607, 609, 611, 615, 619, 625, 629, 630, 632, 636,
+ 640, 644, 650, 654, 659, 660, 662, 664, 667, 673,
+ 676, 678, 680, 682, 684, 688, 690, 692, 694, 696,
+ 703, 704, 706, 707, 709, 711, 715, 720, 725, 730,
+ 735, 736, 738, 740, 743, 747, 750, 754, 758, 762,
+ 766, 770, 775, 782, 789, 796, 801, 806, 808, 810,
+ 814, 816, 818, 821, 824, 826, 828, 831, 834, 836,
+ 839, 842, 844, 847, 850, 852, 858, 863, 869, 871,
+ 875, 879, 883, 885, 889, 893, 895, 899, 903, 907,
+ 909, 913, 917, 921, 925, 929, 931, 935, 939, 941,
+ 945, 947, 951, 953, 957, 959, 963, 965, 969, 971,
+ 977, 979, 981, 985, 987, 989, 991, 993, 995, 997,
+ 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017,
+ 1019, 1021
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short int yyrhs[] =
+{
+ 107, 0, -1, 122, -1, 109, -1, 53, -1, 50,
+ -1, 51, -1, 56, -1, 55, -1, 52, -1, 54,
+ -1, 111, -1, 112, -1, 7, -1, 36, -1, 26,
+ -1, 28, -1, 10, -1, 20, -1, 15, -1, 5,
+ -1, 113, -1, 116, -1, 117, -1, 113, -1, 113,
+ -1, 111, 234, -1, 117, 234, -1, 118, -1, 120,
+ -1, 119, -1, 57, -1, 71, 57, -1, 117, 72,
+ 119, -1, 117, 72, 11, -1, 117, 72, 42, -1,
+ 121, 72, 11, -1, 111, -1, 47, -1, 123, 124,
+ 125, -1, -1, 126, -1, -1, 124, 127, -1, -1,
+ 125, 130, -1, 31, 117, 101, -1, 128, -1, 129,
+ -1, 24, 117, 101, -1, 24, 117, 72, 103, 101,
+ -1, 134, -1, 165, -1, 101, -1, 132, -1, 131,
+ 132, -1, 34, -1, 33, -1, 32, -1, 37, -1,
+ 3, -1, 18, -1, 29, -1, 41, -1, 45, -1,
+ 48, -1, 38, -1, 135, 11, 119, -1, 133, 139,
+ -1, 133, 137, 139, -1, 133, 136, 139, -1, 133,
+ 136, 137, 139, -1, -1, 131, -1, 17, 114, -1,
+ 23, 138, -1, 115, -1, 138, 66, 115, -1, 68,
+ 140, 67, -1, -1, 140, 141, -1, 142, -1, 158,
+ -1, 159, -1, 130, -1, 143, -1, 148, -1, 135,
+ 110, 144, 101, -1, 145, -1, 144, 66, 145, -1,
+ 146, -1, 146, 73, 147, -1, 119, -1, 146, 62,
+ 61, -1, 261, -1, 174, -1, 149, 101, -1, 149,
+ 157, -1, 149, 157, 101, -1, 135, 110, 151, 150,
+ -1, 135, 47, 151, 150, -1, -1, 155, -1, 119,
+ 91, 152, 90, -1, 151, 62, 61, -1, -1, 153,
+ -1, 154, -1, 153, 66, 154, -1, 135, 110, 146,
+ -1, 44, 156, -1, 114, -1, 156, 66, 114, -1,
+ 177, -1, 37, 177, -1, 135, 160, 150, 161, -1,
+ 135, 160, 150, 161, 101, -1, 118, 91, 152, 90,
+ -1, 68, 162, 178, 67, -1, -1, 162, 163, -1,
+ 42, 91, 228, 90, 101, -1, 39, 91, 228, 90,
+ 101, -1, 135, 27, 119, -1, 164, 166, 168, -1,
+ -1, 167, -1, 17, 115, -1, 167, 66, 115, -1,
+ 68, 169, 67, -1, -1, 169, 170, -1, 171, -1,
+ 172, -1, 134, -1, 134, 101, -1, 165, -1, 165,
+ 101, -1, 143, -1, 149, 173, -1, 101, -1, 173,
+ 101, -1, 68, 175, 67, -1, -1, 176, -1, 176,
+ 66, -1, 147, -1, 176, 66, 147, -1, 68, 178,
+ 67, -1, -1, 179, -1, 180, -1, 179, 180, -1,
+ 181, -1, 183, -1, 134, -1, 182, 101, -1, 131,
+ 110, 144, -1, 110, 144, -1, 185, -1, 187, -1,
+ 191, -1, 192, -1, 201, -1, 204, -1, 185, -1,
+ 188, -1, 193, -1, 202, -1, 207, -1, 177, -1,
+ 186, -1, 189, -1, 194, -1, 203, -1, 213, -1,
+ 215, -1, 216, -1, 218, -1, 217, -1, 219, -1,
+ 212, -1, 101, -1, 119, 65, 183, -1, 119, 65,
+ 184, -1, 190, 101, -1, 258, -1, 242, -1, 243,
+ -1, 239, -1, 240, -1, 236, -1, 226, -1, 22,
+ 91, 261, 90, 183, -1, 22, 91, 261, 90, 184,
+ 16, 183, -1, 22, 91, 261, 90, 184, 16, 184,
+ -1, 40, 91, 261, 90, 195, -1, 68, 197, 196,
+ 67, -1, -1, 199, -1, -1, 197, 198, -1, 199,
+ 179, -1, 200, -1, 199, 200, -1, 8, 262, 65,
+ -1, 13, 65, -1, 49, 91, 261, 90, 183, -1,
+ 49, 91, 261, 90, 184, -1, 14, 183, 49, 91,
+ 261, 90, 101, -1, 21, 91, 206, 101, 208, 101,
+ 205, 90, 183, -1, -1, 210, -1, -1, 209, -1,
+ 21, 91, 206, 101, 208, 101, 205, 90, 184, -1,
+ -1, 261, -1, 211, -1, 182, -1, 211, -1, 190,
+ -1, 211, 66, 190, -1, 4, 261, 101, -1, 4,
+ 261, 65, 261, 101, -1, 6, 214, 101, -1, -1,
+ 119, -1, 12, 214, 101, -1, 35, 208, 101, -1,
+ 43, 261, 101, -1, 41, 91, 261, 90, 177, -1,
+ 46, 177, 221, -1, 46, 177, 220, 223, -1, -1,
+ 221, -1, 222, -1, 221, 222, -1, 9, 91, 154,
+ 90, 177, -1, 19, 177, -1, 225, -1, 230, -1,
+ 108, -1, 42, -1, 91, 261, 90, -1, 226, -1,
+ 235, -1, 236, -1, 237, -1, 263, 114, 91, 228,
+ 90, 227, -1, -1, 139, -1, -1, 229, -1, 261,
+ -1, 229, 66, 261, -1, 263, 111, 232, 231, -1,
+ 263, 113, 232, 231, -1, 263, 111, 234, 174, -1,
+ 263, 113, 234, 174, -1, -1, 234, -1, 233, -1,
+ 232, 233, -1, 62, 261, 61, -1, 62, 61, -1,
+ 234, 62, 61, -1, 224, 72, 119, -1, 39, 72,
+ 119, -1, 42, 72, 119, -1, 224, 72, 42, -1,
+ 117, 91, 228, 90, -1, 224, 72, 119, 91, 228,
+ 90, -1, 39, 72, 119, 91, 228, 90, -1, 42,
+ 72, 119, 91, 228, 90, -1, 117, 62, 261, 61,
+ -1, 225, 62, 261, 61, -1, 224, -1, 117, -1,
+ 116, 72, 11, -1, 239, -1, 240, -1, 238, 99,
+ -1, 238, 89, -1, 242, -1, 243, -1, 97, 241,
+ -1, 87, 241, -1, 244, -1, 99, 241, -1, 89,
+ 241, -1, 238, -1, 102, 241, -1, 75, 241, -1,
+ 245, -1, 91, 111, 231, 90, 241, -1, 91, 261,
+ 90, 244, -1, 91, 117, 234, 90, 244, -1, 241,
+ -1, 246, 103, 241, -1, 246, 69, 241, -1, 246,
+ 92, 241, -1, 246, -1, 247, 97, 246, -1, 247,
+ 87, 246, -1, 247, -1, 248, 86, 247, -1, 248,
+ 79, 247, -1, 248, 81, 247, -1, 248, -1, 249,
+ 84, 248, -1, 249, 77, 248, -1, 249, 85, 248,
+ -1, 249, 78, 248, -1, 249, 25, 112, -1, 249,
+ -1, 250, 74, 249, -1, 250, 76, 249, -1, 250,
+ -1, 251, 58, 250, -1, 251, -1, 252, 63, 251,
+ -1, 252, -1, 253, 94, 252, -1, 253, -1, 254,
+ 59, 253, -1, 254, -1, 255, 96, 254, -1, 255,
+ -1, 255, 100, 261, 65, 256, -1, 256, -1, 258,
+ -1, 259, 260, 257, -1, 117, -1, 235, -1, 237,
+ -1, 73, -1, 104, -1, 70, -1, 93, -1, 98,
+ -1, 88, -1, 83, -1, 80, -1, 82, -1, 60,
+ -1, 64, -1, 95, -1, 257, -1, 261, -1, 30,
+ -1, 117, 72, 30, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short int yyrline[] =
+{
+ 0, 190, 190, 199, 207, 215, 223, 231, 239, 248,
+ 256, 265, 273, 282, 287, 292, 297, 302, 307, 312,
+ 317, 323, 331, 340, 350, 359, 368, 376, 386, 392,
+ 399, 406, 412, 419, 428, 438, 448, 457, 465, 474,
+ 483, 489, 498, 504, 513, 519, 528, 540, 548, 557,
+ 569, 582, 590, 598, 607, 615, 624, 624, 624, 625,
+ 626, 626, 626, 626, 626, 626, 627, 630, 640, 649,
+ 658, 667, 677, 683, 692, 701, 710, 718, 727, 736,
+ 742, 751, 759, 767, 775, 784, 792, 801, 807, 815,
+ 824, 832, 841, 850, 859, 867, 876, 884, 892, 901,
+ 910, 920, 927, 937, 947, 954, 961, 964, 970, 980,
+ 990, 1000, 1006, 1016, 1026, 1036, 1045, 1055, 1066, 1076,
+ 1083, 1093, 1102, 1112, 1121, 1131, 1137, 1147, 1156, 1166,
+ 1176, 1183, 1192, 1201, 1210, 1219, 1227, 1236, 1245, 1255,
+ 1265, 1274, 1284, 1294, 1301, 1310, 1320, 1329, 1339, 1348,
+ 1355, 1365, 1374, 1384, 1393, 1402, 1412, 1422, 1431, 1441,
+ 1450, 1459, 1468, 1477, 1486, 1496, 1505, 1514, 1523, 1532,
+ 1542, 1551, 1560, 1569, 1578, 1587, 1596, 1605, 1614, 1623,
+ 1632, 1641, 1651, 1661, 1672, 1682, 1692, 1701, 1710, 1719,
+ 1728, 1737, 1746, 1756, 1766, 1776, 1786, 1793, 1800, 1807,
+ 1817, 1824, 1834, 1844, 1853, 1863, 1872, 1882, 1889, 1896,
+ 1903, 1911, 1918, 1928, 1935, 1945, 1955, 1962, 1972, 1981,
+ 1991, 2001, 2010, 2020, 2029, 2039, 2050, 2057, 2064, 2075,
+ 2085, 2095, 2105, 2114, 2124, 2131, 2141, 2150, 2160, 2167,
+ 2177, 2186, 2196, 2205, 2211, 2220, 2229, 2238, 2247, 2257,
+ 2267, 2274, 2284, 2291, 2301, 2310, 2320, 2329, 2338, 2347,
+ 2357, 2364, 2374, 2383, 2393, 2403, 2409, 2416, 2426, 2436,
+ 2446, 2457, 2467, 2478, 2488, 2499, 2509, 2519, 2528, 2537,
+ 2546, 2555, 2565, 2575, 2585, 2594, 2603, 2612, 2621, 2631,
+ 2641, 2651, 2660, 2669, 2678, 2688, 2697, 2706, 2713, 2722,
+ 2731, 2740, 2750, 2759, 2768, 2778, 2787, 2796, 2805, 2815,
+ 2824, 2833, 2842, 2851, 2860, 2870, 2879, 2888, 2898, 2907,
+ 2917, 2926, 2936, 2945, 2955, 2964, 2974, 2983, 2993, 3002,
+ 3012, 3021, 3031, 3041, 3051, 3060, 3070, 3079, 3088, 3097,
+ 3106, 3115, 3124, 3133, 3142, 3151, 3160, 3169, 3179, 3189,
+ 3199, 3208
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK",
+ "BYTE", "CASE", "CATCH", "CHAR", "CLASS", "CONTINUE", "DEFAULT", "DO",
+ "DOUBLE", "ELSE", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF",
+ "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG",
+ "NATIVE", "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN",
+ "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS",
+ "THROW", "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE",
+ "BOOLEANLITERAL", "CHARACTERLITERAL", "DECIMALINTEGERLITERAL",
+ "FLOATINGPOINTLITERAL", "HEXINTEGERLITERAL", "NULLLITERAL",
+ "STRINGLITERAL", "NAME", "AND", "ANDAND", "ANDEQUALS", "BRACKETEND",
+ "BRACKETSTART", "CARROT", "CARROTEQUALS", "COLON", "COMMA", "CURLYEND",
+ "CURLYSTART", "DIVIDE", "DIVIDEEQUALS", "DOLLAR", "DOT", "EQUALS",
+ "EQUALSEQUALS", "EXCLAMATION", "EXCLAMATIONEQUALS", "GREATER",
+ "GTEQUALS", "GTGT", "GTGTEQUALS", "GTGTGT", "GTGTGTEQUALS",
+ "LESLESEQUALS", "LESSTHAN", "LTEQUALS", "LTLT", "MINUS", "MINUSEQUALS",
+ "MINUSMINUS", "PAREEND", "PARESTART", "PERCENT", "PERCENTEQUALS", "PIPE",
+ "PIPEEQUALS", "PIPEPIPE", "PLUS", "PLUSEQUALS", "PLUSPLUS", "QUESTION",
+ "SEMICOL", "TILDE", "TIMES", "TIMESEQUALS", "ERROR", "$accept", "Goal",
+ "Literal", "IntegerLiteral", "Type", "PrimitiveType", "ReferenceType",
+ "ClassOrInterfaceType", "ClassType", "InterfaceType", "ArrayType",
+ "Name", "SimpleName", "Identifier", "QualifiedName", "SimpleType",
+ "CompilationUnit", "PackageDeclarationopt", "ImportDeclarations",
+ "TypeDeclarations", "PackageDeclaration", "ImportDeclaration",
+ "SingleTypeImportDeclaration", "TypeImportOnDemandDeclaration",
+ "TypeDeclaration", "Modifiers", "Modifier", "ClassHeader",
+ "ClassDeclaration", "Modifiersopt", "Super", "Interfaces",
+ "InterfaceTypeList", "ClassBody", "ClassBodyDeclarations",
+ "ClassBodyDeclaration", "ClassMemberDeclaration", "FieldDeclaration",
+ "VariableDeclarators", "VariableDeclarator", "VariableDeclaratorId",
+ "VariableInitializer", "MethodDeclaration", "MethodHeader", "Throwsopt",
+ "MethodDeclarator", "FormalParameterListopt", "FormalParameterList",
+ "FormalParameter", "Throws", "ClassTypeList", "MethodBody",
+ "StaticInitializer", "ConstructorDeclaration", "ConstructorDeclarator",
+ "ConstructorBody", "ExplicitConstructorInvocationopt",
+ "ExplicitConstructorInvocation", "InterfaceHeader",
+ "InterfaceDeclaration", "ExtendsInterfacesopt", "ExtendsInterfaces",
+ "InterfaceBody", "InterfaceMemberDeclarations",
+ "InterfaceMemberDeclaration", "ConstantDeclaration",
+ "AbstractMethodDeclaration", "Semicols", "ArrayInitializer",
+ "VariableInitializersOptional", "VariableInitializers", "Block",
+ "BlockStatementsopt", "BlockStatements", "BlockStatement",
+ "LocalVariableDeclarationStatement", "LocalVariableDeclaration",
+ "Statement", "StatementNoShortIf",
+ "StatementWithoutTrailingSubstatement", "EmptyStatement",
+ "LabeledStatement", "LabeledStatementNoShortIf", "ExpressionStatement",
+ "StatementExpression", "IfThenStatement", "IfThenElseStatement",
+ "IfThenElseStatementNoShortIf", "SwitchStatement", "SwitchBlock",
+ "SwitchLabelsopt", "SwitchBlockStatementGroups",
+ "SwitchBlockStatementGroup", "SwitchLabels", "SwitchLabel",
+ "WhileStatement", "WhileStatementNoShortIf", "DoStatement",
+ "ForStatement", "ForUpdateopt", "ForInitopt", "ForStatementNoShortIf",
+ "Expressionopt", "ForInit", "ForUpdate", "StatementExpressionList",
+ "AssertStatement", "BreakStatement", "Identifieropt",
+ "ContinueStatement", "ReturnStatement", "ThrowStatement",
+ "SynchronizedStatement", "TryStatement", "Catchesopt", "Catches",
+ "CatchClause", "Finally", "Primary", "PrimaryNoNewArray",
+ "ClassInstanceCreationExpression", "ClassBodyOpt", "ArgumentListopt",
+ "ArgumentList", "ArrayCreationExpression", "Dimsopt", "DimExprs",
+ "DimExpr", "Dims", "FieldAccess", "MethodInvocation", "ArrayAccess",
+ "PostfixExpression", "PostIncrementExpression",
+ "PostDecrementExpression", "UnaryExpression", "PreIncrementExpression",
+ "PreDecrementExpression", "UnaryExpressionNotPlusMinus",
+ "CastExpression", "MultiplicativeExpression", "AdditiveExpression",
+ "ShiftExpression", "RelationalExpression", "EqualityExpression",
+ "AndExpression", "ExclusiveOrExpression", "InclusiveOrExpression",
+ "ConditionalAndExpression", "ConditionalOrExpression",
+ "ConditionalExpression", "AssignmentExpression", "Assignment",
+ "LeftHandSide", "AssignmentOperator", "Expression", "ConstantExpression",
+ "New", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const unsigned short int yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
+ 355, 356, 357, 358, 359, 360
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned short int yyr1[] =
+{
+ 0, 106, 107, 108, 108, 108, 108, 108, 108, 109,
+ 109, 110, 110, 111, 111, 111, 111, 111, 111, 111,
+ 111, 112, 112, 113, 114, 115, 116, 116, 117, 117,
+ 118, 119, 119, 120, 120, 120, 120, 121, 121, 122,
+ 123, 123, 124, 124, 125, 125, 126, 127, 127, 128,
+ 129, 130, 130, 130, 131, 131, 132, 132, 132, 132,
+ 132, 132, 132, 132, 132, 132, 132, 133, 134, 134,
+ 134, 134, 135, 135, 136, 137, 138, 138, 139, 140,
+ 140, 141, 141, 141, 141, 142, 142, 143, 144, 144,
+ 145, 145, 146, 146, 147, 147, 148, 148, 148, 149,
+ 149, 150, 150, 151, 151, 152, 152, 153, 153, 154,
+ 155, 156, 156, 157, 158, 159, 159, 160, 161, 162,
+ 162, 163, 163, 164, 165, 166, 166, 167, 167, 168,
+ 169, 169, 170, 170, 170, 170, 170, 170, 171, 172,
+ 173, 173, 174, 175, 175, 175, 176, 176, 177, 178,
+ 178, 179, 179, 180, 180, 180, 181, 182, 182, 183,
+ 183, 183, 183, 183, 183, 184, 184, 184, 184, 184,
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+ 185, 185, 186, 187, 188, 189, 190, 190, 190, 190,
+ 190, 190, 190, 191, 192, 193, 194, 195, 196, 196,
+ 197, 197, 198, 199, 199, 200, 200, 201, 202, 203,
+ 204, 205, 205, 206, 206, 207, 208, 208, 209, 209,
+ 210, 211, 211, 212, 212, 213, 214, 214, 215, 216,
+ 217, 218, 219, 219, 220, 220, 221, 221, 222, 223,
+ 224, 224, 225, 225, 225, 225, 225, 225, 225, 226,
+ 227, 227, 228, 228, 229, 229, 230, 230, 230, 230,
+ 231, 231, 232, 232, 233, 234, 234, 235, 235, 235,
+ 235, 236, 236, 236, 236, 237, 237, 238, 238, 238,
+ 238, 238, 239, 240, 241, 241, 241, 241, 241, 242,
+ 243, 244, 244, 244, 244, 245, 245, 245, 246, 246,
+ 246, 246, 247, 247, 247, 248, 248, 248, 248, 249,
+ 249, 249, 249, 249, 249, 250, 250, 250, 251, 251,
+ 252, 252, 253, 253, 254, 254, 255, 255, 256, 256,
+ 257, 257, 258, 259, 259, 259, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 261, 262,
+ 263, 263
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 1, 1,
+ 1, 1, 2, 3, 3, 3, 3, 1, 1, 3,
+ 0, 1, 0, 2, 0, 2, 3, 1, 1, 3,
+ 5, 1, 1, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 3, 2, 3,
+ 3, 4, 0, 1, 2, 2, 1, 3, 3, 0,
+ 2, 1, 1, 1, 1, 1, 1, 4, 1, 3,
+ 1, 3, 1, 3, 1, 1, 2, 2, 3, 4,
+ 4, 0, 1, 4, 3, 0, 1, 1, 3, 3,
+ 2, 1, 3, 1, 2, 4, 5, 4, 4, 0,
+ 2, 5, 5, 3, 3, 0, 1, 2, 3, 3,
+ 0, 2, 1, 1, 1, 2, 1, 2, 1, 2,
+ 1, 2, 3, 0, 1, 2, 1, 3, 3, 0,
+ 1, 1, 2, 1, 1, 1, 2, 3, 2, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 3, 3, 2, 1, 1, 1, 1,
+ 1, 1, 1, 5, 7, 7, 5, 4, 0, 1,
+ 0, 2, 2, 1, 2, 3, 2, 5, 5, 7,
+ 9, 0, 1, 0, 1, 9, 0, 1, 1, 1,
+ 1, 1, 3, 3, 5, 3, 0, 1, 3, 3,
+ 3, 5, 3, 4, 0, 1, 1, 2, 5, 2,
+ 1, 1, 1, 1, 3, 1, 1, 1, 1, 6,
+ 0, 1, 0, 1, 1, 3, 4, 4, 4, 4,
+ 0, 1, 1, 2, 3, 2, 3, 3, 3, 3,
+ 3, 4, 6, 6, 6, 4, 4, 1, 1, 3,
+ 1, 1, 2, 2, 1, 1, 2, 2, 1, 2,
+ 2, 1, 2, 2, 1, 5, 4, 5, 1, 3,
+ 3, 3, 1, 3, 3, 1, 3, 3, 3, 1,
+ 3, 3, 3, 3, 3, 1, 3, 3, 1, 3,
+ 1, 3, 1, 3, 1, 3, 1, 3, 1, 5,
+ 1, 1, 3, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const unsigned short int yydefact[] =
+{
+ 40, 0, 0, 2, 42, 41, 20, 13, 17, 19,
+ 18, 15, 16, 14, 38, 31, 0, 37, 0, 28,
+ 30, 29, 0, 1, 44, 32, 0, 46, 0, 0,
+ 72, 43, 47, 48, 34, 35, 33, 36, 0, 60,
+ 61, 62, 58, 57, 56, 59, 66, 63, 64, 65,
+ 53, 45, 73, 54, 0, 51, 0, 125, 52, 0,
+ 49, 55, 0, 0, 79, 0, 0, 68, 0, 0,
+ 0, 0, 126, 0, 24, 74, 23, 25, 76, 75,
+ 72, 0, 70, 69, 67, 123, 127, 130, 124, 0,
+ 50, 0, 59, 78, 84, 0, 80, 81, 85, 86,
+ 0, 82, 83, 71, 72, 128, 77, 72, 114, 38,
+ 0, 11, 12, 21, 22, 23, 28, 101, 96, 97,
+ 113, 129, 134, 0, 138, 0, 136, 131, 132, 133,
+ 0, 226, 226, 0, 0, 0, 350, 216, 0, 0,
+ 63, 243, 0, 0, 0, 5, 6, 9, 4, 10,
+ 8, 7, 0, 0, 0, 182, 242, 3, 0, 22,
+ 333, 30, 73, 155, 0, 170, 0, 72, 151, 153,
+ 0, 154, 159, 171, 160, 172, 0, 161, 162, 173,
+ 163, 174, 164, 181, 175, 176, 177, 179, 178, 180,
+ 277, 240, 245, 241, 246, 247, 248, 0, 189, 190,
+ 187, 188, 186, 0, 0, 0, 101, 92, 0, 88,
+ 90, 101, 0, 26, 27, 72, 0, 0, 102, 98,
+ 135, 140, 139, 137, 0, 0, 0, 0, 0, 37,
+ 0, 278, 245, 247, 291, 280, 281, 298, 284, 285,
+ 288, 294, 302, 305, 309, 315, 318, 320, 322, 324,
+ 326, 328, 330, 348, 331, 0, 227, 0, 0, 0,
+ 0, 213, 0, 0, 217, 0, 0, 0, 0, 0,
+ 234, 0, 278, 246, 248, 290, 0, 289, 92, 158,
+ 0, 0, 0, 252, 0, 0, 148, 152, 156, 185,
+ 0, 0, 283, 282, 345, 346, 338, 336, 343, 344,
+ 342, 341, 339, 347, 340, 337, 0, 37, 24, 0,
+ 72, 0, 100, 0, 87, 0, 0, 99, 265, 0,
+ 0, 0, 106, 107, 111, 110, 119, 115, 141, 293,
+ 287, 37, 278, 0, 286, 292, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 223, 225,
+ 228, 0, 0, 219, 221, 0, 214, 218, 0, 229,
+ 268, 0, 0, 269, 230, 0, 0, 232, 236, 0,
+ 244, 279, 0, 351, 0, 253, 254, 183, 157, 270,
+ 267, 0, 332, 0, 260, 262, 0, 260, 0, 252,
+ 0, 104, 89, 93, 143, 91, 95, 94, 266, 0,
+ 117, 72, 0, 72, 116, 0, 26, 27, 244, 300,
+ 301, 299, 304, 303, 307, 308, 306, 314, 311, 313,
+ 310, 312, 316, 317, 319, 321, 323, 325, 327, 0,
+ 0, 0, 216, 0, 0, 252, 0, 0, 252, 72,
+ 0, 233, 237, 0, 275, 271, 0, 252, 276, 0,
+ 256, 263, 261, 258, 257, 259, 0, 103, 146, 0,
+ 144, 109, 108, 112, 0, 243, 120, 0, 0, 0,
+ 296, 0, 224, 0, 0, 222, 0, 0, 0, 30,
+ 193, 0, 159, 166, 167, 168, 169, 0, 200, 196,
+ 231, 0, 0, 239, 207, 255, 0, 264, 250, 142,
+ 145, 252, 252, 118, 295, 297, 329, 0, 211, 213,
+ 0, 0, 0, 0, 273, 198, 274, 0, 272, 251,
+ 249, 147, 0, 0, 209, 0, 212, 220, 0, 0,
+ 0, 184, 194, 0, 0, 0, 201, 72, 203, 238,
+ 0, 0, 0, 216, 0, 0, 349, 0, 206, 197,
+ 202, 204, 122, 121, 210, 0, 0, 208, 205, 211,
+ 0, 0, 195, 0, 215
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short int yydefgoto[] =
+{
+ -1, 2, 156, 157, 158, 229, 112, 113, 75, 78,
+ 230, 231, 19, 20, 21, 22, 3, 4, 24, 30,
+ 5, 31, 32, 33, 51, 52, 53, 54, 163, 164,
+ 65, 66, 79, 67, 80, 96, 97, 98, 208, 209,
+ 210, 405, 99, 100, 217, 206, 321, 322, 323, 218,
+ 325, 119, 101, 102, 117, 327, 413, 476, 57, 58,
+ 71, 72, 88, 104, 127, 128, 129, 222, 406, 469,
+ 470, 165, 166, 167, 168, 169, 170, 171, 491, 172,
+ 173, 174, 493, 175, 176, 177, 178, 494, 179, 499,
+ 545, 525, 546, 547, 548, 180, 495, 181, 182, 535,
+ 365, 496, 263, 366, 536, 367, 183, 184, 257, 185,
+ 186, 187, 188, 189, 376, 377, 378, 451, 190, 191,
+ 232, 530, 384, 385, 193, 415, 394, 395, 214, 194,
+ 233, 196, 234, 235, 236, 237, 238, 239, 240, 241,
+ 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
+ 252, 253, 254, 203, 306, 386, 557, 204
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -503
+static const short int yypact[] =
+{
+ 159, 1039, 236, -503, -503, -503, -503, -503, -503, -503,
+ -503, -503, -503, -503, -503, -503, 186, -503, 56, -503,
+ -503, -503, 178, -503, 35, -503, 21, -503, 248, 1039,
+ 273, -503, -503, -503, -503, -503, -503, -503, 78, -503,
+ -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+ -503, -503, 2088, -503, 32, -503, 16, 245, -503, 28,
+ -503, -503, 1039, 1039, -503, 80, 206, -503, 129, 129,
+ 1039, 221, 228, 194, -503, -503, 225, -503, -503, 234,
+ 164, 206, -503, -503, -503, -503, -503, -503, -503, 1039,
+ -503, 1039, 233, -503, -503, 739, -503, -503, -503, -503,
+ -49, -503, -503, -503, 1116, -503, -503, 1276, -503, 129,
+ 129, 40, -503, -503, -503, 122, 212, 265, -503, 215,
+ -503, -503, 219, 739, -503, 222, 224, -503, -503, -503,
+ 1820, 129, 129, 1627, 237, 238, -503, 1820, 241, 239,
+ 242, 283, 1820, 233, 266, -503, -503, -503, -503, -503,
+ -503, -503, 1820, 1820, 1820, -503, -503, -503, 129, 284,
+ 476, 293, 2067, -503, 349, -503, 296, 1366, -503, -503,
+ 264, -503, -503, -503, -503, -503, 268, -503, -503, -503,
+ -503, -503, -503, -503, -503, -503, -503, -503, -503, -503,
+ 294, 305, 72, -503, 2070, 88, 2084, 121, 130, 148,
+ -503, -503, -503, 2111, 1039, 281, 133, 281, -25, -503,
+ 126, 133, 314, 315, 315, 921, 1039, 308, -503, -503,
+ -503, -503, 277, -503, 1820, 1820, 1820, 1820, 1820, 317,
+ 284, 545, -503, -503, 121, -503, -503, -503, -503, -503,
+ -503, -503, 73, 124, 163, 59, 196, 323, 319, 290,
+ 324, 18, -503, -503, -503, -30, -503, 285, 286, 242,
+ 342, 1941, 1820, 291, -503, 129, 1820, 1820, 129, 292,
+ 385, 1820, 96, -503, -503, -503, 310, -503, -503, 329,
+ 387, 1085, 3, 1820, 1627, 129, -503, -503, -503, -503,
+ 175, 1820, -503, -503, -503, -503, -503, -503, -503, -503,
+ -503, -503, -503, -503, -503, -503, 1820, 339, 339, 311,
+ 921, 343, -503, 129, -503, 344, 1766, -503, -503, 346,
+ 1039, 313, 347, -503, -503, 353, -503, 307, -503, -503,
+ -503, 6, 545, 326, -503, -503, 1820, 1820, 1820, 1820,
+ 1820, 1820, 1820, 1820, 1039, 1820, 1820, 1820, 1820, 1820,
+ 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, -503, -503,
+ -503, 330, 2067, -503, -503, 327, -503, 354, 334, -503,
+ 345, 335, 340, 348, -503, 351, 416, 232, -503, 356,
+ -503, -503, 376, -503, 357, 377, -503, -503, 329, -503,
+ 358, 390, -503, 1085, 339, -503, 154, 339, 154, 1820,
+ 362, -503, -503, -503, 1766, -503, -503, -503, -503, 129,
+ -503, 2088, 1039, 1456, -503, 363, 70, 93, 1874, -503,
+ -503, -503, 73, 73, 124, 124, 124, -503, 163, 163,
+ 163, 163, 59, 59, 196, 323, 319, 290, 324, 383,
+ 360, 1820, 1820, 1995, 1699, 1820, 386, 233, 1820, 2088,
+ 233, -503, -503, 1627, -503, -503, 1820, 1820, -503, 394,
+ -503, -503, 315, -503, -503, -503, 369, -503, -503, 396,
+ 404, 410, -503, -503, 26, 113, -503, 407, 1820, 1874,
+ -503, 1820, -503, 391, 374, -503, 393, 395, 397, 411,
+ -503, 466, 471, -503, -503, -503, -503, 399, -503, -503,
+ -503, 400, 401, -503, -503, -503, 402, -503, 206, -503,
+ 1766, 1820, 1820, -503, -503, -503, -503, 403, 1995, 1941,
+ 1820, 1820, 1699, 1627, -503, 34, -503, 233, -503, -503,
+ -503, -503, 405, 412, -503, 413, -503, 354, 406, 418,
+ 421, -503, -503, 1820, 429, 430, -503, 1186, -503, -503,
+ 419, 422, 1627, 1820, 1699, 1699, -503, 447, -503, -503,
+ 1555, -503, -503, -503, -503, 423, 497, -503, -503, 1995,
+ 1699, 432, -503, 1699, -503
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const short int yypgoto[] =
+{
+ -503, -503, -503, -503, -85, 2, 181, -41, -198, -45,
+ -87, -1, 431, 14, -503, -503, -503, -503, -503, -503,
+ -503, -503, -503, -503, 448, -81, -47, -503, 7, -23,
+ -503, 462, -503, -64, -503, -503, -503, 425, -146, 217,
+ 123, -391, -503, 427, -101, 424, 230, -503, -360, -503,
+ -503, -503, -503, -503, -503, -503, -503, -503, -503, 439,
+ -503, -503, -503, -503, -503, -503, -503, -503, -110, -503,
+ -503, -77, 138, -12, -163, -503, -250, -13, -421, -414,
+ -503, -503, -503, -503, -252, -503, -503, -503, -503, -503,
+ -503, -503, -503, -503, 5, -503, -503, -503, -503, -16,
+ 36, -503, -418, -503, -503, -502, -503, -503, 440, -503,
+ -503, -503, -503, -503, -503, -503, 179, -503, -503, -503,
+ -54, -503, -341, -503, -503, -149, 255, -136, 102, 652,
+ 101, 688, 145, 157, 201, -98, 289, 338, -384, -503,
+ -59, -58, -92, -57, 213, 226, 218, 223, 227, -503,
+ 95, 274, 350, -503, -503, 660, -503, -503
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -336
+static const short int yytable[] =
+{
+ 18, 82, 83, 17, 287, 61, 309, 56, 114, 364,
+ 110, 363, 279, 468, 34, 108, 537, 103, 324, 107,
+ 159, 74, 77, 120, 484, 86, 162, 68, 38, 77,
+ 492, 17, 34, 383, 480, 357, 114, 55, 110, 34,
+ 36, 313, 543, 69, 105, 35, 106, 544, 77, 62,
+ 77, 472, 118, 192, 275, 63, 277, 95, 466, 29,
+ 15, 76, 76, 35, 17, 17, 270, 537, 212, 76,
+ 35, 358, 17, 36, 16, 114, 314, 285, 15, 192,
+ 159, 123, 84, 85, 344, 15, 162, 55, 76, 502,
+ 76, 17, 16, 17, 115, 515, -260, 111, 265, 16,
+ 64, 541, 212, 63, 497, 312, 160, 501, 492, 111,
+ 317, 122, -37, 192, 355, 61, 506, 511, 356, 531,
+ 260, 161, 115, 205, 207, 111, 329, 330, 26, 334,
+ 335, 73, 319, 566, 567, 565, 345, 346, -192, 388,
+ 492, 492, 336, 347, 348, 256, 256, 161, 64, 572,
+ 59, 272, 574, 272, -191, 319, 492, 27, 281, 492,
+ -261, 115, -192, 308, 111, 337, 160, 39, 282, 111,
+ 532, 533, 278, -192, 159, 74, 338, 216, -191, 60,
+ 362, 161, 40, 479, 212, 268, 15, 283, 315, -191,
+ 1, 485, 320, 41, 26, 311, 42, 43, 44, 316,
+ 16, 92, 46, 76, 512, 47, 307, 192, 195, 48,
+ 292, 339, 49, 213, 473, 76, 319, 389, 17, -280,
+ 293, 340, 404, 272, 272, 332, 272, 272, 331, -280,
+ 192, 93, 15, 114, 195, 409, 23, -281, 419, 420,
+ 421, 375, 341, 25, 342, 460, 16, -281, 464, 343,
+ 28, -235, 197, 428, 429, 430, 431, 114, 461, 37,
+ 160, 461, 70, 111, 198, 50, 364, 364, 195, 363,
+ 349, 387, 350, -39, 64, 114, 39, 285, 197, 370,
+ 422, 423, 373, 424, 425, 426, 463, 320, 465, 87,
+ 198, 40, 432, 433, 89, 90, 36, 26, 161, 278,
+ 91, 107, 41, 215, 390, 42, 43, 44, 199, 216,
+ 45, 46, 197, 265, 47, 61, 219, 364, 48, 115,
+ 220, 49, 111, 221, 198, 223, 159, 278, 261, 262,
+ 266, 213, 162, 267, 199, 272, 272, 272, 272, 272,
+ 272, 272, 272, 115, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 268, 280, 271, 284, 192,
+ 68, 115, 195, 286, 111, 288, 290, 291, 199, 289,
+ 500, 74, 310, 503, 50, 318, 326, 319, 328, 212,
+ 514, 351, 352, 354, 353, 195, 359, 360, 320, 192,
+ 192, 361, 369, 374, 375, 313, 200, 287, 381, 192,
+ 380, 393, 399, 410, 401, 403, 197, 408, 414, 396,
+ 398, 76, 160, 411, 17, 111, 418, 272, 198, 412,
+ 443, 441, 200, 278, 444, 446, 320, 161, 442, 197,
+ 447, 490, 159, 416, 417, 450, 445, 454, 362, 448,
+ 504, 198, 449, 456, 529, 201, 453, 455, 481, 457,
+ 549, 458, 467, 478, 498, 507, 200, 202, 489, 508,
+ 159, 482, 199, 509, 192, 192, 162, 161, 192, 192,
+ 510, 201, 315, 159, 513, 518, 522, 272, 272, 162,
+ 272, 517, 523, 202, 519, 199, 520, -165, 521, 524,
+ 526, 527, 528, 192, 558, 550, 462, 559, 192, 462,
+ 192, 192, 551, 552, 534, 201, 192, 553, 554, 387,
+ 542, 555, 568, 570, 195, 192, 192, 202, 160, 192,
+ 562, 111, 573, 563, 569, 427, 116, 81, 94, 124,
+ 402, 125, 471, -23, 211, 560, 489, 161, 281, 564,
+ 400, 490, 504, 126, 195, 195, 160, -23, 282, 111,
+ 200, 477, 561, 571, 195, 538, 452, 542, 197, 160,
+ 564, 161, 111, 397, 434, -278, 161, 283, 489, 489,
+ 198, 436, 258, 200, 161, -278, 516, 437, 435, 0,
+ 392, 0, 438, 0, 489, 0, 0, 489, 197, 197,
+ 0, 0, 0, 0, 0, 0, 0, 0, 197, 201,
+ 198, 198, 0, 0, 0, -333, 0, 281, 0, -333,
+ 198, 202, 0, 0, 199, -333, 0, 282, -333, 195,
+ 195, 0, 201, 195, 195, -333, 0, -333, -333, 0,
+ 0, 0, 0, -333, 202, 0, 283, 0, -333, 0,
+ -333, 0, 0, -333, 199, 199, 0, 0, 195, -333,
+ 0, 0, 0, 195, 199, 195, 195, 0, 0, 0,
+ 0, 195, 0, 197, 197, 0, 0, 197, 197, 0,
+ 195, 195, 0, 0, 195, 198, 198, 0, 0, 198,
+ 198, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 197, 0, 0, 0, 0, 197, 0, 197,
+ 197, 0, 200, 0, 198, 197, 0, 0, 0, 198,
+ 0, 198, 198, 0, 197, 197, 0, 198, 197, 199,
+ 199, 0, 0, 199, 199, 0, 198, 198, 0, 0,
+ 198, 0, 200, 200, 0, 0, 0, 0, 0, 0,
+ 0, 0, 200, 0, 6, 0, 7, 0, 199, 8,
+ 68, 201, 0, 199, 9, 199, 199, 0, 0, 10,
+ 0, 199, 0, 202, 0, 11, 69, 12, 0, 0,
+ 199, 199, 0, 0, 199, 13, 0, 0, 0, 0,
+ 0, 201, 201, 0, 0, 0, 109, 0, 0, 0,
+ 255, 201, 0, 202, 202, 0, 15, 264, 0, 0,
+ 0, 0, 269, 202, 273, 0, 273, 200, 200, 0,
+ 16, 200, 200, 276, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 200, 0, 0, 0,
+ 274, 200, 274, 200, 200, 0, 0, 0, 0, 200,
+ 0, 0, 0, 0, 0, 0, 201, 201, 200, 200,
+ 201, 201, 200, 0, 0, 0, 0, 0, 202, 202,
+ 0, 0, 202, 202, 0, 0, 273, 273, 0, 273,
+ 273, 0, 0, 0, 0, 201, 333, 0, 0, 0,
+ 201, 0, 201, 201, 0, 0, 0, 202, 201, 0,
+ 0, 0, 202, 0, 202, 202, 0, 201, 201, 0,
+ 202, 201, 274, 274, 0, 274, 274, 0, 0, 202,
+ 202, 0, 368, 202, 39, 0, 371, 372, 0, 0,
+ 0, 379, 0, 0, 0, 0, 0, 0, 0, 40,
+ 0, 382, 0, 0, 0, 0, 0, 0, 0, 0,
+ 41, 391, 0, 42, 43, 44, 0, 0, 45, 46,
+ 0, 0, 47, 0, 0, 0, 48, 0, 0, 49,
+ 0, 0, 0, 0, 0, 0, 407, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 273, 273,
+ 273, 273, 273, 273, 273, 273, 0, 273, 273, 273,
+ 273, 273, 273, 273, 273, 273, 273, 273, 0, 0,
+ 0, -105, 0, 0, 0, 0, 439, 440, 0, 0,
+ 0, 0, 0, 0, 274, 274, 274, 274, 274, 274,
+ 274, 274, 0, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 274, 274, 6, 0, 7, 0, 0, 8,
+ 0, 0, 0, 459, 9, 0, 0, 0, 0, 10,
+ 0, 0, 0, 0, 407, 11, 0, 12, 0, 0,
+ 273, 0, 0, 0, 0, 13, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
+ 6, 0, 7, 0, 0, 8, 15, 0, 0, 0,
+ 9, 483, 264, 0, 0, 10, 274, 0, 0, 0,
+ 16, 11, 0, 12, 0, 136, 505, 0, 0, 39,
+ 0, 13, 0, 0, 138, 0, 0, 141, 0, 0,
+ 273, 273, 14, 273, 40, 145, 146, 147, 148, 149,
+ 150, 151, 15, 0, 0, 41, 318, 0, 42, 43,
+ 44, 0, 0, 45, 46, 0, 16, 47, 0, 0,
+ 224, 48, 0, 0, 49, 0, 274, 274, 0, 274,
+ 407, 0, 225, 0, 152, 0, 226, 0, 0, 0,
+ 539, 540, 227, 121, 154, 0, 0, 228, 0, 39,
+ 130, 6, 131, 7, 543, 0, 8, 0, 132, 544,
+ 133, 9, 0, 556, 40, 0, 10, 134, 135, 0,
+ 0, 0, 11, 264, 12, 41, 136, 0, 42, 43,
+ 44, 137, 13, 45, 46, 138, 139, 140, 141, 142,
+ 0, 48, 143, 14, 49, 144, 145, 146, 147, 148,
+ 149, 150, 151, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -199, 107, 0, 0, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 152, 0, 153, 0, 39,
+ 130, 6, 131, 7, 0, 154, 8, 155, 132, 0,
+ 133, 9, 0, 0, 40, 0, 10, 134, 135, 0,
+ 0, 0, 11, 0, 12, 41, 136, 0, 42, 43,
+ 44, 137, 13, 45, 46, 138, 139, 140, 141, 142,
+ 0, 48, 143, 14, 49, 144, 145, 146, 147, 148,
+ 149, 150, 151, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -149, 107, 0, 0, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 152, 0, 153, 0, 39,
+ 130, 6, 131, 7, 0, 154, 8, 155, 132, 0,
+ 133, 9, 0, 0, 40, 0, 10, 134, 135, 0,
+ 0, 0, 11, 0, 12, 41, 136, 0, 42, 43,
+ 44, 137, 13, 45, 46, 138, 139, 140, 141, 142,
+ 0, 48, 143, 14, 49, 144, 145, 146, 147, 148,
+ 149, 150, 151, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -150, 107, 0, 0, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 152, 0, 153, 0, 39,
+ 130, 6, 131, 7, 0, 154, 8, 155, 132, 0,
+ 133, 9, 0, 0, 40, 0, 10, 134, 135, 0,
+ 0, 0, 11, 0, 12, 41, 136, 0, 42, 43,
+ 44, 137, 13, 45, 46, 474, 139, 140, 475, 142,
+ 0, 48, 143, 14, 49, 144, 145, 146, 147, 148,
+ 149, 150, 151, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -149, 107, 0, 0, 16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 152, 0, 153, 0, 0,
+ 0, 0, 0, 0, 0, 154, 0, 155, 39, 130,
+ 6, 131, 7, 0, 0, 8, -72, 132, 0, 133,
+ 9, 0, 0, 40, 0, 10, 134, 135, 0, 0,
+ 0, 11, 0, 12, 41, 136, 0, 42, 43, 44,
+ 137, 13, 45, 46, 138, 139, 140, 141, 142, 0,
+ 48, 143, 14, 49, 144, 145, 146, 147, 148, 149,
+ 150, 151, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 107, 0, 0, 16, 0, 0, 0,
+ 0, 130, 6, 131, 7, 0, 0, 8, 0, 132,
+ 0, 133, 9, 0, 152, 0, 153, 10, 134, 135,
+ 0, 0, 0, 11, 154, 12, 155, 136, 0, 0,
+ 0, 0, 137, 13, 0, 0, 138, 139, 259, 141,
+ 142, 0, 0, 143, 14, 0, 144, 145, 146, 147,
+ 148, 149, 150, 151, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 107, 0, 0, 16, 0,
+ 0, 0, 0, 130, 6, 131, 7, 0, 0, 8,
+ 0, 132, 0, 133, 9, 0, 152, 0, 153, 10,
+ 486, 487, 0, 0, 0, 11, 154, 12, 155, 136,
+ 0, 0, 0, 0, 137, 13, 0, 0, 138, 139,
+ 259, 141, 142, 0, 0, 143, 14, 0, 488, 145,
+ 146, 147, 148, 149, 150, 151, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 107, 0, 0,
+ 16, 6, 0, 7, 0, 0, 8, 0, 0, 0,
+ 0, 9, 0, 0, 0, 0, 10, 0, 152, 0,
+ 153, 0, 11, 0, 12, 0, 136, 0, 154, 0,
+ 155, 0, 13, 0, 0, 138, 0, 0, 141, 0,
+ 0, 0, 0, 14, 0, 0, 145, 146, 147, 148,
+ 149, 150, 151, 15, 0, 6, 0, 7, 0, 0,
+ 8, 0, 0, 0, 404, 9, 0, 16, 0, 0,
+ 10, 224, 0, 0, 0, 0, 11, 0, 12, 0,
+ 136, 0, 0, 225, 0, 152, 13, 226, 0, 138,
+ 0, 0, 141, 227, 0, 154, 0, 14, 228, 0,
+ 145, 146, 147, 148, 149, 150, 151, 15, 0, 6,
+ 0, 7, 0, 0, 8, 0, 0, 0, 0, 9,
+ 0, 16, 0, 0, 10, 224, 0, 0, 0, 0,
+ 11, 0, 12, 0, 136, 0, 0, 225, 0, 152,
+ 13, 226, 0, 138, 0, 0, 141, 227, 0, 154,
+ 0, 14, 228, 0, 145, 146, 147, 148, 149, 150,
+ 151, 15, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 39, 16, 6, 0, 7, 224,
+ 0, 8, 0, 0, 0, 0, 9, 0, 0, 40,
+ 0, 10, 0, 0, 0, 226, 0, 11, 0, 12,
+ 41, 136, 0, 42, 43, 44, 228, 13, 45, 46,
+ 138, 0, 47, 141, 0, 0, 48, 0, 14, 49,
+ 0, 145, 146, 147, 148, 149, 150, 151, 15, 0,
+ 6, 0, 7, 0, 0, 8, 0, 0, 0, 0,
+ 9, 0, 16, 0, 0, 10, 0, 0, 0, 0,
+ 0, 11, 0, 12, 0, 136, 0, 0, 0, 0,
+ 152, 13, 153, 0, 138, 0, 0, 141, 0, 0,
+ 154, 0, 14, 0, 0, 145, 146, 147, 148, 149,
+ 150, 151, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
+ 39, 0, 6, 0, 7, 0, 0, 8, 0, 0,
+ 0, 0, 9, 0, 152, 40, 153, 10, 0, 0,
+ 0, 39, 0, 11, 154, 12, 41, 0, 0, 42,
+ 43, 44, 0, 13, 45, 46, 40, 0, 47, 0,
+ 0, 0, 48, 0, 14, 49, 0, 41, 0, 0,
+ 42, 43, 44, 0, 15, 45, 46, 0, 0, 47,
+ -334, 0, 0, 48, -334, 0, 49, 0, 16, 0,
+ -334, 0, 0, -334, -335, 0, 0, 0, -335, 0,
+ -334, 0, -334, -334, -335, 0, 0, -335, -334, 0,
+ 0, 0, 0, -334, -335, -334, -335, -335, -334, 0,
+ 0, 294, -335, 0, -334, 295, 0, -335, 0, -335,
+ 0, 296, -335, 0, 297, 0, 0, 0, -335, 0,
+ 0, 298, 0, 299, 300, 0, 0, 0, 0, 301,
+ 0, 0, 0, 0, 302, 0, 303, 0, 0, 304,
+ 0, 0, 0, 0, 0, 305
+};
+
+static const short int yycheck[] =
+{
+ 1, 65, 66, 1, 167, 52, 204, 30, 95, 261,
+ 95, 261, 158, 404, 11, 92, 518, 81, 216, 68,
+ 107, 62, 63, 100, 442, 70, 107, 11, 29, 70,
+ 444, 29, 11, 30, 418, 65, 123, 30, 123, 11,
+ 26, 66, 8, 27, 89, 42, 91, 13, 89, 17,
+ 91, 411, 101, 107, 152, 23, 154, 80, 399, 24,
+ 57, 62, 63, 42, 62, 63, 143, 569, 62, 70,
+ 42, 101, 70, 59, 71, 162, 101, 162, 57, 133,
+ 167, 104, 68, 69, 25, 57, 167, 80, 89, 449,
+ 91, 89, 71, 91, 95, 479, 90, 95, 72, 71,
+ 68, 522, 62, 23, 445, 206, 107, 448, 522, 107,
+ 211, 104, 72, 167, 96, 162, 457, 91, 100, 510,
+ 133, 107, 123, 109, 110, 123, 224, 225, 72, 227,
+ 228, 103, 62, 554, 555, 553, 77, 78, 66, 285,
+ 554, 555, 69, 84, 85, 131, 132, 133, 68, 570,
+ 72, 152, 573, 154, 66, 62, 570, 101, 62, 573,
+ 90, 162, 90, 204, 162, 92, 167, 3, 72, 167,
+ 511, 512, 158, 101, 261, 216, 103, 44, 90, 101,
+ 261, 167, 18, 90, 62, 72, 57, 91, 62, 101,
+ 31, 443, 215, 29, 72, 62, 32, 33, 34, 73,
+ 71, 37, 38, 204, 91, 41, 204, 261, 107, 45,
+ 89, 87, 48, 111, 412, 216, 62, 42, 216, 89,
+ 99, 97, 68, 224, 225, 226, 227, 228, 226, 99,
+ 284, 67, 57, 320, 133, 320, 0, 89, 336, 337,
+ 338, 9, 79, 57, 81, 394, 71, 99, 397, 86,
+ 72, 19, 107, 345, 346, 347, 348, 344, 394, 11,
+ 261, 397, 17, 261, 107, 101, 518, 519, 167, 519,
+ 74, 284, 76, 0, 68, 362, 3, 362, 133, 265,
+ 339, 340, 268, 341, 342, 343, 396, 310, 398, 68,
+ 133, 18, 349, 350, 66, 101, 282, 72, 284, 285,
+ 66, 68, 29, 91, 290, 32, 33, 34, 107, 44,
+ 37, 38, 167, 72, 41, 362, 101, 569, 45, 320,
+ 101, 48, 320, 101, 167, 101, 413, 313, 91, 91,
+ 91, 229, 413, 91, 133, 336, 337, 338, 339, 340,
+ 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
+ 351, 352, 353, 354, 355, 72, 72, 91, 65, 413,
+ 11, 362, 261, 67, 362, 101, 72, 62, 167, 101,
+ 447, 412, 91, 450, 101, 61, 68, 62, 101, 62,
+ 478, 58, 63, 59, 94, 284, 101, 101, 411, 443,
+ 444, 49, 101, 101, 9, 66, 107, 560, 11, 453,
+ 90, 62, 91, 90, 61, 61, 261, 61, 101, 307,
+ 308, 412, 413, 66, 412, 413, 90, 418, 261, 66,
+ 66, 91, 133, 409, 90, 90, 449, 413, 101, 284,
+ 90, 444, 519, 331, 332, 19, 91, 61, 519, 91,
+ 453, 284, 91, 66, 508, 107, 90, 90, 65, 91,
+ 527, 61, 90, 90, 68, 61, 167, 107, 444, 90,
+ 547, 101, 261, 67, 518, 519, 547, 453, 522, 523,
+ 66, 133, 62, 560, 67, 101, 65, 478, 479, 560,
+ 481, 90, 16, 133, 91, 284, 91, 16, 91, 90,
+ 90, 90, 90, 547, 65, 90, 394, 67, 552, 397,
+ 554, 555, 90, 90, 101, 167, 560, 101, 90, 522,
+ 523, 90, 65, 16, 413, 569, 570, 167, 519, 573,
+ 101, 519, 90, 101, 101, 344, 95, 65, 80, 104,
+ 313, 104, 409, 57, 110, 547, 522, 523, 62, 552,
+ 310, 554, 555, 104, 443, 444, 547, 71, 72, 547,
+ 261, 413, 547, 569, 453, 519, 377, 570, 413, 560,
+ 573, 547, 560, 308, 351, 89, 552, 91, 554, 555,
+ 413, 353, 132, 284, 560, 99, 481, 354, 352, -1,
+ 306, -1, 355, -1, 570, -1, -1, 573, 443, 444,
+ -1, -1, -1, -1, -1, -1, -1, -1, 453, 261,
+ 443, 444, -1, -1, -1, 60, -1, 62, -1, 64,
+ 453, 261, -1, -1, 413, 70, -1, 72, 73, 518,
+ 519, -1, 284, 522, 523, 80, -1, 82, 83, -1,
+ -1, -1, -1, 88, 284, -1, 91, -1, 93, -1,
+ 95, -1, -1, 98, 443, 444, -1, -1, 547, 104,
+ -1, -1, -1, 552, 453, 554, 555, -1, -1, -1,
+ -1, 560, -1, 518, 519, -1, -1, 522, 523, -1,
+ 569, 570, -1, -1, 573, 518, 519, -1, -1, 522,
+ 523, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 547, -1, -1, -1, -1, 552, -1, 554,
+ 555, -1, 413, -1, 547, 560, -1, -1, -1, 552,
+ -1, 554, 555, -1, 569, 570, -1, 560, 573, 518,
+ 519, -1, -1, 522, 523, -1, 569, 570, -1, -1,
+ 573, -1, 443, 444, -1, -1, -1, -1, -1, -1,
+ -1, -1, 453, -1, 5, -1, 7, -1, 547, 10,
+ 11, 413, -1, 552, 15, 554, 555, -1, -1, 20,
+ -1, 560, -1, 413, -1, 26, 27, 28, -1, -1,
+ 569, 570, -1, -1, 573, 36, -1, -1, -1, -1,
+ -1, 443, 444, -1, -1, -1, 47, -1, -1, -1,
+ 130, 453, -1, 443, 444, -1, 57, 137, -1, -1,
+ -1, -1, 142, 453, 152, -1, 154, 518, 519, -1,
+ 71, 522, 523, 153, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 547, -1, -1, -1,
+ 152, 552, 154, 554, 555, -1, -1, -1, -1, 560,
+ -1, -1, -1, -1, -1, -1, 518, 519, 569, 570,
+ 522, 523, 573, -1, -1, -1, -1, -1, 518, 519,
+ -1, -1, 522, 523, -1, -1, 224, 225, -1, 227,
+ 228, -1, -1, -1, -1, 547, 226, -1, -1, -1,
+ 552, -1, 554, 555, -1, -1, -1, 547, 560, -1,
+ -1, -1, 552, -1, 554, 555, -1, 569, 570, -1,
+ 560, 573, 224, 225, -1, 227, 228, -1, -1, 569,
+ 570, -1, 262, 573, 3, -1, 266, 267, -1, -1,
+ -1, 271, -1, -1, -1, -1, -1, -1, -1, 18,
+ -1, 281, -1, -1, -1, -1, -1, -1, -1, -1,
+ 29, 291, -1, 32, 33, 34, -1, -1, 37, 38,
+ -1, -1, 41, -1, -1, -1, 45, -1, -1, 48,
+ -1, -1, -1, -1, -1, -1, 316, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 336, 337,
+ 338, 339, 340, 341, 342, 343, -1, 345, 346, 347,
+ 348, 349, 350, 351, 352, 353, 354, 355, -1, -1,
+ -1, 90, -1, -1, -1, -1, 356, 357, -1, -1,
+ -1, -1, -1, -1, 336, 337, 338, 339, 340, 341,
+ 342, 343, -1, 345, 346, 347, 348, 349, 350, 351,
+ 352, 353, 354, 355, 5, -1, 7, -1, -1, 10,
+ -1, -1, -1, 393, 15, -1, -1, -1, -1, 20,
+ -1, -1, -1, -1, 404, 26, -1, 28, -1, -1,
+ 418, -1, -1, -1, -1, 36, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 47, -1, -1, -1,
+ 5, -1, 7, -1, -1, 10, 57, -1, -1, -1,
+ 15, 441, 442, -1, -1, 20, 418, -1, -1, -1,
+ 71, 26, -1, 28, -1, 30, 456, -1, -1, 3,
+ -1, 36, -1, -1, 39, -1, -1, 42, -1, -1,
+ 478, 479, 47, 481, 18, 50, 51, 52, 53, 54,
+ 55, 56, 57, -1, -1, 29, 61, -1, 32, 33,
+ 34, -1, -1, 37, 38, -1, 71, 41, -1, -1,
+ 75, 45, -1, -1, 48, -1, 478, 479, -1, 481,
+ 510, -1, 87, -1, 89, -1, 91, -1, -1, -1,
+ 520, 521, 97, 67, 99, -1, -1, 102, -1, 3,
+ 4, 5, 6, 7, 8, -1, 10, -1, 12, 13,
+ 14, 15, -1, 543, 18, -1, 20, 21, 22, -1,
+ -1, -1, 26, 553, 28, 29, 30, -1, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 67, 68, -1, -1, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, -1, 91, -1, 3,
+ 4, 5, 6, 7, -1, 99, 10, 101, 12, -1,
+ 14, 15, -1, -1, 18, -1, 20, 21, 22, -1,
+ -1, -1, 26, -1, 28, 29, 30, -1, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 67, 68, -1, -1, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, -1, 91, -1, 3,
+ 4, 5, 6, 7, -1, 99, 10, 101, 12, -1,
+ 14, 15, -1, -1, 18, -1, 20, 21, 22, -1,
+ -1, -1, 26, -1, 28, 29, 30, -1, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 67, 68, -1, -1, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, -1, 91, -1, 3,
+ 4, 5, 6, 7, -1, 99, 10, 101, 12, -1,
+ 14, 15, -1, -1, 18, -1, 20, 21, 22, -1,
+ -1, -1, 26, -1, 28, 29, 30, -1, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 67, 68, -1, -1, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 89, -1, 91, -1, -1,
+ -1, -1, -1, -1, -1, 99, -1, 101, 3, 4,
+ 5, 6, 7, -1, -1, 10, 11, 12, -1, 14,
+ 15, -1, -1, 18, -1, 20, 21, 22, -1, -1,
+ -1, 26, -1, 28, 29, 30, -1, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, -1,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 68, -1, -1, 71, -1, -1, -1,
+ -1, 4, 5, 6, 7, -1, -1, 10, -1, 12,
+ -1, 14, 15, -1, 89, -1, 91, 20, 21, 22,
+ -1, -1, -1, 26, 99, 28, 101, 30, -1, -1,
+ -1, -1, 35, 36, -1, -1, 39, 40, 41, 42,
+ 43, -1, -1, 46, 47, -1, 49, 50, 51, 52,
+ 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 68, -1, -1, 71, -1,
+ -1, -1, -1, 4, 5, 6, 7, -1, -1, 10,
+ -1, 12, -1, 14, 15, -1, 89, -1, 91, 20,
+ 21, 22, -1, -1, -1, 26, 99, 28, 101, 30,
+ -1, -1, -1, -1, 35, 36, -1, -1, 39, 40,
+ 41, 42, 43, -1, -1, 46, 47, -1, 49, 50,
+ 51, 52, 53, 54, 55, 56, 57, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 68, -1, -1,
+ 71, 5, -1, 7, -1, -1, 10, -1, -1, -1,
+ -1, 15, -1, -1, -1, -1, 20, -1, 89, -1,
+ 91, -1, 26, -1, 28, -1, 30, -1, 99, -1,
+ 101, -1, 36, -1, -1, 39, -1, -1, 42, -1,
+ -1, -1, -1, 47, -1, -1, 50, 51, 52, 53,
+ 54, 55, 56, 57, -1, 5, -1, 7, -1, -1,
+ 10, -1, -1, -1, 68, 15, -1, 71, -1, -1,
+ 20, 75, -1, -1, -1, -1, 26, -1, 28, -1,
+ 30, -1, -1, 87, -1, 89, 36, 91, -1, 39,
+ -1, -1, 42, 97, -1, 99, -1, 47, 102, -1,
+ 50, 51, 52, 53, 54, 55, 56, 57, -1, 5,
+ -1, 7, -1, -1, 10, -1, -1, -1, -1, 15,
+ -1, 71, -1, -1, 20, 75, -1, -1, -1, -1,
+ 26, -1, 28, -1, 30, -1, -1, 87, -1, 89,
+ 36, 91, -1, 39, -1, -1, 42, 97, -1, 99,
+ -1, 47, 102, -1, 50, 51, 52, 53, 54, 55,
+ 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 3, 71, 5, -1, 7, 75,
+ -1, 10, -1, -1, -1, -1, 15, -1, -1, 18,
+ -1, 20, -1, -1, -1, 91, -1, 26, -1, 28,
+ 29, 30, -1, 32, 33, 34, 102, 36, 37, 38,
+ 39, -1, 41, 42, -1, -1, 45, -1, 47, 48,
+ -1, 50, 51, 52, 53, 54, 55, 56, 57, -1,
+ 5, -1, 7, -1, -1, 10, -1, -1, -1, -1,
+ 15, -1, 71, -1, -1, 20, -1, -1, -1, -1,
+ -1, 26, -1, 28, -1, 30, -1, -1, -1, -1,
+ 89, 36, 91, -1, 39, -1, -1, 42, -1, -1,
+ 99, -1, 47, -1, -1, 50, 51, 52, 53, 54,
+ 55, 56, 57, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
+ 3, -1, 5, -1, 7, -1, -1, 10, -1, -1,
+ -1, -1, 15, -1, 89, 18, 91, 20, -1, -1,
+ -1, 3, -1, 26, 99, 28, 29, -1, -1, 32,
+ 33, 34, -1, 36, 37, 38, 18, -1, 41, -1,
+ -1, -1, 45, -1, 47, 48, -1, 29, -1, -1,
+ 32, 33, 34, -1, 57, 37, 38, -1, -1, 41,
+ 60, -1, -1, 45, 64, -1, 48, -1, 71, -1,
+ 70, -1, -1, 73, 60, -1, -1, -1, 64, -1,
+ 80, -1, 82, 83, 70, -1, -1, 73, 88, -1,
+ -1, -1, -1, 93, 80, 95, 82, 83, 98, -1,
+ -1, 60, 88, -1, 104, 64, -1, 93, -1, 95,
+ -1, 70, 98, -1, 73, -1, -1, -1, 104, -1,
+ -1, 80, -1, 82, 83, -1, -1, -1, -1, 88,
+ -1, -1, -1, -1, 93, -1, 95, -1, -1, 98,
+ -1, -1, -1, -1, -1, 104
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned short int yystos[] =
+{
+ 0, 31, 107, 122, 123, 126, 5, 7, 10, 15,
+ 20, 26, 28, 36, 47, 57, 71, 111, 117, 118,
+ 119, 120, 121, 0, 124, 57, 72, 101, 72, 24,
+ 125, 127, 128, 129, 11, 42, 119, 11, 117, 3,
+ 18, 29, 32, 33, 34, 37, 38, 41, 45, 48,
+ 101, 130, 131, 132, 133, 134, 135, 164, 165, 72,
+ 101, 132, 17, 23, 68, 136, 137, 139, 11, 27,
+ 17, 166, 167, 103, 113, 114, 117, 113, 115, 138,
+ 140, 137, 139, 139, 119, 119, 115, 68, 168, 66,
+ 101, 66, 37, 67, 130, 135, 141, 142, 143, 148,
+ 149, 158, 159, 139, 169, 115, 115, 68, 177, 47,
+ 110, 111, 112, 113, 116, 117, 118, 160, 101, 157,
+ 177, 67, 134, 135, 143, 149, 165, 170, 171, 172,
+ 4, 6, 12, 14, 21, 22, 30, 35, 39, 40,
+ 41, 42, 43, 46, 49, 50, 51, 52, 53, 54,
+ 55, 56, 89, 91, 99, 101, 108, 109, 110, 116,
+ 117, 119, 131, 134, 135, 177, 178, 179, 180, 181,
+ 182, 183, 185, 186, 187, 189, 190, 191, 192, 194,
+ 201, 203, 204, 212, 213, 215, 216, 217, 218, 219,
+ 224, 225, 226, 230, 235, 236, 237, 238, 239, 240,
+ 242, 243, 258, 259, 263, 119, 151, 119, 144, 145,
+ 146, 151, 62, 234, 234, 91, 44, 150, 155, 101,
+ 101, 101, 173, 101, 75, 87, 91, 97, 102, 111,
+ 116, 117, 226, 236, 238, 239, 240, 241, 242, 243,
+ 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 256, 257, 258, 261, 119, 214, 214, 41,
+ 183, 91, 91, 208, 261, 72, 91, 91, 72, 261,
+ 177, 91, 117, 235, 237, 241, 261, 241, 119, 144,
+ 72, 62, 72, 91, 65, 110, 67, 180, 101, 101,
+ 72, 62, 89, 99, 60, 64, 70, 73, 80, 82,
+ 83, 88, 93, 95, 98, 104, 260, 111, 113, 114,
+ 91, 62, 150, 66, 101, 62, 73, 150, 61, 62,
+ 135, 152, 153, 154, 114, 156, 68, 161, 101, 241,
+ 241, 111, 117, 261, 241, 241, 69, 92, 103, 87,
+ 97, 79, 81, 86, 25, 77, 78, 84, 85, 74,
+ 76, 58, 63, 94, 59, 96, 100, 65, 101, 101,
+ 101, 49, 131, 182, 190, 206, 209, 211, 261, 101,
+ 119, 261, 261, 119, 101, 9, 220, 221, 222, 261,
+ 90, 11, 261, 30, 228, 229, 261, 183, 144, 42,
+ 119, 261, 257, 62, 232, 233, 234, 232, 234, 91,
+ 152, 61, 145, 61, 68, 147, 174, 261, 61, 110,
+ 90, 66, 66, 162, 101, 231, 234, 234, 90, 241,
+ 241, 241, 246, 246, 247, 247, 247, 112, 248, 248,
+ 248, 248, 249, 249, 250, 251, 252, 253, 254, 261,
+ 261, 91, 101, 66, 90, 91, 90, 90, 91, 91,
+ 19, 223, 222, 90, 61, 90, 66, 91, 61, 261,
+ 231, 233, 234, 174, 231, 174, 228, 90, 147, 175,
+ 176, 146, 154, 114, 39, 42, 163, 178, 90, 90,
+ 244, 65, 101, 261, 208, 190, 21, 22, 49, 119,
+ 183, 184, 185, 188, 193, 202, 207, 228, 68, 195,
+ 177, 228, 154, 177, 183, 261, 228, 61, 90, 67,
+ 66, 91, 91, 67, 241, 244, 256, 90, 101, 91,
+ 91, 91, 65, 16, 90, 197, 90, 90, 90, 139,
+ 227, 147, 228, 228, 101, 205, 210, 211, 206, 261,
+ 261, 184, 183, 8, 13, 196, 198, 199, 200, 177,
+ 90, 90, 90, 101, 90, 90, 261, 262, 65, 67,
+ 179, 200, 101, 101, 183, 208, 184, 184, 65, 101,
+ 16, 205, 184, 90, 184
+};
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+
+#define YYFAIL goto yyerrlab
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror ("syntax error: cannot back up");\
+ YYERROR; \
+ } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+/* YYLLOC_DEFAULT -- Compute the default location (before the actions
+ are run). */
+
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ ((Current).first_line = (Rhs)[1].first_line, \
+ (Current).first_column = (Rhs)[1].first_column, \
+ (Current).last_line = (Rhs)[N].last_line, \
+ (Current).last_column = (Rhs)[N].last_column)
+#endif
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval)
+#endif
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
+
+# define YYDSYMPRINT(Args) \
+do { \
+ if (yydebug) \
+ yysymprint Args; \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yysymprint (stderr, \
+ Token, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short int *bottom, short int *top)
+#else
+static void
+yy_stack_print (bottom, top)
+ short int *bottom;
+ short int *top;
+#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (/* Nothing. */; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+ int yyrule;
+#endif
+{
+ int yyi;
+ unsigned int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+ yyrule - 1, yylno);
+ /* Print the symbols being reduced, and their result. */
+ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+ YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+ YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (Rule); \
+} while (0)
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
+# undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined (__GLIBC__) && defined (_STRING_H)
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+static YYSIZE_T
+# if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+# else
+yystrlen (yystr)
+ const char *yystr;
+# endif
+{
+ register const char *yys = yystr;
+
+ while (*yys++ != '\0')
+ continue;
+
+ return yys - yystr - 1;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+static char *
+# if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+# else
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+# endif
+{
+ register char *yyd = yydest;
+ register const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+#endif /* !YYERROR_VERBOSE */
+
+
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE *yyvaluep;
+#endif
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+
+ if (yytype < YYNTOKENS)
+ {
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+ }
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+ YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+ int yytype;
+ YYSTYPE *yyvaluep;
+#endif
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
+}
+
+
+/* Prevent warnings from -Wmissing-prototypes. */
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+ /* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far. */
+int yynerrs;
+
+ register int yystate;
+ register int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken = 0;
+
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ short int yyssa[YYINITDEPTH];
+ short int *yyss = yyssa;
+ register short int *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ register YYSTYPE *yyvsp;
+
+
+
+#define YYPOPSTACK (yyvsp--, yyssp--)
+
+ YYSIZE_T yystacksize = YYINITDEPTH;
+
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+
+ /* When reducing, the number of symbols on the RHS of the reduced
+ rule. */
+ int yylen;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss;
+ yyvsp = yyvs;
+
+
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks.
+ */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short int *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow ("parser stack overflow",
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyoverflowlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyoverflowlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ short int *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyoverflowlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+ yychar = YYLEX;
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+ YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+ YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 2:
+#line 191 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 3:
+#line 200 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 4:
+#line 208 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 5:
+#line 216 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 6:
+#line 224 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 7:
+#line 232 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 8:
+#line 240 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 9:
+#line 249 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 10:
+#line 257 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 11:
+#line 266 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 12:
+#line 274 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 13:
+#line 283 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 14:
+#line 288 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 15:
+#line 293 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 16:
+#line 298 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 17:
+#line 303 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 18:
+#line 308 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 19:
+#line 313 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 20:
+#line 318 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+}
+ break;
+
+ case 21:
+#line 324 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 22:
+#line 332 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 23:
+#line 341 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ STORECLASS(yyvsp[0].str);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 24:
+#line 351 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 25:
+#line 360 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 26:
+#line 369 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 27:
+#line 377 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ STORECLASS(yyvsp[-1].str);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 28:
+#line 387 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = yyvsp[0].str;
+}
+ break;
+
+ case 29:
+#line 393 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = yyvsp[0].str;
+}
+ break;
+
+ case 30:
+#line 400 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = yyvsp[0].str;
+}
+ break;
+
+ case 31:
+#line 407 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = yyvsp[0].str;
+}
+ break;
+
+ case 32:
+#line 413 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ yyval.str = yyvsp[0].str;
+}
+ break;
+
+ case 33:
+#line 420 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->AddClassFound(yyvsp[-2].str);
+ yyGetParser->UpdateCombine(yyvsp[-2].str, yyvsp[0].str);
+ yyGetParser->DeallocateParserType(&(yyvsp[-2].str));
+ yyval.str = const_cast<char*>(yyGetParser->GetCurrentCombine());
+}
+ break;
+
+ case 34:
+#line 429 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ STORECLASS(yyvsp[-2].str);
+ CHECKEMPTY(3);
+ yyGetParser->SetCurrentCombine("");
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 35:
+#line 439 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ STORECLASS(yyvsp[-2].str);
+ yyGetParser->SetCurrentCombine("");
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 36:
+#line 449 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 37:
+#line 458 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 38:
+#line 466 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 39:
+#line 475 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 40:
+#line 483 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 41:
+#line 490 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 42:
+#line 498 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 43:
+#line 505 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 44:
+#line 513 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 45:
+#line 520 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 46:
+#line 529 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->SetCurrentPackage(yyvsp[-1].str);
+ yyGetParser->DeallocateParserType(&(yyvsp[-1].str));
+ yyGetParser->SetCurrentCombine("");
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 47:
+#line 541 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 48:
+#line 549 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 49:
+#line 558 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->AddPackagesImport(yyvsp[-1].str);
+ yyGetParser->DeallocateParserType(&(yyvsp[-1].str));
+ yyGetParser->SetCurrentCombine("");
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 50:
+#line 570 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ std::string str = yyvsp[-3].str;
+ str += ".*";
+ yyGetParser->AddPackagesImport(str.c_str());
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ yyGetParser->SetCurrentCombine("");
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 51:
+#line 583 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 52:
+#line 591 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 53:
+#line 599 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 54:
+#line 608 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 55:
+#line 616 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 67:
+#line 631 "cmDependsJavaParser.y"
+ {
+ yyGetParser->StartClass(yyvsp[0].str);
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(3);
+}
+ break;
+
+ case 68:
+#line 641 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+ break;
+
+ case 69:
+#line 650 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+ break;
+
+ case 70:
+#line 659 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+ break;
+
+ case 71:
+#line 668 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+ break;
+
+ case 72:
+#line 677 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 73:
+#line 684 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 74:
+#line 693 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 75:
+#line 702 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 76:
+#line 711 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 77:
+#line 719 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 78:
+#line 728 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 79:
+#line 736 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 80:
+#line 743 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 81:
+#line 752 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 82:
+#line 760 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 83:
+#line 768 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 84:
+#line 776 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 85:
+#line 785 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 86:
+#line 793 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 87:
+#line 802 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+}
+ break;
+
+ case 88:
+#line 808 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 89:
+#line 816 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 90:
+#line 825 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 91:
+#line 833 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 92:
+#line 842 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 93:
+#line 851 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 94:
+#line 860 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 95:
+#line 868 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 96:
+#line 877 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 97:
+#line 885 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 98:
+#line 893 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 99:
+#line 902 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 100:
+#line 911 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 101:
+#line 920 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 102:
+#line 928 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 103:
+#line 938 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 104:
+#line 948 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+
+}
+ break;
+
+ case 105:
+#line 954 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 107:
+#line 965 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+
+}
+ break;
+
+ case 108:
+#line 971 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 109:
+#line 981 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 110:
+#line 991 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 111:
+#line 1001 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+
+}
+ break;
+
+ case 112:
+#line 1007 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 113:
+#line 1017 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 114:
+#line 1027 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 115:
+#line 1037 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 116:
+#line 1046 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 117:
+#line 1056 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 118:
+#line 1067 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 119:
+#line 1076 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 120:
+#line 1084 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 121:
+#line 1094 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 122:
+#line 1103 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 123:
+#line 1113 "cmDependsJavaParser.y"
+ {
+ yyGetParser->StartClass(yyvsp[0].str);
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(3);
+}
+ break;
+
+ case 124:
+#line 1122 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+ break;
+
+ case 125:
+#line 1131 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+ break;
+
+ case 126:
+#line 1138 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 127:
+#line 1148 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 128:
+#line 1157 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 129:
+#line 1167 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 130:
+#line 1176 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 131:
+#line 1184 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 132:
+#line 1193 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 133:
+#line 1202 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 134:
+#line 1211 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 135:
+#line 1220 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 136:
+#line 1228 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 137:
+#line 1237 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 138:
+#line 1246 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 139:
+#line 1256 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 140:
+#line 1266 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 141:
+#line 1275 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 142:
+#line 1285 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 143:
+#line 1294 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 144:
+#line 1302 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 145:
+#line 1311 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 146:
+#line 1321 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 147:
+#line 1330 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 148:
+#line 1340 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 149:
+#line 1348 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 150:
+#line 1356 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 151:
+#line 1366 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 152:
+#line 1375 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 153:
+#line 1385 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 154:
+#line 1394 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 155:
+#line 1403 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 156:
+#line 1413 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 157:
+#line 1423 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 158:
+#line 1432 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 159:
+#line 1442 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 160:
+#line 1451 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 161:
+#line 1460 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 162:
+#line 1469 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 163:
+#line 1478 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 164:
+#line 1487 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 165:
+#line 1497 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 166:
+#line 1506 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 167:
+#line 1515 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 168:
+#line 1524 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 169:
+#line 1533 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 170:
+#line 1543 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 171:
+#line 1552 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 172:
+#line 1561 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 173:
+#line 1570 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 174:
+#line 1579 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 175:
+#line 1588 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 176:
+#line 1597 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 177:
+#line 1606 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 178:
+#line 1615 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 179:
+#line 1624 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 180:
+#line 1633 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 181:
+#line 1642 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 182:
+#line 1652 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 183:
+#line 1662 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[-2].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 184:
+#line 1673 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 185:
+#line 1683 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 186:
+#line 1693 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 187:
+#line 1702 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 188:
+#line 1711 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 189:
+#line 1720 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 190:
+#line 1729 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 191:
+#line 1738 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 192:
+#line 1747 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 193:
+#line 1757 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 194:
+#line 1767 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(7);
+ CHECKEMPTY(7);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 195:
+#line 1777 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(7);
+ CHECKEMPTY(7);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 196:
+#line 1787 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+
+}
+ break;
+
+ case 197:
+#line 1794 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+
+}
+ break;
+
+ case 198:
+#line 1800 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 199:
+#line 1808 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 200:
+#line 1817 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 201:
+#line 1825 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 202:
+#line 1835 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 203:
+#line 1845 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 204:
+#line 1854 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 205:
+#line 1864 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 206:
+#line 1873 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 207:
+#line 1883 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+
+}
+ break;
+
+ case 208:
+#line 1890 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+
+}
+ break;
+
+ case 209:
+#line 1897 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(7);
+
+}
+ break;
+
+ case 210:
+#line 1905 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(9);
+
+}
+ break;
+
+ case 211:
+#line 1911 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 212:
+#line 1919 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 213:
+#line 1928 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 214:
+#line 1936 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 215:
+#line 1947 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(9);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 216:
+#line 1955 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 217:
+#line 1963 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 218:
+#line 1973 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 219:
+#line 1982 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 220:
+#line 1992 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 221:
+#line 2002 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 222:
+#line 2011 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 223:
+#line 2021 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 224:
+#line 2030 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 225:
+#line 2040 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[-1].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 226:
+#line 2050 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 227:
+#line 2058 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+
+}
+ break;
+
+ case 228:
+#line 2065 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[-1].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 229:
+#line 2076 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 230:
+#line 2086 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 231:
+#line 2096 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 232:
+#line 2106 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 233:
+#line 2115 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 234:
+#line 2124 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 235:
+#line 2132 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 236:
+#line 2142 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 237:
+#line 2151 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 238:
+#line 2161 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+
+}
+ break;
+
+ case 239:
+#line 2168 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 240:
+#line 2178 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 241:
+#line 2187 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 242:
+#line 2197 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 243:
+#line 2206 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+
+}
+ break;
+
+ case 244:
+#line 2212 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 245:
+#line 2221 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 246:
+#line 2230 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 247:
+#line 2239 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 248:
+#line 2248 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 249:
+#line 2258 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(6);
+ CHECKEMPTY(6);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 250:
+#line 2267 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 251:
+#line 2275 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 252:
+#line 2284 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 253:
+#line 2292 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 254:
+#line 2302 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 255:
+#line 2311 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 256:
+#line 2321 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 257:
+#line 2330 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 258:
+#line 2339 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 259:
+#line 2348 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 260:
+#line 2357 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(0);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 261:
+#line 2365 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 262:
+#line 2375 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 263:
+#line 2384 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 264:
+#line 2394 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 265:
+#line 2404 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+
+}
+ break;
+
+ case 266:
+#line 2410 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+
+}
+ break;
+
+ case 267:
+#line 2417 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 268:
+#line 2427 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 269:
+#line 2437 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 270:
+#line 2447 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 271:
+#line 2458 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 272:
+#line 2468 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(6);
+ yyGetParser->DeallocateParserType(&(yyvsp[-5].str));
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(6);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 273:
+#line 2479 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(6);
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(6);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 274:
+#line 2489 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(6);
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(6);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 275:
+#line 2500 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&(yyvsp[-3].str));
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 276:
+#line 2510 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 277:
+#line 2520 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 278:
+#line 2529 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 279:
+#line 2538 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 280:
+#line 2547 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 281:
+#line 2556 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 282:
+#line 2566 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 283:
+#line 2576 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 284:
+#line 2586 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 285:
+#line 2595 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 286:
+#line 2604 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 287:
+#line 2613 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 288:
+#line 2622 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 289:
+#line 2632 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 290:
+#line 2642 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 291:
+#line 2652 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 292:
+#line 2661 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 293:
+#line 2670 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 294:
+#line 2679 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 295:
+#line 2689 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 296:
+#line 2698 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 297:
+#line 2707 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+
+}
+ break;
+
+ case 298:
+#line 2714 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 299:
+#line 2723 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 300:
+#line 2732 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 301:
+#line 2741 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 302:
+#line 2751 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 303:
+#line 2760 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 304:
+#line 2769 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 305:
+#line 2779 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 306:
+#line 2788 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 307:
+#line 2797 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 308:
+#line 2806 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 309:
+#line 2816 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 310:
+#line 2825 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 311:
+#line 2834 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 312:
+#line 2843 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 313:
+#line 2852 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 314:
+#line 2861 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 315:
+#line 2871 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 316:
+#line 2880 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 317:
+#line 2889 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 318:
+#line 2899 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 319:
+#line 2908 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 320:
+#line 2918 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 321:
+#line 2927 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 322:
+#line 2937 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 323:
+#line 2946 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 324:
+#line 2956 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 325:
+#line 2965 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 326:
+#line 2975 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 327:
+#line 2984 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 328:
+#line 2994 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 329:
+#line 3003 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 330:
+#line 3013 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 331:
+#line 3022 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 332:
+#line 3032 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 333:
+#line 3042 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ yyGetParser->DeallocateParserType(&(yyvsp[0].str));
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 334:
+#line 3052 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 335:
+#line 3061 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 336:
+#line 3071 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 337:
+#line 3080 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 338:
+#line 3089 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 339:
+#line 3098 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 340:
+#line 3107 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 341:
+#line 3116 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 342:
+#line 3125 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 343:
+#line 3134 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 344:
+#line 3143 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 345:
+#line 3152 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 346:
+#line 3161 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 347:
+#line 3170 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 348:
+#line 3180 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 349:
+#line 3190 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 350:
+#line 3200 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+ case 351:
+#line 3209 "cmDependsJavaParser.y"
+ {
+ ELEMENTSTART(3);
+ STORECLASS(yyvsp[-2].str);
+ CHECKEMPTY(3);
+ yyval.str = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+ break;
+
+
+ }
+
+/* Line 1010 of yacc.c. */
+#line 5773 "cmDependsJavaParser.cxx"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+
+
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (YYPACT_NINF < yyn && yyn < YYLAST)
+ {
+ YYSIZE_T yysize = 0;
+ int yytype = YYTRANSLATE (yychar);
+ const char* yyprefix;
+ char *yymsg;
+ int yyx;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 0;
+
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
+ yycount += 1;
+ if (yycount == 5)
+ {
+ yysize = 0;
+ break;
+ }
+ }
+ yysize += (sizeof ("syntax error, unexpected ")
+ + yystrlen (yytname[yytype]));
+ yymsg = (char *) YYSTACK_ALLOC (yysize);
+ if (yymsg != 0)
+ {
+ char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+ yyp = yystpcpy (yyp, yytname[yytype]);
+
+ if (yycount < 5)
+ {
+ yyprefix = ", expecting ";
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ yyp = yystpcpy (yyp, yyprefix);
+ yyp = yystpcpy (yyp, yytname[yyx]);
+ yyprefix = " or ";
+ }
+ }
+ yyerror (yymsg);
+ YYSTACK_FREE (yymsg);
+ }
+ else
+ yyerror ("syntax error; also virtual memory exhausted");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror ("syntax error");
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* If at end of input, pop the error token,
+ then the rest of the stack, then return failure. */
+ if (yychar == YYEOF)
+ for (;;)
+ {
+ YYPOPSTACK;
+ if (yyssp == yyss)
+ YYABORT;
+ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+ yydestruct (yystos[*yyssp], yyvsp);
+ }
+ }
+ else
+ {
+ YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+ yydestruct (yytoken, &yylval);
+ yychar = YYEMPTY;
+
+ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+#ifdef __GNUC__
+ /* Pacify GCC when the user code never invokes YYERROR and the label
+ yyerrorlab therefore never appears in user code. */
+ if (0)
+ goto yyerrorlab;
+#endif
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+ yydestruct (yystos[yystate], yyvsp);
+ YYPOPSTACK;
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ YYDPRINTF ((stderr, "Shifting error token, "));
+
+ *++yyvsp = yylval;
+
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here. |
+`----------------------------------------------*/
+yyoverflowlab:
+ yyerror ("parser stack overflow");
+ yyresult = 2;
+ /* Fall through. */
+#endif
+
+yyreturn:
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+ return yyresult;
+}
+
+
+#line 3218 "cmDependsJavaParser.y"
+
+/* End of grammar */
+
+/*--------------------------------------------------------------------------*/
+void cmDependsJavaError(yyscan_t yyscanner, const char* message)
+{
+ yyGetParser->Error(message);
+}
+
+
diff --git a/Source/cmDependsJavaParser.y b/Source/cmDependsJavaParser.y
new file mode 100644
index 0000000..3b6c73b
--- /dev/null
+++ b/Source/cmDependsJavaParser.y
@@ -0,0 +1,3226 @@
+%{
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+/*
+
+This file must be translated to C and modified to build everywhere.
+
+Run bison like this:
+
+ bison --yacc --name-prefix=cmDependsJava_yy --defines=cmDependsJavaParserTokens.h -ocmDependsJavaParser.cxx cmDependsJavaParser.y
+
+Modify cmDependsJavaParser.c:
+ - remove TABs
+
+*/
+
+/* Configure the parser to use a lexer object. */
+#define YYPARSE_PARAM yyscanner
+#define YYLEX_PARAM yyscanner
+#define YYERROR_VERBOSE 1
+#define cmDependsJava_yyerror(x) \
+ cmDependsJavaError(yyscanner, x)
+#define yyGetParser (cmDependsJava_yyget_extra(yyscanner))
+
+/*-------------------------------------------------------------------------*/
+#include "cmDependsJavaParserHelper.h" /* Interface to parser object. */
+#include "cmDependsJavaLexer.h" /* Interface to lexer object. */
+#include "cmDependsJavaParserTokens.h" /* Need YYSTYPE for YY_DECL. */
+
+/* Forward declare the lexer entry point. */
+YY_DECL;
+
+/* Internal utility functions. */
+static void cmDependsJavaError(yyscan_t yyscanner, const char* message);
+
+#define YYDEBUG 1
+#define YYMAXDEPTH 1000000
+
+
+#define CHECKEMPTY(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp);
+#define ELEMENTSTART(cnt) yyGetParser->PrepareElement(&yyval)
+#define STORECLASS(str) yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str))
+/* Disable some warnings in the generated code. */
+#ifdef __BORLANDC__
+# pragma warn -8004 /* Variable assigned a value that is not used. */
+#endif
+#ifdef _MSC_VER
+# pragma warning (disable: 4102) /* Unused goto label. */
+#endif
+%}
+
+/* Generate a reentrant parser object. */
+%pure_parser
+
+/*
+%union {
+ char* string;
+}
+*/
+
+/*-------------------------------------------------------------------------*/
+/* Tokens */
+%token ABSTRACT
+%token ASSERT
+%token BOOLEAN
+%token BREAK
+%token BYTE
+%token CASE
+%token CATCH
+%token CHAR
+%token CLASS
+%token CONTINUE
+%token DEFAULT
+%token DO
+%token DOUBLE
+%token ELSE
+%token EXTENDS
+%token FINAL
+%token FINALLY
+%token FLOAT
+%token FOR
+%token IF
+%token IMPLEMENTS
+%token IMPORT
+%token INSTANCEOF
+%token INT
+%token INTERFACE
+%token LONG
+%token NATIVE
+%token NEW
+%token PACKAGE
+%token PRIVATE
+%token PROTECTED
+%token PUBLIC
+%token RETURN
+%token SHORT
+%token STATIC
+%token STRICTFP
+%token SUPER
+%token SWITCH
+%token SYNCHRONIZED
+%token THIS
+%token THROW
+%token THROWS
+%token TRANSIENT
+%token TRY
+%token VOID
+%token VOLATILE
+%token WHILE
+
+%token BOOLEANLITERAL
+%token CHARACTERLITERAL
+%token DECIMALINTEGERLITERAL
+%token FLOATINGPOINTLITERAL
+%token HEXINTEGERLITERAL
+%token NULLLITERAL
+%token STRINGLITERAL
+
+%token NAME
+
+%token AND
+%token ANDAND
+%token ANDEQUALS
+%token BRACKETEND
+%token BRACKETSTART
+%token CARROT
+%token CARROTEQUALS
+%token COLON
+%token COMMA
+%token CURLYEND
+%token CURLYSTART
+%token DIVIDE
+%token DIVIDEEQUALS
+%token DOLLAR
+%token DOT
+%token EQUALS
+%token EQUALSEQUALS
+%token EXCLAMATION
+%token EXCLAMATIONEQUALS
+%token GREATER
+%token GTEQUALS
+%token GTGT
+%token GTGTEQUALS
+%token GTGTGT
+%token GTGTGTEQUALS
+%token LESLESEQUALS
+%token LESSTHAN
+%token LTEQUALS
+%token LTLT
+%token MINUS
+%token MINUSEQUALS
+%token MINUSMINUS
+%token PAREEND
+%token PARESTART
+%token PERCENT
+%token PERCENTEQUALS
+%token PIPE
+%token PIPEEQUALS
+%token PIPEPIPE
+%token PLUS
+%token PLUSEQUALS
+%token PLUSPLUS
+%token QUESTION
+%token SEMICOL
+%token TILDE
+%token TIMES
+%token TIMESEQUALS
+
+%token ERROR
+
+/*-------------------------------------------------------------------------*/
+/* grammar */
+%%
+
+Goal:
+CompilationUnit
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Literal:
+IntegerLiteral
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+FLOATINGPOINTLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+BOOLEANLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+CHARACTERLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+STRINGLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+NULLLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+IntegerLiteral:
+DECIMALINTEGERLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+HEXINTEGERLITERAL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Type:
+PrimitiveType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ReferenceType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+PrimitiveType:
+BYTE
+{
+ ELEMENTSTART(0);
+}
+|
+SHORT
+{
+ ELEMENTSTART(0);
+}
+|
+INT
+{
+ ELEMENTSTART(0);
+}
+|
+LONG
+{
+ ELEMENTSTART(0);
+}
+|
+CHAR
+{
+ ELEMENTSTART(0);
+}
+|
+FLOAT
+{
+ ELEMENTSTART(0);
+}
+|
+DOUBLE
+{
+ ELEMENTSTART(0);
+}
+|
+BOOLEAN
+{
+ ELEMENTSTART(0);
+}
+
+ReferenceType:
+ClassOrInterfaceType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ArrayType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ClassOrInterfaceType:
+Name
+{
+ ELEMENTSTART(1);
+ STORECLASS($<str>1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ClassType:
+ClassOrInterfaceType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+InterfaceType:
+ClassOrInterfaceType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ArrayType:
+PrimitiveType Dims
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+Name Dims
+{
+ ELEMENTSTART(2);
+ STORECLASS($<str>1);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Name:
+SimpleName
+{
+ ELEMENTSTART(1);
+ $<str>$ = $<str>1;
+}
+|
+QualifiedName
+{
+ ELEMENTSTART(1);
+ $<str>$ = $<str>1;
+}
+
+SimpleName:
+Identifier
+{
+ ELEMENTSTART(1);
+ $<str>$ = $<str>1;
+}
+
+Identifier:
+NAME
+{
+ ELEMENTSTART(1);
+ $<str>$ = $<str>1;
+}
+|
+DOLLAR NAME
+{
+ ELEMENTSTART(2);
+ $<str>$ = $<str>2;
+}
+
+QualifiedName:
+Name DOT Identifier
+{
+ ELEMENTSTART(3);
+ yyGetParser->AddClassFound($<str>1);
+ yyGetParser->UpdateCombine($<str>1, $<str>3);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ $<str>$ = const_cast<char*>(yyGetParser->GetCurrentCombine());
+}
+|
+Name DOT CLASS
+{
+ ELEMENTSTART(3);
+ STORECLASS($<str>1);
+ CHECKEMPTY(3);
+ yyGetParser->SetCurrentCombine("");
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+Name DOT THIS
+{
+ ELEMENTSTART(3);
+ STORECLASS($<str>1);
+ yyGetParser->SetCurrentCombine("");
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+SimpleType DOT CLASS
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+SimpleType:
+PrimitiveType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+VOID
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+CompilationUnit:
+PackageDeclarationopt ImportDeclarations TypeDeclarations
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+PackageDeclarationopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+PackageDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ImportDeclarations:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ImportDeclarations ImportDeclaration
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+TypeDeclarations:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+TypeDeclarations TypeDeclaration
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+PackageDeclaration:
+PACKAGE Name SEMICOL
+{
+ ELEMENTSTART(3);
+ yyGetParser->SetCurrentPackage($<str>2);
+ yyGetParser->DeallocateParserType(&($<str>2));
+ yyGetParser->SetCurrentCombine("");
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ImportDeclaration:
+SingleTypeImportDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+TypeImportOnDemandDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+SingleTypeImportDeclaration:
+IMPORT Name SEMICOL
+{
+ ELEMENTSTART(3);
+ yyGetParser->AddPackagesImport($<str>2);
+ yyGetParser->DeallocateParserType(&($<str>2));
+ yyGetParser->SetCurrentCombine("");
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+TypeImportOnDemandDeclaration:
+IMPORT Name DOT TIMES SEMICOL
+{
+ ELEMENTSTART(5);
+ std::string str = $<str>2;
+ str += ".*";
+ yyGetParser->AddPackagesImport(str.c_str());
+ yyGetParser->DeallocateParserType(&($<str>2));
+ yyGetParser->SetCurrentCombine("");
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+TypeDeclaration:
+ClassDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+InterfaceDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+SEMICOL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Modifiers:
+Modifier
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+Modifiers Modifier
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Modifier:
+PUBLIC | PROTECTED | PRIVATE |
+STATIC |
+ABSTRACT | FINAL | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE |
+STRICTFP
+
+ClassHeader:
+Modifiersopt CLASS Identifier
+{
+ yyGetParser->StartClass($<str>3);
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(3);
+}
+
+
+ClassDeclaration:
+ClassHeader ClassBody
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+|
+ClassHeader Interfaces ClassBody
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+|
+ClassHeader Super ClassBody
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+|
+ClassHeader Super Interfaces ClassBody
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+
+Modifiersopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+Modifiers
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Super:
+EXTENDS ClassType
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+Interfaces:
+IMPLEMENTS InterfaceTypeList
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+InterfaceTypeList:
+InterfaceType
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+InterfaceTypeList COMMA InterfaceType
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ClassBody:
+CURLYSTART ClassBodyDeclarations CURLYEND
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ClassBodyDeclarations:
+{
+ ELEMENTSTART(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ClassBodyDeclarations ClassBodyDeclaration
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ClassBodyDeclaration:
+ClassMemberDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+StaticInitializer
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ConstructorDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+TypeDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+ClassMemberDeclaration:
+FieldDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+MethodDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+FieldDeclaration:
+Modifiersopt Type VariableDeclarators SEMICOL
+{
+ ELEMENTSTART(4);
+}
+
+VariableDeclarators:
+VariableDeclarator
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+VariableDeclarators COMMA VariableDeclarator
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+VariableDeclarator:
+VariableDeclaratorId
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+VariableDeclaratorId EQUALS VariableInitializer
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+VariableDeclaratorId:
+Identifier
+{
+ ELEMENTSTART(1);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+VariableDeclaratorId BRACKETSTART BRACKETEND
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+VariableInitializer:
+Expression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ArrayInitializer
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+MethodDeclaration:
+MethodHeader SEMICOL
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+MethodHeader MethodBody
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+MethodHeader MethodBody SEMICOL
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+
+MethodHeader:
+Modifiersopt Type MethodDeclarator Throwsopt
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Modifiersopt VOID MethodDeclarator Throwsopt
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Throwsopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Throws
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+MethodDeclarator:
+Identifier PARESTART FormalParameterListopt PAREEND
+{
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MethodDeclarator BRACKETSTART BRACKETEND
+{
+ ELEMENTSTART(3);
+
+}
+
+FormalParameterListopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+FormalParameterList
+
+FormalParameterList:
+FormalParameter
+{
+ ELEMENTSTART(1);
+
+}
+|
+FormalParameterList COMMA FormalParameter
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+FormalParameter:
+Modifiersopt Type VariableDeclaratorId
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Throws:
+THROWS ClassTypeList
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ClassTypeList:
+ClassType
+{
+ ELEMENTSTART(1);
+
+}
+|
+ClassTypeList COMMA ClassType
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+MethodBody:
+Block
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+StaticInitializer:
+STATIC Block
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConstructorDeclaration:
+Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Modifiersopt ConstructorDeclarator Throwsopt ConstructorBody SEMICOL
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConstructorDeclarator:
+SimpleName PARESTART FormalParameterListopt PAREEND
+{
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConstructorBody:
+CURLYSTART ExplicitConstructorInvocationopt BlockStatementsopt CURLYEND
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ExplicitConstructorInvocationopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ExplicitConstructorInvocationopt ExplicitConstructorInvocation
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ExplicitConstructorInvocation:
+THIS PARESTART ArgumentListopt PAREEND SEMICOL
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SUPER PARESTART ArgumentListopt PAREEND SEMICOL
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+InterfaceHeader:
+Modifiersopt INTERFACE Identifier
+{
+ yyGetParser->StartClass($<str>3);
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(3);
+}
+
+InterfaceDeclaration:
+InterfaceHeader ExtendsInterfacesopt InterfaceBody
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+ yyGetParser->EndClass();
+}
+
+ExtendsInterfacesopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+}
+|
+ExtendsInterfaces
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ExtendsInterfaces:
+EXTENDS InterfaceType
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ExtendsInterfaces COMMA InterfaceType
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+InterfaceBody:
+CURLYSTART InterfaceMemberDeclarations CURLYEND
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+InterfaceMemberDeclarations:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+InterfaceMemberDeclarations InterfaceMemberDeclaration
+{
+ ELEMENTSTART(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+InterfaceMemberDeclaration:
+ConstantDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+AbstractMethodDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ClassDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ClassDeclaration SEMICOL
+{
+ ELEMENTSTART(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+InterfaceDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+InterfaceDeclaration SEMICOL
+{
+ ELEMENTSTART(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConstantDeclaration:
+FieldDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+AbstractMethodDeclaration:
+MethodHeader Semicols
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Semicols:
+SEMICOL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Semicols SEMICOL
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ArrayInitializer:
+CURLYSTART VariableInitializersOptional CURLYEND
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+VariableInitializersOptional:
+{
+ ELEMENTSTART(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+VariableInitializers
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+VariableInitializers COMMA
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+VariableInitializers:
+VariableInitializer
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+VariableInitializers COMMA VariableInitializer
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Block:
+CURLYSTART BlockStatementsopt CURLYEND
+{
+ ELEMENTSTART(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+BlockStatementsopt:
+{
+ ELEMENTSTART(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+BlockStatements
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+BlockStatements:
+BlockStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+BlockStatements BlockStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+BlockStatement:
+LocalVariableDeclarationStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Statement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ClassDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+LocalVariableDeclarationStatement:
+LocalVariableDeclaration SEMICOL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+LocalVariableDeclaration:
+Modifiers Type VariableDeclarators
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Type VariableDeclarators
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Statement:
+StatementWithoutTrailingSubstatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+LabeledStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+IfThenStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+IfThenElseStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+WhileStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ForStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+StatementNoShortIf:
+StatementWithoutTrailingSubstatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+LabeledStatementNoShortIf
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+IfThenElseStatementNoShortIf
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+WhileStatementNoShortIf
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ForStatementNoShortIf
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+StatementWithoutTrailingSubstatement:
+Block
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+EmptyStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ExpressionStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SwitchStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+DoStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+BreakStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ContinueStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ReturnStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SynchronizedStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ThrowStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+TryStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+AssertStatement
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+EmptyStatement:
+SEMICOL
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+LabeledStatement:
+Identifier COLON Statement
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+LabeledStatementNoShortIf:
+Identifier COLON StatementNoShortIf
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ExpressionStatement:
+StatementExpression SEMICOL
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+StatementExpression:
+Assignment
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PreIncrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PreDecrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PostIncrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PostDecrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MethodInvocation
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ClassInstanceCreationExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+IfThenStatement:
+IF PARESTART Expression PAREEND Statement
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+IfThenElseStatement:
+IF PARESTART Expression PAREEND StatementNoShortIf ELSE Statement
+{
+ ELEMENTSTART(7);
+ CHECKEMPTY(7);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+IfThenElseStatementNoShortIf:
+IF PARESTART Expression PAREEND StatementNoShortIf ELSE StatementNoShortIf
+{
+ ELEMENTSTART(7);
+ CHECKEMPTY(7);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+SwitchStatement:
+SWITCH PARESTART Expression PAREEND SwitchBlock
+{
+ ELEMENTSTART(5);
+
+}
+
+SwitchBlock:
+CURLYSTART SwitchBlockStatementGroups SwitchLabelsopt CURLYEND
+{
+ ELEMENTSTART(4);
+
+}
+
+SwitchLabelsopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SwitchLabels
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+SwitchBlockStatementGroups:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SwitchBlockStatementGroups SwitchBlockStatementGroup
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+SwitchBlockStatementGroup:
+SwitchLabels BlockStatements
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+SwitchLabels:
+SwitchLabel
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SwitchLabels SwitchLabel
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+SwitchLabel:
+CASE ConstantExpression COLON
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+DEFAULT COLON
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+WhileStatement:
+WHILE PARESTART Expression PAREEND Statement
+{
+ ELEMENTSTART(5);
+
+}
+
+WhileStatementNoShortIf:
+WHILE PARESTART Expression PAREEND StatementNoShortIf
+{
+ ELEMENTSTART(5);
+
+}
+
+DoStatement:
+DO Statement WHILE PARESTART Expression PAREEND SEMICOL
+{
+ ELEMENTSTART(7);
+
+}
+
+ForStatement:
+FOR PARESTART ForInitopt SEMICOL Expressionopt SEMICOL ForUpdateopt PAREEND
+Statement
+{
+ ELEMENTSTART(9);
+
+}
+
+ForUpdateopt:
+{
+ ELEMENTSTART(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ForUpdate
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ForInitopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ForInit
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ForStatementNoShortIf:
+FOR PARESTART ForInitopt SEMICOL Expressionopt SEMICOL ForUpdateopt PAREEND
+StatementNoShortIf
+{
+ ELEMENTSTART(9);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Expressionopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Expression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ForInit:
+StatementExpressionList
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+LocalVariableDeclaration
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ForUpdate:
+StatementExpressionList
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+StatementExpressionList:
+StatementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+StatementExpressionList COMMA StatementExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+AssertStatement:
+ASSERT Expression SEMICOL
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ASSERT Expression COLON Expression SEMICOL
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+BreakStatement:
+BREAK Identifieropt SEMICOL
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>2));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Identifieropt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Identifier
+{
+ ELEMENTSTART(1);
+
+}
+
+ContinueStatement:
+CONTINUE Identifieropt SEMICOL
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>2));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ReturnStatement:
+RETURN Expressionopt SEMICOL
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ThrowStatement:
+THROW Expression SEMICOL
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+SynchronizedStatement:
+SYNCHRONIZED PARESTART Expression PAREEND Block
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+TryStatement:
+TRY Block Catches
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+TRY Block Catchesopt Finally
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Catchesopt:
+{
+ ELEMENTSTART(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Catches
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Catches:
+CatchClause
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Catches CatchClause
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+CatchClause:
+CATCH PARESTART FormalParameter PAREEND Block
+{
+ ELEMENTSTART(5);
+
+}
+
+Finally:
+FINALLY Block
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Primary:
+PrimaryNoNewArray
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ArrayCreationExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+PrimaryNoNewArray:
+Literal
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+THIS
+{
+ ELEMENTSTART(1);
+
+}
+|
+PARESTART Expression PAREEND
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ClassInstanceCreationExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+FieldAccess
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MethodInvocation
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ArrayAccess
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ClassInstanceCreationExpression:
+New ClassType PARESTART ArgumentListopt PAREEND ClassBodyOpt
+{
+ ELEMENTSTART(6);
+ CHECKEMPTY(6);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ClassBodyOpt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ClassBody
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ArgumentListopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ArgumentList
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ArgumentList:
+Expression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ArgumentList COMMA Expression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ArrayCreationExpression:
+New PrimitiveType DimExprs Dimsopt
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+New ClassOrInterfaceType DimExprs Dimsopt
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+New PrimitiveType Dims ArrayInitializer
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+New ClassOrInterfaceType Dims ArrayInitializer
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Dimsopt:
+{
+ ELEMENTSTART(0);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Dims
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+DimExprs:
+DimExpr
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+DimExprs DimExpr
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+DimExpr:
+BRACKETSTART Expression BRACKETEND
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Dims:
+BRACKETSTART BRACKETEND
+{
+ ELEMENTSTART(2);
+
+}
+|
+Dims BRACKETSTART BRACKETEND
+{
+ ELEMENTSTART(3);
+
+}
+
+FieldAccess:
+Primary DOT Identifier
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SUPER DOT Identifier
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+THIS DOT Identifier
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Primary DOT THIS
+{
+ ELEMENTSTART(3);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+MethodInvocation:
+Name PARESTART ArgumentListopt PAREEND
+{
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Primary DOT Identifier PARESTART ArgumentListopt PAREEND
+{
+ ELEMENTSTART(6);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(6);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+SUPER DOT Identifier PARESTART ArgumentListopt PAREEND
+{
+ ELEMENTSTART(6);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(6);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+THIS DOT Identifier PARESTART ArgumentListopt PAREEND
+{
+ ELEMENTSTART(6);
+ yyGetParser->DeallocateParserType(&($<str>3));
+ CHECKEMPTY(6);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ArrayAccess:
+Name BRACKETSTART Expression BRACKETEND
+{
+ ELEMENTSTART(4);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PrimaryNoNewArray BRACKETSTART Expression BRACKETEND
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+PostfixExpression:
+Primary
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Name
+{
+ ELEMENTSTART(1);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ArrayType DOT CLASS
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PostIncrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PostDecrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+PostIncrementExpression:
+PostfixExpression PLUSPLUS
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+PostDecrementExpression:
+PostfixExpression MINUSMINUS
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+UnaryExpression:
+PreIncrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PreDecrementExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PLUS UnaryExpression
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MINUS UnaryExpression
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+UnaryExpressionNotPlusMinus
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+PreIncrementExpression:
+PLUSPLUS UnaryExpression
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+PreDecrementExpression:
+MINUSMINUS UnaryExpression
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+UnaryExpressionNotPlusMinus:
+PostfixExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+TILDE UnaryExpression
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+EXCLAMATION UnaryExpression
+{
+ ELEMENTSTART(2);
+ CHECKEMPTY(2);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+CastExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+CastExpression:
+PARESTART PrimitiveType Dimsopt PAREEND UnaryExpression
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PARESTART Expression PAREEND UnaryExpressionNotPlusMinus
+{
+ ELEMENTSTART(4);
+ CHECKEMPTY(4);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PARESTART Name Dims PAREEND UnaryExpressionNotPlusMinus
+{
+ ELEMENTSTART(5);
+
+}
+
+MultiplicativeExpression:
+UnaryExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MultiplicativeExpression TIMES UnaryExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MultiplicativeExpression DIVIDE UnaryExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MultiplicativeExpression PERCENT UnaryExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+AdditiveExpression:
+MultiplicativeExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+AdditiveExpression PLUS MultiplicativeExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+AdditiveExpression MINUS MultiplicativeExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ShiftExpression:
+AdditiveExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ShiftExpression LTLT AdditiveExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ShiftExpression GTGT AdditiveExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ShiftExpression GTGTGT AdditiveExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+RelationalExpression:
+ShiftExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+RelationalExpression LESSTHAN ShiftExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+RelationalExpression GREATER ShiftExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+RelationalExpression LTEQUALS ShiftExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+RelationalExpression GTEQUALS ShiftExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+RelationalExpression INSTANCEOF ReferenceType
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+EqualityExpression:
+RelationalExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+EqualityExpression EQUALSEQUALS RelationalExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+EqualityExpression EXCLAMATIONEQUALS RelationalExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+AndExpression:
+EqualityExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+AndExpression AND EqualityExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ExclusiveOrExpression:
+AndExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ExclusiveOrExpression CARROT AndExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+InclusiveOrExpression:
+ExclusiveOrExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+InclusiveOrExpression PIPE ExclusiveOrExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConditionalAndExpression:
+InclusiveOrExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ConditionalAndExpression ANDAND InclusiveOrExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConditionalOrExpression:
+ConditionalAndExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ConditionalOrExpression PIPEPIPE ConditionalAndExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConditionalExpression:
+ConditionalOrExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ConditionalOrExpression QUESTION Expression COLON ConditionalExpression
+{
+ ELEMENTSTART(5);
+ CHECKEMPTY(5);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+AssignmentExpression:
+ConditionalExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Assignment
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Assignment:
+LeftHandSide AssignmentOperator AssignmentExpression
+{
+ ELEMENTSTART(3);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+LeftHandSide:
+Name
+{
+ ELEMENTSTART(1);
+ yyGetParser->DeallocateParserType(&($<str>1));
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+FieldAccess
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ArrayAccess
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+AssignmentOperator:
+EQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+TIMESEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+DIVIDEEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PERCENTEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PLUSEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+MINUSEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+LESLESEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+GTGTEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+GTGTGTEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+ANDEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+CARROTEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+PIPEEQUALS
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+Expression:
+AssignmentExpression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+ConstantExpression:
+Expression
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+New:
+NEW
+{
+ ELEMENTSTART(1);
+ CHECKEMPTY(1);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+|
+Name DOT NEW
+{
+ ELEMENTSTART(3);
+ STORECLASS($<str>1);
+ CHECKEMPTY(3);
+ $<str>$ = 0;
+ yyGetParser->SetCurrentCombine("");
+
+}
+
+%%
+/* End of grammar */
+
+/*--------------------------------------------------------------------------*/
+void cmDependsJavaError(yyscan_t yyscanner, const char* message)
+{
+ yyGetParser->Error(message);
+}
+
diff --git a/Source/cmDependsJavaParserHelper.cxx b/Source/cmDependsJavaParserHelper.cxx
new file mode 100644
index 0000000..3edbf13
--- /dev/null
+++ b/Source/cmDependsJavaParserHelper.cxx
@@ -0,0 +1,433 @@
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#include "cmDependsJavaParserHelper.h"
+
+#include "cmSystemTools.h"
+#include "cmDependsJavaLexer.h"
+
+int cmDependsJava_yyparse( yyscan_t yyscanner );
+
+cmDependsJavaParserHelper::cmDependsJavaParserHelper()
+{
+ this->CurrentDepth = 0;
+
+ this->UnionsAvailable = 0;
+ this->LastClassId = 0;
+
+ CurrentClass tl;
+ tl.Name = "*";
+ this->ClassStack.push_back(tl);
+}
+
+
+cmDependsJavaParserHelper::~cmDependsJavaParserHelper()
+{
+ this->CleanupParser();
+}
+
+void cmDependsJavaParserHelper::CurrentClass::AddFileNamesForPrinting(std::vector<cmStdString> *files, const char* prefix, const char* sep)
+{
+ cmStdString rname = "";
+ if ( prefix )
+ {
+ rname += prefix;
+ rname += sep;
+ }
+ rname += this->Name;
+ files->push_back(rname);
+ std::vector<CurrentClass>::iterator it;
+ for ( it = this->NestedClasses.begin();
+ it != this->NestedClasses.end();
+ ++ it )
+ {
+ it->AddFileNamesForPrinting(files, rname.c_str(), sep);
+ }
+}
+
+void cmDependsJavaParserHelper::DeallocateParserType(char** pt)
+{
+ if (!pt)
+ {
+ return;
+ }
+ if (!*pt)
+ {
+ //*pt = 0;
+ return;
+ }
+ // std::cout << (void*) *pt << " " << *pt << " this->DeallocateParserType" << std::endl;
+ //delete [] *pt;
+ *pt = 0;
+ this->UnionsAvailable --;
+}
+
+void cmDependsJavaParserHelper::AddClassFound(const char* sclass)
+{
+ if( ! sclass )
+ {
+ return;
+ }
+ std::vector<cmStdString>::iterator it;
+ for ( it = this->ClassesFound.begin();
+ it != this->ClassesFound.end();
+ it ++ )
+ {
+ if ( *it == sclass )
+ {
+ return;
+ }
+ }
+ this->ClassesFound.push_back(sclass);
+}
+
+void cmDependsJavaParserHelper::AddPackagesImport(const char* sclass)
+{
+ std::vector<cmStdString>::iterator it;
+ for ( it = this->PackagesImport.begin();
+ it != this->PackagesImport.end();
+ it ++ )
+ {
+ if ( *it == sclass )
+ {
+ return;
+ }
+ }
+ this->PackagesImport.push_back(sclass);
+}
+
+void cmDependsJavaParserHelper::SafePrintMissing(const char* str, int line, int cnt)
+{
+ if ( str )
+ {
+ //std::cout << (void*) str << " JPSafePrintMissing" << std::endl;
+ std::cout << line << " String " << cnt << " exists: ";
+ unsigned int cc;
+ for ( cc = 0; cc < strlen(str); cc ++ )
+ {
+ unsigned char ch = str[cc];
+ if ( ch >= 32 && ch <= 126 )
+ {
+ std::cout << (char)ch;
+ }
+ else
+ {
+ std::cout << "<" << (int)ch << ">";
+ break;
+ }
+ }
+ std::cout << "- " << strlen(str) << std::endl;
+ }
+}
+void cmDependsJavaParserHelper::Print(const char* place, const char* str)
+{
+ if ( this->Verbose )
+ {
+ std::cout << "[" << place << "=" << str << "]" << std::endl;
+ }
+}
+
+void cmDependsJavaParserHelper::CombineUnions(char** out, const char* in1, char** in2,
+ const char* sep)
+{
+ int len = 1;
+ if ( in1 )
+ {
+ len += strlen(in1);
+ }
+ if ( *in2 )
+ {
+ len += strlen(*in2);
+ }
+ if ( sep )
+ {
+ len += strlen(sep);
+ }
+ *out = new char [ len ];
+ *out[0] = 0;
+ if ( in1 )
+ {
+ strcat(*out, in1);
+ }
+ if ( sep )
+ {
+ strcat(*out, sep);
+ }
+ if ( *in2 )
+ {
+ strcat(*out, *in2);
+ }
+ if ( *in2 )
+ {
+ this->DeallocateParserType(in2);
+ }
+ // std::cout << (void*) *out << " " << *out << " JPAllocateParserType" << std::endl;
+ this->UnionsAvailable ++;
+}
+
+void cmDependsJavaParserHelper::CheckEmpty(int line, int cnt, cmDependsJavaParserHelper::ParserType* pt)
+{
+ int cc;
+ int kk = -cnt + 1;
+ for ( cc = 1; cc <= cnt; cc ++)
+ {
+ cmDependsJavaParserHelper::ParserType* cpt = pt + kk;
+ this->SafePrintMissing(cpt->str, line, cc);
+ kk ++;
+ }
+}
+
+void cmDependsJavaParserHelper::PrepareElement(cmDependsJavaParserHelper::ParserType* me)
+{
+ // Inititalize self
+ me->str = 0;
+}
+
+void cmDependsJavaParserHelper::AllocateParserType(cmDependsJavaParserHelper::ParserType* pt,
+ const char* str, int len = 0)
+{
+ pt->str = 0;
+ if ( len == 0 )
+ {
+ len = strlen(str);
+ }
+ if ( len == 0 )
+ {
+ return;
+ }
+ this->UnionsAvailable ++;
+ pt->str = new char[ len + 1 ];
+ strncpy(pt->str, str, len);
+ pt->str[len] = 0;
+ this->Allocates.push_back(pt->str);
+ // std::cout << (void*) pt->str << " " << pt->str << " JPAllocateParserType" << std::endl;
+}
+
+void cmDependsJavaParserHelper::StartClass(const char* cls)
+{
+ CurrentClass cl;
+ cl.Name = cls;
+ this->ClassStack.push_back(cl);
+
+ this->CurrentDepth ++;
+}
+
+void cmDependsJavaParserHelper::EndClass()
+{
+ CurrentClass* parent = 0;
+ CurrentClass* current = 0;
+ if ( this->ClassStack.size() > 0 )
+ {
+ current = &(*(this->ClassStack.end() - 1));
+ if ( this->ClassStack.size() > 1 )
+ {
+ parent = &(*(this->ClassStack.end() - 2));
+ }
+ }
+ if ( current == 0 )
+ {
+ std::cerr << "Error when parsing. Current class is null" << std::endl;
+ abort();
+ }
+ if ( parent == 0 )
+ {
+ std::cerr << "Error when parsing. Parent class is null" << std::endl;
+ abort();
+ }
+ this->CurrentDepth --;
+ parent->NestedClasses.push_back(*current);
+ this->ClassStack.erase(this->ClassStack.end()-1, this->ClassStack.end());
+}
+
+void cmDependsJavaParserHelper::PrintClasses()
+{
+ if ( this->ClassStack.size() == 0 )
+ {
+ std::cerr << "Error when parsing. No classes on class stack" << std::endl;
+ abort();
+ }
+ std::vector<cmStdString> files = this->GetFilesProduced();
+ std::vector<cmStdString>::iterator sit;
+ for ( sit = files.begin();
+ sit != files.end();
+ ++ sit )
+ {
+ std::cout << " " << sit->c_str() << ".class" << std::endl;
+ }
+}
+
+std::vector<cmStdString> cmDependsJavaParserHelper::GetFilesProduced()
+{
+ std::vector<cmStdString> files;
+ CurrentClass* toplevel = &(*(this->ClassStack.begin()));
+ std::vector<CurrentClass>::iterator it;
+ for ( it = toplevel->NestedClasses.begin();
+ it != toplevel->NestedClasses.end();
+ ++ it )
+ {
+ it->AddFileNamesForPrinting(&files, 0, "$");
+ }
+ return files;
+}
+
+int cmDependsJavaParserHelper::ParseString(const char* str, int verb)
+{
+ if ( !str)
+ {
+ return 0;
+ }
+ //printf("Do some parsing: %s\n", str);
+
+ this->Verbose = verb;
+ this->InputBuffer = str;
+ this->InputBufferPos = 0;
+ this->CurrentLine = 0;
+
+
+ yyscan_t yyscanner;
+ cmDependsJava_yylex_init(&yyscanner);
+ cmDependsJava_yyset_extra(this, yyscanner);
+ int res = cmDependsJava_yyparse(yyscanner);
+ cmDependsJava_yylex_destroy(yyscanner);
+ if ( res != 0 )
+ {
+ std::cout << "JP_Parse returned: " << res << std::endl;
+ return 0;
+ }
+
+ if ( verb )
+ {
+ if ( this->CurrentPackage.size() > 0 )
+ {
+ std::cout << "Current package is: " << this->CurrentPackage.c_str() << std::endl;
+ }
+ std::cout << "Imports packages:";
+ if ( this->PackagesImport.size() > 0 )
+ {
+ std::vector<cmStdString>::iterator it;
+ for ( it = this->PackagesImport.begin();
+ it != this->PackagesImport.end();
+ ++ it )
+ {
+ std::cout << " " << it->c_str();
+ }
+ }
+ std::cout << std::endl;
+ std::cout << "Depends on:";
+ if ( this->ClassesFound.size() > 0 )
+ {
+ std::vector<cmStdString>::iterator it;
+ for ( it = this->ClassesFound.begin();
+ it != this->ClassesFound.end();
+ ++ it )
+ {
+ std::cout << " " << it->c_str();
+ }
+ }
+ std::cout << std::endl;
+ std::cout << "Generated files:" << std::endl;
+ this->PrintClasses();
+ if ( this->UnionsAvailable != 0 )
+ {
+ std::cout << "There are still " << this->UnionsAvailable << " unions available" << std::endl;
+ //return 0;
+ }
+ }
+ this->CleanupParser();
+ return 1;
+}
+
+void cmDependsJavaParserHelper::CleanupParser()
+{
+ std::vector<char*>::iterator it;
+ for ( it = this->Allocates.begin();
+ it != this->Allocates.end();
+ ++ it )
+ {
+ delete [] *it;
+ }
+ this->Allocates.erase(this->Allocates.begin(),
+ this->Allocates.end());
+}
+
+int cmDependsJavaParserHelper::LexInput(char* buf, int maxlen)
+{
+ //std::cout << "JPLexInput ";
+ //std::cout.write(buf, maxlen);
+ //std::cout << std::endl;
+ if ( maxlen < 1 )
+ {
+ return 0;
+ }
+ if ( this->InputBufferPos < this->InputBuffer.size() )
+ {
+ buf[0] = this->InputBuffer[ this->InputBufferPos++ ];
+ if ( buf[0] == '\n' )
+ {
+ this->CurrentLine ++;
+ }
+ return(1);
+ }
+ else
+ {
+ buf[0] = '\n';
+ return( 0 );
+ }
+}
+void cmDependsJavaParserHelper::Error(const char* str)
+{
+ fprintf(stderr, "JPError: %s (%d / Line: %d)\n", str, this->InputBufferPos, this->CurrentLine);
+ int cc;
+ std::cerr << "String: [";
+ for ( cc = 0; cc < 30 && *(this->InputBuffer.c_str() + this->InputBufferPos + cc);
+ cc ++ )
+ {
+ std::cerr << *(this->InputBuffer.c_str() + this->InputBufferPos + cc);
+ }
+ std::cerr << "]" << std::endl;
+}
+
+void cmDependsJavaParserHelper::UpdateCombine(const char* str1, const char* str2)
+{
+ if ( this->CurrentCombine == "" && str1 != 0)
+ {
+ this->CurrentCombine = str1;
+ }
+ this->CurrentCombine += ".";
+ this->CurrentCombine += str2;
+}
+
+int cmDependsJavaParserHelper::ParseFile(const char* file)
+{
+ if ( !cmSystemTools::FileExists(file))
+ {
+ return 0;
+ }
+ std::ifstream ifs(file);
+ if ( !ifs )
+ {
+ return 0;
+ }
+
+ cmStdString fullfile = "";
+ cmStdString line;
+ while ( cmSystemTools::GetLineFromStream(ifs, line) )
+ {
+ fullfile += line + "\n";
+ }
+ return this->ParseString(fullfile.c_str(), 0);
+}
+
diff --git a/Source/cmDependsJavaParserHelper.h b/Source/cmDependsJavaParserHelper.h
new file mode 100644
index 0000000..a84a659
--- /dev/null
+++ b/Source/cmDependsJavaParserHelper.h
@@ -0,0 +1,108 @@
+/*=========================================================================
+
+ Program: CMake - Cross-Platform Makefile Generator
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef cmDependsJavaParserHelper_h
+#define cmDependsJavaParserHelper_h
+
+#include "cmStandardIncludes.h"
+
+#define YYSTYPE cmDependsJavaParserHelper::ParserType
+#define YYSTYPE_IS_DECLARED
+#define YY_EXTRA_TYPE cmDependsJavaParserHelper*
+#define YY_DECL int cmDependsJava_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
+
+/** \class cmDependsJavaParserHelper
+ * \brief Helper class for parsing java source files
+ *
+ * Finds dependencies for java file and list of outputs
+ */
+
+class cmDependsJavaParserHelper
+{
+public:
+ typedef struct {
+ char* str;
+ } ParserType;
+
+ cmDependsJavaParserHelper();
+ ~cmDependsJavaParserHelper();
+
+ int ParseString(const char* str, int verb);
+ int ParseFile(const char* file);
+
+ // For the lexer:
+ void AllocateParserType(cmDependsJavaParserHelper::ParserType* pt,
+ const char* str, int len = 0);
+
+ int LexInput(char* buf, int maxlen);
+ void Error(const char* str);
+
+ // For yacc
+ void AddClassFound(const char* sclass);
+ void PrepareElement(ParserType* opt);
+ void DeallocateParserType(char** pt);
+ void CheckEmpty(int line, int cnt, ParserType* pt);
+ void StartClass(const char* cls);
+ void EndClass();
+ void AddPackagesImport(const char* sclass);
+ void SetCurrentPackage(const char* pkg) { this->CurrentPackage = pkg; }
+ const char* GetCurrentPackage() { return this->CurrentPackage.c_str(); }
+ void SetCurrentCombine(const char* cmb) { this->CurrentCombine = cmb; }
+ const char* GetCurrentCombine() { return this->CurrentCombine.c_str(); }
+ void UpdateCombine(const char* str1, const char* str2);
+
+ std::vector<cmStdString>& GetClassesFound() { return this->ClassesFound; }
+
+ std::vector<cmStdString> GetFilesProduced();
+
+private:
+ class CurrentClass
+ {
+ public:
+ cmStdString Name;
+ std::vector<CurrentClass> NestedClasses;
+ CurrentClass() {}
+ void AddFileNamesForPrinting(std::vector<cmStdString> *files, const char* prefix, const char* sep);
+ };
+ cmStdString CurrentPackage;
+ cmStdString::size_type InputBufferPos;
+ cmStdString InputBuffer;
+ std::vector<char> OutputBuffer;
+ std::vector<cmStdString> ClassesFound;
+ std::vector<cmStdString> PackagesImport;
+ cmStdString CurrentCombine;
+
+ std::vector<CurrentClass> ClassStack;
+
+ int CurrentLine;
+ int UnionsAvailable;
+ int LastClassId;
+ int CurrentDepth;
+ int Verbose;
+
+ std::vector<char*> Allocates;
+
+ void PrintClasses();
+
+ void Print(const char* place, const char* str);
+ void CombineUnions(char** out, const char* in1, char** in2, const char* sep);
+ void SafePrintMissing(const char* str, int line, int cnt);
+
+ void CleanupParser();
+};
+
+#endif
+
diff --git a/Source/cmDependsJavaParserTokens.h b/Source/cmDependsJavaParserTokens.h
new file mode 100644
index 0000000..2f15db5
--- /dev/null
+++ b/Source/cmDependsJavaParserTokens.h
@@ -0,0 +1,254 @@
+/* A Bison parser, made by GNU Bison 1.875d. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ ABSTRACT = 258,
+ ASSERT = 259,
+ BOOLEAN = 260,
+ BREAK = 261,
+ BYTE = 262,
+ CASE = 263,
+ CATCH = 264,
+ CHAR = 265,
+ CLASS = 266,
+ CONTINUE = 267,
+ DEFAULT = 268,
+ DO = 269,
+ DOUBLE = 270,
+ ELSE = 271,
+ EXTENDS = 272,
+ FINAL = 273,
+ FINALLY = 274,
+ FLOAT = 275,
+ FOR = 276,
+ IF = 277,
+ IMPLEMENTS = 278,
+ IMPORT = 279,
+ INSTANCEOF = 280,
+ INT = 281,
+ INTERFACE = 282,
+ LONG = 283,
+ NATIVE = 284,
+ NEW = 285,
+ PACKAGE = 286,
+ PRIVATE = 287,
+ PROTECTED = 288,
+ PUBLIC = 289,
+ RETURN = 290,
+ SHORT = 291,
+ STATIC = 292,
+ STRICTFP = 293,
+ SUPER = 294,
+ SWITCH = 295,
+ SYNCHRONIZED = 296,
+ THIS = 297,
+ THROW = 298,
+ THROWS = 299,
+ TRANSIENT = 300,
+ TRY = 301,
+ VOID = 302,
+ VOLATILE = 303,
+ WHILE = 304,
+ BOOLEANLITERAL = 305,
+ CHARACTERLITERAL = 306,
+ DECIMALINTEGERLITERAL = 307,
+ FLOATINGPOINTLITERAL = 308,
+ HEXINTEGERLITERAL = 309,
+ NULLLITERAL = 310,
+ STRINGLITERAL = 311,
+ NAME = 312,
+ AND = 313,
+ ANDAND = 314,
+ ANDEQUALS = 315,
+ BRACKETEND = 316,
+ BRACKETSTART = 317,
+ CARROT = 318,
+ CARROTEQUALS = 319,
+ COLON = 320,
+ COMMA = 321,
+ CURLYEND = 322,
+ CURLYSTART = 323,
+ DIVIDE = 324,
+ DIVIDEEQUALS = 325,
+ DOLLAR = 326,
+ DOT = 327,
+ EQUALS = 328,
+ EQUALSEQUALS = 329,
+ EXCLAMATION = 330,
+ EXCLAMATIONEQUALS = 331,
+ GREATER = 332,
+ GTEQUALS = 333,
+ GTGT = 334,
+ GTGTEQUALS = 335,
+ GTGTGT = 336,
+ GTGTGTEQUALS = 337,
+ LESLESEQUALS = 338,
+ LESSTHAN = 339,
+ LTEQUALS = 340,
+ LTLT = 341,
+ MINUS = 342,
+ MINUSEQUALS = 343,
+ MINUSMINUS = 344,
+ PAREEND = 345,
+ PARESTART = 346,
+ PERCENT = 347,
+ PERCENTEQUALS = 348,
+ PIPE = 349,
+ PIPEEQUALS = 350,
+ PIPEPIPE = 351,
+ PLUS = 352,
+ PLUSEQUALS = 353,
+ PLUSPLUS = 354,
+ QUESTION = 355,
+ SEMICOL = 356,
+ TILDE = 357,
+ TIMES = 358,
+ TIMESEQUALS = 359,
+ ERROR = 360
+ };
+#endif
+#define ABSTRACT 258
+#define ASSERT 259
+#define BOOLEAN 260
+#define BREAK 261
+#define BYTE 262
+#define CASE 263
+#define CATCH 264
+#define CHAR 265
+#define CLASS 266
+#define CONTINUE 267
+#define DEFAULT 268
+#define DO 269
+#define DOUBLE 270
+#define ELSE 271
+#define EXTENDS 272
+#define FINAL 273
+#define FINALLY 274
+#define FLOAT 275
+#define FOR 276
+#define IF 277
+#define IMPLEMENTS 278
+#define IMPORT 279
+#define INSTANCEOF 280
+#define INT 281
+#define INTERFACE 282
+#define LONG 283
+#define NATIVE 284
+#define NEW 285
+#define PACKAGE 286
+#define PRIVATE 287
+#define PROTECTED 288
+#define PUBLIC 289
+#define RETURN 290
+#define SHORT 291
+#define STATIC 292
+#define STRICTFP 293
+#define SUPER 294
+#define SWITCH 295
+#define SYNCHRONIZED 296
+#define THIS 297
+#define THROW 298
+#define THROWS 299
+#define TRANSIENT 300
+#define TRY 301
+#define VOID 302
+#define VOLATILE 303
+#define WHILE 304
+#define BOOLEANLITERAL 305
+#define CHARACTERLITERAL 306
+#define DECIMALINTEGERLITERAL 307
+#define FLOATINGPOINTLITERAL 308
+#define HEXINTEGERLITERAL 309
+#define NULLLITERAL 310
+#define STRINGLITERAL 311
+#define NAME 312
+#define AND 313
+#define ANDAND 314
+#define ANDEQUALS 315
+#define BRACKETEND 316
+#define BRACKETSTART 317
+#define CARROT 318
+#define CARROTEQUALS 319
+#define COLON 320
+#define COMMA 321
+#define CURLYEND 322
+#define CURLYSTART 323
+#define DIVIDE 324
+#define DIVIDEEQUALS 325
+#define DOLLAR 326
+#define DOT 327
+#define EQUALS 328
+#define EQUALSEQUALS 329
+#define EXCLAMATION 330
+#define EXCLAMATIONEQUALS 331
+#define GREATER 332
+#define GTEQUALS 333
+#define GTGT 334
+#define GTGTEQUALS 335
+#define GTGTGT 336
+#define GTGTGTEQUALS 337
+#define LESLESEQUALS 338
+#define LESSTHAN 339
+#define LTEQUALS 340
+#define LTLT 341
+#define MINUS 342
+#define MINUSEQUALS 343
+#define MINUSMINUS 344
+#define PAREEND 345
+#define PARESTART 346
+#define PERCENT 347
+#define PERCENTEQUALS 348
+#define PIPE 349
+#define PIPEEQUALS 350
+#define PIPEPIPE 351
+#define PLUS 352
+#define PLUSEQUALS 353
+#define PLUSPLUS 354
+#define QUESTION 355
+#define SEMICOL 356
+#define TILDE 357
+#define TIMES 358
+#define TIMESEQUALS 359
+#define ERROR 360
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+typedef int YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+
+