/* A Bison parser, made by GNU Bison 3.0.4.  */

/* Bison implementation for Yacc-like parsers in C

   Copyright (C) 1984, 1989-1990, 2000-2015 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton 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

/* Bison version.  */
#define YYBISON_VERSION "3.0.4"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Push parsers.  */
#define YYPUSH 0

/* Pull parsers.  */
#define YYPULL 1


/* Substitute the variable and function names.  */
#define yyparse         cmDependsJava_yyparse
#define yylex           cmDependsJava_yylex
#define yyerror         cmDependsJava_yyerror
#define yydebug         cmDependsJava_yydebug
#define yynerrs         cmDependsJava_yynerrs


/* Copy the first part of user declarations.  */
#line 1 "cmDependsJavaParser.y" /* yacc.c:339  */

/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
/*

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.cxx:
  - "#if 0" out yyerrorlab block in range ["goto yyerrlab1", "yyerrlab1:"]

*/

#include "cmConfigure.h" // IWYU pragma: keep

#include <stdlib.h>
#include <string.h>
#include <string>

#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;

/* Helper function to forward error callback from parser.  */
static void cmDependsJava_yyerror(yyscan_t yyscanner, const char* message);

#define YYMAXDEPTH 1000000


#define jpCheckEmpty(cnt) yyGetParser->CheckEmpty(__LINE__, cnt, yyvsp)
#define jpElementStart(cnt) yyGetParser->PrepareElement(&yyval)
#define jpStoreClass(str) yyGetParser->AddClassFound(str); yyGetParser->DeallocateParserType(&(str))
/* Disable some warnings in the generated code.  */
#ifdef _MSC_VER
# pragma warning (disable: 4102) /* Unused goto label.  */
# pragma warning (disable: 4065) /* Switch statement contains default but no case. */
#endif
#if defined(__GNUC__) && __GNUC__ >= 8
# pragma GCC diagnostic ignored "-Wconversion"
#endif

#line 123 "cmDependsJavaParser.cxx" /* yacc.c:339  */

# ifndef YY_NULLPTR
#  if defined __cplusplus && 201103L <= __cplusplus
#   define YY_NULLPTR nullptr
#  else
#   define YY_NULLPTR 0
#  endif
# endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 1
#endif

/* In a future release of Bison, this section will be replaced
   by #include "cmDependsJavaParserTokens.h".  */
