diff --git a/src/parser/bison_parser.cpp b/src/parser/bison_parser.cpp
index 1e6fcad9..a650db06 100644
--- a/src/parser/bison_parser.cpp
+++ b/src/parser/bison_parser.cpp
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.7.5. */
+/* A Bison parser, made by GNU Bison 3.8.1. */
/* Bison implementation for Yacc-like parsers in C
@@ -16,7 +16,7 @@
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 . */
+ along with this program. If not, see . */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -46,10 +46,10 @@
USER NAME SPACE" below. */
/* Identify Bison output, and Bison version. */
-#define YYBISON 30705
+#define YYBISON 30801
/* Bison version string. */
-#define YYBISON_VERSION "3.7.5"
+#define YYBISON_VERSION "3.8.1"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -160,263 +160,277 @@ enum yysymbol_kind_t
YYSYMBOL_PREPARE = 26, /* PREPARE */
YYSYMBOL_PRIMARY = 27, /* PRIMARY */
YYSYMBOL_SCHEMAS = 28, /* SCHEMAS */
- YYSYMBOL_SPATIAL = 29, /* SPATIAL */
- YYSYMBOL_VARCHAR = 30, /* VARCHAR */
- YYSYMBOL_VIRTUAL = 31, /* VIRTUAL */
- YYSYMBOL_DESCRIBE = 32, /* DESCRIBE */
- YYSYMBOL_BEFORE = 33, /* BEFORE */
- YYSYMBOL_COLUMN = 34, /* COLUMN */
- YYSYMBOL_CREATE = 35, /* CREATE */
- YYSYMBOL_DELETE = 36, /* DELETE */
- YYSYMBOL_DIRECT = 37, /* DIRECT */
- YYSYMBOL_DOUBLE = 38, /* DOUBLE */
- YYSYMBOL_ESCAPE = 39, /* ESCAPE */
- YYSYMBOL_EXCEPT = 40, /* EXCEPT */
- YYSYMBOL_EXISTS = 41, /* EXISTS */
- YYSYMBOL_EXTRACT = 42, /* EXTRACT */
- YYSYMBOL_CAST = 43, /* CAST */
- YYSYMBOL_FORMAT = 44, /* FORMAT */
- YYSYMBOL_GLOBAL = 45, /* GLOBAL */
- YYSYMBOL_HAVING = 46, /* HAVING */
- YYSYMBOL_IMPORT = 47, /* IMPORT */
- YYSYMBOL_INSERT = 48, /* INSERT */
- YYSYMBOL_ISNULL = 49, /* ISNULL */
- YYSYMBOL_OFFSET = 50, /* OFFSET */
- YYSYMBOL_RENAME = 51, /* RENAME */
- YYSYMBOL_SCHEMA = 52, /* SCHEMA */
- YYSYMBOL_SELECT = 53, /* SELECT */
- YYSYMBOL_SORTED = 54, /* SORTED */
- YYSYMBOL_TABLES = 55, /* TABLES */
- YYSYMBOL_UNIQUE = 56, /* UNIQUE */
- YYSYMBOL_UNLOAD = 57, /* UNLOAD */
- YYSYMBOL_UPDATE = 58, /* UPDATE */
- YYSYMBOL_VALUES = 59, /* VALUES */
- YYSYMBOL_AFTER = 60, /* AFTER */
- YYSYMBOL_ALTER = 61, /* ALTER */
- YYSYMBOL_CROSS = 62, /* CROSS */
- YYSYMBOL_DELTA = 63, /* DELTA */
- YYSYMBOL_FLOAT = 64, /* FLOAT */
- YYSYMBOL_GROUP = 65, /* GROUP */
- YYSYMBOL_INDEX = 66, /* INDEX */
- YYSYMBOL_INNER = 67, /* INNER */
- YYSYMBOL_LIMIT = 68, /* LIMIT */
- YYSYMBOL_LOCAL = 69, /* LOCAL */
- YYSYMBOL_MERGE = 70, /* MERGE */
- YYSYMBOL_MINUS = 71, /* MINUS */
- YYSYMBOL_ORDER = 72, /* ORDER */
- YYSYMBOL_OUTER = 73, /* OUTER */
- YYSYMBOL_RIGHT = 74, /* RIGHT */
- YYSYMBOL_TABLE = 75, /* TABLE */
- YYSYMBOL_UNION = 76, /* UNION */
- YYSYMBOL_USING = 77, /* USING */
- YYSYMBOL_WHERE = 78, /* WHERE */
- YYSYMBOL_CALL = 79, /* CALL */
- YYSYMBOL_CASE = 80, /* CASE */
- YYSYMBOL_CHAR = 81, /* CHAR */
- YYSYMBOL_COPY = 82, /* COPY */
- YYSYMBOL_DATE = 83, /* DATE */
- YYSYMBOL_DATETIME = 84, /* DATETIME */
- YYSYMBOL_DESC = 85, /* DESC */
- YYSYMBOL_DROP = 86, /* DROP */
- YYSYMBOL_ELSE = 87, /* ELSE */
- YYSYMBOL_FILE = 88, /* FILE */
- YYSYMBOL_FROM = 89, /* FROM */
- YYSYMBOL_FULL = 90, /* FULL */
- YYSYMBOL_HASH = 91, /* HASH */
- YYSYMBOL_HINT = 92, /* HINT */
- YYSYMBOL_INTO = 93, /* INTO */
- YYSYMBOL_JOIN = 94, /* JOIN */
- YYSYMBOL_LEFT = 95, /* LEFT */
- YYSYMBOL_LIKE = 96, /* LIKE */
- YYSYMBOL_LOAD = 97, /* LOAD */
- YYSYMBOL_LONG = 98, /* LONG */
- YYSYMBOL_NULL = 99, /* NULL */
- YYSYMBOL_PLAN = 100, /* PLAN */
- YYSYMBOL_SHOW = 101, /* SHOW */
- YYSYMBOL_TEXT = 102, /* TEXT */
- YYSYMBOL_THEN = 103, /* THEN */
- YYSYMBOL_TIME = 104, /* TIME */
- YYSYMBOL_VIEW = 105, /* VIEW */
- YYSYMBOL_WHEN = 106, /* WHEN */
- YYSYMBOL_WITH = 107, /* WITH */
- YYSYMBOL_ADD = 108, /* ADD */
- YYSYMBOL_ALL = 109, /* ALL */
- YYSYMBOL_AND = 110, /* AND */
- YYSYMBOL_ASC = 111, /* ASC */
- YYSYMBOL_END = 112, /* END */
- YYSYMBOL_FOR = 113, /* FOR */
- YYSYMBOL_INT = 114, /* INT */
- YYSYMBOL_KEY = 115, /* KEY */
- YYSYMBOL_NOT = 116, /* NOT */
- YYSYMBOL_OFF = 117, /* OFF */
- YYSYMBOL_SET = 118, /* SET */
- YYSYMBOL_TOP = 119, /* TOP */
- YYSYMBOL_AS = 120, /* AS */
- YYSYMBOL_BY = 121, /* BY */
- YYSYMBOL_IF = 122, /* IF */
- YYSYMBOL_IN = 123, /* IN */
- YYSYMBOL_IS = 124, /* IS */
- YYSYMBOL_OF = 125, /* OF */
- YYSYMBOL_ON = 126, /* ON */
- YYSYMBOL_OR = 127, /* OR */
- YYSYMBOL_TO = 128, /* TO */
- YYSYMBOL_ARRAY = 129, /* ARRAY */
- YYSYMBOL_CONCAT = 130, /* CONCAT */
- YYSYMBOL_ILIKE = 131, /* ILIKE */
- YYSYMBOL_SECOND = 132, /* SECOND */
- YYSYMBOL_MINUTE = 133, /* MINUTE */
- YYSYMBOL_HOUR = 134, /* HOUR */
- YYSYMBOL_DAY = 135, /* DAY */
- YYSYMBOL_MONTH = 136, /* MONTH */
- YYSYMBOL_YEAR = 137, /* YEAR */
- YYSYMBOL_SECONDS = 138, /* SECONDS */
- YYSYMBOL_MINUTES = 139, /* MINUTES */
- YYSYMBOL_HOURS = 140, /* HOURS */
- YYSYMBOL_DAYS = 141, /* DAYS */
- YYSYMBOL_MONTHS = 142, /* MONTHS */
- YYSYMBOL_YEARS = 143, /* YEARS */
- YYSYMBOL_INTERVAL = 144, /* INTERVAL */
- YYSYMBOL_TRUE = 145, /* TRUE */
- YYSYMBOL_FALSE = 146, /* FALSE */
- YYSYMBOL_TRANSACTION = 147, /* TRANSACTION */
- YYSYMBOL_BEGIN = 148, /* BEGIN */
- YYSYMBOL_COMMIT = 149, /* COMMIT */
- YYSYMBOL_ROLLBACK = 150, /* ROLLBACK */
- YYSYMBOL_151_ = 151, /* '=' */
- YYSYMBOL_EQUALS = 152, /* EQUALS */
- YYSYMBOL_NOTEQUALS = 153, /* NOTEQUALS */
- YYSYMBOL_154_ = 154, /* '<' */
- YYSYMBOL_155_ = 155, /* '>' */
- YYSYMBOL_LESS = 156, /* LESS */
- YYSYMBOL_GREATER = 157, /* GREATER */
- YYSYMBOL_LESSEQ = 158, /* LESSEQ */
- YYSYMBOL_GREATEREQ = 159, /* GREATEREQ */
- YYSYMBOL_NOTNULL = 160, /* NOTNULL */
- YYSYMBOL_161_ = 161, /* '+' */
- YYSYMBOL_162_ = 162, /* '-' */
- YYSYMBOL_163_ = 163, /* '*' */
- YYSYMBOL_164_ = 164, /* '/' */
- YYSYMBOL_165_ = 165, /* '%' */
- YYSYMBOL_166_ = 166, /* '^' */
- YYSYMBOL_UMINUS = 167, /* UMINUS */
- YYSYMBOL_168_ = 168, /* '[' */
- YYSYMBOL_169_ = 169, /* ']' */
- YYSYMBOL_170_ = 170, /* '(' */
- YYSYMBOL_171_ = 171, /* ')' */
- YYSYMBOL_172_ = 172, /* '.' */
- YYSYMBOL_173_ = 173, /* ';' */
- YYSYMBOL_174_ = 174, /* ',' */
- YYSYMBOL_175_ = 175, /* '?' */
- YYSYMBOL_YYACCEPT = 176, /* $accept */
- YYSYMBOL_input = 177, /* input */
- YYSYMBOL_statement_list = 178, /* statement_list */
- YYSYMBOL_statement = 179, /* statement */
- YYSYMBOL_preparable_statement = 180, /* preparable_statement */
- YYSYMBOL_opt_hints = 181, /* opt_hints */
- YYSYMBOL_hint_list = 182, /* hint_list */
- YYSYMBOL_hint = 183, /* hint */
- YYSYMBOL_transaction_statement = 184, /* transaction_statement */
- YYSYMBOL_opt_transaction_keyword = 185, /* opt_transaction_keyword */
- YYSYMBOL_prepare_statement = 186, /* prepare_statement */
- YYSYMBOL_prepare_target_query = 187, /* prepare_target_query */
- YYSYMBOL_execute_statement = 188, /* execute_statement */
- YYSYMBOL_import_statement = 189, /* import_statement */
- YYSYMBOL_file_type = 190, /* file_type */
- YYSYMBOL_file_path = 191, /* file_path */
- YYSYMBOL_opt_file_type = 192, /* opt_file_type */
- YYSYMBOL_export_statement = 193, /* export_statement */
- YYSYMBOL_show_statement = 194, /* show_statement */
- YYSYMBOL_create_statement = 195, /* create_statement */
- YYSYMBOL_opt_not_exists = 196, /* opt_not_exists */
- YYSYMBOL_column_def_commalist = 197, /* column_def_commalist */
- YYSYMBOL_column_def = 198, /* column_def */
- YYSYMBOL_column_type = 199, /* column_type */
- YYSYMBOL_opt_column_nullable = 200, /* opt_column_nullable */
- YYSYMBOL_drop_statement = 201, /* drop_statement */
- YYSYMBOL_opt_exists = 202, /* opt_exists */
- YYSYMBOL_delete_statement = 203, /* delete_statement */
- YYSYMBOL_truncate_statement = 204, /* truncate_statement */
- YYSYMBOL_insert_statement = 205, /* insert_statement */
- YYSYMBOL_opt_column_list = 206, /* opt_column_list */
- YYSYMBOL_update_statement = 207, /* update_statement */
- YYSYMBOL_update_clause_commalist = 208, /* update_clause_commalist */
- YYSYMBOL_update_clause = 209, /* update_clause */
- YYSYMBOL_select_statement = 210, /* select_statement */
- YYSYMBOL_select_within_set_operation = 211, /* select_within_set_operation */
- YYSYMBOL_select_within_set_operation_no_parentheses = 212, /* select_within_set_operation_no_parentheses */
- YYSYMBOL_select_with_paren = 213, /* select_with_paren */
- YYSYMBOL_select_no_paren = 214, /* select_no_paren */
- YYSYMBOL_set_operator = 215, /* set_operator */
- YYSYMBOL_set_type = 216, /* set_type */
- YYSYMBOL_opt_all = 217, /* opt_all */
- YYSYMBOL_select_clause = 218, /* select_clause */
- YYSYMBOL_opt_distinct = 219, /* opt_distinct */
- YYSYMBOL_select_list = 220, /* select_list */
- YYSYMBOL_opt_from_clause = 221, /* opt_from_clause */
- YYSYMBOL_from_clause = 222, /* from_clause */
- YYSYMBOL_opt_where = 223, /* opt_where */
- YYSYMBOL_opt_group = 224, /* opt_group */
- YYSYMBOL_opt_having = 225, /* opt_having */
- YYSYMBOL_opt_order = 226, /* opt_order */
- YYSYMBOL_order_list = 227, /* order_list */
- YYSYMBOL_order_desc = 228, /* order_desc */
- YYSYMBOL_opt_order_type = 229, /* opt_order_type */
- YYSYMBOL_opt_top = 230, /* opt_top */
- YYSYMBOL_opt_limit = 231, /* opt_limit */
- YYSYMBOL_expr_list = 232, /* expr_list */
- YYSYMBOL_opt_literal_list = 233, /* opt_literal_list */
- YYSYMBOL_literal_list = 234, /* literal_list */
- YYSYMBOL_expr_alias = 235, /* expr_alias */
- YYSYMBOL_expr = 236, /* expr */
- YYSYMBOL_operand = 237, /* operand */
- YYSYMBOL_scalar_expr = 238, /* scalar_expr */
- YYSYMBOL_unary_expr = 239, /* unary_expr */
- YYSYMBOL_binary_expr = 240, /* binary_expr */
- YYSYMBOL_logic_expr = 241, /* logic_expr */
- YYSYMBOL_in_expr = 242, /* in_expr */
- YYSYMBOL_case_expr = 243, /* case_expr */
- YYSYMBOL_case_list = 244, /* case_list */
- YYSYMBOL_exists_expr = 245, /* exists_expr */
- YYSYMBOL_comp_expr = 246, /* comp_expr */
- YYSYMBOL_function_expr = 247, /* function_expr */
- YYSYMBOL_extract_expr = 248, /* extract_expr */
- YYSYMBOL_cast_expr = 249, /* cast_expr */
- YYSYMBOL_datetime_field = 250, /* datetime_field */
- YYSYMBOL_datetime_field_plural = 251, /* datetime_field_plural */
- YYSYMBOL_duration_field = 252, /* duration_field */
- YYSYMBOL_array_expr = 253, /* array_expr */
- YYSYMBOL_array_index = 254, /* array_index */
- YYSYMBOL_between_expr = 255, /* between_expr */
- YYSYMBOL_column_name = 256, /* column_name */
- YYSYMBOL_literal = 257, /* literal */
- YYSYMBOL_string_literal = 258, /* string_literal */
- YYSYMBOL_bool_literal = 259, /* bool_literal */
- YYSYMBOL_num_literal = 260, /* num_literal */
- YYSYMBOL_int_literal = 261, /* int_literal */
- YYSYMBOL_null_literal = 262, /* null_literal */
- YYSYMBOL_date_literal = 263, /* date_literal */
- YYSYMBOL_interval_literal = 264, /* interval_literal */
- YYSYMBOL_param_expr = 265, /* param_expr */
- YYSYMBOL_table_ref = 266, /* table_ref */
- YYSYMBOL_table_ref_atomic = 267, /* table_ref_atomic */
- YYSYMBOL_nonjoin_table_ref_atomic = 268, /* nonjoin_table_ref_atomic */
- YYSYMBOL_table_ref_commalist = 269, /* table_ref_commalist */
- YYSYMBOL_table_ref_name = 270, /* table_ref_name */
- YYSYMBOL_table_ref_name_no_alias = 271, /* table_ref_name_no_alias */
- YYSYMBOL_table_name = 272, /* table_name */
- YYSYMBOL_table_alias = 273, /* table_alias */
- YYSYMBOL_opt_table_alias = 274, /* opt_table_alias */
- YYSYMBOL_alias = 275, /* alias */
- YYSYMBOL_opt_alias = 276, /* opt_alias */
- YYSYMBOL_opt_with_clause = 277, /* opt_with_clause */
- YYSYMBOL_with_clause = 278, /* with_clause */
- YYSYMBOL_with_description_list = 279, /* with_description_list */
- YYSYMBOL_with_description = 280, /* with_description */
- YYSYMBOL_join_clause = 281, /* join_clause */
- YYSYMBOL_opt_join_type = 282, /* opt_join_type */
- YYSYMBOL_join_condition = 283, /* join_condition */
- YYSYMBOL_opt_semicolon = 284, /* opt_semicolon */
- YYSYMBOL_ident_commalist = 285 /* ident_commalist */
+ YYSYMBOL_CHARACTER = 29, /* CHARACTER */
+ YYSYMBOL_VARYING = 30, /* VARYING */
+ YYSYMBOL_REAL = 31, /* REAL */
+ YYSYMBOL_DECIMAL = 32, /* DECIMAL */
+ YYSYMBOL_SPATIAL = 33, /* SPATIAL */
+ YYSYMBOL_VARCHAR = 34, /* VARCHAR */
+ YYSYMBOL_VIRTUAL = 35, /* VIRTUAL */
+ YYSYMBOL_DESCRIBE = 36, /* DESCRIBE */
+ YYSYMBOL_BEFORE = 37, /* BEFORE */
+ YYSYMBOL_COLUMN = 38, /* COLUMN */
+ YYSYMBOL_CREATE = 39, /* CREATE */
+ YYSYMBOL_DELETE = 40, /* DELETE */
+ YYSYMBOL_DIRECT = 41, /* DIRECT */
+ YYSYMBOL_DOUBLE = 42, /* DOUBLE */
+ YYSYMBOL_ESCAPE = 43, /* ESCAPE */
+ YYSYMBOL_EXCEPT = 44, /* EXCEPT */
+ YYSYMBOL_EXISTS = 45, /* EXISTS */
+ YYSYMBOL_EXTRACT = 46, /* EXTRACT */
+ YYSYMBOL_CAST = 47, /* CAST */
+ YYSYMBOL_FORMAT = 48, /* FORMAT */
+ YYSYMBOL_GLOBAL = 49, /* GLOBAL */
+ YYSYMBOL_HAVING = 50, /* HAVING */
+ YYSYMBOL_IMPORT = 51, /* IMPORT */
+ YYSYMBOL_INSERT = 52, /* INSERT */
+ YYSYMBOL_ISNULL = 53, /* ISNULL */
+ YYSYMBOL_OFFSET = 54, /* OFFSET */
+ YYSYMBOL_RENAME = 55, /* RENAME */
+ YYSYMBOL_SCHEMA = 56, /* SCHEMA */
+ YYSYMBOL_SELECT = 57, /* SELECT */
+ YYSYMBOL_SORTED = 58, /* SORTED */
+ YYSYMBOL_TABLES = 59, /* TABLES */
+ YYSYMBOL_UNIQUE = 60, /* UNIQUE */
+ YYSYMBOL_UNLOAD = 61, /* UNLOAD */
+ YYSYMBOL_UPDATE = 62, /* UPDATE */
+ YYSYMBOL_VALUES = 63, /* VALUES */
+ YYSYMBOL_AFTER = 64, /* AFTER */
+ YYSYMBOL_ALTER = 65, /* ALTER */
+ YYSYMBOL_CROSS = 66, /* CROSS */
+ YYSYMBOL_DELTA = 67, /* DELTA */
+ YYSYMBOL_FLOAT = 68, /* FLOAT */
+ YYSYMBOL_GROUP = 69, /* GROUP */
+ YYSYMBOL_INDEX = 70, /* INDEX */
+ YYSYMBOL_INNER = 71, /* INNER */
+ YYSYMBOL_LIMIT = 72, /* LIMIT */
+ YYSYMBOL_LOCAL = 73, /* LOCAL */
+ YYSYMBOL_MERGE = 74, /* MERGE */
+ YYSYMBOL_MINUS = 75, /* MINUS */
+ YYSYMBOL_ORDER = 76, /* ORDER */
+ YYSYMBOL_OUTER = 77, /* OUTER */
+ YYSYMBOL_RIGHT = 78, /* RIGHT */
+ YYSYMBOL_TABLE = 79, /* TABLE */
+ YYSYMBOL_UNION = 80, /* UNION */
+ YYSYMBOL_USING = 81, /* USING */
+ YYSYMBOL_WHERE = 82, /* WHERE */
+ YYSYMBOL_CALL = 83, /* CALL */
+ YYSYMBOL_CASE = 84, /* CASE */
+ YYSYMBOL_CHAR = 85, /* CHAR */
+ YYSYMBOL_COPY = 86, /* COPY */
+ YYSYMBOL_DATE = 87, /* DATE */
+ YYSYMBOL_DATETIME = 88, /* DATETIME */
+ YYSYMBOL_DESC = 89, /* DESC */
+ YYSYMBOL_DROP = 90, /* DROP */
+ YYSYMBOL_ELSE = 91, /* ELSE */
+ YYSYMBOL_FILE = 92, /* FILE */
+ YYSYMBOL_FROM = 93, /* FROM */
+ YYSYMBOL_FULL = 94, /* FULL */
+ YYSYMBOL_HASH = 95, /* HASH */
+ YYSYMBOL_HINT = 96, /* HINT */
+ YYSYMBOL_INTO = 97, /* INTO */
+ YYSYMBOL_JOIN = 98, /* JOIN */
+ YYSYMBOL_LEFT = 99, /* LEFT */
+ YYSYMBOL_LIKE = 100, /* LIKE */
+ YYSYMBOL_LOAD = 101, /* LOAD */
+ YYSYMBOL_LONG = 102, /* LONG */
+ YYSYMBOL_NULL = 103, /* NULL */
+ YYSYMBOL_PLAN = 104, /* PLAN */
+ YYSYMBOL_SHOW = 105, /* SHOW */
+ YYSYMBOL_TEXT = 106, /* TEXT */
+ YYSYMBOL_THEN = 107, /* THEN */
+ YYSYMBOL_TIME = 108, /* TIME */
+ YYSYMBOL_VIEW = 109, /* VIEW */
+ YYSYMBOL_WHEN = 110, /* WHEN */
+ YYSYMBOL_WITH = 111, /* WITH */
+ YYSYMBOL_ADD = 112, /* ADD */
+ YYSYMBOL_ALL = 113, /* ALL */
+ YYSYMBOL_AND = 114, /* AND */
+ YYSYMBOL_ASC = 115, /* ASC */
+ YYSYMBOL_END = 116, /* END */
+ YYSYMBOL_FOR = 117, /* FOR */
+ YYSYMBOL_INT = 118, /* INT */
+ YYSYMBOL_KEY = 119, /* KEY */
+ YYSYMBOL_NOT = 120, /* NOT */
+ YYSYMBOL_OFF = 121, /* OFF */
+ YYSYMBOL_SET = 122, /* SET */
+ YYSYMBOL_TOP = 123, /* TOP */
+ YYSYMBOL_AS = 124, /* AS */
+ YYSYMBOL_BY = 125, /* BY */
+ YYSYMBOL_IF = 126, /* IF */
+ YYSYMBOL_IN = 127, /* IN */
+ YYSYMBOL_IS = 128, /* IS */
+ YYSYMBOL_OF = 129, /* OF */
+ YYSYMBOL_ON = 130, /* ON */
+ YYSYMBOL_OR = 131, /* OR */
+ YYSYMBOL_TO = 132, /* TO */
+ YYSYMBOL_ARRAY = 133, /* ARRAY */
+ YYSYMBOL_CONCAT = 134, /* CONCAT */
+ YYSYMBOL_ILIKE = 135, /* ILIKE */
+ YYSYMBOL_SECOND = 136, /* SECOND */
+ YYSYMBOL_MINUTE = 137, /* MINUTE */
+ YYSYMBOL_HOUR = 138, /* HOUR */
+ YYSYMBOL_DAY = 139, /* DAY */
+ YYSYMBOL_MONTH = 140, /* MONTH */
+ YYSYMBOL_YEAR = 141, /* YEAR */
+ YYSYMBOL_SECONDS = 142, /* SECONDS */
+ YYSYMBOL_MINUTES = 143, /* MINUTES */
+ YYSYMBOL_HOURS = 144, /* HOURS */
+ YYSYMBOL_DAYS = 145, /* DAYS */
+ YYSYMBOL_MONTHS = 146, /* MONTHS */
+ YYSYMBOL_YEARS = 147, /* YEARS */
+ YYSYMBOL_INTERVAL = 148, /* INTERVAL */
+ YYSYMBOL_TRUE = 149, /* TRUE */
+ YYSYMBOL_FALSE = 150, /* FALSE */
+ YYSYMBOL_TRANSACTION = 151, /* TRANSACTION */
+ YYSYMBOL_BEGIN = 152, /* BEGIN */
+ YYSYMBOL_COMMIT = 153, /* COMMIT */
+ YYSYMBOL_ROLLBACK = 154, /* ROLLBACK */
+ YYSYMBOL_155_ = 155, /* '=' */
+ YYSYMBOL_EQUALS = 156, /* EQUALS */
+ YYSYMBOL_NOTEQUALS = 157, /* NOTEQUALS */
+ YYSYMBOL_158_ = 158, /* '<' */
+ YYSYMBOL_159_ = 159, /* '>' */
+ YYSYMBOL_LESS = 160, /* LESS */
+ YYSYMBOL_GREATER = 161, /* GREATER */
+ YYSYMBOL_LESSEQ = 162, /* LESSEQ */
+ YYSYMBOL_GREATEREQ = 163, /* GREATEREQ */
+ YYSYMBOL_NOTNULL = 164, /* NOTNULL */
+ YYSYMBOL_165_ = 165, /* '+' */
+ YYSYMBOL_166_ = 166, /* '-' */
+ YYSYMBOL_167_ = 167, /* '*' */
+ YYSYMBOL_168_ = 168, /* '/' */
+ YYSYMBOL_169_ = 169, /* '%' */
+ YYSYMBOL_170_ = 170, /* '^' */
+ YYSYMBOL_UMINUS = 171, /* UMINUS */
+ YYSYMBOL_172_ = 172, /* '[' */
+ YYSYMBOL_173_ = 173, /* ']' */
+ YYSYMBOL_174_ = 174, /* '(' */
+ YYSYMBOL_175_ = 175, /* ')' */
+ YYSYMBOL_176_ = 176, /* '.' */
+ YYSYMBOL_177_ = 177, /* ';' */
+ YYSYMBOL_178_ = 178, /* ',' */
+ YYSYMBOL_179_ = 179, /* '?' */
+ YYSYMBOL_YYACCEPT = 180, /* $accept */
+ YYSYMBOL_input = 181, /* input */
+ YYSYMBOL_statement_list = 182, /* statement_list */
+ YYSYMBOL_statement = 183, /* statement */
+ YYSYMBOL_preparable_statement = 184, /* preparable_statement */
+ YYSYMBOL_opt_hints = 185, /* opt_hints */
+ YYSYMBOL_hint_list = 186, /* hint_list */
+ YYSYMBOL_hint = 187, /* hint */
+ YYSYMBOL_transaction_statement = 188, /* transaction_statement */
+ YYSYMBOL_opt_transaction_keyword = 189, /* opt_transaction_keyword */
+ YYSYMBOL_prepare_statement = 190, /* prepare_statement */
+ YYSYMBOL_prepare_target_query = 191, /* prepare_target_query */
+ YYSYMBOL_execute_statement = 192, /* execute_statement */
+ YYSYMBOL_import_statement = 193, /* import_statement */
+ YYSYMBOL_file_type = 194, /* file_type */
+ YYSYMBOL_file_path = 195, /* file_path */
+ YYSYMBOL_opt_file_type = 196, /* opt_file_type */
+ YYSYMBOL_export_statement = 197, /* export_statement */
+ YYSYMBOL_show_statement = 198, /* show_statement */
+ YYSYMBOL_create_statement = 199, /* create_statement */
+ YYSYMBOL_opt_not_exists = 200, /* opt_not_exists */
+ YYSYMBOL_table_elem_commalist = 201, /* table_elem_commalist */
+ YYSYMBOL_table_elem = 202, /* table_elem */
+ YYSYMBOL_column_def = 203, /* column_def */
+ YYSYMBOL_column_type = 204, /* column_type */
+ YYSYMBOL_opt_time_specification = 205, /* opt_time_specification */
+ YYSYMBOL_opt_decimal_specification = 206, /* opt_decimal_specification */
+ YYSYMBOL_opt_column_constraints = 207, /* opt_column_constraints */
+ YYSYMBOL_column_constraint_list = 208, /* column_constraint_list */
+ YYSYMBOL_column_constraint = 209, /* column_constraint */
+ YYSYMBOL_table_constraint = 210, /* table_constraint */
+ YYSYMBOL_drop_statement = 211, /* drop_statement */
+ YYSYMBOL_opt_exists = 212, /* opt_exists */
+ YYSYMBOL_alter_statement = 213, /* alter_statement */
+ YYSYMBOL_alter_action = 214, /* alter_action */
+ YYSYMBOL_drop_action = 215, /* drop_action */
+ YYSYMBOL_delete_statement = 216, /* delete_statement */
+ YYSYMBOL_truncate_statement = 217, /* truncate_statement */
+ YYSYMBOL_insert_statement = 218, /* insert_statement */
+ YYSYMBOL_opt_column_list = 219, /* opt_column_list */
+ YYSYMBOL_update_statement = 220, /* update_statement */
+ YYSYMBOL_update_clause_commalist = 221, /* update_clause_commalist */
+ YYSYMBOL_update_clause = 222, /* update_clause */
+ YYSYMBOL_select_statement = 223, /* select_statement */
+ YYSYMBOL_select_within_set_operation = 224, /* select_within_set_operation */
+ YYSYMBOL_select_within_set_operation_no_parentheses = 225, /* select_within_set_operation_no_parentheses */
+ YYSYMBOL_select_with_paren = 226, /* select_with_paren */
+ YYSYMBOL_select_no_paren = 227, /* select_no_paren */
+ YYSYMBOL_set_operator = 228, /* set_operator */
+ YYSYMBOL_set_type = 229, /* set_type */
+ YYSYMBOL_opt_all = 230, /* opt_all */
+ YYSYMBOL_select_clause = 231, /* select_clause */
+ YYSYMBOL_opt_distinct = 232, /* opt_distinct */
+ YYSYMBOL_select_list = 233, /* select_list */
+ YYSYMBOL_opt_from_clause = 234, /* opt_from_clause */
+ YYSYMBOL_from_clause = 235, /* from_clause */
+ YYSYMBOL_opt_where = 236, /* opt_where */
+ YYSYMBOL_opt_group = 237, /* opt_group */
+ YYSYMBOL_opt_having = 238, /* opt_having */
+ YYSYMBOL_opt_order = 239, /* opt_order */
+ YYSYMBOL_order_list = 240, /* order_list */
+ YYSYMBOL_order_desc = 241, /* order_desc */
+ YYSYMBOL_opt_order_type = 242, /* opt_order_type */
+ YYSYMBOL_opt_top = 243, /* opt_top */
+ YYSYMBOL_opt_limit = 244, /* opt_limit */
+ YYSYMBOL_expr_list = 245, /* expr_list */
+ YYSYMBOL_opt_literal_list = 246, /* opt_literal_list */
+ YYSYMBOL_literal_list = 247, /* literal_list */
+ YYSYMBOL_expr_alias = 248, /* expr_alias */
+ YYSYMBOL_expr = 249, /* expr */
+ YYSYMBOL_operand = 250, /* operand */
+ YYSYMBOL_scalar_expr = 251, /* scalar_expr */
+ YYSYMBOL_unary_expr = 252, /* unary_expr */
+ YYSYMBOL_binary_expr = 253, /* binary_expr */
+ YYSYMBOL_logic_expr = 254, /* logic_expr */
+ YYSYMBOL_in_expr = 255, /* in_expr */
+ YYSYMBOL_case_expr = 256, /* case_expr */
+ YYSYMBOL_case_list = 257, /* case_list */
+ YYSYMBOL_exists_expr = 258, /* exists_expr */
+ YYSYMBOL_comp_expr = 259, /* comp_expr */
+ YYSYMBOL_function_expr = 260, /* function_expr */
+ YYSYMBOL_extract_expr = 261, /* extract_expr */
+ YYSYMBOL_cast_expr = 262, /* cast_expr */
+ YYSYMBOL_datetime_field = 263, /* datetime_field */
+ YYSYMBOL_datetime_field_plural = 264, /* datetime_field_plural */
+ YYSYMBOL_duration_field = 265, /* duration_field */
+ YYSYMBOL_array_expr = 266, /* array_expr */
+ YYSYMBOL_array_index = 267, /* array_index */
+ YYSYMBOL_between_expr = 268, /* between_expr */
+ YYSYMBOL_column_name = 269, /* column_name */
+ YYSYMBOL_literal = 270, /* literal */
+ YYSYMBOL_string_literal = 271, /* string_literal */
+ YYSYMBOL_bool_literal = 272, /* bool_literal */
+ YYSYMBOL_num_literal = 273, /* num_literal */
+ YYSYMBOL_int_literal = 274, /* int_literal */
+ YYSYMBOL_null_literal = 275, /* null_literal */
+ YYSYMBOL_date_literal = 276, /* date_literal */
+ YYSYMBOL_interval_literal = 277, /* interval_literal */
+ YYSYMBOL_param_expr = 278, /* param_expr */
+ YYSYMBOL_table_ref = 279, /* table_ref */
+ YYSYMBOL_table_ref_atomic = 280, /* table_ref_atomic */
+ YYSYMBOL_nonjoin_table_ref_atomic = 281, /* nonjoin_table_ref_atomic */
+ YYSYMBOL_table_ref_commalist = 282, /* table_ref_commalist */
+ YYSYMBOL_table_ref_name = 283, /* table_ref_name */
+ YYSYMBOL_table_ref_name_no_alias = 284, /* table_ref_name_no_alias */
+ YYSYMBOL_table_name = 285, /* table_name */
+ YYSYMBOL_opt_index_name = 286, /* opt_index_name */
+ YYSYMBOL_table_alias = 287, /* table_alias */
+ YYSYMBOL_opt_table_alias = 288, /* opt_table_alias */
+ YYSYMBOL_alias = 289, /* alias */
+ YYSYMBOL_opt_alias = 290, /* opt_alias */
+ YYSYMBOL_opt_with_clause = 291, /* opt_with_clause */
+ YYSYMBOL_with_clause = 292, /* with_clause */
+ YYSYMBOL_with_description_list = 293, /* with_description_list */
+ YYSYMBOL_with_description = 294, /* with_description */
+ YYSYMBOL_join_clause = 295, /* join_clause */
+ YYSYMBOL_opt_join_type = 296, /* opt_join_type */
+ YYSYMBOL_join_condition = 297, /* join_condition */
+ YYSYMBOL_opt_semicolon = 298, /* opt_semicolon */
+ YYSYMBOL_ident_commalist = 299 /* ident_commalist */
};
typedef enum yysymbol_kind_t yysymbol_kind_t;
@@ -574,12 +588,18 @@ typedef int yy_state_fast_t;
# define YY_USE(E) /* empty */
#endif
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
/* Suppress an incorrect diagnostic about yylval being uninitialized. */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
+ _Pragma ("GCC diagnostic push") \
+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
_Pragma ("GCC diagnostic push") \
_Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
_Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
_Pragma ("GCC diagnostic pop")
#else
@@ -739,21 +759,21 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 62
+#define YYFINAL 67
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 778
+#define YYLAST 886
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 176
+#define YYNTOKENS 180
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 110
+#define YYNNTS 120
/* YYNRULES -- Number of rules. */
-#define YYNRULES 276
+#define YYNRULES 302
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 490
+#define YYNSTATES 549
/* YYMAXUTOK -- Last valid token kind. */
-#define YYMAXUTOK 413
+#define YYMAXUTOK 417
/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -770,13 +790,13 @@ static const yytype_uint8 yytranslate[] =
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 165, 2, 2,
- 170, 171, 163, 161, 174, 162, 172, 164, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 173,
- 154, 151, 155, 175, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 169, 2, 2,
+ 174, 175, 167, 165, 178, 166, 176, 168, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 177,
+ 158, 155, 159, 179, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 168, 2, 169, 166, 2, 2, 2, 2, 2,
+ 2, 172, 2, 173, 170, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -807,42 +827,45 @@ static const yytype_uint8 yytranslate[] =
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 146, 147, 148, 149, 150, 152, 153, 156, 157,
- 158, 159, 160, 167
+ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+ 156, 157, 160, 161, 162, 163, 164, 171
};
#if HSQL_DEBUG
- /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_int16 yyrline[] =
{
- 0, 270, 270, 291, 297, 306, 310, 314, 317, 320,
- 327, 328, 329, 330, 331, 332, 333, 334, 335, 344,
- 345, 350, 351, 355, 359, 371, 374, 377, 383, 384,
- 391, 398, 401, 405, 419, 425, 434, 451, 455, 458,
- 467, 481, 484, 489, 503, 516, 523, 530, 541, 542,
- 546, 547, 551, 557, 558, 559, 560, 561, 562, 563,
- 564, 565, 566, 570, 571, 572, 582, 588, 594, 602,
- 603, 612, 621, 634, 641, 652, 653, 663, 672, 673,
- 677, 689, 693, 697, 711, 712, 715, 716, 727, 728,
- 732, 742, 755, 762, 766, 770, 777, 780, 786, 798,
- 799, 803, 807, 808, 812, 817, 818, 822, 827, 831,
- 832, 836, 837, 841, 842, 846, 850, 851, 852, 858,
- 859, 863, 864, 865, 866, 867, 868, 875, 876, 880,
- 881, 885, 886, 890, 900, 901, 902, 903, 904, 908,
- 909, 910, 911, 912, 913, 914, 915, 916, 917, 918,
- 922, 923, 927, 928, 929, 930, 931, 935, 936, 937,
- 938, 939, 940, 941, 942, 943, 944, 945, 949, 950,
- 954, 955, 956, 957, 963, 964, 965, 966, 970, 971,
- 975, 976, 980, 981, 982, 983, 984, 985, 986, 990,
- 991, 995, 999, 1003, 1004, 1005, 1006, 1007, 1008, 1012,
- 1013, 1014, 1015, 1016, 1017, 1021, 1022, 1026, 1030, 1034,
- 1038, 1039, 1040, 1041, 1045, 1046, 1047, 1048, 1049, 1050,
- 1051, 1055, 1059, 1060, 1064, 1065, 1069, 1073, 1077, 1090,
- 1091, 1102, 1136, 1148, 1149, 1159, 1160, 1164, 1165, 1174,
- 1175, 1180, 1191, 1200, 1201, 1206, 1207, 1212, 1213, 1218,
- 1219, 1224, 1225, 1234, 1235, 1239, 1243, 1247, 1254, 1267,
- 1275, 1285, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
- 1312, 1313, 1318, 1327, 1328, 1333, 1334
+ 0, 290, 290, 311, 317, 326, 330, 334, 337, 340,
+ 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
+ 365, 366, 371, 372, 376, 380, 392, 395, 398, 404,
+ 405, 412, 419, 422, 426, 440, 446, 455, 472, 476,
+ 479, 488, 502, 505, 510, 524, 537, 545, 552, 559,
+ 570, 571, 575, 576, 580, 581, 585, 592, 593, 594,
+ 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
+ 605, 609, 610, 614, 615, 616, 620, 621, 625, 626,
+ 629, 630, 631, 632, 636, 637, 648, 654, 660, 666,
+ 674, 675, 684, 692, 695, 707, 716, 729, 736, 747,
+ 748, 758, 767, 768, 772, 784, 788, 792, 806, 807,
+ 810, 811, 822, 823, 827, 837, 850, 857, 861, 865,
+ 872, 875, 881, 893, 894, 898, 902, 903, 907, 912,
+ 913, 917, 922, 926, 927, 931, 932, 936, 937, 941,
+ 945, 946, 947, 953, 954, 958, 959, 960, 961, 962,
+ 963, 970, 971, 975, 976, 980, 981, 985, 995, 996,
+ 997, 998, 999, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
+ 1010, 1011, 1012, 1013, 1017, 1018, 1022, 1023, 1024, 1025,
+ 1026, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
+ 1039, 1040, 1044, 1045, 1049, 1050, 1051, 1052, 1058, 1059,
+ 1060, 1061, 1065, 1066, 1070, 1071, 1075, 1076, 1077, 1078,
+ 1079, 1080, 1081, 1085, 1086, 1090, 1094, 1098, 1099, 1100,
+ 1101, 1102, 1103, 1107, 1108, 1109, 1110, 1111, 1112, 1116,
+ 1117, 1121, 1125, 1129, 1133, 1134, 1135, 1136, 1140, 1141,
+ 1142, 1143, 1144, 1145, 1146, 1150, 1154, 1155, 1159, 1160,
+ 1164, 1168, 1172, 1185, 1186, 1197, 1231, 1243, 1244, 1254,
+ 1255, 1259, 1260, 1269, 1270, 1275, 1286, 1295, 1296, 1300,
+ 1301, 1305, 1306, 1311, 1312, 1317, 1318, 1323, 1324, 1333,
+ 1334, 1338, 1342, 1346, 1353, 1366, 1374, 1384, 1403, 1404,
+ 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1417, 1426,
+ 1427, 1432, 1433
};
#endif
@@ -863,22 +886,23 @@ static const char *const yytname[] =
"TEMPORARY", "TIMESTAMP", "DISTINCT", "NVARCHAR", "RESTRICT", "TRUNCATE",
"ANALYZE", "BETWEEN", "CASCADE", "COLUMNS", "CONTROL", "DEFAULT",
"EXECUTE", "EXPLAIN", "INTEGER", "NATURAL", "PREPARE", "PRIMARY",
- "SCHEMAS", "SPATIAL", "VARCHAR", "VIRTUAL", "DESCRIBE", "BEFORE",
- "COLUMN", "CREATE", "DELETE", "DIRECT", "DOUBLE", "ESCAPE", "EXCEPT",
- "EXISTS", "EXTRACT", "CAST", "FORMAT", "GLOBAL", "HAVING", "IMPORT",
- "INSERT", "ISNULL", "OFFSET", "RENAME", "SCHEMA", "SELECT", "SORTED",
- "TABLES", "UNIQUE", "UNLOAD", "UPDATE", "VALUES", "AFTER", "ALTER",
- "CROSS", "DELTA", "FLOAT", "GROUP", "INDEX", "INNER", "LIMIT", "LOCAL",
- "MERGE", "MINUS", "ORDER", "OUTER", "RIGHT", "TABLE", "UNION", "USING",
- "WHERE", "CALL", "CASE", "CHAR", "COPY", "DATE", "DATETIME", "DESC",
- "DROP", "ELSE", "FILE", "FROM", "FULL", "HASH", "HINT", "INTO", "JOIN",
- "LEFT", "LIKE", "LOAD", "LONG", "NULL", "PLAN", "SHOW", "TEXT", "THEN",
- "TIME", "VIEW", "WHEN", "WITH", "ADD", "ALL", "AND", "ASC", "END", "FOR",
- "INT", "KEY", "NOT", "OFF", "SET", "TOP", "AS", "BY", "IF", "IN", "IS",
- "OF", "ON", "OR", "TO", "ARRAY", "CONCAT", "ILIKE", "SECOND", "MINUTE",
- "HOUR", "DAY", "MONTH", "YEAR", "SECONDS", "MINUTES", "HOURS", "DAYS",
- "MONTHS", "YEARS", "INTERVAL", "TRUE", "FALSE", "TRANSACTION", "BEGIN",
- "COMMIT", "ROLLBACK", "'='", "EQUALS", "NOTEQUALS", "'<'", "'>'", "LESS",
+ "SCHEMAS", "CHARACTER", "VARYING", "REAL", "DECIMAL", "SPATIAL",
+ "VARCHAR", "VIRTUAL", "DESCRIBE", "BEFORE", "COLUMN", "CREATE", "DELETE",
+ "DIRECT", "DOUBLE", "ESCAPE", "EXCEPT", "EXISTS", "EXTRACT", "CAST",
+ "FORMAT", "GLOBAL", "HAVING", "IMPORT", "INSERT", "ISNULL", "OFFSET",
+ "RENAME", "SCHEMA", "SELECT", "SORTED", "TABLES", "UNIQUE", "UNLOAD",
+ "UPDATE", "VALUES", "AFTER", "ALTER", "CROSS", "DELTA", "FLOAT", "GROUP",
+ "INDEX", "INNER", "LIMIT", "LOCAL", "MERGE", "MINUS", "ORDER", "OUTER",
+ "RIGHT", "TABLE", "UNION", "USING", "WHERE", "CALL", "CASE", "CHAR",
+ "COPY", "DATE", "DATETIME", "DESC", "DROP", "ELSE", "FILE", "FROM",
+ "FULL", "HASH", "HINT", "INTO", "JOIN", "LEFT", "LIKE", "LOAD", "LONG",
+ "NULL", "PLAN", "SHOW", "TEXT", "THEN", "TIME", "VIEW", "WHEN", "WITH",
+ "ADD", "ALL", "AND", "ASC", "END", "FOR", "INT", "KEY", "NOT", "OFF",
+ "SET", "TOP", "AS", "BY", "IF", "IN", "IS", "OF", "ON", "OR", "TO",
+ "ARRAY", "CONCAT", "ILIKE", "SECOND", "MINUTE", "HOUR", "DAY", "MONTH",
+ "YEAR", "SECONDS", "MINUTES", "HOURS", "DAYS", "MONTHS", "YEARS",
+ "INTERVAL", "TRUE", "FALSE", "TRANSACTION", "BEGIN", "COMMIT",
+ "ROLLBACK", "'='", "EQUALS", "NOTEQUALS", "'<'", "'>'", "LESS",
"GREATER", "LESSEQ", "GREATEREQ", "NOTNULL", "'+'", "'-'", "'*'", "'/'",
"'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','",
"'?'", "$accept", "input", "statement_list", "statement",
@@ -887,11 +911,14 @@ static const char *const yytname[] =
"prepare_target_query", "execute_statement", "import_statement",
"file_type", "file_path", "opt_file_type", "export_statement",
"show_statement", "create_statement", "opt_not_exists",
- "column_def_commalist", "column_def", "column_type",
- "opt_column_nullable", "drop_statement", "opt_exists",
- "delete_statement", "truncate_statement", "insert_statement",
- "opt_column_list", "update_statement", "update_clause_commalist",
- "update_clause", "select_statement", "select_within_set_operation",
+ "table_elem_commalist", "table_elem", "column_def", "column_type",
+ "opt_time_specification", "opt_decimal_specification",
+ "opt_column_constraints", "column_constraint_list", "column_constraint",
+ "table_constraint", "drop_statement", "opt_exists", "alter_statement",
+ "alter_action", "drop_action", "delete_statement", "truncate_statement",
+ "insert_statement", "opt_column_list", "update_statement",
+ "update_clause_commalist", "update_clause", "select_statement",
+ "select_within_set_operation",
"select_within_set_operation_no_parentheses", "select_with_paren",
"select_no_paren", "set_operator", "set_type", "opt_all",
"select_clause", "opt_distinct", "select_list", "opt_from_clause",
@@ -906,11 +933,11 @@ static const char *const yytname[] =
"bool_literal", "num_literal", "int_literal", "null_literal",
"date_literal", "interval_literal", "param_expr", "table_ref",
"table_ref_atomic", "nonjoin_table_ref_atomic", "table_ref_commalist",
- "table_ref_name", "table_ref_name_no_alias", "table_name", "table_alias",
- "opt_table_alias", "alias", "opt_alias", "opt_with_clause",
- "with_clause", "with_description_list", "with_description",
- "join_clause", "opt_join_type", "join_condition", "opt_semicolon",
- "ident_commalist", YY_NULLPTR
+ "table_ref_name", "table_ref_name_no_alias", "table_name",
+ "opt_index_name", "table_alias", "opt_table_alias", "alias", "opt_alias",
+ "opt_with_clause", "with_clause", "with_description_list",
+ "with_description", "join_clause", "opt_join_type", "join_condition",
+ "opt_semicolon", "ident_commalist", YY_NULLPTR
};
static const char *
@@ -920,471 +947,493 @@ yysymbol_name (yysymbol_kind_t yysymbol)
}
#endif
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
- (internal) symbol number NUM (which must be that of a token). */
-static const yytype_int16 yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
- 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
- 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
- 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
- 405, 61, 406, 407, 60, 62, 408, 409, 410, 411,
- 412, 43, 45, 42, 47, 37, 94, 413, 91, 93,
- 40, 41, 46, 59, 44, 63
-};
-#endif
-
-#define YYPACT_NINF (-378)
+#define YYPACT_NINF (-321)
#define yypact_value_is_default(Yyn) \
((Yyn) == YYPACT_NINF)
-#define YYTABLE_NINF (-274)
+#define YYTABLE_NINF (-300)
#define yytable_value_is_error(Yyn) \
((Yyn) == YYTABLE_NINF)
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 555, 37, 118, 120, 130, 118, -40, -3, 33, 46,
- 118, 118, -37, 15, 147, 55, 55, 55, 162, 27,
- -378, 116, -378, 116, -378, -378, -378, -378, -378, -378,
- -378, -378, -378, -378, -378, -28, -378, 244, 76, -378,
- 95, 164, -378, 148, 148, 118, 251, 118, 153, -378,
- -57, 159, 159, 118, -378, 163, 108, -378, -378, -378,
- -378, -378, -378, 550, -378, 196, -378, -378, 171, -28,
- 40, -378, 129, -378, 288, 68, 293, 186, 118, 118,
- 225, -378, 220, 139, 307, 310, 310, 276, 118, 118,
- -378, 149, 147, -378, 151, 312, 311, 155, 156, -378,
- -378, -378, -28, 215, 207, -28, -6, -378, -378, -378,
- -378, 325, -378, 331, -378, -378, -378, 165, 172, -378,
- -378, -378, -378, 393, -378, -378, -378, -378, -378, -378,
- 296, -53, 139, 301, -378, 310, 336, 38, 198, -59,
- -378, 243, -378, 243, -378, -378, -378, -378, -378, 348,
- -378, -378, 301, -378, -378, 294, -378, -378, 40, -378,
- -378, 301, 294, 301, 123, -378, -378, 226, -378, 68,
- -378, -378, -378, -378, -378, -378, -378, -378, -378, -378,
- -378, -378, -378, -378, -378, -378, 361, 260, 362, 248,
- -76, 202, 208, 209, 150, 328, 212, 349, -378, 258,
- 22, 390, -378, -378, -378, -378, -378, -378, -378, -378,
- -378, -378, -378, -378, -378, -378, -378, -378, 290, -378,
- -120, 216, -378, 301, 307, -378, 341, -378, -378, 223,
- -11, -378, 306, 222, -378, 20, -6, -28, 224, -378,
- 61, -6, 22, 347, 31, -378, -378, 313, -378, 292,
- 25, -378, 260, 10, 11, 346, 226, 301, 301, 88,
- -48, 245, 349, 565, 301, 53, 242, -51, 301, 301,
- 349, -378, 349, -36, 246, 109, 349, 349, 349, 349,
- 349, 349, 349, 349, 349, 349, 349, 349, 349, 349,
- 349, 312, 118, -378, 411, 68, 22, -378, 251, 68,
- -378, 348, 6, 225, -378, 301, -378, 415, -378, -378,
- -378, -378, 301, -378, -378, -378, -378, 301, 301, 310,
- -378, 249, -378, -378, 252, -378, -378, -378, -378, -378,
- 110, -378, 362, -378, -378, 301, -378, -378, 253, 334,
- -70, 34, 83, 301, 301, -378, 346, 329, -17, -378,
- -378, -378, 316, 514, 591, 349, 261, 258, -378, 335,
- 267, 591, 591, 591, 591, 610, 610, 610, 610, 53,
- 53, -84, -84, -84, -93, 268, -378, -378, 64, -378,
- 84, -378, 260, -378, 315, -378, 262, -378, 23, -378,
- 373, -378, -378, -378, 22, 22, -378, 434, 435, -378,
- 343, -378, -378, 86, -378, 301, 292, 301, 301, -378,
- 119, 124, 272, -378, 349, 591, 258, 279, 102, -378,
- -378, -378, -378, 280, 358, -378, -378, -378, 380, 382,
- 383, 364, 6, 456, -378, -378, -378, 345, -378, 291,
- 297, -378, -378, 70, 298, 22, 132, -378, 301, -378,
- 565, 299, 106, -378, -378, 23, 6, -378, -378, -378,
- 6, 387, 305, 301, -378, -378, -378, -378, -378, 22,
- -378, -378, -378, -378, 522, 336, -29, 309, 301, 113,
- 301, -378, 12, 22, -378, -378, 22, 295, 314, -378
+ 618, 65, 87, 127, 142, 87, 104, 68, 95, 60,
+ 87, 138, 87, 122, 18, 201, 51, 51, 51, 225,
+ 71, -321, 126, -321, 126, -321, -321, -321, -321, -321,
+ -321, -321, -321, -321, -321, -321, -321, -23, -321, 246,
+ 74, -321, 86, 185, -321, 153, 153, 153, 87, 288,
+ 87, 170, -321, 171, -49, 171, 171, 171, 87, -321,
+ 179, 133, -321, -321, -321, -321, -321, -321, 587, -321,
+ 204, -321, -321, 189, -23, 129, -321, 61, -321, 302,
+ 37, 314, 200, 318, 87, 87, 255, -321, 236, 164,
+ 341, 308, 87, 355, 355, 358, 87, 87, -321, 202,
+ 201, -321, 214, 360, 363, 207, 219, -321, -321, -321,
+ -23, 290, 280, -23, 24, -321, -321, -321, -321, 402,
+ -321, 403, -321, -321, -321, 233, 234, -321, -321, -321,
+ -321, 713, -321, -321, -321, -321, -321, -321, 369, -321,
+ 285, -40, 164, 326, -321, 355, 413, 66, 262, -46,
+ -321, -321, 328, 309, -321, 309, -321, -321, -321, -321,
+ -321, 416, -321, -321, 326, -321, -321, 345, -321, -321,
+ 129, -321, -321, 326, 345, 326, 160, -321, -321, 130,
+ -321, 37, -321, -321, -321, -321, -321, -321, -321, -321,
+ -321, -321, -321, -321, -321, -321, -321, -321, 87, 419,
+ 312, 35, 300, 8, 251, 256, 260, 230, 386, 263,
+ 396, -321, 278, -68, 449, -321, -321, -321, -321, -321,
+ -321, -321, -321, -321, -321, -321, -321, -321, -321, -321,
+ -321, 339, -321, 121, 264, -321, 326, 341, -321, 399,
+ -321, -321, 391, -321, -321, 266, 123, -321, 348, 269,
+ -321, 19, 24, -23, 271, -321, -34, 24, -68, 397,
+ 17, -321, -321, 276, 361, -321, 453, 335, 281, 141,
+ -321, -321, -321, 312, 6, 12, 401, 130, 326, 326,
+ 109, -43, 282, 396, 646, 326, 118, 286, -74, 326,
+ 326, 396, -321, 396, -55, 289, -44, 396, 396, 396,
+ 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+ 396, 396, 360, 87, -321, 457, 37, -68, -321, 171,
+ 288, 37, -321, 416, 20, 255, -321, 326, -321, 459,
+ -321, -321, -321, -321, 326, -321, -321, -321, -321, 326,
+ 326, 413, 355, -321, 434, -321, 291, 293, -321, -321,
+ 294, -321, -321, -321, -321, 295, -321, 22, 297, 413,
+ -321, 35, -321, -321, 326, -321, -321, 303, 379, 131,
+ -56, 148, 326, 326, -321, 401, 381, 54, -321, -321,
+ -321, 365, 593, 664, 396, 316, 278, -321, 383, 319,
+ 664, 664, 664, 664, 714, 714, 714, 714, 118, 118,
+ 56, 56, 56, -87, 315, -321, -321, 167, 491, -321,
+ 168, -321, 312, -321, 144, -321, 320, -321, 28, -321,
+ 427, -321, -321, -321, -68, -68, 174, -321, 323, 495,
+ -321, 497, 498, 501, -321, 389, -321, -321, 406, -321,
+ 22, -321, 413, 176, -321, 180, -321, 326, 453, 326,
+ 326, -321, 44, 64, 336, -321, 396, 664, 278, 337,
+ 182, -321, -321, -321, -321, -321, 338, 412, -321, -321,
+ -321, 437, 438, 440, 420, 20, 517, -321, -321, -321,
+ 398, -321, -321, 516, 192, 349, 350, 351, -321, -321,
+ -321, 199, -321, -321, 39, 352, -68, 143, -321, 326,
+ -321, 646, 353, 208, -321, -321, 28, 20, -321, -321,
+ -321, 20, 270, 356, 326, 357, -321, 525, -321, -321,
+ -321, -321, -321, -321, -321, -68, -321, -321, -321, -321,
+ 78, 413, -24, -321, 362, 359, 326, 209, 326, -321,
+ -321, 13, -68, -321, -321, -68, 366, 364, -321
};
- /* 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-NUM] -- Default reduction number in state STATE-NUM.
+ Performed when YYTABLE does not specify something else to do. Zero
+ means the default is an error. */
static const yytype_int16 yydefact[] =
{
- 254, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 29, 29, 29, 0, 274,
- 3, 20, 18, 20, 17, 8, 9, 7, 11, 16,
- 13, 14, 12, 15, 10, 0, 253, 0, 243, 72,
- 32, 0, 43, 49, 49, 0, 0, 0, 0, 242,
- 0, 70, 70, 0, 41, 0, 255, 256, 28, 25,
- 27, 26, 1, 254, 2, 0, 6, 5, 120, 0,
- 81, 82, 112, 68, 0, 130, 0, 0, 0, 0,
- 106, 36, 0, 76, 0, 0, 0, 0, 0, 0,
- 42, 0, 0, 4, 0, 0, 100, 0, 0, 94,
- 95, 93, 0, 97, 0, 0, 126, 244, 221, 224,
- 226, 0, 227, 0, 222, 223, 232, 0, 129, 131,
- 214, 215, 216, 225, 217, 218, 219, 220, 31, 30,
- 0, 0, 76, 0, 71, 0, 0, 0, 0, 106,
- 78, 39, 37, 39, 69, 66, 67, 258, 257, 0,
- 119, 99, 0, 89, 88, 112, 85, 84, 86, 96,
- 92, 0, 112, 0, 0, 90, 228, 231, 33, 0,
- 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 229, 48, 0, 254, 0, 0,
- 210, 0, 0, 0, 0, 0, 0, 0, 212, 0,
- 105, 134, 141, 142, 143, 136, 138, 144, 137, 157,
- 145, 146, 147, 148, 140, 135, 150, 151, 0, 275,
- 0, 0, 74, 0, 0, 77, 0, 35, 40, 23,
- 0, 21, 103, 101, 127, 252, 126, 0, 111, 113,
- 118, 126, 122, 124, 121, 230, 132, 0, 46, 0,
- 0, 50, 254, 100, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 153, 0, 152, 0, 0, 0, 0,
- 0, 154, 0, 0, 0, 0, 0, 0, 0, 0,
+ 280, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 30, 30, 30, 0,
+ 300, 3, 21, 19, 21, 18, 8, 9, 7, 11,
+ 16, 17, 13, 14, 12, 15, 10, 0, 279, 0,
+ 267, 96, 33, 0, 44, 51, 51, 51, 0, 0,
+ 0, 0, 266, 91, 0, 91, 91, 91, 0, 42,
+ 0, 281, 282, 29, 26, 28, 27, 1, 280, 2,
+ 0, 6, 5, 144, 0, 105, 106, 136, 88, 0,
+ 154, 0, 0, 270, 0, 0, 130, 37, 0, 100,
+ 0, 0, 0, 0, 0, 0, 0, 0, 43, 0,
+ 0, 4, 0, 0, 124, 0, 0, 118, 119, 117,
+ 0, 121, 0, 0, 150, 268, 245, 248, 250, 0,
+ 251, 0, 246, 247, 256, 0, 153, 155, 238, 239,
+ 240, 249, 241, 242, 243, 244, 32, 31, 0, 269,
+ 0, 0, 100, 0, 95, 0, 0, 0, 0, 130,
+ 102, 90, 0, 40, 38, 40, 89, 86, 87, 284,
+ 283, 0, 143, 123, 0, 113, 112, 136, 109, 108,
+ 110, 120, 116, 0, 136, 0, 0, 114, 252, 255,
+ 34, 0, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 253, 50, 0, 0,
+ 280, 0, 0, 234, 0, 0, 0, 0, 0, 0,
+ 0, 236, 0, 129, 158, 165, 166, 167, 160, 162,
+ 168, 161, 181, 169, 170, 171, 172, 164, 159, 174,
+ 175, 0, 301, 0, 0, 98, 0, 0, 101, 0,
+ 92, 93, 0, 36, 41, 24, 0, 22, 127, 125,
+ 151, 278, 150, 0, 135, 137, 142, 150, 146, 148,
+ 145, 254, 156, 0, 0, 47, 0, 0, 0, 0,
+ 52, 54, 55, 280, 124, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 177, 0, 176, 0, 0, 0,
+ 0, 0, 178, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 75, 0, 0, 80, 79, 0, 0,
- 19, 0, 0, 106, 102, 0, 250, 0, 251, 133,
- 83, 87, 0, 117, 116, 115, 91, 0, 0, 0,
- 54, 0, 57, 56, 0, 62, 61, 55, 60, 53,
- 65, 45, 0, 47, 189, 0, 211, 213, 0, 0,
- 0, 0, 0, 0, 0, 176, 0, 0, 0, 149,
- 139, 168, 169, 0, 164, 0, 0, 0, 155, 0,
- 167, 166, 182, 183, 184, 185, 186, 187, 188, 159,
- 158, 161, 160, 162, 163, 0, 34, 276, 0, 38,
- 0, 22, 254, 104, 233, 235, 0, 237, 248, 236,
- 108, 128, 249, 114, 125, 123, 44, 0, 0, 63,
- 0, 52, 51, 0, 180, 0, 0, 0, 0, 174,
- 0, 0, 0, 207, 0, 165, 0, 0, 0, 156,
- 208, 73, 24, 0, 0, 270, 262, 268, 266, 269,
- 264, 0, 0, 0, 247, 241, 245, 0, 98, 0,
- 0, 64, 190, 0, 0, 178, 0, 177, 0, 181,
- 209, 0, 0, 172, 170, 248, 0, 265, 267, 263,
- 0, 234, 249, 0, 58, 59, 191, 192, 175, 179,
- 173, 171, 238, 259, 271, 0, 110, 0, 0, 0,
- 0, 107, 0, 272, 260, 246, 109, 210, 0, 261
+ 0, 0, 0, 0, 99, 0, 0, 104, 103, 91,
+ 0, 0, 20, 0, 0, 130, 126, 0, 276, 0,
+ 277, 157, 107, 111, 0, 141, 140, 139, 115, 0,
+ 0, 0, 0, 58, 0, 63, 75, 0, 62, 60,
+ 0, 70, 69, 59, 67, 72, 57, 77, 0, 0,
+ 46, 0, 49, 213, 0, 235, 237, 0, 0, 0,
+ 0, 0, 0, 0, 200, 0, 0, 0, 173, 163,
+ 192, 193, 0, 188, 0, 0, 0, 179, 0, 191,
+ 190, 206, 207, 208, 209, 210, 211, 212, 183, 182,
+ 185, 184, 186, 187, 0, 35, 302, 0, 0, 39,
+ 0, 23, 280, 128, 257, 259, 0, 261, 274, 260,
+ 132, 152, 275, 138, 149, 147, 0, 45, 0, 0,
+ 61, 0, 0, 0, 68, 0, 81, 82, 0, 56,
+ 76, 78, 0, 0, 53, 0, 204, 0, 0, 0,
+ 0, 198, 0, 0, 0, 231, 0, 189, 0, 0,
+ 0, 180, 232, 97, 94, 25, 0, 0, 296, 288,
+ 294, 292, 295, 290, 0, 0, 0, 273, 265, 271,
+ 0, 122, 48, 0, 0, 0, 0, 0, 80, 83,
+ 79, 0, 85, 214, 0, 0, 202, 0, 201, 0,
+ 205, 233, 0, 0, 196, 194, 274, 0, 291, 293,
+ 289, 0, 258, 275, 0, 0, 74, 0, 64, 66,
+ 71, 84, 215, 216, 199, 203, 197, 195, 262, 285,
+ 297, 0, 134, 65, 0, 0, 0, 0, 0, 131,
+ 73, 0, 298, 286, 272, 133, 234, 0, 287
};
- /* YYPGOTO[NTERM-NUM]. */
+/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -378, -378, -378, 417, -378, 460, -378, 183, -378, 26,
- -378, -378, -378, -378, 189, -83, 353, -378, -378, -378,
- 444, -378, 160, 91, -378, -378, 447, -378, -378, -378,
- 368, -378, -378, 277, -175, -89, -378, 99, -68, -39,
- -378, -378, -78, 254, -378, -378, -378, -126, -378, -378,
- -114, -378, 190, -378, -378, 9, -243, -378, -113, 199,
- -133, -177, -378, -378, -378, -378, -378, -378, 250, -378,
- -378, -378, -378, -378, -138, -378, -378, -378, -378, -378,
- 28, -71, -79, -378, -378, -87, -378, -378, -378, -378,
- -378, -377, 49, -378, -378, -378, 0, -378, 60, 273,
- -378, -378, -378, -378, 424, -378, -378, -378, -378, 42
+ -321, -321, -321, 475, -321, 523, -321, 227, -321, 48,
+ -321, -321, -321, -321, 228, -89, 409, -321, -321, -321,
+ 42, -321, 190, -321, 106, -321, -321, -321, -321, 116,
+ -321, -321, -47, -321, -321, -321, -321, -321, -321, 415,
+ -321, -321, 321, -194, -85, -321, 125, -73, -42, -321,
+ -321, -86, 292, -321, -321, -321, -136, -321, -321, -106,
+ -321, 238, -321, -321, -11, -260, -321, -27, 240, -143,
+ -191, -321, -321, -321, -321, -321, -321, 298, -321, -321,
+ -321, -321, -321, -150, -321, -321, -321, -321, -321, 27,
+ -60, -91, -321, -321, -92, -321, -321, -321, -321, -321,
+ -299, 67, -321, -321, -321, 2, -321, -321, 73, 322,
+ -321, -321, -321, -321, 480, -321, -321, -321, -321, -320
};
- /* YYDEFGOTO[NTERM-NUM]. */
+/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- 0, 18, 19, 20, 21, 66, 230, 231, 22, 59,
- 23, 129, 24, 25, 82, 141, 227, 26, 27, 28,
- 78, 250, 251, 330, 401, 29, 88, 30, 31, 32,
- 137, 33, 139, 140, 34, 155, 156, 157, 71, 102,
- 103, 160, 72, 152, 232, 303, 304, 134, 438, 481,
- 106, 238, 239, 315, 96, 165, 233, 117, 118, 234,
- 235, 201, 202, 203, 204, 205, 206, 207, 260, 208,
- 209, 210, 211, 212, 182, 183, 184, 213, 214, 215,
- 216, 217, 120, 121, 122, 123, 124, 125, 126, 127,
- 383, 384, 385, 386, 387, 48, 388, 434, 435, 436,
- 309, 35, 36, 56, 57, 389, 431, 484, 64, 220
+ 0, 19, 20, 21, 22, 71, 246, 247, 23, 64,
+ 24, 137, 25, 26, 88, 153, 243, 27, 28, 29,
+ 83, 269, 270, 271, 357, 434, 430, 439, 440, 441,
+ 272, 30, 92, 31, 240, 241, 32, 33, 34, 147,
+ 35, 149, 150, 36, 167, 168, 169, 76, 110, 111,
+ 172, 77, 164, 248, 325, 326, 144, 481, 539, 114,
+ 254, 255, 337, 104, 177, 249, 125, 126, 250, 251,
+ 214, 215, 216, 217, 218, 219, 220, 281, 221, 222,
+ 223, 224, 225, 194, 195, 196, 226, 227, 228, 229,
+ 230, 128, 129, 130, 131, 132, 133, 134, 135, 413,
+ 414, 415, 416, 417, 51, 418, 140, 477, 478, 479,
+ 331, 37, 38, 61, 62, 419, 474, 543, 69, 233
};
- /* 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 whose
+ number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 200, 98, 39, 143, 119, 42, 142, 142, 150, 38,
- 49, 50, 248, 225, 336, 487, 162, 480, 263, 133,
- 265, 348, 151, 306, 158, 68, 306, 158, 240, 245,
- 242, 244, 85, 105, 53, 43, 186, 276, 51, 343,
- 268, 236, 60, 61, 163, 80, 276, 83, 241, 99,
- 406, 293, 218, 90, 294, 461, 142, 269, 344, 268,
- 355, 259, 164, 37, 345, 44, 267, 187, 52, 222,
- 54, 86, 108, 109, 110, 291, 269, 333, 131, 132,
- 100, 318, 290, 474, 291, 263, 45, 356, 145, 146,
- 296, 68, 403, 353, 253, 354, 254, 221, 246, 360,
- 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
- 371, 372, 373, 374, 418, 224, 101, 188, 339, 237,
- 350, 38, 46, 40, 340, 341, 190, 108, 109, 110,
- 268, 266, 268, 41, 70, 351, 352, 407, 99, 47,
- 307, 268, 69, 433, 268, 305, 313, 269, 311, 269,
- 55, 111, 413, 190, 108, 109, 110, 305, 269, 158,
- 300, 269, 62, 301, 191, 192, 193, 112, 97, 100,
- 408, 268, 314, 452, 337, 198, 382, 390, 415, 240,
- 268, 334, 378, 276, 394, 395, 380, 338, 269, 344,
- 147, 191, 192, 193, 258, 409, 331, 269, 268, 332,
- 63, 104, 58, 194, 375, 101, 111, 423, 358, 399,
- 410, 411, 113, 114, 115, 269, 287, 288, 289, 290,
- 476, 291, 112, 65, 119, 359, 400, 448, 119, 268,
- 194, 447, 243, 111, 268, 421, 396, 450, 169, 195,
- 142, 466, 268, 116, 468, 310, 269, 73, 74, 112,
- 316, 269, 196, 76, 81, 422, 258, 442, 169, 269,
- 305, 190, 108, 109, 110, 75, 195, 113, 114, 115,
- 77, 84, 443, 454, 445, 446, 305, 471, 412, 196,
- 305, 87, 92, 91, 485, 197, 198, 294, 94, 417,
- 95, 107, 376, 199, 113, 114, 115, 128, 116, 191,
- 192, 193, 130, 133, 190, 108, 109, 110, 135, 136,
- 138, 68, 197, 198, 108, 469, 320, 144, 110, 69,
- 199, 149, 321, 151, 159, 116, 153, 154, 161, 166,
- 322, 190, 108, 109, 110, 167, 168, 185, 194, 219,
- 424, 111, 191, 192, 193, 483, 169, 486, 451, 223,
- 226, 229, 190, 108, 109, 110, 323, 112, 170, 171,
- 172, 173, 174, 175, 247, 249, 104, 14, 252, 261,
- 192, 193, 255, 324, 195, 325, 326, 425, 256, 257,
- 264, 194, 426, 292, 111, 298, 295, 196, 427, 428,
- 327, 192, 193, 299, 328, 302, 305, 317, 312, 68,
- 112, 319, 113, 114, 115, 429, 329, 270, 194, -271,
- 430, 111, 424, 349, 377, 346, 357, 195, 392, 397,
- 197, 198, 398, 405, 404, 355, 268, 112, 199, 194,
- 196, 416, 111, 116, 419, 291, 432, 420, 437, 271,
- 439, 440, 441, 449, 262, 113, 114, 115, 112, 425,
- 453, 455, 456, 457, 426, 458, 459, 196, 460, 462,
- 427, 428, 464, 197, 198, 262, 463, 254, 465, 467,
- 470, 199, 113, 114, 115, 475, 116, 429, 196, 482,
- 93, -271, 430, 67, 381, 489, 272, 379, 79, -239,
- 197, 198, 402, 113, 114, 115, 228, 444, 199, 89,
- 189, 297, 393, 116, 391, 473, 273, 335, 308, 342,
- 488, 197, 198, 274, 275, 472, 148, 479, 0, 199,
- 276, 277, 0, 0, 116, 170, 171, 172, 173, 174,
- 175, 176, 177, 178, 179, 180, 181, 0, 0, 0,
- 0, 278, 279, 280, 281, 282, 0, 424, 283, 284,
- -273, 285, 286, 287, 288, 289, 290, 1, 291, 0,
- 0, -240, 1, 271, 0, 2, 0, 0, 0, 0,
- 2, 0, 3, 0, 0, 0, 4, 3, 0, 0,
- 0, 4, 5, 0, 425, 6, 7, 5, 0, 426,
- 6, 7, 0, 0, 0, 427, 428, 8, 9, 477,
- 0, 0, 8, 9, 0, 0, 0, 0, 10, 0,
- 272, 0, 429, 10, 271, 0, 0, 430, 0, 0,
- 0, 0, 0, 0, 414, 0, 0, 0, 0, 0,
- 347, 0, 11, 0, 0, 0, 12, 11, 275, 0,
- 271, 12, 0, 0, 276, 277, 0, 0, 478, 0,
- 0, 13, 0, 0, 0, 0, 13, 14, 0, 271,
- 0, 272, 14, 0, 0, 278, 279, 280, 281, 282,
- 0, 0, 283, 284, 0, 285, 286, 287, 288, 289,
- 290, 347, 291, 0, 0, 0, 0, -274, 0, 275,
- 0, 0, 0, 0, 0, 276, 277, 0, 15, 16,
- 17, 0, 0, 15, 16, 17, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 275, 278, 279, 280, 281,
- 282, 276, -274, 283, 284, 0, 285, 286, 287, 288,
- 289, 290, 0, 291, 275, 0, 0, 0, 0, 0,
- 276, 0, -274, -274, -274, 281, 282, 0, 0, 283,
- 284, 0, 285, 286, 287, 288, 289, 290, 0, 291,
- 0, 0, 0, 0, -274, -274, 0, 0, -274, -274,
- 0, 285, 286, 287, 288, 289, 290, 0, 291
+ 213, 106, 154, 154, 41, 155, 265, 44, 95, 96,
+ 97, 162, 52, 238, 54, 365, 546, 284, 163, 286,
+ 127, 426, 328, 40, 170, 377, 538, 170, 174, 261,
+ 256, 328, 258, 260, 73, 113, 143, 58, 266, 443,
+ 289, 116, 117, 118, 93, 384, 289, 297, 372, 435,
+ 86, 449, 89, 199, 154, 335, 231, 290, 289, 387,
+ 98, 252, 267, 290, 280, 65, 66, 373, 257, 288,
+ 107, 340, 385, 374, 235, 290, 388, 59, 175, 362,
+ 289, 336, 436, 94, 200, 312, 141, 142, 84, 85,
+ 40, 39, 284, 317, 152, 268, 176, 290, 157, 158,
+ 382, 379, 383, 467, 445, 108, 389, 390, 391, 392,
+ 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
+ 403, 262, 491, 73, 119, 437, 460, 368, 253, 234,
+ 42, 289, 237, 289, 201, 369, 370, 112, 107, 287,
+ 120, 109, 438, 329, 468, 43, 380, 381, 290, 469,
+ 290, 74, 476, 289, 327, 470, 471, 50, 289, 535,
+ 498, 48, 75, 203, 116, 117, 118, 170, 333, 467,
+ 290, 499, 472, 108, 45, 290, 512, 473, 289, 366,
+ 211, 363, 274, 46, 275, 121, 122, 123, 49, 420,
+ 297, 256, 55, 457, 412, 290, 424, 425, 503, 105,
+ 263, 56, 63, 367, 60, 204, 205, 206, 536, 109,
+ 468, 537, 530, 47, 522, 469, 124, 53, 466, 279,
+ 404, 470, 471, 289, 159, 67, 311, 455, 312, 452,
+ 453, 57, 327, 203, 116, 117, 118, 70, 472, 450,
+ 290, 332, -297, 473, 207, 289, 338, 119, 68, 78,
+ 79, 154, 297, 427, 532, 448, 127, 289, 373, 524,
+ 80, 127, 290, 120, 451, 501, 182, 183, 184, 185,
+ 186, 187, 408, 259, 290, 204, 205, 206, 81, 82,
+ 208, 203, 116, 117, 118, 308, 309, 310, 311, 407,
+ 312, 87, 90, 209, 410, 467, 314, 91, 322, 315,
+ 102, 323, 454, 99, 494, 115, 496, 497, 121, 122,
+ 123, 100, 103, 459, 207, 405, 360, 119, 136, 361,
+ 138, 139, -263, 204, 205, 206, 210, 211, 145, 203,
+ 116, 117, 118, 120, 212, 73, 468, 143, 146, 124,
+ 279, 469, 463, 465, 148, 181, 181, 470, 471, 482,
+ 208, 492, 315, 151, 315, 493, 525, 505, 327, 116,
+ 327, 156, 207, 209, 472, 119, 118, 516, -297, 473,
+ 517, 204, 205, 206, 521, 163, 74, 315, 121, 122,
+ 123, 120, 165, 527, 544, 502, 327, 315, 161, 203,
+ 116, 117, 118, 542, 166, 545, 210, 211, 208, 203,
+ 116, 117, 118, 171, 212, 173, 178, 179, 180, 124,
+ 207, 209, 181, 119, 197, 198, 232, 236, 239, 245,
+ 242, 112, 264, 15, 273, 276, 121, 122, 123, 120,
+ 277, 282, 205, 206, 278, 285, 313, 319, 316, 320,
+ 321, 324, 205, 206, 210, 211, 208, 327, -264, 334,
+ 341, 339, 212, 342, 358, 359, 375, 124, 73, 209,
+ 406, 378, 422, 386, 428, 429, 291, 431, 432, 433,
+ 207, 442, 447, 119, 121, 122, 123, 343, 446, 289,
+ 207, 384, 344, 119, 345, 346, 461, 347, 462, 120,
+ 458, 312, 210, 211, 464, 348, 480, 483, 475, 120,
+ 212, 484, 292, 485, 486, 124, 283, 487, 488, 489,
+ 507, 500, 504, 506, 508, 509, 283, 510, 511, 209,
+ 513, 349, 515, 514, 518, 519, 520, 523, 526, 209,
+ 531, 534, 533, 541, 121, 122, 123, 540, 350, 548,
+ 351, 352, 275, 101, 121, 122, 123, 72, 409, 293,
+ 411, 444, 210, 211, 495, 353, 490, 202, 318, 354,
+ 212, 355, 210, 211, 244, 124, 364, 421, 547, 294,
+ 212, 356, 423, 330, 529, 124, 295, 296, 371, 528,
+ 160, 0, 0, 297, 298, 0, 0, -299, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 299, 300, 301, 302, 303, 3,
+ 0, 304, 305, 4, 306, 307, 308, 309, 310, 311,
+ 0, 312, 0, 5, 0, 1, 6, 7, 0, 0,
+ 0, 0, 0, 2, 0, 0, 0, 0, 8, 9,
+ 3, 0, 0, 0, 4, 0, 292, 0, 0, 10,
+ 0, 0, 11, 0, 5, 0, 0, 6, 7, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,
+ 9, 0, 0, 12, 0, 0, 0, 13, 0, 0,
+ 10, 0, 0, 11, 0, 0, 0, 0, 0, 0,
+ 0, 0, 14, 293, 0, 0, 0, 0, 15, 292,
+ 0, 0, 0, 0, 12, 0, 0, 456, 13, 0,
+ 0, 0, 0, 376, 0, 0, 0, 292, 0, 0,
+ 0, 296, 0, 14, 0, 0, 0, 297, 298, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
+ 17, 18, 0, 0, 0, 0, 293, 0, 299, 300,
+ 301, 302, 303, 0, 0, 304, 305, 0, 306, 307,
+ 308, 309, 310, 311, -300, 312, 376, 292, 0, 0,
+ 16, 17, 18, 0, 296, 0, 0, 0, 0, 0,
+ 297, 298, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 296, 0, 0, 0, 0, 0, 297, -300,
+ 0, 299, 300, 301, 302, 303, 0, 0, 304, 305,
+ 0, 306, 307, 308, 309, 310, 311, 0, 312, -300,
+ -300, -300, 302, 303, 0, 0, 304, 305, 0, 306,
+ 307, 308, 309, 310, 311, 0, 312, 0, 0, 0,
+ 0, 0, 296, 0, 0, 0, 0, 0, 297, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 193, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -300, -300, 0, 0, -300, -300, 0, 306,
+ 307, 308, 309, 310, 311, 0, 312
};
static const yytype_int16 yycheck[] =
{
- 133, 69, 2, 86, 75, 5, 85, 86, 95, 3,
- 10, 11, 187, 139, 3, 3, 105, 46, 195, 78,
- 197, 264, 12, 3, 102, 53, 3, 105, 161, 167,
- 163, 164, 89, 72, 19, 75, 89, 130, 75, 87,
- 110, 155, 16, 17, 50, 45, 130, 47, 162, 9,
- 120, 171, 135, 53, 174, 432, 135, 127, 106, 110,
- 96, 194, 68, 26, 112, 105, 199, 120, 105, 137,
- 55, 128, 4, 5, 6, 168, 127, 252, 78, 79,
- 40, 50, 166, 460, 168, 262, 89, 123, 88, 89,
- 223, 53, 335, 270, 170, 272, 172, 59, 169, 276,
- 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 357, 174, 76, 170, 256, 158,
- 171, 3, 89, 3, 257, 258, 3, 4, 5, 6,
- 110, 199, 110, 3, 35, 268, 269, 103, 9, 93,
- 120, 110, 170, 120, 110, 174, 85, 127, 237, 127,
- 3, 83, 169, 3, 4, 5, 6, 174, 127, 237,
- 171, 127, 0, 174, 41, 42, 43, 99, 69, 40,
- 87, 110, 111, 416, 163, 163, 170, 303, 355, 312,
- 110, 171, 295, 130, 317, 318, 299, 255, 127, 106,
- 91, 41, 42, 43, 106, 112, 171, 127, 110, 174,
- 173, 72, 147, 80, 291, 76, 83, 382, 99, 99,
- 343, 344, 144, 145, 146, 127, 163, 164, 165, 166,
- 463, 168, 99, 107, 295, 116, 116, 103, 299, 110,
- 80, 112, 109, 83, 110, 171, 319, 414, 174, 116,
- 319, 171, 110, 175, 112, 236, 127, 3, 172, 99,
- 241, 127, 129, 89, 3, 171, 106, 171, 174, 127,
- 174, 3, 4, 5, 6, 170, 116, 144, 145, 146,
- 122, 118, 405, 171, 407, 408, 174, 171, 346, 129,
- 174, 122, 174, 120, 171, 162, 163, 174, 92, 357,
- 119, 3, 292, 170, 144, 145, 146, 4, 175, 41,
- 42, 43, 116, 78, 3, 4, 5, 6, 88, 170,
- 3, 53, 162, 163, 4, 448, 24, 41, 6, 170,
- 170, 170, 30, 12, 109, 175, 171, 171, 121, 4,
- 38, 3, 4, 5, 6, 4, 171, 41, 80, 3,
- 25, 83, 41, 42, 43, 478, 174, 480, 416, 151,
- 107, 3, 3, 4, 5, 6, 64, 99, 132, 133,
- 134, 135, 136, 137, 3, 3, 72, 107, 120, 41,
- 42, 43, 170, 81, 116, 83, 84, 62, 170, 170,
- 168, 80, 67, 93, 83, 44, 170, 129, 73, 74,
- 98, 42, 43, 170, 102, 89, 174, 50, 174, 53,
- 99, 88, 144, 145, 146, 90, 114, 17, 80, 94,
- 95, 83, 25, 171, 3, 170, 170, 116, 3, 170,
- 162, 163, 170, 89, 171, 96, 110, 99, 170, 80,
- 129, 170, 83, 175, 99, 168, 174, 169, 65, 49,
- 6, 6, 99, 171, 116, 144, 145, 146, 99, 62,
- 171, 171, 94, 73, 67, 73, 73, 129, 94, 3,
- 73, 74, 171, 162, 163, 116, 121, 172, 171, 171,
- 171, 170, 144, 145, 146, 170, 175, 90, 129, 170,
- 63, 94, 95, 23, 301, 171, 96, 298, 44, 174,
- 162, 163, 332, 144, 145, 146, 143, 406, 170, 52,
- 132, 224, 312, 175, 305, 456, 116, 253, 235, 259,
- 482, 162, 163, 123, 124, 455, 92, 475, -1, 170,
- 130, 131, -1, -1, 175, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, -1, -1, -1,
- -1, 151, 152, 153, 154, 155, -1, 25, 158, 159,
- 0, 161, 162, 163, 164, 165, 166, 7, 168, -1,
- -1, 174, 7, 49, -1, 15, -1, -1, -1, -1,
- 15, -1, 22, -1, -1, -1, 26, 22, -1, -1,
- -1, 26, 32, -1, 62, 35, 36, 32, -1, 67,
- 35, 36, -1, -1, -1, 73, 74, 47, 48, 77,
- -1, -1, 47, 48, -1, -1, -1, -1, 58, -1,
- 96, -1, 90, 58, 49, -1, -1, 95, -1, -1,
- -1, -1, -1, -1, 110, -1, -1, -1, -1, -1,
- 116, -1, 82, -1, -1, -1, 86, 82, 124, -1,
- 49, 86, -1, -1, 130, 131, -1, -1, 126, -1,
- -1, 101, -1, -1, -1, -1, 101, 107, -1, 49,
- -1, 96, 107, -1, -1, 151, 152, 153, 154, 155,
- -1, -1, 158, 159, -1, 161, 162, 163, 164, 165,
- 166, 116, 168, -1, -1, -1, -1, 96, -1, 124,
- -1, -1, -1, -1, -1, 130, 131, -1, 148, 149,
- 150, -1, -1, 148, 149, 150, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 124, 151, 152, 153, 154,
- 155, 130, 131, 158, 159, -1, 161, 162, 163, 164,
- 165, 166, -1, 168, 124, -1, -1, -1, -1, -1,
- 130, -1, 151, 152, 153, 154, 155, -1, -1, 158,
- 159, -1, 161, 162, 163, 164, 165, 166, -1, 168,
- -1, -1, -1, -1, 154, 155, -1, -1, 158, 159,
- -1, 161, 162, 163, 164, 165, 166, -1, 168
+ 143, 74, 93, 94, 2, 94, 200, 5, 55, 56,
+ 57, 103, 10, 149, 12, 3, 3, 208, 12, 210,
+ 80, 341, 3, 3, 110, 285, 50, 113, 113, 179,
+ 173, 3, 175, 176, 57, 77, 82, 19, 3, 359,
+ 114, 4, 5, 6, 93, 100, 114, 134, 91, 27,
+ 48, 107, 50, 93, 145, 89, 145, 131, 114, 103,
+ 58, 167, 27, 131, 207, 17, 18, 110, 174, 212,
+ 9, 54, 127, 116, 147, 131, 120, 59, 54, 273,
+ 114, 115, 60, 132, 124, 172, 84, 85, 46, 47,
+ 3, 26, 283, 236, 92, 60, 72, 131, 96, 97,
+ 291, 175, 293, 25, 364, 44, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
+ 311, 181, 442, 57, 87, 103, 386, 277, 170, 63,
+ 3, 114, 178, 114, 174, 278, 279, 76, 9, 212,
+ 103, 80, 120, 124, 66, 3, 289, 290, 131, 71,
+ 131, 174, 124, 114, 178, 77, 78, 97, 114, 81,
+ 116, 93, 37, 3, 4, 5, 6, 253, 253, 25,
+ 131, 107, 94, 44, 70, 131, 475, 99, 114, 167,
+ 167, 175, 174, 79, 176, 148, 149, 150, 93, 325,
+ 134, 334, 70, 384, 174, 131, 339, 340, 458, 74,
+ 198, 79, 151, 276, 3, 45, 46, 47, 130, 80,
+ 66, 531, 511, 109, 175, 71, 179, 79, 412, 110,
+ 312, 77, 78, 114, 99, 0, 170, 173, 172, 372,
+ 373, 109, 178, 3, 4, 5, 6, 111, 94, 91,
+ 131, 252, 98, 99, 84, 114, 257, 87, 177, 3,
+ 176, 342, 134, 342, 514, 124, 316, 114, 110, 116,
+ 174, 321, 131, 103, 116, 456, 136, 137, 138, 139,
+ 140, 141, 319, 113, 131, 45, 46, 47, 93, 126,
+ 120, 3, 4, 5, 6, 167, 168, 169, 170, 316,
+ 172, 3, 122, 133, 321, 25, 175, 126, 175, 178,
+ 96, 178, 375, 124, 447, 3, 449, 450, 148, 149,
+ 150, 178, 123, 386, 84, 313, 175, 87, 4, 178,
+ 120, 3, 178, 45, 46, 47, 166, 167, 92, 3,
+ 4, 5, 6, 103, 174, 57, 66, 82, 174, 179,
+ 110, 71, 175, 175, 3, 178, 178, 77, 78, 175,
+ 120, 175, 178, 45, 178, 175, 499, 175, 178, 4,
+ 178, 3, 84, 133, 94, 87, 6, 175, 98, 99,
+ 178, 45, 46, 47, 175, 12, 174, 178, 148, 149,
+ 150, 103, 175, 175, 175, 458, 178, 178, 174, 3,
+ 4, 5, 6, 536, 175, 538, 166, 167, 120, 3,
+ 4, 5, 6, 113, 174, 125, 4, 4, 175, 179,
+ 84, 133, 178, 87, 45, 130, 3, 155, 90, 3,
+ 111, 76, 3, 111, 124, 174, 148, 149, 150, 103,
+ 174, 45, 46, 47, 174, 172, 97, 38, 174, 48,
+ 174, 93, 46, 47, 166, 167, 120, 178, 178, 178,
+ 174, 54, 174, 92, 119, 174, 174, 179, 57, 133,
+ 3, 175, 3, 174, 30, 174, 17, 174, 174, 174,
+ 84, 174, 93, 87, 148, 149, 150, 24, 175, 114,
+ 84, 100, 29, 87, 31, 32, 103, 34, 173, 103,
+ 174, 172, 166, 167, 3, 42, 69, 174, 178, 103,
+ 174, 6, 53, 6, 6, 179, 120, 6, 119, 103,
+ 98, 175, 175, 175, 77, 77, 120, 77, 98, 133,
+ 3, 68, 6, 125, 175, 175, 175, 175, 175, 133,
+ 174, 6, 175, 174, 148, 149, 150, 175, 85, 175,
+ 87, 88, 176, 68, 148, 149, 150, 24, 320, 100,
+ 323, 361, 166, 167, 448, 102, 440, 142, 237, 106,
+ 174, 108, 166, 167, 155, 179, 274, 327, 541, 120,
+ 174, 118, 334, 251, 507, 179, 127, 128, 280, 506,
+ 100, -1, -1, 134, 135, -1, -1, 0, -1, -1,
+ -1, -1, -1, -1, 7, -1, -1, -1, -1, -1,
+ -1, -1, 15, -1, 155, 156, 157, 158, 159, 22,
+ -1, 162, 163, 26, 165, 166, 167, 168, 169, 170,
+ -1, 172, -1, 36, -1, 7, 39, 40, -1, -1,
+ -1, -1, -1, 15, -1, -1, -1, -1, 51, 52,
+ 22, -1, -1, -1, 26, -1, 53, -1, -1, 62,
+ -1, -1, 65, -1, 36, -1, -1, 39, 40, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 51,
+ 52, -1, -1, 86, -1, -1, -1, 90, -1, -1,
+ 62, -1, -1, 65, -1, -1, -1, -1, -1, -1,
+ -1, -1, 105, 100, -1, -1, -1, -1, 111, 53,
+ -1, -1, -1, -1, 86, -1, -1, 114, 90, -1,
+ -1, -1, -1, 120, -1, -1, -1, 53, -1, -1,
+ -1, 128, -1, 105, -1, -1, -1, 134, 135, 111,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 152,
+ 153, 154, -1, -1, -1, -1, 100, -1, 155, 156,
+ 157, 158, 159, -1, -1, 162, 163, -1, 165, 166,
+ 167, 168, 169, 170, 100, 172, 120, 53, -1, -1,
+ 152, 153, 154, -1, 128, -1, -1, -1, -1, -1,
+ 134, 135, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 128, -1, -1, -1, -1, -1, 134, 135,
+ -1, 155, 156, 157, 158, 159, -1, -1, 162, 163,
+ -1, 165, 166, 167, 168, 169, 170, -1, 172, 155,
+ 156, 157, 158, 159, -1, -1, 162, 163, -1, 165,
+ 166, 167, 168, 169, 170, -1, 172, -1, -1, -1,
+ -1, -1, 128, -1, -1, -1, -1, -1, 134, 136,
+ 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
+ 147, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 158, 159, -1, -1, 162, 163, -1, 165,
+ 166, 167, 168, 169, 170, -1, 172
};
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+ state STATE-NUM. */
static const yytype_int16 yystos[] =
{
- 0, 7, 15, 22, 26, 32, 35, 36, 47, 48,
- 58, 82, 86, 101, 107, 148, 149, 150, 177, 178,
- 179, 180, 184, 186, 188, 189, 193, 194, 195, 201,
- 203, 204, 205, 207, 210, 277, 278, 26, 3, 272,
- 3, 3, 272, 75, 105, 89, 89, 93, 271, 272,
- 272, 75, 105, 19, 55, 3, 279, 280, 147, 185,
- 185, 185, 0, 173, 284, 107, 181, 181, 53, 170,
- 213, 214, 218, 3, 172, 170, 89, 122, 196, 196,
- 272, 3, 190, 272, 118, 89, 128, 122, 202, 202,
- 272, 120, 174, 179, 92, 119, 230, 213, 214, 9,
- 40, 76, 215, 216, 72, 215, 226, 3, 4, 5,
- 6, 83, 99, 144, 145, 146, 175, 233, 234, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 4, 187,
- 116, 272, 272, 78, 223, 88, 170, 206, 3, 208,
- 209, 191, 258, 191, 41, 272, 272, 213, 280, 170,
- 261, 12, 219, 171, 171, 211, 212, 213, 218, 109,
- 217, 121, 211, 50, 68, 231, 4, 4, 171, 174,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 250, 251, 252, 41, 89, 120, 170, 206,
- 3, 41, 42, 43, 80, 116, 129, 162, 163, 170,
- 236, 237, 238, 239, 240, 241, 242, 243, 245, 246,
- 247, 248, 249, 253, 254, 255, 256, 257, 191, 3,
- 285, 59, 214, 151, 174, 223, 107, 192, 192, 3,
- 182, 183, 220, 232, 235, 236, 226, 215, 227, 228,
- 236, 226, 236, 109, 236, 250, 257, 3, 210, 3,
- 197, 198, 120, 170, 172, 170, 170, 170, 106, 236,
- 244, 41, 116, 237, 168, 237, 214, 236, 110, 127,
- 17, 49, 96, 116, 123, 124, 130, 131, 151, 152,
- 153, 154, 155, 158, 159, 161, 162, 163, 164, 165,
- 166, 168, 93, 171, 174, 170, 236, 209, 44, 170,
- 171, 174, 89, 221, 222, 174, 3, 120, 275, 276,
- 231, 211, 174, 85, 111, 229, 231, 50, 50, 88,
- 24, 30, 38, 64, 81, 83, 84, 98, 102, 114,
- 199, 171, 174, 210, 171, 219, 3, 163, 214, 250,
- 236, 236, 244, 87, 106, 112, 170, 116, 232, 171,
- 171, 236, 236, 237, 237, 96, 123, 170, 99, 116,
- 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 237, 237, 261, 272, 3, 234, 190,
- 234, 183, 170, 266, 267, 268, 269, 270, 272, 281,
- 223, 235, 3, 228, 236, 236, 191, 170, 170, 99,
- 116, 200, 198, 232, 171, 89, 120, 103, 87, 112,
- 236, 236, 214, 169, 110, 237, 170, 214, 232, 99,
- 169, 171, 171, 210, 25, 62, 67, 73, 74, 90,
- 95, 282, 174, 120, 273, 274, 275, 65, 224, 6,
- 6, 99, 171, 236, 199, 236, 236, 112, 103, 171,
- 237, 214, 232, 171, 171, 171, 94, 73, 73, 73,
- 94, 267, 3, 121, 171, 171, 171, 171, 112, 236,
- 171, 171, 274, 268, 267, 170, 232, 77, 126, 285,
- 46, 225, 170, 236, 283, 171, 236, 3, 256, 171
+ 0, 7, 15, 22, 26, 36, 39, 40, 51, 52,
+ 62, 65, 86, 90, 105, 111, 152, 153, 154, 181,
+ 182, 183, 184, 188, 190, 192, 193, 197, 198, 199,
+ 211, 213, 216, 217, 218, 220, 223, 291, 292, 26,
+ 3, 285, 3, 3, 285, 70, 79, 109, 93, 93,
+ 97, 284, 285, 79, 285, 70, 79, 109, 19, 59,
+ 3, 293, 294, 151, 189, 189, 189, 0, 177, 298,
+ 111, 185, 185, 57, 174, 226, 227, 231, 3, 176,
+ 174, 93, 126, 200, 200, 200, 285, 3, 194, 285,
+ 122, 126, 212, 93, 132, 212, 212, 212, 285, 124,
+ 178, 183, 96, 123, 243, 226, 227, 9, 44, 80,
+ 228, 229, 76, 228, 239, 3, 4, 5, 6, 87,
+ 103, 148, 149, 150, 179, 246, 247, 270, 271, 272,
+ 273, 274, 275, 276, 277, 278, 4, 191, 120, 3,
+ 286, 285, 285, 82, 236, 92, 174, 219, 3, 221,
+ 222, 45, 285, 195, 271, 195, 3, 285, 285, 226,
+ 294, 174, 274, 12, 232, 175, 175, 224, 225, 226,
+ 231, 113, 230, 125, 224, 54, 72, 244, 4, 4,
+ 175, 178, 136, 137, 138, 139, 140, 141, 142, 143,
+ 144, 145, 146, 147, 263, 264, 265, 45, 130, 93,
+ 124, 174, 219, 3, 45, 46, 47, 84, 120, 133,
+ 166, 167, 174, 249, 250, 251, 252, 253, 254, 255,
+ 256, 258, 259, 260, 261, 262, 266, 267, 268, 269,
+ 270, 195, 3, 299, 63, 227, 155, 178, 236, 90,
+ 214, 215, 111, 196, 196, 3, 186, 187, 233, 245,
+ 248, 249, 239, 228, 240, 241, 249, 239, 249, 113,
+ 249, 263, 270, 285, 3, 223, 3, 27, 60, 201,
+ 202, 203, 210, 124, 174, 176, 174, 174, 174, 110,
+ 249, 257, 45, 120, 250, 172, 250, 227, 249, 114,
+ 131, 17, 53, 100, 120, 127, 128, 134, 135, 155,
+ 156, 157, 158, 159, 162, 163, 165, 166, 167, 168,
+ 169, 170, 172, 97, 175, 178, 174, 249, 222, 38,
+ 48, 174, 175, 178, 93, 234, 235, 178, 3, 124,
+ 289, 290, 244, 224, 178, 89, 115, 242, 244, 54,
+ 54, 174, 92, 24, 29, 31, 32, 34, 42, 68,
+ 85, 87, 88, 102, 106, 108, 118, 204, 119, 174,
+ 175, 178, 223, 175, 232, 3, 167, 227, 263, 249,
+ 249, 257, 91, 110, 116, 174, 120, 245, 175, 175,
+ 249, 249, 250, 250, 100, 127, 174, 103, 120, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 274, 285, 3, 247, 212, 194,
+ 247, 187, 174, 279, 280, 281, 282, 283, 285, 295,
+ 236, 248, 3, 241, 249, 249, 299, 195, 30, 174,
+ 206, 174, 174, 174, 205, 27, 60, 103, 120, 207,
+ 208, 209, 174, 299, 202, 245, 175, 93, 124, 107,
+ 91, 116, 249, 249, 227, 173, 114, 250, 174, 227,
+ 245, 103, 173, 175, 3, 175, 223, 25, 66, 71,
+ 77, 78, 94, 99, 296, 178, 124, 287, 288, 289,
+ 69, 237, 175, 174, 6, 6, 6, 6, 119, 103,
+ 209, 299, 175, 175, 249, 204, 249, 249, 116, 107,
+ 175, 250, 227, 245, 175, 175, 175, 98, 77, 77,
+ 77, 98, 280, 3, 125, 6, 175, 178, 175, 175,
+ 175, 175, 175, 175, 116, 249, 175, 175, 288, 281,
+ 280, 174, 245, 175, 6, 81, 130, 299, 50, 238,
+ 175, 174, 249, 297, 175, 249, 3, 269, 175
};
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
static const yytype_int16 yyr1[] =
{
- 0, 176, 177, 178, 178, 179, 179, 179, 179, 179,
- 180, 180, 180, 180, 180, 180, 180, 180, 180, 181,
- 181, 182, 182, 183, 183, 184, 184, 184, 185, 185,
- 186, 187, 188, 188, 189, 189, 190, 191, 192, 192,
- 193, 194, 194, 194, 195, 195, 195, 195, 196, 196,
- 197, 197, 198, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 200, 200, 200, 201, 201, 201, 202,
- 202, 203, 204, 205, 205, 206, 206, 207, 208, 208,
- 209, 210, 210, 210, 211, 211, 212, 212, 213, 213,
- 214, 214, 215, 216, 216, 216, 217, 217, 218, 219,
- 219, 220, 221, 221, 222, 223, 223, 224, 224, 225,
- 225, 226, 226, 227, 227, 228, 229, 229, 229, 230,
- 230, 231, 231, 231, 231, 231, 231, 232, 232, 233,
- 233, 234, 234, 235, 236, 236, 236, 236, 236, 237,
- 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
- 238, 238, 239, 239, 239, 239, 239, 240, 240, 240,
- 240, 240, 240, 240, 240, 240, 240, 240, 241, 241,
- 242, 242, 242, 242, 243, 243, 243, 243, 244, 244,
- 245, 245, 246, 246, 246, 246, 246, 246, 246, 247,
- 247, 248, 249, 250, 250, 250, 250, 250, 250, 251,
- 251, 251, 251, 251, 251, 252, 252, 253, 254, 255,
- 256, 256, 256, 256, 257, 257, 257, 257, 257, 257,
- 257, 258, 259, 259, 260, 260, 261, 262, 263, 264,
- 264, 264, 265, 266, 266, 267, 267, 268, 268, 269,
- 269, 270, 271, 272, 272, 273, 273, 274, 274, 275,
- 275, 276, 276, 277, 277, 278, 279, 279, 280, 281,
- 281, 281, 282, 282, 282, 282, 282, 282, 282, 282,
- 282, 282, 283, 284, 284, 285, 285
+ 0, 180, 181, 182, 182, 183, 183, 183, 183, 183,
+ 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
+ 185, 185, 186, 186, 187, 187, 188, 188, 188, 189,
+ 189, 190, 191, 192, 192, 193, 193, 194, 195, 196,
+ 196, 197, 198, 198, 198, 199, 199, 199, 199, 199,
+ 200, 200, 201, 201, 202, 202, 203, 204, 204, 204,
+ 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
+ 204, 205, 205, 206, 206, 206, 207, 207, 208, 208,
+ 209, 209, 209, 209, 210, 210, 211, 211, 211, 211,
+ 212, 212, 213, 214, 215, 216, 217, 218, 218, 219,
+ 219, 220, 221, 221, 222, 223, 223, 223, 224, 224,
+ 225, 225, 226, 226, 227, 227, 228, 229, 229, 229,
+ 230, 230, 231, 232, 232, 233, 234, 234, 235, 236,
+ 236, 237, 237, 238, 238, 239, 239, 240, 240, 241,
+ 242, 242, 242, 243, 243, 244, 244, 244, 244, 244,
+ 244, 245, 245, 246, 246, 247, 247, 248, 249, 249,
+ 249, 249, 249, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 251, 251, 252, 252, 252, 252,
+ 252, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+ 253, 253, 254, 254, 255, 255, 255, 255, 256, 256,
+ 256, 256, 257, 257, 258, 258, 259, 259, 259, 259,
+ 259, 259, 259, 260, 260, 261, 262, 263, 263, 263,
+ 263, 263, 263, 264, 264, 264, 264, 264, 264, 265,
+ 265, 266, 267, 268, 269, 269, 269, 269, 270, 270,
+ 270, 270, 270, 270, 270, 271, 272, 272, 273, 273,
+ 274, 275, 276, 277, 277, 277, 278, 279, 279, 280,
+ 280, 281, 281, 282, 282, 283, 284, 285, 285, 286,
+ 286, 287, 287, 288, 288, 289, 289, 290, 290, 291,
+ 291, 292, 293, 293, 294, 295, 295, 295, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 297, 298,
+ 298, 299, 299
};
- /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
static const yytype_int8 yyr2[] =
{
0, 2, 2, 1, 3, 2, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
- 0, 1, 3, 1, 4, 2, 2, 2, 1, 0,
- 4, 1, 2, 5, 7, 5, 1, 1, 3, 0,
- 5, 2, 3, 2, 8, 7, 6, 7, 3, 0,
- 1, 3, 3, 1, 1, 1, 1, 1, 4, 4,
- 1, 1, 1, 1, 2, 0, 4, 4, 3, 2,
- 0, 4, 2, 8, 5, 3, 0, 5, 1, 3,
- 3, 2, 2, 6, 1, 1, 1, 3, 3, 3,
- 3, 5, 2, 1, 1, 1, 1, 0, 7, 1,
- 0, 1, 1, 0, 2, 2, 0, 4, 0, 2,
- 0, 3, 0, 1, 3, 2, 1, 1, 0, 2,
- 0, 2, 2, 4, 2, 4, 0, 1, 3, 1,
- 0, 1, 3, 2, 1, 1, 1, 1, 1, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
- 1, 1, 2, 2, 2, 3, 4, 1, 3, 3,
- 3, 3, 3, 3, 3, 4, 3, 3, 3, 3,
- 5, 6, 5, 6, 4, 6, 3, 5, 4, 5,
- 4, 5, 3, 3, 3, 3, 3, 3, 3, 3,
- 5, 6, 6, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 4, 4, 5,
- 1, 3, 1, 3, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
- 3, 2, 1, 1, 3, 1, 1, 1, 4, 1,
- 3, 2, 1, 1, 3, 1, 5, 1, 0, 2,
- 1, 1, 0, 1, 0, 2, 1, 3, 3, 4,
- 6, 8, 1, 2, 1, 2, 1, 2, 1, 1,
- 1, 0, 1, 1, 0, 1, 3
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 5, 0, 1, 3, 1, 4, 2, 2, 2, 1,
+ 0, 4, 1, 2, 5, 7, 5, 1, 1, 3,
+ 0, 5, 2, 3, 2, 8, 7, 6, 9, 7,
+ 3, 0, 1, 3, 1, 1, 3, 1, 1, 1,
+ 1, 2, 1, 1, 4, 5, 4, 1, 2, 1,
+ 1, 3, 0, 5, 3, 0, 1, 0, 1, 2,
+ 2, 1, 1, 2, 5, 4, 4, 4, 3, 4,
+ 2, 0, 5, 1, 4, 4, 2, 8, 5, 3,
+ 0, 5, 1, 3, 3, 2, 2, 6, 1, 1,
+ 1, 3, 3, 3, 3, 5, 2, 1, 1, 1,
+ 1, 0, 7, 1, 0, 1, 1, 0, 2, 2,
+ 0, 4, 0, 2, 0, 3, 0, 1, 3, 2,
+ 1, 1, 0, 2, 0, 2, 2, 4, 2, 4,
+ 0, 1, 3, 1, 0, 1, 3, 2, 1, 1,
+ 1, 1, 1, 3, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 3, 1, 1, 2, 2, 2, 3,
+ 4, 1, 3, 3, 3, 3, 3, 3, 3, 4,
+ 3, 3, 3, 3, 5, 6, 5, 6, 4, 6,
+ 3, 5, 4, 5, 4, 5, 3, 3, 3, 3,
+ 3, 3, 3, 3, 5, 6, 6, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 5, 1, 3, 1, 3, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 3, 2, 1, 1, 3, 1,
+ 1, 1, 4, 1, 3, 2, 1, 1, 3, 1,
+ 0, 1, 5, 1, 0, 2, 1, 1, 0, 1,
+ 0, 2, 1, 3, 3, 4, 6, 8, 1, 2,
+ 1, 2, 1, 2, 1, 1, 1, 0, 1, 1,
+ 0, 1, 3
};
@@ -1396,6 +1445,7 @@ enum { YYENOMEM = -2 };
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
+#define YYNOMEM goto yyexhaustedlab
#define YYRECOVERING() (!!yyerrstatus)
@@ -1463,12 +1513,19 @@ do { \
} while (0)
-/* YY_LOCATION_PRINT -- Print the location on the stream.
+/* YYLOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
we won't break user code: when these are the locations we know. */
-# ifndef YY_LOCATION_PRINT
-# if defined HSQL_LTYPE_IS_TRIVIAL && HSQL_LTYPE_IS_TRIVIAL
+# ifndef YYLOCATION_PRINT
+
+# if defined YY_LOCATION_PRINT
+
+ /* Temporary convenience wrapper in case some people defined the
+ undocumented and private YY_LOCATION_PRINT macros. */
+# define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc))
+
+# elif defined HSQL_LTYPE_IS_TRIVIAL && HSQL_LTYPE_IS_TRIVIAL
/* Print *YYLOCP on YYO. Private, do not rely on its existence. */
@@ -1496,15 +1553,23 @@ yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
res += YYFPRINTF (yyo, "-%d", end_col);
}
return res;
- }
+}
+
+# define YYLOCATION_PRINT yy_location_print_
-# define YY_LOCATION_PRINT(File, Loc) \
- yy_location_print_ (File, &(Loc))
+ /* Temporary convenience wrapper in case some people defined the
+ undocumented and private YY_LOCATION_PRINT macros. */
+# define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc))
# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+
+# define YYLOCATION_PRINT(File, Loc) ((void) 0)
+ /* Temporary convenience wrapper in case some people defined the
+ undocumented and private YY_LOCATION_PRINT macros. */
+# define YY_LOCATION_PRINT YYLOCATION_PRINT
+
# endif
-# endif /* !defined YY_LOCATION_PRINT */
+# endif /* !defined YYLOCATION_PRINT */
# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
@@ -1534,10 +1599,6 @@ yy_symbol_value_print (FILE *yyo,
YY_USE (scanner);
if (!yyvaluep)
return;
-# ifdef YYPRINT
- if (yykind < YYNTOKENS)
- YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
-# endif
YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
YY_USE (yykind);
YY_IGNORE_MAYBE_UNINITIALIZED_END
@@ -1555,7 +1616,7 @@ yy_symbol_print (FILE *yyo,
YYFPRINTF (yyo, "%s %s (",
yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
- YY_LOCATION_PRINT (yyo, *yylocationp);
+ YYLOCATION_PRINT (yyo, yylocationp);
YYFPRINTF (yyo, ": ");
yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, result, scanner);
YYFPRINTF (yyo, ")");
@@ -1936,31 +1997,31 @@ yydestruct (const char *yymsg,
switch (yykind)
{
case YYSYMBOL_IDENTIFIER: /* IDENTIFIER */
-#line 149 "bison_parser.y"
+#line 158 "bison_parser.y"
{ free( (((*yyvaluep).sval)) ); }
-#line 1942 "bison_parser.cpp"
+#line 2003 "bison_parser.cpp"
break;
case YYSYMBOL_STRING: /* STRING */
-#line 149 "bison_parser.y"
+#line 158 "bison_parser.y"
{ free( (((*yyvaluep).sval)) ); }
-#line 1948 "bison_parser.cpp"
+#line 2009 "bison_parser.cpp"
break;
case YYSYMBOL_FLOATVAL: /* FLOATVAL */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 1954 "bison_parser.cpp"
+#line 2015 "bison_parser.cpp"
break;
case YYSYMBOL_INTVAL: /* INTVAL */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 1960 "bison_parser.cpp"
+#line 2021 "bison_parser.cpp"
break;
case YYSYMBOL_statement_list: /* statement_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).stmt_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).stmt_vec))) {
@@ -1969,23 +2030,23 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).stmt_vec));
}
-#line 1973 "bison_parser.cpp"
+#line 2034 "bison_parser.cpp"
break;
case YYSYMBOL_statement: /* statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).statement)); }
-#line 1979 "bison_parser.cpp"
+#line 2040 "bison_parser.cpp"
break;
case YYSYMBOL_preparable_statement: /* preparable_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).statement)); }
-#line 1985 "bison_parser.cpp"
+#line 2046 "bison_parser.cpp"
break;
case YYSYMBOL_opt_hints: /* opt_hints */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).expr_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).expr_vec))) {
@@ -1994,11 +2055,11 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).expr_vec));
}
-#line 1998 "bison_parser.cpp"
+#line 2059 "bison_parser.cpp"
break;
case YYSYMBOL_hint_list: /* hint_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).expr_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).expr_vec))) {
@@ -2007,150 +2068,204 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).expr_vec));
}
-#line 2011 "bison_parser.cpp"
+#line 2072 "bison_parser.cpp"
break;
case YYSYMBOL_hint: /* hint */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2017 "bison_parser.cpp"
+#line 2078 "bison_parser.cpp"
break;
case YYSYMBOL_transaction_statement: /* transaction_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).transaction_stmt)); }
-#line 2023 "bison_parser.cpp"
+#line 2084 "bison_parser.cpp"
break;
case YYSYMBOL_prepare_statement: /* prepare_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).prep_stmt)); }
-#line 2029 "bison_parser.cpp"
+#line 2090 "bison_parser.cpp"
break;
case YYSYMBOL_prepare_target_query: /* prepare_target_query */
-#line 149 "bison_parser.y"
+#line 158 "bison_parser.y"
{ free( (((*yyvaluep).sval)) ); }
-#line 2035 "bison_parser.cpp"
+#line 2096 "bison_parser.cpp"
break;
case YYSYMBOL_execute_statement: /* execute_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).exec_stmt)); }
-#line 2041 "bison_parser.cpp"
+#line 2102 "bison_parser.cpp"
break;
case YYSYMBOL_import_statement: /* import_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).import_stmt)); }
-#line 2047 "bison_parser.cpp"
+#line 2108 "bison_parser.cpp"
break;
case YYSYMBOL_file_type: /* file_type */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2053 "bison_parser.cpp"
+#line 2114 "bison_parser.cpp"
break;
case YYSYMBOL_file_path: /* file_path */
-#line 149 "bison_parser.y"
+#line 158 "bison_parser.y"
{ free( (((*yyvaluep).sval)) ); }
-#line 2059 "bison_parser.cpp"
+#line 2120 "bison_parser.cpp"
break;
case YYSYMBOL_opt_file_type: /* opt_file_type */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2065 "bison_parser.cpp"
+#line 2126 "bison_parser.cpp"
break;
case YYSYMBOL_export_statement: /* export_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).export_stmt)); }
-#line 2071 "bison_parser.cpp"
+#line 2132 "bison_parser.cpp"
break;
case YYSYMBOL_show_statement: /* show_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).show_stmt)); }
-#line 2077 "bison_parser.cpp"
+#line 2138 "bison_parser.cpp"
break;
case YYSYMBOL_create_statement: /* create_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).create_stmt)); }
-#line 2083 "bison_parser.cpp"
+#line 2144 "bison_parser.cpp"
break;
case YYSYMBOL_opt_not_exists: /* opt_not_exists */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2089 "bison_parser.cpp"
+#line 2150 "bison_parser.cpp"
break;
- case YYSYMBOL_column_def_commalist: /* column_def_commalist */
-#line 150 "bison_parser.y"
+ case YYSYMBOL_table_elem_commalist: /* table_elem_commalist */
+#line 159 "bison_parser.y"
{
- if ((((*yyvaluep).column_vec)) != nullptr) {
- for (auto ptr : *(((*yyvaluep).column_vec))) {
+ if ((((*yyvaluep).table_element_vec)) != nullptr) {
+ for (auto ptr : *(((*yyvaluep).table_element_vec))) {
delete ptr;
}
}
- delete (((*yyvaluep).column_vec));
+ delete (((*yyvaluep).table_element_vec));
}
-#line 2102 "bison_parser.cpp"
+#line 2163 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_table_elem: /* table_elem */
+#line 167 "bison_parser.y"
+ { delete (((*yyvaluep).table_element_t)); }
+#line 2169 "bison_parser.cpp"
break;
case YYSYMBOL_column_def: /* column_def */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).column_t)); }
-#line 2108 "bison_parser.cpp"
+#line 2175 "bison_parser.cpp"
break;
case YYSYMBOL_column_type: /* column_type */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2114 "bison_parser.cpp"
+#line 2181 "bison_parser.cpp"
break;
- case YYSYMBOL_opt_column_nullable: /* opt_column_nullable */
-#line 147 "bison_parser.y"
+ case YYSYMBOL_opt_time_specification: /* opt_time_specification */
+#line 156 "bison_parser.y"
{ }
-#line 2120 "bison_parser.cpp"
+#line 2187 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_opt_decimal_specification: /* opt_decimal_specification */
+#line 156 "bison_parser.y"
+ { }
+#line 2193 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_opt_column_constraints: /* opt_column_constraints */
+#line 156 "bison_parser.y"
+ { }
+#line 2199 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_column_constraint_list: /* column_constraint_list */
+#line 156 "bison_parser.y"
+ { }
+#line 2205 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_column_constraint: /* column_constraint */
+#line 156 "bison_parser.y"
+ { }
+#line 2211 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_table_constraint: /* table_constraint */
+#line 167 "bison_parser.y"
+ { delete (((*yyvaluep).table_constraint_t)); }
+#line 2217 "bison_parser.cpp"
break;
case YYSYMBOL_drop_statement: /* drop_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).drop_stmt)); }
-#line 2126 "bison_parser.cpp"
+#line 2223 "bison_parser.cpp"
break;
case YYSYMBOL_opt_exists: /* opt_exists */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2132 "bison_parser.cpp"
+#line 2229 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_alter_statement: /* alter_statement */
+#line 167 "bison_parser.y"
+ { delete (((*yyvaluep).alter_stmt)); }
+#line 2235 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_alter_action: /* alter_action */
+#line 167 "bison_parser.y"
+ { delete (((*yyvaluep).alter_action_t)); }
+#line 2241 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_drop_action: /* drop_action */
+#line 167 "bison_parser.y"
+ { delete (((*yyvaluep).drop_action_t)); }
+#line 2247 "bison_parser.cpp"
break;
case YYSYMBOL_delete_statement: /* delete_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).delete_stmt)); }
-#line 2138 "bison_parser.cpp"
+#line 2253 "bison_parser.cpp"
break;
case YYSYMBOL_truncate_statement: /* truncate_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).delete_stmt)); }
-#line 2144 "bison_parser.cpp"
+#line 2259 "bison_parser.cpp"
break;
case YYSYMBOL_insert_statement: /* insert_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).insert_stmt)); }
-#line 2150 "bison_parser.cpp"
+#line 2265 "bison_parser.cpp"
break;
case YYSYMBOL_opt_column_list: /* opt_column_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).str_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).str_vec))) {
@@ -2159,17 +2274,17 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).str_vec));
}
-#line 2163 "bison_parser.cpp"
+#line 2278 "bison_parser.cpp"
break;
case YYSYMBOL_update_statement: /* update_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).update_stmt)); }
-#line 2169 "bison_parser.cpp"
+#line 2284 "bison_parser.cpp"
break;
case YYSYMBOL_update_clause_commalist: /* update_clause_commalist */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).update_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).update_vec))) {
@@ -2178,77 +2293,77 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).update_vec));
}
-#line 2182 "bison_parser.cpp"
+#line 2297 "bison_parser.cpp"
break;
case YYSYMBOL_update_clause: /* update_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).update_t)); }
-#line 2188 "bison_parser.cpp"
+#line 2303 "bison_parser.cpp"
break;
case YYSYMBOL_select_statement: /* select_statement */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).select_stmt)); }
-#line 2194 "bison_parser.cpp"
+#line 2309 "bison_parser.cpp"
break;
case YYSYMBOL_select_within_set_operation: /* select_within_set_operation */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).select_stmt)); }
-#line 2200 "bison_parser.cpp"
+#line 2315 "bison_parser.cpp"
break;
case YYSYMBOL_select_within_set_operation_no_parentheses: /* select_within_set_operation_no_parentheses */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).select_stmt)); }
-#line 2206 "bison_parser.cpp"
+#line 2321 "bison_parser.cpp"
break;
case YYSYMBOL_select_with_paren: /* select_with_paren */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).select_stmt)); }
-#line 2212 "bison_parser.cpp"
+#line 2327 "bison_parser.cpp"
break;
case YYSYMBOL_select_no_paren: /* select_no_paren */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).select_stmt)); }
-#line 2218 "bison_parser.cpp"
+#line 2333 "bison_parser.cpp"
break;
case YYSYMBOL_set_operator: /* set_operator */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).set_operator_t)); }
-#line 2224 "bison_parser.cpp"
+#line 2339 "bison_parser.cpp"
break;
case YYSYMBOL_set_type: /* set_type */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).set_operator_t)); }
-#line 2230 "bison_parser.cpp"
+#line 2345 "bison_parser.cpp"
break;
case YYSYMBOL_opt_all: /* opt_all */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2236 "bison_parser.cpp"
+#line 2351 "bison_parser.cpp"
break;
case YYSYMBOL_select_clause: /* select_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).select_stmt)); }
-#line 2242 "bison_parser.cpp"
+#line 2357 "bison_parser.cpp"
break;
case YYSYMBOL_opt_distinct: /* opt_distinct */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2248 "bison_parser.cpp"
+#line 2363 "bison_parser.cpp"
break;
case YYSYMBOL_select_list: /* select_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).expr_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).expr_vec))) {
@@ -2257,41 +2372,41 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).expr_vec));
}
-#line 2261 "bison_parser.cpp"
+#line 2376 "bison_parser.cpp"
break;
case YYSYMBOL_opt_from_clause: /* opt_from_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2267 "bison_parser.cpp"
+#line 2382 "bison_parser.cpp"
break;
case YYSYMBOL_from_clause: /* from_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2273 "bison_parser.cpp"
+#line 2388 "bison_parser.cpp"
break;
case YYSYMBOL_opt_where: /* opt_where */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2279 "bison_parser.cpp"
+#line 2394 "bison_parser.cpp"
break;
case YYSYMBOL_opt_group: /* opt_group */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).group_t)); }
-#line 2285 "bison_parser.cpp"
+#line 2400 "bison_parser.cpp"
break;
case YYSYMBOL_opt_having: /* opt_having */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2291 "bison_parser.cpp"
+#line 2406 "bison_parser.cpp"
break;
case YYSYMBOL_opt_order: /* opt_order */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).order_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).order_vec))) {
@@ -2300,11 +2415,11 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).order_vec));
}
-#line 2304 "bison_parser.cpp"
+#line 2419 "bison_parser.cpp"
break;
case YYSYMBOL_order_list: /* order_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).order_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).order_vec))) {
@@ -2313,35 +2428,35 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).order_vec));
}
-#line 2317 "bison_parser.cpp"
+#line 2432 "bison_parser.cpp"
break;
case YYSYMBOL_order_desc: /* order_desc */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).order)); }
-#line 2323 "bison_parser.cpp"
+#line 2438 "bison_parser.cpp"
break;
case YYSYMBOL_opt_order_type: /* opt_order_type */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2329 "bison_parser.cpp"
+#line 2444 "bison_parser.cpp"
break;
case YYSYMBOL_opt_top: /* opt_top */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).limit)); }
-#line 2335 "bison_parser.cpp"
+#line 2450 "bison_parser.cpp"
break;
case YYSYMBOL_opt_limit: /* opt_limit */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).limit)); }
-#line 2341 "bison_parser.cpp"
+#line 2456 "bison_parser.cpp"
break;
case YYSYMBOL_expr_list: /* expr_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).expr_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).expr_vec))) {
@@ -2350,11 +2465,11 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).expr_vec));
}
-#line 2354 "bison_parser.cpp"
+#line 2469 "bison_parser.cpp"
break;
case YYSYMBOL_opt_literal_list: /* opt_literal_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).expr_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).expr_vec))) {
@@ -2363,11 +2478,11 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).expr_vec));
}
-#line 2367 "bison_parser.cpp"
+#line 2482 "bison_parser.cpp"
break;
case YYSYMBOL_literal_list: /* literal_list */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).expr_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).expr_vec))) {
@@ -2376,215 +2491,215 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).expr_vec));
}
-#line 2380 "bison_parser.cpp"
+#line 2495 "bison_parser.cpp"
break;
case YYSYMBOL_expr_alias: /* expr_alias */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2386 "bison_parser.cpp"
+#line 2501 "bison_parser.cpp"
break;
case YYSYMBOL_expr: /* expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2392 "bison_parser.cpp"
+#line 2507 "bison_parser.cpp"
break;
case YYSYMBOL_operand: /* operand */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2398 "bison_parser.cpp"
+#line 2513 "bison_parser.cpp"
break;
case YYSYMBOL_scalar_expr: /* scalar_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2404 "bison_parser.cpp"
+#line 2519 "bison_parser.cpp"
break;
case YYSYMBOL_unary_expr: /* unary_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2410 "bison_parser.cpp"
+#line 2525 "bison_parser.cpp"
break;
case YYSYMBOL_binary_expr: /* binary_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2416 "bison_parser.cpp"
+#line 2531 "bison_parser.cpp"
break;
case YYSYMBOL_logic_expr: /* logic_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2422 "bison_parser.cpp"
+#line 2537 "bison_parser.cpp"
break;
case YYSYMBOL_in_expr: /* in_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2428 "bison_parser.cpp"
+#line 2543 "bison_parser.cpp"
break;
case YYSYMBOL_case_expr: /* case_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2434 "bison_parser.cpp"
+#line 2549 "bison_parser.cpp"
break;
case YYSYMBOL_case_list: /* case_list */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2440 "bison_parser.cpp"
+#line 2555 "bison_parser.cpp"
break;
case YYSYMBOL_exists_expr: /* exists_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2446 "bison_parser.cpp"
+#line 2561 "bison_parser.cpp"
break;
case YYSYMBOL_comp_expr: /* comp_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2452 "bison_parser.cpp"
+#line 2567 "bison_parser.cpp"
break;
case YYSYMBOL_function_expr: /* function_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2458 "bison_parser.cpp"
+#line 2573 "bison_parser.cpp"
break;
case YYSYMBOL_extract_expr: /* extract_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2464 "bison_parser.cpp"
+#line 2579 "bison_parser.cpp"
break;
case YYSYMBOL_cast_expr: /* cast_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2470 "bison_parser.cpp"
+#line 2585 "bison_parser.cpp"
break;
case YYSYMBOL_datetime_field: /* datetime_field */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2476 "bison_parser.cpp"
+#line 2591 "bison_parser.cpp"
break;
case YYSYMBOL_datetime_field_plural: /* datetime_field_plural */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2482 "bison_parser.cpp"
+#line 2597 "bison_parser.cpp"
break;
case YYSYMBOL_duration_field: /* duration_field */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2488 "bison_parser.cpp"
+#line 2603 "bison_parser.cpp"
break;
case YYSYMBOL_array_expr: /* array_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2494 "bison_parser.cpp"
+#line 2609 "bison_parser.cpp"
break;
case YYSYMBOL_array_index: /* array_index */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2500 "bison_parser.cpp"
+#line 2615 "bison_parser.cpp"
break;
case YYSYMBOL_between_expr: /* between_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2506 "bison_parser.cpp"
+#line 2621 "bison_parser.cpp"
break;
case YYSYMBOL_column_name: /* column_name */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2512 "bison_parser.cpp"
+#line 2627 "bison_parser.cpp"
break;
case YYSYMBOL_literal: /* literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2518 "bison_parser.cpp"
+#line 2633 "bison_parser.cpp"
break;
case YYSYMBOL_string_literal: /* string_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2524 "bison_parser.cpp"
+#line 2639 "bison_parser.cpp"
break;
case YYSYMBOL_bool_literal: /* bool_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2530 "bison_parser.cpp"
+#line 2645 "bison_parser.cpp"
break;
case YYSYMBOL_num_literal: /* num_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2536 "bison_parser.cpp"
+#line 2651 "bison_parser.cpp"
break;
case YYSYMBOL_int_literal: /* int_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2542 "bison_parser.cpp"
+#line 2657 "bison_parser.cpp"
break;
case YYSYMBOL_null_literal: /* null_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2548 "bison_parser.cpp"
+#line 2663 "bison_parser.cpp"
break;
case YYSYMBOL_date_literal: /* date_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2554 "bison_parser.cpp"
+#line 2669 "bison_parser.cpp"
break;
case YYSYMBOL_interval_literal: /* interval_literal */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2560 "bison_parser.cpp"
+#line 2675 "bison_parser.cpp"
break;
case YYSYMBOL_param_expr: /* param_expr */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2566 "bison_parser.cpp"
+#line 2681 "bison_parser.cpp"
break;
case YYSYMBOL_table_ref: /* table_ref */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2572 "bison_parser.cpp"
+#line 2687 "bison_parser.cpp"
break;
case YYSYMBOL_table_ref_atomic: /* table_ref_atomic */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2578 "bison_parser.cpp"
+#line 2693 "bison_parser.cpp"
break;
case YYSYMBOL_nonjoin_table_ref_atomic: /* nonjoin_table_ref_atomic */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2584 "bison_parser.cpp"
+#line 2699 "bison_parser.cpp"
break;
case YYSYMBOL_table_ref_commalist: /* table_ref_commalist */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).table_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).table_vec))) {
@@ -2593,95 +2708,101 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).table_vec));
}
-#line 2597 "bison_parser.cpp"
+#line 2712 "bison_parser.cpp"
break;
case YYSYMBOL_table_ref_name: /* table_ref_name */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2603 "bison_parser.cpp"
+#line 2718 "bison_parser.cpp"
break;
case YYSYMBOL_table_ref_name_no_alias: /* table_ref_name_no_alias */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2609 "bison_parser.cpp"
+#line 2724 "bison_parser.cpp"
break;
case YYSYMBOL_table_name: /* table_name */
-#line 148 "bison_parser.y"
+#line 157 "bison_parser.y"
{ free( (((*yyvaluep).table_name).name) ); free( (((*yyvaluep).table_name).schema) ); }
-#line 2615 "bison_parser.cpp"
+#line 2730 "bison_parser.cpp"
break;
- case YYSYMBOL_table_alias: /* table_alias */
+ case YYSYMBOL_opt_index_name: /* opt_index_name */
#line 158 "bison_parser.y"
+ { free( (((*yyvaluep).sval)) ); }
+#line 2736 "bison_parser.cpp"
+ break;
+
+ case YYSYMBOL_table_alias: /* table_alias */
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).alias_t)); }
-#line 2621 "bison_parser.cpp"
+#line 2742 "bison_parser.cpp"
break;
case YYSYMBOL_opt_table_alias: /* opt_table_alias */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).alias_t)); }
-#line 2627 "bison_parser.cpp"
+#line 2748 "bison_parser.cpp"
break;
case YYSYMBOL_alias: /* alias */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).alias_t)); }
-#line 2633 "bison_parser.cpp"
+#line 2754 "bison_parser.cpp"
break;
case YYSYMBOL_opt_alias: /* opt_alias */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).alias_t)); }
-#line 2639 "bison_parser.cpp"
+#line 2760 "bison_parser.cpp"
break;
case YYSYMBOL_opt_with_clause: /* opt_with_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).with_description_vec)); }
-#line 2645 "bison_parser.cpp"
+#line 2766 "bison_parser.cpp"
break;
case YYSYMBOL_with_clause: /* with_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).with_description_vec)); }
-#line 2651 "bison_parser.cpp"
+#line 2772 "bison_parser.cpp"
break;
case YYSYMBOL_with_description_list: /* with_description_list */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).with_description_vec)); }
-#line 2657 "bison_parser.cpp"
+#line 2778 "bison_parser.cpp"
break;
case YYSYMBOL_with_description: /* with_description */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).with_description_t)); }
-#line 2663 "bison_parser.cpp"
+#line 2784 "bison_parser.cpp"
break;
case YYSYMBOL_join_clause: /* join_clause */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).table)); }
-#line 2669 "bison_parser.cpp"
+#line 2790 "bison_parser.cpp"
break;
case YYSYMBOL_opt_join_type: /* opt_join_type */
-#line 147 "bison_parser.y"
+#line 156 "bison_parser.y"
{ }
-#line 2675 "bison_parser.cpp"
+#line 2796 "bison_parser.cpp"
break;
case YYSYMBOL_join_condition: /* join_condition */
-#line 158 "bison_parser.y"
+#line 167 "bison_parser.y"
{ delete (((*yyvaluep).expr)); }
-#line 2681 "bison_parser.cpp"
+#line 2802 "bison_parser.cpp"
break;
case YYSYMBOL_ident_commalist: /* ident_commalist */
-#line 150 "bison_parser.y"
+#line 159 "bison_parser.y"
{
if ((((*yyvaluep).str_vec)) != nullptr) {
for (auto ptr : *(((*yyvaluep).str_vec))) {
@@ -2690,7 +2811,7 @@ yydestruct (const char *yymsg,
}
delete (((*yyvaluep).str_vec));
}
-#line 2694 "bison_parser.cpp"
+#line 2815 "bison_parser.cpp"
break;
default:
@@ -2785,6 +2906,7 @@ YYLTYPE yylloc = yyloc_default;
yychar = SQL_HSQL_EMPTY; /* Cause a token to be read. */
+
/* User initialization code. */
#line 73 "bison_parser.y"
{
@@ -2797,7 +2919,7 @@ YYLTYPE yylloc = yyloc_default;
yylloc.string_length = 0;
}
-#line 2801 "bison_parser.cpp"
+#line 2923 "bison_parser.cpp"
yylsp[0] = yylloc;
goto yysetstate;
@@ -2825,7 +2947,7 @@ YYLTYPE yylloc = yyloc_default;
if (yyss + yystacksize - 1 <= yyssp)
#if !defined yyoverflow && !defined YYSTACK_RELOCATE
- goto yyexhaustedlab;
+ YYNOMEM;
#else
{
/* Get the current used size of the three stacks, in elements. */
@@ -2856,7 +2978,7 @@ YYLTYPE yylloc = yyloc_default;
# else /* defined YYSTACK_RELOCATE */
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyexhaustedlab;
+ YYNOMEM;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
@@ -2867,7 +2989,7 @@ YYLTYPE yylloc = yyloc_default;
YY_CAST (union yyalloc *,
YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
if (! yyptr)
- goto yyexhaustedlab;
+ YYNOMEM;
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
YYSTACK_RELOCATE (yyls_alloc, yyls);
@@ -2891,6 +3013,7 @@ YYLTYPE yylloc = yyloc_default;
}
#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
+
if (yystate == YYFINAL)
YYACCEPT;
@@ -3007,7 +3130,7 @@ YYLTYPE yylloc = yyloc_default;
switch (yyn)
{
case 2: /* input: statement_list opt_semicolon */
-#line 270 "bison_parser.y"
+#line 290 "bison_parser.y"
{
for (SQLStatement* stmt : *(yyvsp[-1].stmt_vec)) {
// Transfers ownership of the statement.
@@ -3025,247 +3148,253 @@ YYLTYPE yylloc = yyloc_default;
}
delete (yyvsp[-1].stmt_vec);
}
-#line 3029 "bison_parser.cpp"
+#line 3152 "bison_parser.cpp"
break;
case 3: /* statement_list: statement */
-#line 291 "bison_parser.y"
+#line 311 "bison_parser.y"
{
(yyvsp[0].statement)->stringLength = yylloc.string_length;
yylloc.string_length = 0;
(yyval.stmt_vec) = new std::vector();
(yyval.stmt_vec)->push_back((yyvsp[0].statement));
}
-#line 3040 "bison_parser.cpp"
+#line 3163 "bison_parser.cpp"
break;
case 4: /* statement_list: statement_list ';' statement */
-#line 297 "bison_parser.y"
+#line 317 "bison_parser.y"
{
(yyvsp[0].statement)->stringLength = yylloc.string_length;
yylloc.string_length = 0;
(yyvsp[-2].stmt_vec)->push_back((yyvsp[0].statement));
(yyval.stmt_vec) = (yyvsp[-2].stmt_vec);
}
-#line 3051 "bison_parser.cpp"
+#line 3174 "bison_parser.cpp"
break;
case 5: /* statement: prepare_statement opt_hints */
-#line 306 "bison_parser.y"
+#line 326 "bison_parser.y"
{
(yyval.statement) = (yyvsp[-1].prep_stmt);
(yyval.statement)->hints = (yyvsp[0].expr_vec);
}
-#line 3060 "bison_parser.cpp"
+#line 3183 "bison_parser.cpp"
break;
case 6: /* statement: preparable_statement opt_hints */
-#line 310 "bison_parser.y"
+#line 330 "bison_parser.y"
{
(yyval.statement) = (yyvsp[-1].statement);
(yyval.statement)->hints = (yyvsp[0].expr_vec);
}
-#line 3069 "bison_parser.cpp"
+#line 3192 "bison_parser.cpp"
break;
case 7: /* statement: show_statement */
-#line 314 "bison_parser.y"
+#line 334 "bison_parser.y"
{
(yyval.statement) = (yyvsp[0].show_stmt);
}
-#line 3077 "bison_parser.cpp"
+#line 3200 "bison_parser.cpp"
break;
case 8: /* statement: import_statement */
-#line 317 "bison_parser.y"
+#line 337 "bison_parser.y"
{
(yyval.statement) = (yyvsp[0].import_stmt);
}
-#line 3085 "bison_parser.cpp"
+#line 3208 "bison_parser.cpp"
break;
case 9: /* statement: export_statement */
-#line 320 "bison_parser.y"
+#line 340 "bison_parser.y"
{
(yyval.statement) = (yyvsp[0].export_stmt);
}
-#line 3093 "bison_parser.cpp"
+#line 3216 "bison_parser.cpp"
break;
case 10: /* preparable_statement: select_statement */
-#line 327 "bison_parser.y"
+#line 347 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].select_stmt); }
-#line 3099 "bison_parser.cpp"
+#line 3222 "bison_parser.cpp"
break;
case 11: /* preparable_statement: create_statement */
-#line 328 "bison_parser.y"
+#line 348 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].create_stmt); }
-#line 3105 "bison_parser.cpp"
+#line 3228 "bison_parser.cpp"
break;
case 12: /* preparable_statement: insert_statement */
-#line 329 "bison_parser.y"
+#line 349 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].insert_stmt); }
-#line 3111 "bison_parser.cpp"
+#line 3234 "bison_parser.cpp"
break;
case 13: /* preparable_statement: delete_statement */
-#line 330 "bison_parser.y"
+#line 350 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].delete_stmt); }
-#line 3117 "bison_parser.cpp"
+#line 3240 "bison_parser.cpp"
break;
case 14: /* preparable_statement: truncate_statement */
-#line 331 "bison_parser.y"
+#line 351 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].delete_stmt); }
-#line 3123 "bison_parser.cpp"
+#line 3246 "bison_parser.cpp"
break;
case 15: /* preparable_statement: update_statement */
-#line 332 "bison_parser.y"
+#line 352 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].update_stmt); }
-#line 3129 "bison_parser.cpp"
+#line 3252 "bison_parser.cpp"
break;
case 16: /* preparable_statement: drop_statement */
-#line 333 "bison_parser.y"
+#line 353 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].drop_stmt); }
-#line 3135 "bison_parser.cpp"
+#line 3258 "bison_parser.cpp"
break;
- case 17: /* preparable_statement: execute_statement */
-#line 334 "bison_parser.y"
+ case 17: /* preparable_statement: alter_statement */
+#line 354 "bison_parser.y"
+ { (yyval.statement) = (yyvsp[0].alter_stmt); }
+#line 3264 "bison_parser.cpp"
+ break;
+
+ case 18: /* preparable_statement: execute_statement */
+#line 355 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].exec_stmt); }
-#line 3141 "bison_parser.cpp"
+#line 3270 "bison_parser.cpp"
break;
- case 18: /* preparable_statement: transaction_statement */
-#line 335 "bison_parser.y"
+ case 19: /* preparable_statement: transaction_statement */
+#line 356 "bison_parser.y"
{ (yyval.statement) = (yyvsp[0].transaction_stmt); }
-#line 3147 "bison_parser.cpp"
+#line 3276 "bison_parser.cpp"
break;
- case 19: /* opt_hints: WITH HINT '(' hint_list ')' */
-#line 344 "bison_parser.y"
+ case 20: /* opt_hints: WITH HINT '(' hint_list ')' */
+#line 365 "bison_parser.y"
{ (yyval.expr_vec) = (yyvsp[-1].expr_vec); }
-#line 3153 "bison_parser.cpp"
+#line 3282 "bison_parser.cpp"
break;
- case 20: /* opt_hints: %empty */
-#line 345 "bison_parser.y"
+ case 21: /* opt_hints: %empty */
+#line 366 "bison_parser.y"
{ (yyval.expr_vec) = nullptr; }
-#line 3159 "bison_parser.cpp"
+#line 3288 "bison_parser.cpp"
break;
- case 21: /* hint_list: hint */
-#line 350 "bison_parser.y"
+ case 22: /* hint_list: hint */
+#line 371 "bison_parser.y"
{ (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); }
-#line 3165 "bison_parser.cpp"
+#line 3294 "bison_parser.cpp"
break;
- case 22: /* hint_list: hint_list ',' hint */
-#line 351 "bison_parser.y"
+ case 23: /* hint_list: hint_list ',' hint */
+#line 372 "bison_parser.y"
{ (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); }
-#line 3171 "bison_parser.cpp"
+#line 3300 "bison_parser.cpp"
break;
- case 23: /* hint: IDENTIFIER */
-#line 355 "bison_parser.y"
+ case 24: /* hint: IDENTIFIER */
+#line 376 "bison_parser.y"
{
(yyval.expr) = Expr::make(kExprHint);
(yyval.expr)->name = (yyvsp[0].sval);
}
-#line 3180 "bison_parser.cpp"
+#line 3309 "bison_parser.cpp"
break;
- case 24: /* hint: IDENTIFIER '(' literal_list ')' */
-#line 359 "bison_parser.y"
+ case 25: /* hint: IDENTIFIER '(' literal_list ')' */
+#line 380 "bison_parser.y"
{
(yyval.expr) = Expr::make(kExprHint);
(yyval.expr)->name = (yyvsp[-3].sval);
(yyval.expr)->exprList = (yyvsp[-1].expr_vec);
}
-#line 3190 "bison_parser.cpp"
+#line 3319 "bison_parser.cpp"
break;
- case 25: /* transaction_statement: BEGIN opt_transaction_keyword */
-#line 371 "bison_parser.y"
+ case 26: /* transaction_statement: BEGIN opt_transaction_keyword */
+#line 392 "bison_parser.y"
{
(yyval.transaction_stmt) = new TransactionStatement(kBeginTransaction);
}
-#line 3198 "bison_parser.cpp"
+#line 3327 "bison_parser.cpp"
break;
- case 26: /* transaction_statement: ROLLBACK opt_transaction_keyword */
-#line 374 "bison_parser.y"
+ case 27: /* transaction_statement: ROLLBACK opt_transaction_keyword */
+#line 395 "bison_parser.y"
{
(yyval.transaction_stmt) = new TransactionStatement(kRollbackTransaction);
}
-#line 3206 "bison_parser.cpp"
+#line 3335 "bison_parser.cpp"
break;
- case 27: /* transaction_statement: COMMIT opt_transaction_keyword */
-#line 377 "bison_parser.y"
+ case 28: /* transaction_statement: COMMIT opt_transaction_keyword */
+#line 398 "bison_parser.y"
{
(yyval.transaction_stmt) = new TransactionStatement(kCommitTransaction);
}
-#line 3214 "bison_parser.cpp"
+#line 3343 "bison_parser.cpp"
break;
- case 30: /* prepare_statement: PREPARE IDENTIFIER FROM prepare_target_query */
-#line 391 "bison_parser.y"
+ case 31: /* prepare_statement: PREPARE IDENTIFIER FROM prepare_target_query */
+#line 412 "bison_parser.y"
{
(yyval.prep_stmt) = new PrepareStatement();
(yyval.prep_stmt)->name = (yyvsp[-2].sval);
(yyval.prep_stmt)->query = (yyvsp[0].sval);
}
-#line 3224 "bison_parser.cpp"
+#line 3353 "bison_parser.cpp"
break;
- case 32: /* execute_statement: EXECUTE IDENTIFIER */
-#line 401 "bison_parser.y"
+ case 33: /* execute_statement: EXECUTE IDENTIFIER */
+#line 422 "bison_parser.y"
{
(yyval.exec_stmt) = new ExecuteStatement();
(yyval.exec_stmt)->name = (yyvsp[0].sval);
}
-#line 3233 "bison_parser.cpp"
+#line 3362 "bison_parser.cpp"
break;
- case 33: /* execute_statement: EXECUTE IDENTIFIER '(' opt_literal_list ')' */
-#line 405 "bison_parser.y"
+ case 34: /* execute_statement: EXECUTE IDENTIFIER '(' opt_literal_list ')' */
+#line 426 "bison_parser.y"
{
(yyval.exec_stmt) = new ExecuteStatement();
(yyval.exec_stmt)->name = (yyvsp[-3].sval);
(yyval.exec_stmt)->parameters = (yyvsp[-1].expr_vec);
}
-#line 3243 "bison_parser.cpp"
+#line 3372 "bison_parser.cpp"
break;
- case 34: /* import_statement: IMPORT FROM file_type FILE file_path INTO table_name */
-#line 419 "bison_parser.y"
+ case 35: /* import_statement: IMPORT FROM file_type FILE file_path INTO table_name */
+#line 440 "bison_parser.y"
{
(yyval.import_stmt) = new ImportStatement((yyvsp[-4].import_type_t));
(yyval.import_stmt)->filePath = (yyvsp[-2].sval);
(yyval.import_stmt)->schema = (yyvsp[0].table_name).schema;
(yyval.import_stmt)->tableName = (yyvsp[0].table_name).name;
}
-#line 3254 "bison_parser.cpp"
+#line 3383 "bison_parser.cpp"
break;
- case 35: /* import_statement: COPY table_name FROM file_path opt_file_type */
-#line 425 "bison_parser.y"
+ case 36: /* import_statement: COPY table_name FROM file_path opt_file_type */
+#line 446 "bison_parser.y"
{
(yyval.import_stmt) = new ImportStatement((yyvsp[0].import_type_t));
(yyval.import_stmt)->filePath = (yyvsp[-1].sval);
(yyval.import_stmt)->schema = (yyvsp[-3].table_name).schema;
(yyval.import_stmt)->tableName = (yyvsp[-3].table_name).name;
}
-#line 3265 "bison_parser.cpp"
+#line 3394 "bison_parser.cpp"
break;
- case 36: /* file_type: IDENTIFIER */
-#line 434 "bison_parser.y"
+ case 37: /* file_type: IDENTIFIER */
+#line 455 "bison_parser.y"
{
if (strcasecmp((yyvsp[0].sval), "csv") == 0) {
(yyval.import_type_t) = kImportCSV;
@@ -3280,70 +3409,70 @@ YYLTYPE yylloc = yyloc_default;
}
free((yyvsp[0].sval));
}
-#line 3284 "bison_parser.cpp"
+#line 3413 "bison_parser.cpp"
break;
- case 37: /* file_path: string_literal */
-#line 451 "bison_parser.y"
+ case 38: /* file_path: string_literal */
+#line 472 "bison_parser.y"
{ (yyval.sval) = strdup((yyvsp[0].expr)->name); delete (yyvsp[0].expr); }
-#line 3290 "bison_parser.cpp"
+#line 3419 "bison_parser.cpp"
break;
- case 38: /* opt_file_type: WITH FORMAT file_type */
-#line 455 "bison_parser.y"
+ case 39: /* opt_file_type: WITH FORMAT file_type */
+#line 476 "bison_parser.y"
{
(yyval.import_type_t) = (yyvsp[0].import_type_t);
}
-#line 3298 "bison_parser.cpp"
+#line 3427 "bison_parser.cpp"
break;
- case 39: /* opt_file_type: %empty */
-#line 458 "bison_parser.y"
+ case 40: /* opt_file_type: %empty */
+#line 479 "bison_parser.y"
{ (yyval.import_type_t) = kImportAuto; }
-#line 3304 "bison_parser.cpp"
+#line 3433 "bison_parser.cpp"
break;
- case 40: /* export_statement: COPY table_name TO file_path opt_file_type */
-#line 467 "bison_parser.y"
+ case 41: /* export_statement: COPY table_name TO file_path opt_file_type */
+#line 488 "bison_parser.y"
{
(yyval.export_stmt) = new ExportStatement((yyvsp[0].import_type_t));
(yyval.export_stmt)->filePath = (yyvsp[-1].sval);
(yyval.export_stmt)->schema = (yyvsp[-3].table_name).schema;
(yyval.export_stmt)->tableName = (yyvsp[-3].table_name).name;
}
-#line 3315 "bison_parser.cpp"
+#line 3444 "bison_parser.cpp"
break;
- case 41: /* show_statement: SHOW TABLES */
-#line 481 "bison_parser.y"
+ case 42: /* show_statement: SHOW TABLES */
+#line 502 "bison_parser.y"
{
(yyval.show_stmt) = new ShowStatement(kShowTables);
}
-#line 3323 "bison_parser.cpp"
+#line 3452 "bison_parser.cpp"
break;
- case 42: /* show_statement: SHOW COLUMNS table_name */
-#line 484 "bison_parser.y"
+ case 43: /* show_statement: SHOW COLUMNS table_name */
+#line 505 "bison_parser.y"
{
(yyval.show_stmt) = new ShowStatement(kShowColumns);
(yyval.show_stmt)->schema = (yyvsp[0].table_name).schema;
(yyval.show_stmt)->name = (yyvsp[0].table_name).name;
}
-#line 3333 "bison_parser.cpp"
+#line 3462 "bison_parser.cpp"
break;
- case 43: /* show_statement: DESCRIBE table_name */
-#line 489 "bison_parser.y"
+ case 44: /* show_statement: DESCRIBE table_name */
+#line 510 "bison_parser.y"
{
(yyval.show_stmt) = new ShowStatement(kShowColumns);
(yyval.show_stmt)->schema = (yyvsp[0].table_name).schema;
(yyval.show_stmt)->name = (yyvsp[0].table_name).name;
}
-#line 3343 "bison_parser.cpp"
+#line 3472 "bison_parser.cpp"
break;
- case 44: /* create_statement: CREATE TABLE opt_not_exists table_name FROM IDENTIFIER FILE file_path */
-#line 503 "bison_parser.y"
+ case 45: /* create_statement: CREATE TABLE opt_not_exists table_name FROM IDENTIFIER FILE file_path */
+#line 524 "bison_parser.y"
{
(yyval.create_stmt) = new CreateStatement(kCreateTableFromTbl);
(yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval);
@@ -3357,23 +3486,24 @@ YYLTYPE yylloc = yyloc_default;
free((yyvsp[-2].sval));
(yyval.create_stmt)->filePath = (yyvsp[0].sval);
}
-#line 3361 "bison_parser.cpp"
+#line 3490 "bison_parser.cpp"
break;
- case 45: /* create_statement: CREATE TABLE opt_not_exists table_name '(' column_def_commalist ')' */
-#line 516 "bison_parser.y"
+ case 46: /* create_statement: CREATE TABLE opt_not_exists table_name '(' table_elem_commalist ')' */
+#line 537 "bison_parser.y"
{
(yyval.create_stmt) = new CreateStatement(kCreateTable);
(yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval);
(yyval.create_stmt)->schema = (yyvsp[-3].table_name).schema;
(yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name;
- (yyval.create_stmt)->columns = (yyvsp[-1].column_vec);
+ (yyval.create_stmt)->setColumnDefsAndConstraints((yyvsp[-1].table_element_vec));
+ delete (yyvsp[-1].table_element_vec);
}
-#line 3373 "bison_parser.cpp"
+#line 3503 "bison_parser.cpp"
break;
- case 46: /* create_statement: CREATE TABLE opt_not_exists table_name AS select_statement */
-#line 523 "bison_parser.y"
+ case 47: /* create_statement: CREATE TABLE opt_not_exists table_name AS select_statement */
+#line 545 "bison_parser.y"
{
(yyval.create_stmt) = new CreateStatement(kCreateTable);
(yyval.create_stmt)->ifNotExists = (yyvsp[-3].bval);
@@ -3381,11 +3511,23 @@ YYLTYPE yylloc = yyloc_default;
(yyval.create_stmt)->tableName = (yyvsp[-2].table_name).name;
(yyval.create_stmt)->select = (yyvsp[0].select_stmt);
}
-#line 3385 "bison_parser.cpp"
+#line 3515 "bison_parser.cpp"
+ break;
+
+ case 48: /* create_statement: CREATE INDEX opt_not_exists opt_index_name ON table_name '(' ident_commalist ')' */
+#line 552 "bison_parser.y"
+ {
+ (yyval.create_stmt) = new CreateStatement(kCreateIndex);
+ (yyval.create_stmt)->indexName = (yyvsp[-5].sval);
+ (yyval.create_stmt)->ifNotExists = (yyvsp[-6].bval);
+ (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name;
+ (yyval.create_stmt)->indexColumns = (yyvsp[-1].str_vec);
+ }
+#line 3527 "bison_parser.cpp"
break;
- case 47: /* create_statement: CREATE VIEW opt_not_exists table_name opt_column_list AS select_statement */
-#line 530 "bison_parser.y"
+ case 49: /* create_statement: CREATE VIEW opt_not_exists table_name opt_column_list AS select_statement */
+#line 559 "bison_parser.y"
{
(yyval.create_stmt) = new CreateStatement(kCreateView);
(yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval);
@@ -3394,186 +3536,330 @@ YYLTYPE yylloc = yyloc_default;
(yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec);
(yyval.create_stmt)->select = (yyvsp[0].select_stmt);
}
-#line 3398 "bison_parser.cpp"
+#line 3540 "bison_parser.cpp"
break;
- case 48: /* opt_not_exists: IF NOT EXISTS */
-#line 541 "bison_parser.y"
+ case 50: /* opt_not_exists: IF NOT EXISTS */
+#line 570 "bison_parser.y"
{ (yyval.bval) = true; }
-#line 3404 "bison_parser.cpp"
+#line 3546 "bison_parser.cpp"
break;
- case 49: /* opt_not_exists: %empty */
-#line 542 "bison_parser.y"
+ case 51: /* opt_not_exists: %empty */
+#line 571 "bison_parser.y"
{ (yyval.bval) = false; }
-#line 3410 "bison_parser.cpp"
+#line 3552 "bison_parser.cpp"
break;
- case 50: /* column_def_commalist: column_def */
-#line 546 "bison_parser.y"
- { (yyval.column_vec) = new std::vector(); (yyval.column_vec)->push_back((yyvsp[0].column_t)); }
-#line 3416 "bison_parser.cpp"
+ case 52: /* table_elem_commalist: table_elem */
+#line 575 "bison_parser.y"
+ { (yyval.table_element_vec) = new std::vector(); (yyval.table_element_vec)->push_back((yyvsp[0].table_element_t)); }
+#line 3558 "bison_parser.cpp"
break;
- case 51: /* column_def_commalist: column_def_commalist ',' column_def */
-#line 547 "bison_parser.y"
- { (yyvsp[-2].column_vec)->push_back((yyvsp[0].column_t)); (yyval.column_vec) = (yyvsp[-2].column_vec); }
-#line 3422 "bison_parser.cpp"
+ case 53: /* table_elem_commalist: table_elem_commalist ',' table_elem */
+#line 576 "bison_parser.y"
+ { (yyvsp[-2].table_element_vec)->push_back((yyvsp[0].table_element_t)); (yyval.table_element_vec) = (yyvsp[-2].table_element_vec); }
+#line 3564 "bison_parser.cpp"
break;
- case 52: /* column_def: IDENTIFIER column_type opt_column_nullable */
-#line 551 "bison_parser.y"
- {
- (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].bval));
+ case 54: /* table_elem: column_def */
+#line 580 "bison_parser.y"
+ { (yyval.table_element_t) = (yyvsp[0].column_t); }
+#line 3570 "bison_parser.cpp"
+ break;
+
+ case 55: /* table_elem: table_constraint */
+#line 581 "bison_parser.y"
+ { (yyval.table_element_t) = (yyvsp[0].table_constraint_t); }
+#line 3576 "bison_parser.cpp"
+ break;
+
+ case 56: /* column_def: IDENTIFIER column_type opt_column_constraints */
+#line 585 "bison_parser.y"
+ {
+ (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].column_constraint_vec));
+ (yyval.column_t)->setNullableExplicit();
}
-#line 3430 "bison_parser.cpp"
+#line 3585 "bison_parser.cpp"
break;
- case 53: /* column_type: INT */
-#line 557 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::INT}; }
-#line 3436 "bison_parser.cpp"
+ case 57: /* column_type: INT */
+#line 592 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::INT}; }
+#line 3591 "bison_parser.cpp"
break;
- case 54: /* column_type: INTEGER */
-#line 558 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::INT}; }
-#line 3442 "bison_parser.cpp"
+ case 58: /* column_type: INTEGER */
+#line 593 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::INT}; }
+#line 3597 "bison_parser.cpp"
break;
- case 55: /* column_type: LONG */
-#line 559 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::LONG}; }
-#line 3448 "bison_parser.cpp"
+ case 59: /* column_type: LONG */
+#line 594 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::LONG}; }
+#line 3603 "bison_parser.cpp"
break;
- case 56: /* column_type: FLOAT */
-#line 560 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; }
-#line 3454 "bison_parser.cpp"
+ case 60: /* column_type: FLOAT */
+#line 595 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; }
+#line 3609 "bison_parser.cpp"
break;
- case 57: /* column_type: DOUBLE */
-#line 561 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; }
-#line 3460 "bison_parser.cpp"
+ case 61: /* column_type: DECIMAL opt_decimal_specification */
+#line 596 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::DECIMAL, 0, (yyvsp[0].column_specification_t)}; }
+#line 3615 "bison_parser.cpp"
break;
- case 58: /* column_type: VARCHAR '(' INTVAL ')' */
-#line 562 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; }
-#line 3466 "bison_parser.cpp"
+ case 62: /* column_type: DOUBLE */
+#line 597 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; }
+#line 3621 "bison_parser.cpp"
break;
- case 59: /* column_type: CHAR '(' INTVAL ')' */
-#line 563 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; }
-#line 3472 "bison_parser.cpp"
+ case 63: /* column_type: REAL */
+#line 598 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::REAL}; }
+#line 3627 "bison_parser.cpp"
break;
- case 60: /* column_type: TEXT */
-#line 564 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::TEXT}; }
-#line 3478 "bison_parser.cpp"
+ case 64: /* column_type: VARCHAR '(' INTVAL ')' */
+#line 599 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; }
+#line 3633 "bison_parser.cpp"
break;
- case 61: /* column_type: DATETIME */
-#line 565 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::DATETIME}; }
-#line 3484 "bison_parser.cpp"
+ case 65: /* column_type: CHARACTER VARYING '(' INTVAL ')' */
+#line 600 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; }
+#line 3639 "bison_parser.cpp"
break;
- case 62: /* column_type: DATE */
-#line 566 "bison_parser.y"
- { (yyval.column_type_t) = ColumnType{DataType::DATE}; }
-#line 3490 "bison_parser.cpp"
+ case 66: /* column_type: CHAR '(' INTVAL ')' */
+#line 601 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; }
+#line 3645 "bison_parser.cpp"
break;
- case 63: /* opt_column_nullable: NULL */
-#line 570 "bison_parser.y"
- { (yyval.bval) = true; }
-#line 3496 "bison_parser.cpp"
+ case 67: /* column_type: TEXT */
+#line 602 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::TEXT}; }
+#line 3651 "bison_parser.cpp"
break;
- case 64: /* opt_column_nullable: NOT NULL */
-#line 571 "bison_parser.y"
- { (yyval.bval) = false; }
-#line 3502 "bison_parser.cpp"
+ case 68: /* column_type: TIME opt_time_specification */
+#line 603 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::TIME, 0, (yyvsp[0].column_specification_t) }; }
+#line 3657 "bison_parser.cpp"
break;
- case 65: /* opt_column_nullable: %empty */
-#line 572 "bison_parser.y"
- { (yyval.bval) = false; }
-#line 3508 "bison_parser.cpp"
+ case 69: /* column_type: DATETIME */
+#line 604 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::DATETIME}; }
+#line 3663 "bison_parser.cpp"
+ break;
+
+ case 70: /* column_type: DATE */
+#line 605 "bison_parser.y"
+ { (yyval.column_type_t) = ColumnType{DataType::DATE}; }
+#line 3669 "bison_parser.cpp"
+ break;
+
+ case 71: /* opt_time_specification: '(' INTVAL ')' */
+#line 609 "bison_parser.y"
+ { (yyval.column_specification_t) = ColumnSpecification{(yyvsp[-1].ival)}; }
+#line 3675 "bison_parser.cpp"
+ break;
+
+ case 72: /* opt_time_specification: %empty */
+#line 610 "bison_parser.y"
+ { (yyval.column_specification_t) = ColumnSpecification{}; }
+#line 3681 "bison_parser.cpp"
+ break;
+
+ case 73: /* opt_decimal_specification: '(' INTVAL ',' INTVAL ')' */
+#line 614 "bison_parser.y"
+ { (yyval.column_specification_t) = ColumnSpecification{(yyvsp[-3].ival), (yyvsp[-1].ival)}; }
+#line 3687 "bison_parser.cpp"
+ break;
+
+ case 74: /* opt_decimal_specification: '(' INTVAL ')' */
+#line 615 "bison_parser.y"
+ { (yyval.column_specification_t) = ColumnSpecification{(yyvsp[-1].ival)}; }
+#line 3693 "bison_parser.cpp"
+ break;
+
+ case 75: /* opt_decimal_specification: %empty */
+#line 616 "bison_parser.y"
+ { (yyval.column_specification_t) = ColumnSpecification{}; }
+#line 3699 "bison_parser.cpp"
+ break;
+
+ case 76: /* opt_column_constraints: column_constraint_list */
+#line 620 "bison_parser.y"
+ { (yyval.column_constraint_vec) = (yyvsp[0].column_constraint_vec); }
+#line 3705 "bison_parser.cpp"
+ break;
+
+ case 77: /* opt_column_constraints: %empty */
+#line 621 "bison_parser.y"
+ { (yyval.column_constraint_vec) = new std::vector(); }
+#line 3711 "bison_parser.cpp"
+ break;
+
+ case 78: /* column_constraint_list: column_constraint */
+#line 625 "bison_parser.y"
+ { (yyval.column_constraint_vec) = new std::vector(); (yyval.column_constraint_vec)->push_back((yyvsp[0].column_constraint_t)); }
+#line 3717 "bison_parser.cpp"
+ break;
+
+ case 79: /* column_constraint_list: column_constraint_list column_constraint */
+#line 626 "bison_parser.y"
+ { (yyvsp[-1].column_constraint_vec)->push_back((yyvsp[0].column_constraint_t)); (yyval.column_constraint_vec) = (yyvsp[-1].column_constraint_vec); }
+#line 3723 "bison_parser.cpp"
+ break;
+
+ case 80: /* column_constraint: PRIMARY KEY */
+#line 629 "bison_parser.y"
+ { (yyval.column_constraint_t) = ConstraintType::PrimaryKey; }
+#line 3729 "bison_parser.cpp"
+ break;
+
+ case 81: /* column_constraint: UNIQUE */
+#line 630 "bison_parser.y"
+ { (yyval.column_constraint_t) = ConstraintType::Unique; }
+#line 3735 "bison_parser.cpp"
+ break;
+
+ case 82: /* column_constraint: NULL */
+#line 631 "bison_parser.y"
+ { (yyval.column_constraint_t) = ConstraintType::Null; }
+#line 3741 "bison_parser.cpp"
+ break;
+
+ case 83: /* column_constraint: NOT NULL */
+#line 632 "bison_parser.y"
+ { (yyval.column_constraint_t) = ConstraintType::NotNull; }
+#line 3747 "bison_parser.cpp"
+ break;
+
+ case 84: /* table_constraint: PRIMARY KEY '(' ident_commalist ')' */
+#line 636 "bison_parser.y"
+ { (yyval.table_constraint_t) = new TableConstraint(ConstraintType::PrimaryKey, (yyvsp[-1].str_vec)); }
+#line 3753 "bison_parser.cpp"
+ break;
+
+ case 85: /* table_constraint: UNIQUE '(' ident_commalist ')' */
+#line 637 "bison_parser.y"
+ { (yyval.table_constraint_t) = new TableConstraint(ConstraintType::Unique, (yyvsp[-1].str_vec)); }
+#line 3759 "bison_parser.cpp"
break;
- case 66: /* drop_statement: DROP TABLE opt_exists table_name */
-#line 582 "bison_parser.y"
+ case 86: /* drop_statement: DROP TABLE opt_exists table_name */
+#line 648 "bison_parser.y"
{
(yyval.drop_stmt) = new DropStatement(kDropTable);
(yyval.drop_stmt)->ifExists = (yyvsp[-1].bval);
(yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema;
(yyval.drop_stmt)->name = (yyvsp[0].table_name).name;
}
-#line 3519 "bison_parser.cpp"
+#line 3770 "bison_parser.cpp"
break;
- case 67: /* drop_statement: DROP VIEW opt_exists table_name */
-#line 588 "bison_parser.y"
+ case 87: /* drop_statement: DROP VIEW opt_exists table_name */
+#line 654 "bison_parser.y"
{
(yyval.drop_stmt) = new DropStatement(kDropView);
(yyval.drop_stmt)->ifExists = (yyvsp[-1].bval);
(yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema;
(yyval.drop_stmt)->name = (yyvsp[0].table_name).name;
}
-#line 3530 "bison_parser.cpp"
+#line 3781 "bison_parser.cpp"
break;
- case 68: /* drop_statement: DEALLOCATE PREPARE IDENTIFIER */
-#line 594 "bison_parser.y"
+ case 88: /* drop_statement: DEALLOCATE PREPARE IDENTIFIER */
+#line 660 "bison_parser.y"
{
(yyval.drop_stmt) = new DropStatement(kDropPreparedStatement);
(yyval.drop_stmt)->ifExists = false;
(yyval.drop_stmt)->name = (yyvsp[0].sval);
}
-#line 3540 "bison_parser.cpp"
+#line 3791 "bison_parser.cpp"
break;
- case 69: /* opt_exists: IF EXISTS */
-#line 602 "bison_parser.y"
+ case 89: /* drop_statement: DROP INDEX opt_exists IDENTIFIER */
+#line 666 "bison_parser.y"
+ {
+ (yyval.drop_stmt) = new DropStatement(kDropIndex);
+ (yyval.drop_stmt)->ifExists = (yyvsp[-1].bval);
+ (yyval.drop_stmt)->indexName = (yyvsp[0].sval);
+ }
+#line 3801 "bison_parser.cpp"
+ break;
+
+ case 90: /* opt_exists: IF EXISTS */
+#line 674 "bison_parser.y"
{ (yyval.bval) = true; }
-#line 3546 "bison_parser.cpp"
+#line 3807 "bison_parser.cpp"
break;
- case 70: /* opt_exists: %empty */
-#line 603 "bison_parser.y"
+ case 91: /* opt_exists: %empty */
+#line 675 "bison_parser.y"
{ (yyval.bval) = false; }
-#line 3552 "bison_parser.cpp"
+#line 3813 "bison_parser.cpp"
+ break;
+
+ case 92: /* alter_statement: ALTER TABLE opt_exists table_name alter_action */
+#line 684 "bison_parser.y"
+ {
+ (yyval.alter_stmt) = new AlterStatement((yyvsp[-1].table_name).name, (yyvsp[0].alter_action_t));
+ (yyval.alter_stmt)->ifTableExists = (yyvsp[-2].bval);
+ (yyval.alter_stmt)->schema = (yyvsp[-1].table_name).schema;
+ }
+#line 3823 "bison_parser.cpp"
+ break;
+
+ case 93: /* alter_action: drop_action */
+#line 692 "bison_parser.y"
+ {(yyval.alter_action_t) = (yyvsp[0].drop_action_t);}
+#line 3829 "bison_parser.cpp"
+ break;
+
+ case 94: /* drop_action: DROP COLUMN opt_exists IDENTIFIER */
+#line 695 "bison_parser.y"
+ {
+ (yyval.drop_action_t) = new DropColumnAction((yyvsp[0].sval));
+ (yyval.drop_action_t)->ifExists = (yyvsp[-1].bval);
+ }
+#line 3838 "bison_parser.cpp"
break;
- case 71: /* delete_statement: DELETE FROM table_name opt_where */
-#line 612 "bison_parser.y"
+ case 95: /* delete_statement: DELETE FROM table_name opt_where */
+#line 707 "bison_parser.y"
{
(yyval.delete_stmt) = new DeleteStatement();
(yyval.delete_stmt)->schema = (yyvsp[-1].table_name).schema;
(yyval.delete_stmt)->tableName = (yyvsp[-1].table_name).name;
(yyval.delete_stmt)->expr = (yyvsp[0].expr);
}
-#line 3563 "bison_parser.cpp"
+#line 3849 "bison_parser.cpp"
break;
- case 72: /* truncate_statement: TRUNCATE table_name */
-#line 621 "bison_parser.y"
+ case 96: /* truncate_statement: TRUNCATE table_name */
+#line 716 "bison_parser.y"
{
(yyval.delete_stmt) = new DeleteStatement();
(yyval.delete_stmt)->schema = (yyvsp[0].table_name).schema;
(yyval.delete_stmt)->tableName = (yyvsp[0].table_name).name;
}
-#line 3573 "bison_parser.cpp"
+#line 3859 "bison_parser.cpp"
break;
- case 73: /* insert_statement: INSERT INTO table_name opt_column_list VALUES '(' literal_list ')' */
-#line 634 "bison_parser.y"
+ case 97: /* insert_statement: INSERT INTO table_name opt_column_list VALUES '(' literal_list ')' */
+#line 729 "bison_parser.y"
{
(yyval.insert_stmt) = new InsertStatement(kInsertValues);
(yyval.insert_stmt)->schema = (yyvsp[-5].table_name).schema;
@@ -3581,11 +3867,11 @@ YYLTYPE yylloc = yyloc_default;
(yyval.insert_stmt)->columns = (yyvsp[-4].str_vec);
(yyval.insert_stmt)->values = (yyvsp[-1].expr_vec);
}
-#line 3585 "bison_parser.cpp"
+#line 3871 "bison_parser.cpp"
break;
- case 74: /* insert_statement: INSERT INTO table_name opt_column_list select_no_paren */
-#line 641 "bison_parser.y"
+ case 98: /* insert_statement: INSERT INTO table_name opt_column_list select_no_paren */
+#line 736 "bison_parser.y"
{
(yyval.insert_stmt) = new InsertStatement(kInsertSelect);
(yyval.insert_stmt)->schema = (yyvsp[-2].table_name).schema;
@@ -3593,74 +3879,74 @@ YYLTYPE yylloc = yyloc_default;
(yyval.insert_stmt)->columns = (yyvsp[-1].str_vec);
(yyval.insert_stmt)->select = (yyvsp[0].select_stmt);
}
-#line 3597 "bison_parser.cpp"
+#line 3883 "bison_parser.cpp"
break;
- case 75: /* opt_column_list: '(' ident_commalist ')' */
-#line 652 "bison_parser.y"
+ case 99: /* opt_column_list: '(' ident_commalist ')' */
+#line 747 "bison_parser.y"
{ (yyval.str_vec) = (yyvsp[-1].str_vec); }
-#line 3603 "bison_parser.cpp"
+#line 3889 "bison_parser.cpp"
break;
- case 76: /* opt_column_list: %empty */
-#line 653 "bison_parser.y"
+ case 100: /* opt_column_list: %empty */
+#line 748 "bison_parser.y"
{ (yyval.str_vec) = nullptr; }
-#line 3609 "bison_parser.cpp"
+#line 3895 "bison_parser.cpp"
break;
- case 77: /* update_statement: UPDATE table_ref_name_no_alias SET update_clause_commalist opt_where */
-#line 663 "bison_parser.y"
+ case 101: /* update_statement: UPDATE table_ref_name_no_alias SET update_clause_commalist opt_where */
+#line 758 "bison_parser.y"
{
(yyval.update_stmt) = new UpdateStatement();
(yyval.update_stmt)->table = (yyvsp[-3].table);
(yyval.update_stmt)->updates = (yyvsp[-1].update_vec);
(yyval.update_stmt)->where = (yyvsp[0].expr);
}
-#line 3620 "bison_parser.cpp"
+#line 3906 "bison_parser.cpp"
break;
- case 78: /* update_clause_commalist: update_clause */
-#line 672 "bison_parser.y"
+ case 102: /* update_clause_commalist: update_clause */
+#line 767 "bison_parser.y"
{ (yyval.update_vec) = new std::vector(); (yyval.update_vec)->push_back((yyvsp[0].update_t)); }
-#line 3626 "bison_parser.cpp"
+#line 3912 "bison_parser.cpp"
break;
- case 79: /* update_clause_commalist: update_clause_commalist ',' update_clause */
-#line 673 "bison_parser.y"
+ case 103: /* update_clause_commalist: update_clause_commalist ',' update_clause */
+#line 768 "bison_parser.y"
{ (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); (yyval.update_vec) = (yyvsp[-2].update_vec); }
-#line 3632 "bison_parser.cpp"
+#line 3918 "bison_parser.cpp"
break;
- case 80: /* update_clause: IDENTIFIER '=' expr */
-#line 677 "bison_parser.y"
+ case 104: /* update_clause: IDENTIFIER '=' expr */
+#line 772 "bison_parser.y"
{
(yyval.update_t) = new UpdateClause();
(yyval.update_t)->column = (yyvsp[-2].sval);
(yyval.update_t)->value = (yyvsp[0].expr);
}
-#line 3642 "bison_parser.cpp"
+#line 3928 "bison_parser.cpp"
break;
- case 81: /* select_statement: opt_with_clause select_with_paren */
-#line 689 "bison_parser.y"
+ case 105: /* select_statement: opt_with_clause select_with_paren */
+#line 784 "bison_parser.y"
{
(yyval.select_stmt) = (yyvsp[0].select_stmt);
(yyval.select_stmt)->withDescriptions = (yyvsp[-1].with_description_vec);
}
-#line 3651 "bison_parser.cpp"
+#line 3937 "bison_parser.cpp"
break;
- case 82: /* select_statement: opt_with_clause select_no_paren */
-#line 693 "bison_parser.y"
+ case 106: /* select_statement: opt_with_clause select_no_paren */
+#line 788 "bison_parser.y"
{
(yyval.select_stmt) = (yyvsp[0].select_stmt);
(yyval.select_stmt)->withDescriptions = (yyvsp[-1].with_description_vec);
}
-#line 3660 "bison_parser.cpp"
+#line 3946 "bison_parser.cpp"
break;
- case 83: /* select_statement: opt_with_clause select_with_paren set_operator select_within_set_operation opt_order opt_limit */
-#line 697 "bison_parser.y"
+ case 107: /* select_statement: opt_with_clause select_with_paren set_operator select_within_set_operation opt_order opt_limit */
+#line 792 "bison_parser.y"
{
(yyval.select_stmt) = (yyvsp[-4].select_stmt);
if ((yyval.select_stmt)->setOperations == nullptr) {
@@ -3672,17 +3958,17 @@ YYLTYPE yylloc = yyloc_default;
(yyval.select_stmt)->setOperations->back()->resultLimit = (yyvsp[0].limit);
(yyval.select_stmt)->withDescriptions = (yyvsp[-5].with_description_vec);
}
-#line 3676 "bison_parser.cpp"
+#line 3962 "bison_parser.cpp"
break;
- case 86: /* select_within_set_operation_no_parentheses: select_clause */
-#line 715 "bison_parser.y"
+ case 110: /* select_within_set_operation_no_parentheses: select_clause */
+#line 810 "bison_parser.y"
{ (yyval.select_stmt) = (yyvsp[0].select_stmt); }
-#line 3682 "bison_parser.cpp"
+#line 3968 "bison_parser.cpp"
break;
- case 87: /* select_within_set_operation_no_parentheses: select_clause set_operator select_within_set_operation */
-#line 716 "bison_parser.y"
+ case 111: /* select_within_set_operation_no_parentheses: select_clause set_operator select_within_set_operation */
+#line 811 "bison_parser.y"
{
(yyval.select_stmt) = (yyvsp[-2].select_stmt);
if ((yyval.select_stmt)->setOperations == nullptr) {
@@ -3691,23 +3977,23 @@ YYLTYPE yylloc = yyloc_default;
(yyval.select_stmt)->setOperations->push_back((yyvsp[-1].set_operator_t));
(yyval.select_stmt)->setOperations->back()->nestedSelectStatement = (yyvsp[0].select_stmt);
}
-#line 3695 "bison_parser.cpp"
+#line 3981 "bison_parser.cpp"
break;
- case 88: /* select_with_paren: '(' select_no_paren ')' */
-#line 727 "bison_parser.y"
+ case 112: /* select_with_paren: '(' select_no_paren ')' */
+#line 822 "bison_parser.y"
{ (yyval.select_stmt) = (yyvsp[-1].select_stmt); }
-#line 3701 "bison_parser.cpp"
+#line 3987 "bison_parser.cpp"
break;
- case 89: /* select_with_paren: '(' select_with_paren ')' */
-#line 728 "bison_parser.y"
+ case 113: /* select_with_paren: '(' select_with_paren ')' */
+#line 823 "bison_parser.y"
{ (yyval.select_stmt) = (yyvsp[-1].select_stmt); }
-#line 3707 "bison_parser.cpp"
+#line 3993 "bison_parser.cpp"
break;
- case 90: /* select_no_paren: select_clause opt_order opt_limit */
-#line 732 "bison_parser.y"
+ case 114: /* select_no_paren: select_clause opt_order opt_limit */
+#line 827 "bison_parser.y"
{
(yyval.select_stmt) = (yyvsp[-2].select_stmt);
(yyval.select_stmt)->order = (yyvsp[-1].order_vec);
@@ -3718,11 +4004,11 @@ YYLTYPE yylloc = yyloc_default;
(yyval.select_stmt)->limit = (yyvsp[0].limit);
}
}
-#line 3722 "bison_parser.cpp"
+#line 4008 "bison_parser.cpp"
break;
- case 91: /* select_no_paren: select_clause set_operator select_within_set_operation opt_order opt_limit */
-#line 742 "bison_parser.y"
+ case 115: /* select_no_paren: select_clause set_operator select_within_set_operation opt_order opt_limit */
+#line 837 "bison_parser.y"
{
(yyval.select_stmt) = (yyvsp[-4].select_stmt);
if ((yyval.select_stmt)->setOperations == nullptr) {
@@ -3733,63 +4019,63 @@ YYLTYPE yylloc = yyloc_default;
(yyval.select_stmt)->setOperations->back()->resultOrder = (yyvsp[-1].order_vec);
(yyval.select_stmt)->setOperations->back()->resultLimit = (yyvsp[0].limit);
}
-#line 3737 "bison_parser.cpp"
+#line 4023 "bison_parser.cpp"
break;
- case 92: /* set_operator: set_type opt_all */
-#line 755 "bison_parser.y"
+ case 116: /* set_operator: set_type opt_all */
+#line 850 "bison_parser.y"
{
(yyval.set_operator_t) = (yyvsp[-1].set_operator_t);
(yyval.set_operator_t)->isAll = (yyvsp[0].bval);
}
-#line 3746 "bison_parser.cpp"
+#line 4032 "bison_parser.cpp"
break;
- case 93: /* set_type: UNION */
-#line 762 "bison_parser.y"
+ case 117: /* set_type: UNION */
+#line 857 "bison_parser.y"
{
(yyval.set_operator_t) = new SetOperation();
(yyval.set_operator_t)->setType = SetType::kSetUnion;
}
-#line 3755 "bison_parser.cpp"
+#line 4041 "bison_parser.cpp"
break;
- case 94: /* set_type: INTERSECT */
-#line 766 "bison_parser.y"
+ case 118: /* set_type: INTERSECT */
+#line 861 "bison_parser.y"
{
(yyval.set_operator_t) = new SetOperation();
(yyval.set_operator_t)->setType = SetType::kSetIntersect;
}
-#line 3764 "bison_parser.cpp"
+#line 4050 "bison_parser.cpp"
break;
- case 95: /* set_type: EXCEPT */
-#line 770 "bison_parser.y"
+ case 119: /* set_type: EXCEPT */
+#line 865 "bison_parser.y"
{
(yyval.set_operator_t) = new SetOperation();
(yyval.set_operator_t)->setType = SetType::kSetExcept;
}
-#line 3773 "bison_parser.cpp"
+#line 4059 "bison_parser.cpp"
break;
- case 96: /* opt_all: ALL */
-#line 777 "bison_parser.y"
+ case 120: /* opt_all: ALL */
+#line 872 "bison_parser.y"
{
(yyval.bval) = true;
}
-#line 3781 "bison_parser.cpp"
+#line 4067 "bison_parser.cpp"
break;
- case 97: /* opt_all: %empty */
-#line 780 "bison_parser.y"
+ case 121: /* opt_all: %empty */
+#line 875 "bison_parser.y"
{
(yyval.bval) = false;
}
-#line 3789 "bison_parser.cpp"
+#line 4075 "bison_parser.cpp"
break;
- case 98: /* select_clause: SELECT opt_top opt_distinct select_list opt_from_clause opt_where opt_group */
-#line 786 "bison_parser.y"
+ case 122: /* select_clause: SELECT opt_top opt_distinct select_list opt_from_clause opt_where opt_group */
+#line 881 "bison_parser.y"
{
(yyval.select_stmt) = new SelectStatement();
(yyval.select_stmt)->limit = (yyvsp[-5].limit);
@@ -3799,213 +4085,213 @@ YYLTYPE yylloc = yyloc_default;
(yyval.select_stmt)->whereClause = (yyvsp[-1].expr);
(yyval.select_stmt)->groupBy = (yyvsp[0].group_t);
}
-#line 3803 "bison_parser.cpp"
+#line 4089 "bison_parser.cpp"
break;
- case 99: /* opt_distinct: DISTINCT */
-#line 798 "bison_parser.y"
+ case 123: /* opt_distinct: DISTINCT */
+#line 893 "bison_parser.y"
{ (yyval.bval) = true; }
-#line 3809 "bison_parser.cpp"
+#line 4095 "bison_parser.cpp"
break;
- case 100: /* opt_distinct: %empty */
-#line 799 "bison_parser.y"
+ case 124: /* opt_distinct: %empty */
+#line 894 "bison_parser.y"
{ (yyval.bval) = false; }
-#line 3815 "bison_parser.cpp"
+#line 4101 "bison_parser.cpp"
break;
- case 102: /* opt_from_clause: from_clause */
-#line 807 "bison_parser.y"
+ case 126: /* opt_from_clause: from_clause */
+#line 902 "bison_parser.y"
{ (yyval.table) = (yyvsp[0].table); }
-#line 3821 "bison_parser.cpp"
+#line 4107 "bison_parser.cpp"
break;
- case 103: /* opt_from_clause: %empty */
-#line 808 "bison_parser.y"
+ case 127: /* opt_from_clause: %empty */
+#line 903 "bison_parser.y"
{ (yyval.table) = nullptr; }
-#line 3827 "bison_parser.cpp"
+#line 4113 "bison_parser.cpp"
break;
- case 104: /* from_clause: FROM table_ref */
-#line 812 "bison_parser.y"
+ case 128: /* from_clause: FROM table_ref */
+#line 907 "bison_parser.y"
{ (yyval.table) = (yyvsp[0].table); }
-#line 3833 "bison_parser.cpp"
+#line 4119 "bison_parser.cpp"
break;
- case 105: /* opt_where: WHERE expr */
-#line 817 "bison_parser.y"
+ case 129: /* opt_where: WHERE expr */
+#line 912 "bison_parser.y"
{ (yyval.expr) = (yyvsp[0].expr); }
-#line 3839 "bison_parser.cpp"
+#line 4125 "bison_parser.cpp"
break;
- case 106: /* opt_where: %empty */
-#line 818 "bison_parser.y"
+ case 130: /* opt_where: %empty */
+#line 913 "bison_parser.y"
{ (yyval.expr) = nullptr; }
-#line 3845 "bison_parser.cpp"
+#line 4131 "bison_parser.cpp"
break;
- case 107: /* opt_group: GROUP BY expr_list opt_having */
-#line 822 "bison_parser.y"
+ case 131: /* opt_group: GROUP BY expr_list opt_having */
+#line 917 "bison_parser.y"
{
(yyval.group_t) = new GroupByDescription();
(yyval.group_t)->columns = (yyvsp[-1].expr_vec);
(yyval.group_t)->having = (yyvsp[0].expr);
}
-#line 3855 "bison_parser.cpp"
+#line 4141 "bison_parser.cpp"
break;
- case 108: /* opt_group: %empty */
-#line 827 "bison_parser.y"
+ case 132: /* opt_group: %empty */
+#line 922 "bison_parser.y"
{ (yyval.group_t) = nullptr; }
-#line 3861 "bison_parser.cpp"
+#line 4147 "bison_parser.cpp"
break;
- case 109: /* opt_having: HAVING expr */
-#line 831 "bison_parser.y"
+ case 133: /* opt_having: HAVING expr */
+#line 926 "bison_parser.y"
{ (yyval.expr) = (yyvsp[0].expr); }
-#line 3867 "bison_parser.cpp"
+#line 4153 "bison_parser.cpp"
break;
- case 110: /* opt_having: %empty */
-#line 832 "bison_parser.y"
+ case 134: /* opt_having: %empty */
+#line 927 "bison_parser.y"
{ (yyval.expr) = nullptr; }
-#line 3873 "bison_parser.cpp"
+#line 4159 "bison_parser.cpp"
break;
- case 111: /* opt_order: ORDER BY order_list */
-#line 836 "bison_parser.y"
+ case 135: /* opt_order: ORDER BY order_list */
+#line 931 "bison_parser.y"
{ (yyval.order_vec) = (yyvsp[0].order_vec); }
-#line 3879 "bison_parser.cpp"
+#line 4165 "bison_parser.cpp"
break;
- case 112: /* opt_order: %empty */
-#line 837 "bison_parser.y"
+ case 136: /* opt_order: %empty */
+#line 932 "bison_parser.y"
{ (yyval.order_vec) = nullptr; }
-#line 3885 "bison_parser.cpp"
+#line 4171 "bison_parser.cpp"
break;
- case 113: /* order_list: order_desc */
-#line 841 "bison_parser.y"
+ case 137: /* order_list: order_desc */
+#line 936 "bison_parser.y"
{ (yyval.order_vec) = new std::vector(); (yyval.order_vec)->push_back((yyvsp[0].order)); }
-#line 3891 "bison_parser.cpp"
+#line 4177 "bison_parser.cpp"
break;
- case 114: /* order_list: order_list ',' order_desc */
-#line 842 "bison_parser.y"
+ case 138: /* order_list: order_list ',' order_desc */
+#line 937 "bison_parser.y"
{ (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); (yyval.order_vec) = (yyvsp[-2].order_vec); }
-#line 3897 "bison_parser.cpp"
+#line 4183 "bison_parser.cpp"
break;
- case 115: /* order_desc: expr opt_order_type */
-#line 846 "bison_parser.y"
+ case 139: /* order_desc: expr opt_order_type */
+#line 941 "bison_parser.y"
{ (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); }
-#line 3903 "bison_parser.cpp"
+#line 4189 "bison_parser.cpp"
break;
- case 116: /* opt_order_type: ASC */
-#line 850 "bison_parser.y"
+ case 140: /* opt_order_type: ASC */
+#line 945 "bison_parser.y"
{ (yyval.order_type) = kOrderAsc; }
-#line 3909 "bison_parser.cpp"
+#line 4195 "bison_parser.cpp"
break;
- case 117: /* opt_order_type: DESC */
-#line 851 "bison_parser.y"
+ case 141: /* opt_order_type: DESC */
+#line 946 "bison_parser.y"
{ (yyval.order_type) = kOrderDesc; }
-#line 3915 "bison_parser.cpp"
+#line 4201 "bison_parser.cpp"
break;
- case 118: /* opt_order_type: %empty */
-#line 852 "bison_parser.y"
+ case 142: /* opt_order_type: %empty */
+#line 947 "bison_parser.y"
{ (yyval.order_type) = kOrderAsc; }
-#line 3921 "bison_parser.cpp"
+#line 4207 "bison_parser.cpp"
break;
- case 119: /* opt_top: TOP int_literal */
-#line 858 "bison_parser.y"
+ case 143: /* opt_top: TOP int_literal */
+#line 953 "bison_parser.y"
{ (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); }
-#line 3927 "bison_parser.cpp"
+#line 4213 "bison_parser.cpp"
break;
- case 120: /* opt_top: %empty */
-#line 859 "bison_parser.y"
+ case 144: /* opt_top: %empty */
+#line 954 "bison_parser.y"
{ (yyval.limit) = nullptr; }
-#line 3933 "bison_parser.cpp"
+#line 4219 "bison_parser.cpp"
break;
- case 121: /* opt_limit: LIMIT expr */
-#line 863 "bison_parser.y"
+ case 145: /* opt_limit: LIMIT expr */
+#line 958 "bison_parser.y"
{ (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); }
-#line 3939 "bison_parser.cpp"
+#line 4225 "bison_parser.cpp"
break;
- case 122: /* opt_limit: OFFSET expr */
-#line 864 "bison_parser.y"
+ case 146: /* opt_limit: OFFSET expr */
+#line 959 "bison_parser.y"
{ (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); }
-#line 3945 "bison_parser.cpp"
+#line 4231 "bison_parser.cpp"
break;
- case 123: /* opt_limit: LIMIT expr OFFSET expr */
-#line 865 "bison_parser.y"
+ case 147: /* opt_limit: LIMIT expr OFFSET expr */
+#line 960 "bison_parser.y"
{ (yyval.limit) = new LimitDescription((yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 3951 "bison_parser.cpp"
+#line 4237 "bison_parser.cpp"
break;
- case 124: /* opt_limit: LIMIT ALL */
-#line 866 "bison_parser.y"
+ case 148: /* opt_limit: LIMIT ALL */
+#line 961 "bison_parser.y"
{ (yyval.limit) = new LimitDescription(nullptr, nullptr); }
-#line 3957 "bison_parser.cpp"
+#line 4243 "bison_parser.cpp"
break;
- case 125: /* opt_limit: LIMIT ALL OFFSET expr */
-#line 867 "bison_parser.y"
+ case 149: /* opt_limit: LIMIT ALL OFFSET expr */
+#line 962 "bison_parser.y"
{ (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); }
-#line 3963 "bison_parser.cpp"
+#line 4249 "bison_parser.cpp"
break;
- case 126: /* opt_limit: %empty */
-#line 868 "bison_parser.y"
+ case 150: /* opt_limit: %empty */
+#line 963 "bison_parser.y"
{ (yyval.limit) = nullptr; }
-#line 3969 "bison_parser.cpp"
+#line 4255 "bison_parser.cpp"
break;
- case 127: /* expr_list: expr_alias */
-#line 875 "bison_parser.y"
+ case 151: /* expr_list: expr_alias */
+#line 970 "bison_parser.y"
{ (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); }
-#line 3975 "bison_parser.cpp"
+#line 4261 "bison_parser.cpp"
break;
- case 128: /* expr_list: expr_list ',' expr_alias */
-#line 876 "bison_parser.y"
+ case 152: /* expr_list: expr_list ',' expr_alias */
+#line 971 "bison_parser.y"
{ (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); }
-#line 3981 "bison_parser.cpp"
+#line 4267 "bison_parser.cpp"
break;
- case 129: /* opt_literal_list: literal_list */
-#line 880 "bison_parser.y"
+ case 153: /* opt_literal_list: literal_list */
+#line 975 "bison_parser.y"
{ (yyval.expr_vec) = (yyvsp[0].expr_vec); }
-#line 3987 "bison_parser.cpp"
+#line 4273 "bison_parser.cpp"
break;
- case 130: /* opt_literal_list: %empty */
-#line 881 "bison_parser.y"
+ case 154: /* opt_literal_list: %empty */
+#line 976 "bison_parser.y"
{ (yyval.expr_vec) = nullptr; }
-#line 3993 "bison_parser.cpp"
+#line 4279 "bison_parser.cpp"
break;
- case 131: /* literal_list: literal */
-#line 885 "bison_parser.y"
+ case 155: /* literal_list: literal */
+#line 980 "bison_parser.y"
{ (yyval.expr_vec) = new std::vector(); (yyval.expr_vec)->push_back((yyvsp[0].expr)); }
-#line 3999 "bison_parser.cpp"
+#line 4285 "bison_parser.cpp"
break;
- case 132: /* literal_list: literal_list ',' literal */
-#line 886 "bison_parser.y"
+ case 156: /* literal_list: literal_list ',' literal */
+#line 981 "bison_parser.y"
{ (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); (yyval.expr_vec) = (yyvsp[-2].expr_vec); }
-#line 4005 "bison_parser.cpp"
+#line 4291 "bison_parser.cpp"
break;
- case 133: /* expr_alias: expr opt_alias */
-#line 890 "bison_parser.y"
+ case 157: /* expr_alias: expr opt_alias */
+#line 985 "bison_parser.y"
{
(yyval.expr) = (yyvsp[-1].expr);
if ((yyvsp[0].alias_t)) {
@@ -4013,413 +4299,413 @@ YYLTYPE yylloc = yyloc_default;
delete (yyvsp[0].alias_t);
}
}
-#line 4017 "bison_parser.cpp"
+#line 4303 "bison_parser.cpp"
break;
- case 139: /* operand: '(' expr ')' */
-#line 908 "bison_parser.y"
+ case 163: /* operand: '(' expr ')' */
+#line 1003 "bison_parser.y"
{ (yyval.expr) = (yyvsp[-1].expr); }
-#line 4023 "bison_parser.cpp"
+#line 4309 "bison_parser.cpp"
break;
- case 149: /* operand: '(' select_no_paren ')' */
-#line 918 "bison_parser.y"
+ case 173: /* operand: '(' select_no_paren ')' */
+#line 1013 "bison_parser.y"
{ (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); }
-#line 4029 "bison_parser.cpp"
+#line 4315 "bison_parser.cpp"
break;
- case 152: /* unary_expr: '-' operand */
-#line 927 "bison_parser.y"
+ case 176: /* unary_expr: '-' operand */
+#line 1022 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); }
-#line 4035 "bison_parser.cpp"
+#line 4321 "bison_parser.cpp"
break;
- case 153: /* unary_expr: NOT operand */
-#line 928 "bison_parser.y"
+ case 177: /* unary_expr: NOT operand */
+#line 1023 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); }
-#line 4041 "bison_parser.cpp"
+#line 4327 "bison_parser.cpp"
break;
- case 154: /* unary_expr: operand ISNULL */
-#line 929 "bison_parser.y"
+ case 178: /* unary_expr: operand ISNULL */
+#line 1024 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); }
-#line 4047 "bison_parser.cpp"
+#line 4333 "bison_parser.cpp"
break;
- case 155: /* unary_expr: operand IS NULL */
-#line 930 "bison_parser.y"
+ case 179: /* unary_expr: operand IS NULL */
+#line 1025 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); }
-#line 4053 "bison_parser.cpp"
+#line 4339 "bison_parser.cpp"
break;
- case 156: /* unary_expr: operand IS NOT NULL */
-#line 931 "bison_parser.y"
+ case 180: /* unary_expr: operand IS NOT NULL */
+#line 1026 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); }
-#line 4059 "bison_parser.cpp"
+#line 4345 "bison_parser.cpp"
break;
- case 158: /* binary_expr: operand '-' operand */
-#line 936 "bison_parser.y"
+ case 182: /* binary_expr: operand '-' operand */
+#line 1031 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); }
-#line 4065 "bison_parser.cpp"
+#line 4351 "bison_parser.cpp"
break;
- case 159: /* binary_expr: operand '+' operand */
-#line 937 "bison_parser.y"
+ case 183: /* binary_expr: operand '+' operand */
+#line 1032 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); }
-#line 4071 "bison_parser.cpp"
+#line 4357 "bison_parser.cpp"
break;
- case 160: /* binary_expr: operand '/' operand */
-#line 938 "bison_parser.y"
+ case 184: /* binary_expr: operand '/' operand */
+#line 1033 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); }
-#line 4077 "bison_parser.cpp"
+#line 4363 "bison_parser.cpp"
break;
- case 161: /* binary_expr: operand '*' operand */
-#line 939 "bison_parser.y"
+ case 185: /* binary_expr: operand '*' operand */
+#line 1034 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); }
-#line 4083 "bison_parser.cpp"
+#line 4369 "bison_parser.cpp"
break;
- case 162: /* binary_expr: operand '%' operand */
-#line 940 "bison_parser.y"
+ case 186: /* binary_expr: operand '%' operand */
+#line 1035 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); }
-#line 4089 "bison_parser.cpp"
+#line 4375 "bison_parser.cpp"
break;
- case 163: /* binary_expr: operand '^' operand */
-#line 941 "bison_parser.y"
+ case 187: /* binary_expr: operand '^' operand */
+#line 1036 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); }
-#line 4095 "bison_parser.cpp"
+#line 4381 "bison_parser.cpp"
break;
- case 164: /* binary_expr: operand LIKE operand */
-#line 942 "bison_parser.y"
+ case 188: /* binary_expr: operand LIKE operand */
+#line 1037 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); }
-#line 4101 "bison_parser.cpp"
+#line 4387 "bison_parser.cpp"
break;
- case 165: /* binary_expr: operand NOT LIKE operand */
-#line 943 "bison_parser.y"
+ case 189: /* binary_expr: operand NOT LIKE operand */
+#line 1038 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); }
-#line 4107 "bison_parser.cpp"
+#line 4393 "bison_parser.cpp"
break;
- case 166: /* binary_expr: operand ILIKE operand */
-#line 944 "bison_parser.y"
+ case 190: /* binary_expr: operand ILIKE operand */
+#line 1039 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); }
-#line 4113 "bison_parser.cpp"
+#line 4399 "bison_parser.cpp"
break;
- case 167: /* binary_expr: operand CONCAT operand */
-#line 945 "bison_parser.y"
+ case 191: /* binary_expr: operand CONCAT operand */
+#line 1040 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); }
-#line 4119 "bison_parser.cpp"
+#line 4405 "bison_parser.cpp"
break;
- case 168: /* logic_expr: expr AND expr */
-#line 949 "bison_parser.y"
+ case 192: /* logic_expr: expr AND expr */
+#line 1044 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); }
-#line 4125 "bison_parser.cpp"
+#line 4411 "bison_parser.cpp"
break;
- case 169: /* logic_expr: expr OR expr */
-#line 950 "bison_parser.y"
+ case 193: /* logic_expr: expr OR expr */
+#line 1045 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); }
-#line 4131 "bison_parser.cpp"
+#line 4417 "bison_parser.cpp"
break;
- case 170: /* in_expr: operand IN '(' expr_list ')' */
-#line 954 "bison_parser.y"
+ case 194: /* in_expr: operand IN '(' expr_list ')' */
+#line 1049 "bison_parser.y"
{ (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); }
-#line 4137 "bison_parser.cpp"
+#line 4423 "bison_parser.cpp"
break;
- case 171: /* in_expr: operand NOT IN '(' expr_list ')' */
-#line 955 "bison_parser.y"
+ case 195: /* in_expr: operand NOT IN '(' expr_list ')' */
+#line 1050 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); }
-#line 4143 "bison_parser.cpp"
+#line 4429 "bison_parser.cpp"
break;
- case 172: /* in_expr: operand IN '(' select_no_paren ')' */
-#line 956 "bison_parser.y"
+ case 196: /* in_expr: operand IN '(' select_no_paren ')' */
+#line 1051 "bison_parser.y"
{ (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); }
-#line 4149 "bison_parser.cpp"
+#line 4435 "bison_parser.cpp"
break;
- case 173: /* in_expr: operand NOT IN '(' select_no_paren ')' */
-#line 957 "bison_parser.y"
+ case 197: /* in_expr: operand NOT IN '(' select_no_paren ')' */
+#line 1052 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); }
-#line 4155 "bison_parser.cpp"
+#line 4441 "bison_parser.cpp"
break;
- case 174: /* case_expr: CASE expr case_list END */
-#line 963 "bison_parser.y"
+ case 198: /* case_expr: CASE expr case_list END */
+#line 1058 "bison_parser.y"
{ (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); }
-#line 4161 "bison_parser.cpp"
+#line 4447 "bison_parser.cpp"
break;
- case 175: /* case_expr: CASE expr case_list ELSE expr END */
-#line 964 "bison_parser.y"
+ case 199: /* case_expr: CASE expr case_list ELSE expr END */
+#line 1059 "bison_parser.y"
{ (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); }
-#line 4167 "bison_parser.cpp"
+#line 4453 "bison_parser.cpp"
break;
- case 176: /* case_expr: CASE case_list END */
-#line 965 "bison_parser.y"
+ case 200: /* case_expr: CASE case_list END */
+#line 1060 "bison_parser.y"
{ (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); }
-#line 4173 "bison_parser.cpp"
+#line 4459 "bison_parser.cpp"
break;
- case 177: /* case_expr: CASE case_list ELSE expr END */
-#line 966 "bison_parser.y"
+ case 201: /* case_expr: CASE case_list ELSE expr END */
+#line 1061 "bison_parser.y"
{ (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); }
-#line 4179 "bison_parser.cpp"
+#line 4465 "bison_parser.cpp"
break;
- case 178: /* case_list: WHEN expr THEN expr */
-#line 970 "bison_parser.y"
+ case 202: /* case_list: WHEN expr THEN expr */
+#line 1065 "bison_parser.y"
{ (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); }
-#line 4185 "bison_parser.cpp"
+#line 4471 "bison_parser.cpp"
break;
- case 179: /* case_list: case_list WHEN expr THEN expr */
-#line 971 "bison_parser.y"
+ case 203: /* case_list: case_list WHEN expr THEN expr */
+#line 1066 "bison_parser.y"
{ (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); }
-#line 4191 "bison_parser.cpp"
+#line 4477 "bison_parser.cpp"
break;
- case 180: /* exists_expr: EXISTS '(' select_no_paren ')' */
-#line 975 "bison_parser.y"
+ case 204: /* exists_expr: EXISTS '(' select_no_paren ')' */
+#line 1070 "bison_parser.y"
{ (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); }
-#line 4197 "bison_parser.cpp"
+#line 4483 "bison_parser.cpp"
break;
- case 181: /* exists_expr: NOT EXISTS '(' select_no_paren ')' */
-#line 976 "bison_parser.y"
+ case 205: /* exists_expr: NOT EXISTS '(' select_no_paren ')' */
+#line 1071 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); }
-#line 4203 "bison_parser.cpp"
+#line 4489 "bison_parser.cpp"
break;
- case 182: /* comp_expr: operand '=' operand */
-#line 980 "bison_parser.y"
+ case 206: /* comp_expr: operand '=' operand */
+#line 1075 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); }
-#line 4209 "bison_parser.cpp"
+#line 4495 "bison_parser.cpp"
break;
- case 183: /* comp_expr: operand EQUALS operand */
-#line 981 "bison_parser.y"
+ case 207: /* comp_expr: operand EQUALS operand */
+#line 1076 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); }
-#line 4215 "bison_parser.cpp"
+#line 4501 "bison_parser.cpp"
break;
- case 184: /* comp_expr: operand NOTEQUALS operand */
-#line 982 "bison_parser.y"
+ case 208: /* comp_expr: operand NOTEQUALS operand */
+#line 1077 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); }
-#line 4221 "bison_parser.cpp"
+#line 4507 "bison_parser.cpp"
break;
- case 185: /* comp_expr: operand '<' operand */
-#line 983 "bison_parser.y"
+ case 209: /* comp_expr: operand '<' operand */
+#line 1078 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); }
-#line 4227 "bison_parser.cpp"
+#line 4513 "bison_parser.cpp"
break;
- case 186: /* comp_expr: operand '>' operand */
-#line 984 "bison_parser.y"
+ case 210: /* comp_expr: operand '>' operand */
+#line 1079 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); }
-#line 4233 "bison_parser.cpp"
+#line 4519 "bison_parser.cpp"
break;
- case 187: /* comp_expr: operand LESSEQ operand */
-#line 985 "bison_parser.y"
+ case 211: /* comp_expr: operand LESSEQ operand */
+#line 1080 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); }
-#line 4239 "bison_parser.cpp"
+#line 4525 "bison_parser.cpp"
break;
- case 188: /* comp_expr: operand GREATEREQ operand */
-#line 986 "bison_parser.y"
+ case 212: /* comp_expr: operand GREATEREQ operand */
+#line 1081 "bison_parser.y"
{ (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); }
-#line 4245 "bison_parser.cpp"
+#line 4531 "bison_parser.cpp"
break;
- case 189: /* function_expr: IDENTIFIER '(' ')' */
-#line 990 "bison_parser.y"
+ case 213: /* function_expr: IDENTIFIER '(' ')' */
+#line 1085 "bison_parser.y"
{ (yyval.expr) = Expr::makeFunctionRef((yyvsp[-2].sval), new std::vector(), false); }
-#line 4251 "bison_parser.cpp"
+#line 4537 "bison_parser.cpp"
break;
- case 190: /* function_expr: IDENTIFIER '(' opt_distinct expr_list ')' */
-#line 991 "bison_parser.y"
+ case 214: /* function_expr: IDENTIFIER '(' opt_distinct expr_list ')' */
+#line 1086 "bison_parser.y"
{ (yyval.expr) = Expr::makeFunctionRef((yyvsp[-4].sval), (yyvsp[-1].expr_vec), (yyvsp[-2].bval)); }
-#line 4257 "bison_parser.cpp"
+#line 4543 "bison_parser.cpp"
break;
- case 191: /* extract_expr: EXTRACT '(' datetime_field FROM expr ')' */
-#line 995 "bison_parser.y"
+ case 215: /* extract_expr: EXTRACT '(' datetime_field FROM expr ')' */
+#line 1090 "bison_parser.y"
{ (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); }
-#line 4263 "bison_parser.cpp"
+#line 4549 "bison_parser.cpp"
break;
- case 192: /* cast_expr: CAST '(' expr AS column_type ')' */
-#line 999 "bison_parser.y"
+ case 216: /* cast_expr: CAST '(' expr AS column_type ')' */
+#line 1094 "bison_parser.y"
{ (yyval.expr) = Expr::makeCast((yyvsp[-3].expr), (yyvsp[-1].column_type_t)); }
-#line 4269 "bison_parser.cpp"
+#line 4555 "bison_parser.cpp"
break;
- case 193: /* datetime_field: SECOND */
-#line 1003 "bison_parser.y"
+ case 217: /* datetime_field: SECOND */
+#line 1098 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeSecond; }
-#line 4275 "bison_parser.cpp"
+#line 4561 "bison_parser.cpp"
break;
- case 194: /* datetime_field: MINUTE */
-#line 1004 "bison_parser.y"
+ case 218: /* datetime_field: MINUTE */
+#line 1099 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeMinute; }
-#line 4281 "bison_parser.cpp"
+#line 4567 "bison_parser.cpp"
break;
- case 195: /* datetime_field: HOUR */
-#line 1005 "bison_parser.y"
+ case 219: /* datetime_field: HOUR */
+#line 1100 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeHour; }
-#line 4287 "bison_parser.cpp"
+#line 4573 "bison_parser.cpp"
break;
- case 196: /* datetime_field: DAY */
-#line 1006 "bison_parser.y"
+ case 220: /* datetime_field: DAY */
+#line 1101 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeDay; }
-#line 4293 "bison_parser.cpp"
+#line 4579 "bison_parser.cpp"
break;
- case 197: /* datetime_field: MONTH */
-#line 1007 "bison_parser.y"
+ case 221: /* datetime_field: MONTH */
+#line 1102 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeMonth; }
-#line 4299 "bison_parser.cpp"
+#line 4585 "bison_parser.cpp"
break;
- case 198: /* datetime_field: YEAR */
-#line 1008 "bison_parser.y"
+ case 222: /* datetime_field: YEAR */
+#line 1103 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeYear; }
-#line 4305 "bison_parser.cpp"
+#line 4591 "bison_parser.cpp"
break;
- case 199: /* datetime_field_plural: SECONDS */
-#line 1012 "bison_parser.y"
+ case 223: /* datetime_field_plural: SECONDS */
+#line 1107 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeSecond; }
-#line 4311 "bison_parser.cpp"
+#line 4597 "bison_parser.cpp"
break;
- case 200: /* datetime_field_plural: MINUTES */
-#line 1013 "bison_parser.y"
+ case 224: /* datetime_field_plural: MINUTES */
+#line 1108 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeMinute; }
-#line 4317 "bison_parser.cpp"
+#line 4603 "bison_parser.cpp"
break;
- case 201: /* datetime_field_plural: HOURS */
-#line 1014 "bison_parser.y"
+ case 225: /* datetime_field_plural: HOURS */
+#line 1109 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeHour; }
-#line 4323 "bison_parser.cpp"
+#line 4609 "bison_parser.cpp"
break;
- case 202: /* datetime_field_plural: DAYS */
-#line 1015 "bison_parser.y"
+ case 226: /* datetime_field_plural: DAYS */
+#line 1110 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeDay; }
-#line 4329 "bison_parser.cpp"
+#line 4615 "bison_parser.cpp"
break;
- case 203: /* datetime_field_plural: MONTHS */
-#line 1016 "bison_parser.y"
+ case 227: /* datetime_field_plural: MONTHS */
+#line 1111 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeMonth; }
-#line 4335 "bison_parser.cpp"
+#line 4621 "bison_parser.cpp"
break;
- case 204: /* datetime_field_plural: YEARS */
-#line 1017 "bison_parser.y"
+ case 228: /* datetime_field_plural: YEARS */
+#line 1112 "bison_parser.y"
{ (yyval.datetime_field) = kDatetimeYear; }
-#line 4341 "bison_parser.cpp"
+#line 4627 "bison_parser.cpp"
break;
- case 207: /* array_expr: ARRAY '[' expr_list ']' */
-#line 1026 "bison_parser.y"
+ case 231: /* array_expr: ARRAY '[' expr_list ']' */
+#line 1121 "bison_parser.y"
{ (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); }
-#line 4347 "bison_parser.cpp"
+#line 4633 "bison_parser.cpp"
break;
- case 208: /* array_index: operand '[' int_literal ']' */
-#line 1030 "bison_parser.y"
+ case 232: /* array_index: operand '[' int_literal ']' */
+#line 1125 "bison_parser.y"
{ (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); }
-#line 4353 "bison_parser.cpp"
+#line 4639 "bison_parser.cpp"
break;
- case 209: /* between_expr: operand BETWEEN operand AND operand */
-#line 1034 "bison_parser.y"
+ case 233: /* between_expr: operand BETWEEN operand AND operand */
+#line 1129 "bison_parser.y"
{ (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 4359 "bison_parser.cpp"
+#line 4645 "bison_parser.cpp"
break;
- case 210: /* column_name: IDENTIFIER */
-#line 1038 "bison_parser.y"
+ case 234: /* column_name: IDENTIFIER */
+#line 1133 "bison_parser.y"
{ (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); }
-#line 4365 "bison_parser.cpp"
+#line 4651 "bison_parser.cpp"
break;
- case 211: /* column_name: IDENTIFIER '.' IDENTIFIER */
-#line 1039 "bison_parser.y"
+ case 235: /* column_name: IDENTIFIER '.' IDENTIFIER */
+#line 1134 "bison_parser.y"
{ (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); }
-#line 4371 "bison_parser.cpp"
+#line 4657 "bison_parser.cpp"
break;
- case 212: /* column_name: '*' */
-#line 1040 "bison_parser.y"
+ case 236: /* column_name: '*' */
+#line 1135 "bison_parser.y"
{ (yyval.expr) = Expr::makeStar(); }
-#line 4377 "bison_parser.cpp"
+#line 4663 "bison_parser.cpp"
break;
- case 213: /* column_name: IDENTIFIER '.' '*' */
-#line 1041 "bison_parser.y"
+ case 237: /* column_name: IDENTIFIER '.' '*' */
+#line 1136 "bison_parser.y"
{ (yyval.expr) = Expr::makeStar((yyvsp[-2].sval)); }
-#line 4383 "bison_parser.cpp"
+#line 4669 "bison_parser.cpp"
break;
- case 221: /* string_literal: STRING */
-#line 1055 "bison_parser.y"
+ case 245: /* string_literal: STRING */
+#line 1150 "bison_parser.y"
{ (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); }
-#line 4389 "bison_parser.cpp"
+#line 4675 "bison_parser.cpp"
break;
- case 222: /* bool_literal: TRUE */
-#line 1059 "bison_parser.y"
+ case 246: /* bool_literal: TRUE */
+#line 1154 "bison_parser.y"
{ (yyval.expr) = Expr::makeLiteral(true); }
-#line 4395 "bison_parser.cpp"
+#line 4681 "bison_parser.cpp"
break;
- case 223: /* bool_literal: FALSE */
-#line 1060 "bison_parser.y"
+ case 247: /* bool_literal: FALSE */
+#line 1155 "bison_parser.y"
{ (yyval.expr) = Expr::makeLiteral(false); }
-#line 4401 "bison_parser.cpp"
+#line 4687 "bison_parser.cpp"
break;
- case 224: /* num_literal: FLOATVAL */
-#line 1064 "bison_parser.y"
+ case 248: /* num_literal: FLOATVAL */
+#line 1159 "bison_parser.y"
{ (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); }
-#line 4407 "bison_parser.cpp"
+#line 4693 "bison_parser.cpp"
break;
- case 226: /* int_literal: INTVAL */
-#line 1069 "bison_parser.y"
+ case 250: /* int_literal: INTVAL */
+#line 1164 "bison_parser.y"
{ (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); }
-#line 4413 "bison_parser.cpp"
+#line 4699 "bison_parser.cpp"
break;
- case 227: /* null_literal: NULL */
-#line 1073 "bison_parser.y"
+ case 251: /* null_literal: NULL */
+#line 1168 "bison_parser.y"
{ (yyval.expr) = Expr::makeNullLiteral(); }
-#line 4419 "bison_parser.cpp"
+#line 4705 "bison_parser.cpp"
break;
- case 228: /* date_literal: DATE STRING */
-#line 1077 "bison_parser.y"
+ case 252: /* date_literal: DATE STRING */
+#line 1172 "bison_parser.y"
{
int day{0}, month{0}, year{0}, chars_parsed{0};
// If the whole string is parsed, chars_parsed points to the terminating null byte after the last character
@@ -4430,17 +4716,17 @@ YYLTYPE yylloc = yyloc_default;
}
(yyval.expr) = Expr::makeDateLiteral((yyvsp[0].sval));
}
-#line 4434 "bison_parser.cpp"
+#line 4720 "bison_parser.cpp"
break;
- case 229: /* interval_literal: int_literal duration_field */
-#line 1090 "bison_parser.y"
+ case 253: /* interval_literal: int_literal duration_field */
+#line 1185 "bison_parser.y"
{ (yyval.expr) = Expr::makeIntervalLiteral((yyvsp[-1].expr)->ival, (yyvsp[0].datetime_field)); delete (yyvsp[-1].expr); }
-#line 4440 "bison_parser.cpp"
+#line 4726 "bison_parser.cpp"
break;
- case 230: /* interval_literal: INTERVAL STRING datetime_field */
-#line 1091 "bison_parser.y"
+ case 254: /* interval_literal: INTERVAL STRING datetime_field */
+#line 1186 "bison_parser.y"
{
int duration{0}, chars_parsed{0};
// If the whole string is parsed, chars_parsed points to the terminating null byte after the last character
@@ -4452,11 +4738,11 @@ YYLTYPE yylloc = yyloc_default;
free((yyvsp[-1].sval));
(yyval.expr) = Expr::makeIntervalLiteral(duration, (yyvsp[0].datetime_field));
}
-#line 4456 "bison_parser.cpp"
+#line 4742 "bison_parser.cpp"
break;
- case 231: /* interval_literal: INTERVAL STRING */
-#line 1102 "bison_parser.y"
+ case 255: /* interval_literal: INTERVAL STRING */
+#line 1197 "bison_parser.y"
{
int duration{0}, chars_parsed{0};
// 'seconds' and 'minutes' are the longest accepted interval qualifiers (7 chars) + null byte
@@ -4488,55 +4774,55 @@ YYLTYPE yylloc = yyloc_default;
}
(yyval.expr) = Expr::makeIntervalLiteral(duration, unit);
}
-#line 4492 "bison_parser.cpp"
+#line 4778 "bison_parser.cpp"
break;
- case 232: /* param_expr: '?' */
-#line 1136 "bison_parser.y"
+ case 256: /* param_expr: '?' */
+#line 1231 "bison_parser.y"
{
(yyval.expr) = Expr::makeParameter(yylloc.total_column);
(yyval.expr)->ival2 = yyloc.param_list.size();
yyloc.param_list.push_back((yyval.expr));
}
-#line 4502 "bison_parser.cpp"
+#line 4788 "bison_parser.cpp"
break;
- case 234: /* table_ref: table_ref_commalist ',' table_ref_atomic */
-#line 1149 "bison_parser.y"
+ case 258: /* table_ref: table_ref_commalist ',' table_ref_atomic */
+#line 1244 "bison_parser.y"
{
(yyvsp[-2].table_vec)->push_back((yyvsp[0].table));
auto tbl = new TableRef(kTableCrossProduct);
tbl->list = (yyvsp[-2].table_vec);
(yyval.table) = tbl;
}
-#line 4513 "bison_parser.cpp"
+#line 4799 "bison_parser.cpp"
break;
- case 238: /* nonjoin_table_ref_atomic: '(' select_statement ')' opt_table_alias */
-#line 1165 "bison_parser.y"
+ case 262: /* nonjoin_table_ref_atomic: '(' select_statement ')' opt_table_alias */
+#line 1260 "bison_parser.y"
{
auto tbl = new TableRef(kTableSelect);
tbl->select = (yyvsp[-2].select_stmt);
tbl->alias = (yyvsp[0].alias_t);
(yyval.table) = tbl;
}
-#line 4524 "bison_parser.cpp"
+#line 4810 "bison_parser.cpp"
break;
- case 239: /* table_ref_commalist: table_ref_atomic */
-#line 1174 "bison_parser.y"
+ case 263: /* table_ref_commalist: table_ref_atomic */
+#line 1269 "bison_parser.y"
{ (yyval.table_vec) = new std::vector(); (yyval.table_vec)->push_back((yyvsp[0].table)); }
-#line 4530 "bison_parser.cpp"
+#line 4816 "bison_parser.cpp"
break;
- case 240: /* table_ref_commalist: table_ref_commalist ',' table_ref_atomic */
-#line 1175 "bison_parser.y"
+ case 264: /* table_ref_commalist: table_ref_commalist ',' table_ref_atomic */
+#line 1270 "bison_parser.y"
{ (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); (yyval.table_vec) = (yyvsp[-2].table_vec); }
-#line 4536 "bison_parser.cpp"
+#line 4822 "bison_parser.cpp"
break;
- case 241: /* table_ref_name: table_name opt_table_alias */
-#line 1180 "bison_parser.y"
+ case 265: /* table_ref_name: table_name opt_table_alias */
+#line 1275 "bison_parser.y"
{
auto tbl = new TableRef(kTableName);
tbl->schema = (yyvsp[-1].table_name).schema;
@@ -4544,103 +4830,115 @@ YYLTYPE yylloc = yyloc_default;
tbl->alias = (yyvsp[0].alias_t);
(yyval.table) = tbl;
}
-#line 4548 "bison_parser.cpp"
+#line 4834 "bison_parser.cpp"
break;
- case 242: /* table_ref_name_no_alias: table_name */
-#line 1191 "bison_parser.y"
+ case 266: /* table_ref_name_no_alias: table_name */
+#line 1286 "bison_parser.y"
{
(yyval.table) = new TableRef(kTableName);
(yyval.table)->schema = (yyvsp[0].table_name).schema;
(yyval.table)->name = (yyvsp[0].table_name).name;
}
-#line 4558 "bison_parser.cpp"
+#line 4844 "bison_parser.cpp"
break;
- case 243: /* table_name: IDENTIFIER */
-#line 1200 "bison_parser.y"
+ case 267: /* table_name: IDENTIFIER */
+#line 1295 "bison_parser.y"
{ (yyval.table_name).schema = nullptr; (yyval.table_name).name = (yyvsp[0].sval);}
-#line 4564 "bison_parser.cpp"
+#line 4850 "bison_parser.cpp"
break;
- case 244: /* table_name: IDENTIFIER '.' IDENTIFIER */
-#line 1201 "bison_parser.y"
+ case 268: /* table_name: IDENTIFIER '.' IDENTIFIER */
+#line 1296 "bison_parser.y"
{ (yyval.table_name).schema = (yyvsp[-2].sval); (yyval.table_name).name = (yyvsp[0].sval); }
-#line 4570 "bison_parser.cpp"
+#line 4856 "bison_parser.cpp"
+ break;
+
+ case 269: /* opt_index_name: IDENTIFIER */
+#line 1300 "bison_parser.y"
+ { (yyval.sval) = (yyvsp[0].sval);}
+#line 4862 "bison_parser.cpp"
+ break;
+
+ case 270: /* opt_index_name: %empty */
+#line 1301 "bison_parser.y"
+ { (yyval.sval) = nullptr;}
+#line 4868 "bison_parser.cpp"
break;
- case 246: /* table_alias: AS IDENTIFIER '(' ident_commalist ')' */
-#line 1207 "bison_parser.y"
+ case 272: /* table_alias: AS IDENTIFIER '(' ident_commalist ')' */
+#line 1306 "bison_parser.y"
{ (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); }
-#line 4576 "bison_parser.cpp"
+#line 4874 "bison_parser.cpp"
break;
- case 248: /* opt_table_alias: %empty */
-#line 1213 "bison_parser.y"
+ case 274: /* opt_table_alias: %empty */
+#line 1312 "bison_parser.y"
{ (yyval.alias_t) = nullptr; }
-#line 4582 "bison_parser.cpp"
+#line 4880 "bison_parser.cpp"
break;
- case 249: /* alias: AS IDENTIFIER */
-#line 1218 "bison_parser.y"
+ case 275: /* alias: AS IDENTIFIER */
+#line 1317 "bison_parser.y"
{ (yyval.alias_t) = new Alias((yyvsp[0].sval)); }
-#line 4588 "bison_parser.cpp"
+#line 4886 "bison_parser.cpp"
break;
- case 250: /* alias: IDENTIFIER */
-#line 1219 "bison_parser.y"
+ case 276: /* alias: IDENTIFIER */
+#line 1318 "bison_parser.y"
{ (yyval.alias_t) = new Alias((yyvsp[0].sval)); }
-#line 4594 "bison_parser.cpp"
+#line 4892 "bison_parser.cpp"
break;
- case 252: /* opt_alias: %empty */
-#line 1225 "bison_parser.y"
+ case 278: /* opt_alias: %empty */
+#line 1324 "bison_parser.y"
{ (yyval.alias_t) = nullptr; }
-#line 4600 "bison_parser.cpp"
+#line 4898 "bison_parser.cpp"
break;
- case 254: /* opt_with_clause: %empty */
-#line 1235 "bison_parser.y"
+ case 280: /* opt_with_clause: %empty */
+#line 1334 "bison_parser.y"
{ (yyval.with_description_vec) = nullptr; }
-#line 4606 "bison_parser.cpp"
+#line 4904 "bison_parser.cpp"
break;
- case 255: /* with_clause: WITH with_description_list */
-#line 1239 "bison_parser.y"
+ case 281: /* with_clause: WITH with_description_list */
+#line 1338 "bison_parser.y"
{ (yyval.with_description_vec) = (yyvsp[0].with_description_vec); }
-#line 4612 "bison_parser.cpp"
+#line 4910 "bison_parser.cpp"
break;
- case 256: /* with_description_list: with_description */
-#line 1243 "bison_parser.y"
+ case 282: /* with_description_list: with_description */
+#line 1342 "bison_parser.y"
{
(yyval.with_description_vec) = new std::vector();
(yyval.with_description_vec)->push_back((yyvsp[0].with_description_t));
}
-#line 4621 "bison_parser.cpp"
+#line 4919 "bison_parser.cpp"
break;
- case 257: /* with_description_list: with_description_list ',' with_description */
-#line 1247 "bison_parser.y"
+ case 283: /* with_description_list: with_description_list ',' with_description */
+#line 1346 "bison_parser.y"
{
(yyvsp[-2].with_description_vec)->push_back((yyvsp[0].with_description_t));
(yyval.with_description_vec) = (yyvsp[-2].with_description_vec);
}
-#line 4630 "bison_parser.cpp"
+#line 4928 "bison_parser.cpp"
break;
- case 258: /* with_description: IDENTIFIER AS select_with_paren */
-#line 1254 "bison_parser.y"
+ case 284: /* with_description: IDENTIFIER AS select_with_paren */
+#line 1353 "bison_parser.y"
{
(yyval.with_description_t) = new WithDescription();
(yyval.with_description_t)->alias = (yyvsp[-2].sval);
(yyval.with_description_t)->select = (yyvsp[0].select_stmt);
}
-#line 4640 "bison_parser.cpp"
+#line 4938 "bison_parser.cpp"
break;
- case 259: /* join_clause: table_ref_atomic NATURAL JOIN nonjoin_table_ref_atomic */
-#line 1268 "bison_parser.y"
+ case 285: /* join_clause: table_ref_atomic NATURAL JOIN nonjoin_table_ref_atomic */
+#line 1367 "bison_parser.y"
{
(yyval.table) = new TableRef(kTableJoin);
(yyval.table)->join = new JoinDefinition();
@@ -4648,28 +4946,28 @@ YYLTYPE yylloc = yyloc_default;
(yyval.table)->join->left = (yyvsp[-3].table);
(yyval.table)->join->right = (yyvsp[0].table);
}
-#line 4652 "bison_parser.cpp"
+#line 4950 "bison_parser.cpp"
break;
- case 260: /* join_clause: table_ref_atomic opt_join_type JOIN table_ref_atomic ON join_condition */
-#line 1276 "bison_parser.y"
+ case 286: /* join_clause: table_ref_atomic opt_join_type JOIN table_ref_atomic ON join_condition */
+#line 1375 "bison_parser.y"
{
(yyval.table) = new TableRef(kTableJoin);
(yyval.table)->join = new JoinDefinition();
- (yyval.table)->join->type = (JoinType) (yyvsp[-4].uval);
+ (yyval.table)->join->type = (JoinType) (yyvsp[-4].join_type);
(yyval.table)->join->left = (yyvsp[-5].table);
(yyval.table)->join->right = (yyvsp[-2].table);
(yyval.table)->join->condition = (yyvsp[0].expr);
}
-#line 4665 "bison_parser.cpp"
+#line 4963 "bison_parser.cpp"
break;
- case 261: /* join_clause: table_ref_atomic opt_join_type JOIN table_ref_atomic USING '(' column_name ')' */
-#line 1286 "bison_parser.y"
+ case 287: /* join_clause: table_ref_atomic opt_join_type JOIN table_ref_atomic USING '(' column_name ')' */
+#line 1385 "bison_parser.y"
{
(yyval.table) = new TableRef(kTableJoin);
(yyval.table)->join = new JoinDefinition();
- (yyval.table)->join->type = (JoinType) (yyvsp[-6].uval);
+ (yyval.table)->join->type = (JoinType) (yyvsp[-6].join_type);
(yyval.table)->join->left = (yyvsp[-7].table);
(yyval.table)->join->right = (yyvsp[-4].table);
auto left_col = Expr::makeColumnRef(strdup((yyvsp[-1].expr)->name));
@@ -4681,83 +4979,83 @@ YYLTYPE yylloc = yyloc_default;
(yyval.table)->join->condition = Expr::makeOpBinary(left_col, kOpEquals, right_col);
delete (yyvsp[-1].expr);
}
-#line 4685 "bison_parser.cpp"
+#line 4983 "bison_parser.cpp"
break;
- case 262: /* opt_join_type: INNER */
-#line 1304 "bison_parser.y"
- { (yyval.uval) = kJoinInner; }
-#line 4691 "bison_parser.cpp"
+ case 288: /* opt_join_type: INNER */
+#line 1403 "bison_parser.y"
+ { (yyval.join_type) = kJoinInner; }
+#line 4989 "bison_parser.cpp"
break;
- case 263: /* opt_join_type: LEFT OUTER */
-#line 1305 "bison_parser.y"
- { (yyval.uval) = kJoinLeft; }
-#line 4697 "bison_parser.cpp"
+ case 289: /* opt_join_type: LEFT OUTER */
+#line 1404 "bison_parser.y"
+ { (yyval.join_type) = kJoinLeft; }
+#line 4995 "bison_parser.cpp"
break;
- case 264: /* opt_join_type: LEFT */
-#line 1306 "bison_parser.y"
- { (yyval.uval) = kJoinLeft; }
-#line 4703 "bison_parser.cpp"
+ case 290: /* opt_join_type: LEFT */
+#line 1405 "bison_parser.y"
+ { (yyval.join_type) = kJoinLeft; }
+#line 5001 "bison_parser.cpp"
break;
- case 265: /* opt_join_type: RIGHT OUTER */
-#line 1307 "bison_parser.y"
- { (yyval.uval) = kJoinRight; }
-#line 4709 "bison_parser.cpp"
+ case 291: /* opt_join_type: RIGHT OUTER */
+#line 1406 "bison_parser.y"
+ { (yyval.join_type) = kJoinRight; }
+#line 5007 "bison_parser.cpp"
break;
- case 266: /* opt_join_type: RIGHT */
-#line 1308 "bison_parser.y"
- { (yyval.uval) = kJoinRight; }
-#line 4715 "bison_parser.cpp"
+ case 292: /* opt_join_type: RIGHT */
+#line 1407 "bison_parser.y"
+ { (yyval.join_type) = kJoinRight; }
+#line 5013 "bison_parser.cpp"
break;
- case 267: /* opt_join_type: FULL OUTER */
-#line 1309 "bison_parser.y"
- { (yyval.uval) = kJoinFull; }
-#line 4721 "bison_parser.cpp"
+ case 293: /* opt_join_type: FULL OUTER */
+#line 1408 "bison_parser.y"
+ { (yyval.join_type) = kJoinFull; }
+#line 5019 "bison_parser.cpp"
break;
- case 268: /* opt_join_type: OUTER */
-#line 1310 "bison_parser.y"
- { (yyval.uval) = kJoinFull; }
-#line 4727 "bison_parser.cpp"
+ case 294: /* opt_join_type: OUTER */
+#line 1409 "bison_parser.y"
+ { (yyval.join_type) = kJoinFull; }
+#line 5025 "bison_parser.cpp"
break;
- case 269: /* opt_join_type: FULL */
-#line 1311 "bison_parser.y"
- { (yyval.uval) = kJoinFull; }
-#line 4733 "bison_parser.cpp"
+ case 295: /* opt_join_type: FULL */
+#line 1410 "bison_parser.y"
+ { (yyval.join_type) = kJoinFull; }
+#line 5031 "bison_parser.cpp"
break;
- case 270: /* opt_join_type: CROSS */
-#line 1312 "bison_parser.y"
- { (yyval.uval) = kJoinCross; }
-#line 4739 "bison_parser.cpp"
+ case 296: /* opt_join_type: CROSS */
+#line 1411 "bison_parser.y"
+ { (yyval.join_type) = kJoinCross; }
+#line 5037 "bison_parser.cpp"
break;
- case 271: /* opt_join_type: %empty */
-#line 1313 "bison_parser.y"
- { (yyval.uval) = kJoinInner; }
-#line 4745 "bison_parser.cpp"
+ case 297: /* opt_join_type: %empty */
+#line 1412 "bison_parser.y"
+ { (yyval.join_type) = kJoinInner; }
+#line 5043 "bison_parser.cpp"
break;
- case 275: /* ident_commalist: IDENTIFIER */
-#line 1333 "bison_parser.y"
+ case 301: /* ident_commalist: IDENTIFIER */
+#line 1432 "bison_parser.y"
{ (yyval.str_vec) = new std::vector(); (yyval.str_vec)->push_back((yyvsp[0].sval)); }
-#line 4751 "bison_parser.cpp"
+#line 5049 "bison_parser.cpp"
break;
- case 276: /* ident_commalist: ident_commalist ',' IDENTIFIER */
-#line 1334 "bison_parser.y"
+ case 302: /* ident_commalist: ident_commalist ',' IDENTIFIER */
+#line 1433 "bison_parser.y"
{ (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); (yyval.str_vec) = (yyvsp[-2].str_vec); }
-#line 4757 "bison_parser.cpp"
+#line 5055 "bison_parser.cpp"
break;
-#line 4761 "bison_parser.cpp"
+#line 5059 "bison_parser.cpp"
default: break;
}
@@ -4834,7 +5132,7 @@ YYLTYPE yylloc = yyloc_default;
}
yyerror (&yylloc, result, scanner, yymsgp);
if (yysyntax_error_status == YYENOMEM)
- goto yyexhaustedlab;
+ YYNOMEM;
}
}
@@ -4871,6 +5169,7 @@ YYLTYPE yylloc = yyloc_default;
label yyerrorlab therefore never appears in user code. */
if (0)
YYERROR;
+ ++yynerrs;
/* Do not reclaim the symbols of the rule whose action triggered
this YYERROR. */
@@ -4934,7 +5233,7 @@ YYLTYPE yylloc = yyloc_default;
`-------------------------------------*/
yyacceptlab:
yyresult = 0;
- goto yyreturn;
+ goto yyreturnlab;
/*-----------------------------------.
@@ -4942,24 +5241,22 @@ YYLTYPE yylloc = yyloc_default;
`-----------------------------------*/
yyabortlab:
yyresult = 1;
- goto yyreturn;
+ goto yyreturnlab;
-#if 1
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here. |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
+`-----------------------------------------------------------*/
yyexhaustedlab:
yyerror (&yylloc, result, scanner, YY_("memory exhausted"));
yyresult = 2;
- goto yyreturn;
-#endif
+ goto yyreturnlab;
-/*-------------------------------------------------------.
-| yyreturn -- parsing is finished, clean up and return. |
-`-------------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return. |
+`----------------------------------------------------------*/
+yyreturnlab:
if (yychar != SQL_HSQL_EMPTY)
{
/* Make sure we have latest lookahead translation. See comments at
@@ -4987,7 +5284,7 @@ YYLTYPE yylloc = yyloc_default;
return yyresult;
}
-#line 1337 "bison_parser.y"
+#line 1436 "bison_parser.y"
/*********************************
** Section 4: Additional C code
diff --git a/src/parser/bison_parser.h b/src/parser/bison_parser.h
index 3eca85c4..25b2ed33 100644
--- a/src/parser/bison_parser.h
+++ b/src/parser/bison_parser.h
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.7.5. */
+/* A Bison parser, made by GNU Bison 3.8.1. */
/* Bison interface for Yacc-like parsers in C
@@ -16,7 +16,7 @@
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 . */
+ along with this program. If not, see . */
/* As a special exception, you may create a larger work that contains
part or all of the Bison parser skeleton and distribute that work
@@ -114,136 +114,140 @@ extern int hsql_debug;
SQL_PREPARE = 281, /* PREPARE */
SQL_PRIMARY = 282, /* PRIMARY */
SQL_SCHEMAS = 283, /* SCHEMAS */
- SQL_SPATIAL = 284, /* SPATIAL */
- SQL_VARCHAR = 285, /* VARCHAR */
- SQL_VIRTUAL = 286, /* VIRTUAL */
- SQL_DESCRIBE = 287, /* DESCRIBE */
- SQL_BEFORE = 288, /* BEFORE */
- SQL_COLUMN = 289, /* COLUMN */
- SQL_CREATE = 290, /* CREATE */
- SQL_DELETE = 291, /* DELETE */
- SQL_DIRECT = 292, /* DIRECT */
- SQL_DOUBLE = 293, /* DOUBLE */
- SQL_ESCAPE = 294, /* ESCAPE */
- SQL_EXCEPT = 295, /* EXCEPT */
- SQL_EXISTS = 296, /* EXISTS */
- SQL_EXTRACT = 297, /* EXTRACT */
- SQL_CAST = 298, /* CAST */
- SQL_FORMAT = 299, /* FORMAT */
- SQL_GLOBAL = 300, /* GLOBAL */
- SQL_HAVING = 301, /* HAVING */
- SQL_IMPORT = 302, /* IMPORT */
- SQL_INSERT = 303, /* INSERT */
- SQL_ISNULL = 304, /* ISNULL */
- SQL_OFFSET = 305, /* OFFSET */
- SQL_RENAME = 306, /* RENAME */
- SQL_SCHEMA = 307, /* SCHEMA */
- SQL_SELECT = 308, /* SELECT */
- SQL_SORTED = 309, /* SORTED */
- SQL_TABLES = 310, /* TABLES */
- SQL_UNIQUE = 311, /* UNIQUE */
- SQL_UNLOAD = 312, /* UNLOAD */
- SQL_UPDATE = 313, /* UPDATE */
- SQL_VALUES = 314, /* VALUES */
- SQL_AFTER = 315, /* AFTER */
- SQL_ALTER = 316, /* ALTER */
- SQL_CROSS = 317, /* CROSS */
- SQL_DELTA = 318, /* DELTA */
- SQL_FLOAT = 319, /* FLOAT */
- SQL_GROUP = 320, /* GROUP */
- SQL_INDEX = 321, /* INDEX */
- SQL_INNER = 322, /* INNER */
- SQL_LIMIT = 323, /* LIMIT */
- SQL_LOCAL = 324, /* LOCAL */
- SQL_MERGE = 325, /* MERGE */
- SQL_MINUS = 326, /* MINUS */
- SQL_ORDER = 327, /* ORDER */
- SQL_OUTER = 328, /* OUTER */
- SQL_RIGHT = 329, /* RIGHT */
- SQL_TABLE = 330, /* TABLE */
- SQL_UNION = 331, /* UNION */
- SQL_USING = 332, /* USING */
- SQL_WHERE = 333, /* WHERE */
- SQL_CALL = 334, /* CALL */
- SQL_CASE = 335, /* CASE */
- SQL_CHAR = 336, /* CHAR */
- SQL_COPY = 337, /* COPY */
- SQL_DATE = 338, /* DATE */
- SQL_DATETIME = 339, /* DATETIME */
- SQL_DESC = 340, /* DESC */
- SQL_DROP = 341, /* DROP */
- SQL_ELSE = 342, /* ELSE */
- SQL_FILE = 343, /* FILE */
- SQL_FROM = 344, /* FROM */
- SQL_FULL = 345, /* FULL */
- SQL_HASH = 346, /* HASH */
- SQL_HINT = 347, /* HINT */
- SQL_INTO = 348, /* INTO */
- SQL_JOIN = 349, /* JOIN */
- SQL_LEFT = 350, /* LEFT */
- SQL_LIKE = 351, /* LIKE */
- SQL_LOAD = 352, /* LOAD */
- SQL_LONG = 353, /* LONG */
- SQL_NULL = 354, /* NULL */
- SQL_PLAN = 355, /* PLAN */
- SQL_SHOW = 356, /* SHOW */
- SQL_TEXT = 357, /* TEXT */
- SQL_THEN = 358, /* THEN */
- SQL_TIME = 359, /* TIME */
- SQL_VIEW = 360, /* VIEW */
- SQL_WHEN = 361, /* WHEN */
- SQL_WITH = 362, /* WITH */
- SQL_ADD = 363, /* ADD */
- SQL_ALL = 364, /* ALL */
- SQL_AND = 365, /* AND */
- SQL_ASC = 366, /* ASC */
- SQL_END = 367, /* END */
- SQL_FOR = 368, /* FOR */
- SQL_INT = 369, /* INT */
- SQL_KEY = 370, /* KEY */
- SQL_NOT = 371, /* NOT */
- SQL_OFF = 372, /* OFF */
- SQL_SET = 373, /* SET */
- SQL_TOP = 374, /* TOP */
- SQL_AS = 375, /* AS */
- SQL_BY = 376, /* BY */
- SQL_IF = 377, /* IF */
- SQL_IN = 378, /* IN */
- SQL_IS = 379, /* IS */
- SQL_OF = 380, /* OF */
- SQL_ON = 381, /* ON */
- SQL_OR = 382, /* OR */
- SQL_TO = 383, /* TO */
- SQL_ARRAY = 384, /* ARRAY */
- SQL_CONCAT = 385, /* CONCAT */
- SQL_ILIKE = 386, /* ILIKE */
- SQL_SECOND = 387, /* SECOND */
- SQL_MINUTE = 388, /* MINUTE */
- SQL_HOUR = 389, /* HOUR */
- SQL_DAY = 390, /* DAY */
- SQL_MONTH = 391, /* MONTH */
- SQL_YEAR = 392, /* YEAR */
- SQL_SECONDS = 393, /* SECONDS */
- SQL_MINUTES = 394, /* MINUTES */
- SQL_HOURS = 395, /* HOURS */
- SQL_DAYS = 396, /* DAYS */
- SQL_MONTHS = 397, /* MONTHS */
- SQL_YEARS = 398, /* YEARS */
- SQL_INTERVAL = 399, /* INTERVAL */
- SQL_TRUE = 400, /* TRUE */
- SQL_FALSE = 401, /* FALSE */
- SQL_TRANSACTION = 402, /* TRANSACTION */
- SQL_BEGIN = 403, /* BEGIN */
- SQL_COMMIT = 404, /* COMMIT */
- SQL_ROLLBACK = 405, /* ROLLBACK */
- SQL_EQUALS = 406, /* EQUALS */
- SQL_NOTEQUALS = 407, /* NOTEQUALS */
- SQL_LESS = 408, /* LESS */
- SQL_GREATER = 409, /* GREATER */
- SQL_LESSEQ = 410, /* LESSEQ */
- SQL_GREATEREQ = 411, /* GREATEREQ */
- SQL_NOTNULL = 412, /* NOTNULL */
- SQL_UMINUS = 413 /* UMINUS */
+ SQL_CHARACTER = 284, /* CHARACTER */
+ SQL_VARYING = 285, /* VARYING */
+ SQL_REAL = 286, /* REAL */
+ SQL_DECIMAL = 287, /* DECIMAL */
+ SQL_SPATIAL = 288, /* SPATIAL */
+ SQL_VARCHAR = 289, /* VARCHAR */
+ SQL_VIRTUAL = 290, /* VIRTUAL */
+ SQL_DESCRIBE = 291, /* DESCRIBE */
+ SQL_BEFORE = 292, /* BEFORE */
+ SQL_COLUMN = 293, /* COLUMN */
+ SQL_CREATE = 294, /* CREATE */
+ SQL_DELETE = 295, /* DELETE */
+ SQL_DIRECT = 296, /* DIRECT */
+ SQL_DOUBLE = 297, /* DOUBLE */
+ SQL_ESCAPE = 298, /* ESCAPE */
+ SQL_EXCEPT = 299, /* EXCEPT */
+ SQL_EXISTS = 300, /* EXISTS */
+ SQL_EXTRACT = 301, /* EXTRACT */
+ SQL_CAST = 302, /* CAST */
+ SQL_FORMAT = 303, /* FORMAT */
+ SQL_GLOBAL = 304, /* GLOBAL */
+ SQL_HAVING = 305, /* HAVING */
+ SQL_IMPORT = 306, /* IMPORT */
+ SQL_INSERT = 307, /* INSERT */
+ SQL_ISNULL = 308, /* ISNULL */
+ SQL_OFFSET = 309, /* OFFSET */
+ SQL_RENAME = 310, /* RENAME */
+ SQL_SCHEMA = 311, /* SCHEMA */
+ SQL_SELECT = 312, /* SELECT */
+ SQL_SORTED = 313, /* SORTED */
+ SQL_TABLES = 314, /* TABLES */
+ SQL_UNIQUE = 315, /* UNIQUE */
+ SQL_UNLOAD = 316, /* UNLOAD */
+ SQL_UPDATE = 317, /* UPDATE */
+ SQL_VALUES = 318, /* VALUES */
+ SQL_AFTER = 319, /* AFTER */
+ SQL_ALTER = 320, /* ALTER */
+ SQL_CROSS = 321, /* CROSS */
+ SQL_DELTA = 322, /* DELTA */
+ SQL_FLOAT = 323, /* FLOAT */
+ SQL_GROUP = 324, /* GROUP */
+ SQL_INDEX = 325, /* INDEX */
+ SQL_INNER = 326, /* INNER */
+ SQL_LIMIT = 327, /* LIMIT */
+ SQL_LOCAL = 328, /* LOCAL */
+ SQL_MERGE = 329, /* MERGE */
+ SQL_MINUS = 330, /* MINUS */
+ SQL_ORDER = 331, /* ORDER */
+ SQL_OUTER = 332, /* OUTER */
+ SQL_RIGHT = 333, /* RIGHT */
+ SQL_TABLE = 334, /* TABLE */
+ SQL_UNION = 335, /* UNION */
+ SQL_USING = 336, /* USING */
+ SQL_WHERE = 337, /* WHERE */
+ SQL_CALL = 338, /* CALL */
+ SQL_CASE = 339, /* CASE */
+ SQL_CHAR = 340, /* CHAR */
+ SQL_COPY = 341, /* COPY */
+ SQL_DATE = 342, /* DATE */
+ SQL_DATETIME = 343, /* DATETIME */
+ SQL_DESC = 344, /* DESC */
+ SQL_DROP = 345, /* DROP */
+ SQL_ELSE = 346, /* ELSE */
+ SQL_FILE = 347, /* FILE */
+ SQL_FROM = 348, /* FROM */
+ SQL_FULL = 349, /* FULL */
+ SQL_HASH = 350, /* HASH */
+ SQL_HINT = 351, /* HINT */
+ SQL_INTO = 352, /* INTO */
+ SQL_JOIN = 353, /* JOIN */
+ SQL_LEFT = 354, /* LEFT */
+ SQL_LIKE = 355, /* LIKE */
+ SQL_LOAD = 356, /* LOAD */
+ SQL_LONG = 357, /* LONG */
+ SQL_NULL = 358, /* NULL */
+ SQL_PLAN = 359, /* PLAN */
+ SQL_SHOW = 360, /* SHOW */
+ SQL_TEXT = 361, /* TEXT */
+ SQL_THEN = 362, /* THEN */
+ SQL_TIME = 363, /* TIME */
+ SQL_VIEW = 364, /* VIEW */
+ SQL_WHEN = 365, /* WHEN */
+ SQL_WITH = 366, /* WITH */
+ SQL_ADD = 367, /* ADD */
+ SQL_ALL = 368, /* ALL */
+ SQL_AND = 369, /* AND */
+ SQL_ASC = 370, /* ASC */
+ SQL_END = 371, /* END */
+ SQL_FOR = 372, /* FOR */
+ SQL_INT = 373, /* INT */
+ SQL_KEY = 374, /* KEY */
+ SQL_NOT = 375, /* NOT */
+ SQL_OFF = 376, /* OFF */
+ SQL_SET = 377, /* SET */
+ SQL_TOP = 378, /* TOP */
+ SQL_AS = 379, /* AS */
+ SQL_BY = 380, /* BY */
+ SQL_IF = 381, /* IF */
+ SQL_IN = 382, /* IN */
+ SQL_IS = 383, /* IS */
+ SQL_OF = 384, /* OF */
+ SQL_ON = 385, /* ON */
+ SQL_OR = 386, /* OR */
+ SQL_TO = 387, /* TO */
+ SQL_ARRAY = 388, /* ARRAY */
+ SQL_CONCAT = 389, /* CONCAT */
+ SQL_ILIKE = 390, /* ILIKE */
+ SQL_SECOND = 391, /* SECOND */
+ SQL_MINUTE = 392, /* MINUTE */
+ SQL_HOUR = 393, /* HOUR */
+ SQL_DAY = 394, /* DAY */
+ SQL_MONTH = 395, /* MONTH */
+ SQL_YEAR = 396, /* YEAR */
+ SQL_SECONDS = 397, /* SECONDS */
+ SQL_MINUTES = 398, /* MINUTES */
+ SQL_HOURS = 399, /* HOURS */
+ SQL_DAYS = 400, /* DAYS */
+ SQL_MONTHS = 401, /* MONTHS */
+ SQL_YEARS = 402, /* YEARS */
+ SQL_INTERVAL = 403, /* INTERVAL */
+ SQL_TRUE = 404, /* TRUE */
+ SQL_FALSE = 405, /* FALSE */
+ SQL_TRANSACTION = 406, /* TRANSACTION */
+ SQL_BEGIN = 407, /* BEGIN */
+ SQL_COMMIT = 408, /* COMMIT */
+ SQL_ROLLBACK = 409, /* ROLLBACK */
+ SQL_EQUALS = 410, /* EQUALS */
+ SQL_NOTEQUALS = 411, /* NOTEQUALS */
+ SQL_LESS = 412, /* LESS */
+ SQL_GREATER = 413, /* GREATER */
+ SQL_LESSEQ = 414, /* LESSEQ */
+ SQL_GREATEREQ = 415, /* GREATEREQ */
+ SQL_NOTNULL = 416, /* NOTNULL */
+ SQL_UMINUS = 417 /* UMINUS */
};
typedef enum hsql_tokentype hsql_token_kind_t;
#endif
@@ -254,53 +258,62 @@ union HSQL_STYPE
{
#line 95 "bison_parser.y"
- double fval;
- int64_t ival;
- char* sval;
+ bool bval;
+ char* sval;
+ double fval;
+ int64_t ival;
uintmax_t uval;
- bool bval;
- hsql::SQLStatement* statement;
- hsql::SelectStatement* select_stmt;
- hsql::ImportStatement* import_stmt;
- hsql::ExportStatement* export_stmt;
- hsql::CreateStatement* create_stmt;
- hsql::InsertStatement* insert_stmt;
- hsql::DeleteStatement* delete_stmt;
- hsql::UpdateStatement* update_stmt;
- hsql::DropStatement* drop_stmt;
- hsql::PrepareStatement* prep_stmt;
- hsql::ExecuteStatement* exec_stmt;
- hsql::ShowStatement* show_stmt;
+ // statements
+ hsql::AlterStatement* alter_stmt;
+ hsql::CreateStatement* create_stmt;
+ hsql::DeleteStatement* delete_stmt;
+ hsql::DropStatement* drop_stmt;
+ hsql::ExecuteStatement* exec_stmt;
+ hsql::ExportStatement* export_stmt;
+ hsql::ImportStatement* import_stmt;
+ hsql::InsertStatement* insert_stmt;
+ hsql::PrepareStatement* prep_stmt;
+ hsql::SelectStatement* select_stmt;
+ hsql::ShowStatement* show_stmt;
+ hsql::SQLStatement* statement;
hsql::TransactionStatement* transaction_stmt;
-
- hsql::TableName table_name;
- hsql::TableRef* table;
- hsql::Expr* expr;
- hsql::OrderDescription* order;
- hsql::OrderType order_type;
- hsql::WithDescription* with_description_t;
- hsql::DatetimeField datetime_field;
- hsql::LimitDescription* limit;
- hsql::ColumnDefinition* column_t;
- hsql::ColumnType column_type_t;
- hsql::ImportType import_type_t;
+ hsql::UpdateStatement* update_stmt;
+
+ hsql::Alias* alias_t;
+ hsql::AlterAction* alter_action_t;
+ hsql::ColumnDefinition* column_t;
+ hsql::ColumnSpecification column_specification_t;
+ hsql::ColumnType column_type_t;
+ hsql::ConstraintType column_constraint_t;
+ hsql::DatetimeField datetime_field;
+ hsql::DropColumnAction* drop_action_t;
+ hsql::Expr* expr;
hsql::GroupByDescription* group_t;
- hsql::UpdateClause* update_t;
- hsql::Alias* alias_t;
- hsql::SetOperation* set_operator_t;
-
- std::vector* stmt_vec;
+ hsql::ImportType import_type_t;
+ hsql::JoinType join_type;
+ hsql::LimitDescription* limit;
+ hsql::OrderDescription* order;
+ hsql::OrderType order_type;
+ hsql::SetOperation* set_operator_t;
+ hsql::TableConstraint* table_constraint_t;
+ hsql::TableElement* table_element_t;
+ hsql::TableName table_name;
+ hsql::TableRef* table;
+ hsql::UpdateClause* update_t;
+ hsql::WithDescription* with_description_t;
- std::vector* str_vec;
- std::vector* table_vec;
- std::vector* column_vec;
- std::vector* update_vec;
- std::vector* expr_vec;
+ std::vector* str_vec;
+ std::vector* column_constraint_vec;
+ std::vector* expr_vec;
std::vector* order_vec;
- std::vector* with_description_vec;
+ std::vector* stmt_vec;
+ std::vector* table_element_vec;
+ std::vector* table_vec;
+ std::vector* update_vec;
+ std::vector* with_description_vec;
-#line 304 "bison_parser.h"
+#line 317 "bison_parser.h"
};
typedef union HSQL_STYPE HSQL_STYPE;
@@ -324,6 +337,8 @@ struct HSQL_LTYPE
+
int hsql_parse (hsql::SQLParserResult* result, yyscan_t scanner);
+
#endif /* !YY_HSQL_BISON_PARSER_H_INCLUDED */
diff --git a/src/parser/bison_parser.y b/src/parser/bison_parser.y
index e0c1955f..5eef32cd 100755
--- a/src/parser/bison_parser.y
+++ b/src/parser/bison_parser.y
@@ -93,58 +93,67 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha
** Define all data-types (http://www.gnu.org/software/bison/manual/html_node/Union-Decl.html)
*********************************/
%union {
- double fval;
- int64_t ival;
- char* sval;
+ bool bval;
+ char* sval;
+ double fval;
+ int64_t ival;
uintmax_t uval;
- bool bval;
-
- hsql::SQLStatement* statement;
- hsql::SelectStatement* select_stmt;
- hsql::ImportStatement* import_stmt;
- hsql::ExportStatement* export_stmt;
- hsql::CreateStatement* create_stmt;
- hsql::InsertStatement* insert_stmt;
- hsql::DeleteStatement* delete_stmt;
- hsql::UpdateStatement* update_stmt;
- hsql::DropStatement* drop_stmt;
- hsql::PrepareStatement* prep_stmt;
- hsql::ExecuteStatement* exec_stmt;
- hsql::ShowStatement* show_stmt;
- hsql::TransactionStatement* transaction_stmt;
- hsql::TableName table_name;
- hsql::TableRef* table;
- hsql::Expr* expr;
- hsql::OrderDescription* order;
- hsql::OrderType order_type;
- hsql::WithDescription* with_description_t;
- hsql::DatetimeField datetime_field;
- hsql::LimitDescription* limit;
- hsql::ColumnDefinition* column_t;
- hsql::ColumnType column_type_t;
- hsql::ImportType import_type_t;
+ // statements
+ hsql::AlterStatement* alter_stmt;
+ hsql::CreateStatement* create_stmt;
+ hsql::DeleteStatement* delete_stmt;
+ hsql::DropStatement* drop_stmt;
+ hsql::ExecuteStatement* exec_stmt;
+ hsql::ExportStatement* export_stmt;
+ hsql::ImportStatement* import_stmt;
+ hsql::InsertStatement* insert_stmt;
+ hsql::PrepareStatement* prep_stmt;
+ hsql::SelectStatement* select_stmt;
+ hsql::ShowStatement* show_stmt;
+ hsql::SQLStatement* statement;
+ hsql::TransactionStatement* transaction_stmt;
+ hsql::UpdateStatement* update_stmt;
+
+ hsql::Alias* alias_t;
+ hsql::AlterAction* alter_action_t;
+ hsql::ColumnDefinition* column_t;
+ hsql::ColumnSpecification column_specification_t;
+ hsql::ColumnType column_type_t;
+ hsql::ConstraintType column_constraint_t;
+ hsql::DatetimeField datetime_field;
+ hsql::DropColumnAction* drop_action_t;
+ hsql::Expr* expr;
hsql::GroupByDescription* group_t;
- hsql::UpdateClause* update_t;
- hsql::Alias* alias_t;
- hsql::SetOperation* set_operator_t;
-
- std::vector* stmt_vec;
-
- std::vector* str_vec;
- std::vector* table_vec;
- std::vector* column_vec;
- std::vector* update_vec;
- std::vector* expr_vec;
+ hsql::ImportType import_type_t;
+ hsql::JoinType join_type;
+ hsql::LimitDescription* limit;
+ hsql::OrderDescription* order;
+ hsql::OrderType order_type;
+ hsql::SetOperation* set_operator_t;
+ hsql::TableConstraint* table_constraint_t;
+ hsql::TableElement* table_element_t;
+ hsql::TableName table_name;
+ hsql::TableRef* table;
+ hsql::UpdateClause* update_t;
+ hsql::WithDescription* with_description_t;
+
+ std::vector* str_vec;
+ std::vector* column_constraint_vec;
+ std::vector* expr_vec;
std::vector* order_vec;
- std::vector* with_description_vec;
+ std::vector* stmt_vec;
+ std::vector* table_element_vec;
+ std::vector* table_vec;
+ std::vector* update_vec;
+ std::vector* with_description_vec;
}
/*********************************
** Destructor symbols
*********************************/
-%destructor { }
+%destructor { }
%destructor { free( ($$.name) ); free( ($$.schema) ); }
%destructor { free( ($$) ); }
%destructor {
@@ -154,7 +163,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha
}
}
delete ($$);
-}
+}
%destructor { delete ($$); } <*>
@@ -169,7 +178,7 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha
%token DEALLOCATE PARAMETERS INTERSECT TEMPORARY TIMESTAMP
%token DISTINCT NVARCHAR RESTRICT TRUNCATE ANALYZE BETWEEN
%token CASCADE COLUMNS CONTROL DEFAULT EXECUTE EXPLAIN
-%token INTEGER NATURAL PREPARE PRIMARY SCHEMAS
+%token INTEGER NATURAL PREPARE PRIMARY SCHEMAS CHARACTER VARYING REAL DECIMAL
%token SPATIAL VARCHAR VIRTUAL DESCRIBE BEFORE COLUMN CREATE DELETE DIRECT
%token DOUBLE ESCAPE EXCEPT EXISTS EXTRACT CAST FORMAT GLOBAL HAVING IMPORT
%token INSERT ISNULL OFFSET RENAME SCHEMA SELECT SORTED
@@ -188,59 +197,70 @@ int yyerror(YYLTYPE* llocp, SQLParserResult* result, yyscan_t scanner, const cha
/*********************************
** Non-Terminal types (http://www.gnu.org/software/bison/manual/html_node/Type-Decl.html)
*********************************/
-%type statement_list
-%type statement preparable_statement
-%type execute_statement
-%type transaction_statement
-%type prepare_statement
-%type select_statement select_with_paren select_no_paren select_clause select_within_set_operation select_within_set_operation_no_parentheses
-%type import_statement
-%type export_statement
-%type create_statement
-%type insert_statement
-%type delete_statement truncate_statement
-%type update_statement
-%type drop_statement
-%type show_statement
-%type table_name
-%type file_path prepare_target_query
-%type opt_not_exists opt_exists opt_distinct opt_column_nullable opt_all
-%type opt_join_type
-%type opt_from_clause from_clause table_ref table_ref_atomic table_ref_name nonjoin_table_ref_atomic
-%type join_clause table_ref_name_no_alias
-%type expr operand scalar_expr unary_expr binary_expr logic_expr exists_expr extract_expr cast_expr
-%type function_expr between_expr expr_alias param_expr
-%type column_name literal int_literal num_literal string_literal bool_literal date_literal interval_literal
-%type comp_expr opt_where join_condition opt_having case_expr case_list in_expr hint
-%type array_expr array_index null_literal
-%type opt_limit opt_top
-%type order_desc
-%type opt_order_type
-%type datetime_field datetime_field_plural duration_field
-%type column_def
-%type column_type
-%type update_clause
-%type opt_group
-%type opt_table_alias table_alias opt_alias alias
-%type with_description
-%type set_operator set_type
+%type statement_list
+%type statement preparable_statement
+%type execute_statement
+%type transaction_statement
+%type prepare_statement
+%type select_statement select_with_paren select_no_paren select_clause select_within_set_operation select_within_set_operation_no_parentheses
+%type import_statement
+%type export_statement
+%type create_statement
+%type insert_statement
+%type delete_statement truncate_statement
+%type update_statement
+%type drop_statement
+%type alter_statement
+%type show_statement
+%type table_name
+%type opt_index_name
+%type file_path prepare_target_query
+%type opt_not_exists opt_exists opt_distinct opt_all
+%type opt_decimal_specification
+%type opt_time_specification
+%type opt_join_type
+%type opt_from_clause from_clause table_ref table_ref_atomic table_ref_name nonjoin_table_ref_atomic
+%type join_clause table_ref_name_no_alias
+%type expr operand scalar_expr unary_expr binary_expr logic_expr exists_expr extract_expr cast_expr
+%type function_expr between_expr expr_alias param_expr
+%type column_name literal int_literal num_literal string_literal bool_literal date_literal interval_literal
+%type comp_expr opt_where join_condition opt_having case_expr case_list in_expr hint
+%type array_expr array_index null_literal
+%type opt_limit opt_top
+%type order_desc
+%type opt_order_type
+%type datetime_field datetime_field_plural duration_field
+%type column_def
+%type table_elem
+%type column_type
+%type table_constraint
+%type update_clause
+%type opt_group
+%type opt_table_alias table_alias opt_alias alias
+%type with_description
+%type set_operator set_type
+%type column_constraint
+%type column_constraint_list
+%type opt_column_constraints
+%type alter_action
+%type drop_action
// ImportType is used for compatibility reasons
-%type opt_file_type file_type
+%type opt_file_type file_type
-%type ident_commalist opt_column_list
-%type expr_list select_list opt_literal_list literal_list hint_list opt_hints
-%type table_ref_commalist
-%type opt_order order_list
-%type opt_with_clause with_clause with_description_list
-%type update_clause_commalist
-%type column_def_commalist
+%type ident_commalist opt_column_list
+%type expr_list select_list opt_literal_list literal_list hint_list opt_hints
+%type table_ref_commalist
+%type opt_order order_list
+%type opt_with_clause with_clause with_description_list
+%type update_clause_commalist
+%type table_elem_commalist
/******************************
** Token Precedence and Associativity
** Precedence: lowest to highest
******************************/
-%left OR
+%left OR
%left AND
%right NOT
%nonassoc '=' EQUALS NOTEQUALS LIKE ILIKE
@@ -331,6 +351,7 @@ preparable_statement:
| truncate_statement { $$ = $1; }
| update_statement { $$ = $1; }
| drop_statement { $$ = $1; }
+ | alter_statement { $$ = $1; }
| execute_statement { $$ = $1; }
| transaction_statement { $$ = $1; }
;
@@ -513,12 +534,13 @@ create_statement:
free($6);
$$->filePath = $8;
}
- | CREATE TABLE opt_not_exists table_name '(' column_def_commalist ')' {
+ | CREATE TABLE opt_not_exists table_name '(' table_elem_commalist ')' {
$$ = new CreateStatement(kCreateTable);
$$->ifNotExists = $3;
$$->schema = $4.schema;
$$->tableName = $4.name;
- $$->columns = $6;
+ $$->setColumnDefsAndConstraints($6);
+ delete $6;
}
| CREATE TABLE opt_not_exists table_name AS select_statement {
$$ = new CreateStatement(kCreateTable);
@@ -527,6 +549,13 @@ create_statement:
$$->tableName = $4.name;
$$->select = $6;
}
+ | CREATE INDEX opt_not_exists opt_index_name ON table_name '(' ident_commalist ')' {
+ $$ = new CreateStatement(kCreateIndex);
+ $$->indexName = $4;
+ $$->ifNotExists = $3;
+ $$->tableName = $6.name;
+ $$->indexColumns = $8;
+ }
| CREATE VIEW opt_not_exists table_name opt_column_list AS select_statement {
$$ = new CreateStatement(kCreateView);
$$->ifNotExists = $3;
@@ -542,35 +571,72 @@ opt_not_exists:
| /* empty */ { $$ = false; }
;
-column_def_commalist:
- column_def { $$ = new std::vector(); $$->push_back($1); }
- | column_def_commalist ',' column_def { $1->push_back($3); $$ = $1; }
- ;
+table_elem_commalist:
+ table_elem { $$ = new std::vector(); $$->push_back($1); }
+ | table_elem_commalist ',' table_elem { $1->push_back($3); $$ = $1; }
+ ;
+
+table_elem:
+ column_def { $$ = $1; }
+ | table_constraint { $$ = $1; }
+ ;
column_def:
- IDENTIFIER column_type opt_column_nullable {
+ IDENTIFIER column_type opt_column_constraints{
$$ = new ColumnDefinition($1, $2, $3);
+ $$->setNullableExplicit();
}
;
column_type:
- INT { $$ = ColumnType{DataType::INT}; }
- | INTEGER { $$ = ColumnType{DataType::INT}; }
- | LONG { $$ = ColumnType{DataType::LONG}; }
- | FLOAT { $$ = ColumnType{DataType::FLOAT}; }
- | DOUBLE { $$ = ColumnType{DataType::DOUBLE}; }
- | VARCHAR '(' INTVAL ')' { $$ = ColumnType{DataType::VARCHAR, $3}; }
- | CHAR '(' INTVAL ')' { $$ = ColumnType{DataType::CHAR, $3}; }
- | TEXT { $$ = ColumnType{DataType::TEXT}; }
- | DATETIME { $$ = ColumnType{DataType::DATETIME}; }
- | DATE { $$ = ColumnType{DataType::DATE}; }
- ;
-
-opt_column_nullable:
- NULL { $$ = true; }
- | NOT NULL { $$ = false; }
- | /* empty */ { $$ = false; }
- ;
+ INT { $$ = ColumnType{DataType::INT}; }
+ | INTEGER { $$ = ColumnType{DataType::INT}; }
+ | LONG { $$ = ColumnType{DataType::LONG}; }
+ | FLOAT { $$ = ColumnType{DataType::FLOAT}; }
+ | DECIMAL opt_decimal_specification { $$ = ColumnType{DataType::DECIMAL, 0, $2}; }
+ | DOUBLE { $$ = ColumnType{DataType::DOUBLE}; }
+ | REAL { $$ = ColumnType{DataType::REAL}; }
+ | VARCHAR '(' INTVAL ')' { $$ = ColumnType{DataType::VARCHAR, $3}; }
+ | CHARACTER VARYING'(' INTVAL ')' { $$ = ColumnType{DataType::VARCHAR, $4}; }
+ | CHAR '(' INTVAL ')' { $$ = ColumnType{DataType::CHAR, $3}; }
+ | TEXT { $$ = ColumnType{DataType::TEXT}; }
+ | TIME opt_time_specification { $$ = ColumnType{DataType::TIME, 0, $2 }; }
+ | DATETIME { $$ = ColumnType{DataType::DATETIME}; }
+ | DATE { $$ = ColumnType{DataType::DATE}; }
+ ;
+
+opt_time_specification:
+ '(' INTVAL ')' { $$ = ColumnSpecification{$2}; }
+ | /* empty */ { $$ = ColumnSpecification{}; }
+ ;
+
+opt_decimal_specification:
+ '(' INTVAL ',' INTVAL ')' { $$ = ColumnSpecification{$2, $4}; }
+ | '(' INTVAL ')' { $$ = ColumnSpecification{$2}; }
+ | /* empty */ { $$ = ColumnSpecification{}; }
+ ;
+
+opt_column_constraints:
+ column_constraint_list { $$ = $1; }
+ | /* empty */ { $$ = new std::vector(); }
+ ;
+
+column_constraint_list:
+ column_constraint { $$ = new std::vector(); $$->push_back($1); }
+ | column_constraint_list column_constraint { $1->push_back($2); $$ = $1; }
+
+column_constraint:
+ PRIMARY KEY { $$ = ConstraintType::PrimaryKey; }
+ | UNIQUE { $$ = ConstraintType::Unique; }
+ | NULL { $$ = ConstraintType::Null; }
+ | NOT NULL { $$ = ConstraintType::NotNull; }
+ ;
+
+table_constraint:
+ PRIMARY KEY '(' ident_commalist ')' { $$ = new TableConstraint(ConstraintType::PrimaryKey, $4); }
+ | UNIQUE '(' ident_commalist ')' { $$ = new TableConstraint(ConstraintType::Unique, $3); }
+ ;
+
/******************************
* Drop Statement
@@ -596,6 +662,12 @@ drop_statement:
$$->ifExists = false;
$$->name = $3;
}
+
+ | DROP INDEX opt_exists IDENTIFIER {
+ $$ = new DropStatement(kDropIndex);
+ $$->ifExists = $3;
+ $$->indexName = $4;
+ }
;
opt_exists:
@@ -603,6 +675,29 @@ opt_exists:
| /* empty */ { $$ = false; }
;
+/******************************
+ * ALTER Statement
+ * ALTER TABLE students DROP COLUMN name;
+ ******************************/
+
+alter_statement:
+ ALTER TABLE opt_exists table_name alter_action {
+ $$ = new AlterStatement($4.name, $5);
+ $$->ifTableExists = $3;
+ $$->schema = $4.schema;
+ }
+ ;
+
+alter_action:
+ drop_action {$$ = $1;}
+
+drop_action:
+ DROP COLUMN opt_exists IDENTIFIER {
+ $$ = new DropColumnAction($4);
+ $$->ifExists = $3;
+ }
+ ;
+
/******************************
* Delete Statement / Truncate statement
* DELETE FROM students WHERE grade > 3.0
@@ -1201,6 +1296,10 @@ table_name:
| IDENTIFIER '.' IDENTIFIER { $$.schema = $1; $$.name = $3; }
;
+opt_index_name:
+ IDENTIFIER { $$ = $1;}
+ | /* empty */ { $$ = nullptr;}
+ ;
table_alias:
alias
diff --git a/src/parser/flex_lexer.cpp b/src/parser/flex_lexer.cpp
index 6f62fb98..a7e62633 100644
--- a/src/parser/flex_lexer.cpp
+++ b/src/parser/flex_lexer.cpp
@@ -1,6 +1,6 @@
-#line 2 "flex_lexer.cpp"
+#line 1 "flex_lexer.cpp"
-#line 4 "flex_lexer.cpp"
+#line 3 "flex_lexer.cpp"
#define YY_INT_ALIGNED short int
@@ -573,8 +573,8 @@ static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
yyg->yy_hold_char = *yy_cp; \
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 166
-#define YY_END_OF_BUFFER 167
+#define YY_NUM_RULES 171
+#define YY_END_OF_BUFFER 172
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -582,27 +582,27 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static const flex_int16_t yy_accept[1138] =
+static const flex_int16_t yy_accept[1170] =
{ 0,
- 0, 0, 163, 163, 2, 2, 167, 165, 4, 4,
- 165, 165, 154, 161, 154, 154, 158, 154, 154, 154,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 154, 163, 164, 2, 2, 3,
+ 0, 0, 168, 168, 2, 2, 172, 170, 4, 4,
+ 170, 170, 159, 166, 159, 159, 163, 159, 159, 159,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 159, 168, 169, 2, 2, 3,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 4, 149, 0, 1, 0,
- 156, 155, 158, 151, 150, 148, 152, 160, 160, 160,
-
- 160, 160, 160, 120, 160, 121, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 122, 160, 160, 123, 124, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 125, 126, 127,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 128, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 153, 163, 162, 2,
+ 2, 2, 2, 2, 2, 4, 154, 0, 1, 0,
+ 161, 160, 163, 156, 155, 153, 157, 165, 165, 165,
+
+ 165, 165, 165, 125, 165, 126, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 127, 165, 165, 128, 129, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 130, 131, 132,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 133, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 158, 168, 167, 2,
2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -613,19 +613,19 @@ static const flex_int16_t yy_accept[1138] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 159, 0, 155, 108, 160, 109, 160, 160,
- 110, 160, 111, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 132, 160, 160, 160,
-
- 160, 160, 160, 160, 160, 160, 112, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 113, 160, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 114, 160, 160, 115, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 116, 160, 160, 117, 160, 160,
- 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 118, 160, 160, 160, 160, 160, 160, 160, 160,
- 119, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 160, 160, 160, 2, 2, 2, 2, 2, 2,
+ 2, 2, 164, 0, 160, 113, 165, 114, 165, 165,
+ 115, 165, 116, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 137, 165, 165, 165,
+
+ 165, 165, 165, 165, 165, 165, 165, 117, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 118, 165, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 119, 165, 165, 120, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 121, 165, 165, 122, 165,
+ 165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 123, 165, 165, 165, 165, 165, 165,
+ 165, 165, 124, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 165, 165, 165, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -637,21 +637,21 @@ static const flex_int16_t yy_accept[1138] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 0, 160, 160, 160,
-
- 160, 160, 160, 160, 78, 160, 79, 41, 80, 160,
- 160, 160, 81, 160, 160, 82, 138, 160, 160, 160,
- 160, 84, 160, 160, 160, 85, 86, 160, 160, 160,
- 160, 160, 160, 160, 87, 160, 160, 88, 89, 160,
- 160, 90, 160, 91, 131, 160, 160, 160, 160, 160,
- 160, 92, 160, 93, 94, 95, 160, 97, 160, 98,
- 160, 160, 160, 160, 99, 160, 160, 160, 160, 160,
- 100, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 101, 160, 160, 160, 160, 102, 103, 104, 160, 141,
- 160, 160, 160, 160, 160, 160, 160, 160, 105, 160,
-
- 106, 160, 107, 134, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+
+ 0, 165, 165, 165, 165, 165, 165, 165, 83, 165,
+ 84, 46, 85, 165, 165, 165, 86, 165, 165, 87,
+ 143, 165, 165, 165, 165, 165, 89, 165, 165, 165,
+ 90, 91, 165, 165, 165, 165, 165, 165, 165, 92,
+ 165, 165, 93, 94, 165, 165, 95, 165, 96, 136,
+ 165, 165, 165, 165, 165, 165, 97, 165, 98, 99,
+ 100, 165, 102, 165, 103, 165, 165, 165, 165, 104,
+ 165, 165, 165, 165, 165, 105, 165, 165, 34, 165,
+ 165, 165, 165, 165, 165, 165, 106, 165, 165, 165,
+ 165, 107, 108, 32, 165, 146, 165, 165, 165, 165,
+
+ 165, 165, 165, 165, 165, 110, 165, 111, 165, 112,
+ 139, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -662,16 +662,17 @@ static const flex_int16_t yy_accept[1138] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 0, 58, 59, 160, 60, 160, 144, 160,
- 160, 160, 160, 160, 160, 61, 160, 160, 160, 160,
- 62, 160, 160, 160, 160, 160, 160, 160, 160, 160,
- 160, 142, 63, 160, 160, 64, 160, 137, 96, 160,
- 65, 66, 160, 160, 160, 160, 67, 68, 69, 70,
- 160, 133, 160, 160, 160, 71, 72, 160, 160, 160,
- 160, 160, 73, 160, 160, 160, 160, 160, 160, 74,
- 160, 160, 160, 160, 75, 160, 160, 160, 76, 160,
- 160, 160, 77, 140, 2, 2, 2, 2, 2, 2,
-
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 0, 63, 64, 165, 65, 165, 149, 165,
+ 165, 165, 165, 165, 165, 165, 66, 165, 165, 165,
+ 165, 165, 67, 165, 165, 165, 165, 165, 165, 165,
+ 165, 165, 165, 147, 68, 165, 165, 69, 165, 142,
+ 101, 165, 70, 71, 165, 165, 165, 165, 72, 73,
+ 74, 75, 165, 138, 165, 165, 165, 76, 77, 165,
+ 165, 165, 165, 165, 78, 165, 165, 165, 165, 165,
+ 165, 79, 165, 165, 165, 165, 80, 165, 165, 165,
+
+ 81, 165, 165, 165, 165, 82, 145, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -679,36 +680,38 @@ static const flex_int16_t yy_accept[1138] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 0, 160, 31, 160,
- 160, 32, 146, 160, 33, 160, 160, 160, 34, 160,
- 35, 160, 36, 37, 38, 160, 39, 160, 160, 42,
-
- 43, 44, 45, 46, 160, 160, 160, 47, 130, 139,
- 160, 160, 48, 160, 160, 160, 49, 160, 160, 50,
- 129, 51, 52, 160, 53, 160, 160, 160, 160, 54,
- 55, 56, 57, 160, 160, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 0, 165, 36, 165, 165, 165, 37, 151,
+
+ 165, 38, 165, 165, 165, 165, 39, 165, 40, 165,
+ 41, 42, 43, 165, 44, 165, 165, 47, 48, 49,
+ 50, 51, 165, 165, 165, 52, 135, 144, 165, 165,
+ 53, 165, 165, 165, 54, 165, 165, 55, 134, 56,
+ 57, 165, 58, 165, 165, 165, 165, 59, 60, 61,
+ 62, 165, 165, 165, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 0, 15, 16, 17, 18, 19,
- 160, 160, 20, 160, 160, 21, 22, 40, 23, 160,
- 160, 136, 24, 160, 160, 25, 26, 160, 160, 27,
- 135, 28, 160, 160, 160, 160, 29, 30, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 0, 15, 16, 17,
+ 165, 18, 19, 165, 165, 33, 20, 165, 165, 21,
+ 22, 45, 23, 165, 165, 141, 24, 165, 165, 25,
+ 26, 165, 165, 27, 140, 28, 165, 165, 165, 165,
+ 29, 31, 35, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 0, 83, 160, 10, 11, 160, 147, 12,
- 160, 13, 145, 160, 160, 160, 14, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 0, 160, 7, 160, 8, 9, 160, 2,
+ 0, 165, 88, 165, 10, 11, 165, 152, 12, 165,
- 2, 2, 2, 2, 2, 2, 0, 5, 6, 160,
- 2, 2, 2, 2, 0, 143, 2, 2, 0, 2,
+ 13, 150, 165, 165, 165, 14, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 0, 30, 165, 7, 165, 8, 9, 165,
+ 2, 2, 2, 2, 2, 2, 2, 2, 0, 5,
+ 6, 165, 2, 2, 2, 2, 0, 148, 2, 2,
0, 2, 0, 2, 0, 2, 0, 2, 0, 2,
- 0, 2, 0, 2, 157, 2, 0
+ 0, 2, 0, 2, 0, 2, 162, 2, 0
} ;
static const YY_CHAR yy_ec[256] =
@@ -755,159 +758,162 @@ static const YY_CHAR yy_meta[77] =
5, 5, 5, 5, 5, 1
} ;
-static const flex_int16_t yy_base[1145] =
+static const flex_int16_t yy_base[1177] =
{ 0,
- 0, 0, 709, 681, 76, 0, 668, 4550, 151, 153,
- 643, 0, 4550, 4550, 149, 148, 160, 159, 625, 619,
+ 0, 0, 720, 709, 76, 0, 688, 4686, 151, 153,
+ 647, 0, 4686, 4686, 149, 148, 160, 159, 643, 625,
156, 156, 164, 162, 172, 223, 198, 211, 215, 151,
168, 210, 255, 257, 263, 262, 0, 277, 307, 350,
- 284, 221, 258, 171, 540, 0, 600, 0, 295, 308,
- 561, 576, 0, 0, 331, 408, 419, 321, 542, 512,
+ 284, 221, 258, 171, 564, 0, 609, 0, 295, 308,
+ 586, 576, 0, 0, 331, 408, 419, 321, 542, 512,
438, 514, 568, 620, 668, 720, 328, 426, 768, 329,
311, 434, 500, 820, 868, 505, 421, 513, 918, 970,
- 515, 570, 455, 423, 450, 351, 4550, 520, 4550, 512,
- 1035, 1045, 1056, 4550, 4550, 4550, 4550, 0, 174, 282,
+ 515, 570, 455, 423, 450, 351, 4686, 520, 4686, 512,
+ 1035, 1045, 1056, 4686, 4686, 4686, 4686, 0, 174, 282,
336, 520, 296, 315, 557, 0, 345, 334, 568, 511,
- 327, 611, 569, 345, 419, 421, 441, 444, 631, 469,
- 515, 520, 552, 557, 562, 563, 574, 609, 578, 605,
- 0, 618, 616, 665, 619, 628, 616, 637, 664, 685,
- 631, 657, 667, 663, 669, 678, 690, 689, 0, 693,
- 681, 685, 722, 722, 720, 726, 724, 729, 737, 727,
- 725, 743, 749, 762, 772, 766, 767, 784, 779, 785,
- 781, 785, 818, 787, 775, 798, 4550, 0, 4550, 0,
+ 327, 611, 570, 345, 419, 421, 441, 444, 631, 469,
+ 515, 520, 542, 555, 560, 559, 563, 609, 578, 605,
+ 0, 618, 616, 665, 619, 628, 618, 643, 664, 685,
+ 650, 657, 667, 663, 669, 678, 690, 691, 0, 697,
+ 683, 704, 722, 722, 750, 726, 722, 728, 764, 724,
+ 725, 743, 773, 764, 774, 770, 769, 796, 777, 788,
+ 786, 787, 818, 822, 808, 828, 4686, 0, 4686, 0,
389, 0, 512, 0, 499, 1066, 1076, 1087, 0, 0,
- 0, 0, 806, 824, 855, 859, 913, 860, 878, 922,
-
- 872, 961, 962, 1080, 957, 1081, 1133, 1084, 1083, 1085,
- 1121, 1137, 1119, 1187, 952, 1145, 1149, 1170, 1189, 1181,
- 1193, 1211, 1227, 1223, 1219, 1222, 1233, 1245, 1294, 1275,
- 1285, 1277, 1290, 1307, 1347, 1306, 1339, 1349, 1362, 1364,
- 1361, 1397, 1398, 1360, 1401, 1414, 1392, 1435, 1433, 1443,
- 1447, 1465, 1451, 1468, 1403, 1487, 1501, 1489, 1503, 1505,
- 1531, 1506, 1541, 1555, 1520, 1556, 1572, 1577, 1554, 1580,
- 1598, 0, 4550, 498, 1645, 0, 822, 0, 829, 827,
- 0, 839, 0, 828, 879, 872, 907, 1640, 907, 910,
- 919, 929, 956, 982, 973, 1082, 1072, 1086, 1154, 1323,
-
- 1153, 1155, 1158, 1227, 1241, 1255, 0, 1265, 1273, 1300,
- 1287, 1337, 1338, 1349, 1415, 1450, 1461, 1469, 1484, 1511,
- 1526, 1540, 1589, 1581, 1601, 1609, 1606, 1626, 1639, 1644,
- 1646, 1631, 1639, 0, 1634, 1650, 1647, 1653, 1658, 1655,
- 1656, 1643, 1645, 1645, 0, 1655, 1650, 1650, 1668, 1669,
- 1674, 1663, 1669, 1684, 1697, 1679, 1695, 1693, 1701, 1692,
- 1703, 0, 1686, 1690, 1691, 1701, 1698, 1695, 1702, 1712,
- 0, 1704, 1714, 1705, 1706, 1722, 1713, 1708, 1728, 1716,
- 1731, 1739, 1744, 1741, 0, 495, 1779, 1756, 1757, 1758,
- 1760, 1782, 1772, 1790, 1788, 1791, 1794, 1806, 1820, 1844,
-
- 1823, 1845, 1848, 1858, 1857, 1893, 1860, 1876, 1894, 1890,
- 1902, 1911, 1930, 1912, 1927, 1936, 1951, 1945, 1946, 1968,
- 1967, 1981, 1970, 1996, 1999, 2004, 1980, 2009, 2013, 2034,
- 2037, 2038, 2047, 2050, 2055, 2068, 2076, 2072, 2091, 2073,
- 2087, 2104, 2112, 2109, 2117, 2113, 2127, 2121, 2146, 2158,
- 2167, 2179, 2180, 2145, 2171, 2195, 2176, 2197, 2212, 2216,
- 2201, 2220, 2233, 2241, 2235, 2258, 2249, 2264, 2283, 2274,
- 2270, 2289, 2275, 2287, 2300, 2304, 2323, 2328, 2329, 2337,
- 2333, 2312, 2341, 2354, 2373, 2377, 2385, 2398, 2383, 2386,
- 2417, 2408, 2423, 2427, 2431, 2439, 491, 1782, 1799, 1832,
-
- 1835, 1921, 1939, 2022, 0, 2029, 0, 0, 0, 2071,
- 2104, 2130, 0, 2147, 2161, 2168, 0, 2258, 2255, 2329,
- 2376, 2428, 2448, 2444, 2442, 0, 0, 2445, 2446, 2444,
- 2447, 2473, 2475, 2472, 0, 2462, 2484, 0, 0, 2485,
- 2471, 0, 2476, 0, 2474, 2490, 2478, 2473, 2480, 2481,
- 2493, 0, 2490, 0, 0, 0, 2485, 0, 2494, 0,
- 2502, 2496, 2500, 2492, 0, 2515, 2514, 2503, 2510, 2517,
- 0, 2530, 2535, 2526, 2522, 2521, 2542, 2534, 2535, 2547,
- 0, 2546, 2543, 2548, 2539, 0, 0, 2537, 2540, 0,
- 2557, 2547, 2541, 2563, 2545, 2562, 2565, 2564, 0, 2552,
-
- 0, 2570, 0, 2563, 474, 2580, 2585, 2579, 2588, 2589,
- 2601, 2603, 2611, 2622, 2613, 2614, 2619, 2643, 2652, 2644,
- 2647, 2653, 2662, 2677, 2681, 2686, 2696, 2687, 2715, 2705,
- 2746, 2727, 2730, 2721, 2736, 2740, 2759, 2749, 2775, 2784,
- 2785, 2789, 2794, 2798, 2803, 2800, 2815, 2828, 2833, 2819,
- 2829, 2834, 2843, 2852, 2869, 2858, 2873, 2874, 2895, 2883,
- 2891, 2892, 2906, 2907, 2917, 2923, 2929, 2928, 2931, 2946,
- 2962, 2971, 2947, 2979, 2980, 2983, 2995, 2997, 3001, 3016,
- 3029, 3033, 3034, 3031, 3062, 3037, 3070, 3067, 3071, 3075,
- 3096, 3083, 3101, 3085, 3088, 3093, 3119, 3104, 3144, 3136,
-
- 3141, 3153, 3147, 3150, 3155, 3178, 3165, 3187, 3186, 3190,
- 3195, 3204, 442, 0, 0, 2569, 0, 2726, 0, 2755,
- 2762, 2801, 2926, 2935, 2986, 0, 3046, 3089, 3186, 3196,
- 0, 3195, 3186, 3200, 3211, 3216, 3204, 3206, 3213, 3225,
- 3234, 0, 0, 3220, 3232, 0, 3238, 0, 0, 3226,
- 0, 0, 3229, 3247, 3235, 3243, 0, 0, 0, 0,
- 3253, 3241, 3261, 3255, 3245, 0, 0, 3261, 3250, 3251,
- 3265, 3265, 0, 3274, 3276, 3274, 3260, 3279, 3285, 3269,
- 3273, 3274, 3297, 3298, 0, 3295, 3299, 3301, 0, 3289,
- 3308, 3310, 0, 0, 441, 3307, 3309, 3317, 3312, 3315,
-
- 3323, 3326, 3341, 3349, 3351, 3372, 3357, 3360, 3375, 3381,
- 3383, 3394, 3400, 3411, 3424, 3416, 3413, 3426, 3434, 3435,
- 3445, 3464, 3469, 3470, 3478, 3487, 3493, 3479, 3483, 3488,
- 3501, 3504, 3518, 3522, 3532, 3523, 3541, 3537, 3533, 3536,
- 3566, 3567, 3572, 3575, 3577, 3578, 3576, 3590, 3601, 3606,
- 3607, 3629, 3611, 3632, 3630, 3644, 3645, 3661, 3655, 3674,
- 3666, 3684, 3683, 3699, 3709, 3720, 3695, 3707, 3718, 3728,
- 3733, 3737, 3739, 3772, 3749, 3750, 435, 3318, 0, 3338,
- 3405, 3415, 0, 3441, 0, 3604, 3653, 3670, 0, 3755,
- 0, 3760, 0, 0, 0, 3761, 0, 3754, 3756, 0,
-
- 0, 0, 0, 0, 3760, 3774, 3785, 0, 3768, 0,
- 3776, 3791, 0, 3774, 3791, 3773, 0, 3796, 3804, 3789,
- 3790, 0, 0, 3798, 0, 3810, 3811, 3813, 3797, 0,
- 0, 0, 0, 3800, 3808, 434, 3817, 3823, 3826, 3825,
- 3827, 3828, 3849, 3851, 3857, 3860, 3866, 3879, 3891, 3882,
- 3897, 3894, 3900, 3903, 3905, 3916, 3919, 3933, 3931, 3934,
- 3937, 3942, 3945, 3970, 3959, 3971, 3968, 3973, 3976, 4001,
- 4009, 3999, 4007, 4004, 4013, 4025, 4039, 4043, 4030, 4047,
- 4038, 4042, 4073, 4055, 4083, 4091, 4097, 4081, 4078, 4092,
- 4109, 4113, 4121, 4135, 429, 0, 0, 0, 0, 0,
-
- 3836, 3989, 0, 4099, 4089, 0, 0, 0, 0, 4118,
- 4120, 0, 0, 4119, 4137, 0, 0, 4130, 4140, 0,
- 0, 0, 4134, 4141, 4135, 4151, 0, 0, 404, 4163,
- 4165, 4166, 4167, 4171, 4175, 4184, 4179, 4181, 4200, 4189,
- 4197, 4203, 4205, 4221, 4233, 4229, 4234, 4238, 4235, 4237,
- 4239, 4272, 4263, 4271, 4273, 4274, 4275, 4289, 4308, 4305,
- 4306, 4307, 402, 0, 4228, 0, 0, 4262, 0, 0,
- 4290, 0, 0, 4291, 4301, 4309, 0, 401, 4317, 4331,
- 4329, 4341, 4342, 4343, 4345, 4347, 4359, 4371, 4375, 4385,
- 4377, 4380, 397, 4366, 0, 4368, 0, 0, 4373, 396,
-
- 4399, 4401, 4411, 4413, 4414, 4429, 383, 0, 0, 4394,
- 382, 4415, 4416, 4444, 376, 0, 342, 4445, 333, 331,
- 303, 291, 278, 255, 250, 245, 243, 240, 235, 221,
- 226, 197, 187, 173, 4550, 0, 4550, 4519, 4524, 181,
- 4529, 4534, 4539, 4544
+ 0, 0, 826, 835, 856, 859, 913, 887, 872, 922,
+
+ 905, 961, 962, 1080, 957, 1081, 1133, 1085, 1119, 1083,
+ 1097, 1122, 1143, 1193, 1145, 1175, 1178, 959, 1196, 1187,
+ 1217, 1219, 1228, 1232, 1183, 1137, 1247, 1238, 1296, 1253,
+ 1257, 1270, 1281, 1306, 1331, 1335, 1298, 1350, 1346, 1349,
+ 1365, 1383, 1380, 1374, 1405, 1402, 1413, 1415, 1414, 1450,
+ 1454, 1448, 1469, 1478, 1480, 1502, 1508, 1513, 1524, 1389,
+ 1518, 1519, 1552, 1554, 1563, 1573, 1596, 1567, 1467, 1591,
+ 1602, 0, 4686, 498, 1667, 0, 825, 0, 833, 831,
+ 0, 852, 0, 880, 916, 908, 937, 1619, 963, 962,
+ 979, 1067, 1066, 1154, 1140, 1159, 1159, 1178, 1232, 1264,
+
+ 1315, 1288, 1292, 1278, 1339, 1333, 1360, 0, 1372, 1420,
+ 1426, 1425, 1450, 1452, 1465, 1509, 1527, 1570, 1578, 1590,
+ 1611, 1596, 1612, 1617, 1622, 1627, 1635, 1635, 1647, 1660,
+ 1662, 1663, 1649, 1657, 0, 1654, 1670, 1667, 1676, 1680,
+ 1675, 1676, 1663, 1665, 1665, 0, 1675, 1670, 1670, 1685,
+ 1686, 1692, 1682, 1683, 1687, 1692, 1705, 1699, 1713, 1710,
+ 1719, 1710, 1723, 0, 1706, 1710, 1712, 1722, 1719, 1716,
+ 1723, 1733, 0, 1725, 1736, 1725, 1728, 1743, 1731, 1726,
+ 1750, 1731, 1738, 1764, 1752, 1755, 0, 495, 1800, 1774,
+ 1778, 1779, 1793, 1796, 1802, 1811, 1808, 1817, 1832, 1833,
+
+ 1841, 1847, 1856, 1850, 1865, 1871, 1881, 1899, 1890, 1882,
+ 1907, 1916, 1920, 1915, 1941, 1932, 1933, 1949, 1958, 1966,
+ 1945, 1970, 1975, 1974, 1989, 2006, 2003, 2011, 2015, 2007,
+ 2032, 2040, 2041, 2057, 2046, 2065, 2069, 2074, 2080, 2090,
+ 2109, 2113, 2098, 2111, 2114, 2139, 2128, 2126, 2143, 2152,
+ 2154, 2164, 2178, 2169, 2180, 2183, 2197, 2206, 2202, 2188,
+ 2231, 2219, 2214, 2223, 2236, 2264, 2262, 2268, 2272, 2247,
+ 2273, 2290, 2301, 2316, 2302, 2314, 2313, 2318, 2326, 2327,
+ 2352, 2355, 2357, 2366, 2376, 2370, 2378, 2391, 2401, 2414,
+ 2409, 2420, 2422, 2439, 2452, 2444, 2460, 2465, 2470, 2468,
+
+ 491, 1799, 1802, 1799, 1837, 1874, 1964, 1981, 0, 2016,
+ 0, 0, 2022, 2036, 2093, 2107, 0, 2178, 2262, 2270,
+ 0, 2301, 2348, 2364, 2373, 2410, 2417, 2478, 2479, 2477,
+ 0, 0, 2482, 2483, 2480, 2483, 2508, 2510, 2509, 0,
+ 2498, 2518, 0, 0, 2520, 2507, 0, 2510, 0, 2508,
+ 2524, 2513, 2508, 2515, 2516, 2535, 0, 2523, 0, 0,
+ 0, 2517, 0, 2527, 0, 2535, 2524, 2539, 2531, 0,
+ 2549, 2550, 2539, 2545, 2552, 0, 2567, 2571, 0, 2560,
+ 2557, 2557, 2576, 2568, 2569, 2582, 0, 2581, 2578, 2583,
+ 2574, 0, 0, 2572, 2574, 0, 2591, 2582, 2576, 2597,
+
+ 2581, 2596, 2601, 2599, 2600, 0, 2590, 0, 2612, 0,
+ 2600, 474, 2617, 2622, 2626, 2627, 2632, 2651, 2636, 2638,
+ 2670, 2648, 2661, 2680, 2684, 2682, 2701, 2696, 2705, 2710,
+ 2718, 2715, 2739, 2736, 2734, 2749, 2772, 2767, 2784, 2770,
+ 2778, 2788, 2793, 2810, 2816, 2802, 2824, 2832, 2838, 2806,
+ 2842, 2860, 2850, 2847, 2856, 2868, 2881, 2878, 2884, 2886,
+ 2896, 2909, 2914, 2926, 2922, 2938, 2950, 2912, 2940, 2944,
+ 2948, 2966, 2981, 2980, 2982, 2983, 2984, 3005, 3014, 3022,
+ 3006, 3038, 3037, 3054, 3055, 3051, 3050, 3060, 3076, 3073,
+ 3104, 3105, 3106, 3114, 3108, 3110, 3129, 3140, 3142, 3159,
+
+ 3144, 3158, 3150, 3172, 3174, 3182, 3173, 3183, 3198, 3211,
+ 3216, 3213, 3222, 3217, 3232, 3246, 3241, 3256, 3247, 3265,
+ 3270, 3275, 442, 0, 0, 2619, 0, 2650, 0, 2699,
+ 2873, 2892, 2921, 2973, 2984, 3012, 0, 3014, 3078, 3094,
+ 3102, 3226, 0, 3253, 3256, 3269, 3280, 3281, 3267, 3271,
+ 3273, 3287, 3298, 0, 0, 3285, 3294, 0, 3302, 0,
+ 0, 3291, 0, 0, 3295, 3311, 3307, 3308, 0, 0,
+ 0, 0, 3319, 3306, 3329, 3323, 3314, 0, 0, 3330,
+ 3319, 3321, 3335, 3332, 0, 3343, 3344, 3342, 3328, 3345,
+ 3349, 3335, 3337, 3339, 3359, 3362, 0, 3360, 3365, 3365,
+
+ 0, 3355, 3377, 3365, 3379, 0, 0, 441, 3378, 3379,
+ 3383, 3388, 3389, 3393, 3394, 3412, 3397, 3428, 3427, 3423,
+ 3429, 3445, 3453, 3451, 3462, 3479, 3463, 3467, 3477, 3496,
+ 3512, 3495, 3507, 3520, 3529, 3531, 3533, 3530, 3541, 3546,
+ 3569, 3563, 3565, 3579, 3574, 3575, 3598, 3587, 3600, 3604,
+ 3603, 3615, 3637, 3628, 3633, 3638, 3641, 3643, 3652, 3677,
+ 3678, 3667, 3649, 3683, 3686, 3702, 3707, 3691, 3712, 3701,
+ 3735, 3740, 3745, 3726, 3757, 3770, 3761, 3776, 3779, 3778,
+ 3795, 3780, 3809, 3811, 3812, 3813, 3814, 3824, 3843, 3849,
+ 3830, 3846, 435, 3380, 0, 3410, 3466, 3476, 3511, 0,
+
+ 3575, 0, 3684, 3725, 3730, 3820, 0, 3851, 0, 3855,
+ 0, 0, 0, 3854, 0, 3855, 3850, 0, 0, 0,
+ 0, 0, 3854, 3868, 3878, 0, 3864, 0, 3875, 3887,
+ 0, 3869, 3885, 3866, 0, 3889, 3890, 3875, 3883, 0,
+ 0, 3891, 0, 3903, 3904, 3904, 3888, 0, 0, 0,
+ 0, 3891, 3904, 3900, 434, 3908, 3917, 3923, 3918, 3921,
+ 3940, 3919, 3942, 3951, 3953, 3974, 3975, 3977, 3983, 3993,
+ 3985, 4008, 3991, 3996, 4007, 4025, 4026, 4039, 4029, 4031,
+ 4037, 4041, 4042, 4047, 4050, 4060, 4083, 4065, 4081, 4082,
+ 4091, 4100, 4099, 4116, 4113, 4114, 4115, 4139, 4150, 4151,
+
+ 4153, 4149, 4152, 4181, 4182, 4187, 4193, 4205, 4191, 4204,
+ 4217, 4219, 4221, 4222, 4243, 4247, 429, 0, 0, 0,
+ 3920, 0, 0, 3952, 3961, 0, 0, 4105, 4102, 0,
+ 0, 0, 0, 4159, 4161, 0, 0, 4172, 4223, 0,
+ 0, 4211, 4249, 0, 0, 0, 4243, 4249, 4243, 4259,
+ 0, 0, 0, 404, 4260, 4271, 4273, 4275, 4276, 4277,
+ 4279, 4292, 4289, 4301, 4305, 4314, 4310, 4311, 4313, 4327,
+ 4344, 4343, 4335, 4345, 4346, 4367, 4368, 4376, 4384, 4400,
+ 4378, 4381, 4389, 4397, 4421, 4419, 4418, 4422, 4430, 4432,
+ 402, 4340, 0, 4360, 0, 0, 4370, 0, 0, 4400,
+
+ 0, 0, 4415, 4432, 4447, 0, 401, 4454, 4453, 4471,
+ 4455, 4463, 4472, 4476, 4484, 4495, 4485, 4489, 4497, 4526,
+ 4521, 4507, 397, 0, 4493, 0, 4492, 0, 0, 4518,
+ 396, 4529, 4530, 4538, 4547, 4539, 4543, 4562, 383, 0,
+ 0, 4542, 382, 4560, 4571, 4575, 376, 0, 342, 4581,
+ 333, 331, 303, 291, 278, 255, 250, 245, 243, 240,
+ 235, 221, 226, 197, 187, 173, 4686, 0, 4686, 4655,
+ 4660, 181, 4665, 4670, 4675, 4680
} ;
-static const flex_int16_t yy_def[1145] =
+static const flex_int16_t yy_def[1177] =
{ 0,
- 1137, 1, 1138, 1138, 1137, 5, 1137, 1137, 1137, 1137,
- 1137, 1139, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1137, 1141, 1137, 1142, 1142, 1137,
- 1142, 1143, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
- 1144, 1144, 62, 62, 62, 62, 62, 62, 62, 62,
+ 1169, 1, 1170, 1170, 1169, 5, 1169, 1169, 1169, 1169,
+ 1169, 1171, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1169, 1173, 1169, 1174, 1174, 1169,
+ 1174, 1175, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174,
+ 1176, 1176, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 1142, 1137, 1137, 1139, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1140, 1140, 1140,
-
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1137, 1141, 1137, 1142,
- 1142, 1142, 1143, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
- 1142, 1142, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 1174, 1169, 1169, 1171, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1172, 1172, 1172,
+
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1169, 1173, 1169, 1174,
+ 1174, 1174, 1175, 1174, 1174, 1174, 1174, 1174, 1174, 1174,
+ 1174, 1174, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
@@ -916,19 +922,19 @@ static const flex_int16_t yy_def[1145] =
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 1142, 1137, 1137, 1137, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
-
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1142, 1142, 1142, 62, 62, 62,
+ 62, 1174, 1169, 1169, 1169, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1174, 1174, 1174, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
@@ -940,21 +946,21 @@ static const flex_int16_t yy_def[1145] =
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 1137, 1140, 1140, 1140,
-
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
-
- 1140, 1140, 1140, 1140, 1142, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+
+ 1169, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1174, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
@@ -965,16 +971,17 @@ static const flex_int16_t yy_def[1145] =
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 1137, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1142, 62, 62, 62, 62, 62,
-
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 1169, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1174, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
@@ -982,40 +989,42 @@ static const flex_int16_t yy_def[1145] =
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 1137, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
-
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1142, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 1169, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1174, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 1137, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1142, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 1169, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1174, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 1137, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1142, 62, 62,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 1137, 1140, 1140, 1140, 1140, 1140, 1140, 1142,
+ 1169, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
- 62, 62, 62, 62, 62, 62, 1137, 1140, 1140, 1140,
- 1142, 62, 62, 62, 1137, 1140, 1142, 62, 1137, 1142,
- 1137, 1142, 1137, 1142, 1137, 1142, 1137, 1142, 1137, 1142,
- 1137, 1142, 1137, 1142, 1137, 1142, 0, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137
+ 1172, 1172, 1172, 1172, 1172, 1172, 1174, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+ 62, 62, 1169, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1174, 62, 62, 62, 62, 62, 62, 62, 1169, 1172,
+ 1172, 1172, 1174, 62, 62, 62, 1169, 1172, 1174, 62,
+ 1169, 1174, 1169, 1174, 1169, 1174, 1169, 1174, 1169, 1174,
+ 1169, 1174, 1169, 1174, 1169, 1174, 1169, 1174, 0, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169
} ;
-static const flex_int16_t yy_nxt[4627] =
+static const flex_int16_t yy_nxt[4763] =
{ 0,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 18,
@@ -1037,498 +1046,513 @@ static const flex_int16_t yy_nxt[4627] =
91, 91, 91, 91, 91, 91, 91, 90, 92, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 94,
95, 99, 105, 100, 111, 98, 107, 136, 112, 101,
- 1136, 102, 113, 108, 137, 103, 104, 176, 114, 276,
+ 1168, 102, 113, 108, 137, 103, 104, 176, 114, 276,
- 109, 115, 106, 110, 1135, 116, 1134, 117, 99, 105,
+ 109, 115, 106, 110, 1167, 116, 1166, 117, 99, 105,
100, 111, 118, 107, 136, 112, 101, 119, 102, 113,
108, 137, 103, 104, 176, 114, 276, 109, 115, 106,
- 110, 126, 116, 128, 117, 1133, 138, 127, 1132, 118,
+ 110, 126, 116, 128, 117, 1165, 138, 127, 1164, 118,
139, 129, 131, 172, 119, 120, 140, 130, 132, 133,
- 134, 173, 1131, 121, 1130, 135, 122, 1129, 126, 123,
- 128, 1128, 124, 138, 127, 125, 1127, 139, 129, 131,
- 172, 1126, 120, 140, 130, 132, 133, 134, 173, 144,
+ 134, 173, 1163, 121, 1162, 135, 122, 1161, 126, 123,
+ 128, 1160, 124, 138, 127, 125, 1159, 139, 129, 131,
+ 172, 1158, 120, 140, 130, 132, 133, 134, 173, 144,
121, 141, 135, 122, 152, 142, 123, 174, 175, 124,
- 148, 143, 125, 145, 1125, 153, 181, 86, 149, 146,
+ 148, 143, 125, 145, 1157, 153, 181, 86, 149, 146,
- 147, 154, 150, 155, 1124, 151, 144, 156, 141, 86,
- 86, 152, 142, 157, 174, 175, 1123, 148, 143, 169,
+ 147, 154, 150, 155, 1156, 151, 144, 156, 141, 86,
+ 86, 152, 142, 157, 174, 175, 1155, 148, 143, 169,
145, 170, 153, 277, 171, 149, 146, 147, 154, 150,
155, 158, 151, 159, 156, 282, 160, 232, 184, 283,
- 157, 189, 190, 161, 162, 1122, 169, 1121, 170, 185,
- 277, 171, 86, 86, 193, 193, 289, 193, 158, 1120,
+ 157, 189, 190, 161, 162, 1154, 169, 1153, 170, 185,
+ 277, 171, 86, 86, 193, 193, 289, 193, 158, 1152,
159, 221, 282, 160, 232, 231, 283, 222, 296, 278,
161, 162, 163, 297, 193, 193, 164, 279, 287, 165,
- 166, 193, 193, 289, 193, 288, 167, 304, 221, 168,
- 181, 86, 231, 1119, 222, 296, 278, 1117, 1115, 163,
+ 166, 193, 193, 289, 193, 288, 167, 305, 221, 168,
+ 181, 86, 231, 1151, 222, 296, 278, 1149, 1147, 163,
- 297, 193, 193, 164, 279, 287, 165, 166, 1111, 1107,
- 1100, 1093, 288, 167, 304, 1078, 168, 186, 186, 186,
+ 297, 193, 193, 164, 279, 287, 165, 166, 1143, 1139,
+ 1131, 1123, 288, 167, 305, 1107, 168, 186, 186, 186,
186, 186, 186, 186, 186, 186, 186, 187, 188, 188,
188, 188, 188, 188, 188, 188, 188, 188, 180, 180,
- 1063, 180, 180, 180, 180, 180, 180, 193, 223, 271,
- 1029, 995, 193, 936, 877, 305, 224, 180, 180, 180,
- 233, 306, 225, 194, 234, 195, 307, 193, 308, 193,
+ 1091, 180, 180, 180, 180, 180, 180, 193, 223, 271,
+ 1054, 1017, 193, 955, 893, 306, 224, 180, 180, 180,
+ 233, 307, 225, 194, 234, 195, 308, 193, 309, 193,
235, 196, 193, 197, 193, 223, 271, 198, 199, 193,
- 193, 193, 305, 224, 269, 270, 795, 233, 306, 225,
- 194, 234, 195, 307, 193, 308, 193, 235, 196, 193,
+ 193, 193, 306, 224, 269, 270, 808, 233, 307, 225,
+ 194, 234, 195, 308, 193, 309, 193, 235, 196, 193,
- 197, 193, 314, 713, 198, 199, 605, 193, 193, 497,
- 386, 269, 270, 180, 180, 180, 385, 180, 180, 180,
- 180, 180, 180, 274, 273, 272, 236, 247, 193, 314,
+ 197, 193, 315, 723, 198, 199, 612, 193, 193, 501,
+ 388, 269, 270, 180, 180, 180, 387, 180, 180, 180,
+ 180, 180, 180, 274, 273, 272, 236, 247, 193, 315,
237, 193, 192, 180, 180, 180, 238, 294, 248, 250,
- 200, 193, 280, 251, 249, 281, 193, 295, 315, 252,
- 264, 193, 265, 236, 247, 266, 316, 237, 193, 193,
+ 200, 193, 280, 251, 249, 281, 193, 295, 316, 252,
+ 264, 193, 265, 236, 247, 266, 317, 237, 193, 193,
201, 193, 191, 238, 294, 248, 250, 200, 193, 280,
- 251, 249, 281, 193, 295, 315, 252, 264, 193, 265,
- 180, 182, 266, 316, 284, 285, 193, 201, 193, 180,
- 202, 317, 267, 318, 193, 319, 193, 203, 286, 320,
-
- 268, 290, 291, 292, 204, 293, 179, 205, 302, 303,
- 321, 284, 285, 324, 193, 177, 193, 202, 317, 267,
- 318, 193, 319, 193, 203, 286, 320, 268, 290, 291,
- 292, 204, 293, 298, 205, 302, 303, 321, 299, 97,
- 324, 193, 206, 193, 300, 96, 207, 325, 326, 322,
- 208, 301, 323, 327, 332, 309, 209, 310, 333, 210,
- 298, 311, 334, 87, 335, 299, 193, 1137, 312, 206,
- 341, 300, 313, 207, 325, 326, 322, 208, 301, 323,
- 327, 332, 309, 209, 310, 333, 210, 47, 311, 334,
- 328, 335, 342, 193, 193, 312, 336, 341, 337, 313,
-
- 329, 211, 343, 212, 344, 330, 331, 338, 213, 339,
- 345, 346, 347, 214, 193, 47, 348, 328, 349, 342,
- 340, 193, 350, 336, 351, 337, 1137, 329, 211, 343,
- 212, 344, 330, 331, 338, 213, 339, 345, 346, 347,
- 214, 193, 215, 348, 352, 349, 193, 340, 353, 350,
- 216, 351, 354, 217, 357, 355, 218, 358, 359, 219,
- 356, 360, 220, 363, 364, 365, 193, 1137, 1137, 215,
- 361, 352, 366, 193, 1137, 353, 1137, 216, 362, 354,
- 217, 357, 355, 218, 358, 359, 219, 356, 360, 220,
- 363, 364, 365, 193, 193, 226, 367, 361, 369, 366,
-
- 370, 227, 228, 229, 371, 362, 372, 368, 230, 374,
- 376, 377, 375, 382, 193, 1137, 383, 1137, 378, 1137,
- 384, 193, 226, 367, 379, 369, 373, 370, 227, 228,
- 229, 371, 193, 372, 368, 230, 374, 376, 377, 375,
- 382, 193, 239, 383, 380, 378, 193, 384, 498, 388,
- 193, 379, 193, 373, 1137, 499, 240, 381, 1137, 193,
- 500, 501, 241, 242, 502, 1137, 193, 1137, 1137, 239,
- 193, 380, 1137, 193, 1137, 498, 388, 193, 1137, 193,
- 1137, 193, 499, 240, 381, 193, 193, 500, 501, 241,
- 242, 502, 390, 193, 193, 243, 389, 193, 193, 394,
-
- 391, 193, 395, 244, 193, 193, 193, 245, 193, 503,
- 246, 1137, 193, 193, 193, 1137, 504, 1137, 193, 390,
- 1137, 193, 243, 389, 193, 193, 394, 391, 193, 395,
- 244, 193, 193, 193, 245, 392, 503, 246, 393, 193,
- 505, 193, 253, 504, 254, 193, 509, 255, 193, 396,
- 397, 193, 510, 511, 256, 257, 1137, 1137, 1137, 193,
- 1137, 1137, 392, 398, 193, 393, 193, 505, 193, 253,
- 512, 254, 1137, 509, 255, 193, 396, 397, 193, 510,
- 511, 256, 257, 406, 401, 426, 193, 193, 193, 1137,
- 398, 193, 258, 407, 399, 193, 259, 512, 193, 260,
-
- 261, 400, 513, 193, 514, 193, 262, 193, 193, 263,
- 406, 401, 426, 515, 193, 193, 193, 1137, 1137, 258,
- 407, 399, 1137, 259, 1137, 193, 260, 261, 400, 513,
- 193, 514, 1137, 262, 193, 193, 263, 1137, 1137, 1137,
- 515, 1137, 1137, 193, 91, 91, 91, 91, 91, 91,
+ 251, 249, 281, 193, 295, 316, 252, 264, 193, 265,
+ 180, 318, 266, 317, 284, 285, 193, 201, 193, 180,
+ 202, 319, 267, 320, 193, 321, 193, 203, 286, 322,
+
+ 268, 290, 291, 292, 204, 293, 182, 205, 318, 303,
+ 304, 284, 285, 325, 193, 179, 193, 202, 319, 267,
+ 320, 193, 321, 193, 203, 286, 322, 268, 290, 291,
+ 292, 204, 293, 298, 205, 299, 303, 304, 300, 177,
+ 325, 193, 206, 193, 301, 97, 207, 326, 327, 323,
+ 208, 302, 324, 328, 333, 310, 209, 311, 334, 210,
+ 298, 312, 299, 96, 335, 300, 193, 87, 313, 206,
+ 336, 301, 314, 207, 326, 327, 323, 208, 302, 324,
+ 328, 333, 310, 209, 311, 334, 210, 1169, 312, 342,
+ 329, 335, 343, 193, 193, 313, 337, 336, 338, 314,
+
+ 330, 211, 344, 212, 345, 331, 332, 339, 213, 340,
+ 346, 347, 348, 214, 193, 47, 342, 329, 349, 343,
+ 341, 193, 350, 337, 351, 338, 47, 330, 211, 344,
+ 212, 345, 331, 332, 339, 213, 340, 346, 347, 348,
+ 214, 193, 215, 352, 353, 349, 193, 341, 354, 350,
+ 216, 351, 355, 217, 359, 360, 218, 361, 1169, 219,
+ 365, 1169, 220, 1169, 366, 367, 193, 1169, 1169, 215,
+ 352, 353, 356, 193, 1169, 354, 1169, 216, 1169, 355,
+ 217, 359, 360, 218, 361, 357, 219, 365, 362, 220,
+ 358, 366, 367, 193, 193, 226, 368, 363, 369, 356,
+
+ 371, 227, 228, 229, 372, 364, 373, 376, 230, 370,
+ 377, 1169, 357, 378, 193, 362, 379, 358, 374, 1169,
+ 380, 193, 226, 368, 363, 369, 381, 371, 227, 228,
+ 229, 372, 364, 373, 376, 230, 370, 377, 375, 1169,
+ 378, 193, 239, 379, 382, 374, 193, 380, 384, 385,
+ 386, 502, 193, 381, 1169, 1169, 240, 383, 1169, 503,
+ 390, 193, 241, 242, 504, 375, 193, 1169, 1169, 239,
+ 1169, 382, 193, 193, 505, 384, 385, 386, 502, 193,
+ 1169, 193, 193, 240, 383, 193, 503, 390, 193, 241,
+ 242, 504, 392, 193, 193, 243, 397, 391, 193, 193,
+
+ 393, 505, 193, 244, 1169, 193, 1169, 245, 193, 193,
+ 246, 1169, 193, 193, 193, 1169, 506, 1169, 193, 392,
+ 1169, 193, 243, 397, 391, 193, 396, 393, 1169, 193,
+ 244, 193, 193, 193, 245, 394, 1169, 246, 395, 193,
+ 193, 193, 253, 506, 254, 193, 507, 255, 193, 398,
+ 399, 193, 508, 396, 256, 257, 1169, 1169, 193, 193,
+ 193, 1169, 394, 400, 193, 395, 193, 1169, 193, 253,
+ 509, 254, 1169, 507, 255, 193, 398, 399, 193, 508,
+ 1169, 256, 257, 408, 403, 193, 193, 193, 193, 1169,
+ 400, 193, 258, 409, 401, 193, 259, 509, 432, 260,
+
+ 261, 402, 513, 193, 514, 193, 262, 193, 193, 263,
+ 408, 403, 193, 515, 193, 193, 193, 1169, 1169, 258,
+ 409, 401, 1169, 259, 1169, 432, 260, 261, 402, 513,
+ 193, 514, 193, 262, 193, 193, 263, 1169, 1169, 1169,
+ 515, 1169, 1169, 193, 91, 91, 91, 91, 91, 91,
91, 91, 91, 91, 275, 275, 275, 275, 275, 275,
275, 275, 275, 275, 92, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 387, 387, 387, 387, 387,
- 387, 387, 387, 387, 387, 187, 188, 188, 188, 188,
+ 186, 186, 186, 186, 186, 389, 389, 389, 389, 389,
+ 389, 389, 389, 389, 389, 187, 188, 188, 188, 188,
188, 188, 188, 188, 188, 188, 193, 193, 516, 193,
- 193, 193, 517, 402, 403, 404, 1137, 405, 1137, 518,
- 1137, 417, 408, 414, 415, 416, 193, 409, 1137, 193,
- 193, 193, 1137, 193, 193, 516, 193, 193, 193, 517,
- 402, 403, 404, 420, 405, 193, 518, 193, 417, 408,
- 414, 415, 416, 193, 409, 410, 193, 193, 193, 193,
- 411, 418, 419, 193, 1137, 193, 412, 193, 1137, 1137,
- 420, 193, 193, 413, 193, 193, 519, 522, 427, 193,
- 1137, 523, 410, 193, 1137, 428, 193, 411, 418, 419,
- 193, 193, 193, 412, 193, 193, 193, 1137, 193, 524,
-
- 413, 1137, 193, 519, 522, 427, 193, 193, 523, 429,
- 193, 421, 428, 422, 431, 193, 193, 423, 193, 193,
- 1137, 1137, 193, 193, 424, 430, 524, 193, 425, 432,
- 1137, 1137, 1137, 193, 193, 193, 429, 193, 421, 193,
- 422, 431, 193, 193, 423, 193, 193, 433, 193, 193,
- 525, 424, 430, 193, 193, 425, 432, 193, 436, 193,
- 193, 437, 193, 438, 193, 193, 193, 434, 193, 193,
- 435, 193, 193, 193, 433, 193, 193, 525, 526, 193,
- 193, 527, 439, 1137, 193, 436, 193, 528, 437, 1137,
- 438, 193, 193, 1137, 434, 193, 193, 435, 193, 529,
-
- 193, 193, 1137, 193, 1137, 526, 193, 1137, 527, 439,
- 444, 193, 1137, 1137, 528, 445, 193, 447, 193, 440,
- 193, 193, 1137, 446, 530, 1137, 529, 531, 193, 441,
- 193, 193, 193, 193, 442, 443, 193, 444, 193, 448,
- 193, 449, 445, 193, 447, 453, 440, 193, 193, 520,
- 446, 530, 193, 193, 531, 1137, 441, 1137, 193, 193,
- 193, 442, 443, 193, 521, 193, 448, 193, 449, 450,
- 532, 451, 453, 193, 454, 193, 520, 533, 1137, 193,
- 193, 1137, 452, 1137, 455, 193, 193, 193, 193, 534,
- 193, 521, 193, 193, 458, 193, 450, 532, 451, 1137,
-
- 193, 454, 193, 456, 533, 457, 193, 193, 193, 452,
- 193, 455, 193, 193, 193, 193, 534, 193, 193, 459,
- 193, 458, 193, 193, 193, 460, 461, 193, 1137, 193,
- 456, 463, 457, 193, 193, 193, 1137, 193, 193, 475,
- 193, 535, 1137, 193, 193, 193, 459, 193, 1137, 193,
- 193, 193, 460, 461, 193, 462, 193, 464, 463, 465,
- 193, 193, 1137, 466, 1137, 193, 475, 193, 535, 193,
- 193, 193, 536, 193, 193, 469, 193, 193, 467, 193,
- 471, 193, 462, 468, 464, 1137, 465, 193, 193, 193,
- 466, 193, 472, 193, 193, 537, 193, 193, 470, 536,
-
- 193, 473, 469, 538, 193, 467, 193, 471, 193, 474,
- 468, 193, 478, 193, 193, 193, 193, 539, 193, 472,
- 193, 193, 537, 477, 193, 470, 476, 193, 473, 193,
- 538, 481, 193, 193, 540, 193, 474, 479, 193, 478,
- 193, 193, 193, 483, 539, 488, 193, 193, 480, 193,
- 477, 193, 193, 476, 193, 1137, 193, 193, 481, 193,
- 193, 540, 193, 484, 479, 482, 193, 193, 541, 542,
- 483, 1137, 488, 193, 193, 480, 193, 193, 193, 193,
- 494, 193, 193, 485, 193, 486, 489, 193, 487, 1137,
- 484, 1137, 482, 193, 193, 541, 542, 1137, 193, 1137,
-
- 193, 193, 193, 492, 193, 490, 193, 494, 193, 193,
- 485, 491, 486, 489, 193, 487, 493, 1137, 193, 543,
- 496, 495, 544, 193, 193, 193, 193, 193, 193, 193,
- 492, 1137, 490, 193, 1137, 1137, 1137, 1137, 491, 1137,
- 545, 546, 547, 493, 193, 193, 543, 496, 495, 544,
- 193, 193, 548, 193, 275, 275, 275, 275, 275, 275,
- 275, 275, 275, 275, 506, 549, 507, 545, 546, 547,
- 550, 193, 551, 553, 554, 555, 556, 557, 558, 548,
- 559, 508, 552, 560, 561, 562, 563, 564, 565, 566,
- 567, 506, 549, 507, 568, 569, 570, 550, 571, 551,
-
- 553, 554, 555, 556, 557, 558, 572, 559, 508, 552,
- 560, 561, 562, 563, 564, 565, 566, 567, 573, 574,
- 575, 568, 569, 570, 576, 571, 577, 578, 579, 580,
- 581, 582, 583, 572, 584, 585, 586, 587, 588, 589,
- 590, 592, 594, 593, 595, 573, 574, 575, 596, 591,
- 597, 576, 598, 577, 578, 579, 580, 581, 582, 583,
- 599, 584, 585, 586, 587, 588, 589, 590, 592, 594,
- 593, 595, 600, 603, 601, 596, 591, 597, 602, 598,
- 604, 1137, 193, 606, 193, 1137, 607, 599, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 387, 193, 600,
-
- 603, 601, 193, 193, 193, 602, 193, 604, 193, 193,
- 606, 193, 609, 607, 193, 608, 193, 193, 193, 1137,
- 193, 714, 1137, 1137, 611, 193, 1137, 610, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193, 715, 609,
- 193, 193, 608, 193, 193, 193, 193, 193, 714, 193,
- 612, 611, 193, 613, 610, 193, 1137, 1137, 1137, 193,
- 1137, 193, 617, 193, 193, 715, 193, 193, 614, 193,
- 615, 193, 1137, 193, 193, 1137, 193, 612, 716, 193,
- 613, 717, 619, 193, 193, 616, 193, 618, 1137, 617,
- 193, 193, 1137, 193, 193, 614, 193, 615, 193, 620,
-
- 623, 193, 624, 621, 193, 716, 193, 1137, 717, 619,
- 193, 193, 616, 193, 618, 622, 193, 193, 193, 193,
- 193, 193, 193, 626, 627, 1137, 620, 623, 193, 624,
- 621, 193, 1137, 193, 625, 1137, 193, 628, 631, 193,
- 193, 1137, 622, 193, 1137, 1137, 193, 193, 193, 193,
- 626, 627, 629, 193, 630, 193, 193, 193, 193, 633,
- 718, 625, 193, 193, 628, 631, 193, 193, 632, 1137,
- 1137, 635, 193, 193, 719, 193, 193, 193, 1137, 629,
- 193, 630, 193, 193, 193, 193, 633, 718, 634, 193,
- 636, 193, 193, 637, 193, 632, 193, 193, 635, 193,
-
- 193, 719, 1137, 193, 193, 638, 643, 193, 1137, 193,
- 639, 1137, 1137, 193, 193, 634, 193, 636, 193, 193,
- 637, 193, 193, 193, 193, 193, 193, 193, 1137, 640,
- 193, 644, 638, 643, 193, 193, 1137, 639, 641, 193,
- 193, 193, 193, 193, 642, 193, 1137, 645, 720, 193,
- 193, 721, 193, 193, 193, 193, 640, 193, 644, 193,
- 193, 648, 193, 193, 193, 641, 193, 1137, 646, 193,
- 647, 642, 193, 193, 645, 720, 193, 193, 721, 650,
- 193, 193, 193, 193, 193, 651, 193, 193, 648, 649,
- 193, 193, 1137, 193, 193, 646, 193, 647, 193, 656,
-
- 193, 193, 193, 193, 654, 722, 650, 193, 193, 652,
- 193, 193, 651, 657, 193, 653, 649, 193, 193, 193,
- 193, 193, 193, 193, 1137, 193, 656, 655, 193, 193,
- 658, 654, 722, 193, 723, 193, 652, 193, 659, 193,
- 657, 193, 653, 193, 193, 193, 193, 664, 660, 193,
- 193, 661, 662, 193, 655, 193, 1137, 658, 193, 193,
- 193, 723, 193, 193, 193, 659, 193, 193, 663, 724,
- 193, 193, 193, 193, 664, 660, 665, 193, 661, 662,
- 193, 1137, 193, 666, 193, 193, 193, 670, 725, 667,
- 193, 193, 193, 193, 193, 663, 724, 193, 193, 193,
-
- 193, 726, 193, 665, 193, 193, 193, 668, 669, 727,
- 666, 193, 671, 193, 670, 725, 667, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 676, 726, 193,
- 673, 193, 193, 193, 668, 669, 727, 672, 193, 671,
- 193, 193, 193, 193, 193, 1137, 677, 193, 193, 193,
- 193, 674, 193, 193, 676, 678, 675, 673, 193, 193,
- 1137, 193, 193, 1137, 672, 193, 193, 193, 193, 193,
- 193, 682, 680, 677, 193, 193, 679, 1137, 674, 193,
- 1137, 193, 678, 675, 193, 193, 193, 193, 193, 193,
- 193, 728, 681, 193, 193, 193, 686, 729, 682, 680,
-
- 193, 688, 193, 679, 193, 683, 193, 685, 193, 193,
- 193, 193, 684, 193, 193, 193, 193, 193, 728, 681,
- 193, 193, 193, 686, 729, 687, 193, 193, 688, 193,
- 193, 193, 683, 193, 685, 193, 193, 193, 696, 684,
- 193, 1137, 193, 193, 689, 690, 193, 193, 193, 193,
- 193, 1137, 687, 193, 193, 193, 193, 193, 193, 193,
- 193, 692, 193, 193, 691, 696, 693, 193, 695, 193,
- 730, 689, 690, 193, 193, 193, 193, 193, 694, 193,
- 193, 193, 193, 193, 1137, 193, 193, 193, 692, 697,
- 193, 691, 1137, 693, 193, 695, 193, 730, 731, 698,
-
- 193, 193, 193, 193, 1137, 694, 193, 193, 699, 193,
- 193, 193, 193, 700, 193, 701, 697, 1137, 704, 193,
- 703, 702, 1137, 193, 193, 731, 698, 193, 705, 193,
- 193, 193, 193, 1137, 193, 699, 193, 1137, 193, 193,
- 700, 706, 701, 193, 193, 704, 193, 703, 702, 193,
- 193, 193, 707, 193, 193, 705, 193, 193, 193, 193,
- 711, 193, 709, 193, 708, 193, 710, 732, 706, 193,
- 193, 193, 733, 193, 734, 735, 193, 193, 712, 707,
- 193, 193, 736, 737, 193, 193, 738, 711, 739, 709,
- 193, 708, 193, 710, 732, 740, 193, 741, 742, 733,
-
- 193, 734, 735, 743, 193, 712, 744, 745, 746, 736,
- 737, 747, 193, 738, 748, 739, 749, 750, 751, 752,
- 753, 754, 740, 756, 741, 742, 757, 758, 759, 762,
- 743, 763, 755, 744, 745, 746, 760, 761, 747, 764,
- 765, 748, 766, 749, 750, 751, 752, 753, 754, 767,
- 756, 768, 769, 757, 758, 759, 762, 770, 763, 755,
- 771, 772, 773, 760, 761, 774, 764, 765, 775, 766,
- 776, 777, 778, 779, 780, 781, 767, 782, 768, 769,
- 783, 784, 785, 786, 770, 787, 788, 771, 772, 773,
- 789, 790, 774, 791, 792, 775, 793, 776, 777, 778,
-
- 779, 780, 781, 794, 782, 193, 193, 783, 784, 785,
- 786, 193, 787, 788, 193, 193, 878, 789, 790, 796,
- 791, 792, 1137, 793, 797, 798, 193, 193, 800, 802,
- 794, 193, 193, 193, 799, 193, 801, 193, 193, 193,
- 193, 193, 193, 878, 803, 193, 796, 193, 193, 193,
- 1137, 797, 798, 193, 193, 800, 802, 193, 193, 193,
- 193, 799, 193, 801, 193, 193, 193, 193, 193, 193,
- 193, 803, 193, 193, 193, 193, 193, 804, 193, 193,
- 1137, 1137, 805, 806, 193, 1137, 193, 193, 193, 193,
- 193, 1137, 193, 193, 807, 193, 193, 193, 193, 193,
-
- 193, 1137, 808, 193, 804, 193, 193, 193, 193, 805,
- 806, 1137, 193, 193, 1137, 193, 193, 193, 809, 810,
- 193, 807, 193, 193, 1137, 193, 193, 193, 812, 808,
- 193, 193, 193, 193, 193, 193, 1137, 813, 811, 193,
- 193, 193, 193, 1137, 814, 809, 810, 193, 1137, 193,
- 193, 193, 879, 193, 193, 812, 193, 816, 193, 193,
- 193, 193, 193, 817, 813, 811, 193, 193, 193, 193,
- 815, 814, 193, 193, 193, 193, 193, 818, 193, 879,
- 193, 880, 193, 193, 816, 193, 193, 881, 193, 193,
- 817, 820, 193, 193, 193, 193, 819, 815, 1137, 193,
-
- 193, 193, 193, 193, 818, 193, 822, 823, 880, 193,
- 193, 193, 193, 193, 881, 824, 821, 1137, 820, 193,
- 193, 193, 193, 819, 193, 826, 193, 1137, 193, 193,
- 193, 193, 193, 822, 823, 193, 882, 193, 193, 825,
- 193, 193, 824, 821, 193, 193, 193, 193, 193, 193,
- 827, 193, 826, 193, 193, 193, 193, 193, 193, 193,
- 193, 193, 193, 882, 829, 193, 825, 193, 193, 193,
- 828, 193, 193, 193, 193, 193, 193, 827, 831, 193,
- 193, 193, 193, 830, 193, 1137, 193, 193, 193, 193,
- 1137, 829, 193, 1137, 1137, 193, 193, 828, 193, 193,
-
- 193, 193, 193, 833, 193, 831, 193, 193, 832, 193,
- 830, 193, 834, 835, 1137, 193, 193, 193, 193, 193,
- 193, 193, 193, 836, 838, 193, 193, 193, 1137, 193,
- 833, 193, 193, 193, 837, 832, 193, 193, 193, 834,
- 835, 193, 193, 193, 193, 193, 193, 193, 193, 193,
- 836, 838, 193, 193, 193, 193, 193, 841, 839, 193,
- 193, 837, 840, 193, 193, 193, 1137, 883, 193, 193,
- 193, 884, 193, 193, 193, 193, 193, 193, 1137, 193,
- 193, 193, 193, 1137, 841, 839, 842, 843, 193, 840,
- 193, 844, 193, 193, 883, 1137, 193, 193, 884, 193,
-
- 193, 193, 193, 846, 193, 193, 847, 1137, 193, 193,
- 845, 1137, 885, 842, 843, 193, 1137, 193, 844, 193,
- 193, 193, 848, 193, 193, 193, 193, 193, 1137, 193,
- 846, 850, 193, 847, 849, 193, 193, 845, 851, 885,
- 1137, 193, 193, 193, 193, 1137, 1137, 193, 193, 848,
- 193, 852, 193, 193, 193, 193, 193, 193, 850, 193,
- 193, 849, 193, 193, 1137, 851, 1137, 853, 193, 193,
- 193, 857, 855, 854, 193, 193, 886, 193, 852, 193,
- 193, 1137, 193, 193, 193, 856, 193, 193, 193, 193,
- 193, 859, 1137, 193, 853, 1137, 193, 193, 857, 855,
-
- 854, 860, 193, 886, 193, 858, 193, 193, 193, 862,
- 193, 193, 856, 193, 193, 193, 193, 193, 859, 193,
- 193, 193, 193, 193, 193, 887, 861, 193, 860, 193,
- 193, 193, 858, 864, 193, 193, 862, 863, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 1137, 887, 861, 193, 1137, 193, 193, 193, 865,
- 864, 193, 193, 1137, 863, 193, 193, 193, 866, 193,
- 193, 867, 193, 193, 193, 869, 193, 193, 871, 193,
- 1137, 872, 193, 868, 1137, 1137, 865, 193, 870, 193,
- 193, 193, 193, 193, 193, 866, 193, 193, 867, 193,
-
- 193, 193, 869, 193, 193, 871, 193, 873, 872, 193,
- 868, 193, 193, 193, 193, 870, 875, 193, 193, 888,
- 193, 193, 889, 193, 193, 890, 193, 891, 193, 874,
- 193, 193, 193, 193, 873, 892, 193, 893, 193, 193,
- 193, 193, 894, 875, 876, 895, 888, 896, 193, 889,
- 193, 193, 890, 897, 891, 898, 874, 193, 899, 193,
- 193, 900, 892, 193, 893, 901, 902, 903, 193, 894,
- 904, 876, 895, 905, 896, 906, 908, 193, 907, 909,
- 897, 910, 898, 911, 912, 899, 913, 914, 900, 915,
- 916, 917, 901, 902, 903, 918, 919, 904, 920, 921,
-
- 905, 922, 906, 908, 923, 907, 909, 924, 910, 925,
- 911, 912, 926, 913, 914, 927, 915, 916, 917, 928,
- 929, 930, 918, 919, 931, 920, 921, 932, 922, 933,
- 934, 923, 935, 193, 924, 193, 925, 1137, 193, 926,
- 1137, 938, 927, 193, 996, 1137, 928, 929, 930, 193,
- 1137, 931, 939, 193, 932, 193, 933, 934, 193, 935,
- 193, 193, 193, 193, 937, 193, 940, 193, 938, 193,
- 193, 996, 193, 997, 1137, 193, 193, 193, 1137, 939,
- 193, 1137, 193, 944, 941, 193, 193, 193, 193, 1137,
- 193, 937, 942, 940, 193, 193, 193, 193, 193, 193,
-
- 997, 193, 193, 193, 193, 945, 193, 193, 943, 193,
- 944, 941, 1137, 193, 193, 1137, 947, 946, 193, 942,
- 948, 193, 193, 1137, 193, 193, 193, 193, 193, 193,
- 193, 998, 945, 193, 193, 943, 193, 193, 1137, 952,
- 193, 949, 193, 947, 946, 193, 193, 948, 193, 1137,
- 193, 951, 953, 193, 193, 999, 193, 193, 998, 193,
- 193, 193, 193, 1137, 193, 950, 952, 193, 949, 193,
- 193, 193, 193, 193, 1000, 954, 955, 193, 951, 953,
- 193, 193, 999, 1137, 193, 956, 193, 193, 193, 193,
- 193, 193, 950, 958, 957, 193, 193, 193, 193, 193,
-
- 1137, 1000, 954, 955, 193, 193, 1137, 193, 193, 193,
- 193, 961, 956, 193, 193, 193, 193, 193, 193, 193,
- 958, 957, 193, 193, 193, 193, 960, 193, 959, 193,
- 193, 193, 193, 193, 193, 1137, 193, 193, 961, 193,
- 193, 193, 193, 193, 193, 962, 193, 193, 193, 964,
- 193, 193, 193, 960, 193, 959, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 1137, 193, 193, 193, 193,
- 967, 193, 962, 963, 193, 193, 964, 193, 193, 193,
- 1137, 965, 193, 193, 966, 193, 193, 193, 1137, 193,
- 193, 193, 193, 193, 193, 193, 193, 967, 968, 970,
-
- 963, 193, 193, 193, 193, 193, 193, 971, 965, 193,
- 193, 966, 193, 193, 193, 969, 193, 972, 193, 193,
- 193, 193, 193, 193, 193, 968, 970, 193, 193, 193,
- 193, 193, 973, 193, 971, 1137, 193, 976, 1001, 193,
- 193, 1137, 969, 193, 972, 193, 974, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 973,
- 193, 1137, 977, 193, 976, 1001, 978, 979, 975, 1137,
- 193, 193, 1137, 974, 193, 193, 193, 1002, 193, 193,
- 193, 193, 193, 193, 193, 193, 980, 193, 983, 977,
- 193, 193, 193, 978, 979, 975, 981, 193, 193, 982,
-
- 193, 193, 193, 193, 1002, 193, 1137, 193, 193, 193,
- 193, 1003, 193, 980, 193, 983, 1137, 193, 193, 193,
- 193, 193, 985, 981, 984, 193, 982, 193, 193, 193,
- 193, 987, 1137, 989, 193, 193, 193, 193, 1003, 193,
- 986, 193, 988, 990, 193, 193, 193, 193, 193, 985,
- 1137, 984, 193, 193, 991, 193, 193, 193, 987, 193,
- 989, 993, 193, 193, 193, 193, 193, 986, 193, 988,
- 990, 193, 193, 193, 193, 193, 193, 992, 1004, 193,
- 193, 991, 193, 193, 1005, 193, 193, 1006, 993, 1007,
- 193, 193, 193, 193, 994, 193, 193, 1008, 193, 1009,
-
- 1010, 193, 193, 193, 992, 1004, 193, 1011, 1012, 1013,
- 193, 1005, 193, 1014, 1006, 1015, 1007, 1016, 193, 1017,
- 1018, 994, 193, 193, 1008, 193, 1009, 1010, 1019, 1020,
- 1021, 1022, 1023, 1024, 1011, 1012, 1013, 1025, 1026, 1027,
- 1014, 1028, 1015, 1030, 1016, 193, 1017, 1018, 1137, 193,
- 1137, 1032, 193, 193, 193, 1019, 1020, 1021, 1022, 1023,
- 1024, 1031, 1064, 193, 1025, 1026, 1027, 1033, 1028, 193,
- 1030, 193, 193, 193, 193, 193, 193, 193, 1032, 193,
- 193, 193, 1034, 193, 1036, 1137, 193, 1137, 1031, 1064,
- 193, 1035, 193, 1137, 1033, 193, 193, 193, 193, 193,
-
- 193, 193, 193, 193, 193, 193, 193, 1037, 193, 1034,
- 193, 1036, 193, 193, 1038, 1137, 1137, 193, 1035, 193,
- 193, 1039, 193, 193, 193, 193, 193, 1137, 193, 193,
- 193, 1040, 193, 193, 1037, 193, 1137, 193, 1137, 193,
- 193, 1038, 193, 193, 193, 193, 193, 193, 1039, 193,
- 193, 193, 193, 193, 1041, 193, 193, 193, 1040, 193,
- 193, 1137, 193, 193, 193, 193, 1137, 193, 193, 193,
- 193, 193, 193, 193, 1042, 1137, 193, 193, 193, 193,
- 193, 1041, 1137, 193, 193, 1044, 193, 193, 193, 193,
- 193, 193, 193, 1045, 193, 193, 193, 193, 193, 193,
-
- 1137, 1042, 193, 1137, 193, 193, 193, 193, 1137, 1043,
- 193, 1065, 1044, 1046, 193, 193, 193, 193, 193, 193,
- 1045, 193, 193, 193, 193, 193, 193, 193, 1137, 193,
- 1050, 1048, 193, 193, 1047, 193, 1043, 1137, 1065, 193,
- 1046, 193, 1137, 193, 193, 193, 193, 193, 1049, 193,
- 193, 193, 193, 193, 193, 193, 193, 1050, 1048, 1051,
- 193, 1047, 193, 1052, 193, 193, 193, 1053, 193, 193,
- 1054, 193, 193, 193, 193, 1049, 193, 193, 193, 1137,
- 193, 193, 193, 193, 193, 193, 1051, 1055, 193, 193,
- 1052, 193, 193, 193, 1053, 193, 193, 1054, 193, 193,
-
- 193, 193, 1137, 193, 193, 1057, 1056, 193, 193, 193,
- 1137, 193, 193, 1058, 1055, 193, 193, 193, 193, 193,
- 193, 1059, 1060, 193, 193, 1066, 193, 193, 193, 193,
- 1067, 193, 1057, 1056, 193, 193, 193, 193, 193, 193,
- 1058, 1137, 1068, 193, 193, 193, 193, 193, 1059, 1060,
- 193, 193, 1066, 1069, 193, 193, 193, 1067, 1070, 193,
- 1061, 193, 193, 1071, 193, 193, 193, 193, 1062, 1068,
- 193, 1072, 1073, 1074, 193, 1075, 1076, 1077, 1137, 1137,
- 1069, 193, 193, 1137, 1137, 1070, 193, 1061, 193, 193,
- 1071, 193, 193, 193, 193, 1062, 1137, 193, 1072, 1073,
-
- 1074, 1079, 1075, 1076, 1077, 193, 1080, 1081, 193, 193,
- 193, 193, 193, 193, 1137, 193, 193, 193, 193, 193,
- 193, 193, 1137, 193, 193, 193, 193, 193, 1079, 193,
- 193, 193, 193, 1080, 1081, 193, 193, 193, 193, 193,
- 193, 1082, 193, 193, 193, 1083, 193, 193, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
- 193, 1086, 193, 193, 193, 193, 1084, 193, 1082, 1094,
- 193, 1137, 1083, 193, 193, 193, 193, 1085, 193, 193,
- 193, 193, 193, 193, 193, 193, 193, 193, 1086, 193,
- 193, 193, 193, 1084, 193, 1088, 1094, 193, 193, 193,
-
- 193, 193, 193, 1095, 1085, 1137, 193, 193, 193, 193,
- 193, 193, 193, 1087, 1089, 193, 193, 193, 193, 193,
- 193, 193, 1088, 1090, 193, 193, 193, 193, 193, 1096,
- 1095, 1092, 193, 193, 193, 193, 193, 1097, 1098, 1099,
- 1087, 1089, 193, 193, 193, 193, 193, 193, 193, 1091,
- 1090, 193, 193, 193, 193, 193, 1096, 193, 1092, 193,
- 193, 193, 193, 193, 1097, 1098, 1099, 193, 193, 193,
- 193, 193, 1101, 193, 1137, 193, 1091, 193, 193, 193,
- 193, 193, 193, 1102, 193, 193, 1103, 193, 193, 193,
- 193, 193, 1108, 193, 193, 193, 193, 193, 193, 1101,
-
- 193, 193, 193, 193, 193, 193, 193, 1106, 1109, 1110,
- 1102, 193, 193, 1103, 193, 193, 193, 193, 193, 1108,
- 193, 1104, 1105, 193, 193, 1112, 193, 193, 193, 1116,
- 193, 193, 193, 193, 1106, 1109, 1110, 193, 193, 193,
- 193, 193, 193, 1137, 193, 193, 1137, 193, 1104, 1105,
- 193, 1113, 1112, 193, 193, 193, 1116, 193, 193, 193,
- 193, 193, 193, 1137, 193, 1114, 193, 193, 193, 193,
- 193, 193, 193, 1137, 193, 193, 1137, 1137, 1113, 1118,
- 1137, 1137, 193, 1137, 193, 1137, 193, 193, 193, 193,
- 193, 193, 1114, 1137, 1137, 1137, 1137, 193, 193, 1137,
-
- 1137, 1137, 193, 1137, 1137, 1137, 1118, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 193, 193, 46,
- 46, 46, 46, 46, 88, 1137, 1137, 88, 88, 178,
- 178, 178, 1137, 178, 180, 1137, 180, 180, 180, 183,
- 1137, 183, 183, 183, 193, 1137, 193, 193, 193, 7,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
-
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137
+ 1169, 193, 517, 404, 405, 406, 1169, 407, 1169, 420,
+ 1169, 1169, 410, 193, 417, 418, 193, 411, 1169, 193,
+ 1169, 193, 1169, 193, 193, 516, 193, 421, 193, 517,
+ 404, 405, 406, 193, 407, 193, 420, 422, 193, 410,
+ 193, 417, 418, 193, 411, 412, 193, 413, 193, 193,
+ 414, 419, 1169, 193, 421, 193, 415, 423, 193, 193,
+ 193, 193, 193, 416, 422, 193, 518, 1169, 429, 193,
+ 519, 1169, 412, 193, 413, 520, 193, 414, 419, 193,
+ 193, 193, 193, 415, 423, 193, 193, 1169, 193, 521,
+
+ 416, 193, 1169, 518, 193, 429, 193, 519, 430, 193,
+ 193, 522, 520, 193, 431, 1169, 193, 424, 193, 425,
+ 434, 193, 193, 426, 193, 440, 521, 1169, 193, 193,
+ 427, 193, 433, 193, 428, 430, 193, 1169, 522, 193,
+ 193, 431, 193, 193, 424, 193, 425, 434, 193, 193,
+ 426, 193, 440, 435, 193, 436, 193, 427, 193, 433,
+ 193, 428, 523, 193, 193, 193, 193, 439, 437, 193,
+ 193, 438, 193, 193, 193, 442, 1169, 441, 193, 193,
+ 435, 193, 436, 193, 193, 193, 524, 448, 447, 523,
+ 193, 193, 193, 193, 439, 437, 193, 1169, 438, 193,
+
+ 193, 193, 442, 193, 441, 193, 193, 193, 450, 1169,
+ 193, 193, 527, 524, 448, 447, 449, 1169, 528, 529,
+ 193, 443, 193, 193, 193, 1169, 193, 193, 1169, 1169,
+ 193, 444, 193, 457, 193, 450, 445, 446, 451, 527,
+ 452, 525, 193, 449, 193, 528, 529, 1169, 443, 193,
+ 1169, 193, 193, 453, 193, 454, 526, 193, 444, 193,
+ 457, 193, 530, 445, 446, 451, 455, 452, 525, 193,
+ 531, 193, 193, 1169, 456, 193, 193, 193, 1169, 193,
+ 453, 193, 454, 526, 193, 458, 532, 459, 193, 530,
+ 460, 193, 193, 455, 533, 193, 193, 531, 461, 193,
+
+ 193, 456, 193, 193, 193, 462, 193, 463, 193, 193,
+ 1169, 193, 458, 532, 459, 485, 1169, 460, 193, 193,
+ 193, 533, 193, 193, 1169, 461, 193, 193, 193, 193,
+ 464, 193, 462, 193, 463, 193, 193, 467, 193, 193,
+ 468, 193, 485, 465, 469, 1169, 534, 193, 193, 1169,
+ 535, 193, 466, 193, 1169, 193, 193, 464, 193, 193,
+ 193, 193, 193, 1169, 467, 536, 193, 468, 193, 1169,
+ 465, 469, 470, 534, 193, 193, 193, 535, 193, 466,
+ 193, 474, 473, 537, 1169, 471, 193, 193, 193, 1169,
+ 472, 538, 536, 498, 193, 193, 193, 1169, 475, 470,
+
+ 193, 193, 476, 193, 193, 539, 193, 193, 474, 473,
+ 537, 477, 471, 193, 1169, 193, 479, 472, 538, 478,
+ 498, 193, 193, 193, 193, 475, 193, 193, 193, 476,
+ 481, 193, 539, 193, 193, 540, 482, 1169, 477, 193,
+ 193, 480, 193, 479, 193, 193, 478, 1169, 193, 541,
+ 193, 193, 486, 193, 193, 193, 487, 481, 483, 193,
+ 1169, 193, 540, 482, 193, 193, 193, 1169, 480, 484,
+ 193, 193, 193, 1169, 488, 193, 541, 193, 193, 486,
+ 193, 193, 1169, 487, 490, 483, 193, 491, 492, 193,
+ 1169, 193, 193, 496, 489, 1169, 484, 193, 193, 193,
+
+ 193, 488, 1169, 493, 542, 193, 497, 193, 1169, 193,
+ 1169, 490, 543, 193, 491, 492, 193, 193, 1169, 193,
+ 496, 489, 193, 544, 500, 193, 193, 193, 193, 494,
+ 493, 542, 499, 497, 545, 495, 193, 193, 546, 543,
+ 193, 547, 193, 510, 193, 511, 193, 548, 193, 193,
+ 544, 500, 1169, 1169, 1169, 193, 494, 1169, 1169, 499,
+ 512, 545, 495, 549, 193, 546, 550, 551, 547, 193,
+ 510, 552, 511, 553, 548, 193, 275, 275, 275, 275,
+ 275, 275, 275, 275, 275, 275, 554, 512, 555, 556,
+ 549, 558, 559, 550, 551, 560, 561, 562, 552, 557,
+
+ 553, 563, 564, 565, 566, 567, 568, 569, 570, 571,
+ 572, 573, 574, 554, 575, 555, 556, 576, 558, 559,
+ 577, 578, 560, 561, 562, 579, 557, 580, 563, 564,
+ 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
+ 581, 575, 582, 583, 576, 584, 585, 577, 578, 586,
+ 587, 588, 579, 589, 580, 590, 591, 592, 593, 594,
+ 595, 598, 596, 599, 600, 601, 602, 581, 603, 582,
+ 583, 597, 584, 585, 604, 606, 586, 587, 588, 607,
+ 589, 610, 590, 591, 592, 593, 594, 595, 598, 596,
+ 599, 600, 601, 602, 611, 603, 605, 1169, 597, 608,
+
+ 193, 604, 606, 609, 613, 193, 607, 1169, 610, 389,
+ 389, 389, 389, 389, 389, 389, 389, 389, 389, 614,
+ 193, 611, 193, 605, 193, 193, 608, 193, 193, 615,
+ 609, 613, 193, 616, 193, 1169, 1169, 193, 724, 193,
+ 1169, 725, 193, 193, 1169, 726, 614, 193, 193, 193,
+ 1169, 193, 193, 617, 193, 193, 615, 193, 193, 193,
+ 616, 193, 618, 193, 193, 724, 193, 193, 725, 193,
+ 193, 621, 726, 622, 620, 193, 193, 619, 193, 193,
+ 617, 193, 193, 727, 193, 193, 193, 193, 623, 618,
+ 193, 193, 625, 193, 193, 624, 193, 193, 621, 626,
+
+ 622, 620, 193, 193, 619, 193, 193, 193, 631, 193,
+ 727, 193, 627, 728, 193, 623, 193, 193, 193, 625,
+ 193, 629, 624, 193, 193, 193, 626, 628, 193, 193,
+ 630, 1169, 1169, 193, 193, 631, 193, 635, 193, 627,
+ 728, 193, 193, 193, 193, 193, 193, 632, 629, 633,
+ 634, 1169, 193, 193, 628, 193, 638, 630, 193, 639,
+ 193, 193, 193, 193, 635, 1169, 193, 636, 193, 193,
+ 1169, 643, 193, 193, 632, 193, 633, 634, 193, 193,
+ 193, 641, 637, 638, 193, 193, 639, 193, 193, 193,
+ 640, 193, 193, 193, 636, 193, 193, 644, 643, 729,
+
+ 645, 193, 193, 642, 193, 193, 193, 730, 641, 637,
+ 1169, 193, 193, 646, 193, 193, 193, 640, 193, 193,
+ 193, 193, 193, 193, 644, 1169, 729, 645, 193, 193,
+ 642, 193, 193, 651, 730, 193, 648, 193, 731, 193,
+ 646, 193, 193, 193, 732, 1169, 647, 193, 193, 193,
+ 649, 1169, 193, 193, 652, 650, 193, 193, 193, 193,
+ 651, 193, 193, 648, 193, 731, 193, 193, 193, 656,
+ 733, 732, 193, 647, 653, 654, 193, 649, 193, 193,
+ 193, 652, 650, 193, 193, 193, 193, 193, 193, 1169,
+ 655, 193, 193, 193, 193, 193, 656, 733, 658, 193,
+
+ 193, 653, 654, 193, 659, 193, 193, 657, 1169, 1169,
+ 193, 193, 1169, 193, 193, 193, 193, 655, 193, 193,
+ 193, 660, 193, 734, 664, 658, 193, 193, 1169, 661,
+ 193, 659, 1169, 193, 657, 193, 193, 665, 193, 193,
+ 666, 662, 193, 193, 193, 1169, 735, 193, 660, 663,
+ 734, 664, 193, 193, 193, 193, 661, 193, 1169, 193,
+ 193, 670, 193, 193, 665, 667, 193, 666, 662, 193,
+ 669, 193, 193, 735, 193, 668, 663, 1169, 193, 193,
+ 672, 193, 193, 1169, 193, 193, 193, 193, 670, 193,
+ 193, 675, 667, 671, 673, 193, 193, 669, 193, 193,
+
+ 193, 193, 668, 674, 193, 193, 193, 672, 676, 193,
+ 193, 677, 193, 1169, 193, 193, 193, 193, 675, 736,
+ 671, 673, 193, 193, 193, 193, 193, 193, 193, 193,
+ 674, 193, 193, 193, 193, 676, 193, 193, 677, 678,
+ 193, 193, 193, 193, 680, 193, 736, 679, 193, 684,
+ 193, 193, 193, 193, 683, 193, 193, 193, 682, 193,
+ 193, 193, 685, 1169, 681, 193, 678, 193, 1169, 193,
+ 193, 680, 193, 193, 679, 193, 684, 193, 1169, 193,
+ 690, 683, 193, 1169, 193, 682, 686, 193, 193, 685,
+ 193, 681, 193, 193, 193, 691, 193, 687, 193, 193,
+
+ 193, 1169, 737, 1169, 193, 688, 689, 690, 193, 193,
+ 193, 738, 1169, 686, 193, 193, 193, 193, 193, 193,
+ 193, 193, 691, 1169, 687, 193, 193, 193, 695, 737,
+ 693, 692, 688, 689, 739, 193, 193, 193, 738, 697,
+ 193, 193, 193, 193, 193, 193, 193, 193, 193, 694,
+ 696, 1169, 193, 193, 193, 695, 1169, 693, 692, 193,
+ 193, 739, 193, 193, 193, 1169, 697, 193, 699, 193,
+ 698, 193, 193, 193, 193, 193, 694, 696, 193, 193,
+ 193, 193, 740, 193, 1169, 1169, 193, 193, 701, 193,
+ 1169, 193, 193, 700, 702, 699, 705, 698, 193, 193,
+
+ 193, 193, 193, 193, 193, 193, 741, 703, 193, 740,
+ 193, 704, 193, 1169, 742, 701, 193, 193, 1169, 193,
+ 700, 702, 193, 705, 193, 193, 706, 707, 193, 193,
+ 193, 193, 743, 741, 703, 193, 708, 193, 704, 193,
+ 193, 742, 712, 193, 193, 711, 193, 193, 193, 193,
+ 709, 193, 710, 706, 707, 193, 744, 713, 1169, 743,
+ 193, 1169, 193, 708, 193, 193, 193, 193, 193, 712,
+ 193, 1169, 711, 193, 193, 193, 715, 709, 193, 710,
+ 1169, 714, 193, 744, 713, 193, 193, 193, 717, 1169,
+ 193, 193, 193, 193, 193, 193, 193, 193, 716, 721,
+
+ 719, 718, 745, 715, 720, 193, 193, 722, 714, 746,
+ 747, 193, 193, 193, 193, 717, 193, 193, 193, 748,
+ 749, 193, 750, 193, 751, 716, 721, 719, 718, 745,
+ 752, 720, 753, 193, 722, 754, 746, 747, 193, 755,
+ 756, 193, 757, 193, 758, 759, 748, 749, 760, 750,
+ 761, 751, 762, 763, 764, 765, 768, 752, 769, 753,
+ 770, 771, 754, 766, 772, 773, 755, 756, 774, 757,
+ 775, 758, 759, 776, 767, 760, 777, 761, 778, 762,
+ 763, 764, 765, 768, 779, 769, 780, 770, 771, 781,
+ 766, 772, 773, 782, 783, 774, 784, 775, 785, 786,
+
+ 776, 767, 787, 777, 788, 778, 789, 790, 791, 792,
+ 793, 779, 794, 780, 795, 796, 781, 797, 798, 799,
+ 782, 783, 800, 784, 801, 785, 786, 802, 803, 787,
+ 804, 788, 805, 789, 790, 791, 792, 793, 806, 794,
+ 807, 795, 796, 193, 797, 798, 799, 1169, 193, 800,
+ 1169, 801, 193, 193, 802, 803, 809, 804, 193, 805,
+ 1169, 810, 815, 193, 193, 806, 894, 807, 193, 1169,
+ 193, 813, 811, 812, 193, 193, 895, 193, 193, 193,
+ 193, 1169, 193, 809, 193, 193, 814, 193, 810, 815,
+ 193, 193, 816, 894, 193, 193, 193, 193, 813, 811,
+
+ 812, 193, 817, 895, 193, 193, 193, 193, 193, 193,
+ 193, 193, 819, 814, 193, 1169, 193, 1169, 818, 816,
+ 1169, 193, 193, 193, 193, 896, 193, 193, 193, 817,
+ 193, 193, 1169, 193, 193, 193, 193, 193, 1169, 819,
+ 820, 193, 193, 193, 193, 818, 821, 193, 1169, 193,
+ 822, 193, 896, 193, 193, 193, 193, 193, 193, 823,
+ 193, 193, 193, 193, 193, 193, 1169, 820, 193, 193,
+ 825, 193, 824, 821, 193, 193, 826, 822, 193, 1169,
+ 193, 1169, 193, 193, 1169, 193, 823, 193, 193, 193,
+ 827, 193, 193, 193, 828, 193, 193, 825, 193, 824,
+
+ 831, 1169, 193, 826, 193, 1169, 829, 193, 830, 193,
+ 193, 832, 193, 193, 193, 1169, 193, 827, 193, 193,
+ 193, 828, 193, 193, 193, 193, 1169, 831, 193, 1169,
+ 193, 193, 839, 829, 193, 830, 193, 193, 832, 193,
+ 193, 193, 193, 193, 835, 193, 193, 833, 193, 1169,
+ 193, 193, 193, 834, 837, 193, 193, 193, 193, 839,
+ 838, 193, 193, 193, 193, 836, 193, 1169, 193, 193,
+ 193, 835, 841, 193, 833, 193, 193, 193, 193, 193,
+ 834, 837, 193, 193, 193, 193, 193, 838, 193, 193,
+ 842, 193, 836, 193, 193, 193, 193, 193, 897, 841,
+
+ 193, 840, 193, 193, 193, 193, 193, 193, 1169, 193,
+ 193, 193, 193, 193, 193, 193, 898, 842, 843, 844,
+ 193, 193, 193, 193, 193, 897, 1169, 193, 840, 193,
+ 193, 193, 193, 193, 193, 846, 845, 193, 193, 193,
+ 193, 193, 193, 898, 1169, 843, 844, 1169, 193, 193,
+ 1169, 193, 193, 847, 193, 193, 899, 193, 193, 193,
+ 193, 849, 846, 845, 193, 193, 193, 193, 193, 193,
+ 193, 848, 193, 853, 193, 193, 193, 850, 851, 193,
+ 847, 1169, 193, 899, 193, 193, 193, 193, 849, 852,
+ 193, 193, 193, 193, 193, 193, 193, 193, 848, 193,
+
+ 853, 193, 1169, 193, 850, 851, 193, 193, 193, 193,
+ 856, 193, 193, 193, 900, 855, 852, 193, 1169, 193,
+ 901, 193, 854, 193, 1169, 1169, 193, 193, 193, 193,
+ 193, 193, 193, 193, 193, 193, 193, 856, 902, 193,
+ 193, 900, 855, 859, 903, 857, 858, 901, 193, 854,
+ 1169, 193, 193, 193, 193, 193, 193, 193, 193, 193,
+ 193, 860, 861, 862, 193, 902, 1169, 193, 193, 1169,
+ 859, 903, 857, 858, 1169, 193, 193, 193, 193, 193,
+ 193, 193, 866, 193, 193, 865, 193, 193, 860, 861,
+ 862, 193, 1169, 863, 864, 193, 193, 193, 867, 193,
+
+ 193, 193, 193, 193, 193, 1169, 193, 193, 193, 866,
+ 193, 193, 865, 193, 904, 1169, 905, 1169, 1169, 193,
+ 863, 864, 193, 193, 193, 867, 193, 193, 193, 193,
+ 193, 193, 193, 193, 193, 906, 193, 871, 868, 1169,
+ 193, 904, 872, 905, 869, 873, 193, 870, 1169, 193,
+ 193, 193, 193, 874, 193, 193, 193, 193, 193, 193,
+ 193, 193, 906, 193, 871, 868, 193, 193, 875, 872,
+ 877, 869, 873, 1169, 870, 193, 193, 193, 193, 193,
+ 874, 193, 193, 193, 193, 193, 193, 193, 193, 876,
+ 193, 1169, 1169, 193, 878, 875, 193, 877, 193, 193,
+
+ 193, 1169, 193, 193, 193, 193, 1169, 881, 193, 193,
+ 1169, 193, 193, 193, 879, 193, 876, 193, 193, 193,
+ 193, 878, 880, 193, 193, 193, 193, 193, 193, 193,
+ 1169, 193, 193, 882, 881, 193, 193, 193, 884, 193,
+ 1169, 879, 193, 887, 193, 193, 193, 193, 193, 880,
+ 886, 193, 907, 883, 885, 193, 193, 193, 193, 193,
+ 882, 888, 193, 193, 193, 884, 193, 193, 193, 193,
+ 887, 193, 193, 193, 1169, 193, 889, 886, 193, 907,
+ 883, 885, 193, 908, 193, 193, 193, 193, 888, 193,
+ 193, 891, 193, 193, 193, 193, 193, 909, 890, 193,
+
+ 193, 193, 193, 889, 910, 193, 911, 912, 913, 193,
+ 908, 193, 914, 915, 193, 892, 193, 916, 891, 193,
+ 193, 193, 917, 193, 909, 890, 918, 919, 193, 193,
+ 920, 910, 921, 911, 912, 913, 922, 923, 193, 914,
+ 915, 926, 892, 193, 916, 927, 928, 924, 193, 917,
+ 925, 929, 930, 918, 919, 931, 932, 920, 933, 921,
+ 934, 935, 936, 922, 923, 937, 938, 939, 926, 940,
+ 941, 942, 927, 928, 924, 943, 944, 925, 929, 930,
+ 945, 946, 931, 932, 947, 933, 948, 934, 935, 936,
+ 949, 950, 937, 938, 939, 951, 940, 941, 942, 952,
+
+ 953, 954, 943, 944, 193, 193, 1018, 945, 946, 193,
+ 1169, 947, 1169, 948, 193, 957, 1169, 949, 950, 193,
+ 958, 960, 951, 193, 193, 193, 952, 953, 954, 193,
+ 956, 193, 193, 1018, 193, 193, 193, 959, 193, 193,
+ 193, 193, 957, 193, 1169, 1019, 193, 958, 960, 193,
+ 193, 193, 193, 193, 193, 964, 193, 956, 193, 963,
+ 1169, 193, 193, 961, 959, 193, 193, 193, 962, 193,
+ 193, 193, 1019, 193, 193, 193, 193, 193, 1169, 193,
+ 193, 193, 964, 965, 967, 193, 963, 966, 193, 969,
+ 961, 193, 1020, 193, 1169, 962, 193, 193, 193, 193,
+
+ 193, 193, 193, 193, 193, 193, 193, 970, 193, 193,
+ 965, 967, 968, 193, 966, 193, 969, 1021, 193, 1020,
+ 193, 973, 193, 193, 193, 193, 193, 1169, 1169, 1169,
+ 193, 1169, 193, 974, 970, 193, 193, 971, 193, 968,
+ 193, 193, 193, 1169, 1021, 1169, 193, 972, 973, 193,
+ 193, 1022, 193, 193, 979, 193, 193, 193, 193, 193,
+ 974, 975, 1169, 978, 971, 193, 193, 193, 193, 193,
+ 976, 977, 193, 193, 972, 193, 193, 193, 1022, 193,
+ 193, 979, 193, 193, 193, 193, 193, 193, 975, 193,
+ 978, 193, 193, 193, 193, 193, 981, 976, 977, 193,
+
+ 193, 193, 193, 193, 193, 193, 193, 982, 1023, 193,
+ 980, 193, 1169, 193, 193, 193, 193, 1169, 193, 193,
+ 193, 193, 193, 981, 193, 193, 193, 193, 193, 985,
+ 193, 1169, 193, 193, 982, 1023, 193, 980, 193, 983,
+ 193, 193, 193, 1169, 193, 984, 193, 193, 193, 193,
+ 193, 193, 193, 193, 193, 986, 985, 193, 987, 193,
+ 193, 193, 1169, 193, 193, 1169, 983, 193, 193, 989,
+ 988, 193, 984, 193, 193, 193, 193, 193, 193, 193,
+ 1169, 193, 986, 193, 193, 987, 193, 193, 193, 193,
+ 193, 193, 990, 193, 193, 193, 989, 988, 193, 991,
+
+ 1169, 193, 193, 193, 193, 193, 193, 992, 993, 193,
+ 193, 193, 994, 193, 193, 1169, 193, 997, 1024, 990,
+ 193, 1169, 193, 193, 193, 193, 991, 193, 193, 193,
+ 193, 193, 193, 193, 992, 993, 193, 193, 193, 994,
+ 193, 995, 998, 1169, 997, 1024, 996, 193, 193, 1025,
+ 193, 193, 193, 193, 193, 193, 193, 999, 193, 193,
+ 193, 193, 1000, 1026, 193, 193, 193, 1002, 995, 998,
+ 1001, 193, 193, 996, 193, 193, 1025, 1169, 1169, 193,
+ 193, 193, 1003, 193, 999, 193, 193, 193, 193, 1000,
+ 1026, 193, 1004, 193, 1002, 1169, 193, 1001, 193, 193,
+
+ 1008, 1005, 193, 193, 193, 193, 193, 193, 193, 1003,
+ 193, 1169, 1169, 193, 193, 1006, 193, 1009, 193, 1004,
+ 1007, 193, 193, 193, 193, 193, 193, 1008, 1005, 193,
+ 193, 193, 193, 193, 193, 1010, 1011, 193, 1012, 193,
+ 193, 193, 1006, 193, 1009, 1169, 1014, 1007, 193, 193,
+ 193, 193, 193, 193, 1013, 193, 193, 193, 193, 193,
+ 193, 1027, 1010, 1011, 193, 1012, 193, 193, 193, 193,
+ 193, 1016, 193, 1014, 1028, 193, 193, 193, 1015, 1029,
+ 1030, 1013, 193, 193, 193, 193, 193, 193, 1027, 193,
+ 1031, 1032, 193, 1033, 1034, 193, 193, 193, 1016, 193,
+
+ 1035, 1028, 193, 193, 1036, 1015, 1029, 1030, 1037, 1038,
+ 1039, 1040, 1041, 1042, 1043, 1044, 193, 1031, 1032, 193,
+ 1033, 1034, 193, 1045, 1046, 1047, 1048, 1035, 1049, 1050,
+ 1051, 1036, 1052, 1053, 1055, 1037, 1038, 1039, 1040, 1041,
+ 1042, 1043, 1044, 193, 1057, 193, 1092, 193, 1169, 193,
+ 1045, 1046, 1047, 1048, 193, 1049, 1050, 1051, 1056, 1052,
+ 1053, 1055, 1058, 193, 193, 193, 193, 193, 193, 193,
+ 193, 1057, 193, 1092, 193, 1060, 193, 193, 1093, 193,
+ 1059, 193, 1169, 1094, 1169, 1056, 193, 1061, 193, 1058,
+ 193, 193, 193, 193, 193, 193, 193, 193, 1062, 193,
+
+ 193, 193, 1060, 193, 193, 1093, 193, 1059, 1063, 193,
+ 1094, 193, 1169, 193, 1061, 193, 1065, 193, 1064, 193,
+ 193, 193, 193, 193, 193, 1062, 193, 193, 193, 193,
+ 193, 193, 1066, 193, 193, 1063, 193, 193, 193, 193,
+ 1169, 1169, 193, 1065, 193, 1064, 193, 193, 193, 193,
+ 193, 1067, 193, 193, 193, 193, 193, 193, 193, 1066,
+ 193, 193, 1169, 193, 193, 193, 193, 193, 193, 193,
+ 1069, 193, 193, 193, 1068, 193, 193, 193, 1067, 193,
+ 193, 193, 193, 193, 193, 193, 1071, 193, 193, 1070,
+ 193, 193, 193, 193, 193, 193, 193, 1069, 193, 193,
+
+ 193, 1068, 193, 193, 193, 1072, 193, 193, 193, 193,
+ 193, 193, 193, 1071, 193, 193, 1070, 193, 193, 1169,
+ 193, 1073, 1075, 193, 1074, 193, 193, 193, 193, 193,
+ 1169, 1095, 1072, 193, 193, 193, 193, 193, 193, 1077,
+ 193, 193, 193, 1096, 193, 193, 193, 1169, 1073, 1075,
+ 1169, 1074, 193, 193, 193, 193, 193, 1076, 1095, 193,
+ 1078, 193, 193, 1079, 193, 193, 1077, 193, 193, 193,
+ 1096, 1169, 193, 193, 1080, 193, 193, 193, 193, 193,
+ 1169, 1169, 1169, 1097, 1076, 193, 193, 1078, 193, 193,
+ 1079, 1081, 193, 1082, 1098, 193, 193, 193, 193, 193,
+
+ 1169, 1080, 193, 193, 193, 193, 193, 193, 193, 1084,
+ 1097, 1099, 193, 193, 1083, 1085, 1169, 193, 1081, 193,
+ 1082, 1098, 193, 193, 193, 193, 193, 193, 193, 1086,
+ 193, 193, 1087, 193, 193, 193, 1084, 193, 1099, 193,
+ 193, 1083, 1085, 193, 193, 193, 193, 193, 193, 1100,
+ 193, 193, 1101, 1169, 193, 193, 1086, 193, 193, 1087,
+ 193, 1088, 1169, 193, 193, 193, 193, 193, 193, 193,
+ 193, 1089, 193, 193, 193, 193, 1100, 193, 193, 1101,
+ 1090, 1102, 1103, 1104, 1105, 1106, 193, 1169, 1088, 193,
+ 193, 1169, 193, 193, 193, 193, 193, 193, 1089, 193,
+
+ 193, 1108, 193, 193, 1169, 1109, 193, 1090, 1102, 1103,
+ 1104, 1105, 1106, 193, 1110, 193, 193, 193, 193, 193,
+ 193, 193, 193, 193, 193, 193, 193, 193, 1108, 193,
+ 193, 1111, 1109, 193, 1169, 193, 193, 193, 193, 193,
+ 193, 1110, 193, 1169, 193, 193, 193, 193, 193, 193,
+ 193, 193, 193, 193, 193, 1112, 193, 193, 1111, 193,
+ 193, 193, 193, 193, 193, 193, 193, 193, 1113, 193,
+ 193, 193, 193, 193, 193, 1169, 1114, 1169, 193, 1124,
+ 193, 193, 1112, 193, 193, 1115, 193, 193, 193, 193,
+ 193, 193, 193, 1116, 193, 1113, 193, 193, 193, 193,
+
+ 193, 1125, 193, 1114, 193, 1169, 1124, 193, 193, 1169,
+ 193, 1126, 1115, 193, 193, 193, 193, 193, 193, 193,
+ 1116, 193, 193, 193, 193, 1117, 193, 193, 1125, 193,
+ 193, 193, 1118, 1169, 193, 193, 1119, 193, 1126, 1127,
+ 193, 193, 193, 193, 1122, 193, 193, 193, 193, 193,
+ 193, 193, 1117, 193, 193, 1120, 193, 193, 193, 1118,
+ 1121, 1128, 193, 1119, 193, 193, 1127, 193, 193, 1129,
+ 193, 1122, 193, 193, 193, 193, 193, 1130, 193, 193,
+ 193, 193, 1120, 193, 1169, 193, 1169, 1121, 1128, 193,
+ 1169, 193, 193, 1132, 193, 193, 1129, 193, 193, 193,
+
+ 193, 193, 193, 193, 1130, 193, 193, 193, 193, 193,
+ 193, 193, 1133, 1134, 1169, 193, 193, 193, 193, 1140,
+ 1132, 193, 193, 193, 193, 193, 193, 193, 193, 193,
+ 193, 193, 1141, 193, 1135, 193, 193, 193, 193, 1133,
+ 1134, 193, 193, 1136, 193, 193, 1140, 193, 193, 193,
+ 193, 1138, 193, 193, 1142, 193, 1144, 193, 193, 1141,
+ 193, 1135, 193, 1137, 193, 193, 1169, 193, 193, 193,
+ 1136, 1169, 193, 193, 193, 193, 193, 1148, 1138, 193,
+ 193, 1142, 193, 1144, 193, 193, 193, 1145, 193, 193,
+ 1137, 193, 193, 193, 193, 1169, 193, 193, 1146, 193,
+
+ 193, 193, 193, 193, 1148, 1169, 193, 193, 193, 1169,
+ 1150, 193, 193, 193, 1145, 193, 193, 193, 1169, 1169,
+ 193, 193, 1169, 1169, 193, 1146, 1169, 193, 193, 1169,
+ 1169, 1169, 1169, 193, 193, 193, 1169, 1150, 1169, 1169,
+ 1169, 1169, 1169, 1169, 193, 1169, 1169, 1169, 193, 1169,
+ 1169, 1169, 1169, 1169, 193, 46, 46, 46, 46, 46,
+ 88, 1169, 1169, 88, 88, 178, 178, 178, 1169, 178,
+ 180, 1169, 180, 180, 180, 183, 1169, 183, 183, 183,
+ 193, 1169, 193, 193, 193, 7, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169
} ;
-static const flex_int16_t yy_chk[4627] =
+static const flex_int16_t yy_chk[4763] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1549,43 +1573,43 @@ static const flex_int16_t yy_chk[4627] =
5, 5, 9, 9, 10, 10, 15, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 15, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 18,
- 18, 21, 22, 21, 24, 1140, 23, 30, 24, 21,
- 1134, 21, 24, 23, 31, 21, 21, 44, 24, 99,
+ 18, 21, 22, 21, 24, 1172, 23, 30, 24, 21,
+ 1166, 21, 24, 23, 31, 21, 21, 44, 24, 99,
- 23, 24, 22, 23, 1133, 25, 1132, 25, 21, 22,
+ 23, 24, 22, 23, 1165, 25, 1164, 25, 21, 22,
21, 24, 25, 23, 30, 24, 21, 25, 21, 24,
23, 31, 21, 21, 44, 24, 99, 23, 24, 22,
- 23, 27, 25, 28, 25, 1131, 32, 27, 1130, 25,
+ 23, 27, 25, 28, 25, 1163, 32, 27, 1162, 25,
32, 28, 29, 42, 25, 26, 32, 28, 29, 29,
- 29, 42, 1129, 26, 1128, 29, 26, 1127, 27, 26,
- 28, 1126, 26, 32, 27, 26, 1125, 32, 28, 29,
- 42, 1124, 26, 32, 28, 29, 29, 29, 42, 34,
+ 29, 42, 1161, 26, 1160, 29, 26, 1159, 27, 26,
+ 28, 1158, 26, 32, 27, 26, 1157, 32, 28, 29,
+ 42, 1156, 26, 32, 28, 29, 29, 29, 42, 34,
26, 33, 29, 26, 36, 33, 26, 43, 43, 26,
- 35, 33, 26, 34, 1123, 36, 49, 49, 35, 34,
+ 35, 33, 26, 34, 1155, 36, 49, 49, 35, 34,
- 34, 36, 35, 38, 1122, 35, 34, 38, 33, 50,
- 50, 36, 33, 38, 43, 43, 1121, 35, 33, 41,
+ 34, 36, 35, 38, 1154, 35, 34, 38, 33, 50,
+ 50, 36, 33, 38, 43, 43, 1153, 35, 33, 41,
34, 41, 36, 100, 41, 35, 34, 34, 36, 35,
38, 39, 35, 39, 38, 103, 39, 71, 55, 104,
- 38, 58, 58, 39, 39, 1120, 41, 1119, 41, 55,
- 100, 41, 86, 86, 67, 70, 108, 71, 39, 1117,
+ 38, 58, 58, 39, 39, 1152, 41, 1151, 41, 55,
+ 100, 41, 86, 86, 67, 70, 108, 71, 39, 1149,
39, 67, 103, 39, 71, 70, 104, 67, 111, 101,
39, 39, 40, 111, 67, 70, 40, 101, 107, 40,
40, 67, 70, 108, 71, 107, 40, 114, 67, 40,
- 181, 181, 70, 1115, 67, 111, 101, 1111, 1107, 40,
+ 181, 181, 70, 1147, 67, 111, 101, 1143, 1139, 40,
- 111, 67, 70, 40, 101, 107, 40, 40, 1100, 1093,
- 1078, 1063, 107, 40, 114, 1029, 40, 56, 56, 56,
+ 111, 67, 70, 40, 101, 107, 40, 40, 1131, 1123,
+ 1107, 1091, 107, 40, 114, 1054, 40, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 57, 57, 57,
57, 57, 57, 57, 57, 57, 57, 57, 61, 61,
- 995, 61, 61, 61, 61, 61, 61, 77, 68, 84,
- 936, 877, 68, 795, 713, 115, 68, 61, 61, 61,
+ 1017, 61, 61, 61, 61, 61, 61, 77, 68, 84,
+ 955, 893, 68, 808, 723, 115, 68, 61, 61, 61,
72, 116, 68, 61, 72, 61, 117, 77, 118, 84,
72, 61, 68, 61, 77, 68, 84, 61, 61, 68,
- 72, 83, 115, 68, 83, 83, 605, 72, 116, 68,
+ 72, 83, 115, 68, 83, 83, 612, 72, 116, 68,
61, 72, 61, 117, 77, 118, 84, 72, 61, 68,
- 61, 83, 120, 497, 61, 61, 386, 72, 83, 274,
+ 61, 83, 120, 501, 61, 61, 388, 72, 83, 274,
185, 83, 83, 61, 62, 62, 183, 62, 62, 62,
62, 62, 62, 90, 88, 85, 73, 76, 83, 120,
73, 76, 60, 62, 62, 62, 73, 110, 76, 78,
@@ -1593,452 +1617,467 @@ static const flex_int16_t yy_chk[4627] =
81, 76, 81, 73, 76, 81, 122, 73, 76, 78,
62, 81, 59, 73, 110, 76, 78, 62, 81, 102,
78, 76, 102, 73, 110, 121, 78, 81, 76, 81,
- 52, 51, 81, 122, 105, 105, 78, 62, 81, 62,
- 63, 123, 82, 124, 63, 125, 82, 63, 105, 126,
-
- 82, 109, 109, 109, 63, 109, 47, 63, 113, 113,
- 127, 105, 105, 129, 63, 45, 82, 63, 123, 82,
- 124, 63, 125, 82, 63, 105, 126, 82, 109, 109,
- 109, 63, 109, 112, 63, 113, 113, 127, 112, 20,
- 129, 63, 64, 82, 112, 19, 64, 130, 132, 128,
+ 52, 123, 81, 122, 105, 105, 78, 62, 81, 62,
+ 63, 124, 82, 125, 63, 126, 82, 63, 105, 127,
+
+ 82, 109, 109, 109, 63, 109, 51, 63, 123, 113,
+ 113, 105, 105, 129, 63, 47, 82, 63, 124, 82,
+ 125, 63, 126, 82, 63, 105, 127, 82, 109, 109,
+ 109, 63, 109, 112, 63, 112, 113, 113, 112, 45,
+ 129, 63, 64, 82, 112, 20, 64, 130, 132, 128,
64, 112, 128, 133, 135, 119, 64, 119, 136, 64,
- 112, 119, 137, 11, 138, 112, 64, 7, 119, 64,
- 141, 112, 119, 64, 130, 132, 128, 64, 112, 128,
- 133, 135, 119, 64, 119, 136, 64, 4, 119, 137,
- 134, 138, 142, 64, 65, 119, 139, 141, 139, 119,
+ 112, 119, 112, 19, 137, 112, 64, 11, 119, 64,
+ 138, 112, 119, 64, 130, 132, 128, 64, 112, 128,
+ 133, 135, 119, 64, 119, 136, 64, 7, 119, 141,
+ 134, 137, 142, 64, 65, 119, 139, 138, 139, 119,
134, 65, 143, 65, 144, 134, 134, 140, 65, 140,
- 145, 146, 147, 65, 65, 3, 148, 134, 150, 142,
- 140, 65, 151, 139, 152, 139, 0, 134, 65, 143,
+ 145, 146, 147, 65, 65, 4, 141, 134, 148, 142,
+ 140, 65, 150, 139, 151, 139, 3, 134, 65, 143,
65, 144, 134, 134, 140, 65, 140, 145, 146, 147,
- 65, 65, 66, 148, 153, 150, 66, 140, 154, 151,
- 66, 152, 154, 66, 156, 155, 66, 157, 158, 66,
- 155, 159, 66, 160, 161, 162, 66, 0, 0, 66,
- 159, 153, 163, 66, 0, 154, 0, 66, 159, 154,
- 66, 156, 155, 66, 157, 158, 66, 155, 159, 66,
- 160, 161, 162, 66, 69, 69, 164, 159, 165, 163,
-
- 166, 69, 69, 69, 167, 159, 168, 164, 69, 169,
- 170, 171, 169, 174, 69, 0, 175, 0, 172, 0,
- 176, 69, 69, 164, 172, 165, 168, 166, 69, 69,
- 69, 167, 193, 168, 164, 69, 169, 170, 171, 169,
- 174, 69, 74, 175, 173, 172, 74, 176, 277, 194,
- 194, 172, 193, 168, 0, 279, 74, 173, 0, 193,
- 280, 282, 74, 74, 284, 0, 74, 0, 0, 74,
- 194, 173, 0, 74, 0, 277, 194, 194, 0, 193,
- 0, 195, 279, 74, 173, 196, 198, 280, 282, 74,
- 74, 284, 196, 74, 75, 75, 195, 194, 201, 198,
-
- 196, 195, 199, 75, 199, 196, 198, 75, 195, 285,
- 75, 0, 196, 198, 75, 0, 286, 0, 201, 196,
- 0, 75, 75, 195, 199, 201, 198, 196, 195, 199,
- 75, 199, 196, 198, 75, 197, 285, 75, 197, 197,
- 287, 75, 79, 286, 79, 201, 289, 79, 200, 200,
- 200, 199, 290, 291, 79, 79, 0, 0, 0, 197,
- 0, 0, 197, 200, 79, 197, 197, 287, 200, 79,
- 292, 79, 0, 289, 79, 200, 200, 200, 215, 290,
- 291, 79, 79, 205, 203, 215, 197, 202, 203, 0,
- 200, 79, 80, 205, 202, 200, 80, 292, 215, 80,
-
- 80, 202, 293, 205, 294, 215, 80, 202, 203, 80,
- 205, 203, 215, 295, 202, 203, 80, 0, 0, 80,
- 205, 202, 0, 80, 0, 215, 80, 80, 202, 293,
- 205, 294, 0, 80, 202, 203, 80, 0, 0, 0,
- 295, 0, 0, 80, 91, 91, 91, 91, 91, 91,
+ 65, 65, 66, 152, 153, 148, 66, 140, 154, 150,
+ 66, 151, 154, 66, 156, 157, 66, 158, 0, 66,
+ 160, 0, 66, 0, 161, 162, 66, 0, 0, 66,
+ 152, 153, 155, 66, 0, 154, 0, 66, 0, 154,
+ 66, 156, 157, 66, 158, 155, 66, 160, 159, 66,
+ 155, 161, 162, 66, 69, 69, 163, 159, 164, 155,
+
+ 165, 69, 69, 69, 166, 159, 167, 169, 69, 164,
+ 169, 0, 155, 170, 69, 159, 171, 155, 168, 0,
+ 172, 69, 69, 163, 159, 164, 172, 165, 69, 69,
+ 69, 166, 159, 167, 169, 69, 164, 169, 168, 0,
+ 170, 69, 74, 171, 173, 168, 74, 172, 174, 175,
+ 176, 277, 193, 172, 0, 0, 74, 173, 0, 279,
+ 194, 194, 74, 74, 280, 168, 74, 0, 0, 74,
+ 0, 173, 193, 74, 282, 174, 175, 176, 277, 193,
+ 0, 194, 195, 74, 173, 196, 279, 194, 194, 74,
+ 74, 280, 196, 74, 75, 75, 199, 195, 199, 193,
+
+ 196, 282, 195, 75, 0, 196, 0, 75, 194, 195,
+ 75, 0, 196, 198, 75, 0, 284, 0, 199, 196,
+ 0, 75, 75, 199, 195, 199, 198, 196, 0, 195,
+ 75, 201, 196, 198, 75, 197, 0, 75, 197, 197,
+ 198, 75, 79, 284, 79, 199, 285, 79, 200, 200,
+ 200, 201, 286, 198, 79, 79, 0, 0, 201, 197,
+ 198, 0, 197, 200, 79, 197, 197, 0, 200, 79,
+ 287, 79, 0, 285, 79, 200, 200, 200, 201, 286,
+ 0, 79, 79, 205, 203, 218, 197, 202, 203, 0,
+ 200, 79, 80, 205, 202, 200, 80, 287, 218, 80,
+
+ 80, 202, 289, 205, 290, 218, 80, 202, 203, 80,
+ 205, 203, 218, 291, 202, 203, 80, 0, 0, 80,
+ 205, 202, 0, 80, 0, 218, 80, 80, 202, 289,
+ 205, 290, 218, 80, 202, 203, 80, 0, 0, 0,
+ 291, 0, 0, 80, 91, 91, 91, 91, 91, 91,
91, 91, 91, 91, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 186, 186, 186, 186, 186,
186, 186, 186, 186, 186, 187, 187, 187, 187, 187,
187, 187, 187, 187, 187, 188, 188, 188, 188, 188,
- 188, 188, 188, 188, 188, 188, 204, 206, 296, 209,
- 208, 210, 297, 204, 204, 204, 0, 204, 0, 298,
- 0, 210, 206, 208, 208, 209, 204, 206, 0, 209,
- 208, 210, 0, 204, 206, 296, 209, 208, 210, 297,
- 204, 204, 204, 213, 204, 213, 298, 211, 210, 206,
- 208, 208, 209, 204, 206, 207, 209, 208, 210, 207,
- 207, 211, 212, 212, 0, 213, 207, 211, 0, 0,
- 213, 216, 213, 207, 211, 217, 299, 301, 216, 207,
- 0, 302, 207, 212, 0, 217, 207, 207, 211, 212,
- 212, 216, 213, 207, 211, 217, 218, 0, 216, 303,
-
- 207, 0, 217, 299, 301, 216, 207, 220, 302, 218,
- 212, 214, 217, 214, 220, 219, 218, 214, 216, 221,
- 0, 0, 217, 218, 214, 219, 303, 220, 214, 221,
- 0, 0, 0, 214, 220, 219, 218, 222, 214, 221,
- 214, 220, 219, 218, 214, 225, 221, 222, 226, 224,
- 304, 214, 219, 223, 220, 214, 221, 222, 224, 227,
- 214, 225, 219, 227, 222, 225, 221, 223, 226, 224,
- 223, 228, 225, 223, 222, 226, 224, 304, 305, 227,
- 223, 306, 228, 0, 222, 224, 227, 308, 225, 0,
- 227, 228, 225, 0, 223, 226, 224, 223, 228, 309,
-
- 223, 230, 0, 232, 0, 305, 227, 0, 306, 228,
- 230, 231, 0, 0, 308, 231, 233, 233, 228, 229,
- 229, 230, 0, 232, 310, 0, 309, 311, 230, 229,
- 232, 231, 236, 234, 229, 229, 233, 230, 231, 234,
- 229, 234, 231, 233, 233, 236, 229, 229, 230, 300,
- 232, 310, 236, 234, 311, 0, 229, 0, 231, 236,
- 234, 229, 229, 233, 300, 237, 234, 229, 234, 235,
- 312, 235, 236, 235, 237, 238, 300, 313, 0, 236,
- 234, 0, 235, 0, 238, 237, 244, 241, 239, 314,
- 240, 300, 237, 235, 241, 238, 235, 312, 235, 0,
-
- 235, 237, 238, 239, 313, 240, 244, 241, 239, 235,
- 240, 238, 237, 244, 241, 239, 314, 240, 247, 242,
- 235, 241, 238, 242, 243, 243, 245, 245, 0, 255,
- 239, 247, 240, 244, 241, 239, 0, 240, 247, 255,
- 246, 315, 0, 242, 243, 247, 242, 245, 0, 255,
- 242, 243, 243, 245, 245, 246, 255, 248, 247, 249,
- 246, 248, 0, 249, 0, 247, 255, 246, 315, 250,
- 242, 243, 316, 251, 245, 251, 255, 253, 250, 249,
- 253, 248, 246, 250, 248, 0, 249, 246, 248, 250,
- 249, 252, 254, 251, 254, 317, 250, 253, 252, 316,
-
- 251, 254, 251, 318, 253, 250, 249, 253, 248, 254,
- 250, 252, 258, 256, 254, 258, 250, 319, 252, 254,
- 251, 254, 317, 257, 253, 252, 256, 257, 254, 259,
- 318, 260, 262, 256, 320, 258, 254, 259, 252, 258,
- 256, 254, 258, 262, 319, 265, 265, 257, 259, 259,
- 257, 260, 262, 256, 257, 0, 259, 261, 260, 262,
- 256, 320, 258, 263, 259, 261, 265, 263, 321, 322,
- 262, 0, 265, 265, 257, 259, 259, 261, 260, 262,
- 269, 264, 266, 263, 261, 264, 266, 263, 264, 0,
- 263, 0, 261, 265, 263, 321, 322, 0, 267, 0,
-
- 269, 264, 266, 268, 261, 267, 270, 269, 264, 266,
- 263, 267, 264, 266, 263, 264, 268, 0, 267, 323,
- 271, 270, 324, 268, 271, 267, 270, 269, 264, 266,
- 268, 0, 267, 270, 0, 0, 0, 0, 267, 0,
- 325, 326, 327, 268, 271, 267, 323, 271, 270, 324,
- 268, 271, 328, 270, 275, 275, 275, 275, 275, 275,
- 275, 275, 275, 275, 288, 329, 288, 325, 326, 327,
- 330, 271, 331, 332, 333, 335, 336, 337, 338, 328,
- 339, 288, 331, 340, 341, 342, 343, 344, 346, 347,
- 348, 288, 329, 288, 349, 350, 351, 330, 352, 331,
-
- 332, 333, 335, 336, 337, 338, 353, 339, 288, 331,
- 340, 341, 342, 343, 344, 346, 347, 348, 354, 355,
- 356, 349, 350, 351, 357, 352, 358, 359, 360, 361,
- 363, 364, 365, 353, 366, 367, 368, 369, 370, 372,
- 373, 374, 375, 374, 376, 354, 355, 356, 377, 373,
- 378, 357, 379, 358, 359, 360, 361, 363, 364, 365,
- 380, 366, 367, 368, 369, 370, 372, 373, 374, 375,
- 374, 376, 381, 383, 382, 377, 373, 378, 382, 379,
- 384, 0, 388, 389, 390, 0, 391, 380, 387, 387,
- 387, 387, 387, 387, 387, 387, 387, 387, 393, 381,
-
- 383, 382, 388, 389, 390, 382, 391, 384, 392, 388,
- 389, 390, 394, 391, 395, 392, 394, 396, 393, 0,
- 397, 498, 0, 0, 397, 393, 0, 396, 392, 388,
- 389, 390, 398, 391, 395, 392, 394, 396, 499, 394,
- 397, 395, 392, 394, 396, 393, 399, 397, 498, 401,
- 398, 397, 398, 399, 396, 392, 0, 0, 0, 398,
- 0, 395, 401, 394, 396, 499, 399, 397, 400, 401,
- 400, 402, 0, 399, 403, 0, 401, 398, 500, 398,
- 399, 501, 403, 405, 404, 400, 407, 402, 0, 401,
- 400, 402, 0, 399, 403, 400, 401, 400, 402, 404,
-
- 407, 403, 408, 405, 404, 500, 407, 0, 501, 403,
- 405, 404, 400, 407, 402, 406, 410, 400, 402, 406,
- 409, 403, 408, 410, 411, 0, 404, 407, 411, 408,
- 405, 404, 0, 407, 409, 0, 410, 412, 414, 406,
- 409, 0, 406, 410, 0, 0, 406, 409, 411, 408,
- 410, 411, 412, 415, 413, 411, 413, 412, 414, 416,
- 502, 409, 416, 410, 412, 414, 406, 409, 415, 0,
- 0, 418, 419, 415, 503, 411, 413, 417, 0, 412,
- 415, 413, 416, 413, 412, 414, 416, 502, 417, 416,
- 420, 418, 419, 421, 420, 415, 423, 417, 418, 419,
-
- 415, 503, 0, 413, 417, 422, 427, 422, 0, 416,
- 423, 0, 0, 421, 420, 417, 423, 420, 418, 419,
- 421, 420, 424, 423, 417, 425, 427, 422, 0, 424,
- 426, 428, 422, 427, 422, 428, 0, 423, 425, 429,
- 421, 420, 424, 423, 426, 425, 0, 429, 504, 424,
- 426, 506, 425, 427, 422, 428, 424, 426, 428, 429,
- 430, 432, 428, 431, 432, 425, 429, 0, 430, 424,
- 431, 426, 425, 433, 429, 504, 434, 426, 506, 434,
- 430, 435, 428, 431, 432, 435, 429, 430, 432, 433,
- 431, 432, 0, 433, 436, 430, 434, 431, 438, 440,
-
- 433, 435, 437, 434, 438, 510, 434, 430, 435, 436,
- 431, 432, 435, 441, 436, 437, 433, 439, 438, 440,
- 433, 436, 437, 434, 0, 438, 440, 439, 435, 437,
- 442, 438, 510, 441, 511, 444, 436, 439, 443, 446,
- 441, 436, 437, 445, 439, 438, 440, 448, 443, 437,
- 442, 444, 445, 447, 439, 444, 0, 442, 443, 446,
- 441, 511, 444, 445, 439, 443, 446, 448, 447, 512,
- 445, 454, 449, 447, 448, 443, 449, 442, 444, 445,
- 447, 0, 444, 450, 450, 443, 446, 454, 514, 451,
- 445, 454, 449, 451, 448, 447, 512, 455, 454, 449,
-
- 447, 515, 457, 449, 450, 452, 453, 452, 453, 516,
- 450, 450, 455, 451, 454, 514, 451, 455, 454, 449,
- 451, 456, 457, 458, 455, 452, 453, 461, 515, 457,
- 458, 450, 452, 453, 452, 453, 516, 456, 459, 455,
- 451, 456, 460, 458, 455, 0, 462, 461, 456, 457,
- 458, 459, 452, 453, 461, 463, 460, 458, 459, 463,
- 0, 465, 460, 0, 456, 459, 462, 464, 456, 460,
- 458, 467, 465, 462, 461, 467, 464, 0, 459, 463,
- 0, 465, 463, 460, 466, 459, 463, 464, 465, 460,
- 468, 518, 466, 462, 464, 467, 471, 519, 467, 465,
-
- 470, 473, 467, 464, 466, 468, 463, 470, 465, 469,
- 468, 466, 469, 474, 464, 472, 471, 468, 518, 466,
- 470, 473, 467, 471, 519, 472, 475, 470, 473, 469,
- 476, 466, 468, 474, 470, 472, 469, 468, 482, 469,
- 474, 0, 472, 471, 475, 476, 475, 470, 473, 477,
- 476, 0, 472, 475, 478, 479, 469, 476, 482, 481,
- 474, 478, 472, 480, 477, 482, 479, 483, 481, 477,
- 520, 475, 476, 475, 478, 479, 477, 476, 480, 481,
- 484, 478, 479, 480, 0, 482, 481, 483, 478, 484,
- 480, 477, 0, 479, 483, 481, 477, 520, 521, 485,
-
- 484, 478, 479, 486, 0, 480, 481, 484, 485, 489,
- 480, 487, 490, 486, 483, 486, 484, 0, 489, 485,
- 488, 487, 0, 486, 488, 521, 485, 484, 490, 489,
- 486, 487, 490, 0, 492, 485, 489, 0, 487, 490,
- 486, 491, 486, 491, 488, 489, 485, 488, 487, 493,
- 486, 488, 492, 494, 492, 490, 489, 495, 487, 490,
- 495, 492, 494, 491, 493, 496, 494, 522, 491, 493,
- 491, 488, 523, 494, 524, 525, 493, 495, 496, 492,
- 494, 492, 528, 529, 495, 496, 530, 495, 531, 494,
- 491, 493, 496, 494, 522, 532, 493, 533, 534, 523,
-
- 494, 524, 525, 536, 495, 496, 537, 540, 541, 528,
- 529, 543, 496, 530, 545, 531, 546, 547, 548, 549,
- 550, 551, 532, 553, 533, 534, 557, 559, 561, 563,
- 536, 564, 551, 537, 540, 541, 562, 562, 543, 566,
- 567, 545, 568, 546, 547, 548, 549, 550, 551, 569,
- 553, 570, 572, 557, 559, 561, 563, 573, 564, 551,
- 574, 575, 576, 562, 562, 577, 566, 567, 578, 568,
- 579, 580, 582, 583, 584, 585, 569, 588, 570, 572,
- 589, 591, 592, 593, 573, 594, 595, 574, 575, 576,
- 596, 597, 577, 598, 600, 578, 602, 579, 580, 582,
-
- 583, 584, 585, 604, 588, 608, 606, 589, 591, 592,
- 593, 607, 594, 595, 609, 610, 716, 596, 597, 606,
- 598, 600, 0, 602, 607, 608, 606, 611, 610, 612,
- 604, 607, 608, 606, 609, 610, 611, 613, 607, 615,
- 616, 609, 610, 716, 614, 617, 606, 611, 614, 612,
- 0, 607, 608, 606, 611, 610, 612, 613, 607, 615,
- 616, 609, 610, 611, 613, 617, 615, 616, 614, 618,
- 620, 614, 617, 621, 611, 614, 612, 618, 619, 622,
- 0, 0, 619, 620, 613, 0, 615, 616, 623, 618,
- 620, 0, 617, 621, 622, 614, 618, 620, 619, 622,
-
- 621, 0, 623, 624, 618, 619, 622, 625, 623, 619,
- 620, 0, 626, 628, 0, 623, 618, 620, 624, 626,
- 621, 622, 627, 624, 0, 619, 622, 625, 628, 623,
- 624, 630, 626, 628, 625, 623, 0, 629, 627, 626,
- 628, 629, 627, 0, 630, 624, 626, 634, 0, 627,
- 624, 630, 718, 632, 625, 628, 633, 632, 630, 626,
- 628, 629, 635, 633, 629, 627, 636, 634, 629, 627,
- 631, 630, 631, 632, 634, 638, 633, 636, 630, 718,
- 632, 720, 635, 633, 632, 637, 636, 721, 629, 635,
- 633, 638, 631, 636, 634, 638, 637, 631, 0, 631,
-
- 632, 639, 638, 633, 636, 637, 640, 641, 720, 635,
- 640, 641, 637, 636, 721, 642, 639, 0, 638, 631,
- 643, 639, 638, 637, 644, 645, 646, 0, 639, 645,
- 640, 641, 637, 640, 641, 642, 722, 640, 641, 644,
- 643, 647, 642, 639, 644, 650, 646, 643, 639, 645,
- 648, 644, 645, 646, 648, 651, 645, 640, 641, 649,
- 652, 647, 642, 722, 651, 650, 644, 643, 647, 653,
- 649, 644, 650, 646, 648, 651, 645, 648, 654, 649,
- 652, 648, 651, 653, 656, 0, 649, 652, 647, 653,
- 0, 651, 650, 0, 0, 655, 653, 649, 654, 657,
-
- 658, 648, 651, 656, 656, 654, 649, 652, 655, 660,
- 653, 656, 657, 658, 0, 655, 653, 661, 662, 657,
- 658, 659, 655, 659, 661, 654, 657, 658, 0, 660,
- 656, 656, 663, 664, 659, 655, 660, 661, 662, 657,
- 658, 659, 655, 665, 661, 662, 657, 658, 659, 666,
- 659, 661, 663, 664, 668, 667, 660, 669, 665, 663,
- 664, 659, 667, 665, 661, 662, 0, 723, 659, 666,
- 665, 724, 670, 673, 668, 667, 666, 669, 0, 663,
- 664, 668, 667, 0, 669, 665, 670, 670, 671, 667,
- 665, 671, 670, 673, 723, 0, 666, 672, 724, 670,
-
- 673, 668, 667, 674, 669, 674, 675, 0, 671, 676,
- 672, 0, 725, 670, 670, 671, 0, 672, 671, 670,
- 673, 677, 676, 678, 672, 674, 675, 679, 0, 676,
- 674, 678, 674, 675, 677, 671, 676, 672, 680, 725,
- 0, 677, 680, 678, 672, 0, 0, 679, 677, 676,
- 678, 681, 674, 675, 679, 681, 676, 684, 678, 682,
- 683, 677, 680, 686, 0, 680, 0, 682, 677, 680,
- 678, 686, 684, 683, 679, 681, 727, 684, 681, 682,
- 683, 0, 681, 686, 684, 685, 682, 683, 685, 680,
- 686, 688, 0, 688, 682, 0, 687, 689, 686, 684,
-
- 683, 690, 681, 727, 684, 687, 682, 683, 685, 692,
- 686, 694, 685, 688, 695, 685, 687, 689, 688, 696,
- 688, 690, 691, 687, 689, 728, 691, 693, 690, 692,
- 698, 694, 687, 696, 695, 685, 692, 693, 694, 696,
- 688, 695, 691, 687, 689, 697, 696, 693, 690, 691,
- 698, 0, 728, 691, 693, 0, 692, 698, 694, 697,
- 696, 695, 700, 0, 693, 697, 696, 701, 699, 691,
- 699, 700, 697, 703, 693, 702, 704, 698, 704, 702,
- 0, 705, 700, 701, 0, 0, 697, 701, 703, 700,
- 699, 707, 697, 703, 701, 699, 704, 699, 700, 702,
-
- 703, 705, 702, 704, 706, 704, 702, 706, 705, 700,
- 701, 707, 709, 708, 701, 703, 710, 699, 707, 729,
- 703, 711, 730, 704, 706, 732, 702, 733, 705, 708,
- 712, 706, 709, 708, 706, 734, 710, 735, 707, 709,
- 708, 711, 736, 710, 712, 737, 729, 738, 711, 730,
- 712, 706, 732, 739, 733, 740, 708, 712, 741, 709,
- 708, 744, 734, 710, 735, 745, 747, 750, 711, 736,
- 753, 712, 737, 754, 738, 755, 756, 712, 755, 761,
- 739, 762, 740, 763, 764, 741, 765, 768, 744, 769,
- 770, 771, 745, 747, 750, 772, 774, 753, 775, 776,
-
- 754, 777, 755, 756, 778, 755, 761, 779, 762, 780,
- 763, 764, 781, 765, 768, 782, 769, 770, 771, 783,
- 784, 786, 772, 774, 787, 775, 776, 788, 777, 790,
- 791, 778, 792, 796, 779, 797, 780, 0, 799, 781,
- 0, 800, 782, 798, 878, 0, 783, 784, 786, 801,
- 0, 787, 802, 796, 788, 797, 790, 791, 799, 792,
- 796, 800, 797, 798, 798, 799, 803, 803, 800, 801,
- 798, 878, 802, 880, 0, 804, 801, 805, 0, 802,
- 796, 0, 797, 807, 804, 799, 808, 803, 800, 0,
- 798, 798, 805, 803, 803, 804, 801, 805, 806, 802,
-
- 880, 809, 804, 807, 805, 809, 808, 810, 806, 811,
- 807, 804, 0, 808, 803, 0, 811, 810, 806, 805,
- 812, 809, 804, 0, 805, 806, 813, 810, 809, 811,
- 807, 881, 809, 808, 810, 806, 811, 814, 0, 817,
- 812, 814, 816, 811, 810, 806, 813, 812, 809, 0,
- 815, 816, 818, 813, 810, 882, 811, 814, 881, 817,
- 819, 820, 816, 0, 814, 815, 817, 812, 814, 816,
- 815, 821, 818, 813, 884, 819, 820, 815, 816, 818,
- 819, 820, 882, 0, 814, 821, 817, 819, 820, 816,
- 822, 821, 815, 823, 822, 823, 824, 815, 821, 818,
-
- 0, 884, 819, 820, 825, 828, 0, 819, 820, 829,
- 822, 829, 821, 826, 830, 823, 824, 822, 821, 827,
- 823, 822, 823, 824, 825, 828, 827, 831, 826, 829,
- 832, 825, 828, 826, 830, 0, 829, 822, 829, 827,
- 826, 830, 823, 824, 833, 832, 827, 831, 834, 836,
- 832, 825, 828, 827, 831, 826, 829, 832, 835, 839,
- 826, 830, 840, 838, 833, 0, 827, 837, 834, 836,
- 838, 833, 832, 835, 831, 834, 836, 832, 835, 839,
- 0, 837, 840, 838, 837, 835, 839, 837, 0, 840,
- 838, 833, 841, 842, 837, 834, 836, 838, 843, 845,
-
- 835, 844, 847, 845, 846, 835, 839, 846, 837, 840,
- 838, 837, 841, 842, 837, 844, 848, 847, 843, 841,
- 842, 844, 847, 845, 846, 843, 845, 849, 844, 847,
- 845, 846, 850, 851, 846, 0, 848, 853, 886, 841,
- 842, 0, 844, 848, 847, 843, 851, 849, 844, 847,
- 845, 846, 850, 851, 849, 852, 855, 853, 854, 850,
- 851, 0, 854, 848, 853, 886, 856, 857, 852, 0,
- 856, 857, 0, 851, 849, 852, 855, 887, 854, 850,
- 851, 859, 852, 855, 853, 854, 858, 858, 861, 854,
- 856, 857, 861, 856, 857, 852, 859, 856, 857, 860,
-
- 860, 859, 852, 855, 887, 854, 0, 858, 859, 863,
- 862, 888, 861, 858, 858, 861, 0, 856, 857, 861,
- 860, 867, 863, 859, 862, 864, 860, 860, 859, 863,
- 862, 865, 0, 868, 858, 865, 863, 862, 888, 861,
- 864, 867, 866, 869, 869, 864, 866, 860, 867, 863,
- 0, 862, 864, 868, 870, 865, 863, 862, 865, 871,
- 868, 873, 865, 872, 869, 873, 866, 864, 867, 866,
- 869, 869, 864, 866, 870, 875, 876, 872, 890, 871,
- 868, 870, 865, 872, 892, 873, 871, 896, 873, 898,
- 872, 869, 873, 866, 874, 875, 876, 899, 874, 905,
-
- 906, 870, 875, 876, 872, 890, 871, 907, 909, 911,
- 872, 892, 873, 912, 896, 914, 898, 915, 874, 916,
- 918, 874, 875, 876, 899, 874, 905, 906, 919, 920,
- 921, 924, 926, 927, 907, 909, 911, 928, 929, 934,
- 912, 935, 914, 937, 915, 874, 916, 918, 0, 938,
- 0, 940, 939, 941, 942, 919, 920, 921, 924, 926,
- 927, 939, 1001, 937, 928, 929, 934, 941, 935, 938,
- 937, 940, 939, 941, 942, 943, 938, 944, 940, 939,
- 941, 942, 943, 945, 946, 0, 946, 0, 939, 1001,
- 937, 945, 947, 0, 941, 943, 938, 944, 940, 939,
-
- 941, 942, 943, 945, 944, 948, 946, 947, 950, 943,
- 945, 946, 947, 946, 949, 0, 0, 949, 945, 947,
- 952, 951, 943, 951, 944, 948, 953, 0, 950, 954,
- 945, 955, 948, 946, 947, 950, 0, 949, 0, 947,
- 952, 949, 956, 951, 949, 957, 953, 952, 951, 954,
- 951, 955, 948, 953, 957, 950, 954, 959, 955, 958,
- 960, 0, 956, 961, 949, 957, 0, 952, 962, 956,
- 951, 963, 957, 953, 958, 0, 954, 959, 955, 958,
- 960, 957, 0, 961, 959, 965, 958, 960, 962, 956,
- 961, 963, 957, 966, 967, 962, 964, 966, 963, 968,
-
- 0, 958, 969, 0, 959, 965, 958, 960, 0, 964,
- 961, 1002, 965, 968, 967, 962, 964, 966, 963, 968,
- 966, 967, 969, 964, 966, 972, 968, 970, 0, 969,
- 974, 971, 965, 973, 970, 971, 964, 0, 1002, 975,
- 968, 967, 0, 964, 966, 972, 968, 970, 973, 969,
- 974, 976, 972, 973, 970, 971, 979, 974, 971, 975,
- 973, 970, 971, 977, 981, 977, 975, 978, 982, 978,
- 979, 976, 972, 980, 970, 973, 979, 974, 976, 0,
- 973, 984, 971, 979, 981, 977, 975, 980, 982, 978,
- 977, 981, 977, 980, 978, 982, 978, 979, 976, 983,
-
- 980, 984, 0, 979, 989, 985, 983, 988, 984, 985,
- 0, 981, 977, 986, 980, 982, 978, 986, 990, 983,
- 980, 987, 988, 987, 989, 1004, 983, 988, 984, 985,
- 1005, 989, 985, 983, 988, 991, 985, 986, 990, 992,
- 986, 0, 1010, 987, 986, 990, 983, 993, 987, 988,
- 987, 989, 1004, 1011, 988, 991, 985, 1005, 1014, 992,
- 993, 994, 991, 1015, 986, 990, 992, 993, 994, 1010,
- 987, 1018, 1019, 1023, 993, 1024, 1025, 1026, 0, 0,
- 1011, 994, 991, 0, 0, 1014, 992, 993, 994, 1030,
- 1015, 1031, 1032, 1033, 993, 994, 0, 1034, 1018, 1019,
-
- 1023, 1035, 1024, 1025, 1026, 1037, 1036, 1038, 994, 1030,
- 1036, 1031, 1032, 1033, 0, 1040, 1030, 1034, 1031, 1032,
- 1033, 1035, 0, 1041, 1034, 1037, 1039, 1038, 1035, 1042,
- 1036, 1043, 1037, 1036, 1038, 1040, 1030, 1036, 1031, 1032,
- 1033, 1039, 1040, 1041, 1034, 1044, 1039, 1044, 1035, 1042,
- 1041, 1043, 1037, 1039, 1038, 1046, 1042, 1036, 1043, 1045,
- 1047, 1049, 1040, 1050, 1048, 1051, 1045, 1044, 1039, 1065,
- 1041, 0, 1044, 1039, 1044, 1046, 1042, 1048, 1043, 1045,
- 1047, 1049, 1046, 1050, 1048, 1051, 1045, 1047, 1049, 1053,
- 1050, 1048, 1051, 1045, 1044, 1053, 1065, 1054, 1052, 1055,
-
- 1056, 1057, 1046, 1068, 1048, 0, 1045, 1047, 1049, 1053,
- 1050, 1048, 1051, 1052, 1057, 1058, 1053, 1054, 1052, 1055,
- 1056, 1057, 1053, 1058, 1054, 1052, 1055, 1056, 1057, 1071,
- 1068, 1060, 1061, 1062, 1059, 1058, 1053, 1074, 1075, 1076,
- 1052, 1057, 1058, 1079, 1054, 1052, 1055, 1056, 1057, 1059,
- 1058, 1060, 1061, 1062, 1059, 1081, 1071, 1080, 1060, 1061,
- 1062, 1059, 1058, 1079, 1074, 1075, 1076, 1082, 1083, 1084,
- 1079, 1085, 1080, 1086, 0, 1081, 1059, 1080, 1060, 1061,
- 1062, 1059, 1081, 1083, 1080, 1087, 1086, 1082, 1083, 1084,
- 1079, 1085, 1094, 1086, 1082, 1083, 1084, 1088, 1085, 1080,
-
- 1086, 1089, 1081, 1091, 1080, 1087, 1092, 1091, 1096, 1099,
- 1083, 1090, 1087, 1086, 1082, 1083, 1084, 1088, 1085, 1094,
- 1086, 1089, 1090, 1091, 1088, 1101, 1092, 1102, 1089, 1110,
- 1091, 1090, 1087, 1092, 1091, 1096, 1099, 1103, 1090, 1104,
- 1105, 1112, 1113, 0, 1088, 1101, 0, 1102, 1089, 1090,
- 1091, 1103, 1101, 1092, 1102, 1106, 1110, 1103, 1090, 1104,
- 1105, 1112, 1113, 0, 1103, 1106, 1104, 1105, 1112, 1113,
- 1114, 1118, 1101, 0, 1102, 1106, 0, 0, 1103, 1114,
- 0, 0, 1106, 0, 1103, 0, 1104, 1105, 1112, 1113,
- 1114, 1118, 1106, 0, 0, 0, 0, 1114, 1118, 0,
-
- 0, 0, 1106, 0, 0, 0, 1114, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1114, 1118, 1138,
- 1138, 1138, 1138, 1138, 1139, 0, 0, 1139, 1139, 1141,
- 1141, 1141, 0, 1141, 1142, 0, 1142, 1142, 1142, 1143,
- 0, 1143, 1143, 1143, 1144, 0, 1144, 1144, 1144, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
-
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137
+ 188, 188, 188, 188, 188, 188, 204, 206, 292, 210,
+ 0, 208, 293, 204, 204, 204, 0, 204, 0, 210,
+ 0, 0, 206, 211, 208, 208, 204, 206, 0, 210,
+ 0, 208, 0, 204, 206, 292, 210, 211, 208, 293,
+ 204, 204, 204, 211, 204, 209, 210, 212, 212, 206,
+ 211, 208, 208, 204, 206, 207, 210, 207, 208, 207,
+ 207, 209, 0, 226, 211, 209, 207, 213, 212, 213,
+ 211, 215, 209, 207, 212, 212, 294, 0, 215, 207,
+ 295, 0, 207, 226, 207, 296, 207, 207, 209, 213,
+ 226, 215, 209, 207, 213, 212, 213, 0, 215, 297,
+
+ 207, 216, 0, 294, 217, 215, 207, 295, 216, 225,
+ 226, 298, 296, 220, 217, 0, 213, 214, 215, 214,
+ 220, 216, 219, 214, 217, 225, 297, 0, 216, 225,
+ 214, 217, 219, 220, 214, 216, 225, 0, 298, 214,
+ 220, 217, 219, 221, 214, 222, 214, 220, 216, 219,
+ 214, 217, 225, 221, 223, 222, 225, 214, 224, 219,
+ 220, 214, 299, 221, 228, 222, 214, 224, 223, 219,
+ 221, 223, 222, 227, 223, 228, 0, 227, 224, 230,
+ 221, 223, 222, 231, 228, 224, 300, 231, 230, 299,
+ 221, 228, 222, 227, 224, 223, 232, 0, 223, 230,
+
+ 227, 223, 228, 231, 227, 224, 230, 233, 233, 0,
+ 231, 228, 302, 300, 231, 230, 232, 0, 303, 304,
+ 227, 229, 229, 232, 237, 0, 230, 233, 0, 0,
+ 231, 229, 234, 237, 233, 233, 229, 229, 234, 302,
+ 234, 301, 229, 232, 237, 303, 304, 0, 229, 229,
+ 0, 237, 234, 235, 233, 235, 301, 235, 229, 234,
+ 237, 236, 305, 229, 229, 234, 235, 234, 301, 229,
+ 306, 237, 239, 0, 236, 240, 238, 235, 0, 234,
+ 235, 236, 235, 301, 235, 238, 307, 239, 236, 305,
+ 240, 241, 239, 235, 309, 240, 238, 306, 241, 239,
+
+ 244, 236, 240, 238, 235, 242, 243, 243, 236, 242,
+ 0, 241, 238, 307, 239, 260, 0, 240, 241, 239,
+ 244, 309, 240, 238, 0, 241, 243, 244, 246, 242,
+ 245, 245, 242, 243, 243, 260, 242, 248, 241, 247,
+ 249, 248, 260, 246, 249, 0, 310, 244, 246, 0,
+ 311, 245, 247, 243, 0, 246, 242, 245, 245, 247,
+ 249, 248, 260, 0, 248, 312, 247, 249, 248, 0,
+ 246, 249, 250, 310, 252, 246, 250, 311, 245, 247,
+ 251, 252, 251, 313, 0, 250, 247, 249, 248, 0,
+ 250, 314, 312, 269, 252, 253, 250, 0, 253, 250,
+
+ 251, 252, 254, 250, 254, 315, 255, 251, 252, 251,
+ 313, 254, 250, 269, 0, 253, 255, 250, 314, 254,
+ 269, 252, 253, 250, 254, 253, 255, 251, 256, 254,
+ 257, 254, 315, 255, 257, 316, 258, 0, 254, 258,
+ 269, 256, 253, 255, 261, 262, 254, 0, 256, 317,
+ 259, 254, 261, 255, 257, 256, 262, 257, 259, 258,
+ 0, 257, 316, 258, 261, 262, 258, 0, 256, 259,
+ 259, 261, 262, 0, 263, 256, 317, 259, 263, 261,
+ 264, 257, 0, 262, 264, 259, 258, 264, 265, 265,
+ 0, 261, 262, 268, 263, 0, 259, 259, 263, 266,
+
+ 264, 263, 0, 266, 318, 263, 268, 264, 0, 265,
+ 0, 264, 319, 268, 264, 265, 265, 270, 0, 266,
+ 268, 263, 267, 320, 271, 263, 266, 264, 271, 267,
+ 266, 318, 270, 268, 321, 267, 265, 270, 322, 319,
+ 268, 323, 267, 288, 270, 288, 266, 324, 271, 267,
+ 320, 271, 0, 0, 0, 271, 267, 0, 0, 270,
+ 288, 321, 267, 325, 270, 322, 326, 327, 323, 267,
+ 288, 328, 288, 329, 324, 271, 275, 275, 275, 275,
+ 275, 275, 275, 275, 275, 275, 330, 288, 331, 332,
+ 325, 333, 334, 326, 327, 336, 337, 338, 328, 332,
+
+ 329, 339, 340, 341, 342, 343, 344, 345, 347, 348,
+ 349, 350, 351, 330, 352, 331, 332, 353, 333, 334,
+ 354, 355, 336, 337, 338, 356, 332, 357, 339, 340,
+ 341, 342, 343, 344, 345, 347, 348, 349, 350, 351,
+ 358, 352, 359, 360, 353, 361, 362, 354, 355, 363,
+ 365, 366, 356, 367, 357, 368, 369, 370, 371, 372,
+ 374, 376, 375, 376, 377, 378, 379, 358, 380, 359,
+ 360, 375, 361, 362, 381, 382, 363, 365, 366, 383,
+ 367, 385, 368, 369, 370, 371, 372, 374, 376, 375,
+ 376, 377, 378, 379, 386, 380, 381, 0, 375, 384,
+
+ 390, 381, 382, 384, 391, 392, 383, 0, 385, 389,
+ 389, 389, 389, 389, 389, 389, 389, 389, 389, 393,
+ 390, 386, 394, 381, 391, 392, 384, 390, 395, 394,
+ 384, 391, 392, 396, 397, 0, 0, 396, 502, 393,
+ 0, 503, 394, 398, 0, 504, 393, 390, 395, 394,
+ 0, 391, 392, 398, 397, 395, 394, 396, 399, 400,
+ 396, 397, 399, 398, 396, 502, 393, 401, 503, 394,
+ 398, 402, 504, 402, 401, 395, 404, 400, 399, 400,
+ 398, 397, 403, 505, 396, 399, 400, 401, 402, 399,
+ 398, 405, 404, 402, 401, 403, 404, 406, 402, 405,
+
+ 402, 401, 403, 404, 400, 399, 400, 407, 410, 403,
+ 505, 405, 406, 506, 401, 402, 409, 406, 405, 404,
+ 402, 408, 403, 404, 406, 408, 405, 407, 410, 403,
+ 409, 0, 0, 411, 407, 410, 409, 414, 405, 406,
+ 506, 414, 412, 409, 406, 408, 413, 411, 408, 412,
+ 413, 0, 408, 411, 407, 410, 416, 409, 416, 417,
+ 411, 414, 412, 409, 414, 0, 413, 415, 414, 412,
+ 0, 421, 408, 413, 411, 418, 412, 413, 416, 417,
+ 411, 419, 415, 416, 419, 416, 417, 415, 414, 412,
+ 418, 421, 420, 413, 415, 418, 422, 423, 421, 507,
+
+ 424, 423, 418, 420, 419, 416, 417, 508, 419, 415,
+ 0, 419, 420, 425, 415, 425, 422, 418, 421, 420,
+ 424, 423, 418, 422, 423, 0, 507, 424, 423, 427,
+ 420, 419, 426, 430, 508, 425, 427, 428, 510, 420,
+ 425, 429, 425, 422, 513, 0, 426, 424, 423, 427,
+ 428, 0, 426, 430, 431, 429, 427, 428, 431, 426,
+ 430, 429, 425, 427, 428, 510, 432, 433, 429, 435,
+ 514, 513, 435, 426, 432, 433, 427, 428, 431, 426,
+ 430, 431, 429, 434, 428, 431, 432, 433, 429, 0,
+ 434, 436, 435, 432, 433, 437, 435, 514, 437, 435,
+
+ 438, 432, 433, 434, 438, 431, 439, 436, 0, 0,
+ 434, 436, 0, 432, 433, 437, 440, 434, 436, 435,
+ 438, 439, 437, 515, 443, 437, 439, 438, 0, 440,
+ 434, 438, 0, 439, 436, 441, 440, 444, 436, 442,
+ 445, 441, 437, 440, 443, 0, 516, 438, 439, 442,
+ 515, 443, 448, 439, 447, 441, 440, 444, 0, 442,
+ 445, 448, 441, 440, 444, 446, 442, 445, 441, 449,
+ 447, 443, 448, 516, 447, 446, 442, 0, 450, 448,
+ 451, 447, 441, 0, 444, 446, 442, 445, 448, 449,
+ 452, 454, 446, 450, 452, 454, 449, 447, 450, 448,
+
+ 451, 447, 446, 453, 453, 450, 455, 451, 455, 456,
+ 452, 456, 446, 0, 460, 454, 449, 452, 454, 518,
+ 450, 452, 454, 457, 453, 450, 455, 451, 459, 456,
+ 453, 453, 458, 455, 460, 455, 456, 452, 456, 457,
+ 463, 460, 454, 457, 459, 462, 518, 458, 459, 464,
+ 457, 453, 458, 455, 463, 459, 456, 461, 462, 458,
+ 463, 460, 465, 0, 461, 462, 457, 463, 0, 464,
+ 457, 459, 462, 470, 458, 459, 464, 461, 0, 458,
+ 470, 463, 465, 0, 461, 462, 466, 463, 467, 465,
+ 466, 461, 462, 470, 468, 471, 464, 467, 469, 471,
+
+ 470, 0, 519, 0, 461, 468, 469, 470, 467, 465,
+ 466, 520, 0, 466, 468, 467, 472, 466, 469, 471,
+ 470, 468, 471, 0, 467, 469, 471, 473, 475, 519,
+ 473, 472, 468, 469, 522, 467, 472, 466, 520, 477,
+ 476, 468, 474, 472, 478, 469, 471, 473, 475, 474,
+ 476, 0, 479, 480, 473, 475, 0, 473, 472, 477,
+ 476, 522, 474, 472, 478, 0, 477, 476, 480, 474,
+ 479, 478, 479, 480, 473, 475, 474, 476, 481, 479,
+ 480, 482, 523, 483, 0, 0, 477, 476, 482, 474,
+ 0, 478, 484, 481, 483, 480, 486, 479, 481, 479,
+
+ 480, 482, 485, 483, 487, 481, 524, 484, 482, 523,
+ 483, 485, 484, 0, 525, 482, 486, 488, 0, 484,
+ 481, 483, 485, 486, 487, 481, 488, 489, 482, 485,
+ 483, 487, 526, 524, 484, 491, 489, 488, 485, 484,
+ 490, 525, 492, 486, 488, 491, 492, 489, 493, 485,
+ 490, 487, 490, 488, 489, 491, 527, 493, 0, 526,
+ 490, 0, 491, 489, 488, 494, 492, 490, 493, 492,
+ 496, 0, 491, 492, 489, 493, 495, 490, 495, 490,
+ 0, 494, 491, 527, 493, 494, 497, 490, 496, 0,
+ 496, 498, 494, 492, 500, 493, 499, 496, 495, 499,
+
+ 498, 497, 528, 495, 498, 495, 497, 500, 494, 529,
+ 530, 498, 494, 497, 500, 496, 499, 496, 498, 533,
+ 534, 500, 535, 499, 536, 495, 499, 498, 497, 528,
+ 537, 498, 538, 497, 500, 539, 529, 530, 498, 541,
+ 542, 500, 545, 499, 546, 548, 533, 534, 550, 535,
+ 551, 536, 552, 553, 554, 555, 558, 537, 562, 538,
+ 564, 566, 539, 556, 567, 567, 541, 542, 568, 545,
+ 569, 546, 548, 571, 556, 550, 572, 551, 573, 552,
+ 553, 554, 555, 558, 574, 562, 575, 564, 566, 577,
+ 556, 567, 567, 578, 580, 568, 581, 569, 582, 583,
+
+ 571, 556, 584, 572, 585, 573, 586, 588, 589, 590,
+ 591, 574, 594, 575, 595, 597, 577, 598, 599, 600,
+ 578, 580, 601, 581, 602, 582, 583, 603, 604, 584,
+ 605, 585, 607, 586, 588, 589, 590, 591, 609, 594,
+ 611, 595, 597, 613, 598, 599, 600, 0, 614, 601,
+ 0, 602, 615, 616, 603, 604, 613, 605, 617, 607,
+ 0, 614, 619, 613, 620, 609, 726, 611, 614, 0,
+ 613, 617, 615, 616, 622, 614, 728, 618, 617, 615,
+ 616, 0, 619, 613, 620, 617, 618, 623, 614, 619,
+ 613, 620, 621, 726, 622, 614, 621, 618, 617, 615,
+
+ 616, 622, 624, 728, 618, 617, 624, 623, 626, 619,
+ 625, 620, 626, 618, 623, 0, 621, 0, 625, 621,
+ 0, 622, 628, 621, 618, 730, 624, 627, 626, 624,
+ 625, 629, 0, 624, 623, 626, 630, 625, 0, 626,
+ 627, 632, 628, 621, 631, 625, 629, 627, 0, 628,
+ 630, 629, 730, 624, 627, 626, 630, 625, 629, 631,
+ 635, 632, 634, 630, 631, 633, 0, 627, 632, 628,
+ 634, 631, 633, 629, 627, 636, 635, 630, 629, 0,
+ 635, 0, 634, 630, 0, 633, 631, 635, 632, 634,
+ 636, 631, 633, 638, 637, 636, 640, 634, 637, 633,
+
+ 640, 0, 636, 635, 641, 0, 638, 635, 639, 634,
+ 639, 641, 633, 638, 642, 0, 640, 636, 637, 643,
+ 638, 637, 636, 640, 641, 637, 0, 640, 646, 0,
+ 639, 641, 650, 638, 642, 639, 644, 639, 641, 643,
+ 638, 642, 645, 640, 646, 637, 643, 644, 646, 0,
+ 647, 641, 650, 645, 648, 646, 644, 639, 648, 650,
+ 649, 642, 645, 644, 649, 647, 643, 0, 651, 645,
+ 647, 646, 653, 654, 644, 646, 653, 647, 648, 650,
+ 645, 648, 655, 644, 649, 648, 652, 649, 651, 645,
+ 656, 649, 647, 654, 656, 651, 653, 647, 731, 653,
+
+ 654, 652, 655, 653, 658, 648, 652, 657, 0, 655,
+ 659, 649, 660, 652, 656, 651, 732, 656, 657, 659,
+ 654, 656, 661, 653, 658, 731, 0, 657, 652, 655,
+ 659, 658, 660, 652, 657, 662, 661, 659, 668, 660,
+ 663, 656, 661, 732, 0, 657, 659, 0, 665, 661,
+ 0, 658, 664, 663, 657, 662, 733, 659, 668, 660,
+ 663, 665, 662, 661, 666, 668, 669, 663, 665, 661,
+ 670, 664, 664, 669, 671, 665, 667, 666, 667, 664,
+ 663, 0, 662, 733, 666, 668, 669, 663, 665, 667,
+ 670, 666, 672, 669, 671, 665, 667, 670, 664, 664,
+
+ 669, 671, 0, 667, 666, 667, 674, 673, 675, 676,
+ 677, 666, 672, 669, 734, 675, 667, 670, 0, 672,
+ 735, 671, 673, 667, 0, 0, 674, 673, 675, 676,
+ 677, 678, 681, 674, 673, 675, 676, 677, 736, 672,
+ 679, 734, 675, 679, 738, 678, 678, 735, 680, 673,
+ 0, 678, 681, 674, 673, 675, 676, 677, 678, 681,
+ 679, 680, 682, 683, 682, 736, 0, 679, 680, 0,
+ 679, 738, 678, 678, 0, 680, 687, 686, 678, 681,
+ 684, 685, 688, 683, 682, 686, 688, 679, 680, 682,
+ 683, 682, 0, 684, 685, 680, 687, 686, 689, 690,
+
+ 684, 685, 689, 687, 686, 0, 688, 684, 685, 688,
+ 683, 682, 686, 688, 739, 0, 740, 0, 0, 690,
+ 684, 685, 689, 687, 686, 689, 690, 684, 685, 689,
+ 691, 692, 693, 688, 695, 741, 696, 694, 691, 0,
+ 694, 739, 695, 740, 692, 696, 690, 693, 0, 689,
+ 691, 692, 693, 697, 695, 697, 696, 691, 692, 693,
+ 694, 695, 741, 696, 694, 691, 698, 694, 699, 695,
+ 701, 692, 696, 0, 693, 697, 703, 691, 692, 693,
+ 697, 695, 697, 696, 702, 700, 698, 694, 699, 700,
+ 701, 0, 0, 698, 702, 699, 703, 701, 704, 707,
+
+ 705, 0, 697, 703, 702, 700, 0, 708, 706, 708,
+ 0, 702, 700, 698, 705, 699, 700, 701, 704, 707,
+ 705, 702, 706, 703, 709, 704, 707, 705, 706, 708,
+ 0, 702, 700, 709, 708, 706, 708, 710, 711, 712,
+ 0, 705, 711, 714, 709, 704, 707, 705, 713, 706,
+ 713, 709, 742, 710, 712, 706, 708, 710, 715, 712,
+ 709, 715, 711, 714, 710, 711, 712, 717, 713, 711,
+ 714, 709, 716, 719, 0, 713, 716, 713, 715, 742,
+ 710, 712, 718, 744, 710, 715, 712, 717, 715, 711,
+ 714, 720, 716, 719, 717, 713, 721, 745, 718, 716,
+
+ 719, 722, 718, 716, 746, 715, 747, 748, 749, 718,
+ 744, 720, 750, 751, 717, 722, 721, 752, 720, 716,
+ 719, 722, 753, 721, 745, 718, 756, 757, 722, 718,
+ 759, 746, 762, 747, 748, 749, 765, 766, 720, 750,
+ 751, 768, 722, 721, 752, 773, 774, 767, 722, 753,
+ 767, 775, 776, 756, 757, 777, 780, 759, 781, 762,
+ 782, 783, 784, 765, 766, 786, 787, 788, 768, 789,
+ 790, 791, 773, 774, 767, 792, 793, 767, 775, 776,
+ 794, 795, 777, 780, 796, 781, 798, 782, 783, 784,
+ 799, 800, 786, 787, 788, 802, 789, 790, 791, 803,
+
+ 804, 805, 792, 793, 809, 810, 894, 794, 795, 811,
+ 0, 796, 0, 798, 812, 813, 0, 799, 800, 814,
+ 815, 817, 802, 817, 809, 810, 803, 804, 805, 811,
+ 811, 809, 810, 894, 812, 813, 811, 816, 816, 814,
+ 815, 812, 813, 817, 0, 896, 814, 815, 817, 820,
+ 817, 809, 810, 819, 818, 821, 811, 811, 816, 820,
+ 0, 812, 813, 818, 816, 816, 814, 815, 819, 820,
+ 817, 822, 896, 819, 818, 821, 820, 824, 0, 823,
+ 819, 818, 821, 823, 825, 816, 820, 824, 825, 827,
+ 818, 822, 897, 828, 0, 819, 820, 824, 822, 823,
+
+ 819, 818, 821, 829, 824, 826, 823, 829, 825, 827,
+ 823, 825, 826, 828, 824, 825, 827, 898, 822, 897,
+ 828, 832, 830, 829, 824, 826, 823, 0, 0, 0,
+ 829, 0, 826, 833, 829, 825, 827, 830, 831, 826,
+ 828, 832, 830, 0, 898, 0, 834, 831, 832, 830,
+ 829, 899, 826, 833, 838, 835, 838, 836, 831, 837,
+ 833, 834, 0, 837, 830, 831, 834, 839, 832, 830,
+ 835, 836, 840, 834, 831, 835, 838, 836, 899, 837,
+ 833, 838, 835, 838, 836, 831, 837, 839, 834, 842,
+ 837, 843, 840, 834, 839, 841, 842, 835, 836, 840,
+
+ 845, 846, 835, 838, 836, 844, 837, 844, 901, 842,
+ 841, 843, 0, 848, 839, 841, 842, 0, 843, 840,
+ 845, 846, 841, 842, 847, 844, 849, 845, 846, 851,
+ 850, 0, 844, 848, 844, 901, 842, 841, 843, 847,
+ 848, 852, 841, 0, 847, 850, 849, 845, 846, 851,
+ 850, 847, 844, 849, 854, 852, 851, 850, 852, 855,
+ 848, 852, 0, 853, 856, 0, 847, 857, 852, 858,
+ 853, 847, 850, 849, 854, 863, 851, 850, 859, 855,
+ 0, 854, 852, 853, 856, 852, 855, 857, 852, 858,
+ 853, 856, 859, 862, 857, 863, 858, 853, 859, 860,
+
+ 0, 854, 863, 860, 861, 859, 855, 861, 862, 864,
+ 853, 856, 865, 862, 857, 0, 858, 868, 903, 859,
+ 862, 0, 863, 860, 861, 859, 860, 870, 866, 864,
+ 860, 861, 865, 867, 861, 862, 864, 868, 869, 865,
+ 862, 866, 869, 0, 868, 903, 867, 870, 866, 904,
+ 860, 861, 874, 867, 870, 866, 864, 871, 869, 865,
+ 867, 871, 872, 905, 868, 869, 872, 874, 866, 869,
+ 873, 873, 874, 867, 870, 866, 904, 0, 0, 874,
+ 867, 871, 875, 875, 871, 869, 872, 877, 871, 872,
+ 905, 873, 876, 872, 874, 0, 876, 873, 873, 874,
+
+ 880, 877, 878, 875, 880, 879, 882, 877, 871, 875,
+ 875, 0, 0, 872, 877, 878, 876, 881, 873, 876,
+ 879, 881, 878, 876, 880, 879, 882, 880, 877, 878,
+ 875, 880, 879, 882, 877, 883, 884, 884, 885, 886,
+ 887, 881, 878, 876, 881, 0, 888, 879, 881, 878,
+ 888, 880, 879, 882, 887, 883, 891, 884, 885, 886,
+ 887, 906, 883, 884, 884, 885, 886, 887, 881, 889,
+ 888, 890, 892, 888, 908, 890, 891, 888, 889, 910,
+ 914, 887, 883, 891, 884, 885, 886, 887, 906, 889,
+ 916, 917, 892, 923, 924, 890, 889, 888, 890, 892,
+
+ 925, 908, 890, 891, 927, 889, 910, 914, 929, 930,
+ 932, 933, 934, 936, 937, 938, 889, 916, 917, 892,
+ 923, 924, 890, 939, 942, 944, 945, 925, 946, 947,
+ 952, 927, 953, 954, 956, 929, 930, 932, 933, 934,
+ 936, 937, 938, 957, 959, 962, 1021, 960, 0, 958,
+ 939, 942, 944, 945, 956, 946, 947, 952, 958, 953,
+ 954, 956, 960, 957, 959, 962, 961, 960, 963, 958,
+ 957, 959, 962, 1021, 960, 963, 958, 964, 1024, 965,
+ 961, 956, 0, 1025, 0, 958, 961, 965, 963, 960,
+ 957, 959, 962, 961, 960, 963, 958, 964, 966, 965,
+
+ 966, 967, 963, 968, 964, 1024, 965, 961, 967, 969,
+ 1025, 971, 0, 961, 965, 963, 970, 973, 968, 970,
+ 966, 967, 974, 968, 964, 966, 965, 966, 967, 969,
+ 968, 971, 972, 975, 972, 967, 969, 973, 971, 970,
+ 0, 0, 974, 970, 973, 968, 970, 966, 967, 974,
+ 968, 976, 977, 975, 972, 979, 969, 980, 971, 972,
+ 975, 972, 0, 981, 973, 978, 970, 982, 983, 974,
+ 979, 976, 977, 984, 978, 979, 985, 980, 976, 977,
+ 975, 972, 979, 981, 980, 978, 986, 982, 983, 985,
+ 981, 988, 978, 984, 982, 983, 985, 979, 976, 977,
+
+ 984, 978, 979, 985, 980, 987, 986, 989, 990, 987,
+ 981, 988, 978, 986, 982, 983, 985, 991, 988, 0,
+ 984, 989, 992, 985, 991, 993, 992, 989, 990, 987,
+ 0, 1028, 987, 986, 989, 990, 987, 991, 988, 995,
+ 996, 997, 994, 1029, 991, 993, 992, 0, 989, 992,
+ 0, 991, 993, 992, 989, 990, 987, 994, 1028, 995,
+ 996, 997, 994, 998, 991, 998, 995, 996, 997, 994,
+ 1029, 0, 993, 992, 999, 1002, 999, 1000, 1003, 1001,
+ 0, 0, 0, 1034, 994, 998, 995, 996, 997, 994,
+ 998, 1000, 998, 1001, 1035, 1002, 999, 1000, 1003, 1001,
+
+ 0, 999, 1002, 999, 1000, 1003, 1001, 1004, 1005, 1006,
+ 1034, 1038, 998, 1006, 1004, 1007, 0, 1009, 1000, 1007,
+ 1001, 1035, 1002, 999, 1000, 1003, 1001, 1004, 1005, 1008,
+ 1010, 1008, 1009, 1006, 1004, 1005, 1006, 1009, 1038, 1007,
+ 1006, 1004, 1007, 1011, 1009, 1012, 1007, 1013, 1014, 1039,
+ 1010, 1008, 1042, 0, 1004, 1005, 1008, 1010, 1008, 1009,
+ 1006, 1014, 0, 1011, 1009, 1012, 1007, 1013, 1014, 1015,
+ 1011, 1015, 1012, 1016, 1013, 1014, 1039, 1010, 1008, 1042,
+ 1016, 1043, 1047, 1048, 1049, 1050, 1055, 0, 1014, 1015,
+ 1011, 0, 1012, 1016, 1013, 1014, 1015, 1056, 1015, 1057,
+
+ 1016, 1058, 1059, 1060, 0, 1061, 1055, 1016, 1043, 1047,
+ 1048, 1049, 1050, 1055, 1062, 1063, 1015, 1056, 1062, 1057,
+ 1016, 1058, 1059, 1060, 1056, 1061, 1057, 1064, 1058, 1059,
+ 1060, 1065, 1061, 1055, 0, 1063, 1067, 1068, 1062, 1069,
+ 1066, 1062, 1063, 0, 1056, 1062, 1057, 1064, 1058, 1059,
+ 1060, 1065, 1061, 1070, 1064, 1066, 1067, 1068, 1065, 1069,
+ 1066, 1073, 1063, 1067, 1068, 1062, 1069, 1066, 1071, 1072,
+ 1071, 1074, 1075, 1070, 1064, 0, 1072, 0, 1065, 1092,
+ 1070, 1073, 1066, 1067, 1068, 1075, 1069, 1066, 1073, 1072,
+ 1071, 1074, 1075, 1076, 1077, 1071, 1072, 1071, 1074, 1075,
+
+ 1070, 1094, 1078, 1072, 1081, 0, 1092, 1082, 1073, 0,
+ 1079, 1097, 1075, 1076, 1077, 1083, 1072, 1071, 1074, 1075,
+ 1076, 1077, 1078, 1084, 1081, 1079, 1080, 1082, 1094, 1078,
+ 1079, 1081, 1080, 0, 1082, 1083, 1084, 1079, 1097, 1100,
+ 1076, 1077, 1083, 1084, 1087, 1086, 1080, 1085, 1088, 1078,
+ 1084, 1081, 1079, 1080, 1082, 1085, 1089, 1079, 1090, 1080,
+ 1086, 1103, 1083, 1084, 1087, 1086, 1100, 1085, 1088, 1104,
+ 1084, 1087, 1086, 1080, 1085, 1088, 1089, 1105, 1090, 1109,
+ 1108, 1111, 1085, 1089, 0, 1090, 0, 1086, 1103, 1112,
+ 0, 1087, 1086, 1108, 1085, 1088, 1104, 1110, 1113, 1109,
+
+ 1108, 1111, 1114, 1089, 1105, 1090, 1109, 1108, 1111, 1112,
+ 1115, 1117, 1110, 1113, 0, 1118, 1112, 1110, 1113, 1125,
+ 1108, 1116, 1114, 1119, 1110, 1113, 1109, 1108, 1111, 1114,
+ 1115, 1117, 1127, 1122, 1116, 1118, 1112, 1115, 1117, 1110,
+ 1113, 1116, 1118, 1119, 1110, 1113, 1125, 1121, 1116, 1114,
+ 1119, 1121, 1120, 1122, 1130, 1132, 1133, 1115, 1117, 1127,
+ 1122, 1116, 1118, 1120, 1134, 1136, 0, 1121, 1116, 1137,
+ 1119, 0, 1120, 1135, 1121, 1132, 1133, 1142, 1121, 1120,
+ 1122, 1130, 1132, 1133, 1134, 1136, 1144, 1135, 1138, 1137,
+ 1120, 1134, 1136, 1135, 1121, 0, 1137, 1145, 1138, 1120,
+
+ 1135, 1146, 1132, 1133, 1142, 0, 1144, 1150, 1138, 0,
+ 1146, 1134, 1136, 1144, 1135, 1138, 1137, 1145, 0, 0,
+ 1135, 1146, 0, 0, 1145, 1138, 0, 1150, 1146, 0,
+ 0, 0, 0, 1144, 1150, 1138, 0, 1146, 0, 0,
+ 0, 0, 0, 0, 1145, 0, 0, 0, 1146, 0,
+ 0, 0, 0, 0, 1150, 1170, 1170, 1170, 1170, 1170,
+ 1171, 0, 0, 1171, 1171, 1173, 1173, 1173, 0, 1173,
+ 1174, 0, 1174, 1174, 1174, 1175, 0, 1175, 1175, 1175,
+ 1176, 0, 1176, 1176, 1176, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
+ 1169, 1169
} ;
/* The intent behind this definition is that it'll catch
@@ -2069,7 +2108,7 @@ static const flex_int16_t yy_chk[4627] =
static thread_local std::stringstream strbuf;
-#line 2073 "flex_lexer.cpp"
+#line 2111 "flex_lexer.cpp"
/***************************
** Section 2: Rules
@@ -2083,7 +2122,7 @@ static thread_local std::stringstream strbuf;
/***************************
** Section 3: Rules
***************************/
-#line 2087 "flex_lexer.cpp"
+#line 2125 "flex_lexer.cpp"
#define INITIAL 0
#define singlequotedstring 1
@@ -2370,7 +2409,7 @@ YY_DECL
#line 57 "flex_lexer.l"
-#line 2374 "flex_lexer.cpp"
+#line 2412 "flex_lexer.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -2397,13 +2436,13 @@ YY_DECL
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 >= 1138 )
+ if ( yy_current_state >= 1170 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
- while ( yy_current_state != 1137 );
+ while ( yy_current_state != 1169 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -2573,634 +2612,659 @@ TOKEN(VARCHAR)
case 30:
YY_RULE_SETUP
#line 90 "flex_lexer.l"
-TOKEN(VIRTUAL)
+TOKEN(CHARACTER)
YY_BREAK
case 31:
YY_RULE_SETUP
#line 91 "flex_lexer.l"
-TOKEN(BEFORE)
+TOKEN(VARYING)
YY_BREAK
case 32:
YY_RULE_SETUP
#line 92 "flex_lexer.l"
-TOKEN(COLUMN)
+TOKEN(TIME)
YY_BREAK
case 33:
YY_RULE_SETUP
#line 93 "flex_lexer.l"
-TOKEN(CREATE)
+TOKEN(DECIMAL)
YY_BREAK
case 34:
YY_RULE_SETUP
#line 94 "flex_lexer.l"
-TOKEN(DELETE)
+TOKEN(REAL)
YY_BREAK
case 35:
YY_RULE_SETUP
#line 95 "flex_lexer.l"
-TOKEN(DIRECT)
+TOKEN(VIRTUAL)
YY_BREAK
case 36:
YY_RULE_SETUP
#line 96 "flex_lexer.l"
-TOKEN(DOUBLE)
+TOKEN(BEFORE)
YY_BREAK
case 37:
YY_RULE_SETUP
#line 97 "flex_lexer.l"
-TOKEN(ESCAPE)
+TOKEN(COLUMN)
YY_BREAK
case 38:
YY_RULE_SETUP
#line 98 "flex_lexer.l"
-TOKEN(EXCEPT)
+TOKEN(CREATE)
YY_BREAK
case 39:
YY_RULE_SETUP
#line 99 "flex_lexer.l"
-TOKEN(EXISTS)
+TOKEN(DELETE)
YY_BREAK
case 40:
YY_RULE_SETUP
#line 100 "flex_lexer.l"
-TOKEN(EXTRACT)
+TOKEN(DIRECT)
YY_BREAK
case 41:
YY_RULE_SETUP
#line 101 "flex_lexer.l"
-TOKEN(CAST)
+TOKEN(DOUBLE)
YY_BREAK
case 42:
YY_RULE_SETUP
#line 102 "flex_lexer.l"
-TOKEN(FORMAT)
+TOKEN(ESCAPE)
YY_BREAK
case 43:
YY_RULE_SETUP
#line 103 "flex_lexer.l"
-TOKEN(GLOBAL)
+TOKEN(EXCEPT)
YY_BREAK
case 44:
YY_RULE_SETUP
#line 104 "flex_lexer.l"
-TOKEN(HAVING)
+TOKEN(EXISTS)
YY_BREAK
case 45:
YY_RULE_SETUP
#line 105 "flex_lexer.l"
-TOKEN(IMPORT)
+TOKEN(EXTRACT)
YY_BREAK
case 46:
YY_RULE_SETUP
#line 106 "flex_lexer.l"
-TOKEN(INSERT)
+TOKEN(CAST)
YY_BREAK
case 47:
YY_RULE_SETUP
#line 107 "flex_lexer.l"
-TOKEN(ISNULL)
+TOKEN(FORMAT)
YY_BREAK
case 48:
YY_RULE_SETUP
#line 108 "flex_lexer.l"
-TOKEN(OFFSET)
+TOKEN(GLOBAL)
YY_BREAK
case 49:
YY_RULE_SETUP
#line 109 "flex_lexer.l"
-TOKEN(RENAME)
+TOKEN(HAVING)
YY_BREAK
case 50:
YY_RULE_SETUP
#line 110 "flex_lexer.l"
-TOKEN(SCHEMA)
+TOKEN(IMPORT)
YY_BREAK
case 51:
YY_RULE_SETUP
#line 111 "flex_lexer.l"
-TOKEN(SELECT)
+TOKEN(INSERT)
YY_BREAK
case 52:
YY_RULE_SETUP
#line 112 "flex_lexer.l"
-TOKEN(SORTED)
+TOKEN(ISNULL)
YY_BREAK
case 53:
YY_RULE_SETUP
#line 113 "flex_lexer.l"
-TOKEN(TABLES)
+TOKEN(OFFSET)
YY_BREAK
case 54:
YY_RULE_SETUP
#line 114 "flex_lexer.l"
-TOKEN(UNIQUE)
+TOKEN(RENAME)
YY_BREAK
case 55:
YY_RULE_SETUP
#line 115 "flex_lexer.l"
-TOKEN(UNLOAD)
+TOKEN(SCHEMA)
YY_BREAK
case 56:
YY_RULE_SETUP
#line 116 "flex_lexer.l"
-TOKEN(UPDATE)
+TOKEN(SELECT)
YY_BREAK
case 57:
YY_RULE_SETUP
#line 117 "flex_lexer.l"
-TOKEN(VALUES)
+TOKEN(SORTED)
YY_BREAK
case 58:
YY_RULE_SETUP
#line 118 "flex_lexer.l"
-TOKEN(AFTER)
+TOKEN(TABLES)
YY_BREAK
case 59:
YY_RULE_SETUP
#line 119 "flex_lexer.l"
-TOKEN(ALTER)
+TOKEN(UNIQUE)
YY_BREAK
case 60:
YY_RULE_SETUP
#line 120 "flex_lexer.l"
-TOKEN(ARRAY)
+TOKEN(UNLOAD)
YY_BREAK
case 61:
YY_RULE_SETUP
#line 121 "flex_lexer.l"
-TOKEN(CROSS)
+TOKEN(UPDATE)
YY_BREAK
case 62:
YY_RULE_SETUP
#line 122 "flex_lexer.l"
-TOKEN(DELTA)
+TOKEN(VALUES)
YY_BREAK
case 63:
YY_RULE_SETUP
#line 123 "flex_lexer.l"
-TOKEN(FLOAT)
+TOKEN(AFTER)
YY_BREAK
case 64:
YY_RULE_SETUP
#line 124 "flex_lexer.l"
-TOKEN(GROUP)
+TOKEN(ALTER)
YY_BREAK
case 65:
YY_RULE_SETUP
#line 125 "flex_lexer.l"
-TOKEN(INDEX)
+TOKEN(ARRAY)
YY_BREAK
case 66:
YY_RULE_SETUP
#line 126 "flex_lexer.l"
-TOKEN(INNER)
+TOKEN(CROSS)
YY_BREAK
case 67:
YY_RULE_SETUP
#line 127 "flex_lexer.l"
-TOKEN(LIMIT)
+TOKEN(DELTA)
YY_BREAK
case 68:
YY_RULE_SETUP
#line 128 "flex_lexer.l"
-TOKEN(LOCAL)
+TOKEN(FLOAT)
YY_BREAK
case 69:
YY_RULE_SETUP
#line 129 "flex_lexer.l"
-TOKEN(MERGE)
+TOKEN(GROUP)
YY_BREAK
case 70:
YY_RULE_SETUP
#line 130 "flex_lexer.l"
-TOKEN(MINUS)
+TOKEN(INDEX)
YY_BREAK
case 71:
YY_RULE_SETUP
#line 131 "flex_lexer.l"
-TOKEN(ORDER)
+TOKEN(INNER)
YY_BREAK
case 72:
YY_RULE_SETUP
#line 132 "flex_lexer.l"
-TOKEN(OUTER)
+TOKEN(LIMIT)
YY_BREAK
case 73:
YY_RULE_SETUP
#line 133 "flex_lexer.l"
-TOKEN(RIGHT)
+TOKEN(LOCAL)
YY_BREAK
case 74:
YY_RULE_SETUP
#line 134 "flex_lexer.l"
-TOKEN(TABLE)
+TOKEN(MERGE)
YY_BREAK
case 75:
YY_RULE_SETUP
#line 135 "flex_lexer.l"
-TOKEN(UNION)
+TOKEN(MINUS)
YY_BREAK
case 76:
YY_RULE_SETUP
#line 136 "flex_lexer.l"
-TOKEN(USING)
+TOKEN(ORDER)
YY_BREAK
case 77:
YY_RULE_SETUP
#line 137 "flex_lexer.l"
-TOKEN(WHERE)
+TOKEN(OUTER)
YY_BREAK
case 78:
YY_RULE_SETUP
#line 138 "flex_lexer.l"
-TOKEN(CALL)
+TOKEN(RIGHT)
YY_BREAK
case 79:
YY_RULE_SETUP
#line 139 "flex_lexer.l"
-TOKEN(CASE)
+TOKEN(TABLE)
YY_BREAK
case 80:
YY_RULE_SETUP
#line 140 "flex_lexer.l"
-TOKEN(CHAR)
+TOKEN(UNION)
YY_BREAK
case 81:
YY_RULE_SETUP
#line 141 "flex_lexer.l"
-TOKEN(COPY)
+TOKEN(USING)
YY_BREAK
case 82:
YY_RULE_SETUP
#line 142 "flex_lexer.l"
-TOKEN(DATE)
+TOKEN(WHERE)
YY_BREAK
case 83:
YY_RULE_SETUP
#line 143 "flex_lexer.l"
-TOKEN(DATETIME)
+TOKEN(CALL)
YY_BREAK
case 84:
YY_RULE_SETUP
#line 144 "flex_lexer.l"
-TOKEN(DESC)
+TOKEN(CASE)
YY_BREAK
case 85:
YY_RULE_SETUP
#line 145 "flex_lexer.l"
-TOKEN(DROP)
+TOKEN(CHAR)
YY_BREAK
case 86:
YY_RULE_SETUP
#line 146 "flex_lexer.l"
-TOKEN(ELSE)
+TOKEN(COPY)
YY_BREAK
case 87:
YY_RULE_SETUP
#line 147 "flex_lexer.l"
-TOKEN(FILE)
+TOKEN(DATE)
YY_BREAK
case 88:
YY_RULE_SETUP
#line 148 "flex_lexer.l"
-TOKEN(FROM)
+TOKEN(DATETIME)
YY_BREAK
case 89:
YY_RULE_SETUP
#line 149 "flex_lexer.l"
-TOKEN(FULL)
+TOKEN(DESC)
YY_BREAK
case 90:
YY_RULE_SETUP
#line 150 "flex_lexer.l"
-TOKEN(HASH)
+TOKEN(DROP)
YY_BREAK
case 91:
YY_RULE_SETUP
#line 151 "flex_lexer.l"
-TOKEN(HINT)
+TOKEN(ELSE)
YY_BREAK
case 92:
YY_RULE_SETUP
#line 152 "flex_lexer.l"
-TOKEN(INTO)
+TOKEN(FILE)
YY_BREAK
case 93:
YY_RULE_SETUP
#line 153 "flex_lexer.l"
-TOKEN(JOIN)
+TOKEN(FROM)
YY_BREAK
case 94:
YY_RULE_SETUP
#line 154 "flex_lexer.l"
-TOKEN(LEFT)
+TOKEN(FULL)
YY_BREAK
case 95:
YY_RULE_SETUP
#line 155 "flex_lexer.l"
-TOKEN(LIKE)
+TOKEN(HASH)
YY_BREAK
case 96:
YY_RULE_SETUP
#line 156 "flex_lexer.l"
-TOKEN(ILIKE)
+TOKEN(HINT)
YY_BREAK
case 97:
YY_RULE_SETUP
#line 157 "flex_lexer.l"
-TOKEN(LOAD)
+TOKEN(INTO)
YY_BREAK
case 98:
YY_RULE_SETUP
#line 158 "flex_lexer.l"
-TOKEN(LONG)
+TOKEN(JOIN)
YY_BREAK
case 99:
YY_RULE_SETUP
#line 159 "flex_lexer.l"
-TOKEN(NULL)
+TOKEN(LEFT)
YY_BREAK
case 100:
YY_RULE_SETUP
#line 160 "flex_lexer.l"
-TOKEN(PLAN)
+TOKEN(LIKE)
YY_BREAK
case 101:
YY_RULE_SETUP
#line 161 "flex_lexer.l"
-TOKEN(SHOW)
+TOKEN(ILIKE)
YY_BREAK
case 102:
YY_RULE_SETUP
#line 162 "flex_lexer.l"
-TOKEN(TEXT)
+TOKEN(LOAD)
YY_BREAK
case 103:
YY_RULE_SETUP
#line 163 "flex_lexer.l"
-TOKEN(THEN)
+TOKEN(LONG)
YY_BREAK
case 104:
YY_RULE_SETUP
#line 164 "flex_lexer.l"
-TOKEN(TIME)
+TOKEN(NULL)
YY_BREAK
case 105:
YY_RULE_SETUP
#line 165 "flex_lexer.l"
-TOKEN(VIEW)
+TOKEN(PLAN)
YY_BREAK
case 106:
YY_RULE_SETUP
#line 166 "flex_lexer.l"
-TOKEN(WHEN)
+TOKEN(SHOW)
YY_BREAK
case 107:
YY_RULE_SETUP
#line 167 "flex_lexer.l"
-TOKEN(WITH)
+TOKEN(TEXT)
YY_BREAK
case 108:
YY_RULE_SETUP
#line 168 "flex_lexer.l"
-TOKEN(ADD)
+TOKEN(THEN)
YY_BREAK
case 109:
YY_RULE_SETUP
#line 169 "flex_lexer.l"
-TOKEN(ALL)
+TOKEN(TIME)
YY_BREAK
case 110:
YY_RULE_SETUP
#line 170 "flex_lexer.l"
-TOKEN(AND)
+TOKEN(VIEW)
YY_BREAK
case 111:
YY_RULE_SETUP
#line 171 "flex_lexer.l"
-TOKEN(ASC)
+TOKEN(WHEN)
YY_BREAK
case 112:
YY_RULE_SETUP
#line 172 "flex_lexer.l"
-TOKEN(END)
+TOKEN(WITH)
YY_BREAK
case 113:
YY_RULE_SETUP
#line 173 "flex_lexer.l"
-TOKEN(FOR)
+TOKEN(ADD)
YY_BREAK
case 114:
YY_RULE_SETUP
#line 174 "flex_lexer.l"
-TOKEN(INT)
+TOKEN(ALL)
YY_BREAK
case 115:
YY_RULE_SETUP
#line 175 "flex_lexer.l"
-TOKEN(KEY)
+TOKEN(AND)
YY_BREAK
case 116:
YY_RULE_SETUP
#line 176 "flex_lexer.l"
-TOKEN(NOT)
+TOKEN(ASC)
YY_BREAK
case 117:
YY_RULE_SETUP
#line 177 "flex_lexer.l"
-TOKEN(OFF)
+TOKEN(END)
YY_BREAK
case 118:
YY_RULE_SETUP
#line 178 "flex_lexer.l"
-TOKEN(SET)
+TOKEN(FOR)
YY_BREAK
case 119:
YY_RULE_SETUP
#line 179 "flex_lexer.l"
-TOKEN(TOP)
+TOKEN(INT)
YY_BREAK
case 120:
YY_RULE_SETUP
#line 180 "flex_lexer.l"
-TOKEN(AS)
+TOKEN(KEY)
YY_BREAK
case 121:
YY_RULE_SETUP
#line 181 "flex_lexer.l"
-TOKEN(BY)
+TOKEN(NOT)
YY_BREAK
case 122:
YY_RULE_SETUP
#line 182 "flex_lexer.l"
-TOKEN(IF)
+TOKEN(OFF)
YY_BREAK
case 123:
YY_RULE_SETUP
#line 183 "flex_lexer.l"
-TOKEN(IN)
+TOKEN(SET)
YY_BREAK
case 124:
YY_RULE_SETUP
#line 184 "flex_lexer.l"
-TOKEN(IS)
+TOKEN(TOP)
YY_BREAK
case 125:
YY_RULE_SETUP
#line 185 "flex_lexer.l"
-TOKEN(OF)
+TOKEN(AS)
YY_BREAK
case 126:
YY_RULE_SETUP
#line 186 "flex_lexer.l"
-TOKEN(ON)
+TOKEN(BY)
YY_BREAK
case 127:
YY_RULE_SETUP
#line 187 "flex_lexer.l"
-TOKEN(OR)
+TOKEN(IF)
YY_BREAK
case 128:
YY_RULE_SETUP
#line 188 "flex_lexer.l"
-TOKEN(TO)
+TOKEN(IN)
YY_BREAK
case 129:
YY_RULE_SETUP
#line 189 "flex_lexer.l"
-TOKEN(SECOND)
+TOKEN(IS)
YY_BREAK
case 130:
YY_RULE_SETUP
#line 190 "flex_lexer.l"
-TOKEN(MINUTE)
+TOKEN(OF)
YY_BREAK
case 131:
YY_RULE_SETUP
#line 191 "flex_lexer.l"
-TOKEN(HOUR)
+TOKEN(ON)
YY_BREAK
case 132:
YY_RULE_SETUP
#line 192 "flex_lexer.l"
-TOKEN(DAY)
+TOKEN(OR)
YY_BREAK
case 133:
YY_RULE_SETUP
#line 193 "flex_lexer.l"
-TOKEN(MONTH)
+TOKEN(TO)
YY_BREAK
case 134:
YY_RULE_SETUP
#line 194 "flex_lexer.l"
-TOKEN(YEAR)
+TOKEN(SECOND)
YY_BREAK
case 135:
YY_RULE_SETUP
#line 195 "flex_lexer.l"
-TOKEN(SECONDS)
+TOKEN(MINUTE)
YY_BREAK
case 136:
YY_RULE_SETUP
#line 196 "flex_lexer.l"
-TOKEN(MINUTES)
+TOKEN(HOUR)
YY_BREAK
case 137:
YY_RULE_SETUP
#line 197 "flex_lexer.l"
-TOKEN(HOURS)
+TOKEN(DAY)
YY_BREAK
case 138:
YY_RULE_SETUP
#line 198 "flex_lexer.l"
-TOKEN(DAYS)
+TOKEN(MONTH)
YY_BREAK
case 139:
YY_RULE_SETUP
#line 199 "flex_lexer.l"
-TOKEN(MONTHS)
+TOKEN(YEAR)
YY_BREAK
case 140:
YY_RULE_SETUP
#line 200 "flex_lexer.l"
-TOKEN(YEARS)
+TOKEN(SECONDS)
YY_BREAK
case 141:
YY_RULE_SETUP
#line 201 "flex_lexer.l"
-TOKEN(TRUE)
+TOKEN(MINUTES)
YY_BREAK
case 142:
YY_RULE_SETUP
#line 202 "flex_lexer.l"
-TOKEN(FALSE)
+TOKEN(HOURS)
YY_BREAK
case 143:
YY_RULE_SETUP
#line 203 "flex_lexer.l"
-TOKEN(TRANSACTION)
+TOKEN(DAYS)
YY_BREAK
case 144:
YY_RULE_SETUP
#line 204 "flex_lexer.l"
-TOKEN(BEGIN)
+TOKEN(MONTHS)
YY_BREAK
case 145:
YY_RULE_SETUP
#line 205 "flex_lexer.l"
-TOKEN(ROLLBACK)
+TOKEN(YEARS)
YY_BREAK
case 146:
YY_RULE_SETUP
#line 206 "flex_lexer.l"
-TOKEN(COMMIT)
+TOKEN(TRUE)
YY_BREAK
case 147:
YY_RULE_SETUP
#line 207 "flex_lexer.l"
-TOKEN(INTERVAL)
+TOKEN(FALSE)
YY_BREAK
-/* Allow =/== see https://sqlite.org/lang_expr.html#collateop */
case 148:
YY_RULE_SETUP
-#line 210 "flex_lexer.l"
-TOKEN(EQUALS)
+#line 208 "flex_lexer.l"
+TOKEN(TRANSACTION)
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 211 "flex_lexer.l"
-TOKEN(NOTEQUALS)
+#line 209 "flex_lexer.l"
+TOKEN(BEGIN)
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 212 "flex_lexer.l"
-TOKEN(NOTEQUALS)
+#line 210 "flex_lexer.l"
+TOKEN(ROLLBACK)
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 213 "flex_lexer.l"
-TOKEN(LESSEQ)
+#line 211 "flex_lexer.l"
+TOKEN(COMMIT)
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 214 "flex_lexer.l"
-TOKEN(GREATEREQ)
+#line 212 "flex_lexer.l"
+TOKEN(INTERVAL)
YY_BREAK
+/* Allow =/== see https://sqlite.org/lang_expr.html#collateop */
case 153:
YY_RULE_SETUP
#line 215 "flex_lexer.l"
-TOKEN(CONCAT)
+TOKEN(EQUALS)
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 217 "flex_lexer.l"
-{ return yytext[0]; }
+#line 216 "flex_lexer.l"
+TOKEN(NOTEQUALS)
YY_BREAK
case 155:
-#line 220 "flex_lexer.l"
+YY_RULE_SETUP
+#line 217 "flex_lexer.l"
+TOKEN(NOTEQUALS)
+ YY_BREAK
case 156:
YY_RULE_SETUP
+#line 218 "flex_lexer.l"
+TOKEN(LESSEQ)
+ YY_BREAK
+case 157:
+YY_RULE_SETUP
+#line 219 "flex_lexer.l"
+TOKEN(GREATEREQ)
+ YY_BREAK
+case 158:
+YY_RULE_SETUP
#line 220 "flex_lexer.l"
+TOKEN(CONCAT)
+ YY_BREAK
+case 159:
+YY_RULE_SETUP
+#line 222 "flex_lexer.l"
+{ return yytext[0]; }
+ YY_BREAK
+case 160:
+#line 225 "flex_lexer.l"
+case 161:
+YY_RULE_SETUP
+#line 225 "flex_lexer.l"
{
yylval->fval = atof(yytext);
return SQL_FLOATVAL;
@@ -3211,17 +3275,17 @@ YY_RULE_SETUP
* positive equivalent. We thus match for LLONG_MIN specifically. This is not an issue for floats, where
* numeric_limits::lowest() == -numeric_limits::max();
*/
-case 157:
+case 162:
YY_RULE_SETUP
-#line 230 "flex_lexer.l"
+#line 235 "flex_lexer.l"
{
yylval->ival = LLONG_MIN;
return SQL_INTVAL;
}
YY_BREAK
-case 158:
+case 163:
YY_RULE_SETUP
-#line 235 "flex_lexer.l"
+#line 240 "flex_lexer.l"
{
errno = 0;
yylval->ival = strtoll(yytext, nullptr, 0);
@@ -3232,59 +3296,59 @@ YY_RULE_SETUP
return SQL_INTVAL;
}
YY_BREAK
-case 159:
+case 164:
YY_RULE_SETUP
-#line 245 "flex_lexer.l"
+#line 250 "flex_lexer.l"
{
// Crop the leading and trailing quote char
yylval->sval = hsql::substr(yytext, 1, strlen(yytext)-1);
return SQL_IDENTIFIER;
}
YY_BREAK
-case 160:
+case 165:
YY_RULE_SETUP
-#line 251 "flex_lexer.l"
+#line 256 "flex_lexer.l"
{
yylval->sval = strdup(yytext);
return SQL_IDENTIFIER;
}
YY_BREAK
-case 161:
+case 166:
YY_RULE_SETUP
-#line 256 "flex_lexer.l"
+#line 261 "flex_lexer.l"
{ BEGIN singlequotedstring; strbuf.clear(); strbuf.str(""); } // Clear strbuf manually, see #170
YY_BREAK
-case 162:
+case 167:
YY_RULE_SETUP
-#line 257 "flex_lexer.l"
+#line 262 "flex_lexer.l"
{ strbuf << '\''; }
YY_BREAK
-case 163:
-/* rule 163 can match eol */
+case 168:
+/* rule 168 can match eol */
YY_RULE_SETUP
-#line 258 "flex_lexer.l"
+#line 263 "flex_lexer.l"
{ strbuf << yytext; }
YY_BREAK
-case 164:
+case 169:
YY_RULE_SETUP
-#line 259 "flex_lexer.l"
+#line 264 "flex_lexer.l"
{ BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; }
YY_BREAK
case YY_STATE_EOF(singlequotedstring):
-#line 260 "flex_lexer.l"
+#line 265 "flex_lexer.l"
{ fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; }
YY_BREAK
-case 165:
+case 170:
YY_RULE_SETUP
-#line 262 "flex_lexer.l"
+#line 267 "flex_lexer.l"
{ fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; }
YY_BREAK
-case 166:
+case 171:
YY_RULE_SETUP
-#line 265 "flex_lexer.l"
+#line 270 "flex_lexer.l"
ECHO;
YY_BREAK
-#line 3288 "flex_lexer.cpp"
+#line 3351 "flex_lexer.cpp"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(COMMENT):
yyterminate();
@@ -3585,7 +3649,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 >= 1138 )
+ if ( yy_current_state >= 1170 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@@ -3614,11 +3678,11 @@ 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 >= 1138 )
+ if ( yy_current_state >= 1170 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1137);
+ yy_is_jam = (yy_current_state == 1169);
(void)yyg;
return yy_is_jam ? 0 : yy_current_state;
@@ -4441,7 +4505,7 @@ void yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 265 "flex_lexer.l"
+#line 270 "flex_lexer.l"
/***************************
** Section 3: User code
diff --git a/src/parser/flex_lexer.h b/src/parser/flex_lexer.h
index 386c1d8f..2b05d13f 100644
--- a/src/parser/flex_lexer.h
+++ b/src/parser/flex_lexer.h
@@ -2,9 +2,9 @@
#define hsql_HEADER_H 1
#define hsql_IN_HEADER 1
-#line 6 "flex_lexer.h"
+#line 5 "flex_lexer.h"
-#line 8 "flex_lexer.h"
+#line 7 "flex_lexer.h"
#define YY_INT_ALIGNED short int
@@ -730,9 +730,9 @@ extern int yylex \
#undef yyTABLES_NAME
#endif
-#line 265 "flex_lexer.l"
+#line 270 "flex_lexer.l"
-#line 737 "flex_lexer.h"
+#line 736 "flex_lexer.h"
#undef hsql_IN_HEADER
#endif /* hsql_HEADER_H */
diff --git a/src/parser/flex_lexer.l b/src/parser/flex_lexer.l
index 6776969e..df79153e 100644
--- a/src/parser/flex_lexer.l
+++ b/src/parser/flex_lexer.l
@@ -56,165 +56,170 @@ static thread_local std::stringstream strbuf;
***************************/
%%
--- BEGIN(COMMENT);
-[^\n]* /* skipping comment content until a end of line is read */;
-\n BEGIN(INITIAL);
+-- BEGIN(COMMENT);
+[^\n]* /* skipping comment content until a end of line is read */;
+\n BEGIN(INITIAL);
-[ \t\n]+ /* skip whitespace */;
+[ \t\n]+ /* skip whitespace */;
-DEALLOCATE TOKEN(DEALLOCATE)
-PARAMETERS TOKEN(PARAMETERS)
-INTERSECT TOKEN(INTERSECT)
-TEMPORARY TOKEN(TEMPORARY)
-TIMESTAMP TOKEN(TIMESTAMP)
-DESCRIBE TOKEN(DESCRIBE)
-DISTINCT TOKEN(DISTINCT)
-NVARCHAR TOKEN(NVARCHAR)
-RESTRICT TOKEN(RESTRICT)
-TRUNCATE TOKEN(TRUNCATE)
-ANALYZE TOKEN(ANALYZE)
-BETWEEN TOKEN(BETWEEN)
-CASCADE TOKEN(CASCADE)
-COLUMNS TOKEN(COLUMNS)
-CONTROL TOKEN(CONTROL)
-DEFAULT TOKEN(DEFAULT)
-EXECUTE TOKEN(EXECUTE)
-EXPLAIN TOKEN(EXPLAIN)
-INTEGER TOKEN(INTEGER)
-NATURAL TOKEN(NATURAL)
-PREPARE TOKEN(PREPARE)
-PRIMARY TOKEN(PRIMARY)
-SCHEMAS TOKEN(SCHEMAS)
-SPATIAL TOKEN(SPATIAL)
-VARCHAR TOKEN(VARCHAR)
-VIRTUAL TOKEN(VIRTUAL)
-BEFORE TOKEN(BEFORE)
-COLUMN TOKEN(COLUMN)
-CREATE TOKEN(CREATE)
-DELETE TOKEN(DELETE)
-DIRECT TOKEN(DIRECT)
-DOUBLE TOKEN(DOUBLE)
-ESCAPE TOKEN(ESCAPE)
-EXCEPT TOKEN(EXCEPT)
-EXISTS TOKEN(EXISTS)
-EXTRACT TOKEN(EXTRACT)
-CAST TOKEN(CAST)
-FORMAT TOKEN(FORMAT)
-GLOBAL TOKEN(GLOBAL)
-HAVING TOKEN(HAVING)
-IMPORT TOKEN(IMPORT)
-INSERT TOKEN(INSERT)
-ISNULL TOKEN(ISNULL)
-OFFSET TOKEN(OFFSET)
-RENAME TOKEN(RENAME)
-SCHEMA TOKEN(SCHEMA)
-SELECT TOKEN(SELECT)
-SORTED TOKEN(SORTED)
-TABLES TOKEN(TABLES)
-UNIQUE TOKEN(UNIQUE)
-UNLOAD TOKEN(UNLOAD)
-UPDATE TOKEN(UPDATE)
-VALUES TOKEN(VALUES)
-AFTER TOKEN(AFTER)
-ALTER TOKEN(ALTER)
-ARRAY TOKEN(ARRAY)
-CROSS TOKEN(CROSS)
-DELTA TOKEN(DELTA)
-FLOAT TOKEN(FLOAT)
-GROUP TOKEN(GROUP)
-INDEX TOKEN(INDEX)
-INNER TOKEN(INNER)
-LIMIT TOKEN(LIMIT)
-LOCAL TOKEN(LOCAL)
-MERGE TOKEN(MERGE)
-MINUS TOKEN(MINUS)
-ORDER TOKEN(ORDER)
-OUTER TOKEN(OUTER)
-RIGHT TOKEN(RIGHT)
-TABLE TOKEN(TABLE)
-UNION TOKEN(UNION)
-USING TOKEN(USING)
-WHERE TOKEN(WHERE)
-CALL TOKEN(CALL)
-CASE TOKEN(CASE)
-CHAR TOKEN(CHAR)
-COPY TOKEN(COPY)
-DATE TOKEN(DATE)
-DATETIME TOKEN(DATETIME)
-DESC TOKEN(DESC)
-DROP TOKEN(DROP)
-ELSE TOKEN(ELSE)
-FILE TOKEN(FILE)
-FROM TOKEN(FROM)
-FULL TOKEN(FULL)
-HASH TOKEN(HASH)
-HINT TOKEN(HINT)
-INTO TOKEN(INTO)
-JOIN TOKEN(JOIN)
-LEFT TOKEN(LEFT)
-LIKE TOKEN(LIKE)
-ILIKE TOKEN(ILIKE)
-LOAD TOKEN(LOAD)
-LONG TOKEN(LONG)
-NULL TOKEN(NULL)
-PLAN TOKEN(PLAN)
-SHOW TOKEN(SHOW)
-TEXT TOKEN(TEXT)
-THEN TOKEN(THEN)
-TIME TOKEN(TIME)
-VIEW TOKEN(VIEW)
-WHEN TOKEN(WHEN)
-WITH TOKEN(WITH)
-ADD TOKEN(ADD)
-ALL TOKEN(ALL)
-AND TOKEN(AND)
-ASC TOKEN(ASC)
-END TOKEN(END)
-FOR TOKEN(FOR)
-INT TOKEN(INT)
-KEY TOKEN(KEY)
-NOT TOKEN(NOT)
-OFF TOKEN(OFF)
-SET TOKEN(SET)
-TOP TOKEN(TOP)
-AS TOKEN(AS)
-BY TOKEN(BY)
-IF TOKEN(IF)
-IN TOKEN(IN)
-IS TOKEN(IS)
-OF TOKEN(OF)
-ON TOKEN(ON)
-OR TOKEN(OR)
-TO TOKEN(TO)
-SECOND TOKEN(SECOND)
-MINUTE TOKEN(MINUTE)
-HOUR TOKEN(HOUR)
-DAY TOKEN(DAY)
-MONTH TOKEN(MONTH)
-YEAR TOKEN(YEAR)
-SECONDS TOKEN(SECONDS)
-MINUTES TOKEN(MINUTES)
-HOURS TOKEN(HOURS)
-DAYS TOKEN(DAYS)
-MONTHS TOKEN(MONTHS)
-YEARS TOKEN(YEARS)
-TRUE TOKEN(TRUE)
-FALSE TOKEN(FALSE)
+DEALLOCATE TOKEN(DEALLOCATE)
+PARAMETERS TOKEN(PARAMETERS)
+INTERSECT TOKEN(INTERSECT)
+TEMPORARY TOKEN(TEMPORARY)
+TIMESTAMP TOKEN(TIMESTAMP)
+DESCRIBE TOKEN(DESCRIBE)
+DISTINCT TOKEN(DISTINCT)
+NVARCHAR TOKEN(NVARCHAR)
+RESTRICT TOKEN(RESTRICT)
+TRUNCATE TOKEN(TRUNCATE)
+ANALYZE TOKEN(ANALYZE)
+BETWEEN TOKEN(BETWEEN)
+CASCADE TOKEN(CASCADE)
+COLUMNS TOKEN(COLUMNS)
+CONTROL TOKEN(CONTROL)
+DEFAULT TOKEN(DEFAULT)
+EXECUTE TOKEN(EXECUTE)
+EXPLAIN TOKEN(EXPLAIN)
+INTEGER TOKEN(INTEGER)
+NATURAL TOKEN(NATURAL)
+PREPARE TOKEN(PREPARE)
+PRIMARY TOKEN(PRIMARY)
+SCHEMAS TOKEN(SCHEMAS)
+SPATIAL TOKEN(SPATIAL)
+VARCHAR TOKEN(VARCHAR)
+CHARACTER TOKEN(CHARACTER)
+VARYING TOKEN(VARYING)
+TIME TOKEN(TIME)
+DECIMAL TOKEN(DECIMAL)
+REAL TOKEN(REAL)
+VIRTUAL TOKEN(VIRTUAL)
+BEFORE TOKEN(BEFORE)
+COLUMN TOKEN(COLUMN)
+CREATE TOKEN(CREATE)
+DELETE TOKEN(DELETE)
+DIRECT TOKEN(DIRECT)
+DOUBLE TOKEN(DOUBLE)
+ESCAPE TOKEN(ESCAPE)
+EXCEPT TOKEN(EXCEPT)
+EXISTS TOKEN(EXISTS)
+EXTRACT TOKEN(EXTRACT)
+CAST TOKEN(CAST)
+FORMAT TOKEN(FORMAT)
+GLOBAL TOKEN(GLOBAL)
+HAVING TOKEN(HAVING)
+IMPORT TOKEN(IMPORT)
+INSERT TOKEN(INSERT)
+ISNULL TOKEN(ISNULL)
+OFFSET TOKEN(OFFSET)
+RENAME TOKEN(RENAME)
+SCHEMA TOKEN(SCHEMA)
+SELECT TOKEN(SELECT)
+SORTED TOKEN(SORTED)
+TABLES TOKEN(TABLES)
+UNIQUE TOKEN(UNIQUE)
+UNLOAD TOKEN(UNLOAD)
+UPDATE TOKEN(UPDATE)
+VALUES TOKEN(VALUES)
+AFTER TOKEN(AFTER)
+ALTER TOKEN(ALTER)
+ARRAY TOKEN(ARRAY)
+CROSS TOKEN(CROSS)
+DELTA TOKEN(DELTA)
+FLOAT TOKEN(FLOAT)
+GROUP TOKEN(GROUP)
+INDEX TOKEN(INDEX)
+INNER TOKEN(INNER)
+LIMIT TOKEN(LIMIT)
+LOCAL TOKEN(LOCAL)
+MERGE TOKEN(MERGE)
+MINUS TOKEN(MINUS)
+ORDER TOKEN(ORDER)
+OUTER TOKEN(OUTER)
+RIGHT TOKEN(RIGHT)
+TABLE TOKEN(TABLE)
+UNION TOKEN(UNION)
+USING TOKEN(USING)
+WHERE TOKEN(WHERE)
+CALL TOKEN(CALL)
+CASE TOKEN(CASE)
+CHAR TOKEN(CHAR)
+COPY TOKEN(COPY)
+DATE TOKEN(DATE)
+DATETIME TOKEN(DATETIME)
+DESC TOKEN(DESC)
+DROP TOKEN(DROP)
+ELSE TOKEN(ELSE)
+FILE TOKEN(FILE)
+FROM TOKEN(FROM)
+FULL TOKEN(FULL)
+HASH TOKEN(HASH)
+HINT TOKEN(HINT)
+INTO TOKEN(INTO)
+JOIN TOKEN(JOIN)
+LEFT TOKEN(LEFT)
+LIKE TOKEN(LIKE)
+ILIKE TOKEN(ILIKE)
+LOAD TOKEN(LOAD)
+LONG TOKEN(LONG)
+NULL TOKEN(NULL)
+PLAN TOKEN(PLAN)
+SHOW TOKEN(SHOW)
+TEXT TOKEN(TEXT)
+THEN TOKEN(THEN)
+TIME TOKEN(TIME)
+VIEW TOKEN(VIEW)
+WHEN TOKEN(WHEN)
+WITH TOKEN(WITH)
+ADD TOKEN(ADD)
+ALL TOKEN(ALL)
+AND TOKEN(AND)
+ASC TOKEN(ASC)
+END TOKEN(END)
+FOR TOKEN(FOR)
+INT TOKEN(INT)
+KEY TOKEN(KEY)
+NOT TOKEN(NOT)
+OFF TOKEN(OFF)
+SET TOKEN(SET)
+TOP TOKEN(TOP)
+AS TOKEN(AS)
+BY TOKEN(BY)
+IF TOKEN(IF)
+IN TOKEN(IN)
+IS TOKEN(IS)
+OF TOKEN(OF)
+ON TOKEN(ON)
+OR TOKEN(OR)
+TO TOKEN(TO)
+SECOND TOKEN(SECOND)
+MINUTE TOKEN(MINUTE)
+HOUR TOKEN(HOUR)
+DAY TOKEN(DAY)
+MONTH TOKEN(MONTH)
+YEAR TOKEN(YEAR)
+SECONDS TOKEN(SECONDS)
+MINUTES TOKEN(MINUTES)
+HOURS TOKEN(HOURS)
+DAYS TOKEN(DAYS)
+MONTHS TOKEN(MONTHS)
+YEARS TOKEN(YEARS)
+TRUE TOKEN(TRUE)
+FALSE TOKEN(FALSE)
TRANSACTION TOKEN(TRANSACTION)
-BEGIN TOKEN(BEGIN)
-ROLLBACK TOKEN(ROLLBACK)
-COMMIT TOKEN(COMMIT)
-INTERVAL TOKEN(INTERVAL)
+BEGIN TOKEN(BEGIN)
+ROLLBACK TOKEN(ROLLBACK)
+COMMIT TOKEN(COMMIT)
+INTERVAL TOKEN(INTERVAL)
- /* Allow =/== see https://sqlite.org/lang_expr.html#collateop */
-"==" TOKEN(EQUALS)
-"!=" TOKEN(NOTEQUALS)
-"<>" TOKEN(NOTEQUALS)
-"<=" TOKEN(LESSEQ)
-">=" TOKEN(GREATEREQ)
-"||" TOKEN(CONCAT)
+ /* Allow =/== see https://sqlite.org/lang_expr.html#collateop */
+"==" TOKEN(EQUALS)
+"!=" TOKEN(NOTEQUALS)
+"<>" TOKEN(NOTEQUALS)
+"<=" TOKEN(LESSEQ)
+">=" TOKEN(GREATEREQ)
+"||" TOKEN(CONCAT)
-[-+*/(){},.;<>=^%:?[\]|] { return yytext[0]; }
+[-+*/(){},.;<>=^%:?[\]|] { return yytext[0]; }
[0-9]+"."[0-9]* |
"."[0-9]* {
diff --git a/src/sql/AlterStatement.h b/src/sql/AlterStatement.h
new file mode 100755
index 00000000..82a57801
--- /dev/null
+++ b/src/sql/AlterStatement.h
@@ -0,0 +1,41 @@
+#ifndef SQLPARSER_ALTER_STATEMENT_H
+#define SQLPARSER_ALTER_STATEMENT_H
+
+#include "SQLStatement.h"
+
+// Note: Implementations of constructors and destructors can be found in statements.cpp.
+namespace hsql {
+
+ enum ActionType {
+ DropColumn,
+ };
+
+ struct AlterAction {
+ AlterAction(ActionType type);
+ ActionType type;
+ virtual ~AlterAction();
+ };
+
+ struct DropColumnAction : AlterAction {
+ DropColumnAction(char* column_name);
+ char* columnName;
+ bool ifExists;
+
+ ~DropColumnAction() override;
+ };
+
+ // Represents SQL Alter Table statements.
+ // Example "ALTER TABLE students DROP COLUMN name;"
+ struct AlterStatement : SQLStatement {
+
+ AlterStatement(char* name, AlterAction* action);
+ ~AlterStatement() override;
+
+ char* schema;
+ bool ifTableExists;
+ char* name;
+ AlterAction* action;
+ };
+} // namespace hsql
+
+#endif
diff --git a/src/sql/ColumnType.h b/src/sql/ColumnType.h
index e5e10ec9..2800b8ac 100755
--- a/src/sql/ColumnType.h
+++ b/src/sql/ColumnType.h
@@ -10,19 +10,35 @@ namespace hsql {
LONG,
FLOAT,
DOUBLE,
+ DECIMAL,
+ REAL,
CHAR,
VARCHAR,
TEXT,
DATETIME,
- DATE
+ DATE,
+ TIME,
+ SMALLINT,
};
+ struct ColumnSpecification {
+ ColumnSpecification() = default;
+ ColumnSpecification(int64_t precision, int64_t scale);
+ ColumnSpecification(int64_t precision);
+ int64_t precision;
+ int64_t scale;
+ };
+
+
+
// Represents the type of a column, e.g., FLOAT or VARCHAR(10)
struct ColumnType {
ColumnType() = default;
- ColumnType(DataType data_type, int64_t length = 0);
+ ColumnType(DataType data_type, int64_t length = 0,
+ ColumnSpecification column_specification = ColumnSpecification{});
DataType data_type;
int64_t length; // Used for, e.g., VARCHAR(10)
+ ColumnSpecification columnSpecification; // used for, e.g. DECIMAL (6, 4) or TIME (5)
};
bool operator==(const ColumnType& lhs, const ColumnType& rhs);
diff --git a/src/sql/CreateStatement.h b/src/sql/CreateStatement.h
index e88324f0..0086da57 100755
--- a/src/sql/CreateStatement.h
+++ b/src/sql/CreateStatement.h
@@ -10,11 +10,49 @@
namespace hsql {
struct SelectStatement;
+ enum struct ConstraintType {
+ None,
+ NotNull,
+ Null,
+ PrimaryKey,
+ Unique
+ };
+
+ // Superclass for both TableConstraint and Column Definition
+ struct TableElement {
+ virtual ~TableElement(){}
+ };
+
+ // Represents definition of a table constraint
+ struct TableConstraint : TableElement {
+ TableConstraint(ConstraintType keyType, std::vector* columnNames);
+
+ ~TableConstraint() override;
+
+ ConstraintType type;
+ std::vector* columnNames;
+ };
+
// Represents definition of a table column
- struct ColumnDefinition {
- ColumnDefinition(char* name, ColumnType type, bool nullable);
- virtual~ColumnDefinition();
+ struct ColumnDefinition: TableElement {
+ ColumnDefinition(char* name, ColumnType type, std::vector* column_constraints);
+
+ ~ColumnDefinition() override;
+
+ void setNullableExplicit() {
+ nullable = false;
+ for(unsigned long constraint_index = 0; constraint_index < column_constraints->size(); constraint_index++) {
+ if(column_constraints->at(constraint_index) == ConstraintType::Null) {
+ nullable = true;
+ column_constraints->erase(column_constraints->cbegin() + constraint_index);
+ } else if(column_constraints->at(constraint_index) == ConstraintType::NotNull) {
+ column_constraints->erase(column_constraints->cbegin() + constraint_index);
+ }
+ }
+ }
+
+ std::vector* column_constraints;
char* name;
ColumnType type;
bool nullable;
@@ -23,7 +61,8 @@ namespace hsql {
enum CreateType {
kCreateTable,
kCreateTableFromTbl, // Hyrise file format
- kCreateView
+ kCreateView,
+ kCreateIndex
};
// Represents SQL Create statements.
@@ -32,12 +71,28 @@ namespace hsql {
CreateStatement(CreateType type);
~CreateStatement() override;
+ void setColumnDefsAndConstraints(std::vector* tableElements) {
+ columns = new std::vector();
+ tableConstraints = new std::vector();
+
+ for(auto tableElem: *tableElements) {
+ if(auto *colDef = dynamic_cast(tableElem)) {
+ columns->emplace_back(colDef);
+ } else if(auto *tableConstraint = dynamic_cast(tableElem)) {
+ tableConstraints->emplace_back(tableConstraint);
+ }
+ }
+ }
+
CreateType type;
bool ifNotExists; // default: false
char* filePath; // default: nullptr
char* schema; // default: nullptr
char* tableName; // default: nullptr
+ char* indexName; // default: nullptr
+ std::vector* indexColumns; // default: nullptr
std::vector* columns; // default: nullptr
+ std::vector* tableConstraints; // default: nullptr
std::vector* viewColumns;
SelectStatement* select;
};
diff --git a/src/sql/DropStatement.h b/src/sql/DropStatement.h
index dace494a..36db7621 100755
--- a/src/sql/DropStatement.h
+++ b/src/sql/DropStatement.h
@@ -25,6 +25,7 @@ namespace hsql {
bool ifExists;
char* schema;
char* name;
+ char* indexName;
};
} // namespace hsql
diff --git a/src/sql/statements.cpp b/src/sql/statements.cpp
index 6b422c37..c7b0c284 100755
--- a/src/sql/statements.cpp
+++ b/src/sql/statements.cpp
@@ -1,20 +1,42 @@
#include "statements.h"
+#include "AlterStatement.h"
namespace hsql {
+ // KeyConstraints
+ TableConstraint::TableConstraint(ConstraintType type, std::vector* columnNames) :
+ type(type),
+ columnNames(columnNames) {};
+
+ TableConstraint::~TableConstraint() {
+ for (char* def : *columnNames) {
+ free(def);
+ }
+ delete columnNames;
+ }
+
// ColumnDefinition
- ColumnDefinition::ColumnDefinition(char* name, ColumnType type, bool nullable) :
+ ColumnDefinition::ColumnDefinition(char* name, ColumnType type, std::vector* column_constraints) :
+ column_constraints(column_constraints),
name(name),
type(type),
- nullable(nullable) {};
+ nullable(false) {};
ColumnDefinition::~ColumnDefinition() {
free(name);
+ delete column_constraints;
}
- ColumnType::ColumnType(DataType data_type, int64_t length) :
+ ColumnType::ColumnType(DataType data_type, int64_t length, ColumnSpecification column_specification) :
data_type(data_type),
- length(length) {};
+ length(length), columnSpecification(column_specification) {};
+
+ ColumnSpecification::ColumnSpecification(int64_t precision, int64_t scale) :
+ precision(precision),
+ scale(scale) {};
+
+ ColumnSpecification::ColumnSpecification(int64_t precision) :
+ precision(precision), scale(0) {};
bool operator==(const ColumnType& lhs, const ColumnType& rhs) {
if (lhs.data_type != rhs.data_type) return false;
@@ -45,12 +67,18 @@ namespace hsql {
case DataType::DOUBLE:
stream << "DOUBLE";
break;
+ case DataType::REAL:
+ stream << "REAL";
+ break;
case DataType::CHAR:
stream << "CHAR(" << column_type.length << ")";
break;
case DataType::VARCHAR:
stream << "VARCHAR(" << column_type.length << ")";
break;
+ case DataType::DECIMAL:
+ stream << "DECIMAL";
+ break;
case DataType::TEXT:
stream << "TEXT";
break;
@@ -60,6 +88,12 @@ namespace hsql {
case DataType::DATE:
stream << "DATE";
break;
+ case DataType::TIME:
+ stream << "TIME";
+ break;
+ case DataType::SMALLINT:
+ stream << "SMALLINT";
+ break;
}
return stream;
}
@@ -73,7 +107,10 @@ namespace hsql {
filePath(nullptr),
schema(nullptr),
tableName(nullptr),
+ indexName(nullptr),
+ indexColumns(nullptr),
columns(nullptr),
+ tableConstraints(nullptr),
viewColumns(nullptr),
select(nullptr) {};
@@ -81,6 +118,7 @@ namespace hsql {
free(filePath);
free(schema);
free(tableName);
+ free(indexName);
delete select;
if (columns != nullptr) {
@@ -90,6 +128,20 @@ namespace hsql {
delete columns;
}
+ if (tableConstraints != nullptr) {
+ for (TableConstraint* def : *tableConstraints) {
+ delete def;
+ }
+ delete tableConstraints;
+ }
+
+ if (indexColumns != nullptr) {
+ for (char* column : *indexColumns) {
+ free(column);
+ }
+ delete indexColumns;
+ }
+
if (viewColumns != nullptr) {
for (char* column : *viewColumns) {
free(column);
@@ -116,13 +168,44 @@ namespace hsql {
SQLStatement(kStmtDrop),
type(type),
schema(nullptr),
- name(nullptr) {}
+ name(nullptr),
+ indexName(nullptr) {}
DropStatement::~DropStatement() {
free(schema);
free(name);
+ free(indexName);
}
+ // AlterStatement and supportive classes
+
+ AlterAction::AlterAction(ActionType type) : type(type){}
+
+ AlterAction::~AlterAction() = default;
+
+ DropColumnAction::DropColumnAction(char* column_name) :
+ AlterAction(ActionType::DropColumn),
+ columnName(column_name),
+ ifExists(false)
+ {};
+
+ DropColumnAction::~DropColumnAction() {
+ free(columnName);
+ }
+
+ AlterStatement::AlterStatement(char* name, AlterAction* action) :
+ SQLStatement(kStmtAlter),
+ schema(nullptr),
+ ifTableExists(false),
+ name(name),
+ action(action){}
+
+ AlterStatement::~AlterStatement() {
+ free(schema);
+ free(name);
+ delete action;
+}
+
// TransactionStatement
TransactionStatement::TransactionStatement(TransactionCommand command) :
SQLStatement(kStmtTransaction),
diff --git a/src/sql/statements.h b/src/sql/statements.h
index f5edf21b..8cee5816 100644
--- a/src/sql/statements.h
+++ b/src/sql/statements.h
@@ -13,5 +13,6 @@
#include "ShowStatement.h"
#include "ExportStatement.h"
#include "TransactionStatement.h"
+#include "AlterStatement.h"
#endif // SQLPARSER_STATEMENTS_H
diff --git a/test/queries/queries-bad.sql b/test/queries/queries-bad.sql
index e82fed27..4dc53aee 100644
--- a/test/queries/queries-bad.sql
+++ b/test/queries/queries-bad.sql
@@ -38,3 +38,6 @@
!SELECT * FROM t WHERE a = DATE '2000-01-01' + x DAYS;
!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL 'x' DAY;
!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '3.3 DAYS';
+# ON is not supported by postgres. We follow postgres here since the sql-92 standard does not specify index
+# implementation details.
+!DROP INDEX myindex ON mytable;
diff --git a/test/queries/queries-good.sql b/test/queries/queries-good.sql
index dda9161d..85674d13 100755
--- a/test/queries/queries-good.sql
+++ b/test/queries/queries-good.sql
@@ -26,7 +26,9 @@ SELECT a, SUM(b) FROM t2 GROUP BY a HAVING SUM(b) > 100;
CREATE TABLE "table" FROM TBL FILE 'students.tbl'
CREATE TABLE IF NOT EXISTS "table" FROM TBL FILE 'students.tbl'
CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)
+CREATE TABLE students (name TEXT, student_number INTEGER NOT NULL, city TEXT, grade DOUBLE PRIMARY KEY UNIQUE)
CREATE TABLE teachers (name VARCHAR(30), student_number LONG, city CHAR(10), grade FLOAT)
+CREATE TABLE teachers (name VARCHAR(30), student_number LONG, PRIMARY KEY (name, student_number), city CHAR(10), grade FLOAT)
CREATE TABLE students_2 AS SELECT * FROM students
CREATE TABLE students_3 AS SELECT city, grade FROM students WHERE grade > 3.0
# Multiple statements
@@ -45,10 +47,15 @@ UPDATE students SET grade = 1.3 WHERE name = 'Max Mustermann';
UPDATE students SET grade = 1.3, name='Felix Fürstenberg' WHERE name = 'Max Mustermann';
UPDATE students SET grade = 1.0;
UPDATE some_schema.students SET grade = 1.0;
+# ALTER
+ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn;
+ALTER TABLE IF EXISTS mytable DROP COLUMN IF EXISTS mycolumn;
# DROP
DROP TABLE students;
DROP TABLE IF EXISTS students;
DROP VIEW IF EXISTS students;
+DROP INDEX myindex;
+DROP INDEX IF EXISTS myindex;
# PREPARE
PREPARE prep_inst FROM 'INSERT INTO test VALUES (?, ?, ?)';
PREPARE prep2 FROM 'INSERT INTO test VALUES (?, 0, 0); INSERT INTO test VALUES (0, ?, 0); INSERT INTO test VALUES (0, 0, ?);';
diff --git a/test/sql_tests.cpp b/test/sql_tests.cpp
index 0ba173ef..e2ab353f 100644
--- a/test/sql_tests.cpp
+++ b/test/sql_tests.cpp
@@ -30,7 +30,7 @@ TEST(DeleteStatementTest) {
TEST(CreateStatementTest) {
SQLParserResult result;
- SQLParser::parse("CREATE TABLE students (name VARCHAR(50), student_number INT, city INTEGER NULL, grade DOUBLE NOT NULL, comment TEXT)", &result);
+ SQLParser::parse("CREATE TABLE students (name VARCHAR(50), student_number INT, city INTEGER NULL, PRIMARY KEY(name, student_number), grade DOUBLE NOT NULL, comment TEXT UNIQUE PRIMARY KEY NOT NULL)", &result);
ASSERT(result.isValid());
ASSERT_EQ(result.size(), 1);
@@ -56,6 +56,9 @@ TEST(CreateStatementTest) {
ASSERT_EQ(stmt->columns->at(2)->nullable, true);
ASSERT_EQ(stmt->columns->at(3)->nullable, false);
ASSERT_EQ(stmt->columns->at(4)->nullable, false);
+ ASSERT_EQ(stmt->columns->at(4)->column_constraints->size(), 2);
+ ASSERT_STREQ(stmt->tableConstraints->at(0)->columnNames->at(0), "name");
+ ASSERT_STREQ(stmt->tableConstraints->at(0)->columnNames->at(1), "student_number");
}
TEST(CreateAsSelectStatementTest) {
@@ -117,6 +120,77 @@ TEST(InsertStatementTest) {
// TODO
}
+TEST(AlterStatementDropActionTest) {
+ SQLParserResult result;
+ SQLParser::parse("ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn", &result);
+
+ ASSERT(result.isValid());
+ ASSERT_EQ(result.size(), 1);
+
+ const AlterStatement* stmt = (const AlterStatement*) result.getStatement(0);
+ ASSERT_STREQ(stmt->name, "mytable");
+ ASSERT_EQ(stmt->ifTableExists, false);
+
+ auto dropAction = (const DropColumnAction*) stmt->action;
+
+ ASSERT_EQ(dropAction->type, hsql::ActionType::DropColumn);
+ ASSERT_STREQ(dropAction->columnName, "mycolumn");
+}
+
+TEST(CreateIndexStatementTest) {
+ SQLParserResult result;
+ SQLParser::parse("CREATE INDEX myindex ON myTable (col1);", &result);
+
+ ASSERT(result.isValid());
+ ASSERT_EQ(result.size(), 1);
+
+ const CreateStatement* stmt = (const CreateStatement*) result.getStatement(0);
+ ASSERT_STREQ(stmt->indexName, "myindex");
+ ASSERT_STREQ(stmt->tableName, "myTable");
+ ASSERT_EQ(stmt->type, kCreateIndex);
+ ASSERT_EQ(stmt->ifNotExists, false);
+ ASSERT_EQ(stmt->indexColumns->size(), 1);
+}
+
+TEST(CreateIndexStatementIfNotExistsTest) {
+ SQLParserResult result;
+ SQLParser::parse("CREATE INDEX IF NOT EXISTS myindex ON myTable (col1, col2);", &result);
+
+ ASSERT(result.isValid());
+ ASSERT_EQ(result.size(), 1);
+
+ const CreateStatement* stmt = (const CreateStatement*) result.getStatement(0);
+ ASSERT_STREQ(stmt->indexName, "myindex");
+ ASSERT_STREQ(stmt->tableName, "myTable");
+ ASSERT_EQ(stmt->type, kCreateIndex);
+ ASSERT_EQ(stmt->ifNotExists, true);
+ ASSERT_EQ(stmt->indexColumns->size(), 2);
+}
+
+TEST(DropIndexTest) {
+ SQLParserResult result;
+ SQLParser::parse("DROP INDEX myindex", &result);
+
+ ASSERT(result.isValid());
+ ASSERT_EQ(result.size(), 1);
+
+ const DropStatement* stmt = (const DropStatement*) result.getStatement(0);
+ ASSERT_STREQ(stmt->indexName, "myindex");
+ ASSERT_EQ(stmt->ifExists, false);
+}
+
+TEST(DropIndexIfExistsTest) {
+ SQLParserResult result;
+ SQLParser::parse("DROP INDEX IF EXISTS myindex", &result);
+
+ ASSERT(result.isValid());
+ ASSERT_EQ(result.size(), 1);
+
+ const DropStatement* stmt = (const DropStatement*) result.getStatement(0);
+ ASSERT_STREQ(stmt->indexName, "myindex");
+ ASSERT_EQ(stmt->ifExists, true);
+}
+
TEST(DropTableStatementTest) {
TEST_PARSE_SINGLE_SQL(
"DROP TABLE students",