You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by hb...@apache.org on 2016/06/17 21:03:21 UTC

[2/4] incubator-quickstep git commit: Added PRIORITY clause in parser.

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/preprocessed/SqlParser_gen.cpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlParser_gen.cpp b/parser/preprocessed/SqlParser_gen.cpp
index 038db14..232b702 100644
--- a/parser/preprocessed/SqlParser_gen.cpp
+++ b/parser/preprocessed/SqlParser_gen.cpp
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 2.7.  */
 
 /* Bison implementation for Yacc-like parsers in C
-
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
-
+   
+      Copyright (C) 1984, 1989-1990, 2000-2012 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/>.  */
 
@@ -26,7 +26,7 @@
    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.  */
 
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.4"
+#define YYBISON_VERSION "2.7"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -63,12 +63,15 @@
 #define yyparse         quickstep_yyparse
 #define yylex           quickstep_yylex
 #define yyerror         quickstep_yyerror
+#define yylval          quickstep_yylval
+#define yychar          quickstep_yychar
 #define yydebug         quickstep_yydebug
 #define yynerrs         quickstep_yynerrs
-
+#define yylloc          quickstep_yylloc
 
 /* Copy the first part of user declarations.  */
-#line 35 "../SqlParser.ypp" /* yacc.c:339  */
+/* Line 371 of yacc.c  */
+#line 35 "../SqlParser.ypp"
 
 
 /* Override the default definition, as we only need <first_line> and <first_column>. */
@@ -96,7 +99,8 @@ typedef struct YYLTYPE {
     }                                                           \
   } while (0)
 
-#line 64 "../SqlParser.ypp" /* yacc.c:339  */
+/* Line 371 of yacc.c  */
+#line 64 "../SqlParser.ypp"
 
 #include <cstdlib>
 #include <string>
@@ -121,6 +125,7 @@ typedef struct YYLTYPE {
 #include "parser/ParsePredicate.hpp"
 #include "parser/ParsePredicateExists.hpp"
 #include "parser/ParsePredicateInTableQuery.hpp"
+#include "parser/ParsePriority.hpp"
 #include "parser/ParserUtil.hpp"
 #include "parser/ParseSample.hpp"
 #include "parser/ParseSelect.hpp"
@@ -150,13 +155,14 @@ typedef struct YYLTYPE {
 // Needed for Bison 2.6 and higher, which do not automatically provide this typedef.
 typedef void* yyscan_t;
 
-#line 154 "SqlParser_gen.cpp" /* yacc.c:339  */
+/* Line 371 of yacc.c  */
+#line 160 "SqlParser_gen.cpp"
 
-# ifndef YY_NULLPTR
+# ifndef YY_NULL
 #  if defined __cplusplus && 201103L <= __cplusplus
-#   define YY_NULLPTR nullptr
+#   define YY_NULL nullptr
 #  else
-#   define YY_NULLPTR 0
+#   define YY_NULL 0
 #  endif
 # endif
 
@@ -172,7 +178,7 @@ typedef void* yyscan_t;
    by #include "SqlParser_gen.hpp".  */
 #ifndef YY_QUICKSTEP_YY_SQLPARSER_GEN_HPP_INCLUDED
 # define YY_QUICKSTEP_YY_SQLPARSER_GEN_HPP_INCLUDED
-/* Debug traces.  */
+/* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
 #endif
@@ -180,142 +186,144 @@ typedef void* yyscan_t;
 extern int quickstep_yydebug;
 #endif
 
-/* Token type.  */
+/* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
-  enum yytokentype
-  {
-    TOKEN_COMMAND = 258,
-    TOKEN_NAME = 259,
-    TOKEN_STRING_SINGLE_QUOTED = 260,
-    TOKEN_STRING_DOUBLE_QUOTED = 261,
-    TOKEN_UNSIGNED_NUMVAL = 262,
-    TOKEN_OR = 263,
-    TOKEN_AND = 264,
-    TOKEN_NOT = 265,
-    TOKEN_EQ = 266,
-    TOKEN_LT = 267,
-    TOKEN_LEQ = 268,
-    TOKEN_GT = 269,
-    TOKEN_GEQ = 270,
-    TOKEN_NEQ = 271,
-    TOKEN_LIKE = 272,
-    TOKEN_REGEXP = 273,
-    TOKEN_BETWEEN = 274,
-    TOKEN_IS = 275,
-    UNARY_PLUS = 276,
-    UNARY_MINUS = 277,
-    TOKEN_ADD = 278,
-    TOKEN_ALL = 279,
-    TOKEN_ALTER = 280,
-    TOKEN_AS = 281,
-    TOKEN_ASC = 282,
-    TOKEN_BIGINT = 283,
-    TOKEN_BIT = 284,
-    TOKEN_BITWEAVING = 285,
-    TOKEN_BLOCKPROPERTIES = 286,
-    TOKEN_BLOCKSAMPLE = 287,
-    TOKEN_BLOOM_FILTER = 288,
-    TOKEN_CSB_TREE = 289,
-    TOKEN_BY = 290,
-    TOKEN_CASE = 291,
-    TOKEN_CHARACTER = 292,
-    TOKEN_CHECK = 293,
-    TOKEN_COLUMN = 294,
-    TOKEN_CONSTRAINT = 295,
-    TOKEN_COPY = 296,
-    TOKEN_CREATE = 297,
-    TOKEN_DATE = 298,
-    TOKEN_DATETIME = 299,
-    TOKEN_DAY = 300,
-    TOKEN_DECIMAL = 301,
-    TOKEN_DEFAULT = 302,
-    TOKEN_DELETE = 303,
-    TOKEN_DELIMITER = 304,
-    TOKEN_DESC = 305,
-    TOKEN_DISTINCT = 306,
-    TOKEN_DOUBLE = 307,
-    TOKEN_DROP = 308,
-    TOKEN_ELSE = 309,
-    TOKEN_END = 310,
-    TOKEN_ESCAPE_STRINGS = 311,
-    TOKEN_EXISTS = 312,
-    TOKEN_EXTRACT = 313,
-    TOKEN_FALSE = 314,
-    TOKEN_FIRST = 315,
-    TOKEN_FLOAT = 316,
-    TOKEN_FOR = 317,
-    TOKEN_FOREIGN = 318,
-    TOKEN_FROM = 319,
-    TOKEN_FULL = 320,
-    TOKEN_GROUP = 321,
-    TOKEN_HASH = 322,
-    TOKEN_HAVING = 323,
-    TOKEN_HOUR = 324,
-    TOKEN_IN = 325,
-    TOKEN_INDEX = 326,
-    TOKEN_INNER = 327,
-    TOKEN_INSERT = 328,
-    TOKEN_INTEGER = 329,
-    TOKEN_INTERVAL = 330,
-    TOKEN_INTO = 331,
-    TOKEN_JOIN = 332,
-    TOKEN_KEY = 333,
-    TOKEN_LAST = 334,
-    TOKEN_LEFT = 335,
-    TOKEN_LIMIT = 336,
-    TOKEN_LONG = 337,
-    TOKEN_MINUTE = 338,
-    TOKEN_MONTH = 339,
-    TOKEN_NULL = 340,
-    TOKEN_NULLS = 341,
-    TOKEN_OFF = 342,
-    TOKEN_ON = 343,
-    TOKEN_ORDER = 344,
-    TOKEN_OUTER = 345,
-    TOKEN_PARTITION = 346,
-    TOKEN_PARTITIONS = 347,
-    TOKEN_PERCENT = 348,
-    TOKEN_PRIMARY = 349,
-    TOKEN_QUIT = 350,
-    TOKEN_RANGE = 351,
-    TOKEN_REAL = 352,
-    TOKEN_REFERENCES = 353,
-    TOKEN_RIGHT = 354,
-    TOKEN_ROW_DELIMITER = 355,
-    TOKEN_SECOND = 356,
-    TOKEN_SELECT = 357,
-    TOKEN_SET = 358,
-    TOKEN_SMA = 359,
-    TOKEN_SMALLINT = 360,
-    TOKEN_SUBSTRING = 361,
-    TOKEN_TABLE = 362,
-    TOKEN_THEN = 363,
-    TOKEN_TIME = 364,
-    TOKEN_TIMESTAMP = 365,
-    TOKEN_TRUE = 366,
-    TOKEN_TUPLESAMPLE = 367,
-    TOKEN_UNIQUE = 368,
-    TOKEN_UPDATE = 369,
-    TOKEN_USING = 370,
-    TOKEN_VALUES = 371,
-    TOKEN_VARCHAR = 372,
-    TOKEN_WHEN = 373,
-    TOKEN_WHERE = 374,
-    TOKEN_WITH = 375,
-    TOKEN_YEAR = 376,
-    TOKEN_YEARMONTH = 377,
-    TOKEN_EOF = 378,
-    TOKEN_LEX_ERROR = 379
-  };
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     TOKEN_COMMAND = 258,
+     TOKEN_NAME = 259,
+     TOKEN_STRING_SINGLE_QUOTED = 260,
+     TOKEN_STRING_DOUBLE_QUOTED = 261,
+     TOKEN_UNSIGNED_NUMVAL = 262,
+     TOKEN_OR = 263,
+     TOKEN_AND = 264,
+     TOKEN_NOT = 265,
+     TOKEN_EQ = 266,
+     TOKEN_NEQ = 267,
+     TOKEN_GEQ = 268,
+     TOKEN_GT = 269,
+     TOKEN_LEQ = 270,
+     TOKEN_LT = 271,
+     TOKEN_REGEXP = 272,
+     TOKEN_LIKE = 273,
+     TOKEN_BETWEEN = 274,
+     TOKEN_IS = 275,
+     UNARY_MINUS = 276,
+     UNARY_PLUS = 277,
+     TOKEN_ADD = 278,
+     TOKEN_ALL = 279,
+     TOKEN_ALTER = 280,
+     TOKEN_AS = 281,
+     TOKEN_ASC = 282,
+     TOKEN_BIGINT = 283,
+     TOKEN_BIT = 284,
+     TOKEN_BITWEAVING = 285,
+     TOKEN_BLOCKPROPERTIES = 286,
+     TOKEN_BLOCKSAMPLE = 287,
+     TOKEN_BLOOM_FILTER = 288,
+     TOKEN_CSB_TREE = 289,
+     TOKEN_BY = 290,
+     TOKEN_CASE = 291,
+     TOKEN_CHARACTER = 292,
+     TOKEN_CHECK = 293,
+     TOKEN_COLUMN = 294,
+     TOKEN_CONSTRAINT = 295,
+     TOKEN_COPY = 296,
+     TOKEN_CREATE = 297,
+     TOKEN_DATE = 298,
+     TOKEN_DATETIME = 299,
+     TOKEN_DAY = 300,
+     TOKEN_DECIMAL = 301,
+     TOKEN_DEFAULT = 302,
+     TOKEN_DELETE = 303,
+     TOKEN_DELIMITER = 304,
+     TOKEN_DESC = 305,
+     TOKEN_DISTINCT = 306,
+     TOKEN_DOUBLE = 307,
+     TOKEN_DROP = 308,
+     TOKEN_ELSE = 309,
+     TOKEN_END = 310,
+     TOKEN_ESCAPE_STRINGS = 311,
+     TOKEN_EXISTS = 312,
+     TOKEN_EXTRACT = 313,
+     TOKEN_FALSE = 314,
+     TOKEN_FIRST = 315,
+     TOKEN_FLOAT = 316,
+     TOKEN_FOR = 317,
+     TOKEN_FOREIGN = 318,
+     TOKEN_FROM = 319,
+     TOKEN_FULL = 320,
+     TOKEN_GROUP = 321,
+     TOKEN_HASH = 322,
+     TOKEN_HAVING = 323,
+     TOKEN_HOUR = 324,
+     TOKEN_IN = 325,
+     TOKEN_INDEX = 326,
+     TOKEN_INNER = 327,
+     TOKEN_INSERT = 328,
+     TOKEN_INTEGER = 329,
+     TOKEN_INTERVAL = 330,
+     TOKEN_INTO = 331,
+     TOKEN_JOIN = 332,
+     TOKEN_KEY = 333,
+     TOKEN_LAST = 334,
+     TOKEN_LEFT = 335,
+     TOKEN_LIMIT = 336,
+     TOKEN_LONG = 337,
+     TOKEN_MINUTE = 338,
+     TOKEN_MONTH = 339,
+     TOKEN_NULL = 340,
+     TOKEN_NULLS = 341,
+     TOKEN_OFF = 342,
+     TOKEN_ON = 343,
+     TOKEN_ORDER = 344,
+     TOKEN_OUTER = 345,
+     TOKEN_PARTITION = 346,
+     TOKEN_PARTITIONS = 347,
+     TOKEN_PERCENT = 348,
+     TOKEN_PRIMARY = 349,
+     TOKEN_PRIORITY = 350,
+     TOKEN_QUIT = 351,
+     TOKEN_RANGE = 352,
+     TOKEN_REAL = 353,
+     TOKEN_REFERENCES = 354,
+     TOKEN_RIGHT = 355,
+     TOKEN_ROW_DELIMITER = 356,
+     TOKEN_SECOND = 357,
+     TOKEN_SELECT = 358,
+     TOKEN_SET = 359,
+     TOKEN_SMA = 360,
+     TOKEN_SMALLINT = 361,
+     TOKEN_SUBSTRING = 362,
+     TOKEN_TABLE = 363,
+     TOKEN_THEN = 364,
+     TOKEN_TIME = 365,
+     TOKEN_TIMESTAMP = 366,
+     TOKEN_TRUE = 367,
+     TOKEN_TUPLESAMPLE = 368,
+     TOKEN_UNIQUE = 369,
+     TOKEN_UPDATE = 370,
+     TOKEN_USING = 371,
+     TOKEN_VALUES = 372,
+     TOKEN_VARCHAR = 373,
+     TOKEN_WHEN = 374,
+     TOKEN_WHERE = 375,
+     TOKEN_WITH = 376,
+     TOKEN_YEAR = 377,
+     TOKEN_YEARMONTH = 378,
+     TOKEN_EOF = 379,
+     TOKEN_LEX_ERROR = 380
+   };
 #endif
 
-/* Value type.  */
-#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 
-union YYSTYPE
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef union YYSTYPE
 {
-#line 118 "../SqlParser.ypp" /* yacc.c:355  */
+/* Line 387 of yacc.c  */
+#line 119 "../SqlParser.ypp"
 
   quickstep::ParseString *string_value_;
 
@@ -407,42 +415,57 @@ union YYSTYPE
   quickstep::PtrVector<quickstep::ParseSubqueryTableReference> *with_list_;
   quickstep::ParseSubqueryTableReference *with_list_element_;
 
-#line 411 "SqlParser_gen.cpp" /* yacc.c:355  */
-};
+  quickstep::ParsePriority *opt_priority_clause_;
 
-typedef union YYSTYPE YYSTYPE;
+
+/* Line 387 of yacc.c  */
+#line 423 "SqlParser_gen.cpp"
+} YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 #endif
 
-/* Location type.  */
 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
-typedef struct YYLTYPE YYLTYPE;
-struct YYLTYPE
+typedef struct YYLTYPE
 {
   int first_line;
   int first_column;
   int last_line;
   int last_column;
-};
+} YYLTYPE;
+# define yyltype YYLTYPE /* obsolescent; will be withdrawn */
 # define YYLTYPE_IS_DECLARED 1
 # define YYLTYPE_IS_TRIVIAL 1
 #endif
 
 