#ifndef YY_CMDEPENDSJAVA_YY_CMDEPENDSJAVAPARSERTOKENS_H_INCLUDED
# define YY_CMDEPENDSJAVA_YY_CMDEPENDSJAVAPARSERTOKENS_H_INCLUDED
/* Debug traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif
#if YYDEBUG
extern int cmDependsJava_yydebug;
#endif

/* Token type.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
  enum yytokentype
  {
    jp_ABSTRACT = 258,
    jp_ASSERT = 259,
    jp_BOOLEAN_TYPE = 260,
    jp_BREAK = 261,
    jp_BYTE_TYPE = 262,
    jp_CASE = 263,
    jp_CATCH = 264,
    jp_CHAR_TYPE = 265,
    jp_CLASS = 266,
    jp_CONTINUE = 267,
    jp_DEFAULT = 268,
    jp_DO = 269,
    jp_DOUBLE_TYPE = 270,
    jp_ELSE = 271,
    jp_EXTENDS = 272,
    jp_FINAL = 273,
    jp_FINALLY = 274,
    jp_FLOAT_TYPE = 275,
    jp_FOR = 276,
    jp_IF = 277,
    jp_IMPLEMENTS = 278,
    jp_IMPORT = 279,
    jp_INSTANCEOF = 280,
    jp_INT_TYPE = 281,
    jp_INTERFACE = 282,
    jp_LONG_TYPE = 283,
    jp_NATIVE = 284,
    jp_NEW = 285,
    jp_PACKAGE = 286,
    jp_PRIVATE = 287,
    jp_PROTECTED = 288,
    jp_PUBLIC = 289,
    jp_RETURN = 290,
    jp_SHORT_TYPE = 291,
    jp_STATIC = 292,
    jp_STRICTFP = 293,
    jp_SUPER = 294,
    jp_SWITCH = 295,
    jp_SYNCHRONIZED = 296,
    jp_THIS = 297,
    jp_THROW = 298,
    jp_THROWS = 299,
    jp_TRANSIENT = 300,
    jp_TRY = 301,
    jp_VOID = 302,
    jp_VOLATILE = 303,
    jp_WHILE = 304,
    jp_BOOLEANLITERAL = 305,
    jp_CHARACTERLITERAL = 306,
    jp_DECIMALINTEGERLITERAL = 307,
    jp_FLOATINGPOINTLITERAL = 308,
    jp_HEXINTEGERLITERAL = 309,
    jp_NULLLITERAL = 310,
    jp_STRINGLITERAL = 311,
    jp_NAME = 312,
    jp_AND = 313,
    jp_ANDAND = 314,
    jp_ANDEQUALS = 315,
    jp_BRACKETEND = 316,
    jp_BRACKETSTART = 317,
    jp_CARROT = 318,
    jp_CARROTEQUALS = 319,
    jp_COLON = 320,
    jp_COMMA = 321,
    jp_CURLYEND = 322,
    jp_CURLYSTART = 323,
    jp_DIVIDE = 324,
    jp_DIVIDEEQUALS = 325,
    jp_DOLLAR = 326,
    jp_DOT = 327,
    jp_EQUALS = 328,
    jp_EQUALSEQUALS = 329,
    jp_EXCLAMATION = 330,
    jp_EXCLAMATIONEQUALS = 331,
    jp_GREATER = 332,
    jp_GTEQUALS = 333,
    jp_GTGT = 334,
    jp_GTGTEQUALS = 335,
    jp_GTGTGT = 336,
    jp_GTGTGTEQUALS = 337,
    jp_LESLESEQUALS = 338,
    jp_LESSTHAN = 339,
    jp_LTEQUALS = 340,
    jp_LTLT = 341,
    jp_MINUS = 342,
    jp_MINUSEQUALS = 343,
    jp_MINUSMINUS = 344,
    jp_PAREEND = 345,
    jp_PARESTART = 346,
    jp_PERCENT = 347,
    jp_PERCENTEQUALS = 348,
    jp_PIPE = 349,
    jp_PIPEEQUALS = 350,
    jp_PIPEPIPE = 351,
    jp_PLUS = 352,
    jp_PLUSEQUALS = 353,
    jp_PLUSPLUS = 354,
    jp_QUESTION = 355,
    jp_SEMICOL = 356,
    jp_TILDE = 357,
    jp_TIMES = 358,
    jp_TIMESEQUALS = 359,
    jp_ERROR = 360
  };
#endif
/* Tokens.  */
#define jp_ABSTRACT 258
#define jp_ASSERT 259
#define jp_BOOLEAN_TYPE 260
#define jp_BREAK 261
#define jp_BYTE_TYPE 262
#define jp_CASE 263
#define jp_CATCH 264
#define jp_CHAR_TYPE 265
#define jp_CLASS 266
#define jp_CONTINUE 267
#define jp_DEFAULT 268
#define jp_DO 269
#define jp_DOUBLE_TYPE 270
#define jp_ELSE 271
#define jp_EXTENDS 272
#define jp_FINAL 273
#define jp_FINALLY 274
#define jp_FLOAT_TYPE 275
#define jp_FOR 276
#define jp_IF 277
#define jp_IMPLEMENTS 278
#define jp_IMPORT 279
#define jp_INSTANCEOF 280
#define jp_INT_TYPE 281
#define jp_INTERFACE 282
#define jp_LONG_TYPE 283
#define jp_NATIVE 284
#define jp_NEW 285
#define jp_PACKAGE 286
#define jp_PRIVATE 287
#define jp_PROTECTED 288
#define jp_PUBLIC 289
#define jp_RETURN 290
#define jp_SHORT_TYPE 291
#define jp_STATIC 292
#define jp_STRICTFP 293
#define jp_SUPER 294
#define jp_SWITCH 295
#define jp_SYNCHRONIZED 296
#define jp_THIS 297
#define jp_THROW 298
#define jp_THROWS 299
#define jp_TRANSIENT 300
#define jp_TRY 301
#define jp_VOID 302
#define jp_VOLATILE 303
#define jp_WHILE 304
#define jp_BOOLEANLITERAL 305
#define jp_CHARACTERLITERAL 306
#define jp_DECIMALINTEGERLITERAL 307
#define jp_FLOATINGPOINTLITERAL 308
#define jp_HEXINTEGERLITERAL 309
#define jp_NULLLITERAL 310
#define jp_STRINGLITERAL 311
#define jp_NAME 312
#define jp_AND 313
#define jp_ANDAND 314
#define jp_ANDEQUALS 315
#define jp_BRACKETEND 316
#define jp_BRACKETSTART 317
#define jp_CARROT 318
#define jp_CARROTEQUALS 319
#define jp_COLON 320
#define jp_COMMA 321
#define jp_CURLYEND 322
#define jp_CURLYSTART 323
#define jp_DIVIDE 324
#define jp_DIVIDEEQUALS 325
#define jp_DOLLAR 326
#define jp_DOT 327
#define jp_EQUALS 328
#define jp_EQUALSEQUALS 329
#define jp_EXCLAMATION 330
#define jp_EXCLAMATIONEQUALS 331
#define jp_GREATER 332
#define jp_GTEQUALS 333
#define jp_GTGT 334
#define jp_GTGTEQUALS 335
#define jp_GTGTGT 336
#define jp_GTGTGTEQUALS 337
#define jp_LESLESEQUALS 338
#define jp_LESSTHAN 339
#define jp_LTEQUALS 340
#define jp_LTLT 341
#define jp_MINUS 342
#define jp_MINUSEQUALS 343
#define jp_MINUSMINUS 344
#define jp_PAREEND 345
#define jp_PARESTART 346
#define jp_PERCENT 347
#define jp_PERCENTEQUALS 348
#define jp_PIPE 349
#define jp_PIPEEQUALS 350
#define jp_PIPEPIPE 351
#define jp_PLUS 352
#define jp_PLUSEQUALS 353
#define jp_PLUSPLUS 354
#define jp_QUESTION 355
#define jp_SEMICOL 356
#define jp_TILDE 357
#define jp_TIMES 358
#define jp_TIMESEQUALS 359
#define jp_ERROR 360

/* Value type.  */



int cmDependsJava_yyparse (yyscan_t yyscanner);

#endif /* !YY_CMDEPENDSJAVA_YY_CMDEPENDSJAVAPARSERTOKENS_H_INCLUDED  */

/* Copy the second part of user declarations.  */

#line 378 "cmDependsJavaParser.cxx" /* yacc.c:358  */

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#else
typedef signed char yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(Msgid) Msgid
# endif
#endif

#ifndef YY_ATTRIBUTE
# if (defined __GNUC__                                               \
      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
# else
#  define YY_ATTRIBUTE(Spec) /* empty */
# endif
#endif

#ifndef YY_ATTRIBUTE_PURE
# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
#endif

#ifndef YY_ATTRIBUTE_UNUSED
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
#endif

#if !defined _Noreturn \
     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
# if defined _MSC_VER && 1200 <= _MSC_VER
#  define _Noreturn __declspec (noreturn)
# else
#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(E) ((void) (E))
#else
# define YYUSE(E) /* empty */
#endif

#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
    _Pragma ("GCC diagnostic push") \
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
    _Pragma ("GCC diagnostic pop")
#else
# define YY_INITIAL_VALUE(Value) Value
#endif
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
#endif
#ifndef YY_INITIAL_VALUE
# define YY_INITIAL_VALUE(Value) /* Nothing. */
#endif


