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:20 UTC
[1/4] incubator-quickstep git commit: Added PRIORITY clause in parser.
Repository: incubator-quickstep
Updated Branches:
refs/heads/parser-priority-clause [created] 604ed99b7
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/preprocessed/SqlParser_gen.hpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlParser_gen.hpp b/parser/preprocessed/SqlParser_gen.hpp
index 71e4332..13c425b 100644
--- a/parser/preprocessed/SqlParser_gen.hpp
+++ b/parser/preprocessed/SqlParser_gen.hpp
@@ -1,19 +1,19 @@
-/* A Bison parser, made by GNU Bison 3.0.4. */
+/* A Bison parser, made by GNU Bison 2.7. */
/* Bison interface 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,13 +26,13 @@
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. */
#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
@@ -40,142 +40,144 @@
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:1915 */
+/* Line 2058 of yacc.c */
+#line 119 "../SqlParser.ypp"
quickstep::ParseString *string_value_;
@@ -267,30 +269,43 @@ union YYSTYPE
quickstep::PtrVector<quickstep::ParseSubqueryTableReference> *with_list_;
quickstep::ParseSubqueryTableReference *with_list_element_;
-#line 271 "SqlParser_gen.hpp" /* yacc.c:1915 */
-};
+ quickstep::ParsePriority *opt_priority_clause_;
+
-typedef union YYSTYPE YYSTYPE;
+/* Line 2058 of yacc.c */
+#line 277 "SqlParser_gen.hpp"
+} 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 */
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/tests/Select.test
----------------------------------------------------------------------
diff --git a/parser/tests/Select.test b/parser/tests/Select.test
index e70ee5c..cbab3bc 100644
--- a/parser/tests/Select.test
+++ b/parser/tests/Select.test
@@ -478,6 +478,49 @@ SELECT 1 FROM test LIMIT abc
^
==
+# Priority
+SELECT 1 FROM test WITH PRIORITY 1
+--
+SelectStatement
++-select_query=Select
+| +-select_clause=SelectList
+| | +-SelectListItem
+| | +-Literal
+| | +-NumericLiteral[numeric_string=1,float_like=false]
+| +-from_clause=
+| +-TableReference[table=test]
++-priority=PRIORITY
+ +-NumericLiteral[numeric_string=1,float_like=false]
+==
+
+SELECT 1 FROM test WITH PRIORITY 1.1
+--
+ERROR: PRIORITY value must be an integer (1 : 34)
+SELECT 1 FROM test WITH PRIORITY 1.1
+ ^
+==
+
+SELECT 1 FROM test WITH PRIORITY 0
+--
+ERROR: PRIORITY value must be positive (1 : 34)
+SELECT 1 FROM test WITH PRIORITY 0
+ ^
+==
+
+SELECT 1 FROM test WITH PRIORITY -1
+--
+ERROR: syntax error (1 : 34)
+SELECT 1 FROM test WITH PRIORITY -1
+ ^
+==
+
+SELECT 1 FROM test WITH PRIORITY abc
+--
+ERROR: syntax error (1 : 34)
+SELECT 1 FROM test WITH PRIORITY abc
+ ^
+==
+
#
# Subqueries
#
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/query_optimizer/QueryHandle.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/QueryHandle.hpp b/query_optimizer/QueryHandle.hpp
index a17d3e8..8822976 100644
--- a/query_optimizer/QueryHandle.hpp
+++ b/query_optimizer/QueryHandle.hpp
@@ -44,8 +44,9 @@ class QueryHandle {
*
* @param query_id The given query id.
*/
- explicit QueryHandle(const std::size_t query_id)
+ explicit QueryHandle(const std::size_t query_id, const std::size_t query_priority = 1)
: query_id_(query_id),
+ query_priority_(query_priority),
query_plan_(new QueryPlan()),
query_result_relation_(nullptr) {}
@@ -61,6 +62,13 @@ class QueryHandle {
}
/**
+ * @brief Get the query priority.
+ **/
+ const std::size_t query_priority() const {
+ return query_priority_;
+ }
+
+ /**
* @return The mutable query plan.
*/
QueryPlan* getQueryPlanMutable() {
@@ -111,6 +119,7 @@ class QueryHandle {
private:
const std::size_t query_id_;
+ const std::size_t query_priority_;
std::unique_ptr<QueryPlan> query_plan_;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/query_optimizer/QueryProcessor.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/QueryProcessor.cpp b/query_optimizer/QueryProcessor.cpp
index b6fa3e0..74b1f69 100644
--- a/query_optimizer/QueryProcessor.cpp
+++ b/query_optimizer/QueryProcessor.cpp
@@ -17,6 +17,7 @@
#include "query_optimizer/QueryProcessor.hpp"
+#include <cstdint>
#include <cstdlib>
#include <fstream>
#include <memory>
@@ -37,7 +38,8 @@ using std::ofstream;
namespace quickstep {
QueryHandle* QueryProcessor::generateQueryHandle(const ParseStatement &statement) {
- std::unique_ptr<QueryHandle> query_handle(new QueryHandle(query_id_));
+ std::unique_ptr<QueryHandle> query_handle(new QueryHandle(
+ query_id_, static_cast<std::size_t>(statement.getPriority())));
optimizer::Optimizer optimizer(query_id_, getDefaultDatabase(), storage_manager_.get());
optimizer.generateQueryHandle(statement, query_handle.get());
[3/4] incubator-quickstep git commit: Added PRIORITY clause in parser.
Posted by hb...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/preprocessed/SqlLexer_gen.cpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlLexer_gen.cpp b/parser/preprocessed/SqlLexer_gen.cpp
index db20491..a2cbea7 100644
--- a/parser/preprocessed/SqlLexer_gen.cpp
+++ b/parser/preprocessed/SqlLexer_gen.cpp
@@ -8,8 +8,8 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 0
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -159,15 +159,7 @@ typedef void* yyscan_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -202,13 +194,6 @@ typedef size_t yy_size_t;
if ( yytext[yyl] == '\n' )\
--yylineno;\
}while(0)
- #define YY_LINENO_REWIND_TO(dst) \
- do {\
- const char *p;\
- for ( p = yy_cp-1; p >= (dst); --p)\
- if ( *p == '\n' )\
- --yylineno;\
- }while(0)
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
@@ -354,7 +339,7 @@ void quickstep_yyfree (void * ,yyscan_t yyscanner );
/* Begin user sect3 */
-#define quickstep_yywrap(yyscanner) (/*CONSTCOND*/1)
+#define quickstep_yywrap(yyscanner) 1
#define YY_SKIP_YYWRAP
typedef unsigned char YY_CHAR;
@@ -366,9 +351,6 @@ typedef int yy_state_type;
static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
static int yy_get_next_buffer (yyscan_t yyscanner );
-#if defined(__GNUC__) && __GNUC__ >= 3
-__attribute__((__noreturn__))
-#endif
static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
/* Done after the current pattern has been matched and before the
@@ -381,8 +363,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 152
-#define YY_END_OF_BUFFER 153
+#define YY_NUM_RULES 153
+#define YY_END_OF_BUFFER 154
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -390,72 +372,72 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[553] =
+static yyconst flex_int16_t yy_accept[558] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 153, 2, 2, 151, 151, 150, 149, 151,
- 128, 124, 127, 124, 124, 147, 120, 117, 121, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 125, 4, 5, 5, 3, 143,
- 143, 140, 144, 144, 138, 145, 145, 142, 1, 150,
- 118, 148, 147, 147, 147, 0, 122, 119, 123, 146,
- 146, 146, 146, 10, 146, 146, 146, 22, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 126, 146,
-
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 58, 66, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 80, 81, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 4, 5, 3, 143, 139, 144, 137, 137, 129,
- 131, 132, 133, 134, 135, 136, 137, 145, 141, 148,
- 147, 0, 147, 6, 7, 146, 9, 11, 146, 146,
- 15, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 32, 146, 146, 146, 146, 146, 146, 146, 146,
-
- 43, 146, 146, 146, 146, 146, 146, 50, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 62, 146, 68,
- 146, 146, 146, 146, 146, 146, 146, 76, 146, 79,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 146, 146, 97, 98, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 129, 131, 130, 146, 146, 146, 146, 146, 146, 146,
- 20, 23, 146, 146, 146, 28, 146, 146, 30, 146,
- 146, 146, 146, 37, 146, 146, 41, 42, 146, 146,
- 146, 146, 146, 146, 146, 52, 53, 146, 55, 146,
-
- 57, 146, 146, 146, 146, 65, 67, 69, 70, 71,
- 146, 73, 146, 146, 77, 146, 146, 146, 146, 146,
- 88, 146, 90, 146, 146, 146, 146, 146, 146, 146,
- 146, 146, 102, 103, 105, 146, 146, 146, 146, 146,
- 146, 112, 146, 114, 115, 129, 130, 8, 146, 146,
- 146, 146, 146, 146, 146, 25, 146, 146, 146, 146,
- 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
- 146, 47, 48, 49, 146, 54, 146, 59, 60, 146,
- 146, 146, 72, 146, 75, 78, 82, 83, 146, 146,
- 146, 89, 146, 146, 93, 146, 146, 146, 146, 146,
-
- 101, 146, 146, 146, 146, 109, 146, 146, 113, 146,
- 146, 146, 14, 146, 146, 146, 146, 146, 26, 146,
- 29, 146, 146, 146, 146, 35, 146, 146, 146, 40,
- 146, 45, 146, 146, 56, 61, 146, 146, 74, 146,
- 146, 146, 146, 92, 146, 95, 96, 146, 146, 146,
- 146, 107, 108, 110, 146, 146, 146, 13, 146, 146,
- 146, 146, 146, 146, 21, 146, 33, 34, 146, 146,
- 146, 146, 46, 51, 63, 146, 146, 86, 87, 146,
- 146, 146, 146, 146, 146, 111, 146, 146, 146, 146,
- 146, 146, 146, 146, 31, 146, 146, 39, 146, 64,
-
- 146, 146, 146, 99, 146, 146, 146, 146, 12, 146,
- 146, 146, 146, 24, 146, 36, 146, 146, 84, 146,
- 146, 100, 104, 146, 116, 16, 146, 146, 146, 27,
- 38, 146, 85, 91, 146, 146, 146, 18, 19, 146,
- 146, 106, 146, 146, 146, 146, 146, 94, 146, 44,
- 17, 0
+ 0, 0, 154, 2, 2, 152, 152, 151, 150, 152,
+ 129, 125, 128, 125, 125, 148, 121, 118, 122, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 126, 4, 5, 5, 3, 144,
+ 144, 141, 145, 145, 139, 146, 146, 143, 1, 151,
+ 119, 149, 148, 148, 148, 0, 123, 120, 124, 147,
+ 147, 147, 147, 10, 147, 147, 147, 22, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 127, 147,
+
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 58, 66, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 80, 81, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 4, 5, 3, 144, 140, 145, 138, 138, 130,
+ 132, 133, 134, 135, 136, 137, 138, 146, 142, 149,
+ 148, 0, 148, 6, 7, 147, 9, 11, 147, 147,
+ 15, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 32, 147, 147, 147, 147, 147, 147, 147, 147,
+
+ 43, 147, 147, 147, 147, 147, 147, 50, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 62, 147, 68,
+ 147, 147, 147, 147, 147, 147, 147, 76, 147, 79,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 147, 98, 99, 147, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 130, 132, 131, 147, 147, 147, 147, 147, 147, 147,
+ 20, 23, 147, 147, 147, 28, 147, 147, 30, 147,
+ 147, 147, 147, 37, 147, 147, 41, 42, 147, 147,
+ 147, 147, 147, 147, 147, 52, 53, 147, 55, 147,
+
+ 57, 147, 147, 147, 147, 65, 67, 69, 70, 71,
+ 147, 73, 147, 147, 77, 147, 147, 147, 147, 147,
+ 147, 89, 147, 91, 147, 147, 147, 147, 147, 147,
+ 147, 147, 147, 103, 104, 106, 147, 147, 147, 147,
+ 147, 147, 113, 147, 115, 116, 130, 131, 8, 147,
+ 147, 147, 147, 147, 147, 147, 25, 147, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 147, 147, 47, 48, 49, 147, 54, 147, 59, 60,
+ 147, 147, 147, 72, 147, 75, 78, 82, 83, 147,
+ 147, 147, 147, 90, 147, 147, 94, 147, 147, 147,
+
+ 147, 147, 102, 147, 147, 147, 147, 110, 147, 147,
+ 114, 147, 147, 147, 14, 147, 147, 147, 147, 147,
+ 26, 147, 29, 147, 147, 147, 147, 35, 147, 147,
+ 147, 40, 147, 45, 147, 147, 56, 61, 147, 147,
+ 74, 147, 147, 147, 147, 147, 93, 147, 96, 97,
+ 147, 147, 147, 147, 108, 109, 111, 147, 147, 147,
+ 13, 147, 147, 147, 147, 147, 147, 21, 147, 33,
+ 34, 147, 147, 147, 147, 46, 51, 63, 147, 147,
+ 86, 87, 147, 147, 147, 147, 147, 147, 147, 112,
+ 147, 147, 147, 147, 147, 147, 147, 147, 31, 147,
+
+ 147, 39, 147, 64, 147, 88, 147, 147, 100, 147,
+ 147, 147, 147, 12, 147, 147, 147, 147, 24, 147,
+ 36, 147, 147, 84, 147, 147, 101, 105, 147, 117,
+ 16, 147, 147, 147, 27, 38, 147, 85, 92, 147,
+ 147, 147, 18, 19, 147, 147, 107, 147, 147, 147,
+ 147, 147, 95, 147, 44, 17, 0
} ;
-static yyconst YY_CHAR yy_ec[256] =
+static yyconst flex_int32_t yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
@@ -487,7 +469,7 @@ static yyconst YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst YY_CHAR yy_meta[72] =
+static yyconst flex_int32_t yy_meta[72] =
{ 0,
1, 1, 2, 1, 1, 3, 1, 4, 1, 5,
5, 6, 6, 5, 1, 1, 1, 7, 7, 7,
@@ -499,26 +481,26 @@ static yyconst YY_CHAR yy_meta[72] =
8
} ;
-static yyconst flex_uint16_t yy_base[568] =
+static yyconst flex_int16_t yy_base[573] =
{ 0,
0, 1, 46, 0, 117, 163, 2, 3, 128, 132,
- 6, 10, 257, 1219, 1219, 0, 1219, 13, 1219, 233,
- 1219, 1219, 1219, 208, 6, 130, 4, 1219, 195, 124,
+ 6, 10, 257, 1225, 1225, 0, 1225, 13, 1225, 233,
+ 1225, 1225, 1225, 208, 6, 130, 4, 1225, 195, 124,
161, 170, 178, 207, 260, 92, 167, 161, 96, 107,
219, 214, 212, 224, 236, 92, 279, 272, 278, 281,
- 128, 168, 0, 125, 1219, 184, 4, 19, 0, 0,
+ 128, 168, 0, 125, 1225, 184, 4, 19, 0, 0,
0, 146, 0, 0, 343, 0, 0, 145, 0, 22,
- 1219, 0, 307, 337, 341, 18, 1219, 1219, 1219, 0,
+ 1225, 0, 307, 337, 341, 18, 1225, 1225, 1225, 0,
170, 224, 177, 181, 215, 269, 224, 0, 263, 326,
- 336, 286, 290, 333, 382, 321, 322, 329, 1219, 328,
+ 336, 286, 290, 333, 382, 321, 322, 329, 1225, 328,
347, 351, 346, 350, 346, 353, 352, 374, 386, 385,
383, 382, 402, 0, 395, 382, 389, 403, 399, 397,
399, 401, 399, 408, 418, 0, 421, 406, 410, 425,
437, 438, 438, 455, 451, 436, 457, 462, 462, 463,
461, 454, 447, 454, 462, 469, 465, 466, 474, 460,
- 481, 148, 29, 0, 0, 1219, 0, 1219, 1219, 22,
- 24, 1219, 1219, 1219, 1219, 1219, 0, 0, 1219, 0,
+ 481, 148, 29, 0, 0, 1225, 0, 1225, 1225, 22,
+ 24, 1225, 1225, 1225, 1225, 1225, 0, 0, 1225, 0,
509, 26, 28, 0, 0, 478, 0, 481, 478, 501,
493, 514, 513, 501, 517, 500, 503, 498, 523, 505,
521, 0, 518, 527, 526, 529, 513, 532, 520, 532,
@@ -526,118 +508,120 @@ static yyconst flex_uint16_t yy_base[568] =
0, 537, 521, 523, 523, 525, 558, 563, 559, 562,
554, 568, 568, 560, 574, 575, 576, 577, 569, 0,
564, 565, 581, 578, 582, 569, 571, 0, 581, 0,
- 589, 590, 576, 595, 586, 580, 595, 605, 621, 625,
- 624, 98, 618, 629, 0, 623, 617, 625, 624, 634,
- 635, 629, 625, 642, 630, 624, 644, 634, 641, 632,
- 30, 125, 0, 633, 639, 649, 642, 652, 647, 647,
- 0, 674, 673, 675, 670, 0, 671, 674, 673, 681,
- 674, 676, 684, 693, 690, 688, 0, 0, 685, 682,
- 702, 700, 686, 687, 699, 0, 0, 693, 0, 696,
-
- 0, 687, 694, 696, 726, 0, 0, 0, 0, 0,
- 696, 0, 698, 734, 727, 730, 731, 741, 746, 751,
- 0, 748, 0, 736, 731, 736, 753, 744, 756, 748,
- 741, 758, 0, 745, 0, 760, 745, 747, 761, 764,
- 762, 0, 767, 0, 761, 136, 1219, 0, 772, 786,
- 780, 801, 788, 800, 805, 0, 795, 792, 806, 807,
- 804, 813, 803, 811, 808, 804, 805, 816, 817, 804,
- 821, 0, 0, 0, 818, 0, 819, 0, 0, 807,
- 823, 808, 0, 827, 0, 0, 0, 0, 814, 835,
- 840, 0, 855, 846, 0, 859, 861, 846, 858, 850,
-
- 0, 849, 851, 866, 867, 0, 854, 873, 0, 860,
- 867, 863, 0, 857, 862, 880, 873, 863, 0, 883,
- 0, 880, 873, 876, 870, 0, 872, 903, 913, 0,
- 93, 0, 898, 906, 0, 0, 904, 922, 0, 915,
- 905, 901, 913, 0, 916, 0, 0, 915, 921, 930,
- 931, 0, 0, 0, 915, 920, 921, 0, 928, 923,
- 926, 928, 936, 933, 0, 938, 0, 0, 939, 937,
- 928, 931, 0, 0, 0, 953, 959, 0, 0, 973,
- 969, 960, 967, 969, 970, 0, 964, 978, 972, 971,
- 972, 969, 972, 977, 0, 974, 979, 0, 975, 0,
-
- 982, 992, 985, 0, 992, 984, 985, 994, 0, 997,
- 1001, 996, 1018, 0, 1012, 0, 1027, 1018, 1019, 1020,
- 1031, 0, 0, 1029, 0, 0, 1024, 1038, 1026, 0,
- 0, 1036, 0, 0, 1026, 1042, 1028, 0, 0, 1035,
- 1045, 0, 1042, 1046, 1036, 1050, 1037, 0, 1038, 0,
- 0, 1219, 1103, 1113, 1123, 1133, 1143, 1147, 1150, 1156,
- 1164, 1174, 1184, 1194, 1204, 1209, 1211
+ 589, 590, 576, 595, 587, 579, 610, 614, 625, 627,
+ 625, 98, 619, 630, 0, 624, 618, 626, 625, 635,
+ 636, 630, 626, 643, 631, 626, 645, 635, 642, 633,
+ 30, 125, 0, 634, 640, 651, 643, 653, 649, 662,
+ 0, 683, 677, 677, 671, 0, 672, 675, 674, 682,
+ 675, 677, 685, 694, 691, 689, 0, 0, 686, 683,
+ 704, 701, 687, 688, 700, 0, 0, 694, 0, 697,
+
+ 0, 688, 696, 697, 735, 0, 0, 0, 0, 0,
+ 696, 0, 698, 725, 727, 730, 731, 741, 746, 751,
+ 736, 0, 750, 0, 738, 733, 738, 755, 746, 758,
+ 751, 744, 760, 0, 747, 0, 762, 747, 749, 763,
+ 767, 765, 0, 769, 0, 763, 136, 1225, 0, 787,
+ 795, 784, 805, 791, 802, 806, 0, 797, 794, 808,
+ 809, 806, 815, 805, 813, 810, 807, 808, 818, 819,
+ 806, 823, 0, 0, 0, 820, 0, 821, 0, 0,
+ 810, 826, 810, 0, 829, 0, 0, 0, 0, 829,
+ 844, 844, 855, 0, 860, 850, 0, 862, 864, 849,
+
+ 861, 853, 0, 852, 854, 869, 870, 0, 857, 876,
+ 0, 864, 871, 867, 0, 860, 865, 883, 876, 866,
+ 0, 887, 0, 884, 877, 880, 887, 0, 896, 916,
+ 919, 0, 93, 0, 903, 910, 0, 0, 907, 925,
+ 0, 918, 908, 904, 910, 917, 0, 920, 0, 0,
+ 919, 925, 934, 936, 0, 0, 0, 920, 925, 926,
+ 0, 932, 927, 930, 932, 941, 938, 0, 943, 0,
+ 0, 945, 956, 954, 959, 0, 0, 0, 968, 966,
+ 0, 0, 957, 980, 975, 965, 972, 974, 975, 0,
+ 969, 983, 977, 976, 977, 975, 978, 983, 0, 980,
+
+ 985, 0, 980, 0, 987, 0, 997, 991, 0, 998,
+ 990, 992, 1015, 0, 1025, 1031, 1026, 1034, 0, 1020,
+ 0, 1034, 1024, 1024, 1025, 1036, 0, 0, 1034, 0,
+ 0, 1029, 1043, 1031, 0, 0, 1041, 0, 0, 1031,
+ 1048, 1034, 0, 0, 1041, 1051, 0, 1048, 1051, 1041,
+ 1055, 1043, 0, 1044, 0, 0, 1225, 1109, 1119, 1129,
+ 1139, 1149, 1153, 1156, 1162, 1170, 1180, 1190, 1200, 1210,
+ 1215, 1217
} ;
-static yyconst flex_int16_t yy_def[568] =
+static yyconst flex_int16_t yy_def[573] =
{ 0,
- 553, 553, 552, 3, 554, 554, 555, 555, 556, 556,
- 557, 557, 552, 552, 552, 558, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 552, 552, 552, 552, 560, 561,
- 561, 552, 562, 562, 563, 564, 564, 552, 558, 552,
- 552, 565, 552, 552, 552, 552, 552, 552, 552, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 552, 559,
-
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 552, 552, 560, 561, 552, 562, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 566, 564, 552, 565,
- 552, 552, 552, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
-
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 552, 552, 567, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
-
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 552, 552, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
-
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
-
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
- 559, 0, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552
+ 558, 558, 557, 3, 559, 559, 560, 560, 561, 561,
+ 562, 562, 557, 557, 557, 563, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 557, 557, 557, 557, 565, 566,
+ 566, 557, 567, 567, 568, 569, 569, 557, 563, 557,
+ 557, 570, 557, 557, 557, 557, 557, 557, 557, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 557, 564,
+
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 557, 557, 565, 566, 557, 567, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 571, 569, 557, 570,
+ 557, 557, 557, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 557, 557, 572, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 557, 557, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
+ 564, 564, 564, 564, 564, 564, 0, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557
} ;
-static yyconst flex_uint16_t yy_nxt[1291] =
+static yyconst flex_int16_t yy_nxt[1297] =
{ 0,
- 552, 552, 15, 15, 61, 61, 153, 153, 67, 62,
- 62, 68, 67, 552, 70, 68, 70, 73, 73, 77,
- 78, 153, 153, 70, 552, 70, 172, 172, 552, 173,
+ 557, 557, 15, 15, 61, 61, 153, 153, 67, 62,
+ 62, 68, 67, 557, 70, 68, 70, 73, 73, 77,
+ 78, 153, 153, 70, 557, 70, 172, 172, 557, 173,
173, 153, 153, 261, 262, 262, 262, 173, 173, 173,
- 173, 346, 262, 552, 16, 16, 17, 18, 19, 18,
+ 173, 347, 262, 557, 16, 16, 17, 18, 19, 18,
20, 21, 22, 23, 22, 24, 25, 26, 26, 17,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
@@ -647,8 +631,8 @@ static yyconst flex_uint16_t yy_nxt[1291] =
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 17, 56, 57,
58, 17, 17, 17, 17, 17, 110, 115, 116, 132,
- 64, 17, 17, 17, 64, 62, 262, 262, 472, 62,
- 74, 75, 75, 327, 81, 148, 151, 262, 262, 152,
+ 64, 17, 17, 17, 64, 62, 262, 262, 475, 62,
+ 74, 75, 75, 328, 81, 148, 151, 262, 262, 152,
169, 76, 82, 156, 83, 110, 115, 116, 132, 84,
17, 17, 17, 17, 56, 57, 58, 17, 17, 17,
17, 17, 65, 81, 148, 151, 65, 17, 17, 17,
@@ -660,8 +644,8 @@ static yyconst flex_uint16_t yy_nxt[1291] =
113, 149, 150, 90, 94, 114, 177, 112, 95, 178,
91, 88, 96, 92, 93, 100, 117, 101, 97, 121,
118, 98, 102, 123, 119, 122, 125, 103, 71, 124,
- 120, 179, 175, 129, 126, 182, 552, 130, 127, 552,
- 176, 128, 552, 552, 100, 117, 101, 552, 121, 118,
+ 120, 179, 175, 129, 126, 182, 557, 130, 127, 557,
+ 176, 128, 557, 557, 100, 117, 101, 557, 121, 118,
131, 102, 123, 119, 122, 125, 103, 104, 124, 120,
179, 175, 129, 126, 182, 105, 130, 127, 106, 176,
128, 107, 180, 137, 108, 140, 133, 109, 183, 131,
@@ -669,12 +653,12 @@ static yyconst flex_uint16_t yy_nxt[1291] =
134, 138, 141, 142, 135, 181, 104, 189, 190, 139,
136, 145, 143, 146, 105, 144, 147, 106, 73, 73,
107, 180, 137, 108, 140, 133, 109, 183, 76, 134,
- 138, 141, 142, 135, 181, 552, 189, 190, 139, 136,
+ 138, 141, 142, 135, 181, 557, 189, 190, 139, 136,
145, 143, 146, 184, 144, 147, 159, 185, 171, 171,
- 552, 74, 75, 75, 160, 161, 197, 76, 76, 198,
+ 557, 74, 75, 75, 160, 161, 197, 76, 76, 198,
199, 162, 76, 200, 186, 163, 187, 201, 188, 191,
- 202, 203, 184, 164, 192, 552, 185, 165, 205, 166,
- 206, 552, 204, 167, 207, 197, 208, 76, 198, 199,
+ 202, 203, 184, 164, 192, 557, 185, 165, 205, 166,
+ 206, 557, 204, 167, 207, 197, 208, 76, 198, 199,
162, 76, 200, 186, 163, 187, 201, 188, 191, 202,
203, 193, 164, 192, 194, 209, 165, 205, 166, 206,
@@ -700,83 +684,85 @@ static yyconst flex_uint16_t yy_nxt[1291] =
297, 298, 299, 300, 301, 302, 303, 304, 305, 307,
308, 309, 310, 311, 294, 312, 313, 314, 306, 315,
- 316, 317, 318, 295, 319, 320, 321, 296, 322, 297,
+ 316, 317, 318, 295, 319, 322, 320, 296, 321, 297,
298, 299, 300, 301, 302, 303, 304, 305, 307, 308,
309, 310, 311, 323, 312, 313, 314, 306, 315, 316,
- 317, 318, 324, 319, 320, 321, 325, 322, 326, 328,
+ 317, 318, 324, 319, 322, 320, 325, 321, 326, 327,
329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
- 339, 340, 323, 341, 342, 344, 345, 348, 343, 349,
- 350, 324, 351, 352, 353, 325, 354, 326, 328, 329,
+ 339, 340, 323, 341, 342, 343, 345, 346, 349, 344,
+ 350, 324, 351, 352, 353, 325, 354, 326, 327, 329,
330, 331, 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 355, 341, 342, 344, 345, 348, 343, 349, 350,
+ 340, 355, 341, 342, 343, 345, 346, 349, 344, 350,
356, 351, 352, 353, 357, 354, 358, 359, 360, 361,
362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
355, 372, 373, 374, 375, 376, 377, 378, 379, 356,
- 380, 552, 383, 357, 384, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 368, 369, 370, 371, 381,
- 372, 373, 374, 375, 376, 377, 378, 379, 385, 380,
- 382, 383, 386, 384, 387, 388, 389, 390, 391, 392,
- 393, 394, 395, 396, 397, 398, 399, 400, 381, 401,
- 402, 403, 404, 405, 406, 407, 408, 385, 409, 382,
- 410, 386, 411, 387, 388, 389, 390, 391, 392, 393,
-
- 394, 395, 396, 397, 398, 399, 400, 412, 401, 402,
- 403, 404, 405, 406, 407, 408, 413, 409, 414, 410,
- 415, 411, 417, 416, 418, 419, 420, 421, 422, 423,
- 424, 425, 426, 427, 428, 429, 412, 430, 431, 432,
- 433, 434, 435, 436, 437, 413, 438, 414, 439, 415,
- 440, 417, 416, 418, 419, 420, 421, 422, 423, 424,
- 425, 426, 427, 428, 429, 441, 430, 431, 432, 433,
- 434, 435, 436, 437, 442, 438, 443, 439, 444, 440,
+ 380, 381, 384, 357, 385, 358, 359, 360, 361, 362,
+ 363, 364, 365, 366, 367, 368, 369, 370, 371, 386,
+ 372, 373, 374, 375, 376, 377, 378, 379, 382, 380,
+ 381, 384, 387, 385, 388, 389, 390, 391, 392, 383,
+ 393, 394, 395, 396, 397, 398, 399, 400, 386, 401,
+ 402, 403, 404, 405, 406, 407, 408, 382, 409, 410,
+ 411, 387, 412, 388, 389, 390, 391, 392, 383, 393,
+
+ 394, 395, 396, 397, 398, 399, 400, 413, 401, 402,
+ 403, 404, 405, 406, 407, 408, 414, 409, 410, 411,
+ 415, 412, 416, 417, 419, 420, 418, 421, 422, 423,
+ 424, 425, 426, 427, 428, 429, 413, 430, 431, 432,
+ 433, 434, 435, 436, 437, 414, 438, 439, 440, 415,
+ 441, 416, 417, 419, 420, 418, 421, 422, 423, 424,
+ 425, 426, 427, 428, 429, 442, 430, 431, 432, 433,
+ 434, 435, 436, 437, 443, 438, 439, 440, 444, 441,
445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
- 455, 456, 457, 458, 441, 459, 460, 461, 462, 463,
+ 455, 456, 457, 458, 442, 459, 460, 461, 462, 463,
- 464, 465, 466, 442, 467, 443, 468, 444, 469, 445,
+ 464, 465, 466, 443, 467, 468, 469, 444, 470, 445,
446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 458, 470, 459, 460, 461, 462, 463, 464,
- 465, 466, 471, 467, 473, 468, 474, 469, 475, 476,
+ 456, 457, 458, 471, 459, 460, 461, 462, 463, 464,
+ 465, 466, 472, 467, 468, 469, 473, 470, 474, 476,
477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
- 487, 488, 470, 489, 490, 491, 492, 493, 494, 495,
- 496, 471, 497, 473, 498, 474, 499, 475, 476, 477,
+ 487, 488, 471, 489, 490, 491, 492, 493, 494, 495,
+ 496, 472, 497, 498, 499, 473, 500, 474, 476, 477,
478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
- 488, 500, 489, 490, 491, 492, 493, 494, 495, 496,
- 501, 497, 502, 498, 503, 499, 504, 505, 506, 507,
+ 488, 501, 489, 490, 491, 492, 493, 494, 495, 496,
+ 502, 497, 498, 499, 503, 500, 504, 505, 506, 507,
508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
- 500, 518, 519, 520, 521, 522, 523, 524, 525, 501,
- 526, 502, 527, 503, 528, 504, 505, 506, 507, 508,
- 509, 510, 511, 512, 513, 514, 515, 516, 517, 529,
- 518, 519, 520, 521, 522, 523, 524, 525, 530, 526,
- 531, 527, 532, 528, 533, 534, 535, 536, 537, 538,
- 539, 540, 541, 542, 543, 544, 545, 546, 529, 547,
- 548, 549, 550, 551, 552, 552, 552, 530, 552, 531,
- 552, 532, 552, 533, 534, 535, 536, 537, 538, 539,
- 540, 541, 542, 543, 544, 545, 546, 552, 547, 548,
-
- 549, 550, 551, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 59, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 60, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 63, 63, 63, 63, 63, 63, 63,
- 63, 63, 63, 66, 66, 66, 66, 66, 66, 66,
- 66, 66, 66, 69, 69, 80, 80, 80, 552, 80,
- 154, 154, 154, 154, 155, 155, 155, 552, 155, 155,
- 155, 155, 155, 155, 157, 157, 157, 552, 157, 157,
- 157, 157, 552, 157, 158, 158, 158, 158, 158, 158,
- 158, 158, 158, 158, 168, 168, 552, 168, 168, 168,
-
- 168, 168, 168, 168, 170, 552, 170, 170, 170, 170,
- 170, 170, 170, 170, 263, 263, 347, 347, 13, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552
+ 501, 518, 519, 520, 521, 522, 523, 524, 525, 502,
+ 526, 527, 528, 503, 529, 504, 505, 506, 507, 508,
+ 509, 510, 511, 512, 513, 514, 515, 516, 517, 530,
+ 518, 519, 520, 521, 522, 523, 524, 525, 531, 526,
+ 527, 528, 532, 529, 533, 534, 535, 536, 537, 538,
+ 539, 540, 541, 542, 543, 544, 545, 546, 530, 547,
+ 548, 549, 550, 551, 552, 553, 554, 531, 555, 556,
+ 557, 532, 557, 533, 534, 535, 536, 537, 538, 539,
+ 540, 541, 542, 543, 544, 545, 546, 557, 547, 548,
+
+ 549, 550, 551, 552, 553, 554, 557, 555, 556, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 63,
+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66, 66, 69,
+ 69, 80, 80, 80, 557, 80, 154, 154, 154, 154,
+ 155, 155, 155, 557, 155, 155, 155, 155, 155, 155,
+ 157, 157, 157, 557, 157, 157, 157, 157, 557, 157,
+ 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
+
+ 168, 168, 557, 168, 168, 168, 168, 168, 168, 168,
+ 170, 557, 170, 170, 170, 170, 170, 170, 170, 170,
+ 263, 263, 348, 348, 13, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557
+
} ;
-static yyconst flex_int16_t yy_chk[1291] =
+static yyconst flex_int16_t yy_chk[1297] =
{ 0,
0, 0, 1, 2, 7, 8, 57, 57, 11, 7,
8, 11, 12, 0, 18, 12, 18, 25, 25, 27,
@@ -792,8 +778,8 @@ static yyconst flex_int16_t yy_chk[1291] =
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 5, 5, 5,
5, 5, 5, 5, 5, 5, 36, 39, 40, 46,
- 9, 5, 5, 5, 10, 9, 262, 262, 431, 10,
- 26, 26, 26, 242, 30, 51, 54, 346, 346, 152,
+ 9, 5, 5, 5, 10, 9, 262, 262, 433, 10,
+ 26, 26, 26, 242, 30, 51, 54, 347, 347, 152,
68, 26, 30, 62, 30, 36, 39, 40, 46, 30,
5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
6, 6, 9, 30, 51, 54, 10, 6, 6, 6,
@@ -845,84 +831,86 @@ static yyconst flex_int16_t yy_chk[1291] =
210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
221, 222, 223, 224, 207, 225, 226, 227, 218, 229,
- 231, 232, 233, 208, 234, 235, 236, 209, 237, 210,
+ 231, 232, 233, 208, 234, 236, 235, 209, 235, 210,
211, 212, 213, 214, 215, 216, 217, 218, 219, 221,
- 222, 223, 224, 238, 225, 226, 227, 218, 229, 231,
- 232, 233, 239, 234, 235, 236, 240, 237, 241, 243,
+ 222, 223, 224, 237, 225, 226, 227, 218, 229, 231,
+ 232, 233, 238, 234, 236, 235, 239, 235, 240, 241,
+ 243, 244, 246, 247, 248, 249, 250, 251, 252, 253,
+ 254, 255, 237, 256, 257, 258, 259, 260, 264, 258,
+ 265, 238, 266, 267, 268, 239, 269, 240, 241, 243,
244, 246, 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 238, 257, 258, 259, 260, 264, 258, 265,
- 266, 239, 267, 268, 269, 240, 270, 241, 243, 244,
- 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
- 256, 272, 257, 258, 259, 260, 264, 258, 265, 266,
-
- 273, 267, 268, 269, 274, 270, 275, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 286, 289, 290, 291,
- 272, 292, 293, 294, 295, 298, 300, 302, 303, 273,
- 304, 0, 311, 274, 313, 275, 277, 278, 279, 280,
- 281, 282, 283, 284, 285, 286, 289, 290, 291, 305,
- 292, 293, 294, 295, 298, 300, 302, 303, 314, 304,
- 305, 311, 315, 313, 316, 317, 318, 319, 320, 322,
- 324, 325, 326, 327, 328, 329, 330, 331, 305, 332,
- 334, 336, 337, 338, 339, 340, 341, 314, 343, 305,
- 345, 315, 349, 316, 317, 318, 319, 320, 322, 324,
-
- 325, 326, 327, 328, 329, 330, 331, 350, 332, 334,
- 336, 337, 338, 339, 340, 341, 351, 343, 352, 345,
- 353, 349, 354, 353, 355, 357, 358, 359, 360, 361,
- 362, 363, 364, 365, 366, 367, 350, 368, 369, 370,
- 371, 375, 377, 380, 381, 351, 382, 352, 384, 353,
- 389, 354, 353, 355, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 390, 368, 369, 370, 371,
- 375, 377, 380, 381, 391, 382, 393, 384, 394, 389,
- 396, 397, 398, 399, 400, 402, 403, 404, 405, 407,
- 408, 410, 411, 412, 390, 414, 415, 416, 417, 418,
-
- 420, 422, 423, 391, 424, 393, 425, 394, 427, 396,
- 397, 398, 399, 400, 402, 403, 404, 405, 407, 408,
- 410, 411, 412, 428, 414, 415, 416, 417, 418, 420,
- 422, 423, 429, 424, 433, 425, 434, 427, 437, 438,
- 440, 441, 442, 443, 445, 448, 449, 450, 451, 455,
- 456, 457, 428, 459, 460, 461, 462, 463, 464, 466,
- 469, 429, 470, 433, 471, 434, 472, 437, 438, 440,
- 441, 442, 443, 445, 448, 449, 450, 451, 455, 456,
- 457, 476, 459, 460, 461, 462, 463, 464, 466, 469,
- 477, 470, 480, 471, 481, 472, 482, 483, 484, 485,
-
- 487, 488, 489, 490, 491, 492, 493, 494, 496, 497,
- 476, 499, 501, 502, 503, 505, 506, 507, 508, 477,
- 510, 480, 511, 481, 512, 482, 483, 484, 485, 487,
- 488, 489, 490, 491, 492, 493, 494, 496, 497, 513,
- 499, 501, 502, 503, 505, 506, 507, 508, 515, 510,
- 517, 511, 518, 512, 519, 520, 521, 524, 527, 528,
- 529, 532, 535, 536, 537, 540, 541, 543, 513, 544,
- 545, 546, 547, 549, 0, 0, 0, 515, 0, 517,
- 0, 518, 0, 519, 520, 521, 524, 527, 528, 529,
- 532, 535, 536, 537, 540, 541, 543, 0, 544, 545,
-
- 546, 547, 549, 553, 553, 553, 553, 553, 553, 553,
- 553, 553, 553, 554, 554, 554, 554, 554, 554, 554,
- 554, 554, 554, 555, 555, 555, 555, 555, 555, 555,
- 555, 555, 555, 556, 556, 556, 556, 556, 556, 556,
- 556, 556, 556, 557, 557, 557, 557, 557, 557, 557,
- 557, 557, 557, 558, 558, 559, 559, 559, 0, 559,
- 560, 560, 560, 560, 561, 561, 561, 0, 561, 561,
- 561, 561, 561, 561, 562, 562, 562, 0, 562, 562,
- 562, 562, 0, 562, 563, 563, 563, 563, 563, 563,
- 563, 563, 563, 563, 564, 564, 0, 564, 564, 564,
-
- 564, 564, 564, 564, 565, 0, 565, 565, 565, 565,
- 565, 565, 565, 565, 566, 566, 567, 567, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552
+ 255, 270, 256, 257, 258, 259, 260, 264, 258, 265,
+
+ 272, 266, 267, 268, 273, 269, 274, 275, 277, 278,
+ 279, 280, 281, 282, 283, 284, 285, 286, 289, 290,
+ 270, 291, 292, 293, 294, 295, 298, 300, 302, 272,
+ 303, 304, 311, 273, 313, 274, 275, 277, 278, 279,
+ 280, 281, 282, 283, 284, 285, 286, 289, 290, 314,
+ 291, 292, 293, 294, 295, 298, 300, 302, 305, 303,
+ 304, 311, 315, 313, 316, 317, 318, 319, 320, 305,
+ 321, 323, 325, 326, 327, 328, 329, 330, 314, 331,
+ 332, 333, 335, 337, 338, 339, 340, 305, 341, 342,
+ 344, 315, 346, 316, 317, 318, 319, 320, 305, 321,
+
+ 323, 325, 326, 327, 328, 329, 330, 350, 331, 332,
+ 333, 335, 337, 338, 339, 340, 351, 341, 342, 344,
+ 352, 346, 353, 354, 355, 356, 354, 358, 359, 360,
+ 361, 362, 363, 364, 365, 366, 350, 367, 368, 369,
+ 370, 371, 372, 376, 378, 351, 381, 382, 383, 352,
+ 385, 353, 354, 355, 356, 354, 358, 359, 360, 361,
+ 362, 363, 364, 365, 366, 390, 367, 368, 369, 370,
+ 371, 372, 376, 378, 391, 381, 382, 383, 392, 385,
+ 393, 395, 396, 398, 399, 400, 401, 402, 404, 405,
+ 406, 407, 409, 410, 390, 412, 413, 414, 416, 417,
+
+ 418, 419, 420, 391, 422, 424, 425, 392, 426, 393,
+ 395, 396, 398, 399, 400, 401, 402, 404, 405, 406,
+ 407, 409, 410, 427, 412, 413, 414, 416, 417, 418,
+ 419, 420, 429, 422, 424, 425, 430, 426, 431, 435,
+ 436, 439, 440, 442, 443, 444, 445, 446, 448, 451,
+ 452, 453, 427, 454, 458, 459, 460, 462, 463, 464,
+ 465, 429, 466, 467, 469, 430, 472, 431, 435, 436,
+ 439, 440, 442, 443, 444, 445, 446, 448, 451, 452,
+ 453, 473, 454, 458, 459, 460, 462, 463, 464, 465,
+ 474, 466, 467, 469, 475, 472, 479, 480, 483, 484,
+
+ 485, 486, 487, 488, 489, 491, 492, 493, 494, 495,
+ 473, 496, 497, 498, 500, 501, 503, 505, 507, 474,
+ 508, 510, 511, 475, 512, 479, 480, 483, 484, 485,
+ 486, 487, 488, 489, 491, 492, 493, 494, 495, 513,
+ 496, 497, 498, 500, 501, 503, 505, 507, 515, 508,
+ 510, 511, 516, 512, 517, 518, 520, 522, 523, 524,
+ 525, 526, 529, 532, 533, 534, 537, 540, 513, 541,
+ 542, 545, 546, 548, 549, 550, 551, 515, 552, 554,
+ 0, 516, 0, 517, 518, 520, 522, 523, 524, 525,
+ 526, 529, 532, 533, 534, 537, 540, 0, 541, 542,
+
+ 545, 546, 548, 549, 550, 551, 0, 552, 554, 558,
+ 558, 558, 558, 558, 558, 558, 558, 558, 558, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 560,
+ 560, 560, 560, 560, 560, 560, 560, 560, 560, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 562,
+ 562, 562, 562, 562, 562, 562, 562, 562, 562, 563,
+ 563, 564, 564, 564, 0, 564, 565, 565, 565, 565,
+ 566, 566, 566, 0, 566, 566, 566, 566, 566, 566,
+ 567, 567, 567, 0, 567, 567, 567, 567, 0, 567,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+
+ 569, 569, 0, 569, 569, 569, 569, 569, 569, 569,
+ 570, 0, 570, 570, 570, 570, 570, 570, 570, 570,
+ 571, 571, 572, 572, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557
+
} ;
/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[153] =
+static yyconst flex_int32_t yy_rule_can_match_eol[154] =
{ 0,
0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -930,8 +918,8 @@ static yyconst flex_int32_t yy_rule_can_match_eol[153] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, };
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, };
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
@@ -996,6 +984,7 @@ class ParseOrderBy;
class ParseOrderByItem;
class ParsePartitionClause;
class ParsePredicate;
+class ParsePriority;
class ParseSample;
class ParseScalarLiteral;
class ParseSearchedWhenClause;
@@ -1048,7 +1037,7 @@ class UnaryOperation;
-#line 1052 "SqlLexer_gen.cpp"
+#line 1041 "SqlLexer_gen.cpp"
#define INITIAL 0
#define CONDITION_SQL 1
@@ -1134,11 +1123,11 @@ void quickstep_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
FILE *quickstep_yyget_in (yyscan_t yyscanner );
-void quickstep_yyset_in (FILE * _in_str ,yyscan_t yyscanner );
+void quickstep_yyset_in (FILE * in_str ,yyscan_t yyscanner );
FILE *quickstep_yyget_out (yyscan_t yyscanner );
-void quickstep_yyset_out (FILE * _out_str ,yyscan_t yyscanner );
+void quickstep_yyset_out (FILE * out_str ,yyscan_t yyscanner );
yy_size_t quickstep_yyget_leng (yyscan_t yyscanner );
@@ -1146,11 +1135,11 @@ char *quickstep_yyget_text (yyscan_t yyscanner );
int quickstep_yyget_lineno (yyscan_t yyscanner );
-void quickstep_yyset_lineno (int _line_number ,yyscan_t yyscanner );
+void quickstep_yyset_lineno (int line_number ,yyscan_t yyscanner );
int quickstep_yyget_column (yyscan_t yyscanner );
-void quickstep_yyset_column (int _column_no ,yyscan_t yyscanner );
+void quickstep_yyset_column (int column_no ,yyscan_t yyscanner );
YYSTYPE * quickstep_yyget_lval (yyscan_t yyscanner );
@@ -1172,10 +1161,6 @@ extern int quickstep_yywrap (yyscan_t yyscanner );
#endif
#endif
-#ifndef YY_NO_UNPUT
-
-#endif
-
#ifndef yytext_ptr
static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
#endif
@@ -1196,12 +1181,7 @@ static int input (yyscan_t yyscanner );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@@ -1290,7 +1270,7 @@ extern int quickstep_yylex \
/* Code executed at the end of each rule. */
#ifndef YY_BREAK
-#define YY_BREAK /*LINTED*/break;
+#define YY_BREAK break;
#endif
#define YY_RULE_SETUP \
@@ -1300,11 +1280,16 @@ extern int quickstep_yylex \
*/
YY_DECL
{
- yy_state_type yy_current_state;
- char *yy_cp, *yy_bp;
- int yy_act;
+ register yy_state_type yy_current_state;
+ register char *yy_cp, *yy_bp;
+ register int yy_act;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+#line 129 "../SqlLexer.lpp"
+
+
+#line 1292 "SqlLexer_gen.cpp"
+
yylval = yylval_param;
yylloc = yylloc_param;
@@ -1335,13 +1320,7 @@ YY_DECL
quickstep_yy_load_buffer_state(yyscanner );
}
- {
-#line 128 "../SqlLexer.lpp"
-
-
-#line 1343 "SqlLexer_gen.cpp"
-
- while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
+ while ( 1 ) /* loops until end-of-file is reached */
{
yy_cp = yyg->yy_c_buf_p;
@@ -1357,7 +1336,7 @@ YY_DECL
yy_match:
do
{
- YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
if ( yy_accept[yy_current_state] )
{
yyg->yy_last_accepting_state = yy_current_state;
@@ -1366,13 +1345,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 553 )
+ if ( yy_current_state >= 558 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 552 );
+ while ( yy_current_state != 557 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -1383,7 +1362,7 @@ yy_find_action:
if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
{
- yy_size_t yyl;
+ int yyl;
for ( yyl = 0; yyl < yyleng; ++yyl )
if ( yytext[yyl] == '\n' )
@@ -1406,7 +1385,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 131 "../SqlLexer.lpp"
+#line 132 "../SqlLexer.lpp"
{
/* A forward slash character represents a system command. */
BEGIN(CONDITION_COMMAND);
@@ -1418,7 +1397,7 @@ YY_RULE_SETUP
case 2:
/* rule 2 can match eol */
YY_RULE_SETUP
-#line 139 "../SqlLexer.lpp"
+#line 140 "../SqlLexer.lpp"
{
/* This is a SQL command. Place the char back and process normally. */
yyless(0);
@@ -1430,7 +1409,7 @@ YY_RULE_SETUP
case 3:
YY_RULE_SETUP
-#line 148 "../SqlLexer.lpp"
+#line 149 "../SqlLexer.lpp"
{
/* This is a command argument. */
yylval->string_value_ = new quickstep::ParseString(
@@ -1440,7 +1419,7 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 155 "../SqlLexer.lpp"
+#line 156 "../SqlLexer.lpp"
{
/* Ignore whitespace. */
}
@@ -1448,7 +1427,7 @@ YY_RULE_SETUP
case 5:
/* rule 5 can match eol */
YY_RULE_SETUP
-#line 159 "../SqlLexer.lpp"
+#line 160 "../SqlLexer.lpp"
{
/* Newline reverts the lexer to the initial state. */
yycolumn = 0;
@@ -1460,627 +1439,632 @@ YY_RULE_SETUP
case 6:
YY_RULE_SETUP
-#line 168 "../SqlLexer.lpp"
+#line 169 "../SqlLexer.lpp"
return TOKEN_ADD;
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 169 "../SqlLexer.lpp"
+#line 170 "../SqlLexer.lpp"
return TOKEN_ALL;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 170 "../SqlLexer.lpp"
+#line 171 "../SqlLexer.lpp"
return TOKEN_ALTER;
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 171 "../SqlLexer.lpp"
+#line 172 "../SqlLexer.lpp"
return TOKEN_AND;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 172 "../SqlLexer.lpp"
+#line 173 "../SqlLexer.lpp"
return TOKEN_AS;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 173 "../SqlLexer.lpp"
+#line 174 "../SqlLexer.lpp"
return TOKEN_ASC;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 174 "../SqlLexer.lpp"
+#line 175 "../SqlLexer.lpp"
return TOKEN_ASC;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 175 "../SqlLexer.lpp"
+#line 176 "../SqlLexer.lpp"
return TOKEN_BETWEEN;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 176 "../SqlLexer.lpp"
+#line 177 "../SqlLexer.lpp"
return TOKEN_BIGINT;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 177 "../SqlLexer.lpp"
+#line 178 "../SqlLexer.lpp"
return TOKEN_BIT;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 178 "../SqlLexer.lpp"
+#line 179 "../SqlLexer.lpp"
return TOKEN_BITWEAVING;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 179 "../SqlLexer.lpp"
+#line 180 "../SqlLexer.lpp"
return TOKEN_BLOCKPROPERTIES;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 180 "../SqlLexer.lpp"
+#line 181 "../SqlLexer.lpp"
return TOKEN_BLOCKSAMPLE;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 181 "../SqlLexer.lpp"
+#line 182 "../SqlLexer.lpp"
return TOKEN_BLOOM_FILTER;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 182 "../SqlLexer.lpp"
+#line 183 "../SqlLexer.lpp"
return TOKEN_CASE;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 183 "../SqlLexer.lpp"
+#line 184 "../SqlLexer.lpp"
return TOKEN_CSB_TREE;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 184 "../SqlLexer.lpp"
+#line 185 "../SqlLexer.lpp"
return TOKEN_BY;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 185 "../SqlLexer.lpp"
+#line 186 "../SqlLexer.lpp"
return TOKEN_CHARACTER;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 186 "../SqlLexer.lpp"
+#line 187 "../SqlLexer.lpp"
return TOKEN_CHARACTER;
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 187 "../SqlLexer.lpp"
+#line 188 "../SqlLexer.lpp"
return TOKEN_CHECK;
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 188 "../SqlLexer.lpp"
+#line 189 "../SqlLexer.lpp"
return TOKEN_COLUMN;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 189 "../SqlLexer.lpp"
+#line 190 "../SqlLexer.lpp"
return TOKEN_CONSTRAINT;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 190 "../SqlLexer.lpp"
+#line 191 "../SqlLexer.lpp"
return TOKEN_COPY;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 191 "../SqlLexer.lpp"
+#line 192 "../SqlLexer.lpp"
return TOKEN_CREATE;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 192 "../SqlLexer.lpp"
+#line 193 "../SqlLexer.lpp"
return TOKEN_DATE;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 193 "../SqlLexer.lpp"
+#line 194 "../SqlLexer.lpp"
return TOKEN_DATETIME;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 194 "../SqlLexer.lpp"
+#line 195 "../SqlLexer.lpp"
return TOKEN_DAY;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 195 "../SqlLexer.lpp"
+#line 196 "../SqlLexer.lpp"
return TOKEN_DECIMAL;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 196 "../SqlLexer.lpp"
+#line 197 "../SqlLexer.lpp"
return TOKEN_DEFAULT;
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 197 "../SqlLexer.lpp"
+#line 198 "../SqlLexer.lpp"
return TOKEN_DELETE;
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 198 "../SqlLexer.lpp"
+#line 199 "../SqlLexer.lpp"
return TOKEN_DELIMITER;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 199 "../SqlLexer.lpp"
+#line 200 "../SqlLexer.lpp"
return TOKEN_DESC;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 200 "../SqlLexer.lpp"
+#line 201 "../SqlLexer.lpp"
return TOKEN_DESC;
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 201 "../SqlLexer.lpp"
+#line 202 "../SqlLexer.lpp"
return TOKEN_DISTINCT;
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 202 "../SqlLexer.lpp"
+#line 203 "../SqlLexer.lpp"
return TOKEN_DOUBLE;
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 203 "../SqlLexer.lpp"
+#line 204 "../SqlLexer.lpp"
return TOKEN_DROP;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 204 "../SqlLexer.lpp"
+#line 205 "../SqlLexer.lpp"
return TOKEN_ELSE;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 205 "../SqlLexer.lpp"
+#line 206 "../SqlLexer.lpp"
return TOKEN_END;
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 206 "../SqlLexer.lpp"
+#line 207 "../SqlLexer.lpp"
return TOKEN_ESCAPE_STRINGS;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 207 "../SqlLexer.lpp"
+#line 208 "../SqlLexer.lpp"
return TOKEN_EXISTS;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 208 "../SqlLexer.lpp"
+#line 209 "../SqlLexer.lpp"
return TOKEN_EXTRACT;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 209 "../SqlLexer.lpp"
+#line 210 "../SqlLexer.lpp"
return TOKEN_FALSE;
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 210 "../SqlLexer.lpp"
+#line 211 "../SqlLexer.lpp"
return TOKEN_FIRST;
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 211 "../SqlLexer.lpp"
+#line 212 "../SqlLexer.lpp"
return TOKEN_FLOAT;
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 212 "../SqlLexer.lpp"
+#line 213 "../SqlLexer.lpp"
return TOKEN_FOR;
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 213 "../SqlLexer.lpp"
+#line 214 "../SqlLexer.lpp"
return TOKEN_FOREIGN;
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 214 "../SqlLexer.lpp"
+#line 215 "../SqlLexer.lpp"
return TOKEN_FROM;
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 215 "../SqlLexer.lpp"
+#line 216 "../SqlLexer.lpp"
return TOKEN_FULL;
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 216 "../SqlLexer.lpp"
+#line 217 "../SqlLexer.lpp"
return TOKEN_GROUP;
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 217 "../SqlLexer.lpp"
+#line 218 "../SqlLexer.lpp"
return TOKEN_HASH;
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 218 "../SqlLexer.lpp"
+#line 219 "../SqlLexer.lpp"
return TOKEN_HAVING;
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 219 "../SqlLexer.lpp"
+#line 220 "../SqlLexer.lpp"
return TOKEN_HOUR;
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 220 "../SqlLexer.lpp"
+#line 221 "../SqlLexer.lpp"
return TOKEN_IN;
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 221 "../SqlLexer.lpp"
+#line 222 "../SqlLexer.lpp"
return TOKEN_INDEX;
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 222 "../SqlLexer.lpp"
+#line 223 "../SqlLexer.lpp"
return TOKEN_INNER;
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 223 "../SqlLexer.lpp"
+#line 224 "../SqlLexer.lpp"
return TOKEN_INSERT;
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 224 "../SqlLexer.lpp"
+#line 225 "../SqlLexer.lpp"
return TOKEN_INTEGER;
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 225 "../SqlLexer.lpp"
+#line 226 "../SqlLexer.lpp"
return TOKEN_INTEGER;
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 226 "../SqlLexer.lpp"
+#line 227 "../SqlLexer.lpp"
return TOKEN_INTERVAL;
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 227 "../SqlLexer.lpp"
+#line 228 "../SqlLexer.lpp"
return TOKEN_INTO;
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 228 "../SqlLexer.lpp"
+#line 229 "../SqlLexer.lpp"
return TOKEN_IS;
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 229 "../SqlLexer.lpp"
+#line 230 "../SqlLexer.lpp"
return TOKEN_JOIN;
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 230 "../SqlLexer.lpp"
+#line 231 "../SqlLexer.lpp"
return TOKEN_KEY;
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 231 "../SqlLexer.lpp"
+#line 232 "../SqlLexer.lpp"
return TOKEN_LAST;
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 232 "../SqlLexer.lpp"
+#line 233 "../SqlLexer.lpp"
return TOKEN_LEFT;
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 233 "../SqlLexer.lpp"
+#line 234 "../SqlLexer.lpp"
return TOKEN_LIKE;
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 234 "../SqlLexer.lpp"
+#line 235 "../SqlLexer.lpp"
return TOKEN_LIMIT;
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 235 "../SqlLexer.lpp"
+#line 236 "../SqlLexer.lpp"
return TOKEN_LONG;
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 236 "../SqlLexer.lpp"
+#line 237 "../SqlLexer.lpp"
return TOKEN_MINUTE;
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 237 "../SqlLexer.lpp"
+#line 238 "../SqlLexer.lpp"
return TOKEN_MONTH;
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 238 "../SqlLexer.lpp"
+#line 239 "../SqlLexer.lpp"
return TOKEN_NOT;
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 239 "../SqlLexer.lpp"
+#line 240 "../SqlLexer.lpp"
return TOKEN_NULL;
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 240 "../SqlLexer.lpp"
+#line 241 "../SqlLexer.lpp"
return TOKEN_NULLS;
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 241 "../SqlLexer.lpp"
+#line 242 "../SqlLexer.lpp"
return TOKEN_OFF;
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 242 "../SqlLexer.lpp"
+#line 243 "../SqlLexer.lpp"
return TOKEN_ON;
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 243 "../SqlLexer.lpp"
+#line 244 "../SqlLexer.lpp"
return TOKEN_OR;
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 244 "../SqlLexer.lpp"
+#line 245 "../SqlLexer.lpp"
return TOKEN_ORDER;
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 245 "../SqlLexer.lpp"
+#line 246 "../SqlLexer.lpp"
return TOKEN_OUTER;
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 246 "../SqlLexer.lpp"
+#line 247 "../SqlLexer.lpp"
return TOKEN_PARTITION;
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 247 "../SqlLexer.lpp"
+#line 248 "../SqlLexer.lpp"
return TOKEN_PARTITIONS;
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 248 "../SqlLexer.lpp"
+#line 249 "../SqlLexer.lpp"
return TOKEN_PERCENT;
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 249 "../SqlLexer.lpp"
+#line 250 "../SqlLexer.lpp"
return TOKEN_PRIMARY;
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 250 "../SqlLexer.lpp"
-return TOKEN_QUIT;
+#line 251 "../SqlLexer.lpp"
+return TOKEN_PRIORITY;
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 251 "../SqlLexer.lpp"
-return TOKEN_RANGE;
+#line 252 "../SqlLexer.lpp"
+return TOKEN_QUIT;
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 252 "../SqlLexer.lpp"
-return TOKEN_REAL;
+#line 253 "../SqlLexer.lpp"
+return TOKEN_RANGE;
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 253 "../SqlLexer.lpp"
-return TOKEN_REFERENCES;
+#line 254 "../SqlLexer.lpp"
+return TOKEN_REAL;
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 254 "../SqlLexer.lpp"
-return TOKEN_REGEXP;
+#line 255 "../SqlLexer.lpp"
+return TOKEN_REFERENCES;
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 255 "../SqlLexer.lpp"
-return TOKEN_RIGHT;
+#line 256 "../SqlLexer.lpp"
+return TOKEN_REGEXP;
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 256 "../SqlLexer.lpp"
-return TOKEN_ROW_DELIMITER;
+#line 257 "../SqlLexer.lpp"
+return TOKEN_RIGHT;
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 257 "../SqlLexer.lpp"
-return TOKEN_SECOND;
+#line 258 "../SqlLexer.lpp"
+return TOKEN_ROW_DELIMITER;
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 258 "../SqlLexer.lpp"
-return TOKEN_SELECT;
+#line 259 "../SqlLexer.lpp"
+return TOKEN_SECOND;
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 259 "../SqlLexer.lpp"
-return TOKEN_SET;
+#line 260 "../SqlLexer.lpp"
+return TOKEN_SELECT;
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 260 "../SqlLexer.lpp"
-return TOKEN_SMA;
+#line 261 "../SqlLexer.lpp"
+return TOKEN_SET;
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 261 "../SqlLexer.lpp"
-return TOKEN_SMALLINT;
+#line 262 "../SqlLexer.lpp"
+return TOKEN_SMA;
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 262 "../SqlLexer.lpp"
-return TOKEN_SUBSTRING;
+#line 263 "../SqlLexer.lpp"
+return TOKEN_SMALLINT;
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 263 "../SqlLexer.lpp"
-return TOKEN_TABLE;
+#line 264 "../SqlLexer.lpp"
+return TOKEN_SUBSTRING;
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 264 "../SqlLexer.lpp"
-return TOKEN_THEN;
+#line 265 "../SqlLexer.lpp"
+return TOKEN_TABLE;
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 265 "../SqlLexer.lpp"
-return TOKEN_TIME;
+#line 266 "../SqlLexer.lpp"
+return TOKEN_THEN;
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 266 "../SqlLexer.lpp"
-return TOKEN_TIMESTAMP;
+#line 267 "../SqlLexer.lpp"
+return TOKEN_TIME;
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 267 "../SqlLexer.lpp"
-return TOKEN_TRUE;
+#line 268 "../SqlLexer.lpp"
+return TOKEN_TIMESTAMP;
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 268 "../SqlLexer.lpp"
-return TOKEN_TUPLESAMPLE;
+#line 269 "../SqlLexer.lpp"
+return TOKEN_TRUE;
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 269 "../SqlLexer.lpp"
-return TOKEN_UNIQUE;
+#line 270 "../SqlLexer.lpp"
+return TOKEN_TUPLESAMPLE;
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 270 "../SqlLexer.lpp"
-return TOKEN_UPDATE;
+#line 271 "../SqlLexer.lpp"
+return TOKEN_UNIQUE;
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 271 "../SqlLexer.lpp"
-return TOKEN_USING;
+#line 272 "../SqlLexer.lpp"
+return TOKEN_UPDATE;
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 272 "../SqlLexer.lpp"
-return TOKEN_VALUES;
+#line 273 "../SqlLexer.lpp"
+return TOKEN_USING;
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 273 "../SqlLexer.lpp"
-return TOKEN_VARCHAR;
+#line 274 "../SqlLexer.lpp"
+return TOKEN_VALUES;
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 274 "../SqlLexer.lpp"
-return TOKEN_WHEN;
+#line 275 "../SqlLexer.lpp"
+return TOKEN_VARCHAR;
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 275 "../SqlLexer.lpp"
-return TOKEN_WHERE;
+#line 276 "../SqlLexer.lpp"
+return TOKEN_WHEN;
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 276 "../SqlLexer.lpp"
-return TOKEN_WITH;
+#line 277 "../SqlLexer.lpp"
+return TOKEN_WHERE;
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 277 "../SqlLexer.lpp"
-return TOKEN_YEAR;
+#line 278 "../SqlLexer.lpp"
+return TOKEN_WITH;
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 278 "../SqlLexer.lpp"
-return TOKEN_YEARMONTH;
+#line 279 "../SqlLexer.lpp"
+return TOKEN_YEAR;
YY_BREAK
case 117:
YY_RULE_SETUP
#line 280 "../SqlLexer.lpp"
-return TOKEN_EQ;
+return TOKEN_YEARMONTH;
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 281 "../SqlLexer.lpp"
-return TOKEN_NEQ;
+#line 282 "../SqlLexer.lpp"
+return TOKEN_EQ;
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 282 "../SqlLexer.lpp"
+#line 283 "../SqlLexer.lpp"
return TOKEN_NEQ;
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 283 "../SqlLexer.lpp"
-return TOKEN_LT;
+#line 284 "../SqlLexer.lpp"
+return TOKEN_NEQ;
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 284 "../SqlLexer.lpp"
-return TOKEN_GT;
+#line 285 "../SqlLexer.lpp"
+return TOKEN_LT;
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 285 "../SqlLexer.lpp"
-return TOKEN_LEQ;
+#line 286 "../SqlLexer.lpp"
+return TOKEN_GT;
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 286 "../SqlLexer.lpp"
-return TOKEN_GEQ;
+#line 287 "../SqlLexer.lpp"
+return TOKEN_LEQ;
YY_BREAK
case 124:
YY_RULE_SETUP
#line 288 "../SqlLexer.lpp"
-return yytext[0];
+return TOKEN_GEQ;
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 289 "../SqlLexer.lpp"
+#line 290 "../SqlLexer.lpp"
+return yytext[0];
+ YY_BREAK
+case 126:
+YY_RULE_SETUP
+#line 291 "../SqlLexer.lpp"
return yytext[0];
YY_BREAK
/**
* Quoted strings. Prefacing a string with an 'e' or 'E' causes escape
* sequences to be processed (as in PostgreSQL).
**/
-case 126:
+case 127:
YY_RULE_SETUP
-#line 295 "../SqlLexer.lpp"
+#line 297 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(yylloc->first_line, yylloc->first_column);
BEGIN(CONDITION_STRING_SINGLE_QUOTED_ESCAPED);
}
YY_BREAK
-case 127:
+case 128:
YY_RULE_SETUP
-#line 300 "../SqlLexer.lpp"
+#line 302 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(yylloc->first_line, yylloc->first_column);
BEGIN(CONDITION_STRING_SINGLE_QUOTED);
}
YY_BREAK
-case 128:
+case 129:
YY_RULE_SETUP
-#line 305 "../SqlLexer.lpp"
+#line 307 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(yylloc->first_line, yylloc->first_column);
BEGIN(CONDITION_STRING_DOUBLE_QUOTED);
@@ -2092,7 +2076,7 @@ YY_RULE_SETUP
case YY_STATE_EOF(CONDITION_STRING_SINGLE_QUOTED):
case YY_STATE_EOF(CONDITION_STRING_SINGLE_QUOTED_ESCAPED):
case YY_STATE_EOF(CONDITION_STRING_DOUBLE_QUOTED):
-#line 314 "../SqlLexer.lpp"
+#line 316 "../SqlLexer.lpp"
{
delete yylval->string_value_;
BEGIN(INITIAL);
@@ -2103,9 +2087,9 @@ case YY_STATE_EOF(CONDITION_STRING_DOUBLE_QUOTED):
/* Process escape sequences. */
-case 129:
+case 130:
YY_RULE_SETUP
-#line 324 "../SqlLexer.lpp"
+#line 326 "../SqlLexer.lpp"
{
/* Octal code */
unsigned int code;
@@ -2119,9 +2103,9 @@ YY_RULE_SETUP
yylval->string_value_->push_back(code);
}
YY_BREAK
-case 130:
+case 131:
YY_RULE_SETUP
-#line 336 "../SqlLexer.lpp"
+#line 338 "../SqlLexer.lpp"
{
/* Hexadecimal code */
unsigned int code;
@@ -2129,9 +2113,9 @@ YY_RULE_SETUP
yylval->string_value_->push_back(code);
}
YY_BREAK
-case 131:
+case 132:
YY_RULE_SETUP
-#line 342 "../SqlLexer.lpp"
+#line 344 "../SqlLexer.lpp"
{
/* A numeric escape sequence that isn't correctly specified. */
delete yylval->string_value_;
@@ -2140,58 +2124,58 @@ YY_RULE_SETUP
return TOKEN_LEX_ERROR;
}
YY_BREAK
-case 132:
+case 133:
YY_RULE_SETUP
-#line 349 "../SqlLexer.lpp"
+#line 351 "../SqlLexer.lpp"
{
/* Backspace */
yylval->string_value_->push_back('\b');
}
YY_BREAK
-case 133:
+case 134:
YY_RULE_SETUP
-#line 353 "../SqlLexer.lpp"
+#line 355 "../SqlLexer.lpp"
{
/* Form-feed */
yylval->string_value_->push_back('\f');
}
YY_BREAK
-case 134:
+case 135:
YY_RULE_SETUP
-#line 357 "../SqlLexer.lpp"
+#line 359 "../SqlLexer.lpp"
{
/* Newline */
yylval->string_value_->push_back('\n');
}
YY_BREAK
-case 135:
+case 136:
YY_RULE_SETUP
-#line 361 "../SqlLexer.lpp"
+#line 363 "../SqlLexer.lpp"
{
/* Carriage-return */
yylval->string_value_->push_back('\r');
}
YY_BREAK
-case 136:
+case 137:
YY_RULE_SETUP
-#line 365 "../SqlLexer.lpp"
+#line 367 "../SqlLexer.lpp"
{
/* Horizontal Tab */
yylval->string_value_->push_back('\t');
}
YY_BREAK
-case 137:
-/* rule 137 can match eol */
+case 138:
+/* rule 138 can match eol */
YY_RULE_SETUP
-#line 369 "../SqlLexer.lpp"
+#line 371 "../SqlLexer.lpp"
{
/* Any other character (including actual newline or carriage return) */
yylval->string_value_->push_back(yytext[1]);
}
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
-#line 373 "../SqlLexer.lpp"
+#line 375 "../SqlLexer.lpp"
{
/* This should only be encountered right before an EOF. */
delete yylval->string_value_;
@@ -2202,17 +2186,17 @@ YY_RULE_SETUP
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
-#line 383 "../SqlLexer.lpp"
+#line 385 "../SqlLexer.lpp"
{
/* Two quotes in a row become a single quote (this is specified by the SQL standard). */
yylval->string_value_->push_back('\'');
}
YY_BREAK
-case 140:
+case 141:
YY_RULE_SETUP
-#line 387 "../SqlLexer.lpp"
+#line 389 "../SqlLexer.lpp"
{
/* End string */
BEGIN(CONDITION_SQL);
@@ -2221,17 +2205,17 @@ YY_RULE_SETUP
YY_BREAK
-case 141:
+case 142:
YY_RULE_SETUP
-#line 395 "../SqlLexer.lpp"
+#line 397 "../SqlLexer.lpp"
{
/* Two quotes in a row become a single quote (this is specified by the SQL standard). */
yylval->string_value_->push_back('"');
}
YY_BREAK
-case 142:
+case 143:
YY_RULE_SETUP
-#line 399 "../SqlLexer.lpp"
+#line 401 "../SqlLexer.lpp"
{
/* End string */
BEGIN(CONDITION_SQL);
@@ -2239,94 +2223,94 @@ YY_RULE_SETUP
}
YY_BREAK
-case 143:
-/* rule 143 can match eol */
+case 144:
+/* rule 144 can match eol */
YY_RULE_SETUP
-#line 406 "../SqlLexer.lpp"
+#line 408 "../SqlLexer.lpp"
{
/* Scan up to a quote. */
yylval->string_value_->append(yytext, yyleng);
}
YY_BREAK
-case 144:
-/* rule 144 can match eol */
+case 145:
+/* rule 145 can match eol */
YY_RULE_SETUP
-#line 411 "../SqlLexer.lpp"
+#line 413 "../SqlLexer.lpp"
{
/* Scan up to a quote or escape sequence. */
yylval->string_value_->append(yytext, yyleng);
}
YY_BREAK
-case 145:
-/* rule 145 can match eol */
+case 146:
+/* rule 146 can match eol */
YY_RULE_SETUP
-#line 416 "../SqlLexer.lpp"
+#line 418 "../SqlLexer.lpp"
{
/* Scan up to a quote. */
yylval->string_value_->append(yytext, yyleng);
}
YY_BREAK
-case 146:
+case 147:
YY_RULE_SETUP
-#line 422 "../SqlLexer.lpp"
+#line 424 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(
yylloc->first_line, yylloc->first_column, std::string(yytext, yyleng));
return TOKEN_NAME;
}
YY_BREAK
-case 147:
+case 148:
YY_RULE_SETUP
-#line 428 "../SqlLexer.lpp"
+#line 430 "../SqlLexer.lpp"
{
yylval->numeric_literal_value_ = new quickstep::NumericParseLiteralValue(
yylloc->first_line, yylloc->first_column, yytext);
return TOKEN_UNSIGNED_NUMVAL;
}
YY_BREAK
-case 148:
-YY_RULE_SETUP
-#line 434 "../SqlLexer.lpp"
-/* comment */
- YY_BREAK
case 149:
-/* rule 149 can match eol */
YY_RULE_SETUP
#line 436 "../SqlLexer.lpp"
-{ yycolumn = 0; }
+/* comment */
YY_BREAK
case 150:
+/* rule 150 can match eol */
YY_RULE_SETUP
#line 438 "../SqlLexer.lpp"
+{ yycolumn = 0; }
+ YY_BREAK
+case 151:
+YY_RULE_SETUP
+#line 440 "../SqlLexer.lpp"
; /* ignore white space */
YY_BREAK
/* CONDITION_SQL */
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(CONDITION_COMMAND):
case YY_STATE_EOF(CONDITION_SQL):
-#line 442 "../SqlLexer.lpp"
+#line 444 "../SqlLexer.lpp"
{
/* All conditions except for mutli-state string extracting conditions. */
BEGIN(INITIAL);
return TOKEN_EOF;
}
YY_BREAK
-case 151:
+case 152:
YY_RULE_SETUP
-#line 448 "../SqlLexer.lpp"
+#line 450 "../SqlLexer.lpp"
{
BEGIN(INITIAL);
quickstep_yyerror(NULL, yyscanner, NULL, "illegal character");
return TOKEN_LEX_ERROR;
}
YY_BREAK
-case 152:
+case 153:
YY_RULE_SETUP
-#line 454 "../SqlLexer.lpp"
+#line 456 "../SqlLexer.lpp"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 2330 "SqlLexer_gen.cpp"
+#line 2314 "SqlLexer_gen.cpp"
case YY_END_OF_BUFFER:
{
@@ -2456,7 +2440,6 @@ YY_FATAL_ERROR( "flex scanner jammed" );
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
- } /* end of user's declarations */
} /* end of quickstep_yylex */
/* yy_get_next_buffer - try to read in a new buffer
@@ -2469,9 +2452,9 @@ YY_FATAL_ERROR( "flex scanner jammed" );
static int yy_get_next_buffer (yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- char *source = yyg->yytext_ptr;
- yy_size_t number_to_move, i;
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+ register char *source = yyg->yytext_ptr;
+ register int number_to_move, i;
int ret_val;
if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
@@ -2500,7 +2483,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
/* Try to read more data. */
/* First move last chars to start of buffer. */
- number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
+ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
@@ -2603,15 +2586,15 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
{
- yy_state_type yy_current_state;
- char *yy_cp;
+ register yy_state_type yy_current_state;
+ register char *yy_cp;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
yy_current_state = yyg->yy_start;
for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
{
- YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
if ( yy_accept[yy_current_state] )
{
yyg->yy_last_accepting_state = yy_current_state;
@@ -2620,7 +2603,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 553 )
+ if ( yy_current_state >= 558 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2636,11 +2619,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
*/
static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
{
- int yy_is_jam;
+ register int yy_is_jam;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
- char *yy_cp = yyg->yy_c_buf_p;
+ register char *yy_cp = yyg->yy_c_buf_p;
- YY_CHAR yy_c = 1;
+ register YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] )
{
yyg->yy_last_accepting_state = yy_current_state;
@@ -2649,20 +2632,16 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 553 )
+ if ( yy_current_state >= 558 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 552);
+ yy_is_jam = (yy_current_state == 557);
(void)yyg;
return yy_is_jam ? 0 : yy_current_state;
}
-#ifndef YY_NO_UNPUT
-
-#endif
-
#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput (yyscan_t yyscanner)
@@ -2823,7 +2802,7 @@ static void quickstep_yy_load_buffer_state (yyscan_t yyscanner)
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in quickstep_yy_create_buffer()" );
- b->yy_buf_size = (yy_size_t)size;
+ b->yy_buf_size = size;
/* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters.
@@ -2984,7 +2963,7 @@ static void quickstep_yyensure_buffer_stack (yyscan_t yyscanner)
* scanner will even need a stack. We use 2 instead of 1 to avoid an
* immediate realloc on the next call.
*/
- num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
+ num_to_alloc = 1;
yyg->yy_buffer_stack = (struct yy_buffer_state**)quickstep_yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
, yyscanner);
@@ -3001,7 +2980,7 @@ static void quickstep_yyensure_buffer_stack (yyscan_t yyscanner)
if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
/* Increase the buffer to prepare for a possible push. */
- yy_size_t grow_size = 8 /* arbitrary grow size */;
+ int grow_size = 8 /* arbitrary grow size */;
num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
yyg->yy_buffer_stack = (struct yy_buffer_state**)quickstep_yyrealloc
@@ -3078,7 +3057,7 @@ YY_BUFFER_STATE quickstep_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yy
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
- yy_size_t i;
+ int i;
/* Get memory for full buffer, including space for trailing EOB's. */
n = _yybytes_len + 2;
@@ -3109,9 +3088,7 @@ YY_BUFFER_STATE quickstep_yy_scan_bytes (yyconst char * yybytes, yy_size_t _yy
static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
{
- struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- (void)yyg;
- (void) fprintf( stderr, "%s\n", msg );
+ (void) fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
}
@@ -3217,10 +3194,10 @@ void quickstep_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
}
/** Set the current line number.
- * @param _line_number line number
+ * @param line_number
* @param yyscanner The scanner object.
*/
-void quickstep_yyset_lineno (int _line_number , yyscan_t yyscanner)
+void quickstep_yyset_lineno (int line_number , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
@@ -3228,14 +3205,14 @@ void quickstep_yyset_lineno (int _line_number , yyscan_t yyscanner)
if (! YY_CURRENT_BUFFER )
YY_FATAL_ERROR( "quickstep_yyset_lineno called with no buffer" );
- yylineno = _line_number;
+ yylineno = line_number;
}
/** Set the current column.
- * @param _column_no column number
+ * @param line_number
* @param yyscanner The scanner object.
*/
-void quickstep_yyset_column (int _column_no , yyscan_t yyscanner)
+void quickstep_yyset_column (int column_no , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
@@ -3243,25 +3220,25 @@ void quickstep_yyset_column (int _column_no , yyscan_t yyscanner)
if (! YY_CURRENT_BUFFER )
YY_FATAL_ERROR( "quickstep_yyset_column called with no buffer" );
- yycolumn = _column_no;
+ yycolumn = column_no;
}
/** Set the input stream. This does not discard the current
* input buffer.
- * @param _in_str A readable stream.
+ * @param in_str A readable stream.
* @param yyscanner The scanner object.
* @see quickstep_yy_switch_to_buffer
*/
-void quickstep_yyset_in (FILE * _in_str , yyscan_t yyscanner)
+void quickstep_yyset_in (FILE * in_str , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- yyin = _in_str ;
+ yyin = in_str ;
}
-void quickstep_yyset_out (FILE * _out_str , yyscan_t yyscanner)
+void quickstep_yyset_out (FILE * out_str , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- yyout = _out_str ;
+ yyout = out_str ;
}
int quickstep_yyget_debug (yyscan_t yyscanner)
@@ -3270,10 +3247,10 @@ int quickstep_yyget_debug (yyscan_t yyscanner)
return yy_flex_debug;
}
-void quickstep_yyset_debug (int _bdebug , yyscan_t yyscanner)
+void quickstep_yyset_debug (int bdebug , yyscan_t yyscanner)
{
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- yy_flex_debug = _bdebug ;
+ yy_flex_debug = bdebug ;
}
/* Accessor methods for yylval and yylloc */
@@ -3436,10 +3413,7 @@ int quickstep_yylex_destroy (yyscan_t yyscanner)
#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
{
- struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- (void)yyg;
-
- int i;
+ register int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
@@ -3448,7 +3422,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yysca
#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
{
- int n;
+ register int n;
for ( n = 0; s[n]; ++n )
;
@@ -3458,16 +3432,11 @@ static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
void *quickstep_yyalloc (yy_size_t size , yyscan_t yyscanner)
{
- struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- (void)yyg;
return (void *) malloc( size );
}
void *quickstep_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
{
- struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- (void)yyg;
-
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
@@ -3480,14 +3449,12 @@ void *quickstep_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
void quickstep_yyfree (void * ptr , yyscan_t yyscanner)
{
- struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
- (void)yyg;
free( (char *) ptr ); /* see quickstep_yyrealloc() for (char *) cast */
}
#define YYTABLES_NAME "yytables"
-#line 454 "../SqlLexer.lpp"
+#line 456 "../SqlLexer.lpp"
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/preprocessed/SqlLexer_gen.hpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlLexer_gen.hpp b/parser/preprocessed/SqlLexer_gen.hpp
index c14559b..e1a9b28 100644
--- a/parser/preprocessed/SqlLexer_gen.hpp
+++ b/parser/preprocessed/SqlLexer_gen.hpp
@@ -12,8 +12,8 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 6
-#define YY_FLEX_SUBMINOR_VERSION 0
+#define YY_FLEX_MINOR_VERSION 5
+#define YY_FLEX_SUBMINOR_VERSION 37
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -132,15 +132,7 @@ typedef void* yyscan_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
-#define YY_BUF_SIZE 32768
-#else
#define YY_BUF_SIZE 16384
-#endif /* __ia64__ */
#endif
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
@@ -222,7 +214,7 @@ void quickstep_yyfree (void * ,yyscan_t yyscanner );
/* Begin user sect3 */
-#define quickstep_yywrap(yyscanner) (/*CONSTCOND*/1)
+#define quickstep_yywrap(yyscanner) 1
#define YY_SKIP_YYWRAP
#define yytext_ptr yytext_r
@@ -268,11 +260,11 @@ void quickstep_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
FILE *quickstep_yyget_in (yyscan_t yyscanner );
-void quickstep_yyset_in (FILE * _in_str ,yyscan_t yyscanner );
+void quickstep_yyset_in (FILE * in_str ,yyscan_t yyscanner );
FILE *quickstep_yyget_out (yyscan_t yyscanner );
-void quickstep_yyset_out (FILE * _out_str ,yyscan_t yyscanner );
+void quickstep_yyset_out (FILE * out_str ,yyscan_t yyscanner );
yy_size_t quickstep_yyget_leng (yyscan_t yyscanner );
@@ -280,11 +272,11 @@ char *quickstep_yyget_text (yyscan_t yyscanner );
int quickstep_yyget_lineno (yyscan_t yyscanner );
-void quickstep_yyset_lineno (int _line_number ,yyscan_t yyscanner );
+void quickstep_yyset_lineno (int line_number ,yyscan_t yyscanner );
int quickstep_yyget_column (yyscan_t yyscanner );
-void quickstep_yyset_column (int _column_no ,yyscan_t yyscanner );
+void quickstep_yyset_column (int column_no ,yyscan_t yyscanner );
YYSTYPE * quickstep_yyget_lval (yyscan_t yyscanner );
@@ -320,12 +312,7 @@ static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
-#ifdef __ia64__
-/* On IA-64, the buffer size is 16k, not 8k */
-#define YY_READ_BUF_SIZE 16384
-#else
#define YY_READ_BUF_SIZE 8192
-#endif /* __ia64__ */
#endif
/* Number of entries by which start-condition stack grows. */
@@ -360,9 +347,9 @@ extern int quickstep_yylex \
#undef YY_DECL
#endif
-#line 454 "../SqlLexer.lpp"
+#line 456 "../SqlLexer.lpp"
-#line 367 "SqlLexer_gen.hpp"
+#line 354 "SqlLexer_gen.hpp"
#undef quickstep_yyIN_HEADER
#endif /* quickstep_yyHEADER_H */
[2/4] incubator-quickstep git commit: Added PRIORITY clause in parser.
Posted by hb...@apache.org.
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>
[4/4] incubator-quickstep git commit: Added PRIORITY clause in parser.
Posted by hb...@apache.org.
Added PRIORITY clause in parser.
- SQL statements (right now only SELECT statements) support "WITH
PRIORITY N" clause.
- The priority value should be a non-zero positive integer.
- The priority value is a part of the QueryHandle class.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/604ed99b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/604ed99b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/604ed99b
Branch: refs/heads/parser-priority-clause
Commit: 604ed99b7e82a0dbb1840cc2db3c5771600de0ab
Parents: 8e825f1
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Fri Jun 17 16:01:19 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Fri Jun 17 16:01:19 2016 -0500
----------------------------------------------------------------------
parser/CMakeLists.txt | 8 +
parser/ParsePriority.hpp | 94 +
parser/ParseStatement.hpp | 27 +-
parser/SqlLexer.lpp | 2 +
parser/SqlParser.ypp | 37 +-
parser/preprocessed/SqlLexer_gen.cpp | 1257 ++++---
parser/preprocessed/SqlLexer_gen.hpp | 31 +-
parser/preprocessed/SqlParser_gen.cpp | 5342 +++++++++++++++-------------
parser/preprocessed/SqlParser_gen.hpp | 307 +-
parser/tests/Select.test | 43 +
query_optimizer/QueryHandle.hpp | 11 +-
query_optimizer/QueryProcessor.cpp | 4 +-
12 files changed, 3892 insertions(+), 3271 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/parser/CMakeLists.txt b/parser/CMakeLists.txt
index 2488d30..607926a 100644
--- a/parser/CMakeLists.txt
+++ b/parser/CMakeLists.txt
@@ -103,6 +103,7 @@ add_library(quickstep_parser_ParsePartitionClause ../empty_src.cpp ParsePartitio
add_library(quickstep_parser_ParsePredicate ParsePredicate.cpp ParsePredicate.hpp)
add_library(quickstep_parser_ParsePredicateExists ../empty_src.cpp ParsePredicateExists.hpp)
add_library(quickstep_parser_ParsePredicateInTableQuery ../empty_src.cpp ParsePredicateInTableQuery.hpp)
+add_library(quickstep_parser_ParsePriority ../empty_src.cpp ParsePriority.hpp)
add_library(quickstep_parser_ParseSample ParseSample.cpp ParseSample.hpp)
add_library(quickstep_parser_ParseSelect ../empty_src.cpp ParseSelect.hpp)
add_library(quickstep_parser_ParseSelectionClause ParseSelectionClause.cpp ParseSelectionClause.hpp)
@@ -227,6 +228,10 @@ target_link_libraries(quickstep_parser_ParsePredicateInTableQuery
quickstep_parser_ParsePredicate
quickstep_parser_ParseSubqueryExpression
quickstep_utility_Macros)
+target_link_libraries(quickstep_parser_ParsePriority
+ quickstep_parser_ParseLiteralValue
+ quickstep_parser_ParseTreeNode
+ quickstep_utility_Macros)
target_link_libraries(quickstep_parser_ParseSample
quickstep_parser_ParseLiteralValue
quickstep_parser_ParseTreeNode
@@ -264,6 +269,7 @@ target_link_libraries(quickstep_parser_ParseStatement
quickstep_parser_ParseKeyValue
quickstep_parser_ParsePartitionClause
quickstep_parser_ParsePredicate
+ quickstep_parser_ParsePriority
quickstep_parser_ParseSelect
quickstep_parser_ParseString
quickstep_parser_ParseSubqueryTableReference
@@ -328,6 +334,7 @@ target_link_libraries(quickstep_parser_SqlParser
quickstep_parser_ParsePredicate
quickstep_parser_ParsePredicateExists
quickstep_parser_ParsePredicateInTableQuery
+ quickstep_parser_ParsePriority
quickstep_parser_ParseSample
quickstep_parser_ParseSelect
quickstep_parser_ParseSelectionClause
@@ -407,6 +414,7 @@ target_link_libraries(quickstep_parser
quickstep_parser_ParsePredicate
quickstep_parser_ParsePredicateExists
quickstep_parser_ParsePredicateInTableQuery
+ quickstep_parser_ParsePriority
quickstep_parser_ParserUtil
quickstep_parser_ParseSample
quickstep_parser_ParseSelect
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/ParsePriority.hpp
----------------------------------------------------------------------
diff --git a/parser/ParsePriority.hpp b/parser/ParsePriority.hpp
new file mode 100644
index 0000000..89806d4
--- /dev/null
+++ b/parser/ParsePriority.hpp
@@ -0,0 +1,94 @@
+/**
+ * Copyright 2016, Quickstep Research Group, Computer Sciences Department,
+ * University of Wisconsin\u2014Madison.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **/
+
+#ifndef QUICKSTEP_PARSER_PARSE_PRIORITY_HPP_
+#define QUICKSTEP_PARSER_PARSE_PRIORITY_HPP_
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "parser/ParseLiteralValue.hpp"
+#include "parser/ParseTreeNode.hpp"
+#include "utility/Macros.hpp"
+
+namespace quickstep {
+
+/** \addtogroup Parser
+ * @{
+ */
+
+/**
+ * @brief A parsed representation of PRIORITY.
+ **/
+class ParsePriority : public ParseTreeNode {
+ public:
+ /**
+ * @brief Constructor.
+ *
+ * @param line_number The line number of "PRIORITY" in the SQL statement.
+ * @param column_number The column number of "PRIORITY" in the SQL statement.
+ * @param priority_expression The PRIORITY value expression.
+ **/
+ ParsePriority(const int line_number,
+ const int column_number,
+ NumericParseLiteralValue *priority_expression)
+ : ParseTreeNode(line_number, column_number),
+ priority_expression_(priority_expression) {}
+
+ /**
+ * @brief Destructor.
+ */
+ ~ParsePriority() override {}
+
+ /**
+ * @brief Gets the PRIORITY expression.
+ *
+ * @return PRIORITY expression
+ */
+ const NumericParseLiteralValue* priority_expression() const {
+ return priority_expression_.get();
+ }
+
+ std::string getName() const override {
+ return "PRIORITY";
+ }
+
+ protected:
+ void getFieldStringItems(
+ std::vector<std::string> *inline_field_names,
+ std::vector<std::string> *inline_field_values,
+ std::vector<std::string> *non_container_child_field_names,
+ std::vector<const ParseTreeNode *> *non_container_child_fields,
+ std::vector<std::string> *container_child_field_names,
+ std::vector<std::vector<const ParseTreeNode *>> *container_child_fields)
+ const override {
+ non_container_child_field_names->push_back("");
+ non_container_child_fields->push_back(priority_expression_.get());
+ }
+
+ private:
+ std::unique_ptr<NumericParseLiteralValue> priority_expression_;
+
+ DISALLOW_COPY_AND_ASSIGN(ParsePriority);
+};
+
+/** @} */
+
+} // namespace quickstep
+
+#endif // QUICKSTEP_PARSER_PARSE_PRIORITY_HPP_
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/ParseStatement.hpp
----------------------------------------------------------------------
diff --git a/parser/ParseStatement.hpp b/parser/ParseStatement.hpp
index 65acc68..fd6673d 100644
--- a/parser/ParseStatement.hpp
+++ b/parser/ParseStatement.hpp
@@ -32,6 +32,7 @@
#include "parser/ParseKeyValue.hpp"
#include "parser/ParsePartitionClause.hpp"
#include "parser/ParsePredicate.hpp"
+#include "parser/ParsePriority.hpp"
#include "parser/ParseSelect.hpp"
#include "parser/ParseString.hpp"
#include "parser/ParseSubqueryTableReference.hpp"
@@ -83,6 +84,10 @@ class ParseStatement : public ParseTreeNode {
**/
virtual StatementType getStatementType() const = 0;
+ virtual const std::int64_t getPriority() const {
+ return 1;
+ }
+
protected:
ParseStatement(const int line_number, const int column_number)
: ParseTreeNode(line_number, column_number) {
@@ -480,14 +485,18 @@ class ParseStatementSelect : public ParseStatement {
* @param column_number Column number of the first token of this node in the SQL statement.
* @param select_query The top-level SELECT query.
* @param with_clause The WITH clause of common table query expressions.
+ * @param priority_clause The PRIORITY clause of this query. If not valid or
+ * not present, this is NULL.
**/
ParseStatementSelect(const int line_number,
const int column_number,
ParseSelect *select_query,
- PtrVector<ParseSubqueryTableReference> *with_clause)
+ PtrVector<ParseSubqueryTableReference> *with_clause,
+ ParsePriority *priority_clause)
: ParseStatement(line_number, column_number),
select_query_(select_query),
- with_clause_(with_clause) {
+ with_clause_(with_clause),
+ priority_clause_(priority_clause) {
}
/**
@@ -518,6 +527,14 @@ class ParseStatementSelect : public ParseStatement {
return with_clause_.get();
}
+ const std::int64_t getPriority() const override {
+ if (priority_clause_ != nullptr) {
+ DCHECK(priority_clause_->priority_expression() != nullptr);
+ return priority_clause_->priority_expression()->long_value();
+ }
+ return 1;
+ }
+
protected:
void getFieldStringItems(
std::vector<std::string> *inline_field_names,
@@ -536,11 +553,17 @@ class ParseStatementSelect : public ParseStatement {
container_child_fields->back().push_back(&common_subquery);
}
}
+
+ if (priority_clause_ != nullptr) {
+ non_container_child_field_names->push_back("priority");
+ non_container_child_fields->push_back(priority_clause_.get());
+ }
}
private:
std::unique_ptr<ParseSelect> select_query_;
std::unique_ptr<PtrVector<ParseSubqueryTableReference>> with_clause_;
+ std::unique_ptr<ParsePriority> priority_clause_;
DISALLOW_COPY_AND_ASSIGN(ParseStatementSelect);
};
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/SqlLexer.lpp
----------------------------------------------------------------------
diff --git a/parser/SqlLexer.lpp b/parser/SqlLexer.lpp
index ac1c708..677e41a 100644
--- a/parser/SqlLexer.lpp
+++ b/parser/SqlLexer.lpp
@@ -60,6 +60,7 @@ class ParseOrderBy;
class ParseOrderByItem;
class ParsePartitionClause;
class ParsePredicate;
+class ParsePriority;
class ParseSample;
class ParseScalarLiteral;
class ParseSearchedWhenClause;
@@ -247,6 +248,7 @@ unsigned_numeric_literal {exact_numeric_literal}|{approximate_numeric_literal}
"partitions" return TOKEN_PARTITIONS;
"percent" return TOKEN_PERCENT;
"primary" return TOKEN_PRIMARY;
+ "priority" return TOKEN_PRIORITY;
"quit" return TOKEN_QUIT;
"range" return TOKEN_RANGE;
"real" return TOKEN_REAL;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/604ed99b/parser/SqlParser.ypp
----------------------------------------------------------------------
diff --git a/parser/SqlParser.ypp b/parser/SqlParser.ypp
index b07c48e..0318104 100644
--- a/parser/SqlParser.ypp
+++ b/parser/SqlParser.ypp
@@ -85,6 +85,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"
@@ -205,6 +206,8 @@ typedef void* yyscan_t;
quickstep::PtrVector<quickstep::ParseSubqueryTableReference> *with_list_;
quickstep::ParseSubqueryTableReference *with_list_element_;
+
+ quickstep::ParsePriority *opt_priority_clause_;
}
%{
@@ -308,6 +311,7 @@ void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string
%token TOKEN_PARTITIONS;
%token TOKEN_PERCENT;
%token TOKEN_PRIMARY;
+%token TOKEN_PRIORITY;
%token TOKEN_QUIT;
%token TOKEN_RANGE;
%token TOKEN_REAL;
@@ -546,6 +550,9 @@ void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string
%type <opt_sample_clause_>
opt_sample_clause
+%type <opt_priority_clause_>
+ opt_priority_clause
+
%type <with_list_>
with_clause
with_list
@@ -1106,13 +1113,35 @@ assignment_item:
/* Select Queries */
select_statement:
- select_query {
- $$ = new quickstep::ParseStatementSelect(@1.first_line, @1.first_column, $1, nullptr);
+ select_query opt_priority_clause {
+ $$ = new quickstep::ParseStatementSelect(@1.first_line, @1.first_column, $1, nullptr, $2);
}
- | with_clause select_query {
- $$ = new quickstep::ParseStatementSelect(@1.first_line, @1.first_column, $2, $1);
+ | with_clause select_query opt_priority_clause {
+ $$ = new quickstep::ParseStatementSelect(@1.first_line, @1.first_column, $2, $1, $3);
};
+opt_priority_clause:
+ {
+ $$ = nullptr;
+ }
+ | TOKEN_WITH TOKEN_PRIORITY TOKEN_UNSIGNED_NUMVAL {
+ if ($3->float_like()) {
+ delete $3;
+ $$ = nullptr;
+ quickstep_yyerror(&@3, yyscanner, nullptr, "PRIORITY value must be an integer");
+ YYERROR;
+ } else {
+ if ($3->long_value() <= 0) {
+ delete $3;
+ $$ = nullptr;
+ quickstep_yyerror(&@3, yyscanner, nullptr, "PRIORITY value must be positive");
+ YYERROR;
+ } else {
+ $$ = new quickstep::ParsePriority(@1.first_line, @1.first_column, $3);
+ }
+ }
+ };
+
with_clause:
TOKEN_WITH with_list {
$$ = $2;