-
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int quickstep_yyparse (void *YYPARSE_PARAM);
+#else
+int quickstep_yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
 int quickstep_yyparse (yyscan_t yyscanner, quickstep::ParseStatement **parsedStatement);
+#else
+int quickstep_yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
 
 #endif /* !YY_QUICKSTEP_YY_SQLPARSER_GEN_HPP_INCLUDED  */
 
 /* Copy the second part of user declarations.  */
-#line 210 "../SqlParser.ypp" /* yacc.c:358  */
+/* Line 390 of yacc.c  */
+#line 213 "../SqlParser.ypp"
 
 /* This header needs YYSTYPE, which is defined by the %union directive above */
 #include "SqlLexer_gen.hpp"
 void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string &feature);
 
-#line 446 "SqlParser_gen.cpp" /* yacc.c:358  */
+/* Line 390 of yacc.c  */
+#line 469 "SqlParser_gen.cpp"
 
 #ifdef short
 # undef short
@@ -456,8 +479,11 @@ typedef unsigned char yytype_uint8;
 
 #ifdef YYTYPE_INT8
 typedef YYTYPE_INT8 yytype_int8;
-#else
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
 #endif
 
 #ifdef YYTYPE_UINT16
@@ -477,7 +503,8 @@ typedef short int yytype_int16;
 #  define YYSIZE_T __SIZE_TYPE__
 # elif defined size_t
 #  define YYSIZE_T size_t
-# elif ! defined YYSIZE_T
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 #  define YYSIZE_T size_t
 # else
@@ -499,33 +526,6 @@ typedef short int yytype_int16;
 # 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))
@@ -533,26 +533,24 @@ typedef short int yytype_int16;
 # 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")
+/* Identity function, used to suppress warnings about constant conditions.  */
+#ifndef lint
+# define YYID(N) (N)
 #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
+#if (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+    int yyi;
 #endif
-#ifndef YY_INITIAL_VALUE
-# define YY_INITIAL_VALUE(Value) /* Nothing. */
+{
+  return yyi;
+}
 #endif
 
-
 #if ! defined yyoverflow || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
@@ -570,7 +568,8 @@ typedef short int yytype_int16;
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
+#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
 #     ifndef EXIT_SUCCESS
@@ -582,8 +581,8 @@ typedef short int yytype_int16;
 # endif
 
 # ifdef YYSTACK_ALLOC
-   /* Pacify GCC's 'empty if-body' warning.  */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+   /* Pacify GCC's `empty if-body' warning.  */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (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
@@ -599,7 +598,7 @@ typedef short int yytype_int16;
 #  endif
 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \
-             && (defined YYFREE || defined free)))
+	     && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #   ifndef EXIT_SUCCESS
 #    define EXIT_SUCCESS 0
@@ -607,13 +606,15 @@ typedef short int yytype_int16;
 #  endif
 #  ifndef YYMALLOC
 #   define YYMALLOC malloc
-#   if ! defined malloc && ! defined EXIT_SUCCESS
+#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
 #  ifndef YYFREE
 #   define YYFREE free
-#   if ! defined free && ! defined EXIT_SUCCESS
+#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
+     || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif
 #  endif
@@ -623,8 +624,8 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 
 #if (! defined yyoverflow \
      && (! defined __cplusplus \
-         || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
-             && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+	 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
+	     && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
@@ -650,16 +651,16 @@ union yyalloc
    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)
+# 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 (YYID (0))
 
 #endif
 
@@ -678,7 +679,7 @@ union yyalloc
           for (yyi = 0; yyi < (Count); yyi++)   \
             (Dst)[yyi] = (Src)[yyi];            \
         }                                       \
-      while (0)
+      while (YYID (0))
 #  endif
 # endif
 #endif /* !YYCOPY_NEEDED */
@@ -686,35 +687,33 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  47
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1215
+#define YYLAST   1345
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  136
+#define YYNTOKENS  137
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  96
+#define YYNNTS  97
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  265
-/* YYNSTATES -- Number of states.  */
-#define YYNSTATES  488
+#define YYNRULES  267
+/* YYNRULES -- Number of states.  */
+#define YYNSTATES  493
 
-/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
-   by yylex, with out-of-bounds checking.  */
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   379
+#define YYMAXUTOK   380
 
-#define YYTRANSLATE(YYX)                                                \
+#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.  */
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     131,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     132,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,   135,     2,     2,
-     132,   133,    23,    21,   134,    22,    27,    24,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,   130,
+       2,     2,     2,     2,     2,     2,     2,   136,     2,     2,
+     133,   134,    23,    21,   135,    22,    27,    24,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,   131,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -746,40 +745,164 @@ static const yytype_uint8 yytranslate[] =
       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   122,   123,   124,   125,   126,   127,   128,   129