#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
#     ifndef EXIT_SUCCESS
#      define EXIT_SUCCESS 0
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's 'empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
       && ! ((defined YYMALLOC || defined malloc) \
             && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef EXIT_SUCCESS
#    define EXIT_SUCCESS 0
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined EXIT_SUCCESS
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined EXIT_SUCCESS
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# 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
{
  yytype_int16 yyss_alloc;
  YYSTYPE yyvs_alloc;
};

/* 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 (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

# define YYCOPY_NEEDED 1

/* 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_alloc, Stack)                           \
    do                                                                  \
      {                                                                 \
        YYSIZE_T yynewbytes;                                            \
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
        Stack = &yyptr->Stack_alloc;                                    \
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
      }                                                                 \
    while (0)

#endif

#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
/* Copy COUNT objects from SRC to DST.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(Dst, Src, Count) \
      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
#  else
#   define YYCOPY(Dst, Src, Count)              \
      do                                        \
        {                                       \
          YYSIZE_T yyi;                         \
          for (yyi = 0; yyi < (Count); yyi++)   \
            (Dst)[yyi] = (Src)[yyi];            \
        }                                       \
      while (0)
#  endif
# endif
#endif /* !YYCOPY_NEEDED */

/* 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
/* YYNSTATES -- Number of states.  */
#define YYNSTATES  575

/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
   by yylex, with out-of-bounds checking.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   360

#define YYTRANSLATE(YYX)                                                \
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
   as returned by yylex, without out-of-bounds checking.  */
static const yytype_uint8 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
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,   182,   182,   191,   199,   207,   215,   223,   231,   240,
     248,   257,   265,   274,   279,   284,   289,   294,   299,   304,
     309,   315,   323,   332,   342,   351,   360,   368,   378,   384,
     391,   398,   404,   411,   420,   430,   440,   449,   457,   466,
     475,   481,   490,   496,   505,   511,   520,   532,   540,   549,
     561,   574,   582,   590,   599,   607,   616,   616,   616,   617,
     618,   618,   618,   618,   618,   618,   619,   622,   632,   641,
     650,   659,   669,   675,   684,   693,   702,   710,   719,   728,
     734,   743,   751,   759,   767,   776,   784,   793,   799,   807,
     816,   824,   833,   842,   851,   859,   868,   876,   884,   893,
     902,   912,   919,   929,   939,   946,   953,   956,   962,   972,
     982,   992,   998,  1008,  1018,  1028,  1037,  1047,  1058,  1068,
    1075,  1085,  1094,  1104,  1113,  1123,  1129,  1139,  1148,  1158,
    1168,  1175,  1184,  1193,  1202,  1211,  1219,  1228,  1237,  1247,
    1257,  1266,  1276,  1286,  1293,  1302,  1312,  1321,  1331,  1340,
    1347,  1357,  1366,  1376,  1385,  1394,  1404,  1414,  1423,  1433,
    1442,  1451,  1460,  1469,  1478,  1488,  1497,  1506,  1515,  1524,
    1534,  1543,  1552,  1561,  1570,  1579,  1588,  1597,  1606,  1615,
    1624,  1633,  1643,  1653,  1664,  1674,  1684,  1693,  1702,  1711,
    1720,  1729,  1738,  1748,  1758,  1768,  1778,  1785,  1792,  1799,
    1809,  1816,  1826,  1836,  1845,  1855,  1864,  1874,  1881,  1888,
    1895,  1903,  1910,  1920,  1927,  1937,  1947,  1954,  1964,  1973,
    1983,  1993,  2002,  2012,  2021,  2031,  2042,  2049,  2056,  2067,
    2077,  2087,  2097,  2106,  2116,  2123,  2133,  2142,  2152,  2159,
    2169,  2178,  2188,  2197,  2203,  2212,  2221,  2230,  2239,  2249,
    2259,  2266,  2276,  2283,  2293,  2302,  2312,  2321,  2330,  2339,
    2349,  2356,  2366,  2375,  2385,  2395,  2401,  2408,  2418,  2428,
    2438,  2449,  2459,  2470,  2480,  2491,  2501,  2511,  2520,  2529,
    2538,  2547,  2557,  2567,  2577,  2586,  2595,  2604,  2613,  2623,
    2633,  2643,  2652,  2661,  2670,  2680,  2689,  2698,  2705,  2714,
    2723,  2732,  2742,  2751,  2760,  2770,  2779,  2788,  2797,  2807,
    2816,  2825,  2834,  2843,  2852,  2862,  2871,  2880,  2890,  2899,
    2909,  2918,  2928,  2937,  2947,  2956,  2966,  2975,  2985,  2994,
    3004,  3013,  3023,  3033,  3043,  3052,  3062,  3071,  3080,  3089,
    3098,  3107,  3116,  3125,  3134,  3143,  3152,  3161,  3171,  3181,
    3191,  3200
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || 1
/* YYTNAME[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", "jp_ABSTRACT", "jp_ASSERT",
  "jp_BOOLEAN_TYPE", "jp_BREAK", "jp_BYTE_TYPE", "jp_CASE", "jp_CATCH",
  "jp_CHAR_TYPE", "jp_CLASS", "jp_CONTINUE", "jp_DEFAULT", "jp_DO",
  "jp_DOUBLE_TYPE", "jp_ELSE", "jp_EXTENDS", "jp_FINAL", "jp_FINALLY",
  "jp_FLOAT_TYPE", "jp_FOR", "jp_IF", "jp_IMPLEMENTS", "jp_IMPORT",
  "jp_INSTANCEOF", "jp_INT_TYPE", "jp_INTERFACE", "jp_LONG_TYPE",
  "jp_NATIVE", "jp_NEW", "jp_PACKAGE", "jp_PRIVATE", "jp_PROTECTED",
  "jp_PUBLIC", "jp_RETURN", "jp_SHORT_TYPE", "jp_STATIC", "jp_STRICTFP",
  "jp_SUPER", "jp_SWITCH", "jp_SYNCHRONIZED", "jp_THIS", "jp_THROW",
  "jp_THROWS", "jp_TRANSIENT", "jp_TRY", "jp_VOID", "jp_VOLATILE",
  "jp_WHILE", "jp_BOOLEANLITERAL", "jp_CHARACTERLITERAL",
  "jp_DECIMALINTEGERLITERAL", "jp_FLOATINGPOINTLITERAL",
  "jp_HEXINTEGERLITERAL", "jp_NULLLITERAL", "jp_STRINGLITERAL", "jp_NAME",
  "jp_AND", "jp_ANDAND", "jp_ANDEQUALS", "jp_BRACKETEND",
  "jp_BRACKETSTART", "jp_CARROT", "jp_CARROTEQUALS", "jp_COLON",
  "jp_COMMA", "jp_CURLYEND", "jp_CURLYSTART", "jp_DIVIDE",
  "jp_DIVIDEEQUALS", "jp_DOLLAR", "jp_DOT", "jp_EQUALS", "jp_EQUALSEQUALS",
  "jp_EXCLAMATION", "jp_EXCLAMATIONEQUALS", "jp_GREATER", "jp_GTEQUALS",
  "jp_GTGT", "jp_GTGTEQUALS", "jp_GTGTGT", "jp_GTGTGTEQUALS",
  "jp_LESLESEQUALS", "jp_LESSTHAN", "jp_LTEQUALS", "jp_LTLT", "jp_MINUS",
  "jp_MINUSEQUALS", "jp_MINUSMINUS", "jp_PAREEND", "jp_PARESTART",
  "jp_PERCENT", "jp_PERCENTEQUALS", "jp_PIPE", "jp_PIPEEQUALS",
  "jp_PIPEPIPE", "jp_PLUS", "jp_PLUSEQUALS", "jp_PLUSPLUS", "jp_QUESTION",
  "jp_SEMICOL", "jp_TILDE", "jp_TIMES", "jp_TIMESEQUALS", "jp_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", YY_NULLPTR
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
   (internal) symbol number NUM (which must be that of a token).  */
static const yytype_uint16 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

#define YYPACT_NINF -503

#define yypact_value_is_default(Yystate) \
  (!!((Yystate) == (-503)))

#define YYTABLE_NINF -336

#define yytable_value_is_error(Yytable_value) \
  0

  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
     STATE-NUM.  */
static const yytype_int16 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
};

  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
     Performed when YYTABLE does not specify something else to do.  Zero
     means the default is an error.  */