+     120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
+     130
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const yytype_uint16 yyprhs[] =
+{
+       0,     0,     3,     6,     9,    12,    15,    17,    19,    21,
+      23,    25,    27,    29,    31,    33,    35,    37,    39,    41,
+      48,    55,    62,    69,    79,    89,    93,    97,    99,   103,
+     105,   107,   109,   111,   113,   115,   117,   119,   121,   123,
+     125,   127,   129,   131,   134,   137,   142,   147,   149,   152,
+     154,   157,   160,   165,   171,   174,   176,   177,   179,   184,
+     190,   201,   206,   210,   212,   213,   215,   216,   220,   221,
+     227,   228,   237,   239,   241,   243,   247,   249,   251,   253,
+     256,   259,   264,   267,   269,   271,   273,   275,   276,   280,
+     291,   299,   304,   310,   316,   317,   322,   325,   328,   333,
+     338,   344,   349,   353,   355,   359,   362,   366,   367,   371,
+     374,   376,   380,   384,   394,   395,   397,   399,   401,   403,
+     405,   409,   413,   416,   418,   421,   425,   426,   430,   434,
+     435,   437,   439,   442,   444,   447,   449,   452,   459,   461,
+     464,   468,   471,   474,   476,   480,   482,   485,   487,   492,
+     494,   498,   499,   503,   504,   507,   508,   512,   513,   516,
+     518,   522,   526,   527,   529,   531,   532,   535,   538,   539,
+     541,   544,   548,   550,   554,   556,   559,   561,   567,   574,
+     579,   583,   587,   591,   594,   598,   604,   609,   616,   620,
+     622,   626,   628,   631,   633,   635,   637,   639,   641,   643,
+     645,   649,   651,   655,   660,   665,   671,   678,   685,   694,
+     700,   705,   707,   710,   715,   717,   720,   725,   726,   729,
+     731,   735,   737,   739,   742,   745,   747,   750,   754,   757,
+     759,   761,   763,   765,   767,   769,   771,   775,   777,   781,
+     783,   787,   789,   791,   793,   795,   797,   799,   801,   804,
+     806,   809,   811,   813,   815,   817,   819,   821,   823,   827,
+     829,   831,   833,   835,   837,   839,   842,   845
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
+static const yytype_int16 yyrhs[] =
+{
+     138,     0,    -1,   139,   131,    -1,   139,   129,    -1,   232,
+     132,    -1,   232,   129,    -1,     1,    -1,   129,    -1,   141,
+      -1,   166,    -1,   142,    -1,   143,    -1,   170,    -1,   144,
+      -1,   165,    -1,   140,    -1,   173,    -1,   169,    -1,   101,
+      -1,    30,   113,   230,    28,    44,   145,    -1,    30,   113,
+     230,    28,    45,   151,    -1,    30,   113,   230,    58,    44,
+     230,    -1,    30,   113,   230,    58,    45,   230,    -1,    47,
+     113,   230,   133,   146,   134,   153,   155,   156,    -1,    47,
+      76,   230,    93,   230,   154,   121,   163,   164,    -1,    58,
+     113,   230,    -1,   230,   147,   150,    -1,   145,    -1,   146,
+     135,   145,    -1,    34,    -1,    48,    -1,    49,    -1,   115,
+      -1,   116,    -1,    51,    -1,   103,    -1,    57,    -1,    66,
+      -1,   111,    -1,    79,    -1,    33,    -1,    87,    -1,    80,
+      -1,    49,    80,    -1,   128,    80,    -1,    42,   133,     7,
+     134,    -1,   123,   133,     7,   134,    -1,    90,    -1,    10,
+      90,    -1,   119,    -1,    99,    83,    -1,    52,   220,    -1,
+      43,   133,   202,   134,    -1,   104,   230,   133,   230,   134,
+      -1,   149,   148,    -1,   148,    -1,    -1,   149,    -1,   119,
+     133,   229,   134,    -1,    99,    83,   133,   229,   134,    -1,
+      68,    83,   133,   229,   134,   104,   230,   133,   229,   134,
+      -1,    43,   133,   202,   134,    -1,   152,   135,   151,    -1,
+     151,    -1,    -1,   152,    -1,    -1,   133,   224,   134,    -1,
+      -1,   126,    36,   133,   158,   134,    -1,    -1,    96,    40,
+     157,   133,   229,   134,    97,     7,    -1,    72,    -1,   102,
+      -1,   159,    -1,   158,   135,   159,    -1,   160,    -1,   161,
+      -1,   162,    -1,   230,   230,    -1,   230,    29,    -1,   230,
+     133,   229,   134,    -1,   230,     7,    -1,    35,    -1,    38,
+      -1,    39,    -1,   110,    -1,    -1,   133,   158,   134,    -1,
+      78,    81,   230,   133,   229,   134,   122,   133,   222,   134,
+      -1,    78,    81,   230,   122,   133,   222,   134,    -1,    78,
+      81,   230,   178,    -1,   175,    78,    81,   230,   178,    -1,
+      46,   230,    69,     5,   167,    -1,    -1,   126,   133,   168,
+     134,    -1,    54,     5,    -1,    61,   231,    -1,   168,   135,
+      54,     5,    -1,   168,   135,    61,   231,    -1,   120,   230,
+     109,   171,   200,    -1,    53,    69,   230,   200,    -1,   171,
+     135,   172,    -1,   172,    -1,   230,    11,   206,    -1,   178,
+     174,    -1,   175,   178,   174,    -1,    -1,   126,   100,     7,
+      -1,   126,   176,    -1,   177,    -1,   176,   135,   177,    -1,
+     190,    31,   184,    -1,   108,   179,   180,   183,   200,   192,
+     193,   194,   195,    -1,    -1,    29,    -1,    56,    -1,    23,
+      -1,   181,    -1,   182,    -1,   181,   135,   182,    -1,   206,
+      31,   230,    -1,   206,   230,    -1,   206,    -1,    69,   191,
+      -1,   133,   178,   134,    -1,    -1,    37,     7,    98,    -1,
+     118,     7,    98,    -1,    -1,    77,    -1,    85,    -1,    85,
+      95,    -1,   105,    -1,   105,    95,    -1,    70,    -1,    70,
+      95,    -1,   187,   186,    82,   188,    93,   202,    -1,   188,
+      -1,   184,   189,    -1,   230,   185,   189,    -1,   230,   185,
+      -1,   210,   189,    -1,   210,    -1,   133,   187,   134,    -1,
+     190,    -1,    31,   190,    -1,   230,    -1,   230,   133,   229,
+     134,    -1,   187,    -1,   191,   135,   187,    -1,    -1,    71,
+      40,   219,    -1,    -1,    73,   202,    -1,    -1,    94,    40,
+     196,    -1,    -1,    86,     7,    -1,   197,    -1,   196,   135,
+     197,    -1,   206,   198,   199,    -1,    -1,    32,    -1,    55,
+      -1,    -1,    91,    65,    -1,    91,    84,    -1,    -1,   201,
+      -1,   125,   202,    -1,   202,     8,   203,    -1,   203,    -1,
+     203,     9,   204,    -1,   204,    -1,    10,   205,    -1,   205,
+      -1,   206,    19,   206,     9,   206,    -1,   206,    10,    19,
+     206,     9,   206,    -1,   223,    20,    10,    90,    -1,   223,
+      20,    90,    -1,   206,   225,   206,    -1,   133,   202,   134,
+      -1,    62,   184,    -1,   206,    75,   184,    -1,   206,    75,
+     133,   219,   134,    -1,   206,    10,    75,   184,    -1,   206,
+      10,    75,   133,   219,   134,    -1,   206,   227,   207,    -1,
+     207,    -1,   207,   228,   208,    -1,   208,    -1,   226,   209,
+      -1,   209,    -1,   223,    -1,   220,    -1,   210,    -1,   211,
+      -1,   212,    -1,   213,    -1,   133,   206,   134,    -1,   184,
+      -1,   230,   133,   134,    -1,   230,   133,    23,   134,    -1,
+     230,   133,   219,   134,    -1,   230,   133,    56,   219,   134,
+      -1,    63,   133,   221,    69,   206,   134,    -1,   112,   133,
+     206,    69,     7,   134,    -1,   112,   133,   206,    69,     7,
+      67,     7,   134,    -1,    41,   206,   214,   218,    60,    -1,
+      41,   216,   218,    60,    -1,   215,    -1,   214,   215,    -1,
+     124,   206,   114,   206,    -1,   217,    -1,   216,   217,    -1,
+     124,   202,   114,   206,    -1,    -1,    59,   206,    -1,   206,
+      -1,   219,   135,   206,    -1,    90,    -1,     7,    -1,    21,
+       7,    -1,    22,     7,    -1,     5,    -1,    80,     5,    -1,
+      80,     5,   221,    -1,   147,     5,    -1,   127,    -1,    89,
+      -1,    50,    -1,    74,    -1,    88,    -1,   107,    -1,   220,
+      -1,   222,   135,   220,    -1,   230,    -1,   230,    27,   230,
+      -1,   223,    -1,   224,   135,   223,    -1,    11,    -1,    12,
+      -1,    16,    -1,    15,    -1,    14,    -1,    13,    -1,    18,
+      -1,    10,    18,    -1,    17,    -1,    10,    17,    -1,    22,
+      -1,    21,    -1,    22,    -1,   136,    -1,    23,    -1,    24,
+      -1,   230,    -1,   229,   135,   230,    -1,     4,    -1,     6,
+      -1,   117,    -1,    93,    -1,    64,    -1,    92,    -1,     3,
+     233,    -1,   233,     3,    -1,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   585,   585,   589,   593,   597,   601,   604,   611,   614,
-     617,   620,   623,   626,   629,   632,   635,   638,   644,   650,
-     657,   663,   670,   679,   684,   693,   698,   703,   707,   713,
-     718,   721,   724,   729,   732,   735,   738,   741,   744,   747,
-     750,   753,   756,   768,   771,   774,   792,   812,   815,   818,
-     823,   828,   834,   840,   849,   853,   859,   862,   867,   872,
-     877,   884,   891,   895,   901,   904,   909,   912,   917,   920,
-     925,   928,   947,   951,   957,   961,   967,   970,   973,   978,
-     981,   988,   993,  1004,  1009,  1013,  1017,  1023,  1026,  1032,
-    1040,  1043,  1046,  1052,  1057,  1060,  1065,  1069,  1073,  1077,
-    1083,  1088,  1093,  1097,  1103,  1109,  1112,  1117,  1122,  1126,
-    1132,  1138,  1144,  1147,  1151,  1157,  1160,  1165,  1169,  1175,
-    1178,  1181,  1186,  1191,  1196,  1199,  1202,  1207,  1210,  1213,
-    1216,  1219,  1222,  1225,  1228,  1233,  1236,  1241,  1245,  1249,
-    1252,  1256,  1259,  1264,  1267,  1272,  1275,  1280,  1284,  1290,
-    1293,  1298,  1301,  1306,  1309,  1314,  1317,  1336,  1340,  1346,
-    1353,  1356,  1359,  1364,  1367,  1370,  1376,  1379,  1384,  1389,
-    1398,  1403,  1412,  1417,  1420,  1425,  1428,  1433,  1439,  1445,
-    1448,  1451,  1454,  1457,  1460,  1466,  1475,  1478,  1483,  1486,
-    1491,  1494,  1499,  1502,  1505,  1508,  1511,  1514,  1517,  1520,
-    1525,  1529,  1533,  1536,  1541,  1546,  1550,  1556,  1559,  1564,
-    1568,  1574,  1579,  1583,  1589,  1594,  1597,  1602,  1606,  1612,
-    1615,  1618,  1621,  1633,  1637,  1656,  1669,  1684,  1687,  1690,
-    1693,  1696,  1699,  1704,  1708,  1714,  1717,  1722,  1726,  1733,
-    1736,  1739,  1742,  1745,  1748,  1751,  1754,  1757,  1760,  1765,
-    1776,  1779,  1784,  1787,  1790,  1796,  1800,  1806,  1809,  1817,
-    1820,  1823,  1826,  1832,  1837,  1842
+       0,   592,   592,   596,   600,   604,   608,   611,   618,   621,
+     624,   627,   630,   633,   636,   639,   642,   645,   651,   657,
+     664,   670,   677,   686,   691,   700,   705,   710,   714,   720,
+     725,   728,   731,   736,   739,   742,   745,   748,   751,   754,
+     757,   760,   763,   775,   778,   781,   799,   819,   822,   825,
+     830,   835,   841,   847,   856,   860,   866,   869,   874,   879,
+     884,   891,   898,   902,   908,   911,   916,   919,   924,   927,
+     932,   935,   954,   958,   964,   968,   974,   977,   980,   985,
+     988,   995,  1000,  1011,  1016,  1020,  1024,  1030,  1033,  1039,
+    1047,  1050,  1053,  1059,  1064,  1067,  1072,  1076,  1080,  1084,
+    1090,  1095,  1100,  1104,  1110,  1116,  1119,  1124,  1127,  1146,
+    1151,  1155,  1161,  1167,  1173,  1176,  1180,  1186,  1189,  1194,
+    1198,  1204,  1207,  1210,  1215,  1220,  1225,  1228,  1231,  1236,
+    1239,  1242,  1245,  1248,  1251,  1254,  1257,  1262,  1265,  1270,
+    1274,  1278,  1281,  1285,  1288,  1293,  1296,  1301,  1304,  1309,
+    1313,  1319,  1322,  1327,  1330,  1335,  1338,  1343,  1346,  1365,
+    1369,  1375,  1382,  1385,  1388,  1393,  1396,  1399,  1405,  1408,
+    1413,  1418,  1427,  1432,  1441,  1446,  1449,  1454,  1457,  1462,
+    1468,  1474,  1477,  1480,  1483,  1486,  1489,  1495,  1504,  1507,
+    1512,  1515,  1520,  1523,  1528,  1531,  1534,  1537,  1540,  1543,
+    1546,  1549,  1554,  1558,  1562,  1565,  1570,  1575,  1579,  1585,
+    1588,  1593,  1597,  1603,  1608,  1612,  1618,  1623,  1626,  1631,
+    1635,  1641,  1644,  1647,  1650,  1662,  1666,  1685,  1698,  1713,
+    1716,  1719,  1722,  1725,  1728,  1733,  1737,  1743,  1746,  1751,
+    1755,  1762,  1765,  1768,  1771,  1774,  1777,  1780,  1783,  1786,
+    1789,  1794,  1805,  1808,  1813,  1816,  1819,  1825,  1829,  1835,
+    1838,  1846,  1849,  1852,  1855,  1861,  1866,  1871
 };
 #endif
 
@@ -791,9 +914,9 @@ static const char *const yytname[] =
   "$end", "error", "$undefined", "TOKEN_COMMAND", "TOKEN_NAME",
   "TOKEN_STRING_SINGLE_QUOTED", "TOKEN_STRING_DOUBLE_QUOTED",
   "TOKEN_UNSIGNED_NUMVAL", "TOKEN_OR", "TOKEN_AND", "TOKEN_NOT",
-  "TOKEN_EQ", "TOKEN_LT", "TOKEN_LEQ", "TOKEN_GT", "TOKEN_GEQ",
-  "TOKEN_NEQ", "TOKEN_LIKE", "TOKEN_REGEXP", "TOKEN_BETWEEN", "TOKEN_IS",
-  "'+'", "'-'", "'*'", "'/'", "UNARY_PLUS", "UNARY_MINUS", "'.'",
+  "TOKEN_EQ", "TOKEN_NEQ", "TOKEN_GEQ", "TOKEN_GT", "TOKEN_LEQ",
+  "TOKEN_LT", "TOKEN_REGEXP", "TOKEN_LIKE", "TOKEN_BETWEEN", "TOKEN_IS",
+  "'+'", "'-'", "'*'", "'/'", "UNARY_MINUS", "UNARY_PLUS", "'.'",
   "TOKEN_ADD", "TOKEN_ALL", "TOKEN_ALTER", "TOKEN_AS", "TOKEN_ASC",
   "TOKEN_BIGINT", "TOKEN_BIT", "TOKEN_BITWEAVING", "TOKEN_BLOCKPROPERTIES",
   "TOKEN_BLOCKSAMPLE", "TOKEN_BLOOM_FILTER", "TOKEN_CSB_TREE", "TOKEN_BY",
@@ -810,28 +933,29 @@ static const char *const yytname[] =
   "TOKEN_KEY", "TOKEN_LAST", "TOKEN_LEFT", "TOKEN_LIMIT", "TOKEN_LONG",
   "TOKEN_MINUTE", "TOKEN_MONTH", "TOKEN_NULL", "TOKEN_NULLS", "TOKEN_OFF",
   "TOKEN_ON", "TOKEN_ORDER", "TOKEN_OUTER", "TOKEN_PARTITION",
-  "TOKEN_PARTITIONS", "TOKEN_PERCENT", "TOKEN_PRIMARY", "TOKEN_QUIT",
-  "TOKEN_RANGE", "TOKEN_REAL", "TOKEN_REFERENCES", "TOKEN_RIGHT",
-  "TOKEN_ROW_DELIMITER", "TOKEN_SECOND", "TOKEN_SELECT", "TOKEN_SET",
-  "TOKEN_SMA", "TOKEN_SMALLINT", "TOKEN_SUBSTRING", "TOKEN_TABLE",
-  "TOKEN_THEN", "TOKEN_TIME", "TOKEN_TIMESTAMP", "TOKEN_TRUE",
-  "TOKEN_TUPLESAMPLE", "TOKEN_UNIQUE", "TOKEN_UPDATE", "TOKEN_USING",
-  "TOKEN_VALUES", "TOKEN_VARCHAR", "TOKEN_WHEN", "TOKEN_WHERE",
-  "TOKEN_WITH", "TOKEN_YEAR", "TOKEN_YEARMONTH", "TOKEN_EOF",
-  "TOKEN_LEX_ERROR", "';'", "'\\n'", "'('", "')'", "','", "'%'", "$accept",
-  "start", "sql_statement", "quit_statement", "alter_table_statement",
-  "create_table_statement", "create_index_statement",
-  "drop_table_statement", "column_def", "column_def_commalist",
-  "data_type", "column_constraint_def", "column_constraint_def_list",
-  "opt_column_constraint_def_list", "table_constraint_def",
-  "table_constraint_def_commalist", "opt_table_constraint_def_commalist",
-  "opt_column_list", "opt_block_properties", "opt_partition_clause",
-  "partition_type", "key_value_list", "key_value", "key_string_value",
-  "key_string_list", "key_integer_value", "index_type",
-  "opt_index_properties", "insert_statement", "copy_from_statement",
-  "opt_copy_from_params", "copy_from_params", "update_statement",
-  "delete_statement", "assignment_list", "assignment_item",
-  "select_statement", "with_clause", "with_list", "with_list_element",
+  "TOKEN_PARTITIONS", "TOKEN_PERCENT", "TOKEN_PRIMARY", "TOKEN_PRIORITY",
+  "TOKEN_QUIT", "TOKEN_RANGE", "TOKEN_REAL", "TOKEN_REFERENCES",
+  "TOKEN_RIGHT", "TOKEN_ROW_DELIMITER", "TOKEN_SECOND", "TOKEN_SELECT",
+  "TOKEN_SET", "TOKEN_SMA", "TOKEN_SMALLINT", "TOKEN_SUBSTRING",
+  "TOKEN_TABLE", "TOKEN_THEN", "TOKEN_TIME", "TOKEN_TIMESTAMP",
+  "TOKEN_TRUE", "TOKEN_TUPLESAMPLE", "TOKEN_UNIQUE", "TOKEN_UPDATE",
+  "TOKEN_USING", "TOKEN_VALUES", "TOKEN_VARCHAR", "TOKEN_WHEN",
+  "TOKEN_WHERE", "TOKEN_WITH", "TOKEN_YEAR", "TOKEN_YEARMONTH",
+  "TOKEN_EOF", "TOKEN_LEX_ERROR", "';'", "'\\n'", "'('", "')'", "','",
+  "'%'", "$accept", "start", "sql_statement", "quit_statement",
+  "alter_table_statement", "create_table_statement",
+  "create_index_statement", "drop_table_statement", "column_def",
+  "column_def_commalist", "data_type", "column_constraint_def",
+  "column_constraint_def_list", "opt_column_constraint_def_list",
+  "table_constraint_def", "table_constraint_def_commalist",
+  "opt_table_constraint_def_commalist", "opt_column_list",
+  "opt_block_properties", "opt_partition_clause", "partition_type",
+  "key_value_list", "key_value", "key_string_value", "key_string_list",
+  "key_integer_value", "index_type", "opt_index_properties",
+  "insert_statement", "copy_from_statement", "opt_copy_from_params",
+  "copy_from_params", "update_statement", "delete_statement",
+  "assignment_list", "assignment_item", "select_statement",
+  "opt_priority_clause", "with_clause", "with_list", "with_list_element",
   "select_query", "opt_all_distinct", "selection",
   "selection_item_commalist", "selection_item", "from_clause",
   "subquery_expression", "opt_sample_clause", "join_type",
@@ -850,13 +974,13 @@ static const char *const yytname[] =
   "literal_value_commalist", "attribute_ref", "attribute_ref_list",
   "comparison_operation", "unary_operation", "add_operation",
   "multiply_operation", "name_commalist", "any_name", "boolean_value",
-  "command", "command_argument_list", YY_NULLPTR
+  "command", "command_argument_list", YY_NULL
 };
 #endif
 
 # ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
@@ -872,545 +996,586 @@ static const yytype_uint16 yytoknum[] =
      350,   351,   352,   353,   354,   355,   356,   357,   358,   359,
      360,   361,   362,   363,   364,   365,   366,   367,   368,   369,
      370,   371,   372,   373,   374,   375,   376,   377,   378,   379,
-      59,    10,    40,    41,    44,    37
+     380,    59,    10,    40,    41,    44,    37
 };
 # endif
 
-#define YYPACT_NINF -230
-
-#define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-230)))
-
-#define YYTABLE_NINF -128
-
-#define yytable_value_is_error(Yytable_value) \
-  0
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const yytype_uint8 yyr1[] =
+{
+       0,   137,   138,   138,   138,   138,   138,   138,   139,   139,
+     139,   139,   139,   139,   139,   139,   139,   139,   140,   141,
+     141,   141,   141,   142,   143,   144,   145,   146,   146,   147,
+     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
+     147,   147,   147,   147,   147,   147,   147,   148,   148,   148,
+     148,   148,   148,   148,   149,   149,   150,   150,   151,   151,
+     151,   151,   152,   152,   153,   153,   154,   154,   155,   155,
+     156,   156,   157,   157,   158,   158,   159,   159,   159,   160,
+     160,   161,   162,   163,   163,   163,   163,   164,   164,   165,
+     165,   165,   165,   166,   167,   167,   168,   168,   168,   168,
+     169,   170,   171,   171,   172,   173,   173,   174,   174,   175,
+     176,   176,   177,   178,   179,   179,   179,   180,   180,   181,
+     181,   182,   182,   182,   183,   184,   185,   185,   185,   186,
+     186,   186,   186,   186,   186,   186,   186,   187,   187,   188,
+     188,   188,   188,   188,   188,   189,   189,   190,   190,   191,
+     191,   192,   192,   193,   193,   194,   194,   195,   195,   196,
+     196,   197,   198,   198,   198,   199,   199,   199,   200,   200,
+     201,   202,   202,   203,   203,   204,   204,   205,   205,   205,
+     205,   205,   205,   205,   205,   205,   205,   205,   206,   206,
+     207,   207,   208,   208,   209,   209,   209,   209,   209,   209,
+     209,   209,   210,   210,   210,   210,   211,   212,   212,   213,
+     213,   214,   214,   215,   216,   216,   217,   218,   218,   219,
+     219,   220,   220,   220,   220,   220,   220,   220,   220,   221,
+     221,   221,   221,   221,   221,   222,   222,   223,   223,   224,
+     224,   225,   225,   225,   225,   225,   225,   225,   225,   225,
+     225,   226,   227,   227,   228,   228,   228,   229,   229,   230,
+     230,   231,   231,   231,   231,   232,   233,   233
+};
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
-static const yytype_int16 yypact[] =
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const yytype_uint8 yyr2[] =
 {
-     162,  -230,  -230,   -75,   181,     7,    17,    23,    19,  -230,
-      41,   181,   181,  -230,   151,   129,  -230,  -230,  -230,  -230,
-    -230,  -230,  -230,  -230,  -230,  -230,   -38,  -230,   -36,   166,
-     181,  -230,  -230,   138,   181,   181,   181,   181,   181,  -230,
-    -230,   644,   111,    93,  -230,   220,   128,  -230,  -230,  -230,
-     202,  -230,  -230,  -230,  -230,    65,   273,   192,   163,   172,
-    -230,    11,  -230,  -230,   295,   300,  -230,  -230,  -230,   699,
-     207,  -230,   233,  -230,  -230,   218,  -230,  -230,   310,  -230,
-    -230,  -230,  -230,   219,  -230,  -230,   229,   245,   786,   322,
-     261,   224,  -230,  -230,   182,    35,  -230,  -230,  -230,  -230,
-    -230,  -230,  -230,  -230,   928,   -12,   181,   181,   235,   181,
-     181,   194,   226,   238,   181,   181,   542,  -230,  -230,   237,
-     181,  -230,  -230,  -230,   542,    53,   -34,  -230,   359,  -230,
-     105,   105,   983,   363,  -230,   241,    40,  -230,    18,   172,
-     983,  -230,  -230,   181,   983,  -230,  -230,  -230,  -230,   983,
-     300,  -230,   181,   331,    82,  -230,   360,  -230,   268,  -230,
-      -7,  -230,   268,   181,   146,   181,   181,   244,  -230,   246,
-    -230,   143,  1088,   841,   235,   455,   369,   372,  -230,  -230,
-     624,   364,  1069,   155,    15,   983,     8,  -230,   983,  -230,
-     323,   252,  -230,  -230,  -230,  -230,  -230,  -230,   317,  -230,
-      60,   256,  -230,  -230,    10,    90,   197,  -230,   257,    90,
-     -10,   319,  -230,  -230,    35,  -230,  -230,   259,   983,  -230,
-     270,   160,   181,  -230,   983,  -230,   181,  -230,  -230,   263,
-     313,   315,   267,  -230,  -230,  -230,   174,   181,   281,   146,
-     181,  -230,    81,  -230,  -230,    20,    34,   542,   542,    61,
-    -230,  -230,  -230,  -230,  -230,  -230,  -230,  -230,   983,   271,
-     983,    47,  -230,   165,   283,   983,    55,  -230,   342,   270,
-    -230,  -230,   983,   398,  -230,   125,   181,  -230,  -230,   311,
-    -230,   312,   318,   326,    18,  -230,   405,   407,    90,   375,
-     344,  -230,   171,  -230,   983,  -230,   270,  -230,   542,   287,
-     288,   181,   417,   157,   175,  -230,   177,   396,    49,  -230,
-     290,   301,  -230,   335,   296,  1069,  -230,   346,   181,  -230,
-    -230,    81,  -230,  -230,   372,  -230,  -230,  -230,   983,   298,
-     203,   786,  -230,   270,   337,  -230,  -230,  1069,   299,   270,
-     983,  -230,    42,   -25,  -230,  -230,  -230,  -230,  -230,    18,
-     197,   334,   336,  -230,   983,   542,   341,  -230,   270,    21,
-     181,   181,   183,  -230,  -230,  -230,  -230,  -230,  -230,  -230,
-     193,  -230,   181,  -230,  -230,  -230,  -230,   307,   146,   404,
-     347,  -230,   542,  -230,  -230,   316,  -230,   234,   786,  -230,
-     983,   185,  -230,  -230,  1069,   270,  -230,   437,  -230,   354,
-    -230,  -230,   320,   369,   409,   365,  -230,   188,   190,  -230,
-     451,   157,  -230,   181,  -230,  -230,   325,   426,  -230,    31,
-     181,   983,   195,   270,  -230,   198,   338,   542,   983,   460,
-    -230,   366,  -230,  -230,  -230,   200,  -230,  -230,  -230,  -230,
-      14,   181,    13,  -230,   339,   270,  -230,  -230,  -230,   369,
-     345,  -230,   231,  -230,   181,  -230,   181,  -230,  -230,   181,
-    -230,   208,  -230,  -230,   343,  -230,   983,  -230,  -230,   377,
-     348,  -230,   210,  -230,   181,  -230,   113,  -230,   181,  -230,
-     213,  -230,  -230,   215,   376,  -230,   471,  -230
+       0,     2,     2,     2,     2,     2,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     6,
+       6,     6,     6,     9,     9,     3,     3,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     2,     2,     4,     4,     1,     2,     1,
+       2,     2,     4,     5,     2,     1,     0,     1,     4,     5,
+      10,     4,     3,     1,     0,     1,     0,     3,     0,     5,
+       0,     8,     1,     1,     1,     3,     1,     1,     1,     2,
+       2,     4,     2,     1,     1,     1,     1,     0,     3,    10,
+       7,     4,     5,     5,     0,     4,     2,     2,     4,     4,
+       5,     4,     3,     1,     3,     2,     3,     0,     3,     2,
+       1,     3,     3,     9,     0,     1,     1,     1,     1,     1,
+       3,     3,     2,     1,     2,     3,     0,     3,     3,     0,
+       1,     1,     2,     1,     2,     1,     2,     6,     1,     2,
+       3,     2,     2,     1,     3,     1,     2,     1,     4,     1,
+       3,     0,     3,     0,     2,     0,     3,     0,     2,     1,
+       3,     3,     0,     1,     1,     0,     2,     2,     0,     1,
+       2,     3,     1,     3,     1,     2,     1,     5,     6,     4,
+       3,     3,     3,     2,     3,     5,     4,     6,     3,     1,
+       3,     1,     2,     1,     1,     1,     1,     1,     1,     1,
+       3,     1,     3,     4,     4,     5,     6,     6,     8,     5,
+       4,     1,     2,     4,     1,     2,     4,     0,     2,     1,
+       3,     1,     1,     2,     2,     1,     2,     3,     2,     1,
+       1,     1,     1,     1,     1,     1,     3,     1,     3,     1,
+       3,     1,     1,     1,     1,     1,     1,     1,     2,     1,
+       2,     1,     1,     1,     1,     1,     1,     1,     3,     1,
+       1,     1,     1,     1,     1,     2,     2,     0
 };
 