static const yytype_uint16 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
};

  /* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 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
};

  /* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 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
};

  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
     positive, shift that token.  If negative, reduce the rule whose
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
static const yytype_int16 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 yytype_int16 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 yytype_uint16 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
};

  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 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 on the right hand side of rule YYN.  */
static const yytype_uint8 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
};


#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


#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)                                  \
do                                                              \
  if (yychar == YYEMPTY)                                        \
    {                                                           \
      yychar = (Token);                                         \
      yylval = (Value);                                         \
      YYPOPSTACK (yylen);                                       \
      yystate = *yyssp;                                         \
      goto yybackup;                                            \
    }                                                           \
  else                                                          \
    {                                                           \
      yyerror (yyscanner, YY_("syntax error: cannot back up")); \
      YYERROR;                                                  \
    }                                                           \
while (0)

/* Error token number */
#define YYTERROR        1
#define YYERRCODE       256



/* 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)

/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif


# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
do {                                                                      \
  if (yydebug)                                                            \
    {                                                                     \
      YYFPRINTF (stderr, "%s ", Title);                                   \
      yy_symbol_print (stderr,                                            \
                  Type, Value, yyscanner); \
      YYFPRINTF (stderr, "\n");                                           \
    }                                                                     \
} while (0)


/*----------------------------------------.
| Print this symbol's value on YYOUTPUT.  |
`----------------------------------------*/