-  /* 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.  */
+/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,     6,   265,     0,     0,     0,     0,     0,     0,    18,
-     112,     0,     0,     7,     0,     0,    15,     8,    10,    11,
-      13,    14,     9,    17,    12,    16,     0,   105,     0,   263,
-       0,   257,   258,     0,     0,     0,     0,     0,     0,   113,
-     114,     0,     0,   107,   108,     0,   145,     1,     3,     2,
-       0,   106,     5,     4,   264,     0,     0,     0,     0,   166,
-      25,     0,   223,   220,     0,   249,   115,    40,    29,     0,
-       0,    30,    31,    34,    36,     0,    37,    39,     0,    41,
-     219,    35,    38,     0,    32,    33,     0,     0,     0,     0,
-       0,   116,   117,   199,   121,   187,   189,   191,   194,   195,
-     196,   197,   193,   192,     0,   235,     0,     0,     0,     0,
-       0,     0,     0,    94,     0,     0,     0,   101,   167,     0,
-       0,    91,   221,   222,     0,     0,   215,   212,     0,    43,
-       0,   224,     0,     0,    44,     0,     0,   226,     0,   166,
-       0,   250,   251,     0,     0,   120,   253,   254,   252,     0,
-       0,   190,     0,     0,   166,   103,     0,   109,     0,   110,
-       0,   255,     0,     0,     0,     0,     0,     0,    93,    66,
-      27,     0,     0,     0,     0,     0,   168,   170,   172,   174,
-       0,   192,     0,     0,     0,     0,   215,   209,     0,   213,
-       0,     0,   229,   230,   231,   228,   232,   227,     0,   225,
-       0,     0,   123,   198,     0,     0,   147,   136,   122,   141,
-     124,   149,   118,   119,   186,   188,   236,     0,     0,   200,
-     217,     0,     0,   100,     0,   146,     0,    92,    19,     0,
-       0,     0,     0,    20,    21,    22,     0,     0,     0,    64,
-       0,    42,    56,   173,   181,     0,     0,     0,     0,     0,
-     239,   241,   242,   243,   244,   240,   245,   247,     0,     0,
-       0,     0,   233,     0,     0,     0,     0,   210,     0,   216,
-     208,    45,     0,     0,    46,   127,     0,   137,   143,   133,
-     128,   129,   131,     0,     0,   140,     0,     0,   139,     0,
-     151,   201,     0,   202,     0,   102,   104,   256,     0,     0,
-       0,     0,     0,     0,     0,   237,     0,   235,     0,    63,
-      65,    68,    28,     0,     0,     0,    47,     0,     0,    49,
-      55,    57,    26,   180,   169,   171,   246,   248,     0,     0,
-       0,     0,   182,   179,     0,   178,    90,     0,     0,   214,
-       0,   207,     0,     0,   142,   144,   134,   130,   132,     0,
-     148,     0,     0,   138,     0,     0,   153,   203,   218,     0,
-       0,     0,     0,    96,   261,   262,   260,   259,    97,    95,
-       0,    67,     0,    83,    84,    85,    86,    87,     0,     0,
-      70,    48,     0,    51,    50,     0,    54,     0,     0,   184,
-       0,     0,   177,   234,     0,   211,   204,     0,   205,     0,
-     125,   126,   150,   152,     0,   155,    61,     0,     0,    58,
-       0,     0,   238,     0,    24,    62,     0,     0,    23,     0,
-       0,     0,     0,   175,   183,     0,     0,     0,     0,     0,
-     111,     0,    59,    98,    99,     0,    74,    76,    77,    78,
-       0,     0,     0,    52,     0,   176,   185,    89,   206,   135,
-     154,   157,   160,   156,     0,    88,     0,    82,    80,     0,
-      79,     0,    72,    73,     0,    53,     0,   161,   162,   163,
-       0,    75,     0,    69,     0,   158,     0,   159,     0,    81,
-       0,   164,   165,     0,     0,    60,     0,    71
+       0,     6,   267,     0,     0,     0,     0,     0,     0,    18,
+     114,     0,     0,     7,     0,     0,    15,     8,    10,    11,
+      13,    14,     9,    17,    12,    16,     0,   107,     0,   265,
+       0,   259,   260,     0,     0,     0,     0,     0,     0,   115,
+     116,     0,     0,   109,   110,     0,   147,     1,     3,     2,
+       0,   107,     0,   105,     5,     4,   266,     0,     0,     0,
+       0,   168,    25,     0,   225,   222,     0,   251,   117,    40,
+      29,     0,     0,    30,    31,    34,    36,     0,    37,    39,
+       0,    41,   221,    35,    38,     0,    32,    33,     0,     0,
+       0,     0,     0,   118,   119,   201,   123,   189,   191,   193,
+     196,   197,   198,   199,   195,   194,     0,   237,     0,     0,
+       0,     0,     0,   106,     0,     0,     0,    94,     0,     0,
+       0,   101,   169,     0,     0,    91,   223,   224,     0,     0,
+     217,   214,     0,    43,     0,   226,     0,     0,    44,     0,
+       0,   228,     0,   168,     0,   252,   253,     0,     0,   122,
+     255,   256,   254,     0,     0,   192,     0,     0,   168,   103,
+       0,   111,     0,   112,     0,   257,     0,   108,     0,     0,
+       0,     0,     0,    93,    66,    27,     0,     0,     0,     0,
+       0,   170,   172,   174,   176,     0,   194,     0,     0,     0,
+       0,   217,   211,     0,   215,     0,     0,   231,   232,   233,
+     230,   234,   229,     0,   227,     0,     0,   125,   200,     0,
+       0,   149,   138,   124,   143,   126,   151,   120,   121,   188,
+     190,   238,     0,     0,   202,   219,     0,     0,   100,     0,
+     148,     0,    92,    19,     0,     0,     0,     0,    20,    21,
+      22,     0,     0,     0,    64,     0,    42,    56,   175,   183,
+       0,     0,     0,     0,     0,   241,   242,   246,   245,   244,
+     243,   249,   247,     0,     0,     0,     0,   235,     0,     0,
+       0,     0,   212,     0,   218,   210,    45,     0,     0,    46,
+     129,     0,   139,   145,   135,   130,   131,   133,     0,     0,
+     142,     0,     0,   141,     0,   153,   203,     0,   204,     0,
+     102,   104,   258,     0,     0,     0,     0,     0,     0,     0,
+     239,     0,   237,     0,    63,    65,    68,    28,     0,     0,
+       0,    47,     0,     0,    49,    55,    57,    26,   182,   171,
+     173,   250,   248,     0,     0,     0,     0,   184,   181,     0,
+     180,    90,     0,     0,   216,     0,   209,     0,     0,   144,
+     146,   136,   132,   134,     0,   150,     0,     0,   140,     0,
+       0,   155,   205,   220,     0,     0,     0,     0,    96,   263,
+     264,   262,   261,    97,    95,     0,    67,     0,    83,    84,
+      85,    86,    87,     0,     0,    70,    48,     0,    51,    50,
+       0,    54,     0,     0,   186,     0,     0,   179,   236,     0,
+     213,   206,     0,   207,     0,   127,   128,   152,   154,     0,
+     157,    61,     0,     0,    58,     0,     0,   240,     0,    24,
+      62,     0,     0,    23,     0,     0,     0,     0,   177,   185,
+       0,     0,     0,     0,     0,   113,     0,    59,    98,    99,
+       0,    74,    76,    77,    78,     0,     0,     0,    52,     0,
+     178,   187,    89,   208,   137,   156,   159,   162,   158,     0,
+      88,     0,    82,    80,     0,    79,     0,    72,    73,     0,
+      53,     0,   163,   164,   165,     0,    75,     0,    69,     0,
+     160,     0,   161,     0,    81,     0,   166,   167,     0,     0,
+      60,     0,    71
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int16 yypgoto[] =
+/* YYDEFGOTO[NTERM-NUM].  */
+static const yytype_int16 yydefgoto[] =
 {
-    -230,  -230,  -230,  -230,  -230,  -230,  -230,  -230,  -127,  -230,
-     309,   161,  -230,  -230,  -229,  -230,  -230,  -230,  -230,  -230,
-    -230,    43,    27,  -230,  -230,  -230,  -230,  -230,  -230,  -230,
-    -230,  -230,  -230,  -230,  -230,   264,  -230,  -230,  -230,   378,
-      12,  -230,  -230,  -230,   350,  -230,  -103,  -230,  -230,  -139,
-     142,  -190,    -8,  -230,  -230,  -230,  -230,  -230,  -230,    26,
-    -230,  -230,    44,  -230,  -121,   240,   247,   321,   -28,   349,
-     351,   394,  -132,  -230,  -230,  -230,  -230,   324,  -230,   373,
-     327,  -216,  -171,   370,   108,  -107,  -230,  -230,  -230,  -230,
-    -230,  -119,    -4,    94,  -230,  -230
+      -1,    14,    15,    16,    17,    18,    19,    20,   175,   176,
+      91,   325,   326,   327,   238,   315,   316,   243,   385,   423,
+     469,   440,   441,   442,   443,   444,   382,   419,    21,    22,
+     173,   309,    23,    24,   158,   159,    25,    53,    26,    43,
+      44,   139,    41,    92,    93,    94,   143,    95,   293,   288,
+     211,   212,   282,   283,   213,   295,   361,   410,   435,   455,
+     456,   474,   482,   121,   122,   181,   182,   183,   184,   185,
+      97,    98,    99,   100,   101,   102,   103,   191,   192,   130,
+     131,   195,   226,   104,   203,   268,   105,   311,   265,   106,
+     148,   153,   164,   107,   373,    28,    29
 };
 
-  /* YYDEFGOTO[NTERM-NUM].  */
-static const yytype_int16 yydefgoto[] =
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -240
+static const yytype_int16 yypact[] =
+{
+     228,  -240,  -240,   -63,   131,   -28,     4,   -33,    30,  -240,
+      33,   131,   131,  -240,    97,    88,  -240,  -240,  -240,  -240,
+    -240,  -240,  -240,  -240,  -240,  -240,   -22,    37,    82,   150,
+     131,  -240,  -240,   102,   131,   131,   131,   131,   131,  -240,
+    -240,   650,    42,    40,  -240,   172,    74,  -240,  -240,  -240,
+     137,    37,   121,  -240,  -240,  -240,  -240,    29,   221,   139,
+     101,   115,  -240,    52,  -240,  -240,   237,   243,  -240,  -240,
+    -240,   738,   126,  -240,   185,  -240,  -240,   176,  -240,  -240,
+     273,  -240,  -240,  -240,  -240,   187,  -240,  -240,   195,   202,
+     826,   320,   261,   196,  -240,  -240,   191,    -8,  -240,  -240,
+    -240,  -240,  -240,  -240,  -240,  -240,  1002,    -6,   131,   131,
+     199,   131,   131,  -240,   326,   203,   210,   208,   131,   131,
+     547,  -240,  -240,   204,   131,  -240,  -240,  -240,   547,    38,
+     -30,  -240,   328,  -240,   -11,   -11,  1090,   331,  -240,   205,
+      22,  -240,    36,   115,  1090,  -240,  -240,   131,  1090,  -240,
+    -240,  -240,  -240,  1090,   243,  -240,   131,   371,   -51,  -240,
+     329,  -240,   233,  -240,   122,  -240,   233,  -240,   131,    11,
+     131,   131,   209,  -240,   212,  -240,   133,  1192,   914,   199,
+     459,   335,   337,  -240,  -240,  1270,   327,  1141,   135,    20,
+    1090,   -18,  -240,  1090,  -240,   289,   217,  -240,  -240,  -240,
+    -240,  -240,  -240,   283,  -240,    50,   219,  -240,  -240,    21,
+      62,    95,  -240,   220,    62,    15,   285,  -240,  -240,    -8,
+    -240,  -240,   231,  1090,  -240,   251,   145,   131,  -240,  1090,
+    -240,   131,  -240,  -240,   234,   281,   286,   235,  -240,  -240,
+    -240,    41,   131,   245,    11,   131,  -240,    80,  -240,  -240,
+       2,   630,   547,   547,    64,  -240,  -240,  -240,  -240,  -240,
+    -240,  -240,  -240,  1090,   238,  1090,     8,  -240,   149,   248,
+    1090,    43,  -240,   312,   251,  -240,  -240,  1090,   367,  -240,
+     119,   131,  -240,  -240,   284,  -240,   287,   288,   298,    36,
+    -240,   374,   377,    62,   345,   313,  -240,   153,  -240,  1090,
+    -240,   251,  -240,   547,   254,   255,   131,   384,   144,   156,
+    -240,   158,   363,   152,  -240,   260,   270,  -240,   307,   266,
+    1141,  -240,   317,   131,  -240,  -240,    80,  -240,  -240,   337,
+    -240,  -240,  -240,  1090,   268,    91,   826,  -240,   251,   316,
+    -240,  -240,  1141,   269,   251,  1090,  -240,    25,    -9,  -240,
+    -240,  -240,  -240,  -240,    36,    95,   305,   309,  -240,  1090,
+     547,   314,  -240,   251,     6,   131,   131,   160,  -240,  -240,
+    -240,  -240,  -240,  -240,  -240,   148,  -240,   131,  -240,  -240,
+    -240,  -240,   276,    11,   375,   319,  -240,   547,  -240,  -240,
+     277,  -240,   230,   826,  -240,  1090,   162,  -240,  -240,  1141,
+     251,  -240,   409,  -240,   324,  -240,  -240,   290,   335,   378,
+     338,  -240,   165,   169,  -240,   418,   144,  -240,   131,  -240,
+    -240,   293,   389,  -240,    27,   131,  1090,   173,   251,  -240,
+     177,   296,   547,  1090,   424,  -240,   334,  -240,  -240,  -240,
+     179,  -240,  -240,  -240,  -240,    16,   131,    19,  -240,   299,
+     251,  -240,  -240,  -240,   335,   297,  -240,   161,  -240,   131,
+    -240,   131,  -240,  -240,   131,  -240,   181,  -240,  -240,   302,
+    -240,  1090,  -240,  -240,   348,   310,  -240,   183,  -240,   131,
+    -240,   136,  -240,   131,  -240,   188,  -240,  -240,   192,   343,
+    -240,   437,  -240
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yytype_int16 yypgoto[] =
 {
-      -1,    14,    15,    16,    17,    18,    19,    20,   170,   171,
-      89,   320,   321,   322,   233,   310,   311,   238,   380,   418,
-     464,   435,   436,   437,   438,   439,   377,   414,    21,    22,
-     168,   304,    23,    24,   154,   155,    25,    26,    43,    44,
-     135,    41,    90,    91,    92,   139,    93,   288,   283,   206,
-     207,   277,   278,   208,   290,   356,   405,   430,   450,   451,
-     469,   477,   117,   118,   176,   177,   178,   179,   180,    95,
-      96,    97,    98,    99,   100,   101,   186,   187,   126,   127,
-     190,   221,   102,   198,   263,   103,   306,   260,   104,   144,
-     149,   160,   105,   368,    28,    29
+    -240,  -240,  -240,  -240,  -240,  -240,  -240,  -240,  -119,  -240,
+     271,   120,  -240,  -240,  -239,  -240,  -240,  -240,  -240,  -240,
+    -240,    -1,   -14,  -240,  -240,  -240,  -240,  -240,  -240,  -240,
+    -240,  -240,  -240,  -240,  -240,   222,  -240,   401,  -240,  -240,
+     344,    12,  -240,  -240,  -240,   315,  -240,   -91,  -240,  -240,
+    -172,   100,  -190,   -10,  -240,  -240,  -240,  -240,  -240,  -240,
+     -15,  -240,  -240,   -82,  -240,  -127,   215,   218,   292,   -35,
+     325,   323,   356,  -139,  -240,  -240,  -240,  -240,   294,  -240,
+     342,   300,  -212,  -174,   333,    78,  -111,  -240,  -240,  -240,
+    -240,  -240,  -120,    -4,    68,  -240,  -240
 };
 
-  /* 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.  */
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -130
 static const yytype_int16 yytable[] =
 {
-      33,   183,   292,   184,    45,   159,   209,    42,    46,   181,
-     309,   262,    27,    94,    31,   152,    32,   181,    31,   285,
-      32,   457,    31,   247,    32,   188,    55,   286,   247,   247,
-      57,    58,    59,    60,    61,   205,   228,    30,    51,   247,
-      50,   125,   397,   458,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,   245,   141,   142,   334,   146,   147,
-     136,   141,   142,   141,   142,   275,   181,   188,   181,    10,
-      39,   244,   209,   121,   141,   142,   141,   142,   326,   327,
-     328,   141,   142,    34,   373,   462,    36,   374,   375,   124,
-     145,   313,    52,   111,    31,    53,    32,    40,   353,    45,
-      38,   205,   156,    46,   200,   161,   162,   287,   398,   259,
-     169,   172,    94,   312,   463,   391,   161,    10,    10,    35,
-     153,   276,   153,   112,   314,   220,   225,   226,   265,   273,
-     305,   185,   119,   315,   210,    37,   329,   335,   402,   213,
-     181,   181,   204,   120,   383,   350,   459,   246,   216,   415,
-     204,    47,   209,   323,   406,   192,   332,   266,   376,   172,
-     269,   234,   235,     1,   443,     2,   393,   203,   340,    54,
-     148,   316,   422,   203,   227,   396,   185,   359,   481,   193,
-     317,   205,   362,   211,   318,    31,    31,    32,    32,   229,
-     220,   181,     3,   194,   195,   279,   296,   482,   223,   319,
-     210,    46,   280,   141,   142,    46,   116,    56,     4,     5,
-     281,   196,   390,   143,   230,     6,   222,   209,   156,   106,
-       7,   364,   297,   262,   141,   142,   389,   107,   302,   282,
-     330,   197,   333,   307,   403,   303,   172,   339,   163,   164,
-       8,   407,   408,   421,   342,   231,   205,   410,   181,   365,
-     366,   108,   141,   142,   411,   141,   142,    48,   344,    49,
-     109,   419,     9,   467,   232,   412,   358,   279,   345,    10,
-     165,   166,    46,   367,   280,   181,   239,   240,   113,  -127,
-     210,    11,   281,   110,    46,   114,   468,    12,   264,   226,
-      13,   141,   142,   293,   294,   115,   116,   161,   336,   337,
-     387,   282,   122,   220,   357,   294,   449,   123,   369,   370,
-     371,   372,   395,   129,   385,   131,   409,   226,   424,   294,
-     181,   431,   226,   432,   226,   134,   220,   137,   446,   294,
-     138,   447,   337,   455,   456,    31,    62,    32,    63,   128,
-     472,   473,   456,   479,   226,   210,   484,   226,   485,   226,
-     130,   132,    64,    65,   217,   480,   161,   161,   140,   483,
-     220,   133,   423,   167,    67,    68,   191,   158,   307,   182,
-     201,   224,    69,    70,   202,    10,   236,   247,   237,    71,
-      72,   248,    73,   270,   261,   271,   272,   218,    74,   274,
-     289,   284,   291,   445,    75,   298,   299,    76,   300,   301,
-     452,   308,   341,   331,   338,   343,   346,   347,   349,   440,
-      77,    78,   351,   348,   352,   354,   444,   355,    79,   360,
-     361,    80,   363,   152,   378,   381,   379,   392,   382,   384,
-     388,   394,   400,    81,   401,   404,   460,   440,   452,   413,
-     416,    82,    83,   417,   426,    84,    85,   427,   420,   428,
-     470,   429,   440,    86,   294,   161,   433,   441,    87,    31,
-      62,    32,    63,    88,   219,   173,   442,   453,   476,   454,
-     161,   448,   465,   486,   161,   474,    64,    65,   487,   466,
-     478,   242,   386,   471,   461,   157,   295,   324,    67,    68,
-     212,   399,   475,   214,   243,   325,    69,    70,   151,   189,
-     215,   199,   425,    71,    72,   434,    73,     0,     0,     0,
-     267,     0,    74,   268,     0,     0,     0,   174,    75,     0,
-       0,    76,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    77,    78,     0,     0,     0,     0,
-       0,     0,    79,     0,     0,    80,    31,    62,    32,    63,
-       0,     0,   173,     0,     0,     0,     0,    81,     0,     0,
-       0,     0,    10,    64,    65,    82,    83,     0,     0,    84,
-      85,     0,     0,     0,     0,    67,    68,    86,     0,     0,
-       0,     0,    87,    69,    70,     0,     0,   175,     0,     0,
-      71,    72,     0,    73,     0,     0,     0,     0,     0,    74,
-       0,     0,     0,     0,   174,    75,     0,     0,    76,     0,
+      33,   189,    45,   214,   188,   314,    96,    42,    46,   186,
+     252,   297,    27,   267,   252,   150,   151,   186,   339,   163,
+      31,   156,    32,   462,   290,    31,    57,    32,   252,   193,
+      59,    60,    61,    62,    63,   252,   129,   280,    51,   197,
+      31,   193,    32,   145,   146,   463,   145,   146,    34,   233,
+      30,   210,   291,   250,   234,   140,    50,   115,   402,   145,
+     146,   216,    39,   198,   145,   146,    31,   186,    32,   186,
+     214,   145,   146,    36,   120,   125,   228,   199,   200,   235,
+      37,   331,   332,   333,   227,    35,    10,   116,   249,    40,
+     318,   467,   149,   281,   128,   307,   201,    47,   340,    45,
+     395,   205,   308,   358,   160,    46,   190,   165,   166,    96,
+     236,    38,   145,   146,   174,   177,   202,   355,   210,   278,
+     165,   468,   225,   319,   396,   403,   317,   157,   152,    10,
+     237,   310,   320,   292,   270,    31,   328,    32,   215,   334,
+     411,   186,   186,   218,   420,   251,   388,   407,   157,   464,
+     214,   108,   221,    56,   209,   271,   208,   345,   274,   401,
+      10,   448,   190,    52,   177,   284,   239,   240,   398,   209,
+     321,    58,   285,   337,   123,   109,   364,  -129,   232,   322,
+     286,   427,   145,   146,   323,   124,   367,   378,   225,   284,
+     379,   380,   186,   472,   301,    31,   285,    32,   210,   324,
+     287,   486,   415,   110,   286,   215,    46,   111,   369,   416,
+      46,    54,   145,   146,    55,   214,   473,    48,   112,    49,
+     487,   114,   147,   160,   287,   267,   117,   302,   335,     1,
+     338,     2,   118,   408,   119,   344,   370,   371,   312,   426,
+     120,   177,   347,   394,   126,   412,   413,   168,   169,   186,
+     127,   145,   146,   349,   170,   171,   230,   231,     3,   132,
+     424,   372,   381,   210,   363,   133,   417,   244,   245,   269,
+     231,   350,   145,   146,     4,     5,   186,    46,   135,   298,
+     299,     6,   138,   341,   342,   215,     7,   362,   299,    46,
+     374,   375,   376,   377,   414,   231,   429,   299,   392,   436,
+     231,   225,   165,   437,   231,   454,     8,   451,   299,   134,
+     400,   452,   342,   460,   461,   478,   461,   484,   231,   390,
+     136,   186,   489,   231,   225,   141,   490,   231,   137,     9,
+     142,   144,   162,   167,   172,   196,    10,   187,   206,   207,
+     229,    10,   241,   252,   477,   242,   253,   266,    11,   275,
+     215,   276,   277,   279,    12,   289,   294,    13,   225,   485,
+     428,   165,   165,   488,   304,   296,   313,   303,   306,   305,
+     343,   336,   346,   312,   348,    31,    64,    32,    65,   351,
+     354,   356,   352,   353,   357,   359,   360,   365,   366,   368,
+     156,   450,    66,    67,   222,   383,   384,   386,   457,   387,
+     389,   393,   399,   405,    69,    70,   397,   406,   409,   418,
+     425,   421,    71,    72,   445,   422,   431,   432,   433,    73,
+      74,   449,    75,   438,   434,   299,   446,   223,    76,   447,
+     453,   458,   471,   470,    77,   479,   457,    78,   459,   481,
+     491,   465,   445,   483,   492,   466,   391,   476,   247,   300,
+      79,    80,   113,   161,   404,   475,   480,   445,    81,   217,
+     165,    82,   155,    31,    64,    32,    65,   329,   204,   178,
+     248,   330,   194,   219,    83,   165,   220,   430,     0,   165,
+      66,    67,    84,    85,   439,   272,    86,    87,     0,     0,
+       0,   273,    69,    70,    88,     0,     0,     0,     0,    89,
+      71,    72,     0,     0,    90,   224,     0,    73,    74,     0,
+      75,     0,     0,     0,     0,     0,    76,     0,     0,     0,
+       0,   179,    77,     0,     0,    78,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    79,    80,
+       0,     0,     0,     0,     0,     0,    81,     0,     0,    82,
+       0,    31,    64,    32,    65,     0,     0,   178,     0,     0,
+       0,     0,    83,     0,     0,     0,     0,    10,    66,    67,
+      84,    85,     0,     0,    86,    87,     0,     0,     0,     0,
+      69,    70,    88,     0,     0,     0,     0,    89,    71,    72,
+       0,     0,   180,     0,     0,    73,    74,     0,    75,     0,
+       0,     0,     0,     0,    76,     0,     0,     0,     0,   179,
+      77,     0,     0,    78,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    79,    80,     0,     0,
+       0,     0,     0,     0,    81,     0,     0,    82,     0,     0,
+     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
+      83,   145,   146,     0,    31,    64,    32,    65,    84,    85,
+       0,     0,    86,    87,     0,     0,     0,     0,     0,     0,
+      88,    66,    67,    68,     0,    89,     0,     0,     0,     0,
+     180,     0,     0,    69,    70,     0,     0,     0,     0,     0,
+       0,    71,    72,     0,     0,     0,     0,     0,    73,    74,
+       0,    75,     0,     0,     0,   264,     0,    76,     0,     0,
+       0,     0,     0,    77,     0,     0,    78,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    79,
+      80,     0,     0,     0,     0,     0,     0,    81,     0,     0,
+      82,     0,    31,    64,    32,    65,     0,     0,     0,     0,
+       0,     0,     0,    83,     0,     0,     0,     0,     0,    66,
+      67,    84,    85,     0,   208,    86,    87,     0,     0,     0,
+       0,    69,    70,    88,     0,     0,     0,     0,    89,    71,
+      72,     0,     0,    90,     0,     0,    73,    74,     0,    75,
+       0,     0,     0,     0,     0,    76,     0,     0,     0,     0,
+       0,    77,     0,     0,    78,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    79,    80,     0,
+       0,     0,     0,     0,     0,    81,     0,     0,    82,     0,
+      31,    64,    32,    65,     0,     0,     0,     0,     0,     0,
+       0,    83,     0,     0,     0,     0,     0,    66,    67,    84,
+      85,     0,     0,    86,    87,     0,     0,     0,     0,    69,
+      70,    88,   128,     0,     0,     0,    89,    71,    72,     0,
+       0,    90,     0,     0,    73,    74,     0,    75,     0,     0,
+       0,     0,     0,    76,     0,     0,     0,     0,     0,    77,
+       0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    79,    80,     0,     0,     0,
+       0,     0,     0,    81,     0,     0,    82,     0,    31,    64,
+      32,    65,     0,     0,     0,     0,     0,     0,     0,    83,
+       0,     0,     0,     0,    10,    66,    67,    84,    85,     0,
+       0,    86,    87,     0,     0,     0,     0,    69,    70,    88,
+       0,     0,     0,     0,    89,    71,    72,     0,     0,    90,
+       0,     0,    73,    74,     0,    75,     0,     0,     0,     0,
+       0,    76,     0,     0,     0,     0,   179,    77,     0,     0,
+      78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,    79,    80,     0,     0,     0,     0,     0,
+       0,    81,     0,     0,    82,     0,    31,    64,    32,    65,
+       0,     0,     0,     0,     0,     0,     0,    83,     0,     0,
+       0,     0,     0,    66,   154,    84,    85,     0,     0,    86,
+      87,     0,     0,     0,     0,    69,    70,    88,     0,     0,
+       0,     0,    89,    71,    72,     0,     0,   180,     0,     0,
+      73,    74,     0,    75,     0,     0,     0,     0,     0,    76,
+       0,     0,     0,     0,     0,    77,     0,     0,    78,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    77,    78,     0,     0,     0,     0,     0,     0,    79,
-       0,     0,    80,     0,   249,   250,   251,   252,   253,   254,
-     255,   256,   257,   258,    81,   141,   142,     0,    31,    62,
-      32,    63,    82,    83,     0,     0,    84,    85,     0,     0,
-       0,     0,     0,     0,    86,    64,    65,    66,     0,    87,
-       0,     0,     0,     0,   175,     0,     0,    67,    68,     0,
-       0,     0,     0,     0,     0,    69,    70,     0,     0,     0,
-       0,     0,    71,    72,     0,    73,     0,     0,     0,   259,
-       0,    74,     0,    31,    62,    32,    63,    75,     0,     0,
-      76,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      64,    65,     0,    77,    78,     0,     0,     0,     0,     0,
-       0,    79,    67,    68,    80,     0,     0,     0,     0,     0,
-      69,    70,     0,     0,     0,     0,    81,    71,    72,     0,
-      73,     0,     0,     0,    82,    83,    74,     0,    84,    85,
-       0,     0,    75,     0,     0,    76,    86,     0,     0,     0,
-       0,    87,     0,     0,     0,     0,    88,     0,    77,    78,
-       0,     0,     0,     0,     0,     0,    79,     0,     0,    80,
-      31,    62,    32,    63,     0,     0,     0,     0,     0,     0,
-       0,    81,     0,     0,     0,     0,     0,    64,    65,    82,
-      83,     0,     0,    84,    85,     0,     0,     0,     0,    67,
-      68,    86,   124,     0,     0,     0,    87,    69,    70,     0,
-       0,    88,     0,     0,    71,    72,     0,    73,     0,     0,
-       0,     0,     0,    74,     0,    31,    62,    32,    63,    75,
-       0,     0,    76,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    64,    65,     0,    77,    78,     0,     0,     0,
-       0,     0,     0,    79,    67,    68,    80,     0,     0,     0,
-       0,     0,    69,    70,     0,     0,     0,     0,    81,    71,
-      72,     0,    73,    10,     0,     0,    82,    83,    74,     0,
-      84,    85,     0,   174,    75,     0,     0,    76,    86,     0,
-       0,     0,     0,    87,     0,     0,     0,     0,    88,     0,
-      77,    78,     0,     0,     0,     0,     0,     0,    79,     0,
-       0,    80,    31,    62,    32,    63,     0,     0,     0,     0,
-       0,     0,     0,    81,     0,     0,     0,     0,     0,    64,
-     150,    82,    83,     0,     0,    84,    85,     0,     0,     0,
-       0,    67,    68,    86,     0,     0,     0,     0,    87,    69,
-      70,     0,     0,   175,     0,     0,    71,    72,     0,    73,
-       0,     0,     0,     0,     0,    74,     0,    31,    62,    32,
-      63,    75,     0,     0,    76,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    64,    65,     0,    77,    78,     0,
-       0,     0,     0,     0,     0,    79,    67,    68,    80,     0,
-       0,     0,     0,     0,    69,    70,     0,     0,     0,     0,
-      81,    71,    72,     0,    73,     0,     0,     0,    82,    83,
-      74,     0,    84,    85,     0,     0,    75,     0,     0,    76,
-      86,     0,     0,     0,     0,    87,     0,     0,     0,     0,
-      88,     0,    77,    78,     0,     0,     0,     0,     0,     0,
-      79,     0,     0,    80,    62,     0,    63,     0,     0,     0,
-       0,     0,     0,     0,     0,    81,     0,     0,     0,     0,
-      64,   150,     0,    82,    83,     0,     0,    84,    85,     0,
-       0,     0,    67,    68,     0,    86,     0,     0,     0,     0,
-      87,    70,     0,     0,     0,    88,     0,    71,    72,     0,
-      73,    67,    68,     0,     0,     0,    74,     0,     0,     0,
-      70,     0,     0,     0,     0,    76,    71,    72,     0,    73,
-       0,     0,     0,     0,     0,    74,     0,     0,    77,    78,
-       0,     0,     0,     0,    76,     0,    79,     0,     0,    80,
-       0,     0,     0,     0,     0,     0,     0,    77,   241,     0,
-       0,    81,     0,     0,     0,    79,     0,     0,     0,    82,
-       0,     0,     0,    84,    85,     0,     0,     0,     0,     0,
-      81,    86,     0,     0,     0,     0,    87,     0,    82,     0,
-       0,     0,    84,    85,     0,     0,     0,     0,     0,     0,
-      86,     0,     0,     0,     0,    87
+       0,    79,    80,     0,     0,     0,     0,     0,     0,    81,
+       0,     0,    82,     0,    31,    64,    32,    65,     0,     0,
+       0,     0,     0,     0,     0,    83,     0,     0,     0,     0,
+       0,    66,    67,    84,    85,     0,     0,    86,    87,     0,
+       0,     0,     0,    69,    70,    88,     0,     0,     0,     0,
+      89,    71,    72,     0,     0,    90,     0,     0,    73,    74,
+       0,    75,     0,     0,     0,     0,    64,    76,    65,     0,
+       0,     0,     0,    77,     0,     0,    78,     0,     0,     0,
+       0,     0,    66,   154,     0,     0,     0,     0,     0,    79,
+      80,     0,     0,     0,    69,    70,     0,    81,     0,     0,
+      82,     0,     0,    72,     0,     0,     0,     0,     0,    73,
+      74,     0,    75,    83,     0,     0,     0,     0,    76,     0,
+       0,    84,    85,     0,     0,    86,    87,    78,     0,     0,
+       0,     0,     0,    88,     0,     0,     0,     0,    89,     0,
+      79,    80,     0,    90,     0,    69,    70,     0,    81,     0,
+       0,    82,     0,     0,    72,     0,     0,     0,     0,     0,
+      73,    74,     0,    75,    83,     0,     0,     0,     0,    76,
+       0,     0,    84,     0,     0,     0,    86,    87,    78,     0,
+       0,     0,     0,     0,    88,     0,     0,     0,     0,    89,
+       0,    79,   246,     0,     0,     0,     0,     0,     0,    81,
+     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
+       0,   145,   146,     0,     0,    83,     0,     0,     0,     0,
+       0,     0,     0,    84,     0,     0,     0,    86,    87,     0,
+       0,     0,     0,     0,     0,    88,     0,     0,     0,     0,
+      89,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   264
 };
 
+#define yypact_value_is_default(Yystate) \
+  (!!((Yystate) == (-240)))
+
+#define yytable_value_is_error(Yytable_value) \
+  YYID (0)
+
 static const yytype_int16 yycheck[] =
 {
-       4,   120,   218,   124,    12,   108,   138,    11,    12,   116,
-     239,   182,     0,    41,     4,    27,     6,   124,     4,   209,
-       6,     7,     4,     8,     6,    59,    30,    37,     8,     8,
-      34,    35,    36,    37,    38,   138,   163,   112,    26,     8,
-      78,    69,    67,    29,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,   175,    21,    22,    10,    23,    24,
-      88,    21,    22,    21,    22,   204,   173,    59,   175,   107,
-      29,   174,   204,    61,    21,    22,    21,    22,    17,    18,
-      19,    21,    22,    76,    35,    72,    69,    38,    39,   123,
-      94,    10,   128,    28,     4,   131,     6,    56,   288,   107,
-      81,   204,   106,   107,   132,   109,   110,   117,   133,    75,
-     114,   115,   140,   240,   101,   331,   120,   107,   107,   112,
-     132,    31,   132,    58,    43,   153,   133,   134,   113,    69,
-     237,   123,   121,    52,   138,   112,    75,    90,   354,   143,
-     247,   248,   132,   132,   315,   284,   132,   175,   152,   378,
-     132,     0,   284,   133,   133,    50,   259,   185,   109,   163,
-     188,   165,   166,     1,   133,     3,   337,   133,   113,     3,
-     135,    90,   388,   133,   162,   133,   123,   298,    65,    74,
-      99,   284,   301,   139,   103,     4,     4,     6,     6,    43,
-     218,   298,    30,    88,    89,    70,   224,    84,   154,   118,
-     204,   205,    77,    21,    22,   209,   124,    69,    46,    47,
-      85,   106,     9,    31,    68,    53,   134,   349,   222,   108,
-      58,    64,   226,   394,    21,    22,   329,   134,    54,   104,
-     258,   126,   260,   237,   355,    61,   240,   265,    44,    45,
-      78,   360,   361,     9,   272,    99,   349,    54,   355,    92,
-      93,    31,    21,    22,    61,    21,    22,   128,   133,   130,
-     132,   382,   100,    32,   118,   372,   294,    70,   276,   107,
-      44,    45,   276,   116,    77,   382,   133,   134,     5,    82,
-     284,   119,    85,    81,   288,    93,    55,   125,   133,   134,
-     128,    21,    22,   133,   134,   132,   124,   301,   133,   134,
-     328,   104,     7,   331,   133,   134,   427,     7,   133,   134,
-     133,   134,   340,    80,   318,     5,   133,   134,   133,   134,
-     427,   133,   134,   133,   134,    80,   354,     5,   133,   134,
-      69,   133,   134,   133,   134,     4,     5,     6,     7,   132,
-     459,   133,   134,   133,   134,   349,   133,   134,   133,   134,
-     132,   132,    21,    22,    23,   474,   360,   361,   134,   478,
-     388,   132,   390,   125,    33,    34,     7,   132,   372,   132,
-       7,    11,    41,    42,   133,   107,   132,     8,   132,    48,
-      49,     9,    51,    60,    20,   133,    69,    56,    57,   133,
-      71,   134,   133,   421,    63,   132,    83,    66,    83,   132,
-     428,   120,    60,   132,   121,     7,    95,    95,    82,   413,
-      79,    80,     7,    95,     7,    40,   420,    73,    87,   132,
-     132,    90,     5,    27,   134,    90,   125,    90,   132,    83,
-     132,   132,    98,   102,    98,    94,   440,   441,   466,   132,
-      36,   110,   111,    96,     7,   114,   115,    93,   132,    40,
-     454,    86,   456,   122,   134,   459,     5,   132,   127,     4,
-       5,     6,     7,   132,   133,    10,    40,     7,    91,   103,
-     474,   133,   133,    97,   478,   132,    21,    22,     7,   134,
-     132,   172,   321,   456,   441,   107,   222,   247,    33,    34,
-     140,   349,   466,   144,   173,   248,    41,    42,   104,   126,
-     149,   131,   394,    48,    49,   411,    51,    -1,    -1,    -1,
-     186,    -1,    57,   186,    -1,    -1,    -1,    62,    63,    -1,
-      -1,    66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    79,    80,    -1,    -1,    -1,    -1,
-      -1,    -1,    87,    -1,    -1,    90,     4,     5,     6,     7,
-      -1,    -1,    10,    -1,    -1,    -1,    -1,   102,    -1,    -1,
-      -1,    -1,   107,    21,    22,   110,   111,    -1,    -1,   114,
-     115,    -1,    -1,    -1,    -1,    33,    34,   122,    -1,    -1,
-      -1,    -1,   127,    41,    42,    -1,    -1,   132,    -1,    -1,
-      48,    49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    57,
-      -1,    -1,    -1,    -1,    62,    63,    -1,    -1,    66,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    87,
-      -1,    -1,    90,    -1,    10,    11,    12,    13,    14,    15,
-      16,    17,    18,    19,   102,    21,    22,    -1,     4,     5,
-       6,     7,   110,   111,    -1,    -1,   114,   115,    -1,    -1,
-      -1,    -1,    -1,    -1,   122,    21,    22,    23,    -1,   127,
-      -1,    -1,    -1,    -1,   132,    -1,    -1,    33,    34,    -1,
-      -1,    -1,    -1,    -1,    -1,    41,    42,    -1,    -1,    -1,
-      -1,    -1,    48,    49,    -1,    51,    -1,    -1,    -1,    75,
-      -1,    57,    -1,     4,     5,     6,     7,    63,    -1,    -1,
-      66,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      21,    22,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,
-      -1,    87,    33,    34,    90,    -1,    -1,    -1,    -1,    -1,
-      41,    42,    -1,    -1,    -1,    -1,   102,    48,    49,    -1,
-      51,    -1,    -1,    -1,   110,   111,    57,    -1,   114,   115,
-      -1,    -1,    63,    -1,    -1,    66,   122,    -1,    -1,    -1,
-      -1,   127,    -1,    -1,    -1,    -1,   132,    -1,    79,    80,
+       4,   128,    12,   142,   124,   244,    41,    11,    12,   120,
+       8,   223,     0,   187,     8,    23,    24,   128,    10,   110,
+       4,    27,     6,     7,   214,     4,    30,     6,     8,    59,
+      34,    35,    36,    37,    38,     8,    71,   209,    26,    50,
+       4,    59,     6,    21,    22,    29,    21,    22,    76,   168,
+     113,   142,    37,   180,    43,    90,    78,    28,    67,    21,
+      22,   143,    29,    74,    21,    22,     4,   178,     6,   180,
+     209,    21,    22,    69,   125,    63,   158,    88,    89,    68,
+     113,    17,    18,    19,   135,   113,   108,    58,   179,    56,
+      10,    72,    96,    31,   124,    54,   107,     0,    90,   109,
+       9,   136,    61,   293,   108,   109,   124,   111,   112,   144,
+      99,    81,    21,    22,   118,   119,   127,   289,   209,    69,
+     124,   102,   157,    43,   336,   134,   245,   133,  

<TRUNCATED>