static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, yyscan_t yyscanner)
{
  FILE *yyo = yyoutput;
  YYUSE (yyo);
  YYUSE (yyscanner);
  if (!yyvaluep)
    return;
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# endif
  YYUSE (yytype);
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, yyscan_t yyscanner)
{
  YYFPRINTF (yyoutput, "%s %s (",
             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);

  yy_symbol_value_print (yyoutput, yytype, yyvaluep, yyscanner);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
{
  YYFPRINTF (stderr, "Stack now");
  for (; yybottom <= yytop; yybottom++)
    {
      int yybot = *yybottom;
      YYFPRINTF (stderr, " %d", yybot);
    }
  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.  |
`------------------------------------------------*/

static void
yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, yyscan_t yyscanner)
{
  unsigned long int yylno = yyrline[yyrule];
  int yynrhs = yyr2[yyrule];
  int yyi;
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
             yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr,
                       yystos[yyssp[yyi + 1 - yynrhs]],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
                                              , yyscanner);
      YYFPRINTF (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)          \
do {                                    \
  if (yydebug)                          \
    yy_reduce_print (yyssp, yyvsp, Rule, yyscanner); \
} 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 YY_SYMBOL_PRINT(Title, Type, 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
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#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
yystrlen (const char *yystr)
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  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 *
yystpcpy (char *yydest, const char *yysrc)
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
        switch (*++yyp)
          {
          case '\'':
          case ',':
            goto do_not_strip_quotes;

          case '\\':
            if (*++yyp != '\\')
              goto do_not_strip_quotes;
            /* Fall through.  */
          default:
            if (yyres)
              yyres[yyn] = *yyp;
            yyn++;
            break;

          case '"':
            if (yyres)
              yyres[yyn] = '\0';
            return yyn;
          }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
   about the unexpected token YYTOKEN for the state stack whose top is
   YYSSP.

   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
   not large enough to hold the message.  In that case, also set
   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
   required number of bytes is too large to store.  */
static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                yytype_int16 *yyssp, int yytoken)
{
  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
  YYSIZE_T yysize = yysize0;
  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
  /* Internationalized format string. */
  const char *yyformat = YY_NULLPTR;
  /* Arguments of yyformat. */
  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  /* Number of reported tokens (one for the "unexpected", one per
     "expected"). */
  int yycount = 0;

  /* There are many possibilities here to consider:
     - If this state is a consistent state with a default action, then
       the only way this function was invoked is if the default action
       is an error action.  In that case, don't check for expected
       tokens because there are none.
     - The only way there can be no lookahead present (in yychar) is if
       this state is a consistent state with a default action.  Thus,
       detecting the absence of a lookahead is sufficient to determine
       that there is no unexpected or expected token to report.  In that
       case, just report a simple "syntax error".
     - Don't assume there isn't a lookahead just because this state is a
       consistent state with a default action.  There might have been a
       previous inconsistent state, consistent state with a non-default
       action, or user semantic action that manipulated yychar.
     - Of course, the expected token list depends on states to have
       correct lookahead information, and it depends on the parser not
       to perform extra reductions after fetching a lookahead from the
       scanner and before detecting a syntax error.  Thus, state merging
       (from LALR or IELR) and default reductions corrupt the expected
       token list.  However, the list is correct for canonical LR with
       one exception: it will still contain any token that will not be
       accepted due to an error action in a later state.
  */
  if (yytoken != YYEMPTY)
    {
      int yyn = yypact[*yyssp];
      yyarg[yycount++] = yytname[yytoken];
      if (!yypact_value_is_default (yyn))
        {
          /* Start YYX at -YYN if negative to avoid negative indexes in
             YYCHECK.  In other words, skip the first -YYN actions for
             this state because they are default actions.  */
          int yyxbegin = yyn < 0 ? -yyn : 0;
          /* Stay within bounds of both yycheck and yytname.  */
          int yychecklim = YYLAST - yyn + 1;
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
          int yyx;

          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
                && !yytable_value_is_error (yytable[yyx + yyn]))
              {
                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
                  {
                    yycount = 1;
                    yysize = yysize0;
                    break;
                  }
                yyarg[yycount++] = yytname[yyx];
                {
                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
                  if (! (yysize <= yysize1
                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
                    return 2;
                  yysize = yysize1;
                }
              }
        }
    }

  switch (yycount)
    {
# define YYCASE_(N, S)                      \
      case N:                               \
        yyformat = S;                       \
      break
      YYCASE_(0, YY_("syntax error"));
      YYCASE_(1, YY_("syntax error, unexpected %s"));
      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
# undef YYCASE_
    }

  {
    YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
      return 2;
    yysize = yysize1;
  }

  if (*yymsg_alloc < yysize)
    {
      *yymsg_alloc = 2 * yysize;
      if (! (yysize <= *yymsg_alloc
             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
      return 1;
    }

  /* Avoid sprintf, as that infringes on the user's name space.
     Don't have undefined behavior even if the translation
     produced a string with the wrong number of "%s"s.  */
  {
    char *yyp = *yymsg;
    int yyi = 0;
    while ((*yyp = *yyformat) != '\0')
      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
        {
          yyp += yytnamerr (yyp, yyarg[yyi++]);
          yyformat += 2;
        }
      else
        {
          yyp++;
          yyformat++;
        }
  }
  return 0;
}
#endif /* YYERROR_VERBOSE */

/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, yyscan_t yyscanner)
{
  YYUSE (yyvaluep);
  YYUSE (yyscanner);
  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  YYUSE (yytype);
  YY_IGNORE_MAYBE_UNINITIALIZED_END
}




/*----------.
| yyparse.  |
`----------*/

int
yyparse (yyscan_t yyscanner)
{
/* The lookahead symbol.  */
int yychar;


/* The semantic value of the lookahead symbol.  */
/* Default value used for initialization, for pacifying older GCCs
   or non-GCC compilers.  */
YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);

    /* Number of syntax errors so far.  */
    int yynerrs;

    int yystate;
    /* Number of tokens to shift before error messages enabled.  */
    int yyerrstatus;

    /* The stacks and their tools:
       'yyss': related to states.
       'yyvs': related to semantic values.

       Refer to the stacks through separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */

    /* The state stack.  */
    yytype_int16 yyssa[YYINITDEPTH];
    yytype_int16 *yyss;
    yytype_int16 *yyssp;

    /* The semantic value stack.  */
    YYSTYPE yyvsa[YYINITDEPTH];
    YYSTYPE *yyvs;
    YYSTYPE *yyvsp;

    YYSIZE_T yystacksize;

  int yyn;
  int yyresult;
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken = 0;
  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;

#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  yyssp = yyss = yyssa;
  yyvsp = yyvs = yyvsa;
  yystacksize = YYINITDEPTH;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY; /* Cause a token to be read.  */
  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;
        yytype_int16 *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 (YY_("memory exhausted"),
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
                    &yystacksize);

        yyss = yyss1;
        yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
        goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;

      {
        yytype_int16 *yyss1 = yyss;
        union yyalloc *yyptr =
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
          goto yyexhaustedlab;
        YYSTACK_RELOCATE (yyss_alloc, yyss);
        YYSTACK_RELOCATE (yyvs_alloc, 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));

  if (yystate == YYFINAL)
    YYACCEPT;

  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.  */

  /* First try to decide what to do without reference to lookahead token.  */
  yyn = yypact[yystate];
  if (yypact_value_is_default (yyn))
    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 (&yylval, yyscanner);
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("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 (yytable_value_is_error (yyn))
        goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the lookahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token.  */
  yychar = YYEMPTY;

  yystate = yyn;
  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  *++yyvsp = yylval;
  YY_IGNORE_MAYBE_UNINITIALIZED_END

  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 183 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2296 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 3:
#line 192 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2307 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 4:
#line 200 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2318 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 5:
#line 208 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2329 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 6:
#line 216 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2340 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 7:
#line 224 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2351 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 8:
#line 232 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2362 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 9:
#line 241 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2373 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 10:
#line 249 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2384 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 11:
#line 258 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2395 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 12:
#line 266 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2406 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 13:
#line 275 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2414 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 14:
#line 280 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2422 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 15:
#line 285 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2430 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 16:
#line 290 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2438 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 17:
#line 295 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2446 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 18:
#line 300 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2454 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 19:
#line 305 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2462 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 20:
#line 310 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
}
#line 2470 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 21:
#line 316 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2481 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 22:
#line 324 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2492 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 23:
#line 333 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpStoreClass((yyvsp[0].str));
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2504 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 24:
#line 343 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2515 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 25:
#line 352 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2526 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 26:
#line 361 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2537 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 27:
#line 369 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpStoreClass((yyvsp[-1].str));
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2549 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 28:
#line 379 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = (yyvsp[0].str);
}
#line 2558 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 29:
#line 385 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = (yyvsp[0].str);
}
#line 2567 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 30:
#line 392 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = (yyvsp[0].str);
}
#line 2576 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 31:
#line 399 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = (yyvsp[0].str);
}
#line 2585 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 32:
#line 405 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  (yyval.str) = (yyvsp[0].str);
}
#line 2594 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 33:
#line 412 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(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());
}
#line 2606 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 34:
#line 421 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpStoreClass((yyvsp[-2].str));
  jpCheckEmpty(3);
  yyGetParser->SetCurrentCombine("");
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2619 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 35:
#line 431 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpStoreClass((yyvsp[-2].str));
  yyGetParser->SetCurrentCombine("");
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2632 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 36:
#line 441 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2643 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 37:
#line 450 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2654 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 38:
#line 458 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2665 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 39:
#line 467 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2676 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 40:
#line 475 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2686 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 41:
#line 482 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2697 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 42:
#line 490 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2707 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 43:
#line 497 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2718 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 44:
#line 505 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2728 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 45:
#line 512 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2739 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 46:
#line 521 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->SetCurrentPackage((yyvsp[-1].str));
  yyGetParser->DeallocateParserType(&((yyvsp[-1].str)));
  yyGetParser->SetCurrentCombine("");
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2753 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 47:
#line 533 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2764 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 48:
#line 541 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2775 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 49:
#line 550 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->AddPackagesImport((yyvsp[-1].str));
  yyGetParser->DeallocateParserType(&((yyvsp[-1].str)));
  yyGetParser->SetCurrentCombine("");
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2789 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 50:
#line 562 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(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("");
}
#line 2804 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 51:
#line 575 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2815 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 52:
#line 583 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2826 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 53:
#line 591 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2837 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 54:
#line 600 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2848 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 55:
#line 608 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2859 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 67:
#line 623 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  yyGetParser->StartClass((yyvsp[0].str));
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(3);
}
#line 2870 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 68:
#line 633 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
  yyGetParser->EndClass();
}
#line 2882 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 69:
#line 642 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
  yyGetParser->EndClass();
}
#line 2894 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 70:
#line 651 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
  yyGetParser->EndClass();
}
#line 2906 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 71:
#line 660 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
  yyGetParser->EndClass();
}
#line 2918 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 72:
#line 669 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2928 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 73:
#line 676 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2939 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 74:
#line 685 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2950 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 75:
#line 694 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2961 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 76:
#line 703 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2972 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 77:
#line 711 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2983 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 78:
#line 720 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 2994 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 79:
#line 728 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3004 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 80:
#line 735 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3015 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 81:
#line 744 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3026 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 82:
#line 752 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3037 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 83:
#line 760 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3048 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 84:
#line 768 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3059 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 85:
#line 777 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3070 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 86:
#line 785 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3081 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 87:
#line 794 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
}
#line 3089 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 88:
#line 800 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3100 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 89:
#line 808 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3111 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 90:
#line 817 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3122 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 91:
#line 825 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3133 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 92:
#line 834 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3145 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 93:
#line 843 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3156 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 94:
#line 852 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3167 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 95:
#line 860 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3178 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 96:
#line 869 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3189 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 97:
#line 877 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3200 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 98:
#line 885 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3211 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 99:
#line 894 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3223 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 100:
#line 903 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3235 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 101:
#line 912 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3246 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 102:
#line 920 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3258 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 103:
#line 930 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3271 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 104:
#line 940 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);

}
#line 3280 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 105:
#line 946 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3291 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 107:
#line 957 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);

}
#line 3300 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 108:
#line 963 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3312 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 109:
#line 973 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3324 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 110:
#line 983 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3336 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 111:
#line 993 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);

}
#line 3345 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 112:
#line 999 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3357 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 113:
#line 1009 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3369 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 114:
#line 1019 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3381 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 115:
#line 1029 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3393 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 116:
#line 1038 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3405 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 117:
#line 1048 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3418 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 118:
#line 1059 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3430 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 119:
#line 1068 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3441 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 120:
#line 1076 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3453 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 121:
#line 1086 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3465 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 122:
#line 1095 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3477 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 123:
#line 1105 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  yyGetParser->StartClass((yyvsp[0].str));
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(3);
}
#line 3488 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 124:
#line 1114 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
  yyGetParser->EndClass();
}
#line 3500 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 125:
#line 1123 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");
}
#line 3510 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 126:
#line 1130 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3522 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 127:
#line 1140 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3534 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 128:
#line 1149 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3546 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 129:
#line 1159 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3558 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 130:
#line 1168 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3569 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 131:
#line 1176 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3580 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 132:
#line 1185 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3592 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 133:
#line 1194 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3604 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 134:
#line 1203 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3616 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 135:
#line 1212 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3627 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 136:
#line 1220 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3639 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 137:
#line 1229 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3650 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 138:
#line 1238 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3662 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 139:
#line 1248 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3674 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 140:
#line 1258 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3686 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 141:
#line 1267 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3698 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 142:
#line 1277 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3710 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 143:
#line 1286 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3721 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 144:
#line 1294 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3733 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 145:
#line 1303 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3745 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 146:
#line 1313 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3757 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 147:
#line 1322 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3769 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 148:
#line 1332 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3780 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 149:
#line 1340 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3791 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 150:
#line 1348 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3803 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 151:
#line 1358 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3815 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 152:
#line 1367 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3827 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 153:
#line 1377 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3839 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 154:
#line 1386 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3851 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 155:
#line 1395 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3863 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 156:
#line 1405 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3875 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 157:
#line 1415 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3887 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 158:
#line 1424 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3899 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 159:
#line 1434 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3911 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 160:
#line 1443 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3923 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 161:
#line 1452 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3935 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 162:
#line 1461 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3947 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 163:
#line 1470 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3959 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 164:
#line 1479 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3971 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 165:
#line 1489 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3983 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 166:
#line 1498 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 3995 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 167:
#line 1507 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4007 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 168:
#line 1516 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4019 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 169:
#line 1525 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4031 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 170:
#line 1535 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4043 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 171:
#line 1544 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4055 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 172:
#line 1553 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4067 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 173:
#line 1562 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4079 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 174:
#line 1571 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4091 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 175:
#line 1580 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4103 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 176:
#line 1589 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4115 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 177:
#line 1598 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4127 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 178:
#line 1607 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4139 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 179:
#line 1616 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4151 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 180:
#line 1625 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4163 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 181:
#line 1634 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4175 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 182:
#line 1644 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4187 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 183:
#line 1654 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[-2].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4200 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 184:
#line 1665 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4212 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 185:
#line 1675 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4224 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 186:
#line 1685 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4236 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 187:
#line 1694 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4248 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 188:
#line 1703 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4260 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 189:
#line 1712 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4272 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 190:
#line 1721 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4284 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 191:
#line 1730 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4296 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 192:
#line 1739 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4308 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 193:
#line 1749 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4320 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 194:
#line 1759 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(7);
  jpCheckEmpty(7);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4332 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 195:
#line 1769 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(7);
  jpCheckEmpty(7);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4344 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 196:
#line 1779 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);

}
#line 4353 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 197:
#line 1786 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);

}
#line 4362 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 198:
#line 1792 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4373 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 199:
#line 1800 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4385 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 200:
#line 1809 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4396 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 201:
#line 1817 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4408 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 202:
#line 1827 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4420 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 203:
#line 1837 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4432 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 204:
#line 1846 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4444 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 205:
#line 1856 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4456 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 206:
#line 1865 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4468 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 207:
#line 1875 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);

}
#line 4477 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 208:
#line 1882 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);

}
#line 4486 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 209:
#line 1889 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(7);

}
#line 4495 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 210:
#line 1897 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(9);

}
#line 4504 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 211:
#line 1903 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4515 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 212:
#line 1911 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4527 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 213:
#line 1920 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4538 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 214:
#line 1928 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4550 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 215:
#line 1939 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(9);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4561 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 216:
#line 1947 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4572 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 217:
#line 1955 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4584 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 218:
#line 1965 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4596 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 219:
#line 1974 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4608 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 220:
#line 1984 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4620 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 221:
#line 1994 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4632 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 222:
#line 2003 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4644 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 223:
#line 2013 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4656 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 224:
#line 2022 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4668 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 225:
#line 2032 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[-1].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4681 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 226:
#line 2042 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4692 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 227:
#line 2050 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);

}
#line 4701 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 228:
#line 2057 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[-1].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4714 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 229:
#line 2068 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4726 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 230:
#line 2078 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4738 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 231:
#line 2088 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4750 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 232:
#line 2098 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4762 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 233:
#line 2107 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4774 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 234:
#line 2116 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4785 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 235:
#line 2124 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4797 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 236:
#line 2134 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4809 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 237:
#line 2143 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4821 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 238:
#line 2153 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);

}
#line 4830 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 239:
#line 2160 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4842 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 240:
#line 2170 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4854 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 241:
#line 2179 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4866 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 242:
#line 2189 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4878 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 243:
#line 2198 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);

}
#line 4887 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 244:
#line 2204 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4899 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 245:
#line 2213 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4911 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 246:
#line 2222 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4923 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 247:
#line 2231 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4935 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 248:
#line 2240 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4947 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 249:
#line 2250 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(6);
  jpCheckEmpty(6);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4959 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 250:
#line 2259 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4970 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 251:
#line 2267 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4982 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 252:
#line 2276 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 4993 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 253:
#line 2284 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5005 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 254:
#line 2294 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5017 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 255:
#line 2303 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5029 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 256:
#line 2313 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5041 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 257:
#line 2322 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5053 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 258:
#line 2331 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5065 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 259:
#line 2340 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5077 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 260:
#line 2349 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(0);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5088 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 261:
#line 2357 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5100 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 262:
#line 2367 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5112 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 263:
#line 2376 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5124 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 264:
#line 2386 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5136 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 265:
#line 2396 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);

}
#line 5145 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 266:
#line 2402 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);

}
#line 5154 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 267:
#line 2409 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5167 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 268:
#line 2419 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5180 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 269:
#line 2429 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5193 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 270:
#line 2439 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5206 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 271:
#line 2450 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5219 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 272:
#line 2460 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(6);
  yyGetParser->DeallocateParserType(&((yyvsp[-5].str)));
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(6);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5233 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 273:
#line 2471 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(6);
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(6);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5246 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 274:
#line 2481 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(6);
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(6);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5259 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 275:
#line 2492 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  yyGetParser->DeallocateParserType(&((yyvsp[-3].str)));
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5272 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 276:
#line 2502 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5284 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 277:
#line 2512 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5296 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 278:
#line 2521 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5308 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 279:
#line 2530 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5320 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 280:
#line 2539 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5332 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 281:
#line 2548 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5344 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 282:
#line 2558 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5356 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 283:
#line 2568 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5368 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 284:
#line 2578 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5380 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 285:
#line 2587 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5392 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 286:
#line 2596 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5404 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 287:
#line 2605 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5416 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 288:
#line 2614 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5428 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 289:
#line 2624 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5440 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 290:
#line 2634 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5452 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 291:
#line 2644 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5464 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 292:
#line 2653 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5476 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 293:
#line 2662 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(2);
  jpCheckEmpty(2);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5488 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 294:
#line 2671 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5500 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 295:
#line 2681 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5512 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 296:
#line 2690 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(4);
  jpCheckEmpty(4);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5524 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 297:
#line 2699 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);

}
#line 5533 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 298:
#line 2706 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5545 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 299:
#line 2715 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5557 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 300:
#line 2724 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5569 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 301:
#line 2733 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5581 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 302:
#line 2743 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5593 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 303:
#line 2752 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5605 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 304:
#line 2761 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5617 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 305:
#line 2771 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5629 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 306:
#line 2780 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5641 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 307:
#line 2789 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5653 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 308:
#line 2798 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5665 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 309:
#line 2808 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5677 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 310:
#line 2817 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5689 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 311:
#line 2826 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5701 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 312:
#line 2835 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5713 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 313:
#line 2844 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5725 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 314:
#line 2853 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5737 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 315:
#line 2863 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5749 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 316:
#line 2872 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5761 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 317:
#line 2881 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5773 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 318:
#line 2891 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5785 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 319:
#line 2900 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5797 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 320:
#line 2910 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5809 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 321:
#line 2919 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5821 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 322:
#line 2929 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5833 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 323:
#line 2938 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5845 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 324:
#line 2948 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5857 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 325:
#line 2957 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5869 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 326:
#line 2967 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5881 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 327:
#line 2976 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5893 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 328:
#line 2986 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5905 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 329:
#line 2995 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(5);
  jpCheckEmpty(5);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5917 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 330:
#line 3005 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5929 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 331:
#line 3014 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5941 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 332:
#line 3024 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5953 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 333:
#line 3034 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  yyGetParser->DeallocateParserType(&((yyvsp[0].str)));
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5966 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 334:
#line 3044 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5978 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 335:
#line 3053 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 5990 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 336:
#line 3063 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6002 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 337:
#line 3072 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6014 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 338:
#line 3081 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6026 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 339:
#line 3090 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6038 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 340:
#line 3099 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6050 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 341:
#line 3108 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6062 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 342:
#line 3117 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6074 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 343:
#line 3126 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6086 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 344:
#line 3135 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6098 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 345:
#line 3144 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6110 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 346:
#line 3153 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6122 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 347:
#line 3162 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6134 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 348:
#line 3172 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6146 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 349:
#line 3182 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6158 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 350:
#line 3192 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(1);
  jpCheckEmpty(1);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6170 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;

  case 351:
#line 3201 "cmDependsJavaParser.y" /* yacc.c:1646  */
    {
  jpElementStart(3);
  jpStoreClass((yyvsp[-2].str));
  jpCheckEmpty(3);
  (yyval.str) = 0;
  yyGetParser->SetCurrentCombine("");

}
#line 6183 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
    break;


#line 6187 "cmDependsJavaParser.cxx" /* yacc.c:1646  */
      default: break;
    }
  /* User semantic actions sometimes alter yychar, and that requires
     that yytoken be updated with the new translation.  We take the
     approach of translating immediately before every use of yytoken.
     One alternative is translating here after every semantic action,
     but that translation would be missed if the semantic action invokes
     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
     incorrect destructor might then be invoked immediately.  In the
     case of YYERROR or YYBACKUP, subsequent parser actions might lead
     to an incorrect destructor call or verbose syntax error message
     before the lookahead is translated.  */
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  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:
  /* Make sure we have latest lookahead translation.  See comments at
     user semantic actions for why this is necessary.  */
  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);

  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (yyscanner, YY_("syntax error"));
#else
# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
                                        yyssp, yytoken)
      {
        char const *yymsgp = YY_("syntax error");
        int yysyntax_error_status;
        yysyntax_error_status = YYSYNTAX_ERROR;
        if (yysyntax_error_status == 0)
          yymsgp = yymsg;
        else if (yysyntax_error_status == 1)
          {
            if (yymsg != yymsgbuf)
              YYSTACK_FREE (yymsg);
            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
            if (!yymsg)
              {
                yymsg = yymsgbuf;
                yymsg_alloc = sizeof yymsgbuf;
                yysyntax_error_status = 2;
              }
            else
              {
                yysyntax_error_status = YYSYNTAX_ERROR;
                yymsgp = yymsg;
              }
          }
        yyerror (yyscanner, yymsgp);
        if (yysyntax_error_status == 2)
          goto yyexhaustedlab;
      }
# undef YYSYNTAX_ERROR
#endif
    }



  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */

      if (yychar <= YYEOF)
        {
          /* Return failure if at end of input.  */
          if (yychar == YYEOF)
            YYABORT;
        }
      else
        {
          yydestruct ("Error: discarding",
                      yytoken, &yylval, yyscanner);
          yychar = YYEMPTY;
        }
    }

#if 0
  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  /* Do not reclaim the symbols of the rule whose action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
#endif
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (!yypact_value_is_default (yyn))
        {
          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;


      yydestruct ("Error: popping",
                  yystos[yystate], yyvsp, yyscanner);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  *++yyvsp = yylval;
  YY_IGNORE_MAYBE_UNINITIALIZED_END


  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#if !defined yyoverflow || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (yyscanner, YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEMPTY)
    {
      /* Make sure we have latest lookahead translation.  See comments at
         user semantic actions for why this is necessary.  */
      yytoken = YYTRANSLATE (yychar);
      yydestruct ("Cleanup: discarding lookahead",
                  yytoken, &yylval, yyscanner);
    }
  /* Do not reclaim the symbols of the rule whose action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
                  yystos[*yyssp], yyvsp, yyscanner);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  return yyresult;
}
#line 3210 "cmDependsJavaParser.y" /* yacc.c:1906  */

/* End of grammar */

/*--------------------------------------------------------------------------*/
void cmDependsJava_yyerror(yyscan_t yyscanner, const char* message)
{
  yyGetParser->Error(message);
}
